Polylang - Version 1.2

Version Description

More than ever, make a database backup before upgrading! If you are using a version older than 0.8, please ugrade to 0.9.8 before ugrading to 1.2

=

Download this release

Release Info

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

Code changes from version 1.1.6 to 1.2

Files changed (106) hide show
  1. admin/admin-filters-columns.php +219 -0
  2. admin/admin-filters-media.php +222 -0
  3. admin/admin-filters-post.php +297 -0
  4. admin/admin-filters-term.php +446 -0
  5. admin/admin-filters.php +178 -0
  6. admin/admin-model.php +379 -0
  7. admin/admin-nav-menu.php +271 -0
  8. admin/admin-sync.php +235 -0
  9. admin/admin.php +301 -0
  10. {include → admin}/languages.php +7 -5
  11. admin/settings.php +339 -0
  12. admin/table-languages.php +128 -0
  13. admin/table-string.php +202 -0
  14. include/about.php → admin/view-about.php +0 -0
  15. include/languages-form.php → admin/view-languages.php +74 -41
  16. include/media-translations.php → admin/view-translations-media.php +6 -4
  17. include/post-translations.php → admin/view-translations-post.php +4 -4
  18. include/term-translations.php → admin/view-translations-term.php +3 -3
  19. admin/wp-import.php +167 -0
  20. changelog.txt +77 -0
  21. css/admin.css +4 -1
  22. css/admin.min.css +1 -1
  23. flags/all.png +0 -0
  24. frontend/choose-lang-content.php +129 -0
  25. frontend/choose-lang-url.php +93 -0
  26. frontend/choose-lang.php +242 -0
  27. include/auto-translate.php → frontend/frontend-auto-translate.php +44 -17
  28. frontend/frontend-filters-search.php +130 -0
  29. frontend/frontend-filters.php +278 -0
  30. frontend/frontend-links.php +299 -0
  31. frontend/frontend-nav-menu.php +167 -0
  32. frontend/frontend.php +118 -0
  33. include/admin-base.php +0 -218
  34. include/admin-filters.php +0 -1189
  35. include/admin.php +0 -458
  36. include/api.php +92 -26
  37. include/base.php +116 -379
  38. include/core.php +0 -1046
  39. include/language.php +88 -0
  40. include/links-default.php +76 -0
  41. include/links-directory.php +215 -0
  42. include/links-domain.php +102 -0
  43. include/links-subdomain.php +106 -0
  44. include/links.php +77 -0
  45. include/list-table.php +0 -190
  46. include/mo.php +61 -0
  47. include/model.php +695 -0
  48. include/nav-menu.php +0 -288
  49. include/olt-manager.php +157 -0
  50. include/plugins-compat.php +88 -22
  51. include/switcher.php +194 -0
  52. include/upgrade.php +338 -0
  53. include/walker-dropdown.php +58 -0
  54. include/{calendar.php → widget-calendar.php} +43 -28
  55. include/{widget.php → widget-languages.php} +42 -11
  56. include/wpml-compat.php +266 -74
  57. js/admin.js +3 -3
  58. js/admin.min.js +1 -1
  59. js/post.js +3 -2
  60. js/post.min.js +1 -1
  61. languages/polylang-af.mo +0 -0
  62. languages/polylang-af.po +189 -160
  63. languages/polylang-ar.mo +0 -0
  64. languages/polylang-ar.po +713 -0
  65. languages/polylang-be_BY.mo +0 -0
  66. languages/polylang-be_BY.po +214 -206
  67. languages/polylang-bg_BG.mo +0 -0
  68. languages/polylang-bg_BG.po +172 -134
  69. languages/polylang-ca.mo +0 -0
  70. languages/polylang-ca.po +179 -135
  71. languages/polylang-da_DK.mo +0 -0
  72. languages/polylang-da_DK.po +266 -208
  73. languages/polylang-de_DE.mo +0 -0
  74. languages/polylang-de_DE.po +219 -222
  75. languages/polylang-el.mo +0 -0
  76. languages/polylang-el.po +214 -171
  77. languages/polylang-es_ES.mo +0 -0
  78. languages/polylang-es_ES.po +176 -133
  79. languages/polylang-et.mo +0 -0
  80. languages/polylang-et.po +207 -210
  81. languages/polylang-fi.mo +0 -0
  82. languages/polylang-fi.po +210 -197
  83. languages/polylang-fr_FR.mo +0 -0
  84. languages/polylang-fr_FR.po +205 -189
  85. languages/polylang-he_IL.mo +0 -0
  86. languages/polylang-he_IL.po +639 -605
  87. languages/polylang-hu_HU.mo +0 -0
  88. languages/polylang-hu_HU.po +187 -160
  89. languages/polylang-id_ID.mo +0 -0
  90. languages/polylang-id_ID.po +209 -221
  91. languages/polylang-it_IT.mo +0 -0
  92. languages/polylang-it_IT.po +177 -135
  93. languages/polylang-lt_LT.mo +0 -0
  94. languages/polylang-lt_LT.po +178 -137
  95. languages/polylang-lv.mo +0 -0
  96. languages/polylang-lv.po +180 -163
  97. languages/polylang-nb_NO.mo +0 -0
  98. languages/polylang-nb_NO.po +166 -140
  99. languages/polylang-nl_NL.mo +0 -0
  100. languages/polylang-nl_NL.po +179 -162
  101. languages/polylang-pl_PL.mo +0 -0
  102. languages/polylang-pl_PL.po +179 -162
  103. languages/polylang-pt_PT.mo +0 -0
  104. languages/polylang-pt_PT.po +189 -160
  105. languages/polylang-ru_RU.mo +0 -0
  106. languages/polylang-ru_RU.po +141 -156
admin/admin-filters-columns.php ADDED
@@ -0,0 +1,219 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * adds the language column in posts and terms list tables
5
+ * manages quick edit and bulk edit as well
6
+ *
7
+ * @since 1.2
8
+ */
9
+ class PLL_Admin_Filters_Columns {
10
+ public $model;
11
+
12
+ /*
13
+ * constructor: setups filters and actions
14
+ *
15
+ * @since 1.2
16
+ *
17
+ * @param object $model instance of PLL_Model
18
+ */
19
+ public function __construct(&$model) {
20
+ $this->model = &$model;
21
+
22
+ // add the language and translations columns in 'All Posts', 'All Pages' and 'Media library' panels
23
+ foreach ($this->model->post_types as $type) {
24
+ // use the latest filter late as some plugins purely overwrite what's done by others :(
25
+ // specific case for media
26
+ add_filter('manage_'. ($type == 'attachment' ? 'upload' : 'edit-'. $type) .'_columns', array(&$this, 'add_post_column'), 100);
27
+ add_action('manage_'. ($type == 'attachment' ? 'media' : $type .'_posts') .'_custom_column', array(&$this, 'post_column'), 10, 2);
28
+ }
29
+
30
+ // quick edit and bulk edit
31
+ add_filter('quick_edit_custom_box', array(&$this, 'quick_edit_custom_box'), 10, 2);
32
+ add_filter('bulk_edit_custom_box', array(&$this, 'quick_edit_custom_box'), 10, 2);
33
+
34
+ // adds the language column in the 'Categories' and 'Post Tags' tables
35
+ foreach ($this->model->taxonomies as $tax) {
36
+ add_filter('manage_edit-'.$tax.'_columns', array(&$this, 'add_term_column'));
37
+ add_action('manage_'.$tax.'_custom_column', array(&$this, 'term_column'), 10, 3);
38
+ }
39
+
40
+ }
41
+
42
+ /*
43
+ * adds languages and translations columns in posts, pages, media, categories and tags tables
44
+ *
45
+ * @since 0.8.2
46
+ *
47
+ * @param array $columns list of table columns
48
+ * @param string $before the column before which we want to add our languages
49
+ * @return array modified list of columns
50
+ */
51
+ protected function add_column($columns, $before) {
52
+ if ($n = array_search($before, array_keys($columns))) {
53
+ $end = array_slice($columns, $n);
54
+ $columns = array_slice($columns, 0, $n);
55
+ }
56
+
57
+ foreach ($this->model->get_languages_list() as $language)
58
+ // don't add the column for the filtered language
59
+ if ($language->slug != get_user_meta(get_current_user_id(), 'pll_filter_content', true))
60
+ $columns['language_'.$language->slug] = $language->flag ? $language->flag : esc_html($language->slug);
61
+
62
+ return isset($end) ? array_merge($columns, $end) : $columns;
63
+ }
64
+
65
+ /*
66
+ * returns the first language column in the posts, pages and media library tables
67
+ *
68
+ * @since 0.9
69
+ *
70
+ * @return string first language column name
71
+ */
72
+ protected function get_first_language_column() {
73
+ foreach ($this->model->get_languages_list() as $language)
74
+ if ($language->slug != get_user_meta(get_current_user_id(), 'pll_filter_content', true))
75
+ $columns[] = 'language_'.$language->slug;
76
+
77
+ return reset($columns);
78
+ }
79
+
80
+ /*
81
+ * adds the language and translations columns (before the comments column) in the posts, pages and media library tables
82
+ *
83
+ * @since 0.1
84
+ *
85
+ * @param array $columns list of posts table columns
86
+ * @return array modified list of columns
87
+ */
88
+ function add_post_column($columns) {
89
+ return $this->add_column($columns, 'comments');
90
+ }
91
+
92
+ /*
93
+ * fills the language and translations columns in the posts, pages and media library tables
94
+ * take care that when doing ajax inline edit, the post may not be updated in database yet
95
+ * FIXME if inline edit breaks translations, the rows corresponding to these translations are not updated
96
+ *
97
+ * @since 0.1
98
+ *
99
+ * @param string $column column name
100
+ * @param int $post_id
101
+ */
102
+ public function post_column($column, $post_id) {
103
+ $inline = defined('DOING_AJAX') && $_REQUEST['action'] == 'inline-save' ? 1 : 0;
104
+ if (false === strpos($column, 'language_') || !($lang = $inline ? $this->model->get_language($_POST['post_lang_choice']) : $this->model->get_post_language($post_id)))
105
+ return;
106
+
107
+ $post_type = isset($GLOBALS['post_type']) ? $GLOBALS['post_type'] : $_POST['post_type']; // 2nd case for quick edit
108
+ $language = $this->model->get_language(substr($column, 9));
109
+
110
+ // hidden field containing the post language for quick edit
111
+ if ($column == $this->get_first_language_column())
112
+ printf('<div class="hidden" id="lang_%d">%s</div>', esc_attr($post_id), esc_html($lang->slug));
113
+
114
+
115
+ // link to edit post (or a translation)
116
+ if ($id = ($inline && $lang->slug != $_POST['old_lang']) ? ($language->slug == $lang->slug ? $post_id : 0) : $this->model->get_post($post_id, $language))
117
+ printf('<a class="%1$s" title="%2$s" href="%3$s"></a>',
118
+ $id == $post_id ? 'pll_icon_tick' : 'pll_icon_edit',
119
+ esc_attr(get_post($id)->post_title),
120
+ esc_url(get_edit_post_link($id, true ))
121
+ );
122
+
123
+ // link to add a new translation
124
+ else
125
+ printf('<a class="pll_icon_add" title="%1$s" href="%2$s"></a>',
126
+ __('Add new translation', 'polylang'),
127
+ esc_url(admin_url('manage_media_custom_column' == current_filter() ?
128
+ 'admin.php?action=translate_media&from_media=' . $post_id . '&new_lang=' . $language->slug :
129
+ 'post-new.php?post_type=' . $post_type . '&from_post=' . $post_id . '&new_lang=' . $language->slug
130
+ ))
131
+ );
132
+ }
133
+
134
+ /*
135
+ * quick edit & bulk edit
136
+ *
137
+ * @since 0.9
138
+ *
139
+ * @param string $column column name
140
+ * @param string $type either 'edit-tags' for terms list table or post type for posts list table
141
+ * @return string unmodified $column
142
+ */
143
+ public function quick_edit_custom_box($column, $type) {
144
+ if ($column == $this->get_first_language_column()) {
145
+ $name = $type == 'edit-tags' ? 'inline_lang_choice' : 'post_lang_choice';
146
+
147
+ $elements = $this->model->get_languages_list();
148
+ if (current_filter() == 'bulk_edit_custom_box')
149
+ array_unshift($elements, (object) array('slug' => -1, 'name' => __('&mdash; No Change &mdash;')));
150
+
151
+ $dropdown = new PLL_Walker_Dropdown();
152
+ printf(
153
+ '<fieldset class="inline-edit-col-left">
154
+ <div class="inline-edit-col">
155
+ <input type="hidden" value="" name = "old_lang">' // a hidden field to pass the old language to ajax request
156
+ .'<label for="%s" class="alignleft">
157
+ <span class="title">%s</span>
158
+ %s
159
+ </label>
160
+ </div>
161
+ </fieldset>',
162
+ $name,
163
+ __('Language', 'polylang'),
164
+ $dropdown->walk($elements, array('name' => $name))
165
+ );
166
+ }
167
+ return $column;
168
+ }
169
+
170
+ /*
171
+ * adds the language column (before the posts column) in the 'Categories' or 'Post Tags' table
172
+ *
173
+ * @since 0.1
174
+ *
175
+ * @param array $columns list of terms table columns
176
+ * @return array modified list of columns
177
+ */
178
+ public function add_term_column($columns) {
179
+ return $this->add_column($columns, 'posts');
180
+ }
181
+
182
+ /*
183
+ * fills the language column in the 'Categories' or 'Post Tags' table
184
+ * FIXME if inline edit breaks translations, the rows corresponding to these translations are not updated
185
+ *
186
+ * @since 0.1
187
+ *
188
+ * @param string $empty not used
189
+ * @param string $column column name
190
+ * @param int term_id
191
+ */
192
+ public function term_column($empty, $column, $term_id) {
193
+ $inline = defined('DOING_AJAX') && $_REQUEST['action'] == 'inline-save-tax' ? 1 : 0;
194
+ if (false === strpos($column, 'language_') || !($lang = $inline ? $this->model->get_language($_POST['inline_lang_choice']) : $this->model->get_term_language($term_id)))
195
+ return;
196
+
197
+ $post_type = isset($GLOBALS['post_type']) ? $GLOBALS['post_type'] : $_POST['post_type']; // 2nd case for quick edit
198
+ $taxonomy = isset($GLOBALS['taxonomy']) ? $GLOBALS['taxonomy'] : $_POST['taxonomy'];
199
+ $language = $this->model->get_language(substr($column, 9));
200
+
201
+ if ($column == $this->get_first_language_column())
202
+ printf('<div class="hidden" id="lang_%d">%s</div>', esc_attr($term_id), esc_html($lang->slug));
203
+
204
+ // link to edit term (or a translation)
205
+ if ($id = ($inline && $lang->slug != $_POST['old_lang']) ? ($language->slug == $lang->slug ? $term_id : 0) : $this->model->get_term($term_id, $language))
206
+ printf('<a class="%1$s" title="%2$s" href="%3$s"></a>',
207
+ $id == $term_id ? 'pll_icon_tick' : 'pll_icon_edit',
208
+ esc_attr(get_term($id, $taxonomy)->name),
209
+ esc_url(get_edit_term_link($id, $taxonomy, $post_type))
210
+ );
211
+
212
+ // link to add a new translation
213
+ else
214
+ printf('<a class="pll_icon_add" title="%1$s" href="%2$s"></a>',
215
+ __('Add new translation', 'polylang'),
216
+ esc_url(admin_url(sprintf('edit-tags.php?taxonomy=%1$s&from_tag=%2$d&new_lang=%3$s', $taxonomy, $term_id, $language->slug)))
217
+ );
218
+ }
219
+ }
admin/admin-filters-media.php ADDED
@@ -0,0 +1,222 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * manages filters and actions related to media on admin side
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Admin_Filters_Media {
9
+ public $model, $pref_lang;
10
+
11
+ /*
12
+ * constructor: setups filters and actions
13
+ *
14
+ * @since 1.2
15
+ *
16
+ * @param object $model instance of PLL_Model
17
+ * @param object $pref_lang language chosen in admin filter or default language
18
+ */
19
+ public function __construct(&$model, $pref_lang) {
20
+ $this->model = &$model;
21
+ $this->pref_lang = $pref_lang;
22
+
23
+ // adds the language field and translations tables in the 'Edit Media' panel
24
+ add_filter('attachment_fields_to_edit', array(&$this, 'attachment_fields_to_edit'), 10, 2);
25
+
26
+ // ajax response for changing the language in media form
27
+ add_action('wp_ajax_media_lang_choice', array(&$this,'media_lang_choice'));
28
+
29
+ // adds actions related to languages when creating, saving or deleting media
30
+ add_action('add_attachment', array(&$this, 'add_attachment'));
31
+ add_filter('attachment_fields_to_save', array(&$this, 'save_media'), 10, 2);
32
+ add_filter('wp_delete_file', array(&$this, 'wp_delete_file'));
33
+
34
+ // creates a media translation
35
+ if (isset($_GET['action'], $_GET['new_lang'], $_GET['from_media']) && $_GET['action'] == 'translate_media')
36
+ add_action('admin_init', array(&$this, 'translate_media'));
37
+ }
38
+
39
+ /*
40
+ * adds the language field and translations tables in the 'Edit Media' panel
41
+ *
42
+ * @since 0.9
43
+ *
44
+ * @param array $fields list of form fields
45
+ * @param object $post
46
+ * @return array modified list of form fields
47
+ */
48
+ public function attachment_fields_to_edit($fields, $post) {
49
+ if ($GLOBALS['pagenow'] == 'post.php')
50
+ return $fields; // don't add anything on edit media panel for WP 3.5+ since we have the metabox
51
+
52
+ $post_id = $post->ID;
53
+ $lang = $this->model->get_post_language($post_id);
54
+
55
+ $dropdown = new PLL_Walker_Dropdown();
56
+ $fields['language'] = array(
57
+ 'label' => __('Language', 'polylang'),
58
+ 'input' => 'html',
59
+ 'html' => $dropdown->walk($this->model->get_languages_list(), array(
60
+ 'name' => sprintf('attachments[%d][language]', $post_id),
61
+ 'class' => 'media_lang_choice',
62
+ 'selected' => $lang ? $lang->slug : ''
63
+ ))
64
+ );
65
+
66
+ // don't show translations except on edit media panel for backward compatibility WP < 3.5
67
+ if ($GLOBALS['pagenow'] == 'media.php') {
68
+ if ($lang) {
69
+ ob_start();
70
+ include PLL_ADMIN_INC . '/view-translations-media.php';
71
+ $fields['translations'] = array(
72
+ 'label' => __('Translations', 'polylang'),
73
+ 'input' => 'html',
74
+ 'html' => ob_get_contents(),
75
+ );
76
+ ob_end_clean();
77
+ }
78
+ else
79
+ $fields['translations'] = array('tr' => '<tr class="translations"></tr>'); // to get a field for ajax
80
+ }
81
+
82
+ return $fields;
83
+ }
84
+
85
+ /*
86
+ * ajax response for changing the language in media form
87
+ *
88
+ * @since 0.9
89
+ */
90
+ public function media_lang_choice() {
91
+ preg_match('#([0-9]+)#', $_POST['post_id'], $matches);
92
+ $post_id = $matches[1];
93
+ $lang = $this->model->get_language($_POST['lang']);
94
+
95
+ ob_start();
96
+ if ($lang) {
97
+ include(PLL_ADMIN_INC.'/view-translations-media.php');
98
+ $data = ob_get_contents();
99
+
100
+ // backward compatibility WP < 3.5, first add the html generated by WP if non AJAX, then our translation table
101
+ if (version_compare($GLOBALS['wp_version'], '3.5', '<'))
102
+ $data = sprintf('
103
+ <th scope="row" class="label">
104
+ <label for="attachments[%d][translations]">
105
+ <span class="alignleft">%s</span><br class="clear" />
106
+ </label>
107
+ </th>
108
+ <td class="field">
109
+ %s
110
+ </td>',
111
+ $post_id, __('Translations', 'polylang'), $data
112
+ );
113
+ }
114
+ $x = new WP_Ajax_Response(array('what' => 'translations', 'data' => $data));
115
+ ob_end_clean();
116
+
117
+ $x->send();
118
+ }
119
+
120
+ /*
121
+ * creates a media translation
122
+ *
123
+ * @since 0.9
124
+ */
125
+ public function translate_media() {
126
+ $post = get_post($_GET['from_media']);
127
+ $post_id = $post->ID;
128
+
129
+ // create a new attachment (translate attachment parent if exists)
130
+ $post->ID = null; // will force the creation
131
+ $post->post_parent = ($post->post_parent && $tr_parent = $this->model->get_translation('post', $post->post_parent, $_GET['new_lang'])) ? $tr_parent : 0;
132
+ $tr_id = wp_insert_attachment($post);
133
+ add_post_meta($tr_id, '_wp_attachment_metadata', get_post_meta($post_id, '_wp_attachment_metadata', true));
134
+ add_post_meta($tr_id, '_wp_attached_file', get_post_meta($post_id, '_wp_attached_file', true));
135
+
136
+ $translations = $this->model->get_translations('post', $post_id);
137
+ if (!$translations && $lang = $this->model->get_post_language($post_id))
138
+ $translations[$lang->slug] = $post_id;
139
+
140
+ $translations[$_GET['new_lang']] = $tr_id;
141
+ $this->model->save_translations('post', $tr_id, $translations);
142
+
143
+ wp_redirect(admin_url(sprintf(
144
+ version_compare($GLOBALS['wp_version'], '3.5', '<') ?
145
+ 'media.php?attachment_id=%d&action=edit' : // backward compatibility WP < 3.5
146
+ 'post.php?post=%d&action=edit', // WP 3.5+
147
+ $tr_id)));
148
+
149
+ exit;
150
+ }
151
+
152
+ /*
153
+ * sets the language of a new attachment
154
+ *
155
+ * @since 0.9.8
156
+ *
157
+ * @param int $post_id
158
+ */
159
+ public function add_attachment($post_id) {
160
+ if (!empty($_GET['new_lang'])) // created as a translation from an existing attachment
161
+ $lang = $_GET['new_lang'];
162
+ else {
163
+ $post = get_post($post_id);
164
+ if (!empty($post->post_parent)) // upload in the "Add media" modal when editing a post
165
+ $lang = $this->model->get_post_language($post->post_parent);
166
+ }
167
+
168
+ $this->model->set_post_language($post_id, isset($lang) ? $lang : $this->pref_lang);
169
+ }
170
+
171
+ /*
172
+ * called when a media is saved
173
+ * saves language and translations
174
+ *
175
+ * @since 0.9
176
+ *
177
+ * @param array $post
178
+ * @param array $attachment
179
+ * @return array unmodified $post
180
+ */
181
+ public function save_media($post, $attachment) {
182
+ $this->model->set_post_language($post['ID'], $attachment['language']); // the language is no more automatically saved by WP since WP 3.5
183
+ $this->model->delete_translation('post', $post['ID']);
184
+
185
+ // save translations after checking the translated media is in the right language
186
+ if (isset($_POST['media_tr_lang'])) {
187
+ foreach ($_POST['media_tr_lang'] as $lang=>$tr_id)
188
+ $translations[$lang] = $this->model->get_post_language((int) $tr_id)->slug == $lang && $tr_id != $post['ID'] ? (int) $tr_id : 0;
189
+
190
+ $this->model->save_translations('post', $post['ID'], $translations);
191
+ }
192
+
193
+ return $post;
194
+ }
195
+
196
+ /*
197
+ * prevents WP deleting files when there are still media using them
198
+ * thanks to Bruno "Aesqe" Babic and its plugin file gallery in which I took all the ideas for this function
199
+ *
200
+ * @since 0.9
201
+ *
202
+ * @param string $file
203
+ * @return string unmodified $file
204
+ */
205
+ public function wp_delete_file($file) {
206
+ global $wpdb;
207
+ $uploadpath = wp_upload_dir();
208
+ $ids = $wpdb->get_col($wpdb->prepare("
209
+ SELECT post_id FROM $wpdb->postmeta
210
+ WHERE meta_key = '_wp_attached_file' AND meta_value = '%s'",
211
+ ltrim($file, $uploadpath['basedir'])
212
+ ));
213
+
214
+ if (!empty($ids)) {
215
+ // regenerate intermediate sizes if it's an image (since we could not prevent WP deleting them before)
216
+ wp_update_attachment_metadata($ids[0], wp_generate_attachment_metadata($ids[0], $file));
217
+ return ''; // prevent deleting the main file
218
+ }
219
+
220
+ return $file;
221
+ }
222
+ }
admin/admin-filters-post.php ADDED
@@ -0,0 +1,297 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * manages filters and actions related to posts on admin side
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Admin_Filters_Post {
9
+ public $model, $options, $pref_lang;
10
+
11
+ /*
12
+ * constructor: setups filters and actions
13
+ *
14
+ * @since 1.2
15
+ *
16
+ * @param object $model instance of PLL_Model
17
+ * @param object $pref_lang language chosen in admin filter or default language
18
+ */
19
+ public function __construct(&$model, $pref_lang) {
20
+ $this->model = &$model;
21
+ $this->options = &$model->options;
22
+ $this->pref_lang = $pref_lang;
23
+
24
+ // filters posts, pages and media by language
25
+ add_filter('parse_query',array(&$this,'parse_query'));
26
+
27
+ // adds the Languages box in the 'Edit Post' and 'Edit Page' panels
28
+ add_action('add_meta_boxes', array(&$this, 'add_meta_boxes'));
29
+
30
+ // ajax response for changing the language in the post metabox
31
+ add_action('wp_ajax_post_lang_choice', array(&$this,'post_lang_choice'));
32
+
33
+ // adds actions and filters related to languages when creating, saving or deleting posts and pages
34
+ add_action('save_post', array(&$this, 'save_post'), 21, 2); // priority 21 to come after advanced custom fields (20) and before the event calendar which breaks everything after 25
35
+ add_action('before_delete_post', array(&$this, 'delete_post'));
36
+ if ($this->options['media_support'])
37
+ add_action('delete_attachment', array(&$this, 'delete_post')); // action shared with media
38
+
39
+ // filters the pages by language in the parent dropdown list in the page attributes metabox
40
+ add_filter('page_attributes_dropdown_pages_args', array(&$this, 'page_attributes_dropdown_pages_args'), 10, 2);
41
+ }
42
+
43
+ /*
44
+ * filters posts, pages and media by language
45
+ *
46
+ * @since 0.1
47
+ *
48
+ * @param object $query a WP_Query object
49
+ */
50
+ public function parse_query($query) {
51
+ $qvars = &$query->query_vars;
52
+
53
+ // do not filter post types such as nav_menu_item
54
+ if (isset($qvars['post_type']) && !in_array($qvars['post_type'], $this->model->post_types)) {
55
+ unset ($qvars['lang']);
56
+ return;
57
+ }
58
+
59
+ // filters the list of media by language when uploading from post
60
+ if ($this->options['media_support'] && ($GLOBALS['pagenow'] == 'media-upload.php' || // backward compatibility WP < 3.5
61
+ ($GLOBALS['pagenow'] == 'admin-ajax.php' && isset($_REQUEST['action']) && $_REQUEST['action'] == 'query-attachments')) && // WP 3.5+
62
+ isset($_REQUEST['post_id']) && $lang = $this->model->get_post_language($_REQUEST['post_id']))
63
+ $query->set('lang', $lang->slug);
64
+
65
+ if (isset($qvars['post_type']) && in_array($qvars['post_type'], $this->model->post_types) && !isset($qvars['lang']) && $lg = get_user_meta(get_current_user_id(), 'pll_filter_content', true))
66
+ $qvars['lang'] = $lg;
67
+
68
+ if ((isset($qvars['post_type']) && !in_array($qvars['post_type'], $this->model->post_types)) || (isset($qvars['lang']) && $qvars['lang'] == 'all'))
69
+ unset ($qvars['lang']);
70
+ }
71
+
72
+ /*
73
+ * adds the Language box in the 'Edit Post' and 'Edit Page' panels (as well as in custom post types panels)
74
+ *
75
+ * @since 0.1
76
+ *
77
+ * @param string $post_type
78
+ */
79
+ public function add_meta_boxes($post_type) {
80
+ if (in_array($post_type, $this->model->post_types))
81
+ add_meta_box('ml_box', __('Languages','polylang'), array(&$this, 'post_language'), $post_type, 'side', 'high');
82
+
83
+ // replace tag metabox by our own
84
+ foreach (get_object_taxonomies($post_type) as $tax_name) {
85
+ $taxonomy = get_taxonomy($tax_name);
86
+ if ($taxonomy->show_ui && !is_taxonomy_hierarchical($tax_name)) {
87
+ remove_meta_box('tagsdiv-' . $tax_name, null, 'side');
88
+ add_meta_box('pll-tagsdiv-' . $tax_name, $taxonomy->labels->name, 'post_tags_meta_box', null, 'side', 'core', array('taxonomy' => $tax_name));
89
+ }
90
+ }
91
+ }
92
+
93
+ /*
94
+ * displays the Languages metabox in the 'Edit Post' and 'Edit Page' panels
95
+ *
96
+ * @since 0.1
97
+ */
98
+ public function post_language() {
99
+ global $post_ID;
100
+ $post_id = $post_ID;
101
+ $post_type = get_post_type($post_ID);
102
+
103
+ $lang = ($lg = $this->model->get_post_language($post_ID)) ? $lg :
104
+ (isset($_GET['new_lang']) ? $this->model->get_language($_GET['new_lang']) :
105
+ $this->pref_lang);
106
+
107
+ $dropdown = new PLL_Walker_Dropdown();
108
+
109
+ // NOTE: the class "tags-input" allows to include the field in the autosave $_POST (see autosave.js)
110
+ printf('
111
+ <p><em>%s</em></p>
112
+ <p>%s<br /></p>
113
+ <div id="post-translations" class="translations">',
114
+ __('Language', 'polylang'),
115
+ $dropdown->walk($this->model->get_languages_list(), array(
116
+ 'name' => $post_type == 'attachment' ? sprintf('attachments[%d][language]', $post_ID) : 'post_lang_choice',
117
+ 'class' => $post_type == 'attachment' ? 'media_lang_choice' : 'tags-input',
118
+ 'selected' => $lang ? $lang->slug : ''
119
+ ))
120
+ );
121
+ if ($lang)
122
+ include(PLL_ADMIN_INC.'/view-translations-'.($post_type == 'attachment' ? 'media' : 'post').'.php');
123
+ echo '</div>'."\n";
124
+ }
125
+
126
+ /*
127
+ * ajax response for changing the language in the post metabox
128
+ *
129
+ * @since 0.2
130
+ */
131
+ public function post_lang_choice() {
132
+ global $post_ID; // obliged to use the global variable for wp_popular_terms_checklist
133
+ $post_ID = $_POST['post_id'];
134
+ $post_type = get_post_type($post_ID);
135
+ $lang = $this->model->get_language($_POST['lang']);
136
+
137
+ $this->model->set_post_language($post_ID, $lang); // save language, useful to set the language when uploading media from post
138
+
139
+ ob_start();
140
+ if ($lang)
141
+ include(PLL_ADMIN_INC.'/view-translations-post.php');
142
+ $x = new WP_Ajax_Response(array('what' => 'translations', 'data' => ob_get_contents()));
143
+ ob_end_clean();
144
+
145
+ // categories
146
+ if (isset($_POST['taxonomies'])) {
147
+ // not set for pages
148
+ foreach ($_POST['taxonomies'] as $taxname) {
149
+ $taxonomy = get_taxonomy($taxname);
150
+
151
+ ob_start();
152
+ $popular_ids = wp_popular_terms_checklist($taxonomy->name);
153
+ $supplemental['populars'] = ob_get_contents();
154
+ ob_end_clean();
155
+
156
+ ob_start();
157
+ // use $post_ID to remember ckecked terms in case we come back to the original language
158
+ wp_terms_checklist( $post_ID, array( 'taxonomy' => $taxonomy->name, 'popular_cats' => $popular_ids ));
159
+ $supplemental['all'] = ob_get_contents();
160
+ ob_end_clean();
161
+
162
+ $supplemental['dropdown'] = wp_dropdown_categories(array(
163
+ 'taxonomy' => $taxonomy->name,
164
+ 'hide_empty' => 0,
165
+ 'name' => 'new'.$taxonomy->name.'_parent',
166
+ 'orderby' => 'name',
167
+ 'hierarchical' => 1,
168
+ 'show_option_none' => '&mdash; '.$taxonomy->labels->parent_item.' &mdash;',
169
+ 'echo' => 0
170
+ ));
171
+
172
+ $x->Add(array('what' => 'taxonomy', 'data' => $taxonomy->name, 'supplemental' => $supplemental));
173
+ }
174
+ }
175
+
176
+ // parent dropdown list (only for hierarchical post types)
177
+ if (in_array($post_type, get_post_types(array('hierarchical' => true)))) {
178
+ require_once( ABSPATH . 'wp-admin/includes/meta-boxes.php' );
179
+ ob_start();
180
+ page_attributes_meta_box(get_post($post_ID));
181
+ $x->Add(array('what' => 'pages', 'data' => ob_get_contents()));
182
+ ob_end_clean();
183
+ }
184
+
185
+ $x->send();
186
+ }
187
+
188
+ /*
189
+ * called when a post (or page) is saved, published or updated
190
+ * saves languages and translations
191
+ * checks the terms saved are in the right language
192
+ *
193
+ * @since 0.1
194
+ *
195
+ * @param int $post_id
196
+ * @param object $post
197
+ */
198
+ public function save_post($post_id, $post) {
199
+ // does nothing except on post types which are filterable
200
+ if (!in_array($post->post_type, $this->model->post_types))
201
+ return;
202
+
203
+ // bulk edit does not modify the language
204
+ if (isset($_GET['bulk_edit']) && $_REQUEST['post_lang_choice'] == -1)
205
+ return;
206
+
207
+ if ($id = wp_is_post_revision($post_id))
208
+ $post_id = $id;
209
+
210
+ // save language
211
+ if (isset($_REQUEST['post_lang_choice'])) {
212
+ if (($lang = $this->model->get_post_language($post_id)) && $lang->slug != $_REQUEST['post_lang_choice'])
213
+ $this->model->delete_translation('post', $post_id); // in case the language is modified using inline edit
214
+ $this->model->set_post_language($post_id, $_REQUEST['post_lang_choice']);
215
+ }
216
+
217
+ elseif (isset($_GET['new_lang']))
218
+ $this->model->set_post_language($post_id, $_GET['new_lang']);
219
+
220
+ elseif (isset($_REQUEST['action']) && in_array($_REQUEST['action'], array('post-quickpress-save', 'post-quickpress-publish')))
221
+ $this->model->set_post_language($post_id, $this->pref_lang); // default language for QuickPress
222
+
223
+ elseif ($this->model->get_post_language($post_id))
224
+ {} // avoids breaking the language if post is updated outside the edit post page (thanks to Gonçalo Peres)
225
+
226
+ elseif (($parent_id = wp_get_post_parent_id($post_id)) && $parent_lang = $this->model->get_post_language($parent_id))
227
+ $this->model->set_post_language($post_id, $parent_lang);
228
+
229
+ else
230
+ $this->model->set_post_language($post_id, $this->pref_lang);
231
+
232
+ if (!isset($_POST['post_lang_choice']))
233
+ return;
234
+
235
+ // make sure we get save terms in the right language (especially tags with same name in different languages)
236
+ if ($_POST['post_lang_choice']) {
237
+ // FIXME quite a lot of query in foreach
238
+ foreach ($this->model->taxonomies as $tax) {
239
+ $terms = get_the_terms($post_id, $tax);
240
+ if (is_array($terms)) {
241
+ $newterms = array();
242
+ foreach ($terms as $term) {
243
+ if ($newterm = $this->model->get_term_by('name', $term->name, $tax, $_POST['post_lang_choice']))
244
+ $newterms[] = (int) $newterm->term_id; // cast is important otherwise we get 'numeric' tags
245
+
246
+ elseif (!is_wp_error($term_info = wp_insert_term($term->name, $tax))) // create the term in the correct language
247
+ $newterms[] = (int) $term_info['term_id'];
248
+ }
249
+ wp_set_object_terms($post_id, $newterms, $tax);
250
+ }
251
+ }
252
+ }
253
+
254
+ if (!isset($_POST['post_tr_lang'])) // just in case only one language has been created
255
+ return;
256
+
257
+ // save translations after checking the translated post is in the right language
258
+ foreach ($_POST['post_tr_lang'] as $lang => $tr_id)
259
+ $translations[$lang] = ($tr_id && $this->model->get_post_language((int) $tr_id)->slug == $lang) ? (int) $tr_id : 0;
260
+
261
+ $this->model->save_translations('post', $post_id, $translations);
262
+ do_action('pll_save_post', $post_id, $post, $translations);
263
+ }
264
+
265
+ /*
266
+ * called when a post, page or media is deleted
267
+ * don't delete translations if this is a post revision thanks to AndyDeGroo who catched this bug
268
+ * http://wordpress.org/support/topic/plugin-polylang-quick-edit-still-breaks-translation-linking-of-pages-in-072
269
+ *
270
+ * @since 0.1
271
+ *
272
+ * @param int $post_id
273
+ */
274
+ public function delete_post($post_id) {
275
+ if (!wp_is_post_revision($post_id))
276
+ $this->model->delete_translation('post', $post_id);
277
+ }
278
+
279
+ /*
280
+ * filters the pages by language in the parent dropdown list in the page attributes metabox
281
+ *
282
+ * @since 0.6
283
+ *
284
+ * @param array $dropdown_args arguments passed to wp_dropdown_pages
285
+ * @param object $post
286
+ * @return array modified arguments
287
+ */
288
+ public function page_attributes_dropdown_pages_args($dropdown_args, $post) {
289
+ $lang = isset($_POST['lang']) ? $this->model->get_language($_POST['lang']) : $this->model->get_post_language($post->ID); // ajax or not ?
290
+ if (!$lang)
291
+ $lang = $this->pref_lang;
292
+
293
+ $pages = implode(',', pll_exclude_pages($lang));
294
+ $dropdown_args['exclude'] = isset($dropdown_args['exclude']) ? $dropdown_args['exclude'] . ',' . $pages : $pages;
295
+ return $dropdown_args;
296
+ }
297
+ }
admin/admin-filters-term.php ADDED
@@ -0,0 +1,446 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * manages filters and actions related to terms on admin side
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Admin_Filters_Term {
9
+ public $model, $options, $pref_lang;
10
+ protected $pre_term_name; // used to store the term name before creating a slug if needed
11
+
12
+ /*
13
+ * constructor: setups filters and actions
14
+ *
15
+ * @param object $model instance of PLL_Model
16
+ * @param object $pref_lang language chosen in admin filter or default language
17
+ */
18
+ public function __construct(&$model, $pref_lang) {
19
+ $this->model = &$model;
20
+ $this->options = &$model->options;
21
+ $this->pref_lang = $pref_lang;
22
+
23
+ foreach ($this->model->taxonomies as $tax) {
24
+ // adds the language field in the 'Categories' and 'Post Tags' panels
25
+ add_action($tax.'_add_form_fields', array(&$this, 'add_term_form'));
26
+
27
+ // adds the language field and translations tables in the 'Edit Category' and 'Edit Tag' panels
28
+ add_action($tax.'_edit_form_fields', array(&$this, 'edit_term_form'));
29
+
30
+ // adds action related to languages when deleting categories and post tags
31
+ add_action('delete_'.$tax, array(&$this, 'delete_term'));
32
+ }
33
+
34
+ // adds actions related to languages when creating or saving categories and post tags
35
+ add_filter('wp_dropdown_cats', array(&$this, 'wp_dropdown_cats'));
36
+ add_action('create_term', array(&$this, 'save_term'), 10, 3);
37
+ add_action('edit_term', array(&$this, 'save_term'), 10, 3);
38
+ add_filter('pre_term_name', array(&$this, 'pre_term_name'));
39
+ add_filter('pre_term_slug', array(&$this, 'pre_term_slug'), 10, 2);
40
+
41
+ // ajax response for edit term form
42
+ add_action('wp_ajax_term_lang_choice', array(&$this,'term_lang_choice'));
43
+
44
+ // filters categories and post tags by language
45
+ add_filter('terms_clauses', array(&$this, 'terms_clauses'), 10, 3);
46
+
47
+ // backward compatibility WP < 3.7
48
+ version_compare($GLOBALS['wp_version'], '3.7', '<') ?
49
+ add_action('wp_ajax_polylang-ajax-tag-search', array(&$this,'ajax_tag_search')) :
50
+ add_action('wp_ajax_polylang-ajax-tag-search', 'wp_ajax_ajax_tag_search'); // take profit of new filter, cache...
51
+
52
+ add_filter('option_default_category', array(&$this, 'option_default_category'));
53
+ }
54
+
55
+ /*
56
+ * adds the language field in the 'Categories' and 'Post Tags' panels
57
+ *
58
+ * @since 0.1
59
+ */
60
+ public function add_term_form() {
61
+ $taxonomy = $_GET['taxonomy'];
62
+ $lang = isset($_GET['new_lang']) ? $this->model->get_language($_GET['new_lang']) : $this->pref_lang;
63
+
64
+ $dropdown = new PLL_Walker_Dropdown();
65
+
66
+ printf('
67
+ <div class="form-field">
68
+ <label for="term_lang_choice">%s</label>
69
+ %s
70
+ <p>%s</p>
71
+ </div>',
72
+ __('Language', 'polylang'),
73
+ $dropdown->walk($this->model->get_languages_list(), array('name' => 'term_lang_choice', 'value' => 'term_id', 'selected' => $lang ? $lang->term_id : '')),
74
+ __('Sets the language', 'polylang')
75
+ );
76
+
77
+ // adds translation fields
78
+ echo '<div id="term-translations" class="form-field">';
79
+ if ($lang)
80
+ include(PLL_ADMIN_INC.'/view-translations-term.php');
81
+ echo '</div>'."\n";
82
+ }
83
+
84
+ /*
85
+ * adds the language field and translations tables in the 'Edit Category' and 'Edit Tag' panels
86
+ *
87
+ * @since 0.1
88
+ */
89
+ public function edit_term_form($tag) {
90
+ $term_id = $tag->term_id;
91
+ $lang = $this->model->get_term_language($term_id);
92
+ $taxonomy = $tag->taxonomy;
93
+
94
+ $dropdown = new PLL_Walker_Dropdown();
95
+
96
+ printf('
97
+ <tr class="form-field">
98
+ <th scope="row">
99
+ <label for="term_lang_choice">%s</label>
100
+ </th>
101
+ <td>
102
+ %s<br />
103
+ <span class="description">%s</span>
104
+ </td>
105
+ </tr>',
106
+ __('Language', 'polylang'),
107
+ $dropdown->walk($this->model->get_languages_list(), array('name' => 'term_lang_choice', 'value' => 'term_id', 'selected' => $lang ? $lang->term_id : '')),
108
+ __('Sets the language', 'polylang')
109
+ );
110
+
111
+ echo '<tr id="term-translations" class="form-field">';
112
+ if ($lang)
113
+ include(PLL_ADMIN_INC.'/view-translations-term.php');
114
+ echo '</tr>'."\n";
115
+ }
116
+
117
+ /*
118
+ * translates term parent if exists when using "Add new" (translation)
119
+ *
120
+ * @since 0.7
121
+ *
122
+ * @param string html markup for dropdown list of categories
123
+ * @return string modified html
124
+ */
125
+ public function wp_dropdown_cats($output) {
126
+ if (isset($_GET['taxonomy'], $_GET['from_tag'], $_GET['new_lang']) && $id = get_term($_GET['from_tag'], $_GET['taxonomy'])->parent) {
127
+ if ($parent = $this->model->get_translation('term', $id, $_GET['new_lang']))
128
+ return str_replace('"'.$parent.'"', '"'.$parent.'" selected="selected"', $output);
129
+ }
130
+ return $output;
131
+ }
132
+
133
+ /*
134
+ * called when a category or post tag is created or edited
135
+ * saves language and translations
136
+ *
137
+ * @since 0.1
138
+ *
139
+ * @param int $term_id
140
+ * @param int $tt_id term taxononomy id
141
+ * @param string $taxonomy
142
+ */
143
+ public function save_term($term_id, $tt_id, $taxonomy) {
144
+ // does nothing except on taxonomies which are filterable
145
+ if (!in_array($taxonomy, $this->model->taxonomies))
146
+ return;
147
+
148
+ // save language
149
+ if (isset($_POST['term_lang_choice']))
150
+ $this->model->set_term_language($term_id, $_POST['term_lang_choice']);
151
+ if (isset($_POST['inline_lang_choice'])) {
152
+ // don't use term_lang_choice for quick edit to avoid conflict with the "add term" form
153
+ if ($this->model->get_term_language($term_id)->slug != $_POST['inline_lang_choice'])
154
+ $this->model->delete_translation('term', $term_id);
155
+ $this->model->set_term_language($term_id, $_POST['inline_lang_choice']);
156
+ }
157
+ elseif (isset($_POST['post_lang_choice']))
158
+ $this->model->set_term_language($term_id, $_POST['post_lang_choice']);
159
+
160
+ elseif ($this->model->get_term_language($term_id))
161
+ {} // avoids breaking the language if the term is updated outside the edit post or edit tag pages
162
+
163
+ // sets language from term parent if exists thanks to Scott Kingsley Clark
164
+ elseif (($term = get_term($term_id, $taxonomy)) && !empty($term->parent) && $parent_lang = $this->model->get_term_language($term->parent))
165
+ $this->model->set_term_language($term_id, $parent_lang);
166
+
167
+ else
168
+ $this->model->set_term_language($term_id, $this->pref_lang);
169
+
170
+ if (!isset($_POST['term_tr_lang']))
171
+ return;
172
+
173
+ // save translations after checking the translated term is in the right language (as well as cast id to int)
174
+ foreach ($_POST['term_tr_lang'] as $lang=>$tr_id) {
175
+ $tr_lang = $this->model->get_term_language((int) $tr_id);
176
+ $translations[$lang] = $tr_lang && $tr_lang->slug == $lang ? (int) $tr_id : 0;
177
+ }
178
+
179
+ $this->model->save_translations('term', $term_id, $translations);
180
+ do_action('pll_save_term', $term_id, $taxonomy, $translations);
181
+ }
182
+
183
+ /*
184
+ * stores the term name for use in pre_term_slug
185
+ *
186
+ * @since 0.9.5
187
+ *
188
+ * @param string $name term name
189
+ * @return string unmodified term name
190
+ */
191
+ public function pre_term_name($name) {
192
+ return $this->pre_term_name = $name;
193
+ }
194
+
195
+ /*
196
+ * creates the term slug in case the term already exists in another language
197
+ *
198
+ * @since 0.9.5
199
+ *
200
+ * @param string $slug
201
+ * @param string $taxonomy
202
+ * @return string
203
+ */
204
+ public function pre_term_slug($slug, $taxonomy) {
205
+ $name = sanitize_title($this->pre_term_name);
206
+
207
+ // if the new term has the same name as a language, we *need* to differentiate the term
208
+ // see http://core.trac.wordpress.org/ticket/23199
209
+ if (term_exists($name, 'language') && !term_exists($name, $taxonomy) && (!$slug || $slug == $name))
210
+ $slug = $name.'-'.$taxonomy; // a convenient slug which may be modified later by the user
211
+
212
+ return !$slug && in_array($taxonomy, $this->model->taxonomies) && term_exists($name, $taxonomy) ?
213
+ $name.'-'.$this->model->get_language($_POST['term_lang_choice'])->slug : $slug;
214
+ }
215
+
216
+ /*
217
+ * called when a category or post tag is deleted
218
+ * deletes language and translations
219
+ *
220
+ * @since 0.1
221
+ *
222
+ * @param int $term_id
223
+ */
224
+ public function delete_term($term_id) {
225
+ $this->model->delete_translation('term', $term_id);
226
+ $this->model->delete_term_language($term_id);
227
+ }
228
+
229
+ /*
230
+ * returns all terms in the $taxonomy in the $term_language which have no translation in the $translation_language
231
+ *
232
+ * @since 0.1
233
+ *
234
+ * @param string $taxonomy
235
+ * @param object $term_language the language of the term we want to translate
236
+ * @param object $translation_language the language in which we are looking untranslated terms
237
+ * @return array
238
+ */
239
+ protected function get_terms_not_translated($taxonomy, $term_language, $translation_language) {
240
+ $new_terms = array();
241
+ // it is more efficient to use one common query for all languages as soon as there are more than 2
242
+ // pll_get_terms_not_translated arg to identify this query in terms_clauses filter
243
+ foreach (get_terms($taxonomy, 'hide_empty=0&pll_get_terms_not_translated=1') as $term) {
244
+ $lang = $this->model->get_term_language($term->term_id);
245
+ if ($lang && $lang->name == $term_language->name && !$this->model->get_translation('term', $term->term_id, $translation_language))
246
+ $new_terms[] = $term;
247
+ }
248
+ return $new_terms;
249
+ }
250
+
251
+ /*
252
+ * ajax response for edit term form
253
+ *
254
+ * @since 0.2
255
+ */
256
+ public function term_lang_choice() {
257
+ $lang = $this->model->get_language($_POST['lang']);
258
+ $term_id = isset($_POST['term_id']) ? $_POST['term_id'] : null;
259
+ $taxonomy = $_POST['taxonomy'];
260
+
261
+ ob_start();
262
+ if ($lang)
263
+ include(PLL_ADMIN_INC.'/view-translations-term.php');
264
+ $x = new WP_Ajax_Response(array('what' => 'translations', 'data' => ob_get_contents()));
265
+ ob_end_clean();
266
+
267
+ // parent dropdown list (only for hierarchical taxonomies)
268
+ // $args copied from edit_tags.php except echo
269
+ if (is_taxonomy_hierarchical($taxonomy)) {
270
+ $args = array(
271
+ 'hide_empty' => 0,
272
+ 'hide_if_empty' => false,
273
+ 'taxonomy' => $taxonomy,
274
+ 'name' => 'parent',
275
+ 'orderby' => 'name',
276
+ 'hierarchical' => true,
277
+ 'show_option_none' => __('None'),
278
+ 'echo' => 0,
279
+ );
280
+ $x->Add(array('what' => 'parent', 'data' => wp_dropdown_categories($args)));
281
+ }
282
+
283
+ // tag cloud
284
+ // tests copied from edit_tags.php
285
+ else {
286
+ $tax = get_taxonomy($taxonomy);
287
+ if (!is_null($tax->labels->popular_items)) {
288
+ $args = array('taxonomy' => $taxonomy, 'echo' => false);
289
+ if (current_user_can($tax->cap->edit_terms))
290
+ $args = array_merge($args, array('link' => 'edit'));
291
+
292
+ if ($tag_cloud = wp_tag_cloud($args))
293
+ $x->Add(array('what' => 'tag_cloud', 'data' => '<h3>'.$tax->labels->popular_items.'</h3>'.$tag_cloud));
294
+ }
295
+ }
296
+
297
+ $x->send();
298
+ }
299
+
300
+ /*
301
+ * filters categories and post tags by language when needed on admin side
302
+ *
303
+ * @since 0.5
304
+ *
305
+ * @param array $clauses list of sql clauses
306
+ * @param array $taxonomies list of taxonomies
307
+ * @param array $args get_terms arguments
308
+ * @return array modified sql clauses
309
+ */
310
+ public function terms_clauses($clauses, $taxonomies, $args) {
311
+ // does nothing except on taxonomies which are filterable
312
+ foreach ($taxonomies as $tax)
313
+ if (!in_array($tax, $this->model->taxonomies))
314
+ return $clauses;
315
+
316
+ if (function_exists('get_current_screen'))
317
+ $screen = get_current_screen(); // since WP 3.1, may not be available the first time(s) get_terms is called
318
+
319
+ // don't filter nav menus on nav menus screen
320
+ if (isset($screen) && 'nav-menus' == $screen->base && in_array('nav_menu', $taxonomies))
321
+ return $clauses;
322
+
323
+ // if get_terms is queried with a 'lang' parameter
324
+ if (!empty($args['lang']))
325
+ return $this->model->terms_clauses($clauses, $args['lang']);
326
+
327
+ // does nothing in Languages and dasboard admin panels
328
+ if (isset($screen) && in_array($screen->base, array('toplevel_page_mlang', 'dashboard')))
329
+ return $clauses;
330
+
331
+ // do not filter 'get_terms_not_translated'
332
+ if (!empty($args['pll_get_terms_not_translated']))
333
+ return $clauses;
334
+
335
+ // The only ajax response I want to deal with is when changing the language in post metabox
336
+ if (isset($_POST['action']) && !in_array($_POST['action'], array('post_lang_choice', 'term_lang_choice', 'get-tagcloud')))
337
+ return $clauses;
338
+
339
+ // I only want to filter the parent dropdown list when editing a term in a hierarchical taxonomy
340
+ if (isset($_POST['action']) && $_POST['action'] == 'term_lang_choice' && !(isset($args['class']) || isset($args['unit'])))
341
+ return $clauses;
342
+
343
+ // ajax response for changing the language in the post metabox (or in the edit-tags panels)
344
+ if (isset($_POST['lang']))
345
+ $lang = $this->model->get_language($_POST['lang']);
346
+
347
+ // ajax tag search since WP 3.7
348
+ elseif (!empty($_GET['lang']) && isset($_GET['action']) && 'polylang-ajax-tag-search' == $_GET['action'])
349
+ $lang = $this->model->get_language($_GET['lang']);
350
+
351
+ // the post is created with the 'add new' (translation) link
352
+ elseif (!empty($_GET['new_lang']))
353
+ $lang = $this->model->get_language($_GET['new_lang']);
354
+
355
+ // the language filter selection has just changed
356
+ // test $screen->base to avoid interference between the language filter and the post language selection and the category parent dropdown list
357
+ elseif (!empty($_GET['lang']) && !in_array($screen->base, array('post', 'edit-tags'))) {
358
+ if ($_GET['lang'] != 'all')
359
+ $lang = $this->model->get_language($_GET['lang']);
360
+ elseif ($screen->base == 'edit-tags' && isset($args['class']))
361
+ $lang = $this->pref_lang; // parent dropdown
362
+ }
363
+
364
+ // again the language filter
365
+ elseif (($lg = get_user_meta(get_current_user_id(), 'pll_filter_content', true)) &&
366
+ $screen->base != 'post' && !($screen->base == 'edit-tags' && isset($args['class']))) // don't apply to post edit and the category parent dropdown list
367
+ $lang = $this->model->get_language($lg);
368
+
369
+ elseif (isset($_GET['post']))
370
+ $lang = $this->model->get_post_language($_GET['post']);
371
+
372
+ // for the parent dropdown list in edit term
373
+ elseif (isset($_GET['tag_ID']))
374
+ $lang = $this->model->get_term_language($_GET['tag_ID']);
375
+
376
+ // when a new category is created in the edit post panel
377
+ elseif (isset($_POST['term_lang_choice']))
378
+ $lang = $this->model->get_language($_POST['term_lang_choice']);
379
+
380
+ // for a new post (or the parent dropdown list of a new term)
381
+ elseif (isset($screen) && ($screen->base == 'post' || ($screen->base == 'edit-tags' && isset($args['class']))))
382
+ $lang = $this->pref_lang;
383
+
384
+ // adds our clauses to filter by current language
385
+ return !empty($lang) ? $this->model->terms_clauses($clauses, $lang) : $clauses;
386
+ }
387
+
388
+ /*
389
+ * replaces ajax tag search of WP to filter tags by language
390
+ * backward compatibility WP < 3.7
391
+ * see http://core.trac.wordpress.org/ticket/25231
392
+ *
393
+ * @since 0.7
394
+ */
395
+ public function ajax_tag_search() {
396
+ global $wpdb;
397
+
398
+ if ( isset( $_GET['tax'] ) ) {
399
+ $taxonomy = sanitize_key( $_GET['tax'] );
400
+ $tax = get_taxonomy( $taxonomy );
401
+ if ( ! $tax )
402
+ die( '0' );
403
+ if ( ! current_user_can( $tax->cap->assign_terms ) )
404
+ die( '-1' );
405
+ } else {
406
+ die('0');
407
+ }
408
+
409
+ $s = stripslashes( $_GET['q'] );
410
+
411
+ if ( false !== strpos( $s, ',' ) ) {
412
+ $s = explode( ',', $s );
413
+ $s = $s[count( $s ) - 1];
414
+ }
415
+ $s = trim( $s );
416
+ if ( strlen( $s ) < 2 )
417
+ die; // require 2 chars for matching
418
+
419
+ $lang = $this->model->get_language($_GET['lang']);
420
+
421
+ $results = $wpdb->get_col( $wpdb->prepare(
422
+ "SELECT t.name FROM $wpdb->term_taxonomy AS tt
423
+ INNER JOIN $wpdb->terms AS t ON tt.term_id = t.term_id
424
+ INNER JOIN $wpdb->term_relationships AS pll_tr ON pll_tr.object_id = t.term_id
425
+ WHERE tt.taxonomy = %s AND t.name LIKE (%s) AND pll_tr.term_taxonomy_id = %d",
426
+ $taxonomy, '%' . like_escape( $s ) . '%', $lang->tl_term_taxonomy_id ) );
427
+
428
+ echo join( $results, "\n" );
429
+ die;
430
+ }
431
+
432
+ /*
433
+ * hack to avoid displaying delete link for the default category in all languages
434
+ *
435
+ * @since 1.2
436
+ *
437
+ * @param int $value
438
+ * @return int
439
+ */
440
+ function option_default_category($value) {
441
+ $traces = debug_backtrace();
442
+
443
+ return isset($traces[4]) && in_array($traces[4]['function'], array('column_cb', 'column_name')) && in_array($traces[4]['args'][0]->term_id, $this->model->get_translations('term', $value)) ?
444
+ $traces[4]['args'][0]->term_id : $value;
445
+ }
446
+ }
admin/admin-filters.php ADDED
@@ -0,0 +1,178 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * setup miscellaneous admin filters
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Admin_Filters {
9
+ public $links_model, $model, $options;
10
+ public $pref_lang;
11
+
12
+ /*
13
+ * constructor: setups filters and actions
14
+ *
15
+ * @since 1.2
16
+ *
17
+ * @param object $links_model
18
+ * @param object $pref_lang language chosen in admin filter or default language
19
+ */
20
+ public function __construct(&$links_model, $pref_lang) {
21
+ $this->links_model = &$links_model;
22
+ $this->model = &$links_model->model;
23
+ $this->options = &$this->model->options;
24
+
25
+ $this->pref_lang = $pref_lang;
26
+
27
+ // widgets languages filter
28
+ add_action('in_widget_form', array(&$this, 'in_widget_form'));
29
+ add_filter('widget_update_callback', array(&$this, 'widget_update_callback'), 10, 4);
30
+
31
+ // language management for users
32
+ add_action('personal_options_update', array(&$this, 'personal_options_update'));
33
+ add_action('edit_user_profile_update', array(&$this, 'personal_options_update'));
34
+ add_action('personal_options', array(&$this, 'personal_options'));
35
+
36
+ // refresh rewrite rules if the 'page_on_front' option is modified
37
+ add_action('update_option_page_on_front', 'flush_rewrite_rules');
38
+
39
+ // ugrades languages files after a core upgrade (timing is important)
40
+ // FIXME private action ? is there a better way to do this ?
41
+ add_action( '_core_updated_successfully', array(&$this, 'upgrade_languages'), 1); // since WP 3.3
42
+
43
+ // filters comments by language
44
+ add_filter('comments_clauses', array(&$this, 'comments_clauses'), 10, 2);
45
+
46
+ }
47
+
48
+
49
+ /*
50
+ * modifies the widgets forms to add our language dropdwown list
51
+ *
52
+ * @since 0.3
53
+ *
54
+ * @param object $widget
55
+ */
56
+ public function in_widget_form($widget) {
57
+ $dropdown = new PLL_Walker_Dropdown();
58
+ printf('<p><label for="%1$s">%2$s%3$s</label></p>',
59
+ esc_attr( $widget->id.'_lang_choice'),
60
+ __('The widget is displayed for:', 'polylang'),
61
+ $dropdown->walk(
62
+ array_merge(
63
+ array((object) array('slug' => 0, 'name' => __('All languages', 'polylang'))),
64
+ $this->model->get_languages_list()
65
+ ),
66
+ array(
67
+ 'name' => $widget->id.'_lang_choice',
68
+ 'class' => 'tags-input',
69
+ 'selected' => empty($this->options['widgets'][$widget->id]) ? '' : $this->options['widgets'][$widget->id]
70
+ )
71
+ )
72
+ );
73
+ }
74
+
75
+ /*
76
+ * called when widget options are saved
77
+ * saves the language associated to the widget
78
+ *
79
+ * @since 0.3
80
+ *
81
+ * @param array $instance not used
82
+ * @param array $new_instance not used
83
+ * @param array $old_instance not used
84
+ * @param object $widget WP_Widget object
85
+ * @return array unmodified $instance
86
+ */
87
+ public function widget_update_callback($instance, $new_instance, $old_instance, $widget) {
88
+ $this->options['widgets'][$widget->id] = $_POST[$widget->id.'_lang_choice'];
89
+ update_option('polylang', $this->options);
90
+ return $instance;
91
+ }
92
+
93
+ /*
94
+ * updates language user preference set in user profile
95
+ *
96
+ * @since 0.4
97
+ *
98
+ * @param int $user_id
99
+ */
100
+ public function personal_options_update($user_id) {
101
+ update_user_meta($user_id, 'user_lang', $_POST['user_lang']); // admin language
102
+ foreach ($this->model->get_languages_list() as $lang)
103
+ update_user_meta($user_id, 'description_'.$lang->slug, $_POST['description_'.$lang->slug]); // biography translations
104
+ }
105
+
106
+ /*
107
+ * form for language user preference in user profile
108
+ *
109
+ * @since 0.4
110
+ *
111
+ * @param object $profileuser
112
+ */
113
+ public function personal_options($profileuser) {
114
+ $dropdown = new PLL_Walker_Dropdown();
115
+ printf('
116
+ <tr>
117
+ <th><label for="user_lang">%s</label></th>
118
+ <td>%s</td>
119
+ </tr>',
120
+ __('Admin language', 'polylang'),
121
+ $dropdown->walk(
122
+ array_merge(
123
+ array((object) array('locale' => 0, 'name' => __('Wordpress default', 'polylang'))),
124
+ $this->model->get_languages_list()
125
+ ),
126
+ array(
127
+ 'name' => 'user_lang',
128
+ 'value' => 'locale',
129
+ 'selected' => get_user_meta($profileuser->ID, 'user_lang', true),
130
+ )
131
+ )
132
+ );
133
+
134
+ // hidden informations to modify the biography form with js
135
+ foreach ($this->model->get_languages_list() as $lang)
136
+ printf('<input type="hidden" class="biography" name="%s-%s" value="%s" />',
137
+ esc_attr($lang->slug),
138
+ esc_attr($lang->name),
139
+ esc_attr(get_user_meta($profileuser->ID, 'description_'.$lang->slug, true))
140
+ );
141
+ }
142
+
143
+ /*
144
+ * ugrades languages files after a core upgrade
145
+ *
146
+ * @since 0.6
147
+ *
148
+ * @param string $version WP version
149
+ */
150
+ public function upgrade_languages($version) {
151
+ apply_filters('update_feedback', __('Upgrading language files&#8230;', 'polylang'));
152
+ foreach ($this->model->get_languages_list() as $language)
153
+ if ($language->locale != $_POST['locale']) // do not (re)update the language files of a localized WordPress
154
+ PLL_Admin::download_mo($language->locale, $version);
155
+ }
156
+
157
+ /*
158
+ * filters comments by language
159
+ *
160
+ * @since 0.9
161
+ *
162
+ * @param array $clauses sql clauses
163
+ * @param object $query WP_Comment_Query object
164
+ * @return array modified clauses
165
+ */
166
+ public function comments_clauses($clauses, $query) {
167
+ if (!empty($query->query_vars['lang']))
168
+ $lang = $query->query_vars['lang'];
169
+
170
+ elseif (!empty($_GET['lang']) && $_GET['lang'] != 'all')
171
+ $lang = $this->model->get_language($_GET['lang']);
172
+
173
+ elseif ($lg = get_user_meta(get_current_user_id(), 'pll_filter_content', true))
174
+ $lang = $this->model->get_language($lg);
175
+
176
+ return empty($lang) ? $clauses : $this->model->comments_clauses($clauses, $lang);
177
+ }
178
+ }
admin/admin-model.php ADDED
@@ -0,0 +1,379 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * extends the PLL_Model class with methods needed only in Polylang settings pages
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Admin_Model extends PLL_Model {
9
+
10
+ /*
11
+ * constructor
12
+ *
13
+ * @since 1.2
14
+ *
15
+ * @param array $options Polylang options
16
+ */
17
+ public function __construct(&$options) {
18
+ parent::__construct($options);
19
+ }
20
+
21
+ /*
22
+ * adds a new language
23
+ * creates a default category for this language
24
+ *
25
+ * list of arguments that $args must contain:
26
+ * name -> language name (used only for display)
27
+ * slug -> language code (ideally 2-letters ISO 639-1 language code
28
+ * locale -> WordPress locale. If something wrong is used for the locale, the .mo files will not be loaded...
29
+ * rtl -> 1 if rtl language, 0 otherwise
30
+ * term_group -> language order when displayed
31
+ *
32
+ * optional arguments that $args can contain:
33
+ * no_default_cat -> if set, no default category will be created for this language
34
+ *
35
+ * @since 1.2
36
+ *
37
+ * @param array $args
38
+ * @return int error code
39
+ */
40
+ public function add_language($args) {
41
+ if ($error = $this->validate_lang($args))
42
+ return $error;
43
+
44
+ // first the language taxonomy
45
+ $description = serialize(array('locale' => $args['locale'], 'rtl' => $args['rtl']));
46
+ $r = wp_insert_term($args['name'], 'language', array('slug' => $args['slug'], 'description' => $description));
47
+ wp_update_term((int) $r['term_id'], 'language', array('term_group' => $args['term_group'])); // can't set the term group directly in wp_insert_term
48
+
49
+ // the term_language taxonomy
50
+ // don't want shared terms so use a different slug
51
+ wp_insert_term($args['name'], 'term_language', array('slug' => 'pll_' . $args['slug']));
52
+
53
+ $this->clean_languages_cache(); // udpate the languages list now !
54
+
55
+ if (!isset($this->options['default_lang'])) {
56
+ // if this is the first language created, set it as default language
57
+ $this->options['default_lang'] = $args['slug'];
58
+ update_option('polylang', $this->options);
59
+
60
+ // and assign default language to default category
61
+ $this->set_term_language((int) get_option('default_category'), (int) $r['term_id']);
62
+ }
63
+ elseif (empty($args['no_default_cat']))
64
+ $this->create_default_category($args['slug']);
65
+
66
+ flush_rewrite_rules(); // refresh rewrite rules
67
+ return $error;
68
+ }
69
+
70
+ /*
71
+ * create a default category for a language
72
+ *
73
+ * @since 1.2
74
+ *
75
+ * @param object|string|int $lang language
76
+ */
77
+ public function create_default_category($lang) {
78
+ $lang = $this->get_language($lang);
79
+
80
+ // create a new category
81
+ $cat_name = __('Uncategorized');
82
+ $cat_slug = sanitize_title($cat_name . '-' . $lang->slug);
83
+ $cat = wp_insert_term($cat_name, 'category', array('slug' => $cat_slug));
84
+
85
+ // check that the category was not previously created (in case the language was deleted and recreated)
86
+ $cat = isset($cat->error_data['term_exists']) ? $cat->error_data['term_exists'] : $cat['term_id'];
87
+
88
+ // set language
89
+ $this->set_term_language((int) $cat, $lang);
90
+
91
+ // this is a translation of the default category
92
+ $default = (int) get_option('default_category');
93
+ $translations = $this->get_translations('term', $default);
94
+ if (empty($translations)) {
95
+ if ($lg = $this->get_term_language($default))
96
+ $translations[$lg->slug] = $default;
97
+ else
98
+ $translations = array();
99
+ }
100
+
101
+ $this->save_translations('term', (int) $cat, $translations);
102
+ }
103
+
104
+ /*
105
+ * delete a language
106
+ *
107
+ * @since 1.2
108
+ *
109
+ * @param int $lang_id language term_id
110
+ */
111
+ public function delete_language($lang_id) {
112
+ $lang = $this->get_language((int) $lang_id);
113
+ $default_cats = $this->get_translations('term', get_option('default_category'));
114
+
115
+ // delete the translations
116
+ $this->update_translations($lang->slug);
117
+
118
+ // delete language option in widgets
119
+ if (!empty($this->options['widgets'])) {
120
+ foreach ($this->options['widgets'] as $key => $slug) {
121
+ if ($slug == $lang->slug)
122
+ unset($this->options['widgets'][$key]);
123
+ }
124
+ }
125
+
126
+ // delete menus locations
127
+ $locations = get_theme_mod('nav_menu_locations');
128
+ foreach ($locations as $loc => $menu)
129
+ if (false !== strpos($loc, '#' . $lang->slug))
130
+ unset($locations[$loc]);
131
+ set_theme_mod('nav_menu_locations', $locations);
132
+
133
+ // delete users options
134
+ foreach (get_users(array('fields' => 'ID')) as $user_id) {
135
+ delete_user_meta($user_id, 'user_lang', $lang->locale);
136
+ delete_user_meta($user_id, 'pll_filter_content', $lang->slug);
137
+ delete_user_meta($user_id, 'description_'.$lang->slug);
138
+ }
139
+
140
+ // delete the string translations
141
+ $post = get_page_by_title('polylang_mo_' . $lang->term_id, OBJECT, 'polylang_mo');
142
+ if (!empty($post))
143
+ wp_delete_post($post->ID);
144
+
145
+ // delete domain
146
+ unset($this->options['domains'][$lang->slug]);
147
+
148
+ // delete the language itself
149
+ wp_delete_term($lang->term_id, 'language');
150
+ wp_delete_term($lang->tl_term_id, 'term_language');
151
+
152
+ // update languages list
153
+ $this->clean_languages_cache();
154
+
155
+ // oops ! we deleted the default language...
156
+ if ($this->options['default_lang'] == $lang->slug) {
157
+ if ($slugs = $this->get_languages_list(array('fields' => 'slug'))) {
158
+ $this->options['default_lang'] = $slug = reset($slugs); // arbitrary choice...
159
+
160
+ // the default category should be in the default language
161
+ if (isset($default_cats[$slug]))
162
+ update_option('default_category', $default_cats[$slug]);
163
+ }
164
+ else
165
+ unset($this->options['default_lang']);
166
+ }
167
+
168
+ update_option('polylang', $this->options);
169
+ flush_rewrite_rules(); // refresh rewrite rules
170
+ }
171
+
172
+ /*
173
+ * update language properties
174
+ *
175
+ * list of arguments that $args must contain:
176
+ * lang_id -> term_id of the language to modify
177
+ * name -> language name (used only for display)
178
+ * slug -> language code (ideally 2-letters ISO 639-1 language code
179
+ * locale -> WordPress locale. If something wrong is used for the locale, the .mo files will not be loaded...
180
+ * rtl -> 1 if rtl language, 0 otherwise
181
+ * term_group -> language order when displayed
182
+ *
183
+ * @since 1.2
184
+ *
185
+ * @param array $args
186
+ * @return int error code
187
+ */
188
+ public function update_language($args) {
189
+ $lang = $this->get_language((int) $args['lang_id']);
190
+ if ($error = $this->validate_lang($args, $lang))
191
+ return $error;
192
+
193
+ // Update links to this language in posts and terms in case the slug has been modified
194
+ $slug = $args['slug'];
195
+ $old_slug = $lang->slug;
196
+
197
+ // FIXME should do this in an action 'edit_term' to prevent translations to break when sharing a term with nav_menu
198
+ if ($old_slug != $slug) {
199
+ // update the language slug in translations
200
+ $this->update_translations($old_slug, $slug);
201
+
202
+ // update language option in widgets
203
+ if (!empty($this->options['widgets'])) {
204
+ foreach ($this->options['widgets'] as $key => $lg) {
205
+ if ($lg == $old_slug)
206
+ $this->options['widgets'][$key] = $slug;
207
+ }
208
+ }
209
+
210
+ // update menus locations
211
+ $locations = get_theme_mod('nav_menu_locations');
212
+ foreach ($locations as $loc => $menu) {
213
+ $loc = str_replace('#' . $old_slug, '#' . $slug, $loc);
214
+ $new_locations[$loc] = $menu;
215
+ }
216
+ set_theme_mod('nav_menu_locations', $new_locations);
217
+
218
+ // update domains
219
+ if (!empty($this->options['domains'][$old_slug])) {
220
+ $this->options['domains'][$slug] = $this->options['domains'][$old_slug];
221
+ unset($this->options['domains'][$slug]);
222
+ }
223
+
224
+ // update the default language option if necessary
225
+ if ($this->options['default_lang'] == $old_slug)
226
+ $this->options['default_lang'] = $slug;
227
+ }
228
+
229
+ update_option('polylang', $this->options);
230
+
231
+ // and finally update the language itself
232
+ $description = serialize(array('locale' => $args['locale'], 'rtl' => $args['rtl']));
233
+ wp_update_term((int) $lang->term_id, 'language', array('slug' => $slug, 'name' => $args['name'], 'description' => $description, 'term_group' => $args['term_group']));
234
+ wp_update_term((int) $lang->tl_term_id, 'term_language', array('slug' => 'pll_' . $slug, 'name' => $args['name']));
235
+
236
+ $this->clean_languages_cache();
237
+ flush_rewrite_rules(); // refresh rewrite rules
238
+ return $error;
239
+ }
240
+
241
+ /*
242
+ * validates data entered when creating or updating a language
243
+ *
244
+ * @since 0.4
245
+ *
246
+ * @param array $args
247
+ * @param object $lang optional the language currently updated, the language is created if not set
248
+ * @return int error code
249
+ * @see PLL_Admin_Model::add_language
250
+ */
251
+ protected function validate_lang($args, $lang = null) {
252
+ // validate locale
253
+ if ( !preg_match('#^[A-Za-z_]+$#', $args['locale']))
254
+ $error = 1;
255
+
256
+ // validate slug characters
257
+ if (!preg_match('#^[a-z_-]+$#', $args['slug']))
258
+ $error = 2;
259
+
260
+ // validate slug is unique
261
+ if ($this->get_language($args['slug']) && ($lang === null || (isset($lang) && $lang->slug != $args['slug'])))
262
+ $error = 3;
263
+
264
+ // validate name
265
+ if ($args['name'] == '')
266
+ $error = 4;
267
+
268
+ return isset($error) ? $error : 0;
269
+ }
270
+
271
+ /*
272
+ * used to set the language of posts or terms in mass
273
+ *
274
+ * @since 1.2
275
+ *
276
+ * @param string $type either 'post' or 'term'
277
+ * @param array $ids array of post ids or term ids
278
+ * @param object|string $lang object or slug
279
+ */
280
+ public function set_language_in_mass($type, $ids, $lang) {
281
+ global $wpdb;
282
+
283
+ $lang = $this->get_language($lang);
284
+ $tt_id = 'term' == $type ? $lang->tl_term_taxonomy_id : $lang->term_taxonomy_id;
285
+
286
+ foreach ($ids as $id)
287
+ $values[] = $wpdb->prepare("(%d, %d)", $id, $tt_id);
288
+
289
+ if (!empty($values)) {
290
+ $values = array_unique($values);
291
+ $wpdb->query("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id) VALUES " . implode(',', $values));
292
+ $lang->update_count(); // updating term count is mandatory (thanks to AndyDeGroo)
293
+ $this->clean_languages_cache(); // to update the posts count in (cached) languages list
294
+ }
295
+ }
296
+
297
+ /*
298
+ * returns unstranslated posts and terms ids (used in settings)
299
+ *
300
+ * @since 0.9
301
+ *
302
+ * @return array array made of an array of post ids and an array of term ids
303
+ */
304
+ public function get_objects_with_no_lang() {
305
+ $posts = get_posts(array(
306
+ 'numberposts' => -1,
307
+ 'nopaging' => true,
308
+ 'post_type' => $this->post_types,
309
+ 'post_status' => 'any',
310
+ 'fields' => 'ids',
311
+ 'tax_query' => array(array(
312
+ 'taxonomy' => 'language',
313
+ 'terms' => $this->get_languages_list(array('fields' => 'term_id')),
314
+ 'operator' => 'NOT IN'
315
+ ))
316
+ ));
317
+
318
+ $terms = get_terms($this->taxonomies, array('get'=>'all', 'fields'=>'ids'));
319
+ $groups = $this->get_languages_list(array('fields' => 'tl_term_id'));
320
+ $tr_terms = get_objects_in_term($groups, 'term_language');
321
+ $terms = array_unique(array_diff($terms, $tr_terms)); // array_unique to avoid duplicates if a term is in more than one taxonomy
322
+
323
+ return apply_filters('pll_get_objects_with_no_lang', empty($posts) && empty($terms) ? false : array('posts' => $posts, 'terms' => $terms));
324
+ }
325
+
326
+ /*
327
+ * used to delete translations or update the translations when a language slug has been modified in settings
328
+ *
329
+ * @since 0.5
330
+ *
331
+ * @param string $old_slug the old language slug
332
+ * @param string $new_slug optional, the new language slug, if not set it means the correspondant has been deleted
333
+ */
334
+ public function update_translations($old_slug, $new_slug = '') {
335
+ global $wpdb;
336
+
337
+ $terms = get_terms(array('post_translations', 'term_translations'));
338
+
339
+ foreach ($terms as $term) {
340
+ $tr = unserialize($term->description);
341
+ if (!empty($tr[$old_slug])) {
342
+ if ($new_slug)
343
+ $tr[$new_slug] = $tr[$old_slug]; // suppress this for delete
344
+ else {
345
+ $dr['id'][] = (int) $tr[$old_slug];
346
+ $dr['tt'][] = (int) $term->term_taxonomy_id;
347
+ }
348
+ unset($tr[$old_slug]);
349
+
350
+ if (empty($tr) || 1 == count($tr)) {
351
+ $dt['t'][] = (int) $term->term_id;
352
+ $dt['tt'][] = (int) $term->term_taxonomy_id;
353
+ }
354
+ else {
355
+ $ut['case'][] = $wpdb->prepare('WHEN %d THEN %s', $term->term_id, serialize($tr));
356
+ $ut['in'][] = (int) $term->term_id;
357
+ }
358
+ }
359
+ }
360
+
361
+ // delete relationships
362
+ if (!empty($dr))
363
+ $wpdb->query("DELETE FROM $wpdb->term_relationships
364
+ WHERE object_id IN ( " . implode(',', $dr['id']) . " )
365
+ AND term_taxonomy_id IN ( " . implode(',', $dr['tt']) . " )");
366
+
367
+ // delete terms
368
+ if (!empty($dt)) {
369
+ $wpdb->query("DELETE FROM $wpdb->terms WHERE term_id IN ( " . implode(',', $dt['t']) . " ) ");
370
+ $wpdb->query("DELETE FROM $wpdb->term_taxonomy WHERE term_taxonomy_id IN ( " . implode(',', $dt['tt']) . " ) ");
371
+ }
372
+
373
+ // update terms
374
+ if (!empty($uy))
375
+ $wpdb->query("UPDATE $wpdb->term_taxonomy
376
+ SET description = ( CASE term_id " . implode(' ', $ut['case']) . " END )
377
+ WHERE term_id IN ( " . implode(',', $ut['in']) . " )");
378
+ }
379
+ }
admin/admin-nav-menu.php ADDED
@@ -0,0 +1,271 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * manages custom menus translations as well as the language switcher menu item on admin side
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Admin_Nav_Menu {
9
+
10
+ /*
11
+ * constructor: setups filters and actions
12
+ *
13
+ * @since 1.2
14
+ *
15
+ * @param object $model instance of PLL_Model
16
+ */
17
+ public function __construct(&$model) {
18
+ $this->model = $model;
19
+
20
+ // integration in the WP menu interface
21
+ add_action('admin_init', array(&$this, 'admin_init')); // after Polylang upgrade
22
+
23
+ // integration with WP customizer
24
+ add_action('customize_register', array(&$this, 'create_nav_menu_locations'), 5);
25
+
26
+ // protection against #24802
27
+ add_filter('pre_insert_term', array(&$this, 'pre_insert_term'), 10, 2);
28
+ }
29
+
30
+ /*
31
+ * setups filters and terms
32
+ * adds the language switcher metabox and create new nav menu locations
33
+ *
34
+ * @since 1.1
35
+ */
36
+ public function admin_init(){
37
+ add_action('admin_enqueue_scripts', array(&$this, 'admin_enqueue_scripts'));
38
+ add_action('wp_update_nav_menu_item', array(&$this, 'wp_update_nav_menu_item'), 10, 2);
39
+ add_filter('wp_get_nav_menu_items', array(&$this, 'translate_switcher_title'));
40
+
41
+ // translation of menus based on chosen locations
42
+ add_filter('pre_update_option_theme_mods_' . get_option( 'stylesheet' ), array($this, 'update_nav_menu_locations'));
43
+ add_filter('theme_mod_nav_menu_locations', array($this, 'nav_menu_locations'), 20);
44
+
45
+ // filter _wp_auto_add_pages_to_menu by language
46
+ add_action('transition_post_status', array(&$this, 'auto_add_pages_to_menu'), 5, 3); // before _wp_auto_add_pages_to_menu
47
+
48
+ // FIXME is it possible to choose the order (after theme locations in WP3.5 and older) ?
49
+ // FIXME not displayed if Polylang is activated before the first time the user goes to nav menus http://core.trac.wordpress.org/ticket/16828
50
+ add_meta_box('pll_lang_switch_box', __('Language switcher', 'polylang'), array( &$this, 'lang_switch' ), 'nav-menus', 'side', 'high');
51
+
52
+ $this->create_nav_menu_locations();
53
+ }
54
+
55
+ /*
56
+ * create temporary nav menu locations (one per location and per language) for all non-default language
57
+ *
58
+ * @since 1.2
59
+ */
60
+ public function create_nav_menu_locations() {
61
+ global $_wp_registered_nav_menus;
62
+
63
+ if (isset($_wp_registered_nav_menus)) {
64
+ foreach ($_wp_registered_nav_menus as $loc => $name)
65
+ foreach ($this->model->get_languages_list() as $lang)
66
+ $arr[$loc . (pll_default_language() == $lang->slug ? '' : '___' . $lang->slug)] = $name . ' ' . $lang->name;
67
+
68
+ $_wp_registered_nav_menus = $arr;
69
+ }
70
+ }
71
+
72
+ /*
73
+ * language switcher metabox
74
+ * The checkbox and all hidden fields are important
75
+ * thanks to John Morris for his very interesting post http://www.johnmorrisonline.com/how-to-add-a-fully-functional-custom-meta-box-to-wordpress-navigation-menus/
76
+ *
77
+ * @since 1.1
78
+ */
79
+ public function lang_switch() {
80
+ global $_nav_menu_placeholder, $nav_menu_selected_id;
81
+ $_nav_menu_placeholder = 0 > $_nav_menu_placeholder ? $_nav_menu_placeholder - 1 : -1;?>
82
+
83
+ <div id="posttype-lang-switch" class="posttypediv">
84
+ <div id="tabs-panel-lang-switch" class="tabs-panel tabs-panel-active">
85
+ <ul id ="lang-switch-checklist" class="categorychecklist form-no-clear">
86
+ <li>
87
+ <label class="menu-item-title">
88
+ <input type="checkbox" class="menu-item-checkbox" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-object-id]" value="-1"> <?php _e('Language switcher', 'polylang'); ?>
89
+ </label>
90
+ <input type="hidden" class="menu-item-type" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-type]" value="custom">
91
+ <input type="hidden" class="menu-item-title" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-title]" value="<?php _e('Language switcher', 'polylang'); ?>">
92
+ <input type="hidden" class="menu-item-url" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-url]" value="#pll_switcher">
93
+ </li>
94
+ </ul>
95
+ </div>
96
+ <p class="button-controls">
97
+ <span class="add-to-menu">
98
+ <input type="submit" <?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu right" value="Add to Menu" name="add-post-type-menu-item" id="submit-posttype-lang-switch">
99
+ <span class="spinner"></span>
100
+ </span>
101
+ </p>
102
+ </div><?php
103
+ }
104
+
105
+ /*
106
+ * prepares javascript to modify the language switcher menu item
107
+ *
108
+ * @since 1.1
109
+ */
110
+ public function admin_enqueue_scripts() {
111
+ $screen = get_current_screen();
112
+ if ('nav-menus' != $screen->base)
113
+ return;
114
+
115
+ $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
116
+ wp_enqueue_script('pll_nav_menu', POLYLANG_URL .'/js/nav-menu'.$suffix.'.js', array('jquery'), POLYLANG_VERSION);
117
+
118
+ // the strings for the options
119
+ foreach (array_reverse(PLL_Switcher::get_switcher_options('menu', 'string')) as $str)
120
+ $data['strings'][] = $str;
121
+
122
+ $data['strings'][] = __('Language switcher', 'polylang'); // the title
123
+
124
+ // get all language switcher menu items
125
+ $items = get_posts(array(
126
+ 'numberposts' => -1,
127
+ 'nopaging' => true,
128
+ 'post_type' => 'nav_menu_item',
129
+ 'fields' => 'ids',
130
+ 'meta_key' => '_pll_menu_item'
131
+ ));
132
+
133
+ // the options values for the language switcher
134
+ $data['val'] = array();
135
+ foreach ($items as $item)
136
+ $data['val'][$item] = get_post_meta($item, '_pll_menu_item', true);
137
+
138
+ // send all these data to javascript
139
+ wp_localize_script('pll_nav_menu', 'pll_data', $data);
140
+ }
141
+
142
+ /*
143
+ * save our menu item options
144
+ *
145
+ * @since 1.1
146
+ *
147
+ * @param int $menu_id not used
148
+ * @param int $menu_item_db_id
149
+ */
150
+ public function wp_update_nav_menu_item( $menu_id = 0, $menu_item_db_id = 0 ) {
151
+ if (empty($_POST['menu-item-url'][$menu_item_db_id]) || $_POST['menu-item-url'][$menu_item_db_id] != '#pll_switcher')
152
+ return;
153
+
154
+ $options = array('hide_current' => 0,'force_home' => 0 ,'show_flags' => 0 ,'show_names' => 1); // default values
155
+ // our jQuery form has not been displayed
156
+ if (empty($_POST['menu-item-pll-detect'][$menu_item_db_id])) {
157
+ if (!get_post_meta($menu_item_db_id, '_pll_menu_item', true)) // our options were never saved
158
+ update_post_meta($menu_item_db_id, '_pll_menu_item', $options);
159
+ }
160
+ else {
161
+ foreach ($options as $opt => $v)
162
+ $options[$opt] = empty($_POST['menu-item-'.$opt][$menu_item_db_id]) ? 0 : 1;
163
+ update_post_meta($menu_item_db_id, '_pll_menu_item', $options); // allow us to easily identify our nav menu item
164
+ }
165
+
166
+ }
167
+
168
+ /*
169
+ * translates the language switcher menu items title in case the user switches the admin language
170
+ *
171
+ * @since 1.1.1
172
+ *
173
+ * @param array $items
174
+ * @return array modified $items
175
+ */
176
+ public function translate_switcher_title($items) {
177
+ foreach ($items as $item)
178
+ if ('#pll_switcher' == $item->url)
179
+ $item->post_title = __('Language switcher', 'polylang');
180
+ return $items;
181
+ }
182
+
183
+ /*
184
+ * assign menu languages and translations based on (temporary) locations
185
+ *
186
+ * @since 1.1
187
+ *
188
+ * @param array $mods theme mods
189
+ * @return unmodified $mods
190
+ */
191
+ public function update_nav_menu_locations($mods) {
192
+ if (isset($mods['nav_menu_locations'])) {
193
+ $default = pll_default_language();
194
+ $arr = array();
195
+
196
+ // extract language and menu from locations
197
+ foreach ($mods['nav_menu_locations'] as $loc => $menu) {
198
+ if ($pos = strpos($loc, '___')) {
199
+ $arr[substr($loc, 0, $pos)][substr($loc, $pos+3)] = $menu;
200
+ unset($mods['nav_menu_locations'][$loc]); // remove temporary locations before database update
201
+ }
202
+ else
203
+ $arr[$loc][$default] = $menu;
204
+ }
205
+
206
+ // assign menus language and translations
207
+ foreach ($arr as $loc => $translations) {
208
+ foreach ($translations as $lang=>$menu) {
209
+ $this->model->set_term_language($menu, $lang);
210
+ $this->model->save_translations('term', $menu, $translations);
211
+ }
212
+ }
213
+ }
214
+ return $mods;
215
+ }
216
+
217
+ /*
218
+ * fills temporary menu locations based on menus translations
219
+ *
220
+ * @since 1.2
221
+ *
222
+ * @param bool|array $menus
223
+ * @return bool|array modified list of menu locations
224
+ */
225
+ public function nav_menu_locations($menus) {
226
+ if (is_array($menus)) {
227
+ foreach ($menus as $loc => $menu) {
228
+ foreach ($this->model->get_languages_list() as $lang) {
229
+ if (pll_default_language() != $lang->slug && $id = $this->model->get_term($menu, $lang))
230
+ $menus[$loc . '___' . $lang->slug] = $id;
231
+ }
232
+ }
233
+ }
234
+ return $menus;
235
+ }
236
+
237
+ /*
238
+ * filters _wp_auto_add_pages_to_menu by language
239
+ *
240
+ * @since 0.9.4
241
+ *
242
+ * @param string $new_status Transition to this post status.
243
+ * @param string $old_status Previous post status.
244
+ * @param object $post Post data.
245
+ */
246
+ public function auto_add_pages_to_menu( $new_status, $old_status, $post ) {
247
+ if ('publish' != $new_status || 'publish' == $old_status || 'page' != $post->post_type || ! empty($post->post_parent) || !($lang = $this->model->get_post_language($post->ID)))
248
+ return;
249
+
250
+ // get all the menus in the post language
251
+ $menus = get_terms('nav_menu', array('lang'=>$lang, 'fields'=>'ids', 'hide_empty'=>false));
252
+ $menus = implode(',', $menus);
253
+
254
+ add_filter('option_nav_menu_options', create_function('$a', "\$a['auto_add'] = array_intersect(\$a['auto_add'], array($menus)); return \$a;"));
255
+ }
256
+
257
+ /*
258
+ * FIXME prevents sharing a menu term with a language term by renaming the nav menu before its creation
259
+ * to avoid http://core.trac.wordpress.org/ticket/24802
260
+ * and http://wordpress.org/support/topic/all-connection-between-elements-lost
261
+ *
262
+ * @since 1.1.3
263
+ *
264
+ * @param string $name term name
265
+ * @param string $taxonomy
266
+ * @return string modified (nav menu) term name if necessary
267
+ */
268
+ function pre_insert_term($name, $taxonomy) {
269
+ return ('nav_menu' == $taxonomy && in_array($name, $this->model->get_languages_list(array('fields' => 'name')))) ? $name .= '-menu' : $name;
270
+ }
271
+ }
admin/admin-sync.php ADDED
@@ -0,0 +1,235 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * manages copy and synchronization of terms and post metas
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Admin_Sync {
9
+
10
+ /*
11
+ * constructor
12
+ *
13
+ * @since 1.2
14
+ */
15
+ public function __construct(&$model) {
16
+ $this->model = &$model;
17
+ $this->options = &$model->options;
18
+
19
+ add_filter('wp_insert_post_parent', array(&$this, 'wp_insert_post_parent'));
20
+ add_action('add_meta_boxes', array(&$this, 'add_meta_boxes'), 10, 2);
21
+
22
+ add_action('pll_save_post', array(&$this, 'pll_save_post'), 10, 3);
23
+
24
+ if (in_array('taxonomies', $this->options['sync']))
25
+ add_action('pll_save_term', array(&$this, 'pll_save_term'), 10, 3);
26
+ }
27
+
28
+ /*
29
+ * translate post parent if exists when using "Add new" (translation)
30
+ *
31
+ * @since 0.6
32
+ */
33
+ function wp_insert_post_parent($post_parent) {
34
+ return isset($_GET['from_post'], $_GET['new_lang']) && ($id = wp_get_post_parent_id($_GET['from_post'])) && ($parent = $this->model->get_translation('post', $id, $_GET['new_lang'])) ? $parent : $post_parent;
35
+ }
36
+
37
+ /*
38
+ * copy post metas, menu order, comment and ping status when using "Add new" (translation)
39
+ * formerly used dbx_post_advanced deprecated in WP 3.7
40
+ *
41
+ * @since 1.2
42
+ *
43
+ * @param string $post_type unused
44
+ * @param object $post current post object
45
+ */
46
+ function add_meta_boxes($post_type, $post) {
47
+ if (isset($_GET['from_post'], $_GET['new_lang'])) {
48
+ $this->copy_post_metas($_GET['from_post'], $post->ID, $_GET['new_lang']);
49
+
50
+ $from_post = get_post($_GET['from_post']);
51
+ foreach (array('menu_order', 'comment_status', 'ping_status') as $property)
52
+ $post->$property = $from_post->$property;
53
+
54
+ if (in_array('sticky_posts', $this->options['sync']) && is_sticky($_GET['from_post']))
55
+ stick_post($post->ID);
56
+ }
57
+ }
58
+
59
+ /*
60
+ * copy or synchronize terms and metas
61
+ *
62
+ * @since 0.9
63
+ *
64
+ * @param int $from id of the post from which we copy informations
65
+ * @param int $to id of the post to which we paste informations
66
+ * @param string $lang language slug
67
+ * @param bool $sync true if it is synchronization, false if it is a copy, defaults to false
68
+ */
69
+ protected function copy_post_metas($from, $to, $lang, $sync = false) {
70
+ // copy or synchronize terms
71
+ if (!$sync || in_array('taxonomies', $this->options['sync'])) {
72
+ // FIXME quite a lot of query in foreach
73
+ foreach ($this->model->taxonomies as $tax) {
74
+ $newterms = array();
75
+ $terms = get_the_terms($from, $tax);
76
+ if (is_array($terms)) {
77
+ foreach ($terms as $term) {
78
+ if ($term_id = $this->model->get_translation('term', $term->term_id, $lang))
79
+ $newterms[] = (int) $term_id; // cast is important otherwise we get 'numeric' tags
80
+ }
81
+ }
82
+
83
+ // for some reasons, the user may have untranslated terms in the translation. don't forget them.
84
+ if ($sync) {
85
+ $tr_terms = get_the_terms($to, $tax);
86
+ if (is_array($tr_terms)) {
87
+ foreach ($tr_terms as $term) {
88
+ if (!$this->model->get_translation('term', $term->term_id, $_POST['post_lang_choice']))
89
+ $newterms[] = (int) $term->term_id;
90
+ }
91
+ }
92
+ }
93
+
94
+ if (!empty($newterms) || $sync)
95
+ wp_set_object_terms($to, $newterms, $tax); // replace terms in translation
96
+ }
97
+ }
98
+
99
+ // copy or synchronize post formats
100
+ if (!$sync || in_array('post_format', $this->options['sync']))
101
+ ($format = get_post_format($from)) ? set_post_format($to, $format) : set_post_format($to, '');
102
+
103
+ // copy or synchronize post metas and allow plugins to do the same
104
+ $metas = get_post_custom($from);
105
+
106
+ // get public meta keys (including from translated post in case we just deleted a custom field)
107
+ if (!$sync || in_array('post_meta', $this->options['sync'])) {
108
+ foreach ($keys = array_unique(array_merge(array_keys($metas), array_keys(get_post_custom($to)))) as $k => $meta_key)
109
+ if (is_protected_meta($meta_key))
110
+ unset ($keys[$k]);
111
+ }
112
+
113
+ // add page template and featured image
114
+ foreach (array('_wp_page_template', '_thumbnail_id') as $meta)
115
+ if (!$sync || in_array($meta, $this->options['sync']))
116
+ $keys[] = $meta;
117
+
118
+ $keys = array_unique(apply_filters('pll_copy_post_metas', empty($keys) ? array() : $keys, $sync));
119
+
120
+ // and now copy / synchronize
121
+ foreach ($keys as $key) {
122
+ delete_post_meta($to, $key); // the synchronization process of multiple values custom fields is easier if we delete all metas first
123
+ if (isset($metas[$key])) {
124
+ foreach ($metas[$key] as $value) {
125
+ // important: always maybe_unserialize value coming from get_post_custom. See codex.
126
+ // thanks to goncalveshugo http://wordpress.org/support/topic/plugin-polylang-pll_copy_post_meta
127
+ $value = maybe_unserialize($value);
128
+ // special case for featured images which can be translated
129
+ add_post_meta($to, $key, ($key == '_thumbnail_id' && $tr_value = $this->model->get_translation('post', $value, $lang)) ? $tr_value : $value);
130
+ }
131
+ }
132
+ }
133
+ }
134
+
135
+ /*
136
+ * synchronizes terms and metas in translations
137
+ *
138
+ * @since 1.2
139
+ *
140
+ * @param int $post_id post id
141
+ * @param object $post post object
142
+ * @param array translations post translations
143
+ */
144
+ public function pll_save_post($post_id, $post, $translations) {
145
+ global $wpdb;
146
+
147
+ // prepare properties to synchronize
148
+ foreach (array('comment_status', 'ping_status', 'menu_order', 'post_date') as $property)
149
+ if (in_array($property, $this->options['sync']))
150
+ $postarr[$property] = $post->$property;
151
+
152
+ if (in_array('post_date', $this->options['sync']))
153
+ $post_arr['post_date_gmt'] = $post->post_date_gmt;
154
+
155
+ // synchronise terms and metas in translations
156
+ foreach ($translations as $lang => $tr_id) {
157
+ if (!$tr_id)
158
+ continue;
159
+
160
+ // synchronize terms and metas
161
+ $this->copy_post_metas($post_id, $tr_id, $lang, true);
162
+
163
+ // sticky posts
164
+ if (in_array('sticky_posts', $this->options['sync']))
165
+ isset($_REQUEST['sticky']) ? stick_post($tr_id) : unstick_post($tr_id);
166
+
167
+ // synchronize comment status, ping status, menu order...
168
+ if (!empty($postarr))
169
+ $wpdb->update($wpdb->posts, $postarr, array('ID' => $tr_id));
170
+
171
+ // FIXME: optimize the 2 db update in 1
172
+ // post parent
173
+ // do not udpate the translation parent if the user set a parent with no translation
174
+ if (in_array('post_parent', $this->options['sync'])) {
175
+ $post_parent = ($parent_id = wp_get_post_parent_id($post_id)) ? $this->model->get_translation('post', $parent_id, $lang) : 0;
176
+ if (!($parent_id && !$post_parent))
177
+ $wpdb->update($wpdb->posts, array('post_parent'=> $post_parent), array( 'ID' => $tr_id ));
178
+ }
179
+ }
180
+ }
181
+
182
+ /*
183
+ * synchronize translations of a term in all posts
184
+ *
185
+ * @since 1.2
186
+ *
187
+ * @param int $term_id term id
188
+ * @param string $taxonomy taxonomy name of the term
189
+ * @param array $translations translations of the term
190
+ */
191
+ public function pll_save_term($term_id, $taxonomy, $translations) {
192
+ // get all posts associated to this term
193
+ $posts = get_posts(array(
194
+ 'numberposts' => -1,
195
+ 'nopaging' => true,
196
+ 'post_type' => 'any',
197
+ 'post_status' => 'any',
198
+ 'fields' => 'ids',
199
+ 'tax_query' => array(array(
200
+ 'taxonomy' => $taxonomy,
201
+ 'field' => 'id',
202
+ 'terms' => array_merge(array($term_id), array_values($translations)),
203
+ ))
204
+ ));
205
+
206
+ // associate translated term to translated post
207
+ // FIXME quite a lot of query in foreach
208
+ foreach ($this->model->get_languages_list() as $language) {
209
+ if ($translated_term = $this->model->get_term($term_id, $language)) {
210
+ foreach ($posts as $post_id) {
211
+ if ($translated_post = $this->model->get_post($post_id, $language))
212
+ wp_set_object_terms($translated_post, $translated_term, $taxonomy, true);
213
+ }
214
+ }
215
+ }
216
+
217
+ // synchronize parent in translations
218
+ // calling clean_term_cache *after* this is mandatory otherwise the $taxonomy_children option is not correctly updated
219
+ // but clean_term_cache can be called (efficiently) only one time due to static array which prevents to update the option more than once
220
+ // this is the reason to use the edit_term filter and not edited_term
221
+ // take care that $_POST contains the only valid values for the current term
222
+ foreach ($_POST['term_tr_lang'] as $lang => $tr_id) {
223
+ if (!$tr_id)
224
+ continue;
225
+
226
+ if (isset($_POST['parent']) && $_POST['parent'] != -1) // since WP 3.1
227
+ $term_parent = $this->model->get_translation('term', $_POST['parent'], $lang);
228
+
229
+ global $wpdb;
230
+ $wpdb->update($wpdb->term_taxonomy,
231
+ array('parent'=> isset($term_parent) ? $term_parent : 0),
232
+ array('term_taxonomy_id' => get_term($tr_id, $taxonomy)->term_taxonomy_id));
233
+ }
234
+ }
235
+ }
admin/admin.php ADDED
@@ -0,0 +1,301 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * admin side controller
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Admin extends PLL_Base {
9
+ public $pref_lang;
10
+ public $settings_page, $filters, $filters_columns, $filters_post, $filters_term, $nav_menu, $sync, $filters_media;
11
+
12
+ /*
13
+ * loads the polylang text domain
14
+ * setups filters and action needed on all admin pages and on plugins page
15
+ * loads the settings pages or the filters base on the request
16
+ * manages the admin language filter and the "admin preferred language"
17
+ *
18
+ * @since 1.2
19
+ *
20
+ * @param object $links_model
21
+ */
22
+ public function __construct(&$links_model) {
23
+ parent::__construct($links_model);
24
+
25
+ // plugin i18n, only needed for backend
26
+ load_plugin_textdomain('polylang', false, basename(POLYLANG_DIR).'/languages');
27
+
28
+ // adds the link to the languages panel in the wordpress admin menu
29
+ add_action('admin_menu', array(&$this, 'add_menus'));
30
+
31
+ // setup js scripts and css styles
32
+ add_action('admin_enqueue_scripts', array(&$this, 'admin_enqueue_scripts'));
33
+
34
+ // adds a 'settings' link in the plugins table
35
+ add_filter('plugin_action_links_' . POLYLANG_BASENAME, array(&$this, 'plugin_action_links'));
36
+ add_action('in_plugin_update_message-' . POLYLANG_BASENAME, array(&$this, 'plugin_update_message'), 10, 2);
37
+ }
38
+
39
+ /*
40
+ * loads the polylang text domain
41
+ * setups filters and action needed on all admin pages and on plugins page
42
+ * loads the settings pages or the filters base on the request
43
+ * manages the admin language filter and the "admin preferred language"
44
+ *
45
+ * @since 1.2
46
+ *
47
+ * @param object $links_model
48
+ */
49
+ public function init() {
50
+ if (PLL_SETTINGS)
51
+ $this->settings_page = new PLL_Settings($this->model);
52
+
53
+ if (!$this->model->get_languages_list())
54
+ return;
55
+
56
+ // admin language filter
57
+ if (!defined('DOING_AJAX') && !empty($_GET['lang']) && !is_numeric($_GET['lang']))
58
+ update_user_meta(get_current_user_id(), 'pll_filter_content', ($lang = $this->model->get_language($_GET['lang'])) ? $lang->slug : '');
59
+
60
+ // set preferred language for use in filters
61
+ $this->pref_lang = $this->model->get_language(($lg = get_user_meta(get_current_user_id(), 'pll_filter_content', true)) ? $lg : $this->options['default_lang']);
62
+ $this->pref_lang = apply_filters('pll_admin_preferred_language', $this->pref_lang);
63
+
64
+ // filter admin language for users
65
+ add_filter('locale', array(&$this, 'get_locale'));
66
+
67
+ // inform that the admin language has been set
68
+ $curlang = $this->model->get_language(get_locale());
69
+ $GLOBALS['text_direction'] = $curlang->is_rtl ? 'rtl' : 'ltr'; // force text direction according to language setting
70
+ do_action('pll_language_defined', $curlang->slug, $curlang);
71
+
72
+ // adds the languages in admin bar
73
+ // FIXME: OK for WP 3.2 and newer (the admin bar is not displayed on admin side for WP 3.1)
74
+ add_action('admin_bar_menu', array(&$this, 'admin_bar_menu'), 100); // 100 determines the position
75
+
76
+ // setup filters for admin pages
77
+ if (!PLL_SETTINGS)
78
+ add_action('init', array(&$this, 'add_filters'));
79
+ }
80
+
81
+ /*
82
+ * adds the link to the languages panel in the wordpress admin menu
83
+ *
84
+ * @since 0.1
85
+ */
86
+ public function add_menus() {
87
+ add_submenu_page('options-general.php', $title = __('Languages', 'polylang'), $title, 'manage_options', 'mlang',
88
+ PLL_SETTINGS ? array($this->settings_page, 'languages_page') : create_function('', ''));
89
+ }
90
+
91
+ /*
92
+ * setup js scripts & css styles (only on the relevant pages)
93
+ *
94
+ * @since 0.6
95
+ */
96
+ public function admin_enqueue_scripts() {
97
+ $screen = get_current_screen();
98
+ $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
99
+
100
+ // for each script:
101
+ // 0 => the pages on which to load the script
102
+ // 1 => the scripts it needs to work
103
+ // 2 => 1 if loaded even if languages have not been defined yet, 0 otherwise
104
+ $scripts = array(
105
+ 'admin' => array( array('settings_page_mlang'), array('jquery', 'wp-ajax-response', 'postbox'), 1 ),
106
+ 'post' => array( array('post', 'media', 'async-upload', 'edit'), array('jquery', 'wp-ajax-response'), 0 ),
107
+ 'term' => array( array('edit-tags'), array('jquery', 'wp-ajax-response'), 0 ),
108
+ 'user' => array( array('profile', 'user-edit'), array('jquery'), 0 ),
109
+ );
110
+
111
+ foreach ($scripts as $script => $v)
112
+ if (in_array($screen->base, $v[0]) && ($v[2] || $this->model->get_languages_list()))
113
+ wp_enqueue_script('pll_'.$script, POLYLANG_URL .'/js/'.$script.$suffix.'.js', $v[1], POLYLANG_VERSION);
114
+
115
+ wp_enqueue_style('polylang_admin', POLYLANG_URL .'/css/admin'.$suffix.'.css', array(), POLYLANG_VERSION);
116
+ }
117
+
118
+ /*
119
+ * adds a 'settings' link in the plugins table
120
+ *
121
+ * @since 0.1
122
+ *
123
+ * @param array $links list of links associated to the plugin
124
+ * @return array modified list of links
125
+ */
126
+ public function plugin_action_links($links) {
127
+ array_unshift($links, '<a href="admin.php?page=mlang">' . __('Settings', 'polylang') . '</a>');
128
+ return $links;
129
+ }
130
+
131
+ /*
132
+ * adds the upgrade notice in plugins table
133
+ *
134
+ * @since 1.1.6
135
+ *
136
+ * @param array $plugin_data not used
137
+ * @param object $r plugin update data
138
+ */
139
+ function plugin_update_message($plugin_data, $r) {
140
+ if (isset($r->upgrade_notice))
141
+ printf('<p style="margin: 3px 0 0 0; border-top: 1px solid #ddd; padding-top: 3px">%s</p>', $r->upgrade_notice);
142
+ }
143
+
144
+ /*
145
+ * get the locale based on user preference
146
+ *
147
+ * @since 0.4
148
+ *
149
+ * @param string $locale
150
+ * @return string modified locale
151
+ */
152
+ public function get_locale($locale) {
153
+ return ($loc = get_user_meta(get_current_user_id(), 'user_lang', 'true')) ? $loc : $locale;
154
+ }
155
+
156
+ /*
157
+ * setup filters for admin pages
158
+ *
159
+ * @since 1.2
160
+ */
161
+ public function add_filters() {
162
+ $this->links = new PLL_Links($this->links_model);
163
+ $this->filters = new PLL_Admin_Filters($this->links_model, $this->pref_lang);
164
+ $this->filters_columns = new PLL_Admin_Filters_Columns($this->model);
165
+ $this->filters_post = new PLL_Admin_Filters_Post($this->model, $this->pref_lang);
166
+ $this->filters_term = new PLL_Admin_Filters_Term($this->model, $this->pref_lang);
167
+ $this->nav_menu = new PLL_Admin_Nav_Menu($this->model);
168
+ $this->sync = new PLL_Admin_Sync($this->model);
169
+
170
+ if ($this->options['media_support'])
171
+ $this->filters_media = new PLL_Admin_Filters_Media($this->model, $this->pref_lang);
172
+ }
173
+
174
+ /*
175
+ * adds the languages list in admin bar for the admin languages filter
176
+ *
177
+ * @since 0.9
178
+ *
179
+ * @param object $wp_admin_bar
180
+ */
181
+ public function admin_bar_menu($wp_admin_bar) {
182
+ $url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
183
+
184
+ $all_item = (object) array(
185
+ 'slug' => 'all',
186
+ 'name' => __('Show all languages', 'polylang'),
187
+ 'flag' => sprintf('<img src="%s" style="margin-bottom: -3px"/>', POLYLANG_URL .'/flags/all.png')
188
+ );
189
+
190
+ // $_GET['lang'] is numeric when editing a language, not when selecting a new language in the filter
191
+ $selected = !empty($_GET['lang']) && !is_numeric($_GET['lang']) && ($lang = $this->model->get_language($_GET['lang'])) ? $lang->slug :
192
+ (($lg = get_user_meta(get_current_user_id(), 'pll_filter_content', true)) ? $lg : 'all');
193
+
194
+ $selected = ('all' == $selected) ? $all_item : $this->model->get_language($selected);
195
+
196
+ $wp_admin_bar->add_menu(array(
197
+ 'id' => 'languages',
198
+ 'title' => empty($selected->flag) ? esc_html($selected->name) : $selected->flag .'&nbsp;'. esc_html($selected->name),
199
+ 'meta' => array('title' => __('Filters content by language', 'polylang')),
200
+ ));
201
+
202
+ foreach (array_merge(array($all_item), $this->model->get_languages_list()) as $lang) {
203
+ if ($selected == $lang->slug)
204
+ continue;
205
+
206
+ $wp_admin_bar->add_menu(array(
207
+ 'parent' => 'languages',
208
+ 'id' => $lang->slug,
209
+ 'title' => empty($lang->flag) ? esc_html($lang->name) : $lang->flag .'&nbsp;'. esc_html($lang->name),
210
+ 'href' => esc_url(add_query_arg('lang', $lang->slug, $url)),
211
+ ));
212
+ }
213
+ }
214
+
215
+ /*
216
+ * downloads mofiles from http://svn.automattic.com/wordpress-i18n/
217
+ * FIXME is it the best class for this?
218
+ * FIXME use language packs API coming with WP 3.7 instead
219
+ *
220
+ * @since 0.6
221
+ *
222
+ * @param string $locale locale to download
223
+ * @param bool $upgrade optional true if this is an upgrade, false if this is the first download, defaults to false
224
+ * @return bool true on success, false otherwise
225
+ */
226
+ static public function download_mo($locale, $upgrade = false) {
227
+ global $wp_version;
228
+ $mofile = WP_LANG_DIR."/$locale.mo";
229
+
230
+ // does file exists ?
231
+ if ((file_exists($mofile) && !$upgrade) || $locale == 'en_US')
232
+ return true;
233
+
234
+ // does language directory exists ?
235
+ if (!is_dir(WP_LANG_DIR)) {
236
+ if (!@mkdir(WP_LANG_DIR))
237
+ return false;
238
+ }
239
+
240
+ // will first look in tags/ (most languages) then in branches/ (only Greek ?)
241
+ $base = 'http://svn.automattic.com/wordpress-i18n/'.$locale;
242
+ $bases = array($base.'/tags/', $base.'/branches/');
243
+
244
+ foreach ($bases as $base) {
245
+ // get all the versions available in the subdirectory
246
+ $resp = wp_remote_get($base);
247
+ if (is_wp_error($resp) || 200 != $resp['response']['code'])
248
+ continue;
249
+
250
+ preg_match_all('#>([0-9\.]+)\/#', $resp['body'], $matches);
251
+ if (empty($matches[1]))
252
+ continue;
253
+
254
+ rsort($matches[1]); // sort from newest to oldest
255
+ $versions = $matches[1];
256
+
257
+ $newest = $upgrade ? $upgrade : $wp_version;
258
+ foreach ($versions as $key=>$version) {
259
+ // will not try to download a too recent mofile
260
+ if (version_compare($version, $newest, '>'))
261
+ unset($versions[$key]);
262
+ // will not download an older version if we are upgrading
263
+ if ($upgrade && version_compare($version, $wp_version, '<='))
264
+ unset($versions[$key]);
265
+ }
266
+
267
+ $versions = array_splice($versions, 0, 5); // reduce the number of versions to test to 5
268
+ $args = array('timeout' => 30, 'stream' => true);
269
+
270
+ // try to download the file
271
+ foreach ($versions as $version) {
272
+ $resp = wp_remote_get($base."$version/messages/$locale.mo", $args + array('filename' => $mofile));
273
+ if (is_wp_error($resp) || 200 != $resp['response']['code']) {
274
+ unlink($mofile); // otherwise we download a gzipped 404 page
275
+ continue;
276
+ }
277
+ // try to download ms and continents-cities files if exist (will not return false if failed)
278
+ // with new files introduced in WP 3.4
279
+ foreach (array('ms', 'continents-cities', 'admin', 'admin-network') as $file) {
280
+ $resp = wp_remote_get($base."$version/messages/$file-$locale.mo", $args + array('filename' => WP_LANG_DIR."/$file-$locale.mo"));
281
+ if (is_wp_error($resp) || 200 != $resp['response']['code'])
282
+ unlink(WP_LANG_DIR."/$file-$locale.mo");
283
+ }
284
+ // try to download theme files if exist (will not return false if failed)
285
+ // FIXME not updated when the theme is updated outside a core update
286
+ foreach (array('twentyten', 'twentyeleven', 'twentytwelve', 'twentythirteen') as $theme) {
287
+ if (!is_dir($theme_dir = get_theme_root()."/$theme/languages"))
288
+ continue; // the theme is not present
289
+
290
+ $resp = wp_remote_get($base."$version/messages/$theme/$locale.mo", $args + array('filename' => "$theme_dir/$locale.mo"));
291
+ if (is_wp_error($resp) || 200 != $resp['response']['code'])
292
+ unlink("$theme_dir/$locale.mo");
293
+ }
294
+ return true;
295
+ }
296
+ }
297
+ // we did not succeeded to download a file :(
298
+ return false;
299
+ }
300
+
301
+ }
{include → admin}/languages.php RENAMED
@@ -1,9 +1,11 @@
1
  <?php
2
- // for each language:
3
- // [0] => ISO 639-1 language code
4
- // [1] => WordPress locale
5
- // [2] => name
6
- // [3] => not set for ltr scripts, 'rtl' otherwise
 
 
7
  $languages = array(
8
  array('af', 'af', 'Afrikaans'),
9
  array('ar', 'ar', 'العربية', 'rtl'),
1
  <?php
2
+ /*
3
+ * for each language:
4
+ * [0] => ISO 639-1 language code
5
+ * [1] => WordPress locale
6
+ * [2] => name
7
+ * [3] => not set for ltr scripts, 'rtl' otherwise
8
+ */
9
  $languages = array(
10
  array('af', 'af', 'Afrikaans'),
11
  array('ar', 'ar', 'العربية', 'rtl'),
admin/settings.php ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * a class for the Polylang settings pages
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Settings {
9
+ public $model, $options;
10
+ protected $strings = array(); // strings to translate
11
+
12
+ /*
13
+ * constructor
14
+ *
15
+ * @since 1.2
16
+ *
17
+ * @param object $model instance of PLL_Model
18
+ */
19
+ public function __construct(&$model) {
20
+ $this->model = &$model;
21
+ $this->options = &$model->options;
22
+
23
+ // adds screen options and the about box in the languages admin panel
24
+ add_action('load-settings_page_mlang', array(&$this, 'load_page'));
25
+
26
+ // saves per-page value in screen option
27
+ add_filter('set-screen-option', create_function('$s, $o, $v', 'return $v;'), 10, 3);
28
+ }
29
+
30
+ /*
31
+ * adds screen options and the about box in the languages admin panel
32
+ *
33
+ * @since 0.9.5
34
+ */
35
+ public function load_page() {
36
+ // test of $_GET['tab'] avoids displaying the automatically generated screen options on other tabs
37
+ if ((!defined('PLL_DISPLAY_ABOUT') || PLL_DISPLAY_ABOUT) && (!isset($_GET['tab']) || $_GET['tab'] == 'lang'))
38
+ add_meta_box('pll_about_box', __('About Polylang', 'polylang'), create_function('', "include(PLL_ADMIN_INC.'/view-about.php');"), 'settings_page_mlang', 'normal');
39
+
40
+
41
+ if (!isset($_GET['tab']) || $_GET['tab'] == 'lang')
42
+ add_screen_option('per_page', array('label' => __('Languages', 'polylang'), 'default' => 10, 'option' => 'pll_lang_per_page'));
43
+
44
+
45
+ if (isset($_GET['tab']) && $_GET['tab'] == 'strings')
46
+ add_screen_option('per_page', array('label' => __('Strings translations', 'polylang'), 'default' => 10, 'option' => 'pll_strings_per_page'));
47
+ }
48
+
49
+ /*
50
+ * diplays the 3 tabs pages: languages, strings translations, settings
51
+ * also manages user input for these pages
52
+ *
53
+ * @since 0.1
54
+ */
55
+ public function languages_page() {
56
+ // prepare the list of tabs
57
+ $tabs = array('lang' => __('Languages','polylang'));
58
+
59
+ // only if at least one language has been created
60
+ if ($listlanguages = $this->model->get_languages_list()) {
61
+ $tabs['strings'] = __('Strings translation','polylang');
62
+ $tabs['settings'] = __('Settings', 'polylang');
63
+ }
64
+
65
+ $active_tab = !empty($_GET['tab']) ? $_GET['tab'] : 'lang';
66
+
67
+ switch($active_tab) {
68
+ case 'lang':
69
+ // prepare the list table of languages
70
+ $list_table = new PLL_Table_Languages();
71
+ $list_table->prepare_items($listlanguages);
72
+
73
+ // error messages for data validation
74
+ $errors[1] = __('Enter a valid WordPress locale', 'polylang');
75
+ $errors[2] = __('The language code contains invalid characters', 'polylang');
76
+ $errors[3] = __('The language code must be unique', 'polylang');
77
+ $errors[4] = __('The language must have a name', 'polylang');
78
+ $errors[5] = __('The language was created, but the WordPress language file was not downloaded. Please install it manually.', 'polylang');
79
+ break;
80
+
81
+ case 'strings':
82
+ // get the strings to translate
83
+ $data = $this->get_strings();
84
+
85
+ $selected = empty($_REQUEST['group']) ? -1 : $_REQUEST['group'];
86
+ foreach ($data as $key=>$row) {
87
+ $groups[] = $row['context']; // get the groups
88
+
89
+ // filter for search string
90
+ if (($selected !=-1 && $row['context'] != $selected) || (!empty($_REQUEST['s']) && stripos($row['name'], $_REQUEST['s']) === false && stripos($row['string'], $_REQUEST['s']) === false))
91
+ unset ($data[$key]);
92
+ }
93
+
94
+ $groups = array_unique($groups);
95
+
96
+ // load translations
97
+ foreach ($listlanguages as $language) {
98
+ // filters by language if requested
99
+ if (($lg = get_user_meta(get_current_user_id(), 'pll_filter_content', true)) && $language->slug != $lg)
100
+ continue;
101
+
102
+ $mo = new PLL_MO();
103
+ $mo->import_from_db($language);
104
+ foreach ($data as $key=>$row) {
105
+ $data[$key]['translations'][$language->name] = $mo->translate($row['string']);
106
+ $data[$key]['row'] = $key; // store the row number for convenience
107
+ }
108
+ }
109
+
110
+ $string_table = new PLL_Table_String($groups, $selected);
111
+ $string_table->prepare_items($data);
112
+ break;
113
+
114
+ case 'settings':
115
+ $post_types = array_unique(apply_filters('pll_get_post_types', array_diff(get_post_types(array('_builtin' => false)), get_post_types(array('_pll' => true))), true));
116
+ $taxonomies = array_unique(apply_filters('pll_get_taxonomies', array_diff(get_taxonomies(array('_builtin' => false)), get_taxonomies(array('_pll' => true))), true));
117
+ break;
118
+
119
+ default:
120
+ break;
121
+ }
122
+
123
+ $using_permalinks = $GLOBALS['wp_rewrite']->using_permalinks();
124
+
125
+ $action = isset($_REQUEST['pll_action']) ? $_REQUEST['pll_action'] : '';
126
+
127
+ switch ($action) {
128
+ case 'add':
129
+ check_admin_referer( 'add-lang', '_wpnonce_add-lang' );
130
+
131
+ $error = $this->model->add_language($_POST);
132
+
133
+ if (0 == $error && !PLL_Admin::download_mo($_POST['locale']))
134
+ $error = 5;
135
+
136
+ wp_redirect('admin.php?page=mlang'. ($error ? '&error=' . $error : '') ); // to refresh the page (possible thanks to the $_GET['noheader']=true)
137
+ exit;
138
+ break;
139
+
140
+ case 'delete':
141
+ check_admin_referer('delete-lang');
142
+
143
+ if (!empty($_GET['lang']))
144
+ $this->model->delete_language((int) $_GET['lang']);
145
+
146
+ wp_redirect('admin.php?page=mlang'); // to refresh the page (possible thanks to the $_GET['noheader']=true)
147
+ exit;
148
+ break;
149
+
150
+ case 'edit':
151
+ if (!empty($_GET['lang']))
152
+ $edit_lang = $this->model->get_language((int) $_GET['lang']);
153
+
154
+ break;
155
+
156
+ case 'update':
157
+ check_admin_referer( 'add-lang', '_wpnonce_add-lang' );
158
+
159
+ $error = $this->model->update_language($_POST);
160
+
161
+ wp_redirect('admin.php?page=mlang'. ($error ? '&error=' . $error : '') ); // to refresh the page (possible thanks to the $_GET['noheader']=true)
162
+ exit;
163
+ break;
164
+
165
+ case 'string-translation':
166
+ if (!empty($_REQUEST['submit'])) {
167
+ check_admin_referer( 'string-translation', '_wpnonce_string-translation' );
168
+ $strings = $this->get_strings();
169
+
170
+ foreach ($this->model->get_languages_list() as $language) {
171
+ if(empty($_POST['translation'][$language->name])) // in case the language filter is active (thanks to John P. Bloch)
172
+ continue;
173
+
174
+ $mo = new PLL_MO();
175
+ $mo->import_from_db($language);
176
+
177
+ foreach ($_POST['translation'][$language->name] as $key=>$translation)
178
+ $mo->add_entry($mo->make_entry($strings[$key]['string'], stripslashes($translation)));
179
+
180
+ // clean database (removes all strings which were registered some day but are no more)
181
+ if (!empty($_POST['clean'])) {
182
+ $new_mo = new PLL_MO();
183
+
184
+ foreach ($strings as $string)
185
+ $new_mo->add_entry($mo->make_entry($string['string'], $mo->translate($string['string'])));
186
+ }
187
+
188
+ isset($new_mo) ? $new_mo->export_to_db($language) : $mo->export_to_db($language);
189
+ }
190
+ }
191
+
192
+ do_action('pll_save_strings_translations');
193
+
194
+ // unregisters strings registered through WPML API
195
+ if ($string_table->current_action() == 'delete' && !empty($_REQUEST['strings']) && function_exists('icl_unregister_string')) {
196
+ check_admin_referer( 'string-translation', '_wpnonce_string-translation' );
197
+ $strings = $this->get_strings();
198
+
199
+ foreach ($_REQUEST['strings'] as $key)
200
+ icl_unregister_string($strings[$key]['context'], $strings[$key]['name']);
201
+ }
202
+
203
+ // to refresh the page (possible thanks to the $_GET['noheader']=true)
204
+ $url = 'admin.php?page=mlang&tab=strings';
205
+ foreach(array('s', 'paged', 'group') as $qv)
206
+ $url = empty($_REQUEST[$qv]) ? $url : $url . '&' . $qv . '=' . $_REQUEST[$qv];
207
+ wp_redirect($url);
208
+ exit;
209
+ break;
210
+
211
+ case 'options':
212
+ check_admin_referer( 'options-lang', '_wpnonce_options-lang' );
213
+
214
+ $this->options['default_lang'] = sanitize_title($_POST['default_lang']); // we have slug as value
215
+
216
+ foreach(array('force_lang', 'rewrite') as $key)
217
+ $this->options[$key] = isset($_POST[$key]) ? (int) $_POST[$key] : 0;
218
+
219
+ // FIXME : TODO error message if not a valid url
220
+ if (isset($_POST['domains']) && is_array($_POST['domains']))
221
+ foreach ($_POST['domains'] as $key => $domain)
222
+ $this->options['domains'][$key] = esc_url_raw(trim($domain));
223
+
224
+ foreach (array('browser', 'hide_default', 'redirect_lang', 'media_support') as $key)
225
+ $this->options[$key] = isset($_POST[$key]) ? 1 : 0;
226
+
227
+ foreach (array('sync', 'post_types', 'taxonomies') as $key)
228
+ $this->options[$key] = empty($_POST[$key]) ? array() : array_keys($_POST[$key], 1);
229
+
230
+ update_option('polylang', $this->options);
231
+
232
+ // refresh rewrite rules in case rewrite, hide_default, post types or taxonomies options have been modified
233
+ // it seems useless to refresh permastruct here
234
+ flush_rewrite_rules();
235
+
236
+ // fills existing posts & terms with default language
237
+ if (isset($_POST['fill_languages']) && $nolang = $this->model->get_objects_with_no_lang()) {
238
+ if (!empty($nolang['posts']))
239
+ $this->model->set_language_in_mass('post', $nolang['posts'], $this->options['default_lang']);
240
+ if (!empty($nolang['terms']))
241
+ $this->model->set_language_in_mass('term', $nolang['terms'], $this->options['default_lang']);
242
+ }
243
+ wp_redirect('admin.php?page=mlang&tab=settings&updated=true'); // updated=true interpreted by WP
244
+ exit;
245
+ break;
246
+
247
+ default:
248
+ break;
249
+ }
250
+
251
+ // displays the page
252
+ include(PLL_ADMIN_INC.'/view-languages.php');
253
+ }
254
+
255
+ /*
256
+ * register strings for translation making sure it is not duplicate or empty
257
+ *
258
+ * @since 0.6
259
+ *
260
+ * @param string $name a unique name for the string
261
+ * @param string $string the string to register
262
+ * @param string $context optional the group in which the string is registered, defaults to 'polylang'
263
+ * @param bool $multiline optional wether the string table should display a multiline textarea or a single line input, defaults to single line
264
+ */
265
+ public function register_string($name, $string, $context = 'polylang', $multiline = false) {
266
+ // backward compatibility with Polylang older than 1.1
267
+ if (is_bool($context)) {
268
+ $multiline = $context;
269
+ $context = 'polylang';
270
+ }
271
+
272
+ $to_register = compact('name', 'string', 'context', 'multiline');
273
+ if (!in_array($to_register, $this->strings) && $to_register['string'])
274
+ $this->strings[] = $to_register;
275
+ }
276
+
277
+ /*
278
+ * get registered strings
279
+ *
280
+ * @since 0.6.1
281
+ *
282
+ * @return array list of all registered strings
283
+ */
284
+ public function &get_strings() {
285
+ // WP strings
286
+ $this->register_string(__('Site Title'), get_option('blogname'), 'WordPress');
287
+ $this->register_string(__('Tagline'), get_option('blogdescription'), 'WordPress');
288
+ $this->register_string(__('Date Format'), get_option('date_format'), 'WordPress');
289
+ $this->register_string(__('Time Format'), get_option('time_format'), 'WordPress');
290
+
291
+ // widgets titles
292
+ global $wp_registered_widgets;
293
+ $sidebars = wp_get_sidebars_widgets();
294
+ foreach ($sidebars as $sidebar => $widgets) {
295
+ if ($sidebar == 'wp_inactive_widgets' || !isset($widgets))
296
+ continue;
297
+
298
+ foreach ($widgets as $widget) {
299
+ // nothing can be done if the widget is created using pre WP2.8 API :(
300
+ // there is no object, so we can't access it to get the widget options
301
+ if (!isset($wp_registered_widgets[$widget]['callback'][0]) || !is_object($wp_registered_widgets[$widget]['callback'][0]) || !method_exists($wp_registered_widgets[$widget]['callback'][0], 'get_settings'))
302
+ continue;
303
+
304
+ $widget_settings = $wp_registered_widgets[$widget]['callback'][0]->get_settings();
305
+ $number = $wp_registered_widgets[$widget]['params'][0]['number'];
306
+ // don't enable widget title translation if the widget is visible in only one language or if there is no title
307
+ if (empty($this->options['widgets'][$widget]) && isset($widget_settings[$number]['title']) && $title = $widget_settings[$number]['title'])
308
+ $this->register_string(__('Widget title', 'polylang'), $title, 'Widget');
309
+ }
310
+ }
311
+
312
+ // allow plugins to modify our list of strings, mainly for use by our PLL_WPML_Compat class
313
+ $this->strings = apply_filters('pll_get_strings', $this->strings);
314
+ return $this->strings;
315
+ }
316
+
317
+ /*
318
+ * list the post metas to synchronize
319
+ *
320
+ * @since 1.0
321
+ *
322
+ * @return array
323
+ */
324
+ static public function list_metas_to_sync() {
325
+ return array(
326
+ 'taxonomies' => __('Taxonomies', 'polylang'),
327
+ 'post_meta' => __('Custom fields', 'polylang'),
328
+ 'comment_status' => __('Comment status', 'polylang'),
329
+ 'ping_status' => __('Ping status', 'polylang'),
330
+ 'sticky_posts' => __('Sticky posts', 'polylang'),
331
+ 'post_date' => __('Published date', 'polylang'),
332
+ 'post_format' => __('Post format', 'polylang'),
333
+ 'post_parent' => __('Page parent', 'polylang'),
334
+ '_wp_page_template' => __('Page template', 'polylang'),
335
+ 'menu_order' => __('Page order', 'polylang'),
336
+ '_thumbnail_id' => __('Featured image', 'polylang'),
337
+ );
338
+ }
339
+ }
admin/table-languages.php ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if(!class_exists('WP_List_Table')){
4
+ require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' ); // since WP 3.1
5
+ }
6
+
7
+ /*
8
+ * a class to create the languages table in Polylang settings
9
+ * Thanks to Matt Van Andel (http://www.mattvanandel.com) for its plugin "Custom List Table Example" !
10
+ *
11
+ * @since 0.1
12
+ */
13
+ class PLL_Table_Languages extends WP_List_Table {
14
+
15
+ /*
16
+ * constructor
17
+ *
18
+ * @since 0.1
19
+ */
20
+ function __construct() {
21
+ parent::__construct(array(
22
+ 'plural' => 'Languages', // do not translate (used for css class)
23
+ 'ajax' => false
24
+ ));
25
+ }
26
+
27
+ /*
28
+ * displays the item information in a column (default case)
29
+ *
30
+ * @since 0.1
31
+ *
32
+ * @param object $item
33
+ * @param string $column_name
34
+ * @return string
35
+ */
36
+ function column_default($item, $column_name) {
37
+ return $item->$column_name;
38
+ }
39
+
40
+ /*
41
+ * displays the item information in the column 'name'
42
+ * displays the edit and delete links
43
+ *
44
+ * @since 0.1
45
+ *
46
+ * @param object $item
47
+ * @return string
48
+ */
49
+ function column_name($item) {
50
+ return $item->name . $this->row_actions(array(
51
+ 'edit' => sprintf(
52
+ '<a href="%s">%s</a>',
53
+ esc_url(admin_url('admin.php?page=mlang&amp;pll_action=edit&amp;lang=' . $item->term_id)),
54
+ __('Edit','polylang')
55
+ ),
56
+ 'delete' => sprintf(
57
+ '<a href="%s" onclick = "return confirm(\'%s\');">%s</a>',
58
+ wp_nonce_url('?page=mlang&amp;pll_action=delete&amp;noheader=true&amp;lang=' . $item->term_id, 'delete-lang'),
59
+ __('You are about to permanently delete this language. Are you sure?', 'polylang'),
60
+ __('Delete','polylang')
61
+ )
62
+ ));
63
+ }
64
+
65
+ /*
66
+ * gets the list of columns
67
+ *
68
+ * @since 0.1
69
+ *
70
+ * @return array the list of column titles
71
+ */
72
+ function get_columns() {
73
+ return array(
74
+ 'name' => __('Full name', 'polylang'),
75
+ 'locale' => __('Locale', 'polylang'),
76
+ 'slug' => __('Code', 'polylang'),
77
+ 'term_group' => __('Order', 'polylang'),
78
+ 'flag' => __('Flag', 'polylang'),
79
+ 'count' => __('Posts', 'polylang')
80
+ );
81
+ }
82
+
83
+ /*
84
+ * gets the list of sortable columns
85
+ *
86
+ * @since 0.1
87
+ *
88
+ * @return array
89
+ */
90
+ function get_sortable_columns() {
91
+ return array(
92
+ 'name' => array('name', true), // sorted by name by default
93
+ 'locale' => array('locale', false),
94
+ 'slug' => array('slug', false),
95
+ 'term_group' => array('term_group', false),
96
+ 'count' => array('count', false)
97
+ );
98
+ }
99
+
100
+ /*
101
+ * prepares the list of items for displaying
102
+ *
103
+ * @since 0.1
104
+ *
105
+ * @param array $data
106
+ */
107
+ function prepare_items($data = array()) {
108
+ $per_page = $this->get_items_per_page('pll_lang_per_page');
109
+ $this->_column_headers = array($this->get_columns(), array(), $this->get_sortable_columns());
110
+
111
+ function usort_reorder($a, $b){
112
+ $orderby = !empty($_REQUEST['orderby']) ? $_REQUEST['orderby'] : 'name';
113
+ $result = strcmp($a->$orderby, $b->$orderby); // determine sort order
114
+ return (empty($_REQUEST['order']) || $_REQUEST['order'] == 'asc') ? $result : -$result; // send final sort direction to usort
115
+ };
116
+
117
+ usort($data, 'usort_reorder');
118
+
119
+ $total_items = count($data);
120
+ $this->items = array_slice($data, ($this->get_pagenum() - 1) * $per_page, $per_page);
121
+
122
+ $this->set_pagination_args(array(
123
+ 'total_items' => $total_items,
124
+ 'per_page' => $per_page,
125
+ 'total_pages' => ceil($total_items/$per_page)
126
+ ));
127
+ }
128
+ }
admin/table-string.php ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if(!class_exists('WP_List_Table')){
4
+ require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' ); // since WP 3.1
5
+ }
6
+
7
+ /*
8
+ * a class to create the strings translations table
9
+ * Thanks to Matt Van Andel (http://www.mattvanandel.com) for its plugin "Custom List Table Example" !
10
+ *
11
+ * @since 0.6
12
+ */
13
+ class PLL_Table_String extends WP_List_Table {
14
+ protected $groups;
15
+
16
+ /*
17
+ * constructor
18
+ *
19
+ * @since 0.6
20
+ *
21
+ * @param array $groups
22
+ * @param string $group_selected
23
+ */
24
+ function __construct($groups = array(), $group_selected = -1) {
25
+ parent::__construct(array(
26
+ 'plural' => 'Strings translations', // do not translate (used for css class)
27
+ 'ajax' => false
28
+ ));
29
+
30
+ $this->groups = &$groups;
31
+ $this->group_selected = $group_selected;
32
+ }
33
+
34
+ /*
35
+ * displays the item information in a column (default case)
36
+ *
37
+ * @since 0.6
38
+ *
39
+ * @param array $item
40
+ * @param string $column_name
41
+ * @return string
42
+ */
43
+ function column_default($item, $column_name) {
44
+ return $item[$column_name];
45
+ }
46
+
47
+ /*
48
+ * displays the checkbox in first column
49
+ *
50
+ * @since 1.1
51
+ *
52
+ * @param array $item
53
+ * @return string
54
+ */
55
+ function column_cb($item){
56
+ return sprintf(
57
+ '<input type="checkbox" name="strings[]" value="%s" %s />',
58
+ esc_attr($item['row']),
59
+ empty($item['icl']) ? 'disabled' : '' // only strings registered with WPML API can be removed
60
+ );
61
+ }
62
+
63
+ /*
64
+ * displays the string to translate
65
+ *
66
+ * @since 1.0
67
+ *
68
+ * @param array $item
69
+ * @return string
70
+ */
71
+ function column_string($item) {
72
+ return format_to_edit($item['string']); // don't interpret special chars for the string column
73
+ }
74
+
75
+ /*
76
+ * displays the translations to edit
77
+ *
78
+ * @since 0.6
79
+ *
80
+ * @param array $item
81
+ * @return string
82
+ */
83
+ function column_translations($item) {
84
+ $out = '';
85
+ foreach($item['translations'] as $key => $translation) {
86
+ $input_type = $item['multiline'] ?
87
+ '<textarea name="translation[%1$s][%2$s]" id="%1$s-%2$s">%4$s</textarea>' :
88
+ '<input name="translation[%1$s][%2$s]" id="%1$s-%2$s" value="%4$s" />';
89
+ $out .= sprintf('<div class="translation"><label for="%1$s-%2$s">%3$s</label>'.$input_type.'</div>'."\n",
90
+ esc_attr($key),
91
+ esc_attr($item['row']),
92
+ esc_html($key),
93
+ format_to_edit($translation)); // don't interpret special chars
94
+ }
95
+ return $out;
96
+ }
97
+
98
+ /*
99
+ * gets the list of columns
100
+ *
101
+ * @since 0.6
102
+ *
103
+ * @return array the list of column titles
104
+ */
105
+ function get_columns() {
106
+ return array(
107
+ 'cb' => '<input type="checkbox" />', //checkbox
108
+ 'context' => __('Group', 'polylang'),
109
+ 'name' => __('Name', 'polylang'),
110
+ 'string' => __('String', 'polylang'),
111
+ 'translations' => __('Translations', 'polylang'),
112
+ );
113
+ }
114
+
115
+ /*
116
+ * gets the list of sortable columns
117
+ *
118
+ * @since 0.6
119
+ *
120
+ * @return array
121
+ */
122
+ function get_sortable_columns() {
123
+ return array(
124
+ 'context' => array('context', false),
125
+ 'name' => array('name', false),
126
+ 'string' => array('string', false),
127
+ );
128
+ }
129
+
130
+ /*
131
+ * prepares the list of items ofr displaying
132
+ *
133
+ * @since 0.6
134
+ *
135
+ * @param array $data
136
+ */
137
+ function prepare_items($data = array()) {
138
+ $per_page = $this->get_items_per_page('pll_strings_per_page');
139
+ $this->_column_headers = array($this->get_columns(), array(), $this->get_sortable_columns());
140
+
141
+ function usort_reorder($a, $b){
142
+ $result = strcmp($a[$_REQUEST['orderby']], $b[$_REQUEST['orderby']]); // determine sort order
143
+ return (empty($_REQUEST['order']) || $_REQUEST['order'] == 'asc') ? $result : -$result; // send final sort direction to usort
144
+ };
145
+
146
+ if (!empty($_REQUEST['orderby'])) // no sort by default
147
+ usort($data, 'usort_reorder');
148
+
149
+ $total_items = count($data);
150
+ $this->items = array_slice($data, ($this->get_pagenum() - 1) * $per_page, $per_page);
151
+
152
+ $this->set_pagination_args(array(
153
+ 'total_items' => $total_items,
154
+ 'per_page' => $per_page,
155
+ 'total_pages' => ceil($total_items/$per_page)
156
+ ));
157
+ }
158
+
159
+ /*
160
+ * get the list of possible bulk actions
161
+ *
162
+ * @since 1.1
163
+ *
164
+ * @return array
165
+ */
166
+ function get_bulk_actions() {
167
+ return array('delete' => __('Delete','polylang'));
168
+ }
169
+
170
+ /*
171
+ * displays the dropdown list to filter strings per group
172
+ *
173
+ * @since 1.1
174
+ *
175
+ * @param string $which only 'top' is supported
176
+ */
177
+ function extra_tablenav($which) {
178
+ if ('top' != $which)
179
+ return;
180
+
181
+ echo '<div class="alignleft actions">';
182
+ echo '<select name="group">' . "\n";
183
+ printf(
184
+ '<option value="-1"%s>%s</option>' . "\n",
185
+ $this->group_selected == -1 ? ' selected="selected"' : '',
186
+ __('View all groups', 'polylang')
187
+ );
188
+
189
+ foreach ($this->groups as $group) {
190
+ printf(
191
+ '<option value="%s"%s>%s</option>' . "\n",
192
+ esc_attr($group),
193
+ $this->group_selected == $group ? ' selected="selected"' : '',
194
+ esc_html($group)
195
+ );
196
+ }
197
+ echo '</select>'."\n";
198
+
199
+ submit_button( __( 'Filter' ), 'button', false, false, array( 'id' => 'post-query-submit' ) );
200
+ echo '</div>';
201
+ }
202
+ }
include/about.php → admin/view-about.php RENAMED
File without changes
include/languages-form.php → admin/view-languages.php RENAMED
@@ -42,12 +42,6 @@ if (isset($_GET['error'])) {?>
42
  <h3><?php echo $action=='edit' ? __('Edit language', 'polylang') : __('Add new language', 'polylang'); ?></h3><?php
43
 
44
  // displays the add (or edit) language form
45
- // The term fields are used as follows :
46
- // name -> language name (used only for display)
47
- // slug -> language code (ideally 2-letters ISO 639-1 language code but I currently use it only as slug so it doesn't matter)
48
- // description -> WordPress locale for the language. Here if something wrong is used, the .mo files will not be loaded...
49
- // term_group -> order
50
-
51
  // adds noheader=true in the action url to allow using wp_redirect when processing the form ?>
52
  <form id="add-lang" method="post" action="admin.php?page=mlang&amp;noheader=true" class="validate">
53
  <?php wp_nonce_field('add-lang', '_wpnonce_add-lang');
@@ -64,7 +58,7 @@ if (isset($_GET['error'])) {?>
64
  <label for="lang_list"><?php _e('Choose a language', 'polylang');?></label>
65
  <select name="lang_list" id="lang_list">
66
  <option value=""></option><?php
67
- include(PLL_INC.'/languages.php');
68
  foreach ($languages as $lg) {
69
  printf(
70
  '<option value="%1$s-%2$s-%3$s">%4$s - %2$s</option>'."\n",
@@ -87,15 +81,15 @@ if (isset($_GET['error'])) {?>
87
  <div class="form-field form-required">
88
  <label for="lang_locale"><?php _e('Locale', 'polylang');?></label><?php
89
  printf(
90
- '<input name="description" id="lang_locale" type="text" value="%s" size="40" aria-required="true" />',
91
- $action=='edit' ? esc_attr($edit_lang->description) : ''
92
  );?>
93
  <p><?php _e('Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language.', 'polylang');?></p>
94
  </div>
95
 
96
  <div class="form-field">
97
  <label for="lang_slug"><?php _e('Language code', 'polylang');?></label>
98
- <input name="slug" id="lang_slug" type="text" value="<?php if ($action=='edit') echo esc_attr($edit_lang->slug);?>" size="40" />
99
  <p><?php _e('2-letters ISO 639-1 language code (for example: en)', 'polylang');?></p>
100
  </div>
101
 
@@ -103,12 +97,12 @@ if (isset($_GET['error'])) {?>
103
  <legend><?php _e('Text direction', 'polylang');?></legend><?php
104
  printf(
105
  '<label><input name="rtl" type="radio" value="0" %s /> %s</label>',
106
- $rtl ? '' : 'checked="checked"',
107
  __('left to right', 'polylang')
108
  );
109
  printf(
110
  '<label><input name="rtl" type="radio" value="1" %s /> %s</label>',
111
- $rtl ? 'checked="checked"' : '',
112
  __('right to left', 'polylang')
113
  );?>
114
  <p><?php _e('Choose the text direction for the language', 'polylang');?></p>
@@ -143,14 +137,17 @@ break;
143
  // string translations tab
144
  case 'strings': ?>
145
 
 
146
  <form id="string-translation" method="post" action="admin.php?page=mlang&amp;tab=strings&amp;noheader=true">
147
- <input type="hidden" name="pll_action" value="string-translation" /><?php
148
- $string_table->search_box(__('Search translations', 'polylang'), 'translations' );
149
- wp_nonce_field('string-translation', '_wpnonce_string-translation');
150
- $string_table->display();
151
- printf('<label><input name="clean" type="checkbox" value="1" /> %s</label>', __('Clean strings translation database', 'polylang'));
152
- submit_button(); // since WP 3.1 ?>
153
- </form><?php
 
 
154
  break;
155
 
156
  // settings tab
@@ -165,11 +162,14 @@ case 'settings': ?>
165
 
166
  <tr>
167
  <th><label for='default_lang'><?php _e('Default language', 'polylang');?></label></th>
168
- <td><?php echo $this->dropdown_languages(array('name' => 'default_lang', 'selected' => $this->options['default_lang']));?></td>
 
 
 
169
  </tr><?php
170
 
171
  // posts or terms without language set
172
- if ($this->get_objects_with_no_lang() && $this->options['default_lang']) {?>
173
  <tr>
174
  <th></th>
175
  <td>
@@ -202,23 +202,53 @@ case 'settings': ?>
202
  <label><?php
203
  printf(
204
  '<input name="force_lang" type="radio" value="0" %s /> %s',
205
- $this->options['force_lang'] ? '' :'checked="checked"',
206
  __('The language is set from content. Posts, pages, categories and tags urls are not modified.', 'polylang')
207
  );?>
208
  </label>
209
  <label><?php
210
  printf(
211
- '<input name="force_lang" type="radio" value="1" %s %s/> %s',
212
- $this->using_permalinks ? '' : 'disabled',
213
- $this->options['force_lang'] ? 'checked="checked"' :'',
214
- __('The language code, for example /en/, is added to all urls when using pretty permalinks.', 'polylang')
 
 
 
 
 
 
 
 
 
 
215
  );?>
216
  </label>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
217
  <br />
218
  <label><?php
219
  printf(
220
  '<input name="rewrite" type="radio" value="1" %s %s/> %s %s',
221
- $this->using_permalinks ? '' : 'disabled',
222
  $this->options['rewrite'] ? 'checked="checked"' : '',
223
  __('Remove /language/ in pretty permalinks. Example:', 'polylang'),
224
  '<code>'.esc_html(home_url('en/')).'</code>'
@@ -227,7 +257,7 @@ case 'settings': ?>
227
  <label><?php
228
  printf(
229
  '<input name="rewrite" type="radio" value="0" %s %s/> %s %s',
230
- $this->using_permalinks ? '' : 'disabled',
231
  $this->options['rewrite'] ? '' : 'checked="checked"',
232
  __('Keep /language/ in pretty permalinks. Example:', 'polylang'),
233
  '<code>'.esc_html(home_url('language/en/')).'</code>'
@@ -267,19 +297,6 @@ case 'settings': ?>
267
  );?>
268
  </label>
269
  </td>
270
- </tr>
271
-
272
- <tr>
273
- <th scope="row"><?php _e('Synchronization', 'polylang') ?></th>
274
- <td><ul class="pll_inline_block"><?php
275
- foreach ($this->list_metas_to_sync() as $key => $str)
276
- printf(
277
- '<li><label><input name="sync[%s]" type="checkbox" value="1" %s /> %s</label></li>',
278
- esc_attr($key),
279
- in_array($key, $this->options['sync']) ? 'checked="checked"' :'',
280
- esc_html($str)
281
- );?>
282
- </ul></td>
283
  </tr><?php
284
 
285
  if (!empty($post_types)) {?>
@@ -322,6 +339,22 @@ case 'settings': ?>
322
  </tr><?php
323
  }?>
324
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
325
  </table>
326
 
327
  <?php submit_button(); // since WP 3.1 ?>
42
  <h3><?php echo $action=='edit' ? __('Edit language', 'polylang') : __('Add new language', 'polylang'); ?></h3><?php
43
 
44
  // displays the add (or edit) language form
 
 
 
 
 
 
45
  // adds noheader=true in the action url to allow using wp_redirect when processing the form ?>
46
  <form id="add-lang" method="post" action="admin.php?page=mlang&amp;noheader=true" class="validate">
47
  <?php wp_nonce_field('add-lang', '_wpnonce_add-lang');
58
  <label for="lang_list"><?php _e('Choose a language', 'polylang');?></label>
59
  <select name="lang_list" id="lang_list">
60
  <option value=""></option><?php
61
+ include(PLL_ADMIN_INC.'/languages.php');
62
  foreach ($languages as $lg) {
63
  printf(
64
  '<option value="%1$s-%2$s-%3$s">%4$s - %2$s</option>'."\n",
81
  <div class="form-field form-required">
82
  <label for="lang_locale"><?php _e('Locale', 'polylang');?></label><?php
83
  printf(
84
+ '<input name="locale" id="lang_locale" type="text" value="%s" size="40" aria-required="true" />',
85
+ $action=='edit' ? esc_attr($edit_lang->locale) : ''
86
  );?>
87
  <p><?php _e('Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language.', 'polylang');?></p>
88
  </div>
89
 
90
  <div class="form-field">
91
  <label for="lang_slug"><?php _e('Language code', 'polylang');?></label>
92
+ <input name="slug" id="lang_slug" type="text" value="<?php if ($action=='edit') echo esc_attr($edit_lang->slug);?>" size="40"/>
93
  <p><?php _e('2-letters ISO 639-1 language code (for example: en)', 'polylang');?></p>
94
  </div>
95
 
97
  <legend><?php _e('Text direction', 'polylang');?></legend><?php
98
  printf(
99
  '<label><input name="rtl" type="radio" value="0" %s /> %s</label>',
100
+ $action == 'edit' && $edit_lang->is_rtl ? '' : 'checked="checked"',
101
  __('left to right', 'polylang')
102
  );
103
  printf(
104
  '<label><input name="rtl" type="radio" value="1" %s /> %s</label>',
105
+ $action == 'edit' && $edit_lang->is_rtl ? 'checked="checked"' : '',
106
  __('right to left', 'polylang')
107
  );?>
108
  <p><?php _e('Choose the text direction for the language', 'polylang');?></p>
137
  // string translations tab
138
  case 'strings': ?>
139
 
140
+ <div class="form-wrap">
141
  <form id="string-translation" method="post" action="admin.php?page=mlang&amp;tab=strings&amp;noheader=true">
142
+ <input type="hidden" name="pll_action" value="string-translation" /><?php
143
+ $string_table->search_box(__('Search translations', 'polylang'), 'translations' );
144
+ wp_nonce_field('string-translation', '_wpnonce_string-translation');
145
+ $string_table->display();
146
+ printf('<br /><label><input name="clean" type="checkbox" value="1" /> %s</label>', __('Clean strings translation database', 'polylang')); ?>
147
+ <p><?php _e('Use this to remove unused strings from database, for example after a plugin has been uninstalled.', 'polylang');?></p><?php
148
+ submit_button(); // since WP 3.1 ?>
149
+ </form>
150
+ </div><?php
151
  break;
152
 
153
  // settings tab
162
 
163
  <tr>
164
  <th><label for='default_lang'><?php _e('Default language', 'polylang');?></label></th>
165
+ <td><?php
166
+ $dropdown = new PLL_Walker_Dropdown;
167
+ echo $dropdown->walk($listlanguages, array('name' => 'default_lang', 'selected' => $this->options['default_lang']));?>
168
+ </td>
169
  </tr><?php
170
 
171
  // posts or terms without language set
172
+ if ($this->model->get_objects_with_no_lang() && $this->options['default_lang']) {?>
173
  <tr>
174
  <th></th>
175
  <td>
202
  <label><?php
203
  printf(
204
  '<input name="force_lang" type="radio" value="0" %s /> %s',
205
+ $this->options['force_lang'] ? '' : 'checked="checked"',
206
  __('The language is set from content. Posts, pages, categories and tags urls are not modified.', 'polylang')
207
  );?>
208
  </label>
209
  <label><?php
210
  printf(
211
+ '<input name="force_lang" type="radio" value="1" %s %s/> %s %s',
212
+ $using_permalinks ? '' : 'disabled=1',
213
+ $this->options['force_lang'] == 1 ? 'checked="checked"' : '',
214
+ __('The language is set from the directory name in pretty permalinks. Example:', 'polylang'),
215
+ '<code>'.esc_html(home_url('en/my-post/')).'</code>'
216
+ );?>
217
+ </label>
218
+ <label><?php
219
+ printf(
220
+ '<input name="force_lang" type="radio" value="2" %s %s/> %s %s',
221
+ $using_permalinks ? '' : 'disabled=1',
222
+ $this->options['force_lang'] == 2 ? 'checked="checked"' : '',
223
+ __('The language is set from the subdomain name in pretty permalinks. Example:', 'polylang'),
224
+ '<code>'.esc_html(str_replace(array('://', 'www.'), array('://en.', ''), home_url('my-post/'))).'</code>'
225
  );?>
226
  </label>
227
+ <label><?php
228
+ printf(
229
+ '<input name="force_lang" type="radio" value="3" %s %s/> %s',
230
+ $using_permalinks ? '' : 'disabled=1',
231
+ $this->options['force_lang'] == 3 ? 'checked="checked"' : '',
232
+ __('The language is set from different domains:', 'polylang')
233
+ );?>
234
+ </label>
235
+ <table class="pll-domains-table"><?php
236
+ foreach ($listlanguages as $lg) {
237
+ printf(
238
+ '<tr><td><label for="pll-domain[%1$s]">%2$s</label></td>' .
239
+ '<td><input name="domains[%1$s]" id="pll-domain[%1$s]" type="text" value="%3$s" size="40" aria-required="true" %4$s /></td></tr>',
240
+ esc_attr($lg->slug),
241
+ esc_attr($lg->name),
242
+ esc_url($lg->slug == $this->options['default_lang'] ? get_option('home') : (isset($this->options['domains'][$lg->slug]) ? $this->options['domains'][$lg->slug] : '')),
243
+ !$using_permalinks || $lg->slug == $this->options['default_lang'] ? 'disabled=1' : ''
244
+ );
245
+ }?>
246
+ </table>
247
  <br />
248
  <label><?php
249
  printf(
250
  '<input name="rewrite" type="radio" value="1" %s %s/> %s %s',
251
+ $using_permalinks ? '' : 'disabled',
252
  $this->options['rewrite'] ? 'checked="checked"' : '',
253
  __('Remove /language/ in pretty permalinks. Example:', 'polylang'),
254
  '<code>'.esc_html(home_url('en/')).'</code>'
257
  <label><?php
258
  printf(
259
  '<input name="rewrite" type="radio" value="0" %s %s/> %s %s',
260
+ $using_permalinks ? '' : 'disabled',
261
  $this->options['rewrite'] ? '' : 'checked="checked"',
262
  __('Keep /language/ in pretty permalinks. Example:', 'polylang'),
263
  '<code>'.esc_html(home_url('language/en/')).'</code>'
297
  );?>
298
  </label>
299
  </td>
 
 
 
 
 
 
 
 
 
 
 
 
 
300
  </tr><?php
301
 
302
  if (!empty($post_types)) {?>
339
  </tr><?php
340
  }?>
341
 
342
+ <tr>
343
+ <th scope="row"><?php _e('Synchronization', 'polylang') ?></th>
344
+ <td>
345
+ <ul class="pll_inline_block"><?php
346
+ foreach (self::list_metas_to_sync() as $key => $str)
347
+ printf(
348
+ '<li><label><input name="sync[%s]" type="checkbox" value="1" %s /> %s</label></li>',
349
+ esc_attr($key),
350
+ in_array($key, $this->options['sync']) ? 'checked="checked"' :'',
351
+ esc_html($str)
352
+ );?>
353
+ </ul>
354
+ <p><?php _e('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.', 'polylang');?></p>
355
+ </td>
356
+ </tr>
357
+
358
  </table>
359
 
360
  <?php submit_button(); // since WP 3.1 ?>
include/media-translations.php → admin/view-translations-media.php RENAMED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  if (version_compare($GLOBALS['wp_version'], '3.5', '<')) {?>
3
  <table class="widefat media-translations">
4
  <thead><tr><?php
@@ -7,13 +9,13 @@ if (version_compare($GLOBALS['wp_version'], '3.5', '<')) {?>
7
  </tr></thead>
8
 
9
  <tbody><?php
10
- foreach ($this->get_languages_list() as $language) {
11
  if ($language->term_id == $lang->term_id)
12
  continue;?>
13
 
14
  <tr><td class="tr-language-column"><?php echo esc_html($language->name);?></td><?php
15
  // the translation exists
16
- if (($translation_id = $this->get_translation('post', $post_id, $language)) && $translation_id != $post_id) {
17
  printf(
18
  '<td class="tr-edit-column"><input type="hidden" name="media_tr_lang[%s]" value="%d" /><a href="%s">%s</a></td>',
19
  esc_attr($language->slug),
@@ -45,13 +47,13 @@ else { // WP 3.5+ ?>
45
  </tr></thead>
46
 
47
  <tbody><?php
48
- foreach ($this->get_languages_list() as $language) {
49
  if ($language->term_id == $lang->term_id)
50
  continue;?>
51
 
52
  <tr><td><?php echo esc_html($language->name);?></td><?php
53
  // the translation exists
54
- if (($translation_id = $this->get_translation('post', $post_id, $language)) && $translation_id != $post_id) {
55
  printf(
56
  '<td><input type="hidden" name="media_tr_lang[%s]" value="%d" /><a href="%s">%s</a></td>',
57
  esc_attr($language->slug),
1
  <?php
2
+
3
+ // backward compatibility WP < 3.5
4
  if (version_compare($GLOBALS['wp_version'], '3.5', '<')) {?>
5
  <table class="widefat media-translations">
6
  <thead><tr><?php
9
  </tr></thead>
10
 
11
  <tbody><?php
12
+ foreach ($this->model->get_languages_list() as $language) {
13
  if ($language->term_id == $lang->term_id)
14
  continue;?>
15
 
16
  <tr><td class="tr-language-column"><?php echo esc_html($language->name);?></td><?php
17
  // the translation exists
18
+ if (($translation_id = $this->model->get_translation('post', $post_id, $language)) && $translation_id != $post_id) {
19
  printf(
20
  '<td class="tr-edit-column"><input type="hidden" name="media_tr_lang[%s]" value="%d" /><a href="%s">%s</a></td>',
21
  esc_attr($language->slug),
47
  </tr></thead>
48
 
49
  <tbody><?php
50
+ foreach ($this->model->get_languages_list() as $language) {
51
  if ($language->term_id == $lang->term_id)
52
  continue;?>
53
 
54
  <tr><td><?php echo esc_html($language->name);?></td><?php
55
  // the translation exists
56
+ if (($translation_id = $this->model->get_translation('post', $post_id, $language)) && $translation_id != $post_id) {
57
  printf(
58
  '<td><input type="hidden" name="media_tr_lang[%s]" value="%d" /><a href="%s">%s</a></td>',
59
  esc_attr($language->slug),
include/post-translations.php → admin/view-translations-post.php RENAMED
@@ -11,13 +11,13 @@
11
  </tr></thead>
12
 
13
  <tbody>
14
- <?php foreach ($this->get_languages_list() as $language) {
15
  if ($language->term_id != $lang->term_id) {
16
- $value = $this->get_translation('post', $post_ID, $language);
17
  if (!$value || $value == $post_ID) // $value == $post_ID happens if the post has been (auto)saved before changing the language
18
  $value = '';
19
  if (isset($_GET['from_post']))
20
- $value = $this->get_post($_GET['from_post'], $language); ?>
21
  <tr>
22
  <td><?php echo esc_html($language->name);?></td><?php
23
  printf(
@@ -25,7 +25,7 @@
25
  esc_attr($language->slug),
26
  esc_attr($value)
27
  );
28
- if ($lang) {
29
  $link = $value ?
30
  sprintf(
31
  '<a href="%1$s">%2$s</a>',
11
  </tr></thead>
12
 
13
  <tbody>
14
+ <?php foreach ($this->model->get_languages_list() as $language) {
15
  if ($language->term_id != $lang->term_id) {
16
+ $value = $this->model->get_translation('post', $post_ID, $language);
17
  if (!$value || $value == $post_ID) // $value == $post_ID happens if the post has been (auto)saved before changing the language
18
  $value = '';
19
  if (isset($_GET['from_post']))
20
+ $value = $this->model->get_post($_GET['from_post'], $language); ?>
21
  <tr>
22
  <td><?php echo esc_html($language->name);?></td><?php
23
  printf(
25
  esc_attr($language->slug),
26
  esc_attr($value)
27
  );
28
+ if ($lang) {
29
  $link = $value ?
30
  sprintf(
31
  '<a href="%1$s">%2$s</a>',
include/term-translations.php → admin/view-translations-term.php RENAMED
@@ -18,15 +18,15 @@ else {
18
  echo '<th class="tr-edit-column">'.__('Edit', 'polylang').'</th>';?>
19
  </tr></thead>
20
  <tbody>
21
- <?php foreach ($this->get_languages_list() as $language) {
22
  if ($language->term_id == $lang->term_id)
23
  continue;
24
 
25
  // look for any existing translation in this language
26
  $translation = 0;
27
- if (isset($term_id) && $translation_id = $this->get_translation('term', $term_id, $language))
28
  $translation = get_term($translation_id, $taxonomy);
29
- if (isset($_GET['from_tag']) && $translation_id = $this->get_term($_GET['from_tag'], $language))
30
  $translation = get_term($translation_id, $taxonomy);?>
31
 
32
  <tr><td class="tr-language-column"><?php echo esc_html($language->name);?></td><?php
18
  echo '<th class="tr-edit-column">'.__('Edit', 'polylang').'</th>';?>
19
  </tr></thead>
20
  <tbody>
21
+ <?php foreach ($this->model->get_languages_list() as $language) {
22
  if ($language->term_id == $lang->term_id)
23
  continue;
24
 
25
  // look for any existing translation in this language
26
  $translation = 0;
27
+ if (isset($term_id) && $translation_id = $this->model->get_translation('term', $term_id, $language))
28
  $translation = get_term($translation_id, $taxonomy);
29
+ if (isset($_GET['from_tag']) && $translation_id = $this->model->get_term($_GET['from_tag'], $language))
30
  $translation = get_term($translation_id, $taxonomy);?>
31
 
32
  <tr><td class="tr-language-column"><?php echo esc_html($language->name);?></td><?php
admin/wp-import.php ADDED
@@ -0,0 +1,167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * a class to import languages and translations information form a WXR file
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_WP_Import extends WP_Import {
9
+
10
+ /*
11
+ * overrides WP_Import::process_terms to remap terms translations
12
+ *
13
+ * @since 1.2
14
+ */
15
+ function process_terms() {
16
+ // store this for future usage as parent function unsets $this->terms
17
+ foreach ($this->terms as $term) {
18
+ if ('post_translations' == $term['term_taxonomy'])
19
+ $this->post_translations[] = $term;
20
+ if ('term_translations' == $term['term_taxonomy'])
21
+ $term_translations[] = $term;
22
+ }
23
+
24
+ parent::process_terms();
25
+
26
+ global $polylang;
27
+ $polylang->model->clean_languages_cache(); // to update the languages list if needed
28
+
29
+ if (($options = get_option('polylang')) && empty($options['default_lang']) && ($languages = $polylang->model->get_languages_list())) {
30
+ // assign the default language if importer created the first language
31
+ $default_lang = reset($languages);
32
+ $options['default_lang'] = $default_lang->slug;
33
+ update_option('polylang', $options);
34
+ }
35
+
36
+ $this->remap_terms_relations($term_translations);
37
+ $this->remap_translations($term_translations, $this->processed_terms);
38
+ }
39
+
40
+ /*
41
+ * overrides WP_Import::process_post to remap posts translations
42
+ * also merges strings translations from the WXR file to the existing ones
43
+ *
44
+ * @since 1.2
45
+ */
46
+ function process_posts() {
47
+ // store this for future usage as parent function unset $this->posts
48
+ foreach ($this->posts as $post) {
49
+ if ('nav_menu_item' == $post['post_type'])
50
+ $menu_items[] = $post;
51
+
52
+ if (0 === strpos($post['post_title'], 'polylang_mo_'))
53
+ $mo_posts[] = $post;
54
+ }
55
+
56
+ if (!empty($mo_posts))
57
+ new PLL_MO(); // just to register the polylang_mo post type before processing posts
58
+
59
+ parent::process_posts();
60
+
61
+ global $polylang;
62
+ $polylang->model->clean_languages_cache(); // to update the posts count in (cached) languages list
63
+
64
+ $this->remap_translations($this->post_translations, $this->processed_posts);
65
+ unset($this->post_translations);
66
+
67
+ // language switcher menu items
68
+ foreach ($menu_items as $item) {
69
+ foreach ($item['postmeta'] as $meta) {
70
+ if ('_pll_menu_item' == $meta['key'])
71
+ update_post_meta($this->processed_menu_items[$item['post_id']], '_pll_menu_item', maybe_unserialize($meta['value']));
72
+ }
73
+ }
74
+
75
+ // merge strings translations
76
+ foreach ($mo_posts as $post) {
77
+ $lang_id = (int) substr($post['post_title'], 12);
78
+
79
+ if (!empty($this->processed_terms[$lang_id])) {
80
+ if ($strings = unserialize($post['post_content'])) {
81
+ $mo = new PLL_MO();
82
+ $mo->import_from_db($this->processed_terms[$lang_id]);
83
+ foreach ($strings as $msg)
84
+ $mo->add_entry_or_merge($mo->make_entry($msg[0], $msg[1]));
85
+ $mo->export_to_db($this->processed_terms[$lang_id]);
86
+ }
87
+ }
88
+ // delete the now useless imported post
89
+ wp_delete_post($this->processed_posts[$post['post_id']], true);
90
+ }
91
+ }
92
+
93
+ /*
94
+ * remaps terms languages
95
+ *
96
+ * @since 1.2
97
+ *
98
+ * @param array $terms array of terms in 'term_translations' taxonomy
99
+ */
100
+ function remap_terms_relations(&$terms){
101
+ global $polylang, $wpdb;
102
+
103
+ foreach ($terms as $term) {
104
+ $translations = unserialize($term['term_description']);
105
+ foreach($translations as $slug => $old_id)
106
+ if ($old_id && !empty($this->processed_terms[$old_id]) && $lang = $polylang->model->get_language($slug)) {
107
+ // language relationship
108
+ $trs[] = $wpdb->prepare('(%d, %d)', $this->processed_terms[$old_id], $lang->tl_term_taxonomy_id);
109
+
110
+ // translation relationship
111
+ $trs[] = $wpdb->prepare('(%d, %d)', $this->processed_terms[$old_id], get_term($this->processed_terms[$term['term_id']], 'term_translations')->term_taxonomy_id );
112
+ }
113
+ }
114
+
115
+ // insert term_relationships
116
+ if (!empty($trs)) {
117
+ $trs = array_unique($trs);
118
+
119
+ // make sure we don't attempt to insert already existing term relationships
120
+ $existing_trs = $wpdb->get_results("
121
+ SELECT tr.object_id, tr.term_taxonomy_id FROM $wpdb->term_relationships AS tr
122
+ INNER JOIN $wpdb->term_taxonomy AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
123
+ WHERE tt.taxonomy IN ('term_language', 'term_translations')
124
+ ");
125
+
126
+ foreach ($existing_trs as $key => $tr)
127
+ $existing_trs[$key] = $wpdb->prepare('(%d, %d)', $tr->object_id, $tr->term_taxonomy_id);
128
+
129
+ $trs = array_diff($trs, $existing_trs);
130
+
131
+ if (!empty($trs))
132
+ $wpdb->query("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id) VALUES " . implode(',', $trs));
133
+ }
134
+ }
135
+
136
+ /*
137
+ * remaps translations for both posts and terms
138
+ *
139
+ * @since 1.2
140
+ *
141
+ * @param array $terms array of terms in 'post_translations' or 'term_translations' taxonomies
142
+ * @param array $processed_objects array of posts or terms processed by WordPress Importer
143
+ */
144
+ function remap_translations(&$terms, &$processed_objects) {
145
+ global $wpdb;
146
+
147
+ foreach ($terms as $term) {
148
+ $translations = unserialize($term['term_description']);
149
+ $new_translations = array();
150
+
151
+ foreach($translations as $slug => $old_id)
152
+ if ($old_id && !empty($processed_objects[$old_id]))
153
+ $new_translations[$slug] = $processed_objects[$old_id];
154
+
155
+ if (!empty($new_translations)) {
156
+ $u['case'][] = $wpdb->prepare('WHEN %d THEN %s', $this->processed_terms[$term['term_id']], serialize($new_translations));
157
+ $u['in'][] = (int) $this->processed_terms[$term['term_id']];
158
+ }
159
+ }
160
+
161
+ if (!empty($u)) {
162
+ $wpdb->query("UPDATE $wpdb->term_taxonomy
163
+ SET description = ( CASE term_id " . implode(' ', $u['case']) . " END )
164
+ WHERE term_id IN ( " . implode(',', $u['in']) . " )");
165
+ }
166
+ }
167
+ }
changelog.txt CHANGED
@@ -1,5 +1,82 @@
1
  == Changelog ==
2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  = 1.0.4 (2013-04-08) =
4
 
5
  * Add Estonian translation contributed by [Ahto Naris](http://profiles.wordpress.org/ahtonaris/)
1
  == Changelog ==
2
 
3
+ = 1.1.6 (2013-10-13) =
4
+
5
+ * Add the possibility to display the upgrade notice on plugins page
6
+ * Bug correction: Illegal string offset 'taxonomy' in polylang/include/auto-translate.php
7
+ * Bug correction: user defined strings translations are not loaded on admin side
8
+ * Bug correction: untranslated post types are auto translated
9
+ * Bug correction: tags are not added to post when the name exists in several languages and they are not translations of each other
10
+
11
+ = 1.1.5 (2013-09-15) =
12
+
13
+ * Add compatibility with Aqua Resizer (often used in porfolio themes)
14
+ * Add support of 'icl_get_default_language' function from the WPML API
15
+ * Remove the 3 characters limitation for the language code
16
+ * Change default names for zh_CN, zh_HK, zh_TW
17
+ * Bug correction: urls are modified in search forms
18
+
19
+ = 1.1.4 (2013-08-16) =
20
+
21
+ * Add simplified Chinese language contributed by [Changmeng Hu](http://www.wpdaxue.com)
22
+ * Add Indonesian language contributed by [ajoull](http://www.ajoull.com/)
23
+ * Bug correction: nav menu locations are lost when using the admin language filter
24
+ * Bug correction: the cookie is not set when adding the language code to all urls (introduced in 1.1.3)
25
+
26
+ = 1.1.3 (2013-07-21) =
27
+
28
+ * Add Venetian language contributed by Michele Brunelli
29
+ * Bug correction: wrong rewrite rules for non translated custom post type archives
30
+ * Bug correction: 'post_id' parameter of pll_the_languages does not work
31
+ * Bug correction: warning in wp_nav_menu_objects with Artisteer generated themes
32
+ * Bug correction: warning when used together with theme my login plugin
33
+ * Bug correction: language slug is modified and translations are lost when creating a nav menu with the same name as a language
34
+
35
+ = 1.1.2 (2013-06-18) =
36
+
37
+ * Posts and terms now inherit parent's language if created outside the standard WordPress ui
38
+ * Improve the compatibility with the plugins Types and The Events Calendar, and again with WordPress SEO
39
+ * Improve performance
40
+ * Improve html validation
41
+ * Add 'raw' argument to 'pll_the_languages'
42
+ * Add the filter 'pll_translation_url'
43
+ * Bug correction: no language is set for a (translated custom taxonomy) term when added from a (non tranlated) custom post type edit page
44
+ * Bug correction: warning if 'get_terms' is called with a non-array 'include' argument (introduced in 1.1.1)
45
+ * Bug correction: warning if the menu language switcher has nothing to display
46
+
47
+ = 1.1.1 (2013-05-20) =
48
+
49
+ * Move nav menu language switcher split from 'wp_nav_menu_objects' to 'wp_get_nav_menu_items' filter
50
+ * Add the filter 'pll_redirect_home'
51
+ * Automatically translate ids in 'include' argument of 'get_terms' (useful for the menus in the Suffusion theme)
52
+ * Add compatibility with Jetpack infinite scroll
53
+ * Bug correction: rtl text direction not set when adding the language code to all urls (introduced in 1.1)
54
+ * Bug correction: hide again navigation panel in theme customizer as it still doesn't work
55
+ * Bug correction: is_home not set on translated page when searching an empty string
56
+ * Bug correction: fatal error when creating a post or term from frontend (introduced in 1.1)
57
+ * Bug correction: attachments may load a wrong language when media translation was enabled then disabled
58
+ * Bug correction: warning when querying posts before the action 'wp_loaded' has been fired (in auto-translate.php)
59
+ * Bug correction: potential issue if other plugins use the filter 'get_nav_menu'
60
+ * Bug correction: interference between language inline edit and search in admin list tables
61
+ * Bug correction: auto-translate breaks queries tax_query when the 'field' is set to 'id'
62
+ * Bug correction: search is not filtered by language for default permalinks (introduced in 1.1)
63
+ * Tests done with WP 3.6 beta 3 and Twenty thirteen
64
+
65
+ = 1.1 (2013-05-10) =
66
+
67
+ * When adding the language to all urls, the language is now defined in (plugins_loaded, 1) for better compatibility with some plugins (WordPress SEO)
68
+ * When querying posts and terms, ids are now automatically translated
69
+ * Add the possibility to group string translations
70
+ * Add the possibility to delete strings registered with 'icl_register_string'
71
+ * Move the option 'polylang_widgets' in general polylang options
72
+ * Better integration of the multilingual nav menus (everything is now integrated in the menus page of WordPress
73
+ * The language switcher is now a menu item which can be placed everywhere in a nav menu
74
+ * Posts or terms created from frontend are now assigned the current language (or another one if specified in the variable 'lang')
75
+ * Bug correction: continents-cities-xx_XX.mo not downloaded
76
+ * Bug correction: a gzipped 404 page is downloaded when a mo file does not exist on WordPress languages files repository
77
+ * Bug correction: post_date_gmt not synchronized together with post_date
78
+ * Tests done with WP 3.6 beta 2 and Twenty thirteen
79
+
80
  = 1.0.4 (2013-04-08) =
81
 
82
  * Add Estonian translation contributed by [Ahto Naris](http://profiles.wordpress.org/ahtonaris/)
css/admin.css CHANGED
@@ -3,7 +3,7 @@
3
  width : 10%;
4
  }
5
 
6
- .form-field input.tog {
7
  width: auto;
8
  margin-right: 2px;
9
  }
@@ -53,6 +53,9 @@
53
  width: 250px;
54
  }
55
 
 
 
 
56
  /* language columns in edit.php and edit-tags.php */
57
  th[class*='column-language_'] {
58
  width: 2em;
3
  width : 10%;
4
  }
5
 
6
+ .form-field input[type="radio"] {
7
  width: auto;
8
  margin-right: 2px;
9
  }
53
  width: 250px;
54
  }
55
 
56
+ .form-table .pll-domains-table td {
57
+ padding: 2px 2px 2px 18px;
58
+ }
59
  /* language columns in edit.php and edit-tags.php */
60
  th[class*='column-language_'] {
61
  width: 2em;
css/admin.min.css CHANGED
@@ -1 +1 @@
1
- .column-term_group,.column-flag,.column-count{width:10%}.form-field input.tog{width:auto;margin-right:2px}#pll_about_box p{text-align:justify}#pll_about_box input{margin:0;padding:0;float:right}#string-translation .search-box{margin:16px 0 8px 0}.stringstranslations .column-name,.stringstranslations .column-context{width:10%}.stringstranslations .column-string{width:33%}.translation label{display:inline-block;width:23%;vertical-align:top}.translation input,.translation textarea{width:72%}.pll_inline_block{margin:0}.pll_inline_block li{display:inline-block;margin:0;width:250px}th[class*='column-language_']{width:2em}.pll_icon_edit,.pll_icon_add,.pll_icon_tick{display:block;width:16px;height:16px;background-image:url("icons.png")}.pll_icon_edit{background-position:0 -24px}.pll_icon_add{background-position:-16px -24px}.pll_icon_tick{background-position:-32px -24px}.pll_icon_edit:hover{background-position:0 -40px}.pll_icon_add:hover{background-position:-16px -40px}.pll_icon_tick:hover{background-position:-32px -40px}#post-translations table{width:100%;text-align:left;font-size:11px;margin:0 6px}#post-translations td{font-size:11px}#term-translations table{width:97%}#term-translations th,.media-item .describe .media-translations th{padding:8px 10px}#term-translations td,.media-item .describe .media-translations td{font-size:12px;line-height:26px;margin-bottom:9px;padding:4px 10px}.tr-language-column{width:35%}div#term-translations select[id*='tr_lang_']{width:95%}tr#term-translations select[id*='tr_lang_']{width:65%}.tr-edit-column{width:15%}.media-translations{width:460px}
1
+ .column-term_group,.column-flag,.column-count{width:10%}.form-field input[type="radio"]{width:auto;margin-right:2px}#pll_about_box p{text-align:justify}#pll_about_box input{margin:0;padding:0;float:right}#string-translation .search-box{margin:16px 0 8px 0}.stringstranslations .column-name,.stringstranslations .column-context{width:10%}.stringstranslations .column-string{width:33%}.translation label{display:inline-block;width:23%;vertical-align:top}.translation input,.translation textarea{width:72%}.pll_inline_block{margin:0}.pll_inline_block li{display:inline-block;margin:0;width:250px}.form-table .pll-domains-table td{padding:2px 2px 2px 18px}th[class*='column-language_']{width:2em}.pll_icon_edit,.pll_icon_add,.pll_icon_tick{display:block;width:16px;height:16px;background-image:url("icons.png")}.pll_icon_edit{background-position:0 -24px}.pll_icon_add{background-position:-16px -24px}.pll_icon_tick{background-position:-32px -24px}.pll_icon_edit:hover{background-position:0 -40px}.pll_icon_add:hover{background-position:-16px -40px}.pll_icon_tick:hover{background-position:-32px -40px}#post-translations table{width:100%;text-align:left;font-size:11px;margin:0 6px}#post-translations td{font-size:11px}#term-translations table{width:97%}#term-translations th,.media-item .describe .media-translations th{padding:8px 10px}#term-translations td,.media-item .describe .media-translations td{font-size:12px;line-height:26px;margin-bottom:9px;padding:4px 10px}.tr-language-column{width:35%}div#term-translations select[id*='tr_lang_']{width:95%}tr#term-translations select[id*='tr_lang_']{width:65%}.tr-edit-column{width:15%}.media-translations{width:460px}
flags/all.png ADDED
Binary file
frontend/choose-lang-content.php ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Choose the language when it is set from content
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Choose_Lang_Content extends PLL_Choose_lang {
9
+
10
+ /*
11
+ * constructor
12
+ *
13
+ * @since 1.2
14
+ *
15
+ * @param object $links instance of PLL_Frontend_Links
16
+ */
17
+ public function __construct(&$links) {
18
+ parent::__construct($links);
19
+
20
+ if (!did_action('pll_language_defined')) {
21
+ // set the languages from content
22
+ add_action('wp', array(&$this, 'wp'), 5); // priority 5 for post types and taxonomies registered in wp hook with default priority
23
+
24
+ // if no language found, choose the preferred one
25
+ add_filter('pll_get_current_language', array(&$this, 'pll_get_current_language'));
26
+ }
27
+ }
28
+
29
+ /*
30
+ * overwrites parent::set_language to remove the 'wp' action if the language is set before
31
+ *
32
+ * @since 1.2
33
+ *
34
+ * @param object $curlang current language
35
+ */
36
+ protected function set_language($curlang) {
37
+ parent::set_language($curlang);
38
+ remove_action('wp', array(&$this, 'wp'), 5); // won't attempt to set the language a 2nd time
39
+ }
40
+
41
+ /*
42
+ * returns the language based on the queried content
43
+ *
44
+ * @since 1.2
45
+ *
46
+ * @return object|bool detected language, false if none was found
47
+ */
48
+ protected function get_language_from_content() {
49
+ // no language set for 404
50
+ if (is_404() || (is_attachment() && !$this->options['media_support']))
51
+ return $this->get_preferred_language();
52
+
53
+ if ($var = get_query_var('lang')) {
54
+ $lang = explode(',',$var);
55
+ $lang = $this->model->get_language(reset($lang)); // choose the first queried language
56
+ }
57
+
58
+ elseif ((is_single() || is_page() || (is_attachment() && $this->options['media_support'])) && ( ($var = get_queried_object_id()) || ($var = get_query_var('p')) || ($var = get_query_var('page_id')) || ($var = get_query_var('attachment_id')) ))
59
+ $lang = $this->model->get_post_language($var);
60
+
61
+ elseif (isset($this->model->taxonomies)) {
62
+ foreach ($this->model->taxonomies as $taxonomy) {
63
+ if ($var = get_query_var(get_taxonomy($taxonomy)->query_var))
64
+ $lang = $this->model->get_term_language($var, $taxonomy);
65
+ }
66
+ }
67
+
68
+ // allows plugins to set the language
69
+ return apply_filters('pll_get_current_language', isset($lang) ? $lang : false);
70
+ }
71
+
72
+ /*
73
+ * sets the language for home page
74
+ * add the lang query var when querying archives with no language code
75
+ *
76
+ * @since 1.2
77
+ *
78
+ * @param object $query instance of WP_Query
79
+ */
80
+ public function parse_main_query($query) {
81
+ if ($query !== $GLOBALS['wp_the_query'])
82
+ return;
83
+
84
+ $qv = $query->query_vars;
85
+
86
+ // homepage is requested, let's set the language
87
+ // take care to avoid posts page for which is_home = 1
88
+ if (empty($query->query) && (is_home() || (is_page() && $qv['page_id'] == $this->page_on_front))) {
89
+ $this->home_language();
90
+ $this->home_requested();
91
+ }
92
+
93
+ parent::parse_main_query($query);
94
+
95
+ $is_archive = (count($query->query) == 1 && !empty($qv['paged'])) ||
96
+ $query->is_date ||
97
+ $query->is_author ||
98
+ (!empty($qv['post_type']) && $query->is_post_type_archive && pll_is_translated_post_type($qv['post_type']));
99
+
100
+ // sets the language in case we hide the default language
101
+ // use $query->query['s'] as is_search is not set when search is empty
102
+ // http://wordpress.org/support/topic/search-for-empty-string-in-default-language
103
+ if ($this->options['hide_default'] && !isset($qv['lang']) && ($is_archive || isset($query->query['s']) || (count($query->query) == 1 && !empty($qv['feed'])) ))
104
+ $query->set('lang', $this->options['default_lang']);
105
+ }
106
+
107
+ /*
108
+ * sets the language from content
109
+ *
110
+ * @since 1.2
111
+ */
112
+ public function wp() {
113
+ // nothing to do if the language has already been set (although normally the filter has been removed)
114
+ if (!$this->curlang && $curlang = $this->get_language_from_content())
115
+ parent::set_language($curlang);
116
+ }
117
+
118
+ /*
119
+ * if no language found by get_language_from_content, return the preferred one
120
+ *
121
+ * @since 0.9
122
+ *
123
+ * @param object|bool language found in get_language_from_content
124
+ * @return object language
125
+ */
126
+ public function pll_get_current_language($lang) {
127
+ return !$lang ? $this->get_preferred_language() : $lang;
128
+ }
129
+ }
frontend/choose-lang-url.php ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Choose the language when the language code is added to all urls
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Choose_Lang_Url extends PLL_Choose_lang {
9
+ protected $index = 'index.php'; // need this before $wp_rewrite is created, also harcoded in wp-includes/rewrite.php
10
+
11
+ /*
12
+ * constructor
13
+ *
14
+ * @since 1.2
15
+ *
16
+ * @param object $links instance of PLL_Frontend_Links
17
+ */
18
+ public function __construct(&$links) {
19
+ parent::__construct($links);
20
+
21
+ if (!did_action('pll_language_defined'))
22
+ $this->set_language_from_url();
23
+ }
24
+
25
+ /*
26
+ * finds the language according to information found in the url
27
+ *
28
+ * @since 1.2
29
+ */
30
+ public function set_language_from_url() {
31
+ // home is resquested
32
+ // some PHP setups turn requests for / into /index.php in REQUEST_URI
33
+ // thanks to Gonçalo Peres for pointing out the issue with queries unknown to WP
34
+ // http://wordpress.org/support/topic/plugin-polylang-language-homepage-redirection-problem-and-solution-but-incomplete?replies=4#post-2729566
35
+ if (str_replace('www.', '', home_url('/')) == trailingslashit((is_ssl() ? 'https://' : 'http://').str_replace('www.', '', $_SERVER['HTTP_HOST']).str_replace(array($this->index, '?'.$_SERVER['QUERY_STRING']), array('', ''), $_SERVER['REQUEST_URI']))) {
36
+ // take care to post & page preview http://wordpress.org/support/topic/static-frontpage-url-parameter-url-language-information
37
+ if (isset($_GET['preview']) && ( (isset($_GET['p']) && $id = $_GET['p']) || (isset($_GET['page_id']) && $id = $_GET['page_id']) ))
38
+ $curlang = ($lg = $this->model->get_post_language($id)) ? $lg : $this->model->get_language($this->options['default_lang']);
39
+
40
+ // take care to (unattached) attachments
41
+ elseif (isset($_GET['attachment_id']) && $id = $_GET['attachment_id'])
42
+ $curlang = ($lg = $this->model->get_post_language($id)) ? $lg : $this->get_preferred_language();
43
+
44
+ else {
45
+ $this->home_language();
46
+ add_action('setup_theme', array(&$this, 'home_requested'));
47
+ }
48
+ }
49
+
50
+ elseif ($slug = $this->links_model->get_language_from_url())
51
+ $curlang = $this->model->get_language($slug);
52
+
53
+ elseif ($this->options['hide_default'])
54
+ $curlang = $this->model->get_language($this->options['default_lang']);
55
+
56
+ add_action('wp', array(&$this, 'check_language_code_in_url')); // before Wordpress redirect_canonical
57
+
58
+ // if no language found, check_language_code_in_url will attempt to find one and redirect to the correct url
59
+ // otherwise 404 will be fired in the preferred language
60
+ $this->set_language(empty($curlang) ? $this->get_preferred_language() : $curlang);
61
+ }
62
+
63
+ /*
64
+ * if the language code is not in agreement with the language od the content
65
+ * redirects incoming links to the proper URL
66
+ *
67
+ * @since 0.9.6
68
+ */
69
+ public function check_language_code_in_url() {
70
+ if (is_single() || is_page()) {
71
+ global $post;
72
+ if (isset($post->ID) && in_array($post->post_type, $this->model->post_types))
73
+ $language = $this->model->get_post_language((int)$post->ID);
74
+ }
75
+ elseif (is_category() || is_tag() || is_tax()) {
76
+ $obj = $GLOBALS['wp_query']->get_queried_object();
77
+ if (in_array($obj->taxonomy, $this->model->taxonomies))
78
+ $language = $this->model->get_term_language((int)$obj->term_id);
79
+ }
80
+
81
+ // the language is not correctly set so let's redirect to the correct url for this object
82
+ if (isset($language) && (empty($this->curlang) || $language->slug != $this->curlang->slug)) {
83
+ $root = $this->options['rewrite'] ? '/' : '/language/';
84
+ foreach ($this->model->get_languages_list() as $lang)
85
+ $languages[] = $root . $lang->slug;
86
+
87
+ $requested_url = (is_ssl() ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . str_replace($languages, '', $_SERVER['REQUEST_URI']);
88
+ $redirect_url = $this->links_model->add_language_to_link($requested_url, $language);
89
+ wp_redirect($redirect_url, 301);
90
+ exit;
91
+ }
92
+ }
93
+ }
frontend/choose-lang.php ADDED
@@ -0,0 +1,242 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * base class to choose the language
5
+ *
6
+ * @since 1.2
7
+ */
8
+ abstract class PLL_Choose_Lang {
9
+ public $links, $links_model, $model, $options;
10
+ public $domain, $page_on_front, $page_for_posts, $curlang;
11
+
12
+ /*
13
+ * constructor
14
+ *
15
+ * @since 1.2
16
+ *
17
+ * @param object $links instance of PLL_Frontend_Links
18
+ */
19
+ public function __construct(&$links) {
20
+ $this->links = &$links;
21
+ $this->links_model = &$links->links_model;
22
+ $this->model = &$links->model;
23
+ $this->options = &$links->options;
24
+
25
+ $this->domain = substr(get_option('home'), is_ssl() ? 8 : 7);
26
+ $this->page_on_front = get_option('page_on_front');
27
+ $this->page_for_posts = get_option('page_for_posts');
28
+
29
+ if (PLL_AJAX_ON_FRONT || false === stripos($_SERVER['SCRIPT_NAME'], 'index.php'))
30
+ $this->set_language(empty($_REQUEST['lang']) ? $this->get_preferred_language() : $model->get_language($_REQUEST['lang']));
31
+
32
+ add_action('pre_comment_on_post', array(&$this, 'pre_comment_on_post')); // sets the language of comment
33
+ add_filter('parse_query', array(&$this, 'parse_main_query'), 2); // sets the language in special cases
34
+ }
35
+
36
+ /*
37
+ * writes language cookie
38
+ * loads user defined translations
39
+ * fires the action 'pll_language_defined'
40
+ *
41
+ * @since 1.2
42
+ *
43
+ * @param object $curlang current language
44
+ */
45
+ protected function set_language($curlang) {
46
+ // don't set the language a second time
47
+ if (isset($this->curlang))
48
+ return;
49
+
50
+ $this->curlang = $curlang;
51
+
52
+ // set a cookie to remember the language. check headers have not been sent to avoid ugly error
53
+ // possibility to set PLL_COOKIE to false will disable cookie although it will break some functionalities
54
+ if (!headers_sent() && PLL_COOKIE !== false && (!isset($_COOKIE[PLL_COOKIE]) || $_COOKIE[PLL_COOKIE] != $curlang->slug))
55
+ setcookie(PLL_COOKIE, $curlang->slug, time() + 31536000 /* 1 year */, COOKIEPATH, $this->domain);
56
+
57
+ $GLOBALS['text_direction'] = $curlang->is_rtl ? 'rtl' : 'ltr';
58
+ do_action('pll_language_defined', $curlang->slug, $curlang);
59
+ }
60
+
61
+ /*
62
+ * returns the language according to browser preference or the default language
63
+ *
64
+ * @since 0.1
65
+ *
66
+ * @return object browser preferred language or default language
67
+ */
68
+ public function get_preferred_language() {
69
+ // check first if the user was already browsing this site
70
+ if (isset($_COOKIE[PLL_COOKIE]))
71
+ return $this->model->get_language($_COOKIE[PLL_COOKIE]);
72
+
73
+ // sets the browsing language according to the browser preferences
74
+ // code adapted from http://www.thefutureoftheweb.com/blog/use-accept-language-header
75
+ if ($this->options['browser']) {
76
+ $accept_langs = array();
77
+
78
+ if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
79
+ // break up string into pieces (languages and q factors)
80
+ preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $lang_parse);
81
+
82
+ $k = $lang_parse[1];
83
+ $v = $lang_parse[4];
84
+
85
+ if ($n = count($k)) {
86
+ // set default to 1 for any without q factor
87
+ foreach ($v as $key => $val)
88
+ if ($val === '') $v[$key] = 1;
89
+
90
+ // bubble sort (need a stable sort for Android, so can't use a PHP sort function)
91
+ if ($n > 1) {
92
+ for ($i = 2; $i <= $n; $i++)
93
+ for ($j = 0; $j <= $n-2; $j++)
94
+ if ( $v[$j] < $v[$j + 1]) {
95
+ // swap values
96
+ $temp = $v[$j];
97
+ $v[$j] = $v[$j + 1];
98
+ $v[$j + 1] = $temp;
99
+ //swap keys
100
+ $temp = $k[$j];
101
+ $k[$j] = $k[$j + 1];
102
+ $k[$j + 1] = $temp;
103
+ }
104
+ }
105
+ $accept_langs = array_combine($k,$v);
106
+ }
107
+ }
108
+
109
+ // looks through sorted list and use first one that matches our language list
110
+ $listlanguages = $this->model->get_languages_list(array('hide_empty' => true)); // hides languages with no post
111
+ foreach (array_keys($accept_langs) as $accept_lang) {
112
+ foreach ($listlanguages as $language)
113
+ if (empty($pref_lang) && (0 === stripos($accept_lang, $language->slug) || $accept_lang == str_replace('_', '-', $language->locale)) )
114
+ $pref_lang = $language;
115
+ }
116
+ } // options['browser']
117
+
118
+ // allow plugin to modify the preferred language (useful for example to have a different fallback than the default language)
119
+ $slug = apply_filters('pll_preferred_language', isset($pref_lang) ? $pref_lang->slug : false);
120
+
121
+ // return default if there is no preferences in the browser or preferences does not match our languages or it is requested not to use the browser preference
122
+ return ($lang = $this->model->get_language($slug)) ? $lang : $this->model->get_language($this->options['default_lang']);
123
+ }
124
+
125
+ /*
126
+ * sets the language when home page is resquested
127
+ *
128
+ * @since 1.2
129
+ */
130
+ protected function home_language() {
131
+ // test referer in case PLL_COOKIE is set to false
132
+ // thanks to Ov3rfly http://wordpress.org/support/topic/enhance-feature-when-front-page-is-visited-set-language-according-to-browser
133
+ $this->set_language(
134
+ $this->options['hide_default'] && ((isset($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], $this->domain) !== false)) ?
135
+ $this->model->get_language($this->options['default_lang']) :
136
+ $this->get_preferred_language() // sets the language according to browser preference or default language
137
+ );
138
+ }
139
+
140
+ /*
141
+ * to call when the home page has been requested
142
+ * make sure to call this after 'setup_theme' has been fired as we need $wp_query
143
+ * performs a redirection to the home page in the current language if needed
144
+ *
145
+ * @since 0.9
146
+ */
147
+ public function home_requested() {
148
+ // we are already on the right page
149
+ if (3 == $this->options['force_lang'] || ($this->options['default_lang'] == $this->curlang->slug && $this->options['hide_default'])) {
150
+ if ($this->page_on_front && $page_id = $this->model->get_post($this->page_on_front, $this->curlang))
151
+ set_query_var('page_id', $page_id);
152
+ else
153
+ set_query_var('lang', $this->curlang->slug);
154
+ }
155
+ // redirect to the home page in the right language
156
+ // test to avoid crash if get_home_url returns something wrong
157
+ // FIXME why this happens? http://wordpress.org/support/topic/polylang-crashes-1
158
+ // don't redirect if $_POST is not empty as it could break other plugins
159
+ // don't forget the query string which may be added by plugins
160
+ elseif (is_string($redirect = $this->links->get_home_url($this->curlang)) && empty($_POST)) {
161
+ $redirect = empty($_SERVER['QUERY_STRING']) ? $redirect : $redirect . (get_option('permalink_structure') ? '?' : '&') . $_SERVER['QUERY_STRING'];
162
+ if ($redirect = apply_filters('pll_redirect_home', $redirect)) {
163
+ wp_redirect($redirect);
164
+ exit;
165
+ }
166
+ }
167
+
168
+ }
169
+
170
+ /*
171
+ * set the language when posting a comment
172
+ *
173
+ * @since 0.8.4
174
+ *
175
+ * @param int $post_id the post beeing commented
176
+ */
177
+ public function pre_comment_on_post($post_id) {
178
+ $this->set_language($this->model->get_post_language($post_id));
179
+ }
180
+
181
+ /*
182
+ * modifies some main query vars for home page and page for posts
183
+ * to enable one home page (and one page for posts) per language
184
+ *
185
+ * @since 1.2
186
+ *
187
+ * @param object $query instance of WP_Query
188
+ */
189
+ public function parse_main_query($query) {
190
+ if (empty($GLOBALS['wp_the_query']) || $query !== $GLOBALS['wp_the_query'])
191
+ return;
192
+
193
+ $qv = $query->query_vars;
194
+
195
+ // redirect the language page to the homepage when using a static front page
196
+ if ($this->options['redirect_lang'] && is_tax('language') && $this->page_on_front && (count($query->query) == 1 || (is_paged() && count($query->query) == 2))) {
197
+ $this->set_language($this->model->get_language(get_query_var('lang')));
198
+ if ($page_id = $this->model->get_post($this->page_on_front, $this->model->get_language(get_query_var('lang')))) {
199
+ $query->set('page_id', $page_id);
200
+ $query->is_singular = $query->is_page = true;
201
+ $query->is_archive = $query->is_tax = false;
202
+ unset($query->query_vars['lang'], $query->queried_object); // reset queried object
203
+ return;
204
+ }
205
+ // else : the static front page is not translated
206
+ // let's things as is and the list of posts in the current language will be displayed
207
+ }
208
+
209
+ // sets is_home on translated home page when it displays posts
210
+ // is_home must be true on page 2, 3... too
211
+ // as well as when searching an empty string: http://wordpress.org/support/topic/plugin-polylang-polylang-breaks-search-in-spun-theme
212
+ if (!$this->page_on_front && is_tax('language') && (count($query->query) == 1 || (is_paged() && count($query->query) == 2) || (isset($query->query['s']) && !$query->query['s']))) {
213
+ $this->set_language($this->model->get_language(get_query_var('lang'))); // sets the language now otherwise it will be too late to filter sticky posts !
214
+ $query->is_home = true;
215
+ $query->is_archive = $query->is_tax = false;
216
+ }
217
+
218
+ // sets the language for posts page in case the front page displays a static page
219
+ if ($this->page_for_posts) {
220
+ // If permalinks are used, WordPress does set and use $query->queried_object_id and sets $query->query_vars['page_id'] to 0
221
+ // and does set and use $query->query_vars['page_id'] if permalinks are not used :(
222
+ if (!empty($qv['pagename']) && isset($query->queried_object_id))
223
+ $page_id = $query->queried_object_id;
224
+
225
+ elseif (isset($qv['page_id']))
226
+ $page_id = $qv['page_id'];
227
+
228
+ if (!empty($page_id) && $this->model->get_post($page_id, $this->model->get_post_language($this->page_for_posts)) == $this->page_for_posts) {
229
+ $this->set_language($this->model->get_post_language($page_id));
230
+ $query->set('lang', $this->curlang->slug);
231
+ $query->is_singular = $query->is_page = false;
232
+ $query->is_home = $query->is_posts_page = true;
233
+ }
234
+ }
235
+
236
+ // backward compatibility WP < 3.4, sets a language for theme preview
237
+ if (is_preview() && is_front_page()) {
238
+ $this->set_language($this->get_preferred_language());
239
+ $query->set('lang', $this->curlang->slug);
240
+ }
241
+ }
242
+ }
include/auto-translate.php → frontend/frontend-auto-translate.php RENAMED
@@ -2,18 +2,39 @@
2
  /*
3
  * auto translates the posts and terms ids
4
  * useful for example for themes querying a specific cat
 
 
5
  */
6
- class Polylang_Auto_Translate {
7
- function __construct() {
8
- add_action('pre_get_posts', array(&$this, 'pre_get_posts')); // after Polylang
 
 
 
 
 
 
 
 
 
 
 
 
9
  add_filter('get_terms_args', array(&$this, 'get_terms_args'), 10, 2);
10
  }
11
 
12
- function pre_get_posts($query) {
13
- global $wpdb, $polylang;
 
 
 
 
 
 
 
14
  $qv = &$query->query_vars;
15
 
16
- if (!empty($qv['post_type']) && !(is_array($qv['post_type']) && array_intersect($qv['post_type'], $polylang->post_types) || in_array($qv['post_type'], $polylang->post_types)))
17
  return;
18
 
19
  $sign = create_function('$n', 'return $n > 0 ? 1 : ($n < 0 ? -1 : 0);');
@@ -78,10 +99,10 @@ class Polylang_Auto_Translate {
78
  }
79
  }
80
 
81
- if (isset($polylang->taxonomies) && is_array($polylang->taxonomies)) {
82
  // custom taxonomies
83
  // according to codex, this type of query is deprecated as of WP 3.1 but it does not appear in WP 3.5 source code
84
- foreach (array_diff($polylang->taxonomies, array('category', 'post_tag')) as $taxonomy) {
85
  $tax = get_taxonomy($taxonomy);
86
  $arr = array();
87
  if (!empty($qv[$tax->query_var])) {
@@ -97,7 +118,7 @@ class Polylang_Auto_Translate {
97
  // tax_query since WP 3.1
98
  if (!empty($qv['tax_query']) && is_array($qv['tax_query'])) {
99
  foreach ($qv['tax_query'] as $key => $q) {
100
- if (isset($q['taxonomy']) && in_array($q['taxonomy'], $polylang->taxonomies)) {
101
  $arr = array();
102
  $field = isset($q['field']) && in_array($q['field'], array('slug', 'name')) ? $q['field'] : 'term_id';
103
  foreach ( (array) $q['terms'] as $t)
@@ -118,7 +139,7 @@ class Polylang_Auto_Translate {
118
  // name, pagename can only take one slug
119
  foreach (array('name', 'pagename') as $key) {
120
  if (!empty($qv[$key])) {
121
- // no function to get post by name
122
  $post_type = empty($qv['post_type']) ? 'post' : $qv['post_type'];
123
  $id = $wpdb->get_var($wpdb->prepare("SELECT ID from $wpdb->posts WHERE post_type=%s AND post_name=%s", $post_type, $qv[$key]));
124
  $qv[$key] = ($id && ($tr_id = pll_get_post($id)) && $tr = get_post($tr_id)) ? $tr->post_name : $qv[$key];
@@ -126,7 +147,8 @@ class Polylang_Auto_Translate {
126
  }
127
 
128
  // array of post ids
129
- foreach (array('post__in', 'post__not_in') as $key) {
 
130
  $arr = array();
131
  if (!empty($qv[$key])) {
132
  // post__in used by the 2 functions below
@@ -143,10 +165,17 @@ class Polylang_Auto_Translate {
143
  }
144
  }
145
 
146
- function get_terms_args($args, $taxonomies) {
147
- global $polylang;
148
-
149
- if (!empty($args['include']) && isset($polylang->taxonomies) && is_array($polylang->taxonomies) && array_intersect($taxonomies, $polylang->taxonomies)) {
 
 
 
 
 
 
 
150
  foreach(wp_parse_id_list($args['include']) as $id)
151
  $arr[] = ($tr = pll_get_term($id)) ? $tr : $id;
152
 
@@ -155,5 +184,3 @@ class Polylang_Auto_Translate {
155
  return $args;
156
  }
157
  }
158
-
159
- add_action('pll_language_defined', create_function('', 'new Polylang_Auto_Translate();'));
2
  /*
3
  * auto translates the posts and terms ids
4
  * useful for example for themes querying a specific cat
5
+ *
6
+ * @since 1.1
7
  */
8
+ class PLL_Frontend_Auto_Translate {
9
+ public $model;
10
+
11
+
12
+ /*
13
+ * constructor
14
+ *
15
+ * @since 1.1
16
+ *
17
+ * @param object $model PLL_Model instance
18
+ */
19
+ public function __construct(&$model) {
20
+ $this->model = &$model;
21
+
22
+ add_action('pre_get_posts', array(&$this, 'pre_get_posts')); // after main Polylang filter
23
  add_filter('get_terms_args', array(&$this, 'get_terms_args'), 10, 2);
24
  }
25
 
26
+ /*
27
+ * filters posts query to automatically translate included ids
28
+ *
29
+ * @since 1.1
30
+ *
31
+ * @param object $query WP_Query object
32
+ */
33
+ public function pre_get_posts($query) {
34
+ global $wpdb;
35
  $qv = &$query->query_vars;
36
 
37
+ if (!empty($qv['post_type']) && !$this->model->is_translated_post_type($qv['post_type']))
38
  return;
39
 
40
  $sign = create_function('$n', 'return $n > 0 ? 1 : ($n < 0 ? -1 : 0);');
99
  }
100
  }
101
 
102
+ if (isset($this->model->taxonomies) && is_array($this->model->taxonomies)) {
103
  // custom taxonomies
104
  // according to codex, this type of query is deprecated as of WP 3.1 but it does not appear in WP 3.5 source code
105
+ foreach (array_diff($this->model->taxonomies, array('category', 'post_tag')) as $taxonomy) {
106
  $tax = get_taxonomy($taxonomy);
107
  $arr = array();
108
  if (!empty($qv[$tax->query_var])) {
118
  // tax_query since WP 3.1
119
  if (!empty($qv['tax_query']) && is_array($qv['tax_query'])) {
120
  foreach ($qv['tax_query'] as $key => $q) {
121
+ if (isset($q['taxonomy']) && in_array($q['taxonomy'], $this->model->taxonomies)) {
122
  $arr = array();
123
  $field = isset($q['field']) && in_array($q['field'], array('slug', 'name')) ? $q['field'] : 'term_id';
124
  foreach ( (array) $q['terms'] as $t)
139
  // name, pagename can only take one slug
140
  foreach (array('name', 'pagename') as $key) {
141
  if (!empty($qv[$key])) {
142
+ // no function to get post by name except get_posts itself
143
  $post_type = empty($qv['post_type']) ? 'post' : $qv['post_type'];
144
  $id = $wpdb->get_var($wpdb->prepare("SELECT ID from $wpdb->posts WHERE post_type=%s AND post_name=%s", $post_type, $qv[$key]));
145
  $qv[$key] = ($id && ($tr_id = pll_get_post($id)) && $tr = get_post($tr_id)) ? $tr->post_name : $qv[$key];
147
  }
148
 
149
  // array of post ids
150
+ // post_parent__in & post_parent__not_in since WP 3.6
151
+ foreach (array('post__in', 'post__not_in', 'post_parent__in', 'post_parent__not_in') as $key) {
152
  $arr = array();
153
  if (!empty($qv[$key])) {
154
  // post__in used by the 2 functions below
165
  }
166
  }
167
 
168
+ /*
169
+ * filters terms query to automatically translate included ids
170
+ *
171
+ * @since 1.1.1
172
+ *
173
+ * @param array $args
174
+ * @param array $taxonomies
175
+ * @return array modified $args
176
+ */
177
+ public function get_terms_args($args, $taxonomies) {
178
+ if (!empty($args['include']) && $this->model->is_translated_taxonomy($taxonomies)) {
179
  foreach(wp_parse_id_list($args['include']) as $id)
180
  $arr[] = ($tr = pll_get_term($id)) ? $tr : $id;
181
 
184
  return $args;
185
  }
186
  }
 
 
frontend/frontend-filters-search.php ADDED
@@ -0,0 +1,130 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * filters search forms when using permalinks
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Frontend_Filters_Search {
9
+ public $links;
10
+
11
+ /*
12
+ * constructor
13
+ *
14
+ * @since 1.2
15
+ *
16
+ * @param object $links instance of PLL_Frontend_Links
17
+ */
18
+ public function __construct(&$links) {
19
+ $this->links = &$links;
20
+ $this->using_permalinks = (bool) get_option('permalink_structure'); // are we using permalinks?
21
+
22
+ // adds the language information in the search form
23
+ // low priority in case the search form is created using the same filter as described in http://codex.wordpress.org/Function_Reference/get_search_form
24
+ add_filter('get_search_form', array(&$this, 'get_search_form'), 99);
25
+
26
+ // adds the language information in admin bar search form
27
+ add_action('add_admin_bar_menus', array(&$this, 'add_admin_bar_menus'));
28
+
29
+ // backward compatibility WP < 3.6
30
+ // adds javascript at the end of the document
31
+ if (!$this->using_permalinks && (!defined('PLL_SEARCH_FORM_JS') || PLL_SEARCH_FORM_JS))
32
+ add_action('wp_footer', array(&$this, 'wp_print_footer_scripts'));
33
+ }
34
+
35
+ /*
36
+ * adds the language information in the search form
37
+ * does not work if searchform.php (prior to WP 3.6) is used or if the search form is hardcoded in another template file
38
+ *
39
+ * @since 0.1
40
+ *
41
+ * @param string $form search form
42
+ * @return string modified search form
43
+ */
44
+ public function get_search_form($form) {
45
+ if ($form) {
46
+ if ($this->using_permalinks) {
47
+ // take care to modify only the url in the <form> tag
48
+ preg_match('#<form.+>#', $form, $matches);
49
+ $old = reset($matches);
50
+ $new = str_replace(trailingslashit($this->links->home), $this->links->get_home_url('', true), $old);
51
+ $form = str_replace($old, $new, $form);
52
+ }
53
+ else
54
+ $form = str_replace('</form>', '<input type="hidden" name="lang" value="'.esc_attr($this->links->curlang->slug).'" /></form>', $form);
55
+ }
56
+
57
+ return $form;
58
+ }
59
+
60
+ /*
61
+ * adds the language information in admin bar search form
62
+ *
63
+ * @since 1.2
64
+ */
65
+ function add_admin_bar_menus() {
66
+ remove_action('admin_bar_menu', 'wp_admin_bar_search_menu', 4);
67
+ add_action('admin_bar_menu', array(&$this, 'admin_bar_search_menu'), 4);
68
+ }
69
+
70
+ /*
71
+ * rewrites the admin bar search form to pass our get_search form filter. See #21342
72
+ *
73
+ * @since 0.9
74
+ *
75
+ * @param object $wp_admin_bar
76
+ */
77
+ public function admin_bar_search_menu($wp_admin_bar) {
78
+ $form = sprintf('
79
+ <form action="%s" method="get" id="adminbarsearch">
80
+ <input class="adminbar-input" name="s" id="adminbar-search" tabindex="10" type="text" value="" maxlength="150" />
81
+ <input type="submit" class="adminbar-button" value="%s"/>
82
+ </form>',
83
+ esc_url(get_option('home')),
84
+ __('Search')
85
+ );
86
+
87
+ $wp_admin_bar->add_menu(array(
88
+ 'parent' => 'top-secondary',
89
+ 'id' => 'search',
90
+ 'title' => $this->get_search_form($form), // pass the get_search_form filter
91
+ 'meta' => array('class' => 'admin-bar-search', 'tabindex' => -1)
92
+ ));
93
+ }
94
+
95
+ /*
96
+ * modifies the search form since filtering get_search_form won't work if the template uses searchform.php or the search form is hardcoded
97
+ * now only for backward compatibility WP < 3.6
98
+ *
99
+ * @since 0.1
100
+ */
101
+ public function wp_print_footer_scripts() {
102
+ // don't use directly e[0] just in case there is somewhere else an element named 's'
103
+ // check before if the hidden input has not already been introduced by get_search_form (FIXME: is there a way to improve this) ?
104
+ // thanks to AndyDeGroo for improving the code for compatility with old browsers
105
+ // http://wordpress.org/support/topic/development-of-polylang-version-08?replies=6#post-2645559
106
+ $lang = esc_js($this->links->curlang->slug);
107
+ $js = "//<![CDATA[
108
+ e = document.getElementsByName('s');
109
+ for (i = 0; i < e.length; i++) {
110
+ if (e[i].tagName.toUpperCase() == 'INPUT') {
111
+ s = e[i].parentNode.parentNode.children;
112
+ l = 0;
113
+ for (j = 0; j < s.length; j++) {
114
+ if (s[j].name == 'lang') {
115
+ l = 1;
116
+ }
117
+ }
118
+ if ( l == 0) {
119
+ var ih = document.createElement('input');
120
+ ih.type = 'hidden';
121
+ ih.name = 'lang';
122
+ ih.value = '$lang';
123
+ e[i].parentNode.appendChild(ih);
124
+ }
125
+ }
126
+ }
127
+ //]]>";
128
+ echo "<script type='text/javascript'>" .$js. "</script>";
129
+ }
130
+ }
frontend/frontend-filters.php ADDED
@@ -0,0 +1,278 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * filters content by language on frontend
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Frontend_Filters {
9
+ public $links_model, $model, $options;
10
+ public $curlang;
11
+
12
+ /*
13
+ * constructor: setups filters and actions
14
+ *
15
+ * @since 1.2
16
+ *
17
+ * @param object $links_model
18
+ * @param object $curlang
19
+ */
20
+ public function __construct(&$links_model, &$curlang) {
21
+ $this->links_model = &$links_model;
22
+ $this->model = &$links_model->model;
23
+ $this->options = &$this->model->options;
24
+
25
+ $this->curlang = &$curlang;
26
+
27
+ // filters the WordPress locale
28
+ add_filter('locale', array(&$this, 'get_locale'));
29
+
30
+ // backward compatibility WP < 3.4, modifies the language information in rss feed
31
+ add_filter('option_rss_language', array(&$this, 'option_rss_language'));
32
+
33
+ // translates page for posts and page on front
34
+ add_filter('option_page_for_posts', array(&$this, 'translate_page'));
35
+ add_filter('option_page_on_front', array(&$this, 'translate_page'));
36
+
37
+ // filter sticky posts by current language
38
+ add_filter('option_sticky_posts', array(&$this, 'option_sticky_posts'));
39
+
40
+ // filters categories and post tags by language
41
+ add_filter('terms_clauses', array(&$this, 'terms_clauses'), 10, 3);
42
+
43
+ // filters the pages according to the current language in wp_list_pages
44
+ add_filter('wp_list_pages_excludes', array(&$this, 'wp_list_pages_excludes'));
45
+
46
+ // filters the comments according to the current language
47
+ add_filter('comments_clauses', array(&$this, 'comments_clauses'), 10, 2);
48
+
49
+ // rewrites archives, next and previous post links to filter them by language
50
+ foreach (array('getarchives', 'get_previous_post', 'get_next_post') as $filter)
51
+ foreach (array('_join', '_where') as $clause)
52
+ add_filter($filter.$clause, array(&$this, 'posts'.$clause));
53
+
54
+ // filters the widgets according to the current language
55
+ add_filter('widget_display_callback', array(&$this, 'widget_display_callback'), 10, 2);
56
+
57
+ // strings translation (must be applied before WordPress applies its default formatting filters)
58
+ foreach (array('widget_title', 'option_blogname', 'option_blogdescription', 'option_date_format', 'option_time_format') as $filter)
59
+ add_filter($filter, 'pll__', 1);
60
+
61
+ // translates biography
62
+ add_filter('get_user_metadata', array(&$this,'get_user_metadata'), 10, 3);
63
+
64
+ // set posts and terms language when created from frontend (ex with P2 theme)
65
+ add_action('save_post', array(&$this, 'save_post'), 200, 2);
66
+ add_action('create_term', array(&$this, 'save_term'), 10, 3);
67
+ add_action('edit_term', array(&$this, 'save_term'), 10, 3);
68
+ }
69
+
70
+ /*
71
+ * returns the locale based on current language
72
+ *
73
+ * @since 0.1
74
+ *
75
+ * @param string $locale
76
+ * @return string
77
+ */
78
+ public function get_locale($locale) {
79
+ return $this->curlang->locale;
80
+ }
81
+
82
+ /*
83
+ * modifies the language information in rss feed
84
+ * backward compatibility WP < 3.4
85
+ *
86
+ * @since 0.8
87
+ *
88
+ * @param string $value
89
+ * @return string
90
+ */
91
+ public function option_rss_language($value) {
92
+ return get_bloginfo_rss('language');
93
+ }
94
+
95
+ /*
96
+ * translates page for posts and page on front
97
+ *
98
+ * @since 0.8
99
+ *
100
+ * @param int $v page for posts or page on front page id
101
+ * @return int
102
+ */
103
+ public function translate_page($v) {
104
+ // FIXME comes too late when language is set from content
105
+ static $posts = array(); // the fonction may be often called so let's store the result
106
+
107
+ // returns the current page if there is no translation to avoid ugly notices
108
+ return isset($this->curlang) && $v && (isset($posts[$v]) || $posts[$v] = $this->model->get_post($v, $this->curlang)) ? $posts[$v] : $v;
109
+ }
110
+
111
+ /*
112
+ * filters sticky posts by current language
113
+ *
114
+ * @since 0.8
115
+ *
116
+ * @param array $posts list of sticky posts ids
117
+ * @return array modified list of sticky posts ids
118
+ */
119
+ public function option_sticky_posts($posts) {
120
+ if ($this->curlang && !empty($posts)) {
121
+ update_object_term_cache($posts, 'post'); // to avoid queries in foreach
122
+ foreach ($posts as $key=>$post_id) {
123
+ if ($this->model->get_post_language($post_id)->term_id != $this->curlang->term_id)
124
+ unset($posts[$key]);
125
+ }
126
+ }
127
+ return $posts;
128
+ }
129
+
130
+ /*
131
+ * filters categories and post tags by language when needed
132
+ *
133
+ * @since 0.2
134
+ *
135
+ * @param array $clauses sql clauses
136
+ * @param array $taxonomies
137
+ * @param array $args get_terms arguments
138
+ * @return array modified sql clauses
139
+ */
140
+ public function terms_clauses($clauses, $taxonomies, $args) {
141
+ // does nothing except on taxonomies which are filterable
142
+ if (!array_intersect($taxonomies, $this->model->taxonomies))
143
+ return $clauses;
144
+
145
+ // adds our clauses to filter by language
146
+ return $this->model->terms_clauses($clauses, isset($args['lang']) ? $args['lang'] : $this->curlang);
147
+ }
148
+
149
+ /*
150
+ * excludes pages which are not in the current language for wp_list_pages
151
+ * useful for the pages widget
152
+ *
153
+ * @since 0.4
154
+ *
155
+ * @param array $pages list of page ids to exclude from wp_list_pages
156
+ * @return array modified list of page ids
157
+ */
158
+ public function wp_list_pages_excludes($pages) {
159
+ return array_merge($pages, pll_exclude_pages($this->curlang));
160
+ }
161
+
162
+ /*
163
+ * filters the comments according to the current language mainly for the recent comments widget
164
+ *
165
+ * @since 0.2
166
+ *
167
+ * @param array $clauses
168
+ * @param object $query
169
+ * @return array modified $clauses
170
+ */
171
+ public function comments_clauses($clauses, $query) {
172
+ return $this->model->comments_clauses($clauses, isset($query->query_vars['lang']) ? $query->query_vars['lang'] : $this->curlang);
173
+ }
174
+
175
+ /*
176
+ * modifies the sql request for wp_get_archives an get_adjacent_post to filter by the current language
177
+ *
178
+ * @since 0.1
179
+ *
180
+ * @param string $sql join clause
181
+ * @return string modified join clause
182
+ */
183
+ public function posts_join($sql) {
184
+ return $sql . $this->model->join_clause('post');
185
+ }
186
+
187
+ /*
188
+ * modifies the sql request for wp_get_archives and get_adjacent_post to filter by the current language
189
+ *
190
+ * @since 0.1
191
+ *
192
+ * @param string $sql where clause
193
+ * @return string modified where clause
194
+ */
195
+ public function posts_where($sql) {
196
+ preg_match("#post_type = '([^']+)'#", $sql, $matches); // find the queried post type
197
+ return !empty($matches[1]) && in_array($matches[1], $this->model->post_types) ? $sql . $this->model->where_clause($this->curlang, 'post') : $sql;
198
+ }
199
+
200
+ /*
201
+ * filters the widgets according to the current language
202
+ * don't display if a language filter is set and this is not the current one
203
+ *
204
+ * @since 0.3
205
+ *
206
+ * @param array $instance widget settings
207
+ * @param object $widget WP_Widget object
208
+ * @return bool|array false if we hide the widget, unmodified $instance otherwise
209
+ */
210
+ public function widget_display_callback($instance, $widget) {
211
+ return !empty($this->options['widgets'][$widget->id]) && $this->options['widgets'][$widget->id] != $this->curlang->slug ? false : $instance;
212
+ }
213
+
214
+ /*
215
+ * translates biography
216
+ *
217
+ * @since 0.9
218
+ *
219
+ * @param null $null
220
+ * @param int $id user id
221
+ * @param string $meta_key
222
+ * @return null|string
223
+ */
224
+ public function get_user_metadata($null, $id, $meta_key) {
225
+ return $meta_key == 'description' ? get_user_meta($id, 'description_'.$this->curlang->slug, true) : $null;
226
+ }
227
+
228
+ /*
229
+ * called when a post (or page) is saved, published or updated
230
+ * does nothing except on post types which are filterable
231
+ *
232
+ * @since 1.1
233
+ *
234
+ * @param int $post_id
235
+ * @param object $post
236
+ */
237
+ public function save_post($post_id, $post) {
238
+ if (in_array($post->post_type, $this->model->post_types)) {
239
+ if (isset($_REQUEST['lang']))
240
+ $this->model->set_post_language($post_id, $_REQUEST['lang']);
241
+
242
+ elseif ($this->model->get_post_language($post_id))
243
+ {}
244
+
245
+ elseif (($parent_id = wp_get_post_parent_id($post_id)) && $parent_lang = $this->model->get_post_language($parent_id))
246
+ $this->model->set_post_language($post_id, $parent_lang);
247
+
248
+ else
249
+ $this->model->set_post_language($post_id, $this->curlang);
250
+ }
251
+ }
252
+
253
+ /*
254
+ * called when a category or post tag is created or edited
255
+ * does nothing except on taxonomies which are filterable
256
+ *
257
+ * @since 1.1
258
+ *
259
+ * @param int $term_id
260
+ * @param int $tt_id term taxonomy id
261
+ * @param string $taxonomy
262
+ */
263
+ public function save_term($term_id, $tt_id, $taxonomy) {
264
+ if (in_array($taxonomy, $this->model->taxonomies)) {
265
+ if (isset($_REQUEST['lang']))
266
+ $this->model->set_term_language($term_id, $_REQUEST['lang']);
267
+
268
+ elseif ($this->model->get_term_language($term_id))
269
+ {}
270
+
271
+ elseif (($term = get_term($term_id, $taxonomy)) && !empty($term->parent) && $parent_lang = $this->model->get_term_language($term->parent))
272
+ $this->model->set_term_language($term_id, $parent_lang);
273
+
274
+ else
275
+ $this->model->set_term_language($term_id, $this->curlang);
276
+ }
277
+ }
278
+ }
frontend/frontend-links.php ADDED
@@ -0,0 +1,299 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * manages links filters and url of translations on frontend
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Frontend_Links extends PLL_Links {
9
+ public $curlang, $home, $using_permalinks, $page_on_front, $page_for_posts;
10
+
11
+ /*
12
+ * constructor
13
+ *
14
+ * @since 1.2
15
+ *
16
+ * @param object $links_model
17
+ */
18
+ public function __construct(&$links_model) {
19
+ parent::__construct($links_model);
20
+
21
+ $this->using_permalinks = (bool) get_option('permalink_structure'); // are we using permalinks?
22
+
23
+ $this->home = get_option('home');
24
+ $this->page_on_front = get_option('page_on_front');
25
+ $this->page_for_posts = get_option('page_for_posts');
26
+
27
+ add_action('pll_language_defined', array(&$this, 'pll_language_defined'), 10, 2);
28
+ }
29
+
30
+ /*
31
+ * adds filters once the language is defined
32
+ * low priority on links filters to come after any other modification
33
+ *
34
+ * @since 1.2
35
+ *
36
+ * @param string $slug current language slug
37
+ * @param object $curlang current language object
38
+ */
39
+ public function pll_language_defined($slug, $curlang) {
40
+ $this->curlang = $curlang;
41
+
42
+ // rewrites author and date links to filter them by language
43
+ foreach (array('feed_link', 'author_link', 'post_type_archive_link', 'year_link', 'month_link', 'day_link') as $filter)
44
+ add_filter($filter, array(&$this, 'archive_link'), 20);
45
+
46
+ // modifies the page link in case the front page is not in the default language
47
+ add_filter('page_link', array(&$this, 'page_link'), 20, 2);
48
+
49
+ // meta in the html head section
50
+ add_action('wp_head', array(&$this, 'wp_head'));
51
+
52
+ // manages the redirection of the homepage
53
+ add_filter('redirect_canonical', array(&$this, 'redirect_canonical'), 10, 2);
54
+
55
+ // modifies the home url
56
+ if (!defined('PLL_FILTER_HOME_URL') || PLL_FILTER_HOME_URL)
57
+ add_filter('home_url', array(&$this, 'home_url'), 10, 2);
58
+ }
59
+
60
+ /*
61
+ * modifies the author and date links to add the language parameter (as well as feed link)
62
+ *
63
+ * @since 0.4
64
+ *
65
+ * @param string $link
66
+ * @return string modified link
67
+ */
68
+ public function archive_link($link) {
69
+ return $this->links_model->add_language_to_link($link, $this->curlang);
70
+ }
71
+
72
+ /*
73
+ * modifies post format links
74
+ *
75
+ * @since 0.7
76
+ *
77
+ * @param string $link
78
+ * @param object $term term object
79
+ * @param string $tax taxonomy name
80
+ * @return string modified link
81
+ */
82
+ public function term_link($link, $term, $tax) {
83
+ if (isset($this->links[$link]))
84
+ return $this->links[$link];
85
+
86
+ return $this->links[$link] = $tax == 'post_format' ?
87
+ $this->links_model->add_language_to_link($link, $this->get_term_language($term->term_id)) : parent::term_link($link, $term, $tax);
88
+ }
89
+
90
+ /*
91
+ * modifies the page link in case the front page is not in the default language
92
+ *
93
+ * @since 0.7.2
94
+ *
95
+ * @param string $link
96
+ * @param int $id
97
+ * @return string modified link
98
+ */
99
+ public function page_link($link, $id) {
100
+ static $posts = array(); // cache the results
101
+
102
+ if ($this->options['redirect_lang'] && $this->page_on_front && $lang = $this->model->get_post_language($id)) {
103
+ if (!isset($posts[$lang->slug][$this->page_on_front]))
104
+ $posts[$lang->slug][$this->page_on_front] = $this->model->get_post($this->page_on_front, $lang);
105
+ if ($id == $posts[$lang->slug][$this->page_on_front])
106
+ return $this->options['hide_default'] && $lang->slug == $this->options['default_lang'] ? trailingslashit($this->home) : get_term_link($lang, 'language');
107
+ }
108
+
109
+ if ($this->page_on_front && $this->options['hide_default']) {
110
+ if (!isset($posts[$this->options['default_lang']][$this->page_on_front]))
111
+ $posts[$this->options['default_lang']][$this->page_on_front] = $this->model->get_post($this->page_on_front, $this->options['default_lang']);
112
+ if ($id == $posts[$this->options['default_lang']][$this->page_on_front])
113
+ return trailingslashit($this->home);
114
+ }
115
+
116
+ return _get_page_link($id);
117
+ }
118
+
119
+ /*
120
+ * outputs references to translated pages (if exists) in the html head section
121
+ *
122
+ * @since 0.1
123
+ */
124
+ public function wp_head() {
125
+ // google recommends to include self link https://support.google.com/webmasters/answer/189077?hl=en
126
+ foreach ($this->model->get_languages_list() as $language) {
127
+ if ($url = $this->get_translation_url($language))
128
+ $urls[$language->slug] = $url;
129
+ }
130
+
131
+ // ouptputs the section only if there are translations ($urls always contains self link)
132
+ if (!empty($urls) && count($urls) > 1) {
133
+ foreach ($urls as $lang => $url)
134
+ printf('<link rel="alternate" href="%s" hreflang="%s" />'."\n", esc_url($url), esc_attr($lang));
135
+ }
136
+ }
137
+
138
+ /*
139
+ * manages canonical redirection of the homepage when using page on front
140
+ *
141
+ * @since 0.1
142
+ *
143
+ * @param string $redirect_url
144
+ * @param string $requested_url
145
+ * @return bool|string modified url, false if redirection is canceled
146
+ */
147
+ public function redirect_canonical($redirect_url, $requested_url) {
148
+ global $wp_query;
149
+ if (is_page() && !is_feed() && isset($wp_query->queried_object) && 'page' == get_option('show_on_front') && $wp_query->queried_object->ID == get_option('page_on_front'))
150
+ return $this->options['redirect_lang'] ? $this->get_home_url() : false;
151
+ return $redirect_url;
152
+ }
153
+
154
+ /*
155
+ * filters the home url to get the right language
156
+ *
157
+ * @since 0.4
158
+ *
159
+ * @param string $url
160
+ * @param string $path
161
+ * @return string
162
+ */
163
+ public function home_url($url, $path) {
164
+ if (!(did_action('template_redirect') || did_action('login_init')) || rtrim($url,'/') != $this->home)
165
+ return $url;
166
+
167
+ $white_list = apply_filters('pll_home_url_white_list', array(
168
+ array('file' => get_theme_root()),
169
+ array('function' => 'wp_nav_menu'),
170
+ array('function' => 'login_footer')
171
+ ));
172
+
173
+ $black_list = apply_filters('pll_home_url_black_list', array(array('function' => 'get_search_form')));
174
+
175
+ foreach (array_reverse(debug_backtrace(/*!DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS*/)) as $trace) {
176
+ // searchform.php is not passed through get_search_form filter prior to WP 3.6
177
+ // backward compatibility WP < 3.6
178
+ if (isset($trace['file']) && strpos($trace['file'], 'searchform.php'))
179
+ return $this->using_permalinks && version_compare($GLOBALS['wp_version'], '3.6', '<') ? $this->get_home_url($this->curlang, true) : $url;
180
+
181
+ foreach ($black_list as $v) {
182
+ if ((isset($trace['file'], $v['file']) && strpos($trace['file'], $v['file']) !== false) || (isset($trace['function'], $v['function']) && $trace['function'] == $v['function']))
183
+ return $url;
184
+ }
185
+
186
+ foreach ($white_list as $v) {
187
+ if ((isset($trace['function'], $v['function']) && $trace['function'] == $v['function']) ||
188
+ (isset($trace['file'], $v['file']) && strpos($trace['file'], $v['file']) !== false && in_array($trace['function'], array('home_url', 'get_home_url', 'bloginfo', 'get_bloginfo'))))
189
+ $ok = true;
190
+ }
191
+ }
192
+
193
+ return empty($ok) ? $url : (empty($path) ? rtrim($this->get_home_url($this->curlang), '/') : $this->get_home_url($this->curlang));
194
+ }
195
+
196
+ /*
197
+ * returns the url of the translation (if exists) of the current page
198
+ *
199
+ * @since 0.1
200
+ *
201
+ * @param object $language
202
+ * @return string
203
+ */
204
+ public function get_translation_url($language) {
205
+ static $translation_url = array(); // used to cache results
206
+
207
+ if (isset($translation_url[$language->slug]))
208
+ return $translation_url[$language->slug];
209
+
210
+ global $wp_query;
211
+ $qv = $wp_query->query;
212
+ $hide = $this->options['default_lang'] == $language->slug && $this->options['hide_default'];
213
+
214
+ // post and attachment
215
+ if (is_single() && ($this->options['media_support'] || !is_attachment()) && $id = $this->model->get_post($wp_query->queried_object_id, $language))
216
+ $url = get_permalink($id);
217
+
218
+ // page for posts
219
+ // FIXME the last test should useless now since I test is_posts_page
220
+ elseif ($wp_query->is_posts_page && !empty($wp_query->queried_object_id) && ($id = $this->model->get_post($wp_query->queried_object_id, $language)) && $id == $this->model->get_post($this->page_for_posts, $language))
221
+ $url = get_permalink($id);
222
+
223
+ elseif (is_page() && $id = $this->model->get_post($wp_query->queried_object_id, $language))
224
+ $url = $hide && $id == $this->model->get_post($this->page_on_front, $language) ? $this->home : get_page_link($id);
225
+
226
+ elseif (!is_tax('post_format') && !is_tax('language') && (is_category() || is_tag() || is_tax()) ) {
227
+ $term = get_queried_object();
228
+ $lang = $this->model->get_term_language($term->term_id);
229
+
230
+ if (!$lang || $language->slug == $lang->slug)
231
+ $url = get_term_link($term, $term->taxonomy); // self link
232
+ elseif ($link_id = $this->model->get_translation('term', $term->term_id, $language))
233
+ $url = get_term_link(get_term($link_id, $term->taxonomy), $term->taxonomy);
234
+ }
235
+
236
+ elseif (is_search())
237
+ $url = $this->get_archive_url($language);
238
+
239
+ elseif (is_archive()) {
240
+ $keys = array('post_type', 'm', 'year', 'monthnum', 'day', 'author', 'author_name');
241
+ // check if there are existing translations before creating the url
242
+ if ($this->model->count_posts($language, array_intersect_key($qv, array_flip($keys))))
243
+ $url = $this->get_archive_url($language);
244
+ }
245
+
246
+ elseif (is_home() || is_tax('language') )
247
+ $url = $this->get_home_url($language);
248
+
249
+ return $translation_url[$language->slug] = apply_filters('pll_translation_url', (isset($url) && !is_wp_error($url) ? $url : null), $language->slug);
250
+ }
251
+
252
+ /*
253
+ * get the translation of the current archive url
254
+ * used also for search
255
+ *
256
+ * @since 1.2
257
+ *
258
+ * @param object $language
259
+ * @return string
260
+ */
261
+ public function get_archive_url($language) {
262
+ $url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
263
+ $url = $this->links_model->remove_language_from_link($url);
264
+ $url = $this->links_model->add_language_to_link($url, $language);
265
+ return $this->links_model->remove_paged_from_link($url);
266
+ }
267
+
268
+ /*
269
+ * returns the home url in the right language
270
+ *
271
+ * @since 0.1
272
+ *
273
+ * @param object $language optional defaults to current language
274
+ * @param bool $is_search optional wether we need the home url for a search form, defaults to false
275
+ */
276
+ public function get_home_url($language = '', $is_search = false) {
277
+ static $home_urls = array(); // used for cache
278
+
279
+ if (empty($language))
280
+ $language = $this->curlang;
281
+
282
+ if (isset($home_urls[$language->slug][$is_search]))
283
+ return $home_urls[$language->slug][$is_search];
284
+
285
+ if ($this->options['default_lang'] == $language->slug && $this->options['hide_default'])
286
+ return $home_urls[$language->slug][$is_search] = trailingslashit($this->home);
287
+
288
+ // a static page is used as front page : /!\ don't use get_page_link to avoid infinite loop
289
+ // don't use this for search form
290
+ if (!$is_search && $this->page_on_front && $id = $this->model->get_post($this->page_on_front, $language))
291
+ return $home_urls[$language->slug][$is_search] = $this->page_link('', $id);
292
+
293
+ $link = get_term_link($language, 'language');
294
+
295
+ // add a trailing slash as done by WP on homepage (otherwise could break the search form when the permalink structure does not include one)
296
+ // only for pretty permalinks
297
+ return $home_urls[$language->slug][$is_search] = $this->using_permalinks ? trailingslashit($link) : $link;
298
+ }
299
+ }
frontend/frontend-nav-menu.php ADDED
@@ -0,0 +1,167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * manages custom menus translations as well as the language switcher menu item on frontend
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Frontend_Nav_Menu {
9
+
10
+ /*
11
+ * constructor
12
+ *
13
+ * @since 1.2
14
+ */
15
+ public function __construct() {
16
+ // split the language switcher menu item in several language menu items
17
+ add_filter('wp_get_nav_menu_items', array(&$this, 'wp_get_nav_menu_items'));
18
+ add_filter('wp_nav_menu_objects', array(&$this, 'wp_nav_menu_objects'));
19
+ add_filter('nav_menu_link_attributes', array(&$this, 'nav_menu_link_attributes'), 10, 3);
20
+
21
+ // filters menus by language
22
+ if (isset($_POST['wp_customize'], $_POST['customized']))
23
+ add_action('pll_language_defined', array(&$this, 'customizer_locations')); // theme customizer
24
+ else
25
+ add_filter('theme_mod_nav_menu_locations', array($this, 'nav_menu_locations'), 20);
26
+ }
27
+
28
+ /*
29
+ * splits the one item of backend in several items on frontend
30
+ * take care to menu_order as it is used later in wp_nav_menu
31
+ *
32
+ * @since 1.1.1
33
+ *
34
+ * @param array $items menu items
35
+ * @return array modified items
36
+ */
37
+ public function wp_get_nav_menu_items($items) {
38
+ $new_items = array();
39
+ $offset = 0;
40
+
41
+ foreach ($items as $key => $item) {
42
+ if ($options = get_post_meta($item->ID, '_pll_menu_item', true)) {
43
+ extract($options);
44
+ $i = 0;
45
+
46
+ foreach (pll_the_languages(array_merge(array('raw' => 1), $options)) as $language) {
47
+ extract($language);
48
+ $lang_item = clone $item;
49
+ $lang_item->ID = $lang_item->ID . '-' . $slug; // a unique ID
50
+ $lang_item->title = $show_flags && $show_names ? $flag.'&nbsp;'.esc_html($name) : ($show_flags ? $flag : esc_html($name));
51
+ $lang_item->url = $url;
52
+ $lang_item->lang = $slug; // save this for use in nav_menu_link_attributes
53
+ $lang_item->classes = $classes;
54
+ $lang_item->menu_order += $offset + $i++;
55
+ $new_items[] = $lang_item;
56
+ }
57
+ $offset += $i - 1;
58
+ }
59
+ else {
60
+ $item->menu_order += $offset;
61
+ $new_items[] = $item;
62
+ }
63
+ }
64
+
65
+ return $new_items;
66
+ }
67
+
68
+ /*
69
+ * returns the ancestors of a menu item
70
+ *
71
+ * @since 1.1.1
72
+ *
73
+ * @param object $item
74
+ * @return array ancestors ids
75
+ */
76
+ public function get_ancestors($item) {
77
+ $ids = array();
78
+ $_anc_id = (int) $item->db_id;
79
+ while(($_anc_id = get_post_meta($_anc_id, '_menu_item_menu_item_parent', true)) && !in_array($_anc_id, $ids))
80
+ $ids[] = $_anc_id;
81
+ return $ids;
82
+ }
83
+
84
+ /*
85
+ * removes current-menu and current-menu-ancestor classes to lang switcher when not on the home page
86
+ *
87
+ * @since 1.1.1
88
+ *
89
+ * @param array $items
90
+ * @return array modified menu items
91
+ */
92
+ public function wp_nav_menu_objects($items) {
93
+ $r_ids = $k_ids = array();
94
+
95
+ foreach ($items as $item) {
96
+ if (is_array($item->classes) && in_array('current-lang', $item->classes)) {
97
+ $item->classes = array_diff($item->classes, array('current-menu-item'));
98
+ $r_ids = array_merge($r_ids, $this->get_ancestors($item)); // remove the classes for these ancestors
99
+ }
100
+ elseif (is_array($item->classes) && in_array('current-menu-item', $item->classes))
101
+ $k_ids = array_merge($k_ids, $this->get_ancestors($item)); // keep the classes for these ancestors
102
+ }
103
+
104
+ $r_ids = array_diff($r_ids, $k_ids);
105
+
106
+ foreach ($items as $item) {
107
+ if (in_array($item->db_id, $r_ids))
108
+ $item->classes = array_diff($item->classes, array('current-menu-ancestor', 'current-menu-parent', 'current_page_parent', 'current_page_ancestor'));
109
+ }
110
+
111
+ return $items;
112
+ }
113
+
114
+ /*
115
+ * adds hreflang attribute for the language switcher menu items
116
+ * available since WP3.6
117
+ *
118
+ * @since 1.1
119
+ *
120
+ * @param array $atts
121
+ * @return array modified $atts
122
+ */
123
+ public function nav_menu_link_attributes($atts, $item, $args) {
124
+ if (isset($item->lang))
125
+ $atts['hreflang'] = $item->lang;
126
+ return $atts;
127
+ }
128
+
129
+ /*
130
+ * fills the theme nav menus locations with the right menu in the right language
131
+ *
132
+ * @since 1.2
133
+ *
134
+ * @param array|bool list of nav menus locations, false if menu locations have not been filled yet
135
+ * @return array|bool modified list of nav menus locations
136
+ */
137
+ public function nav_menu_locations($menus) {
138
+ if (is_array($menus))
139
+ foreach ($menus as $loc => $menu)
140
+ if ($id = pll_get_term($menu))
141
+ $menus[$loc] = $id;
142
+
143
+ return $menus;
144
+ }
145
+
146
+ /*
147
+ * hack $_POST to allow the customizer to find the right menu in the right language
148
+ *
149
+ * @since 1.2
150
+ */
151
+ public function customizer_locations() {
152
+ $customized = json_decode($_POST['customized']);
153
+ $curlang = pll_current_language();
154
+
155
+ foreach ($customized as $key => $c) {
156
+ if (false !== strpos($key, 'nav_menu_locations[')) {
157
+ $loc = substr(trim($key, ']'), 19);
158
+ if (($pos = strpos($loc, '___')) && substr($loc, $pos+3) == $curlang) {
159
+ $loc = 'nav_menu_locations[' . substr($loc, 0, $pos) . ']';
160
+ $customized->$loc = $c;
161
+ }
162
+ }
163
+ }
164
+
165
+ $_POST['customized'] = json_encode($customized);
166
+ }
167
+ }
frontend/frontend.php ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * frontend controller
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Frontend extends PLL_Base{
9
+ public $curlang;
10
+ public $links, $choose_lang, $filters, $filters_search, $auto_translate;
11
+
12
+ /*
13
+ * constructor
14
+ *
15
+ * @since 1.2
16
+ *
17
+ * @param object $links_model
18
+ */
19
+ public function __construct(&$links_model) {
20
+ parent::__construct($links_model);
21
+
22
+ add_action('pll_language_defined', array(&$this, 'pll_language_defined'), 1, 2);
23
+
24
+ // filters posts by language
25
+ add_filter('parse_query', array(&$this, 'parse_query'), 6); // after PLL_Frontend_Filters::parse_query
26
+
27
+ // not before 'check_language_code_in_url'
28
+ if (!defined('PLL_AUTO_TRANSLATE') || PLL_AUTO_TRANSLATE)
29
+ add_action('wp', array(&$this, 'auto_translate'), 20);
30
+ }
31
+
32
+ /*
33
+ * setups url modifications based on the links mode
34
+ * setups the language chooser based on options
35
+ *
36
+ * @since 1.2
37
+ *
38
+ * @param object $links_model
39
+ */
40
+ public function init() {
41
+ $this->links = new PLL_Frontend_Links($this->links_model);
42
+
43
+ $this->choose_lang = $this->options['force_lang'] && get_option('permalink_structure') ?
44
+ new PLL_Choose_Lang_Url($this->links) :
45
+ new PLL_Choose_Lang_Content($this->links);
46
+ }
47
+
48
+ /*
49
+ * setups filters and nav menus once the language has been defined
50
+ *
51
+ * @since 1.2
52
+ *
53
+ * @param string $slug current language slug
54
+ * @param object $curlang current language object
55
+ */
56
+ public function pll_language_defined($slug, $curlang) {
57
+ $this->curlang = $curlang;
58
+
59
+ // filters
60
+ $this->filters = new PLL_Frontend_Filters($this->links_model, $curlang);
61
+ $this->filters_search = new PLL_Frontend_Filters_Search($this->links);
62
+
63
+ // nav menu
64
+ $this->nav_menu = new PLL_Frontend_Nav_Menu();
65
+ }
66
+
67
+ /*
68
+ * modifies some query vars to "hide" that the language is a taxonomy and avoid conflicts
69
+ *
70
+ * @since 1.2
71
+ *
72
+ * @param object $query WP_Query object
73
+ */
74
+ public function parse_query($query) {
75
+ $qv = $query->query_vars;
76
+
77
+ // allow filtering recent posts and secondary queries by the current language
78
+ // take care not to break queries for non visible post types such as nav_menu_items
79
+ // do not filter if lang is set to an empty value
80
+ if (/*$query->is_home &&*/ !empty($this->curlang) && !isset($qv['lang']) && (empty($qv['post_type']) || $this->model->is_translated_post_type($qv['post_type'])))
81
+ $query->set('lang', $this->curlang->slug);
82
+
83
+ // modifies query vars when the language is queried
84
+ if (!empty($qv['lang'])) {
85
+ // remove pages query when the language is set unless we do a search
86
+ if (empty($qv['post_type']) && !$query->is_search)
87
+ $query->set('post_type', 'post');
88
+
89
+ // unset the is_archive flag for language pages to prevent loading the archive template
90
+ // keep archive flag for comment feed otherwise the language filter does not work
91
+ if (!$query->is_comment_feed && !$query->is_post_type_archive && !$query->is_date && !$query->is_author && !$query->is_category && !$query->is_tag && !$query->is_tax('post_format'))
92
+ $query->is_archive = false;
93
+
94
+ // unset the is_tax flag for authors pages and post types archives
95
+ // FIXME Should I do this for other cases?
96
+ if ($query->is_author || $query->is_post_type_archive || $query->is_date || $query->is_search) {
97
+ $query->is_tax = false;
98
+ unset($query->queried_object);
99
+ }
100
+ }
101
+
102
+ // to avoid conflict beetwen taxonomies
103
+ if (isset($query->tax_query->queries))
104
+ foreach ($query->tax_query->queries as $tax)
105
+ if (pll_is_translated_taxonomy($tax['taxonomy']))
106
+ unset($query->query_vars['lang']);
107
+ }
108
+
109
+ /*
110
+ * auto translate posts and terms ids
111
+ *
112
+ * @since 1.2
113
+ */
114
+ public function auto_translate() {
115
+ $this->auto_translate = new PLL_Frontend_Auto_Translate($this->model);
116
+ }
117
+ }
118
+
include/admin-base.php DELETED
@@ -1,218 +0,0 @@
1
- <?php
2
-
3
- // functions common to all admin panels
4
- class Polylang_Admin_Base extends Polylang_Base {
5
- function __construct() {
6
- parent::__construct();
7
-
8
- // filter admin language for users
9
- add_filter('locale', array(&$this, 'get_locale'));
10
-
11
- // set user preferences
12
- add_action('admin_init', array(&$this, 'admin_init_base'));
13
-
14
- // adds the link to the languages panel in the wordpress admin menu
15
- add_action('admin_menu', array(&$this, 'add_menus'));
16
-
17
- // setup js scripts and css styles
18
- add_action('admin_enqueue_scripts', array(&$this, 'admin_enqueue_scripts'));
19
- }
20
-
21
- // returns the locale based on user preference
22
- function get_locale($locale) {
23
- // get_current_user_id uses wp_get_current_user which may not be available the first time(s) get_locale is called
24
- return function_exists('wp_get_current_user') && ($loc = get_user_meta(get_current_user_id(), 'user_lang', 'true')) ? $loc : $locale;
25
- }
26
-
27
- // set user preferences
28
- function admin_init_base() {
29
- if (!$languages = $this->get_languages_list())
30
- return;
31
-
32
- // set text direction if the user set its own language
33
- $locale = get_locale();
34
- foreach($languages as $lang) {
35
- if ($locale == $lang->description) {
36
- $GLOBALS['wp_locale']->text_direction = get_metadata('term', $lang->term_id, '_rtl', true) ? 'rtl' : 'ltr';
37
- $GLOBALS['l10n']['pll_string'] = $this->mo_import($lang);
38
- break;
39
- }
40
- }
41
-
42
- // set user meta when choosing to filter content by language
43
- // $_GET[lang] is used in ajax 'tag suggest' and is numeric when editing a language
44
- if (!defined('DOING_AJAX') && !empty($_GET['lang']) && !is_numeric($_GET['lang']))
45
- update_user_meta(get_current_user_id(), 'pll_filter_content', ($lang = $this->get_language($_GET['lang'])) ? $lang->slug : '');
46
-
47
- // adds the languages in admin bar
48
- // FIXME: OK for WP 3.2 and newer (the admin bar is not displayed on admin side for WP 3.1)
49
- add_action('admin_bar_menu', array(&$this, 'admin_bar_menu'), 100); // 100 determines the position
50
- }
51
-
52
- // adds the link to the languages panel in the wordpress admin menu
53
- function add_menus() {
54
- add_submenu_page('options-general.php', $title = __('Languages', 'polylang'), $title, 'manage_options', 'mlang', array(&$this, 'languages_page'));
55
- }
56
-
57
- // setup js scripts & css styles (only on the relevant pages)
58
- function admin_enqueue_scripts() {
59
- $screen = get_current_screen();
60
- $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
61
-
62
- // for each script:
63
- // 0 => the pages on which to load the script
64
- // 1 => the scripts it needs to work
65
- // 2 => 1 if loaded even if languages have not been defined yet, 0 otherwise
66
- $scripts = array(
67
- 'admin' => array( array('settings_page_mlang'), array('jquery', 'wp-ajax-response', 'postbox'), 1 ),
68
- 'post' => array( array('post', 'media', 'async-upload', 'edit'), array('jquery', 'wp-ajax-response'), 0 ),
69
- 'term' => array( array('edit-tags'), array('jquery', 'wp-ajax-response'), 0 ),
70
- 'user' => array( array('profile', 'user-edit'), array('jquery'), 0 ),
71
- );
72
-
73
- foreach ($scripts as $script => $v)
74
- if (in_array($screen->base, $v[0]) && ($v[2] || $this->get_languages_list()))
75
- wp_enqueue_script('pll_'.$script, POLYLANG_URL .'/js/'.$script.$suffix.'.js', $v[1], POLYLANG_VERSION);
76
-
77
- if (in_array($screen->base, array('settings_page_mlang', 'post', 'edit-tags', 'edit', 'upload', 'media')))
78
- wp_enqueue_style('polylang_admin', POLYLANG_URL .'/css/admin'.$suffix.'.css', array(), POLYLANG_VERSION);
79
- }
80
-
81
- // downloads mofiles
82
- function download_mo($locale, $upgrade = false) {
83
- global $wp_version;
84
- $mofile = WP_LANG_DIR."/$locale.mo";
85
-
86
- // does file exists ?
87
- if ((file_exists($mofile) && !$upgrade) || $locale == 'en_US')
88
- return true;
89
-
90
- // does language directory exists ?
91
- if (!is_dir(WP_LANG_DIR)) {
92
- if (!@mkdir(WP_LANG_DIR))
93
- return false;
94
- }
95
-
96
- // will first look in tags/ (most languages) then in branches/ (only Greek ?)
97
- $base = 'http://svn.automattic.com/wordpress-i18n/'.$locale;
98
- $bases = array($base.'/tags/', $base.'/branches/');
99
-
100
- foreach ($bases as $base) {
101
- // get all the versions available in the subdirectory
102
- $resp = wp_remote_get($base);
103
- if (is_wp_error($resp) || 200 != $resp['response']['code'])
104
- continue;
105
-
106
- preg_match_all('#>([0-9\.]+)\/#', $resp['body'], $matches);
107
- if (empty($matches[1]))
108
- continue;
109
-
110
- rsort($matches[1]); // sort from newest to oldest
111
- $versions = $matches[1];
112
-
113
- $newest = $upgrade ? $upgrade : $wp_version;
114
- foreach ($versions as $key=>$version) {
115
- // will not try to download a too recent mofile
116
- if (version_compare($version, $newest, '>'))
117
- unset($versions[$key]);
118
- // will not download an older version if we are upgrading
119
- if ($upgrade && version_compare($version, $wp_version, '<='))
120
- unset($versions[$key]);
121
- }
122
-
123
- $versions = array_splice($versions, 0, 5); // reduce the number of versions to test to 5
124
- $args = array('timeout' => 30, 'stream' => true);
125
-
126
- // try to download the file
127
- foreach ($versions as $version) {
128
- $resp = wp_remote_get($base."$version/messages/$locale.mo", $args + array('filename' => $mofile));
129
- if (is_wp_error($resp) || 200 != $resp['response']['code']) {
130
- unlink($mofile); // otherwise we download a gzipped 404 page
131
- continue;
132
- }
133
- // try to download ms and continents-cities files if exist (will not return false if failed)
134
- // with new files introduced in WP 3.4
135
- foreach (array('ms', 'continents-cities', 'admin', 'admin-network') as $file) {
136
- $resp = wp_remote_get($base."$version/messages/$file-$locale.mo", $args + array('filename' => WP_LANG_DIR."/$file-$locale.mo"));
137
- if (is_wp_error($resp) || 200 != $resp['response']['code'])
138
- unlink(WP_LANG_DIR."/$file-$locale.mo");
139
- }
140
- // try to download theme files if exist (will not return false if failed)
141
- // FIXME not updated when the theme is updated outside a core update
142
- foreach (array('twentyten', 'twentyeleven', 'twentytwelve', 'twentythirteen') as $theme) {
143
- if (!is_dir($theme_dir = get_theme_root()."/$theme/languages"))
144
- continue; // the theme is not present
145
-
146
- $resp = wp_remote_get($base."$version/messages/$theme/$locale.mo", $args + array('filename' => "$theme_dir/$locale.mo"));
147
- if (is_wp_error($resp) || 200 != $resp['response']['code'])
148
- unlink("$theme_dir/$locale.mo");
149
- }
150
- return true;
151
- }
152
- }
153
- // we did not succeeded to download a file :(
154
- return false;
155
- }
156
-
157
- // returns options available for the language switcher (menu or widget)
158
- function get_switcher_options($type = 'widget', $key ='string') {
159
- $options = array(
160
- 'show_names' => array('string' => __('Displays language names', 'polylang'), 'default' => 1),
161
- 'show_flags' => array('string' => __('Displays flags', 'polylang'), 'default' => 0),
162
- 'force_home' => array('string' => __('Forces link to front page', 'polylang'), 'default' => 0),
163
- 'hide_current' => array('string' => __('Hides the current language', 'polylang'), 'default' => 0),
164
- );
165
-
166
- if ($type != 'menu')
167
- $options['dropdown'] = array('string' => __('Displays as dropdown', 'polylang'), 'default' => 0);
168
-
169
- return array_map(create_function('$v', "return \$v['$key'];"), $options);
170
- }
171
-
172
- // register strings for translation making sure it is not duplicate or empty
173
- function register_string($name, $string, $context = 'polylang', $multiline = false) {
174
- // backward compatibility with Polylang older than 1.1
175
- if (is_bool($context)) {
176
- $multiline = $context;
177
- $context = 'polylang';
178
- }
179
-
180
- $to_register = compact('name', 'string', 'context', 'multiline');
181
- if (!in_array($to_register, $this->strings) && $to_register['string'])
182
- $this->strings[] = $to_register;
183
- }
184
-
185
- // adds the languages in admin bar
186
- function admin_bar_menu($wp_admin_bar) {
187
- $url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
188
-
189
- // $_GET['lang'] is numeric when editing a language, not when selecting a new language in the filter
190
- $selected = !empty($_GET['lang']) && !is_numeric($_GET['lang']) && ($lang = $this->get_language($_GET['lang'])) ? $lang->slug :
191
- (($lg = get_user_meta(get_current_user_id(), 'pll_filter_content', true)) ? $lg : 'all');
192
-
193
- $all_item = array((object) array('slug' => 'all', 'name' => __('Show all languages', 'polylang')));
194
-
195
- $wp_admin_bar->add_menu(array(
196
- 'id' => 'languages',
197
- 'title' => __('Languages', 'polylang'),
198
- 'meta' => array('title' => __('Filters content by language', 'polylang')),
199
- ));
200
-
201
- foreach (array_merge($all_item, $this->get_languages_list()) as $lang) {
202
- $href = esc_url(add_query_arg('lang', $lang->slug, $url));
203
- $wp_admin_bar->add_menu(array(
204
- 'parent' => 'languages',
205
- 'id' => $lang->slug,
206
- 'title' => sprintf(
207
- '<input name="language" type="radio" onclick="location.href=%s" value="%s" %s /> %s', // FIXME this works but produces invalid html
208
- "'" . $href . "'", // onclick is needed for Chrome browser, thanks to RavanH for the bug report and fix
209
- esc_attr($lang->slug),
210
- $selected == $lang->slug ? 'checked="checked"' : '',
211
- esc_html($lang->name)
212
- ),
213
- 'href' => $href,
214
- ));
215
- }
216
- }
217
-
218
- } // class Polylang_Admin_Base
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
include/admin-filters.php DELETED
@@ -1,1189 +0,0 @@
1
- <?php
2
-
3
- // all modifications of the WordPress admin ui
4
- class Polylang_Admin_Filters extends Polylang_Admin_Base {
5
- private $pre_term_name; // used to store the term name before creating a slug if needed
6
-
7
- function __construct() {
8
- parent::__construct();
9
-
10
- // additionnal filters and actions
11
- add_action('wp_loaded', array(&$this, 'admin_init'), 5);// after Polylang_Base::add_post_types_taxonomie
12
-
13
- // refresh rewrite rules if the 'page_on_front' option is modified
14
- add_action('update_option_page_on_front', 'flush_rewrite_rules');
15
-
16
- // adds a 'settings' link in the plugins table
17
- add_filter('plugin_action_links_'.basename(POLYLANG_DIR).'/polylang.php', array(&$this, 'plugin_action_links'));
18
- add_action('in_plugin_update_message-'.basename(POLYLANG_DIR).'/polylang.php', array(&$this, 'plugin_update_message'), 10, 2);
19
-
20
- // ugrades languages files after a core upgrade (timing is important)
21
- // FIXME private action ? is there a better way to do this ?
22
- add_action( '_core_updated_successfully', array(&$this, 'upgrade_languages'), 1); // since WP 3.3
23
- }
24
-
25
- // add these actions and filters here and not in the constructor to be sure that all taxonomies are registered
26
- function admin_init() {
27
- if (!$this->get_languages_list())
28
- return;
29
-
30
- // add the language and translations columns in 'All Posts', 'All Pages' and 'Media library' panels
31
- foreach ($this->post_types as $type) {
32
- // use the latest filter late as some plugins purely overwrite what's done by others :(
33
- // specific case for media
34
- add_filter('manage_'. ($type == 'attachment' ? 'upload' : 'edit-'. $type) .'_columns', array(&$this, 'add_post_column'), 100);
35
- add_action('manage_'. ($type == 'attachment' ? 'media' : $type .'_posts') .'_custom_column', array(&$this, 'post_column'), 10, 2);
36
- }
37
-
38
- // quick edit and bulk edit
39
- add_filter('quick_edit_custom_box', array(&$this, 'quick_edit_custom_box'), 10, 2);
40
- add_filter('bulk_edit_custom_box', array(&$this, 'quick_edit_custom_box'), 10, 2);
41
-
42
- // filters posts, pages and media by language
43
- add_filter('parse_query',array(&$this,'parse_query'));
44
-
45
- // adds the Languages box in the 'Edit Post' and 'Edit Page' panels
46
- add_action('add_meta_boxes', array(&$this, 'add_meta_boxes'));
47
-
48
- // ajax response for changing the language in the post metabox
49
- add_action('wp_ajax_post_lang_choice', array(&$this,'post_lang_choice'));
50
-
51
- add_action('wp_ajax_polylang-ajax-tag-search', array(&$this,'ajax_tag_search'));
52
-
53
- // filters the pages by language in the parent dropdown list in the page attributes metabox
54
- add_filter('page_attributes_dropdown_pages_args', array(&$this, 'page_attributes_dropdown_pages_args'), 10, 2);
55
-
56
- // adds actions and filters related to languages when creating, saving or deleting posts and pages
57
- add_filter('wp_insert_post_parent', array(&$this, 'wp_insert_post_parent'));
58
- add_action('dbx_post_advanced', array(&$this, 'dbx_post_advanced'));
59
- add_action('save_post', array(&$this, 'save_post'), 21, 2); // priority 21 to come after advanced custom fields (20) and before the event calendar which breaks everything after 25
60
- add_action('before_delete_post', array(&$this, 'delete_post'));
61
-
62
- if ($this->options['media_support']) {
63
- // adds the language field and translations tables in the 'Edit Media' panel
64
- add_filter('attachment_fields_to_edit', array(&$this, 'attachment_fields_to_edit'), 10, 2);
65
-
66
- // ajax response for changing the language in media form
67
- add_action('wp_ajax_media_lang_choice', array(&$this,'media_lang_choice'));
68
-
69
- // adds actions related to languages when creating, saving or deleting media
70
- add_action('add_attachment', array(&$this, 'add_attachment'));
71
- add_filter('attachment_fields_to_save', array(&$this, 'save_media'), 10, 2);
72
- add_action('delete_attachment', array(&$this, 'delete_post'));
73
- add_filter('wp_delete_file', array(&$this, 'wp_delete_file'));
74
-
75
- // creates a media translation
76
- if (isset($_GET['action'], $_GET['new_lang'], $_GET['from_media']) && $_GET['action'] == 'translate_media')
77
- $this->translate_media();
78
- }
79
-
80
- // filters categories and post tags by language
81
- add_filter('terms_clauses', array(&$this, 'terms_clauses'), 10, 3);
82
-
83
- foreach ($this->taxonomies as $tax) {
84
- // adds the language field in the 'Categories' and 'Post Tags' panels
85
- add_action($tax.'_add_form_fields', array(&$this, 'add_term_form'));
86
-
87
- // adds the language field and translations tables in the 'Edit Category' and 'Edit Tag' panels
88
- add_action($tax.'_edit_form_fields', array(&$this, 'edit_term_form'));
89
-
90
- // adds the language column in the 'Categories' and 'Post Tags' tables
91
- add_filter('manage_edit-'.$tax.'_columns', array(&$this, 'add_term_column'));
92
- add_action('manage_'.$tax.'_custom_column', array(&$this, 'term_column'), 10, 3);
93
-
94
- // adds action related to languages when deleting categories and post tags
95
- add_action('delete_'.$tax, array(&$this, 'delete_term'));
96
- }
97
-
98
- // adds actions related to languages when creating or saving categories and post tags
99
- add_filter('wp_dropdown_cats', array(&$this, 'wp_dropdown_cats'));
100
- add_action('create_term', array(&$this, 'save_term'), 10, 3);
101
- add_action('edit_term', array(&$this, 'save_term'), 10, 3);
102
- add_filter('pre_term_name', array(&$this, 'pre_term_name'));
103
- add_filter('pre_term_slug', array(&$this, 'pre_term_slug'), 10, 2);
104
-
105
- // ajax response for edit term form
106
- add_action('wp_ajax_term_lang_choice', array(&$this,'term_lang_choice'));
107
-
108
- // widgets languages filter
109
- add_action('in_widget_form', array(&$this, 'in_widget_form'));
110
- add_filter('widget_update_callback', array(&$this, 'widget_update_callback'), 10, 4);
111
-
112
- // language management for users
113
- add_action('personal_options_update', array(&$this, 'personal_options_update'));
114
- add_action('edit_user_profile_update', array(&$this, 'personal_options_update'));
115
- add_action('personal_options', array(&$this, 'personal_options'));
116
-
117
- //modifies posts and terms links when needed
118
- $this->add_post_term_link_filters();
119
-
120
- // filters comments by language
121
- add_filter('comments_clauses', array(&$this, 'comments_clauses'), 10, 2);
122
- }
123
-
124
- // adds languages and translations columns in posts, pages, media, categories and tags tables
125
- function add_column($columns, $before) {
126
- if ($n = array_search($before, array_keys($columns))) {
127
- $end = array_slice($columns, $n);
128
- $columns = array_slice($columns, 0, $n);
129
- }
130
-
131
- foreach ($this->get_languages_list() as $language)
132
- // don't add the column for the filtered language
133
- if ($language->slug != get_user_meta(get_current_user_id(), 'pll_filter_content', true))
134
- $columns['language_'.$language->slug] = ($flag = $this->get_flag($language)) ? $flag : esc_html($language->slug);
135
-
136
- return isset($end) ? array_merge($columns, $end) : $columns;
137
- }
138
-
139
- // returns the first language column in the posts, pages and media library tables
140
- function get_first_language_column() {
141
- foreach ($this->get_languages_list() as $language)
142
- if ($language->slug != get_user_meta(get_current_user_id(), 'pll_filter_content', true))
143
- $columns[] = 'language_'.$language->slug;
144
-
145
- return reset($columns);
146
- }
147
-
148
- // adds the language and translations columns (before the comments column) in the posts, pages and media library tables
149
- // test of $columns avoids to add columns (in screen options) in the edit media form which calls the filter too
150
- // see get_column_headers in wp-admin/screen.php
151
- // FIXME I have the same issue for terms but WP adds columns too
152
- function add_post_column($columns) {
153
- return $this->add_column($columns, 'comments');
154
- }
155
-
156
- // fills the language and translations columns in the posts, pages and media library tables
157
- // take care that when doing ajax inline edit, the post may not be updated in database yet
158
- // FIXME if inline edit breaks translations, the rows corresponding to these translations are not updated
159
- function post_column($column, $post_id) {
160
- $inline = defined('DOING_AJAX') && $_REQUEST['action'] == 'inline-save' ? 1 : 0;
161
- if (false === strpos($column, 'language_') || !($lang = $inline ? $this->get_language($_POST['post_lang_choice']) : $this->get_post_language($post_id)))
162
- return;
163
-
164
- $post_type = isset($GLOBALS['post_type']) ? $GLOBALS['post_type'] : $_POST['post_type']; // 2nd case for quick edit
165
- $language = $this->get_language(substr($column, 9));
166
-
167
- // hidden field containing the post language for quick edit
168
- if ($column == $this->get_first_language_column())
169
- printf('<div class="hidden" id="lang_%d">%s</div>', esc_attr($post_id), esc_html($lang->slug));
170
-
171
-
172
- // link to edit post (or a translation)
173
- if ($id = ($inline && $lang->slug != $_POST['old_lang']) ? ($language->slug == $lang->slug ? $post_id : 0) : $this->get_post($post_id, $language))
174
- printf('<a class="%1$s" title="%2$s" href="%3$s"></a>',
175
- $id == $post_id ? 'pll_icon_tick' : 'pll_icon_edit',
176
- esc_attr(get_post($id)->post_title),
177
- esc_url(get_edit_post_link($id, true ))
178
- );
179
-
180
- // link to add a new translation
181
- else
182
- printf('<a class="pll_icon_add" title="%1$s" href="%2$s"></a>',
183
- __('Add new translation', 'polylang'),
184
- esc_url(admin_url('manage_media_custom_column' == current_filter() ?
185
- 'admin.php?action=translate_media&from_media=' . $post_id . '&new_lang=' . $language->slug :
186
- 'post-new.php?post_type=' . $post_type . '&from_post=' . $post_id . '&new_lang=' . $language->slug
187
- ))
188
- );
189
- }
190
-
191
- // quick edit & bulk edit
192
- function quick_edit_custom_box($column, $type) {
193
- if ($column == $this->get_first_language_column()) {
194
- $name = $type == 'edit-tags' ? 'inline_lang_choice' : 'post_lang_choice';
195
-
196
- $args = current_filter() == 'bulk_edit_custom_box' ?
197
- array('name' => $name, 'add_options' => array(array('value' => -1, 'text' => __('&mdash; No Change &mdash;')))) :
198
- array('name' => $name);
199
-
200
- printf(
201
- '<fieldset class="inline-edit-col-left">
202
- <div class="inline-edit-col">
203
- <input type="hidden" value="" name = "old_lang">' // a hidden field to pass the old language to ajax request
204
- .'<label for="%s" class="alignleft">
205
- <span class="title">%s</span>
206
- %s
207
- </label>
208
- </div>
209
- </fieldset>',
210
- $name,
211
- __('Language', 'polylang'),
212
- $this->dropdown_languages($args)
213
- );
214
- }
215
- return $column;
216
- }
217
-
218
- // filters posts, pages and media by language
219
- function parse_query($query) {
220
- $qvars = &$query->query_vars;
221
-
222
- // do not filter post types such as nav_menu_item
223
- if (isset($qvars['post_type']) && !in_array($qvars['post_type'], $this->post_types)) {
224
- unset ($qvars['lang']);
225
- return;
226
- }
227
-
228
- // filters the list of media by language when uploading from post
229
- if ($this->options['media_support'] && ($GLOBALS['pagenow'] == 'media-upload.php' || // WP < 3.5
230
- ($GLOBALS['pagenow'] == 'admin-ajax.php' && isset($_REQUEST['action']) && $_REQUEST['action'] == 'query-attachments')) && // WP 3.5+
231
- isset($_REQUEST['post_id']) && $lang = $this->get_post_language($_REQUEST['post_id']))
232
- $query->set('lang', $lang->slug);
233
-
234
- if (isset($qvars['post_type']) && in_array($qvars['post_type'], $this->post_types) && !isset($qvars['lang']) && $lg = get_user_meta(get_current_user_id(), 'pll_filter_content', true))
235
- $qvars['lang'] = $lg;
236
-
237
- if ((isset($qvars['post_type']) && !in_array($qvars['post_type'], $this->post_types)) || (isset($qvars['lang']) && $qvars['lang'] == 'all'))
238
- unset ($qvars['lang']);
239
- }
240
-
241
- // adds the Language box in the 'Edit Post' and 'Edit Page' panels (as well as in custom post types panels)
242
- function add_meta_boxes($post_type) {
243
- if (in_array($post_type, $this->post_types))
244
- add_meta_box('ml_box', __('Languages','polylang'), array(&$this, 'post_language'), $post_type, 'side', 'high');
245
-
246
- // replace tag metabox by our own
247
- foreach (get_object_taxonomies($post_type) as $tax_name) {
248
- $taxonomy = get_taxonomy($tax_name);
249
- if ($taxonomy->show_ui && !is_taxonomy_hierarchical($tax_name)) {
250
- remove_meta_box('tagsdiv-' . $tax_name, null, 'side');
251
- add_meta_box('pll-tagsdiv-' . $tax_name, $taxonomy->labels->name, 'post_tags_meta_box', null, 'side', 'core', array('taxonomy' => $tax_name));
252
- }
253
- }
254
- }
255
-
256
- // the Languages metabox in the 'Edit Post' and 'Edit Page' panels
257
- function post_language() {
258
- global $post_ID;
259
- $post_id = $post_ID;
260
- $post_type = get_post_type($post_ID);
261
-
262
- $lang = ($lg = $this->get_post_language($post_ID)) ? $lg :
263
- (isset($_GET['new_lang']) ? $this->get_language($_GET['new_lang']) :
264
- $this->get_preferred_language());
265
-
266
- // NOTE: the class "tags-input" allows to include the field in the autosave $_POST (see autosave.js)
267
- printf('
268
- <p><em>%s</em></p>
269
- <p>%s<br /></p>
270
- <div id="post-translations" class="translations">',
271
- __('Language', 'polylang'),
272
- $this->dropdown_languages(array(
273
- 'name' => $post_type == 'attachment' ? sprintf('attachments[%d][language]', $post_ID) : 'post_lang_choice',
274
- 'class' => $post_type == 'attachment' ? 'media_lang_choice' : 'tags-input',
275
- 'selected' => $lang ? $lang->slug : ''
276
- ))
277
- );
278
- if ($lang)
279
- include(PLL_INC.'/'.($post_type == 'attachment' ? 'media' : 'post').'-translations.php');
280
- echo '</div>'."\n";
281
- }
282
-
283
- // ajax response for changing the language in the post metabox
284
- function post_lang_choice() {
285
- global $post_ID; // obliged to use the global variable for wp_popular_terms_checklist
286
- $post_ID = $_POST['post_id'];
287
- $post_type = get_post_type($post_ID);
288
- $lang = $this->get_language($_POST['lang']);
289
-
290
- $this->set_post_language($post_ID, $lang); // save language, useful to set the language when uploading media from post
291
-
292
- ob_start();
293
- if ($lang)
294
- include(PLL_INC.'/post-translations.php');
295
- $x = new WP_Ajax_Response(array('what' => 'translations', 'data' => ob_get_contents()));
296
- ob_end_clean();
297
-
298
- // categories
299
- if (isset($_POST['taxonomies'])) {
300
- // not set for pages
301
- foreach ($_POST['taxonomies'] as $taxname) {
302
- $taxonomy = get_taxonomy($taxname);
303
-
304
- ob_start();
305
- $popular_ids = wp_popular_terms_checklist($taxonomy->name);
306
- $supplemental['populars'] = ob_get_contents();
307
- ob_end_clean();
308
-
309
- ob_start();
310
- // use $post_ID to remember ckecked terms in case we come back to the original language
311
- wp_terms_checklist( $post_ID, array( 'taxonomy' => $taxonomy->name, 'popular_cats' => $popular_ids ));
312
- $supplemental['all'] = ob_get_contents();
313
- ob_end_clean();
314
-
315
- $supplemental['dropdown'] = wp_dropdown_categories(array(
316
- 'taxonomy' => $taxonomy->name,
317
- 'hide_empty' => 0,
318
- 'name' => 'new'.$taxonomy->name.'_parent',
319
- 'orderby' => 'name',
320
- 'hierarchical' => 1,
321
- 'show_option_none' => '&mdash; '.$taxonomy->labels->parent_item.' &mdash;',
322
- 'echo' => 0
323
- ));
324
-
325
- $x->Add(array('what' => 'taxonomy', 'data' => $taxonomy->name, 'supplemental' => $supplemental));
326
- }
327
- }
328
-
329
- // parent dropdown list (only for hierarchical post types)
330
- // $dropdown_args copied from page_attributes_meta_box
331
- if (in_array($post_type, get_post_types(array('hierarchical' => true)))) {
332
- $post = get_post($post_ID);
333
- $dropdown_args = array(
334
- 'post_type' => $post->post_type,
335
- 'exclude_tree' => $post->ID,
336
- 'selected' => $post->post_parent,
337
- 'name' => 'parent_id',
338
- 'show_option_none' => __('(no parent)'),
339
- 'sort_column' => 'menu_order, post_title',
340
- 'echo' => 0,
341
- );
342
- $dropdown_args = apply_filters('page_attributes_dropdown_pages_args', $dropdown_args, $post);
343
- $x->Add(array('what' => 'pages', 'data' => wp_dropdown_pages($dropdown_args)));
344
- }
345
-
346
- $x->send();
347
- }
348
-
349
- // replaces ajax tag search of WP to filter tags by language
350
- function ajax_tag_search() {
351
- global $wpdb;
352
-
353
- if ( isset( $_GET['tax'] ) ) {
354
- $taxonomy = sanitize_key( $_GET['tax'] );
355
- $tax = get_taxonomy( $taxonomy );
356
- if ( ! $tax )
357
- die( '0' );
358
- if ( ! current_user_can( $tax->cap->assign_terms ) )
359
- die( '-1' );
360
- } else {
361
- die('0');
362
- }
363
-
364
- $s = stripslashes( $_GET['q'] );
365
-
366
- if ( false !== strpos( $s, ',' ) ) {
367
- $s = explode( ',', $s );
368
- $s = $s[count( $s ) - 1];
369
- }
370
- $s = trim( $s );
371
- if ( strlen( $s ) < 2 )
372
- die; // require 2 chars for matching
373
-
374
- $lang = $this->get_language($_GET['lang']);
375
-
376
- $results = $wpdb->get_col( $wpdb->prepare("
377
- SELECT t.name FROM $wpdb->term_taxonomy AS tt
378
- INNER JOIN $wpdb->terms AS t ON tt.term_id = t.term_id
379
- INNER JOIN $wpdb->termmeta AS tm ON tm.term_id = t.term_id
380
- WHERE tt.taxonomy = %s AND t.name LIKE (%s) AND tm.meta_key = '_language' AND tm.meta_value = %d",
381
- $taxonomy, '%' . like_escape( $s ) . '%', $lang->term_id ) );
382
-
383
- echo join( $results, "\n" );
384
- die;
385
- }
386
-
387
- // filters the pages by language in the parent dropdown list in the page attributes metabox
388
- function page_attributes_dropdown_pages_args($dropdown_args, $post) {
389
- $lang = isset($_POST['lang']) ? $this->get_language($_POST['lang']) : $this->get_post_language($post->ID); // ajax or not ?
390
- if (!$lang)
391
- $lang = $this->get_preferred_language();
392
-
393
- $pages = implode(',', $this->exclude_pages($lang->term_id));
394
- $dropdown_args['exclude'] = isset($dropdown_args['exclude']) ? $dropdown_args['exclude'].','.$pages : $pages;
395
- return $dropdown_args;
396
- }
397
-
398
- // translate post parent if exists when using "Add new" (translation)
399
- function wp_insert_post_parent($post_parent) {
400
- return isset($_GET['from_post'], $_GET['new_lang']) && ($id = wp_get_post_parent_id($_GET['from_post'])) && ($parent = $this->get_translation('post', $id, $_GET['new_lang'])) ? $parent : $post_parent;
401
- }
402
-
403
- // copy post metas, menu order, comment and ping status when using "Add new" (translation)
404
- // the hook was probably not intended for that but did not find a better one
405
- function dbx_post_advanced() {
406
- if (isset($_GET['from_post'], $_GET['new_lang'])) {
407
- global $post;
408
-
409
- $this->copy_post_metas($_GET['from_post'], $post->ID, $_GET['new_lang']);
410
-
411
- $from_post = get_post($_GET['from_post']);
412
- foreach (array('menu_order', 'comment_status', 'ping_status') as $property)
413
- $post->$property = $from_post->$property;
414
-
415
- if (in_array('sticky_posts', $this->options['sync']) && is_sticky($_GET['from_post']))
416
- stick_post($post->ID);
417
- }
418
- }
419
-
420
- // copy or synchronize terms and metas
421
- function copy_post_metas($from, $to, $lang, $sync = false) {
422
- // copy or synchronize terms
423
- if (!$sync || in_array('taxonomies', $this->options['sync'])) {
424
- // FIXME quite a lot of query in foreach
425
- foreach ($this->taxonomies as $tax) {
426
- $newterms = array();
427
- $terms = get_the_terms($from, $tax);
428
- if (is_array($terms)) {
429
- foreach ($terms as $term) {
430
- if ($term_id = $this->get_translation('term', $term->term_id, $lang))
431
- $newterms[] = (int) $term_id; // cast is important otherwise we get 'numeric' tags
432
- }
433
- }
434
-
435
- // for some reasons, the user may have untranslated terms in the translation. don't forget them.
436
- if ($sync) {
437
- $tr_terms = get_the_terms($to, $tax);
438
- if (is_array($tr_terms)) {
439
- foreach ($tr_terms as $term) {
440
- if (!$this->get_translation('term', $term->term_id, $_POST['post_lang_choice']))
441
- $newterms[] = (int) $term->term_id;
442
- }
443
- }
444
- }
445
-
446
- if (!empty($newterms) || $sync)
447
- wp_set_object_terms($to, $newterms, $tax); // replace terms in translation
448
- }
449
- }
450
-
451
- // copy or synchronize post formats
452
- if (!$sync || in_array('post_format', $this->options['sync']))
453
- ($format = get_post_format($from)) ? set_post_format($to, $format) : set_post_format($to, '');
454
-
455
- // copy or synchronize post metas and allow plugins to do the same
456
- $metas = get_post_custom($from);
457
-
458
- // get public meta keys (including from translated post in case we just deleted a custom field)
459
- if (!$sync || in_array('post_meta', $this->options['sync'])) {
460
- foreach ($keys = array_unique(array_merge(array_keys($metas), array_keys(get_post_custom($to)))) as $k => $meta_key)
461
- if (is_protected_meta($meta_key))
462
- unset ($keys[$k]);
463
- }
464
-
465
- // add page template and featured image
466
- foreach (array('_wp_page_template', '_thumbnail_id') as $meta)
467
- if (!$sync || in_array($meta, $this->options['sync']))
468
- $keys[] = $meta;
469
-
470
- $keys = array_unique(apply_filters('pll_copy_post_metas', empty($keys) ? array() : $keys, $sync));
471
-
472
- // and now copy / synchronize
473
- foreach ($keys as $key) {
474
- delete_post_meta($to, $key); // the synchronization process of multiple values custom fields is easier if we delete all metas first
475
- if (isset($metas[$key])) {
476
- foreach ($metas[$key] as $value) {
477
- // important: always maybe_unserialize value coming from get_post_custom. See codex.
478
- // thanks to goncalveshugo http://wordpress.org/support/topic/plugin-polylang-pll_copy_post_meta
479
- $value = maybe_unserialize($value);
480
- // special case for featured images which can be translated
481
- add_post_meta($to, $key, ($key == '_thumbnail_id' && $tr_value = $this->get_translation('post', $value, $lang)) ? $tr_value : $value);
482
- }
483
- }
484
- }
485
- }
486
-
487
- // called when a post (or page) is saved, published or updated
488
- function save_post($post_id, $post) {
489
- global $wpdb;
490
-
491
- // does nothing except on post types which are filterable
492
- if (!in_array($post->post_type, $this->post_types))
493
- return;
494
-
495
- // bulk edit does not modify the language
496
- if (isset($_GET['bulk_edit']) && $_REQUEST['post_lang_choice'] == -1)
497
- return;
498
-
499
- if ($id = wp_is_post_revision($post_id))
500
- $post_id = $id;
501
-
502
- // save language
503
- if (isset($_REQUEST['post_lang_choice'])) {
504
- if (($lang = $this->get_post_language($post_id)) && $lang->slug != $_REQUEST['post_lang_choice'])
505
- $this->delete_translation('post', $post_id); // in case the language is modified using inline edit
506
- $this->set_post_language($post_id, $_REQUEST['post_lang_choice']);
507
- }
508
-
509
- elseif (isset($_GET['new_lang']))
510
- $this->set_post_language($post_id, $_GET['new_lang']);
511
-
512
- elseif (isset($_REQUEST['action']) && in_array($_REQUEST['action'], array('post-quickpress-save', 'post-quickpress-publish')))
513
- $this->set_post_language($post_id, $this->get_preferred_language()); // default language for QuickPress
514
-
515
- elseif ($this->get_post_language($post_id))
516
- {} // avoids breaking the language if post is updated outside the edit post page (thanks to Gonçalo Peres)
517
-
518
- elseif (($parent_id = wp_get_post_parent_id($post_id)) && $parent_lang = $this->get_post_language($parent_id))
519
- $this->set_post_language($post_id, $parent_lang);
520
-
521
- else
522
- $this->set_post_language($post_id, $this->get_preferred_language());
523
-
524
- if (!isset($_POST['post_lang_choice']))
525
- return;
526
-
527
- // make sure we get save terms in the right language (especially tags with same name in different languages)
528
- if ($_POST['post_lang_choice']) {
529
- // FIXME quite a lot of query in foreach
530
- foreach ($this->taxonomies as $tax) {
531
- $terms = get_the_terms($post_id, $tax);
532
- if (is_array($terms)) {
533
- $newterms = array();
534
- foreach ($terms as $term) {
535
- if ($term_id = $this->get_term($term->term_id, $_POST['post_lang_choice']))
536
- $newterms[] = (int) $term_id; // cast is important otherwise we get 'numeric' tags
537
-
538
- // FIXME quick fix for Polylang 1.1.6
539
- // handles tags with same names in several languages (but are not the translation of each other)
540
- elseif ($term_id = $wpdb->get_var($wpdb->prepare("
541
- SELECT t.term_id FROM $wpdb->terms AS t
542
- INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id
543
- INNER JOIN $wpdb->termmeta AS tm on t.term_id = tm.term_id
544
- WHERE tt.taxonomy = %s AND t.name = %s
545
- AND tm.meta_key = %s AND tm.meta_value = %s",
546
- $tax, $term->name, '_language', $this->get_language($_POST['post_lang_choice'])->term_id
547
- )))
548
- $newterms[] = (int) $term_id;
549
-
550
- elseif (!is_wp_error($term_info = wp_insert_term($term->name, $tax))) // create the term in the correct language
551
- $newterms[] = (int) $term_info['term_id'];
552
- }
553
- wp_set_object_terms($post_id, $newterms, $tax);
554
- }
555
- }
556
- }
557
-
558
- if (!isset($_POST['post_tr_lang'])) // just in case only one language has been created
559
- return;
560
-
561
- // save translations after checking the translated post is in the right language
562
- foreach ($_POST['post_tr_lang'] as $lang=>$tr_id)
563
- $translations[$lang] = ($tr_id && $this->get_post_language((int) $tr_id)->slug == $lang) ? (int) $tr_id : 0;
564
-
565
- $this->save_translations('post', $post_id, $translations);
566
-
567
- // prepare some synchronizations
568
- foreach (array('comment_status', 'ping_status', 'menu_order', 'post_date') as $property)
569
- if (in_array($property, $this->options['sync']))
570
- $postarr[$property] = $post->$property;
571
-
572
- if (in_array('post_date', $this->options['sync']))
573
- $post_arr['post_date_gmt'] = $post->post_date_gmt;
574
-
575
- // synchronise terms and metas in translations
576
- foreach ($translations as $lang => $tr_id) {
577
- if (!$tr_id)
578
- continue;
579
-
580
- // synchronize terms and metas
581
- $this->copy_post_metas($post_id, $tr_id, $lang, true);
582
-
583
- // sticky posts
584
- if (in_array('sticky_posts', $this->options['sync']))
585
- isset($_REQUEST['sticky']) ? stick_post($tr_id) : unstick_post($tr_id);
586
-
587
- // synchronize comment status, ping status, menu order...
588
- if (!empty($postarr))
589
- $wpdb->update($wpdb->posts, $postarr, array('ID' => $tr_id));
590
-
591
- // FIXME: optimize the 2 db update in 1
592
- // post parent
593
- // do not udpate the translation parent if the user set a parent with no translation
594
- if (in_array('post_parent', $this->options['sync'])) {
595
- $post_parent = ($parent_id = wp_get_post_parent_id($post_id)) ? $this->get_translation('post', $parent_id, $lang) : 0;
596
- if (!($parent_id && !$post_parent))
597
- $wpdb->update($wpdb->posts, array('post_parent'=> $post_parent), array( 'ID' => $tr_id ));
598
- }
599
- }
600
- }
601
-
602
- // called when a post, page or media is deleted
603
- // don't delete translations if this is a post revision thanks to AndyDeGroo who catched this bug
604
- // http://wordpress.org/support/topic/plugin-polylang-quick-edit-still-breaks-translation-linking-of-pages-in-072
605
- function delete_post($post_id) {
606
- if (!wp_is_post_revision($post_id))
607
- $this->delete_translation('post', $post_id);
608
- }
609
-
610
- // adds the language field and translations tables in the 'Edit Media' panel
611
- function attachment_fields_to_edit($fields, $post) {
612
- if ($GLOBALS['pagenow'] == 'post.php')
613
- return $fields; // don't add anything on edit media panel for WP 3.5+ since we have the metabox
614
-
615
- $post_id = $post->ID;
616
- $lang = $this->get_post_language($post_id);
617
-
618
- $fields['language'] = array(
619
- 'label' => __('Language', 'polylang'),
620
- 'input' => 'html',
621
- 'html' => $this->dropdown_languages(array(
622
- 'name' => sprintf('attachments[%d][language]', $post_id),
623
- 'class' => 'media_lang_choice',
624
- 'selected' => $lang ? $lang->slug : ''
625
- ))
626
- );
627
-
628
- // don't show translations except on edit media panel for WP < 3.5
629
- if ($GLOBALS['pagenow'] == 'media.php') {
630
- if ($lang) {
631
- ob_start();
632
- include PLL_INC . '/media-translations.php';
633
- $fields['translations'] = array(
634
- 'label' => __('Translations', 'polylang'),
635
- 'input' => 'html',
636
- 'html' => ob_get_contents(),
637
- );
638
- ob_end_clean();
639
- }
640
- else
641
- $fields['translations'] = array('tr' => '<tr class="translations"></tr>'); // to get a field for ajax
642
- }
643
-
644
- return $fields;
645
- }
646
-
647
- // ajax response for changing the language in media form
648
- function media_lang_choice() {
649
- preg_match('#([0-9]+)#', $_POST['post_id'], $matches);
650
- $post_id = $matches[1];
651
- $lang = $this->get_language($_POST['lang']);
652
-
653
- ob_start();
654
- if ($lang) {
655
- include(PLL_INC.'/media-translations.php');
656
- $data = ob_get_contents();
657
-
658
- // Special case for WP < 3.5, first add the html generated by WP if non AJAX, then our translation table
659
- if (version_compare($GLOBALS['wp_version'], '3.5', '<'))
660
- $data = sprintf('
661
- <th scope="row" class="label">
662
- <label for="attachments[%d][translations]">
663
- <span class="alignleft">%s</span><br class="clear" />
664
- </label>
665
- </th>
666
- <td class="field">
667
- %s
668
- </td>',
669
- $post_id, __('Translations', 'polylang'), $data
670
- );
671
- }
672
- $x = new WP_Ajax_Response(array('what' => 'translations', 'data' => $data));
673
- ob_end_clean();
674
-
675
- $x->send();
676
- }
677
-
678
- // creates a media translation
679
- function translate_media() {
680
- $post = get_post($_GET['from_media']);
681
- $post_id = $post->ID;
682
-
683
- // create a new attachment (translate attachment parent if exists)
684
- $post->ID = null; // will force the creation
685
- $post->post_parent = ($post->post_parent && $tr_parent = $this->get_translation('post', $post->post_parent, $_GET['new_lang'])) ? $tr_parent : 0;
686
- $tr_id = wp_insert_attachment($post);
687
- add_post_meta($tr_id, '_wp_attachment_metadata', get_post_meta($post_id, '_wp_attachment_metadata', true));
688
- add_post_meta($tr_id, '_wp_attached_file', get_post_meta($post_id, '_wp_attached_file', true));
689
-
690
- $translations = $this->get_translations('post', $post_id);
691
- if (!$translations && $lang = $this->get_post_language($post_id))
692
- $translations[$lang->slug] = $post_id;
693
-
694
- $translations[$_GET['new_lang']] = $tr_id;
695
- $this->save_translations('post', $tr_id, $translations);
696
-
697
- wp_redirect(admin_url(sprintf(
698
- version_compare($GLOBALS['wp_version'], '3.5', '<') ?
699
- 'media.php?attachment_id=%d&action=edit' : // WP < 3.5
700
- 'post.php?post=%d&action=edit', // WP 3.5+
701
- $tr_id)));
702
-
703
- exit;
704
- }
705
-
706
- // sets the language of a new attachment
707
- function add_attachment($post_id) {
708
- if (!empty($_GET['new_lang'])) // created as a translation from an existing attachment
709
- $lang = $_GET['new_lang'];
710
- else {
711
- $post = get_post($post_id);
712
- if (!empty($post->post_parent)) // upload in the "Add media" modal when editing a post
713
- $lang = $this->get_post_language($post->post_parent);
714
- }
715
-
716
- $this->set_post_language($post_id, isset($lang) ? $lang : $this->get_preferred_language());
717
- }
718
-
719
- // called when a media is saved
720
- function save_media($post, $attachment) {
721
- $this->set_post_language($post['ID'], $attachment['language']); // FIXME the language is no more automatically saved by WP since WP 3.5
722
-
723
- $this->delete_translation('post', $post['ID']);
724
-
725
- // save translations after checking the translated media is in the right language
726
- if (isset($_POST['media_tr_lang'])) {
727
- foreach ($_POST['media_tr_lang'] as $lang=>$tr_id)
728
- $translations[$lang] = $this->get_post_language((int) $tr_id)->slug == $lang && $tr_id != $post['ID'] ? (int) $tr_id : 0;
729
-
730
- $this->save_translations('post', $post['ID'], $translations);
731
- }
732
-
733
- return $post;
734
- }
735
-
736
- // prevents WP deleting files when there are still media using them
737
- // thanks to Bruno "Aesqe" Babic and its plugin file gallery in which I took all the ideas for this function
738
- function wp_delete_file($file) {
739
- global $wpdb;
740
- $uploadpath = wp_upload_dir();
741
- $ids = $wpdb->get_col($wpdb->prepare("
742
- SELECT post_id FROM $wpdb->postmeta
743
- WHERE meta_key = '_wp_attached_file' AND meta_value = '%s'",
744
- ltrim($file, $uploadpath['basedir'])
745
- ));
746
-
747
- if (!empty($ids)) {
748
- // regenerate intermediate sizes if it's an image (since we could not prevent WP deleting them before)
749
- wp_update_attachment_metadata($ids[0], wp_generate_attachment_metadata($ids[0], $file));
750
- return ''; // prevent deleting the main file
751
- }
752
-
753
- return $file;
754
- }
755
-
756
- // filters categories and post tags by language when needed
757
- function terms_clauses($clauses, $taxonomies, $args) {
758
- // does nothing except on taxonomies which are filterable
759
- foreach ($taxonomies as $tax)
760
- if (!in_array($tax, $this->taxonomies))
761
- return $clauses;
762
-
763
- if (function_exists('get_current_screen'))
764
- $screen = get_current_screen(); // since WP 3.1, may not be available the first time(s) get_terms is called
765
-
766
- // don't filter nav menus on nav menus screen
767
- if (isset($screen) && 'nav-menus' == $screen->base && in_array('nav_menu', $taxonomies))
768
- return $clauses;
769
-
770
- // if get_terms is queried with a 'lang' parameter
771
- if (!empty($args['lang']))
772
- return $this->_terms_clauses($clauses, $args['lang']);
773
-
774
- // does nothing in Languages and dasboard admin panels
775
- if (isset($screen) && in_array($screen->base, array('toplevel_page_mlang', 'dashboard')))
776
- return $clauses;
777
-
778
- // do not filter 'get_terms_not_translated'
779
- if (!empty($args['pll_get_terms_not_translated']))
780
- return $clauses;
781
-
782
- // The only ajax response I want to deal with is when changing the language in post metabox
783
- if (isset($_POST['action']) && !in_array($_POST['action'], array('post_lang_choice', 'term_lang_choice', 'get-tagcloud')))
784
- return $clauses;
785
-
786
- // I only want to filter the parent dropdown list when editing a term in a hierarchical taxonomy
787
- if (isset($_POST['action']) && $_POST['action'] == 'term_lang_choice' && !(isset($args['class']) || isset($args['unit'])))
788
- return $clauses;
789
-
790
- // ajax response for changing the language in the post metabox (or in the edit-tags panels)
791
- if (isset($_POST['lang']))
792
- $lang = $this->get_language($_POST['lang']);
793
-
794
- // the post is created with the 'add new' (translation) link
795
- elseif (!empty($_GET['new_lang']))
796
- $lang = $this->get_language($_GET['new_lang']);
797
-
798
- // the language filter selection has just changed
799
- // test $screen->base to avoid interference between the language filter and the post language selection and the category parent dropdown list
800
- elseif (!empty($_GET['lang']) && !in_array($screen->base, array('post', 'edit-tags'))) {
801
- if ($_GET['lang'] != 'all')
802
- $lang = $this->get_language($_GET['lang']);
803
- elseif ($screen->base == 'edit-tags' && isset($args['class']))
804
- $lang = $this->get_preferred_language(); // parent dropdown
805
- }
806
-
807
- // again the language filter
808
- elseif (($lg = get_user_meta(get_current_user_id(), 'pll_filter_content', true)) &&
809
- $screen->base != 'post' && !($screen->base == 'edit-tags' && isset($args['class']))) // don't apply to post edit and the category parent dropdown list
810
- $lang = $this->get_language($lg);
811
-
812
- elseif (isset($_GET['post']))
813
- $lang = $this->get_post_language($_GET['post']);
814
-
815
- // for the parent dropdown list in edit term
816
- elseif (isset($_GET['tag_ID']))
817
- $lang = $this->get_term_language($_GET['tag_ID']);
818
-
819
- // when a new category is created in the edit post panel
820
- elseif (isset($_POST['term_lang_choice']))
821
- $lang = $this->get_language($_POST['term_lang_choice']);
822
-
823
- // for a new post (or the parent dropdown list of a new term)
824
- elseif (isset($screen) && ($screen->base == 'post' || ($screen->base == 'edit-tags' && isset($args['class']))))
825
- $lang = $this->get_preferred_language();
826
-
827
- // adds our clauses to filter by current language
828
- return !empty($lang) ? $this->_terms_clauses($clauses, $lang) : $clauses;
829
- }
830
-
831
- // adds the language field in the 'Categories' and 'Post Tags' panels
832
- function add_term_form() {
833
- $taxonomy = $_GET['taxonomy'];
834
- $lang = isset($_GET['new_lang']) ? $this->get_language($_GET['new_lang']) : $this->get_preferred_language();
835
-
836
- printf('
837
- <div class="form-field">
838
- <label for="term_lang_choice">%s</label>
839
- %s
840
- <p>%s</p>
841
- </div>',
842
- __('Language', 'polylang'),
843
- $this->dropdown_languages(array('name' => 'term_lang_choice', 'value' => 'term_id', 'selected' => $lang ? $lang->term_id : '')),
844
- __('Sets the language', 'polylang')
845
- );
846
-
847
- // adds translation fields
848
- echo '<div id="term-translations" class="form-field">';
849
- if ($lang)
850
- include(PLL_INC.'/term-translations.php');
851
- echo '</div>'."\n";
852
- }
853
-
854
- // adds the language field and translations tables in the 'Edit Category' and 'Edit Tag' panels
855
- function edit_term_form($tag) {
856
- $term_id = $tag->term_id;
857
- $lang = $this->get_term_language($term_id);
858
- $taxonomy = $tag->taxonomy;
859
-
860
- printf('
861
- <tr class="form-field">
862
- <th scope="row">
863
- <label for="term_lang_choice">%s</label>
864
- </th>
865
- <td>
866
- %s<br />
867
- <span class="description">%s</span>
868
- </td>
869
- </tr>',
870
- __('Language', 'polylang'),
871
- $this->dropdown_languages(array('name' => 'term_lang_choice', 'value' => 'term_id', 'selected' => $lang ? $lang->term_id : '')),
872
- __('Sets the language', 'polylang')
873
- );
874
-
875
- echo '<tr id="term-translations" class="form-field">';
876
- if ($lang)
877
- include(PLL_INC.'/term-translations.php');
878
- echo '</tr>'."\n";
879
- }
880
-
881
- // adds the language column (before the posts column) in the 'Categories' or 'Post Tags' table
882
- function add_term_column($columns) {
883
- return $this->add_column($columns, 'posts');
884
- }
885
-
886
- // fills the language column in the 'Categories' or 'Post Tags' table
887
- // FIXME if inline edit breaks translations, the rows corresponding to these translations are not updated
888
- function term_column($empty, $column, $term_id) {
889
- $inline = defined('DOING_AJAX') && $_REQUEST['action'] == 'inline-save-tax' ? 1 : 0;
890
- if (false === strpos($column, 'language_') || !($lang = $inline ? $this->get_language($_POST['inline_lang_choice']) : $this->get_term_language($term_id)))
891
- return;
892
-
893
- $post_type = isset($GLOBALS['post_type']) ? $GLOBALS['post_type'] : $_POST['post_type']; // 2nd case for quick edit
894
- $taxonomy = isset($GLOBALS['taxonomy']) ? $GLOBALS['taxonomy'] : $_POST['taxonomy'];
895
- $language = $this->get_language(substr($column, 9));
896
-
897
- if ($column == $this->get_first_language_column())
898
- printf('<div class="hidden" id="lang_%d">%s</div>', esc_attr($term_id), esc_html($lang->slug));
899
-
900
- // link to edit term (or a translation)
901
- if ($id = ($inline && $lang->slug != $_POST['old_lang']) ? ($language->slug == $lang->slug ? $term_id : 0) : $this->get_term($term_id, $language))
902
- printf('<a class="%1$s" title="%2$s" href="%3$s"></a>',
903
- $id == $term_id ? 'pll_icon_tick' : 'pll_icon_edit',
904
- esc_attr(get_term($id, $taxonomy)->name),
905
- esc_url(get_edit_term_link($id, $taxonomy, $post_type))
906
- );
907
-
908
- // link to add a new translation
909
- else
910
- printf('<a class="pll_icon_add" title="%1$s" href="%2$s"></a>',
911
- __('Add new translation', 'polylang'),
912
- esc_url(admin_url(sprintf('edit-tags.php?taxonomy=%1$s&from_tag=%2$d&new_lang=%3$s', $taxonomy, $term_id, $language->slug)))
913
- );
914
- }
915
-
916
- // translate term parent if exists when using "Add new" (translation)
917
- function wp_dropdown_cats($output) {
918
- if (isset($_GET['taxonomy'], $_GET['from_tag'], $_GET['new_lang']) && $id = get_term($_GET['from_tag'], $_GET['taxonomy'])->parent) {
919
- if ($parent = $this->get_translation('term', $id, $_GET['new_lang']))
920
- return str_replace('"'.$parent.'"', '"'.$parent.'" selected="selected"', $output);
921
- }
922
- return $output;
923
- }
924
-
925
- // called when a category or post tag is created or edited
926
- function save_term($term_id, $tt_id, $taxonomy) {
927
- // does nothing except on taxonomies which are filterable
928
- if (!in_array($taxonomy, $this->taxonomies))
929
- return;
930
-
931
- // save language
932
- if (isset($_POST['term_lang_choice']))
933
- $this->set_term_language($term_id, $_POST['term_lang_choice']);
934
- if (isset($_POST['inline_lang_choice'])) {
935
- // don't use term_lang_choice for quick edit to avoid conflict with the "add term" form
936
- if ($this->get_term_language($term_id)->slug != $_POST['inline_lang_choice'])
937
- $this->delete_translation('term', $term_id);
938
- $this->set_term_language($term_id, $_POST['inline_lang_choice']);
939
- }
940
- elseif (isset($_POST['post_lang_choice']))
941
- $this->set_term_language($term_id, $_POST['post_lang_choice']);
942
-
943
- elseif ($this->get_term_language($term_id))
944
- {} // avoids breaking the language if the term is updated outside the edit post or edit tag pages
945
-
946
- // sets language from term parent if exists thanks to Scott Kingsley Clark
947
- elseif (($term = get_term($term_id, $taxonomy)) && !empty($term->parent) && $parent_lang = $this->get_term_language($term->parent))
948
- $this->set_term_language($term_id, $parent_lang);
949
-
950
- else
951
- $this->set_term_language($term_id, $this->get_preferred_language());
952
-
953
- if (!isset($_POST['term_tr_lang']))
954
- return;
955
-
956
- // save translations after checking the translated term is in the right language (as well as cast id to int)
957
- foreach ($_POST['term_tr_lang'] as $lang=>$tr_id) {
958
- $tr_lang = $this->get_term_language((int) $tr_id);
959
- $translations[$lang] = $tr_lang && $tr_lang->slug == $lang ? (int) $tr_id : 0;
960
- }
961
-
962
- $this->save_translations('term', $term_id, $translations);
963
-
964
- // synchronize translations of this term in all posts
965
-
966
- // STOP synchronisation if unwanted
967
- if (!in_array('taxonomies', $this->options['sync']))
968
- return;
969
-
970
- // get all posts associated to this term
971
- $posts = get_posts(array(
972
- 'numberposts' => -1,
973
- 'nopaging' => true,
974
- 'post_type' => 'any',
975
- 'post_status' => 'any',
976
- 'fields' => 'ids',
977
- 'tax_query' => array(array(
978
- 'taxonomy' => $taxonomy,
979
- 'field' => 'id',
980
- 'terms' => array_merge(array($term_id), array_values($translations)),
981
- ))
982
- ));
983
-
984
- // associate translated term to translated post
985
- // FIXME quite a lot of query in foreach
986
- foreach ($this->get_languages_list() as $language) {
987
- if ($translated_term = $this->get_term($term_id, $language)) {
988
- foreach ($posts as $post_id) {
989
- if ($translated_post = $this->get_post($post_id, $language))
990
- wp_set_object_terms($translated_post, $translated_term, $taxonomy, true);
991
- }
992
- }
993
- }
994
-
995
- // synchronize parent in translations
996
- // calling clean_term_cache *after* this is mandatory otherwise the $taxonomy_children option is not correctly updated
997
- // but clean_term_cache can be called (efficiently) only one time due to static array which prevents to update the option more than once
998
- // this is the reason to use the edit_term filter and not edited_term
999
- // take care that $_POST contains the only valid values for the current term
1000
- foreach ($_POST['term_tr_lang'] as $lang=>$tr_id) {
1001
- if (!$tr_id)
1002
- continue;
1003
-
1004
- if (isset($_POST['parent']) && $_POST['parent'] != -1) // since WP 3.1
1005
- $term_parent = $this->get_translation('term', $_POST['parent'], $lang);
1006
-
1007
- global $wpdb;
1008
- $wpdb->update($wpdb->term_taxonomy,
1009
- array('parent'=> isset($term_parent) ? $term_parent : 0),
1010
- array('term_taxonomy_id' => get_term($tr_id, $taxonomy)->term_taxonomy_id));
1011
- }
1012
- }
1013
-
1014
- // stores the term name for use in pre_term_slug
1015
- function pre_term_name($name) {
1016
- return $this->pre_term_name = $name;
1017
- }
1018
-
1019
- // creates the term slug in case the term already exists in another language
1020
- function pre_term_slug($slug, $taxonomy) {
1021
- $name = sanitize_title($this->pre_term_name);
1022
-
1023
- // if the new term has the same name as a language, we *need* to differentiate the term
1024
- // see http://core.trac.wordpress.org/ticket/23199
1025
- if (term_exists($name, 'language') && !term_exists($name, $taxonomy) && (!$slug || $slug == $name))
1026
- $slug = $name.'-'.$taxonomy; // a convenient slug which may be modified later by the user
1027
-
1028
- return !$slug && in_array($taxonomy, $this->taxonomies) && term_exists($name, $taxonomy) ?
1029
- $name.'-'.$this->get_language($_POST['term_lang_choice'])->slug : $slug;
1030
- }
1031
-
1032
- // called when a category or post tag is deleted
1033
- function delete_term($term_id) {
1034
- $this->delete_term_language($term_id);
1035
- $this->delete_translation('term', $term_id);
1036
- }
1037
-
1038
- // returns all terms in the $taxonomy in the $term_language which have no translation in the $translation_language
1039
- function get_terms_not_translated($taxonomy, $term_language, $translation_language) {
1040
- $new_terms = array();
1041
- // it is more efficient to use one common query for all languages as son as there are more than 2
1042
- // pll_get_terms_not_translated arg to identify this query in terms_clauses filter
1043
- foreach (get_terms($taxonomy, 'hide_empty=0&pll_get_terms_not_translated=1') as $term) {
1044
- $lang = $this->get_term_language($term->term_id);
1045
- if ($lang && $lang->name == $term_language->name && !$this->get_translation('term', $term->term_id, $translation_language))
1046
- $new_terms[] = $term;
1047
- }
1048
- return $new_terms;
1049
- }
1050
-
1051
- // ajax response for edit term form
1052
- function term_lang_choice() {
1053
- $lang = $this->get_language($_POST['lang']);
1054
- $term_id = isset($_POST['term_id']) ? $_POST['term_id'] : null;
1055
- $taxonomy = $_POST['taxonomy'];
1056
-
1057
- ob_start();
1058
- if ($lang)
1059
- include(PLL_INC.'/term-translations.php');
1060
- $x = new WP_Ajax_Response(array('what' => 'translations', 'data' => ob_get_contents()));
1061
- ob_end_clean();
1062
-
1063
- // parent dropdown list (only for hierarchical taxonomies)
1064
- // $args copied from edit_tags.php except echo
1065
- if (is_taxonomy_hierarchical($taxonomy)) {
1066
- $args = array(
1067
- 'hide_empty' => 0,
1068
- 'hide_if_empty' => false,
1069
- 'taxonomy' => $taxonomy,
1070
- 'name' => 'parent',
1071
- 'orderby' => 'name',
1072
- 'hierarchical' => true,
1073
- 'show_option_none' => __('None'),
1074
- 'echo' => 0,
1075
- );
1076
- $x->Add(array('what' => 'parent', 'data' => wp_dropdown_categories($args)));
1077
- }
1078
-
1079
- // tag cloud
1080
- // tests copied from edit_tags.php
1081
- else {
1082
- $tax = get_taxonomy($taxonomy);
1083
- if (!is_null($tax->labels->popular_items)) {
1084
- $args = array('taxonomy' => $taxonomy, 'echo' => false);
1085
- if (current_user_can($tax->cap->edit_terms))
1086
- $args = array_merge($args, array('link' => 'edit'));
1087
-
1088
- if ($tag_cloud = wp_tag_cloud($args))
1089
- $x->Add(array('what' => 'tag_cloud', 'data' => '<h3>'.$tax->labels->popular_items.'</h3>'.$tag_cloud));
1090
- }
1091
- }
1092
-
1093
- $x->send();
1094
- }
1095
-
1096
- // modifies the widgets forms to add our language dropdwown list
1097
- function in_widget_form($widget) {
1098
- printf('<p><label for="%1$s">%2$s%3$s</label></p>',
1099
- esc_attr( $widget->id.'_lang_choice'),
1100
- __('The widget is displayed for:', 'polylang'),
1101
- $this->dropdown_languages(array(
1102
- 'name' => $widget->id.'_lang_choice',
1103
- 'class' => 'tags-input',
1104
- 'add_options' => array(array('value' => 0, 'text' => __('All languages', 'polylang'))),
1105
- 'selected' => empty($this->options['widgets'][$widget->id]) ? '' : $this->options['widgets'][$widget->id]
1106
- ))
1107
- );
1108
- }
1109
-
1110
- // called when widget options are saved
1111
- function widget_update_callback($instance, $new_instance, $old_instance, $widget) {
1112
- $this->options['widgets'][$widget->id] = $_POST[$widget->id.'_lang_choice'];
1113
- update_option('polylang', $this->options);
1114
- return $instance;
1115
- }
1116
-
1117
- // updates language user preference
1118
- function personal_options_update($user_id) {
1119
- update_user_meta($user_id, 'user_lang', $_POST['user_lang']); // admin language
1120
- foreach ($this->get_languages_list() as $lang)
1121
- update_user_meta($user_id, 'description_'.$lang->slug, $_POST['description_'.$lang->slug]); // biography translations
1122
- }
1123
-
1124
- // form for language user preference
1125
- function personal_options($profileuser) {
1126
- printf('
1127
- <tr>
1128
- <th><label for="user_lang">%s</label></th>
1129
- <td>%s</td>
1130
- </tr>',
1131
- __('Admin language', 'polylang'),
1132
- $this->dropdown_languages(array(
1133
- 'name' => 'user_lang',
1134
- 'value' => 'description',
1135
- 'selected' => get_user_meta($profileuser->ID, 'user_lang', true),
1136
- 'add_options' => array(array('value' => 0, 'text' => __('Wordpress default', 'polylang')))
1137
- ))
1138
- );
1139
-
1140
- // hidden informations to modify the biography form with js
1141
- foreach ($this->get_languages_list() as $lang)
1142
- printf('<input type="hidden" class="biography" name="%s-%s" value="%s" />',
1143
- esc_attr($lang->slug),
1144
- esc_attr($lang->name),
1145
- esc_attr(get_user_meta($profileuser->ID, 'description_'.$lang->slug, true))
1146
- );
1147
- }
1148
-
1149
- // filters comments by language
1150
- function comments_clauses($clauses, $query) {
1151
- if (!empty($query->query_vars['lang']))
1152
- $lang = $query->query_vars['lang'];
1153
-
1154
- elseif (!empty($_GET['lang']) && $_GET['lang'] != 'all')
1155
- $lang = $this->get_language($_GET['lang']);
1156
-
1157
- elseif ($lg = get_user_meta(get_current_user_id(), 'pll_filter_content', true))
1158
- $lang = $this->get_language($lg);
1159
-
1160
- return empty($lang) ? $clauses : $this->_comments_clauses($clauses, $lang);
1161
- }
1162
-
1163
- // adds a 'settings' link in the plugins table
1164
- function plugin_action_links($links) {
1165
- array_unshift($links, '<a href="admin.php?page=mlang">' . __('Settings', 'polylang') . '</a>');
1166
- return $links;
1167
- }
1168
-
1169
- // adds the upgrade notice in plugins table
1170
- function plugin_update_message($plugin_data, $r) {
1171
- if (isset($r->upgrade_notice))
1172
- printf('<p style="margin: 3px 0 0 0; border-top: 1px solid #ddd; padding-top: 3px">%s</p>', $r->upgrade_notice);
1173
- }
1174
-
1175
- // ugrades languages files after a core upgrade
1176
- function upgrade_languages($version) {
1177
- apply_filters('update_feedback', __('Upgrading language files&#8230;', 'polylang'));
1178
- foreach ($this->get_languages_list() as $language)
1179
- if ($language->description != $_POST['locale']) // do not (re)update the language files of a localized WordPress
1180
- $this->download_mo($language->description, $version);
1181
- }
1182
-
1183
- // returns either the user preferred language or the default language
1184
- function get_preferred_language() {
1185
- $default_language = $this->get_language(($lg = get_user_meta(get_current_user_id(), 'pll_filter_content', true)) ? $lg : $this->options['default_lang']);
1186
- return apply_filters('pll_admin_preferred_language', $default_language);
1187
- }
1188
-
1189
- } // class Polylang_Admin_Filters
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
include/admin.php DELETED
@@ -1,458 +0,0 @@
1
- <?php
2
-
3
- require_once(PLL_INC.'/list-table.php');
4
-
5
- // setups the Polylang admin panel
6
- class Polylang_Admin extends Polylang_Admin_Base {
7
-
8
- function __construct() {
9
- parent::__construct();
10
-
11
- // adds screen options and the about box in the languages admin panel
12
- add_action('load-settings_page_mlang', array(&$this, 'load_page'));
13
-
14
- // saves per-page value in screen option
15
- add_filter('set-screen-option', create_function('$s, $o, $v', 'return $v;'), 10, 3);
16
- }
17
-
18
- // adds screen options and the about box in the languages admin panel
19
- function load_page() {
20
- // test of $_GET['tab'] avoids displaying the automatically generated screen options on other tabs
21
- if ((!defined('PLL_DISPLAY_ABOUT') || PLL_DISPLAY_ABOUT) && (!isset($_GET['tab']) || $_GET['tab'] == 'lang')) {
22
- add_meta_box('pll_about_box', __('About Polylang', 'polylang'), create_function('', "include(PLL_INC.'/about.php');"), 'settings_page_mlang', 'normal');
23
- add_screen_option('per_page', array('label' => __('Languages', 'polylang'), 'default' => 10, 'option' => 'pll_lang_per_page'));
24
- }
25
-
26
- if (isset($_GET['tab']) && $_GET['tab'] == 'strings')
27
- add_screen_option('per_page', array('label' => __('Strings translations', 'polylang'), 'default' => 10, 'option' => 'pll_strings_per_page'));
28
- }
29
-
30
- // used to update the translation when a language slug has been modified
31
- function update_translations($type, $ids, $old_slug) {
32
- foreach ($ids as $id) {
33
- if ($tr = $this->get_translations($type, $id)) {
34
- $tr[$_POST['slug']] = $tr[$old_slug];
35
- unset($tr[$old_slug]);
36
- update_metadata($type, (int) $id, '_translations', $tr);
37
- }
38
- }
39
- }
40
-
41
- // used to delete the translation when a language is deleted
42
- function delete_translations($type, $ids, $old_slug) {
43
- foreach ($ids as $id) {
44
- if ($tr = $this->get_translations($type, $id)) {
45
- unset($tr[$old_slug]);
46
- update_metadata($type, (int) $id, '_translations', $tr);
47
- }
48
- }
49
- }
50
-
51
- // the languages panel
52
- function languages_page() {
53
- $action = isset($_REQUEST['pll_action']) ? $_REQUEST['pll_action'] : '';
54
-
55
- switch ($action) {
56
- case 'add':
57
- check_admin_referer( 'add-lang', '_wpnonce_add-lang' );
58
- $error = $this->validate_lang();
59
-
60
- if ($error == 0) {
61
- $r = wp_insert_term($_POST['name'], 'language', array('slug' => $_POST['slug'], 'description' => $_POST['description']));
62
- wp_update_term($r['term_id'], 'language', array('term_group' => $_POST['term_group'])); // can't set the term group directly in wp_insert_term
63
- update_metadata('term', $r['term_id'], '_rtl', $_POST['rtl']);
64
-
65
- if (!isset($this->options['default_lang'])) { // if this is the first language created, set it as default language
66
- $this->options['default_lang'] = $_POST['slug'];
67
- update_option('polylang', $this->options);
68
- }
69
-
70
- flush_rewrite_rules(); // refresh rewrite rules
71
-
72
- if (!$this->download_mo($_POST['description']))
73
- $error = 5;
74
- }
75
-
76
- wp_redirect('admin.php?page=mlang'. ($error ? '&error='.$error : '') ); // to refresh the page (possible thanks to the $_GET['noheader']=true)
77
- exit;
78
- break;
79
-
80
- case 'delete':
81
- check_admin_referer('delete-lang');
82
-
83
- if (!empty($_GET['lang'])) {
84
- $lang_id = (int) $_GET['lang'];
85
- $lang = $this->get_language($lang_id);
86
- $lang_slug = $lang->slug;
87
-
88
- // update the language slug in posts meta
89
- $posts = get_posts(array(
90
- 'numberposts' => -1,
91
- 'nopaging' => true,
92
- 'fields' => 'ids',
93
- 'meta_key' => '_translations',
94
- 'post_type' => 'any',
95
- 'post_status' => 'any'
96
- ));
97
- $this->delete_translations('post', $posts, $lang_slug);
98
-
99
- // update the language slug in categories & post tags meta
100
- $terms = get_terms($this->taxonomies, array('get'=>'all', 'fields'=>'ids'));
101
- $this->delete_translations('term', $terms, $lang_slug);
102
-
103
- // FIXME should find something more efficient (with a sql query ?)
104
- foreach ($terms as $id) {
105
- if (($lg = $this->get_term_language($id)) && $lg->term_id == $lang_id)
106
- $this->delete_term_language($id); // delete language of this term
107
- }
108
-
109
- // delete language option in widgets
110
- if (!empty($this->options['widgets'])) {
111
- foreach ($this->options['widgets'] as $key=>$slug) {
112
- if ($slug == $lang_slug)
113
- unset($this->options['widgets'][$key]);
114
- }
115
- }
116
-
117
- // delete users options
118
- foreach (get_users(array('fields' => 'ID')) as $user_id) {
119
- delete_user_meta($user_id, 'user_lang', $lang->description);
120
- delete_user_meta($user_id, 'pll_filter_content', $lang_slug);
121
- delete_user_meta($user_id, 'description_'.$lang_slug);
122
- }
123
-
124
- // delete the string translations
125
- delete_option('polylang_mo'.$lang_id);
126
-
127
- // delete the language itself
128
- delete_metadata('term', $lang_id, '_rtl');
129
- wp_delete_term($lang_id, 'language');
130
-
131
- // oops ! we deleted the default language...
132
- if ($this->options['default_lang'] == $lang_slug) {
133
- if ($listlanguages = $this->get_languages_list())
134
- $this->options['default_lang'] = $listlanguages[0]->slug; // arbitrary choice...
135
- else
136
- unset($this->options['default_lang']);
137
- }
138
-
139
- update_option('polylang', $this->options);
140
- flush_rewrite_rules(); // refresh rewrite rules
141
- }
142
- wp_redirect('admin.php?page=mlang'); // to refresh the page (possible thanks to the $_GET['noheader']=true)
143
- exit;
144
- break;
145
-
146
- case 'edit':
147
- if (!empty($_GET['lang'])) {
148
- $edit_lang = $this->get_language((int) $_GET['lang']);
149
- $rtl = get_metadata('term', $edit_lang->term_id, '_rtl', true);
150
- }
151
- break;
152
-
153
- case 'update':
154
- check_admin_referer( 'add-lang', '_wpnonce_add-lang' );
155
- $lang_id = (int) $_POST['lang_id'];
156
- $lang = $this->get_language($lang_id);
157
- $error = $this->validate_lang($lang);
158
-
159
- if ($error == 0) {
160
- // Update links to this language in posts and terms in case the slug has been modified
161
- $old_slug = $lang->slug;
162
-
163
- if ($old_slug != $_POST['slug']) {
164
- // update the language slug in posts meta
165
- $posts = get_posts(array(
166
- 'numberposts' => -1,
167
- 'nopaging' => true,
168
- 'fields' => 'ids',
169
- 'meta_key' => '_translations',
170
- 'post_type' => 'any',
171
- 'post_status' => 'any'
172
- ));
173
- $this->update_translations('post', $posts, $old_slug);
174
-
175
- // update the language slug in categories & post tags meta
176
- $terms = get_terms($this->taxonomies, array('get'=>'all', 'fields'=>'ids'));
177
- $this->update_translations('term', $terms, $old_slug);
178
-
179
- // update language option in widgets
180
- foreach ($this->options['widgets'] as $key=>$lang) {
181
- if ($lang == $old_slug)
182
- $this->options['widgets'][$key] = $_POST['slug'];
183
- }
184
-
185
- // update the default language option if necessary
186
- if ($this->options['default_lang'] == $old_slug)
187
- $this->options['default_lang'] = $_POST['slug'];
188
- }
189
-
190
- update_option('polylang', $this->options);
191
-
192
- // and finally update the language itself
193
- $args = array(
194
- 'name' => $_POST['name'],
195
- 'slug' => $_POST['slug'],
196
- 'description' => $_POST['description'],
197
- 'term_group' => $_POST['term_group']
198
- );
199
- wp_update_term($lang_id, 'language', $args);
200
- update_metadata('term', $lang_id, '_rtl', $_POST['rtl']);
201
-
202
- flush_rewrite_rules(); // refresh rewrite rules
203
- }
204
-
205
- wp_redirect('admin.php?page=mlang'. ($error ? '&error='.$error : '') ); // to refresh the page (possible thanks to the $_GET['noheader']=true)
206
- exit;
207
- break;
208
-
209
- case 'string-translation':
210
- if (!empty($_REQUEST['submit'])) {
211
- check_admin_referer( 'string-translation', '_wpnonce_string-translation' );
212
- $strings = $this->get_strings();
213
-
214
- foreach ($this->get_languages_list() as $language) {
215
- if(empty($_POST['translation'][$language->name])) // in case the language filter is active (thanks to John P. Bloch)
216
- continue;
217
-
218
- $mo = $this->mo_import($language);
219
-
220
- foreach ($_POST['translation'][$language->name] as $key=>$translation) {
221
- $mo->add_entry($mo->make_entry($strings[$key]['string'], stripslashes($translation)));
222
- }
223
- $mo->add_entry($mo->make_entry('', '')); // empty string translation, just in case
224
-
225
- // clean database
226
- if (!empty($_POST['clean'])) {
227
- $new_mo = new MO();
228
- foreach ($strings as $string)
229
- $new_mo->add_entry($mo->make_entry($string['string'], $mo->translate($string['string'])));
230
- }
231
- $this->mo_export(isset($new_mo) ? $new_mo : $mo, $language);
232
- }
233
- }
234
-
235
- if (WP_List_Table::current_action() == 'delete' && !empty($_REQUEST['strings']) && function_exists('icl_unregister_string')) {
236
- check_admin_referer( 'string-translation', '_wpnonce_string-translation' );
237
- $strings = $this->get_strings();
238
-
239
- foreach ($_REQUEST['strings'] as $key)
240
- icl_unregister_string($strings[$key]['context'], $strings[$key]['name']);
241
- }
242
-
243
- // to refresh the page (possible thanks to the $_GET['noheader']=true)
244
- $url = 'admin.php?page=mlang&tab=strings';
245
- foreach(array('s', 'paged', 'group') as $qv)
246
- $url = empty($_REQUEST[$qv]) ? $url : $url . '&' . $qv . '=' . $_REQUEST[$qv];
247
- wp_redirect($url);
248
- exit;
249
- break;
250
-
251
- case 'options':
252
- check_admin_referer( 'options-lang', '_wpnonce_options-lang' );
253
-
254
- foreach(array('default_lang', 'force_lang', 'rewrite') as $key)
255
- if (isset($_POST[$key]))
256
- $this->options[$key] = $_POST[$key];
257
-
258
- foreach (array('browser', 'hide_default', 'redirect_lang', 'media_support') as $key)
259
- $this->options[$key] = isset($_POST[$key]) ? 1 : 0;
260
-
261
- foreach (array('sync', 'post_types', 'taxonomies') as $key)
262
- $this->options[$key] = empty($_POST[$key]) ? array() : array_keys($_POST[$key], 1);
263
-
264
- update_option('polylang', $this->options);
265
-
266
- // refresh rewrite rules in case rewrite, hide_default, post types or taxonomies options have been modified
267
- // it seems useless to refresh permastruct here
268
- flush_rewrite_rules();
269
-
270
- // fills existing posts & terms with default language
271
- if (isset($_POST['fill_languages']) && $nolang = $this->get_objects_with_no_lang()) {
272
- global $wpdb;
273
- $lang = $this->get_language($this->options['default_lang']);
274
-
275
- $values = array();
276
- foreach ($nolang['posts'] as $post_id)
277
- $values[] = $wpdb->prepare("(%d, %d)", $post_id, $lang->term_taxonomy_id);
278
-
279
- if ($values) {
280
- $wpdb->query("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id) VALUES " . implode(',', $values));
281
- wp_update_term_count($lang->term_taxonomy_id, 'language'); // updating term count is mandatory (thanks to AndyDeGroo)
282
- }
283
-
284
- $values = array();
285
- foreach ($nolang['terms'] as $term_id)
286
- $values[] = $wpdb->prepare("(%d, %s, %d)", $term_id, '_language', $lang->term_id);
287
-
288
- if ($values)
289
- $wpdb->query("INSERT INTO $wpdb->termmeta (term_id, meta_key, meta_value) VALUES " . implode(',', $values));
290
-
291
- }
292
- wp_redirect('admin.php?page=mlang&tab=settings&updated=true'); // updated=true interpreted by WP
293
- exit;
294
- break;
295
-
296
- default:
297
- break;
298
- }
299
-
300
- // prepare the list of tabs
301
- $tabs = array('lang' => __('Languages','polylang'));
302
-
303
- // only if at least one language has been created
304
- if ($listlanguages = $this->get_languages_list()) {
305
- $tabs['strings'] = __('Strings translation','polylang');
306
- $tabs['settings'] = __('Settings', 'polylang');
307
- }
308
-
309
- $active_tab = !empty($_GET['tab']) ? $_GET['tab'] : 'lang';
310
-
311
- switch($active_tab) {
312
- case 'lang':
313
- // prepare the list table of languages
314
- $data = array();
315
- foreach ($listlanguages as $lang)
316
- $data[] = array_merge( (array) $lang, array('flag' => $this->get_flag($lang)) ) ;
317
-
318
- $list_table = new Polylang_Languages_Table();
319
- $list_table->prepare_items($data);
320
-
321
- if (!$action)
322
- $rtl = 0;
323
-
324
- // error messages for data validation
325
- // FIXME no validation for WordPress locale
326
- //$errors[1] = __('Enter a valid WorPress locale', 'polylang');
327
- $errors[2] = __('The language code contains invalid characters', 'polylang');
328
- $errors[3] = __('The language code must be unique', 'polylang');
329
- $errors[4] = __('The language must have a name', 'polylang');
330
- $errors[5] = __('The language was created, but the WordPress language file was not downloaded. Please install it manually.', 'polylang');
331
- break;
332
-
333
- case 'strings':
334
- // get the strings to translate
335
- $data = $this->get_strings();
336
-
337
- $selected = empty($_REQUEST['group']) ? -1 : $_REQUEST['group'];
338
- foreach ($data as $key=>$row) {
339
- $groups[] = $row['context']; // get the groups
340
-
341
- // filter for search string
342
- if (($selected !=-1 && $row['context'] != $selected) || (!empty($_REQUEST['s']) && stripos($row['name'], $_REQUEST['s']) === false && stripos($row['string'], $_REQUEST['s']) === false))
343
- unset ($data[$key]);
344
- }
345
-
346
- $groups = array_unique($groups);
347
-
348
- // load translations
349
- foreach ($listlanguages as $language) {
350
- // filters by language if requested
351
- if (($lg = get_user_meta(get_current_user_id(), 'pll_filter_content', true)) && $language->slug != $lg)
352
- continue;
353
-
354
- $mo = $this->mo_import($language);
355
- foreach ($data as $key=>$row) {
356
- $data[$key]['translations'][$language->name] = $mo->translate($row['string']);
357
- $data[$key]['row'] = $key; // store the row number for convenience
358
- }
359
- }
360
-
361
- $string_table = new Polylang_String_Table($groups, $selected);
362
- $string_table->prepare_items($data);
363
- break;
364
-
365
- case 'settings':
366
- $post_types = array_unique(apply_filters('pll_get_post_types', get_post_types(array('_builtin' => false)), true));
367
- $taxonomies = array_unique(apply_filters('pll_get_taxonomies', array_diff(get_taxonomies(array('_builtin' => false)), array('language')), true));
368
- break;
369
-
370
- default:
371
- break;
372
- }
373
- // displays the page
374
- include(PLL_INC.'/languages-form.php');
375
- }
376
-
377
- // validates data entered when creating or updating a language
378
- function validate_lang($lang = null) {
379
- // validate locale
380
- // FIXME no validation for WordPress locale as it breaks de_DE_Sie
381
- /*
382
- $loc = $_POST['description'];
383
- if ( !preg_match('#^[a-z]{2,3}$#', $loc) && !preg_match('#^[a-z]{2,3}_[A-Z]{2,3}$#', $loc) )
384
- $error = 1;
385
- */
386
-
387
- // validate slug length
388
- if (!preg_match('#^[a-z_-]+$#', $_POST['slug']))
389
- $error = 2;
390
-
391
- // validate slug is unique
392
- if ($this->get_language($_POST['slug']) && ( $lang === null || (isset($lang) && $lang->slug != $_POST['slug'])))
393
- $error = 3;
394
-
395
- // validate name
396
- if ($_POST['name'] == '')
397
- $error = 4;
398
-
399
- return isset($error) ? $error : 0;
400
- }
401
-
402
- // returns unstranslated posts and terms ids
403
- function get_objects_with_no_lang() {
404
- $posts = get_posts(array(
405
- 'numberposts' => -1,
406
- 'nopaging' => true,
407
- 'post_type' => $this->post_types,
408
- 'post_status' => 'any',
409
- 'fields' => 'ids',
410
- 'tax_query' => array(array(
411
- 'taxonomy' => 'language',
412
- 'terms' => get_terms('language', array('fields'=>'ids')),
413
- 'operator' => 'NOT IN'
414
- ))
415
- ));
416
-
417
- global $wpdb;
418
- $terms = get_terms($this->taxonomies, array('get'=>'all', 'fields'=>'ids'));
419
- $tr_terms = $wpdb->get_col("SELECT term_id FROM $wpdb->termmeta WHERE meta_key = '_language'");
420
- $terms = array_unique(array_diff($terms, $tr_terms)); // array_unique to avoid duplicates if a term is in more than one taxonomy
421
-
422
- return apply_filters('pll_get_objects_with_no_lang', empty($posts) && empty($terms) ? false : array('posts' => $posts, 'terms' => $terms));
423
- }
424
-
425
- function &get_strings() {
426
- // WP strings
427
- $this->register_string(__('Site Title'), get_option('blogname'), 'WordPress');
428
- $this->register_string(__('Tagline'), get_option('blogdescription'), 'WordPress');
429
- $this->register_string(__('Date Format'), get_option('date_format'), 'WordPress');
430
- $this->register_string(__('Time Format'), get_option('time_format'), 'WordPress');
431
-
432
- // widgets titles
433
- global $wp_registered_widgets;
434
- $sidebars = wp_get_sidebars_widgets();
435
- foreach ($sidebars as $sidebar => $widgets) {
436
- if ($sidebar == 'wp_inactive_widgets' || !isset($widgets))
437
- continue;
438
-
439
- foreach ($widgets as $widget) {
440
- // nothing can be done if the widget is created using pre WP2.8 API :(
441
- // there is no object, so we can't access it to get the widget options
442
- if (!isset($wp_registered_widgets[$widget]['callback'][0]) || !is_object($wp_registered_widgets[$widget]['callback'][0]) || !method_exists($wp_registered_widgets[$widget]['callback'][0], 'get_settings'))
443
- continue;
444
-
445
- $widget_settings = $wp_registered_widgets[$widget]['callback'][0]->get_settings();
446
- $number = $wp_registered_widgets[$widget]['params'][0]['number'];
447
- // don't enable widget title translation if the widget is visible in only one language or if there is no title
448
- if (empty($this->options['widgets'][$widget]) && isset($widget_settings[$number]['title']) && $title = $widget_settings[$number]['title'])
449
- $this->register_string(__('Widget title', 'polylang'), $title, 'Widget');
450
- }
451
- }
452
-
453
- // allow plugins to modify our list of strings, mainly for use by our Polylang_WPML_Compat class
454
- $this->strings = apply_filters('pll_get_strings', $this->strings);
455
- return $this->strings;
456
- }
457
-
458
- } // class Polylang_Admin
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
include/api.php CHANGED
@@ -2,69 +2,124 @@
2
 
3
  /*
4
  * template tag: displays the language switcher
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  */
6
  function pll_the_languages($args = '') {
7
  global $polylang;
8
- return class_exists('Polylang_Core') && $polylang instanceof Polylang_Core ? $polylang->the_languages($args) : '';
 
 
 
 
9
  }
10
 
11
  /*
12
  * returns the current language
 
 
 
 
 
13
  */
14
- function pll_current_language($args = 'slug') {
15
  global $polylang;
16
- return !(class_exists('Polylang_Core') && $polylang instanceof Polylang_Core && isset($polylang->curlang)) ? false :
17
- ($args == 'name' ? $polylang->curlang->name :
18
- ($args == 'locale' ? $polylang->curlang->description :
19
- $polylang->curlang->slug));
20
  }
21
 
22
  /*
23
  * returns the default language
 
 
 
 
 
24
  */
25
- function pll_default_language($args = 'slug') {
26
  global $polylang;
27
- return !(isset($polylang) && ($options = get_option('polylang')) && isset($options['default_lang']) && $lang = $polylang->get_language($options['default_lang'])) ? false :
28
- ($args == 'name' ? $lang->name :
29
- ($args == 'locale' ? $lang->description :
30
- $lang->slug));
31
  }
32
 
33
  /*
34
  * among the post and its translations, returns the id of the post which is in the language represented by $slug
 
 
 
 
 
 
35
  */
36
- function pll_get_post($post_id, $slug = false) {
37
  global $polylang;
38
- return isset($polylang) && ($slug = $slug ? $slug : pll_current_language()) ? $polylang->get_post($post_id, $slug) : null;
39
  }
40
 
41
  /*
42
  * among the term and its translations, returns the id of the term which is in the language represented by $slug
 
 
 
 
 
 
43
  */
44
- function pll_get_term($term_id, $slug = false) {
45
  global $polylang;
46
- return isset($polylang) && ($slug = $slug ? $slug : pll_current_language()) ? $polylang->get_term($term_id, $slug) : null;
47
  }
48
 
49
  /*
50
  * returns the home url in the current language
 
 
 
 
51
  */
52
  function pll_home_url() {
53
  global $polylang;
54
- return class_exists('Polylang_Core') && $polylang instanceof Polylang_Core ? $polylang->get_home_url() : home_url('/');
55
  }
56
 
57
  /*
58
  * registers a string for translation in the "strings translation" panel
 
 
 
 
 
 
 
59
  */
60
- function pll_register_string($name, $string, $multiline = false) {
61
  global $polylang;
62
- if (class_exists('Polylang_Admin_Base') && $polylang instanceof Polylang_Admin_Base)
63
- $polylang->register_string($name, $string, $multiline);
64
  }
65
 
66
  /*
67
  * translates a string (previously registered with pll_register_string)
 
 
 
 
 
68
  */
69
  function pll__($string) {
70
  return __($string, 'pll_string');
@@ -72,26 +127,37 @@ function pll__($string) {
72
 
73
  /*
74
  * echoes a translated string (previously registered with pll_register_string)
 
 
 
 
75
  */
76
  function pll_e($string) {
77
  _e($string, 'pll_string');
78
  }
79
 
80
  /*
81
- * returns true if Polylang manages languages and translation for this post type
82
- * won't work before the action 'wp_loaded' has been fired
 
 
 
 
83
  */
84
  function pll_is_translated_post_type($post_type) {
85
  global $polylang;
86
- return isset($polylang) && is_array($polylang->post_types) && in_array($post_type, $polylang->post_types);
87
  }
88
 
89
  /*
90
- * returns true if Polylang manages languages and translation for this taxonomy
91
- * won't work before the action 'wp_loaded' has been fired
 
 
 
 
92
  */
93
  function pll_is_translated_taxonomy($tax) {
94
  global $polylang;
95
- return isset($polylang) && is_array($polylang->taxonomies) && in_array($tax, $polylang->taxonomies);
96
  }
97
-
2
 
3
  /*
4
  * template tag: displays the language switcher
5
+ *
6
+ * list of parameters accepted in $args:
7
+ *
8
+ * dropdown => displays a dropdown if set to 1, defaults to 0
9
+ * echo => echoes the the switcher if set to 1 (default)
10
+ * hide_if_empty => hides languages with no posts (or pages) if set to 1 (default)
11
+ * show_flags => shows flags if set to 1, defaults to 0
12
+ * show_names => shows languages names if set to 1 (default)
13
+ * display_names_as => wether to display the language name or code. valid options are 'slug' and 'name'
14
+ * force_home => forces linking to the home page is set to 1, defaults to 0
15
+ * hide_if_no_translation => hides the link if there is no translation if set to 1, defaults to 0
16
+ * hide_current => hides the current language if set to 1, defaults to 0
17
+ * post_id => if not null, link to translations of post defined by post_id, defaults to null
18
+ * raw => set this to true to build your own custom language switcher, defaults to 0
19
+ *
20
+ * @since 0.5
21
+ *
22
+ * @param array $args optional
23
+ * @return null|string|array null if displaying, array if raw is requested, string otherwise
24
  */
25
  function pll_the_languages($args = '') {
26
  global $polylang;
27
+ if ($polylang instanceof PLL_Frontend && !empty($polylang->links)) {
28
+ $switcher = new PLL_Switcher;
29
+ return $switcher->the_languages($polylang->links, $args);
30
+ }
31
+ return '';
32
  }
33
 
34
  /*
35
  * returns the current language
36
+ *
37
+ * @since 0.8.1
38
+ *
39
+ * @param string $field optional the language field to return 'name', 'locale', defaults to 'slug'
40
+ * @return string the requested field for the current language
41
  */
42
+ function pll_current_language($field = 'slug') {
43
  global $polylang;
44
+ return isset($polylang->curlang->$field) ? $polylang->curlang->$field : false;
 
 
 
45
  }
46
 
47
  /*
48
  * returns the default language
49
+ *
50
+ * @since 1.0
51
+ *
52
+ * @param string $field optional the language field to return 'name', 'locale', defaults to 'slug'
53
+ * @return string the requested field for the default language
54
  */
55
+ function pll_default_language($field = 'slug') {
56
  global $polylang;
57
+ return isset($polylang->options['default_lang']) && ($lang = $polylang->model->get_language($polylang->options['default_lang'])) && isset($lang->$field) ? $lang->$field : false;
 
 
 
58
  }
59
 
60
  /*
61
  * among the post and its translations, returns the id of the post which is in the language represented by $slug
62
+ *
63
+ * @since 0.5
64
+ *
65
+ * @param int $post_id post id
66
+ * @param string $slug optional language code, defaults to current language
67
+ * @return int post id of the translation if exists
68
  */
69
+ function pll_get_post($post_id, $slug = '') {
70
  global $polylang;
71
+ return isset($polylang) && ($slug = $slug ? $slug : pll_current_language()) ? $polylang->model->get_post($post_id, $slug) : null;
72
  }
73
 
74
  /*
75
  * among the term and its translations, returns the id of the term which is in the language represented by $slug
76
+ *
77
+ * @since 0.5
78
+ *
79
+ * @param int $term_id term id
80
+ * @param string $slug optional language code, defaults to current language
81
+ * @return int term id of the translation if exists
82
  */
83
+ function pll_get_term($term_id, $slug = '') {
84
  global $polylang;
85
+ return isset($polylang) && ($slug = $slug ? $slug : pll_current_language()) ? $polylang->model->get_term($term_id, $slug) : null;
86
  }
87
 
88
  /*
89
  * returns the home url in the current language
90
+ *
91
+ * @since 0.8
92
+ *
93
+ * @return string
94
  */
95
  function pll_home_url() {
96
  global $polylang;
97
+ return $polylang instanceof PLL_Frontend && !empty($polylang->links) ? $polylang->links->get_home_url() : home_url('/');
98
  }
99
 
100
  /*
101
  * registers a string for translation in the "strings translation" panel
102
+ *
103
+ * @since 0.6
104
+ *
105
+ * @param string $name a unique name for the string
106
+ * @param string $string the string to register
107
+ * @param string $context optional the group in which the string is registered, defaults to 'polylang'
108
+ * @param bool $multiline optional wether the string table should display a multiline textarea or a single line input, defaults to single line
109
  */
110
+ function pll_register_string($name, $string, $context = 'polylang', $multiline = false) {
111
  global $polylang;
112
+ if ($polylang instanceof PLL_Admin && !empty($polylang->settings_page))
113
+ $polylang->settings_page->register_string($name, $string, $context, $multiline);
114
  }
115
 
116
  /*
117
  * translates a string (previously registered with pll_register_string)
118
+ *
119
+ * @since 0.6
120
+ *
121
+ * @param string $string the string to translate
122
+ * @return string the string translation in the current language
123
  */
124
  function pll__($string) {
125
  return __($string, 'pll_string');
127
 
128
  /*
129
  * echoes a translated string (previously registered with pll_register_string)
130
+ *
131
+ * @since 0.6
132
+ *
133
+ * @param string $string the string to translate
134
  */
135
  function pll_e($string) {
136
  _e($string, 'pll_string');
137
  }
138
 
139
  /*
140
+ * returns true if Polylang manages languages and translations for this post type
141
+ *
142
+ * @since 1.0.1
143
+ *
144
+ * @param string post type name
145
+ * @return bool
146
  */
147
  function pll_is_translated_post_type($post_type) {
148
  global $polylang;
149
+ return isset($polylang) && $polylang->model->is_translated_post_type($post_type);
150
  }
151
 
152
  /*
153
+ * returns true if Polylang manages languages and translations for this taxonomy
154
+ *
155
+ * @since 1.0.1
156
+ *
157
+ * @param string taxonomy name
158
+ * @return bool
159
  */
160
  function pll_is_translated_taxonomy($tax) {
161
  global $polylang;
162
+ return isset($polylang) && $polylang->model->is_translated_taxonomy($tax);
163
  }
 
include/base.php CHANGED
@@ -1,384 +1,121 @@
1
  <?php
2
 
3
- // setups basic functions used for admin and frontend
4
- abstract class Polylang_Base {
5
- public $post_types; // post types to filter by language
6
- public $taxonomies; // taxonomies to filter by language
7
- public $is_ajax_on_front;
8
- public $is_admin;
9
-
10
- protected $options;
11
- protected $home;
12
- protected $using_permalinks;
13
- protected $strings = array(); // strings to translate
14
-
15
- // used to cache results
16
- // FIXME use wp_cache ?
17
- private $languages_list = array();
18
- private $language = array();
19
- private $links = array();
20
-
21
- function __construct() {
22
- // avoid loading polylang admin filters for frontend ajax requests if 'pll_load_front' is set (thanks to g100g)
23
- // FIXME should I permit plugins to overwrite this?
24
- $this->is_ajax_on_front = defined('DOING_AJAX') && isset($_REQUEST['pll_load_front']);
25
- $this->is_admin = defined('DOING_CRON') || (is_admin() && !$this->is_ajax_on_front);
26
-
27
- // init options often needed
28
- $this->options = get_option('polylang');
29
- $this->home = get_option('home');
30
- $this->using_permalinks = (bool) get_option('permalink_structure');
31
-
32
- add_action('wp_loaded', array(&$this, 'add_post_types_taxonomies'), 1); // must come after 'init' to be sure that all post types and taxonomies are registered
33
- }
34
-
35
- // init post types and taxonomies to filter by language
36
- function add_post_types_taxonomies() {
37
- $post_types = array('post', 'page');
38
- if (!empty($this->options['media_support']))
39
- $post_types[] = 'attachment';
40
- if (!empty($this->options['post_types']))
41
- $post_types = array_merge($post_types, $this->options['post_types']);
42
- $post_types = apply_filters('pll_get_post_types', array_combine($post_types, $post_types), false);
43
- $this->post_types = array_intersect($post_types, get_post_types()); // only valid registered post types
44
-
45
- $taxonomies = array('category', 'post_tag', 'nav_menu');
46
- if (!empty($this->options['taxonomies']))
47
- $taxonomies = array_merge($taxonomies, $this->options['taxonomies']);
48
- $taxonomies = apply_filters('pll_get_taxonomies', array_combine($taxonomies, $taxonomies), false);
49
- $this->taxonomies = array_intersect($taxonomies, get_taxonomies()); // only valid registered taxonomies
50
- }
51
-
52
- // returns the list of available languages
53
- function get_languages_list($args = array()) {
54
- // although get_terms is cached, it is efficient to add our own cache
55
- // FIXME don't use on admin in case we modify the list of languages!
56
- if (!$this->is_admin && isset($this->languages_list[$cache_key = md5(serialize($args))]))
57
- return $this->languages_list[$cache_key];
58
-
59
- $args = wp_parse_args($args, array('hide_empty' => false, 'orderby'=> 'term_group'));
60
- $languages = get_terms('language', $args);
61
- $languages = empty($languages) || is_wp_error($languages) ? array() : $languages;
62
- return isset($cache_key) ? ($this->languages_list[$cache_key] = $languages) : $languages;
63
- }
64
-
65
- // retrieves the dropdown list of the languages
66
- function dropdown_languages($args = array()) {
67
- $args = apply_filters('pll_dropdown_language_args', $args);
68
- $defaults = array('name' => 'lang_choice', 'class' => '', 'add_options' => array(), 'hide_empty' => false, 'value' => 'slug', 'selected' => '');
69
- extract(wp_parse_args($args, $defaults));
70
-
71
- // sort $add_options by value
72
- uasort($add_options, create_function('$a, $b', "return \$a['value'] > \$b['value'];" ));
73
-
74
- $out = sprintf(
75
- '<select name="%1$s" id="%1$s"%2$s>'."\n",
76
- esc_attr($name),
77
- $class ? ' class="'.esc_attr($class).'"' : ''
78
- );
79
-
80
- foreach ($add_options as $option)
81
- $out .= sprintf(
82
- '<option value="%s">%s</option>'."\n",
83
- esc_attr($option['value']),
84
- esc_html($option['text'])
85
- );
86
-
87
- foreach ($this->get_languages_list($args) as $language) {
88
- $out .= sprintf(
89
- '<option value="%s"%s>%s</option>'."\n",
90
- esc_attr($language->$value),
91
- $language->$value == $selected ? ' selected="selected"' : '',
92
- esc_html($language->name)
93
- );
94
- }
95
- $out .= '</select>'."\n";
96
- return $out;
97
- }
98
-
99
- // returns the language by its id or its slug
100
- // Note: it seems that get_term_by slug is not cached (3.2.1)
101
- function get_language($value) {
102
- if (is_object($value))
103
- return $value;
104
-
105
- if (isset($this->language[$value]))
106
- return $this->language[$value];
107
-
108
- $lang = (is_numeric($value) || (int) $value) ? get_term((int) $value, 'language') :
109
- (is_string($value) ? get_term_by('slug', $value , 'language') : false);
110
-
111
- return !empty($lang) && !is_wp_error($lang) ? ($this->language[$value] = $lang) : false;
112
- }
113
-
114
- // saves translations for posts or terms
115
- // the underscore in '_lang' hides the post meta in the Custom Fields metabox in the Edit Post screen
116
- // $type: either 'post' or 'term'
117
- // $id: post id or term id
118
- // $translations: an associative array of translations with language code as key and translation id as value
119
- function save_translations($type, $id, $translations) {
120
- $lang = call_user_func(array(&$this, 'get_'.$type.'_language'), $id);
121
- if (!$lang)
122
- return;
123
-
124
- if (isset($translations) && is_array($translations)) {
125
- $translations = array_merge(array($lang->slug => $id), $translations);
126
- foreach($translations as $p)
127
- update_metadata($type, (int) $p, '_translations', $translations);
128
- }
129
- }
130
-
131
- // deletes a translation of a post or term
132
- function delete_translation($type, $id) {
133
- $translations = $this->get_translations($type, $id);
134
- if (is_array($translations)) {
135
- $slug = array_search($id, $translations);
136
- unset($translations[$slug]);
137
- foreach($translations as $p)
138
- update_metadata($type, (int) $p, '_translations', $translations);
139
- delete_metadata($type, $id, '_translations');
140
- }
141
- }
142
-
143
- // returns the id of the translation of a post or term
144
- // $type: either 'post' or 'term'
145
- // $id: post id or term id
146
- // $lang: object or slug (in the order of preference latest to avoid)
147
- function get_translation($type, $id, $lang) {
148
- $translations = $this->get_translations($type, $id);
149
- $slug = $this->get_language($lang)->slug;
150
- return isset($translations[$slug]) ? (int) $translations[$slug] : false;
151
- }
152
-
153
- // returns an array of translations of a post or term
154
- function get_translations($type, $id) {
155
- $type = ($type == 'post' || in_array($type, $this->post_types)) ? 'post' : (($type == 'term' || in_array($type, $this->taxonomies)) ? 'term' : false);
156
- // maybe_unserialize due to useless serialization in versions < 0.9
157
- return $type && ($meta = get_metadata($type, $id, '_translations', true)) ? maybe_unserialize($meta) : array();
158
- }
159
-
160
- // store the post language in the database
161
- function set_post_language($post_id, $lang) {
162
- wp_set_post_terms($post_id, $lang ? $this->get_language($lang)->slug : '', 'language' );
163
- }
164
-
165
- // returns the language of a post
166
- function get_post_language($post_id) {
167
- $lang = get_the_terms($post_id, 'language' );
168
- return ($lang) ? reset($lang) : false; // there's only one language per post : first element of the array returned
169
- }
170
-
171
- // among the post and its translations, returns the id of the post which is in $lang
172
- function get_post($post_id, $lang) {
173
- $post_lang = $this->get_post_language($post_id);
174
- if (!$lang || !$post_lang)
175
- return false;
176
-
177
- $lang = $this->get_language($lang);
178
- return $post_lang->term_id == $lang->term_id ? $post_id : $this->get_translation('post', $post_id, $lang);
179
- }
180
-
181
- // store the term language in the database
182
- function set_term_language($term_id, $lang) {
183
- update_metadata('term', $term_id, '_language', $lang ? $this->get_language($lang)->term_id : 0);
184
- }
185
-
186
- // remove the term language in the database
187
- function delete_term_language($term_id) {
188
- delete_metadata('term', $term_id, '_language');
189
- }
190
-
191
- // returns the language of a term
192
- function get_term_language($value, $taxonomy = '') {
193
- if (is_numeric($value))
194
- $term_id = $value;
195
-
196
- elseif (is_string($value) && $taxonomy)
197
- $term_id = get_term_by('slug', $value , $taxonomy)->term_id;
198
-
199
- return empty($term_id) ? false : $this->get_language(get_metadata('term', $term_id, '_language', true));
200
- }
201
-
202
- // among the term and its translations, returns the id of the term which is in $lang
203
- function get_term($term_id, $lang) {
204
- $lg = $this->get_term_language($term_id);
205
- if (!$lang || !$lg)
206
- return false;
207
-
208
- $lang = $this->get_language($lang);
209
- return $lg->term_id == $lang->term_id ? $term_id : $this->get_translation('term', $term_id, $lang);
210
- }
211
-
212
- // adds language information to a link when using pretty permalinks
213
- function add_language_to_link($url, $lang) {
214
- if (empty($lang))
215
- return $url;
216
-
217
- global $wp_rewrite;
218
- if ($this->using_permalinks) {
219
- $base = $this->options['rewrite'] ? '' : 'language/';
220
- $slug = $this->options['default_lang'] == $lang->slug && $this->options['hide_default'] ? '' : $base.$lang->slug.'/';
221
- return esc_url(str_replace($this->home.'/'.$wp_rewrite->root, $this->home.'/'.$wp_rewrite->root.$slug, $url));
222
- }
223
-
224
- // special case for pages which do not accept adding the lang parameter
225
- elseif ('_get_page_link' != current_filter())
226
- return esc_url(add_query_arg( 'lang', $lang->slug, $url ));
227
-
228
- return $url;
229
- }
230
-
231
- // optionally rewrite posts, pages links to filter them by language
232
- // rewrite post format (and optionally categories and post tags) archives links to filter them by language
233
- function add_post_term_link_filters() {
234
- if ($this->options['force_lang'] && $this->using_permalinks) {
235
- foreach (array('post_link', '_get_page_link', 'post_type_link') as $filter)
236
- add_filter($filter, array(&$this, 'post_link'), 10, 2);
237
  }
238
-
239
- add_filter('term_link', array(&$this, 'term_link'), 10, 3);
240
- }
241
-
242
- // modifies post & page links
243
- function post_link($link, $post) {
244
- if (isset($this->links[$link]))
245
- return $this->links[$link];
246
-
247
- if ('post_type_link' == current_filter() && !in_array($post->post_type, $this->post_types))
248
- return $this->links[$link] = $link;
249
-
250
- if ('_get_page_link' == current_filter()) // this filter uses the ID instead of the post object
251
- $post = get_post($post);
252
-
253
- // /!\ when post_status in not "publish", WP does not use pretty permalinks
254
- return $this->links[$link] = $post->post_status != 'publish' ? $link : $this->add_language_to_link($link, $this->get_post_language($post->ID));
255
- }
256
-
257
- // modifies term link
258
- function term_link($link, $term, $tax) {
259
- if (isset($this->links[$link]))
260
- return $this->links[$link];
261
-
262
- return $this->links[$link] = ($tax == 'post_format' || ($this->options['force_lang'] && $this->using_permalinks && in_array($tax, $this->taxonomies))) ?
263
- $this->add_language_to_link($link, $this->get_term_language($term->term_id)) : $link;
264
- }
265
-
266
- // returns the html link to the flag if exists
267
- // $lang: object
268
- function get_flag($lang, $url_only = false) {
269
- if (file_exists(POLYLANG_DIR.($file = '/flags/'.$lang->description.'.png')))
270
- $url = POLYLANG_URL.$file;
271
-
272
- // overwrite with custom flags
273
- // never use custom flags on admin side
274
- if (!$this->is_admin && ( file_exists(PLL_LOCAL_DIR.($file = '/'.$lang->description.'.png')) || file_exists(PLL_LOCAL_DIR.($file = '/'.$lang->description.'.jpg')) ))
275
- $url = PLL_LOCAL_URL.$file;
276
-
277
- return apply_filters('pll_get_flag', empty($url) ? '' :
278
- ($url_only ? $url :
279
- sprintf(
280
- '<img src="%s" title="%s" alt="%s" />',
281
- esc_url($url),
282
- esc_attr(apply_filters('pll_flag_title', $lang->name, $lang->slug, $lang->description)),
283
- esc_attr($lang->name)
284
- )));
285
- }
286
-
287
- // get languages term_ids or term_taxonomy_ids for use in sql queries
288
- function _get_languages_for_sql($lang, $field) {
289
- global $wpdb;
290
- // the query is coming from Polylang and the $lang is an object
291
- if (is_object($lang))
292
- return $field == 'term_id' ? "'" . $lang->$field . "'" : $lang->$field;
293
-
294
- // the query is coming from outside with 'lang' parameter and $lang is a comma separated list of slugs (or an array of slugs)
295
- $languages = is_array($lang) ? $lang : explode(',', $lang);
296
- $languages = "'" . implode("','", array_map( 'sanitize_title_for_query', $languages)) . "'";
297
- $languages = $wpdb->get_col("
298
- SELECT $wpdb->term_taxonomy.$field FROM $wpdb->term_taxonomy
299
- INNER JOIN $wpdb->terms USING (term_id)
300
- WHERE taxonomy = 'language' AND $wpdb->terms.slug IN ($languages)
301
- "); // get ids from slugs
302
-
303
- if ($field == 'term_id')
304
- $languages = array_map(create_function('$v', 'return "\'" . $v . "\'";'), $languages);
305
-
306
- return implode(',', $languages);
307
- }
308
-
309
- // adds clauses to comments query - used in both frontend and admin
310
- function _comments_clauses($clauses, $lang) {
311
- global $wpdb;
312
- if (!empty($lang)) {
313
- // if this clause is not already added by WP
314
- if (!strpos($clauses['join'], '.ID'))
315
- $clauses['join'] .= " JOIN $wpdb->posts ON $wpdb->posts.ID = $wpdb->comments.comment_post_ID";
316
-
317
- $clauses['join'] .= " INNER JOIN $wpdb->term_relationships AS pll_tr ON pll_tr.object_id = ID";
318
- $clauses['where'] .= " AND pll_tr.term_taxonomy_id IN (" . $this->_get_languages_for_sql($lang, 'term_taxonomy_id') . ")";
319
- }
320
- return $clauses;
321
- }
322
-
323
- // adds terms clauses to get_terms - used in both frontend and admin
324
- function _terms_clauses($clauses, $lang) {
325
- global $wpdb;
326
- if (!empty($lang)) {
327
- $clauses['join'] .= " LEFT JOIN $wpdb->termmeta AS pll_tm ON t.term_id = pll_tm.term_id";
328
- $clauses['where'] .= " AND pll_tm.meta_key = '_language' AND pll_tm.meta_value IN (" . $this->_get_languages_for_sql($lang, 'term_id') . ")";
329
- }
330
- return $clauses;
331
- }
332
-
333
- // returns all page ids *not in* language defined by $lang_id
334
- function exclude_pages($lang_id) {
335
- return get_posts(array(
336
- 'lang' => 0, // so this query is not filtered by our pre_get_post filter in core.php
337
- 'numberposts' => -1,
338
- 'nopaging' => true,
339
- 'post_type' => array_intersect(get_post_types(array('hierarchical' => 1)), $this->post_types),
340
- 'fields' => 'ids',
341
- 'tax_query' => array(array(
342
- 'taxonomy' => 'language',
343
- 'terms' => $lang_id,
344
- 'operator' => 'NOT IN'
345
- ))
346
- ));
347
- }
348
-
349
- // export a mo object in options
350
- function mo_export($mo, $lang) {
351
- $strings = array();
352
- foreach ($mo->entries as $entry)
353
- $strings[] = array($entry->singular, $mo->translate($entry->singular));
354
- update_option('polylang_mo'.$lang->term_id, $strings);
355
- }
356
-
357
- // import a mo object from options
358
- function mo_import($lang) {
359
- $mo = new MO();
360
- if ($strings = get_option('polylang_mo'.$lang->term_id)) {
361
- foreach ($strings as $msg)
362
- $mo->add_entry($mo->make_entry($msg[0], $msg[1]));
363
- }
364
- return $mo;
365
- }
366
-
367
- // list the post metas to synchronize
368
- static function list_metas_to_sync() {
369
- return array(
370
- 'taxonomies' => __('Taxonomies', 'polylang'),
371
- 'post_meta' => __('Custom fields', 'polylang'),
372
- 'comment_status' => __('Comment status', 'polylang'),
373
- 'ping_status' => __('Ping status', 'polylang'),
374
- 'sticky_posts' => __('Sticky posts', 'polylang'),
375
- 'post_date' => __('Published date', 'polylang'),
376
- 'post_format' => __('Post format', 'polylang'),
377
- 'post_parent' => __('Page parent', 'polylang'),
378
- '_wp_page_template' => __('Page template', 'polylang'),
379
- 'menu_order' => __('Page order', 'polylang'),
380
- '_thumbnail_id' => __('Featured image', 'polylang'),
381
- );
382
  }
383
 
384
- } //class Polylang_Base
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
2
 
3
+ /*
4
+ * base class for both admin and frontend
5
+ *
6
+ * @since 1.2
7
+ */
8
+ abstract class PLL_Base {
9
+ public $links_model, $model, $options;
10
+
11
+ /*
12
+ * constructor
13
+ *
14
+ * @since 1.2
15
+ *
16
+ * @param object $links_model
17
+ */
18
+ public function __construct(&$links_model) {
19
+ $this->links_model = &$links_model;
20
+ $this->model = &$links_model->model;
21
+ $this->options = &$this->model->options;
22
+
23
+ add_action('widgets_init', array(&$this, 'widgets_init'));
24
+
25
+ // user defined strings translations
26
+ add_action('pll_language_defined', array(&$this, 'load_strings_translations'), 5);
27
+ }
28
+
29
+ /*
30
+ * registers our widgets
31
+ *
32
+ * @since 0.1
33
+ */
34
+ public function widgets_init() {
35
+ register_widget('PLL_Widget_Languages');
36
+
37
+ // overwrites the calendar widget to filter posts by language
38
+ if (!defined('PLL_WIDGET_CALENDAR') || PLL_WIDGET_CALENDAR) {
39
+ unregister_widget('WP_Widget_Calendar');
40
+ register_widget('PLL_Widget_Calendar');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  }
43
 
44
+ /*
45
+ * loads user defined strings translations
46
+ *
47
+ * @since 1.2
48
+ */
49
+ public function load_strings_translations() {
50
+ $mo = new PLL_MO();
51
+ $mo->import_from_db($this->model->get_language(get_locale()));
52
+ $GLOBALS['l10n']['pll_string'] = &$mo;
53
+ }
54
+
55
+ /*
56
+ * some backward compatibility with Polylang < 1.2
57
+ * allows for example to call $polylang->get_languages_list() instead of $polylang->model->get_languages_list()
58
+ * this works but should be slower than the direct call, thus an error is triggered in debug mode
59
+ *
60
+ * @since 1.2
61
+ *
62
+ * @param string $func function name
63
+ * @param array $args function arguments
64
+ */
65
+ public function __call($func, $args) {
66
+ foreach ($this as $prop => &$obj)
67
+ if (is_object($obj) && method_exists($obj, $func)) {
68
+ if (WP_DEBUG) {
69
+ $debug = debug_backtrace();
70
+ trigger_error(sprintf(
71
+ '%1$s was called incorrectly in %3$s on line %4$s: the call to $polylang->%1$s() has been deprecated in Polylang 1.2, use $polylang->%2$s->%1$s() instead.' . "\nError handler",
72
+ $func, $prop, $debug[1]['file'], $debug[1]['line']
73
+ ));
74
+ }
75
+ return call_user_func_array(array($obj, $func), $args);
76
+ }
77
+
78
+ $debug = debug_backtrace();
79
+ trigger_error(sprintf('Call to undefined function $polylang->%1$s() in %2$s on line %3$s' . "\nError handler", $func, $debug[0]['file'], $debug[0]['line']), E_USER_ERROR);
80
+ }
81
+ }
82
+
83
+ /*
84
+ * helpers functions
85
+ */
86
+
87
+
88
+ /*
89
+ * returns all page ids *not in* language defined by $lang_id
90
+ * works for all translated hierarchical post types
91
+ *
92
+ * @since 1.2
93
+ *
94
+ * @param object $lang language object
95
+ * @return array list of page ids to exclude
96
+ */
97
+ function pll_exclude_pages($lang) {
98
+ global $polylang;
99
+
100
+ $args = array(
101
+ 'lang' => 0, // so this query is not filtered by our pre_get_post filter in PLL_Frontend_Filters
102
+ 'numberposts' => -1,
103
+ 'nopaging' => true,
104
+ 'post_type' => array_intersect(get_post_types(array('hierarchical' => 1)), $polylang->model->post_types),
105
+ 'fields' => 'ids',
106
+ 'tax_query' => array(array(
107
+ 'taxonomy' => 'language',
108
+ 'field' => 'term_taxonomy_id', // since WP 3.5
109
+ 'terms' => $lang->term_taxonomy_id,
110
+ 'operator' => 'NOT IN'
111
+ ))
112
+ );
113
+
114
+ // backward compatibility WP < 3.5
115
+ if (version_compare($GLOBALS['wp_version'], '3.5' , '<')) {
116
+ unset($args['tax_query']['field']);
117
+ $args['tax_query']['terms'] = $lang->term_id;
118
+ }
119
+
120
+ return get_posts($args);
121
+ }
include/core.php DELETED
@@ -1,1046 +0,0 @@
1
- <?php
2
- // filters posts and terms by language, rewrites links to include the language, etc...
3
- // used only for frontend
4
- class Polylang_Core extends Polylang_base {
5
- public $curlang; // current language
6
- public $index = 'index.php'; // need this before $wp_rewrite is created, also harcoded in wp-includes/rewrite.php
7
-
8
- private $default_locale;
9
- private $list_textdomains = array(); // all text domains
10
- private $labels; // post types and taxonomies labels to translate
11
- private $first_query = true;
12
-
13
- // options often needed
14
- private $page_for_posts;
15
- private $page_on_front;
16
-
17
- // used to cache results
18
- private $posts = array();
19
- private $translation_url = array();
20
- private $home_urls = array();
21
-
22
- function __construct() {
23
- parent::__construct();
24
-
25
- // init options often needed
26
- $this->page_for_posts = get_option('page_for_posts');
27
- $this->page_on_front = get_option('page_on_front');
28
-
29
- // if no language found, choose the preferred one
30
- add_filter('pll_get_current_language', array(&$this, 'pll_get_current_language'));
31
-
32
- // sets the language of comment
33
- add_action('pre_comment_on_post', array(&$this, 'pre_comment_on_post'));
34
-
35
- // text domain management
36
- if ($this->options['force_lang'] && get_option('permalink_structure')) {
37
- add_action('plugins_loaded', array(&$this, 'setup_theme'), 1);
38
- add_action('wp_loaded', array(&$this, 'add_language_filters'), 5); // after Polylang_Base::add_post_types_taxonomies
39
- }
40
- else {
41
- add_filter('override_load_textdomain', array(&$this, 'mofile'), 10, 3);
42
- add_filter('gettext', array(&$this, 'gettext'), 10, 3);
43
- add_filter('gettext_with_context', array(&$this, 'gettext_with_context'), 10, 4);
44
- }
45
-
46
- add_action('init', array(&$this, 'init'));
47
- foreach (array('wp', 'login_init', 'admin_init') as $filter) // admin_init for ajax thanks to g100g
48
- add_action($filter, array(&$this, 'load_textdomains'), 5); // priority 5 for post types and taxonomies registered in wp hook with default priority
49
-
50
- // filters the WordPress locale
51
- add_filter('locale', array(&$this, 'get_locale'));
52
-
53
- // filters posts according to the language
54
- add_filter('pre_get_posts', array(&$this, 'pre_get_posts'), 5);
55
-
56
- // filter sticky posts by current language
57
- add_filter('option_sticky_posts', array(&$this, 'option_sticky_posts'));
58
-
59
- // translates page for posts and page on front
60
- add_filter('option_page_for_posts', array(&$this, 'translate_page'));
61
- add_filter('option_page_on_front', array(&$this, 'translate_page'));
62
- }
63
-
64
- // set these filters and actions only once the current language has been defined
65
- function add_language_filters() {
66
- if (!$this->get_languages_list() || empty($this->curlang))
67
- return;
68
-
69
- // modifies the language information in rss feed (useful if WP < 3.4)
70
- add_filter('option_rss_language', array(&$this, 'option_rss_language'));
71
-
72
- // filters categories and post tags by language
73
- add_filter('terms_clauses', array(&$this, 'terms_clauses'), 10, 3);
74
-
75
- // meta in the html head section
76
- add_action('wp_head', array(&$this, 'wp_head'));
77
-
78
- // modifies the page link in case the front page is not in the default language
79
- add_filter('page_link', array(&$this, 'page_link'), 10, 2);
80
-
81
- // manages the redirection of the homepage
82
- add_filter('redirect_canonical', array(&$this, 'redirect_canonical'), 10, 2);
83
-
84
- // adds javascript at the end of the document
85
- if (!$this->using_permalinks && (!defined('PLL_SEARCH_FORM_JS') || PLL_SEARCH_FORM_JS))
86
- add_action('wp_footer', array(&$this, 'wp_print_footer_scripts'));
87
-
88
- // adds the language information in the search form
89
- // low priority in case the search form is created using the same filter as described in http://codex.wordpress.org/Function_Reference/get_search_form
90
- add_filter('get_search_form', array(&$this, 'get_search_form'), 99);
91
-
92
- // adds the language information in admin bar search form
93
- remove_action('admin_bar_menu', 'wp_admin_bar_search_menu', 4);
94
- add_action('admin_bar_menu', array(&$this, 'admin_bar_search_menu'), 4);
95
-
96
- // filters the pages according to the current language in wp_list_pages
97
- add_filter('wp_list_pages_excludes', array(&$this, 'wp_list_pages_excludes'));
98
-
99
- // filters the comments according to the current language
100
- add_filter('comments_clauses', array(&$this, 'comments_clauses'), 10, 2);
101
-
102
- // rewrites archives, next and previous post links to filter them by language
103
- foreach (array('getarchives', 'get_previous_post', 'get_next_post') as $filter)
104
- foreach (array('_join', '_where') as $clause)
105
- add_filter($filter.$clause, array(&$this, 'posts'.$clause));
106
-
107
- // rewrites author and date links to filter them by language
108
- foreach (array('feed_link', 'author_link', 'post_type_archive_link', 'year_link', 'month_link', 'day_link') as $filter)
109
- add_filter($filter, array(&$this, 'archive_link'));
110
-
111
- $this->add_post_term_link_filters(); // these filters are in base as they may be used on admin side too
112
-
113
- // filters the widgets according to the current language
114
- add_filter('widget_display_callback', array(&$this, 'widget_display_callback'), 10, 3);
115
-
116
- // strings translation (must be applied before WordPress applies its default formatting filters)
117
- foreach (array('widget_title', 'option_blogname', 'option_blogdescription', 'option_date_format', 'option_time_format') as $filter)
118
- add_filter($filter, 'pll__', 1);
119
-
120
- // translates biography
121
- add_filter('get_user_metadata', array(&$this,'get_user_metadata'), 10, 4);
122
-
123
- // modifies the home url
124
- if (!defined('PLL_FILTER_HOME_URL') || PLL_FILTER_HOME_URL)
125
- add_filter('home_url', array(&$this, 'home_url'), 10, 2);
126
-
127
- // set posts and terms language when created from frontend (ex with P2 theme)
128
- add_action('save_post', array(&$this, 'save_post'), 200, 2);
129
- add_action('create_term', array(&$this, 'save_term'), 10, 3);
130
- add_action('edit_term', array(&$this, 'save_term'), 10, 3);
131
- }
132
-
133
- // returns the language according to browser preference or the default language
134
- function get_preferred_language() {
135
- // check first is the user was already browsing this site
136
- if (isset($_COOKIE[PLL_COOKIE]))
137
- return $this->get_language($_COOKIE[PLL_COOKIE]);
138
-
139
- // compatibility with old cookie removed in 1.0
140
- if (isset($_COOKIE['wordpress_polylang']))
141
- return $this->get_language($_COOKIE['wordpress_polylang']);
142
-
143
- // sets the browsing language according to the browser preferences
144
- // code adapted from http://www.thefutureoftheweb.com/blog/use-accept-language-header
145
- if ($this->options['browser']) {
146
- $accept_langs = array();
147
-
148
- if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
149
- // break up string into pieces (languages and q factors)
150
- preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $lang_parse);
151
-
152
- $k = $lang_parse[1];
153
- $v = $lang_parse[4];
154
-
155
- if ($n = count($k)) {
156
- // set default to 1 for any without q factor
157
- foreach ($v as $key => $val)
158
- if ($val === '') $v[$key] = 1;
159
-
160
- // bubble sort (need a stable sort for Android, so can't use a PHP sort function)
161
- if ($n > 1) {
162
- for ($i = 2; $i <= $n; $i++)
163
- for ($j = 0; $j <= $n-2; $j++)
164
- if ( $v[$j] < $v[$j + 1]) {
165
- // swap values
166
- $temp = $v[$j];
167
- $v[$j] = $v[$j + 1];
168
- $v[$j + 1] = $temp;
169
- //swap keys
170
- $temp = $k[$j];
171
- $k[$j] = $k[$j + 1];
172
- $k[$j + 1] = $temp;
173
- }
174
- }
175
- // NOTE: array_combine => PHP5
176
- $accept_langs = array_combine($k,$v);
177
- }
178
- }
179
-
180
- // looks through sorted list and use first one that matches our language list
181
- $listlanguages = $this->get_languages_list(array('hide_empty' => true)); // hides languages with no post
182
- foreach (array_keys($accept_langs) as $accept_lang) {
183
- foreach ($listlanguages as $language) {
184
- if (stripos($accept_lang, $language->slug) === 0 && !isset($pref_lang)) {
185
- $pref_lang = $language;
186
- }
187
- }
188
- }
189
- } // options['browser']
190
-
191
- // allow plugin to modify the preferred language (useful for example to have a different fallback than the default language)
192
- $slug = apply_filters('pll_preferred_language', isset($pref_lang) ? $pref_lang->slug : false);
193
-
194
- // return default if there is no preferences in the browser or preferences does not match our languages or it is requested not to use the browser preference
195
- return ($lang = $this->get_language($slug)) ? $lang : $this->get_language($this->options['default_lang']);
196
- }
197
-
198
- // returns the current language
199
- function get_current_language() {
200
- if ($this->curlang)
201
- return $this->curlang;
202
-
203
- // no language set for 404
204
- if (is_404() || current_filter() == 'login_init' || (is_attachment() && !$this->options['media_support']))
205
- return $this->get_preferred_language();
206
-
207
- if ($var = get_query_var('lang')) {
208
- $lang = explode(',',$var);
209
- $lang = $this->get_language(reset($lang)); // choose the first queried language
210
- }
211
-
212
- // Ajax thanks to g100g
213
- elseif ($this->is_ajax_on_front)
214
- $lang = empty($_REQUEST['lang']) ? $this->get_preferred_language() : $this->get_language($_REQUEST['lang']);
215
-
216
- elseif ((is_single() || is_page() || (is_attachment() && $this->options['media_support'])) && ( ($var = get_queried_object_id()) || ($var = get_query_var('p')) || ($var = get_query_var('page_id')) || ($var = get_query_var('attachment_id')) ))
217
- $lang = $this->get_post_language($var);
218
-
219
- elseif (isset($this->taxonomies)) {
220
- foreach ($this->taxonomies as $taxonomy) {
221
- if ($var = get_query_var(get_taxonomy($taxonomy)->query_var))
222
- $lang = $this->get_term_language($var, $taxonomy);
223
- }
224
- }
225
- // allows plugins to set the language
226
- return apply_filters('pll_get_current_language', isset($lang) ? $lang : false);
227
- }
228
-
229
- // if no language found, return the preferred one
230
- function pll_get_current_language($lang) {
231
- return !$lang ? $this->get_preferred_language() : $lang;
232
- }
233
-
234
- // sets the language of comment
235
- function pre_comment_on_post($post_id) {
236
- $this->curlang = $this->get_post_language($post_id);
237
- add_filter('page_link', array(&$this, 'page_link'), 10, 2); // useful when posting a comment on static front page in non default language
238
- $this->add_post_term_link_filters(); // useful to redirect to correct post comment url when adding the language to all url
239
- }
240
-
241
- // sets the language when it is always included in the url
242
- function setup_theme() {
243
- // this function was hooked to setup_theme with priority 5 (after Polylang::init)
244
- // has been moved to plugins_loaded, 1 due to WPSEO and to be consistent with WPML
245
- // but $wp_rewrite is not defined yet, so let register our taxonomy partially
246
- register_taxonomy('language', null , array('label' => false, 'query_var'=>'lang', 'rewrite'=>false)); // FIXME put this in base.php ?
247
-
248
- if (!$languages_list = $this->get_languages_list())
249
- return;
250
-
251
- // special case for ajax request
252
- if (isset($_REQUEST['pll_load_front']))
253
- $this->curlang = empty($_REQUEST['lang']) ? $this->get_preferred_language() : $this->get_language($_REQUEST['lang']);
254
-
255
- // standard case
256
- else {
257
- foreach ($languages_list as $language)
258
- $languages[] = $language->slug;
259
-
260
- $root = $this->options['rewrite'] ? '' : 'language/';
261
- $languages = $this->using_permalinks ? '#\/'.$root.'('.implode('|', $languages).')\/#' : '#lang=('.implode('|', $languages).')#';
262
- preg_match($languages, trailingslashit($_SERVER['REQUEST_URI']), $matches);
263
-
264
- // home is resquested
265
- // some PHP setups turn requests for / into /index.php in REQUEST_URI
266
- // thanks to Gonçalo Peres for pointing out the issue with queries unknown to WP
267
- // http://wordpress.org/support/topic/plugin-polylang-language-homepage-redirection-problem-and-solution-but-incomplete?replies=4#post-2729566
268
- if (str_replace('www.', '', home_url('/')) == trailingslashit((is_ssl() ? 'https://' : 'http://').str_replace('www.', '', $_SERVER['HTTP_HOST']).str_replace(array($this->index, '?'.$_SERVER['QUERY_STRING']), array('', ''), $_SERVER['REQUEST_URI']))) {
269
- // take care to post & page preview http://wordpress.org/support/topic/static-frontpage-url-parameter-url-language-information
270
- if (isset($_GET['preview']) && ( (isset($_GET['p']) && $id = $_GET['p']) || (isset($_GET['page_id']) && $id = $_GET['page_id']) ))
271
- $this->curlang = ($lg = $this->get_post_language($id)) ? $lg : $this->get_language($this->options['default_lang']);
272
-
273
- // take care to (unattached) attachments
274
- elseif (isset($_GET['attachment_id']) && $id = $_GET['attachment_id'])
275
- $this->curlang = ($lg = $this->get_post_language($id)) ? $lg : $this->get_preferred_language();
276
-
277
- else
278
- $this->home_requested();
279
- }
280
-
281
- // $matches[1] is the slug of the requested language
282
- elseif ($matches)
283
- $this->curlang = $this->get_language($matches[1]);
284
-
285
- // first test for wp-login, wp-signup, wp-activate
286
- // stripos for case insensitive file systems
287
- elseif (false === stripos($_SERVER['SCRIPT_NAME'], $this->index) || !$this->options['hide_default'])
288
- $this->curlang = $this->get_preferred_language();
289
-
290
- else
291
- $this->curlang = $this->get_language($this->options['default_lang']);
292
-
293
- if ($this->using_permalinks)
294
- add_action('wp', array(&$this, 'check_language_code_in_url')); // before Wordpress redirect_canonical
295
- }
296
-
297
- $GLOBALS['wpdb']->termmeta = $GLOBALS['wpdb']->prefix . 'termmeta'; // registers the termmeta table in wpdb
298
- $GLOBALS['text_direction'] = get_metadata('term', $this->curlang->term_id, '_rtl', true) ? 'rtl' : 'ltr';
299
- $GLOBALS['l10n']['pll_string'] = $this->mo_import($this->curlang);
300
- do_action('pll_language_defined');
301
- }
302
-
303
- // save the default locale before we start any language manipulation
304
- function init() {
305
- $this->default_locale = get_locale();
306
- }
307
-
308
- // returns the locale based on current language
309
- function get_locale($locale) {
310
- return $this->curlang ? $this->curlang->description : $locale;
311
- }
312
-
313
- // modifies the language information in rss feed
314
- function option_rss_language($value) {
315
- return get_bloginfo_rss('language');
316
- }
317
-
318
- // saves all text domains in a table for later usage
319
- function mofile($bool, $domain, $mofile) {
320
- $this->list_textdomains[] = array ('mo' => $mofile, 'domain' => $domain);
321
- return true; // prevents WP loading text domains as we will load them all later
322
- }
323
-
324
- // saves post types and taxonomies labels for a later usage
325
- function gettext($translation, $text, $domain) {
326
- $this->labels[$text] = array('domain' => $domain);
327
- return $translation;
328
- }
329
-
330
- // saves post types and taxonomies labels for a later usage
331
- function gettext_with_context($translation, $text, $context, $domain) {
332
- $this->labels[$text] = array('domain' => $domain, 'context' => $context);
333
- return $translation;
334
- }
335
-
336
- // translates post types and taxonomies labels once the language is known
337
- function translate_labels($type) {
338
- foreach($type->labels as $key=>$label)
339
- if (is_string($label) && isset($this->labels[$label]))
340
- $type->labels->$key = isset($this->labels[$label]['context']) ?
341
- _x($label, $this->labels[$label]['context'], $this->labels[$label]['domain']) :
342
- __($label, $this->labels[$label]['domain']);
343
- }
344
-
345
- // NOTE: I believe there are two ways for a plugin to force the WP language
346
- // as done by xili_language: load text domains and reinitialize wp_locale with the action 'wp'
347
- // as done by qtranslate: define the locale with the action 'plugins_loaded', but in this case, the language must be specified in the url.
348
- function load_textdomains() {
349
- // prevents calling the function 2 times (occurs with theme my login plugin)
350
- static $once = false;
351
- if ($once)
352
- return;
353
- $once = true;
354
-
355
- // our override_load_textdomain filter has done its job. let's remove it before calling load_textdomain
356
- remove_filter('override_load_textdomain', array(&$this, 'mofile'));
357
- remove_filter('gettext', array(&$this, 'gettext'), 10, 3);
358
- remove_filter('gettext_with_context', array(&$this, 'gettext_with_context'), 10, 4);
359
-
360
- // check there is at least one language defined and sets the current language
361
- if ($this->get_languages_list() && $this->curlang = $this->get_current_language()) {
362
- // since 1.0: suppress old cookie which conflicts with quick cache
363
- if (!headers_sent() && isset($_COOKIE['wordpress_polylang']))
364
- setcookie('wordpress_polylang', '', time() - 3600, COOKIEPATH, COOKIE_DOMAIN);
365
-
366
- // set a cookie to remember the language. check headers have not been sent to avoid ugly error
367
- // possibility to set PLL_COOKIE to false will disable cookie although it will break some functionalities
368
- if (!headers_sent() && PLL_COOKIE !== false && (!isset($_COOKIE[PLL_COOKIE]) || $_COOKIE[PLL_COOKIE] != $this->curlang->slug))
369
- setcookie(PLL_COOKIE, $this->curlang->slug, time() + 31536000 /* 1 year */, COOKIEPATH, COOKIE_DOMAIN);
370
-
371
- if (!($this->options['force_lang'] && $this->using_permalinks)) {
372
- // set all our language filters and actions
373
- $this->add_language_filters();
374
-
375
- // now we can load text domains with the right language
376
- $new_locale = get_locale();
377
- foreach ($this->list_textdomains as $textdomain) {
378
- $mo = str_replace("{$this->default_locale}.mo", "{$new_locale}.mo", $textdomain['mo']);
379
- // since WP3.5 themes may store languages files in /wp-content/languages/themes
380
- $mo = file_exists($mo) ? $mo : WP_LANG_DIR . "/themes/{$textdomain['domain']}-{$new_locale}.mo";
381
- load_textdomain($textdomain['domain'], $mo);
382
- }
383
- // reinitializes wp_locale for weekdays and months, as well as for text direction
384
- unset($GLOBALS['wp_locale']);
385
- $GLOBALS['wp_locale'] = new WP_Locale();
386
- $GLOBALS['wp_locale']->text_direction = get_metadata('term', $this->curlang->term_id, '_rtl', true) ? 'rtl' : 'ltr';
387
-
388
- // translate labels of post types and taxonomies
389
- foreach ($GLOBALS['wp_taxonomies'] as $tax)
390
- $this->translate_labels($tax);
391
- foreach ($GLOBALS['wp_post_types'] as $pt)
392
- $this->translate_labels($pt);
393
-
394
- // and finally load user defined strings
395
- $GLOBALS['l10n']['pll_string'] = $this->mo_import($this->curlang);
396
- do_action('pll_language_defined');
397
- }
398
- }
399
-
400
- else {
401
- // can't work so load the text domains with WordPress default language
402
- foreach ($this->list_textdomains as $textdomain)
403
- load_textdomain($textdomain['domain'], $textdomain['mo']);
404
- }
405
-
406
- // free memory
407
- unset($this->list_textdomains);
408
- unset($this->labels);
409
- }
410
-
411
- // special actions when home page is requested
412
- function home_requested($query = false) {
413
- // need this filter to get the right url when adding language code to all urls
414
- if ($this->options['force_lang'] && $this->using_permalinks)
415
- add_filter('_get_page_link', array(&$this, 'post_link'), 10, 2);
416
-
417
- // FIXME cookie wordpress_polylang removed since 1.0
418
- // test referer in case PLL_COOKIE is set to false
419
- // thanks to Ov3rfly http://wordpress.org/support/topic/enhance-feature-when-front-page-is-visited-set-language-according-to-browser
420
- $this->curlang = $this->options['hide_default'] && ((isset($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], $this->home) !== false)) ?
421
- $this->get_language($this->options['default_lang']) :
422
- $this->get_preferred_language(); // sets the language according to browser preference or default language
423
-
424
- if ($query)
425
- $this->_home_requested($query);
426
- else
427
- add_action('setup_theme', array(&$this, '_home_requested')); // delays actions which need $wp_query & $wp_rewrite
428
- }
429
-
430
- // sets the correct query var for home page
431
- // optionally redirects to the home page in the preferred language
432
- function _home_requested($query = false) {
433
- // we are already on the right page
434
- if ($this->options['default_lang'] == $this->curlang->slug && $this->options['hide_default']) {
435
- if ($this->page_on_front && $link_id = $this->get_post($this->page_on_front, $this->curlang))
436
- $query ? $query->set('page_id', $link_id) : set_query_var('page_id', $link_id);
437
- else
438
- $query ? $query->set('lang', $this->curlang->slug) : set_query_var('lang', $this->curlang->slug);
439
- }
440
-
441
- // redirect to the home page in the right language
442
- // test to avoid crash if get_home_url returns something wrong
443
- // FIXME why this happens? http://wordpress.org/support/topic/polylang-crashes-1
444
- // don't redirect if $_POST is not empty as it could break other plugins
445
- // don't forget the query string which may be added by plugins
446
- elseif (is_string($redirect = $this->get_home_url($this->curlang)) && empty($_POST)) {
447
- $redirect = empty($_SERVER['QUERY_STRING']) ? $redirect : $redirect . ($this->using_permalinks ? '?' : '&') . $_SERVER['QUERY_STRING'];
448
- if ($redirect = apply_filters('pll_redirect_home', $redirect)) {
449
- wp_redirect($redirect);
450
- exit;
451
- }
452
- }
453
- }
454
-
455
- // filters posts according to the language
456
- function pre_get_posts($query) {
457
- // don't make anything if no language has been defined yet
458
- // $this->post_types & $this->taxonomies are defined only once the action 'wp_loaded' has been fired
459
- // don't honor suppress_filters as it breaks adjacent_image_link when post_parent == 0
460
- if (!$this->get_languages_list() || !did_action('wp_loaded'))
461
- return;
462
-
463
- $qv = $query->query_vars;
464
-
465
- // do not filter if lang is set to an empty value
466
- if (isset($qv['lang']) && !$qv['lang'])
467
- return;
468
-
469
- // users may want to display content in a different language than the current one by setting it explicitely in the query
470
- if (!$this->first_query && $this->curlang && !empty($qv['lang']))
471
- return;
472
-
473
- $is_post_type = !empty($qv['post_type']) && (
474
- in_array($qv['post_type'], $this->post_types) ||
475
- (is_array($qv['post_type']) && array_intersect($qv['post_type'], $this->post_types))
476
- );
477
-
478
- // don't filters post types not in our list
479
- if (!empty($qv['post_type']) && !$is_post_type)
480
- return;
481
-
482
- $this->first_query = false;
483
-
484
- // special case for wp-signup.php & wp-activate.php
485
- // stripos for case insensitive file systems
486
- if (false === stripos($_SERVER['SCRIPT_NAME'], $GLOBALS['wp_rewrite']->index)) {
487
- $this->curlang = $this->get_preferred_language();
488
- return;
489
- }
490
-
491
- // homepage is requested, let's set the language
492
- // take care to avoid posts page for which is_home = 1
493
- if (!$this->curlang && empty($query->query) && (is_home() || (is_page() && $qv['page_id'] == $this->page_on_front)))
494
- $this->home_requested($query);
495
-
496
- // redirect the language page to the homepage
497
- if ($this->options['redirect_lang'] && is_tax('language') && $this->page_on_front && (count($query->query) == 1 || (is_paged() && count($query->query) == 2))) {
498
- $this->curlang = $this->get_language(get_query_var('lang'));
499
- if ($page_id = $this->get_post($this->page_on_front, $this->get_language(get_query_var('lang')))) {
500
- $query->set('page_id', $page_id);
501
- $query->is_singular = $query->is_page = true;
502
- $query->is_archive = $query->is_tax = false;
503
- unset($query->queried_object); // reset queried object
504
- return;
505
- }
506
- // else : the static front page is not translated
507
- // let's things as is and the list of posts in the current language will be displayed
508
- }
509
-
510
- // sets is_home on translated home page when it displays posts
511
- // is_home must be true on page 2, 3... too
512
- // as well as when searching an empty string: http://wordpress.org/support/topic/plugin-polylang-polylang-breaks-search-in-spun-theme
513
- if (!$this->page_on_front && is_tax('language') && (count($query->query) == 1 || (is_paged() && count($query->query) == 2) || (isset($query->query['s']) && !$query->query['s']))) {
514
- $this->curlang = $this->get_language(get_query_var('lang')); // sets the language now otherwise it will be too late to filter sticky posts !
515
- $query->is_home = true;
516
- $query->is_archive = $query->is_tax = false;
517
- }
518
-
519
- // sets the language for posts page in case the front page displays a static page
520
- if ($this->page_for_posts) {
521
- // If permalinks are used, WordPress does set and use $query->queried_object_id and sets $query->query_vars['page_id'] to 0
522
- // and does set and use $query->query_vars['page_id'] if permalinks are not used :(
523
- if (!empty($qv['pagename']) && isset($query->queried_object_id))
524
- $page_id = $query->queried_object_id;
525
-
526
- elseif (isset($qv['page_id']))
527
- $page_id = $qv['page_id'];
528
-
529
- if (!empty($page_id) && $this->get_post($page_id, $this->get_post_language($this->page_for_posts)) == $this->page_for_posts) {
530
- $this->page_for_posts = $page_id;
531
- $this->curlang = $this->get_post_language($page_id);
532
- $query->set('lang', $this->curlang->slug);
533
- $query->is_singular = $query->is_page = false;
534
- $query->is_home = $query->is_posts_page = true;
535
- }
536
- }
537
-
538
- $is_archive = (count($query->query) == 1 && !empty($qv['paged'])) ||
539
- $query->is_date ||
540
- $query->is_author ||
541
- (!empty($qv['post_type']) && $query->is_post_type_archive && $is_post_type);
542
-
543
- // sets 404 when the language is not set for archives needing the language in the url
544
- if (!$this->options['hide_default'] && !isset($qv['lang']) && !$this->using_permalinks && $is_archive)
545
- $query->set_404();
546
-
547
- // sets the language in case we hide the default language
548
- if ($this->options['hide_default'] && !isset($qv['lang']) && ($is_archive || $query->is_search || (count($query->query) == 1 && !empty($qv['feed'])) ))
549
- $query->set('lang', $this->options['default_lang']);
550
-
551
- // allow filtering recent posts and secondary queries by the current language
552
- // take care not to break queries for non visible post types such as nav_menu_items, attachments...
553
- if (/*$query->is_home && */$this->curlang && (empty($qv['post_type']) || $is_post_type ))
554
- $query->set('lang', $this->curlang->slug);
555
-
556
- // remove pages query when the language is set unless we do a search
557
- // FIXME is only search broken by this ?
558
- if (!empty($qv['lang']) && empty($qv['post_type']) && !$query->is_search)
559
- $query->set('post_type', 'post');
560
-
561
- // unset the is_archive flag for language pages to prevent loading the archive template
562
- // keep archive flag for comment feed otherwise the language filter does not work
563
- if (!empty($qv['lang']) && !is_comment_feed() &&
564
- !is_post_type_archive() && !is_date() && !is_author() && !is_category() && !is_tag() && !is_tax('post_format'))
565
- $query->is_archive = false;
566
-
567
- // unset the is_tax flag for authors pages and post types archives
568
- // FIXME Probably I should do this for other cases
569
- if (!empty($qv['lang']) && (is_author() || is_post_type_archive() || is_date() || is_search())) {
570
- $query->is_tax = false;
571
- unset($query->queried_object);
572
- }
573
-
574
- // sets a language for theme preview
575
- if (is_preview() && is_front_page()) {
576
- $this->curlang = $this->get_current_language();
577
- $query->set('lang', $this->curlang->slug);
578
- }
579
-
580
- // sets the language for an empty string search when hiding the code for default language
581
- // http://wordpress.org/support/topic/search-for-empty-string-in-default-language
582
- if (!$this->curlang && !get_query_var('lang') && $this->options['hide_default'] && isset($query->query['s']) && !$query->query['s'])
583
- $query->set('lang', $this->options['default_lang']);
584
-
585
- // to avoid conflict beetwen taxonomies
586
- if (isset($query->tax_query->queries))
587
- foreach ($query->tax_query->queries as $tax)
588
- if (in_array($tax['taxonomy'], $this->taxonomies))
589
- unset($query->query_vars['lang']);
590
- }
591
-
592
- // filter sticky posts by current language
593
- function option_sticky_posts($posts) {
594
- if ($this->curlang && !empty($posts)) {
595
- foreach ($posts as $key=>$post_id) {
596
- if ($this->get_post_language($post_id)->term_id != $this->curlang->term_id) // FIXME query in foreach
597
- unset($posts[$key]);
598
- }
599
- }
600
- return $posts;
601
- }
602
-
603
- // filters categories and post tags by language when needed
604
- function terms_clauses($clauses, $taxonomies, $args) {
605
- // does nothing except on taxonomies which are filterable
606
- if (!array_intersect($taxonomies, $this->taxonomies))
607
- return $clauses;
608
-
609
- // adds our clauses to filter by language
610
- return $this->_terms_clauses($clauses, isset($args['lang']) ? $args['lang'] : $this->curlang);
611
- }
612
-
613
- // meta in the html head section
614
- function wp_head() {
615
- // outputs references to translated pages (if exists) in the html head section
616
- foreach ($this->get_languages_list() as $language) {
617
- if ($language->slug != $this->curlang->slug && $url = $this->get_translation_url($language))
618
- printf('<link hreflang="%s" href="%s" rel="alternate" />'."\n", esc_attr($language->slug), esc_url($url));
619
- }
620
- }
621
-
622
- // modifies the page link in case the front page is not in the default language
623
- function page_link($link, $id) {
624
- if ($this->options['redirect_lang'] && $this->page_on_front && $lang = $this->get_post_language($id)) {
625
- if (!isset($this->posts[$lang->slug][$this->page_on_front]))
626
- $this->posts[$lang->slug][$this->page_on_front] = $this->get_post($this->page_on_front, $lang);
627
- if ($id == $this->posts[$lang->slug][$this->page_on_front])
628
- return $this->options['hide_default'] && $lang->slug == $this->options['default_lang'] ? trailingslashit($this->home) : get_term_link($lang, 'language');
629
- }
630
-
631
- if ($this->page_on_front && $this->options['hide_default']) {
632
- if (!isset($this->posts[$this->options['default_lang']][$this->page_on_front]))
633
- $this->posts[$this->options['default_lang']][$this->page_on_front] = $this->get_post($this->page_on_front, $this->options['default_lang']);
634
- if ($id == $this->posts[$this->options['default_lang']][$this->page_on_front])
635
- return trailingslashit($this->home);
636
- }
637
-
638
- return _get_page_link($id);
639
- }
640
-
641
- // manages canonical redirection of the homepage when using page on front
642
- function redirect_canonical($redirect_url, $requested_url) {
643
- global $wp_query;
644
- if (is_page() && !is_feed() && isset($wp_query->queried_object) && 'page' == get_option('show_on_front') && $wp_query->queried_object->ID == get_option('page_on_front'))
645
- return $this->options['redirect_lang'] ? $this->get_home_url() : false;
646
- return $redirect_url;
647
- }
648
-
649
- // redirects incoming links to the proper URL when adding the language code to all urls
650
- function check_language_code_in_url() {
651
- if (is_single() || is_page()) {
652
- global $post;
653
- if (isset($post->ID) && in_array($post->post_type, $this->post_types))
654
- $language = $this->get_post_language((int)$post->ID);
655
- }
656
- elseif (is_category() || is_tag() || is_tax()) {
657
- $obj = $GLOBALS['wp_query']->get_queried_object();
658
- if (in_array($obj->taxonomy, $this->taxonomies))
659
- $language = $this->get_term_language((int)$obj->term_id);
660
- }
661
-
662
- // the language is not correctly set so let's redirect to the correct url for this object
663
- if (isset($language) && $language->slug != $this->curlang->slug) {
664
- $root = $this->options['rewrite'] ? '/' : '/language/';
665
- foreach ($this->get_languages_list() as $lang)
666
- $languages[] = $root . $lang->slug;
667
-
668
- $requested_url = (is_ssl() ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . str_replace($languages, '', $_SERVER['REQUEST_URI']);
669
- $redirect_url = $this->add_language_to_link($requested_url, $language);
670
- wp_redirect($redirect_url, 301);
671
- exit;
672
- }
673
- }
674
-
675
- // adds some javascript workaround knowing it's not perfect...
676
- function wp_print_footer_scripts() {
677
- // modifies the search form since filtering get_search_form won't work if the template uses searchform.php (prior to WP 3.6) or the search form is hardcoded
678
- // don't use directly e[0] just in case there is somewhere else an element named 's'
679
- // check before if the hidden input has not already been introduced by get_search_form (FIXME: is there a way to improve this) ?
680
- // thanks to AndyDeGroo for improving the code for compatility with old browsers
681
- // http://wordpress.org/support/topic/development-of-polylang-version-08?replies=6#post-2645559
682
-
683
- $lang = esc_js($this->curlang->slug);
684
- $js = "//<![CDATA[
685
- e = document.getElementsByName('s');
686
- for (i = 0; i < e.length; i++) {
687
- if (e[i].tagName.toUpperCase() == 'INPUT') {
688
- s = e[i].parentNode.parentNode.children;
689
- l = 0;
690
- for (j = 0; j < s.length; j++) {
691
- if (s[j].name == 'lang') {
692
- l = 1;
693
- }
694
- }
695
- if ( l == 0) {
696
- var ih = document.createElement('input');
697
- ih.type = 'hidden';
698
- ih.name = 'lang';
699
- ih.value = '$lang';
700
- e[i].parentNode.appendChild(ih);
701
- }
702
- }
703
- }
704
- //]]>";
705
- echo "<script type='text/javascript'>" .$js. "</script>";
706
- }
707
-
708
- // adds the language information in the search form
709
- // does not work if searchform.php (prior to WP 3.6) is used or if the search form is hardcoded in another template file
710
- function get_search_form($form) {
711
- if ($form) {
712
- if ($this->using_permalinks) {
713
- preg_match('#<form.+>#', $form, $matches);
714
- $old = reset($matches);
715
- $new = str_replace(trailingslashit($this->home), $this->get_home_url($this->curlang, true), $old);
716
- $form = str_replace($old, $new, $form);
717
- }
718
- else
719
- $form = str_replace('</form>', '<input type="hidden" name="lang" value="'.esc_attr($this->curlang->slug).'" /></form>', $form);
720
- }
721
-
722
- return $form;
723
- }
724
-
725
- // rewrites the admin bar search form to include the language
726
- function admin_bar_search_menu($wp_admin_bar) {
727
- $title = sprintf('
728
- <form action="%s" method="get" id="adminbarsearch">
729
- <input class="adminbar-input" name="s" id="adminbar-search" tabindex="10" type="text" value="" maxlength="150" />
730
- <input type="submit" class="adminbar-button" value="%s"/>
731
- %s
732
- </form>',
733
- $this->using_permalinks ? $this->get_home_url($this->curlang, true) : esc_url($this->home),
734
- __('Search'),
735
- $this->using_permalinks ? '' : sprintf('<input type="hidden" name="lang" value="%s" />', esc_attr($this->curlang->slug))
736
- );
737
-
738
- $wp_admin_bar->add_menu(array(
739
- 'parent' => 'top-secondary',
740
- 'id' => 'search',
741
- 'title' => $title,
742
- 'meta' => array('class' => 'admin-bar-search', 'tabindex' => -1)
743
- ));
744
- }
745
-
746
- // excludes pages which are not in the current language for wp_list_pages
747
- // useful for the pages widget
748
- function wp_list_pages_excludes($pages) {
749
- return array_merge($pages, $this->exclude_pages($this->curlang->term_id));
750
- }
751
-
752
- // filters the comments according to the current language mainly for the recent comments widget
753
- function comments_clauses($clauses, $query) {
754
- return $this->_comments_clauses($clauses, isset($query->query_vars['lang']) ? $query->query_vars['lang'] : $this->curlang);
755
- }
756
-
757
- // modifies the sql request for wp_get_archives an get_adjacent_post to filter by the current language
758
- function posts_join($sql) {
759
- global $wpdb;
760
- return $sql . " INNER JOIN $wpdb->term_relationships AS pll_tr ON pll_tr.object_id = ID";
761
- }
762
-
763
- // modifies the sql request for wp_get_archives and get_adjacent_post to filter by the current language
764
- function posts_where($sql) {
765
- global $wpdb;
766
- preg_match("#post_type = '([^']+)'#", $sql, $matches); // find the queried post type
767
- return !empty($matches[1]) && in_array($matches[1], $this->post_types) ? $sql . $wpdb->prepare(" AND pll_tr.term_taxonomy_id = %d", $this->curlang->term_taxonomy_id) : $sql;
768
- }
769
-
770
- // modifies the author and date links to add the language parameter (as well as feed link)
771
- function archive_link($link) {
772
- return $this->add_language_to_link($link, $this->curlang);
773
- }
774
-
775
- // returns the url of the translation (if exists) of the current page
776
- function get_translation_url($language) {
777
- if (isset($this->translation_url[$language->slug]))
778
- return $this->translation_url[$language->slug];
779
-
780
- global $wp_query;
781
- $qv = $wp_query->query;
782
- $hide = $this->options['default_lang'] == $language->slug && $this->options['hide_default'];
783
-
784
- // post and attachment
785
- if (is_single() && ($this->options['media_support'] || !is_attachment()) && $id = $this->get_post($wp_query->queried_object_id, $language))
786
- $url = get_permalink($id);
787
-
788
- // page for posts
789
- elseif (get_option('show_on_front') == 'page' && !empty($wp_query->queried_object_id) && $wp_query->queried_object_id == $this->page_for_posts && ($id = $this->get_post($this->page_for_posts, $language)))
790
- $url = get_permalink($id);
791
-
792
- elseif (is_page() && $id = $this->get_post($wp_query->queried_object_id, $language))
793
- $url = $hide && $id == $this->get_post($this->page_on_front, $language) ? $this->home : get_page_link($id);
794
-
795
- elseif (!is_tax('post_format') && !is_tax('language') && (is_category() || is_tag() || is_tax()) ) {
796
- $term = get_queried_object();
797
- $lang = $this->get_term_language($term->term_id);
798
-
799
- if (!$lang || $language->slug == $lang->slug)
800
- $url = get_term_link($term, $term->taxonomy); // self link
801
- elseif ($link_id = $this->get_translation('term', $term->term_id, $language))
802
- $url = get_term_link(get_term($link_id, $term->taxonomy), $term->taxonomy);
803
- }
804
-
805
- // don't test if there are existing translations before creating the url as it would be very expensive in sql queries
806
- elseif (is_archive()) {
807
- if ($this->using_permalinks) {
808
- $filters = array('author_link', 'post_type_archive_link', 'year_link', 'month_link', 'day_link');
809
-
810
- // prevents filtering links by current language
811
- remove_filter('term_link', array(&$this, 'term_link')); // for post format
812
- foreach ($filters as $filter)
813
- remove_filter($filter, array(&$this, 'archive_link'));
814
-
815
- if (is_author())
816
- $url = $this->add_language_to_link(get_author_posts_url(0, $qv['author_name']), $language);
817
-
818
- elseif (is_year())
819
- $url = $this->add_language_to_link(get_year_link($qv['year']), $language);
820
-
821
- elseif (is_month())
822
- $url = $this->add_language_to_link(get_month_link($qv['year'], $qv['monthnum']), $language);
823
-
824
- elseif (is_day())
825
- $url = $this->add_language_to_link(get_day_link($qv['year'], $qv['monthnum'], $qv['day']), $language);
826
-
827
- elseif (is_post_type_archive())
828
- $url = $this->add_language_to_link(get_post_type_archive_link($qv['post_type']), $language);
829
-
830
- elseif (is_tax('post_format'))
831
- $url = $this->add_language_to_link(get_post_format_link($qv['post_format']), $language);
832
-
833
- // put our language filters again
834
- add_filter('term_link', array(&$this, 'term_link'), 10, 3);
835
- foreach ($filters as $filter)
836
- add_filter($filter, array(&$this, 'archive_link'));
837
- }
838
- else {
839
- $url = $hide ? remove_query_arg('lang') : add_query_arg('lang', $language->slug);
840
- $url = remove_query_arg('paged', $url);
841
- }
842
- }
843
-
844
- elseif (is_search()) {
845
- if ($this->using_permalinks)
846
- $url = $this->add_language_to_link($this->home.'/?'.$_SERVER['QUERY_STRING'], $language);
847
- else {
848
- $url = add_query_arg('lang', $language->slug);
849
- $url = remove_query_arg('paged', $url);
850
- }
851
- }
852
-
853
- elseif (is_home() || is_tax('language') )
854
- $url = $this->get_home_url($language);
855
-
856
- return $this->translation_url[$language->slug] = apply_filters('pll_translation_url', (isset($url) && !is_wp_error($url) ? $url : null), $language->slug);
857
- }
858
-
859
- // filters the widgets according to the current language
860
- // don't display if a language filter is set and this is not the current one
861
- function widget_display_callback($instance, $widget, $args) {
862
- return !empty($this->options['widgets'][$widget->id]) && $this->options['widgets'][$widget->id] != $this->curlang->slug ? false : $instance;
863
- }
864
-
865
- // translates biography
866
- function get_user_metadata($null, $id, $meta_key, $single) {
867
- return $meta_key == 'description' ? get_user_meta($id, 'description_'.$this->curlang->slug, true) : $null;
868
- }
869
-
870
- // translates page for posts and page on front
871
- function translate_page($v) {
872
- // returns the current page if there is no translation to avoid ugly notices
873
- // the fonction is often called so let's store the result
874
- return isset($this->curlang) && $v && (isset($this->posts[$v]) || $this->posts[$v] = $this->get_post($v, $this->curlang)) ? $this->posts[$v] : $v;
875
- }
876
-
877
- // filters the home url to get the right language
878
- function home_url($url, $path) {
879
- if (!(did_action('template_redirect') || did_action('login_init')) || rtrim($url,'/') != $this->home)
880
- return $url;
881
-
882
- $white_list = apply_filters('pll_home_url_white_list', array(
883
- array('file' => get_theme_root()),
884
- array('function' => 'wp_nav_menu'),
885
- array('function' => 'login_footer')
886
- ));
887
-
888
- $black_list = apply_filters('pll_home_url_black_list', array(array('function' => 'get_search_form')));
889
-
890
- foreach (array_reverse(debug_backtrace(/*!DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS*/)) as $trace) {
891
- // searchform.php is not passed through get_search_form filter prior to WP 3.6
892
- if (isset($trace['file']) && strpos($trace['file'], 'searchform.php'))
893
- return $this->using_permalinks && version_compare($GLOBALS['wp_version'], '3.6', '<') ? $this->get_home_url($this->curlang, true) : $url;
894
-
895
- foreach ($black_list as $v) {
896
- if ((isset($trace['file'], $v['file']) && strpos($trace['file'], $v['file']) !== false) || (isset($trace['function'], $v['function']) && $trace['function'] == $v['function']))
897
- return $url;
898
- }
899
-
900
- foreach ($white_list as $v) {
901
- if ((isset($trace['function'], $v['function']) && $trace['function'] == $v['function']) ||
902
- (isset($trace['file'], $v['file']) && strpos($trace['file'], $v['file']) !== false && in_array($trace['function'], array('home_url', 'get_home_url', 'bloginfo', 'get_bloginfo'))))
903
- $ok = true;
904
- }
905
- }
906
-
907
- return empty($ok) ? $url : (empty($path) ? rtrim($this->get_home_url($this->curlang), '/') : $this->get_home_url($this->curlang));
908
- }
909
-
910
- // returns the home url in the right language
911
- function get_home_url($language = '', $is_search = false) {
912
- if (empty($language))
913
- $language = $this->curlang;
914
-
915
- if (isset($this->home_urls[$language->slug][$is_search]))
916
- return $this->home_urls[$language->slug][$is_search];
917
-
918
- if ($this->options['default_lang'] == $language->slug && $this->options['hide_default'])
919
- return $this->home_urls[$language->slug][$is_search] = trailingslashit($this->home);
920
-
921
- // a static page is used as front page : /!\ don't use get_page_link to avoid infinite loop
922
- // don't use this for search form
923
- if (!$is_search && $this->page_on_front && $id = $this->get_post($this->page_on_front, $language))
924
- return $this->home_urls[$language->slug][$is_search] = $this->page_link('', $id);
925
-
926
- $link = get_term_link($language, 'language');
927
- // add a trailing slash as done by WP on homepage (otherwise could break the search form when the permalink structure does not include one)
928
- // only for pretty permalinks
929
- return $this->home_urls[$language->slug][$is_search] = $this->using_permalinks ? trailingslashit($link) : $link;
930
- }
931
-
932
- // called when a post (or page) is saved, published or updated
933
- // does nothing except on post types which are filterable
934
- function save_post($post_id, $post) {
935
- if (in_array($post->post_type, $this->post_types)) {
936
- if (isset($_REQUEST['lang']))
937
- $this->set_post_language($post_id, $_REQUEST['lang']);
938
-
939
- elseif ($this->get_post_language($post_id))
940
- {}
941
-
942
- elseif (($parent_id = wp_get_post_parent_id($post_id)) && $parent_lang = $this->get_post_language($parent_id))
943
- $this->set_post_language($post_id, $parent_lang);
944
-
945
- else
946
- $this->set_post_language($post_id, $this->get_current_language());
947
- }
948
- }
949
-
950
- // called when a category or post tag is created or edited
951
- // does nothing except on taxonomies which are filterable
952
- function save_term($term_id, $tt_id, $taxonomy) {
953
- if (in_array($taxonomy, $this->taxonomies)) {
954
- if (isset($_REQUEST['lang']))
955
- $this->set_term_language($term_id, $_REQUEST['lang']);
956
-
957
- elseif ($this->get_term_language($term_id))
958
- {}
959
-
960
- elseif (($term = get_term($term_id, $taxonomy)) && !empty($term->parent) && $parent_lang = $this->get_term_language($term->parent))
961
- $this->set_term_language($term_id, $parent_lang);
962
-
963
- else
964
- $this->set_term_language($term_id, $this->get_current_language());
965
- }
966
- }
967
-
968
- // displays (or returns) the language switcher
969
- function the_languages($args = '') {
970
- $defaults = array(
971
- 'dropdown' => 0, // display as list and not as dropdown
972
- 'echo' => 1, // echoes the list
973
- 'hide_if_empty' => 1, // hides languages with no posts (or pages)
974
- 'menu' => 0, // not for nav menu (this argument is deprecated since v1.1.1)
975
- 'show_flags' => 0, // don't show flags
976
- 'show_names' => 1, // show language names
977
- 'display_names_as' => 'name', // valid options are slug and name
978
- 'force_home' => 0, // tries to find a translation
979
- 'hide_if_no_translation' => 0, // don't hide the link if there is no translation
980
- 'hide_current' => 0, // don't hide current language
981
- 'post_id' => null, // if not null, link to translations of post defined by post_id
982
- 'raw' => 0, // set this to true to build your own custom language switcher
983
- );
984
- extract(wp_parse_args($args, $defaults));
985
-
986
- if ($dropdown)
987
- $output = $this->dropdown_languages(array('hide_empty' => $hide_if_empty, 'selected' => $this->curlang->slug));
988
-
989
- else {
990
- $output = !empty($raw) ? array() : '';
991
-
992
- foreach ($this->get_languages_list(array('hide_empty' => $hide_if_empty)) as $language) {
993
- $id = (int) $language->term_id;
994
- $slug = $language->slug;
995
-
996
- // hide current language
997
- if ($this->curlang->term_id == $id && $hide_current)
998
- continue;
999
-
1000
- $url = $post_id !== null && ($tr_id = $this->get_post($post_id, $language)) ? get_permalink($tr_id) :
1001
- ($post_id === null && !$force_home ? $this->get_translation_url($language) : null);
1002
-
1003
- $no_translation = empty($url); // keep this for future
1004
- $url = apply_filters('pll_the_language_link', $url, $slug, $language->description);
1005
-
1006
- // hide if no translation exists
1007
- if (empty($url) && $hide_if_no_translation)
1008
- continue;
1009
-
1010
- $url = empty($url) ? $this->get_home_url($language) : $url ; // if the page is not translated, link to the home page
1011
-
1012
- $name = $show_names || !$show_flags || $raw ? esc_html($display_names_as == 'slug' ? $slug : $language->name) : '';
1013
- $flag = $show_flags || $raw ? $this->get_flag($language, $raw && !$show_flags) : '';
1014
- $current_lang = $id == $this->curlang->term_id;
1015
-
1016
- // classes
1017
- $classes = array('lang-item', 'lang-item-' . esc_attr($id), 'lang-item-' . esc_attr($slug));
1018
- if ($no_translation)
1019
- $classes[] = 'no-translation';
1020
- if ($current_lang)
1021
- $classes[] = 'current-lang';
1022
-
1023
- if (!empty($raw))
1024
- $output[] = compact('id', 'slug', 'name', 'url', 'flag', 'current_lang', 'no_translation', 'classes');
1025
-
1026
- else {
1027
- if ($menu)
1028
- $classes[] = 'menu-item'; // backward compatibility < 1.1
1029
-
1030
- $output .= sprintf('<li class="%s"><a hreflang="%s" href="%s">%s</a></li>'."\n",
1031
- implode(' ', $classes),
1032
- esc_attr($slug),
1033
- esc_url($url),
1034
- $show_flags && $show_names ? $flag.'&nbsp;'.$name : $flag.$name
1035
- );
1036
- }
1037
- }
1038
- }
1039
-
1040
- $output = apply_filters('pll_the_languages', $output, $args);
1041
-
1042
- if (!$echo || !empty($raw))
1043
- return $output;
1044
- echo $output;
1045
- }
1046
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
include/language.php ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * a language object is made of two terms in 'language' and 'term_language' taxonomies
5
+ * manipulating only one object per language instead of two terms should make things easier
6
+ *
7
+ * properties:
8
+ * term_id => id of term in 'language' taxonomy
9
+ * name => language name. Ex: English
10
+ * slug => language code used in url. Ex: en
11
+ * term_group => order of the language when displayed in a list of languages
12
+ * term_taxonomy_id => term taxonomy id in 'language' taxonomy
13
+ * taxonomy => 'language'
14
+ * description => language locale for backward compatibility
15
+ * parent => 0 / not used
16
+ * count => number of posts and pages in that language
17
+ * tl_term_id => id of the term in 'term_language' taxonomy
18
+ * tl_term_taxonomy_id => term taxonomy id in 'term_language' taxonomy
19
+ * tl_count => number of terms in that language (not used by Polylang)
20
+ * locale => language locale. Ex: en_US
21
+ * is_rtl => 1 if the language is rtl
22
+ * flag_url => url of the flag
23
+ * flag => html img of the flag
24
+ *
25
+ * @since 1.2
26
+ */
27
+ class PLL_Language {
28
+
29
+ /*
30
+ * constructor: builds a language object given its two corresponding terms in language and term_language taxonomies
31
+ *
32
+ * @since 1.2
33
+ *
34
+ * @param object $language 'language' term
35
+ * @param object $term_language corresponding 'term_language' term
36
+ */
37
+ public function __construct($language, $term_language) {
38
+ foreach ($language as $prop => $value)
39
+ $this->$prop = in_array($prop, array('term_id', 'term_taxonomy_id', 'count')) ? (int) $language->$prop : $language->$prop;
40
+
41
+ // although it would be convenient here, don't assume the term is shared between taxonomies as it may not be the case in future
42
+ // http://make.wordpress.org/core/2013/07/28/potential-roadmap-for-taxonomy-meta-and-post-relationships/
43
+ $this->tl_term_id = (int) $term_language->term_id;
44
+ $this->tl_term_taxonomy_id = (int) $term_language->term_taxonomy_id;
45
+ $this->tl_count = (int) $term_language->count;
46
+
47
+ $description = maybe_unserialize($language->description);
48
+ $this->locale = $description['locale'];
49
+ $this->is_rtl = $description['rtl'];
50
+
51
+ $this->description = &$this->locale; // backward compatibility with Polylang < 1.2
52
+ }
53
+
54
+ /*
55
+ * sets flag_url and flag properties
56
+ *
57
+ * @since 1.2
58
+ */
59
+ public function set_flag() {
60
+ if (file_exists(POLYLANG_DIR.($file = '/flags/'.$this->locale.'.png')))
61
+ $url = POLYLANG_URL.$file;
62
+
63
+ // overwrite with custom flags
64
+ // never use custom flags on admin side
65
+ if (!PLL_ADMIN && ( file_exists(PLL_LOCAL_DIR.($file = '/'.$this->locale.'.png')) || file_exists(PLL_LOCAL_DIR.($file = '/'.$this->locale.'.jpg')) ))
66
+ $url = PLL_LOCAL_URL.$file;
67
+
68
+ $this->flag_url = empty($url) ? '' : esc_url($url);
69
+
70
+ $this->flag = apply_filters('pll_get_flag', empty($this->flag_url) ? '' :
71
+ sprintf(
72
+ '<img src="%s" title="%s" alt="%s" />',
73
+ esc_url($this->flag_url),
74
+ esc_attr(apply_filters('pll_flag_title', $this->name, $this->slug, $this->locale)),
75
+ esc_attr($this->name)
76
+ ));
77
+ }
78
+
79
+ /*
80
+ * updates post and term count
81
+ *
82
+ * @since 1.2
83
+ */
84
+ public function update_count() {
85
+ wp_update_term_count($this->term_taxonomy_id, 'language'); // posts count
86
+ wp_update_term_count($this->tl_term_taxonomy_id, 'term_language'); // terms count
87
+ }
88
+ }
include/links-default.php ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * links model for default permalinks
5
+ * for example mysite.com/?somevar=something&lang=en
6
+ * implements the "links_model interface"
7
+ *
8
+ * @since 1.2
9
+ */
10
+ class PLL_Links_Default {
11
+ public $model;
12
+
13
+ /*
14
+ * constructor
15
+ *
16
+ * @since 1.2
17
+ *
18
+ * @param object $model PLL_Model instance
19
+ */
20
+ public function __construct(&$model) {
21
+ $this->model = &$model;
22
+ }
23
+
24
+ /*
25
+ * adds language information to an url
26
+ * links_model interface
27
+ *
28
+ * @since 1.2
29
+ *
30
+ * @param string $url url to modify
31
+ * @param object $lang language
32
+ * @return string modified url
33
+ */
34
+ public function add_language_to_link($url, $lang) {
35
+ return !empty($lang) && '_get_page_link' != current_filter() ? add_query_arg( 'lang', $lang->slug, $url ) : $url;
36
+ }
37
+
38
+ /*
39
+ * removes the language information from an url
40
+ * links_model interface
41
+ *
42
+ * @since 1.2
43
+ *
44
+ * @param string $url url to modify
45
+ * @return string modified url
46
+ */
47
+ public function remove_language_from_link($url) {
48
+ return remove_query_arg('lang', $url);
49
+ }
50
+
51
+ /*
52
+ * returns the link to the first page
53
+ * links_model interface
54
+ *
55
+ * @since 1.2
56
+ *
57
+ * @param string $url url to modify
58
+ * @return string modified url
59
+ */
60
+ function remove_paged_from_link($url) {
61
+ return remove_query_arg('paged', $url);
62
+ }
63
+
64
+ /*
65
+ * gets the language slug from the url if present
66
+ * links_model interface
67
+ *
68
+ * @since 1.2
69
+ *
70
+ * @return string language slug
71
+ */
72
+ public function get_language_from_url() {
73
+ $pattern = '#lang=('.implode('|', $this->model->get_languages_list(array('fields' => 'slug'))).')#';
74
+ return preg_match($pattern, trailingslashit($_SERVER['REQUEST_URI']), $matches) ? $matches[1] : ''; // $matches[1] is the slug of the requested language
75
+ }
76
+ }
include/links-directory.php ADDED
@@ -0,0 +1,215 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * links model for use when the language code is added in url as a directory
5
+ * for example mysite.com/en/something
6
+ * implements the "links_model interface"
7
+ *
8
+ * @since 1.2
9
+ */
10
+ class PLL_Links_Directory {
11
+ public $model, $options;
12
+ protected $home, $rewrite_rules = array();
13
+ protected $always_rewrite = array('date', 'root', 'comments', 'search', 'author', 'post_format', 'language');
14
+
15
+ /*
16
+ * constructor
17
+ *
18
+ * @since 1.2
19
+ *
20
+ * @param object $model PLL_Model instance
21
+ */
22
+ public function __construct($model) {
23
+ $this->model = &$model;
24
+ $this->options = &$model->options;
25
+ $this->home = get_option('home');
26
+
27
+ add_action ('setup_theme', array(&$this, 'add_permastruct'));
28
+
29
+ // make sure to prepare rewrite rules when flushing
30
+ add_action ('pre_option_rewrite_rules', array(&$this, 'prepare_rewrite_rules'));
31
+ }
32
+
33
+ /*
34
+ * adds the language code in url
35
+ * links_model interface
36
+ *
37
+ * @since 1.2
38
+ *
39
+ * @param string $url url to modify
40
+ * @param object $lang language
41
+ * @return string modified url
42
+ */
43
+ public function add_language_to_link($url, $lang) {
44
+ if (!empty($lang)) {
45
+ global $wp_rewrite;
46
+
47
+ $base = $this->options['rewrite'] ? '' : 'language/';
48
+ $slug = $this->options['default_lang'] == $lang->slug && $this->options['hide_default'] ? '' : $base.$lang->slug.'/';
49
+ return str_replace($this->home.'/'.$wp_rewrite->root, $this->home.'/'.$wp_rewrite->root.$slug, $url);
50
+ }
51
+ return $url;
52
+ }
53
+
54
+ /*
55
+ * returns the url without language code
56
+ * links_model interface
57
+ *
58
+ * @since 1.2
59
+ *
60
+ * @param string $url url to modify
61
+ * @return string modified url
62
+ */
63
+ function remove_language_from_link($url) {
64
+ foreach ($this->model->get_languages_list() as $language)
65
+ if (!$this->options['hide_default'] || $this->options['default_lang'] != $language->slug)
66
+ $languages[] = $language->slug;
67
+
68
+ if (!empty($languages)) {
69
+ global $wp_rewrite;
70
+ $pattern = '#' . ($this->options['rewrite'] ? '' : 'language\/') . '('.implode('|', $languages).')\/#';
71
+ $url = preg_replace($pattern, $wp_rewrite->root, $url);
72
+ }
73
+ return $url;
74
+ }
75
+
76
+ /*
77
+ * returns the link to the first page
78
+ * links_model interface
79
+ *
80
+ * @since 1.2
81
+ *
82
+ * @param string $url url to modify
83
+ * @return string modified url
84
+ */
85
+ function remove_paged_from_link($url) {
86
+ return preg_replace('#\/page\/[0-9]+\/#', '/', $url);
87
+ }
88
+
89
+ /*
90
+ * returns the language based on language code in url
91
+ * links_model interface
92
+ *
93
+ * @since 1.2
94
+ *
95
+ * @return string language slug
96
+ */
97
+ public function get_language_from_url() {
98
+ $root = $this->options['rewrite'] ? '' : 'language/';
99
+ $pattern = '#\/'.$root.'('.implode('|', $this->model->get_languages_list(array('fields' => 'slug'))).')\/#';
100
+ return preg_match($pattern, trailingslashit($_SERVER['REQUEST_URI']), $matches) ? $matches[1] : ''; // $matches[1] is the slug of the requested language
101
+ }
102
+
103
+ /*
104
+ * optionaly removes 'language' in permalinks so that we get http://www.myblog/en/ instead of http://www.myblog/language/en/
105
+ *
106
+ * @since 1.2
107
+ */
108
+ function add_permastruct() {
109
+ // language information always in front of the uri ('with_front' => false)
110
+ // the 3rd parameter structure has been modified in WP 3.4
111
+ // backward compatibility WP < 3.4
112
+ add_permastruct('language', $this->options['rewrite'] ? '%language%' : 'language/%language%',
113
+ version_compare($GLOBALS['wp_version'], '3.4' , '<') ? false : array('with_front' => false));
114
+ }
115
+
116
+ /*
117
+ * prepares rewrite rules filters
118
+ *
119
+ * @since 0.8.1
120
+ *
121
+ * @param array $pre not used
122
+ * @return unmodified $pre
123
+ */
124
+ public function prepare_rewrite_rules($pre) {
125
+ //clean filters which could have been set in a previous call (may occur when changing Polylang settings)
126
+ foreach ($this->rewrite_rules as $type)
127
+ remove_filter($type . '_rewrite_rules', array(&$this, 'rewrite_rules'));
128
+
129
+ // don't modify the rules if there is no languages created yet
130
+ if ($this->model->get_languages_list()) {
131
+ // make sure we have the right post types and taxonomies
132
+ $types = array_values(array_merge($this->model->get_translated_post_types(), $this->model->get_translated_taxonomies()));
133
+ $types = array_merge($this->always_rewrite, $types);
134
+ $this->rewrite_rules = apply_filters('pll_rewrite_rules', $types); // allow plugins to add rewrite rules to the language filter
135
+
136
+ foreach ($this->rewrite_rules as $type)
137
+ add_filter($type . '_rewrite_rules', array(&$this, 'rewrite_rules'));
138
+
139
+ add_filter('rewrite_rules_array', array(&$this, 'rewrite_rules')); // needed for post type archives
140
+ }
141
+ return $pre;
142
+ }
143
+
144
+ /*
145
+ * the rewrite rules !
146
+ * always make sure the default language is at the end in case the language information is hidden for default language
147
+ * thanks to brbrbr http://wordpress.org/support/topic/plugin-polylang-rewrite-rules-not-correct
148
+ *
149
+ * @since 0.8.1
150
+ *
151
+ * @param array $rules rewrite rules
152
+ * @return array modified rewrite rules
153
+ */
154
+ public function rewrite_rules($rules) {
155
+ $filter = str_replace('_rewrite_rules', '', current_filter());
156
+
157
+ // suppress the rules created by WordPress for our taxonomy
158
+ if ($filter == 'language')
159
+ return array();
160
+
161
+ global $wp_rewrite;
162
+ $newrules = array();
163
+
164
+ $languages = $this->model->get_languages_list(array('fields' => 'slug'));
165
+ if ($this->options['hide_default'])
166
+ $languages = array_diff($languages, array($this->options['default_lang']));
167
+
168
+ if (!empty($languages))
169
+ $slug = $wp_rewrite->root . ($this->options['rewrite'] ? '' : 'language/') . '('.implode('|', $languages).')/';
170
+
171
+ // for custom post type archives
172
+ $cpts = array_intersect($this->model->post_types, get_post_types(array('_builtin' => false)));
173
+ $cpts = $cpts ? '#post_type=('.implode('|', $cpts).')#' : '';
174
+
175
+ foreach ($rules as $key => $rule) {
176
+ // we don't need the lang parameter for post types and taxonomies
177
+ // moreover adding it would create issues for pages and taxonomies
178
+ if ($this->options['force_lang'] && in_array($filter, array_merge($this->model->post_types, $this->model->taxonomies))) {
179
+ if (isset($slug))
180
+ $newrules[$slug.str_replace($wp_rewrite->root, '', $key)] = str_replace(
181
+ array('[8]', '[7]', '[6]', '[5]', '[4]', '[3]', '[2]', '[1]'),
182
+ array('[9]', '[8]', '[7]', '[6]', '[5]', '[4]', '[3]', '[2]'),
183
+ $rule
184
+ ); // hopefully it is sufficient!
185
+
186
+ if ($this->options['hide_default']) {
187
+ $newrules[$key] = $rules[$key];
188
+ // unset only if we hide the code for the default language as check_language_code_in_url will do its job in other cases
189
+ unset($rules[$key]);
190
+ }
191
+ }
192
+
193
+ // rewrite rules filtered by language
194
+ elseif (in_array($filter, $this->always_rewrite) || ($cpts && preg_match($cpts, $rule) && !strpos($rule, 'name=')) || ($filter != 'rewrite_rules_array' && $this->options['force_lang'])) {
195
+ if (isset($slug))
196
+ $newrules[$slug.str_replace($wp_rewrite->root, '', $key)] = str_replace(
197
+ array('[8]', '[7]', '[6]', '[5]', '[4]', '[3]', '[2]', '[1]', '?'),
198
+ array('[9]', '[8]', '[7]', '[6]', '[5]', '[4]', '[3]', '[2]', '?lang=$matches[1]&'),
199
+ $rule
200
+ ); // should be enough!
201
+
202
+ if ($this->options['hide_default'])
203
+ $newrules[$key] = str_replace('?', '?lang='.$this->options['default_lang'].'&', $rule);
204
+
205
+ unset($rules[$key]); // now useless
206
+ }
207
+ }
208
+
209
+ // the home rewrite rule
210
+ if ($filter == 'root' && isset($slug))
211
+ $newrules[$slug.'?$'] = $wp_rewrite->index.'?lang=$matches[1]';
212
+
213
+ return $newrules + $rules;
214
+ }
215
+ }
include/links-domain.php ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * links model for use when using one domain per language
5
+ * for example mysite.com/sth and mysite.fr/qqch
6
+ * implements the "links_model interface"
7
+ *
8
+ * @since 1.2
9
+ */
10
+ class PLL_Links_Domain {
11
+ public $model, $options;
12
+ protected $home;
13
+
14
+ /*
15
+ * constructor
16
+ *
17
+ * @since 1.2
18
+ *
19
+ * @param object $model PLL_Model instance
20
+ */
21
+ public function __construct($model) {
22
+ $this->model = &$model;
23
+ $this->options = &$model->options;
24
+
25
+ $this->home = get_option('home');
26
+
27
+ // returns the correct language link
28
+ add_filter('term_link', array(&$this, 'term_link'), 10, 3);
29
+ }
30
+
31
+ /*
32
+ * adds the language code in url
33
+ * links_model interface
34
+ *
35
+ * @since 1.2
36
+ *
37
+ * @param string $url url to modify
38
+ * @param object $lang language
39
+ * @return string modified url
40
+ */
41
+ public function add_language_to_link($url, $lang) {
42
+ if (!empty($lang))
43
+ $url = $this->options['default_lang'] == $lang->slug ? $url : str_replace($this->home, $this->options['domains'][$lang->slug], $url);
44
+ return $url;
45
+ }
46
+
47
+ /*
48
+ * returns the url without language code
49
+ * links_model interface
50
+ *
51
+ * @since 1.2
52
+ *
53
+ * @param string $url url to modify
54
+ * @return string modified url
55
+ */
56
+ public function remove_language_from_link($url) {
57
+ if (!empty($this->options['domains']))
58
+ $url = preg_replace('#^('.implode('|', $this->options['domains']).')#', $this->home , $url);
59
+ return $url;
60
+ }
61
+
62
+ /*
63
+ * returns the link to the first page
64
+ * links_model interface
65
+ *
66
+ * @since 1.2
67
+ *
68
+ * @param string $url url to modify
69
+ * @return string modified url
70
+ */
71
+ public function remove_paged_from_link($url) {
72
+ return preg_replace('#\/page\/[0-9]+\/#', '/', $url);
73
+ }
74
+
75
+ /*
76
+ * returns the language based on language code in url
77
+ * links_model interface
78
+ *
79
+ * @since 1.2
80
+ *
81
+ * @return string language slug
82
+ */
83
+ public function get_language_from_url() {
84
+ foreach ($this->options['domains'] as $key => $domain)
85
+ if ($domain == (is_ssl() ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'])
86
+ return $key;
87
+ }
88
+
89
+ /*
90
+ * returns the correct language link
91
+ *
92
+ * @since 1.2
93
+ *
94
+ * @param string $link term link
95
+ * @param object $term term
96
+ * @param string $tax taxonomy name
97
+ * @return string language home link or unmodified term link
98
+ */
99
+ function term_link($link, $term, $tax) {
100
+ return 'language' == $tax ? $this->options['domains'][$term->slug] : $link;
101
+ }
102
+ }
include/links-subdomain.php ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * links model for use when the language code is added in url as a subdomain
5
+ * for example en.mysite.com/something
6
+ * implements the "links_model interface"
7
+ *
8
+ * @since 1.2
9
+ */
10
+ class PLL_Links_Subdomain {
11
+ public $model, $options;
12
+ protected $home;
13
+
14
+ /*
15
+ * constructor
16
+ *
17
+ * @since 1.2
18
+ *
19
+ * @param object $model PLL_Model instance
20
+ */
21
+ public function __construct($model) {
22
+ $this->model = &$model;
23
+ $this->options = &$model->options;
24
+
25
+ $this->home = get_option('home');
26
+
27
+ // returns the correct language link
28
+ add_filter('term_link', array(&$this, 'term_link'), 10, 3);
29
+ }
30
+
31
+ /*
32
+ * adds the language code in url
33
+ * links_model interface
34
+ *
35
+ * @since 1.2
36
+ *
37
+ * @param string $url url to modify
38
+ * @param object $lang language
39
+ * @return string modified url
40
+ */
41
+ public function add_language_to_link($url, $lang) {
42
+ if (!empty($lang))
43
+ $url = $this->options['default_lang'] == $lang->slug && $this->options['hide_default'] ? $url : str_replace('://', '://'.$lang->slug.'.', $url);
44
+ return $url;
45
+ }
46
+
47
+ /*
48
+ * returns the url without language code
49
+ * links_model interface
50
+ *
51
+ * @since 1.2
52
+ *
53
+ * @param string $url url to modify
54
+ * @return string modified url
55
+ */
56
+ public function remove_language_from_link($url) {
57
+ foreach ($this->model->get_languages_list() as $language)
58
+ if (!$this->options['hide_default'] || $this->options['default_lang'] != $language->slug)
59
+ $languages[] = $language->slug;
60
+
61
+ if (!empty($languages))
62
+ $url = preg_replace('#:\/\/' . '('.implode('|', $languages).')\.#', '://' , $url);
63
+
64
+ return $url;
65
+ }
66
+
67
+ /*
68
+ * returns the link to the first page
69
+ * links_model interface
70
+ *
71
+ * @since 1.2
72
+ *
73
+ * @param string $url url to modify
74
+ * @return string modified url
75
+ */
76
+ function remove_paged_from_link($url) {
77
+ return preg_replace('#\/page\/[0-9]+\/#', '/', $url);
78
+ }
79
+
80
+ /*
81
+ * returns the language based on language code in url
82
+ * links_model interface
83
+ *
84
+ * @since 1.2
85
+ *
86
+ * @return string language slug
87
+ */
88
+ public function get_language_from_url() {
89
+ $pattern = '#('.implode('|', $this->model->get_languages_list(array('fields' => 'slug'))).')\.#';
90
+ return preg_match($pattern, trailingslashit($_SERVER['HTTP_HOST']), $matches) ? $matches[1] : ''; // $matches[1] is the slug of the requested language
91
+ }
92
+
93
+ /*
94
+ * returns the correct language link
95
+ *
96
+ * @since 1.2
97
+ *
98
+ * @param string $link term link
99
+ * @param object $term term
100
+ * @param string $tax taxonomy name
101
+ * @return string language home link or unmodified term link
102
+ */
103
+ function term_link($link, $term, $tax) {
104
+ return 'language' == $tax ? $this->add_language_to_link($this->home, $term) : $link;
105
+ }
106
+ }
include/links.php ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * manages links filters needed on both frontend and admin
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Links {
9
+ public $links_model, $model, $options;
10
+
11
+ /*
12
+ * constructor
13
+ *
14
+ * @since 1.2
15
+ *
16
+ * @param object $links_model
17
+ */
18
+ public function __construct(&$links_model) {
19
+ $this->links_model = &$links_model;
20
+ $this->model = &$links_model->model;
21
+ $this->options = &$this->model->options;
22
+
23
+ // low priority on links filters to come after any other modifications
24
+ if ($this->options['force_lang']) {
25
+ foreach (array('post_link', '_get_page_link', 'post_type_link') as $filter)
26
+ add_filter($filter, array(&$this, 'post_link'), 20, 2);
27
+
28
+ add_filter('term_link', array(&$this, 'term_link'), 20, 3);
29
+ }
30
+ }
31
+
32
+ /*
33
+ * modifies post & page links
34
+ *
35
+ * @since 0.7
36
+ *
37
+ * @param string $link post link
38
+ * @param object|int $post post object or post ID
39
+ * @return string modified post link
40
+ */
41
+ public function post_link($link, $post) {
42
+ static $links = array();
43
+
44
+ if (isset($links[$link]))
45
+ return $links[$link];
46
+
47
+ if ('post_type_link' == current_filter() && !in_array($post->post_type, $this->model->post_types))
48
+ return $links[$link] = $link;
49
+
50
+ if ('_get_page_link' == current_filter()) // this filter uses the ID instead of the post object
51
+ $post = get_post($post);
52
+
53
+ // /!\ when post_status in not "publish", WP does not use pretty permalinks
54
+ return $links[$link] = $post->post_status != 'publish' ? $link : $this->links_model->add_language_to_link($link, $this->model->get_post_language($post->ID));
55
+ }
56
+
57
+ /*
58
+ * modifies term link
59
+ *
60
+ * @since 0.7
61
+ *
62
+ * @param string $link term link
63
+ * @param object $post term object
64
+ * @param string $tax taxonomy name
65
+ * @return string modified term link
66
+ */
67
+ public function term_link($link, $term, $tax) {
68
+ static $links = array();
69
+
70
+ if (isset($links[$link]))
71
+ return $links[$link];
72
+
73
+ return $links[$link] = in_array($tax, $this->model->taxonomies) ?
74
+ $this->links_model->add_language_to_link($link, $this->model->get_term_language($term->term_id)) : $link;
75
+ }
76
+ }
77
+
include/list-table.php DELETED
@@ -1,190 +0,0 @@
1
- <?php
2
-
3
- // Thanks to Matt Van Andel (http://www.mattvanandel.com) for its plugin "Custom List Table Example" !
4
-
5
- if(!class_exists('WP_List_Table')){
6
- require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' ); // since WP 3.1
7
- }
8
-
9
- class Polylang_Languages_Table extends WP_List_Table {
10
- function __construct() {
11
- parent::__construct(array(
12
- 'singular' => __('Language','polylang'),
13
- 'plural' => __('Languages','polylang'),
14
- 'ajax' => false
15
- ));
16
- }
17
-
18
- function column_default($item, $column_name) {
19
- return $item[$column_name];
20
- }
21
-
22
- function column_name($item) {
23
- $edit_link = esc_url(admin_url('admin.php?page=mlang&amp;pll_action=edit&amp;lang=' . $item['term_id']));
24
- $delete_link = wp_nonce_url('?page=mlang&amp;pll_action=delete&amp;noheader=true&amp;lang=' . $item['term_id'], 'delete-lang');
25
- return $item['name'] . $this->row_actions(array(
26
- 'edit' => sprintf('<a href="%s">%s</a>', $edit_link, __('Edit','polylang')),
27
- 'delete' => sprintf('<a href="%s">%s</a>', $delete_link, __('Delete','polylang'))
28
- ));
29
- }
30
-
31
- function get_columns() {
32
- return array(
33
- 'name' => __('Full name', 'polylang'),
34
- 'description' => __('Locale', 'polylang'),
35
- 'slug' => __('Code', 'polylang'),
36
- 'term_group' => __('Order', 'polylang'),
37
- 'flag' => __('Flag', 'polylang'),
38
- 'count' => __('Posts', 'polylang')
39
- );
40
- }
41
-
42
- function get_sortable_columns() {
43
- return array(
44
- 'name' => array('name', true), // sorted by name by default
45
- 'description' => array('description', false),
46
- 'slug' => array('slug', false),
47
- 'term_group' => array('term_group', false),
48
- 'count' => array('count', false)
49
- );
50
- }
51
-
52
- function prepare_items($data = array()) {
53
- $per_page = $this->get_items_per_page('pll_lang_per_page');
54
- $this->_column_headers = array($this->get_columns(), array(), $this->get_sortable_columns());
55
-
56
- function usort_reorder($a, $b){
57
- $orderby = !empty($_REQUEST['orderby']) ? $_REQUEST['orderby'] : 'name';
58
- $result = strcmp($a[$orderby], $b[$orderby]); // determine sort order
59
- return (empty($_REQUEST['order']) || $_REQUEST['order'] == 'asc') ? $result : -$result; // send final sort direction to usort
60
- };
61
-
62
- usort($data, 'usort_reorder');
63
-
64
- $total_items = count($data);
65
- $this->items = array_slice($data, ($this->get_pagenum() - 1) * $per_page, $per_page);
66
-
67
- $this->set_pagination_args(array(
68
- 'total_items' => $total_items,
69
- 'per_page' => $per_page,
70
- 'total_pages' => ceil($total_items/$per_page)
71
- ));
72
- }
73
- } // class Polylang_Languages_Table
74
-
75
- class Polylang_String_Table extends WP_List_Table {
76
- private $groups;
77
-
78
- function __construct($groups = array(), $group_selected) {
79
- parent::__construct(array(
80
- 'singular' => __('Strings translation','polylang'),
81
- 'plural' => __('Strings translations','polylang'),
82
- 'ajax' => false
83
- ));
84
-
85
- $this->groups = &$groups;
86
- $this->group_selected = $group_selected;
87
- }
88
-
89
- function column_default($item, $column_name) {
90
- return $item[$column_name];
91
- }
92
-
93
- function column_cb($item){
94
- return sprintf(
95
- '<input type="checkbox" name="strings[]" value="%s" %s />',
96
- esc_attr($item['row']),
97
- empty($item['icl']) ? 'disabled' : ''
98
- );
99
- }
100
-
101
- function column_string($item) {
102
- return format_to_edit($item['string']); // don't interpret special chars for the string column
103
- }
104
-
105
- function column_translations($item) {
106
- $out = '';
107
- foreach($item['translations'] as $key => $translation) {
108
- $input_type = $item['multiline'] ?
109
- '<textarea name="translation[%1$s][%2$s]" id="%1$s-%2$s">%4$s</textarea>' :
110
- '<input name="translation[%1$s][%2$s]" id="%1$s-%2$s" value="%4$s" />';
111
- $out .= sprintf('<div class="translation"><label for="%1$s-%2$s">%3$s</label>'.$input_type.'</div>'."\n",
112
- esc_attr($key),
113
- esc_attr($item['row']),
114
- esc_html($key),
115
- format_to_edit($translation)); // don't interpret special chars
116
- }
117
- return $out;
118
- }
119
-
120
- function get_columns() {
121
- return array(
122
- 'cb' => '<input type="checkbox" />', //checkbox
123
- 'context' => __('Group', 'polylang'),
124
- 'name' => __('Name', 'polylang'),
125
- 'string' => __('String', 'polylang'),
126
- 'translations' => __('Translations', 'polylang'),
127
- );
128
- }
129
-
130
- function get_sortable_columns() {
131
- return array(
132
- 'context' => array('context', false),
133
- 'name' => array('name', false),
134
- 'string' => array('string', false),
135
- );
136
- }
137
-
138
- function prepare_items($data = array()) {
139
- $per_page = $this->get_items_per_page('pll_strings_per_page');
140
- $this->_column_headers = array($this->get_columns(), array(), $this->get_sortable_columns());
141
-
142
- function usort_reorder($a, $b){
143
- $result = strcmp($a[$_REQUEST['orderby']], $b[$_REQUEST['orderby']]); // determine sort order
144
- return (empty($_REQUEST['order']) || $_REQUEST['order'] == 'asc') ? $result : -$result; // send final sort direction to usort
145
- };
146
-
147
- if (!empty($_REQUEST['orderby'])) // no sort by default
148
- usort($data, 'usort_reorder');
149
-
150
- $total_items = count($data);
151
- $this->items = array_slice($data, ($this->get_pagenum() - 1) * $per_page, $per_page);
152
-
153
- $this->set_pagination_args(array(
154
- 'total_items' => $total_items,
155
- 'per_page' => $per_page,
156
- 'total_pages' => ceil($total_items/$per_page)
157
- ));
158
- }
159
-
160
- function get_bulk_actions() {
161
- return array('delete' => __('Delete','polylang'));
162
- }
163
-
164
- function extra_tablenav($which) {
165
- echo '<div class="alignleft actions">';
166
-
167
- if ('top' == $which) {
168
- echo '<select name="group">'."\n";
169
- printf(
170
- '<option value="-1"%s>%s</option>'."\n",
171
- $this->group_selected == -1 ? ' selected="selected"' : '',
172
- __('View all groups', 'polylang')
173
- );
174
-
175
- foreach ($this->groups as $group) {
176
- printf(
177
- '<option value="%s"%s>%s</option>'."\n",
178
- esc_attr($group),
179
- $this->group_selected == $group ? ' selected="selected"' : '',
180
- esc_html($group)
181
- );
182
- }
183
- echo '</select>'."\n";
184
-
185
- submit_button( __( 'Filter' ), 'button', false, false, array( 'id' => 'post-query-submit' ) );
186
- }
187
-
188
- echo '</div>';
189
- }
190
- } // class Polylang_String_Table
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
include/mo.php ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * manages strings translations storage
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_MO extends MO {
9
+
10
+ /*
11
+ * registers the polylang_mo custom post type
12
+ *
13
+ * @since 1.2
14
+ */
15
+ public function __construct() {
16
+ register_post_type('polylang_mo', array('rewrite' => false, 'query_var' => false, '_pll' => true));
17
+ }
18
+
19
+ /*
20
+ * writes a PLL_MO object into a custom post
21
+ *
22
+ * @since 1.2
23
+ *
24
+ * @param object $lang the language in which we want to export strings
25
+ */
26
+ public function export_to_db($lang) {
27
+ $this->add_entry($this->make_entry('', '')); // empty string translation, just in case
28
+
29
+ // would be convenient to store the whole object but it would take a huge space in DB
30
+ // so let's keep only the strings in an array
31
+ $strings = array();
32
+ foreach ($this->entries as $entry)
33
+ $strings[] = array($entry->singular, $this->translate($entry->singular));
34
+
35
+ $lang_id = is_object($lang) ? $lang->term_id : $lang;
36
+ $post = get_page_by_title('polylang_mo_' . $lang_id, ARRAY_A, 'polylang_mo'); // wp_insert_post wants an array
37
+ $post['post_title'] = 'polylang_mo_' . $lang_id;
38
+ // json_encode would take less space but is slower to decode
39
+ // wp_insert_post expects slashed data
40
+ $post['post_content'] = addslashes(serialize($strings));
41
+ $post['post_status'] = 'publish';
42
+ $post['post_type'] = 'polylang_mo';
43
+ wp_insert_post($post);
44
+ }
45
+
46
+ /*
47
+ * reads a PLL_MO object from a custom post
48
+ *
49
+ * @since 1.2
50
+ *
51
+ * @param object $lang the language in which we want to get strings
52
+ */
53
+ public function import_from_db($lang) {
54
+ $lang_id = is_object($lang) ? $lang->term_id : $lang;
55
+ $post = get_page_by_title('polylang_mo_' . $lang_id, OBJECT, 'polylang_mo');
56
+ if (!empty($post)) {
57
+ foreach (unserialize($post->post_content) as $msg)
58
+ $this->add_entry($this->make_entry($msg[0], $msg[1]));
59
+ }
60
+ }
61
+ }
include/model.php ADDED
@@ -0,0 +1,695 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * setups the language and translations model based on WordPress taxonomies
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Model {
9
+ public $options;
10
+ public $post_types = array(), $taxonomies = array(); // post types & taxonomies to filter by language
11
+ private $languages; // used to cache the list of languages
12
+
13
+ /*
14
+ * constructor: registers custom taxonomies and setups filters and actions
15
+ *
16
+ * @since 1.2
17
+ *
18
+ * @param array $options Polylang options
19
+ */
20
+ public function __construct(&$options) {
21
+ $this->options = &$options;
22
+
23
+ // register our taxonomies as soon as possible
24
+ // this is early registration, not ready for rewrite rules as wp_rewrite will be setup later
25
+ // FIXME should I supply an 'update_count_callback' for taxonomies other than 'language' (currently not needed by PLL)?
26
+ foreach (array('language', 'term_language', 'post_translations', 'term_translations') as $tax)
27
+ register_taxonomy($tax,
28
+ false !== strpos($tax, 'term_') ? 'term' : null ,
29
+ array('label' => false, 'public' => false, 'query_var' => false, 'rewrite' => false, '_pll' => true)
30
+ );
31
+
32
+ add_filter('get_terms', array(&$this, '_prime_terms_cache'), 10, 2);
33
+ add_filter('wp_get_object_terms', array(&$this, 'wp_get_object_terms'), 10, 3);
34
+
35
+ add_action('edited_term_taxonomy', array(&$this, 'clean_languages_cache'), 10, 2);
36
+
37
+ // registers completely the language taxonomy
38
+ add_action('setup_theme', array(&$this, 'register_taxonomy'), 1);
39
+
40
+ // setups post types and taxonomies to translate
41
+ add_action('registered_post_type', array(&$this, 'registered_post_type'));
42
+ add_action('registered_taxonomy', array(&$this, 'registered_taxonomy'));
43
+
44
+ // just in case someone would like to display the language description ;-)
45
+ add_filter('language_description', create_function('$v', "return '';"));
46
+ }
47
+
48
+ /*
49
+ * cache language and translations when terms are queried by get_terms
50
+ *
51
+ * @since 1.2
52
+ *
53
+ * @param array $terms queried terms
54
+ * @param array $taxonomies queried taxonomies
55
+ * @return array unmodified $terms
56
+ */
57
+ public function _prime_terms_cache($terms, $taxonomies) {
58
+ foreach ($terms as $term) {
59
+ if (is_object($term)) {
60
+ if (in_array($term->taxonomy, $this->taxonomies))
61
+ $term_ids[] = $term->term_id;
62
+ }
63
+ elseif (array_intersect($taxonomies, $this->taxonomies))
64
+ $term_ids[] = $term;
65
+ }
66
+
67
+ if (!empty($term_ids))
68
+ update_object_term_cache(array_unique($term_ids), 'term'); // adds language and translation of terms to cache
69
+ return $terms;
70
+ }
71
+
72
+ /*
73
+ * when terms are found for posts, add their language and translations to cache
74
+ *
75
+ * @since 1.2
76
+ *
77
+ * @param array $terms terms found
78
+ * @param array $object_ids not used
79
+ * @param array $taxonomies terms taxonomies
80
+ * @return array unmodified $terms
81
+ */
82
+ public function wp_get_object_terms($terms, $object_ids, $taxonomies) {
83
+ $taxonomies = explode("', '", trim($taxonomies, "'"));
84
+ if (!in_array('term_translations', $taxonomies))
85
+ $this->_prime_terms_cache($terms, $taxonomies);
86
+ return $terms;
87
+ }
88
+
89
+ /*
90
+ * wrap wp_get_object_terms to cache it and return only one object
91
+ * inspired by the function get_the_terms
92
+ *
93
+ * @since 1.2
94
+ *
95
+ * @param int $object_id post_id or term_id
96
+ * @param string $taxonomy Polylang taxonomy depending if we are looking for a post (or term) language (or translation)
97
+ * @return bool|object the term associated to the object in the requested taxonomy if exists, false otherwise
98
+ */
99
+ protected function get_object_term($object_id, $taxonomy) {
100
+ $term = get_object_term_cache($object_id, $taxonomy);
101
+
102
+ if ( false === $term ) {
103
+ // query language and translations at the same time
104
+ $taxonomies = (false !== strpos($taxonomy, 'term_')) ?
105
+ array('term_language', 'term_translations') :
106
+ array('language', 'post_translations');
107
+
108
+ foreach (wp_get_object_terms($object_id, $taxonomies) as $t) {
109
+ wp_cache_add($object_id, array($t), $t->taxonomy . '_relationships'); // store it the way WP wants it
110
+ if ($t->taxonomy == $taxonomy)
111
+ $term = $t;
112
+ }
113
+ }
114
+ else
115
+ $term = reset($term);
116
+
117
+ return empty($term) ? false : $term;
118
+ }
119
+
120
+ /*
121
+ * returns the list of available languages
122
+ * caches the list in a db transient (except flags)
123
+ * caches the list (with flags) in the private property $languages
124
+ *
125
+ * list of parameters accepted in $args:
126
+ *
127
+ * hide_empty => hides languages with no posts if set to true (defaults to false)
128
+ * fields => return only that field if set (see PLL_Language for a list of fields)
129
+ *
130
+ * @since 0.1
131
+ *
132
+ * @param array $args
133
+ * @return array|string|int list of PLL_Language objects or PLL_Language object properties
134
+ */
135
+ public function get_languages_list($args = array()) {
136
+ if (empty($this->languages)) {
137
+ if (false === ($languages = get_transient('pll_languages_list'))) {
138
+ $languages = get_terms('language', array('hide_empty' => false, 'orderby'=> 'term_group'));
139
+ $languages = empty($languages) || is_wp_error($languages) ? array() : $languages;
140
+
141
+ $term_languages = get_terms('term_language', array('hide_empty' => false));
142
+ $term_languages = empty($term_languages) || is_wp_error($term_languages) ?
143
+ array() : array_combine(wp_list_pluck($term_languages, 'name'), $term_languages);
144
+
145
+ if (!empty($languages) && !empty($term_languages)) {
146
+ array_walk($languages, create_function('&$v, $k, $term_languages', '$v = new PLL_Language($v, $term_languages[$v->name]);'), $term_languages);
147
+ set_transient('pll_languages_list', $languages);
148
+ }
149
+ else
150
+ $languages = array(); // in case something went wrong
151
+ }
152
+
153
+ // add flags (not in db cache as they may be different on frontend and admin)
154
+ foreach ($languages as $lang)
155
+ $lang->set_flag();
156
+
157
+ $this->languages = $languages;
158
+ }
159
+
160
+ $args = wp_parse_args($args, array('hide_empty' => false));
161
+ extract($args);
162
+
163
+ // remove empty languages if requested
164
+ $languages = array_filter($this->languages, create_function('$v', sprintf('return $v->count || !%d;', $hide_empty)));
165
+
166
+ return empty($fields) ? $languages : wp_list_pluck($languages, $fields);
167
+ }
168
+
169
+ /*
170
+ * cleans language cache
171
+ * can be called directly with no parameter
172
+ * called by the 'edited_term_taxonomy' filter with 2 parameters when count needs to be updated
173
+ *
174
+ * @since 1.2
175
+ *
176
+ * @param int $term not used
177
+ * @param string $taxonomy taxonomy name
178
+ */
179
+ public function clean_languages_cache($term = 0, $taxonomy = null) {
180
+ if (empty($taxonomy->name) || 'language' == $taxonomy->name) {
181
+ delete_transient('pll_languages_list');
182
+ $this->languages = array();
183
+ }
184
+ }
185
+
186
+ /*
187
+ * returns the language by its term_id, tl_term_id, slug or locale
188
+ *
189
+ * @since 0.1
190
+ *
191
+ * @param int|string term_id, tl_term_id, slug or locale of the queried language
192
+ * @return object|bool PLL_Language object, false if no language found
193
+ */
194
+ public function get_language($value) {
195
+ static $language;
196
+
197
+ if (is_object($value))
198
+ return $this->get_language($value->term_id); // will force cast to PLL_Language
199
+
200
+ if (empty($language[$value])) {
201
+ foreach ($this->get_languages_list() as $lang)
202
+ $language[$lang->term_id] = $language[$lang->tl_term_id] = $language[$lang->slug] = $language[$lang->locale] = $lang;
203
+ }
204
+
205
+ return empty($language[$value]) ? false : $language[$value];
206
+ }
207
+
208
+ /*
209
+ * saves translations for posts or terms
210
+ *
211
+ * @since 0.5
212
+
213
+ * @param string $type either 'post' or 'term'
214
+ * @param int $id post id or term id
215
+ * @param array $translations: an associative array of translations with language code as key and translation id as value
216
+ */
217
+ public function save_translations($type, $id, $translations) {
218
+ if (($lang = call_user_func(array(&$this, 'get_'.$type.'_language'), $id)) && isset($translations) && is_array($translations)) {
219
+ // first unlink this object
220
+ foreach ($this->get_translations($type, $id) as $object_id)
221
+ $this->delete_translation($type, $object_id);
222
+
223
+ $translations = array_merge(array($lang->slug => $id), $translations); // make sure this object is in tranlations
224
+ $translations = array_diff($translations, array(0)); // don't keep non translated languages
225
+
226
+ // don't create a translation group for untranslated posts as it is useless
227
+ // but we need one for terms to allow relationships remap when importing from a WXR file
228
+ if ('term' == $type || count($translations) > 1) {
229
+ $terms = wp_get_object_terms($translations, $type . '_translations');
230
+ $term = array_pop($terms);
231
+
232
+ // create a new term if necessary
233
+ empty($term) ?
234
+ wp_insert_term($group = uniqid('pll_'), $type . '_translations', array('description' => serialize($translations))) :
235
+ wp_update_term($group = (int) $term->term_id, $type . '_translations', array('description' => serialize($translations)));
236
+
237
+ // link all translations to the new term
238
+ foreach($translations as $p)
239
+ wp_set_object_terms($p, $group, $type . '_translations');
240
+ }
241
+ }
242
+ }
243
+
244
+ /*
245
+ * deletes a translation of a post or term
246
+ *
247
+ * @since 0.5
248
+ *
249
+ * @param string $type either 'post' or 'term'
250
+ * @param int $id post id or term id
251
+ */
252
+ public function delete_translation($type, $id) {
253
+ $term = $this->get_object_term($id, $type . '_translations');
254
+
255
+ if (!empty($term)) {
256
+ $translations = unserialize($term->description);
257
+
258
+ if (is_array($translations)) {
259
+ $slug = array_search($id, $translations);
260
+ unset($translations[$slug]);
261
+
262
+ empty($translations) || 1 == count($translations) ?
263
+ wp_delete_term((int) $term->term_id, $type . '_translations') :
264
+ wp_update_term((int) $term->term_id, $type . '_translations', array('description' => serialize($translations)));
265
+
266
+ wp_set_object_terms($id, null, $type . '_translations');
267
+ }
268
+ }
269
+ }
270
+
271
+ /*
272
+ * returns the id of the translation of a post or term
273
+ *
274
+ * @since 0.5
275
+ *
276
+ * @param string $type either 'post' or 'term'
277
+ * @param int $id post id or term id
278
+ * @param object|string $lang object or slug
279
+ * @return bool|int post id or term id of the translation, flase if there is none
280
+ */
281
+ public function get_translation($type, $id, $lang) {
282
+ $translations = $this->get_translations($type, $id);
283
+ $slug = $this->get_language($lang)->slug;
284
+ return isset($translations[$slug]) ? (int) $translations[$slug] : false;
285
+ }
286
+
287
+ /*
288
+ * returns an array of translations of a post or term
289
+ *
290
+ * @since 0.5
291
+ *
292
+ * @param string $type either 'post' or 'term'
293
+ * @param int $id post id or term id
294
+ * @return array an associative array of translations with language code as key and translation id as value
295
+ */
296
+ public function get_translations($type, $id) {
297
+ $type = ($type == 'post' || in_array($type, $this->post_types)) ? 'post' : (($type == 'term' || in_array($type, $this->taxonomies)) ? 'term' : false);
298
+ return $type && ($term = $this->get_object_term($id, $type . '_translations')) && !empty($term) ? unserialize($term->description) : array();
299
+ }
300
+
301
+ /*
302
+ * store the post language in the database
303
+ *
304
+ * @since 0.6
305
+ *
306
+ * @param int $post_id post id
307
+ * @param int|string|object language (term_id or slug or object)
308
+ */
309
+ public function set_post_language($post_id, $lang) {
310
+ wp_set_post_terms($post_id, $lang ? $this->get_language($lang)->slug : '', 'language' );
311
+ }
312
+
313
+ /*
314
+ * returns the language of a post
315
+ *
316
+ * @since 0.1
317
+ *
318
+ * @param int $post_id post id
319
+ * @return bool|object PLL_Language object, false if no language is associated to that post
320
+ */
321
+ public function get_post_language($post_id) {
322
+ $lang = $this->get_object_term($post_id, 'language' );
323
+ return ($lang) ? $this->get_language($lang) : false;
324
+ }
325
+
326
+ /*
327
+ * among the post and its translations, returns the id of the post which is in $lang
328
+ *
329
+ * @since 0.1
330
+ *
331
+ * @param int $post_id post id
332
+ * @param int|string|object language (term_id or slug or object)
333
+ * @return bool|int the translation post id if exists, otherwise the post id, false if the post has no language
334
+ */
335
+ public function get_post($post_id, $lang) {
336
+ $post_lang = $this->get_post_language($post_id); // FIXME is this necessary?
337
+ if (!$lang || !$post_lang)
338
+ return false;
339
+
340
+ $lang = $this->get_language($lang);
341
+ return $post_lang->term_id == $lang->term_id ? $post_id : $this->get_translation('post', $post_id, $lang);
342
+ }
343
+
344
+ /*
345
+ * stores the term language in the database
346
+ *
347
+ * @since 0.6
348
+ *
349
+ * @param int $term_id term id
350
+ * @param int|string|object language (term_id or slug or object)
351
+ */
352
+ public function set_term_language($term_id, $lang) {
353
+ wp_set_object_terms($term_id, $lang ? $this->get_language($lang)->tl_term_id : '', 'term_language');
354
+ }
355
+
356
+ /*
357
+ * removes the term language in database
358
+ *
359
+ * @since 0.5
360
+ *
361
+ * @param int $term_id term id
362
+ */
363
+ public function delete_term_language($term_id) {
364
+ wp_delete_object_term_relationships($term_id, 'term_language');
365
+ }
366
+
367
+ /*
368
+ * returns the language of a term
369
+ *
370
+ * @since 0.1
371
+ *
372
+ * @param int|string $value term id or term slug
373
+ * @param string $taxonomy optional taxonomy needed when the term slug is passed as first parameter
374
+ * @return bool|object PLL_Language object, false if no language is associated to that term
375
+ */
376
+ public function get_term_language($value, $taxonomy = '') {
377
+ if (is_numeric($value))
378
+ $term_id = $value;
379
+
380
+ // get_term_by still not cached in WP 3.5.1 but internally, the function is always called by term_id
381
+ elseif (is_string($value) && $taxonomy)
382
+ $term_id = get_term_by('slug', $value , $taxonomy)->term_id;
383
+
384
+ $lang = $this->get_object_term($term_id, 'term_language');
385
+
386
+ // switch to PLL_Language
387
+ return ($lang) ? $this->get_language($lang->term_id) : false;
388
+ }
389
+
390
+ /*
391
+ * among the term and its translations, returns the id of the term which is in $lang
392
+ *
393
+ * @since 0.1
394
+ *
395
+ * @param int $term_id term id
396
+ * @param int|string|object language (term_id or slug or object)
397
+ * @return bool|int the translation term id if exists, otherwise the term id, false if the term has no language
398
+ */
399
+ public function get_term($term_id, $lang) {
400
+ $lg = $this->get_term_language($term_id); // FIXME is this necessary?
401
+ if (!$lang || !$lg)
402
+ return false;
403
+
404
+ $lang = $this->get_language($lang);
405
+ return $lg->term_id == $lang->term_id ? $term_id : $this->get_translation('term', $term_id, $lang);
406
+ }
407
+
408
+ /*
409
+ * a join clause to add to sql queries when filtering by language is needed directly in query
410
+ *
411
+ * @since 1.2
412
+ *
413
+ * @param string $type either 'post' or 'term'
414
+ * @return string join clause
415
+ */
416
+ public function join_clause($type) {
417
+ global $wpdb;
418
+ return " INNER JOIN $wpdb->term_relationships AS pll_tr ON pll_tr.object_id = " . ('term' == $type ? "t.term_id" : "ID");
419
+ }
420
+
421
+ /*
422
+ * a where clause to add to sql queries when filtering by language is needed directly in query
423
+ *
424
+ * @since 1.2
425
+ *
426
+ * @param object|array|string $lang a PLL_Language object or a comma separated list of languag slug or an array of language slugs
427
+ * @param string $type either 'post' or 'term'
428
+ * @return string where clause
429
+ */
430
+ public function where_clause($lang, $type) {
431
+ global $wpdb;
432
+ $tt_id = 'term' == $type ? 'tl_term_taxonomy_id' : 'term_taxonomy_id';
433
+
434
+ // $lang is an object
435
+ // generally the case if the query is coming from Polylang
436
+ if (is_object($lang))
437
+ return $wpdb->prepare(" AND pll_tr.term_taxonomy_id = %d", $lang->$tt_id);
438
+
439
+ // $lang is a comma separated list of slugs (or an array of slugs)
440
+ // generally the case is the query is coming from outside with 'lang' parameter
441
+ $slugs = is_array($lang) ? $lang : explode(',', $lang);
442
+ foreach ($slugs as $slug)
443
+ $languages[] = (int) $this->get_language($slug)->$tt_id;
444
+
445
+ return " AND pll_tr.term_taxonomy_id IN (" . implode(',', $languages) . ")";
446
+ }
447
+
448
+ /*
449
+ * adds clauses to comments query to filter them by language - used in both frontend and admin
450
+ *
451
+ * @since 1.2
452
+ *
453
+ * @param array $clauses the list of sql clauses in comments query
454
+ * @param object $lang PLL_Language object
455
+ * @return array modifed list of clauses
456
+ */
457
+ public function comments_clauses($clauses, $lang) {
458
+ global $wpdb;
459
+ if (!empty($lang)) {
460
+ // if this clause is not already added by WP
461
+ if (!strpos($clauses['join'], '.ID'))
462
+ $clauses['join'] .= " JOIN $wpdb->posts ON $wpdb->posts.ID = $wpdb->comments.comment_post_ID";
463
+
464
+ $clauses['join'] .= $this->join_clause('post');
465
+ $clauses['where'] .= $this->where_clause($lang, 'post');
466
+ }
467
+ return $clauses;
468
+ }
469
+
470
+ /*
471
+ * adds terms clauses to get_terms to filter them by languages - used in both frontend and admin
472
+ *
473
+ * @since 1.2
474
+ *
475
+ * @param array $clauses the list of sql clauses in terms query
476
+ * @param object $lang PLL_Language object
477
+ * @return array modifed list of clauses
478
+ */
479
+ public function terms_clauses($clauses, $lang) {
480
+ if (!empty($lang)) {
481
+ $clauses['join'] .= $this->join_clause('term');
482
+ $clauses['where'] .= $this->where_clause($lang, 'term');
483
+ }
484
+ return $clauses;
485
+ }
486
+
487
+ /*
488
+ * register the language taxonomy
489
+ *
490
+ * @since 1.2
491
+ */
492
+ public function register_taxonomy() {
493
+ // registers the language taxonomy
494
+ // object types will be set later once all custom post types are registered
495
+ register_taxonomy('language', $this->post_types, array(
496
+ 'labels' => array(
497
+ 'name' => __('Languages', 'polylang'),
498
+ 'singular_name' => __('Language', 'polylang'),
499
+ 'all_items' => __('All languages', 'polylang'),
500
+ ),
501
+ 'public' => false, // avoid displaying the 'like post tags text box' in the quick edit
502
+ 'query_var' => 'lang',
503
+ 'update_count_callback' => '_update_post_term_count',
504
+ '_pll' => true // polylang taxonomy
505
+ ));
506
+ }
507
+
508
+ /*
509
+ * post types that need to be translated
510
+ *
511
+ * @since 1.2
512
+ *
513
+ * @return array array of post types names for which Polylang manages languages and translations
514
+ */
515
+ protected function get_post_types() {
516
+ $post_types = array('post' => 'post', 'page' => 'page');
517
+ if (!empty($this->options['media_support']))
518
+ $post_types['attachement'] = 'attachment';
519
+
520
+ return apply_filters('pll_get_post_types', array_merge($post_types, $this->options['post_types']) , false);
521
+ }
522
+
523
+ /*
524
+ * returns valid registered post types that need to be translated
525
+ *
526
+ * @since 1.2
527
+ *
528
+ * @return array array of registered post type names for which Polylang manages languages and translations
529
+ */
530
+ public function get_translated_post_types() {
531
+ return $this->post_types = array_intersect($this->get_post_types(), get_post_types());
532
+ }
533
+
534
+ /*
535
+ * check if registered post type must be translated
536
+ *
537
+ * @since 1.2
538
+ *
539
+ * @param string $post_type post type name
540
+ */
541
+ public function registered_post_type($post_type) {
542
+ if (in_array($post_type, $this->get_post_types())) {
543
+ $this->post_types[$post_type] = $post_type;
544
+ register_taxonomy_for_object_type('language', $post_type);
545
+ register_taxonomy_for_object_type('post_translations', $post_type);
546
+ }
547
+ }
548
+
549
+ /*
550
+ * returns true if Polylang manages languages and translations for this post type
551
+ *
552
+ * @since 1.2
553
+ *
554
+ * @param string|array $post_type post type name or array of post type names
555
+ */
556
+ public function is_translated_post_type($post_type) {
557
+ return (is_array($post_type) && array_intersect($post_type, $this->post_types) || in_array($post_type, $this->post_types));
558
+ }
559
+
560
+ /*
561
+ * taxonomies that need to be translated
562
+ *
563
+ * @since 1.2
564
+ *
565
+ * @return array array of taxonomy names for which Polylang manages languages and translations
566
+ */
567
+ protected function get_taxonomies() {
568
+ $taxonomies = array('category' => 'category', 'post_tag' => 'post_tag', 'nav_menu' => 'nav_menu');
569
+ return apply_filters('pll_get_taxonomies', array_merge($taxonomies, $this->options['taxonomies']), false);
570
+ }
571
+
572
+ /*
573
+ * return valid registered taxonomies that need to be translated
574
+ *
575
+ * @since 1.2
576
+ *
577
+ * @return array array of registered taxonomy names for which Polylang manages languages and translations
578
+ */
579
+ public function get_translated_taxonomies() {
580
+ return $this->taxonomies = array_intersect($this->get_taxonomies(), get_taxonomies());
581
+ }
582
+
583
+ /*
584
+ * check if registered post type must be translated
585
+ *
586
+ * @since 1.2
587
+ *
588
+ * @param string $taxonomy taxonomy name
589
+ */
590
+ public function registered_taxonomy($taxonomy) {
591
+ if (in_array($taxonomy, $this->get_taxonomies()))
592
+ $this->taxonomies[$taxonomy] = $taxonomy;
593
+ }
594
+
595
+ /*
596
+ * returns true if Polylang manages languages and translations for this post type
597
+ *
598
+ * @since 1.2
599
+ *
600
+ * @param string|array $tax taxonomy name or array of taxonomy names
601
+ */
602
+ public function is_translated_taxonomy($tax) {
603
+ return (is_array($tax) && array_intersect($tax, $this->taxonomies) || in_array($tax, $this->taxonomies));
604
+ }
605
+
606
+ /*
607
+ * it is possible to have several terms with the same name in the same taxonomy (one per language)
608
+ * but the native get_term_by will return only one term
609
+ * so here the function adds the language parameter
610
+ *
611
+ * @since 1.2
612
+ *
613
+ * @param string $field currently the only possibility is 'name'
614
+ * @param string $value the term name
615
+ * @param string $taxonomy taxonomy name
616
+ * @param string|object $language the language slug or object
617
+ * @return null|int the term_id of the found term
618
+ */
619
+ public function get_term_by($field, $value, $taxonomy, $language) {
620
+ global $wpdb;
621
+
622
+ if ('name' != $field)
623
+ return NULL;
624
+
625
+ return $wpdb->get_row("SELECT t.*, tt.* FROM $wpdb->terms AS t"
626
+ . " INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id"
627
+ . $this->join_clause('term')
628
+ . $wpdb->prepare(" WHERE tt.taxonomy = %s AND t.name = %s", $taxonomy, $value)
629
+ . $this->where_clause($this->get_language($language), 'term')
630
+ );
631
+ }
632
+
633
+ /*
634
+ * gets the number of posts per language in a date, author or post type archive
635
+ *
636
+ * @since 1.2
637
+ *
638
+ * @param object lang
639
+ * @param array $args WP_Query arguments (accepted: post_type, m, year, monthnum, day, author, author_name)
640
+ * @return int
641
+ */
642
+ public function count_posts($lang, $args = array()) {
643
+ global $wpdb;
644
+
645
+ $q = wp_parse_args($args, array('post_type' => 'post'));
646
+
647
+ $cache_key = md5(serialize($q));
648
+ $counts = wp_cache_get($cache_key, 'pll_count_posts');
649
+
650
+ if (false === $counts) {
651
+ $where = " WHERE post_status = 'publish'";
652
+ $where .= $wpdb->prepare(" AND {$wpdb->posts}.post_type = %s", $q['post_type']);
653
+
654
+ if (!empty($q['m'])) {
655
+ $q['m'] = '' . preg_replace('|[^0-9]|', '', $q['m']);
656
+ $where .= $wpdb->prepare(" AND YEAR({$wpdb->posts}.post_date) = %d", substr($q['m'], 0, 4));
657
+ if ( strlen($q['m']) > 5 )
658
+ $where .= $wpdb->prepare(" AND MONTH({$wpdb->posts}.post_date) = %d", substr($q['m'], 4, 2));
659
+ if ( strlen($q['m']) > 7 )
660
+ $where .= $wpdb->prepare(" AND DAYOFMONTH({$wpdb->posts}.post_date) = %d", substr($q['m'], 6, 2));
661
+ }
662
+
663
+ if (!empty($q['year']))
664
+ $where .= $wpdb->prepare(" AND YEAR({$wpdb->posts}.post_date) = %d", $q['year']);
665
+
666
+ if (!empty($q['monthnum']))
667
+ $where .= $wpdb->prepare(" AND MONTH({$wpdb->posts}.post_date) = %d", $q['monthnum']);
668
+
669
+ if (!empty($q['day']))
670
+ $where .= $wpdb->prepare(" AND DAYOFMONTH({$wpdb->posts}.post_date) = %d", $q['day']);
671
+
672
+ if (!empty($q['author_name'])) {
673
+ $author = get_user_by('slug', sanitize_title_for_query($q['author_name']));
674
+ if ($author)
675
+ $q['author'] = $author->ID;
676
+ }
677
+
678
+ if (!empty($q['author']))
679
+ $where .= $wpdb->prepare(" AND {$wpdb->posts}.post_author = %d", $q['author']);
680
+
681
+ $select = "SELECT pll_tr.term_taxonomy_id, COUNT(*) AS num_posts FROM {$wpdb->posts}";
682
+ $join = $this->join_clause('post');
683
+ $where .= $this->where_clause($this->get_languages_list(), 'post');
684
+ $groupby = " GROUP BY pll_tr.term_taxonomy_id";
685
+
686
+ $res = $wpdb->get_results($select . $join . $where . $groupby, ARRAY_A);
687
+ foreach ((array) $res as $row)
688
+ $counts[$row['term_taxonomy_id']] = $row['num_posts'];
689
+
690
+ wp_cache_set($cache_key, $counts, 'pll_count_posts');
691
+ }
692
+
693
+ return empty($counts[$lang->term_taxonomy_id]) ? 0 : $counts[$lang->term_taxonomy_id];
694
+ }
695
+ }
include/nav-menu.php DELETED
@@ -1,288 +0,0 @@
1
- <?php
2
- class Polylang_Nav_Menu {
3
- public function __construct() {
4
- if ($GLOBALS['polylang']->is_admin) {
5
- // integration in the WP menu interface
6
- add_action('admin_init', array(&$this, 'admin_init'), 20); // ater update
7
-
8
- // remove the customize menu section as it is unusable with Polylang
9
- add_action('customize_register', array(&$this, 'customize_register'), 20); // since WP 3.4
10
-
11
- // protection against #24802
12
- add_filter('pre_insert_term', array(&$this, 'pre_insert_term'), 10, 2);
13
- }
14
- else {
15
- // split the language switcher menu item in several language menu items
16
- add_filter('wp_get_nav_menu_items', array(&$this, 'wp_get_nav_menu_items'));
17
- add_filter('wp_nav_menu_objects', array(&$this, 'wp_nav_menu_objects'));
18
- add_filter('nav_menu_link_attributes', array(&$this, 'nav_menu_link_attributes'), 10, 3);
19
-
20
- // filters menus locations by language
21
- add_filter('get_nav_menu', array($this, 'get_nav_menu'), 1);
22
- }
23
- }
24
-
25
- // add the language switcher metabox and create new nav menu locations
26
- public function admin_init(){
27
- global $_wp_registered_nav_menus, $polylang;
28
-
29
- if (!($languages = $polylang->get_languages_list()))
30
- return;
31
-
32
- add_action('admin_enqueue_scripts', array(&$this, 'admin_enqueue_scripts'));
33
- add_action('wp_update_nav_menu_item', array(&$this, 'wp_update_nav_menu_item'), 10, 3);
34
- add_filter('wp_get_nav_menu_items', array(&$this, 'translate_switcher_title'));
35
-
36
- // translation of menus based on chosen locations
37
- $theme = get_option( 'stylesheet' );
38
- add_filter("pre_update_option_theme_mods_$theme", array($this, 'update_nav_menu_locations'));
39
-
40
- // filter _wp_auto_add_pages_to_menu by language
41
- add_action('transition_post_status', array(&$this, 'auto_add_pages_to_menu'), 5, 3); // before _wp_auto_add_pages_to_menu
42
-
43
- // FIXME is it possible to choose the order (after theme locations in WP3.5 and older) ?
44
- add_meta_box('pll_lang_switch_box', __('Language switcher', 'polylang'), array( &$this, 'lang_switch' ), 'nav-menus', 'side', 'high');
45
-
46
- // create new nav menu locations except for all non-default language (only on admin side)
47
- if (isset($_wp_registered_nav_menus)) {
48
- foreach ($_wp_registered_nav_menus as $loc => $name)
49
- foreach ($languages as $lang)
50
- $arr[$loc . (pll_default_language() == $lang->slug ? '' : '#' . $lang->slug)] = $name . ' ' . $lang->name;
51
-
52
- $_wp_registered_nav_menus = $arr;
53
- }
54
- }
55
-
56
- // language switcher metabox
57
- // The checkbox and all hidden fields are important
58
- // thanks to John Morris for his very interesting post http://www.johnmorrisonline.com/how-to-add-a-fully-functional-custom-meta-box-to-wordpress-navigation-menus/
59
- public function lang_switch() {
60
- global $_nav_menu_placeholder, $nav_menu_selected_id;
61
- $_nav_menu_placeholder = 0 > $_nav_menu_placeholder ? $_nav_menu_placeholder - 1 : -1;?>
62
-
63
- <div id="posttype-lang-switch" class="posttypediv">
64
- <div id="tabs-panel-lang-switch" class="tabs-panel tabs-panel-active">
65
- <ul id ="lang-switch-checklist" class="categorychecklist form-no-clear">
66
- <li>
67
- <label class="menu-item-title">
68
- <input type="checkbox" class="menu-item-checkbox" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-object-id]" value="-1"> <?php _e('Language switcher', 'polylang'); ?>
69
- </label>
70
- <input type="hidden" class="menu-item-type" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-type]" value="custom">
71
- <input type="hidden" class="menu-item-title" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-title]" value="<?php _e('Language switcher', 'polylang'); ?>">
72
- <input type="hidden" class="menu-item-url" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-url]" value="#pll_switcher">
73
- </li>
74
- </ul>
75
- </div>
76
- <p class="button-controls">
77
- <span class="add-to-menu">
78
- <input type="submit" <?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu right" value="Add to Menu" name="add-post-type-menu-item" id="submit-posttype-lang-switch">
79
- <span class="spinner"></span>
80
- </span>
81
- </p>
82
- </div><?php
83
- }
84
-
85
- // prepares javascript to modify the language switcher menu item
86
- function admin_enqueue_scripts() {
87
- $screen = get_current_screen();
88
- if ('nav-menus' != $screen->base)
89
- return;
90
-
91
- $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
92
- wp_enqueue_script('pll_nav_menu', POLYLANG_URL .'/js/nav-menu'.$suffix.'.js', array('jquery'), POLYLANG_VERSION);
93
-
94
- // the strings for the options
95
- foreach (array_reverse($GLOBALS['polylang']->get_switcher_options('menu', 'string')) as $str)
96
- $data['strings'][] = $str;
97
-
98
- $data['strings'][] = __('Language switcher', 'polylang'); // the title
99
-
100
- // get all language switcher menu items
101
- $items = get_posts(array(
102
- 'numberposts' => -1,
103
- 'nopaging' => true,
104
- 'post_type' => 'nav_menu_item',
105
- 'fields' => 'ids',
106
- 'meta_key' => '_pll_menu_item'
107
- ));
108
-
109
- // the options values for the language switcher
110
- $data['val'] = array();
111
- foreach ($items as $item)
112
- $data['val'][$item] = get_post_meta($item, '_pll_menu_item', true);
113
-
114
- // send all these data to javascript
115
- wp_localize_script('pll_nav_menu', 'pll_data', $data);
116
- }
117
-
118
- // save our menu item options
119
- function wp_update_nav_menu_item( $menu_id = 0, $menu_item_db_id = 0, $menu_item_data = array() ) {
120
- if (empty($_POST['menu-item-url'][$menu_item_db_id]) || $_POST['menu-item-url'][$menu_item_db_id] != '#pll_switcher')
121
- return;
122
-
123
- $options = array('hide_current' => 0,'force_home' => 0 ,'show_flags' => 0 ,'show_names' => 1); // default values
124
- // our jQuery form has not been displayed
125
- if (empty($_POST['menu-item-pll-detect'][$menu_item_db_id])) {
126
- if (!get_post_meta($menu_item_db_id, '_pll_menu_item', true)) // our options were never saved
127
- update_post_meta($menu_item_db_id, '_pll_menu_item', $options);
128
- }
129
- else {
130
- foreach ($options as $opt=>$v)
131
- $options[$opt] = empty($_POST['menu-item-'.$opt][$menu_item_db_id]) ? 0 : 1;
132
- update_post_meta($menu_item_db_id, '_pll_menu_item', $options); // allow us to easily identify our nav menu item
133
- }
134
-
135
- }
136
-
137
- // translates the language switcher menu items title in case the user swirhces the admin language
138
- function translate_switcher_title($items) {
139
- foreach ($items as $item)
140
- if ($item->url == '#pll_switcher')
141
- $item->post_title = __('Language switcher', 'polylang');
142
- return $items;
143
- }
144
-
145
- // assign menu languages and translations based on locations
146
- function update_nav_menu_locations($mods) {
147
- if (isset($mods['nav_menu_locations'])) {
148
- global $polylang;
149
- $default = pll_default_language();
150
- $arr = array();
151
-
152
- // extract language and menu from locations
153
- foreach ($mods['nav_menu_locations'] as $loc => $menu) {
154
- if (!strpos($loc, '#'))
155
- $arr[$loc][$default] = $menu;
156
- elseif ($pos = strpos($loc, '#')) {
157
- $arr[substr($loc, 0, $pos)][substr($loc, $pos+1)] = $menu;
158
- }
159
- }
160
-
161
- // assign menus language and translations
162
- foreach ($arr as $loc => $translations) {
163
- foreach ($translations as $lang=>$menu) {
164
- $polylang->set_term_language($menu, $lang);
165
- $polylang->save_translations('term', $menu, $translations);
166
- }
167
- }
168
- }
169
- return $mods;
170
- }
171
-
172
- // filter _wp_auto_add_pages_to_menu by language
173
- function auto_add_pages_to_menu( $new_status, $old_status, $post ) {
174
- if ('publish' != $new_status || 'publish' == $old_status || 'page' != $post->post_type || ! empty($post->post_parent) || !($lang = $GLOBALS['polylang']->get_post_language($post->ID)))
175
- return;
176
-
177
- // get all the menus in the post language
178
- $menus = get_terms('nav_menu', array('lang'=>$lang, 'fields'=>'ids', 'hide_empty'=>false));
179
- $menus = implode(',', $menus);
180
-
181
- add_filter('option_nav_menu_options', create_function('$a', "\$a['auto_add'] = array_intersect(\$a['auto_add'], array($menus)); return \$a;"));
182
- }
183
-
184
- // FIXME remove the customize menu section as it is currently unusable with Polylang
185
- function customize_register() {
186
- $GLOBALS['wp_customize']->remove_section('nav'); // since WP 3.4
187
- }
188
-
189
- // FIXME prevents sharing a menu term with a language term by renaming the nav menu before its creation
190
- // to avoid http://core.trac.wordpress.org/ticket/24802
191
- // and http://wordpress.org/support/topic/all-connection-between-elements-lost
192
- function pre_insert_term($name, $taxonomy) {
193
- if ('nav_menu' == $taxonomy) {
194
- global $polylang;
195
- foreach ($polylang->get_languages_list() as $language)
196
- if ($name == $language->name)
197
- $name = $name . '-menu';
198
- }
199
- return $name;
200
- }
201
-
202
- // split the one item of backend in several items on frontend
203
- // take care to menu_order as it is used later in wp_nav_menu
204
- function wp_get_nav_menu_items($items) {
205
- global $polylang;
206
- $new_items = array();
207
- $offset = 0;
208
-
209
- foreach ($items as $key => $item) {
210
- if ($options = get_post_meta($item->ID, '_pll_menu_item', true)) {
211
- extract($options);
212
- $i = 0;
213
-
214
- foreach ($polylang->the_languages(array_merge(array('raw' => 1), $options)) as $language) {
215
- extract($language);
216
- $lang_item = clone $item;
217
- $lang_item->title = $show_flags && $show_names ? $flag.'&nbsp;'.$name : ($show_flags ? $flag : $name);
218
- $lang_item->url = $url;
219
- $lang_item->lang = $slug; // save this for use in nav_menu_link_attributes
220
- $lang_item->classes = $classes;
221
- $lang_item->menu_order += $offset + $i++;
222
- $new_items[] = $lang_item;
223
- }
224
- $offset += $i - 1;
225
- }
226
- else {
227
- $item->menu_order += $offset;
228
- $new_items[] = $item;
229
- }
230
- }
231
-
232
- return $new_items;
233
- }
234
-
235
- function get_ancestors($item) {
236
- $ids = array();
237
- $_anc_id = (int) $item->db_id;
238
- while(($_anc_id = get_post_meta($_anc_id, '_menu_item_menu_item_parent', true)) && !in_array($_anc_id, $ids))
239
- $ids[] = $_anc_id;
240
- return $ids;
241
- }
242
-
243
- // remove current-menu and current-menu-ancestor classes to lang switcher when not on the home page
244
- function wp_nav_menu_objects($items) {
245
- $r_ids = $k_ids = array();
246
-
247
- foreach ($items as $item) {
248
- if (is_array($item->classes) && in_array('current-lang', $item->classes)) {
249
- $item->classes = array_diff($item->classes, array('current-menu-item'));
250
- $r_ids = array_merge($r_ids, $this->get_ancestors($item)); // remove the classes for these ancestors
251
- }
252
- elseif (is_array($item->classes) && in_array('current-menu-item', $item->classes))
253
- $k_ids = array_merge($k_ids, $this->get_ancestors($item)); // keep the classes for these ancestors
254
- }
255
-
256
- $r_ids = array_diff($r_ids, $k_ids);
257
-
258
- foreach ($items as $item) {
259
- if (in_array($item->db_id, $r_ids))
260
- $item->classes = array_diff($item->classes, array('current-menu-ancestor', 'current-menu-parent', 'current_page_parent', 'current_page_ancestor'));
261
- }
262
-
263
- return $items;
264
- }
265
-
266
- // hreflang attribute for the language switcher menu items
267
- // available since WP3.6
268
- function nav_menu_link_attributes($atts, $item, $args) {
269
- if (isset($item->lang))
270
- $atts['hreflang'] = $item->lang;
271
- return $atts;
272
- }
273
-
274
- // get the menu in the correct language
275
- // avoid infinite loop and http://core.trac.wordpress.org/ticket/9968
276
- function get_nav_menu($term) {
277
- static $once = false;
278
- if (!$once && $tr = pll_get_term($term->term_id)) {
279
- $once = true; // breaks the loop
280
- $term = get_term($tr, 'nav_menu');
281
- $once = false; // for the next call
282
- }
283
-
284
- return $term;
285
- }
286
- }
287
-
288
- new Polylang_Nav_Menu();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
include/olt-manager.php ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * it is best practice that plugins do nothing before plugins_loaded is fired
5
+ * so it is what Polylang intends to do
6
+ * but some plugins load their text domain as soon as loaded, thus before plugins_loaded is fired
7
+ * this class differs text domain loading until the language is defined
8
+ * either in a plugins_loaded action or in a wp action (when the language is set from content on frontend)
9
+ *
10
+ * @since 1.2
11
+ */
12
+ class PLL_OLT_Manager {
13
+ protected $default_locale;
14
+ protected $list_textdomains = array(); // all text domains
15
+ public $labels = array(); // post types and taxonomies labels to translate
16
+
17
+ /*
18
+ * constructor: setups relevant filters
19
+ *
20
+ * @since 1.2
21
+ */
22
+ public function __construct() {
23
+ // saves the default locale before we start any language manipulation
24
+ $this->default_locale = get_locale();
25
+
26
+ // filters for text domain management
27
+ add_filter('override_load_textdomain', array(&$this, 'mofile'), 10, 3);
28
+ add_filter('gettext', array(&$this, 'gettext'), 10, 3);
29
+ add_filter('gettext_with_context', array(&$this, 'gettext_with_context'), 10, 4);
30
+
31
+ // loads text domains
32
+ add_action('pll_language_defined', array(&$this, 'load_textdomains'), 2); // after PLL_Frontend::pll_language_defined
33
+ add_action('pll_no_language_defined', array(&$this, 'load_textdomains'));
34
+
35
+ // allows Polylang to be the first plugin loaded ;-)
36
+ add_filter('pre_update_option_active_plugins', array(&$this, 'make_polylang_first'));
37
+ add_filter('pre_update_option_active_sitewide_plugins', array(&$this, 'make_polylang_first'));
38
+ }
39
+
40
+ /*
41
+ * loads text domains
42
+ *
43
+ * @since 0.1
44
+ */
45
+ public function load_textdomains() {
46
+ // our override_load_textdomain filter has done its job. let's remove it before calling load_textdomain
47
+ remove_filter('override_load_textdomain', array(&$this, 'mofile'));
48
+ remove_filter('gettext', array(&$this, 'gettext'), 10, 3);
49
+ remove_filter('gettext_with_context', array(&$this, 'gettext_with_context'), 10, 4);
50
+ $new_locale = get_locale();
51
+
52
+ // now we can load all overriden text domains with the right language
53
+ foreach ($this->list_textdomains as $textdomain) {
54
+ if (!load_textdomain($textdomain['domain'], str_replace("{$this->default_locale}.mo", "$new_locale.mo", $textdomain['mo'])))
55
+ // since WP 3.5 themes may store languages files in /wp-content/languages/themes
56
+ if (!load_textdomain($textdomain['domain'], WP_LANG_DIR . "/themes/{$textdomain['domain']}-$new_locale.mo"))
57
+ // since WP 3.7 plugins may store languages files in /wp-content/languages/plugins
58
+ load_textdomain($textdomain['domain'], WP_LANG_DIR . "/plugins/{$textdomain['domain']}-$new_locale.mo");
59
+ }
60
+
61
+ // translate labels of post types and taxonomies
62
+ foreach ($GLOBALS['wp_taxonomies'] as $tax)
63
+ $this->translate_labels($tax);
64
+ foreach ($GLOBALS['wp_post_types'] as $pt)
65
+ $this->translate_labels($pt);
66
+
67
+ // act only if the language has not been set early (before default textdomain loading and $wp_locale creation
68
+ if (did_action('after_setup_theme')) {
69
+ // reinitializes wp_locale for weekdays and months
70
+ unset($GLOBALS['wp_locale']);
71
+ $GLOBALS['wp_locale'] = new WP_Locale();
72
+ }
73
+
74
+ // allow plugins to translate text the same way we do for post types and taxonomies labels
75
+ do_action_ref_array('pll_translate_labels', array(&$this->labels));
76
+
77
+ // free memory
78
+ unset($this->default_locale, $this->list_textdomains, $this->labels);
79
+ }
80
+
81
+ /*
82
+ * saves all text domains in a table for later usage
83
+ *
84
+ * @since 0.1
85
+ *
86
+ * @param bool $bool not used
87
+ * @param string $domain text domain name
88
+ * @param string $mofile translation file name
89
+ * @return bool always true
90
+ */
91
+ public function mofile($bool, $domain, $mofile) {
92
+ $this->list_textdomains[] = array ('mo' => $mofile, 'domain' => $domain);
93
+ return true; // prevents WP loading text domains as we will load them all later
94
+ }
95
+
96
+ /*
97
+ * saves post types and taxonomies labels for a later usage
98
+ *
99
+ * @since 0.9
100
+ *
101
+ * @param string $translation not used
102
+ * @param string $text string to translate
103
+ * @param string $domain text domain
104
+ * @return string unmodified $translation
105
+ */
106
+ public function gettext($translation, $text, $domain) {
107
+ $this->labels[$text] = array('domain' => $domain);
108
+ return $translation;
109
+ }
110
+
111
+ /*
112
+ * saves post types and taxonomies labels for a later usage
113
+ *
114
+ * @since 0.9
115
+ *
116
+ * @param string $translation not used
117
+ * @param string $text string to translate
118
+ * @param string $context some comment to describe the context of string to translate
119
+ * @param string $domain text domain
120
+ * @return string unmodified $translation
121
+ */
122
+ public function gettext_with_context($translation, $text, $context, $domain) {
123
+ $this->labels[$text] = array('domain' => $domain, 'context' => $context);
124
+ return $translation;
125
+ }
126
+
127
+ /*
128
+ * translates post types and taxonomies labels once the language is known
129
+ *
130
+ * @since 0.9
131
+ *
132
+ * @param object $type either a post type or a taxonomy
133
+ */
134
+ public function translate_labels($type) {
135
+ foreach($type->labels as $key => $label)
136
+ if (is_string($label) && isset($this->labels[$label]))
137
+ $type->labels->$key = isset($this->labels[$label]['context']) ?
138
+ _x($label, $this->labels[$label]['context'], $this->labels[$label]['domain']) :
139
+ __($label, $this->labels[$label]['domain']);
140
+ }
141
+
142
+ /*
143
+ * allows Polylang to be the first plugin loaded ;-)
144
+ *
145
+ * @since 1.2
146
+ *
147
+ * @param array $plugins list of active plugins
148
+ * @return array list of active plugins
149
+ */
150
+ public function make_polylang_first($plugins) {
151
+ if ($key = array_search(POLYLANG_BASENAME, $plugins)) {
152
+ unset($plugins[$key]);
153
+ array_unshift($plugins, POLYLANG_BASENAME);
154
+ }
155
+ return $plugins;
156
+ }
157
+ }
include/plugins-compat.php CHANGED
@@ -1,20 +1,33 @@
1
  <?php
2
 
3
- class Polylang_Plugins_Compat {
4
- function __construct() {
5
- global $polylang;
 
 
 
 
 
 
 
 
 
 
 
 
 
6
 
7
  // YARPP
8
  // just makes YARPP aware of the language taxonomy (after Polylang registered it)
9
  add_action('init', create_function('',"\$GLOBALS['wp_taxonomies']['language']->yarpp_support = 1;"), 20);
10
 
11
  // WordPress SEO by Yoast
12
- add_filter('override_load_textdomain', array(&$this, 'wpseo_override_load_textdomain'), 10, 2);
13
  add_filter('get_terms_args', array(&$this, 'wpseo_remove_terms_filter'));
14
  add_filter('pll_home_url_white_list', create_function('$arr', "return array_merge(\$arr, array(array('file' => 'wordpress-seo')));"));
15
 
16
  // Custom field template
17
- add_action('dbx_post_advanced', array(&$this, 'cft_copy'));
18
 
19
  // Jetpack infinite scroll
20
  add_filter('pre_get_posts', array(&$this, 'jetpack_infinite_scroll'));
@@ -23,38 +36,91 @@ class Polylang_Plugins_Compat {
23
  add_filter('pll_home_url_black_list', create_function('$arr', "return array_merge(\$arr, array(array('function' => 'aq_resize')));"));
24
  }
25
 
26
- // Unfortunately WPSEO loads the text domain before Polylang is able to modify the locale
27
- // this hack works because Polylang is loaded before WPSEO...
28
- function wpseo_override_load_textdomain( $return, $domain ) {
29
- if ($domain == 'wordpress-seo' && !did_action('plugins_loaded')) {
30
- add_filter('plugins_loaded', create_function('', "load_plugin_textdomain('wordpress-seo', false, dirname(WPSEO_BASENAME).'/languages');"));
31
- return true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  }
33
- return $return;
34
  }
35
 
36
- // removes the language filter for the taxonomy sitemaps
37
- function wpseo_remove_terms_filter($args) {
 
 
 
 
 
 
 
 
38
  if (defined('WPSEO_VERSION') && isset($GLOBALS['wp_query']->query['sitemap']))
39
  $args['lang'] = 0;
40
  return $args;
41
  }
42
 
43
- // Custom field template does check $_REQUEST['post'] to populate the custom fields values
44
- function cft_copy() {
45
- global $post, $custom_field_template;
 
 
 
 
 
 
 
46
  if (isset($custom_field_template, $_REQUEST['from_post'], $_REQUEST['new_lang']) && !empty($post))
47
  $_REQUEST['post'] = $post->ID;
48
  }
49
 
50
- // Currently it is not possible to set the language in ajax url so let's use our cookie
51
- function jetpack_infinite_scroll($query) {
 
 
 
 
 
 
 
52
  if (isset($_GET['infinity'], $_GET['page'])) {
53
- $query->set('lang', $GLOBALS['polylang']->get_preferred_language()->slug);
54
  if (empty($qv['post_type']) && !$query->is_search)
55
  $query->set('post_type', 'post');
56
  }
57
  }
58
  }
59
-
60
- new Polylang_Plugins_Compat();
1
  <?php
2
 
3
+ /*
4
+ * manages compatibility with 3rd party plugins
5
+ * this class is available as soon as the plugin is loaded
6
+ *
7
+ * @since 1.0
8
+ */
9
+ class PLL_Plugins_Compat {
10
+
11
+ /*
12
+ * constructor
13
+ *
14
+ * @since 1.0
15
+ */
16
+ public function __construct() {
17
+ // WordPress Importer
18
+ add_action('init', array(&$this, 'maybe_wordpress_importer'));
19
 
20
  // YARPP
21
  // just makes YARPP aware of the language taxonomy (after Polylang registered it)
22
  add_action('init', create_function('',"\$GLOBALS['wp_taxonomies']['language']->yarpp_support = 1;"), 20);
23
 
24
  // WordPress SEO by Yoast
25
+ add_action('pll_language_defined', array(&$this, 'wpseo_translate_options'));
26
  add_filter('get_terms_args', array(&$this, 'wpseo_remove_terms_filter'));
27
  add_filter('pll_home_url_white_list', create_function('$arr', "return array_merge(\$arr, array(array('file' => 'wordpress-seo')));"));
28
 
29
  // Custom field template
30
+ add_action('add_meta_boxes', array(&$this, 'cft_copy'), 10, 2);
31
 
32
  // Jetpack infinite scroll
33
  add_filter('pre_get_posts', array(&$this, 'jetpack_infinite_scroll'));
36
  add_filter('pll_home_url_black_list', create_function('$arr', "return array_merge(\$arr, array(array('function' => 'aq_resize')));"));
37
  }
38
 
39
+ /*
40
+ * WordPress Importer
41
+ * if WordPress Importer is active, replace the wordpress_importer_init function
42
+ *
43
+ * @since 1.2
44
+ */
45
+ function maybe_wordpress_importer() {
46
+ if (class_exists('WP_Import')) {
47
+ remove_action('admin_init', 'wordpress_importer_init');
48
+ add_action('admin_init', array(&$this, 'wordpress_importer_init'));
49
+ }
50
+ }
51
+
52
+ /*
53
+ * WordPress Importer
54
+ * loads our child class PLL_WP_Import instead of WP_Import
55
+ *
56
+ * @since 1.2
57
+ */
58
+ function wordpress_importer_init() {
59
+ $class = new ReflectionClass('WP_Import');
60
+ load_plugin_textdomain( 'wordpress-importer', false, basename(dirname( $class->getFileName() )) . '/languages' );
61
+
62
+ $GLOBALS['wp_import'] = new PLL_WP_Import();
63
+ register_importer( 'wordpress', 'WordPress', __('Import <strong>posts, pages, comments, custom fields, categories, and tags</strong> from a WordPress export file.', 'wordpress-importer'), array( $GLOBALS['wp_import'], 'dispatch' ) );
64
+ }
65
+
66
+ /*
67
+ * WordPress SEO by Yoast
68
+ * reloads options once the language has been defined to enable translations
69
+ * useful only when the language is set from content
70
+ *
71
+ * @since 1.2
72
+ *
73
+ */
74
+ public function wpseo_translate_options() {
75
+ if (defined('WPSEO_VERSION') && !PLL_ADMIN && did_action('wp_loaded')) {
76
+ global $wpseo_front;
77
+ foreach ( get_wpseo_options_arr() as $opt )
78
+ $wpseo_front->options = array_merge( $wpseo_front->options, (array) get_option( $opt ) );
79
  }
 
80
  }
81
 
82
+ /*
83
+ * WordPress SEO by Yoast
84
+ * removes the language filter for the taxonomy sitemaps
85
+ *
86
+ * @since 1.0.3
87
+ *
88
+ * @param array $args get_terms arguments
89
+ * @return array modified list of arguments
90
+ */
91
+ public function wpseo_remove_terms_filter($args) {
92
  if (defined('WPSEO_VERSION') && isset($GLOBALS['wp_query']->query['sitemap']))
93
  $args['lang'] = 0;
94
  return $args;
95
  }
96
 
97
+ /*
98
+ * Custom field template does check $_REQUEST['post'] to populate the custom fields values
99
+ *
100
+ * @since 1.0.2
101
+ *
102
+ * @param string $post_type unused
103
+ * @param object $post current post object
104
+ */
105
+ public function cft_copy($post_type, $post) {
106
+ global $custom_field_template;
107
  if (isset($custom_field_template, $_REQUEST['from_post'], $_REQUEST['new_lang']) && !empty($post))
108
  $_REQUEST['post'] = $post->ID;
109
  }
110
 
111
+ /*
112
+ * Jetpack infinite scroll
113
+ * Currently it is not possible to set the language in ajax url so let's use our cookie
114
+ *
115
+ * @since 1.1.1
116
+ *
117
+ * @param object $query WP_Query instance
118
+ */
119
+ public function jetpack_infinite_scroll($query) {
120
  if (isset($_GET['infinity'], $_GET['page'])) {
121
+ $query->set('lang', $GLOBALS['polylang']->choose_lang->get_preferred_language()->slug);
122
  if (empty($qv['post_type']) && !$query->is_search)
123
  $query->set('post_type', 'post');
124
  }
125
  }
126
  }
 
 
include/switcher.php ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * a class to display a language switcher on frontend
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Switcher {
9
+
10
+ /*
11
+ * returns options available for the language switcher - menu or widget
12
+ * either strings to display the options or default values
13
+ *
14
+ * @since 0.7
15
+ *
16
+ * @param string $type optional either 'menu' or 'widget', defaults to 'widget'
17
+ * @param string $key optional either 'string' or 'default', defaults to 'string'
18
+ * @return array list of switcher options srings or default values
19
+ */
20
+ static public function get_switcher_options($type = 'widget', $key ='string') {
21
+ $options = array(
22
+ 'show_names' => array('string' => __('Displays language names', 'polylang'), 'default' => 1),
23
+ 'show_flags' => array('string' => __('Displays flags', 'polylang'), 'default' => 0),
24
+ 'force_home' => array('string' => __('Forces link to front page', 'polylang'), 'default' => 0),
25
+ 'hide_current' => array('string' => __('Hides the current language', 'polylang'), 'default' => 0),
26
+ );
27
+
28
+ if ($type != 'menu')
29
+ $options['dropdown'] = array('string' => __('Displays as dropdown', 'polylang'), 'default' => 0);
30
+
31
+ return array_map(create_function('$v', "return \$v['$key'];"), $options);
32
+ }
33
+
34
+ /*
35
+ * get the language elements for use in a walker
36
+ *
37
+ * list of parameters accepted in $args:
38
+ * @see PLL_Switcher::the_languages
39
+ *
40
+ * @since 1.2
41
+ *
42
+ * @param object $links instance of PLL_Frontend_Links
43
+ * @param array $args
44
+ * @return array
45
+ */
46
+ protected function get_elements($links, $args) {
47
+ extract($args);
48
+
49
+ foreach ($links->model->get_languages_list(array('hide_empty' => $hide_if_empty)) as $language) {
50
+ $id = (int) $language->term_id;
51
+ $slug = $language->slug;
52
+ $classes = array('lang-item', 'lang-item-' . esc_attr($id), 'lang-item-' . esc_attr($slug));
53
+
54
+ if (pll_current_language() == $slug) {
55
+ if ($hide_current)
56
+ continue; // hide current language
57
+ else
58
+ $classes[] = 'current-lang';
59
+ }
60
+
61
+ $url = $post_id !== null && ($tr_id = $links->model->get_post($post_id, $language)) ? get_permalink($tr_id) :
62
+ ($post_id === null && !$force_home ? $links->get_translation_url($language) : null);
63
+
64
+ if (empty($url))
65
+ $classes[] = 'no-translation';
66
+
67
+ $url = apply_filters('pll_the_language_link', $url, $slug, $language->locale);
68
+
69
+ // hide if no translation exists
70
+ if (empty($url) && $hide_if_no_translation)
71
+ continue;
72
+
73
+ $url = empty($url) ? $links->get_home_url($language) : $url ; // if the page is not translated, link to the home page
74
+
75
+ $name = $show_names || !$show_flags || $raw ? ($display_names_as == 'slug' ? $slug : $language->name) : '';
76
+ $flag = $raw && !$show_flags ? $language->flag_url : ($show_flags ? $language->flag : '');
77
+
78
+ $out[] = compact('id', 'slug', 'name', 'url', 'flag', 'current_lang', 'no_translation', 'classes');
79
+ }
80
+ return empty($out) ? array() : $out;
81
+
82
+ }
83
+
84
+ /*
85
+ * displays a language switcher
86
+ * or returns the raw elements to build a custom language switcher
87
+ *
88
+ * list of parameters accepted in $args:
89
+ *
90
+ * dropdown => the list is displayed as dropdown if set to 1, defaults to 0
91
+ * echo => echoes the list if set to 1, defaults to 1
92
+ * hide_if_empty => hides languages with no posts (or pages) if set to 1, defaults to 1
93
+ * show_flags => displays flags if set to 1, defaults to 0
94
+ * show_names => show language names if set to 1, defaults to 1
95
+ * display_names_as => wether to display the language name or its slug, valid options are 'slug' and 'name', defaults to name
96
+ * force_home => will always link to home in translated language if set to 1, defaults to 0
97
+ * hide_if_no_translation => hide the link if there is no translation if set to 1, defaults to 0
98
+ * hide_current => hide the current language if set to 1, defaults to 0
99
+ * post_id => returns links to translations of post defined by post_id if set, defaults not set
100
+ * raw => return a raw array instead of html markup if set to 1, defaults to 0
101
+ *
102
+ * @since 0.1
103
+ *
104
+ * @param object $links instance of PLL_Frontend_Links
105
+ * @param array $args
106
+ * @return string|array either the html markup of the switcher or the raw elements to build a custom language switcher
107
+ */
108
+ public function the_languages($links, $args = '') {
109
+ $defaults = array(
110
+ 'dropdown' => 0, // display as list and not as dropdown
111
+ 'echo' => 1, // echoes the list
112
+ 'hide_if_empty' => 1, // hides languages with no posts (or pages)
113
+ 'menu' => 0, // not for nav menu (this argument is deprecated since v1.1.1)
114
+ 'show_flags' => 0, // don't show flags
115
+ 'show_names' => 1, // show language names
116
+ 'display_names_as' => 'name', // valid options are slug and name
117
+ 'force_home' => 0, // tries to find a translation
118
+ 'hide_if_no_translation' => 0, // don't hide the link if there is no translation
119
+ 'hide_current' => 0, // don't hide current language
120
+ 'post_id' => null, // if not null, link to translations of post defined by post_id
121
+ 'raw' => 0, // set this to true to build your own custom language switcher
122
+ );
123
+ $args = wp_parse_args($args, $defaults);
124
+ $elements = $this->get_elements($links, $args);
125
+
126
+ if ($args['raw'])
127
+ return $elements;
128
+
129
+ if ($args['dropdown']) {
130
+ $walker = new PLL_Walker_Dropdown();
131
+ $args['selected'] = pll_current_language();
132
+ }
133
+ else
134
+ $walker = new PLL_Walker_List();
135
+
136
+ $out = apply_filters('pll_the_languages', $walker->walk($elements, $args), $args);
137
+
138
+ if ($args['echo'])
139
+ echo $out;
140
+ return $out;
141
+ }
142
+ }
143
+
144
+ /*
145
+ * displays a language list
146
+ *
147
+ * @since 1.2
148
+ */
149
+ class PLL_Walker_List extends Walker {
150
+ var $db_fields = array ('parent' => 'parent', 'id' => 'id');
151
+
152
+ /*
153
+ * outputs one element
154
+ *
155
+ * @since 1.2
156
+ *
157
+ * @see Walker::start_el
158
+ */
159
+ function start_el( &$output, $element, $depth = 0, $args = array(), $current_object_id = 0 ) {
160
+ $output .= sprintf(
161
+ "\t".'<li class="%s"><a hreflang="%s" href="%s">%s</a></li>'."\n",
162
+ implode(' ', $element->classes),
163
+ esc_attr($element->slug),
164
+ esc_url($element->url),
165
+ $args['show_flags'] && $args['show_names'] ? $element->flag.'&nbsp;'.esc_html($element->name) : $element->flag.esc_html($element->name)
166
+ );
167
+ }
168
+
169
+ /*
170
+ * overrides Walker::display_element as it expects an object with a parent property
171
+ *
172
+ * @since 1.2
173
+ *
174
+ * @see Walker::display_element
175
+ */
176
+ function display_element( $element, &$children_elements, $max_depth, $depth = 0, $args, &$output ) {
177
+ $element = (object) $element; // make sure we have an object
178
+ $element->parent = $element->id = 0; // don't care about this
179
+ parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
180
+ }
181
+
182
+ /*
183
+ * overrides Walker:walk to set depth argument
184
+ *
185
+ * @since 1.2
186
+ *
187
+ * @param array $elements elements to display
188
+ * @param array $args
189
+ * @return string
190
+ */
191
+ function walk($elements, $args = array()) {
192
+ return parent::walk($elements, -1, $args);
193
+ }
194
+ }
include/upgrade.php ADDED
@@ -0,0 +1,338 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * manages Polylang upgrades
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Upgrade {
9
+ public $options;
10
+
11
+ /*
12
+ * constructor
13
+ *
14
+ * @since 1.2
15
+ */
16
+ public function __construct(&$options) {
17
+ $this->options = &$options;
18
+ }
19
+
20
+ /*
21
+ * upgrades if possible otherwise die to avoid activation
22
+ *
23
+ * @since 1.2
24
+ */
25
+ public function upgrade_at_activation() {
26
+ if (!$this->can_upgrade()) {
27
+ ob_start();
28
+ $this->admin_notices();
29
+ die(ob_get_contents());
30
+ }
31
+ }
32
+
33
+ /*
34
+ * upgrades if possible otherwise returns false to stop Polylang loading
35
+ *
36
+ * @since 1.2
37
+ *
38
+ * @return bool true if upgrade is possible, false otherwise
39
+ */
40
+ public function upgrade() {
41
+ if (!$this->can_upgrade()) {
42
+ add_action('all_admin_notices', array(&$this, 'admin_notices'));
43
+ return false;
44
+ }
45
+ return true;
46
+ }
47
+
48
+
49
+ /*
50
+ * check if we the previous version is not too old
51
+ * upgrades if OK
52
+ *
53
+ * @since 1.2
54
+ *
55
+ * @return bool true if upgrade is possible, false otherwise
56
+ */
57
+ public function can_upgrade() {
58
+ // don't manage upgrade from version < 0.8
59
+ if (version_compare($this->options['version'], '0.8', '<'))
60
+ return false;
61
+
62
+ $this->_upgrade();
63
+ return true;
64
+ }
65
+
66
+ /*
67
+ * displays a notice when ugrading from a too old version
68
+ *
69
+ * @since 1.0
70
+ */
71
+ public function admin_notices() {
72
+ load_plugin_textdomain('polylang', false, basename(POLYLANG_DIR).'/languages');
73
+ printf(
74
+ '<div class="error"><p>%s</p><p>%s</p></div>',
75
+ __('Polylang has been deactivated because you upgraded from a too old version.', 'polylang'),
76
+ sprintf(
77
+ __('Please upgrade first to %s before ugrading to %s.', 'polylang'),
78
+ '<strong>0.9.8</strong>',
79
+ POLYLANG_VERSION
80
+ )
81
+ );
82
+ }
83
+
84
+ /*
85
+ * upgrades the plugin depending on the previous version
86
+ *
87
+ * @since 1.2
88
+ */
89
+ protected function _upgrade() {
90
+ foreach (array('0.9', '1.0', '1.1', '1.2') as $version)
91
+ if (version_compare($this->options['version'], $version, '<'))
92
+ call_user_func(array(&$this, 'upgrade_' . str_replace('.', '_', $version)));
93
+
94
+ $this->options['version'] = POLYLANG_VERSION;
95
+ update_option('polylang', $this->options);
96
+ }
97
+
98
+ /*
99
+ * upgrades if the previous version is < 0.9
100
+ *
101
+ * @since 1.2
102
+ */
103
+ protected function upgrade_0_9() {
104
+ $this->options['sync'] = defined('PLL_SYNC') && !PLL_SYNC ? 0 : 1; // the option replaces PLL_SYNC in 0.9
105
+ }
106
+
107
+ /*
108
+ * upgrades if the previous version is < 1.0
109
+ *
110
+ * @since 1.2
111
+ */
112
+ protected function upgrade_1_0() {
113
+ // the option replaces PLL_MEDIA_SUPPORT in 1.0
114
+ $this->options['media_support'] = defined('PLL_MEDIA_SUPPORT') && !PLL_MEDIA_SUPPORT ? 0 : 1;
115
+
116
+ // split the synchronization options in 1.0
117
+ $this->options['sync'] = empty($this->options['sync']) ? array() : array_keys(PLL_Settings::list_metas_to_sync());
118
+
119
+ add_action('wp_loaded', array(&$this, 'wp_loaded_upgrade_1_0')); // once post types and taxonomies are set
120
+ }
121
+
122
+ /*
123
+ * upgrades if the previous version is < 1.0
124
+ * actions that need to be taken after all post types and taxonomies are known
125
+ *
126
+ * @since 1.2
127
+ */
128
+ public function wp_loaded_upgrade_1_0() {
129
+ // set default values for post types and taxonomies to translate
130
+ $this->options['post_types'] = array_values(get_post_types(array('_builtin' => false, 'show_ui => true')));
131
+ $this->options['taxonomies'] = array_values(get_taxonomies(array('_builtin' => false, 'show_ui => true')));
132
+ update_option('polylang', $this->options);
133
+
134
+ flush_rewrite_rules(); // rewrite rules have been modified in 1.0
135
+ }
136
+
137
+ /*
138
+ * upgrades if the previous version is < 1.1
139
+ *
140
+ * @since 1.2
141
+ */
142
+ protected function upgrade_1_1() {
143
+ // update strings register with icl_register_string
144
+ $strings = get_option('polylang_wpml_strings');
145
+ if ($strings) {
146
+ foreach ($strings as $key => $string)
147
+ $strings[$key]['icl'] = 1;
148
+ update_option('polylang_wpml_strings', $strings);
149
+ }
150
+
151
+ // move polylang_widgets options
152
+ if ($widgets = get_option('polylang_widgets')) {
153
+ $this->options['widgets'] = $widgets;
154
+ delete_option('polylang_widgets');
155
+ }
156
+
157
+ // update nav menus
158
+ if ($menu_lang = get_option('polylang_nav_menus')) {
159
+
160
+ foreach ($menu_lang as $location => $arr) {
161
+ if (!in_array($location, array_keys(get_registered_nav_menus())))
162
+ continue;
163
+
164
+ $switch_options = array_slice($arr, -5, 5);
165
+ $translations = array_diff_key($arr, $switch_options);
166
+ $has_switcher = array_shift($switch_options);
167
+
168
+ $languages = get_terms('language', array('hide_empty' => 0)); // don't use get_languages_list which can't work with the old model
169
+ foreach ($languages as $lang) {
170
+ $menu_locations[$location.(pll_default_language() == $lang->slug ? '' : '#' . $lang->slug)] = empty($translations[$lang->slug]) ? 0 : $translations[$lang->slug];
171
+
172
+ // create the menu items
173
+ if (!empty($has_switcher)) {
174
+ $menu_item_db_id = wp_update_nav_menu_item($translations[$lang->slug], 0, array(
175
+ 'menu-item-title' => __('Language switcher', 'polylang'),
176
+ 'menu-item-url' => '#pll_switcher',
177
+ 'menu-item-status' => 'publish'
178
+ ));
179
+
180
+ update_post_meta($menu_item_db_id, '_pll_menu_item', $switch_options);
181
+ }
182
+ }
183
+ }
184
+
185
+ if (!empty($menu_locations))
186
+ set_theme_mod('nav_menu_locations', $menu_locations);
187
+
188
+ delete_option('polylang_nav_menus');
189
+ }
190
+ }
191
+
192
+ /*
193
+ * upgrades if the previous version is < 1.2
194
+ *
195
+ * @since 1.2
196
+ */
197
+ protected function upgrade_1_2() {
198
+ $this->options['domains'] = array(); // option added in 1.2
199
+
200
+ // it was a bad idea to pollute WP option with our custom nav menu locations
201
+ $menus = get_theme_mod('nav_menu_locations');
202
+ if (is_array($menus)) {
203
+ foreach ($menus as $loc => $menu)
204
+ if (strpos($loc, '#'))
205
+ unset($menus[$loc]);
206
+
207
+ set_theme_mod('nav_menu_locations', $menus);
208
+ }
209
+
210
+ // need to register the taxonomies
211
+ foreach (array('language', 'term_language', 'post_translations', 'term_translations') as $taxonomy)
212
+ register_taxonomy($taxonomy, null , array('label' => false, 'public' => false, 'query_var' => false, 'rewrite' => false));
213
+
214
+ // abort if the db upgrade has already been done previously
215
+ if (get_terms('term_language', array('hide_empty' => 0)))
216
+ return;
217
+
218
+ set_time_limit(0); // in case we upgrade a huge site
219
+
220
+ // upgrade old model based on metas to new model based on taxonomies
221
+ global $wpdb;
222
+ $wpdb->termmeta = $wpdb->prefix . 'termmeta'; // registers the termmeta table in wpdb
223
+ $languages = get_terms('language', array('hide_empty' => 0)); // don't use get_languages_list which can't work with the old model
224
+
225
+ foreach($languages as $lang) {
226
+ // first update language with new storage for locale and text direction
227
+ $text_direction = get_metadata('term', $lang->term_id, '_rtl', true);
228
+ $desc = serialize(array('locale' => $lang->description, 'rtl' => $text_direction));
229
+ wp_update_term((int) $lang->term_id, 'language', array('description' => $desc));
230
+
231
+ // add language to new 'term_language' taxonomy
232
+ $term_lang = wp_insert_term($lang->name, 'term_language', array('slug' => 'pll_' . $lang->slug));
233
+ $lang_tt_ids[$lang->term_id] = $term_lang['term_taxonomy_id']; // keep the term taxonomy id for future
234
+ }
235
+
236
+ // get all terms with a language defined
237
+ $terms = $wpdb->get_results("SELECT term_id, meta_value FROM $wpdb->termmeta WHERE meta_key = '_language'");
238
+ foreach ($terms as $key => $term)
239
+ $terms[$key] = $wpdb->prepare('(%d, %d)', $term->term_id, $lang_tt_ids[$term->meta_value]);
240
+
241
+ $terms = array_unique($terms);
242
+
243
+ // assign language to each term
244
+ if (!empty($terms))
245
+ $wpdb->query("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id) VALUES " . implode(',', $terms));
246
+
247
+ // translations
248
+ foreach (array('post', 'term') as $type) {
249
+ $table = $type . 'meta';
250
+ $terms = $slugs = $tts = $trs = array();
251
+
252
+ // get all translated objects
253
+ $objects = $wpdb->get_col("SELECT DISTINCT meta_value FROM {$wpdb->$table} WHERE meta_key = '_translations'");
254
+
255
+ foreach ($objects as $obj) {
256
+ $term = uniqid('pll_'); // the term name
257
+ $terms[] = $wpdb->prepare('("%1$s", "%1$s")', $term);
258
+ $slugs[] = $wpdb->prepare('"%s"', $term);
259
+ $translations = maybe_unserialize(maybe_unserialize($obj)); // 2 unserialize due to an old storage bug
260
+ $description[$term] = serialize($translations);
261
+ }
262
+
263
+ $terms = array_unique($terms);
264
+
265
+ // insert terms
266
+ if (!empty($terms))
267
+ $wpdb->query("INSERT INTO $wpdb->terms (slug, name) VALUES " . implode(',', $terms));
268
+
269
+ // get all terms with their term_id
270
+ $terms = $wpdb->get_results("SELECT term_id, slug FROM $wpdb->terms WHERE slug IN (" . implode(',', $slugs) . ")");
271
+
272
+ // prepare terms taxonomy relationship
273
+ foreach ($terms as $term)
274
+ $tts[] = $wpdb->prepare('(%d, "%s", "%s")', $term->term_id, $type . '_translations', $description[$term->slug]);
275
+
276
+ $tts = array_unique($tts);
277
+
278
+ // insert term_taxonomy
279
+ if (!empty($tts))
280
+ $wpdb->query("INSERT INTO $wpdb->term_taxonomy (term_id, taxonomy, description) VALUES " . implode(',', $tts));
281
+
282
+ // get all terms with term_taxonomy_id
283
+ $terms = get_terms($type . '_translations', array('hide_empty' => false));
284
+
285
+ // prepare objects relationships
286
+ foreach ($terms as $term) {
287
+ $translations = unserialize($term->description);
288
+ foreach ($translations as $object_id)
289
+ if (!empty($object_id))
290
+ $trs[] = $wpdb->prepare('(%d, %d)', $object_id, $term->term_taxonomy_id);
291
+ }
292
+
293
+ $trs = array_unique($trs);
294
+
295
+ // insert term_relationships
296
+ if (!empty($trs))
297
+ $wpdb->query("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id) VALUES " . implode(',', $trs));
298
+
299
+ // strings translations
300
+ foreach($languages as $lang) {
301
+ if ($strings = get_option('polylang_mo'.$lang->term_id)) {
302
+ $mo = new PLL_MO();
303
+ foreach ($strings as $msg)
304
+ $mo->add_entry($mo->make_entry($msg[0], $msg[1]));
305
+ $mo->export_to_db($lang);
306
+ }
307
+ }
308
+ }
309
+ }
310
+
311
+ /*
312
+ * upgrades if the previous version is < 1.3
313
+ * FIXME don't delete old data in 1.2, just in case...
314
+ * ready for the next version
315
+ */
316
+ protected function upgrade_1_3() {
317
+ // suppress data of the old model < 1.2
318
+ global $wpdb;
319
+ $wpdb->termmeta = $wpdb->prefix . 'termmeta'; // registers the termmeta table in wpdb
320
+
321
+ // do nothing if the termmeta table does not exists
322
+ if (count($wpdb->get_results("SHOW TABLES LIKE '$wpdb->termmeta'"))) {
323
+ $wpdb->query("DELETE FROM $wpdb->postmeta WHERE meta_key = '_translations'");
324
+ $wpdb->query("DELETE FROM $wpdb->termmeta WHERE meta_key = '_language'");
325
+ $wpdb->query("DELETE FROM $wpdb->termmeta WHERE meta_key = '_rtl'");
326
+ $wpdb->query("DELETE FROM $wpdb->termmeta WHERE meta_key = '_translations'");
327
+
328
+ // delete the termmeta table only if it is empty as other plugins may use it
329
+ if (!$wpdb->get_var("SELECT COUNT(*) FROM $wpdb->termmeta;"))
330
+ $wpdb->query("DROP TABLE $wpdb->termmeta;");
331
+ }
332
+
333
+ // delete the strings translations
334
+ $languages = get_terms('language', array('hide_empty'=>false));
335
+ foreach ($languages as $lang)
336
+ delete_option('polylang_mo'.$lang->term_id);
337
+ }
338
+ }
include/walker-dropdown.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * displays languages in a dropdown list
5
+ *
6
+ * @since 1.2
7
+ */
8
+ class PLL_Walker_Dropdown extends Walker {
9
+ var $db_fields = array ('parent' => 'parent', 'id' => 'id');
10
+
11
+ /*
12
+ * outputs one element
13
+ *
14
+ * @since 1.2
15
+ *
16
+ * @see Walker::start_el
17
+ */
18
+ function start_el( &$output, $element, $depth = 0, $args = array(), $current_object_id = 0 ) {
19
+ $value = isset($args['value']) && $args['value'] ? $args['value'] : 'slug';
20
+ $output .= sprintf(
21
+ "\t".'<option value="%s"%s>%s</option>'."\n",
22
+ esc_attr($element->$value),
23
+ isset($args['selected']) && $args['selected'] == $element->$value ? ' selected="selected"' : '',
24
+ esc_html($element->name)
25
+ );
26
+ }
27
+
28
+ /*
29
+ * overrides Walker::display_element as expects an object with a parent property
30
+ *
31
+ * @since 1.2
32
+ *
33
+ * @see Walker::display_element
34
+ */
35
+ function display_element( $element, &$children_elements, $max_depth, $depth = 0, $args, &$output ) {
36
+ $element = (object) $element; // make sure we have an object
37
+ $element->parent = $element->id = 0; // don't care about this
38
+ parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
39
+ }
40
+
41
+ /*
42
+ * starts teh output of the dropdown list
43
+ *
44
+ * @since 1.2
45
+ *
46
+ * @param array $elements elements to display
47
+ * @param array $args
48
+ * @return string
49
+ */
50
+ function walk($elements, $args = array()) {
51
+ return sprintf(
52
+ '<select name="%1$s" id="%1$s"%2$s>' . "\n" . '%3$s' . "\n" . '</select>'."\n",
53
+ empty($args['name']) ? 'lang_choice' : esc_attr($args['name']),
54
+ empty($args['class']) ? '' : ' class="' . esc_attr($args['class']) . '"',
55
+ parent::walk($elements, -1, $args)
56
+ );
57
+ }
58
+ }
include/{calendar.php → widget-calendar.php} RENAMED
@@ -1,38 +1,57 @@
1
  <?php
2
- // obliged to rewrite the whole WordPress function as there is no filter on sql queries and only a filter on final output
3
- // a request for making a filter on sql queries exists: http://core.trac.wordpress.org/ticket/15202
4
- // method used in 0.4.x: use of the get_calendar filter and overwrite the output of get_calendar function -> not very efficient (add 4 to 5 sql queries)
5
- // since 0.5: remove the WP widget and replace it by our own -> our language filter will not work if get_calendar is called directly by a theme
6
 
7
  if(!class_exists('WP_Widget_Calendar')){
8
  require_once( ABSPATH . '/wp-includes/default-widgets.php' );
9
  }
10
 
11
- class Polylang_Widget_Calendar extends WP_Widget_Calendar {
12
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  function widget( $args, $instance ) {
14
- global $polylang; #added#
15
-
16
  extract($args);
17
  $title = apply_filters('widget_title', empty($instance['title']) ? '&nbsp;' : $instance['title'], $instance, $this->id_base);
18
  echo $before_widget;
19
  if ( $title )
20
  echo $before_title . $title . $after_title;
21
  echo '<div id="calendar_wrap">';
22
- isset($polylang) && $polylang->get_languages_list() && $polylang->get_current_language() ? $this->get_calendar() : get_calendar(); #modified#
23
  echo '</div>';
24
  echo $after_widget;
25
  }
26
 
27
- // modified version of WP get_calendar function to filter the query
28
- function get_calendar($initial = true, $echo = true) {
29
- global $wpdb, $m, $monthnum, $year, $wp_locale, $posts;
30
- global $polylang; #added#
31
-
32
- $lang = $polylang->get_current_language()->term_taxonomy_id; #added#
 
 
 
 
 
 
 
 
33
 
34
  $cache = array();
35
- $key = md5( $lang . $m . $monthnum . $year ); #modified#
36
  if ( $cache = wp_cache_get( 'get_calendar', 'calendar' ) ) {
37
  if ( is_array($cache) && isset( $cache[ $key ] ) ) {
38
  if ( $echo ) {
@@ -88,17 +107,15 @@ class Polylang_Widget_Calendar extends WP_Widget_Calendar {
88
 
89
  // Get the next and previous month and year with at least one post
90
  $previous = $wpdb->get_row("SELECT MONTH(post_date) AS month, YEAR(post_date) AS year
91
- FROM $wpdb->posts
92
- INNER JOIN $wpdb->term_relationships AS tr ON tr.object_id = ID
93
  WHERE post_date < '$thisyear-$thismonth-01'
94
- AND post_type = 'post' AND post_status = 'publish' AND tr.term_taxonomy_id = $lang
95
  ORDER BY post_date DESC
96
  LIMIT 1"); #modified#
97
  $next = $wpdb->get_row("SELECT MONTH(post_date) AS month, YEAR(post_date) AS year
98
- FROM $wpdb->posts
99
- INNER JOIN $wpdb->term_relationships AS tr ON tr.object_id = ID
100
  WHERE post_date > '$thisyear-$thismonth-{$last_day} 23:59:59'
101
- AND post_type = 'post' AND post_status = 'publish' AND tr.term_taxonomy_id = $lang
102
  ORDER BY post_date ASC
103
  LIMIT 1"); #modified#
104
 
@@ -151,10 +168,9 @@ class Polylang_Widget_Calendar extends WP_Widget_Calendar {
151
 
152
  // Get days with posts
153
  $dayswithposts = $wpdb->get_results("SELECT DISTINCT DAYOFMONTH(post_date)
154
- FROM $wpdb->posts
155
- INNER JOIN $wpdb->term_relationships AS tr ON tr.object_id = ID
156
  WHERE post_date >= '{$thisyear}-{$thismonth}-01 00:00:00'
157
- AND post_type = 'post' AND post_status = 'publish' AND tr.term_taxonomy_id = $lang
158
  AND post_date <= '{$thisyear}-{$thismonth}-{$last_day} 23:59:59'", ARRAY_N); #modified#
159
  if ( $dayswithposts ) {
160
  foreach ( (array) $dayswithposts as $daywith ) {
@@ -171,11 +187,10 @@ class Polylang_Widget_Calendar extends WP_Widget_Calendar {
171
 
172
  $ak_titles_for_day = array();
173
  $ak_post_titles = $wpdb->get_results("SELECT ID, post_title, DAYOFMONTH(post_date) as dom "
174
- ."FROM $wpdb->posts "
175
- ."INNER JOIN $wpdb->term_relationships AS tr ON tr.object_id = ID "
176
  ."WHERE post_date >= '{$thisyear}-{$thismonth}-01 00:00:00' "
177
  ."AND post_date <= '{$thisyear}-{$thismonth}-{$last_day} 23:59:59' "
178
- ."AND post_type = 'post' AND post_status = 'publish' AND tr.term_taxonomy_id = $lang"
179
  ); #modified#
180
  if ( $ak_post_titles ) {
181
  foreach ( (array) $ak_post_titles as $ak_post_title ) {
1
  <?php
 
 
 
 
2
 
3
  if(!class_exists('WP_Widget_Calendar')){
4
  require_once( ABSPATH . '/wp-includes/default-widgets.php' );
5
  }
6
 
7
+ /*
8
+ * obliged to rewrite the whole functionnality as there is no filter on sql queries and only a filter on final output
9
+ * a request for making a filter on sql queries exists: http://core.trac.wordpress.org/ticket/15202
10
+ * method used in 0.4.x: use of the get_calendar filter and overwrite the output of get_calendar function -> not very efficient (add 4 to 5 sql queries)
11
+ * method used since 0.5: remove the WP widget and replace it by our own -> our language filter will not work if get_calendar is called directly by a theme
12
+ *
13
+ * @since 0.5
14
+ */
15
+ class PLL_Widget_Calendar extends WP_Widget_Calendar {
16
+
17
+ /*
18
+ * displays the widget
19
+ * modified version of the parent function to call our own get_calendar function
20
+ *
21
+ * @since 0.5
22
+ *
23
+ * @param array $args Display arguments including before_title, after_title, before_widget, and after_widget.
24
+ * @param array $instance The settings for the particular instance of the widget
25
+ */
26
  function widget( $args, $instance ) {
 
 
27
  extract($args);
28
  $title = apply_filters('widget_title', empty($instance['title']) ? '&nbsp;' : $instance['title'], $instance, $this->id_base);
29
  echo $before_widget;
30
  if ( $title )
31
  echo $before_title . $title . $after_title;
32
  echo '<div id="calendar_wrap">';
33
+ empty($GLOBALS['polylang']->curlang) ? get_calendar() : self::get_calendar(); #modified#
34
  echo '</div>';
35
  echo $after_widget;
36
  }
37
 
38
+ /*
39
+ * modified version of WP get_calendar function to filter the query
40
+ *
41
+ * @since 0.5
42
+ *
43
+ * @param bool $initial Optional, default is true. Use initial calendar names.
44
+ * @param bool $echo Optional, default is true. Set to false for return.
45
+ * @return string|null String when retrieving, null when displaying.
46
+ */
47
+ static function get_calendar($initial = true, $echo = true) {
48
+ global $wpdb, $m, $monthnum, $year, $wp_locale, $posts, $polylang; #modified#
49
+
50
+ $join_clause = $polylang->model->join_clause('post'); #added#
51
+ $where_clause = $polylang->model->where_clause($polylang->curlang, 'post'); #added#
52
 
53
  $cache = array();
54
+ $key = md5( $polylang->curlang->slug . $m . $monthnum . $year ); #modified#
55
  if ( $cache = wp_cache_get( 'get_calendar', 'calendar' ) ) {
56
  if ( is_array($cache) && isset( $cache[ $key ] ) ) {
57
  if ( $echo ) {
107
 
108
  // Get the next and previous month and year with at least one post
109
  $previous = $wpdb->get_row("SELECT MONTH(post_date) AS month, YEAR(post_date) AS year
110
+ FROM $wpdb->posts $join_clause
 
111
  WHERE post_date < '$thisyear-$thismonth-01'
112
+ AND post_type = 'post' AND post_status = 'publish' $where_clause
113
  ORDER BY post_date DESC
114
  LIMIT 1"); #modified#
115
  $next = $wpdb->get_row("SELECT MONTH(post_date) AS month, YEAR(post_date) AS year
116
+ FROM $wpdb->posts $join_clause
 
117
  WHERE post_date > '$thisyear-$thismonth-{$last_day} 23:59:59'
118
+ AND post_type = 'post' AND post_status = 'publish' $where_clause
119
  ORDER BY post_date ASC
120
  LIMIT 1"); #modified#
121
 
168
 
169
  // Get days with posts
170
  $dayswithposts = $wpdb->get_results("SELECT DISTINCT DAYOFMONTH(post_date)
171
+ FROM $wpdb->posts $join_clause
 
172
  WHERE post_date >= '{$thisyear}-{$thismonth}-01 00:00:00'
173
+ AND post_type = 'post' AND post_status = 'publish' $where_clause
174
  AND post_date <= '{$thisyear}-{$thismonth}-{$last_day} 23:59:59'", ARRAY_N); #modified#
175
  if ( $dayswithposts ) {
176
  foreach ( (array) $dayswithposts as $daywith ) {
187
 
188
  $ak_titles_for_day = array();
189
  $ak_post_titles = $wpdb->get_results("SELECT ID, post_title, DAYOFMONTH(post_date) as dom "
190
+ ."FROM $wpdb->posts $join_clause "
 
191
  ."WHERE post_date >= '{$thisyear}-{$thismonth}-01 00:00:00' "
192
  ."AND post_date <= '{$thisyear}-{$thismonth}-{$last_day} 23:59:59' "
193
+ ."AND post_type = 'post' AND post_status = 'publish' $where_clause"
194
  ); #modified#
195
  if ( $ak_post_titles ) {
196
  foreach ( (array) $ak_post_titles as $ak_post_title ) {
include/{widget.php → widget-languages.php} RENAMED
@@ -1,15 +1,32 @@
1
  <?php
2
 
3
- // the language switcher widget
4
- class Polylang_Widget extends WP_Widget {
 
 
 
 
 
 
 
 
 
 
5
  function __construct() {
6
  parent::__construct('polylang', __('Language Switcher', 'polylang'), array( 'description' => __( 'Displays a language switcher', 'polylang')));
7
  }
8
 
9
- // displays the widget
 
 
 
 
 
 
 
10
  function widget($args, $instance) {
11
  global $polylang;
12
- if (!(isset($polylang) && $polylang->get_languages_list() && $list = $polylang->the_languages(array_merge($instance, array('echo' => 0)))))
13
  return;
14
 
15
  extract($args);
@@ -23,8 +40,8 @@ class Polylang_Widget extends WP_Widget {
23
 
24
  // javascript to switch the language when using a dropdown list
25
  if ($dropdown) {
26
- foreach ($polylang->get_languages_list() as $language) {
27
- $url = $force_home || ($url = $polylang->get_translation_url($language)) == null ? $polylang->get_home_url($language) : $url;
28
  $urls[] = '"'.esc_js($language->slug).'":"'.esc_url($url).'"';
29
  }
30
 
@@ -48,19 +65,33 @@ class Polylang_Widget extends WP_Widget {
48
  }
49
  }
50
 
51
- // updates the widget options
 
 
 
 
 
 
 
 
52
  function update( $new_instance, $old_instance ) {
53
  $instance['title'] = strip_tags($new_instance['title']);
54
- foreach (array_keys($GLOBALS['polylang']->get_switcher_options('widget')) as $key)
55
  $instance[$key] = !empty($new_instance[$key]) ? 1 : 0;
56
 
57
  return $instance;
58
  }
59
 
60
- // displays the widget form
 
 
 
 
 
 
61
  function form($instance) {
62
  // default values
63
- $instance = wp_parse_args( (array)$instance, array_merge(array('title' => ''), $GLOBALS['polylang']->get_switcher_options('widget', 'default')) );
64
 
65
  // title
66
  $title = sprintf(
@@ -72,7 +103,7 @@ class Polylang_Widget extends WP_Widget {
72
  );
73
 
74
  $fields = '';
75
- foreach ($GLOBALS['polylang']->get_switcher_options('widget') as $key => $str)
76
  $fields .= sprintf(
77
  '<input type="checkbox" class="checkbox" id="%1$s" name="%2$s" %3$s /> <label for="%1$s">%4$s</label><br />',
78
  $this->get_field_id($key),
1
  <?php
2
 
3
+ /*
4
+ * the language switcher widget
5
+ *
6
+ * @since 0.1
7
+ */
8
+ class PLL_Widget_Languages extends WP_Widget {
9
+
10
+ /*
11
+ * constructor
12
+ *
13
+ * @since 0.1
14
+ */
15
  function __construct() {
16
  parent::__construct('polylang', __('Language Switcher', 'polylang'), array( 'description' => __( 'Displays a language switcher', 'polylang')));
17
  }
18
 
19
+ /*
20
+ * displays the widget
21
+ *
22
+ * @since 0.1
23
+ *
24
+ * @param array $args Display arguments including before_title, after_title, before_widget, and after_widget.
25
+ * @param array $instance The settings for the particular instance of the widget
26
+ */
27
  function widget($args, $instance) {
28
  global $polylang;
29
+ if (!(isset($polylang) && $polylang->model->get_languages_list() && $list = pll_the_languages(array_merge($instance, array('echo' => 0)))))
30
  return;
31
 
32
  extract($args);
40
 
41
  // javascript to switch the language when using a dropdown list
42
  if ($dropdown) {
43
+ foreach ($polylang->model->get_languages_list() as $language) {
44
+ $url = $force_home || ($url = $polylang->links->get_translation_url($language)) == null ? $polylang->links->get_home_url($language) : $url;
45
  $urls[] = '"'.esc_js($language->slug).'":"'.esc_url($url).'"';
46
  }
47
 
65
  }
66
  }
67
 
68
+ /*
69
+ * updates the widget options
70
+ *
71
+ * @since 0.4
72
+ *
73
+ * @param array $new_instance New settings for this instance as input by the user via form()
74
+ * @param array $old_instance Old settings for this instance
75
+ * @return array Settings to save or bool false to cancel saving
76
+ */
77
  function update( $new_instance, $old_instance ) {
78
  $instance['title'] = strip_tags($new_instance['title']);
79
+ foreach (array_keys(PLL_Switcher::get_switcher_options('widget')) as $key)
80
  $instance[$key] = !empty($new_instance[$key]) ? 1 : 0;
81
 
82
  return $instance;
83
  }
84
 
85
+ /*
86
+ * displays the widget form
87
+ *
88
+ * @since 0.4
89
+ *
90
+ * @param array $instance Current settings
91
+ */
92
  function form($instance) {
93
  // default values
94
+ $instance = wp_parse_args( (array)$instance, array_merge(array('title' => ''), PLL_Switcher::get_switcher_options('widget', 'default')) );
95
 
96
  // title
97
  $title = sprintf(
103
  );
104
 
105
  $fields = '';
106
+ foreach (PLL_Switcher::get_switcher_options('widget') as $key => $str)
107
  $fields .= sprintf(
108
  '<input type="checkbox" class="checkbox" id="%1$s" name="%2$s" %3$s /> <label for="%1$s">%4$s</label><br />',
109
  $this->get_field_id($key),
include/wpml-compat.php CHANGED
@@ -5,19 +5,27 @@
5
 
6
  /*
7
  * defines two WPML constants once the language has been defined
 
 
8
  */
9
  function pll_define_wpml_constants() {
 
 
10
  if(!defined('ICL_LANGUAGE_CODE'))
11
- define('ICL_LANGUAGE_CODE', pll_current_language());
12
 
13
  if(!defined('ICL_LANGUAGE_NAME'))
14
- define('ICL_LANGUAGE_NAME', pll_current_language('name'));
15
  }
16
 
17
  add_action('pll_language_defined', 'pll_define_wpml_constants');
18
 
19
  /*
20
  * link to the home page in the active language
 
 
 
 
21
  */
22
  if (!function_exists('icl_get_home_url')) {
23
  function icl_get_home_url() {
@@ -28,11 +36,34 @@ if (!function_exists('icl_get_home_url')) {
28
  /*
29
  * used for building custom language selectors
30
  * available only on frontend
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  */
32
  if (!function_exists('icl_get_languages')) {
33
  function icl_get_languages($args = '') {
34
  global $polylang;
35
- if (!(class_exists('Polylang_Core') && $polylang instanceof Polylang_Core))
36
  return array();
37
 
38
  $args = extract(wp_parse_args($args));
@@ -41,22 +72,22 @@ if (!function_exists('icl_get_languages')) {
41
 
42
  $arr = array();
43
 
44
- foreach ($polylang->get_languages_list(array('hide_empty' => true, 'orderby' => $orderby, 'order' => $order)) as $lang) {
45
  $url = $polylang->get_translation_url($lang);
46
 
47
  if (empty($url) && !empty($skip_missing))
48
  continue;
49
 
50
  $arr[] = array(
51
- 'id' => $lang->term_id,
52
- 'active' => isset($polylang->curlang->slug) && $polylang->curlang->slug == $lang->slug ? 1 : 0,
53
- 'native_name' => $lang->name,
54
- 'missing' => empty($url) ? 1 : 0,
55
- 'translated_name' => '', // does not exist in Polylang
56
- 'language_code' => $lang->slug,
57
- 'country_flag_url' => $polylang->get_flag($lang, true),
58
- 'url' => $url ? $url :
59
- (empty($link_empty_to) ? $polylang->get_home_url($lang) :
60
  str_replace('{$lang}', $lang->slug, $link_empty_to))
61
  );
62
  }
@@ -65,7 +96,16 @@ if (!function_exists('icl_get_languages')) {
65
  }
66
 
67
  /*
68
- * used for creating language dependent links in themes
 
 
 
 
 
 
 
 
 
69
  */
70
  if (!function_exists('icl_link_to_element')) {
71
  function icl_link_to_element($id, $type = 'post', $text = '', $args = array(), $anchor = '') {
@@ -74,7 +114,7 @@ if (!function_exists('icl_link_to_element')) {
74
  if ($type == 'tag')
75
  $type = 'post_tag';
76
 
77
- if (isset($polylang) && ($lang = pll_current_language()) && $tr_id = $polylang->get_translation($type, $id, $lang))
78
  $id = $tr_id;
79
 
80
  if (post_type_exists($type)) {
@@ -103,36 +143,61 @@ if (!function_exists('icl_link_to_element')) {
103
 
104
  /*
105
  * used for calculating the IDs of objects (usually categories) in the current language
 
 
 
 
 
 
 
 
106
  */
107
  if (!function_exists('icl_object_id')) {
108
  function icl_object_id($id, $type, $return_original_if_missing, $lang = false) {
109
  global $polylang;
110
- return isset($polylang) && ($lang = $lang ? $lang : pll_current_language()) && ($tr_id = $polylang->get_translation($type, $id, $lang)) ? $tr_id :
111
  ($return_original_if_missing ? $id : null);
112
  }
113
  }
114
 
115
  /*
116
  * registers a string for translation in the "strings translation" panel
 
 
 
 
 
 
117
  */
118
  if (!function_exists('icl_register_string')) {
119
  function icl_register_string($context, $name, $string) {
120
- $GLOBALS['polylang_wpml_compat']->register_string($context, $name, $string);
121
  }
122
  }
123
 
124
  /*
125
  * removes a string from the "strings translation" panel
 
 
 
 
 
126
  */
127
  if (!function_exists('icl_unregister_string')) {
128
  function icl_unregister_string($context, $name) {
129
- $GLOBALS['polylang_wpml_compat']->unregister_string($context, $name);
130
  }
131
  }
132
 
133
  /*
134
  * gets the translated value of a string (previously registered with icl_register_string or pll_register_string)
135
- * the parameters $context and $name are not used by Polylang
 
 
 
 
 
 
136
  */
137
  if (!function_exists('icl_t')) {
138
  function icl_t($context, $name, $string) {
@@ -143,12 +208,19 @@ if (!function_exists('icl_t')) {
143
  /*
144
  * undocumented function used by NextGen Gallery
145
  * seems to be used to both register and translate a string
146
- * the parameters $context and $bool are not used by Polylang
147
  * FIXME: tested only with NextGen gallery
 
 
 
 
 
 
 
 
148
  */
149
  if (!function_exists('icl_translate')) {
150
  function icl_translate($context, $name, $string, $bool) {
151
- $GLOBALS['polylang_wpml_compat']->register_string($context, $name, $string);
152
  return pll__($string);
153
  }
154
  }
@@ -158,6 +230,10 @@ if (!function_exists('icl_translate')) {
158
  * FIXME: tested only with Types
159
  * probably incomplete as Types locks the custom fields for a new post, but not when edited
160
  * this is probably linked to the fact that WPML has always an original post in the default language and not Polylang :)
 
 
 
 
161
  */
162
  if (!function_exists('wpml_get_copied_fields_for_post_edit')) {
163
  function wpml_get_copied_fields_for_post_edit() {
@@ -178,6 +254,10 @@ if (!function_exists('wpml_get_copied_fields_for_post_edit')) {
178
 
179
  /*
180
  * undocumented function used by Warp 6 by Yootheme
 
 
 
 
181
  */
182
  if (!function_exists('icl_get_default_language')) {
183
  function icl_get_default_language() {
@@ -187,18 +267,33 @@ if (!function_exists('icl_get_default_language')) {
187
 
188
  /*
189
  * registers strings in a persistant way as done by WPML
 
 
190
  */
191
- class Polylang_WPML_Compat {
192
- private $strings; // used for cache
193
-
194
- function __construct() {
 
 
 
 
 
195
  add_action('pll_get_strings', array(&$this, 'get_strings'));
196
  }
197
 
198
- // unlike pll_register_string, icl_register_string stores the string in database
199
- // so we need to do the same as some plugins or themes may expect this
200
- // we use a serialized option to do this
201
- function register_string($context, $name, $string) {
 
 
 
 
 
 
 
 
202
  if (empty($this->strings))
203
  $this->strings = get_option('polylang_wpml_strings', array());
204
 
@@ -210,8 +305,15 @@ class Polylang_WPML_Compat {
210
  }
211
  }
212
 
213
- // removes a string from the registered strings list
214
- function unregister_string($context, $name) {
 
 
 
 
 
 
 
215
  if (empty($this->strings))
216
  $this->strings = get_option('polylang_wpml_strings', array());
217
 
@@ -223,17 +325,23 @@ class Polylang_WPML_Compat {
223
  }
224
  }
225
 
226
- // adds strings registered by icl_register_string to those registered by pll_register_string
227
- function get_strings($strings) {
 
 
 
 
 
 
 
228
  if (empty($this->strings))
229
  $this->strings = get_option('polylang_wpml_strings');
230
 
231
  return empty($this->strings) ? $strings : array_merge($strings, $this->strings);
232
  }
233
- }
234
 
235
- global $polylang_wpml_compat;
236
- $polylang_wpml_compat = new Polylang_WPML_Compat();
237
 
238
  /*
239
  * reads and interprets the file wpml-config.xml
@@ -241,18 +349,30 @@ $polylang_wpml_compat = new Polylang_WPML_Compat();
241
  * the language switcher configuration is not interpreted
242
  * the xml parser has been adapted from http://php.net/manual/en/function.xml-parse-into-struct.php#84261
243
  * many thanks to wickedfather at hotmail dot com
 
 
244
  */
245
- class Polylang_WPML_Config {
246
- private $values;
247
- private $index;
248
- private $wpml_config;
249
- private $strings;
250
-
251
- function __construct() {
252
- add_action('plugins_loaded', array(&$this, 'init'), 1);
 
 
253
  }
254
 
255
- function xml_parse($xml, $context) {
 
 
 
 
 
 
 
 
256
  $parser = xml_parser_create();
257
  xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
258
  xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
@@ -283,7 +403,14 @@ class Polylang_WPML_Config {
283
  }
284
  }
285
 
286
- function xml_parse_recursive() {
 
 
 
 
 
 
 
287
  $found = array();
288
  $tagCount = array();
289
 
@@ -325,7 +452,12 @@ class Polylang_WPML_Config {
325
  return $found;
326
  }
327
 
328
- function init() {
 
 
 
 
 
329
  $this->wpml_config = array();
330
 
331
  // child theme
@@ -337,7 +469,11 @@ class Polylang_WPML_Config {
337
  $this->xml_parse(file_get_contents($file), get_template());
338
 
339
  // plugins
340
- foreach (get_option('active_plugins') as $plugin) {
 
 
 
 
341
  if (file_exists($file = dirname(POLYLANG_DIR).'/'.dirname($plugin).'/wpml-config.xml'))
342
  $this->xml_parse(file_get_contents($file), dirname($plugin));
343
  }
@@ -363,9 +499,9 @@ class Polylang_WPML_Config {
363
  foreach ($arr as $keys)
364
  $this->strings[$context] = $this->admin_texts_recursive($keys);
365
 
366
- foreach ($this->strings as $context=>$options) {
367
- foreach ($options as $option_name=>$value) {
368
- if ($GLOBALS['polylang']->is_admin) { // backend
369
  $option = get_option($option_name);
370
  if (is_string($option) && $value == 1)
371
  pll_register_string($option_name, $option, $context);
@@ -378,8 +514,15 @@ class Polylang_WPML_Config {
378
  }
379
  }
380
 
381
- // arranges strings in a cleaner way
382
- function admin_texts_recursive($keys) {
 
 
 
 
 
 
 
383
  if (!isset($keys[0])) {
384
  $elem = $keys;
385
  unset($keys);
@@ -391,9 +534,17 @@ class Polylang_WPML_Config {
391
  return $strings;
392
  }
393
 
394
- // recursively registers strings for a serialized option
395
- function register_string_recursive($context, $strings, $options) {
396
- foreach ($options as $name=>$value) {
 
 
 
 
 
 
 
 
397
  if (isset($strings[$name])) {
398
  if (is_string($value) && $strings[$name] == 1)
399
  pll_register_string($name, $value, $context);
@@ -403,20 +554,41 @@ class Polylang_WPML_Config {
403
  }
404
  }
405
 
406
- function copy_post_metas($metas, $sync) {
 
 
 
 
 
 
 
 
 
407
  foreach ($this->wpml_config['custom-fields'] as $context) {
408
  foreach ($context['custom-field'] as $cf) {
409
- if (!$sync && in_array($cf['attributes']['action'], array('copy', 'translate')))
 
 
 
 
410
  $metas[] = $cf['value'];
411
- elseif ($sync && $cf['attributes']['action'] != 'copy')
412
- $metas = array_diff($metas, array($cf['value'])); // do not synchronize
413
  }
414
  }
415
  return $metas;
416
  }
417
 
418
- // language and translation management for custom post types
419
- function translate_types($types, $hide) {
 
 
 
 
 
 
 
 
420
  foreach ($this->wpml_config['custom-types'] as $context) {
421
  foreach ($context['custom-type'] as $pt) {
422
  if ($pt['attributes']['translate'] == 1 && !$hide)
@@ -428,8 +600,16 @@ class Polylang_WPML_Config {
428
  return $types;
429
  }
430
 
431
- // language and translation management for custom taxonomies
432
- function translate_taxonomies($taxonomies, $hide) {
 
 
 
 
 
 
 
 
433
  foreach ($this->wpml_config['taxonomies'] as $context) {
434
  foreach ($context['taxonomy'] as $tax) {
435
  if ($tax['attributes']['translate'] == 1 && !$hide)
@@ -442,11 +622,18 @@ class Polylang_WPML_Config {
442
  return $taxonomies;
443
  }
444
 
445
- // translates the strings for an option
446
- function translate_strings($value) {
 
 
 
 
 
 
 
447
  if (is_array($value)) {
448
  $option = substr(current_filter(), 7);
449
- foreach ($this->strings as $context=>$options) {
450
  if (array_key_exists($option, $options))
451
  return $this->translate_strings_recursive($options[$option], $value); // for a serialized option
452
  }
@@ -454,9 +641,17 @@ class Polylang_WPML_Config {
454
  return pll__($value);
455
  }
456
 
457
- // recursively translates strings for a serialized option
458
- function translate_strings_recursive($strings, $values) {
459
- foreach ($values as $name=>$value) {
 
 
 
 
 
 
 
 
460
  if (isset($strings[$name])) {
461
  if (is_string($value) && $strings[$name] == 1)
462
  $values[$name] = pll__($value);
@@ -466,7 +661,4 @@ class Polylang_WPML_Config {
466
  }
467
  return $values;
468
  }
469
-
470
- }
471
-
472
- new Polylang_WPML_Config();
5
 
6
  /*
7
  * defines two WPML constants once the language has been defined
8
+ *
9
+ * @since 0.9.5
10
  */
11
  function pll_define_wpml_constants() {
12
+ $code = is_admin() ? get_user_meta(get_current_user_id(), 'pll_filter_content', true) : pll_current_language();
13
+
14
  if(!defined('ICL_LANGUAGE_CODE'))
15
+ define('ICL_LANGUAGE_CODE', is_admin() && empty($code) ? 'all' : $code);
16
 
17
  if(!defined('ICL_LANGUAGE_NAME'))
18
+ define('ICL_LANGUAGE_NAME', empty($code) ? '' : $GLOBALS['polylang']->model->get_language($code)->name);
19
  }
20
 
21
  add_action('pll_language_defined', 'pll_define_wpml_constants');
22
 
23
  /*
24
  * link to the home page in the active language
25
+ *
26
+ * @since 0.9.4
27
+ *
28
+ * @return string
29
  */
30
  if (!function_exists('icl_get_home_url')) {
31
  function icl_get_home_url() {
36
  /*
37
  * used for building custom language selectors
38
  * available only on frontend
39
+ *
40
+ * list of paramaters accepted in $args
41
+ *
42
+ * skip_missing => wether to skip missing translation or not, 0 or 1, defaults to 0
43
+ * orderby => 'id', 'cod', 'name', defaults to 'id'
44
+ * order => 'ASC' or 'DESC', defaults to 'ASC'
45
+ * link_empty_to => link to use when the translation is missing {$lang} is replaced by the language code
46
+ *
47
+ * list of parameters returned per language:
48
+ *
49
+ * id => the language id
50
+ * active => wether this is the active language or no, 0 or 1
51
+ * native_name => the language name
52
+ * missing => wether the translation is missing or not, 0 or 1
53
+ * translated_name => empty, does not exist in Polylang
54
+ * language_code => the language code (slug)
55
+ * country_flag_url => the url of the flag
56
+ * url => the url of the translation
57
+ *
58
+ * @since 1.0
59
+ *
60
+ * @param string|array $args optional
61
+ * @return array array of arrays per language
62
  */
63
  if (!function_exists('icl_get_languages')) {
64
  function icl_get_languages($args = '') {
65
  global $polylang;
66
+ if (empty($polylang) || empty($polylang->curlang))
67
  return array();
68
 
69
  $args = extract(wp_parse_args($args));
72
 
73
  $arr = array();
74
 
75
+ foreach ($polylang->model->get_languages_list(array('hide_empty' => true, 'orderby' => $orderby, 'order' => $order)) as $lang) {
76
  $url = $polylang->get_translation_url($lang);
77
 
78
  if (empty($url) && !empty($skip_missing))
79
  continue;
80
 
81
  $arr[] = array(
82
+ 'id' => $lang->term_id,
83
+ 'active' => isset($polylang->curlang->slug) && $polylang->curlang->slug == $lang->slug ? 1 : 0,
84
+ 'native_name' => $lang->name,
85
+ 'missing' => empty($url) ? 1 : 0,
86
+ 'translated_name' => '', // does not exist in Polylang
87
+ 'language_code' => $lang->slug,
88
+ 'country_flag_url' => $lang->flag_url,
89
+ 'url' => $url ? $url :
90
+ (empty($link_empty_to) ? $polylang->links->get_home_url($lang) :
91
  str_replace('{$lang}', $lang->slug, $link_empty_to))
92
  );
93
  }
96
  }
97
 
98
  /*
99
+ * used for creating language dependent links in themes
100
+ *
101
+ * @since 1.0
102
+ *
103
+ * @param int $id object id
104
+ * @param string $type optional, post type or taxonomy name of the object, defaults to 'post'
105
+ * @param string $text optional the link text. If not specified will produce the name of the element in the current language
106
+ * @param array $args optional an array of arguments to add to the link, defaults to empty
107
+ * @param string $anchor optional the anchor to add to teh link, defaults to empty
108
+ * @return string a language dependent link
109
  */
110
  if (!function_exists('icl_link_to_element')) {
111
  function icl_link_to_element($id, $type = 'post', $text = '', $args = array(), $anchor = '') {
114
  if ($type == 'tag')
115
  $type = 'post_tag';
116
 
117
+ if (isset($polylang) && ($lang = pll_current_language()) && $tr_id = $polylang->model->get_translation($type, $id, $lang))
118
  $id = $tr_id;
119
 
120
  if (post_type_exists($type)) {
143
 
144
  /*
145
  * used for calculating the IDs of objects (usually categories) in the current language
146
+ *
147
+ * @since 0.9.5
148
+ *
149
+ * @param int $id object id
150
+ * @param string $type, post type or taxonomy name of the object, defaults to 'post'
151
+ * @param bool $return_original_if_missing true if Polylang should return the original id if the translation is missiing
152
+ * @param string $lang optional language code, defaults to current language
153
+ * @return int|null the object id of the translation, null if the translation is missing and $return_original_if_missing set to false
154
  */
155
  if (!function_exists('icl_object_id')) {
156
  function icl_object_id($id, $type, $return_original_if_missing, $lang = false) {
157
  global $polylang;
158
+ return isset($polylang) && ($lang = $lang ? $lang : pll_current_language()) && ($tr_id = $polylang->model->get_translation($type, $id, $lang)) ? $tr_id :
159
  ($return_original_if_missing ? $id : null);
160
  }
161
  }
162
 
163
  /*
164
  * registers a string for translation in the "strings translation" panel
165
+ *
166
+ * @since 0.9.3
167
+ *
168
+ * @param string $context the group in which the string is registered, defaults to 'polylang'
169
+ * @param string $name a unique name for the string
170
+ * @param string $string the string to register
171
  */
172
  if (!function_exists('icl_register_string')) {
173
  function icl_register_string($context, $name, $string) {
174
+ $GLOBALS['pll_wpml_compat']->register_string($context, $name, $string);
175
  }
176
  }
177
 
178
  /*
179
  * removes a string from the "strings translation" panel
180
+ *
181
+ * @since 1.0.2
182
+ *
183
+ * @param string $context the group in which the string is registered, defaults to 'polylang'
184
+ * @param string $name a unique name for the string
185
  */
186
  if (!function_exists('icl_unregister_string')) {
187
  function icl_unregister_string($context, $name) {
188
+ $GLOBALS['pll_wpml_compat']->unregister_string($context, $name);
189
  }
190
  }
191
 
192
  /*
193
  * gets the translated value of a string (previously registered with icl_register_string or pll_register_string)
194
+ *
195
+ * @since 0.9.3
196
+ *
197
+ * @param string $context not used by Polylang
198
+ * @param string $name not used by Polylang
199
+ * @param string $string the string to translated
200
+ * @return string the translated string in the current language
201
  */
202
  if (!function_exists('icl_t')) {
203
  function icl_t($context, $name, $string) {
208
  /*
209
  * undocumented function used by NextGen Gallery
210
  * seems to be used to both register and translate a string
 
211
  * FIXME: tested only with NextGen gallery
212
+ *
213
+ * @since 1.0.2
214
+ *
215
+ * @param string $context the group in which the string is registered, defaults to 'polylang'
216
+ * @param string $name a unique name for the string
217
+ * @param string $string the string to register
218
+ * @param bool $bool not used by Polylang
219
+ * @return string the translated string in the current language
220
  */
221
  if (!function_exists('icl_translate')) {
222
  function icl_translate($context, $name, $string, $bool) {
223
+ $GLOBALS['pll_wpml_compat']->register_string($context, $name, $string);
224
  return pll__($string);
225
  }
226
  }
230
  * FIXME: tested only with Types
231
  * probably incomplete as Types locks the custom fields for a new post, but not when edited
232
  * this is probably linked to the fact that WPML has always an original post in the default language and not Polylang :)
233
+ *
234
+ * @since 1.1.2
235
+ *
236
+ * @return array
237
  */
238
  if (!function_exists('wpml_get_copied_fields_for_post_edit')) {
239
  function wpml_get_copied_fields_for_post_edit() {
254
 
255
  /*
256
  * undocumented function used by Warp 6 by Yootheme
257
+ *
258
+ * @since 1.0.5
259
+ *
260
+ * @return string default language code
261
  */
262
  if (!function_exists('icl_get_default_language')) {
263
  function icl_get_default_language() {
267
 
268
  /*
269
  * registers strings in a persistant way as done by WPML
270
+ *
271
+ * @since 1.0.2
272
  */
273
+ class PLL_WPML_Compat {
274
+ protected $strings; // used for cache
275
+
276
+ /*
277
+ * constructor
278
+ *
279
+ * @since 1.0.2
280
+ */
281
+ public function __construct() {
282
  add_action('pll_get_strings', array(&$this, 'get_strings'));
283
  }
284
 
285
+ /*
286
+ * unlike pll_register_string, icl_register_string stores the string in database
287
+ * so we need to do the same as some plugins or themes may expect this
288
+ * we use a serialized option to do this
289
+ *
290
+ * @since 1.0.2
291
+ *
292
+ * @param string $context the group in which the string is registered, defaults to 'polylang'
293
+ * @param string $name a unique name for the string
294
+ * @param string $string the string to register
295
+ */
296
+ public function register_string($context, $name, $string) {
297
  if (empty($this->strings))
298
  $this->strings = get_option('polylang_wpml_strings', array());
299
 
305
  }
306
  }
307
 
308
+ /*
309
+ * removes a string from the registered strings list
310
+ *
311
+ * @since 1.0.2
312
+ *
313
+ * @param string $context the group in which the string is registered, defaults to 'polylang'
314
+ * @param string $name a unique name for the string
315
+ */
316
+ public function unregister_string($context, $name) {
317
  if (empty($this->strings))
318
  $this->strings = get_option('polylang_wpml_strings', array());
319
 
325
  }
326
  }
327
 
328
+ /*
329
+ * adds strings registered by icl_register_string to those registered by pll_register_string
330
+ *
331
+ * @since 1.0.2
332
+ *
333
+ * @param array $strings existing registered strings
334
+ * @return array registered strings with added strings through WPML API
335
+ */
336
+ public function get_strings($strings) {
337
  if (empty($this->strings))
338
  $this->strings = get_option('polylang_wpml_strings');
339
 
340
  return empty($this->strings) ? $strings : array_merge($strings, $this->strings);
341
  }
342
+ } // class PLL_WPML_Compat
343
 
344
+ $GLOBALS['pll_wpml_compat'] = new PLL_WPML_Compat;
 
345
 
346
  /*
347
  * reads and interprets the file wpml-config.xml
349
  * the language switcher configuration is not interpreted
350
  * the xml parser has been adapted from http://php.net/manual/en/function.xml-parse-into-struct.php#84261
351
  * many thanks to wickedfather at hotmail dot com
352
+ *
353
+ * @since 1.0
354
  */
355
+ class PLL_WPML_Config {
356
+ protected $values, $index, $wpml_config, $strings;
357
+
358
+ /*
359
+ * constructor
360
+ *
361
+ * @since 1.0
362
+ */
363
+ public function __construct() {
364
+ $this->init();
365
  }
366
 
367
+ /*
368
+ * parses the wpml-config.xml file
369
+ *
370
+ * @since 1.0
371
+ *
372
+ * @param string wpml-config.xml file content
373
+ * @param string $context identifies where the file was found
374
+ */
375
+ protected function xml_parse($xml, $context) {
376
  $parser = xml_parser_create();
377
  xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
378
  xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
403
  }
404
  }
405
 
406
+ /*
407
+ * recursively parses the wpml-config.xml file
408
+ *
409
+ * @since 1.0
410
+ *
411
+ * @return array
412
+ */
413
+ protected function xml_parse_recursive() {
414
  $found = array();
415
  $tagCount = array();
416
 
452
  return $found;
453
  }
454
 
455
+ /*
456
+ * finds the wpml-config.xml files to parse and setup filters
457
+ *
458
+ * @since 1.0
459
+ */
460
+ public function init() {
461
  $this->wpml_config = array();
462
 
463
  // child theme
469
  $this->xml_parse(file_get_contents($file), get_template());
470
 
471
  // plugins
472
+ // don't forget sitewide active plugins thanks to Reactorshop http://wordpress.org/support/topic/polylang-and-yoast-seo-plugin/page/2?replies=38#post-4801829
473
+ $plugins = ($sitewide_plugins = get_site_option('active_sitewide_plugins')) && is_array($sitewide_plugins) ? array_keys($sitewide_plugins) : array();
474
+ $plugins = array_merge($plugins, get_option('active_plugins'));
475
+
476
+ foreach ($plugins as $plugin) {
477
  if (file_exists($file = dirname(POLYLANG_DIR).'/'.dirname($plugin).'/wpml-config.xml'))
478
  $this->xml_parse(file_get_contents($file), dirname($plugin));
479
  }
499
  foreach ($arr as $keys)
500
  $this->strings[$context] = $this->admin_texts_recursive($keys);
501
 
502
+ foreach ($this->strings as $context => $options) {
503
+ foreach ($options as $option_name => $value) {
504
+ if (PLL_ADMIN) { // backend
505
  $option = get_option($option_name);
506
  if (is_string($option) && $value == 1)
507
  pll_register_string($option_name, $option, $context);
514
  }
515
  }
516
 
517
+ /*
518
+ * arranges strings in a cleaner way
519
+ *
520
+ * @since 1.0
521
+ *
522
+ * @param array $keys
523
+ * @return array
524
+ */
525
+ protected function admin_texts_recursive($keys) {
526
  if (!isset($keys[0])) {
527
  $elem = $keys;
528
  unset($keys);
534
  return $strings;
535
  }
536
 
537
+ /*
538
+ * recursively registers strings for a serialized option
539
+ *
540
+ * @since 1.0
541
+ *
542
+ * @param string $context the group in which the strings will be registered
543
+ * @param array $strings
544
+ * @param array $options
545
+ */
546
+ protected function register_string_recursive($context, $strings, $options) {
547
+ foreach ($options as $name => $value) {
548
  if (isset($strings[$name])) {
549
  if (is_string($value) && $strings[$name] == 1)
550
  pll_register_string($name, $value, $context);
554
  }
555
  }
556
 
557
+ /*
558
+ * adds custom fields to the list of metas to copy when creating a new translation
559
+ *
560
+ * @since 1.0
561
+ *
562
+ * @param array $metas the list of custom fields to copy or synchronize
563
+ * @param bool $sync true for sync, false for copy
564
+ * @return array the list of custom fields to copy or synchronize
565
+ */
566
+ public function copy_post_metas($metas, $sync) {
567
  foreach ($this->wpml_config['custom-fields'] as $context) {
568
  foreach ($context['custom-field'] as $cf) {
569
+ // copy => copy and synchronize
570
+ // translate => copy but don't synchronize
571
+ // ignore => don't copy
572
+ // see http://wordpress.org/support/topic/custom-field-values-override-other-translation-values?replies=8#post-4655563
573
+ if ('copy' == $cf['attributes']['action'] || (!$sync && 'translate' == $cf['attributes']['action']))
574
  $metas[] = $cf['value'];
575
+ else
576
+ $metas = array_diff($metas, array($cf['value']));
577
  }
578
  }
579
  return $metas;
580
  }
581
 
582
+ /*
583
+ * language and translation management for custom post types
584
+ *
585
+ * @since 1.0
586
+ *
587
+ * @param array $types list of post type names for which Polylang manages language and translations
588
+ * @param bool $hide true when displaying the list in Polylang settings
589
+ * @return array list of post type names for which Polylang manages language and translations
590
+ */
591
+ public function translate_types($types, $hide) {
592
  foreach ($this->wpml_config['custom-types'] as $context) {
593
  foreach ($context['custom-type'] as $pt) {
594
  if ($pt['attributes']['translate'] == 1 && !$hide)
600
  return $types;
601
  }
602
 
603
+ /*
604
+ * language and translation management for custom taxonomies
605
+ *
606
+ * @since 1.0
607
+ *
608
+ * @param array $taxonomies list of taxonomy names for which Polylang manages language and translations
609
+ * @param bool $hide true when displaying the list in Polylang settings
610
+ * @return array list of taxonomy names for which Polylang manages language and translations
611
+ */
612
+ public function translate_taxonomies($taxonomies, $hide) {
613
  foreach ($this->wpml_config['taxonomies'] as $context) {
614
  foreach ($context['taxonomy'] as $tax) {
615
  if ($tax['attributes']['translate'] == 1 && !$hide)
622
  return $taxonomies;
623
  }
624
 
625
+ /*
626
+ * translates the strings for an option
627
+ *
628
+ * @since 1.0
629
+ *
630
+ * @param array|string either a string to translate or a list of strings to translate
631
+ * @return array|string translated string(s)
632
+ */
633
+ public function translate_strings($value) {
634
  if (is_array($value)) {
635
  $option = substr(current_filter(), 7);
636
+ foreach ($this->strings as $context => $options) {
637
  if (array_key_exists($option, $options))
638
  return $this->translate_strings_recursive($options[$option], $value); // for a serialized option
639
  }
641
  return pll__($value);
642
  }
643
 
644
+ /*
645
+ * recursively translates strings for a serialized option
646
+ *
647
+ * @since 1.0
648
+ *
649
+ * @param array $strings
650
+ * @param array|string $values either a string to translate or a list of strings to translate
651
+ * @return array|string translated string(s)
652
+ */
653
+ protected function translate_strings_recursive($strings, $values) {
654
+ foreach ($values as $name => $value) {
655
  if (isset($strings[$name])) {
656
  if (is_string($value) && $strings[$name] == 1)
657
  $values[$name] = pll__($value);
661
  }
662
  return $values;
663
  }
664
+ } // class PLL_WPML_Config
 
 
 
js/admin.js CHANGED
@@ -4,9 +4,9 @@ jQuery(document).ready(function($) {
4
  $('#lang_list').change(function() {
5
  value = $(this).attr('value').split('-');
6
  selected = $("select option:selected").text().split(' - ');
7
- $('input[name="slug"]').val(value[0]);
8
- $('input[name="description"]').val(value[1]);
9
  $('input[name="rtl"]').val([value[2]]);
10
- $('input[name="name"]').val(selected[0]);
11
  });
12
  });
4
  $('#lang_list').change(function() {
5
  value = $(this).attr('value').split('-');
6
  selected = $("select option:selected").text().split(' - ');
7
+ $('#lang_slug').val(value[0]);
8
+ $('#lang_locale').val(value[1]);
9
  $('input[name="rtl"]').val([value[2]]);
10
+ $('#lang_name').val(selected[0]);
11
  });
12
  });
js/admin.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(a){a("#lang_list").change(function(){value=a(this).attr("value").split("-");selected=a("select option:selected").text().split(" - ");a('input[name="slug"]').val(value[0]);a('input[name="description"]').val(value[1]);a('input[name="rtl"]').val([value[2]]);a('input[name="name"]').val(selected[0])})})
1
+ jQuery(document).ready(function(a){a("#lang_list").change(function(){value=a(this).attr("value").split("-");selected=a("select option:selected").text().split(" - ");a("#lang_slug").val(value[0]);a("#lang_locale").val(value[1]);a('input[name="rtl"]').val([value[2]]);a("#lang_name").val(selected[0])})});
js/post.js CHANGED
@@ -136,6 +136,7 @@ pll_tagBox = {
136
  // add the language in the $_GET variable
137
  var lang = $('#post_lang_choice').attr('value');
138
  var tax = $(this).closest('div.tagsdiv').attr('id');
 
139
  $(this).suggest( ajaxurl + '?action=polylang-ajax-tag-search&lang=' + lang + '&tax=' + tax, { delay: 500, minchars: 2, multiple: true, multipleSep: "," } );
140
  });
141
  },
@@ -223,7 +224,7 @@ jQuery(document).ready(function($) {
223
  $('#' + tax + '-lang').val($('#post_lang_choice').attr('value')); // hidden field
224
  break;
225
  case 'pages': // parent dropdown list for pages
226
- $('#parent_id').replaceWith(this.data);
227
  break;
228
  default:
229
  break;
@@ -278,7 +279,7 @@ jQuery(document).ready(function($) {
278
  $.each(res.responses, function() {
279
  switch (this.what) {
280
  case 'translations': // translations fields
281
- $('.translations').html(this.data); // WP < 3.5
282
  $('.compat-field-translations').html(this.data); // WP 3.5+
283
  break;
284
  default:
136
  // add the language in the $_GET variable
137
  var lang = $('#post_lang_choice').attr('value');
138
  var tax = $(this).closest('div.tagsdiv').attr('id');
139
+ // change action name for backward compatibility WP < 3.7
140
  $(this).suggest( ajaxurl + '?action=polylang-ajax-tag-search&lang=' + lang + '&tax=' + tax, { delay: 500, minchars: 2, multiple: true, multipleSep: "," } );
141
  });
142
  },
224
  $('#' + tax + '-lang').val($('#post_lang_choice').attr('value')); // hidden field
225
  break;
226
  case 'pages': // parent dropdown list for pages
227
+ $('#pageparentdiv > .inside').html(this.data);
228
  break;
229
  default:
230
  break;
279
  $.each(res.responses, function() {
280
  switch (this.what) {
281
  case 'translations': // translations fields
282
+ $('.translations').html(this.data); // backward compatibility WP < 3.5
283
  $('.compat-field-translations').html(this.data); // WP 3.5+
284
  break;
285
  default:
js/post.min.js CHANGED
@@ -1 +1 @@
1
- var pll_tagBox;(function(a){pll_tagBox={clean:function(b){return b.replace(/\s*,\s*/g,",").replace(/,+/g,",").replace(/[,\s]+$/,"").replace(/^[,\s]+/,"")},parseTags:function(e){var h=e.id,b=h.split("-check-num-")[1],d=a(e).closest(".tagsdiv"),g=d.find(".the-tags"),c=g.val().split(","),f=[];delete c[b];a.each(c,function(i,j){j=a.trim(j);if(j){f.push(j)}});g.val(this.clean(f.join(",")));this.quickClicks(d);return false},quickClicks:function(d){var g=a(".the-tags",d),e=a(".tagchecklist",d),f=a(d).attr("id"),b,c;if(!g.length){return}c=g.prop("disabled");b=g.val().split(",");e.empty();a.each(b,function(i,k){var j,h;k=a.trim(k);if(!k){return}j=a("<span />").text(k);if(!c){h=a('<a id="'+f+"-check-num-"+i+'" class="ntdelbutton">X</a>');h.click(function(){pll_tagBox.parseTags(this)});j.prepend("&nbsp;").prepend(h)}e.append(j)})},flushTags:function(e,b,g){b=b||false;var i,c=a(".the-tags",e),h=a("input.newtag",e),d;i=b?a(b).text():h.val();tagsval=c.val();d=tagsval?tagsval+","+i:i;d=this.clean(d);d=array_unique_noempty(d.split(",")).join(",");c.val(d);this.quickClicks(e);if(!b){h.val("")}if("undefined"==typeof(g)){h.focus()}return false},get:function(e,b){var c=e.substr(e.indexOf("-")+1);var d={action:"get-tagcloud",lang:a("#post_lang_choice").attr("value"),tax:c};a.post(ajaxurl,d,function(g,f){if(0==g||"success"!=f){g=wpAjax.broken}g=a('<p id="tagcloud-'+c+'" class="the-tagcloud">'+g+"</p>");a("a",g).click(function(){pll_tagBox.flushTags(a(this).closest(".inside").children(".tagsdiv"),this);return false});if(b==1){a("#"+e).after(g)}else{v=a(".the-tagcloud").css("display");a(".the-tagcloud").replaceWith(g);a(".the-tagcloud").css("display",v)}})},suggest:function(){ajaxtag=a("div.ajaxtag");a("input.newtag",ajaxtag).unbind().blur(function(){if(this.value==""){a(this).parent().siblings(".taghint").css("visibility","")}}).focus(function(){a(this).parent().siblings(".taghint").css("visibility","hidden")}).keyup(function(b){if(13==b.which){pll_tagBox.flushTags(a(this).closest(".tagsdiv"));return false}}).keypress(function(b){if(13==b.which){b.preventDefault();return false}}).each(function(){var c=a("#post_lang_choice").attr("value");var b=a(this).closest("div.tagsdiv").attr("id");a(this).suggest(ajaxurl+"?action=polylang-ajax-tag-search&lang="+c+"&tax="+b,{delay:500,minchars:2,multiple:true,multipleSep:","})})},init:function(){var b=this,c=a("div.ajaxtag");a(".tagsdiv").each(function(){pll_tagBox.quickClicks(this)});a("input.tagadd",c).click(function(){b.flushTags(a(this).closest(".tagsdiv"))});a("div.taghint",c).click(function(){a(this).css("visibility","hidden").parent().siblings(".newtag").focus()});pll_tagBox.suggest();a("#post").submit(function(){a("div.tagsdiv").each(function(){pll_tagBox.flushTags(this,false,1)})});a("a.tagcloud-link").click(function(){pll_tagBox.get(a(this).attr("id"),1);a(this).unbind().click(function(){a(this).siblings(".the-tagcloud").toggle();return false});return false})}}})(jQuery);jQuery(document).ready(function(b){var a=new Array();b(".categorydiv").each(function(){var e=b(this).attr("id"),d,c;d=e.split("-");d.shift();c=d.join("-");a.push(c);b("#"+c+"-add-submit").before(b("<input />").attr("type","hidden").attr("id",c+"-lang").attr("name","term_lang_choice").attr("value",b("#post_lang_choice").attr("value")))});b("#post_lang_choice").change(function(){var c={action:"post_lang_choice",lang:b(this).attr("value"),taxonomies:a,post_id:b("#post_ID").attr("value")};b.post(ajaxurl,c,function(d){var e=wpAjax.parseAjaxResponse(d,"ajax-response");b.each(e.responses,function(){switch(this.what){case"translations":b("#post-translations").html(this.data);break;case"taxonomy":var f=this.data;b("#"+f+"checklist").html(this.supplemental.all);b("#"+f+"checklist-pop").html(this.supplemental.populars);b("#new"+f+"_parent").replaceWith(this.supplemental.dropdown);b("#"+f+"-lang").val(b("#post_lang_choice").attr("value"));break;case"pages":b("#parent_id").replaceWith(this.data);break;default:break}});b(".tagcloud-link").each(function(){var f=b(this).attr("id");pll_tagBox.get(f,0)});pll_tagBox.suggest()})});if(b("#pll-tagsdiv-post_tag").length){pll_tagBox.init()}else{b("#side-sortables, #normal-sortables, #advanced-sortables").children("div.postbox").each(function(){if(this.id.indexOf("pll-tagsdiv-")===0){pll_tagBox.init();return false}})}b("#the-list").on("click","a.editinline",function(){inlineEditPost.revert();var c=inlineEditPost.getId(this);var d=b("#lang_"+c).html();b("input[name='old_lang']").val(d);b("#post_lang_choice option:selected").removeProp("selected");b('#post_lang_choice option[value="'+d+'"]').attr("selected","selected")});b(".media_lang_choice").change(function(){var c={action:"media_lang_choice",lang:b(this).attr("value"),post_id:b(this).attr("name")};b.post(ajaxurl,c,function(d){var e=wpAjax.parseAjaxResponse(d,"ajax-response");b.each(e.responses,function(){switch(this.what){case"translations":b(".translations").html(this.data);b(".compat-field-translations").html(this.data);break;default:break}})})})});
1
+ var pll_tagBox;(function(a){pll_tagBox={clean:function(b){return b.replace(/\s*,\s*/g,",").replace(/,+/g,",").replace(/[,\s]+$/,"").replace(/^[,\s]+/,"")},parseTags:function(e){var h=e.id,b=h.split("-check-num-")[1],d=a(e).closest(".tagsdiv"),g=d.find(".the-tags"),c=g.val().split(","),f=[];delete c[b];a.each(c,function(i,j){j=a.trim(j);if(j){f.push(j)}});g.val(this.clean(f.join(",")));this.quickClicks(d);return false},quickClicks:function(d){var g=a(".the-tags",d),e=a(".tagchecklist",d),f=a(d).attr("id"),b,c;if(!g.length){return}c=g.prop("disabled");b=g.val().split(",");e.empty();a.each(b,function(i,k){var j,h;k=a.trim(k);if(!k){return}j=a("<span />").text(k);if(!c){h=a('<a id="'+f+"-check-num-"+i+'" class="ntdelbutton">X</a>');h.click(function(){pll_tagBox.parseTags(this)});j.prepend("&nbsp;").prepend(h)}e.append(j)})},flushTags:function(e,b,g){b=b||false;var i,c=a(".the-tags",e),h=a("input.newtag",e),d;i=b?a(b).text():h.val();tagsval=c.val();d=tagsval?tagsval+","+i:i;d=this.clean(d);d=array_unique_noempty(d.split(",")).join(",");c.val(d);this.quickClicks(e);if(!b){h.val("")}if("undefined"==typeof(g)){h.focus()}return false},get:function(e,b){var c=e.substr(e.indexOf("-")+1);var d={action:"get-tagcloud",lang:a("#post_lang_choice").attr("value"),tax:c};a.post(ajaxurl,d,function(g,f){if(0==g||"success"!=f){g=wpAjax.broken}g=a('<p id="tagcloud-'+c+'" class="the-tagcloud">'+g+"</p>");a("a",g).click(function(){pll_tagBox.flushTags(a(this).closest(".inside").children(".tagsdiv"),this);return false});if(b==1){a("#"+e).after(g)}else{v=a(".the-tagcloud").css("display");a(".the-tagcloud").replaceWith(g);a(".the-tagcloud").css("display",v)}})},suggest:function(){ajaxtag=a("div.ajaxtag");a("input.newtag",ajaxtag).unbind().blur(function(){if(this.value==""){a(this).parent().siblings(".taghint").css("visibility","")}}).focus(function(){a(this).parent().siblings(".taghint").css("visibility","hidden")}).keyup(function(b){if(13==b.which){pll_tagBox.flushTags(a(this).closest(".tagsdiv"));return false}}).keypress(function(b){if(13==b.which){b.preventDefault();return false}}).each(function(){var c=a("#post_lang_choice").attr("value");var b=a(this).closest("div.tagsdiv").attr("id");a(this).suggest(ajaxurl+"?action=polylang-ajax-tag-search&lang="+c+"&tax="+b,{delay:500,minchars:2,multiple:true,multipleSep:","})})},init:function(){var b=this,c=a("div.ajaxtag");a(".tagsdiv").each(function(){pll_tagBox.quickClicks(this)});a("input.tagadd",c).click(function(){b.flushTags(a(this).closest(".tagsdiv"))});a("div.taghint",c).click(function(){a(this).css("visibility","hidden").parent().siblings(".newtag").focus()});pll_tagBox.suggest();a("#post").submit(function(){a("div.tagsdiv").each(function(){pll_tagBox.flushTags(this,false,1)})});a("a.tagcloud-link").click(function(){pll_tagBox.get(a(this).attr("id"),1);a(this).unbind().click(function(){a(this).siblings(".the-tagcloud").toggle();return false});return false})}}})(jQuery);jQuery(document).ready(function(b){var a=new Array();b(".categorydiv").each(function(){var e=b(this).attr("id"),d,c;d=e.split("-");d.shift();c=d.join("-");a.push(c);b("#"+c+"-add-submit").before(b("<input />").attr("type","hidden").attr("id",c+"-lang").attr("name","term_lang_choice").attr("value",b("#post_lang_choice").attr("value")))});b("#post_lang_choice").change(function(){var c={action:"post_lang_choice",lang:b(this).attr("value"),taxonomies:a,post_id:b("#post_ID").attr("value")};b.post(ajaxurl,c,function(d){var e=wpAjax.parseAjaxResponse(d,"ajax-response");b.each(e.responses,function(){switch(this.what){case"translations":b("#post-translations").html(this.data);break;case"taxonomy":var f=this.data;b("#"+f+"checklist").html(this.supplemental.all);b("#"+f+"checklist-pop").html(this.supplemental.populars);b("#new"+f+"_parent").replaceWith(this.supplemental.dropdown);b("#"+f+"-lang").val(b("#post_lang_choice").attr("value"));break;case"pages":b("#pageparentdiv > .inside").html(this.data);break;default:break}});b(".tagcloud-link").each(function(){var f=b(this).attr("id");pll_tagBox.get(f,0)});pll_tagBox.suggest()})});if(b("#pll-tagsdiv-post_tag").length){pll_tagBox.init()}else{b("#side-sortables, #normal-sortables, #advanced-sortables").children("div.postbox").each(function(){if(this.id.indexOf("pll-tagsdiv-")===0){pll_tagBox.init();return false}})}b("#the-list").on("click","a.editinline",function(){inlineEditPost.revert();var c=inlineEditPost.getId(this);var d=b("#lang_"+c).html();b("input[name='old_lang']").val(d);b("#post_lang_choice option:selected").removeProp("selected");b('#post_lang_choice option[value="'+d+'"]').attr("selected","selected")});b(".media_lang_choice").change(function(){var c={action:"media_lang_choice",lang:b(this).attr("value"),post_id:b(this).attr("name")};b.post(ajaxurl,c,function(d){var e=wpAjax.parseAjaxResponse(d,"ajax-response");b.each(e.responses,function(){switch(this.what){case"translations":b(".translations").html(this.data);b(".compat-field-translations").html(this.data);break;default:break}})})})});
languages/polylang-af.mo CHANGED
Binary file
languages/polylang-af.po CHANGED
@@ -17,459 +17,447 @@ msgstr ""
17
  "X-Poedit-SearchPath-0: ..\n"
18
  "X-Poedit-SearchPath-1: ../include\n"
19
 
20
- #: include/about.php:3
21
  #, php-format
22
  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."
23
  msgstr "Polylang word voorsien met 'n uitgebreide %s dokumentasie %s (slegs in Engels). Dit sluit inligting in oor hoe om jou veeltalige werf op te stel en dit op 'n daaglikse basis te gebruik, 'n FAQ, sowel as 'n dokumentasie vir programmeerders om hul plugins en temas aan te pas."
24
 
25
- #: include/about.php:9
26
  #, php-format
27
  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."
28
  msgstr "Jy sal ook nuttige inligting in die %s support forum %s vind. Maar moenie vergeet om 'n soektog te maak voordat 'n nuwe onderwerp gepos word nie."
29
 
30
- #: include/about.php:16
31
  #, php-format
32
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
33
  msgstr "Polylang is gratis en is vrygestel onder dieselfde lisensie as WordPress, die %sGPL%s."
34
 
35
- #: include/about.php:22
36
  #, php-format
37
  msgid "If you wonder how you can help the project, just %sread this%s."
38
  msgstr "As jy wonder hoe jy die projek kan help, %slees hierdie%s."
39
 
40
- #: include/about.php:27
41
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
42
  msgstr "Laastens as jy van hierdie plugin hou, of as dit jou besigheid help, sal donasies aan die skrywer opreg waardeer word."
43
 
44
- #: include/admin-base.php:55
45
- #: include/admin-base.php:190
46
- #: include/admin-filters.php:243
47
- #: include/admin.php:23
48
- #: include/admin.php:301
49
- #: include/list-table.php:13
50
- #: polylang.php:339
51
  msgid "Languages"
52
  msgstr "Tale"
53
 
54
- #: include/admin-base.php:153
55
  msgid "Displays language names"
56
  msgstr "Toon taal name"
57
 
58
- #: include/admin-base.php:154
59
  msgid "Displays flags"
60
  msgstr "Toon vlae"
61
 
62
- #: include/admin-base.php:155
63
  msgid "Forces link to front page"
64
  msgstr "Dwing skakel na voorblad"
65
 
66
- #: include/admin-base.php:156
67
  msgid "Hides the current language"
68
  msgstr "Verberg die huidige taal"
69
 
70
- #: include/admin-base.php:160
71
  msgid "Displays as dropdown"
72
  msgstr "Toon as dropdown"
73
 
74
- #: include/admin-base.php:191
75
  msgid "Filters content by language"
76
  msgstr "Filtreer inhoud volgens taal"
77
 
78
- #: include/admin-base.php:186
79
  msgid "Show all languages"
80
  msgstr "Toon alle tale"
81
 
82
- #: include/admin-filters.php:181
83
- #: include/admin-filters.php:877
84
  msgid "Add new translation"
85
  msgstr "Las 'n nuwe vertaling by"
86
 
87
- #: include/admin-filters.php:209
88
- #: include/admin-filters.php:267
89
- #: include/admin-filters.php:601
90
- #: include/admin-filters.php:817
91
- #: include/admin-filters.php:835
92
- #: include/list-table.php:12
93
- #: include/media-translations.php:5
94
- #: include/media-translations.php:43
95
- #: include/post-translations.php:8
96
- #: include/term-translations.php:15
97
- #: polylang.php:340
98
  msgid "Language"
99
  msgstr "Taal"
100
 
101
- #: include/admin-filters.php:616
102
- #: include/admin-filters.php:651
103
- #: include/list-table.php:127
104
- #: include/media-translations.php:40
105
- #: include/term-translations.php:6
106
- #: include/term-translations.php:11
107
  msgid "Translations"
108
  msgstr "Vertalings"
109
 
110
- #: include/admin-filters.php:819
111
- #: include/admin-filters.php:838
112
  msgid "Sets the language"
113
  msgstr "Stel die taal"
114
 
115
- #: include/admin-filters.php:1053
116
  msgid "The widget is displayed for:"
117
  msgstr "Die widget is vertoon vir:"
118
 
119
- #: include/admin-filters.php:1057
120
- #: polylang.php:341
121
  msgid "All languages"
122
  msgstr "Alle tale"
123
 
124
- #: include/admin-filters.php:1080
125
  msgid "Admin language"
126
  msgstr "Admin taal"
127
 
128
- #: include/admin-filters.php:1085
129
  msgid "Wordpress default"
130
  msgstr "Wordpress default"
131
 
132
- #: include/admin-filters.php:1114
133
- #: include/admin.php:306
134
  msgid "Settings"
135
  msgstr "Instellings"
136
 
137
- #: include/admin-filters.php:1120
138
  msgid "Upgrading language files&#8230;"
139
  msgstr "Opgradering van taal lêers&#8230;"
140
 
141
- #: include/admin.php:22
142
  msgid "About Polylang"
143
  msgstr "Oor Polylang"
144
 
145
- #: include/admin.php:27
146
- #: include/list-table.php:82
147
  msgid "Strings translations"
148
  msgstr "String vertalings"
149
 
150
- #: include/admin.php:305
151
- #: include/list-table.php:81
152
  msgid "Strings translation"
153
  msgstr "String vertaling"
154
 
155
- #: include/admin.php:345
156
  msgid "Enter a valid WorPress locale"
157
  msgstr "Gee 'n geldige WorPress locale"
158
 
159
- #: include/admin.php:346
160
- msgid "The language code must be 2 characters long"
161
- msgstr "Die taal kode moet 2 karakters lank wees"
162
-
163
- #: include/admin.php:328
164
  msgid "The language code must be unique"
165
  msgstr "Die taal kode moet uniek wees"
166
 
167
- #: include/admin.php:329
168
  msgid "The language must have a name"
169
  msgstr "Die taal moet 'n naam hê"
170
 
171
- #: include/admin.php:330
172
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
173
  msgstr "Die taal is geskep, maar die WordPress taallêer is nie afgelaai nie. Installeer dit asseblief by hand."
174
 
175
- #: include/admin.php:449
176
  msgid "Widget title"
177
  msgstr "Widget titel"
178
 
179
  # @ polylang
180
- #: include/base.php:368
181
  msgid "Taxonomies"
182
  msgstr "Taksonomieë"
183
 
184
  # @ polylang
185
- #: include/base.php:369
186
  msgid "Custom fields"
187
  msgstr "Persoonlike velde"
188
 
189
  # @ polylang
190
- #: include/base.php:370
191
  msgid "Comment status"
192
  msgstr "Kommentaar status"
193
 
194
  # @ polylang
195
- #: include/base.php:371
196
  msgid "Ping status"
197
  msgstr "Ping status"
198
 
199
  # @ polylang
200
- #: include/base.php:372
201
  msgid "Sticky posts"
202
  msgstr "Sticky posts"
203
 
204
  # @ polylang
205
- #: include/base.php:373
206
  msgid "Published date"
207
  msgstr "Gepubliseer datum"
208
 
209
  # @ polylang
210
- #: include/base.php:374
211
  msgid "Post format"
212
  msgstr "Post formaat"
213
 
214
- #: include/base.php:375
215
  msgid "Page parent"
216
  msgstr "Bladsy ouer"
217
 
218
  # @ polylang
219
- #: include/base.php:376
220
  msgid "Page template"
221
  msgstr "Bladsy sjabloon"
222
 
223
- #: include/base.php:377
224
  msgid "Page order"
225
  msgstr "Bladsy orde"
226
 
227
  # @ polylang
228
- #: include/base.php:378
229
  msgid "Featured image"
230
  msgstr "Featured prent"
231
 
232
- #: include/languages-form.php:42
233
  msgid "Edit language"
234
  msgstr "Verander tale"
235
 
236
- #: include/languages-form.php:42
237
- #: include/languages-form.php:123
238
  msgid "Add new language"
239
  msgstr "Las nuwe taal by"
240
 
241
- #: include/languages-form.php:64
242
  msgid "Choose a language"
243
  msgstr "Kies a taal"
244
 
245
- #: include/languages-form.php:78
246
  msgid "You can choose a language in the list or directly edit it below."
247
  msgstr "Jy kan 'n taal in die lys kies of dit direk verander hieronder."
248
 
249
- #: include/languages-form.php:82
250
- #: include/list-table.php:34
251
  msgid "Full name"
252
  msgstr "Volle naam"
253
 
254
- #: include/languages-form.php:84
255
  msgid "The name is how it is displayed on your site (for example: English)."
256
  msgstr "Die naam is hoe dit vertoon word op jou webwerf (byvoorbeeld: Afrikaans)."
257
 
258
- #: include/languages-form.php:88
259
- #: include/list-table.php:35
260
  msgid "Locale"
261
  msgstr "Locale"
262
 
263
- #: include/languages-form.php:93
264
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
265
  msgstr "Wordpress Locale vir die taal (byvoorbeeld: af_ZA). Jy gaan nodig hê om die .mo leêr te installeer vir die taal."
266
 
267
- #: include/languages-form.php:97
268
  msgid "Language code"
269
  msgstr "Taal kode"
270
 
271
- #: include/languages-form.php:99
272
  msgid "2-letters ISO 639-1 language code (for example: en)"
273
  msgstr "2 letters ISO 639-1 taal-kode (byvoorbeeld: af)"
274
 
275
- #: include/languages-form.php:103
276
  msgid "Text direction"
277
  msgstr "Skrif rigting"
278
 
279
- #: include/languages-form.php:107
280
  msgid "left to right"
281
  msgstr "links na regs"
282
 
283
- #: include/languages-form.php:112
284
  msgid "right to left"
285
  msgstr "regs na links"
286
 
287
- #: include/languages-form.php:114
288
  msgid "Choose the text direction for the language"
289
  msgstr "Kies die skrif rigting vir die taal"
290
 
291
- #: include/languages-form.php:118
292
- #: include/list-table.php:37
293
  msgid "Order"
294
  msgstr "Orde"
295
 
296
- #: include/languages-form.php:120
297
  msgid "Position of the language in the language switcher"
298
  msgstr "Posisie van die taal in die taal selektor"
299
 
300
- #: include/nav-menu.php:28
301
- #: include/nav-menu.php:51
302
- #: include/nav-menu.php:54
303
- #: include/nav-menu.php:82
304
- #: include/nav-menu.php:106
305
- #: polylang.php:302
306
  msgid "Language switcher"
307
  msgstr "Taal selektor"
308
 
309
- #: include/languages-form.php:148
310
  msgid "Search translations"
311
  msgstr "Search translations"
312
 
313
- #: include/languages-form.php:151
314
  msgid "Clean strings translation database"
315
  msgstr "Skoon stringe vertaling databasis"
316
 
317
- #: include/languages-form.php:167
318
  msgid "Default language"
319
  msgstr "Default taal"
320
 
321
- #: include/languages-form.php:179
322
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
323
  msgstr "Daar is posts, bladsye, kategorieë of tags sonder 'n taal gestel. Wil jy hulle almal stel na die standaard taal?"
324
 
325
- #: include/languages-form.php:187
326
  msgid "Detect browser language"
327
  msgstr "Spoor browser taal op"
328
 
329
- #: include/languages-form.php:193
330
  msgid "When the front page is visited, set the language according to the browser preference"
331
  msgstr "Wanneer die voorblad besoek word, stel die taal volgens die browser se voorkeur"
332
 
333
- #: include/languages-form.php:200
334
  msgid "URL modifications"
335
  msgstr "URL veranderinge"
336
 
337
- #: include/languages-form.php:206
338
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
339
  msgstr "Die taal is gestel vanaf die inhoud. Posts, bladsye, kategorieë en tags URL's is nie verander nie."
340
 
341
- #: include/languages-form.php:214
342
- msgid "The language code, for example /en/, is added to all urls when using pretty permalinks."
343
- msgstr "Die taal kode, byvoorbeeld /af/, word bygevoeg aan al die URL's wanneer mooi permanente skakels gebruik word."
344
-
345
- #: include/languages-form.php:223
346
  msgid "Remove /language/ in pretty permalinks. Example:"
347
  msgstr "Verwyder /taal/ in mooi permanente skakels. Voorbeeld:"
348
 
349
- #: include/languages-form.php:232
350
  msgid "Keep /language/ in pretty permalinks. Example:"
351
  msgstr "Hou /taal/ in mooi permanente skakels. Voorbeeld:"
352
 
353
- #: include/languages-form.php:241
354
  msgid "Hide URL language information for default language"
355
  msgstr "Verberg URL taal inligting vir standaard taal"
356
 
357
- #: include/languages-form.php:251
358
  #, php-format
359
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
360
  msgstr "Wanneer 'n statiese voorblad gebruik word, herlei die taal bladsy (byvoorbeeld: %s) na die voorblad in die regte taal"
361
 
362
  # @ polylang
363
- #: include/languages-form.php:260
364
  msgid "Media"
365
  msgstr "Media"
366
 
367
  # @ polylang
368
- #: include/languages-form.php:266
369
  msgid "Activate languages and translations for media"
370
  msgstr "Aktiveer tale en vertalings vir media"
371
 
372
- #: include/languages-form.php:273
373
  msgid "Synchronization"
374
  msgstr "Sinkronisering"
375
 
376
  # @ polylang
377
- #: include/languages-form.php:287
378
  msgid "Custom post types"
379
  msgstr "Persoonlike post tipes"
380
 
381
  # @ polylang
382
- #: include/languages-form.php:300
383
  msgid "Activate languages and translations for custom post types."
384
  msgstr "Aktiveer tale en vertalings vir persoonlike post tipes."
385
 
386
  # @ polylang
387
- #: include/languages-form.php:307
388
  msgid "Custom taxonomies"
389
  msgstr "Persoonlike taksonomieë"
390
 
391
  # @ polylang
392
- #: include/languages-form.php:320
393
  msgid "Activate languages and translations for custom taxonomies."
394
  msgstr "Aktiveer tale en vertalings vir persoonlike taksonomieë."
395
 
396
- #: include/list-table.php:26
397
- #: include/media-translations.php:22
398
- #: include/media-translations.php:60
399
- #: include/post-translations.php:10
400
- #: include/post-translations.php:33
401
- #: include/term-translations.php:18
402
- #: include/term-translations.php:80
403
  msgid "Edit"
404
  msgstr "Verander"
405
 
406
- #: include/list-table.php:27
407
- #: include/list-table.php:162
408
  msgid "Delete"
409
  msgstr "Verwyder"
410
 
411
- #: include/list-table.php:36
412
  msgid "Code"
413
  msgstr "Kode"
414
 
415
- #: include/list-table.php:38
416
  msgid "Flag"
417
  msgstr "Vlag"
418
 
419
- #: include/list-table.php:39
420
  msgid "Posts"
421
  msgstr "Posts"
422
 
423
- #: include/list-table.php:125
424
  msgid "Name"
425
  msgstr "Naam"
426
 
427
- #: include/list-table.php:126
428
  msgid "String"
429
  msgstr "String"
430
 
431
- #: include/media-translations.php:6
432
- #: include/media-translations.php:44
433
- #: include/term-translations.php:16
434
  msgid "Translation"
435
  msgstr "Vertaling"
436
 
437
- #: include/media-translations.php:31
438
- #: include/media-translations.php:68
439
- #: include/post-translations.php:38
440
- #: include/term-translations.php:60
441
  msgid "Add new"
442
  msgstr "Maak nuwe"
443
 
444
- #: include/post-translations.php:5
445
  msgid "ID of pages in other languages:"
446
  msgstr "ID van bladsye in ander tale:"
447
 
448
- #: include/post-translations.php:5
449
  msgid "ID of posts in other languages:"
450
  msgstr "ID van posts in ander tale:"
451
 
452
- #: include/post-translations.php:9
453
  msgid "Page ID"
454
  msgstr "Bladsy ID"
455
 
456
- #: include/post-translations.php:9
457
  msgid "Post ID"
458
  msgstr "Post ID"
459
 
460
- #: include/term-translations.php:48
461
  msgid "No untranslated term"
462
  msgstr "Geen onvertaalde term"
463
 
464
- #: include/widget.php:6
465
  msgid "Language Switcher"
466
  msgstr "Taal Selektor"
467
 
468
- #: include/widget.php:6
469
  msgid "Displays a language switcher"
470
  msgstr "Toon 'n taal selektor"
471
 
472
- #: include/widget.php:69
473
  msgid "Title:"
474
  msgstr "Titel:"
475
 
@@ -479,36 +467,77 @@ msgstr "Titel:"
479
  msgid "Adds multilingual capability to WordPress"
480
  msgstr "Voeg veeltalige vermoë by WordPress"
481
 
482
- #: polylang.php:133
483
  #, php-format
484
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
485
  msgstr "Jy gebruik WordPress %s. Polylang vereis ten minste WordPress %s."
486
 
487
- #: polylang.php:174
488
- msgid "For some reasons, Polylang could not create a table in your database."
489
- msgstr "Vir een of ander rede kon Polylang nie 'n tabel in jou databasis stoor nie."
490
-
491
  # @ polylang
492
- #: polylang.php:235
493
  msgid "Polylang has been deactivated because you upgraded from a too old version."
494
  msgstr "Polylang was gedeaktiveer omdat jy van te ou weergawe af opgegradeer het."
495
 
496
  # @ polylang
497
- #: polylang.php:237
498
  #, php-format
499
  msgid "Please upgrade first to %s before ugrading to %s."
500
  msgstr "Gradeer asseblief eers op na %s toe voor jy opgradeer na %s toe."
501
 
502
  # @ polylang
503
- #: include/list-table.php:124
504
  msgid "Group"
505
  msgstr "Groep"
506
 
507
  # @ polylang
508
- #: include/list-table.php:173
509
  msgid "View all groups"
510
  msgstr "Sien alle groepe"
511
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
512
  #~ msgid "Displays a language switcher at the end of the menu"
513
  #~ msgstr "Toon 'n taal selektor aan die einde van die kieslys"
514
 
17
  "X-Poedit-SearchPath-0: ..\n"
18
  "X-Poedit-SearchPath-1: ../include\n"
19
 
20
+ #: admin/view-about.php:3
21
  #, php-format
22
  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."
23
  msgstr "Polylang word voorsien met 'n uitgebreide %s dokumentasie %s (slegs in Engels). Dit sluit inligting in oor hoe om jou veeltalige werf op te stel en dit op 'n daaglikse basis te gebruik, 'n FAQ, sowel as 'n dokumentasie vir programmeerders om hul plugins en temas aan te pas."
24
 
25
+ #: admin/view-about.php:9
26
  #, php-format
27
  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."
28
  msgstr "Jy sal ook nuttige inligting in die %s support forum %s vind. Maar moenie vergeet om 'n soektog te maak voordat 'n nuwe onderwerp gepos word nie."
29
 
30
+ #: admin/view-about.php:16
31
  #, php-format
32
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
33
  msgstr "Polylang is gratis en is vrygestel onder dieselfde lisensie as WordPress, die %sGPL%s."
34
 
35
+ #: admin/view-about.php:22
36
  #, php-format
37
  msgid "If you wonder how you can help the project, just %sread this%s."
38
  msgstr "As jy wonder hoe jy die projek kan help, %slees hierdie%s."
39
 
40
+ #: admin/view-about.php:27
41
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
42
  msgstr "Laastens as jy van hierdie plugin hou, of as dit jou besigheid help, sal donasies aan die skrywer opreg waardeer word."
43
 
44
+ #: admin/admin-filters-post.php:76
45
+ #: admin/admin.php:83
46
+ #: admin/admin.php:187
47
+ #: admin/settings.php:42
48
+ #: admin/settings.php:57
49
+ #: include/model.php:490
 
50
  msgid "Languages"
51
  msgstr "Tale"
52
 
53
+ #: include/switcher.php:22
54
  msgid "Displays language names"
55
  msgstr "Toon taal name"
56
 
57
+ #: include/switcher.php:23
58
  msgid "Displays flags"
59
  msgstr "Toon vlae"
60
 
61
+ #: include/switcher.php:24
62
  msgid "Forces link to front page"
63
  msgstr "Dwing skakel na voorblad"
64
 
65
+ #: include/switcher.php:25
66
  msgid "Hides the current language"
67
  msgstr "Verberg die huidige taal"
68
 
69
+ #: include/switcher.php:29
70
  msgid "Displays as dropdown"
71
  msgstr "Toon as dropdown"
72
 
73
+ #: admin/admin.php:188
74
  msgid "Filters content by language"
75
  msgstr "Filtreer inhoud volgens taal"
76
 
77
+ #: admin/admin.php:183
78
  msgid "Show all languages"
79
  msgstr "Toon alle tale"
80
 
81
+ #: admin/admin-filters-columns.php:126
82
+ #: admin/admin-filters-columns.php:215
83
  msgid "Add new translation"
84
  msgstr "Las 'n nuwe vertaling by"
85
 
86
+ #: admin/admin-filters-columns.php:163
87
+ #: admin/admin-filters-media.php:58
88
+ #: admin/admin-filters-post.php:109
89
+ #: admin/admin-filters-term.php:72
90
+ #: admin/admin-filters-term.php:106
91
+ #: admin/view-translations-media.php:7
92
+ #: admin/view-translations-media.php:45
93
+ #: admin/view-translations-post.php:8
94
+ #: admin/view-translations-term.php:15
95
+ #: include/model.php:491
 
96
  msgid "Language"
97
  msgstr "Taal"
98
 
99
+ #: admin/admin-filters-media.php:73
100
+ #: admin/admin-filters-media.php:112
101
+ #: admin/table-string.php:111
102
+ #: admin/view-translations-media.php:42
103
+ #: admin/view-translations-term.php:6
104
+ #: admin/view-translations-term.php:11
105
  msgid "Translations"
106
  msgstr "Vertalings"
107
 
108
+ #: admin/admin-filters-term.php:74
109
+ #: admin/admin-filters-term.php:108
110
  msgid "Sets the language"
111
  msgstr "Stel die taal"
112
 
113
+ #: admin/admin-filters.php:60
114
  msgid "The widget is displayed for:"
115
  msgstr "Die widget is vertoon vir:"
116
 
117
+ #: admin/admin-filters.php:63
118
+ #: include/model.php:492
119
  msgid "All languages"
120
  msgstr "Alle tale"
121
 
122
+ #: admin/admin-filters.php:120
123
  msgid "Admin language"
124
  msgstr "Admin taal"
125
 
126
+ #: admin/admin-filters.php:123
127
  msgid "Wordpress default"
128
  msgstr "Wordpress default"
129
 
130
+ #: admin/admin.php:123
131
+ #: admin/settings.php:62
132
  msgid "Settings"
133
  msgstr "Instellings"
134
 
135
+ #: admin/admin-filters.php:151
136
  msgid "Upgrading language files&#8230;"
137
  msgstr "Opgradering van taal lêers&#8230;"
138
 
139
+ #: admin/settings.php:38
140
  msgid "About Polylang"
141
  msgstr "Oor Polylang"
142
 
143
+ #: admin/settings.php:46
 
144
  msgid "Strings translations"
145
  msgstr "String vertalings"
146
 
147
+ #: admin/settings.php:61
 
148
  msgid "Strings translation"
149
  msgstr "String vertaling"
150
 
151
+ #: admin/settings.php:74
152
  msgid "Enter a valid WorPress locale"
153
  msgstr "Gee 'n geldige WorPress locale"
154
 
155
+ #: admin/settings.php:76
 
 
 
 
156
  msgid "The language code must be unique"
157
  msgstr "Die taal kode moet uniek wees"
158
 
159
+ #: admin/settings.php:77
160
  msgid "The language must have a name"
161
  msgstr "Die taal moet 'n naam hê"
162
 
163
+ #: admin/settings.php:78
164
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
165
  msgstr "Die taal is geskep, maar die WordPress taallêer is nie afgelaai nie. Installeer dit asseblief by hand."
166
 
167
+ #: admin/settings.php:305
168
  msgid "Widget title"
169
  msgstr "Widget titel"
170
 
171
  # @ polylang
172
+ #: admin/settings.php:323
173
  msgid "Taxonomies"
174
  msgstr "Taksonomieë"
175
 
176
  # @ polylang
177
+ #: admin/settings.php:324
178
  msgid "Custom fields"
179
  msgstr "Persoonlike velde"
180
 
181
  # @ polylang
182
+ #: admin/settings.php:325
183
  msgid "Comment status"
184
  msgstr "Kommentaar status"
185
 
186
  # @ polylang
187
+ #: admin/settings.php:326
188
  msgid "Ping status"
189
  msgstr "Ping status"
190
 
191
  # @ polylang
192
+ #: admin/settings.php:327
193
  msgid "Sticky posts"
194
  msgstr "Sticky posts"
195
 
196
  # @ polylang
197
+ #: admin/settings.php:328
198
  msgid "Published date"
199
  msgstr "Gepubliseer datum"
200
 
201
  # @ polylang
202
+ #: admin/settings.php:329
203
  msgid "Post format"
204
  msgstr "Post formaat"
205
 
206
+ #: admin/settings.php:330
207
  msgid "Page parent"
208
  msgstr "Bladsy ouer"
209
 
210
  # @ polylang
211
+ #: admin/settings.php:331
212
  msgid "Page template"
213
  msgstr "Bladsy sjabloon"
214
 
215
+ #: admin/settings.php:332
216
  msgid "Page order"
217
  msgstr "Bladsy orde"
218
 
219
  # @ polylang
220
+ #: admin/settings.php:333
221
  msgid "Featured image"
222
  msgstr "Featured prent"
223
 
224
+ #: admin/view-languages.php:42
225
  msgid "Edit language"
226
  msgstr "Verander tale"
227
 
228
+ #: admin/view-languages.php:42
229
+ #: admin/view-languages.php:117
230
  msgid "Add new language"
231
  msgstr "Las nuwe taal by"
232
 
233
+ #: admin/view-languages.php:58
234
  msgid "Choose a language"
235
  msgstr "Kies a taal"
236
 
237
+ #: admin/view-languages.php:72
238
  msgid "You can choose a language in the list or directly edit it below."
239
  msgstr "Jy kan 'n taal in die lys kies of dit direk verander hieronder."
240
 
241
+ #: admin/table-languages.php:74
242
+ #: admin/view-languages.php:76
243
  msgid "Full name"
244
  msgstr "Volle naam"
245
 
246
+ #: admin/view-languages.php:78
247
  msgid "The name is how it is displayed on your site (for example: English)."
248
  msgstr "Die naam is hoe dit vertoon word op jou webwerf (byvoorbeeld: Afrikaans)."
249
 
250
+ #: admin/table-languages.php:75
251
+ #: admin/view-languages.php:82
252
  msgid "Locale"
253
  msgstr "Locale"
254
 
255
+ #: admin/view-languages.php:87
256
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
257
  msgstr "Wordpress Locale vir die taal (byvoorbeeld: af_ZA). Jy gaan nodig hê om die .mo leêr te installeer vir die taal."
258
 
259
+ #: admin/view-languages.php:91
260
  msgid "Language code"
261
  msgstr "Taal kode"
262
 
263
+ #: admin/view-languages.php:93
264
  msgid "2-letters ISO 639-1 language code (for example: en)"
265
  msgstr "2 letters ISO 639-1 taal-kode (byvoorbeeld: af)"
266
 
267
+ #: admin/view-languages.php:97
268
  msgid "Text direction"
269
  msgstr "Skrif rigting"
270
 
271
+ #: admin/view-languages.php:101
272
  msgid "left to right"
273
  msgstr "links na regs"
274
 
275
+ #: admin/view-languages.php:106
276
  msgid "right to left"
277
  msgstr "regs na links"
278
 
279
+ #: admin/view-languages.php:108
280
  msgid "Choose the text direction for the language"
281
  msgstr "Kies die skrif rigting vir die taal"
282
 
283
+ #: admin/table-languages.php:77
284
+ #: admin/view-languages.php:112
285
  msgid "Order"
286
  msgstr "Orde"
287
 
288
+ #: admin/view-languages.php:114
289
  msgid "Position of the language in the language switcher"
290
  msgstr "Posisie van die taal in die taal selektor"
291
 
292
+ #: admin/admin-nav-menu.php:51
293
+ #: admin/admin-nav-menu.php:79
294
+ #: admin/admin-nav-menu.php:82
295
+ #: admin/admin-nav-menu.php:113
296
+ #: admin/admin-nav-menu.php:170
297
+ #: include/upgrade.php:175
298
  msgid "Language switcher"
299
  msgstr "Taal selektor"
300
 
301
+ #: admin/view-languages.php:143
302
  msgid "Search translations"
303
  msgstr "Search translations"
304
 
305
+ #: admin/view-languages.php:146
306
  msgid "Clean strings translation database"
307
  msgstr "Skoon stringe vertaling databasis"
308
 
309
+ #: admin/view-languages.php:164
310
  msgid "Default language"
311
  msgstr "Default taal"
312
 
313
+ #: admin/view-languages.php:179
314
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
315
  msgstr "Daar is posts, bladsye, kategorieë of tags sonder 'n taal gestel. Wil jy hulle almal stel na die standaard taal?"
316
 
317
+ #: admin/view-languages.php:187
318
  msgid "Detect browser language"
319
  msgstr "Spoor browser taal op"
320
 
321
+ #: admin/view-languages.php:193
322
  msgid "When the front page is visited, set the language according to the browser preference"
323
  msgstr "Wanneer die voorblad besoek word, stel die taal volgens die browser se voorkeur"
324
 
325
+ #: admin/view-languages.php:200
326
  msgid "URL modifications"
327
  msgstr "URL veranderinge"
328
 
329
+ #: admin/view-languages.php:206
330
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
331
  msgstr "Die taal is gestel vanaf die inhoud. Posts, bladsye, kategorieë en tags URL's is nie verander nie."
332
 
333
+ #: admin/view-languages.php:253
 
 
 
 
334
  msgid "Remove /language/ in pretty permalinks. Example:"
335
  msgstr "Verwyder /taal/ in mooi permanente skakels. Voorbeeld:"
336
 
337
+ #: admin/view-languages.php:262
338
  msgid "Keep /language/ in pretty permalinks. Example:"
339
  msgstr "Hou /taal/ in mooi permanente skakels. Voorbeeld:"
340
 
341
+ #: admin/view-languages.php:271
342
  msgid "Hide URL language information for default language"
343
  msgstr "Verberg URL taal inligting vir standaard taal"
344
 
345
+ #: admin/view-languages.php:281
346
  #, php-format
347
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
348
  msgstr "Wanneer 'n statiese voorblad gebruik word, herlei die taal bladsy (byvoorbeeld: %s) na die voorblad in die regte taal"
349
 
350
  # @ polylang
351
+ #: admin/view-languages.php:290
352
  msgid "Media"
353
  msgstr "Media"
354
 
355
  # @ polylang
356
+ #: admin/view-languages.php:296
357
  msgid "Activate languages and translations for media"
358
  msgstr "Aktiveer tale en vertalings vir media"
359
 
360
+ #: admin/view-languages.php:303
361
  msgid "Synchronization"
362
  msgstr "Sinkronisering"
363
 
364
  # @ polylang
365
+ #: admin/view-languages.php:320
366
  msgid "Custom post types"
367
  msgstr "Persoonlike post tipes"
368
 
369
  # @ polylang
370
+ #: admin/view-languages.php:333
371
  msgid "Activate languages and translations for custom post types."
372
  msgstr "Aktiveer tale en vertalings vir persoonlike post tipes."
373
 
374
  # @ polylang
375
+ #: admin/view-languages.php:340
376
  msgid "Custom taxonomies"
377
  msgstr "Persoonlike taksonomieë"
378
 
379
  # @ polylang
380
+ #: admin/view-languages.php:353
381
  msgid "Activate languages and translations for custom taxonomies."
382
  msgstr "Aktiveer tale en vertalings vir persoonlike taksonomieë."
383
 
384
+ #: admin/table-languages.php:54
385
+ #: admin/view-translations-media.php:24
386
+ #: admin/view-translations-media.php:62
387
+ #: admin/view-translations-post.php:10
388
+ #: admin/view-translations-post.php:33
389
+ #: admin/view-translations-term.php:18
390
+ #: admin/view-translations-term.php:80
391
  msgid "Edit"
392
  msgstr "Verander"
393
 
394
+ #: admin/table-languages.php:60
395
+ #: admin/table-string.php:167
396
  msgid "Delete"
397
  msgstr "Verwyder"
398
 
399
+ #: admin/table-languages.php:76
400
  msgid "Code"
401
  msgstr "Kode"
402
 
403
+ #: admin/table-languages.php:78
404
  msgid "Flag"
405
  msgstr "Vlag"
406
 
407
+ #: admin/table-languages.php:79
408
  msgid "Posts"
409
  msgstr "Posts"
410
 
411
+ #: admin/table-string.php:109
412
  msgid "Name"
413
  msgstr "Naam"
414
 
415
+ #: admin/table-string.php:110
416
  msgid "String"
417
  msgstr "String"
418
 
419
+ #: admin/view-translations-media.php:8
420
+ #: admin/view-translations-media.php:46
421
+ #: admin/view-translations-term.php:16
422
  msgid "Translation"
423
  msgstr "Vertaling"
424
 
425
+ #: admin/view-translations-media.php:33
426
+ #: admin/view-translations-media.php:70
427
+ #: admin/view-translations-post.php:38
428
+ #: admin/view-translations-term.php:60
429
  msgid "Add new"
430
  msgstr "Maak nuwe"
431
 
432
+ #: admin/view-translations-post.php:5
433
  msgid "ID of pages in other languages:"
434
  msgstr "ID van bladsye in ander tale:"
435
 
436
+ #: admin/view-translations-post.php:5
437
  msgid "ID of posts in other languages:"
438
  msgstr "ID van posts in ander tale:"
439
 
440
+ #: admin/view-translations-post.php:9
441
  msgid "Page ID"
442
  msgstr "Bladsy ID"
443
 
444
+ #: admin/view-translations-post.php:9
445
  msgid "Post ID"
446
  msgstr "Post ID"
447
 
448
+ #: admin/view-translations-term.php:48
449
  msgid "No untranslated term"
450
  msgstr "Geen onvertaalde term"
451
 
452
+ #: include/widget-languages.php:16
453
  msgid "Language Switcher"
454
  msgstr "Taal Selektor"
455
 
456
+ #: include/widget-languages.php:16
457
  msgid "Displays a language switcher"
458
  msgstr "Toon 'n taal selektor"
459
 
460
+ #: include/widget-languages.php:100
461
  msgid "Title:"
462
  msgstr "Titel:"
463
 
467
  msgid "Adds multilingual capability to WordPress"
468
  msgstr "Voeg veeltalige vermoë by WordPress"
469
 
470
+ #: polylang.php:157
471
  #, php-format
472
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
473
  msgstr "Jy gebruik WordPress %s. Polylang vereis ten minste WordPress %s."
474
 
 
 
 
 
475
  # @ polylang
476
+ #: include/upgrade.php:75
477
  msgid "Polylang has been deactivated because you upgraded from a too old version."
478
  msgstr "Polylang was gedeaktiveer omdat jy van te ou weergawe af opgegradeer het."
479
 
480
  # @ polylang
481
+ #: include/upgrade.php:77
482
  #, php-format
483
  msgid "Please upgrade first to %s before ugrading to %s."
484
  msgstr "Gradeer asseblief eers op na %s toe voor jy opgradeer na %s toe."
485
 
486
  # @ polylang
487
+ #: admin/table-string.php:108
488
  msgid "Group"
489
  msgstr "Groep"
490
 
491
  # @ polylang
492
+ #: admin/table-string.php:186
493
  msgid "View all groups"
494
  msgstr "Sien alle groepe"
495
 
496
+ # @ polylang
497
+ #: admin/table-languages.php:59
498
+ msgid "You are about to permanently delete this language. Are you sure?"
499
+ msgstr ""
500
+
501
+ # @ polylang
502
+ #: admin/view-languages.php:147
503
+ msgid "Use this to remove unused strings from database, for example after a plugin has been uninstalled."
504
+ msgstr ""
505
+
506
+ #: admin/view-languages.php:214
507
+ msgid "The language is set from the directory name in pretty permalinks. Example:"
508
+ msgstr ""
509
+
510
+ #: admin/view-languages.php:223
511
+ msgid "The language is set from the subdomain name in pretty permalinks. Example:"
512
+ msgstr ""
513
+
514
+ # @ polylang
515
+ #: admin/view-languages.php:314
516
+ 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."
517
+ msgstr ""
518
+
519
+ #: admin/settings.php:75
520
+ msgid "The language code contains invalid characters"
521
+ msgstr ""
522
+
523
+ # @ polylang
524
+ #: admin/view-languages.php:232
525
+ msgid "The language is set from different domains:"
526
+ msgstr ""
527
+
528
+ #~ msgid ""
529
+ #~ "The language code, for example /en/, is added to all urls when using "
530
+ #~ "pretty permalinks."
531
+ #~ msgstr ""
532
+ #~ "Die taal kode, byvoorbeeld /af/, word bygevoeg aan al die URL's wanneer "
533
+ #~ "mooi permanente skakels gebruik word."
534
+
535
+ #~ msgid ""
536
+ #~ "For some reasons, Polylang could not create a table in your database."
537
+ #~ msgstr ""
538
+ #~ "Vir een of ander rede kon Polylang nie 'n tabel in jou databasis stoor "
539
+ #~ "nie."
540
+
541
  #~ msgid "Displays a language switcher at the end of the menu"
542
  #~ msgstr "Toon 'n taal selektor aan die einde van die kieslys"
543
 
languages/polylang-ar.mo ADDED
Binary file
languages/polylang-ar.po ADDED
@@ -0,0 +1,713 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Polylang v1.2dev55\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2013-10-26 20:36:32+0000\n"
7
+ "Last-Translator: Anas H. Sulaiman <anas@ahs.pw>\n"
8
+ "Language-Team: \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=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
13
+ "X-Generator: CSL v1.x\n"
14
+ "X-Poedit-Language: Arabic\n"
15
+ "X-Poedit-Country: SAUDI ARABIA\n"
16
+ "X-Poedit-SourceCharset: utf-8\n"
17
+ "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"
18
+ "X-Poedit-Basepath: ../\n"
19
+ "X-Poedit-Bookmarks: \n"
20
+ "X-Poedit-SearchPath-0: .\n"
21
+ "X-Textdomain-Support: yes"
22
+
23
+ #: admin/admin-filters-columns.php:126
24
+ #: admin/admin-filters-columns.php:215
25
+ #@ polylang
26
+ msgid "Add new translation"
27
+ msgstr "أضف ترجمة جديدة"
28
+
29
+ #: admin/admin-filters-columns.php:149
30
+ #@ default
31
+ msgid "&mdash; No Change &mdash;"
32
+ msgstr ""
33
+
34
+ #: admin/admin-filters-columns.php:163
35
+ #: admin/admin-filters-media.php:58
36
+ #: admin/admin-filters-post.php:109
37
+ #: admin/admin-filters-term.php:72
38
+ #: admin/admin-filters-term.php:106
39
+ #: admin/view-translations-media.php:7
40
+ #: admin/view-translations-media.php:45
41
+ #: admin/view-translations-post.php:8
42
+ #: admin/view-translations-term.php:15
43
+ #: include/model.php:498
44
+ #@ polylang
45
+ msgid "Language"
46
+ msgstr "اللغة"
47
+
48
+ #: admin/admin-filters-media.php:73
49
+ #: admin/admin-filters-media.php:112
50
+ #: admin/table-string.php:111
51
+ #: admin/view-translations-media.php:42
52
+ #: admin/view-translations-term.php:6
53
+ #: admin/view-translations-term.php:11
54
+ #@ polylang
55
+ msgid "Translations"
56
+ msgstr "الترجمات"
57
+
58
+ #: admin/admin-filters-post.php:76
59
+ #: admin/admin.php:86
60
+ #: admin/admin.php:190
61
+ #: admin/settings.php:42
62
+ #: admin/settings.php:57
63
+ #: include/model.php:497
64
+ #@ polylang
65
+ msgid "Languages"
66
+ msgstr "اللغات"
67
+
68
+ #: admin/admin-filters-post.php:180
69
+ #@ default
70
+ msgid "(no parent)"
71
+ msgstr ""
72
+
73
+ #: admin/admin-filters-term.php:74
74
+ #: admin/admin-filters-term.php:108
75
+ #@ polylang
76
+ msgid "Sets the language"
77
+ msgstr "يحدد اللغة"
78
+
79
+ #: admin/admin-filters-term.php:277
80
+ #@ default
81
+ msgid "None"
82
+ msgstr ""
83
+
84
+ #: admin/admin-filters.php:60
85
+ #@ polylang
86
+ msgid "The widget is displayed for:"
87
+ msgstr "يظهر المربع الجانبي من أجل:"
88
+
89
+ #: admin/admin-filters.php:63
90
+ #: include/model.php:499
91
+ #@ polylang
92
+ msgid "All languages"
93
+ msgstr "كل اللغات"
94
+
95
+ #: admin/admin-filters.php:120
96
+ #@ polylang
97
+ msgid "Admin language"
98
+ msgstr "لغة لوحة التحكم"
99
+
100
+ #: admin/admin-filters.php:123
101
+ #@ polylang
102
+ msgid "Wordpress default"
103
+ msgstr "الافتراضي لووردبريس"
104
+
105
+ #: admin/admin-filters.php:151
106
+ #@ polylang
107
+ msgid "Upgrading language files&#8230;"
108
+ msgstr "جاري تحديث ملفات اللغات&#8230;"
109
+
110
+ #: admin/admin-model.php:81
111
+ #@ default
112
+ msgid "Uncategorized"
113
+ msgstr ""
114
+
115
+ #: admin/admin-nav-menu.php:46
116
+ #: admin/admin-nav-menu.php:84
117
+ #: admin/admin-nav-menu.php:87
118
+ #: admin/admin-nav-menu.php:118
119
+ #: admin/admin-nav-menu.php:175
120
+ #: include/upgrade.php:175
121
+ #@ polylang
122
+ msgid "Language switcher"
123
+ msgstr "مبدل اللغة"
124
+
125
+ #: admin/admin.php:126
126
+ #: admin/settings.php:62
127
+ #@ polylang
128
+ msgid "Settings"
129
+ msgstr "إعدادات"
130
+
131
+ #: admin/admin.php:186
132
+ #@ polylang
133
+ msgid "Show all languages"
134
+ msgstr "أظهر كل اللغات"
135
+
136
+ #: admin/admin.php:191
137
+ #@ polylang
138
+ msgid "Filters content by language"
139
+ msgstr "يرشح المحتوى حسب اللغة"
140
+
141
+ #: admin/settings.php:38
142
+ #@ polylang
143
+ msgid "About Polylang"
144
+ msgstr "عن Polylang"
145
+
146
+ #: admin/settings.php:46
147
+ #@ polylang
148
+ msgid "Strings translations"
149
+ msgstr "ترجمات الجمل"
150
+
151
+ #: admin/settings.php:61
152
+ #@ polylang
153
+ msgid "Strings translation"
154
+ msgstr "ترجمة الجمل"
155
+
156
+ #: admin/settings.php:74
157
+ #@ polylang
158
+ msgid "Enter a valid WordPress locale"
159
+ msgstr "أدخل موقعاً صحيحاً بالنسبة للووردبريس"
160
+
161
+ #: admin/settings.php:75
162
+ #@ polylang
163
+ msgid "The language code contains invalid characters"
164
+ msgstr "يحتوي رمز اللغة على محارف خاطئة"
165
+
166
+ #: admin/settings.php:76
167
+ #@ polylang
168
+ msgid "The language code must be unique"
169
+ msgstr "يجب أن يكون رمز اللغة فريداً"
170
+
171
+ #: admin/settings.php:77
172
+ #@ polylang
173
+ msgid "The language must have a name"
174
+ msgstr "يجب أن يكون للغة اسم"
175
+
176
+ #: admin/settings.php:78
177
+ #@ polylang
178
+ msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
179
+ msgstr "تم إنشاء اللغة، لكن لم يتم تحميل ملفات ووردبريس الخاصة بها. رجاءً ثبتهم يدوياً."
180
+
181
+ #: admin/settings.php:284
182
+ #@ default
183
+ msgid "Site Title"
184
+ msgstr ""
185
+
186
+ #: admin/settings.php:285
187
+ #@ default
188
+ msgid "Tagline"
189
+ msgstr ""
190
+
191
+ #: admin/settings.php:286
192
+ #@ default
193
+ msgid "Date Format"
194
+ msgstr ""
195
+
196
+ #: admin/settings.php:287
197
+ #@ default
198
+ msgid "Time Format"
199
+ msgstr ""
200
+
201
+ #: admin/settings.php:306
202
+ #@ polylang
203
+ msgid "Widget title"
204
+ msgstr "عنوان المربع الجانبي"
205
+
206
+ #: admin/settings.php:324
207
+ #@ polylang
208
+ msgid "Taxonomies"
209
+ msgstr "مصطلحات التصنيف"
210
+
211
+ #: admin/settings.php:325
212
+ #@ polylang
213
+ msgid "Custom fields"
214
+ msgstr "الحقول المخصصة"
215
+
216
+ #: admin/settings.php:326
217
+ #@ polylang
218
+ msgid "Comment status"
219
+ msgstr "حالة التعليق"
220
+
221
+ #: admin/settings.php:327
222
+ #@ polylang
223
+ msgid "Ping status"
224
+ msgstr "حالة التعقيب"
225
+
226
+ #: admin/settings.php:328
227
+ #@ polylang
228
+ msgid "Sticky posts"
229
+ msgstr "التدوينات المثبتة"
230
+
231
+ #: admin/settings.php:329
232
+ #@ polylang
233
+ msgid "Published date"
234
+ msgstr "تاريخ النشر"
235
+
236
+ #: admin/settings.php:330
237
+ #@ polylang
238
+ msgid "Post format"
239
+ msgstr "بنية التدوينة"
240
+
241
+ #: admin/settings.php:331
242
+ #@ polylang
243
+ msgid "Page parent"
244
+ msgstr "أب الصفحة"
245
+
246
+ #: admin/settings.php:332
247
+ #@ polylang
248
+ msgid "Page template"
249
+ msgstr "قالب الصفحة"
250
+
251
+ #: admin/settings.php:333
252
+ #@ polylang
253
+ msgid "Page order"
254
+ msgstr "ترتيب الصفحة"
255
+
256
+ #: admin/settings.php:334
257
+ #@ polylang
258
+ msgid "Featured image"
259
+ msgstr "الصورة البارزة"
260
+
261
+ #: admin/table-languages.php:54
262
+ #: admin/view-translations-media.php:24
263
+ #: admin/view-translations-media.php:62
264
+ #: admin/view-translations-post.php:10
265
+ #: admin/view-translations-post.php:33
266
+ #: admin/view-translations-term.php:18
267
+ #: admin/view-translations-term.php:80
268
+ #@ polylang
269
+ msgid "Edit"
270
+ msgstr "تحرير"
271
+
272
+ #: admin/table-languages.php:59
273
+ #@ polylang
274
+ msgid "You are about to permanently delete this language. Are you sure?"
275
+ msgstr "أنت على وشك إزالة اللغة بالكامل. هل أنت متأكد؟"
276
+
277
+ #: admin/table-languages.php:60
278
+ #: admin/table-string.php:167
279
+ #@ polylang
280
+ msgid "Delete"
281
+ msgstr "حذف"
282
+
283
+ #: admin/table-languages.php:74
284
+ #: admin/view-languages.php:76
285
+ #@ polylang
286
+ msgid "Full name"
287
+ msgstr "الاسم الكامل"
288
+
289
+ #: admin/table-languages.php:75
290
+ #: admin/view-languages.php:82
291
+ #@ polylang
292
+ msgid "Locale"
293
+ msgstr "الموقع"
294
+
295
+ #: admin/table-languages.php:76
296
+ #@ polylang
297
+ msgid "Code"
298
+ msgstr "الرمز"
299
+
300
+ #: admin/table-languages.php:77
301
+ #: admin/view-languages.php:112
302
+ #@ polylang
303
+ msgid "Order"
304
+ msgstr "الترتيب"
305
+
306
+ #: admin/table-languages.php:78
307
+ #@ polylang
308
+ msgid "Flag"
309
+ msgstr "العلم"
310
+
311
+ #: admin/table-languages.php:79
312
+ #@ polylang
313
+ msgid "Posts"
314
+ msgstr "التدوينات"
315
+
316
+ #: admin/table-string.php:108
317
+ #@ polylang
318
+ msgid "Group"
319
+ msgstr "المجموعة"
320
+
321
+ #: admin/table-string.php:109
322
+ #@ polylang
323
+ msgid "Name"
324
+ msgstr "الاسم"
325
+
326
+ #: admin/table-string.php:110
327
+ #@ polylang
328
+ msgid "String"
329
+ msgstr "الجملة"
330
+
331
+ #: admin/table-string.php:186
332
+ #@ polylang
333
+ msgid "View all groups"
334
+ msgstr "عرض كل المجموعات"
335
+
336
+ #: admin/table-string.php:199
337
+ #@ default
338
+ msgid "Filter"
339
+ msgstr ""
340
+
341
+ #: admin/view-about.php:3
342
+ #, php-format
343
+ #@ polylang
344
+ 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."
345
+ msgstr "تقدم Polylang مع %sتوثيق%s شامل (باللغة الإنكليزية فقط). يتضمن التوثيق معلومات عن كيفية ضبط موقعك متعدد اللغات، وكيفية استخدام الإضافة في أعمالك اليومية، بالإضافة إلى إجابات عن الأسئلة الشائعة، وايضاً توثيق خاص بالمطورين الراغبين بالاستفادة من إمكانيات الإضافة في إضافاتهم ومظاهرهم."
346
+
347
+ #: admin/view-about.php:9
348
+ #, php-format
349
+ #@ polylang
350
+ 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."
351
+ msgstr "ستجد أيضاً معلومات مفيدة في %sمنتدى الدعم%s. لكن لا تنس أن تبحث قليلاً قبل نشر موضوع جديد."
352
+
353
+ #: admin/view-about.php:16
354
+ #, php-format
355
+ #@ polylang
356
+ msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
357
+ msgstr "Polylang إضافة مجانية موزعة تحت الرخصة نفسها التي توزع بها ووردبريس، %sرخصة جنو الحرة%s."
358
+
359
+ #: admin/view-about.php:22
360
+ #, php-format
361
+ #@ polylang
362
+ msgid "If you wonder how you can help the project, just %sread this%s."
363
+ msgstr "إذا كنت تتساءل عن كيفية المساهمة في المشروع، فقط %sاقرأ هذا%s."
364
+
365
+ #: admin/view-about.php:27
366
+ #@ polylang
367
+ msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
368
+ msgstr "أخيراً، إذا أعجبتك هذه الإضافة، أو إذا كانت مفيدة لأعمالك، يمكنك التبرع إلى كاتبها، وسيكون ممتناً كثيراً لك."
369
+
370
+ #: admin/view-languages.php:42
371
+ #@ polylang
372
+ msgid "Edit language"
373
+ msgstr "تحرير اللغة"
374
+
375
+ #: admin/view-languages.php:42
376
+ #: admin/view-languages.php:117
377
+ #@ polylang
378
+ msgid "Add new language"
379
+ msgstr "أضف لغة جديدة"
380
+
381
+ #: admin/view-languages.php:58
382
+ #@ polylang
383
+ msgid "Choose a language"
384
+ msgstr "اختر لغة"
385
+
386
+ #: admin/view-languages.php:72
387
+ #@ polylang
388
+ msgid "You can choose a language in the list or directly edit it below."
389
+ msgstr "يمكنك اختيار لغة من القائمة، أو تحريرها مباشرة في الأسفل."
390
+
391
+ #: admin/view-languages.php:78
392
+ #@ polylang
393
+ msgid "The name is how it is displayed on your site (for example: English)."
394
+ msgstr "الاسم كما سيعرض على موقعك (مثلاً: العربية)."
395
+
396
+ #: admin/view-languages.php:87
397
+ #@ polylang
398
+ msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
399
+ msgstr "الموقع المتناسب مع ووردبريس لهذه اللغة (مثلاً: ar_SA). ستحتاج إلى تثبيت ملفات .mo الخاصة باللغة."
400
+
401
+ #: admin/view-languages.php:91
402
+ #@ polylang
403
+ msgid "Language code"
404
+ msgstr "رمز اللغة"
405
+
406
+ #: admin/view-languages.php:93
407
+ #@ polylang
408
+ msgid "2-letters ISO 639-1 language code (for example: en)"
409
+ msgstr "رمز اللغة على هيئة حرفين متوافقين مع ISO 639-1 (مثلاً: ar)"
410
+
411
+ #: admin/view-languages.php:97
412
+ #@ polylang
413
+ msgid "Text direction"
414
+ msgstr "جهة النص"
415
+
416
+ #: admin/view-languages.php:101
417
+ #@ polylang
418
+ msgid "left to right"
419
+ msgstr "من اليسار إلى اليمين"
420
+
421
+ #: admin/view-languages.php:106
422
+ #@ polylang
423
+ msgid "right to left"
424
+ msgstr "من اليمين إلى اليسار"
425
+
426
+ #: admin/view-languages.php:108
427
+ #@ polylang
428
+ msgid "Choose the text direction for the language"
429
+ msgstr "اختر جهة النص لهذه اللغة"
430
+
431
+ #: admin/view-languages.php:114
432
+ #@ polylang
433
+ msgid "Position of the language in the language switcher"
434
+ msgstr "موضع (ترتيب) اللغة في مبدل اللغات"
435
+
436
+ #: admin/view-languages.php:117
437
+ #@ default
438
+ msgid "Update"
439
+ msgstr ""
440
+
441
+ #: admin/view-languages.php:143
442
+ #@ polylang
443
+ msgid "Search translations"
444
+ msgstr "ابحث في الترجمات"
445
+
446
+ #: admin/view-languages.php:146
447
+ #@ polylang
448
+ msgid "Clean strings translation database"
449
+ msgstr "نظف قاعدة البيانات التي تحتوي على الترجمات"
450
+
451
+ #: admin/view-languages.php:147
452
+ #@ polylang
453
+ msgid "Use this to remove unused strings from database, for example after a plugin has been uninstalled."
454
+ msgstr "استخدم هذا لحذف الجمل غير المستخدمة من قاعدة البيانات، قد تحتاج هذا الخيار بعد حذف أحد الإضافات مثلاً."
455
+
456
+ #: admin/view-languages.php:164
457
+ #@ polylang
458
+ msgid "Default language"
459
+ msgstr "اللغة الافتراضية"
460
+
461
+ #: admin/view-languages.php:179
462
+ #@ polylang
463
+ msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
464
+ msgstr "يوجد هناك منشورات أو صفحات أو تصنيفات أو وسوم غير محددة اللغة. هل تريد اعتبارهم كلهم تابعين للغة الافتراضية؟"
465
+
466
+ #: admin/view-languages.php:187
467
+ #@ polylang
468
+ msgid "Detect browser language"
469
+ msgstr "اكتشف لغة المتصفح"
470
+
471
+ #: admin/view-languages.php:193
472
+ #@ polylang
473
+ msgid "When the front page is visited, set the language according to the browser preference"
474
+ msgstr "عند زيارة الصفحة الرئيسية، اضبط اللغة وفقاً لتفضيلات المتصفح"
475
+
476
+ #: admin/view-languages.php:200
477
+ #@ polylang
478
+ msgid "URL modifications"
479
+ msgstr "تعديلات الرابط"
480
+
481
+ #: admin/view-languages.php:206
482
+ #@ polylang
483
+ msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
484
+ msgstr "تحدد اللغة من المحتوى. لن يتم تعديل روابط المنشورات أو الصفحات أو التصنيفات أو الوسوم."
485
+
486
+ #: admin/view-languages.php:214
487
+ #@ polylang
488
+ msgid "The language is set from the directory name in pretty permalinks. Example:"
489
+ msgstr "تحدد اللغة في الروابط الدائمة الجميلة من اسم الدليل. مثال:"
490
+
491
+ #: admin/view-languages.php:223
492
+ #@ polylang
493
+ msgid "The language is set from the subdomain name in pretty permalinks. Example:"
494
+ msgstr "تحدد اللغة في الروابط الدائمة الجميلة من اسم النطاق الفرعي. مثال:"
495
+
496
+ #: admin/view-languages.php:232
497
+ #@ polylang
498
+ msgid "The language is set from different domains:"
499
+ msgstr "تحدد اللغة من نطاقات مختلفة:"
500
+
501
+ #: admin/view-languages.php:253
502
+ #@ polylang
503
+ msgid "Remove /language/ in pretty permalinks. Example:"
504
+ msgstr "احذف /language/ من الروابط الدائمة الجميلة. مثال:"
505
+
506
+ #: admin/view-languages.php:262
507
+ #@ polylang
508
+ msgid "Keep /language/ in pretty permalinks. Example:"
509
+ msgstr "أبق على /language/ في الروابط الدائمة الجميلة. مثال:"
510
+
511
+ #: admin/view-languages.php:271
512
+ #@ polylang
513
+ msgid "Hide URL language information for default language"
514
+ msgstr "اخف معلومات اللغة من الرابط في اللغة الافتراضية"
515
+
516
+ #: admin/view-languages.php:281
517
+ #, php-format
518
+ #@ polylang
519
+ msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
520
+ msgstr "عند استخدام صفحة رئيسية ثابتة، أعد توجيه صفحة اللغة (مثلاً: %s) إلى الصفحة الرئيسية باللغة المناسبة."
521
+
522
+ #: admin/view-languages.php:290
523
+ #@ polylang
524
+ msgid "Media"
525
+ msgstr "الوسائط"
526
+
527
+ #: admin/view-languages.php:296
528
+ #@ polylang
529
+ msgid "Activate languages and translations for media"
530
+ msgstr "فعّل اللغات والترجمات للوسائط"
531
+
532
+ #: admin/view-languages.php:303
533
+ #@ polylang
534
+ msgid "Synchronization"
535
+ msgstr "المزامنة"
536
+
537
+ #: admin/view-languages.php:314
538
+ #@ polylang
539
+ 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."
540
+ msgstr "يسمح خيار المزامنة بالمحافظة على القيم نفسها (أو الترجمات بالنسبة لمصطلحات التصنيف و أب الصفحة) للمحتوى الوصفي بين ترجمات التدوينة أو الصفحة."
541
+
542
+ #: admin/view-languages.php:320
543
+ #@ polylang
544
+ msgid "Custom post types"
545
+ msgstr "بنى التدوينة المخصصة"
546
+
547
+ #: admin/view-languages.php:333
548
+ #@ polylang
549
+ msgid "Activate languages and translations for custom post types."
550
+ msgstr "فعل اللغات والترجمات لبنى التدوينة المخصصة."
551
+
552
+ #: admin/view-languages.php:340
553
+ #@ polylang
554
+ msgid "Custom taxonomies"
555
+ msgstr "مصطلحات تصنيف مخصصة"
556
+
557
+ #: admin/view-languages.php:353
558
+ #@ polylang
559
+ msgid "Activate languages and translations for custom taxonomies."
560
+ msgstr "فعّل اللغات والترجمات لمصطلحات التصنيف المخصصة."
561
+
562
+ #: admin/view-translations-media.php:8
563
+ #: admin/view-translations-media.php:46
564
+ #: admin/view-translations-term.php:16
565
+ #@ polylang
566
+ msgid "Translation"
567
+ msgstr "الترجمة"
568
+
569
+ #: admin/view-translations-media.php:33
570
+ #: admin/view-translations-media.php:70
571
+ #: admin/view-translations-post.php:38
572
+ #: admin/view-translations-term.php:60
573
+ #@ polylang
574
+ msgid "Add new"
575
+ msgstr "أضف جديد"
576
+
577
+ #: admin/view-translations-post.php:5
578
+ #@ polylang
579
+ msgid "ID of pages in other languages:"
580
+ msgstr "الرقم المعرف للصفحات باللغات الأخرى:"
581
+
582
+ #: admin/view-translations-post.php:5
583
+ #@ polylang
584
+ msgid "ID of posts in other languages:"
585
+ msgstr "الرقم المعرف التدوينات باللغات الأخرى:"
586
+
587
+ #: admin/view-translations-post.php:9
588
+ #@ polylang
589
+ msgid "Page ID"
590
+ msgstr "الرقم المعرف للصفحة"
591
+
592
+ #: admin/view-translations-post.php:9
593
+ #@ polylang
594
+ msgid "Post ID"
595
+ msgstr "الرقم المعرف للتدوينة"
596
+
597
+ #: admin/view-translations-term.php:48
598
+ #@ polylang
599
+ msgid "No untranslated term"
600
+ msgstr "لا يوجد مصطلح غير مترجم"
601
+
602
+ #: frontend/frontend-filters-search.php:84
603
+ #@ default
604
+ msgid "Search"
605
+ msgstr ""
606
+
607
+ #: include/plugins-compat.php:52
608
+ #@ wordpress-importer
609
+ msgid "Import <strong>posts, pages, comments, custom fields, categories, and tags</strong> from a WordPress export file."
610
+ msgstr ""
611
+
612
+ #: include/switcher.php:22
613
+ #@ polylang
614
+ msgid "Displays language names"
615
+ msgstr "يعرض أسماء اللغات"
616
+
617
+ #: include/switcher.php:23
618
+ #@ polylang
619
+ msgid "Displays flags"
620
+ msgstr "يعرض الأعلام"
621
+
622
+ #: include/switcher.php:24
623
+ #@ polylang
624
+ msgid "Forces link to front page"
625
+ msgstr "يجبر الرابط على التوجه إلى الصفحة الرئيسية"
626
+
627
+ #: include/switcher.php:25
628
+ #@ polylang
629
+ msgid "Hides the current language"
630
+ msgstr "يخفي اللغة الحالية"
631
+
632
+ #: include/switcher.php:29
633
+ #@ polylang
634
+ msgid "Displays as dropdown"
635
+ msgstr "يعرض كقائمة منسدلة"
636
+
637
+ #: include/upgrade.php:75
638
+ #@ polylang
639
+ msgid "Polylang has been deactivated because you upgraded from a too old version."
640
+ msgstr "تم تعطيل Polylang لأنك حدثتها من إصدار قديم جداً."
641
+
642
+ #: include/upgrade.php:77
643
+ #, php-format
644
+ #@ polylang
645
+ msgid "Please upgrade first to %s before ugrading to %s."
646
+ msgstr "رجاءً حدث أولاً إلى %s قبل التحديث إلى %s."
647
+
648
+ #. translators: Calendar caption: 1: month name, 2: 4-digit year
649
+ #: include/widget-calendar.php:123
650
+ #, php-format
651
+ #@ default
652
+ msgctxt "calendar caption"
653
+ msgid "%1$s %2$s"
654
+ msgstr ""
655
+
656
+ #: include/widget-calendar.php:149
657
+ #: include/widget-calendar.php:157
658
+ #, php-format
659
+ #@ default
660
+ msgid "View posts for %1$s %2$s"
661
+ msgstr ""
662
+
663
+ #: include/widget-languages.php:16
664
+ #@ polylang
665
+ msgid "Language Switcher"
666
+ msgstr "مبدل اللغة"
667
+
668
+ #: include/widget-languages.php:16
669
+ #@ polylang
670
+ msgid "Displays a language switcher"
671
+ msgstr "يعرض مبدل اللغة"
672
+
673
+ #: include/widget-languages.php:100
674
+ #@ polylang
675
+ msgid "Title:"
676
+ msgstr "العنوان:"
677
+
678
+ #. translators: plugin header field 'Name'
679
+ #: polylang.php:0
680
+ #@ polylang
681
+ msgid "Polylang"
682
+ msgstr ""
683
+
684
+ #. translators: plugin header field 'PluginURI'
685
+ #: polylang.php:0
686
+ #@ polylang
687
+ msgid "http://polylang.wordpress.com/"
688
+ msgstr ""
689
+
690
+ #. translators: plugin header field 'Description'
691
+ #: polylang.php:0
692
+ #@ polylang
693
+ msgid "Adds multilingual capability to WordPress"
694
+ msgstr "إضافة إمكانية تعدد اللغات إلى ووردبريس"
695
+
696
+ #. translators: plugin header field 'Author'
697
+ #: polylang.php:0
698
+ #@ polylang
699
+ msgid "Frédéric Demarle"
700
+ msgstr ""
701
+
702
+ #. translators: plugin header field 'Version'
703
+ #: polylang.php:0
704
+ #@ polylang
705
+ msgid "1.2dev55"
706
+ msgstr ""
707
+
708
+ #: polylang.php:157
709
+ #, php-format
710
+ #@ polylang
711
+ msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
712
+ msgstr "أنت تستخدم ووردبريس %s. تحتاج Polylang إلى ووردبريس %s على الأقل."
713
+
languages/polylang-be_BY.mo CHANGED
Binary file
languages/polylang-be_BY.po CHANGED
@@ -20,547 +20,522 @@ msgstr ""
20
  "X-Poedit-SearchPath-0: ..\n"
21
 
22
  # @ polylang
23
- #: include/about.php:3
24
  #, php-format
25
- msgid ""
26
- "Polylang is provided with an extensive %sdocumentation%s (in English only). "
27
- "It includes information on how to set up your multilingual site and use it "
28
- "on a daily basis, a FAQ, as well as a documentation for programmers to adapt "
29
- "their plugins and themes."
30
- msgstr ""
31
- "Polylang забяспечаны шырокай %sдакументацыяй%s (толькі на ангельскай мове). "
32
- "У яе ўваходзіць інфармацыя пра наладу шматмоўнага блёга і яго паўсядзённае "
33
- "выкарыстанне, адказы на частыя пытанні і дакументацыя для праграмістаў."
34
 
35
  # @ polylang
36
- #: include/about.php:9
37
  #, php-format
38
- msgid ""
39
- "You will also find useful information in the %ssupport forum%s. However "
40
- "don't forget to make a search before posting a new topic."
41
- msgstr ""
42
- "Таксама, вы можаце знайсьці карысную інфармацыю на %sфоруме%s. Зрэшты, не "
43
- "забывайце сперш шукаць адказ, а потым пытаць."
44
 
45
  # @ polylang
46
- #: include/about.php:16
47
  #, php-format
48
- msgid ""
49
- "Polylang is free of charge and is released under the same license as "
50
- "WordPress, the %sGPL%s."
51
- msgstr ""
52
- "Polylang - бясплатны і распаўсюджваецца пад той жа ліцэнзіяй %sGPL%s, што і "
53
- "WordPress."
54
 
55
  # @ polylang
56
- #: include/about.php:22
57
  #, php-format
58
  msgid "If you wonder how you can help the project, just %sread this%s."
59
  msgstr "Аб тым, як вы можаце дапамагчы праэкту, вы можаце прачытаць %sтут%s."
60
 
61
  # @ polylang
62
- #: include/about.php:27
63
- msgid ""
64
- "Finally if you like this plugin or if it helps your business, donations to "
65
- "the author are greatly appreciated."
66
- msgstr ""
67
- "І нарэшце, калі Polylang вам спадабаецца альбо дапамагае ў вашай працы, вы "
68
- "заўседы можаце ахвяраваць грошаў аўтару праекта."
69
 
70
  # @ polylang
71
- #: include/admin-base.php:55 include/admin-base.php:190
72
- #: include/admin-filters.php:243 include/admin.php:23 include/admin.php:301
73
- #: include/list-table.php:13 polylang.php:339
 
 
 
74
  msgid "Languages"
75
  msgstr "Мовы"
76
 
77
  # @ polylang
78
- #: include/admin-base.php:153
79
  msgid "Displays language names"
80
  msgstr "Паказваць назвы моў"
81
 
82
  # @ polylang
83
- #: include/admin-base.php:154
84
  msgid "Displays flags"
85
  msgstr "Паказваць сьцягі"
86
 
87
  # @ polylang
88
- #: include/admin-base.php:155
89
  msgid "Forces link to front page"
90
  msgstr "Прымусова пераходзіць на галоўную старонку сайта пры зьмене мовы"
91
 
92
  # @ polylang
93
- #: include/admin-base.php:156
94
  msgid "Hides the current language"
95
  msgstr "Схаваць выкарыстоўваемую мову"
96
 
97
  # @ polylang
98
- #: include/admin-base.php:160
99
  msgid "Displays as dropdown"
100
  msgstr "Паказвае як выпадальны сьпіс"
101
 
102
  # @ polylang
103
- #: include/admin-base.php:191
104
  msgid "Filters content by language"
105
  msgstr "Адбіраць зьмесьціва паводле мовы"
106
 
107
  # @ polylang
108
- #: include/admin-base.php:186
109
  msgid "Show all languages"
110
  msgstr "Адлюстраваць усе мовы"
111
 
112
  # @ polylang
113
- #: include/admin-filters.php:181 include/admin-filters.php:877
 
114
  msgid "Add new translation"
115
  msgstr "Дадаць новы пераклад"
116
 
117
  # @ polylang
118
- #: include/admin-filters.php:209 include/admin-filters.php:267
119
- #: include/admin-filters.php:601 include/admin-filters.php:817
120
- #: include/admin-filters.php:835 include/list-table.php:12
121
- #: include/media-translations.php:5 include/media-translations.php:43
122
- #: include/post-translations.php:8 include/term-translations.php:15
123
- #: polylang.php:340
 
 
 
 
124
  msgid "Language"
125
  msgstr "Мова"
126
 
127
  # @ polylang
128
- #: include/admin-filters.php:616 include/admin-filters.php:651
129
- #: include/list-table.php:127 include/media-translations.php:40
130
- #: include/term-translations.php:6 include/term-translations.php:11
 
 
 
131
  msgid "Translations"
132
  msgstr "Пераклады"
133
 
134
  # @ polylang
135
- #: include/admin-filters.php:819 include/admin-filters.php:838
 
136
  msgid "Sets the language"
137
  msgstr "Вызначае мову"
138
 
139
  # @ polylang
140
- #: include/admin-filters.php:1053
141
  msgid "The widget is displayed for:"
142
  msgstr "Паказваць віджэт для"
143
 
144
  # @ polylang
145
- #: include/admin-filters.php:1057 polylang.php:341
 
146
  msgid "All languages"
147
  msgstr "Усе мовы"
148
 
149
  # @ polylang
150
- #: include/admin-filters.php:1080
151
  msgid "Admin language"
152
  msgstr "Мова панэлі адміністратара"
153
 
154
- #: include/admin-filters.php:1085
155
  msgid "Wordpress default"
156
  msgstr "Па змаўчанню"
157
 
158
  # @ default
159
  # @ polylang
160
- #: include/admin-filters.php:1114 include/admin.php:306
 
161
  msgid "Settings"
162
  msgstr "Наладкі"
163
 
164
  # @ polylang
165
- #: include/admin-filters.php:1120
166
  msgid "Upgrading language files&#8230;"
167
  msgstr "Аднаўленне моўных файлаў."
168
 
169
  # @ polylang
170
- #: include/admin.php:22
171
  msgid "About Polylang"
172
  msgstr "Аб Polylang"
173
 
174
  # @ polylang
175
- #: include/admin.php:27 include/list-table.php:82
176
  msgid "Strings translations"
177
  msgstr "Пераклады радкоў"
178
 
179
  # @ polylang
180
- #: include/admin.php:305 include/list-table.php:81
181
  msgid "Strings translation"
182
  msgstr "Пераклад радкоў"
183
 
184
  # @ polylang
185
- #: include/admin.php:345
186
  msgid "Enter a valid WorPress locale"
187
  msgstr "Вызначце карэктную WordPress лакаль"
188
 
189
  # @ polylang
190
- #: include/admin.php:346
191
- msgid "The language code must be 2 characters long"
192
- msgstr "Код мовы павінен складацца з 2 сімвалаў"
193
-
194
- # @ polylang
195
- #: include/admin.php:328
196
  msgid "The language code must be unique"
197
  msgstr "Код мовы павінны быць унікальным"
198
 
199
  # @ polylang
200
- #: include/admin.php:329
201
  msgid "The language must have a name"
202
  msgstr "Мова павінна мець назву"
203
 
204
  # @ polylang
205
- #: include/admin.php:330
206
- msgid ""
207
- "The language was created, but the WordPress language file was not "
208
- "downloaded. Please install it manually."
209
- msgstr ""
210
- "Мова была створана, але патрабуемые моўныя файлы не былі запампованы. Калі "
211
- "ласка, запампуйце ды устанавіце іх самастойна."
212
 
213
  # @ polylang
214
- #: include/admin.php:449
215
  msgid "Widget title"
216
  msgstr "Назва віджэту"
217
 
218
  # @ polylang
219
- #: include/base.php:368
220
  msgid "Taxonomies"
221
  msgstr "Успадкоўванні"
222
 
223
  # @ polylang
224
- #: include/base.php:369
225
  msgid "Custom fields"
226
  msgstr "Адвольныя палі"
227
 
228
  # @ polylang
229
- #: include/base.php:370
230
  msgid "Comment status"
231
  msgstr "Стан каментара"
232
 
233
  # @ polylang
234
- #: include/base.php:371
235
  msgid "Ping status"
236
  msgstr "Адказ на запыт"
237
 
238
  # @ polylang
239
- #: include/base.php:372
240
  msgid "Sticky posts"
241
  msgstr "Прымацаваныя запісы"
242
 
243
  # @ polylang
244
- #: include/base.php:373
245
  msgid "Published date"
246
  msgstr "Дата публікацыі"
247
 
248
  # @ polylang
249
- #: include/base.php:374
250
  msgid "Post format"
251
  msgstr "Фармат запісу"
252
 
253
  # @ polylang
254
- #: include/base.php:375
255
  msgid "Page parent"
256
  msgstr "Зыходная старонка"
257
 
258
  # @ polylang
259
- #: include/base.php:376
260
  msgid "Page template"
261
  msgstr "Шаблён старонкі"
262
 
263
  # @ polylang
264
- #: include/base.php:377
265
  msgid "Page order"
266
  msgstr "Парадак старонак"
267
 
268
  # @ polylang
269
- #: include/base.php:378
270
  msgid "Featured image"
271
  msgstr "Абраная выява"
272
 
273
  # @ polylang
274
- #: include/languages-form.php:42
275
  msgid "Edit language"
276
  msgstr "Рэдагаваць мову"
277
 
278
  # @ polylang
279
- #: include/languages-form.php:42 include/languages-form.php:123
 
280
  msgid "Add new language"
281
  msgstr "Дадаць новую мову"
282
 
283
  # @ polylang
284
- #: include/languages-form.php:64
285
  msgid "Choose a language"
286
  msgstr "Абраць мову"
287
 
288
  # @ polylang
289
- #: include/languages-form.php:78
290
  msgid "You can choose a language in the list or directly edit it below."
291
  msgstr "Абярыце мову са сьпісу альбо ўкажыце самастойна."
292
 
293
  # @ polylang
294
- #: include/languages-form.php:82 include/list-table.php:34
 
295
  msgid "Full name"
296
  msgstr "Поўная назва"
297
 
298
  # @ polylang
299
- #: include/languages-form.php:84
300
  msgid "The name is how it is displayed on your site (for example: English)."
301
  msgstr "Назва для адлюстравання на сайце (напрыклад: Беларускі)."
302
 
303
  # @ polylang
304
- #: include/languages-form.php:88 include/list-table.php:35
 
305
  msgid "Locale"
306
  msgstr "Лакаль"
307
 
308
  # @ polylang
309
- #: include/languages-form.php:93
310
- msgid ""
311
- "Wordpress Locale for the language (for example: en_US). You will need to "
312
- "install the .mo file for this language."
313
- msgstr ""
314
- "Лакаль Wordpress для мовы (напрыклад: be_BY). Вы павінны устанавіць файлы ."
315
- "mo для панэлі адміністратара ды выкарыстоўваемай тэмы."
316
 
317
  # @ polylang
318
- #: include/languages-form.php:97
319
  msgid "Language code"
320
  msgstr "Код мовы"
321
 
322
  # @ polylang
323
- #: include/languages-form.php:99
324
  msgid "2-letters ISO 639-1 language code (for example: en)"
325
  msgstr "Дзвюхлітарны код мовы ISO 639-1 (напрыклад: by)"
326
 
327
  # @ polylang
328
- #: include/languages-form.php:103
329
  msgid "Text direction"
330
  msgstr "Напрамак тэксту"
331
 
332
  # @ polylang
333
- #: include/languages-form.php:107
334
  msgid "left to right"
335
  msgstr "зьлева направа"
336
 
337
  # @ polylang
338
- #: include/languages-form.php:112
339
  msgid "right to left"
340
  msgstr "справа налева"
341
 
342
  # @ polylang
343
- #: include/languages-form.php:114
344
  msgid "Choose the text direction for the language"
345
  msgstr "Абярыце кірунак тэксту"
346
 
347
  # @ polylang
348
- #: include/languages-form.php:118 include/list-table.php:37
 
349
  msgid "Order"
350
  msgstr "Парадак"
351
 
352
  # @ polylang
353
- #: include/languages-form.php:120
354
  msgid "Position of the language in the language switcher"
355
  msgstr "Месца мовы ў пераключальніку моў"
356
 
357
  # @ polylang
358
- #: include/nav-menu.php:28 include/nav-menu.php:51 include/nav-menu.php:54
359
- #: include/nav-menu.php:82 include/nav-menu.php:106 polylang.php:302
 
 
 
 
360
  msgid "Language switcher"
361
  msgstr "Выбар моў"
362
 
363
  # @ polylang
364
- #: include/languages-form.php:148
365
  msgid "Search translations"
366
  msgstr "Пошук перакладаў"
367
 
368
- #: include/languages-form.php:151
369
  msgid "Clean strings translation database"
370
  msgstr "Ачысціць базу дадзеных радкоў перакладу"
371
 
372
  # @ polylang
373
- #: include/languages-form.php:167
374
  msgid "Default language"
375
  msgstr "Мова выкарыстання"
376
 
377
  # @ polylang
378
- #: include/languages-form.php:179
379
- msgid ""
380
- "There are posts, pages, categories or tags without language set. Do you want "
381
- "to set them all to default language ?"
382
- msgstr ""
383
- "Былі знойдзены запісы, старонкі, катэгорыі ды тагі без зазначэньня мовы. "
384
- "Вызначыць мову выкарыстання?"
385
 
386
  # @ polylang
387
- #: include/languages-form.php:187
388
  msgid "Detect browser language"
389
  msgstr "Вызначыць мову браузэра"
390
 
391
  # @ polylang
392
- #: include/languages-form.php:193
393
- msgid ""
394
- "When the front page is visited, set the language according to the browser "
395
- "preference"
396
  msgstr "Вызначыць мову сайта паводле наладак браузэра"
397
 
398
  # @ polylang
399
- #: include/languages-form.php:200
400
  msgid "URL modifications"
401
  msgstr "Мадыфікацыі URL"
402
 
403
- #: include/languages-form.php:206
404
- msgid ""
405
- "The language is set from content. Posts, pages, categories and tags urls are "
406
- "not modified."
407
- msgstr ""
408
- "Мова ўсталявана паводле змесціва. Запісы, старонкі, катэгорыі і тэгі "
409
- "спасылак не змяняліся."
410
-
411
- #: include/languages-form.php:214
412
- msgid ""
413
- "The language code, for example /en/, is added to all urls when using pretty "
414
- "permalinks."
415
- msgstr ""
416
- "Код мовы, напрыклад /by/, дададзены ва ўсе спасылкі пры выкарыстанні pretty "
417
- "permalinks."
418
 
419
  # @ polylang
420
- #: include/languages-form.php:223
421
  msgid "Remove /language/ in pretty permalinks. Example:"
422
  msgstr "Выдаліць /language/ са спасылцы. Напрыклад:"
423
 
424
  # @ polylang
425
- #: include/languages-form.php:232
426
  msgid "Keep /language/ in pretty permalinks. Example:"
427
  msgstr "Пакінуць /language/ са спасылцы. Напрыклад:"
428
 
429
  # @ polylang
430
- #: include/languages-form.php:241
431
  msgid "Hide URL language information for default language"
432
  msgstr "Схаваць назву мовы з URL"
433
 
434
- #: include/languages-form.php:251
435
  #, php-format
436
- msgid ""
437
- "When using static front page, redirect the language page (example: %s) to "
438
- "the front page in the right language"
439
- msgstr ""
440
- "Пры выкарыстанні статычнай старонкі, перанакіроўваць старонку (напрыклад: "
441
- "%s) на галоўную старонку на правільнай мове."
442
 
443
  # @ polylang
444
- #: include/languages-form.php:260
445
  msgid "Media"
446
  msgstr "Медыа"
447
 
448
  # @ polylang
449
- #: include/languages-form.php:266
450
  msgid "Activate languages and translations for media"
451
  msgstr "Выкарыстоўваць мовы і пераклады для медыа-файлаў"
452
 
453
- #: include/languages-form.php:273
454
  msgid "Synchronization"
455
  msgstr "Сінхранізацыя"
456
 
457
  # @ polylang
458
- #: include/languages-form.php:287
459
  msgid "Custom post types"
460
  msgstr "Адвольны тып запісаў"
461
 
462
  # @ polylang
463
- #: include/languages-form.php:300
464
  msgid "Activate languages and translations for custom post types."
465
  msgstr "Выкарыстоўваць мовы і пераклады для адвольных тыпаў запісаў."
466
 
467
  # @ polylang
468
- #: include/languages-form.php:307
469
  msgid "Custom taxonomies"
470
  msgstr "Адвольныя успадкоўванні"
471
 
472
  # @ polylang
473
- #: include/languages-form.php:320
474
  msgid "Activate languages and translations for custom taxonomies."
475
  msgstr "Выкарыстоўваць мовы і пераклады для адвольных успадкоўванняў."
476
 
477
  # @ polylang
478
- #: include/list-table.php:26 include/media-translations.php:22
479
- #: include/media-translations.php:60 include/post-translations.php:10
480
- #: include/post-translations.php:33 include/term-translations.php:18
481
- #: include/term-translations.php:80
 
 
 
482
  msgid "Edit"
483
  msgstr "Рэдагаваць"
484
 
485
  # @ polylang
486
- #: include/list-table.php:27 include/list-table.php:162
 
487
  msgid "Delete"
488
  msgstr "Выдаліць"
489
 
490
  # @ polylang
491
- #: include/list-table.php:36
492
  msgid "Code"
493
  msgstr "Код"
494
 
495
  # @ polylang
496
- #: include/list-table.php:38
497
  msgid "Flag"
498
  msgstr "Сьцяг"
499
 
500
  # @ polylang
501
- #: include/list-table.php:39
502
  msgid "Posts"
503
  msgstr "Запісы"
504
 
505
  # @ polylang
506
- #: include/list-table.php:125
507
  msgid "Name"
508
  msgstr "Імя"
509
 
510
  # @ polylang
511
- #: include/list-table.php:126
512
  msgid "String"
513
  msgstr "Радок"
514
 
515
  # @ polylang
516
- #: include/media-translations.php:6 include/media-translations.php:44
517
- #: include/term-translations.php:16
 
518
  msgid "Translation"
519
  msgstr "Пераклад"
520
 
521
  # @ polylang
522
- #: include/media-translations.php:31 include/media-translations.php:68
523
- #: include/post-translations.php:38 include/term-translations.php:60
 
 
524
  msgid "Add new"
525
  msgstr "Дадаць новую"
526
 
527
  # @ polylang
528
- #: include/post-translations.php:5
529
  msgid "ID of pages in other languages:"
530
  msgstr "ID старонак на другіх мовах:"
531
 
532
  # @ polylang
533
- #: include/post-translations.php:5
534
  msgid "ID of posts in other languages:"
535
  msgstr "ID запісаў на другіх мовах:"
536
 
537
  # @ polylang
538
- #: include/post-translations.php:9
539
  msgid "Page ID"
540
  msgstr "ID старонкі"
541
 
542
  # @ polylang
543
- #: include/post-translations.php:9
544
  msgid "Post ID"
545
  msgstr "ID запісу"
546
 
547
  # @ polylang
548
- #: include/term-translations.php:48
549
  msgid "No untranslated term"
550
  msgstr "Няма неперакладзеных слоў"
551
 
552
  # @ polylang
553
- #: include/widget.php:6
554
  msgid "Language Switcher"
555
  msgstr "Пераключальнік моў"
556
 
557
  # @ polylang
558
- #: include/widget.php:6
559
  msgid "Displays a language switcher"
560
  msgstr "Паказвае пераключальнік моў"
561
 
562
  # @ polylang
563
- #: include/widget.php:69
564
  msgid "Title:"
565
  msgstr "Назва:"
566
 
@@ -571,67 +546,100 @@ msgid "Adds multilingual capability to WordPress"
571
  msgstr "Дадае магчымасьць шматмоў'я ў Wordpress"
572
 
573
  # @ polylang
574
- #: polylang.php:133
575
  #, php-format
576
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
577
- msgstr ""
578
- "Вы выкарыстоўваеце WordPress %s. Polylang патрабуе па меньшае WordPress %s."
579
 
580
  # @ polylang
581
- #: polylang.php:174
582
- msgid "For some reasons, Polylang could not create a table in your database."
583
- msgstr ""
584
- "Па некаторых прычынах, Polylang не мае магчымасьці стварыць табліцу ў базе "
585
- "даных."
586
 
587
  # @ polylang
588
- #: polylang.php:235
589
- msgid ""
590
- "Polylang has been deactivated because you upgraded from a too old version."
591
- msgstr ""
592
- "Polylang быў выключаны, таму што вы аднаўляецеся з немагчыма старой версіі."
593
-
594
- # @ polylang
595
- #: polylang.php:237
596
  #, php-format
597
  msgid "Please upgrade first to %s before ugrading to %s."
598
  msgstr "Калі ласка, аднавіце перш да версіі %s, каб аднавіць да версіі %s."
599
 
600
  # @ polylang
601
- #: include/list-table.php:124
602
  msgid "Group"
603
  msgstr "Група"
604
 
605
  # @ polylang
606
- #: include/list-table.php:173
607
  msgid "View all groups"
608
  msgstr "Прагледзець усе групы"
609
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
610
  # @ polylang
611
  #~ msgid "Displays a language switcher at the end of the menu"
612
  #~ msgstr "Паказвае пераключальнік моў"
613
-
614
  # @ polylang
615
  #~ msgid "Theme locations and languages"
616
  #~ msgstr "Разьмяшчэнне тэмы ды моў"
617
-
618
  # @ polylang
619
  #~ msgid ""
620
  #~ "Please go to the %slanguages page%s to set theme locations and languages"
621
  #~ msgstr ""
622
  #~ "Калі ласка, перайдзіце на %slanguages page%s для таго, каб зазначыць "
623
  #~ "разьмяшчэнне тэмы ды моў"
624
-
625
  # @ polylang
626
  #~ msgid "Menus"
627
  #~ msgstr "Меню"
628
-
629
  # @ polylang
630
  #~ msgid "Error: Restore of local flags failed!"
631
  #~ msgstr ""
632
  #~ "Памылка: Не атрымалася ўзнавіць карыстальніцкія іконкі-сьцягі з "
633
  #~ "рэзэрвовай копіі!"
634
-
635
  # @ polylang
636
  #, fuzzy
637
  #~ msgid "Please move your local flags from %s to %s"
20
  "X-Poedit-SearchPath-0: ..\n"
21
 
22
  # @ polylang
23
+ #: admin/view-about.php:3
24
  #, php-format
25
+ 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."
26
+ msgstr "Polylang забяспечаны шырокай %sдакументацыяй%s (толькі на ангельскай мове). У яе ўваходзіць інфармацыя пра наладу шматмоўнага блёга і яго паўсядзённае выкарыстанне, адказы на частыя пытанні і дакументацыя для праграмістаў."
 
 
 
 
 
 
 
27
 
28
  # @ polylang
29
+ #: admin/view-about.php:9
30
  #, php-format
31
+ 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."
32
+ msgstr "Таксама, вы можаце знайсьці карысную інфармацыю на %sфоруме%s. Зрэшты, не забывайце сперш шукаць адказ, а потым пытаць."
 
 
 
 
33
 
34
  # @ polylang
35
+ #: admin/view-about.php:16
36
  #, php-format
37
+ msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
38
+ msgstr "Polylang - бясплатны і распаўсюджваецца пад той жа ліцэнзіяй %sGPL%s, што і WordPress."
 
 
 
 
39
 
40
  # @ polylang
41
+ #: admin/view-about.php:22
42
  #, php-format
43
  msgid "If you wonder how you can help the project, just %sread this%s."
44
  msgstr "Аб тым, як вы можаце дапамагчы праэкту, вы можаце прачытаць %sтут%s."
45
 
46
  # @ polylang
47
+ #: admin/view-about.php:27
48
+ msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
49
+ msgstr "І нарэшце, калі Polylang вам спадабаецца альбо дапамагае ў вашай працы, вы заўседы можаце ахвяраваць грошаў аўтару праекта."
 
 
 
 
50
 
51
  # @ polylang
52
+ #: admin/admin-filters-post.php:76
53
+ #: admin/admin.php:83
54
+ #: admin/admin.php:187
55
+ #: admin/settings.php:42
56
+ #: admin/settings.php:57
57
+ #: include/model.php:490
58
  msgid "Languages"
59
  msgstr "Мовы"
60
 
61
  # @ polylang
62
+ #: include/switcher.php:22
63
  msgid "Displays language names"
64
  msgstr "Паказваць назвы моў"
65
 
66
  # @ polylang
67
+ #: include/switcher.php:23
68
  msgid "Displays flags"
69
  msgstr "Паказваць сьцягі"
70
 
71
  # @ polylang
72
+ #: include/switcher.php:24
73
  msgid "Forces link to front page"
74
  msgstr "Прымусова пераходзіць на галоўную старонку сайта пры зьмене мовы"
75
 
76
  # @ polylang
77
+ #: include/switcher.php:25
78
  msgid "Hides the current language"
79
  msgstr "Схаваць выкарыстоўваемую мову"
80
 
81
  # @ polylang
82
+ #: include/switcher.php:29
83
  msgid "Displays as dropdown"
84
  msgstr "Паказвае як выпадальны сьпіс"
85
 
86
  # @ polylang
87
+ #: admin/admin.php:188
88
  msgid "Filters content by language"
89
  msgstr "Адбіраць зьмесьціва паводле мовы"
90
 
91
  # @ polylang
92
+ #: admin/admin.php:183
93
  msgid "Show all languages"
94
  msgstr "Адлюстраваць усе мовы"
95
 
96
  # @ polylang
97
+ #: admin/admin-filters-columns.php:126
98
+ #: admin/admin-filters-columns.php:215
99
  msgid "Add new translation"
100
  msgstr "Дадаць новы пераклад"
101
 
102
  # @ polylang
103
+ #: admin/admin-filters-columns.php:163
104
+ #: admin/admin-filters-media.php:58
105
+ #: admin/admin-filters-post.php:109
106
+ #: admin/admin-filters-term.php:72
107
+ #: admin/admin-filters-term.php:106
108
+ #: admin/view-translations-media.php:7
109
+ #: admin/view-translations-media.php:45
110
+ #: admin/view-translations-post.php:8
111
+ #: admin/view-translations-term.php:15
112
+ #: include/model.php:491
113
  msgid "Language"
114
  msgstr "Мова"
115
 
116
  # @ polylang
117
+ #: admin/admin-filters-media.php:73
118
+ #: admin/admin-filters-media.php:112
119
+ #: admin/table-string.php:111
120
+ #: admin/view-translations-media.php:42
121
+ #: admin/view-translations-term.php:6
122
+ #: admin/view-translations-term.php:11
123
  msgid "Translations"
124
  msgstr "Пераклады"
125
 
126
  # @ polylang
127
+ #: admin/admin-filters-term.php:74
128
+ #: admin/admin-filters-term.php:108
129
  msgid "Sets the language"
130
  msgstr "Вызначае мову"
131
 
132
  # @ polylang
133
+ #: admin/admin-filters.php:60
134
  msgid "The widget is displayed for:"
135
  msgstr "Паказваць віджэт для"
136
 
137
  # @ polylang
138
+ #: admin/admin-filters.php:63
139
+ #: include/model.php:492
140
  msgid "All languages"
141
  msgstr "Усе мовы"
142
 
143
  # @ polylang
144
+ #: admin/admin-filters.php:120
145
  msgid "Admin language"
146
  msgstr "Мова панэлі адміністратара"
147
 
148
+ #: admin/admin-filters.php:123
149
  msgid "Wordpress default"
150
  msgstr "Па змаўчанню"
151
 
152
  # @ default
153
  # @ polylang
154
+ #: admin/admin.php:123
155
+ #: admin/settings.php:62
156
  msgid "Settings"
157
  msgstr "Наладкі"
158
 
159
  # @ polylang
160
+ #: admin/admin-filters.php:151
161
  msgid "Upgrading language files&#8230;"
162
  msgstr "Аднаўленне моўных файлаў."
163
 
164
  # @ polylang
165
+ #: admin/settings.php:38
166
  msgid "About Polylang"
167
  msgstr "Аб Polylang"
168
 
169
  # @ polylang
170
+ #: admin/settings.php:46
171
  msgid "Strings translations"
172
  msgstr "Пераклады радкоў"
173
 
174
  # @ polylang
175
+ #: admin/settings.php:61
176
  msgid "Strings translation"
177
  msgstr "Пераклад радкоў"
178
 
179
  # @ polylang
180
+ #: admin/settings.php:74
181
  msgid "Enter a valid WorPress locale"
182
  msgstr "Вызначце карэктную WordPress лакаль"
183
 
184
  # @ polylang
185
+ #: admin/settings.php:76
 
 
 
 
 
186
  msgid "The language code must be unique"
187
  msgstr "Код мовы павінны быць унікальным"
188
 
189
  # @ polylang
190
+ #: admin/settings.php:77
191
  msgid "The language must have a name"
192
  msgstr "Мова павінна мець назву"
193
 
194
  # @ polylang
195
+ #: admin/settings.php:78
196
+ msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
197
+ msgstr "Мова была створана, але патрабуемые моўныя файлы не былі запампованы. Калі ласка, запампуйце ды устанавіце іх самастойна."
 
 
 
 
198
 
199
  # @ polylang
200
+ #: admin/settings.php:305
201
  msgid "Widget title"
202
  msgstr "Назва віджэту"
203
 
204
  # @ polylang
205
+ #: admin/settings.php:323
206
  msgid "Taxonomies"
207
  msgstr "Успадкоўванні"
208
 
209
  # @ polylang
210
+ #: admin/settings.php:324
211
  msgid "Custom fields"
212
  msgstr "Адвольныя палі"
213
 
214
  # @ polylang
215
+ #: admin/settings.php:325
216
  msgid "Comment status"
217
  msgstr "Стан каментара"
218
 
219
  # @ polylang
220
+ #: admin/settings.php:326
221
  msgid "Ping status"
222
  msgstr "Адказ на запыт"
223
 
224
  # @ polylang
225
+ #: admin/settings.php:327
226
  msgid "Sticky posts"
227
  msgstr "Прымацаваныя запісы"
228
 
229
  # @ polylang
230
+ #: admin/settings.php:328
231
  msgid "Published date"
232
  msgstr "Дата публікацыі"
233
 
234
  # @ polylang
235
+ #: admin/settings.php:329
236
  msgid "Post format"
237
  msgstr "Фармат запісу"
238
 
239
  # @ polylang
240
+ #: admin/settings.php:330
241
  msgid "Page parent"
242
  msgstr "Зыходная старонка"
243
 
244
  # @ polylang
245
+ #: admin/settings.php:331
246
  msgid "Page template"
247
  msgstr "Шаблён старонкі"
248
 
249
  # @ polylang
250
+ #: admin/settings.php:332
251
  msgid "Page order"
252
  msgstr "Парадак старонак"
253
 
254
  # @ polylang
255
+ #: admin/settings.php:333
256
  msgid "Featured image"
257
  msgstr "Абраная выява"
258
 
259
  # @ polylang
260
+ #: admin/view-languages.php:42
261
  msgid "Edit language"
262
  msgstr "Рэдагаваць мову"
263
 
264
  # @ polylang
265
+ #: admin/view-languages.php:42
266
+ #: admin/view-languages.php:117
267
  msgid "Add new language"
268
  msgstr "Дадаць новую мову"
269
 
270
  # @ polylang
271
+ #: admin/view-languages.php:58
272
  msgid "Choose a language"
273
  msgstr "Абраць мову"
274
 
275
  # @ polylang
276
+ #: admin/view-languages.php:72
277
  msgid "You can choose a language in the list or directly edit it below."
278
  msgstr "Абярыце мову са сьпісу альбо ўкажыце самастойна."
279
 
280
  # @ polylang
281
+ #: admin/table-languages.php:74
282
+ #: admin/view-languages.php:76
283
  msgid "Full name"
284
  msgstr "Поўная назва"
285
 
286
  # @ polylang
287
+ #: admin/view-languages.php:78
288
  msgid "The name is how it is displayed on your site (for example: English)."
289
  msgstr "Назва для адлюстравання на сайце (напрыклад: Беларускі)."
290
 
291
  # @ polylang
292
+ #: admin/table-languages.php:75
293
+ #: admin/view-languages.php:82
294
  msgid "Locale"
295
  msgstr "Лакаль"
296
 
297
  # @ polylang
298
+ #: admin/view-languages.php:87
299
+ msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
300
+ msgstr "Лакаль Wordpress для мовы (напрыклад: be_BY). Вы павінны устанавіць файлы .mo для панэлі адміністратара ды выкарыстоўваемай тэмы."
 
 
 
 
301
 
302
  # @ polylang
303
+ #: admin/view-languages.php:91
304
  msgid "Language code"
305
  msgstr "Код мовы"
306
 
307
  # @ polylang
308
+ #: admin/view-languages.php:93
309
  msgid "2-letters ISO 639-1 language code (for example: en)"
310
  msgstr "Дзвюхлітарны код мовы ISO 639-1 (напрыклад: by)"
311
 
312
  # @ polylang
313
+ #: admin/view-languages.php:97
314
  msgid "Text direction"
315
  msgstr "Напрамак тэксту"
316
 
317
  # @ polylang
318
+ #: admin/view-languages.php:101
319
  msgid "left to right"
320
  msgstr "зьлева направа"
321
 
322
  # @ polylang
323
+ #: admin/view-languages.php:106
324
  msgid "right to left"
325
  msgstr "справа налева"
326
 
327
  # @ polylang
328
+ #: admin/view-languages.php:108
329
  msgid "Choose the text direction for the language"
330
  msgstr "Абярыце кірунак тэксту"
331
 
332
  # @ polylang
333
+ #: admin/table-languages.php:77
334
+ #: admin/view-languages.php:112
335
  msgid "Order"
336
  msgstr "Парадак"
337
 
338
  # @ polylang
339
+ #: admin/view-languages.php:114
340
  msgid "Position of the language in the language switcher"
341
  msgstr "Месца мовы ў пераключальніку моў"
342
 
343
  # @ polylang
344
+ #: admin/admin-nav-menu.php:51
345
+ #: admin/admin-nav-menu.php:79
346
+ #: admin/admin-nav-menu.php:82
347
+ #: admin/admin-nav-menu.php:113
348
+ #: admin/admin-nav-menu.php:170
349
+ #: include/upgrade.php:175
350
  msgid "Language switcher"
351
  msgstr "Выбар моў"
352
 
353
  # @ polylang
354
+ #: admin/view-languages.php:143
355
  msgid "Search translations"
356
  msgstr "Пошук перакладаў"
357
 
358
+ #: admin/view-languages.php:146
359
  msgid "Clean strings translation database"
360
  msgstr "Ачысціць базу дадзеных радкоў перакладу"
361
 
362
  # @ polylang
363
+ #: admin/view-languages.php:164
364
  msgid "Default language"
365
  msgstr "Мова выкарыстання"
366
 
367
  # @ polylang
368
+ #: admin/view-languages.php:179
369
+ msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
370
+ msgstr "Былі знойдзены запісы, старонкі, катэгорыі ды тагі без зазначэньня мовы. Вызначыць мову выкарыстання?"
 
 
 
 
371
 
372
  # @ polylang
373
+ #: admin/view-languages.php:187
374
  msgid "Detect browser language"
375
  msgstr "Вызначыць мову браузэра"
376
 
377
  # @ polylang
378
+ #: admin/view-languages.php:193
379
+ msgid "When the front page is visited, set the language according to the browser preference"
 
 
380
  msgstr "Вызначыць мову сайта паводле наладак браузэра"
381
 
382
  # @ polylang
383
+ #: admin/view-languages.php:200
384
  msgid "URL modifications"
385
  msgstr "Мадыфікацыі URL"
386
 
387
+ #: admin/view-languages.php:206
388
+ msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
389
+ msgstr "Мова ўсталявана паводле змесціва. Запісы, старонкі, катэгорыі і тэгі спасылак не змяняліся."
 
 
 
 
 
 
 
 
 
 
 
 
390
 
391
  # @ polylang
392
+ #: admin/view-languages.php:253
393
  msgid "Remove /language/ in pretty permalinks. Example:"
394
  msgstr "Выдаліць /language/ са спасылцы. Напрыклад:"
395
 
396
  # @ polylang
397
+ #: admin/view-languages.php:262
398
  msgid "Keep /language/ in pretty permalinks. Example:"
399
  msgstr "Пакінуць /language/ са спасылцы. Напрыклад:"
400
 
401
  # @ polylang
402
+ #: admin/view-languages.php:271
403
  msgid "Hide URL language information for default language"
404
  msgstr "Схаваць назву мовы з URL"
405
 
406
+ #: admin/view-languages.php:281
407
  #, php-format
408
+ msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
409
+ msgstr "Пры выкарыстанні статычнай старонкі, перанакіроўваць старонку (напрыклад: %s) на галоўную старонку на правільнай мове."
 
 
 
 
410
 
411
  # @ polylang
412
+ #: admin/view-languages.php:290
413
  msgid "Media"
414
  msgstr "Медыа"
415
 
416
  # @ polylang
417
+ #: admin/view-languages.php:296
418
  msgid "Activate languages and translations for media"
419
  msgstr "Выкарыстоўваць мовы і пераклады для медыа-файлаў"
420
 
421
+ #: admin/view-languages.php:303
422
  msgid "Synchronization"
423
  msgstr "Сінхранізацыя"
424
 
425
  # @ polylang
426
+ #: admin/view-languages.php:320
427
  msgid "Custom post types"
428
  msgstr "Адвольны тып запісаў"
429
 
430
  # @ polylang
431
+ #: admin/view-languages.php:333
432
  msgid "Activate languages and translations for custom post types."
433
  msgstr "Выкарыстоўваць мовы і пераклады для адвольных тыпаў запісаў."
434
 
435
  # @ polylang
436
+ #: admin/view-languages.php:340
437
  msgid "Custom taxonomies"
438
  msgstr "Адвольныя успадкоўванні"
439
 
440
  # @ polylang
441
+ #: admin/view-languages.php:353
442
  msgid "Activate languages and translations for custom taxonomies."
443
  msgstr "Выкарыстоўваць мовы і пераклады для адвольных успадкоўванняў."
444
 
445
  # @ polylang
446
+ #: admin/table-languages.php:54
447
+ #: admin/view-translations-media.php:24
448
+ #: admin/view-translations-media.php:62
449
+ #: admin/view-translations-post.php:10
450
+ #: admin/view-translations-post.php:33
451
+ #: admin/view-translations-term.php:18
452
+ #: admin/view-translations-term.php:80
453
  msgid "Edit"
454
  msgstr "Рэдагаваць"
455
 
456
  # @ polylang
457
+ #: admin/table-languages.php:60
458
+ #: admin/table-string.php:167
459
  msgid "Delete"
460
  msgstr "Выдаліць"
461
 
462
  # @ polylang
463
+ #: admin/table-languages.php:76
464
  msgid "Code"
465
  msgstr "Код"
466
 
467
  # @ polylang
468
+ #: admin/table-languages.php:78
469
  msgid "Flag"
470
  msgstr "Сьцяг"
471
 
472
  # @ polylang
473
+ #: admin/table-languages.php:79
474
  msgid "Posts"
475
  msgstr "Запісы"
476
 
477
  # @ polylang
478
+ #: admin/table-string.php:109
479
  msgid "Name"
480
  msgstr "Імя"
481
 
482
  # @ polylang
483
+ #: admin/table-string.php:110
484
  msgid "String"
485
  msgstr "Радок"
486
 
487
  # @ polylang
488
+ #: admin/view-translations-media.php:8
489
+ #: admin/view-translations-media.php:46
490
+ #: admin/view-translations-term.php:16
491
  msgid "Translation"
492
  msgstr "Пераклад"
493
 
494
  # @ polylang
495
+ #: admin/view-translations-media.php:33
496
+ #: admin/view-translations-media.php:70
497
+ #: admin/view-translations-post.php:38
498
+ #: admin/view-translations-term.php:60
499
  msgid "Add new"
500
  msgstr "Дадаць новую"
501
 
502
  # @ polylang
503
+ #: admin/view-translations-post.php:5
504
  msgid "ID of pages in other languages:"
505
  msgstr "ID старонак на другіх мовах:"
506
 
507
  # @ polylang
508
+ #: admin/view-translations-post.php:5
509
  msgid "ID of posts in other languages:"
510
  msgstr "ID запісаў на другіх мовах:"
511
 
512
  # @ polylang
513
+ #: admin/view-translations-post.php:9
514
  msgid "Page ID"
515
  msgstr "ID старонкі"
516
 
517
  # @ polylang
518
+ #: admin/view-translations-post.php:9
519
  msgid "Post ID"
520
  msgstr "ID запісу"
521
 
522
  # @ polylang
523
+ #: admin/view-translations-term.php:48
524
  msgid "No untranslated term"
525
  msgstr "Няма неперакладзеных слоў"
526
 
527
  # @ polylang
528
+ #: include/widget-languages.php:16
529
  msgid "Language Switcher"
530
  msgstr "Пераключальнік моў"
531
 
532
  # @ polylang
533
+ #: include/widget-languages.php:16
534
  msgid "Displays a language switcher"
535
  msgstr "Паказвае пераключальнік моў"
536
 
537
  # @ polylang
538
+ #: include/widget-languages.php:100
539
  msgid "Title:"
540
  msgstr "Назва:"
541
 
546
  msgstr "Дадае магчымасьць шматмоў'я ў Wordpress"
547
 
548
  # @ polylang
549
+ #: polylang.php:157
550
  #, php-format
551
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
552
+ msgstr "Вы выкарыстоўваеце WordPress %s. Polylang патрабуе па меньшае WordPress %s."
 
553
 
554
  # @ polylang
555
+ #: include/upgrade.php:75
556
+ msgid "Polylang has been deactivated because you upgraded from a too old version."
557
+ msgstr "Polylang быў выключаны, таму што вы аднаўляецеся з немагчыма старой версіі."
 
 
558
 
559
  # @ polylang
560
+ #: include/upgrade.php:77
 
 
 
 
 
 
 
561
  #, php-format
562
  msgid "Please upgrade first to %s before ugrading to %s."
563
  msgstr "Калі ласка, аднавіце перш да версіі %s, каб аднавіць да версіі %s."
564
 
565
  # @ polylang
566
+ #: admin/table-string.php:108
567
  msgid "Group"
568
  msgstr "Група"
569
 
570
  # @ polylang
571
+ #: admin/table-string.php:186
572
  msgid "View all groups"
573
  msgstr "Прагледзець усе групы"
574
 
575
+ # @ polylang
576
+ #: admin/table-languages.php:59
577
+ msgid "You are about to permanently delete this language. Are you sure?"
578
+ msgstr ""
579
+
580
+ # @ polylang
581
+ #: admin/view-languages.php:147
582
+ msgid "Use this to remove unused strings from database, for example after a plugin has been uninstalled."
583
+ msgstr ""
584
+
585
+ # @ polylang
586
+ #: admin/view-languages.php:214
587
+ msgid "The language is set from the directory name in pretty permalinks. Example:"
588
+ msgstr ""
589
+
590
+ # @ polylang
591
+ #: admin/view-languages.php:223
592
+ msgid "The language is set from the subdomain name in pretty permalinks. Example:"
593
+ msgstr ""
594
+
595
+ # @ polylang
596
+ #: admin/view-languages.php:314
597
+ 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."
598
+ msgstr ""
599
+
600
+ # @ polylang
601
+ #: admin/settings.php:75
602
+ msgid "The language code contains invalid characters"
603
+ msgstr ""
604
+
605
+ # @ polylang
606
+ #: admin/view-languages.php:232
607
+ msgid "The language is set from different domains:"
608
+ msgstr ""
609
+
610
+ #~ msgid ""
611
+ #~ "The language code, for example /en/, is added to all urls when using "
612
+ #~ "pretty permalinks."
613
+ #~ msgstr ""
614
+ #~ "Код мовы, напрыклад /by/, дададзены ва ўсе спасылкі пры выкарыстанні "
615
+ #~ "pretty permalinks."
616
+
617
+ # @ polylang
618
+ #~ msgid ""
619
+ #~ "For some reasons, Polylang could not create a table in your database."
620
+ #~ msgstr ""
621
+ #~ "Па некаторых прычынах, Polylang не мае магчымасьці стварыць табліцу ў "
622
+ #~ "базе даных."
623
  # @ polylang
624
  #~ msgid "Displays a language switcher at the end of the menu"
625
  #~ msgstr "Паказвае пераключальнік моў"
 
626
  # @ polylang
627
  #~ msgid "Theme locations and languages"
628
  #~ msgstr "Разьмяшчэнне тэмы ды моў"
 
629
  # @ polylang
630
  #~ msgid ""
631
  #~ "Please go to the %slanguages page%s to set theme locations and languages"
632
  #~ msgstr ""
633
  #~ "Калі ласка, перайдзіце на %slanguages page%s для таго, каб зазначыць "
634
  #~ "разьмяшчэнне тэмы ды моў"
 
635
  # @ polylang
636
  #~ msgid "Menus"
637
  #~ msgstr "Меню"
 
638
  # @ polylang
639
  #~ msgid "Error: Restore of local flags failed!"
640
  #~ msgstr ""
641
  #~ "Памылка: Не атрымалася ўзнавіць карыстальніцкія іконкі-сьцягі з "
642
  #~ "рэзэрвовай копіі!"
 
643
  # @ polylang
644
  #, fuzzy
645
  #~ msgid "Please move your local flags from %s to %s"
languages/polylang-bg_BG.mo CHANGED
Binary file
languages/polylang-bg_BG.po CHANGED
@@ -14,11 +14,11 @@ msgstr ""
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.5\n"
18
  "X-Poedit-SearchPath-0: ..\n"
19
  "X-Poedit-SearchPath-1: ../include\n"
20
 
21
- #: include/about.php:3
22
  #, php-format
23
  msgid ""
24
  "Polylang is provided with an extensive %sdocumentation%s (in English only). "
@@ -31,7 +31,7 @@ msgstr ""
31
  "на често задавани въпроси, както и документация за разработчици за "
32
  "интегриране на Polylang с техните разширения и теми. "
33
 
34
- #: include/about.php:9
35
  #, php-format
36
  msgid ""
37
  "You will also find useful information in the %ssupport forum%s. However "
@@ -41,7 +41,7 @@ msgstr ""
41
  "%s; но не забравяйте да потърсите дали някой вече не е задал Вашия въпрос "
42
  "преди да изпратите запитване. "
43
 
44
- #: include/about.php:16
45
  #, php-format
46
  msgid ""
47
  "Polylang is free of charge and is released under the same license as "
@@ -50,12 +50,12 @@ msgstr ""
50
  "Polylang е безплатно разширение, публикувано под същия лиценз като "
51
  "WordPress, %sGPL%s."
52
 
53
- #: include/about.php:22
54
  #, php-format
55
  msgid "If you wonder how you can help the project, just %sread this%s."
56
  msgstr "Ако се питате как можете и Вие да помогнете, %sпрочетете това%s. "
57
 
58
- #: include/about.php:27
59
  msgid ""
60
  "Finally if you like this plugin or if it helps your business, donations to "
61
  "the author are greatly appreciated."
@@ -63,116 +63,110 @@ msgstr ""
63
  "Не на последно място, ако наистина харесвате това разширение и/или то помага "
64
  "на Вашия бизнес, авторът му високо оценява всяко едно дарение."
65
 
66
- #: include/admin-base.php:55 include/admin-base.php:190
67
- #: include/admin-filters.php:243 include/admin.php:23 include/admin.php:301
68
- #: include/list-table.php:13 polylang.php:339
69
  msgid "Languages"
70
  msgstr "Езици"
71
 
72
- #: include/admin-base.php:153
73
  msgid "Displays language names"
74
  msgstr "Показване на имената на езиците"
75
 
76
- #: include/admin-base.php:154
77
  msgid "Displays flags"
78
  msgstr "Показване на знаменца"
79
 
80
- #: include/admin-base.php:155
81
  msgid "Forces link to front page"
82
  msgstr "Всички връзки сочат към началната страница"
83
 
84
- #: include/admin-base.php:156
85
  msgid "Hides the current language"
86
  msgstr "Скриване на текущия език"
87
 
88
- #: include/admin-base.php:160
89
  msgid "Displays as dropdown"
90
  msgstr "Показване като падащо меню"
91
 
92
- #: include/admin-base.php:191
93
  msgid "Filters content by language"
94
  msgstr "Филтриране на съдържанието по език"
95
 
96
- #: include/admin-base.php:186
97
  msgid "Show all languages"
98
  msgstr "Показване на всички езици"
99
 
100
- #: include/admin-filters.php:181 include/admin-filters.php:877
101
  msgid "Add new translation"
102
  msgstr "Добавяне на нов превод"
103
 
104
- #: include/admin-filters.php:209 include/admin-filters.php:267
105
- #: include/admin-filters.php:601 include/admin-filters.php:817
106
- #: include/admin-filters.php:835 include/list-table.php:12
107
- #: include/media-translations.php:5 include/media-translations.php:43
108
- #: include/post-translations.php:8 include/term-translations.php:15
109
- #: polylang.php:340
110
  msgid "Language"
111
  msgstr "Език"
112
 
113
- #: include/admin-filters.php:616 include/admin-filters.php:651
114
- #: include/list-table.php:127 include/media-translations.php:40
115
- #: include/term-translations.php:6 include/term-translations.php:11
116
  msgid "Translations"
117
  msgstr "Преводи"
118
 
119
- #: include/admin-filters.php:819 include/admin-filters.php:838
120
  msgid "Sets the language"
121
  msgstr "Избор на език"
122
 
123
- #: include/admin-filters.php:1053
124
  msgid "The widget is displayed for:"
125
  msgstr "Джаджата се показва за:"
126
 
127
- #: include/admin-filters.php:1057 polylang.php:341
128
  msgid "All languages"
129
  msgstr "Всички езици"
130
 
131
- #: include/admin-filters.php:1080
132
  msgid "Admin language"
133
  msgstr "Езика на администраторския панел"
134
 
135
- #: include/admin-filters.php:1085
136
  msgid "Wordpress default"
137
  msgstr "Езика по подразбиране"
138
 
139
- #: include/admin-filters.php:1114 include/admin.php:306
140
  msgid "Settings"
141
  msgstr "Настройки"
142
 
143
- #: include/admin-filters.php:1120
144
  msgid "Upgrading language files&#8230;"
145
  msgstr "Обновяване на езиковите файлове&#8230;"
146
 
147
- #: include/admin.php:22
148
  msgid "About Polylang"
149
  msgstr "Относно Polylang"
150
 
151
- #: include/admin.php:27 include/list-table.php:82
152
  msgid "Strings translations"
153
  msgstr "Превод на низове"
154
 
155
- #: include/admin.php:305 include/list-table.php:81
156
  msgid "Strings translation"
157
  msgstr "Превод на низове"
158
 
159
- #: include/admin.php:345
160
- msgid "Enter a valid WorPress locale"
161
  msgstr "Въведете валидно (WordPress) местоположение"
162
 
163
- #: include/admin.php:346
164
- msgid "The language code must be 2 characters long"
165
- msgstr "Кодът на езика трябва да бъде двубуквен"
166
-
167
- #: include/admin.php:328
168
  msgid "The language code must be unique"
169
  msgstr "Кодът на езика трябва да бъде уникален"
170
 
171
- #: include/admin.php:329
172
  msgid "The language must have a name"
173
  msgstr "Кодът на езика трябва да има наименование"
174
 
175
- #: include/admin.php:330
176
  msgid ""
177
  "The language was created, but the WordPress language file was not "
178
  "downloaded. Please install it manually."
@@ -180,95 +174,95 @@ msgstr ""
180
  "Езикът беше добавен, но езиковият файл не може да бъде зареден. Моля "
181
  "инсталирайте го ръчно. "
182
 
183
- #: include/admin.php:449
184
  msgid "Widget title"
185
  msgstr "Заглавие на джаджата"
186
 
187
  # @ polylang
188
- #: include/base.php:368
189
  msgid "Taxonomies"
190
  msgstr "Таксономии"
191
 
192
  # @ polylang
193
- #: include/base.php:369
194
  msgid "Custom fields"
195
  msgstr "Потребителски полета"
196
 
197
  # @ polylang
198
- #: include/base.php:370
199
  msgid "Comment status"
200
  msgstr "Статус на коментара"
201
 
202
  # @ polylang
203
- #: include/base.php:371
204
  msgid "Ping status"
205
  msgstr "Статус на ping-а"
206
 
207
  # @ polylang
208
- #: include/base.php:372
209
  msgid "Sticky posts"
210
  msgstr "Публикации, залепени на началната страница"
211
 
212
  # @ polylang
213
- #: include/base.php:373
214
  msgid "Published date"
215
  msgstr "Дата на публикуване"
216
 
217
  # @ polylang
218
- #: include/base.php:374
219
  msgid "Post format"
220
  msgstr "Формат на публикацията"
221
 
222
- #: include/base.php:375
223
  msgid "Page parent"
224
  msgstr "Родител на страницата"
225
 
226
  # @ polylang
227
- #: include/base.php:376
228
  msgid "Page template"
229
  msgstr "Шаблон на страницата"
230
 
231
- #: include/base.php:377
232
  msgid "Page order"
233
  msgstr "Подредба на страницата"
234
 
235
  # @ polylang
236
- #: include/base.php:378
237
  msgid "Featured image"
238
  msgstr "Картинка на публикацията"
239
 
240
- #: include/languages-form.php:42
241
  msgid "Edit language"
242
  msgstr "Редактиране на езика"
243
 
244
- #: include/languages-form.php:42 include/languages-form.php:123
245
  msgid "Add new language"
246
  msgstr "Добавяне на нов език"
247
 
248
- #: include/languages-form.php:64
249
  msgid "Choose a language"
250
  msgstr "Изберете език"
251
 
252
- #: include/languages-form.php:78
253
  msgid "You can choose a language in the list or directly edit it below."
254
  msgstr ""
255
  "Можете да изберете език от падащото меню или да създадете нов използвайки "
256
  "полетата по-долу. "
257
 
258
- #: include/languages-form.php:82 include/list-table.php:34
259
  msgid "Full name"
260
  msgstr "Наименование"
261
 
262
- #: include/languages-form.php:84
263
  msgid "The name is how it is displayed on your site (for example: English)."
264
  msgstr ""
265
  "Наименованието както ще се показва в уебсайта (например: български, English)"
266
 
267
- #: include/languages-form.php:88 include/list-table.php:35
268
  msgid "Locale"
269
  msgstr "Местоположение"
270
 
271
- #: include/languages-form.php:93
272
  msgid ""
273
  "Wordpress Locale for the language (for example: en_US). You will need to "
274
  "install the .mo file for this language."
@@ -276,56 +270,57 @@ msgstr ""
276
  "Местоположение според WordPress (например: bg_BG, en_GB). Ще трябва да "
277
  "инсталирате съответния езиков файл (.mo). "
278
 
279
- #: include/languages-form.php:97
280
  msgid "Language code"
281
  msgstr "Код на езика"
282
 
283
- #: include/languages-form.php:99
284
  msgid "2-letters ISO 639-1 language code (for example: en)"
285
  msgstr "Двубуквеният код на езика според ISO 639-1 (например: bg, en)"
286
 
287
- #: include/languages-form.php:103
288
  msgid "Text direction"
289
  msgstr "Посока на писане"
290
 
291
- #: include/languages-form.php:107
292
  msgid "left to right"
293
  msgstr "отляво надясно"
294
 
295
- #: include/languages-form.php:112
296
  msgid "right to left"
297
  msgstr "отдясно наляво"
298
 
299
- #: include/languages-form.php:114
300
  msgid "Choose the text direction for the language"
301
  msgstr "Изберете посоката на писане"
302
 
303
- #: include/languages-form.php:118 include/list-table.php:37
304
  msgid "Order"
305
  msgstr "Подредба"
306
 
307
- #: include/languages-form.php:120
308
  msgid "Position of the language in the language switcher"
309
  msgstr "Кой подред ще се показва езикът в джаджата за смяна на езици"
310
 
311
- #: include/nav-menu.php:28 include/nav-menu.php:51 include/nav-menu.php:54
312
- #: include/nav-menu.php:82 include/nav-menu.php:106 polylang.php:302
 
313
  msgid "Language switcher"
314
  msgstr "Джаджа за смяна на езика"
315
 
316
- #: include/languages-form.php:148
317
  msgid "Search translations"
318
  msgstr "Преводи за търсенето"
319
 
320
- #: include/languages-form.php:151
321
  msgid "Clean strings translation database"
322
  msgstr "Изтриване на запазените преводи "
323
 
324
- #: include/languages-form.php:167
325
  msgid "Default language"
326
  msgstr "Език по подразбиране"
327
 
328
- #: include/languages-form.php:179
329
  msgid ""
330
  "There are posts, pages, categories or tags without language set. Do you want "
331
  "to set them all to default language ?"
@@ -333,11 +328,11 @@ msgstr ""
333
  "Намерени са публикации, страници, категории и етикети, за които не е посочен "
334
  "език. Искате ли да бъдат прехвърлени към езика по подразбиране?"
335
 
336
- #: include/languages-form.php:187
337
  msgid "Detect browser language"
338
  msgstr "Засичане на езика на браузъра"
339
 
340
- #: include/languages-form.php:193
341
  msgid ""
342
  "When the front page is visited, set the language according to the browser "
343
  "preference"
@@ -345,11 +340,11 @@ msgstr ""
345
  "Когато потребителят посети началната страница, езикът му да се настройва "
346
  "според предпочитанията на браузъра. "
347
 
348
- #: include/languages-form.php:200
349
  msgid "URL modifications"
350
  msgstr "Промени в адреса (URL)"
351
 
352
- #: include/languages-form.php:206
353
  msgid ""
354
  "The language is set from content. Posts, pages, categories and tags urls are "
355
  "not modified."
@@ -357,26 +352,19 @@ msgstr ""
357
  "Езикът зависи от съдържанието. Адресите (URLs) на публикациите, страниците, "
358
  "категориите и етикетите не се променят. "
359
 
360
- #: include/languages-form.php:214
361
- msgid ""
362
- "The language code, for example /en/, is added to all urls when using pretty "
363
- "permalinks."
364
- msgstr ""
365
- "Кодът на езика (например /bg/, /en/) се добавя към всички адреси (URLs)."
366
-
367
- #: include/languages-form.php:223
368
  msgid "Remove /language/ in pretty permalinks. Example:"
369
  msgstr "Премахване на /language/ от адресите (URLs). Например:"
370
 
371
- #: include/languages-form.php:232
372
  msgid "Keep /language/ in pretty permalinks. Example:"
373
  msgstr "Запазване на /language/ в адресите (URLs). Например:"
374
 
375
- #: include/languages-form.php:241
376
  msgid "Hide URL language information for default language"
377
  msgstr "Скриване на информацията за езика от адресите за езика по подразбиране"
378
 
379
- #: include/languages-form.php:251
380
  #, php-format
381
  msgid ""
382
  "When using static front page, redirect the language page (example: %s) to "
@@ -386,109 +374,109 @@ msgstr ""
386
  "началната страница на съответния език"
387
 
388
  # @ polylang
389
- #: include/languages-form.php:260
390
  msgid "Media"
391
  msgstr "Файлове"
392
 
393
  # @ polylang
394
- #: include/languages-form.php:266
395
  msgid "Activate languages and translations for media"
396
  msgstr "Включване на многоезичност за файловете"
397
 
398
- #: include/languages-form.php:273
399
  msgid "Synchronization"
400
  msgstr "Синхронизация"
401
 
402
  # @ polylang
403
- #: include/languages-form.php:287
404
  msgid "Custom post types"
405
  msgstr "Потребителски типове публикации"
406
 
407
  # @ polylang
408
- #: include/languages-form.php:300
409
  msgid "Activate languages and translations for custom post types."
410
  msgstr "Включване на многоезичност за потребителските типове публикации"
411
 
412
  # @ polylang
413
- #: include/languages-form.php:307
414
  msgid "Custom taxonomies"
415
  msgstr "Потребителски таксономии"
416
 
417
  # @ polylang
418
- #: include/languages-form.php:320
419
  msgid "Activate languages and translations for custom taxonomies."
420
  msgstr "Включване на многоезичност за потребителските таксономии"
421
 
422
- #: include/list-table.php:26 include/media-translations.php:22
423
- #: include/media-translations.php:60 include/post-translations.php:10
424
- #: include/post-translations.php:33 include/term-translations.php:18
425
- #: include/term-translations.php:80
426
  msgid "Edit"
427
  msgstr "Редактиране"
428
 
429
- #: include/list-table.php:27 include/list-table.php:162
430
  msgid "Delete"
431
  msgstr "Изтриване"
432
 
433
- #: include/list-table.php:36
434
  msgid "Code"
435
  msgstr "Код"
436
 
437
- #: include/list-table.php:38
438
  msgid "Flag"
439
  msgstr "Знаменце"
440
 
441
- #: include/list-table.php:39
442
  msgid "Posts"
443
  msgstr "Публикации"
444
 
445
- #: include/list-table.php:125
446
  msgid "Name"
447
  msgstr "Наименование"
448
 
449
- #: include/list-table.php:126
450
  msgid "String"
451
  msgstr "Низ"
452
 
453
- #: include/media-translations.php:6 include/media-translations.php:44
454
- #: include/term-translations.php:16
455
  msgid "Translation"
456
  msgstr "Превод"
457
 
458
- #: include/media-translations.php:31 include/media-translations.php:68
459
- #: include/post-translations.php:38 include/term-translations.php:60
460
  msgid "Add new"
461
  msgstr "Добави нов"
462
 
463
- #: include/post-translations.php:5
464
  msgid "ID of pages in other languages:"
465
  msgstr "Ключове на преводите на тази страница"
466
 
467
- #: include/post-translations.php:5
468
  msgid "ID of posts in other languages:"
469
  msgstr "Ключове на преводите на тази публикация"
470
 
471
- #: include/post-translations.php:9
472
  msgid "Page ID"
473
  msgstr "Ключ"
474
 
475
- #: include/post-translations.php:9
476
  msgid "Post ID"
477
  msgstr "Ключ"
478
 
479
- #: include/term-translations.php:48
480
  msgid "No untranslated term"
481
  msgstr "Няма непреведени низове"
482
 
483
- #: include/widget.php:6
484
  msgid "Language Switcher"
485
  msgstr "Джаджа за смяна на езика"
486
 
487
- #: include/widget.php:6
488
  msgid "Displays a language switcher"
489
  msgstr "Показване на джаджа за смяна на езика"
490
 
491
- #: include/widget.php:69
492
  msgid "Title:"
493
  msgstr "Заглавие:"
494
 
@@ -498,41 +486,91 @@ msgstr "Заглавие:"
498
  msgid "Adds multilingual capability to WordPress"
499
  msgstr "Добавя многоезична функционалност към WordPress"
500
 
501
- #: polylang.php:133
502
  #, php-format
503
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
504
  msgstr ""
505
  "Вие използвате WordPress %s. Минималните изисквания за Polylang включват "
506
  "WordPress %s."
507
 
508
- #: polylang.php:174
509
- msgid "For some reasons, Polylang could not create a table in your database."
510
- msgstr ""
511
- "По една или друга причина Polylang не успя да си създаде необходимата "
512
- "таблица в базата данни. "
513
-
514
  # @ polylang
515
- #: polylang.php:235
516
  msgid ""
517
  "Polylang has been deactivated because you upgraded from a too old version."
518
  msgstr "Polylang бе изключен, защото обновихте от твърде стара версия."
519
 
520
  # @ polylang
521
- #: polylang.php:237
522
  #, php-format
523
  msgid "Please upgrade first to %s before ugrading to %s."
524
  msgstr "Моля първо обновете до %s, преди да обновите до %s."
525
 
526
  # @ polylang
527
- #: include/list-table.php:124
528
  msgid "Group"
529
  msgstr "Група"
530
 
531
  # @ polylang
532
- #: include/list-table.php:173
533
  msgid "View all groups"
534
  msgstr "Покажи всички групи"
535
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
536
  #~ msgid "Displays a language switcher at the end of the menu"
537
  #~ msgstr "Показване на джаджата за смяна на езици след менюто"
538
 
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.7\n"
18
  "X-Poedit-SearchPath-0: ..\n"
19
  "X-Poedit-SearchPath-1: ../include\n"
20
 
21
+ #: admin/view-about.php:3
22
  #, php-format
23
  msgid ""
24
  "Polylang is provided with an extensive %sdocumentation%s (in English only). "
31
  "на често задавани въпроси, както и документация за разработчици за "
32
  "интегриране на Polylang с техните разширения и теми. "
33
 
34
+ #: admin/view-about.php:9
35
  #, php-format
36
  msgid ""
37
  "You will also find useful information in the %ssupport forum%s. However "
41
  "%s; но не забравяйте да потърсите дали някой вече не е задал Вашия въпрос "
42
  "преди да изпратите запитване. "
43
 
44
+ #: admin/view-about.php:16
45
  #, php-format
46
  msgid ""
47
  "Polylang is free of charge and is released under the same license as "
50
  "Polylang е безплатно разширение, публикувано под същия лиценз като "
51
  "WordPress, %sGPL%s."
52
 
53
+ #: admin/view-about.php:22
54
  #, php-format
55
  msgid "If you wonder how you can help the project, just %sread this%s."
56
  msgstr "Ако се питате как можете и Вие да помогнете, %sпрочетете това%s. "
57
 
58
+ #: admin/view-about.php:27
59
  msgid ""
60
  "Finally if you like this plugin or if it helps your business, donations to "
61
  "the author are greatly appreciated."
63
  "Не на последно място, ако наистина харесвате това разширение и/или то помага "
64
  "на Вашия бизнес, авторът му високо оценява всяко едно дарение."
65
 
66
+ #: admin/admin-filters-post.php:76 admin/admin.php:83 admin/admin.php:187
67
+ #: admin/settings.php:42 admin/settings.php:57 include/model.php:490
 
68
  msgid "Languages"
69
  msgstr "Езици"
70
 
71
+ #: include/switcher.php:22
72
  msgid "Displays language names"
73
  msgstr "Показване на имената на езиците"
74
 
75
+ #: include/switcher.php:23
76
  msgid "Displays flags"
77
  msgstr "Показване на знаменца"
78
 
79
+ #: include/switcher.php:24
80
  msgid "Forces link to front page"
81
  msgstr "Всички връзки сочат към началната страница"
82
 
83
+ #: include/switcher.php:25
84
  msgid "Hides the current language"
85
  msgstr "Скриване на текущия език"
86
 
87
+ #: include/switcher.php:29
88
  msgid "Displays as dropdown"
89
  msgstr "Показване като падащо меню"
90
 
91
+ #: admin/admin.php:188
92
  msgid "Filters content by language"
93
  msgstr "Филтриране на съдържанието по език"
94
 
95
+ #: admin/admin.php:183
96
  msgid "Show all languages"
97
  msgstr "Показване на всички езици"
98
 
99
+ #: admin/admin-filters-columns.php:126 admin/admin-filters-columns.php:215
100
  msgid "Add new translation"
101
  msgstr "Добавяне на нов превод"
102
 
103
+ #: admin/admin-filters-columns.php:163 admin/admin-filters-media.php:58
104
+ #: admin/admin-filters-post.php:109 admin/admin-filters-term.php:72
105
+ #: admin/admin-filters-term.php:106 admin/view-translations-media.php:7
106
+ #: admin/view-translations-media.php:45 admin/view-translations-post.php:8
107
+ #: admin/view-translations-term.php:15 include/model.php:491
 
108
  msgid "Language"
109
  msgstr "Език"
110
 
111
+ #: admin/admin-filters-media.php:73 admin/admin-filters-media.php:112
112
+ #: admin/table-string.php:111 admin/view-translations-media.php:42
113
+ #: admin/view-translations-term.php:6 admin/view-translations-term.php:11
114
  msgid "Translations"
115
  msgstr "Преводи"
116
 
117
+ #: admin/admin-filters-term.php:74 admin/admin-filters-term.php:108
118
  msgid "Sets the language"
119
  msgstr "Избор на език"
120
 
121
+ #: admin/admin-filters.php:60
122
  msgid "The widget is displayed for:"
123
  msgstr "Джаджата се показва за:"
124
 
125
+ #: admin/admin-filters.php:63 include/model.php:492
126
  msgid "All languages"
127
  msgstr "Всички езици"
128
 
129
+ #: admin/admin-filters.php:120
130
  msgid "Admin language"
131
  msgstr "Езика на администраторския панел"
132
 
133
+ #: admin/admin-filters.php:123
134
  msgid "Wordpress default"
135
  msgstr "Езика по подразбиране"
136
 
137
+ #: admin/admin.php:123 admin/settings.php:62
138
  msgid "Settings"
139
  msgstr "Настройки"
140
 
141
+ #: admin/admin-filters.php:151
142
  msgid "Upgrading language files&#8230;"
143
  msgstr "Обновяване на езиковите файлове&#8230;"
144
 
145
+ #: admin/settings.php:38
146
  msgid "About Polylang"
147
  msgstr "Относно Polylang"
148
 
149
+ #: admin/settings.php:46
150
  msgid "Strings translations"
151
  msgstr "Превод на низове"
152
 
153
+ #: admin/settings.php:61
154
  msgid "Strings translation"
155
  msgstr "Превод на низове"
156
 
157
+ #: admin/settings.php:74
158
+ msgid "Enter a valid WordPress locale"
159
  msgstr "Въведете валидно (WordPress) местоположение"
160
 
161
+ #: admin/settings.php:76
 
 
 
 
162
  msgid "The language code must be unique"
163
  msgstr "Кодът на езика трябва да бъде уникален"
164
 
165
+ #: admin/settings.php:77
166
  msgid "The language must have a name"
167
  msgstr "Кодът на езика трябва да има наименование"
168
 
169
+ #: admin/settings.php:78
170
  msgid ""
171
  "The language was created, but the WordPress language file was not "
172
  "downloaded. Please install it manually."
174
  "Езикът беше добавен, но езиковият файл не може да бъде зареден. Моля "
175
  "инсталирайте го ръчно. "
176
 
177
+ #: admin/settings.php:305
178
  msgid "Widget title"
179
  msgstr "Заглавие на джаджата"
180
 
181
  # @ polylang
182
+ #: admin/settings.php:323
183
  msgid "Taxonomies"
184
  msgstr "Таксономии"
185
 
186
  # @ polylang
187
+ #: admin/settings.php:324
188
  msgid "Custom fields"
189
  msgstr "Потребителски полета"
190
 
191
  # @ polylang
192
+ #: admin/settings.php:325
193
  msgid "Comment status"
194
  msgstr "Статус на коментара"
195
 
196
  # @ polylang
197
+ #: admin/settings.php:326
198
  msgid "Ping status"
199
  msgstr "Статус на ping-а"
200
 
201
  # @ polylang
202
+ #: admin/settings.php:327
203
  msgid "Sticky posts"
204
  msgstr "Публикации, залепени на началната страница"
205
 
206
  # @ polylang
207
+ #: admin/settings.php:328
208
  msgid "Published date"
209
  msgstr "Дата на публикуване"
210
 
211
  # @ polylang
212
+ #: admin/settings.php:329
213
  msgid "Post format"
214
  msgstr "Формат на публикацията"
215
 
216
+ #: admin/settings.php:330
217
  msgid "Page parent"
218
  msgstr "Родител на страницата"
219
 
220
  # @ polylang
221
+ #: admin/settings.php:331
222
  msgid "Page template"
223
  msgstr "Шаблон на страницата"
224
 
225
+ #: admin/settings.php:332
226
  msgid "Page order"
227
  msgstr "Подредба на страницата"
228
 
229
  # @ polylang
230
+ #: admin/settings.php:333
231
  msgid "Featured image"
232
  msgstr "Картинка на публикацията"
233
 
234
+ #: admin/view-languages.php:42
235
  msgid "Edit language"
236
  msgstr "Редактиране на езика"
237
 
238
+ #: admin/view-languages.php:42 admin/view-languages.php:117
239
  msgid "Add new language"
240
  msgstr "Добавяне на нов език"
241
 
242
+ #: admin/view-languages.php:58
243
  msgid "Choose a language"
244
  msgstr "Изберете език"
245
 
246
+ #: admin/view-languages.php:72
247
  msgid "You can choose a language in the list or directly edit it below."
248
  msgstr ""
249
  "Можете да изберете език от падащото меню или да създадете нов използвайки "
250
  "полетата по-долу. "
251
 
252
+ #: admin/table-languages.php:74 admin/view-languages.php:76
253
  msgid "Full name"
254
  msgstr "Наименование"
255
 
256
+ #: admin/view-languages.php:78
257
  msgid "The name is how it is displayed on your site (for example: English)."
258
  msgstr ""
259
  "Наименованието както ще се показва в уебсайта (например: български, English)"
260
 
261
+ #: admin/table-languages.php:75 admin/view-languages.php:82
262
  msgid "Locale"
263
  msgstr "Местоположение"
264
 
265
+ #: admin/view-languages.php:87
266
  msgid ""
267
  "Wordpress Locale for the language (for example: en_US). You will need to "
268
  "install the .mo file for this language."
270
  "Местоположение според WordPress (например: bg_BG, en_GB). Ще трябва да "
271
  "инсталирате съответния езиков файл (.mo). "
272
 
273
+ #: admin/view-languages.php:91
274
  msgid "Language code"
275
  msgstr "Код на езика"
276
 
277
+ #: admin/view-languages.php:93
278
  msgid "2-letters ISO 639-1 language code (for example: en)"
279
  msgstr "Двубуквеният код на езика според ISO 639-1 (например: bg, en)"
280
 
281
+ #: admin/view-languages.php:97
282
  msgid "Text direction"
283
  msgstr "Посока на писане"
284
 
285
+ #: admin/view-languages.php:101
286
  msgid "left to right"
287
  msgstr "отляво надясно"
288
 
289
+ #: admin/view-languages.php:106
290
  msgid "right to left"
291
  msgstr "отдясно наляво"
292
 
293
+ #: admin/view-languages.php:108
294
  msgid "Choose the text direction for the language"
295
  msgstr "Изберете посоката на писане"
296
 
297
+ #: admin/table-languages.php:77 admin/view-languages.php:112
298
  msgid "Order"
299
  msgstr "Подредба"
300
 
301
+ #: admin/view-languages.php:114
302
  msgid "Position of the language in the language switcher"
303
  msgstr "Кой подред ще се показва езикът в джаджата за смяна на езици"
304
 
305
+ #: admin/admin-nav-menu.php:51 admin/admin-nav-menu.php:79
306
+ #: admin/admin-nav-menu.php:82 admin/admin-nav-menu.php:113
307
+ #: admin/admin-nav-menu.php:170 include/upgrade.php:175
308
  msgid "Language switcher"
309
  msgstr "Джаджа за смяна на езика"
310
 
311
+ #: admin/view-languages.php:143
312
  msgid "Search translations"
313
  msgstr "Преводи за търсенето"
314
 
315
+ #: admin/view-languages.php:146
316
  msgid "Clean strings translation database"
317
  msgstr "Изтриване на запазените преводи "
318
 
319
+ #: admin/view-languages.php:164
320
  msgid "Default language"
321
  msgstr "Език по подразбиране"
322
 
323
+ #: admin/view-languages.php:179
324
  msgid ""
325
  "There are posts, pages, categories or tags without language set. Do you want "
326
  "to set them all to default language ?"
328
  "Намерени са публикации, страници, категории и етикети, за които не е посочен "
329
  "език. Искате ли да бъдат прехвърлени към езика по подразбиране?"
330
 
331
+ #: admin/view-languages.php:187
332
  msgid "Detect browser language"
333
  msgstr "Засичане на езика на браузъра"
334
 
335
+ #: admin/view-languages.php:193
336
  msgid ""
337
  "When the front page is visited, set the language according to the browser "
338
  "preference"
340
  "Когато потребителят посети началната страница, езикът му да се настройва "
341
  "според предпочитанията на браузъра. "
342
 
343
+ #: admin/view-languages.php:200
344
  msgid "URL modifications"
345
  msgstr "Промени в адреса (URL)"
346
 
347
+ #: admin/view-languages.php:206
348
  msgid ""
349
  "The language is set from content. Posts, pages, categories and tags urls are "
350
  "not modified."
352
  "Езикът зависи от съдържанието. Адресите (URLs) на публикациите, страниците, "
353
  "категориите и етикетите не се променят. "
354
 
355
+ #: admin/view-languages.php:253
 
 
 
 
 
 
 
356
  msgid "Remove /language/ in pretty permalinks. Example:"
357
  msgstr "Премахване на /language/ от адресите (URLs). Например:"
358
 
359
+ #: admin/view-languages.php:262
360
  msgid "Keep /language/ in pretty permalinks. Example:"
361
  msgstr "Запазване на /language/ в адресите (URLs). Например:"
362
 
363
+ #: admin/view-languages.php:271
364
  msgid "Hide URL language information for default language"
365
  msgstr "Скриване на информацията за езика от адресите за езика по подразбиране"
366
 
367
+ #: admin/view-languages.php:281
368
  #, php-format
369
  msgid ""
370
  "When using static front page, redirect the language page (example: %s) to "
374
  "началната страница на съответния език"
375
 
376
  # @ polylang
377
+ #: admin/view-languages.php:290
378
  msgid "Media"
379
  msgstr "Файлове"
380
 
381
  # @ polylang
382
+ #: admin/view-languages.php:296
383
  msgid "Activate languages and translations for media"
384
  msgstr "Включване на многоезичност за файловете"
385
 
386
+ #: admin/view-languages.php:303
387
  msgid "Synchronization"
388
  msgstr "Синхронизация"
389
 
390
  # @ polylang
391
+ #: admin/view-languages.php:320
392
  msgid "Custom post types"
393
  msgstr "Потребителски типове публикации"
394
 
395
  # @ polylang
396
+ #: admin/view-languages.php:333
397
  msgid "Activate languages and translations for custom post types."
398
  msgstr "Включване на многоезичност за потребителските типове публикации"
399
 
400
  # @ polylang
401
+ #: admin/view-languages.php:340
402
  msgid "Custom taxonomies"
403
  msgstr "Потребителски таксономии"
404
 
405
  # @ polylang
406
+ #: admin/view-languages.php:353
407
  msgid "Activate languages and translations for custom taxonomies."
408
  msgstr "Включване на многоезичност за потребителските таксономии"
409
 
410
+ #: admin/table-languages.php:54 admin/view-translations-media.php:24
411
+ #: admin/view-translations-media.php:62 admin/view-translations-post.php:10
412
+ #: admin/view-translations-post.php:33 admin/view-translations-term.php:18
413
+ #: admin/view-translations-term.php:80
414
  msgid "Edit"
415
  msgstr "Редактиране"
416
 
417
+ #: admin/table-languages.php:60 admin/table-string.php:167
418
  msgid "Delete"
419
  msgstr "Изтриване"
420
 
421
+ #: admin/table-languages.php:76
422
  msgid "Code"
423
  msgstr "Код"
424
 
425
+ #: admin/table-languages.php:78
426
  msgid "Flag"
427
  msgstr "Знаменце"
428
 
429
+ #: admin/table-languages.php:79
430
  msgid "Posts"
431
  msgstr "Публикации"
432
 
433
+ #: admin/table-string.php:109
434
  msgid "Name"
435
  msgstr "Наименование"
436
 
437
+ #: admin/table-string.php:110
438
  msgid "String"
439
  msgstr "Низ"
440
 
441
+ #: admin/view-translations-media.php:8 admin/view-translations-media.php:46
442
+ #: admin/view-translations-term.php:16
443
  msgid "Translation"
444
  msgstr "Превод"
445
 
446
+ #: admin/view-translations-media.php:33 admin/view-translations-media.php:70
447
+ #: admin/view-translations-post.php:38 admin/view-translations-term.php:60
448
  msgid "Add new"
449
  msgstr "Добави нов"
450
 
451
+ #: admin/view-translations-post.php:5
452
  msgid "ID of pages in other languages:"
453
  msgstr "Ключове на преводите на тази страница"
454
 
455
+ #: admin/view-translations-post.php:5
456
  msgid "ID of posts in other languages:"
457
  msgstr "Ключове на преводите на тази публикация"
458
 
459
+ #: admin/view-translations-post.php:9
460
  msgid "Page ID"
461
  msgstr "Ключ"
462
 
463
+ #: admin/view-translations-post.php:9
464
  msgid "Post ID"
465
  msgstr "Ключ"
466
 
467
+ #: admin/view-translations-term.php:48
468
  msgid "No untranslated term"
469
  msgstr "Няма непреведени низове"
470
 
471
+ #: include/widget-languages.php:16
472
  msgid "Language Switcher"
473
  msgstr "Джаджа за смяна на езика"
474
 
475
+ #: include/widget-languages.php:16
476
  msgid "Displays a language switcher"
477
  msgstr "Показване на джаджа за смяна на езика"
478
 
479
+ #: include/widget-languages.php:100
480
  msgid "Title:"
481
  msgstr "Заглавие:"
482
 
486
  msgid "Adds multilingual capability to WordPress"
487
  msgstr "Добавя многоезична функционалност към WordPress"
488
 
489
+ #: polylang.php:157
490
  #, php-format
491
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
492
  msgstr ""
493
  "Вие използвате WordPress %s. Минималните изисквания за Polylang включват "
494
  "WordPress %s."
495
 
 
 
 
 
 
 
496
  # @ polylang
497
+ #: include/upgrade.php:75
498
  msgid ""
499
  "Polylang has been deactivated because you upgraded from a too old version."
500
  msgstr "Polylang бе изключен, защото обновихте от твърде стара версия."
501
 
502
  # @ polylang
503
+ #: include/upgrade.php:77
504
  #, php-format
505
  msgid "Please upgrade first to %s before ugrading to %s."
506
  msgstr "Моля първо обновете до %s, преди да обновите до %s."
507
 
508
  # @ polylang
509
+ #: admin/table-string.php:108
510
  msgid "Group"
511
  msgstr "Група"
512
 
513
  # @ polylang
514
+ #: admin/table-string.php:186
515
  msgid "View all groups"
516
  msgstr "Покажи всички групи"
517
 
518
+ # @ polylang
519
+ #: admin/table-languages.php:59
520
+ msgid "You are about to permanently delete this language. Are you sure?"
521
+ msgstr "Вие сте на път да изтриете необратимо този език. Сигурни ли сте?"
522
+
523
+ # @ polylang
524
+ #: admin/view-languages.php:147
525
+ msgid ""
526
+ "Use this to remove unused strings from database, for example after a plugin "
527
+ "has been uninstalled."
528
+ msgstr ""
529
+ "Използвайте, за да премахнете неупотребявани низове от базата данни, "
530
+ "например след изключване на разширение (плъгин)."
531
+
532
+ #: admin/view-languages.php:214
533
+ msgid ""
534
+ "The language is set from the directory name in pretty permalinks. Example:"
535
+ msgstr "Езикът се определя от директорията в адресите (URLs). Например:"
536
+
537
+ #: admin/view-languages.php:223
538
+ msgid ""
539
+ "The language is set from the subdomain name in pretty permalinks. Example:"
540
+ msgstr "Езикът се определя от поддомейна в адресите (URLs). Например:"
541
+
542
+ # @ polylang
543
+ #: admin/view-languages.php:314
544
+ msgid ""
545
+ "The synchronization options allow to maintain exact same values (or "
546
+ "translations in the case of taxonomies and page parent) of meta content "
547
+ "between the translations of a post or page."
548
+ msgstr ""
549
+ "Чрез синхронизацията мета съдържанието (и преводите за таксономии и "
550
+ "родителски страници) е едно и също за различните преводи на публикации и "
551
+ "страници."
552
+
553
+ #: admin/settings.php:75
554
+ msgid "The language code contains invalid characters"
555
+ msgstr "Кодът на езика съдържа невалидни знаци"
556
+
557
+ # @ polylang
558
+ #: admin/view-languages.php:232
559
+ msgid "The language is set from different domains:"
560
+ msgstr "Езикът се определя от различни домейни:"
561
+
562
+ #~ msgid ""
563
+ #~ "The language code, for example /en/, is added to all urls when using "
564
+ #~ "pretty permalinks."
565
+ #~ msgstr ""
566
+ #~ "Кодът на езика (например /bg/, /en/) се добавя към всички адреси (URLs)."
567
+
568
+ #~ msgid ""
569
+ #~ "For some reasons, Polylang could not create a table in your database."
570
+ #~ msgstr ""
571
+ #~ "По една или друга причина Polylang не успя да си създаде необходимата "
572
+ #~ "таблица в базата данни. "
573
+
574
  #~ msgid "Displays a language switcher at the end of the menu"
575
  #~ msgstr "Показване на джаджата за смяна на езици след менюто"
576
 
languages/polylang-ca.mo CHANGED
Binary file
languages/polylang-ca.po CHANGED
@@ -2,7 +2,7 @@ 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: Núria Martínez Berenguer <nuria.trad@gmail.com>\n"
8
  "Language-Team: \n"
@@ -17,7 +17,7 @@ msgstr ""
17
  "X-Poedit-SearchPath-0: ..\n"
18
  "X-Poedit-SearchPath-1: ../include\n"
19
 
20
- #: include/about.php:3
21
  #, php-format
22
  msgid ""
23
  "Polylang is provided with an extensive %sdocumentation%s (in English only). "
@@ -30,7 +30,7 @@ msgstr ""
30
  "diari, una pàgina de preguntes freqüents, així com informació per tal que "
31
  "els programadors puguin adaptar-ne els plugins i temes."
32
 
33
- #: include/about.php:9
34
  #, php-format
35
  msgid ""
36
  "You will also find useful information in the %ssupport forum%s. However "
@@ -39,7 +39,7 @@ msgstr ""
39
  "També trobaràs informació d'interès als %sfòrums de suport%s. Però abans de "
40
  "crear un nou tema, no oblidis fer-ne una cerca."
41
 
42
- #: include/about.php:16
43
  #, php-format
44
  msgid ""
45
  "Polylang is free of charge and is released under the same license as "
@@ -48,12 +48,12 @@ msgstr ""
48
  "Polylang és gratuit i es distribueix sota la mateixa llicència que "
49
  "WordPress, %sGPL%s."
50
 
51
- #: include/about.php:22
52
  #, php-format
53
  msgid "If you wonder how you can help the project, just %sread this%s."
54
  msgstr "Si vols saber com ajudar al projecte, llegeix %saixò%s."
55
 
56
- #: include/about.php:27
57
  msgid ""
58
  "Finally if you like this plugin or if it helps your business, donations to "
59
  "the author are greatly appreciated."
@@ -61,116 +61,110 @@ msgstr ""
61
  "Finalment, si t'agrada aquest plugin i el trobes útil per al teu negoci, "
62
  "pots fer-ne un donatiu. L'autor t'ho agrairà enormement."
63
 
64
- #: include/admin-base.php:55 include/admin-base.php:190
65
- #: include/admin-filters.php:243 include/admin.php:23 include/admin.php:301
66
- #: include/list-table.php:13 polylang.php:339
67
  msgid "Languages"
68
  msgstr "Idiomes"
69
 
70
- #: include/admin-base.php:153
71
  msgid "Displays language names"
72
  msgstr "Mostra els noms dels idiomes"
73
 
74
- #: include/admin-base.php:154
75
  msgid "Displays flags"
76
  msgstr "Mostra les banderes"
77
 
78
- #: include/admin-base.php:155
79
  msgid "Forces link to front page"
80
  msgstr "Força un enllaç cap a la pàgina principal"
81
 
82
- #: include/admin-base.php:156
83
  msgid "Hides the current language"
84
  msgstr "Oculta l'idioma actual"
85
 
86
- #: include/admin-base.php:160
87
  msgid "Displays as dropdown"
88
  msgstr "Mostra com a menú desplegable"
89
 
90
- #: include/admin-base.php:191
91
  msgid "Filters content by language"
92
- msgstr "Filtra el contingut per idioma"
93
 
94
- #: include/admin-base.php:186
95
  msgid "Show all languages"
96
  msgstr "Mostra tots els idiomes"
97
 
98
- #: include/admin-filters.php:181 include/admin-filters.php:877
99
  msgid "Add new translation"
100
  msgstr "Afegeix traducció nova"
101
 
102
- #: include/admin-filters.php:209 include/admin-filters.php:267
103
- #: include/admin-filters.php:601 include/admin-filters.php:817
104
- #: include/admin-filters.php:835 include/list-table.php:12
105
- #: include/media-translations.php:5 include/media-translations.php:43
106
- #: include/post-translations.php:8 include/term-translations.php:15
107
- #: polylang.php:340
108
  msgid "Language"
109
  msgstr "Idioma"
110
 
111
- #: include/admin-filters.php:616 include/admin-filters.php:651
112
- #: include/list-table.php:127 include/media-translations.php:40
113
- #: include/term-translations.php:6 include/term-translations.php:11
114
  msgid "Translations"
115
  msgstr "Traduccions"
116
 
117
- #: include/admin-filters.php:819 include/admin-filters.php:838
118
  msgid "Sets the language"
119
  msgstr "Estableix l'idioma"
120
 
121
- #: include/admin-filters.php:1053
122
  msgid "The widget is displayed for:"
123
  msgstr "El widget es mostra per a:"
124
 
125
- #: include/admin-filters.php:1057 polylang.php:341
126
  msgid "All languages"
127
  msgstr "Tots els idiomes"
128
 
129
- #: include/admin-filters.php:1080
130
  msgid "Admin language"
131
  msgstr "Idioma de l'administrador"
132
 
133
- #: include/admin-filters.php:1085
134
  msgid "Wordpress default"
135
  msgstr "Opció per defecte de Wordpress"
136
 
137
- #: include/admin-filters.php:1114 include/admin.php:306
138
  msgid "Settings"
139
  msgstr "Paràmetres"
140
 
141
- #: include/admin-filters.php:1120
142
  msgid "Upgrading language files&#8230;"
143
  msgstr "S'estan actualitzant els arxius d'idioma&#8230;"
144
 
145
- #: include/admin.php:22
146
  msgid "About Polylang"
147
  msgstr "Sobre Polylang"
148
 
149
- #: include/admin.php:27 include/list-table.php:82
150
  msgid "Strings translations"
151
  msgstr "Traduccions de cadenes"
152
 
153
- #: include/admin.php:305 include/list-table.php:81
154
  msgid "Strings translation"
155
  msgstr "Traducció de cadenes"
156
 
157
- #: include/admin.php:345
158
- msgid "Enter a valid WorPress locale"
159
  msgstr "Introdueix un codi d'idioma i regió vàlid de WordPress"
160
 
161
- #: include/admin.php:346
162
- msgid "The language code must be 2 characters long"
163
- msgstr "El codi d'idioma ha de ser de 2 caràcters"
164
-
165
- #: include/admin.php:328
166
  msgid "The language code must be unique"
167
  msgstr "El codi d'idioma ha de ser únic"
168
 
169
- #: include/admin.php:329
170
  msgid "The language must have a name"
171
  msgstr "L'idioma ha de tenir un nom"
172
 
173
- #: include/admin.php:330
174
  msgid ""
175
  "The language was created, but the WordPress language file was not "
176
  "downloaded. Please install it manually."
@@ -178,92 +172,92 @@ msgstr ""
178
  "S'ha creat l'idioma, però l'arxiu d'aquest idioma de WordPress no s'ha "
179
  "descarregat. Si us plau, instal·la'l manualment."
180
 
181
- #: include/admin.php:449
182
  msgid "Widget title"
183
  msgstr "Títol del widget"
184
 
185
  # @ polylang
186
- #: include/base.php:368
187
  msgid "Taxonomies"
188
  msgstr "Taxonomies"
189
 
190
  # @ polylang
191
- #: include/base.php:369
192
  msgid "Custom fields"
193
  msgstr "Camps personalitzats"
194
 
195
  # @ polylang
196
- #: include/base.php:370
197
  msgid "Comment status"
198
  msgstr "Estat del comentari"
199
 
200
  # @ polylang
201
- #: include/base.php:371
202
  msgid "Ping status"
203
  msgstr "Estat dels pings"
204
 
205
  # @ polylang
206
- #: include/base.php:372
207
  msgid "Sticky posts"
208
  msgstr "Entrades adherides (sticky)"
209
 
210
  # @ polylang
211
- #: include/base.php:373
212
  msgid "Published date"
213
  msgstr "Data de publicació"
214
 
215
  # @ polylang
216
- #: include/base.php:374
217
  msgid "Post format"
218
  msgstr "Format de l'entrada"
219
 
220
- #: include/base.php:375
221
  msgid "Page parent"
222
  msgstr "Pàgina mare"
223
 
224
  # @ polylang
225
- #: include/base.php:376
226
  msgid "Page template"
227
  msgstr "Plantilla de la pàgina"
228
 
229
- #: include/base.php:377
230
  msgid "Page order"
231
  msgstr "Ordre de la pàgina"
232
 
233
  # @ polylang
234
- #: include/base.php:378
235
  msgid "Featured image"
236
  msgstr "Imatge destacada"
237
 
238
- #: include/languages-form.php:42
239
  msgid "Edit language"
240
  msgstr "Edita idioma"
241
 
242
- #: include/languages-form.php:42 include/languages-form.php:123
243
  msgid "Add new language"
244
  msgstr "Afegeix idioma"
245
 
246
- #: include/languages-form.php:64
247
  msgid "Choose a language"
248
  msgstr "Tria idioma"
249
 
250
- #: include/languages-form.php:78
251
  msgid "You can choose a language in the list or directly edit it below."
252
  msgstr "Pots triar un idioma de la llista o editar-lo directament a sota"
253
 
254
- #: include/languages-form.php:82 include/list-table.php:34
255
  msgid "Full name"
256
  msgstr "Nom complet"
257
 
258
- #: include/languages-form.php:84
259
  msgid "The name is how it is displayed on your site (for example: English)."
260
  msgstr "El nom és el que apareix al teu lloc web (per exemple: català)"
261
 
262
- #: include/languages-form.php:88 include/list-table.php:35
263
  msgid "Locale"
264
  msgstr "Codi d'idioma i regió (locale)"
265
 
266
- #: include/languages-form.php:93
267
  msgid ""
268
  "Wordpress Locale for the language (for example: en_US). You will need to "
269
  "install the .mo file for this language."
@@ -271,56 +265,57 @@ msgstr ""
271
  "Codi d'idioma i regió de Wordpress (per exemple: ca_ES). Hauràs d'instal·lar "
272
  "l'arxiu .mo per a aquest idioma"
273
 
274
- #: include/languages-form.php:97
275
  msgid "Language code"
276
  msgstr "Codi d'idioma"
277
 
278
- #: include/languages-form.php:99
279
  msgid "2-letters ISO 639-1 language code (for example: en)"
280
  msgstr "Codi d'idioma ISO 639-1 de 2 lletres (per exemple: ca)"
281
 
282
- #: include/languages-form.php:103
283
  msgid "Text direction"
284
  msgstr "Direcció del text"
285
 
286
- #: include/languages-form.php:107
287
  msgid "left to right"
288
  msgstr "d'esquerra a dreta"
289
 
290
- #: include/languages-form.php:112
291
  msgid "right to left"
292
  msgstr "de dreta a esquerra"
293
 
294
- #: include/languages-form.php:114
295
  msgid "Choose the text direction for the language"
296
  msgstr "Tria la direcció del text de l'idioma "
297
 
298
- #: include/languages-form.php:118 include/list-table.php:37
299
  msgid "Order"
300
  msgstr "Ordre"
301
 
302
- #: include/languages-form.php:120
303
  msgid "Position of the language in the language switcher"
304
  msgstr "Posició al selector d'idioma"
305
 
306
- #: include/nav-menu.php:28 include/nav-menu.php:51 include/nav-menu.php:54
307
- #: include/nav-menu.php:82 include/nav-menu.php:106 polylang.php:302
 
308
  msgid "Language switcher"
309
  msgstr "Selector d'idioma"
310
 
311
- #: include/languages-form.php:148
312
  msgid "Search translations"
313
  msgstr "Cerca traduccions"
314
 
315
- #: include/languages-form.php:151
316
  msgid "Clean strings translation database"
317
  msgstr "Neteja la base de dades de traduccions de cadenes"
318
 
319
- #: include/languages-form.php:167
320
  msgid "Default language"
321
  msgstr "Idioma predeterminat"
322
 
323
- #: include/languages-form.php:179
324
  msgid ""
325
  "There are posts, pages, categories or tags without language set. Do you want "
326
  "to set them all to default language ?"
@@ -328,11 +323,11 @@ msgstr ""
328
  "Hi ha entrades, pàgines, categories o etiquetes sense idioma establert. Per "
329
  "establir-hi l'idioma predeterminat, marca aquesta casella."
330
 
331
- #: include/languages-form.php:187
332
  msgid "Detect browser language"
333
  msgstr "Detecta l'idioma del navegador"
334
 
335
- #: include/languages-form.php:193
336
  msgid ""
337
  "When the front page is visited, set the language according to the browser "
338
  "preference"
@@ -340,11 +335,11 @@ msgstr ""
340
  "Estableix l'idioma d'acord amb les preferències del navegador quan es visita "
341
  "la pàgina principal"
342
 
343
- #: include/languages-form.php:200
344
  msgid "URL modifications"
345
  msgstr "Modificacions d'URL"
346
 
347
- #: include/languages-form.php:206
348
  msgid ""
349
  "The language is set from content. Posts, pages, categories and tags urls are "
350
  "not modified."
@@ -352,27 +347,19 @@ msgstr ""
352
  "L'idioma s'estableix per al contingut. Les URL de les entrades, pàgines, "
353
  "categories i etiquetes no seran modificades"
354
 
355
- #: include/languages-form.php:214
356
- msgid ""
357
- "The language code, for example /en/, is added to all urls when using pretty "
358
- "permalinks."
359
- msgstr ""
360
- "El codi d'idioma, per exemple /ca/, s'afegeix a totes les URLs en fer "
361
- "enllaços permanents"
362
-
363
- #: include/languages-form.php:223
364
  msgid "Remove /language/ in pretty permalinks. Example:"
365
  msgstr "Treu /idioma/ als enllaços permanents amigables. Exemple:"
366
 
367
- #: include/languages-form.php:232
368
  msgid "Keep /language/ in pretty permalinks. Example:"
369
  msgstr "Mantén /idioma/ als enllaços permanents amigables: Exemple:"
370
 
371
- #: include/languages-form.php:241
372
  msgid "Hide URL language information for default language"
373
  msgstr "Oculta la informació d'idioma de l'URL a l'idioma predeterminat"
374
 
375
- #: include/languages-form.php:251
376
  #, php-format
377
  msgid ""
378
  "When using static front page, redirect the language page (example: %s) to "
@@ -382,109 +369,109 @@ msgstr ""
382
  "(per exemple: %s) a la pàgina d'inici en l'idioma correcte"
383
 
384
  # @ polylang
385
- #: include/languages-form.php:260
386
  msgid "Media"
387
  msgstr "Mitjans"
388
 
389
  # @ polylang
390
- #: include/languages-form.php:266
391
  msgid "Activate languages and translations for media"
392
  msgstr "Activa idiomes i traduccions per als mitjans"
393
 
394
- #: include/languages-form.php:273
395
  msgid "Synchronization"
396
  msgstr "Sincronització"
397
 
398
  # @ polylang
399
- #: include/languages-form.php:287
400
  msgid "Custom post types"
401
  msgstr "Tipus d'entrada personalitzats"
402
 
403
  # @ polylang
404
- #: include/languages-form.php:300
405
  msgid "Activate languages and translations for custom post types."
406
  msgstr "Activa idiomes i traduccions per a tipus d'entrada personalitzats."
407
 
408
  # @ polylang
409
- #: include/languages-form.php:307
410
  msgid "Custom taxonomies"
411
  msgstr "Taxonomies personalitzades"
412
 
413
  # @ polylang
414
- #: include/languages-form.php:320
415
  msgid "Activate languages and translations for custom taxonomies."
416
  msgstr "Activa idiomes i traduccions per a taxonomies personalitzades."
417
 
418
- #: include/list-table.php:26 include/media-translations.php:22
419
- #: include/media-translations.php:60 include/post-translations.php:10
420
- #: include/post-translations.php:33 include/term-translations.php:18
421
- #: include/term-translations.php:80
422
  msgid "Edit"
423
  msgstr "Edita"
424
 
425
- #: include/list-table.php:27 include/list-table.php:162
426
  msgid "Delete"
427
  msgstr "Elimina"
428
 
429
- #: include/list-table.php:36
430
  msgid "Code"
431
  msgstr "Codi"
432
 
433
- #: include/list-table.php:38
434
  msgid "Flag"
435
  msgstr "Bandera"
436
 
437
- #: include/list-table.php:39
438
  msgid "Posts"
439
  msgstr "Entrades"
440
 
441
- #: include/list-table.php:125
442
  msgid "Name"
443
  msgstr "Nom"
444
 
445
- #: include/list-table.php:126
446
  msgid "String"
447
  msgstr "Cadena"
448
 
449
- #: include/media-translations.php:6 include/media-translations.php:44
450
- #: include/term-translations.php:16
451
  msgid "Translation"
452
  msgstr "Traducció"
453
 
454
- #: include/media-translations.php:31 include/media-translations.php:68
455
- #: include/post-translations.php:38 include/term-translations.php:60
456
  msgid "Add new"
457
  msgstr "Afegeix"
458
 
459
- #: include/post-translations.php:5
460
  msgid "ID of pages in other languages:"
461
  msgstr "ID de pàgines en altres idiomes:"
462
 
463
- #: include/post-translations.php:5
464
  msgid "ID of posts in other languages:"
465
  msgstr "ID d'entrades en altres idiomes:"
466
 
467
- #: include/post-translations.php:9
468
  msgid "Page ID"
469
  msgstr "ID de pàgina"
470
 
471
- #: include/post-translations.php:9
472
  msgid "Post ID"
473
  msgstr "ID d'entrada"
474
 
475
- #: include/term-translations.php:48
476
  msgid "No untranslated term"
477
  msgstr "No hi ha termes sense traduir"
478
 
479
- #: include/widget.php:6
480
  msgid "Language Switcher"
481
  msgstr "Selector d'idioma"
482
 
483
- #: include/widget.php:6
484
  msgid "Displays a language switcher"
485
  msgstr "Mostra un selector d'idioma"
486
 
487
- #: include/widget.php:69
488
  msgid "Title:"
489
  msgstr "Títol:"
490
 
@@ -494,20 +481,15 @@ msgstr "Títol:"
494
  msgid "Adds multilingual capability to WordPress"
495
  msgstr "Afegeix capacitat multilingüística a Wordpress"
496
 
497
- #: polylang.php:133
498
  #, php-format
499
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
500
  msgstr ""
501
  "Estàs fent servir WordPress %s. Polylang requereix, com a mínim, WordPress "
502
  "%s."
503
 
504
- #: polylang.php:174
505
- msgid "For some reasons, Polylang could not create a table in your database."
506
- msgstr ""
507
- "Per alguna raó, Polylang no ha pogut crear una taula a la teva base de dades."
508
-
509
  # @ polylang
510
- #: polylang.php:235
511
  msgid ""
512
  "Polylang has been deactivated because you upgraded from a too old version."
513
  msgstr ""
@@ -515,21 +497,83 @@ msgstr ""
515
  "antiga."
516
 
517
  # @ polylang
518
- #: polylang.php:237
519
  #, php-format
520
  msgid "Please upgrade first to %s before ugrading to %s."
521
  msgstr "Actualitza'l primer a %s abans d'actualizar-lo a %s."
522
 
523
  # @ polylang
524
- #: include/list-table.php:124
525
  msgid "Group"
526
  msgstr "Grup"
527
 
528
  # @ polylang
529
- #: include/list-table.php:173
530
  msgid "View all groups"
531
  msgstr "Mostra tots els grups"
532
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
533
  #~ msgid "Displays a language switcher at the end of the menu"
534
  #~ msgstr "Mostra un selector d'idioma al final del menú"
535
 
2
  msgstr ""
3
  "Project-Id-Version: polylang\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: \n"
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: Núria Martínez Berenguer <nuria.trad@gmail.com>\n"
8
  "Language-Team: \n"
17
  "X-Poedit-SearchPath-0: ..\n"
18
  "X-Poedit-SearchPath-1: ../include\n"
19
 
20
+ #: admin/view-about.php:3
21
  #, php-format
22
  msgid ""
23
  "Polylang is provided with an extensive %sdocumentation%s (in English only). "
30
  "diari, una pàgina de preguntes freqüents, així com informació per tal que "
31
  "els programadors puguin adaptar-ne els plugins i temes."
32
 
33
+ #: admin/view-about.php:9
34
  #, php-format
35
  msgid ""
36
  "You will also find useful information in the %ssupport forum%s. However "
39
  "També trobaràs informació d'interès als %sfòrums de suport%s. Però abans de "
40
  "crear un nou tema, no oblidis fer-ne una cerca."
41
 
42
+ #: admin/view-about.php:16
43
  #, php-format
44
  msgid ""
45
  "Polylang is free of charge and is released under the same license as "
48
  "Polylang és gratuit i es distribueix sota la mateixa llicència que "
49
  "WordPress, %sGPL%s."
50
 
51
+ #: admin/view-about.php:22
52
  #, php-format
53
  msgid "If you wonder how you can help the project, just %sread this%s."
54
  msgstr "Si vols saber com ajudar al projecte, llegeix %saixò%s."
55
 
56
+ #: admin/view-about.php:27
57
  msgid ""
58
  "Finally if you like this plugin or if it helps your business, donations to "
59
  "the author are greatly appreciated."
61
  "Finalment, si t'agrada aquest plugin i el trobes útil per al teu negoci, "
62
  "pots fer-ne un donatiu. L'autor t'ho agrairà enormement."
63
 
64
+ #: admin/admin-filters-post.php:76 admin/admin.php:83 admin/admin.php:187
65
+ #: admin/settings.php:42 admin/settings.php:57 include/model.php:490
 
66
  msgid "Languages"
67
  msgstr "Idiomes"
68
 
69
+ #: include/switcher.php:22
70
  msgid "Displays language names"
71
  msgstr "Mostra els noms dels idiomes"
72
 
73
+ #: include/switcher.php:23
74
  msgid "Displays flags"
75
  msgstr "Mostra les banderes"
76
 
77
+ #: include/switcher.php:24
78
  msgid "Forces link to front page"
79
  msgstr "Força un enllaç cap a la pàgina principal"
80
 
81
+ #: include/switcher.php:25
82
  msgid "Hides the current language"
83
  msgstr "Oculta l'idioma actual"
84
 
85
+ #: include/switcher.php:29
86
  msgid "Displays as dropdown"
87
  msgstr "Mostra com a menú desplegable"
88
 
89
+ #: admin/admin.php:188
90
  msgid "Filters content by language"
91
+ msgstr "Filters content by language"
92
 
93
+ #: admin/admin.php:183
94
  msgid "Show all languages"
95
  msgstr "Mostra tots els idiomes"
96
 
97
+ #: admin/admin-filters-columns.php:126 admin/admin-filters-columns.php:215
98
  msgid "Add new translation"
99
  msgstr "Afegeix traducció nova"
100
 
101
+ #: admin/admin-filters-columns.php:163 admin/admin-filters-media.php:58
102
+ #: admin/admin-filters-post.php:109 admin/admin-filters-term.php:72
103
+ #: admin/admin-filters-term.php:106 admin/view-translations-media.php:7
104
+ #: admin/view-translations-media.php:45 admin/view-translations-post.php:8
105
+ #: admin/view-translations-term.php:15 include/model.php:491
 
106
  msgid "Language"
107
  msgstr "Idioma"
108
 
109
+ #: admin/admin-filters-media.php:73 admin/admin-filters-media.php:112
110
+ #: admin/table-string.php:111 admin/view-translations-media.php:42
111
+ #: admin/view-translations-term.php:6 admin/view-translations-term.php:11
112
  msgid "Translations"
113
  msgstr "Traduccions"
114
 
115
+ #: admin/admin-filters-term.php:74 admin/admin-filters-term.php:108
116
  msgid "Sets the language"
117
  msgstr "Estableix l'idioma"
118
 
119
+ #: admin/admin-filters.php:60
120
  msgid "The widget is displayed for:"
121
  msgstr "El widget es mostra per a:"
122
 
123
+ #: admin/admin-filters.php:63 include/model.php:492
124
  msgid "All languages"
125
  msgstr "Tots els idiomes"
126
 
127
+ #: admin/admin-filters.php:120
128
  msgid "Admin language"
129
  msgstr "Idioma de l'administrador"
130
 
131
+ #: admin/admin-filters.php:123
132
  msgid "Wordpress default"
133
  msgstr "Opció per defecte de Wordpress"
134
 
135
+ #: admin/admin.php:123 admin/settings.php:62
136
  msgid "Settings"
137
  msgstr "Paràmetres"
138
 
139
+ #: admin/admin-filters.php:151
140
  msgid "Upgrading language files&#8230;"
141
  msgstr "S'estan actualitzant els arxius d'idioma&#8230;"
142
 
143
+ #: admin/settings.php:38
144
  msgid "About Polylang"
145
  msgstr "Sobre Polylang"
146
 
147
+ #: admin/settings.php:46
148
  msgid "Strings translations"
149
  msgstr "Traduccions de cadenes"
150
 
151
+ #: admin/settings.php:61
152
  msgid "Strings translation"
153
  msgstr "Traducció de cadenes"
154
 
155
+ #: admin/settings.php:74
156
+ msgid "Enter a valid WordPress locale"
157
  msgstr "Introdueix un codi d'idioma i regió vàlid de WordPress"
158
 
159
+ #: admin/settings.php:76
 
 
 
 
160
  msgid "The language code must be unique"
161
  msgstr "El codi d'idioma ha de ser únic"
162
 
163
+ #: admin/settings.php:77
164
  msgid "The language must have a name"
165
  msgstr "L'idioma ha de tenir un nom"
166
 
167
+ #: admin/settings.php:78
168
  msgid ""
169
  "The language was created, but the WordPress language file was not "
170
  "downloaded. Please install it manually."
172
  "S'ha creat l'idioma, però l'arxiu d'aquest idioma de WordPress no s'ha "
173
  "descarregat. Si us plau, instal·la'l manualment."
174
 
175
+ #: admin/settings.php:305
176
  msgid "Widget title"
177
  msgstr "Títol del widget"
178
 
179
  # @ polylang
180
+ #: admin/settings.php:323
181
  msgid "Taxonomies"
182
  msgstr "Taxonomies"
183
 
184
  # @ polylang
185
+ #: admin/settings.php:324
186
  msgid "Custom fields"
187
  msgstr "Camps personalitzats"
188
 
189
  # @ polylang
190
+ #: admin/settings.php:325
191
  msgid "Comment status"
192
  msgstr "Estat del comentari"
193
 
194
  # @ polylang
195
+ #: admin/settings.php:326
196
  msgid "Ping status"
197
  msgstr "Estat dels pings"
198
 
199
  # @ polylang
200
+ #: admin/settings.php:327
201
  msgid "Sticky posts"
202
  msgstr "Entrades adherides (sticky)"
203
 
204
  # @ polylang
205
+ #: admin/settings.php:328
206
  msgid "Published date"
207
  msgstr "Data de publicació"
208
 
209
  # @ polylang
210
+ #: admin/settings.php:329
211
  msgid "Post format"
212
  msgstr "Format de l'entrada"
213
 
214
+ #: admin/settings.php:330
215
  msgid "Page parent"
216
  msgstr "Pàgina mare"
217
 
218
  # @ polylang
219
+ #: admin/settings.php:331
220
  msgid "Page template"
221
  msgstr "Plantilla de la pàgina"
222
 
223
+ #: admin/settings.php:332
224
  msgid "Page order"
225
  msgstr "Ordre de la pàgina"
226
 
227
  # @ polylang
228
+ #: admin/settings.php:333
229
  msgid "Featured image"
230
  msgstr "Imatge destacada"
231
 
232
+ #: admin/view-languages.php:42
233
  msgid "Edit language"
234
  msgstr "Edita idioma"
235
 
236
+ #: admin/view-languages.php:42 admin/view-languages.php:117
237
  msgid "Add new language"
238
  msgstr "Afegeix idioma"
239
 
240
+ #: admin/view-languages.php:58
241
  msgid "Choose a language"
242
  msgstr "Tria idioma"
243
 
244
+ #: admin/view-languages.php:72
245
  msgid "You can choose a language in the list or directly edit it below."
246
  msgstr "Pots triar un idioma de la llista o editar-lo directament a sota"
247
 
248
+ #: admin/table-languages.php:74 admin/view-languages.php:76
249
  msgid "Full name"
250
  msgstr "Nom complet"
251
 
252
+ #: admin/view-languages.php:78
253
  msgid "The name is how it is displayed on your site (for example: English)."
254
  msgstr "El nom és el que apareix al teu lloc web (per exemple: català)"
255
 
256
+ #: admin/table-languages.php:75 admin/view-languages.php:82
257
  msgid "Locale"
258
  msgstr "Codi d'idioma i regió (locale)"
259
 
260
+ #: admin/view-languages.php:87
261
  msgid ""
262
  "Wordpress Locale for the language (for example: en_US). You will need to "
263
  "install the .mo file for this language."
265
  "Codi d'idioma i regió de Wordpress (per exemple: ca_ES). Hauràs d'instal·lar "
266
  "l'arxiu .mo per a aquest idioma"
267
 
268
+ #: admin/view-languages.php:91
269
  msgid "Language code"
270
  msgstr "Codi d'idioma"
271
 
272
+ #: admin/view-languages.php:93
273
  msgid "2-letters ISO 639-1 language code (for example: en)"
274
  msgstr "Codi d'idioma ISO 639-1 de 2 lletres (per exemple: ca)"
275
 
276
+ #: admin/view-languages.php:97
277
  msgid "Text direction"
278
  msgstr "Direcció del text"
279
 
280
+ #: admin/view-languages.php:101
281
  msgid "left to right"
282
  msgstr "d'esquerra a dreta"
283
 
284
+ #: admin/view-languages.php:106
285
  msgid "right to left"
286
  msgstr "de dreta a esquerra"
287
 
288
+ #: admin/view-languages.php:108
289
  msgid "Choose the text direction for the language"
290
  msgstr "Tria la direcció del text de l'idioma "
291
 
292
+ #: admin/table-languages.php:77 admin/view-languages.php:112
293
  msgid "Order"
294
  msgstr "Ordre"
295
 
296
+ #: admin/view-languages.php:114
297
  msgid "Position of the language in the language switcher"
298
  msgstr "Posició al selector d'idioma"
299
 
300
+ #: admin/admin-nav-menu.php:51 admin/admin-nav-menu.php:79
301
+ #: admin/admin-nav-menu.php:82 admin/admin-nav-menu.php:113
302
+ #: admin/admin-nav-menu.php:170 include/upgrade.php:175
303
  msgid "Language switcher"
304
  msgstr "Selector d'idioma"
305
 
306
+ #: admin/view-languages.php:143
307
  msgid "Search translations"
308
  msgstr "Cerca traduccions"
309
 
310
+ #: admin/view-languages.php:146
311
  msgid "Clean strings translation database"
312
  msgstr "Neteja la base de dades de traduccions de cadenes"
313
 
314
+ #: admin/view-languages.php:164
315
  msgid "Default language"
316
  msgstr "Idioma predeterminat"
317
 
318
+ #: admin/view-languages.php:179
319
  msgid ""
320
  "There are posts, pages, categories or tags without language set. Do you want "
321
  "to set them all to default language ?"
323
  "Hi ha entrades, pàgines, categories o etiquetes sense idioma establert. Per "
324
  "establir-hi l'idioma predeterminat, marca aquesta casella."
325
 
326
+ #: admin/view-languages.php:187
327
  msgid "Detect browser language"
328
  msgstr "Detecta l'idioma del navegador"
329
 
330
+ #: admin/view-languages.php:193
331
  msgid ""
332
  "When the front page is visited, set the language according to the browser "
333
  "preference"
335
  "Estableix l'idioma d'acord amb les preferències del navegador quan es visita "
336
  "la pàgina principal"
337
 
338
+ #: admin/view-languages.php:200
339
  msgid "URL modifications"
340
  msgstr "Modificacions d'URL"
341
 
342
+ #: admin/view-languages.php:206
343
  msgid ""
344
  "The language is set from content. Posts, pages, categories and tags urls are "
345
  "not modified."
347
  "L'idioma s'estableix per al contingut. Les URL de les entrades, pàgines, "
348
  "categories i etiquetes no seran modificades"
349
 
350
+ #: admin/view-languages.php:253
 
 
 
 
 
 
 
 
351
  msgid "Remove /language/ in pretty permalinks. Example:"
352
  msgstr "Treu /idioma/ als enllaços permanents amigables. Exemple:"
353
 
354
+ #: admin/view-languages.php:262
355
  msgid "Keep /language/ in pretty permalinks. Example:"
356
  msgstr "Mantén /idioma/ als enllaços permanents amigables: Exemple:"
357
 
358
+ #: admin/view-languages.php:271
359
  msgid "Hide URL language information for default language"
360
  msgstr "Oculta la informació d'idioma de l'URL a l'idioma predeterminat"
361
 
362
+ #: admin/view-languages.php:281
363
  #, php-format
364
  msgid ""
365
  "When using static front page, redirect the language page (example: %s) to "
369
  "(per exemple: %s) a la pàgina d'inici en l'idioma correcte"
370
 
371
  # @ polylang
372
+ #: admin/view-languages.php:290
373
  msgid "Media"
374
  msgstr "Mitjans"
375
 
376
  # @ polylang
377
+ #: admin/view-languages.php:296
378
  msgid "Activate languages and translations for media"
379
  msgstr "Activa idiomes i traduccions per als mitjans"
380
 
381
+ #: admin/view-languages.php:303
382
  msgid "Synchronization"
383
  msgstr "Sincronització"
384
 
385
  # @ polylang
386
+ #: admin/view-languages.php:320
387
  msgid "Custom post types"
388
  msgstr "Tipus d'entrada personalitzats"
389
 
390
  # @ polylang
391
+ #: admin/view-languages.php:333
392
  msgid "Activate languages and translations for custom post types."
393
  msgstr "Activa idiomes i traduccions per a tipus d'entrada personalitzats."
394
 
395
  # @ polylang
396
+ #: admin/view-languages.php:340
397
  msgid "Custom taxonomies"
398
  msgstr "Taxonomies personalitzades"
399
 
400
  # @ polylang
401
+ #: admin/view-languages.php:353
402
  msgid "Activate languages and translations for custom taxonomies."
403
  msgstr "Activa idiomes i traduccions per a taxonomies personalitzades."
404
 
405
+ #: admin/table-languages.php:54 admin/view-translations-media.php:24
406
+ #: admin/view-translations-media.php:62 admin/view-translations-post.php:10
407
+ #: admin/view-translations-post.php:33 admin/view-translations-term.php:18
408
+ #: admin/view-translations-term.php:80
409
  msgid "Edit"
410
  msgstr "Edita"
411
 
412
+ #: admin/table-languages.php:60 admin/table-string.php:167
413
  msgid "Delete"
414
  msgstr "Elimina"
415
 
416
+ #: admin/table-languages.php:76
417
  msgid "Code"
418
  msgstr "Codi"
419
 
420
+ #: admin/table-languages.php:78
421
  msgid "Flag"
422
  msgstr "Bandera"
423
 
424
+ #: admin/table-languages.php:79
425
  msgid "Posts"
426
  msgstr "Entrades"
427
 
428
+ #: admin/table-string.php:109
429
  msgid "Name"
430
  msgstr "Nom"
431
 
432
+ #: admin/table-string.php:110
433
  msgid "String"
434
  msgstr "Cadena"
435
 
436
+ #: admin/view-translations-media.php:8 admin/view-translations-media.php:46
437
+ #: admin/view-translations-term.php:16
438
  msgid "Translation"
439
  msgstr "Traducció"
440
 
441
+ #: admin/view-translations-media.php:33 admin/view-translations-media.php:70
442
+ #: admin/view-translations-post.php:38 admin/view-translations-term.php:60
443
  msgid "Add new"
444
  msgstr "Afegeix"
445
 
446
+ #: admin/view-translations-post.php:5
447
  msgid "ID of pages in other languages:"
448
  msgstr "ID de pàgines en altres idiomes:"
449
 
450
+ #: admin/view-translations-post.php:5
451
  msgid "ID of posts in other languages:"
452
  msgstr "ID d'entrades en altres idiomes:"
453
 
454
+ #: admin/view-translations-post.php:9
455
  msgid "Page ID"
456
  msgstr "ID de pàgina"
457
 
458
+ #: admin/view-translations-post.php:9
459
  msgid "Post ID"
460
  msgstr "ID d'entrada"
461
 
462
+ #: admin/view-translations-term.php:48
463
  msgid "No untranslated term"
464
  msgstr "No hi ha termes sense traduir"
465
 
466
+ #: include/widget-languages.php:16
467
  msgid "Language Switcher"
468
  msgstr "Selector d'idioma"
469
 
470
+ #: include/widget-languages.php:16
471
  msgid "Displays a language switcher"
472
  msgstr "Mostra un selector d'idioma"
473
 
474
+ #: include/widget-languages.php:100
475
  msgid "Title:"
476
  msgstr "Títol:"
477
 
481
  msgid "Adds multilingual capability to WordPress"
482
  msgstr "Afegeix capacitat multilingüística a Wordpress"
483
 
484
+ #: polylang.php:157
485
  #, php-format
486
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
487
  msgstr ""
488
  "Estàs fent servir WordPress %s. Polylang requereix, com a mínim, WordPress "
489
  "%s."
490
 
 
 
 
 
 
491
  # @ polylang
492
+ #: include/upgrade.php:75
493
  msgid ""
494
  "Polylang has been deactivated because you upgraded from a too old version."
495
  msgstr ""
497
  "antiga."
498
 
499
  # @ polylang
500
+ #: include/upgrade.php:77
501
  #, php-format
502
  msgid "Please upgrade first to %s before ugrading to %s."
503
  msgstr "Actualitza'l primer a %s abans d'actualizar-lo a %s."
504
 
505
  # @ polylang
506
+ #: admin/table-string.php:108
507
  msgid "Group"
508
  msgstr "Grup"
509
 
510
  # @ polylang
511
+ #: admin/table-string.php:186
512
  msgid "View all groups"
513
  msgstr "Mostra tots els grups"
514
 
515
+ # @ polylang
516
+ #: admin/table-languages.php:59
517
+ msgid "You are about to permanently delete this language. Are you sure?"
518
+ msgstr ""
519
+ "Estàs a punt d'esborrar aquest idioma de manera permanent. N'estàs segur?"
520
+
521
+ # @ polylang
522
+ #: admin/view-languages.php:147
523
+ msgid ""
524
+ "Use this to remove unused strings from database, for example after a plugin "
525
+ "has been uninstalled."
526
+ msgstr ""
527
+ "Fes servir aquesta opció per treure de la base de dades cadenes que no es "
528
+ "fan servir, per exemple, després de desinstal·lar un plugin."
529
+
530
+ #: admin/view-languages.php:214
531
+ msgid ""
532
+ "The language is set from the directory name in pretty permalinks. Example:"
533
+ msgstr ""
534
+ "L'idioma s'extreu del nom del directori dels enllaços permanents amigables. "
535
+ "Exemple:"
536
+
537
+ #: admin/view-languages.php:223
538
+ msgid ""
539
+ "The language is set from the subdomain name in pretty permalinks. Example:"
540
+ msgstr ""
541
+ "L'idioma s'extreu del nom del subdomini dels enllaços permanents amigables. "
542
+ "Exemple:"
543
+
544
+ # @ polylang
545
+ #: admin/view-languages.php:314
546
+ msgid ""
547
+ "The synchronization options allow to maintain exact same values (or "
548
+ "translations in the case of taxonomies and page parent) of meta content "
549
+ "between the translations of a post or page."
550
+ msgstr ""
551
+ "Les opcions de sincronització permeten mantenir exactament els mateixos "
552
+ "valors (o traduccions en cas de taxonomies y pàgines mare) de contingut meta "
553
+ "entre les traduccions d'una entrada o pàgina."
554
+
555
+ #: admin/settings.php:75
556
+ msgid "The language code contains invalid characters"
557
+ msgstr "El codi d'idioma conté caràcters invàlids."
558
+
559
+ # @ polylang
560
+ #: admin/view-languages.php:232
561
+ msgid "The language is set from different domains:"
562
+ msgstr "L'idioma s'extreu a partir dels diversos dominis:"
563
+
564
+ #~ msgid ""
565
+ #~ "The language code, for example /en/, is added to all urls when using "
566
+ #~ "pretty permalinks."
567
+ #~ msgstr ""
568
+ #~ "El codi d'idioma, per exemple /ca/, s'afegeix a totes les URLs en fer "
569
+ #~ "enllaços permanents"
570
+
571
+ #~ msgid ""
572
+ #~ "For some reasons, Polylang could not create a table in your database."
573
+ #~ msgstr ""
574
+ #~ "Per alguna raó, Polylang no ha pogut crear una taula a la teva base de "
575
+ #~ "dades."
576
+
577
  #~ msgid "Displays a language switcher at the end of the menu"
578
  #~ msgstr "Mostra un selector d'idioma al final del menú"
579
 
languages/polylang-da_DK.mo CHANGED
Binary file
languages/polylang-da_DK.po CHANGED
@@ -6,470 +6,472 @@ msgstr ""
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: Patrick Hesselberg <Super-patzen@live.dk>\n"
8
  "Language-Team: \n"
9
- "Language: \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-Poedit-SearchPath-0: ..\n"
18
  "X-Poedit-SearchPath-1: ../include\n"
19
 
20
- #: include/about.php:3
21
  #, php-format
22
- 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."
23
- msgstr "Polylang er forsynet med en omfattende %sdocumentation%s (kun Engelsk). Den informerer om, hvordan du opsætter dit flersprogede site og hvordan du bruger det på et daglig basis, en FAQ, samt en dokumentation for programmører til at bruge det i deres plugins og temaer."
 
 
 
 
 
 
 
 
24
 
25
- #: include/about.php:9
26
  #, php-format
27
- 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."
28
- msgstr "Du vil også finde brugbar information i %ssupport forum%s. Men glem ikke at lave en søgning, før du opretter et nyt emne."
 
 
 
 
29
 
30
- #: include/about.php:16
31
  #, php-format
32
- msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
33
- msgstr "Polylang er gratis og frigivet under den samme licens som Wordpress, %sGPL%s."
 
 
 
34
 
35
- #: include/about.php:22
36
  #, php-format
37
  msgid "If you wonder how you can help the project, just %sread this%s."
38
- msgstr "Hvis du tænker over, hvordan du kan hjælpe dette projekt, %slæs dette%s."
39
-
40
- #: include/about.php:27
41
- msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
42
- msgstr "Endelig, hvis du kan lide dette plugin, eller hjælper din virksomhed, er donationer til forfatteren meget værdsat."
43
-
44
- #: include/admin-base.php:55
45
- #: include/admin-base.php:190
46
- #: include/admin-filters.php:243
47
- #: include/admin.php:23
48
- #: include/admin.php:301
49
- #: include/list-table.php:13
50
- #: polylang.php:339
51
  msgid "Languages"
52
  msgstr "Sprog"
53
 
54
- #: include/admin-base.php:153
55
  msgid "Displays language names"
56
  msgstr "Vis sprog navne"
57
 
58
- #: include/admin-base.php:154
59
  msgid "Displays flags"
60
  msgstr "Vis flag"
61
 
62
- #: include/admin-base.php:155
63
  msgid "Forces link to front page"
64
  msgstr "Tvinger link til forsiden"
65
 
66
- #: include/admin-base.php:156
67
  msgid "Hides the current language"
68
  msgstr "Skjuler det nuværende sprog"
69
 
70
- #: include/admin-base.php:160
71
  msgid "Displays as dropdown"
72
  msgstr "Viser som dropdown"
73
 
74
- #: include/admin-base.php:191
75
  msgid "Filters content by language"
76
  msgstr "Filtrerer indhold efter sprog"
77
 
78
- #: include/admin-base.php:186
79
  msgid "Show all languages"
80
  msgstr "Vis alle sprog"
81
 
82
- #: include/admin-filters.php:181
83
- #: include/admin-filters.php:877
84
  msgid "Add new translation"
85
  msgstr "Tilføj ny oversættelse"
86
 
87
- #: include/admin-filters.php:209
88
- #: include/admin-filters.php:267
89
- #: include/admin-filters.php:601
90
- #: include/admin-filters.php:817
91
- #: include/admin-filters.php:835
92
- #: include/list-table.php:12
93
- #: include/media-translations.php:5
94
- #: include/media-translations.php:43
95
- #: include/post-translations.php:8
96
- #: include/term-translations.php:15
97
- #: polylang.php:340
98
  msgid "Language"
99
  msgstr "Sprog"
100
 
101
- #: include/admin-filters.php:616
102
- #: include/admin-filters.php:651
103
- #: include/list-table.php:127
104
- #: include/media-translations.php:40
105
- #: include/term-translations.php:6
106
- #: include/term-translations.php:11
107
  msgid "Translations"
108
  msgstr "Oversættelser"
109
 
110
- #: include/admin-filters.php:819
111
- #: include/admin-filters.php:838
112
  msgid "Sets the language"
113
  msgstr "Indstiller sproget"
114
 
115
- #: include/admin-filters.php:1053
116
  msgid "The widget is displayed for:"
117
  msgstr "Widget vises i:"
118
 
119
- #: include/admin-filters.php:1057
120
- #: polylang.php:341
121
  msgid "All languages"
122
  msgstr "Alle sprog"
123
 
124
- #: include/admin-filters.php:1080
125
  msgid "Admin language"
126
  msgstr "Administrator sprog"
127
 
128
- #: include/admin-filters.php:1085
129
  msgid "Wordpress default"
130
  msgstr "Wordpress standard"
131
 
132
- #: include/admin-filters.php:1114
133
- #: include/admin.php:306
134
  msgid "Settings"
135
  msgstr "Indstillinger"
136
 
137
- #: include/admin-filters.php:1120
138
  msgid "Upgrading language files&#8230;"
139
  msgstr "Opgradering sprogfiler files&#8230;"
140
 
141
- #: include/admin.php:22
142
  msgid "About Polylang"
143
  msgstr "Om Polylang"
144
 
145
- #: include/admin.php:27
146
- #: include/list-table.php:82
147
  msgid "Strings translations"
148
  msgstr "Strings oversættelser"
149
 
150
- #: include/admin.php:305
151
- #: include/list-table.php:81
152
  msgid "Strings translation"
153
  msgstr "Strings oversættelse"
154
 
155
- #: include/admin.php:345
156
- msgid "Enter a valid WorPress locale"
157
  msgstr "Indtast en gyldig Wordpress locale"
158
 
159
- #: include/admin.php:346
160
- msgid "The language code must be 2 characters long"
161
- msgstr "Sprogkoden skal være på 2 tegn"
162
-
163
- #: include/admin.php:328
164
  msgid "The language code must be unique"
165
  msgstr "Sprogkoden skal være unik"
166
 
167
- #: include/admin.php:329
168
  msgid "The language must have a name"
169
  msgstr "Sproget skal have et navn"
170
 
171
- #: include/admin.php:330
172
- msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
173
- msgstr "Sproget var oprettet, men WordPress sprogfilen blev ikke downloadet. Du skal installere den manuelt."
 
 
 
 
174
 
175
- #: include/admin.php:449
176
  msgid "Widget title"
177
  msgstr "Widget titel"
178
 
179
  # @ polylang
180
- #: include/base.php:368
181
  msgid "Taxonomies"
182
- msgstr ""
183
 
184
  # @ polylang
185
- #: include/base.php:369
186
  msgid "Custom fields"
187
- msgstr ""
188
 
189
  # @ polylang
190
- #: include/base.php:370
191
  msgid "Comment status"
192
- msgstr ""
193
 
194
  # @ polylang
195
- #: include/base.php:371
196
  msgid "Ping status"
197
- msgstr ""
198
 
199
  # @ polylang
200
- #: include/base.php:372
201
  msgid "Sticky posts"
202
- msgstr ""
203
 
204
  # @ polylang
205
- #: include/base.php:373
206
  msgid "Published date"
207
- msgstr ""
208
 
209
  # @ polylang
210
- #: include/base.php:374
211
  msgid "Post format"
212
- msgstr ""
213
 
214
- #: include/base.php:375
215
  msgid "Page parent"
216
- msgstr ""
217
 
218
  # @ polylang
219
- #: include/base.php:376
220
  msgid "Page template"
221
- msgstr ""
222
 
223
- #: include/base.php:377
224
  msgid "Page order"
225
- msgstr ""
226
 
227
  # @ polylang
228
- #: include/base.php:378
229
  msgid "Featured image"
230
- msgstr ""
231
 
232
- #: include/languages-form.php:42
233
  msgid "Edit language"
234
  msgstr "Rediger sprog"
235
 
236
- #: include/languages-form.php:42
237
- #: include/languages-form.php:123
238
  msgid "Add new language"
239
  msgstr "Tilføj nyt sprog"
240
 
241
- #: include/languages-form.php:64
242
  msgid "Choose a language"
243
  msgstr "Vælg sprog"
244
 
245
- #: include/languages-form.php:78
246
  msgid "You can choose a language in the list or directly edit it below."
247
  msgstr "Du kan vælge et sprog fra listen eller redigere det direkte nedenfor."
248
 
249
- #: include/languages-form.php:82
250
- #: include/list-table.php:34
251
  msgid "Full name"
252
  msgstr "Fulde navn"
253
 
254
- #: include/languages-form.php:84
255
  msgid "The name is how it is displayed on your site (for example: English)."
256
  msgstr "Navnet er hvordan det bliver vist på din side (for eksempel: Engelsk)."
257
 
258
- #: include/languages-form.php:88
259
- #: include/list-table.php:35
260
  msgid "Locale"
261
  msgstr "Landestandard"
262
 
263
- #: include/languages-form.php:93
264
- msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
265
- msgstr "Wordpress Landestandarden for sproget (for eksempel: da_DK). Du skal installere .mo filen til dette sprog."
 
 
 
 
266
 
267
- #: include/languages-form.php:97
268
  msgid "Language code"
269
  msgstr "Sprogkode"
270
 
271
- #: include/languages-form.php:99
272
  msgid "2-letters ISO 639-1 language code (for example: en)"
273
  msgstr "2 bogstaver ISO 639-1 sprogkode (for eksempel: da)"
274
 
275
- #: include/languages-form.php:103
276
  msgid "Text direction"
277
  msgstr "Tekst retning"
278
 
279
- #: include/languages-form.php:107
280
  msgid "left to right"
281
  msgstr "venstre til højre"
282
 
283
- #: include/languages-form.php:112
284
  msgid "right to left"
285
  msgstr "højre til venstre"
286
 
287
- #: include/languages-form.php:114
288
  msgid "Choose the text direction for the language"
289
  msgstr "Vælg en tekstretning for sproget"
290
 
291
- #: include/languages-form.php:118
292
- #: include/list-table.php:37
293
  msgid "Order"
294
  msgstr "Sorter"
295
 
296
- #: include/languages-form.php:120
297
  msgid "Position of the language in the language switcher"
298
  msgstr "Position af sproget i sprog skifteren"
299
 
300
- #: include/nav-menu.php:28
301
- #: include/nav-menu.php:51
302
- #: include/nav-menu.php:54
303
- #: include/nav-menu.php:82
304
- #: include/nav-menu.php:106
305
- #: polylang.php:302
306
  msgid "Language switcher"
307
  msgstr "Sprog skifter"
308
 
309
- #: include/languages-form.php:148
310
  msgid "Search translations"
311
- msgstr ""
312
 
313
- #: include/languages-form.php:151
314
  msgid "Clean strings translation database"
315
  msgstr "Rene strings database oversættelse"
316
 
317
- #: include/languages-form.php:167
318
  msgid "Default language"
319
  msgstr "Standard sprog"
320
 
321
- #: include/languages-form.php:179
322
- msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
323
- msgstr "Der er indlæg, sider, kategorier eller tags uden et valgt sprog. Vil du sætte dem til det standard sprog ?"
 
 
 
 
324
 
325
- #: include/languages-form.php:187
326
  msgid "Detect browser language"
327
  msgstr "Find browser sprog"
328
 
329
- #: include/languages-form.php:193
330
- msgid "When the front page is visited, set the language according to the browser preference"
331
- msgstr "Når forsiden vises, skal du indstille sprog i overensstemmelse med browseren præference"
 
 
 
 
332
 
333
- #: include/languages-form.php:200
334
  msgid "URL modifications"
335
  msgstr "URL ændringer"
336
 
337
- #: include/languages-form.php:206
338
- msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
339
- msgstr "Sproget er sat fra indholdet. Indlæg, sider, kategorier og tags url'er ændres ikke."
340
-
341
- #: include/languages-form.php:214
342
- msgid "The language code, for example /en/, is added to all urls when using pretty permalinks."
343
- msgstr "Sprogkoden, for eksempel /da/, bliver tilføjet til at url'er, når der bruges pæne permalinks."
344
 
345
- #: include/languages-form.php:223
346
  msgid "Remove /language/ in pretty permalinks. Example:"
347
  msgstr "Fjern /sprog/ i pæne permalinks. Eksempel:"
348
 
349
- #: include/languages-form.php:232
350
  msgid "Keep /language/ in pretty permalinks. Example:"
351
  msgstr "Hold /sprog/ i pæne permalinks. eksempel:"
352
 
353
- #: include/languages-form.php:241
354
  msgid "Hide URL language information for default language"
355
  msgstr "Skjul URL sprog information for standardsprog"
356
 
357
- #: include/languages-form.php:251
358
  #, php-format
359
- msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
360
- msgstr "Når der benyttes en statisk forside, omdiriger til sprogsiden (eksempel %s) til forsiden i det rigtige sprog."
 
 
 
 
361
 
362
  # @ polylang
363
- #: include/languages-form.php:260
364
  msgid "Media"
365
- msgstr ""
366
 
367
  # @ polylang
368
- #: include/languages-form.php:266
369
  msgid "Activate languages and translations for media"
370
- msgstr ""
371
 
372
- #: include/languages-form.php:273
373
  msgid "Synchronization"
374
  msgstr "Synkronisering"
375
 
376
  # @ polylang
377
- #: include/languages-form.php:287
378
  msgid "Custom post types"
379
- msgstr ""
380
 
381
  # @ polylang
382
- #: include/languages-form.php:300
383
  msgid "Activate languages and translations for custom post types."
384
- msgstr ""
385
 
386
  # @ polylang
387
- #: include/languages-form.php:307
388
  msgid "Custom taxonomies"
389
- msgstr ""
390
 
391
  # @ polylang
392
- #: include/languages-form.php:320
393
  msgid "Activate languages and translations for custom taxonomies."
394
- msgstr ""
395
 
396
- #: include/list-table.php:26
397
- #: include/media-translations.php:22
398
- #: include/media-translations.php:60
399
- #: include/post-translations.php:10
400
- #: include/post-translations.php:33
401
- #: include/term-translations.php:18
402
- #: include/term-translations.php:80
403
  msgid "Edit"
404
  msgstr "Rediger"
405
 
406
- #: include/list-table.php:27
407
- #: include/list-table.php:162
408
  msgid "Delete"
409
  msgstr "Slet"
410
 
411
- #: include/list-table.php:36
412
  msgid "Code"
413
  msgstr "Kode"
414
 
415
- #: include/list-table.php:38
416
  msgid "Flag"
417
  msgstr "Flag"
418
 
419
- #: include/list-table.php:39
420
  msgid "Posts"
421
  msgstr "Indlæg"
422
 
423
- #: include/list-table.php:125
424
  msgid "Name"
425
  msgstr "Navn"
426
 
427
- #: include/list-table.php:126
428
  msgid "String"
429
  msgstr "String"
430
 
431
- #: include/media-translations.php:6
432
- #: include/media-translations.php:44
433
- #: include/term-translations.php:16
434
  msgid "Translation"
435
  msgstr "Oversættelse"
436
 
437
- #: include/media-translations.php:31
438
- #: include/media-translations.php:68
439
- #: include/post-translations.php:38
440
- #: include/term-translations.php:60
441
  msgid "Add new"
442
  msgstr "Opret ny"
443
 
444
- #: include/post-translations.php:5
445
  msgid "ID of pages in other languages:"
446
  msgstr "ID af sider på andre sprog:"
447
 
448
- #: include/post-translations.php:5
449
  msgid "ID of posts in other languages:"
450
  msgstr "ID af indlæg på andre sprog:"
451
 
452
- #: include/post-translations.php:9
453
  msgid "Page ID"
454
  msgstr "Side ID"
455
 
456
- #: include/post-translations.php:9
457
  msgid "Post ID"
458
  msgstr "Indlæg ID"
459
 
460
- #: include/term-translations.php:48
461
  msgid "No untranslated term"
462
  msgstr "Ingen uoversatte term"
463
 
464
- #: include/widget.php:6
465
  msgid "Language Switcher"
466
  msgstr "Sprog Skifter"
467
 
468
- #: include/widget.php:6
469
  msgid "Displays a language switcher"
470
  msgstr "Viser en sprog skifter"
471
 
472
- #: include/widget.php:69
473
  msgid "Title:"
474
  msgstr "Titel:"
475
 
@@ -477,37 +479,93 @@ msgstr "Titel:"
477
  #. translators: plugin header field 'Description'
478
  #: polylang.php:0
479
  msgid "Adds multilingual capability to WordPress"
480
- msgstr ""
481
 
482
- #: polylang.php:133
483
  #, php-format
484
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
485
  msgstr "Du bruger WordPress %s. Polylang kræver mindst WordPress %s."
486
 
487
- #: polylang.php:174
488
- msgid "For some reasons, Polylang could not create a table in your database."
489
- msgstr "Af en eller anden grund, kunne Polylang ikke tilføje en tabel i din database"
490
-
491
  # @ polylang
492
- #: polylang.php:235
493
- msgid "Polylang has been deactivated because you upgraded from a too old version."
 
494
  msgstr ""
 
 
495
 
496
  # @ polylang
497
- #: polylang.php:237
498
  #, php-format
499
  msgid "Please upgrade first to %s before ugrading to %s."
500
- msgstr ""
501
 
502
  # @ polylang
503
- #: include/list-table.php:124
504
  msgid "Group"
505
- msgstr ""
506
 
507
  # @ polylang
508
- #: include/list-table.php:173
509
  msgid "View all groups"
 
 
 
 
 
 
 
 
 
 
 
 
510
  msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
511
 
512
  #~ msgid "Displays a language switcher at the end of the menu"
513
  #~ msgstr "Viser en sprog skifter ved enden af menuen"
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: Patrick Hesselberg <Super-patzen@live.dk>\n"
8
  "Language-Team: \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: nplural=n>1;\n"
13
  "X-Poedit-SourceCharset: utf-8\n"
14
  "X-Poedit-KeywordsList: _e;__;_x\n"
15
  "X-Poedit-Basepath: .\n"
16
+ "X-Generator: Poedit 1.5.7\n"
17
  "X-Poedit-SearchPath-0: ..\n"
18
  "X-Poedit-SearchPath-1: ../include\n"
19
 
20
+ #: admin/view-about.php:3
21
  #, php-format
22
+ msgid ""
23
+ "Polylang is provided with an extensive %sdocumentation%s (in English only). "
24
+ "It includes information on how to set up your multilingual site and use it "
25
+ "on a daily basis, a FAQ, as well as a documentation for programmers to adapt "
26
+ "their plugins and themes."
27
+ msgstr ""
28
+ "Polylang er forsynet med en omfattende %sdocumentation%s (kun Engelsk). Den "
29
+ "informerer om, hvordan du opsætter dit flersprogede site og hvordan du "
30
+ "bruger det på et daglig basis, en FAQ, samt en dokumentation for "
31
+ "programmører til at bruge det i deres plugins og temaer."
32
 
33
+ #: admin/view-about.php:9
34
  #, php-format
35
+ msgid ""
36
+ "You will also find useful information in the %ssupport forum%s. However "
37
+ "don't forget to make a search before posting a new topic."
38
+ msgstr ""
39
+ "Du vil også finde brugbar information i %ssupport forum%s. Men glem ikke at "
40
+ "lave en søgning, før du opretter et nyt emne."
41
 
42
+ #: admin/view-about.php:16
43
  #, php-format
44
+ msgid ""
45
+ "Polylang is free of charge and is released under the same license as "
46
+ "WordPress, the %sGPL%s."
47
+ msgstr ""
48
+ "Polylang er gratis og frigivet under den samme licens som Wordpress, %sGPL%s."
49
 
50
+ #: admin/view-about.php:22
51
  #, php-format
52
  msgid "If you wonder how you can help the project, just %sread this%s."
53
+ msgstr ""
54
+ "Hvis du tænker over, hvordan du kan hjælpe dette projekt, %slæs dette%s."
55
+
56
+ #: admin/view-about.php:27
57
+ msgid ""
58
+ "Finally if you like this plugin or if it helps your business, donations to "
59
+ "the author are greatly appreciated."
60
+ msgstr ""
61
+ "Endelig, hvis du kan lide dette plugin, eller hjælper din virksomhed, er "
62
+ "donationer til forfatteren meget værdsat."
63
+
64
+ #: admin/admin-filters-post.php:76 admin/admin.php:83 admin/admin.php:187
65
+ #: admin/settings.php:42 admin/settings.php:57 include/model.php:490
66
  msgid "Languages"
67
  msgstr "Sprog"
68
 
69
+ #: include/switcher.php:22
70
  msgid "Displays language names"
71
  msgstr "Vis sprog navne"
72
 
73
+ #: include/switcher.php:23
74
  msgid "Displays flags"
75
  msgstr "Vis flag"
76
 
77
+ #: include/switcher.php:24
78
  msgid "Forces link to front page"
79
  msgstr "Tvinger link til forsiden"
80
 
81
+ #: include/switcher.php:25
82
  msgid "Hides the current language"
83
  msgstr "Skjuler det nuværende sprog"
84
 
85
+ #: include/switcher.php:29
86
  msgid "Displays as dropdown"
87
  msgstr "Viser som dropdown"
88
 
89
+ #: admin/admin.php:188
90
  msgid "Filters content by language"
91
  msgstr "Filtrerer indhold efter sprog"
92
 
93
+ #: admin/admin.php:183
94
  msgid "Show all languages"
95
  msgstr "Vis alle sprog"
96
 
97
+ #: admin/admin-filters-columns.php:126 admin/admin-filters-columns.php:215
 
98
  msgid "Add new translation"
99
  msgstr "Tilføj ny oversættelse"
100
 
101
+ #: admin/admin-filters-columns.php:163 admin/admin-filters-media.php:58
102
+ #: admin/admin-filters-post.php:109 admin/admin-filters-term.php:72
103
+ #: admin/admin-filters-term.php:106 admin/view-translations-media.php:7
104
+ #: admin/view-translations-media.php:45 admin/view-translations-post.php:8
105
+ #: admin/view-translations-term.php:15 include/model.php:491
 
 
 
 
 
 
106
  msgid "Language"
107
  msgstr "Sprog"
108
 
109
+ #: admin/admin-filters-media.php:73 admin/admin-filters-media.php:112
110
+ #: admin/table-string.php:111 admin/view-translations-media.php:42
111
+ #: admin/view-translations-term.php:6 admin/view-translations-term.php:11
 
 
 
112
  msgid "Translations"
113
  msgstr "Oversættelser"
114
 
115
+ #: admin/admin-filters-term.php:74 admin/admin-filters-term.php:108
 
116
  msgid "Sets the language"
117
  msgstr "Indstiller sproget"
118
 
119
+ #: admin/admin-filters.php:60
120
  msgid "The widget is displayed for:"
121
  msgstr "Widget vises i:"
122
 
123
+ #: admin/admin-filters.php:63 include/model.php:492
 
124
  msgid "All languages"
125
  msgstr "Alle sprog"
126
 
127
+ #: admin/admin-filters.php:120
128
  msgid "Admin language"
129
  msgstr "Administrator sprog"
130
 
131
+ #: admin/admin-filters.php:123
132
  msgid "Wordpress default"
133
  msgstr "Wordpress standard"
134
 
135
+ #: admin/admin.php:123 admin/settings.php:62
 
136
  msgid "Settings"
137
  msgstr "Indstillinger"
138
 
139
+ #: admin/admin-filters.php:151
140
  msgid "Upgrading language files&#8230;"
141
  msgstr "Opgradering sprogfiler files&#8230;"
142
 
143
+ #: admin/settings.php:38
144
  msgid "About Polylang"
145
  msgstr "Om Polylang"
146
 
147
+ #: admin/settings.php:46
 
148
  msgid "Strings translations"
149
  msgstr "Strings oversættelser"
150
 
151
+ #: admin/settings.php:61
 
152
  msgid "Strings translation"
153
  msgstr "Strings oversættelse"
154
 
155
+ #: admin/settings.php:74
156
+ msgid "Enter a valid WordPress locale"
157
  msgstr "Indtast en gyldig Wordpress locale"
158
 
159
+ #: admin/settings.php:76
 
 
 
 
160
  msgid "The language code must be unique"
161
  msgstr "Sprogkoden skal være unik"
162
 
163
+ #: admin/settings.php:77
164
  msgid "The language must have a name"
165
  msgstr "Sproget skal have et navn"
166
 
167
+ #: admin/settings.php:78
168
+ msgid ""
169
+ "The language was created, but the WordPress language file was not "
170
+ "downloaded. Please install it manually."
171
+ msgstr ""
172
+ "Sproget var oprettet, men WordPress sprogfilen blev ikke downloadet. Du skal "
173
+ "installere den manuelt."
174
 
175
+ #: admin/settings.php:305
176
  msgid "Widget title"
177
  msgstr "Widget titel"
178
 
179
  # @ polylang
180
+ #: admin/settings.php:323
181
  msgid "Taxonomies"
182
+ msgstr "Taksonomier"
183
 
184
  # @ polylang
185
+ #: admin/settings.php:324
186
  msgid "Custom fields"
187
+ msgstr "Egne felter"
188
 
189
  # @ polylang
190
+ #: admin/settings.php:325
191
  msgid "Comment status"
192
+ msgstr "Kommentar status"
193
 
194
  # @ polylang
195
+ #: admin/settings.php:326
196
  msgid "Ping status"
197
+ msgstr "Ping status"
198
 
199
  # @ polylang
200
+ #: admin/settings.php:327
201
  msgid "Sticky posts"
202
+ msgstr "Fastgjorte indlæg"
203
 
204
  # @ polylang
205
+ #: admin/settings.php:328
206
  msgid "Published date"
207
+ msgstr "Dato udgivet"
208
 
209
  # @ polylang
210
+ #: admin/settings.php:329
211
  msgid "Post format"
212
+ msgstr "Indlægsformat"
213
 
214
+ #: admin/settings.php:330
215
  msgid "Page parent"
216
+ msgstr "Side forælder"
217
 
218
  # @ polylang
219
+ #: admin/settings.php:331
220
  msgid "Page template"
221
+ msgstr "Sideskabelon"
222
 
223
+ #: admin/settings.php:332
224
  msgid "Page order"
225
+ msgstr "Side rækkefølge"
226
 
227
  # @ polylang
228
+ #: admin/settings.php:333
229
  msgid "Featured image"
230
+ msgstr "Fremhævet billede"
231
 
232
+ #: admin/view-languages.php:42
233
  msgid "Edit language"
234
  msgstr "Rediger sprog"
235
 
236
+ #: admin/view-languages.php:42 admin/view-languages.php:117
 
237
  msgid "Add new language"
238
  msgstr "Tilføj nyt sprog"
239
 
240
+ #: admin/view-languages.php:58
241
  msgid "Choose a language"
242
  msgstr "Vælg sprog"
243
 
244
+ #: admin/view-languages.php:72
245
  msgid "You can choose a language in the list or directly edit it below."
246
  msgstr "Du kan vælge et sprog fra listen eller redigere det direkte nedenfor."
247
 
248
+ #: admin/table-languages.php:74 admin/view-languages.php:76
 
249
  msgid "Full name"
250
  msgstr "Fulde navn"
251
 
252
+ #: admin/view-languages.php:78
253
  msgid "The name is how it is displayed on your site (for example: English)."
254
  msgstr "Navnet er hvordan det bliver vist på din side (for eksempel: Engelsk)."
255
 
256
+ #: admin/table-languages.php:75 admin/view-languages.php:82
 
257
  msgid "Locale"
258
  msgstr "Landestandard"
259
 
260
+ #: admin/view-languages.php:87
261
+ msgid ""
262
+ "Wordpress Locale for the language (for example: en_US). You will need to "
263
+ "install the .mo file for this language."
264
+ msgstr ""
265
+ "Wordpress Landestandarden for sproget (for eksempel: da_DK). Du skal "
266
+ "installere .mo filen til dette sprog."
267
 
268
+ #: admin/view-languages.php:91
269
  msgid "Language code"
270
  msgstr "Sprogkode"
271
 
272
+ #: admin/view-languages.php:93
273
  msgid "2-letters ISO 639-1 language code (for example: en)"
274
  msgstr "2 bogstaver ISO 639-1 sprogkode (for eksempel: da)"
275
 
276
+ #: admin/view-languages.php:97
277
  msgid "Text direction"
278
  msgstr "Tekst retning"
279
 
280
+ #: admin/view-languages.php:101
281
  msgid "left to right"
282
  msgstr "venstre til højre"
283
 
284
+ #: admin/view-languages.php:106
285
  msgid "right to left"
286
  msgstr "højre til venstre"
287
 
288
+ #: admin/view-languages.php:108
289
  msgid "Choose the text direction for the language"
290
  msgstr "Vælg en tekstretning for sproget"
291
 
292
+ #: admin/table-languages.php:77 admin/view-languages.php:112
 
293
  msgid "Order"
294
  msgstr "Sorter"
295
 
296
+ #: admin/view-languages.php:114
297
  msgid "Position of the language in the language switcher"
298
  msgstr "Position af sproget i sprog skifteren"
299
 
300
+ #: admin/admin-nav-menu.php:51 admin/admin-nav-menu.php:79
301
+ #: admin/admin-nav-menu.php:82 admin/admin-nav-menu.php:113
302
+ #: admin/admin-nav-menu.php:170 include/upgrade.php:175
 
 
 
303
  msgid "Language switcher"
304
  msgstr "Sprog skifter"
305
 
306
+ #: admin/view-languages.php:143
307
  msgid "Search translations"
308
+ msgstr "Søg oversættelser"
309
 
310
+ #: admin/view-languages.php:146
311
  msgid "Clean strings translation database"
312
  msgstr "Rene strings database oversættelse"
313
 
314
+ #: admin/view-languages.php:164
315
  msgid "Default language"
316
  msgstr "Standard sprog"
317
 
318
+ #: admin/view-languages.php:179
319
+ msgid ""
320
+ "There are posts, pages, categories or tags without language set. Do you want "
321
+ "to set them all to default language ?"
322
+ msgstr ""
323
+ "Der er indlæg, sider, kategorier eller tags uden et valgt sprog. Vil du "
324
+ "sætte dem til det standard sprog ?"
325
 
326
+ #: admin/view-languages.php:187
327
  msgid "Detect browser language"
328
  msgstr "Find browser sprog"
329
 
330
+ #: admin/view-languages.php:193
331
+ msgid ""
332
+ "When the front page is visited, set the language according to the browser "
333
+ "preference"
334
+ msgstr ""
335
+ "Når forsiden vises, skal du indstille sprog i overensstemmelse med browseren "
336
+ "præference"
337
 
338
+ #: admin/view-languages.php:200
339
  msgid "URL modifications"
340
  msgstr "URL ændringer"
341
 
342
+ #: admin/view-languages.php:206
343
+ msgid ""
344
+ "The language is set from content. Posts, pages, categories and tags urls are "
345
+ "not modified."
346
+ msgstr ""
347
+ "Sproget er sat fra indholdet. Indlæg, sider, kategorier og tags url'er "
348
+ "ændres ikke."
349
 
350
+ #: admin/view-languages.php:253
351
  msgid "Remove /language/ in pretty permalinks. Example:"
352
  msgstr "Fjern /sprog/ i pæne permalinks. Eksempel:"
353
 
354
+ #: admin/view-languages.php:262
355
  msgid "Keep /language/ in pretty permalinks. Example:"
356
  msgstr "Hold /sprog/ i pæne permalinks. eksempel:"
357
 
358
+ #: admin/view-languages.php:271
359
  msgid "Hide URL language information for default language"
360
  msgstr "Skjul URL sprog information for standardsprog"
361
 
362
+ #: admin/view-languages.php:281
363
  #, php-format
364
+ msgid ""
365
+ "When using static front page, redirect the language page (example: %s) to "
366
+ "the front page in the right language"
367
+ msgstr ""
368
+ "Når der benyttes en statisk forside, omdiriger til sprogsiden (eksempel %s) "
369
+ "til forsiden i det rigtige sprog."
370
 
371
  # @ polylang
372
+ #: admin/view-languages.php:290
373
  msgid "Media"
374
+ msgstr "Medier"
375
 
376
  # @ polylang
377
+ #: admin/view-languages.php:296
378
  msgid "Activate languages and translations for media"
379
+ msgstr "Aktiver sprog og oversættelser for medier"
380
 
381
+ #: admin/view-languages.php:303
382
  msgid "Synchronization"
383
  msgstr "Synkronisering"
384
 
385
  # @ polylang
386
+ #: admin/view-languages.php:320
387
  msgid "Custom post types"
388
+ msgstr "Brugerdefineret indlægstype"
389
 
390
  # @ polylang
391
+ #: admin/view-languages.php:333
392
  msgid "Activate languages and translations for custom post types."
393
+ msgstr "Aktiver sprog og oversættelser for brugerdefineret indlægstype"
394
 
395
  # @ polylang
396
+ #: admin/view-languages.php:340
397
  msgid "Custom taxonomies"
398
+ msgstr "Brugerdefineret taksonomi"
399
 
400
  # @ polylang
401
+ #: admin/view-languages.php:353
402
  msgid "Activate languages and translations for custom taxonomies."
403
+ msgstr "Aktiver sprog og oversættelser for brugerdefineret taksonomi"
404
 
405
+ #: admin/table-languages.php:54 admin/view-translations-media.php:24
406
+ #: admin/view-translations-media.php:62 admin/view-translations-post.php:10
407
+ #: admin/view-translations-post.php:33 admin/view-translations-term.php:18
408
+ #: admin/view-translations-term.php:80
 
 
 
409
  msgid "Edit"
410
  msgstr "Rediger"
411
 
412
+ #: admin/table-languages.php:60 admin/table-string.php:167
 
413
  msgid "Delete"
414
  msgstr "Slet"
415
 
416
+ #: admin/table-languages.php:76
417
  msgid "Code"
418
  msgstr "Kode"
419
 
420
+ #: admin/table-languages.php:78
421
  msgid "Flag"
422
  msgstr "Flag"
423
 
424
+ #: admin/table-languages.php:79
425
  msgid "Posts"
426
  msgstr "Indlæg"
427
 
428
+ #: admin/table-string.php:109
429
  msgid "Name"
430
  msgstr "Navn"
431
 
432
+ #: admin/table-string.php:110
433
  msgid "String"
434
  msgstr "String"
435
 
436
+ #: admin/view-translations-media.php:8 admin/view-translations-media.php:46
437
+ #: admin/view-translations-term.php:16
 
438
  msgid "Translation"
439
  msgstr "Oversættelse"
440
 
441
+ #: admin/view-translations-media.php:33 admin/view-translations-media.php:70
442
+ #: admin/view-translations-post.php:38 admin/view-translations-term.php:60
 
 
443
  msgid "Add new"
444
  msgstr "Opret ny"
445
 
446
+ #: admin/view-translations-post.php:5
447
  msgid "ID of pages in other languages:"
448
  msgstr "ID af sider på andre sprog:"
449
 
450
+ #: admin/view-translations-post.php:5
451
  msgid "ID of posts in other languages:"
452
  msgstr "ID af indlæg på andre sprog:"
453
 
454
+ #: admin/view-translations-post.php:9
455
  msgid "Page ID"
456
  msgstr "Side ID"
457
 
458
+ #: admin/view-translations-post.php:9
459
  msgid "Post ID"
460
  msgstr "Indlæg ID"
461
 
462
+ #: admin/view-translations-term.php:48
463
  msgid "No untranslated term"
464
  msgstr "Ingen uoversatte term"
465
 
466
+ #: include/widget-languages.php:16
467
  msgid "Language Switcher"
468
  msgstr "Sprog Skifter"
469
 
470
+ #: include/widget-languages.php:16
471
  msgid "Displays a language switcher"
472
  msgstr "Viser en sprog skifter"
473
 
474
+ #: include/widget-languages.php:100
475
  msgid "Title:"
476
  msgstr "Titel:"
477
 
479
  #. translators: plugin header field 'Description'
480
  #: polylang.php:0
481
  msgid "Adds multilingual capability to WordPress"
482
+ msgstr "Tilføjer flersproget funktionalitet til WordPress"
483
 
484
+ #: polylang.php:157
485
  #, php-format
486
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
487
  msgstr "Du bruger WordPress %s. Polylang kræver mindst WordPress %s."
488
 
 
 
 
 
489
  # @ polylang
490
+ #: include/upgrade.php:75
491
+ msgid ""
492
+ "Polylang has been deactivated because you upgraded from a too old version."
493
  msgstr ""
494
+ "Polylang er blevet deaktiveret, fordi du har opgraderet fra en for gammel "
495
+ "version."
496
 
497
  # @ polylang
498
+ #: include/upgrade.php:77
499
  #, php-format
500
  msgid "Please upgrade first to %s before ugrading to %s."
501
+ msgstr "Opgrader først til %s, før du op opdragere til %s."
502
 
503
  # @ polylang
504
+ #: admin/table-string.php:108
505
  msgid "Group"
506
+ msgstr "Gruppe"
507
 
508
  # @ polylang
509
+ #: admin/table-string.php:186
510
  msgid "View all groups"
511
+ msgstr "Vis alle grupper"
512
+
513
+ # @ polylang
514
+ #: admin/table-languages.php:59
515
+ msgid "You are about to permanently delete this language. Are you sure?"
516
+ msgstr "Du er ved at slette dette sprog permanent. Er du sikker?"
517
+
518
+ # @ polylang
519
+ #: admin/view-languages.php:147
520
+ msgid ""
521
+ "Use this to remove unused strings from database, for example after a plugin "
522
+ "has been uninstalled."
523
  msgstr ""
524
+ "Brug denne til at fjerne ubrugte strenge fra databasen, for eksempel efter "
525
+ "et plugin er blevet afinstalleret."
526
+
527
+ #: admin/view-languages.php:214
528
+ msgid ""
529
+ "The language is set from the directory name in pretty permalinks. Example:"
530
+ msgstr "Sproget er indstillet fra den mappe navn i permalinks. Eksempel:"
531
+
532
+ #: admin/view-languages.php:223
533
+ msgid ""
534
+ "The language is set from the subdomain name in pretty permalinks. Example:"
535
+ msgstr "Sproget er indstillet fra det subdomæne navn i permalinks. Eksempel:"
536
+
537
+ # @ polylang
538
+ #: admin/view-languages.php:314
539
+ msgid ""
540
+ "The synchronization options allow to maintain exact same values (or "
541
+ "translations in the case of taxonomies and page parent) of meta content "
542
+ "between the translations of a post or page."
543
+ msgstr ""
544
+ "Synkronisering indstillingerne gør det muligt at opretholde nøjagtig samme "
545
+ "værdier (eller oversættelser i tilfælde af taksonomier og side forælder), af "
546
+ "meta indhold mellem oversættelserne af et indlæg eller side."
547
+
548
+ #: admin/settings.php:75
549
+ msgid "The language code contains invalid characters"
550
+ msgstr "Sprogkoden indeholder ugyldige tegn"
551
+
552
+ # @ polylang
553
+ #: admin/view-languages.php:232
554
+ msgid "The language is set from different domains:"
555
+ msgstr "Sproget er indstillet fra forskellige domæner:"
556
+
557
+ #~ msgid ""
558
+ #~ "The language code, for example /en/, is added to all urls when using "
559
+ #~ "pretty permalinks."
560
+ #~ msgstr ""
561
+ #~ "Sprogkoden, for eksempel /da/, bliver tilføjet til at url'er, når der "
562
+ #~ "bruges pæne permalinks."
563
+
564
+ #~ msgid ""
565
+ #~ "For some reasons, Polylang could not create a table in your database."
566
+ #~ msgstr ""
567
+ #~ "Af en eller anden grund, kunne Polylang ikke tilføje en tabel i din "
568
+ #~ "database"
569
 
570
  #~ msgid "Displays a language switcher at the end of the menu"
571
  #~ msgstr "Viser en sprog skifter ved enden af menuen"
languages/polylang-de_DE.mo CHANGED
Binary file
languages/polylang-de_DE.po CHANGED
@@ -4,573 +4,539 @@ msgstr ""
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
  "PO-Revision-Date: \n"
7
- "Last-Translator: Christian Ries <christian_ries@internet.lu>\n"
8
  "Language-Team: \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;"
15
- "_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"
16
  "X-Poedit-Basepath: .\n"
17
  "X-Textdomain-Support: yes\n"
18
- "X-Generator: Poedit 1.5.5\n"
19
  "X-Poedit-SearchPath-0: ..\n"
20
 
21
  # @ polylang
22
- #: include/about.php:3
23
  #, php-format
24
- msgid ""
25
- "Polylang is provided with an extensive %sdocumentation%s (in English only). "
26
- "It includes information on how to set up your multilingual site and use it "
27
- "on a daily basis, a FAQ, as well as a documentation for programmers to adapt "
28
- "their plugins and themes."
29
- msgstr ""
30
- "Polylang wird mit einer detaillierten %sdocumentation%s ausgeliefert (nur in "
31
- "Englisch). Sie beinhaltet wie man eine mehrsprachige Webseite einrichtet und "
32
- "wie man sie tagtäglich pflegt, eine FAQ und eine Dokumentation für "
33
- "Programmierer um ihre Plugins und Themen anpassen zu können."
34
 
35
  # @ polylang
36
- #: include/about.php:9
37
  #, php-format
38
- msgid ""
39
- "You will also find useful information in the %ssupport forum%s. However "
40
- "don't forget to make a search before posting a new topic."
41
- msgstr ""
42
- "Sie finden ebenfalls nützliche Informationen im %ssupport forum%s. Vergessen "
43
- "Sie nicht eine Suche durchzuführen, bevor Sie ein neues Thema beginnen."
44
 
45
  # @ polylang
46
- #: include/about.php:16
47
  #, php-format
48
- msgid ""
49
- "Polylang is free of charge and is released under the same license as "
50
- "WordPress, the %sGPL%s."
51
- msgstr ""
52
- "Polylang ist kostenlos und wird unter derselben Lizenz veröffentlicht wie "
53
- "Wordpress, die %sGPL%s."
54
 
55
  # @ polylang
56
- #: include/about.php:22
57
  #, php-format
58
  msgid "If you wonder how you can help the project, just %sread this%s."
59
- msgstr ""
60
- "Wenn Sie sich Fragen, wie Sie das Projekt unterstützen können, dann %sread "
61
- "this%s."
62
 
63
  # @ polylang
64
- #: include/about.php:27
65
- msgid ""
66
- "Finally if you like this plugin or if it helps your business, donations to "
67
- "the author are greatly appreciated."
68
- msgstr ""
69
- "Schliesslich wenn Sie dieses Plugin mögen oder es für Ihr Unternehmen "
70
- "nützlich ist, werden Spenden an den Autor gerne und dankend angenommen."
71
 
72
  # @ polylang
73
- #: include/admin-base.php:55 include/admin-base.php:190
74
- #: include/admin-filters.php:243 include/admin.php:23 include/admin.php:301
75
- #: include/list-table.php:13 polylang.php:339
 
 
 
76
  msgid "Languages"
77
  msgstr "Sprachen"
78
 
79
  # @ polylang
80
- #: include/admin-base.php:153
81
  msgid "Displays language names"
82
  msgstr "Darstellung der Namen der Sprachen"
83
 
84
  # @ polylang
85
- #: include/admin-base.php:154
86
  msgid "Displays flags"
87
  msgstr "Darstellung der Fahnen"
88
 
89
  # @ polylang
90
- #: include/admin-base.php:155
91
  msgid "Forces link to front page"
92
  msgstr "Erzwingt einen Link zur Startseite"
93
 
94
  # @ polylang
95
- #: include/admin-base.php:156
96
  msgid "Hides the current language"
97
  msgstr "Versteckt die aktuelle Sprache"
98
 
99
  # @ polylang
100
- #: include/admin-base.php:160
101
  msgid "Displays as dropdown"
102
  msgstr "Als Auswahlbox darstellen"
103
 
104
  # @ polylang
105
- #: include/admin-base.php:191
106
  msgid "Filters content by language"
107
  msgstr "Filtriert Inhalte nach der Sprache"
108
 
109
  # @ polylang
110
- #: include/admin-base.php:186
111
  msgid "Show all languages"
112
  msgstr "Alle Sprachen anzeigen"
113
 
114
  # @ polylang
115
- #: include/admin-filters.php:181 include/admin-filters.php:877
 
116
  msgid "Add new translation"
117
  msgstr "Neue Übersetzung hinzufügen"
118
 
119
  # @ polylang
120
- #: include/admin-filters.php:209 include/admin-filters.php:267
121
- #: include/admin-filters.php:601 include/admin-filters.php:817
122
- #: include/admin-filters.php:835 include/list-table.php:12
123
- #: include/media-translations.php:5 include/media-translations.php:43
124
- #: include/post-translations.php:8 include/term-translations.php:15
125
- #: polylang.php:340
 
 
 
 
126
  msgid "Language"
127
  msgstr "Sprache"
128
 
129
  # @ polylang
130
- #: include/admin-filters.php:616 include/admin-filters.php:651
131
- #: include/list-table.php:127 include/media-translations.php:40
132
- #: include/term-translations.php:6 include/term-translations.php:11
 
 
 
133
  msgid "Translations"
134
  msgstr "Übersetzungen"
135
 
136
  # @ polylang
137
- #: include/admin-filters.php:819 include/admin-filters.php:838
 
138
  msgid "Sets the language"
139
  msgstr "definiert die Sprache"
140
 
141
  # @ polylang
142
- #: include/admin-filters.php:1053
143
  msgid "The widget is displayed for:"
144
  msgstr "Zeigt das Widget für :"
145
 
146
  # @ polylang
147
- #: include/admin-filters.php:1057 polylang.php:341
 
148
  msgid "All languages"
149
  msgstr "Alle Sprachen"
150
 
151
  # @ polylang
152
- #: include/admin-filters.php:1080
153
  msgid "Admin language"
154
  msgstr "Adminsprache"
155
 
156
- #: include/admin-filters.php:1085
157
  msgid "Wordpress default"
158
  msgstr "Wordpress Standard-Einstellung"
159
 
160
  # @ default
161
  # @ polylang
162
- #: include/admin-filters.php:1114 include/admin.php:306
 
163
  msgid "Settings"
164
  msgstr "Einstellungen"
165
 
166
  # @ polylang
167
- #: include/admin-filters.php:1120
168
  msgid "Upgrading language files&#8230;"
169
  msgstr "Sprachdateien werden aktualisiert&#8230;"
170
 
171
  # @ polylang
172
- #: include/admin.php:22
173
  msgid "About Polylang"
174
  msgstr "Über Polylang"
175
 
176
  # @ polylang
177
- #: include/admin.php:27 include/list-table.php:82
178
  msgid "Strings translations"
179
  msgstr "Übersetungen von Sätzen"
180
 
181
  # @ polylang
182
- #: include/admin.php:305 include/list-table.php:81
183
  msgid "Strings translation"
184
  msgstr "Übersetzung von Sätzen"
185
 
186
  # @ polylang
187
- #: include/admin.php:345
188
- msgid "Enter a valid WorPress locale"
189
  msgstr "Bitte geben Sie eine gültige Sprachdatei an"
190
 
191
  # @ polylang
192
- #: include/admin.php:346
193
- msgid "The language code must be 2 characters long"
194
- msgstr "Der Sprachcode muss 2 Buchstaben betragen"
195
-
196
- # @ polylang
197
- #: include/admin.php:328
198
  msgid "The language code must be unique"
199
  msgstr "Der Sprachcode muss eindeutig sein"
200
 
201
  # @ polylang
202
- #: include/admin.php:329
203
  msgid "The language must have a name"
204
  msgstr "Die Sprache muss einen Namen haben"
205
 
206
  # @ polylang
207
- #: include/admin.php:330
208
- msgid ""
209
- "The language was created, but the WordPress language file was not "
210
- "downloaded. Please install it manually."
211
- msgstr ""
212
- "Die Sprache wurde erstellt, aber die WordPress Sprachdatei wurde nicht "
213
- "heruntergeladen. Bitte händisch installieren."
214
 
215
  # @ polylang
216
- #: include/admin.php:449
217
  msgid "Widget title"
218
  msgstr "Titel des Widgets"
219
 
220
  # @ polylang
221
- #: include/base.php:368
222
  msgid "Taxonomies"
223
  msgstr "Taxonomien"
224
 
225
  # @ polylang
226
- #: include/base.php:369
227
  msgid "Custom fields"
228
  msgstr "Benutzerdefinierte Felder"
229
 
230
  # @ polylang
231
- #: include/base.php:370
232
  msgid "Comment status"
233
  msgstr "Kommentarstatus"
234
 
235
  # @ polylang
236
- #: include/base.php:371
237
  msgid "Ping status"
238
  msgstr "Ping-Status"
239
 
240
  # @ polylang
241
- #: include/base.php:372
242
  msgid "Sticky posts"
243
  msgstr "Prioritäre Artikel"
244
 
245
  # @ polylang
246
- #: include/base.php:373
247
  msgid "Published date"
248
  msgstr "Erscheinungsdatum"
249
 
250
  # @ polylang
251
- #: include/base.php:374
252
  msgid "Post format"
253
  msgstr "Artikelformat"
254
 
255
  # @ default
256
- #: include/base.php:375
257
  msgid "Page parent"
258
  msgstr "Elternseite"
259
 
260
  # @ polylang
261
- #: include/base.php:376
262
  msgid "Page template"
263
  msgstr "Seitenvorlage"
264
 
265
  # @ polylang
266
- #: include/base.php:377
267
  msgid "Page order"
268
  msgstr "Reihenfolge der Seiten"
269
 
270
  # @ polylang
271
- #: include/base.php:378
272
  msgid "Featured image"
273
  msgstr "Vorgestelltes Bild"
274
 
275
  # @ polylang
276
- #: include/languages-form.php:42
277
  msgid "Edit language"
278
  msgstr "Sprache bearbeiten"
279
 
280
  # @ polylang
281
- #: include/languages-form.php:42 include/languages-form.php:123
 
282
  msgid "Add new language"
283
  msgstr "Neue Sprache hinzufügen"
284
 
285
  # @ polylang
286
- #: include/languages-form.php:64
287
  msgid "Choose a language"
288
  msgstr "Sprache auswählen"
289
 
290
  # @ polylang
291
- #: include/languages-form.php:78
292
  msgid "You can choose a language in the list or directly edit it below."
293
- msgstr ""
294
- "Du kannst eine Sprache in der Liste auswählen oder sie unten direkt "
295
- "bearbeiten."
296
 
297
  # @ polylang
298
- #: include/languages-form.php:82 include/list-table.php:34
 
299
  msgid "Full name"
300
  msgstr "Name"
301
 
302
  # @ polylang
303
- #: include/languages-form.php:84
304
  msgid "The name is how it is displayed on your site (for example: English)."
305
- msgstr ""
306
- "Dieser Name wird dann auf der Website angezeigt (beispielsweise : Deutsch)"
307
 
308
  # @ polylang
309
- #: include/languages-form.php:88 include/list-table.php:35
 
310
  msgid "Locale"
311
  msgstr "Sprachdatei"
312
 
313
  # @ polylang
314
- #: include/languages-form.php:93
315
- msgid ""
316
- "Wordpress Locale for the language (for example: en_US). You will need to "
317
- "install the .mo file for this language."
318
- msgstr ""
319
- "Wordpress Sprachdatei für die Sprache (beispielweise : de_DE). Du musst die ."
320
- "mo-Datei für diese Sprache installieren."
321
 
322
  # @ polylang
323
- #: include/languages-form.php:97
324
  msgid "Language code"
325
  msgstr "Sprachcode"
326
 
327
  # @ polylang
328
- #: include/languages-form.php:99
329
  msgid "2-letters ISO 639-1 language code (for example: en)"
330
  msgstr "2 Buchstaben ISO 639-1 Sprachcode (beispielsweise : de)"
331
 
332
  # @ polylang
333
- #: include/languages-form.php:103
334
  msgid "Text direction"
335
  msgstr "Textrichtung"
336
 
337
  # @ polylang
338
- #: include/languages-form.php:107
339
  msgid "left to right"
340
  msgstr "von links nach rechts"
341
 
342
  # @ polylang
343
- #: include/languages-form.php:112
344
  msgid "right to left"
345
  msgstr "von rechts nach links"
346
 
347
  # @ polylang
348
- #: include/languages-form.php:114
349
  msgid "Choose the text direction for the language"
350
  msgstr "Wählen Sie die Textrichtung für die Sprache aus"
351
 
352
  # @ polylang
353
- #: include/languages-form.php:118 include/list-table.php:37
 
354
  msgid "Order"
355
  msgstr "Reihenfolge"
356
 
357
  # @ polylang
358
- #: include/languages-form.php:120
359
  msgid "Position of the language in the language switcher"
360
  msgstr "Position der Sprache im Sprachenumschalter"
361
 
362
  # @ polylang
363
- #: include/nav-menu.php:28 include/nav-menu.php:51 include/nav-menu.php:54
364
- #: include/nav-menu.php:82 include/nav-menu.php:106 polylang.php:302
 
 
 
 
365
  msgid "Language switcher"
366
  msgstr "Sprachenumschalter"
367
 
368
  # @ polylang
369
- #: include/languages-form.php:148
370
  msgid "Search translations"
371
  msgstr "Übersetzungen suchen"
372
 
373
  # @ polylang
374
- #: include/languages-form.php:151
375
  msgid "Clean strings translation database"
376
  msgstr "Datenbank der übersetzten Textbausteine säubern"
377
 
378
  # @ polylang
379
- #: include/languages-form.php:167
380
  msgid "Default language"
381
  msgstr "Standardsprache"
382
 
383
  # @ polylang
384
- #: include/languages-form.php:179
385
- msgid ""
386
- "There are posts, pages, categories or tags without language set. Do you want "
387
- "to set them all to default language ?"
388
- msgstr ""
389
- "Es gibt Artikel, Seite, Kategorien oder Schlagwörter ohne Spracheinstellung. "
390
- "Willst du alle auf die Standardsprache einstellen ?"
391
 
392
  # @ polylang
393
- #: include/languages-form.php:187
394
  msgid "Detect browser language"
395
  msgstr "Browsersprache erkennen"
396
 
397
  # @ polylang
398
- #: include/languages-form.php:193
399
- msgid ""
400
- "When the front page is visited, set the language according to the browser "
401
- "preference"
402
- msgstr ""
403
- "Beim Besuch der Startseite erscheint sie in der Standardsprache des Browsers"
404
 
405
  # @ polylang
406
- #: include/languages-form.php:200
407
  msgid "URL modifications"
408
  msgstr "URL-Veränderungen"
409
 
410
  # @ polylang
411
- #: include/languages-form.php:206
412
- msgid ""
413
- "The language is set from content. Posts, pages, categories and tags urls are "
414
- "not modified."
415
- msgstr ""
416
- "Die Sprache ist auf den Inhalt abgestimmt. URLs von Artikeln, Seiten, "
417
- "Kategorien und Tags werden nicht verändert."
418
-
419
- #: include/languages-form.php:214
420
- msgid ""
421
- "The language code, for example /en/, is added to all urls when using pretty "
422
- "permalinks."
423
- msgstr ""
424
- "Der Sprachenkode. z. B. /de/, wird alles URLs beigefügt falls schöne "
425
- "Permalinks benutzt werden."
426
 
427
  # @ polylang
428
- #: include/languages-form.php:223
429
  msgid "Remove /language/ in pretty permalinks. Example:"
430
  msgstr "/language/ in Permalinks entfernen. Zum Beispiel :"
431
 
432
  # @ polylang
433
- #: include/languages-form.php:232
434
  msgid "Keep /language/ in pretty permalinks. Example:"
435
  msgstr "/language/ in schönen Permalinks behalten. Zum Beispiel :"
436
 
437
  # @ polylang
438
- #: include/languages-form.php:241
439
  msgid "Hide URL language information for default language"
440
  msgstr "URL Informationen für die Standardsprache verstecken"
441
 
442
- #: include/languages-form.php:251
443
  #, php-format
444
- msgid ""
445
- "When using static front page, redirect the language page (example: %s) to "
446
- "the front page in the right language"
447
- msgstr ""
448
- "Wenn Sie eine statische Einstiegsseite benutzen, wird die Sprachenseite "
449
- "(Beispiel: %s) zur Einstiegsseite in der richtigen Sprache weitergeleitet"
450
 
451
  # @ polylang
452
- #: include/languages-form.php:260
453
  msgid "Media"
454
  msgstr "Medien"
455
 
456
  # @ polylang
457
- #: include/languages-form.php:266
458
  msgid "Activate languages and translations for media"
459
  msgstr "Sprachen und Übersetzungen für Medien aktivieren"
460
 
461
- #: include/languages-form.php:273
462
  msgid "Synchronization"
463
  msgstr "Synchronisierung"
464
 
465
  # @ polylang
466
- #: include/languages-form.php:287
467
  msgid "Custom post types"
468
  msgstr "Benutzerdefinierte Artikeltypen"
469
 
470
  # @ polylang
471
- #: include/languages-form.php:300
472
  msgid "Activate languages and translations for custom post types."
473
- msgstr ""
474
- "Sprachen und Übersetzungen für benutzerdefinierte Artikeltypen aktivieren"
475
 
476
  # @ polylang
477
- #: include/languages-form.php:307
478
  msgid "Custom taxonomies"
479
  msgstr "Benutzerdefinierte Taxonomien"
480
 
481
  # @ polylang
482
- #: include/languages-form.php:320
483
  msgid "Activate languages and translations for custom taxonomies."
484
- msgstr ""
485
- "Sprachen und Übersetzungen für benutzerdefinierte Taxonomien aktivieren"
486
 
487
  # @ polylang
488
- #: include/list-table.php:26 include/media-translations.php:22
489
- #: include/media-translations.php:60 include/post-translations.php:10
490
- #: include/post-translations.php:33 include/term-translations.php:18
491
- #: include/term-translations.php:80
 
 
 
492
  msgid "Edit"
493
  msgstr "Bearbeiten"
494
 
495
  # @ polylang
496
- #: include/list-table.php:27 include/list-table.php:162
 
497
  msgid "Delete"
498
  msgstr "Löschen"
499
 
500
  # @ polylang
501
- #: include/list-table.php:36
502
  msgid "Code"
503
  msgstr "Code"
504
 
505
  # @ polylang
506
- #: include/list-table.php:38
507
  msgid "Flag"
508
  msgstr "Fahne"
509
 
510
  # @ polylang
511
- #: include/list-table.php:39
512
  msgid "Posts"
513
  msgstr "Artikel"
514
 
515
  # @ polylang
516
- #: include/list-table.php:125
517
  msgid "Name"
518
  msgstr "Name"
519
 
520
  # @ polylang
521
- #: include/list-table.php:126
522
  msgid "String"
523
  msgstr "Zeichenfolge"
524
 
525
  # @ polylang
526
- #: include/media-translations.php:6 include/media-translations.php:44
527
- #: include/term-translations.php:16
 
528
  msgid "Translation"
529
  msgstr "Übersetzung"
530
 
531
  # @ polylang
532
- #: include/media-translations.php:31 include/media-translations.php:68
533
- #: include/post-translations.php:38 include/term-translations.php:60
 
 
534
  msgid "Add new"
535
  msgstr "Hinzufügen"
536
 
537
  # @ polylang
538
- #: include/post-translations.php:5
539
  msgid "ID of pages in other languages:"
540
  msgstr "ID der Seiten in anderen Sprachen :"
541
 
542
  # @ polylang
543
- #: include/post-translations.php:5
544
  msgid "ID of posts in other languages:"
545
  msgstr "ID der Artikel in anderen Sprachen :"
546
 
547
  # @ polylang
548
- #: include/post-translations.php:9
549
  msgid "Page ID"
550
  msgstr "ID der Seite"
551
 
552
  # @ polylang
553
- #: include/post-translations.php:9
554
  msgid "Post ID"
555
  msgstr "Artikel-ID"
556
 
557
  # @ polylang
558
- #: include/term-translations.php:48
559
  msgid "No untranslated term"
560
  msgstr "Kein unübersetzter Ausdruck"
561
 
562
  # @ polylang
563
- #: include/widget.php:6
564
  msgid "Language Switcher"
565
  msgstr "Sprachenumschalter"
566
 
567
  # @ polylang
568
- #: include/widget.php:6
569
  msgid "Displays a language switcher"
570
  msgstr "Zeigt einen Sprachenumschalter"
571
 
572
  # @ polylang
573
- #: include/widget.php:69
574
  msgid "Title:"
575
  msgstr "Titel :"
576
 
@@ -581,39 +547,70 @@ msgid "Adds multilingual capability to WordPress"
581
  msgstr "Ergänzt WordPress um Mehrsprachigkeit"
582
 
583
  # @ polylang
584
- #: polylang.php:133
585
  #, php-format
586
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
587
  msgstr "Sie benutzen WordPress %s. Polylang benötigt mindestens WordPress %s."
588
 
589
  # @ polylang
590
- #: polylang.php:174
591
- msgid "For some reasons, Polylang could not create a table in your database."
592
- msgstr ""
593
- "Aus bestimmten Gründen konnte Polylang keine Tabelle in ihrer Datenbank "
594
- "erstellen."
595
 
596
  # @ polylang
597
- #: polylang.php:235
598
- msgid ""
599
- "Polylang has been deactivated because you upgraded from a too old version."
600
- msgstr ""
601
- "Polylang wurde deaktiviert, weil Sie von einer zu alten Version aktualisiert "
602
- "haben."
603
-
604
- # @ polylang
605
- #: polylang.php:237
606
  #, php-format
607
  msgid "Please upgrade first to %s before ugrading to %s."
608
- msgstr ""
609
- "Bitte aktualisieren Sie zuerst nach % s bevor Sie nach % s aktualisieren."
610
 
611
  # @ polylang
612
- #: include/list-table.php:124
613
  msgid "Group"
614
  msgstr "Gruppe"
615
 
616
  # @ polylang
617
- #: include/list-table.php:173
618
  msgid "View all groups"
619
  msgstr "Alle Gruppen anzeigen"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
  "PO-Revision-Date: \n"
7
+ "Last-Translator: F. Demarle\n"
8
  "Language-Team: \n"
9
+ "Language: \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; plural=n != 1;\n"
14
  "X-Poedit-SourceCharset: utf-8\n"
15
+ "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"
 
16
  "X-Poedit-Basepath: .\n"
17
  "X-Textdomain-Support: yes\n"
18
+ "X-Generator: Poedit 1.5.7\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 wird mit einer detaillierten %sdocumentation%s ausgeliefert (nur in Englisch). Sie beinhaltet wie man eine mehrsprachige Webseite einrichtet und wie man sie tagtäglich pflegt, eine FAQ und eine Dokumentation für Programmierer um ihre Plugins und Themen anpassen zu können."
 
 
 
 
 
 
 
 
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 "Sie finden ebenfalls nützliche Informationen im %ssupport forum%s. Vergessen Sie nicht eine Suche durchzuführen, bevor Sie ein neues Thema beginnen."
 
 
 
 
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 "Polylang ist kostenlos und wird unter derselben Lizenz veröffentlicht wie Wordpress, die %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 "Wenn Sie sich Fragen, wie Sie das Projekt unterstützen können, dann %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 "Schliesslich wenn Sie dieses Plugin mögen oder es für Ihr Unternehmen nützlich ist, werden Spenden an den Autor gerne und dankend angenommen."
 
 
 
 
49
 
50
  # @ polylang
51
+ #: admin/admin-filters-post.php:76
52
+ #: admin/admin.php:83
53
+ #: admin/admin.php:187
54
+ #: admin/settings.php:42
55
+ #: admin/settings.php:57
56
+ #: include/model.php:490
57
  msgid "Languages"
58
  msgstr "Sprachen"
59
 
60
  # @ polylang
61
+ #: include/switcher.php:22
62
  msgid "Displays language names"
63
  msgstr "Darstellung der Namen der Sprachen"
64
 
65
  # @ polylang
66
+ #: include/switcher.php:23
67
  msgid "Displays flags"
68
  msgstr "Darstellung der Fahnen"
69
 
70
  # @ polylang
71
+ #: include/switcher.php:24
72
  msgid "Forces link to front page"
73
  msgstr "Erzwingt einen Link zur Startseite"
74
 
75
  # @ polylang
76
+ #: include/switcher.php:25
77
  msgid "Hides the current language"
78
  msgstr "Versteckt die aktuelle Sprache"
79
 
80
  # @ polylang
81
+ #: include/switcher.php:29
82
  msgid "Displays as dropdown"
83
  msgstr "Als Auswahlbox darstellen"
84
 
85
  # @ polylang
86
+ #: admin/admin.php:188
87
  msgid "Filters content by language"
88
  msgstr "Filtriert Inhalte nach der Sprache"
89
 
90
  # @ polylang
91
+ #: admin/admin.php:183
92
  msgid "Show all languages"
93
  msgstr "Alle Sprachen anzeigen"
94
 
95
  # @ polylang
96
+ #: admin/admin-filters-columns.php:126
97
+ #: admin/admin-filters-columns.php:215
98
  msgid "Add new translation"
99
  msgstr "Neue Übersetzung hinzufügen"
100
 
101
  # @ polylang
102
+ #: admin/admin-filters-columns.php:163
103
+ #: admin/admin-filters-media.php:58
104
+ #: admin/admin-filters-post.php:109
105
+ #: admin/admin-filters-term.php:72
106
+ #: admin/admin-filters-term.php:106
107
+ #: admin/view-translations-media.php:7
108
+ #: admin/view-translations-media.php:45
109
+ #: admin/view-translations-post.php:8
110
+ #: admin/view-translations-term.php:15
111
+ #: include/model.php:491
112
  msgid "Language"
113
  msgstr "Sprache"
114
 
115
  # @ polylang
116
+ #: admin/admin-filters-media.php:73
117
+ #: admin/admin-filters-media.php:112
118
+ #: admin/table-string.php:111
119
+ #: admin/view-translations-media.php:42
120
+ #: admin/view-translations-term.php:6
121
+ #: admin/view-translations-term.php:11
122
  msgid "Translations"
123
  msgstr "Übersetzungen"
124
 
125
  # @ polylang
126
+ #: admin/admin-filters-term.php:74
127
+ #: admin/admin-filters-term.php:108
128
  msgid "Sets the language"
129
  msgstr "definiert die Sprache"
130
 
131
  # @ polylang
132
+ #: admin/admin-filters.php:60
133
  msgid "The widget is displayed for:"
134
  msgstr "Zeigt das Widget für :"
135
 
136
  # @ polylang
137
+ #: admin/admin-filters.php:63
138
+ #: include/model.php:492
139
  msgid "All languages"
140
  msgstr "Alle Sprachen"
141
 
142
  # @ polylang
143
+ #: admin/admin-filters.php:120
144
  msgid "Admin language"
145
  msgstr "Adminsprache"
146
 
147
+ #: admin/admin-filters.php:123
148
  msgid "Wordpress default"
149
  msgstr "Wordpress Standard-Einstellung"
150
 
151
  # @ default
152
  # @ polylang
153
+ #: admin/admin.php:123
154
+ #: admin/settings.php:62
155
  msgid "Settings"
156
  msgstr "Einstellungen"
157
 
158
  # @ polylang
159
+ #: admin/admin-filters.php:151
160
  msgid "Upgrading language files&#8230;"
161
  msgstr "Sprachdateien werden aktualisiert&#8230;"
162
 
163
  # @ polylang
164
+ #: admin/settings.php:38
165
  msgid "About Polylang"
166
  msgstr "Über Polylang"
167
 
168
  # @ polylang
169
+ #: admin/settings.php:46
170
  msgid "Strings translations"
171
  msgstr "Übersetungen von Sätzen"
172
 
173
  # @ polylang
174
+ #: admin/settings.php:61
175
  msgid "Strings translation"
176
  msgstr "Übersetzung von Sätzen"
177
 
178
  # @ polylang
179
+ #: admin/settings.php:74
180
+ msgid "Enter a valid WordPress locale"
181
  msgstr "Bitte geben Sie eine gültige Sprachdatei an"
182
 
183
  # @ polylang
184
+ #: admin/settings.php:76
 
 
 
 
 
185
  msgid "The language code must be unique"
186
  msgstr "Der Sprachcode muss eindeutig sein"
187
 
188
  # @ polylang
189
+ #: admin/settings.php:77
190
  msgid "The language must have a name"
191
  msgstr "Die Sprache muss einen Namen haben"
192
 
193
  # @ polylang
194
+ #: admin/settings.php:78
195
+ msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
196
+ msgstr "Die Sprache wurde erstellt, aber die WordPress Sprachdatei wurde nicht heruntergeladen. Bitte händisch installieren."
 
 
 
 
197
 
198
  # @ polylang
199
+ #: admin/settings.php:305
200
  msgid "Widget title"
201
  msgstr "Titel des Widgets"
202
 
203
  # @ polylang
204
+ #: admin/settings.php:323
205
  msgid "Taxonomies"
206
  msgstr "Taxonomien"
207
 
208
  # @ polylang
209
+ #: admin/settings.php:324
210
  msgid "Custom fields"
211
  msgstr "Benutzerdefinierte Felder"
212
 
213
  # @ polylang
214
+ #: admin/settings.php:325
215
  msgid "Comment status"
216
  msgstr "Kommentarstatus"
217
 
218
  # @ polylang
219
+ #: admin/settings.php:326
220
  msgid "Ping status"
221
  msgstr "Ping-Status"
222
 
223
  # @ polylang
224
+ #: admin/settings.php:327
225
  msgid "Sticky posts"
226
  msgstr "Prioritäre Artikel"
227
 
228
  # @ polylang
229
+ #: admin/settings.php:328
230
  msgid "Published date"
231
  msgstr "Erscheinungsdatum"
232
 
233
  # @ polylang
234
+ #: admin/settings.php:329
235
  msgid "Post format"
236
  msgstr "Artikelformat"
237
 
238
  # @ default
239
+ #: admin/settings.php:330
240
  msgid "Page parent"
241
  msgstr "Elternseite"
242
 
243
  # @ polylang
244
+ #: admin/settings.php:331
245
  msgid "Page template"
246
  msgstr "Seitenvorlage"
247
 
248
  # @ polylang
249
+ #: admin/settings.php:332
250
  msgid "Page order"
251
  msgstr "Reihenfolge der Seiten"
252
 
253
  # @ polylang
254
+ #: admin/settings.php:333
255
  msgid "Featured image"
256
  msgstr "Vorgestelltes Bild"
257
 
258
  # @ polylang
259
+ #: admin/view-languages.php:42
260
  msgid "Edit language"
261
  msgstr "Sprache bearbeiten"
262
 
263
  # @ polylang
264
+ #: admin/view-languages.php:42
265
+ #: admin/view-languages.php:117
266
  msgid "Add new language"
267
  msgstr "Neue Sprache hinzufügen"
268
 
269
  # @ polylang
270
+ #: admin/view-languages.php:58
271
  msgid "Choose a language"
272
  msgstr "Sprache auswählen"
273
 
274
  # @ polylang
275
+ #: admin/view-languages.php:72
276
  msgid "You can choose a language in the list or directly edit it below."
277
+ msgstr "Du kannst eine Sprache in der Liste auswählen oder sie unten direkt bearbeiten."
 
 
278
 
279
  # @ polylang
280
+ #: admin/table-languages.php:74
281
+ #: admin/view-languages.php:76
282
  msgid "Full name"
283
  msgstr "Name"
284
 
285
  # @ polylang
286
+ #: admin/view-languages.php:78
287
  msgid "The name is how it is displayed on your site (for example: English)."
288
+ msgstr "Dieser Name wird dann auf der Website angezeigt (beispielsweise : Deutsch)"
 
289
 
290
  # @ polylang
291
+ #: admin/table-languages.php:75
292
+ #: admin/view-languages.php:82
293
  msgid "Locale"
294
  msgstr "Sprachdatei"
295
 
296
  # @ polylang
297
+ #: admin/view-languages.php:87
298
+ msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
299
+ msgstr "Wordpress Sprachdatei für die Sprache (beispielweise : de_DE). Du musst die .mo-Datei für diese Sprache installieren."
 
 
 
 
300
 
301
  # @ polylang
302
+ #: admin/view-languages.php:91
303
  msgid "Language code"
304
  msgstr "Sprachcode"
305
 
306
  # @ polylang
307
+ #: admin/view-languages.php:93
308
  msgid "2-letters ISO 639-1 language code (for example: en)"
309
  msgstr "2 Buchstaben ISO 639-1 Sprachcode (beispielsweise : de)"
310
 
311
  # @ polylang
312
+ #: admin/view-languages.php:97
313
  msgid "Text direction"
314
  msgstr "Textrichtung"
315
 
316
  # @ polylang
317
+ #: admin/view-languages.php:101
318
  msgid "left to right"
319
  msgstr "von links nach rechts"
320
 
321
  # @ polylang
322
+ #: admin/view-languages.php:106
323
  msgid "right to left"
324
  msgstr "von rechts nach links"
325
 
326
  # @ polylang
327
+ #: admin/view-languages.php:108
328
  msgid "Choose the text direction for the language"
329
  msgstr "Wählen Sie die Textrichtung für die Sprache aus"
330
 
331
  # @ polylang
332
+ #: admin/table-languages.php:77
333
+ #: admin/view-languages.php:112
334
  msgid "Order"
335
  msgstr "Reihenfolge"
336
 
337
  # @ polylang
338
+ #: admin/view-languages.php:114
339
  msgid "Position of the language in the language switcher"
340
  msgstr "Position der Sprache im Sprachenumschalter"
341
 
342
  # @ polylang
343
+ #: admin/admin-nav-menu.php:51
344
+ #: admin/admin-nav-menu.php:79
345
+ #: admin/admin-nav-menu.php:82
346
+ #: admin/admin-nav-menu.php:113
347
+ #: admin/admin-nav-menu.php:170
348
+ #: include/upgrade.php:175
349
  msgid "Language switcher"
350
  msgstr "Sprachenumschalter"
351
 
352
  # @ polylang
353
+ #: admin/view-languages.php:143
354
  msgid "Search translations"
355
  msgstr "Übersetzungen suchen"
356
 
357
  # @ polylang
358
+ #: admin/view-languages.php:146
359
  msgid "Clean strings translation database"
360
  msgstr "Datenbank der übersetzten Textbausteine säubern"
361
 
362
  # @ polylang
363
+ #: admin/view-languages.php:164
364
  msgid "Default language"
365
  msgstr "Standardsprache"
366
 
367
  # @ polylang
368
+ #: admin/view-languages.php:179
369
+ msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
370
+ msgstr "Es gibt Artikel, Seite, Kategorien oder Schlagwörter ohne Spracheinstellung. Willst du alle auf die Standardsprache einstellen ?"
 
 
 
 
371
 
372
  # @ polylang
373
+ #: admin/view-languages.php:187
374
  msgid "Detect browser language"
375
  msgstr "Browsersprache erkennen"
376
 
377
  # @ polylang
378
+ #: admin/view-languages.php:193
379
+ msgid "When the front page is visited, set the language according to the browser preference"
380
+ msgstr "Beim Besuch der Startseite erscheint sie in der Standardsprache des Browsers"
 
 
 
381
 
382
  # @ polylang
383
+ #: admin/view-languages.php:200
384
  msgid "URL modifications"
385
  msgstr "URL-Veränderungen"
386
 
387
  # @ polylang
388
+ #: admin/view-languages.php:206
389
+ msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
390
+ msgstr "Die Sprache ist auf den Inhalt abgestimmt. URLs von Artikeln, Seiten, Kategorien und Tags werden nicht verändert."
 
 
 
 
 
 
 
 
 
 
 
 
391
 
392
  # @ polylang
393
+ #: admin/view-languages.php:253
394
  msgid "Remove /language/ in pretty permalinks. Example:"
395
  msgstr "/language/ in Permalinks entfernen. Zum Beispiel :"
396
 
397
  # @ polylang
398
+ #: admin/view-languages.php:262
399
  msgid "Keep /language/ in pretty permalinks. Example:"
400
  msgstr "/language/ in schönen Permalinks behalten. Zum Beispiel :"
401
 
402
  # @ polylang
403
+ #: admin/view-languages.php:271
404
  msgid "Hide URL language information for default language"
405
  msgstr "URL Informationen für die Standardsprache verstecken"
406
 
407
+ #: admin/view-languages.php:281
408
  #, php-format
409
+ msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
410
+ msgstr "Wenn Sie eine statische Einstiegsseite benutzen, wird die Sprachenseite (Beispiel: %s) zur Einstiegsseite in der richtigen Sprache weitergeleitet"
 
 
 
 
411
 
412
  # @ polylang
413
+ #: admin/view-languages.php:290
414
  msgid "Media"
415
  msgstr "Medien"
416
 
417
  # @ polylang
418
+ #: admin/view-languages.php:296
419
  msgid "Activate languages and translations for media"
420
  msgstr "Sprachen und Übersetzungen für Medien aktivieren"
421
 
422
+ #: admin/view-languages.php:303
423
  msgid "Synchronization"
424
  msgstr "Synchronisierung"
425
 
426
  # @ polylang
427
+ #: admin/view-languages.php:320
428
  msgid "Custom post types"
429
  msgstr "Benutzerdefinierte Artikeltypen"
430
 
431
  # @ polylang
432
+ #: admin/view-languages.php:333
433
  msgid "Activate languages and translations for custom post types."
434
+ msgstr "Sprachen und Übersetzungen für benutzerdefinierte Artikeltypen aktivieren"
 
435
 
436
  # @ polylang
437
+ #: admin/view-languages.php:340
438
  msgid "Custom taxonomies"
439
  msgstr "Benutzerdefinierte Taxonomien"
440
 
441
  # @ polylang
442
+ #: admin/view-languages.php:353
443
  msgid "Activate languages and translations for custom taxonomies."
444
+ msgstr "Sprachen und Übersetzungen für benutzerdefinierte Taxonomien aktivieren"
 
445
 
446
  # @ polylang
447
+ #: admin/table-languages.php:54
448
+ #: admin/view-translations-media.php:24
449
+ #: admin/view-translations-media.php:62
450
+ #: admin/view-translations-post.php:10
451
+ #: admin/view-translations-post.php:33
452
+ #: admin/view-translations-term.php:18
453
+ #: admin/view-translations-term.php:80
454
  msgid "Edit"
455
  msgstr "Bearbeiten"
456
 
457
  # @ polylang
458
+ #: admin/table-languages.php:60
459
+ #: admin/table-string.php:167
460
  msgid "Delete"
461
  msgstr "Löschen"
462
 
463
  # @ polylang
464
+ #: admin/table-languages.php:76
465
  msgid "Code"
466
  msgstr "Code"
467
 
468
  # @ polylang
469
+ #: admin/table-languages.php:78
470
  msgid "Flag"
471
  msgstr "Fahne"
472
 
473
  # @ polylang
474
+ #: admin/table-languages.php:79
475
  msgid "Posts"
476
  msgstr "Artikel"
477
 
478
  # @ polylang
479
+ #: admin/table-string.php:109
480
  msgid "Name"
481
  msgstr "Name"
482
 
483
  # @ polylang
484
+ #: admin/table-string.php:110
485
  msgid "String"
486
  msgstr "Zeichenfolge"
487
 
488
  # @ polylang
489
+ #: admin/view-translations-media.php:8
490
+ #: admin/view-translations-media.php:46
491
+ #: admin/view-translations-term.php:16
492
  msgid "Translation"
493
  msgstr "Übersetzung"
494
 
495
  # @ polylang
496
+ #: admin/view-translations-media.php:33
497
+ #: admin/view-translations-media.php:70
498
+ #: admin/view-translations-post.php:38
499
+ #: admin/view-translations-term.php:60
500
  msgid "Add new"
501
  msgstr "Hinzufügen"
502
 
503
  # @ polylang
504
+ #: admin/view-translations-post.php:5
505
  msgid "ID of pages in other languages:"
506
  msgstr "ID der Seiten in anderen Sprachen :"
507
 
508
  # @ polylang
509
+ #: admin/view-translations-post.php:5
510
  msgid "ID of posts in other languages:"
511
  msgstr "ID der Artikel in anderen Sprachen :"
512
 
513
  # @ polylang
514
+ #: admin/view-translations-post.php:9
515
  msgid "Page ID"
516
  msgstr "ID der Seite"
517
 
518
  # @ polylang
519
+ #: admin/view-translations-post.php:9
520
  msgid "Post ID"
521
  msgstr "Artikel-ID"
522
 
523
  # @ polylang
524
+ #: admin/view-translations-term.php:48
525
  msgid "No untranslated term"
526
  msgstr "Kein unübersetzter Ausdruck"
527
 
528
  # @ polylang
529
+ #: include/widget-languages.php:16
530
  msgid "Language Switcher"
531
  msgstr "Sprachenumschalter"
532
 
533
  # @ polylang
534
+ #: include/widget-languages.php:16
535
  msgid "Displays a language switcher"
536
  msgstr "Zeigt einen Sprachenumschalter"
537
 
538
  # @ polylang
539
+ #: include/widget-languages.php:100
540
  msgid "Title:"
541
  msgstr "Titel :"
542
 
547
  msgstr "Ergänzt WordPress um Mehrsprachigkeit"
548
 
549
  # @ polylang
550
+ #: polylang.php:157
551
  #, php-format
552
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
553
  msgstr "Sie benutzen WordPress %s. Polylang benötigt mindestens WordPress %s."
554
 
555
  # @ polylang
556
+ #: include/upgrade.php:75
557
+ msgid "Polylang has been deactivated because you upgraded from a too old version."
558
+ msgstr "Polylang wurde deaktiviert, weil Sie von einer zu alten Version aktualisiert haben."
 
 
559
 
560
  # @ polylang
561
+ #: include/upgrade.php:77
 
 
 
 
 
 
 
 
562
  #, php-format
563
  msgid "Please upgrade first to %s before ugrading to %s."
564
+ msgstr "Bitte aktualisieren Sie zuerst nach % s bevor Sie nach % s aktualisieren."
 
565
 
566
  # @ polylang
567
+ #: admin/table-string.php:108
568
  msgid "Group"
569
  msgstr "Gruppe"
570
 
571
  # @ polylang
572
+ #: admin/table-string.php:186
573
  msgid "View all groups"
574
  msgstr "Alle Gruppen anzeigen"
575
+
576
+ # @ polylang
577
+ #: admin/table-languages.php:59
578
+ msgid "You are about to permanently delete this language. Are you sure?"
579
+ msgstr "Sie sind dabei, diese Sprache definitiv zu löschen. Sind Sie sicher?"
580
+
581
+ # @ polylang
582
+ #: admin/view-languages.php:147
583
+ msgid "Use this to remove unused strings from database, for example after a plugin has been uninstalled."
584
+ msgstr "Verwenden Sie diese Option, um nicht verwendete Zeichenfolgen aus der Datenbank zu entfernen, beispielsweise nachdem ein Plugin deinstalliert wurde."
585
+
586
+ # @ polylang
587
+ #: admin/view-languages.php:214
588
+ msgid "The language is set from the directory name in pretty permalinks. Example:"
589
+ msgstr "Die Sprache wird aus dem Verzeichnisnamen in schöne Permalinks gesetzt. Beispiel:"
590
+
591
+ # @ polylang
592
+ #: admin/view-languages.php:223
593
+ msgid "The language is set from the subdomain name in pretty permalinks. Example:"
594
+ msgstr "Die Sprache wird aus der Subdomain in schöne Permalinks gesetzt. Beispiel:"
595
+
596
+ # @ polylang
597
+ #: admin/view-languages.php:314
598
+ 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."
599
+ msgstr "Die Synchronisierungs-Optionen ermöglichen es, exakt gleiche Werte (oder Übersetzungen im Falle von Taxonomien und Elternseiten) der Metainhalte beizubehalten zwischen den Übersetzungen eines Artikels oder einer Seite."
600
+
601
+ # @ polylang
602
+ #: admin/settings.php:75
603
+ msgid "The language code contains invalid characters"
604
+ msgstr "Die Sprachenkodierung enthält ungültige Zeichen"
605
+
606
+ # @ polylang
607
+ #: admin/view-languages.php:232
608
+ msgid "The language is set from different domains:"
609
+ msgstr "Die Sprache ist von verschiedenen Domains aus gesetzt:"
610
+
611
+ #~ msgid ""
612
+ #~ "The language code, for example /en/, is added to all urls when using "
613
+ #~ "pretty permalinks."
614
+ #~ msgstr ""
615
+ #~ "Der Sprachenkode. z. B. /de/, wird alles URLs beigefügt falls schöne "
616
+ #~ "Permalinks benutzt werden."
languages/polylang-el.mo CHANGED
Binary file
languages/polylang-el.po CHANGED
@@ -4,9 +4,9 @@ msgstr ""
4
  "Project-Id-Version: polylang\n"
5
  "Report-Msgid-Bugs-To: \n"
6
  "POT-Creation-Date: \n"
7
- "PO-Revision-Date: 2013-04-24 13:51+0300\n"
8
  "Last-Translator: Theodotos Andreou <theo@ubuntucy.org>\n"
9
- "Language-Team: Ubuntucy - www.ubuntucy.org\n"
10
  "Language: el\n"
11
  "MIME-Version: 1.0\n"
12
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -21,7 +21,7 @@ msgstr ""
21
  "X-Poedit-SearchPath-0: ..\n"
22
 
23
  # @ polylang
24
- #: include/about.php:3
25
  #, php-format
26
  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."
27
  msgstr ""
@@ -32,7 +32,7 @@ msgstr ""
32
  "τους."
33
 
34
  # @ polylang
35
- #: include/about.php:9
36
  #, php-format
37
  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."
38
  msgstr ""
@@ -41,7 +41,7 @@ msgstr ""
41
  "καινούργιο θέμα."
42
 
43
  # @ polylang
44
- #: include/about.php:16
45
  #, php-format
46
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
47
  msgstr ""
@@ -49,530 +49,523 @@ msgstr ""
49
  "και το Wordpress, την %sΓενική Άδεια Χρήσης - GPL%s."
50
 
51
  # @ polylang
52
- #: include/about.php:22
53
  #, php-format
54
  msgid "If you wonder how you can help the project, just %sread this%s."
55
  msgstr "Αν θέλετε να βοηθήσετε, απλά, %sδιαβάστε εδώ%s."
56
 
57
  # @ polylang
58
- #: include/about.php:27
59
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
60
  msgstr ""
61
  "Τέλος αν σας αρέσει αυτό το πρόσθετο ή αν σας βοηθά στην επιχείρηση σας, οι "
62
  "δωρεές στο δημιουργό θα εκτιμηθούν ιδιαίτερα. "
63
 
64
  # @ polylang
65
- #: include/admin-base.php:55
66
- #: include/admin-base.php:190
67
- #: include/admin-filters.php:243
68
- #: include/admin.php:23
69
- #: include/admin.php:301
70
- #: include/list-table.php:13
71
- #: polylang.php:339
72
  msgid "Languages"
73
  msgstr "Γλώσσες"
74
 
75
  # @ polylang
76
- #: include/admin-base.php:153
77
  msgid "Displays language names"
78
  msgstr "Εμφάνιση ονομάτων γλώσσας"
79
 
80
  # @ polylang
81
- #: include/admin-base.php:154
82
  msgid "Displays flags"
83
  msgstr "Εμφάνιση σημαιών"
84
 
85
  # @ polylang
86
- #: include/admin-base.php:155
87
  msgid "Forces link to front page"
88
  msgstr "Υποχρεωτική παραπομπή συνδέσμου στην αρχική σελίδα"
89
 
90
  # @ polylang
91
- #: include/admin-base.php:156
92
  msgid "Hides the current language"
93
  msgstr "Απόκρυψη τρέχουσας γλώσσας"
94
 
95
  # @ polylang
96
- #: include/admin-base.php:160
97
  msgid "Displays as dropdown"
98
  msgstr "Εμφάνιση σαν κυλιόμενο μενού"
99
 
100
  # @ polylang
101
- #: include/admin-base.php:191
102
  msgid "Filters content by language"
103
  msgstr "Φιλτράρισμα περιεχομένου βάση γλώσσας"
104
 
105
  # @ polylang
106
- #: include/admin-base.php:186
107
  msgid "Show all languages"
108
  msgstr "Εμφάνιση όλων των γλωσσών"
109
 
110
  # @ polylang
111
- #: include/admin-filters.php:181
112
- #: include/admin-filters.php:877
113
  msgid "Add new translation"
114
  msgstr "Προσθήκη νέας μετάφρασης"
115
 
116
  # @ polylang
117
- #: include/admin-filters.php:209
118
- #: include/admin-filters.php:267
119
- #: include/admin-filters.php:601
120
- #: include/admin-filters.php:817
121
- #: include/admin-filters.php:835
122
- #: include/list-table.php:12
123
- #: include/media-translations.php:5
124
- #: include/media-translations.php:43
125
- #: include/post-translations.php:8
126
- #: include/term-translations.php:15
127
- #: polylang.php:340
128
  msgid "Language"
129
  msgstr "Γλώσσα"
130
 
131
  # @ polylang
132
- #: include/admin-filters.php:616
133
- #: include/admin-filters.php:651
134
- #: include/list-table.php:127
135
- #: include/media-translations.php:40
136
- #: include/term-translations.php:6
137
- #: include/term-translations.php:11
138
  msgid "Translations"
139
  msgstr "Μεταφράσεις"
140
 
141
  # @ polylang
142
- #: include/admin-filters.php:819
143
- #: include/admin-filters.php:838
144
  msgid "Sets the language"
145
  msgstr "Ορισμός γλώσσας"
146
 
147
  # @ polylang
148
- #: include/admin-filters.php:1053
149
  msgid "The widget is displayed for:"
150
  msgstr "Η μονάδα εμφανίζεται για:"
151
 
152
  # @ polylang
153
- #: include/admin-filters.php:1057
154
- #: polylang.php:341
155
  msgid "All languages"
156
  msgstr "Όλες οι γλώσσες"
157
 
158
  # @ polylang
159
- #: include/admin-filters.php:1080
160
  msgid "Admin language"
161
  msgstr "Γλώσσα διαχείρισης"
162
 
163
- #: include/admin-filters.php:1085
164
  msgid "Wordpress default"
165
  msgstr "Προκαθορισμένο σε Wordpress"
166
 
167
  # @ default
168
  # @ polylang
169
- #: include/admin-filters.php:1114
170
- #: include/admin.php:306
171
  msgid "Settings"
172
  msgstr "Ρυθμίσεις"
173
 
174
  # @ polylang
175
- #: include/admin-filters.php:1120
176
  msgid "Upgrading language files&#8230;"
177
  msgstr "Αναβάθμιση αρχείων γλώσσας&#8230;"
178
 
179
  # @ polylang
180
- #: include/admin.php:22
181
  msgid "About Polylang"
182
  msgstr "Σχετικά με το Polylang"
183
 
184
  # @ polylang
185
- #: include/admin.php:27
186
- #: include/list-table.php:82
187
  msgid "Strings translations"
188
  msgstr "Μετάφραση συμβολοσειρών"
189
 
190
  # @ polylang
191
- #: include/admin.php:305
192
- #: include/list-table.php:81
193
  msgid "Strings translation"
194
  msgstr "Μετάφραση συμβολοσειρών"
195
 
196
  # @ polylang
197
- #: include/admin.php:345
198
- msgid "Enter a valid WorPress locale"
199
  msgstr "Εισάγετε μια έγκυρη τοπικοποίηση Wordpress"
200
 
201
  # @ polylang
202
- #: include/admin.php:346
203
- msgid "The language code must be 2 characters long"
204
- msgstr "Ο κώδικας γλώσσας θα πρέπει να είναι 2 χαρακτήρες"
205
-
206
- # @ polylang
207
- #: include/admin.php:328
208
  msgid "The language code must be unique"
209
  msgstr "Ο κώδικας γλώσσας θα πρέπει να είναι μοναδικός"
210
 
211
  # @ polylang
212
- #: include/admin.php:329
213
  msgid "The language must have a name"
214
  msgstr "Η γλώσσα πρέπει να έχει όνομα"
215
 
216
  # @ polylang
217
- #: include/admin.php:330
218
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
219
  msgstr ""
220
  "Η γλώσσα δημιουργήθηκε αλλά το αρχείο γλώσσας του Wordpress δεν έχει "
221
  "κατέβει. Παρακαλώ εγκαταστήστε το εσείς."
222
 
223
  # @ polylang
224
- #: include/admin.php:449
225
  msgid "Widget title"
226
  msgstr "Τίτλος μονάδας"
227
 
228
  # @ polylang
229
- #: include/base.php:368
230
  msgid "Taxonomies"
231
  msgstr "Ταξινομήσεις"
232
 
233
  # @ polylang
234
- #: include/base.php:369
235
  msgid "Custom fields"
236
  msgstr "Προσαρμοσμένα πεδία"
237
 
238
  # @ polylang
239
- #: include/base.php:370
240
  msgid "Comment status"
241
  msgstr "Κατάσταση σχολίου"
242
 
243
  # @ polylang
244
- #: include/base.php:371
245
  msgid "Ping status"
246
  msgstr "Κατάσταση ping"
247
 
248
  # @ polylang
249
- #: include/base.php:372
250
  msgid "Sticky posts"
251
  msgstr "Μόνιμα άρθρα"
252
 
253
  # @ polylang
254
- #: include/base.php:373
255
  msgid "Published date"
256
  msgstr "Ημερομηνία δημοσίευσης"
257
 
258
  # @ polylang
259
- #: include/base.php:374
260
  msgid "Post format"
261
  msgstr "Μορφή άρθρου"
262
 
263
  # @ default
264
- #: include/base.php:375
265
  msgid "Page parent"
266
  msgstr "Μητρική σελίδα"
267
 
268
  # @ polylang
269
- #: include/base.php:376
270
  msgid "Page template"
271
  msgstr "Πρότυπο σελίδας"
272
 
273
  # @ polylang
274
- #: include/base.php:377
275
  msgid "Page order"
276
  msgstr "Διάταξη σελίδων"
277
 
278
  # @ polylang
279
- #: include/base.php:378
280
  msgid "Featured image"
281
  msgstr "Επιλεγμένη εικόνα"
282
 
283
  # @ polylang
284
- #: include/languages-form.php:42
285
  msgid "Edit language"
286
  msgstr "Επεξεργασία γλώσσας"
287
 
288
  # @ polylang
289
- #: include/languages-form.php:42
290
- #: include/languages-form.php:123
291
  msgid "Add new language"
292
  msgstr "Προσθήκη νέας γλώσσας"
293
 
294
  # @ polylang
295
- #: include/languages-form.php:64
296
  msgid "Choose a language"
297
  msgstr "Επιλογή γλώσσας"
298
 
299
  # @ polylang
300
- #: include/languages-form.php:78
301
  msgid "You can choose a language in the list or directly edit it below."
302
  msgstr ""
303
  "Μπορείτε να επιλέξετε μια γλώσσα από την λίστα ή να την επεξεργαστείτε πιο "
304
  "κάτω."
305
 
306
  # @ polylang
307
- #: include/languages-form.php:82
308
- #: include/list-table.php:34
309
  msgid "Full name"
310
  msgstr "Πλήρες όνομα"
311
 
312
  # @ polylang
313
- #: include/languages-form.php:84
314
  msgid "The name is how it is displayed on your site (for example: English)."
315
  msgstr "Το όνομα καθορίζει πως θα εμφανίζεται στην σελίδα σας (πχ: Ελληνικά)."
316
 
317
  # @ polylang
318
- #: include/languages-form.php:88
319
- #: include/list-table.php:35
320
  msgid "Locale"
321
  msgstr "Τοπικοποίηση"
322
 
323
  # @ polylang
324
- #: include/languages-form.php:93
325
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
326
  msgstr ""
327
  "Τοπικοποίηση Wordpress για την γλώσσα (πχ: en_US). Θα χρειαστεί να "
328
  "εγκαταστήσετε το αρχείο .mo για αυτή την γλώσσα."
329
 
330
  # @ polylang
331
- #: include/languages-form.php:97
332
  msgid "Language code"
333
  msgstr "Κώδικας γλώσσας"
334
 
335
  # @ polylang
336
- #: include/languages-form.php:99
337
  msgid "2-letters ISO 639-1 language code (for example: en)"
338
  msgstr "ISO 639-1 κώδικας γλώσσας 2 χαρακτήρων (πχ: en)"
339
 
340
  # @ polylang
341
- #: include/languages-form.php:103
342
  msgid "Text direction"
343
  msgstr "Κατεύθυνση κειμένου"
344
 
345
  # @ polylang
346
- #: include/languages-form.php:107
347
  msgid "left to right"
348
  msgstr "αριστερά προς δεξιά"
349
 
350
  # @ polylang
351
- #: include/languages-form.php:112
352
  msgid "right to left"
353
  msgstr "δεξιά προς αριστερά"
354
 
355
  # @ polylang
356
- #: include/languages-form.php:114
357
  msgid "Choose the text direction for the language"
358
  msgstr "Επιλογή κατεύθυνσης κειμένου για γλώσσα"
359
 
360
  # @ polylang
361
- #: include/languages-form.php:118
362
- #: include/list-table.php:37
363
  msgid "Order"
364
  msgstr "Εντολή"
365
 
366
  # @ polylang
367
- #: include/languages-form.php:120
368
  msgid "Position of the language in the language switcher"
369
  msgstr "Θέση της γλώσσας στον επιλογέα γλώσσας"
370
 
371
  # @ polylang
372
- #: include/nav-menu.php:28
373
- #: include/nav-menu.php:51
374
- #: include/nav-menu.php:54
375
- #: include/nav-menu.php:82
376
- #: include/nav-menu.php:106
377
- #: polylang.php:302
378
  msgid "Language switcher"
379
  msgstr "Επιλογέας γλώσσας"
380
 
381
  # @ polylang
382
- #: include/languages-form.php:148
383
  msgid "Search translations"
384
  msgstr "Αναζήτηση μεταφράσεων"
385
 
386
  # @ polylang
387
- #: include/languages-form.php:151
388
  msgid "Clean strings translation database"
389
  msgstr "Καθαρισμός βάσης δεδομένων συμβολοσειρών μετάφρασης"
390
 
391
  # @ polylang
392
- #: include/languages-form.php:167
393
  msgid "Default language"
394
  msgstr "Προκαθορισμένη γλώσσα"
395
 
396
  # @ polylang
397
- #: include/languages-form.php:179
398
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
399
  msgstr ""
400
  "Υπάρχουν άρθρα, σελίδες, κατηγορίες ή ετικέτες χωρίς καθορισμό γλώσσας. "
401
  "Θέλετε να οριστούν όλα στην προκαθορισμένη γλώσσα;"
402
 
403
  # @ polylang
404
- #: include/languages-form.php:187
405
  msgid "Detect browser language"
406
  msgstr "Αναγνώριση γλώσσας φυλλομετρητή"
407
 
408
  # @ polylang
409
- #: include/languages-form.php:193
410
  msgid "When the front page is visited, set the language according to the browser preference"
411
- msgstr "Όταν καλείται η αρχική σελίδα, να καθορίζεται η γλώσσα βάση των προτιμήσεων του φυλλομετρητή"
 
 
412
 
413
  # @ polylang
414
- #: include/languages-form.php:200
415
  msgid "URL modifications"
416
  msgstr "Τροποποιήσεις URL"
417
 
418
  # @ polylang
419
- #: include/languages-form.php:206
420
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
421
- msgstr "Η γλώσσα ορίσθηκε βάση του περιεχομένου. Οι διευθύνσεις URL των άρθρων, σελίδων και ετικετών δεν έχουν τροποποιηθεί."
422
-
423
- #: include/languages-form.php:214
424
- msgid "The language code, for example /en/, is added to all urls when using pretty permalinks."
425
- msgstr "Ο κώδικας γλώσσας, για παράδειγμα /el/, προστίθεται σε όλες τις διευθύνσεις URL όταν χρησιμοποιούνται ευδιάκριτοι μόνιμοι σύνδεσμοι."
426
 
427
  # @ polylang
428
- #: include/languages-form.php:223
429
  msgid "Remove /language/ in pretty permalinks. Example:"
430
  msgstr "Αφαίρεση /language/ από ευδιάκριτους μόνιμους συνδέσμους. Παράδειγμα:"
431
 
432
  # @ polylang
433
- #: include/languages-form.php:232
434
  msgid "Keep /language/ in pretty permalinks. Example:"
435
  msgstr "Διατήρηση /language/ σε ευδιάκριτους μόνιμους συνδέσμους. Παράδειγμα:"
436
 
437
  # @ polylang
438
- #: include/languages-form.php:241
439
  msgid "Hide URL language information for default language"
440
  msgstr "Απόκρυψη των πληροφοριών γλώσσας από URL, για την προκαθορισμένη γλώσσα"
441
 
442
  # @ polylang
443
- #: include/languages-form.php:251
444
  #, php-format
445
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
446
- msgstr "Όταν υπάρχει στατική αρχική σελίδα, να γίνεται ανακατεύθυνση της σελίδας γλώσσας (παράδειγμα: %s) της αρχικής σελίδας στην σωστή γλώσσα"
 
 
447
 
448
  # @ polylang
449
- #: include/languages-form.php:260
450
  msgid "Media"
451
  msgstr "Μέσα"
452
 
453
  # @ polylang
454
- #: include/languages-form.php:266
455
  msgid "Activate languages and translations for media"
456
  msgstr "Ενεργοποίηση γλωσσών και μεταφράσεων για μέσο"
457
 
458
- #: include/languages-form.php:273
459
  msgid "Synchronization"
460
  msgstr "Συγχρονισμός"
461
 
462
  # @ polylang
463
- #: include/languages-form.php:287
464
  msgid "Custom post types"
465
  msgstr "Ειδικοί τύποι άρθρων"
466
 
467
  # @ polylang
468
- #: include/languages-form.php:300
469
  msgid "Activate languages and translations for custom post types."
470
  msgstr "Ενεργοποίηση γλωσσών και μεταφράσεων για ειδικούς τύπους άρθρων"
471
 
472
  # @ polylang
473
- #: include/languages-form.php:307
474
  msgid "Custom taxonomies"
475
  msgstr "Ειδικές ταξινομίσεις"
476
 
477
  # @ polylang
478
- #: include/languages-form.php:320
479
  msgid "Activate languages and translations for custom taxonomies."
480
  msgstr "Ενεργοποίηση γλωσσών και μεταφράσεων για ειδικές ταξινομίσεις"
481
 
482
  # @ polylang
483
- #: include/list-table.php:26
484
- #: include/media-translations.php:22
485
- #: include/media-translations.php:60
486
- #: include/post-translations.php:10
487
- #: include/post-translations.php:33
488
- #: include/term-translations.php:18
489
- #: include/term-translations.php:80
490
  msgid "Edit"
491
  msgstr "Επεξεργασία"
492
 
493
  # @ polylang
494
- #: include/list-table.php:27
495
- #: include/list-table.php:162
496
  msgid "Delete"
497
  msgstr "Διαγραφή"
498
 
499
  # @ polylang
500
- #: include/list-table.php:36
501
  msgid "Code"
502
  msgstr "Κώδικας"
503
 
504
  # @ polylang
505
- #: include/list-table.php:38
506
  msgid "Flag"
507
  msgstr "Σημαία"
508
 
509
  # @ polylang
510
- #: include/list-table.php:39
511
  msgid "Posts"
512
  msgstr "Άρθρα"
513
 
514
  # @ polylang
515
- #: include/list-table.php:125
516
  msgid "Name"
517
  msgstr "Όνομα"
518
 
519
  # @ polylang
520
- #: include/list-table.php:126
521
  msgid "String"
522
  msgstr "Συμβολοσειρά"
523
 
524
  # @ polylang
525
- #: include/media-translations.php:6
526
- #: include/media-translations.php:44
527
- #: include/term-translations.php:16
528
  msgid "Translation"
529
  msgstr "Μετάφραση"
530
 
531
  # @ polylang
532
- #: include/media-translations.php:31
533
- #: include/media-translations.php:68
534
- #: include/post-translations.php:38
535
- #: include/term-translations.php:60
536
  msgid "Add new"
537
  msgstr "Προσθήκη νέου"
538
 
539
  # @ polylang
540
- #: include/post-translations.php:5
541
  msgid "ID of pages in other languages:"
542
  msgstr "ID των σελίδων σε άλλες γλώσσες:"
543
 
544
  # @ polylang
545
- #: include/post-translations.php:5
546
  msgid "ID of posts in other languages:"
547
  msgstr "ID των άρθρων σε άλλες γλώσσες:"
548
 
549
  # @ polylang
550
- #: include/post-translations.php:9
551
  msgid "Page ID"
552
  msgstr "ID σελίδας"
553
 
554
  # @ polylang
555
- #: include/post-translations.php:9
556
  msgid "Post ID"
557
  msgstr "ID άρθρου"
558
 
559
  # @ polylang
560
- #: include/term-translations.php:48
561
  msgid "No untranslated term"
562
  msgstr "Απουσία αμετάφραστου όρου"
563
 
564
  # @ polylang
565
- #: include/widget.php:6
566
  msgid "Language Switcher"
567
  msgstr "Επιλογέας γλώσσας"
568
 
569
  # @ polylang
570
- #: include/widget.php:6
571
  msgid "Displays a language switcher"
572
  msgstr "Εμφάνιση επιλογέα γλώσσας"
573
 
574
  # @ polylang
575
- #: include/widget.php:69
576
  msgid "Title:"
577
  msgstr "Τίτλος:"
578
 
@@ -583,33 +576,83 @@ msgid "Adds multilingual capability to WordPress"
583
  msgstr "Προσθέτει πολυγλωσσική δυνατότητα στο WordPress"
584
 
585
  # @ polylang
586
- #: polylang.php:133
587
  #, php-format
588
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
589
- msgstr "Χρησιμοποιείτε WordPress %s. Το Polylang χρειάζεται τουλάχιστον WordPress %s."
590
-
591
- # @ polylang
592
- #: polylang.php:174
593
- msgid "For some reasons, Polylang could not create a table in your database."
594
- msgstr "Το Polylang δεν μπόρεσε να δημιουργήσει πίνακα στην βάση δεδομένων σας, για κάποιο λόγο."
595
 
596
  # @ polylang
597
- #: polylang.php:235
598
  msgid "Polylang has been deactivated because you upgraded from a too old version."
599
- msgstr "Το Polylang έχει απενεργοποιηθεί γιατί αναβαθμίσατε από πολύ παλιά έκδοση."
 
600
 
601
  # @ polylang
602
- #: polylang.php:237
603
  #, php-format
604
  msgid "Please upgrade first to %s before ugrading to %s."
605
  msgstr "Παρακαλώ αναβαθμίστε πρώτα σε %s πριν αναβαθμίσετε σε %s"
606
 
607
  # @ polylang
608
- #: include/list-table.php:124
609
  msgid "Group"
610
- msgstr ""
611
 
612
  # @ polylang
613
- #: include/list-table.php:173
614
  msgid "View all groups"
615
  msgstr "Προβολή όλων των ομάδων"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  "Project-Id-Version: polylang\n"
5
  "Report-Msgid-Bugs-To: \n"
6
  "POT-Creation-Date: \n"
7
+ "PO-Revision-Date: 2013-10-20 14:56+0300\n"
8
  "Last-Translator: Theodotos Andreou <theo@ubuntucy.org>\n"
9
+ "Language-Team: Cyprus Ubuntu Loco Team\n"
10
  "Language: el\n"
11
  "MIME-Version: 1.0\n"
12
  "Content-Type: text/plain; charset=UTF-8\n"
21
  "X-Poedit-SearchPath-0: ..\n"
22
 
23
  # @ polylang
24
+ #: admin/view-about.php:3
25
  #, php-format
26
  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."
27
  msgstr ""
32
  "τους."
33
 
34
  # @ polylang
35
+ #: admin/view-about.php:9
36
  #, php-format
37
  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."
38
  msgstr ""
41
  "καινούργιο θέμα."
42
 
43
  # @ polylang
44
+ #: admin/view-about.php:16
45
  #, php-format
46
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
47
  msgstr ""
49
  "και το Wordpress, την %sΓενική Άδεια Χρήσης - GPL%s."
50
 
51
  # @ polylang
52
+ #: admin/view-about.php:22
53
  #, php-format
54
  msgid "If you wonder how you can help the project, just %sread this%s."
55
  msgstr "Αν θέλετε να βοηθήσετε, απλά, %sδιαβάστε εδώ%s."
56
 
57
  # @ polylang
58
+ #: admin/view-about.php:27
59
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
60
  msgstr ""
61
  "Τέλος αν σας αρέσει αυτό το πρόσθετο ή αν σας βοηθά στην επιχείρηση σας, οι "
62
  "δωρεές στο δημιουργό θα εκτιμηθούν ιδιαίτερα. "
63
 
64
  # @ polylang
65
+ #: admin/admin-filters-post.php:76
66
+ #: admin/admin.php:83
67
+ #: admin/admin.php:187
68
+ #: admin/settings.php:42
69
+ #: admin/settings.php:57
70
+ #: include/model.php:490
 
71
  msgid "Languages"
72
  msgstr "Γλώσσες"
73
 
74
  # @ polylang
75
+ #: include/switcher.php:22
76
  msgid "Displays language names"
77
  msgstr "Εμφάνιση ονομάτων γλώσσας"
78
 
79
  # @ polylang
80
+ #: include/switcher.php:23
81
  msgid "Displays flags"
82
  msgstr "Εμφάνιση σημαιών"
83
 
84
  # @ polylang
85
+ #: include/switcher.php:24
86
  msgid "Forces link to front page"
87
  msgstr "Υποχρεωτική παραπομπή συνδέσμου στην αρχική σελίδα"
88
 
89
  # @ polylang
90
+ #: include/switcher.php:25
91
  msgid "Hides the current language"
92
  msgstr "Απόκρυψη τρέχουσας γλώσσας"
93
 
94
  # @ polylang
95
+ #: include/switcher.php:29
96
  msgid "Displays as dropdown"
97
  msgstr "Εμφάνιση σαν κυλιόμενο μενού"
98
 
99
  # @ polylang
100
+ #: admin/admin.php:188
101
  msgid "Filters content by language"
102
  msgstr "Φιλτράρισμα περιεχομένου βάση γλώσσας"
103
 
104
  # @ polylang
105
+ #: admin/admin.php:183
106
  msgid "Show all languages"
107
  msgstr "Εμφάνιση όλων των γλωσσών"
108
 
109
  # @ polylang
110
+ #: admin/admin-filters-columns.php:126
111
+ #: admin/admin-filters-columns.php:215
112
  msgid "Add new translation"
113
  msgstr "Προσθήκη νέας μετάφρασης"
114
 
115
  # @ polylang
116
+ #: admin/admin-filters-columns.php:163
117
+ #: admin/admin-filters-media.php:58
118
+ #: admin/admin-filters-post.php:109
119
+ #: admin/admin-filters-term.php:72
120
+ #: admin/admin-filters-term.php:106
121
+ #: admin/view-translations-media.php:7
122
+ #: admin/view-translations-media.php:45
123
+ #: admin/view-translations-post.php:8
124
+ #: admin/view-translations-term.php:15
125
+ #: include/model.php:491
 
126
  msgid "Language"
127
  msgstr "Γλώσσα"
128
 
129
  # @ polylang
130
+ #: admin/admin-filters-media.php:73
131
+ #: admin/admin-filters-media.php:112
132
+ #: admin/table-string.php:111
133
+ #: admin/view-translations-media.php:42
134
+ #: admin/view-translations-term.php:6
135
+ #: admin/view-translations-term.php:11
136
  msgid "Translations"
137
  msgstr "Μεταφράσεις"
138
 
139
  # @ polylang
140
+ #: admin/admin-filters-term.php:74
141
+ #: admin/admin-filters-term.php:108
142
  msgid "Sets the language"
143
  msgstr "Ορισμός γλώσσας"
144
 
145
  # @ polylang
146
+ #: admin/admin-filters.php:60
147
  msgid "The widget is displayed for:"
148
  msgstr "Η μονάδα εμφανίζεται για:"
149
 
150
  # @ polylang
151
+ #: admin/admin-filters.php:63
152
+ #: include/model.php:492
153
  msgid "All languages"
154
  msgstr "Όλες οι γλώσσες"
155
 
156
  # @ polylang
157
+ #: admin/admin-filters.php:120
158
  msgid "Admin language"
159
  msgstr "Γλώσσα διαχείρισης"
160
 
161
+ #: admin/admin-filters.php:123
162
  msgid "Wordpress default"
163
  msgstr "Προκαθορισμένο σε Wordpress"
164
 
165
  # @ default
166
  # @ polylang
167
+ #: admin/admin.php:123
168
+ #: admin/settings.php:62
169
  msgid "Settings"
170
  msgstr "Ρυθμίσεις"
171
 
172
  # @ polylang
173
+ #: admin/admin-filters.php:151
174
  msgid "Upgrading language files&#8230;"
175
  msgstr "Αναβάθμιση αρχείων γλώσσας&#8230;"
176
 
177
  # @ polylang
178
+ #: admin/settings.php:38
179
  msgid "About Polylang"
180
  msgstr "Σχετικά με το Polylang"
181
 
182
  # @ polylang
183
+ #: admin/settings.php:46
 
184
  msgid "Strings translations"
185
  msgstr "Μετάφραση συμβολοσειρών"
186
 
187
  # @ polylang
188
+ #: admin/settings.php:61
 
189
  msgid "Strings translation"
190
  msgstr "Μετάφραση συμβολοσειρών"
191
 
192
  # @ polylang
193
+ #: admin/settings.php:74
194
+ msgid "Enter a valid WordPress locale"
195
  msgstr "Εισάγετε μια έγκυρη τοπικοποίηση Wordpress"
196
 
197
  # @ polylang
198
+ #: admin/settings.php:76
 
 
 
 
 
199
  msgid "The language code must be unique"
200
  msgstr "Ο κώδικας γλώσσας θα πρέπει να είναι μοναδικός"
201
 
202
  # @ polylang
203
+ #: admin/settings.php:77
204
  msgid "The language must have a name"
205
  msgstr "Η γλώσσα πρέπει να έχει όνομα"
206
 
207
  # @ polylang
208
+ #: admin/settings.php:78
209
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
210
  msgstr ""
211
  "Η γλώσσα δημιουργήθηκε αλλά το αρχείο γλώσσας του Wordpress δεν έχει "
212
  "κατέβει. Παρακαλώ εγκαταστήστε το εσείς."
213
 
214
  # @ polylang
215
+ #: admin/settings.php:305
216
  msgid "Widget title"
217
  msgstr "Τίτλος μονάδας"
218
 
219
  # @ polylang
220
+ #: admin/settings.php:323
221
  msgid "Taxonomies"
222
  msgstr "Ταξινομήσεις"
223
 
224
  # @ polylang
225
+ #: admin/settings.php:324
226
  msgid "Custom fields"
227
  msgstr "Προσαρμοσμένα πεδία"
228
 
229
  # @ polylang
230
+ #: admin/settings.php:325
231
  msgid "Comment status"
232
  msgstr "Κατάσταση σχολίου"
233
 
234
  # @ polylang
235
+ #: admin/settings.php:326
236
  msgid "Ping status"
237
  msgstr "Κατάσταση ping"
238
 
239
  # @ polylang
240
+ #: admin/settings.php:327
241
  msgid "Sticky posts"
242
  msgstr "Μόνιμα άρθρα"
243
 
244
  # @ polylang
245
+ #: admin/settings.php:328
246
  msgid "Published date"
247
  msgstr "Ημερομηνία δημοσίευσης"
248
 
249
  # @ polylang
250
+ #: admin/settings.php:329
251
  msgid "Post format"
252
  msgstr "Μορφή άρθρου"
253
 
254
  # @ default
255
+ #: admin/settings.php:330
256
  msgid "Page parent"
257
  msgstr "Μητρική σελίδα"
258
 
259
  # @ polylang
260
+ #: admin/settings.php:331
261
  msgid "Page template"
262
  msgstr "Πρότυπο σελίδας"
263
 
264
  # @ polylang
265
+ #: admin/settings.php:332
266
  msgid "Page order"
267
  msgstr "Διάταξη σελίδων"
268
 
269
  # @ polylang
270
+ #: admin/settings.php:333
271
  msgid "Featured image"
272
  msgstr "Επιλεγμένη εικόνα"
273
 
274
  # @ polylang
275
+ #: admin/view-languages.php:42
276
  msgid "Edit language"
277
  msgstr "Επεξεργασία γλώσσας"
278
 
279
  # @ polylang
280
+ #: admin/view-languages.php:42
281
+ #: admin/view-languages.php:117
282
  msgid "Add new language"
283
  msgstr "Προσθήκη νέας γλώσσας"
284
 
285
  # @ polylang
286
+ #: admin/view-languages.php:58
287
  msgid "Choose a language"
288
  msgstr "Επιλογή γλώσσας"
289
 
290
  # @ polylang
291
+ #: admin/view-languages.php:72
292
  msgid "You can choose a language in the list or directly edit it below."
293
  msgstr ""
294
  "Μπορείτε να επιλέξετε μια γλώσσα από την λίστα ή να την επεξεργαστείτε πιο "
295
  "κάτω."
296
 
297
  # @ polylang
298
+ #: admin/table-languages.php:74
299
+ #: admin/view-languages.php:76
300
  msgid "Full name"
301
  msgstr "Πλήρες όνομα"
302
 
303
  # @ polylang
304
+ #: admin/view-languages.php:78
305
  msgid "The name is how it is displayed on your site (for example: English)."
306
  msgstr "Το όνομα καθορίζει πως θα εμφανίζεται στην σελίδα σας (πχ: Ελληνικά)."
307
 
308
  # @ polylang
309
+ #: admin/table-languages.php:75
310
+ #: admin/view-languages.php:82
311
  msgid "Locale"
312
  msgstr "Τοπικοποίηση"
313
 
314
  # @ polylang
315
+ #: admin/view-languages.php:87
316
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
317
  msgstr ""
318
  "Τοπικοποίηση Wordpress για την γλώσσα (πχ: en_US). Θα χρειαστεί να "
319
  "εγκαταστήσετε το αρχείο .mo για αυτή την γλώσσα."
320
 
321
  # @ polylang
322
+ #: admin/view-languages.php:91
323
  msgid "Language code"
324
  msgstr "Κώδικας γλώσσας"
325
 
326
  # @ polylang
327
+ #: admin/view-languages.php:93
328
  msgid "2-letters ISO 639-1 language code (for example: en)"
329
  msgstr "ISO 639-1 κώδικας γλώσσας 2 χαρακτήρων (πχ: en)"
330
 
331
  # @ polylang
332
+ #: admin/view-languages.php:97
333
  msgid "Text direction"
334
  msgstr "Κατεύθυνση κειμένου"
335
 
336
  # @ polylang
337
+ #: admin/view-languages.php:101
338
  msgid "left to right"
339
  msgstr "αριστερά προς δεξιά"
340
 
341
  # @ polylang
342
+ #: admin/view-languages.php:106
343
  msgid "right to left"
344
  msgstr "δεξιά προς αριστερά"
345
 
346
  # @ polylang
347
+ #: admin/view-languages.php:108
348
  msgid "Choose the text direction for the language"
349
  msgstr "Επιλογή κατεύθυνσης κειμένου για γλώσσα"
350
 
351
  # @ polylang
352
+ #: admin/table-languages.php:77
353
+ #: admin/view-languages.php:112
354
  msgid "Order"
355
  msgstr "Εντολή"
356
 
357
  # @ polylang
358
+ #: admin/view-languages.php:114
359
  msgid "Position of the language in the language switcher"
360
  msgstr "Θέση της γλώσσας στον επιλογέα γλώσσας"
361
 
362
  # @ polylang
363
+ #: admin/admin-nav-menu.php:51
364
+ #: admin/admin-nav-menu.php:79
365
+ #: admin/admin-nav-menu.php:82
366
+ #: admin/admin-nav-menu.php:113
367
+ #: admin/admin-nav-menu.php:170
368
+ #: include/upgrade.php:175
369
  msgid "Language switcher"
370
  msgstr "Επιλογέας γλώσσας"
371
 
372
  # @ polylang
373
+ #: admin/view-languages.php:143
374
  msgid "Search translations"
375
  msgstr "Αναζήτηση μεταφράσεων"
376
 
377
  # @ polylang
378
+ #: admin/view-languages.php:146
379
  msgid "Clean strings translation database"
380
  msgstr "Καθαρισμός βάσης δεδομένων συμβολοσειρών μετάφρασης"
381
 
382
  # @ polylang
383
+ #: admin/view-languages.php:164
384
  msgid "Default language"
385
  msgstr "Προκαθορισμένη γλώσσα"
386
 
387
  # @ polylang
388
+ #: admin/view-languages.php:179
389
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
390
  msgstr ""
391
  "Υπάρχουν άρθρα, σελίδες, κατηγορίες ή ετικέτες χωρίς καθορισμό γλώσσας. "
392
  "Θέλετε να οριστούν όλα στην προκαθορισμένη γλώσσα;"
393
 
394
  # @ polylang
395
+ #: admin/view-languages.php:187
396
  msgid "Detect browser language"
397
  msgstr "Αναγνώριση γλώσσας φυλλομετρητή"
398
 
399
  # @ polylang
400
+ #: admin/view-languages.php:193
401
  msgid "When the front page is visited, set the language according to the browser preference"
402
+ msgstr ""
403
+ "Όταν καλείται η αρχική σελίδα, να καθορίζεται η γλώσσα βάση των προτιμήσεων "
404
+ "του φυλλομετρητή"
405
 
406
  # @ polylang
407
+ #: admin/view-languages.php:200
408
  msgid "URL modifications"
409
  msgstr "Τροποποιήσεις URL"
410
 
411
  # @ polylang
412
+ #: admin/view-languages.php:206
413
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
414
+ msgstr ""
415
+ "Η γλώσσα ορίσθηκε βάση του περιεχομένου. Οι διευθύνσεις URL των άρθρων, "
416
+ "σελίδων και ετικετών δεν έχουν τροποποιηθεί."
 
 
417
 
418
  # @ polylang
419
+ #: admin/view-languages.php:253
420
  msgid "Remove /language/ in pretty permalinks. Example:"
421
  msgstr "Αφαίρεση /language/ από ευδιάκριτους μόνιμους συνδέσμους. Παράδειγμα:"
422
 
423
  # @ polylang
424
+ #: admin/view-languages.php:262
425
  msgid "Keep /language/ in pretty permalinks. Example:"
426
  msgstr "Διατήρηση /language/ σε ευδιάκριτους μόνιμους συνδέσμους. Παράδειγμα:"
427
 
428
  # @ polylang
429
+ #: admin/view-languages.php:271
430
  msgid "Hide URL language information for default language"
431
  msgstr "Απόκρυψη των πληροφοριών γλώσσας από URL, για την προκαθορισμένη γλώσσα"
432
 
433
  # @ polylang
434
+ #: admin/view-languages.php:281
435
  #, php-format
436
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
437
+ msgstr ""
438
+ "Όταν υπάρχει στατική αρχική σελίδα, να γίνεται ανακατεύθυνση της σελίδας "
439
+ "γλώσσας (παράδειγμα: %s) της αρχικής σελίδας στην σωστή γλώσσα"
440
 
441
  # @ polylang
442
+ #: admin/view-languages.php:290
443
  msgid "Media"
444
  msgstr "Μέσα"
445
 
446
  # @ polylang
447
+ #: admin/view-languages.php:296
448
  msgid "Activate languages and translations for media"
449
  msgstr "Ενεργοποίηση γλωσσών και μεταφράσεων για μέσο"
450
 
451
+ #: admin/view-languages.php:303
452
  msgid "Synchronization"
453
  msgstr "Συγχρονισμός"
454
 
455
  # @ polylang
456
+ #: admin/view-languages.php:320
457
  msgid "Custom post types"
458
  msgstr "Ειδικοί τύποι άρθρων"
459
 
460
  # @ polylang
461
+ #: admin/view-languages.php:333
462
  msgid "Activate languages and translations for custom post types."
463
  msgstr "Ενεργοποίηση γλωσσών και μεταφράσεων για ειδικούς τύπους άρθρων"
464
 
465
  # @ polylang
466
+ #: admin/view-languages.php:340
467
  msgid "Custom taxonomies"
468
  msgstr "Ειδικές ταξινομίσεις"
469
 
470
  # @ polylang
471
+ #: admin/view-languages.php:353
472
  msgid "Activate languages and translations for custom taxonomies."
473
  msgstr "Ενεργοποίηση γλωσσών και μεταφράσεων για ειδικές ταξινομίσεις"
474
 
475
  # @ polylang
476
+ #: admin/table-languages.php:54
477
+ #: admin/view-translations-media.php:24
478
+ #: admin/view-translations-media.php:62
479
+ #: admin/view-translations-post.php:10
480
+ #: admin/view-translations-post.php:33
481
+ #: admin/view-translations-term.php:18
482
+ #: admin/view-translations-term.php:80
483
  msgid "Edit"
484
  msgstr "Επεξεργασία"
485
 
486
  # @ polylang
487
+ #: admin/table-languages.php:60
488
+ #: admin/table-string.php:167
489
  msgid "Delete"
490
  msgstr "Διαγραφή"
491
 
492
  # @ polylang
493
+ #: admin/table-languages.php:76
494
  msgid "Code"
495
  msgstr "Κώδικας"
496
 
497
  # @ polylang
498
+ #: admin/table-languages.php:78
499
  msgid "Flag"
500
  msgstr "Σημαία"
501
 
502
  # @ polylang
503
+ #: admin/table-languages.php:79
504
  msgid "Posts"
505
  msgstr "Άρθρα"
506
 
507
  # @ polylang
508
+ #: admin/table-string.php:109
509
  msgid "Name"
510
  msgstr "Όνομα"
511
 
512
  # @ polylang
513
+ #: admin/table-string.php:110
514
  msgid "String"
515
  msgstr "Συμβολοσειρά"
516
 
517
  # @ polylang
518
+ #: admin/view-translations-media.php:8
519
+ #: admin/view-translations-media.php:46
520
+ #: admin/view-translations-term.php:16
521
  msgid "Translation"
522
  msgstr "Μετάφραση"
523
 
524
  # @ polylang
525
+ #: admin/view-translations-media.php:33
526
+ #: admin/view-translations-media.php:70
527
+ #: admin/view-translations-post.php:38
528
+ #: admin/view-translations-term.php:60
529
  msgid "Add new"
530
  msgstr "Προσθήκη νέου"
531
 
532
  # @ polylang
533
+ #: admin/view-translations-post.php:5
534
  msgid "ID of pages in other languages:"
535
  msgstr "ID των σελίδων σε άλλες γλώσσες:"
536
 
537
  # @ polylang
538
+ #: admin/view-translations-post.php:5
539
  msgid "ID of posts in other languages:"
540
  msgstr "ID των άρθρων σε άλλες γλώσσες:"
541
 
542
  # @ polylang
543
+ #: admin/view-translations-post.php:9
544
  msgid "Page ID"
545
  msgstr "ID σελίδας"
546
 
547
  # @ polylang
548
+ #: admin/view-translations-post.php:9
549
  msgid "Post ID"
550
  msgstr "ID άρθρου"
551
 
552
  # @ polylang
553
+ #: admin/view-translations-term.php:48
554
  msgid "No untranslated term"
555
  msgstr "Απουσία αμετάφραστου όρου"
556
 
557
  # @ polylang
558
+ #: include/widget-languages.php:16
559
  msgid "Language Switcher"
560
  msgstr "Επιλογέας γλώσσας"
561
 
562
  # @ polylang
563
+ #: include/widget-languages.php:16
564
  msgid "Displays a language switcher"
565
  msgstr "Εμφάνιση επιλογέα γλώσσας"
566
 
567
  # @ polylang
568
+ #: include/widget-languages.php:100
569
  msgid "Title:"
570
  msgstr "Τίτλος:"
571
 
576
  msgstr "Προσθέτει πολυγλωσσική δυνατότητα στο WordPress"
577
 
578
  # @ polylang
579
+ #: polylang.php:157
580
  #, php-format
581
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
582
+ msgstr ""
583
+ "Χρησιμοποιείτε WordPress %s. Το Polylang χρειάζεται τουλάχιστον WordPress %"
584
+ "s."
 
 
 
585
 
586
  # @ polylang
587
+ #: include/upgrade.php:75
588
  msgid "Polylang has been deactivated because you upgraded from a too old version."
589
+ msgstr ""
590
+ "Το Polylang έχει απενεργοποιηθεί γιατί αναβαθμίσατε από πολύ παλιά έκδοση."
591
 
592
  # @ polylang
593
+ #: include/upgrade.php:77
594
  #, php-format
595
  msgid "Please upgrade first to %s before ugrading to %s."
596
  msgstr "Παρακαλώ αναβαθμίστε πρώτα σε %s πριν αναβαθμίσετε σε %s"
597
 
598
  # @ polylang
599
+ #: admin/table-string.php:108
600
  msgid "Group"
601
+ msgstr "Ομάδα"
602
 
603
  # @ polylang
604
+ #: admin/table-string.php:186
605
  msgid "View all groups"
606
  msgstr "Προβολή όλων των ομάδων"
607
+
608
+ # @ polylang
609
+ #: admin/table-languages.php:59
610
+ msgid "You are about to permanently delete this language. Are you sure?"
611
+ msgstr ""
612
+ "Πρόκειται να διαγράψετε οριστικά αυτή τη γλώσσα. Είστε σίγουροι για αυτό;"
613
+
614
+ # @ polylang
615
+ #: admin/view-languages.php:147
616
+ msgid "Use this to remove unused strings from database, for example after a plugin has been uninstalled."
617
+ msgstr ""
618
+ "Χρησιμοποιείστε αυτό για να αφαιρέσετε αχρησιμοποίητες συμβολοσειρές από την "
619
+ "βάση δεδομένων, για παράδειγμα μετά την αφαίρεση κάποιου πρόσθετου."
620
+
621
+ # @ polylang
622
+ #: admin/view-languages.php:214
623
+ msgid "The language is set from the directory name in pretty permalinks. Example:"
624
+ msgstr ""
625
+ "Η γλώσσα ορίζεται από το όνομα καταλόγου σε μορφή ελκυστικών μόνιμων "
626
+ "συνδέσμων. Παράδειγμα:"
627
+
628
+ # @ polylang
629
+ #: admin/view-languages.php:223
630
+ msgid "The language is set from the subdomain name in pretty permalinks. Example:"
631
+ msgstr ""
632
+ "Η γλώσσα ορίζεται από το όνομα υποτομέα σε μορφή ελκυστικών μόνιμων "
633
+ "συνδέσμων. Παράδειγμα:"
634
+
635
+ # @ polylang
636
+ #: admin/view-languages.php:314
637
+ 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."
638
+ msgstr ""
639
+ "Η επιλογές συγχρονισμού επιτρέπουν την διατήρηση των ίδιων ακριβώς τιμών (ή "
640
+ "μεταφράσεων στην περίπτωση ταξονομιών και μητρικών σελίδων) μετα- "
641
+ "περιεχομένου μεταξύ των μεταφράσεων ενός άρθρου ή μιας σελίδας. "
642
+
643
+ # @ polylang
644
+ #: admin/settings.php:75
645
+ msgid "The language code contains invalid characters"
646
+ msgstr "Το όνομα του κώδικα γλώσσας περιέχει μη έγκυρους χαρακτήρες."
647
+
648
+ # @ polylang
649
+ #: admin/view-languages.php:232
650
+ msgid "The language is set from different domains:"
651
+ msgstr "Η γλώσσα ορίζετε από διαφορετικούς τομείς:"
652
+
653
+ #~ msgid ""
654
+ #~ "The language code, for example /en/, is added to all urls when using "
655
+ #~ "pretty permalinks."
656
+ #~ msgstr ""
657
+ #~ "Ο κώδικας γλώσσας, για παράδειγμα /el/, προστίθεται σε όλες τις "
658
+ #~ "διευθύνσεις URL όταν χρησιμοποιούνται ευδιάκριτοι μόνιμοι σύνδεσμοι."
languages/polylang-es_ES.mo CHANGED
Binary file
languages/polylang-es_ES.po CHANGED
@@ -13,11 +13,11 @@ msgstr ""
13
  "X-Poedit-SourceCharset: utf-8\n"
14
  "X-Poedit-KeywordsList: _e;__;_x\n"
15
  "X-Poedit-Basepath: .\n"
16
- "X-Generator: Poedit 1.5.5\n"
17
  "X-Poedit-SearchPath-0: ..\n"
18
  "X-Poedit-SearchPath-1: ../include\n"
19
 
20
- #: include/about.php:3
21
  #, php-format
22
  msgid ""
23
  "Polylang is provided with an extensive %sdocumentation%s (in English only). "
@@ -30,7 +30,7 @@ msgstr ""
30
  "en el día a día, una página de preguntas frecuentes, así como información "
31
  "para que los programadores puedan adaptar sus plugins y temas."
32
 
33
- #: include/about.php:9
34
  #, php-format
35
  msgid ""
36
  "You will also find useful information in the %ssupport forum%s. However "
@@ -39,7 +39,7 @@ msgstr ""
39
  "También encontrarás información útil en los %sforos de soporte%s. Pero no "
40
  "olvides hacer una búsqueda antes de crear un nuevo tema."
41
 
42
- #: include/about.php:16
43
  #, php-format
44
  msgid ""
45
  "Polylang is free of charge and is released under the same license as "
@@ -48,12 +48,12 @@ msgstr ""
48
  "Polylang es gratuito y se distribuye bajo la misma licencia que WordPress, "
49
  "%sGPL%s."
50
 
51
- #: include/about.php:22
52
  #, php-format
53
  msgid "If you wonder how you can help the project, just %sread this%s."
54
  msgstr "Si quieres saber cómo puedes ayudar al proyecto, lee %sesto%s."
55
 
56
- #: include/about.php:27
57
  msgid ""
58
  "Finally if you like this plugin or if it helps your business, donations to "
59
  "the author are greatly appreciated."
@@ -61,116 +61,110 @@ msgstr ""
61
  "Finalmente, si te gusta este plugin y te ayuda a ganar dinero, el autor "
62
  "agradece enormemente un donativo."
63
 
64
- #: include/admin-base.php:55 include/admin-base.php:190
65
- #: include/admin-filters.php:243 include/admin.php:23 include/admin.php:301
66
- #: include/list-table.php:13 polylang.php:339
67
  msgid "Languages"
68
  msgstr "Idiomas"
69
 
70
- #: include/admin-base.php:153
71
  msgid "Displays language names"
72
  msgstr "Muestra los nombres de los idiomas"
73
 
74
- #: include/admin-base.php:154
75
  msgid "Displays flags"
76
  msgstr "Muestra las banderas"
77
 
78
- #: include/admin-base.php:155
79
  msgid "Forces link to front page"
80
  msgstr "Fuerza un enlace a la página principal"
81
 
82
- #: include/admin-base.php:156
83
  msgid "Hides the current language"
84
  msgstr "Oculta el idioma actual"
85
 
86
- #: include/admin-base.php:160
87
  msgid "Displays as dropdown"
88
  msgstr "Mostrar como menú desplegable"
89
 
90
- #: include/admin-base.php:191
91
  msgid "Filters content by language"
92
  msgstr "Filtrar el contenido por idioma"
93
 
94
- #: include/admin-base.php:186
95
  msgid "Show all languages"
96
  msgstr "Mostrar todos los idiomas"
97
 
98
- #: include/admin-filters.php:181 include/admin-filters.php:877
99
  msgid "Add new translation"
100
  msgstr "Añadir nueva traducción"
101
 
102
- #: include/admin-filters.php:209 include/admin-filters.php:267
103
- #: include/admin-filters.php:601 include/admin-filters.php:817
104
- #: include/admin-filters.php:835 include/list-table.php:12
105
- #: include/media-translations.php:5 include/media-translations.php:43
106
- #: include/post-translations.php:8 include/term-translations.php:15
107
- #: polylang.php:340
108
  msgid "Language"
109
  msgstr "Idioma"
110
 
111
- #: include/admin-filters.php:616 include/admin-filters.php:651
112
- #: include/list-table.php:127 include/media-translations.php:40
113
- #: include/term-translations.php:6 include/term-translations.php:11
114
  msgid "Translations"
115
  msgstr "Traducciones"
116
 
117
- #: include/admin-filters.php:819 include/admin-filters.php:838
118
  msgid "Sets the language"
119
  msgstr "Establece el idioma"
120
 
121
- #: include/admin-filters.php:1053
122
  msgid "The widget is displayed for:"
123
  msgstr "El widget se muestra para:"
124
 
125
- #: include/admin-filters.php:1057 polylang.php:341
126
  msgid "All languages"
127
  msgstr "Todos los idiomas"
128
 
129
- #: include/admin-filters.php:1080
130
  msgid "Admin language"
131
  msgstr "Idioma del administrador"
132
 
133
- #: include/admin-filters.php:1085
134
  msgid "Wordpress default"
135
  msgstr "Opción por defecto de WordPress"
136
 
137
- #: include/admin-filters.php:1114 include/admin.php:306
138
  msgid "Settings"
139
  msgstr "Ajustes"
140
 
141
- #: include/admin-filters.php:1120
142
  msgid "Upgrading language files&#8230;"
143
  msgstr "Actualizando los archivos de idioma&#8230;"
144
 
145
- #: include/admin.php:22
146
  msgid "About Polylang"
147
  msgstr "Acerca de Polylang"
148
 
149
- #: include/admin.php:27 include/list-table.php:82
150
  msgid "Strings translations"
151
  msgstr "Traducciones de cadenas"
152
 
153
- #: include/admin.php:305 include/list-table.php:81
154
  msgid "Strings translation"
155
  msgstr "Traducción de cadenas"
156
 
157
- #: include/admin.php:345
158
- msgid "Enter a valid WorPress locale"
159
  msgstr "Introduce una zona idiomática válida de WordPress"
160
 
161
- #: include/admin.php:346
162
- msgid "The language code must be 2 characters long"
163
- msgstr "El código idiomático debe ser de 2 caracteres"
164
-
165
- #: include/admin.php:328
166
  msgid "The language code must be unique"
167
  msgstr "El código idiomático debe ser único"
168
 
169
- #: include/admin.php:329
170
  msgid "The language must have a name"
171
  msgstr "El dioma debe tener un nombre"
172
 
173
- #: include/admin.php:330
174
  msgid ""
175
  "The language was created, but the WordPress language file was not "
176
  "downloaded. Please install it manually."
@@ -178,92 +172,92 @@ msgstr ""
178
  "Se ha creado el idioma pero el archivo de este idioma de WordPress no se ha "
179
  "descargado. Por favor, instálalo manualmente."
180
 
181
- #: include/admin.php:449
182
  msgid "Widget title"
183
  msgstr "Título del widget"
184
 
185
  # @ polylang
186
- #: include/base.php:368
187
  msgid "Taxonomies"
188
  msgstr "Taxonomías"
189
 
190
  # @ polylang
191
- #: include/base.php:369
192
  msgid "Custom fields"
193
  msgstr "Campos personalizados"
194
 
195
  # @ polylang
196
- #: include/base.php:370
197
  msgid "Comment status"
198
  msgstr "Estado de los comentarios"
199
 
200
  # @ polylang
201
- #: include/base.php:371
202
  msgid "Ping status"
203
  msgstr "Estados de los pings"
204
 
205
  # @ polylang
206
- #: include/base.php:372
207
  msgid "Sticky posts"
208
  msgstr "Entradas fijas"
209
 
210
  # @ polylang
211
- #: include/base.php:373
212
  msgid "Published date"
213
  msgstr "Fecha de publicación"
214
 
215
  # @ polylang
216
- #: include/base.php:374
217
  msgid "Post format"
218
  msgstr "Formato de entrada"
219
 
220
- #: include/base.php:375
221
  msgid "Page parent"
222
  msgstr "Página superior"
223
 
224
  # @ polylang
225
- #: include/base.php:376
226
  msgid "Page template"
227
  msgstr "Plantilla de página"
228
 
229
- #: include/base.php:377
230
  msgid "Page order"
231
  msgstr "Orden de página"
232
 
233
  # @ polylang
234
- #: include/base.php:378
235
  msgid "Featured image"
236
  msgstr "Imagen destacada"
237
 
238
- #: include/languages-form.php:42
239
  msgid "Edit language"
240
  msgstr "Editar idioma"
241
 
242
- #: include/languages-form.php:42 include/languages-form.php:123
243
  msgid "Add new language"
244
  msgstr "Añadir nuevo idioma"
245
 
246
- #: include/languages-form.php:64
247
  msgid "Choose a language"
248
  msgstr "Elegir un idioma"
249
 
250
- #: include/languages-form.php:78
251
  msgid "You can choose a language in the list or directly edit it below."
252
  msgstr "Puedes elegir un idioma de la lista o editarlo directamente abajo."
253
 
254
- #: include/languages-form.php:82 include/list-table.php:34
255
  msgid "Full name"
256
  msgstr "Nombre completo"
257
 
258
- #: include/languages-form.php:84
259
  msgid "The name is how it is displayed on your site (for example: English)."
260
  msgstr "El nombre es como se muestra en tu sitio (por ejemplo: Español)."
261
 
262
- #: include/languages-form.php:88 include/list-table.php:35
263
  msgid "Locale"
264
  msgstr "Región"
265
 
266
- #: include/languages-form.php:93
267
  msgid ""
268
  "Wordpress Locale for the language (for example: en_US). You will need to "
269
  "install the .mo file for this language."
@@ -271,56 +265,57 @@ msgstr ""
271
  "Región idiomática de Wordpress (por ejemplo: es_ES). Deberás instalar el "
272
  "archivo .mo para este idioma."
273
 
274
- #: include/languages-form.php:97
275
  msgid "Language code"
276
  msgstr "Código idiomático"
277
 
278
- #: include/languages-form.php:99
279
  msgid "2-letters ISO 639-1 language code (for example: en)"
280
  msgstr "Código idiomático ISO 639-1 de dos letras (por ejemplo: es)"
281
 
282
- #: include/languages-form.php:103
283
  msgid "Text direction"
284
  msgstr "Dirección de escritura"
285
 
286
- #: include/languages-form.php:107
287
  msgid "left to right"
288
  msgstr "izquierda a derecha"
289
 
290
- #: include/languages-form.php:112
291
  msgid "right to left"
292
  msgstr "derecha a izquierda"
293
 
294
- #: include/languages-form.php:114
295
  msgid "Choose the text direction for the language"
296
  msgstr "Elige la dirección de escritura del idioma"
297
 
298
- #: include/languages-form.php:118 include/list-table.php:37
299
  msgid "Order"
300
  msgstr "Orden"
301
 
302
- #: include/languages-form.php:120
303
  msgid "Position of the language in the language switcher"
304
  msgstr "Posición en el conmutador de idioma"
305
 
306
- #: include/nav-menu.php:28 include/nav-menu.php:51 include/nav-menu.php:54
307
- #: include/nav-menu.php:82 include/nav-menu.php:106 polylang.php:302
 
308
  msgid "Language switcher"
309
  msgstr "Conmutador de idioma"
310
 
311
- #: include/languages-form.php:148
312
  msgid "Search translations"
313
  msgstr "Buscar traducciones"
314
 
315
- #: include/languages-form.php:151
316
  msgid "Clean strings translation database"
317
  msgstr "Limpiar la base de datos de traducciones de cadenas"
318
 
319
- #: include/languages-form.php:167
320
  msgid "Default language"
321
  msgstr "Idioma predeterminado"
322
 
323
- #: include/languages-form.php:179
324
  msgid ""
325
  "There are posts, pages, categories or tags without language set. Do you want "
326
  "to set them all to default language ?"
@@ -328,11 +323,11 @@ msgstr ""
328
  "Hay entradas, páginas, categorías o etiquetas sin idioma establecido. "
329
  "¿Quieres establecerlas al idioma predeterminado?"
330
 
331
- #: include/languages-form.php:187
332
  msgid "Detect browser language"
333
  msgstr "Detectar el idioma del navegador"
334
 
335
- #: include/languages-form.php:193
336
  msgid ""
337
  "When the front page is visited, set the language according to the browser "
338
  "preference"
@@ -340,11 +335,11 @@ msgstr ""
340
  "Al visitar la página principal, se establece el idioma de acuerdo con las "
341
  "preferencias del navegador"
342
 
343
- #: include/languages-form.php:200
344
  msgid "URL modifications"
345
  msgstr "Modificaciones de URL"
346
 
347
- #: include/languages-form.php:206
348
  msgid ""
349
  "The language is set from content. Posts, pages, categories and tags urls are "
350
  "not modified."
@@ -352,27 +347,19 @@ msgstr ""
352
  "El idioma se establece por el contenido. Las URL de las entradas, páginas, "
353
  "categorías y etiquetas no se modificarán."
354
 
355
- #: include/languages-form.php:214
356
- msgid ""
357
- "The language code, for example /en/, is added to all urls when using pretty "
358
- "permalinks."
359
- msgstr ""
360
- "El código idiomático, por ejemplo /es/, se añade a todos las direcciones URL "
361
- "al usar permalinks descriptivos."
362
-
363
- #: include/languages-form.php:223
364
  msgid "Remove /language/ in pretty permalinks. Example:"
365
  msgstr "Quitar /language/ de los permalinks descriptivos. Ejemplo:"
366
 
367
- #: include/languages-form.php:232
368
  msgid "Keep /language/ in pretty permalinks. Example:"
369
  msgstr "Mantener /language/ en los permalinks descriptivos. Ejemplo:"
370
 
371
- #: include/languages-form.php:241
372
  msgid "Hide URL language information for default language"
373
  msgstr "Ocultar el URL del idioma en el idioma predeterminado"
374
 
375
- #: include/languages-form.php:251
376
  #, php-format
377
  msgid ""
378
  "When using static front page, redirect the language page (example: %s) to "
@@ -382,109 +369,109 @@ msgstr ""
382
  "(ejemplo: %s) a la página de inicio en el idioma correcto."
383
 
384
  # @ polylang
385
- #: include/languages-form.php:260
386
  msgid "Media"
387
  msgstr "Medios"
388
 
389
  # @ polylang
390
- #: include/languages-form.php:266
391
  msgid "Activate languages and translations for media"
392
  msgstr "Activar idiomas y traducciones para los medios"
393
 
394
- #: include/languages-form.php:273
395
  msgid "Synchronization"
396
  msgstr "Sincronización"
397
 
398
  # @ polylang
399
- #: include/languages-form.php:287
400
  msgid "Custom post types"
401
  msgstr "Tipos de entrada personalizados"
402
 
403
  # @ polylang
404
- #: include/languages-form.php:300
405
  msgid "Activate languages and translations for custom post types."
406
  msgstr "Activar idiomas y traducciones para tipos de entrada personalizados."
407
 
408
  # @ polylang
409
- #: include/languages-form.php:307
410
  msgid "Custom taxonomies"
411
  msgstr "Taxonomías personalizadas"
412
 
413
  # @ polylang
414
- #: include/languages-form.php:320
415
  msgid "Activate languages and translations for custom taxonomies."
416
  msgstr "Activar idiomas y traducciones para taxonomías personalizadas."
417
 
418
- #: include/list-table.php:26 include/media-translations.php:22
419
- #: include/media-translations.php:60 include/post-translations.php:10
420
- #: include/post-translations.php:33 include/term-translations.php:18
421
- #: include/term-translations.php:80
422
  msgid "Edit"
423
  msgstr "Editar"
424
 
425
- #: include/list-table.php:27 include/list-table.php:162
426
  msgid "Delete"
427
  msgstr "Eliminar"
428
 
429
- #: include/list-table.php:36
430
  msgid "Code"
431
  msgstr "Código"
432
 
433
- #: include/list-table.php:38
434
  msgid "Flag"
435
  msgstr "Bandera"
436
 
437
- #: include/list-table.php:39
438
  msgid "Posts"
439
  msgstr "Entradas"
440
 
441
- #: include/list-table.php:125
442
  msgid "Name"
443
  msgstr "Nombre"
444
 
445
- #: include/list-table.php:126
446
  msgid "String"
447
  msgstr "Cadena"
448
 
449
- #: include/media-translations.php:6 include/media-translations.php:44
450
- #: include/term-translations.php:16
451
  msgid "Translation"
452
  msgstr "Traducción"
453
 
454
- #: include/media-translations.php:31 include/media-translations.php:68
455
- #: include/post-translations.php:38 include/term-translations.php:60
456
  msgid "Add new"
457
  msgstr "Añadir nuevo"
458
 
459
- #: include/post-translations.php:5
460
  msgid "ID of pages in other languages:"
461
  msgstr "ID de páginas en otros idiomas:"
462
 
463
- #: include/post-translations.php:5
464
  msgid "ID of posts in other languages:"
465
  msgstr "ID de entradas en otros idiomas:"
466
 
467
- #: include/post-translations.php:9
468
  msgid "Page ID"
469
  msgstr "ID de página"
470
 
471
- #: include/post-translations.php:9
472
  msgid "Post ID"
473
  msgstr "ID de entrada"
474
 
475
- #: include/term-translations.php:48
476
  msgid "No untranslated term"
477
  msgstr "Sin términos por traducir"
478
 
479
- #: include/widget.php:6
480
  msgid "Language Switcher"
481
  msgstr "Conmutador de idioma"
482
 
483
- #: include/widget.php:6
484
  msgid "Displays a language switcher"
485
  msgstr "Muestra un conmutador de idioma"
486
 
487
- #: include/widget.php:69
488
  msgid "Title:"
489
  msgstr "Título:"
490
 
@@ -494,17 +481,13 @@ msgstr "Título:"
494
  msgid "Adds multilingual capability to WordPress"
495
  msgstr "Añade capacidad multilingüística a Wordpress"
496
 
497
- #: polylang.php:133
498
  #, php-format
499
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
500
  msgstr "Estás usando Wordpress %s. Polylang necesita como mínimo WordPress %s."
501
 
502
- #: polylang.php:174
503
- msgid "For some reasons, Polylang could not create a table in your database."
504
- msgstr "Por alguna razón Polylang no pudo crear la tabla en tu base de datos."
505
-
506
  # @ polylang
507
- #: polylang.php:235
508
  msgid ""
509
  "Polylang has been deactivated because you upgraded from a too old version."
510
  msgstr ""
@@ -512,21 +495,81 @@ msgstr ""
512
  "demasiado antigua."
513
 
514
  # @ polylang
515
- #: polylang.php:237
516
  #, php-format
517
  msgid "Please upgrade first to %s before ugrading to %s."
518
  msgstr "Por favor, actualiza primero a %s antes de actualizar a %s."
519
 
520
  # @ polylang
521
- #: include/list-table.php:124
522
  msgid "Group"
523
  msgstr "Grupo"
524
 
525
  # @ polylang
526
- #: include/list-table.php:173
527
  msgid "View all groups"
528
  msgstr "Ver todos los grupos"
529
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
530
  #~ msgid "Displays a language switcher at the end of the menu"
531
  #~ msgstr "Muestra un conmutador de idioma al final del menu"
532
 
13
  "X-Poedit-SourceCharset: utf-8\n"
14
  "X-Poedit-KeywordsList: _e;__;_x\n"
15
  "X-Poedit-Basepath: .\n"
16
+ "X-Generator: Poedit 1.5.7\n"
17
  "X-Poedit-SearchPath-0: ..\n"
18
  "X-Poedit-SearchPath-1: ../include\n"
19
 
20
+ #: admin/view-about.php:3
21
  #, php-format
22
  msgid ""
23
  "Polylang is provided with an extensive %sdocumentation%s (in English only). "
30
  "en el día a día, una página de preguntas frecuentes, así como información "
31
  "para que los programadores puedan adaptar sus plugins y temas."
32
 
33
+ #: admin/view-about.php:9
34
  #, php-format
35
  msgid ""
36
  "You will also find useful information in the %ssupport forum%s. However "
39
  "También encontrarás información útil en los %sforos de soporte%s. Pero no "
40
  "olvides hacer una búsqueda antes de crear un nuevo tema."
41
 
42
+ #: admin/view-about.php:16
43
  #, php-format
44
  msgid ""
45
  "Polylang is free of charge and is released under the same license as "
48
  "Polylang es gratuito y se distribuye bajo la misma licencia que WordPress, "
49
  "%sGPL%s."
50
 
51
+ #: admin/view-about.php:22
52
  #, php-format
53
  msgid "If you wonder how you can help the project, just %sread this%s."
54
  msgstr "Si quieres saber cómo puedes ayudar al proyecto, lee %sesto%s."
55
 
56
+ #: admin/view-about.php:27
57
  msgid ""
58
  "Finally if you like this plugin or if it helps your business, donations to "
59
  "the author are greatly appreciated."
61
  "Finalmente, si te gusta este plugin y te ayuda a ganar dinero, el autor "
62
  "agradece enormemente un donativo."
63
 
64
+ #: admin/admin-filters-post.php:76 admin/admin.php:83 admin/admin.php:187
65
+ #: admin/settings.php:42 admin/settings.php:57 include/model.php:490
 
66
  msgid "Languages"
67
  msgstr "Idiomas"
68
 
69
+ #: include/switcher.php:22
70
  msgid "Displays language names"
71
  msgstr "Muestra los nombres de los idiomas"
72
 
73
+ #: include/switcher.php:23
74
  msgid "Displays flags"
75
  msgstr "Muestra las banderas"
76
 
77
+ #: include/switcher.php:24
78
  msgid "Forces link to front page"
79
  msgstr "Fuerza un enlace a la página principal"
80
 
81
+ #: include/switcher.php:25
82
  msgid "Hides the current language"
83
  msgstr "Oculta el idioma actual"
84
 
85
+ #: include/switcher.php:29
86
  msgid "Displays as dropdown"
87
  msgstr "Mostrar como menú desplegable"
88
 
89
+ #: admin/admin.php:188
90
  msgid "Filters content by language"
91
  msgstr "Filtrar el contenido por idioma"
92
 
93
+ #: admin/admin.php:183
94
  msgid "Show all languages"
95
  msgstr "Mostrar todos los idiomas"
96
 
97
+ #: admin/admin-filters-columns.php:126 admin/admin-filters-columns.php:215
98
  msgid "Add new translation"
99
  msgstr "Añadir nueva traducción"
100
 
101
+ #: admin/admin-filters-columns.php:163 admin/admin-filters-media.php:58
102
+ #: admin/admin-filters-post.php:109 admin/admin-filters-term.php:72
103
+ #: admin/admin-filters-term.php:106 admin/view-translations-media.php:7
104
+ #: admin/view-translations-media.php:45 admin/view-translations-post.php:8
105
+ #: admin/view-translations-term.php:15 include/model.php:491
 
106
  msgid "Language"
107
  msgstr "Idioma"
108
 
109
+ #: admin/admin-filters-media.php:73 admin/admin-filters-media.php:112
110
+ #: admin/table-string.php:111 admin/view-translations-media.php:42
111
+ #: admin/view-translations-term.php:6 admin/view-translations-term.php:11
112
  msgid "Translations"
113
  msgstr "Traducciones"
114
 
115
+ #: admin/admin-filters-term.php:74 admin/admin-filters-term.php:108
116
  msgid "Sets the language"
117
  msgstr "Establece el idioma"
118
 
119
+ #: admin/admin-filters.php:60
120
  msgid "The widget is displayed for:"
121
  msgstr "El widget se muestra para:"
122
 
123
+ #: admin/admin-filters.php:63 include/model.php:492
124
  msgid "All languages"
125
  msgstr "Todos los idiomas"
126
 
127
+ #: admin/admin-filters.php:120
128
  msgid "Admin language"
129
  msgstr "Idioma del administrador"
130
 
131
+ #: admin/admin-filters.php:123
132
  msgid "Wordpress default"
133
  msgstr "Opción por defecto de WordPress"
134
 
135
+ #: admin/admin.php:123 admin/settings.php:62
136
  msgid "Settings"
137
  msgstr "Ajustes"
138
 
139
+ #: admin/admin-filters.php:151
140
  msgid "Upgrading language files&#8230;"
141
  msgstr "Actualizando los archivos de idioma&#8230;"
142
 
143
+ #: admin/settings.php:38
144
  msgid "About Polylang"
145
  msgstr "Acerca de Polylang"
146
 
147
+ #: admin/settings.php:46
148
  msgid "Strings translations"
149
  msgstr "Traducciones de cadenas"
150
 
151
+ #: admin/settings.php:61
152
  msgid "Strings translation"
153
  msgstr "Traducción de cadenas"
154
 
155
+ #: admin/settings.php:74
156
+ msgid "Enter a valid WordPress locale"
157
  msgstr "Introduce una zona idiomática válida de WordPress"
158
 
159
+ #: admin/settings.php:76
 
 
 
 
160
  msgid "The language code must be unique"
161
  msgstr "El código idiomático debe ser único"
162
 
163
+ #: admin/settings.php:77
164
  msgid "The language must have a name"
165
  msgstr "El dioma debe tener un nombre"
166
 
167
+ #: admin/settings.php:78
168
  msgid ""
169
  "The language was created, but the WordPress language file was not "
170
  "downloaded. Please install it manually."
172
  "Se ha creado el idioma pero el archivo de este idioma de WordPress no se ha "
173
  "descargado. Por favor, instálalo manualmente."
174
 
175
+ #: admin/settings.php:305
176
  msgid "Widget title"
177
  msgstr "Título del widget"
178
 
179
  # @ polylang
180
+ #: admin/settings.php:323
181
  msgid "Taxonomies"
182
  msgstr "Taxonomías"
183
 
184
  # @ polylang
185
+ #: admin/settings.php:324
186
  msgid "Custom fields"
187
  msgstr "Campos personalizados"
188
 
189
  # @ polylang
190
+ #: admin/settings.php:325
191
  msgid "Comment status"
192
  msgstr "Estado de los comentarios"
193
 
194
  # @ polylang
195
+ #: admin/settings.php:326
196
  msgid "Ping status"
197
  msgstr "Estados de los pings"
198
 
199
  # @ polylang
200
+ #: admin/settings.php:327
201
  msgid "Sticky posts"
202
  msgstr "Entradas fijas"
203
 
204
  # @ polylang
205
+ #: admin/settings.php:328
206
  msgid "Published date"
207
  msgstr "Fecha de publicación"
208
 
209
  # @ polylang
210
+ #: admin/settings.php:329
211
  msgid "Post format"
212
  msgstr "Formato de entrada"
213
 
214
+ #: admin/settings.php:330
215
  msgid "Page parent"
216
  msgstr "Página superior"
217
 
218
  # @ polylang
219
+ #: admin/settings.php:331
220
  msgid "Page template"
221
  msgstr "Plantilla de página"
222
 
223
+ #: admin/settings.php:332
224
  msgid "Page order"
225
  msgstr "Orden de página"
226
 
227
  # @ polylang
228
+ #: admin/settings.php:333
229
  msgid "Featured image"
230
  msgstr "Imagen destacada"
231
 
232
+ #: admin/view-languages.php:42
233
  msgid "Edit language"
234
  msgstr "Editar idioma"
235
 
236
+ #: admin/view-languages.php:42 admin/view-languages.php:117
237
  msgid "Add new language"
238
  msgstr "Añadir nuevo idioma"
239
 
240
+ #: admin/view-languages.php:58
241
  msgid "Choose a language"
242
  msgstr "Elegir un idioma"
243
 
244
+ #: admin/view-languages.php:72
245
  msgid "You can choose a language in the list or directly edit it below."
246
  msgstr "Puedes elegir un idioma de la lista o editarlo directamente abajo."
247
 
248
+ #: admin/table-languages.php:74 admin/view-languages.php:76
249
  msgid "Full name"
250
  msgstr "Nombre completo"
251
 
252
+ #: admin/view-languages.php:78
253
  msgid "The name is how it is displayed on your site (for example: English)."
254
  msgstr "El nombre es como se muestra en tu sitio (por ejemplo: Español)."
255
 
256
+ #: admin/table-languages.php:75 admin/view-languages.php:82
257
  msgid "Locale"
258
  msgstr "Región"
259
 
260
+ #: admin/view-languages.php:87
261
  msgid ""
262
  "Wordpress Locale for the language (for example: en_US). You will need to "
263
  "install the .mo file for this language."
265
  "Región idiomática de Wordpress (por ejemplo: es_ES). Deberás instalar el "
266
  "archivo .mo para este idioma."
267
 
268
+ #: admin/view-languages.php:91
269
  msgid "Language code"
270
  msgstr "Código idiomático"
271
 
272
+ #: admin/view-languages.php:93
273
  msgid "2-letters ISO 639-1 language code (for example: en)"
274
  msgstr "Código idiomático ISO 639-1 de dos letras (por ejemplo: es)"
275
 
276
+ #: admin/view-languages.php:97
277
  msgid "Text direction"
278
  msgstr "Dirección de escritura"
279
 
280
+ #: admin/view-languages.php:101
281
  msgid "left to right"
282
  msgstr "izquierda a derecha"
283
 
284
+ #: admin/view-languages.php:106
285
  msgid "right to left"
286
  msgstr "derecha a izquierda"
287
 
288
+ #: admin/view-languages.php:108
289
  msgid "Choose the text direction for the language"
290
  msgstr "Elige la dirección de escritura del idioma"
291
 
292
+ #: admin/table-languages.php:77 admin/view-languages.php:112
293
  msgid "Order"
294
  msgstr "Orden"
295
 
296
+ #: admin/view-languages.php:114
297
  msgid "Position of the language in the language switcher"
298
  msgstr "Posición en el conmutador de idioma"
299
 
300
+ #: admin/admin-nav-menu.php:51 admin/admin-nav-menu.php:79
301
+ #: admin/admin-nav-menu.php:82 admin/admin-nav-menu.php:113
302
+ #: admin/admin-nav-menu.php:170 include/upgrade.php:175
303
  msgid "Language switcher"
304
  msgstr "Conmutador de idioma"
305
 
306
+ #: admin/view-languages.php:143
307
  msgid "Search translations"
308
  msgstr "Buscar traducciones"
309
 
310
+ #: admin/view-languages.php:146
311
  msgid "Clean strings translation database"
312
  msgstr "Limpiar la base de datos de traducciones de cadenas"
313
 
314
+ #: admin/view-languages.php:164
315
  msgid "Default language"
316
  msgstr "Idioma predeterminado"
317
 
318
+ #: admin/view-languages.php:179
319
  msgid ""
320
  "There are posts, pages, categories or tags without language set. Do you want "
321
  "to set them all to default language ?"
323
  "Hay entradas, páginas, categorías o etiquetas sin idioma establecido. "
324
  "¿Quieres establecerlas al idioma predeterminado?"
325
 
326
+ #: admin/view-languages.php:187
327
  msgid "Detect browser language"
328
  msgstr "Detectar el idioma del navegador"
329
 
330
+ #: admin/view-languages.php:193
331
  msgid ""
332
  "When the front page is visited, set the language according to the browser "
333
  "preference"
335
  "Al visitar la página principal, se establece el idioma de acuerdo con las "
336
  "preferencias del navegador"
337
 
338
+ #: admin/view-languages.php:200
339
  msgid "URL modifications"
340
  msgstr "Modificaciones de URL"
341
 
342
+ #: admin/view-languages.php:206
343
  msgid ""
344
  "The language is set from content. Posts, pages, categories and tags urls are "
345
  "not modified."
347
  "El idioma se establece por el contenido. Las URL de las entradas, páginas, "
348
  "categorías y etiquetas no se modificarán."
349
 
350
+ #: admin/view-languages.php:253
 
 
 
 
 
 
 
 
351
  msgid "Remove /language/ in pretty permalinks. Example:"
352
  msgstr "Quitar /language/ de los permalinks descriptivos. Ejemplo:"
353
 
354
+ #: admin/view-languages.php:262
355
  msgid "Keep /language/ in pretty permalinks. Example:"
356
  msgstr "Mantener /language/ en los permalinks descriptivos. Ejemplo:"
357
 
358
+ #: admin/view-languages.php:271
359
  msgid "Hide URL language information for default language"
360
  msgstr "Ocultar el URL del idioma en el idioma predeterminado"
361
 
362
+ #: admin/view-languages.php:281
363
  #, php-format
364
  msgid ""
365
  "When using static front page, redirect the language page (example: %s) to "
369
  "(ejemplo: %s) a la página de inicio en el idioma correcto."
370
 
371
  # @ polylang
372
+ #: admin/view-languages.php:290
373
  msgid "Media"
374
  msgstr "Medios"
375
 
376
  # @ polylang
377
+ #: admin/view-languages.php:296
378
  msgid "Activate languages and translations for media"
379
  msgstr "Activar idiomas y traducciones para los medios"
380
 
381
+ #: admin/view-languages.php:303
382
  msgid "Synchronization"
383
  msgstr "Sincronización"
384
 
385
  # @ polylang
386
+ #: admin/view-languages.php:320
387
  msgid "Custom post types"
388
  msgstr "Tipos de entrada personalizados"
389
 
390
  # @ polylang
391
+ #: admin/view-languages.php:333
392
  msgid "Activate languages and translations for custom post types."
393
  msgstr "Activar idiomas y traducciones para tipos de entrada personalizados."
394
 
395
  # @ polylang
396
+ #: admin/view-languages.php:340
397
  msgid "Custom taxonomies"
398
  msgstr "Taxonomías personalizadas"
399
 
400
  # @ polylang
401
+ #: admin/view-languages.php:353
402
  msgid "Activate languages and translations for custom taxonomies."
403
  msgstr "Activar idiomas y traducciones para taxonomías personalizadas."
404
 
405
+ #: admin/table-languages.php:54 admin/view-translations-media.php:24
406
+ #: admin/view-translations-media.php:62 admin/view-translations-post.php:10
407
+ #: admin/view-translations-post.php:33 admin/view-translations-term.php:18
408
+ #: admin/view-translations-term.php:80
409
  msgid "Edit"
410
  msgstr "Editar"
411
 
412
+ #: admin/table-languages.php:60 admin/table-string.php:167
413
  msgid "Delete"
414
  msgstr "Eliminar"
415
 
416
+ #: admin/table-languages.php:76
417
  msgid "Code"
418
  msgstr "Código"
419
 
420
+ #: admin/table-languages.php:78
421
  msgid "Flag"
422
  msgstr "Bandera"
423
 
424
+ #: admin/table-languages.php:79
425
  msgid "Posts"
426
  msgstr "Entradas"
427
 
428
+ #: admin/table-string.php:109
429
  msgid "Name"
430
  msgstr "Nombre"
431
 
432
+ #: admin/table-string.php:110
433
  msgid "String"
434
  msgstr "Cadena"
435
 
436
+ #: admin/view-translations-media.php:8 admin/view-translations-media.php:46
437
+ #: admin/view-translations-term.php:16
438
  msgid "Translation"
439
  msgstr "Traducción"
440
 
441
+ #: admin/view-translations-media.php:33 admin/view-translations-media.php:70
442
+ #: admin/view-translations-post.php:38 admin/view-translations-term.php:60
443
  msgid "Add new"
444
  msgstr "Añadir nuevo"
445
 
446
+ #: admin/view-translations-post.php:5
447
  msgid "ID of pages in other languages:"
448
  msgstr "ID de páginas en otros idiomas:"
449
 
450
+ #: admin/view-translations-post.php:5
451
  msgid "ID of posts in other languages:"
452
  msgstr "ID de entradas en otros idiomas:"
453
 
454
+ #: admin/view-translations-post.php:9
455
  msgid "Page ID"
456
  msgstr "ID de página"
457
 
458
+ #: admin/view-translations-post.php:9
459
  msgid "Post ID"
460
  msgstr "ID de entrada"
461
 
462
+ #: admin/view-translations-term.php:48
463
  msgid "No untranslated term"
464
  msgstr "Sin términos por traducir"
465
 
466
+ #: include/widget-languages.php:16
467
  msgid "Language Switcher"
468
  msgstr "Conmutador de idioma"
469
 
470
+ #: include/widget-languages.php:16
471
  msgid "Displays a language switcher"
472
  msgstr "Muestra un conmutador de idioma"
473
 
474
+ #: include/widget-languages.php:100
475
  msgid "Title:"
476
  msgstr "Título:"
477
 
481
  msgid "Adds multilingual capability to WordPress"
482
  msgstr "Añade capacidad multilingüística a Wordpress"
483
 
484
+ #: polylang.php:157
485
  #, php-format
486
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
487
  msgstr "Estás usando Wordpress %s. Polylang necesita como mínimo WordPress %s."
488
 
 
 
 
 
489
  # @ polylang
490
+ #: include/upgrade.php:75
491
  msgid ""
492
  "Polylang has been deactivated because you upgraded from a too old version."
493
  msgstr ""
495
  "demasiado antigua."
496
 
497
  # @ polylang
498
+ #: include/upgrade.php:77
499
  #, php-format
500
  msgid "Please upgrade first to %s before ugrading to %s."
501
  msgstr "Por favor, actualiza primero a %s antes de actualizar a %s."
502
 
503
  # @ polylang
504
+ #: admin/table-string.php:108
505
  msgid "Group"
506
  msgstr "Grupo"
507
 
508
  # @ polylang
509
+ #: admin/table-string.php:186
510
  msgid "View all groups"
511
  msgstr "Ver todos los grupos"
512
 
513
+ # @ polylang
514
+ #: admin/table-languages.php:59
515
+ msgid "You are about to permanently delete this language. Are you sure?"
516
+ msgstr "Estás a punto de eliminar este idioma permanentemente, ¿estás seguro?"
517
+
518
+ # @ polylang
519
+ #: admin/view-languages.php:147
520
+ msgid ""
521
+ "Use this to remove unused strings from database, for example after a plugin "
522
+ "has been uninstalled."
523
+ msgstr ""
524
+ "Usa esto para borrar de la base de datos las cadenas que no se usen. Por "
525
+ "ejemplo, tras desinstalar un plugin."
526
+
527
+ #: admin/view-languages.php:214
528
+ msgid ""
529
+ "The language is set from the directory name in pretty permalinks. Example:"
530
+ msgstr ""
531
+ "Este idioma se establece por el nombre en la dirección de los enlaces "
532
+ "permanentes descriptivos. Ejemplo:"
533
+
534
+ #: admin/view-languages.php:223
535
+ msgid ""
536
+ "The language is set from the subdomain name in pretty permalinks. Example:"
537
+ msgstr ""
538
+ "Este idioma se establece por el subdominio en los enlaces permanentes "
539
+ "descriptivos. Ejemplo:"
540
+
541
+ # @ polylang
542
+ #: admin/view-languages.php:314
543
+ msgid ""
544
+ "The synchronization options allow to maintain exact same values (or "
545
+ "translations in the case of taxonomies and page parent) of meta content "
546
+ "between the translations of a post or page."
547
+ msgstr ""
548
+ "Las opciones de sincronización permiten mantener exactamente los mismos "
549
+ "valores (o traducciones, en caso de taxonomías o páginas superiores) de "
550
+ "metacontenido entre las traducciones de una entrada o página."
551
+
552
+ #: admin/settings.php:75
553
+ msgid "The language code contains invalid characters"
554
+ msgstr "El código idiomático contiene caracteres no válidos"
555
+
556
+ # @ polylang
557
+ #: admin/view-languages.php:232
558
+ msgid "The language is set from different domains:"
559
+ msgstr "El idioma se establece por diferentes dominios:"
560
+
561
+ #~ msgid ""
562
+ #~ "The language code, for example /en/, is added to all urls when using "
563
+ #~ "pretty permalinks."
564
+ #~ msgstr ""
565
+ #~ "El código idiomático, por ejemplo /es/, se añade a todos las direcciones "
566
+ #~ "URL al usar permalinks descriptivos."
567
+
568
+ #~ msgid ""
569
+ #~ "For some reasons, Polylang could not create a table in your database."
570
+ #~ msgstr ""
571
+ #~ "Por alguna razón Polylang no pudo crear la tabla en tu base de datos."
572
+
573
  #~ msgid "Displays a language switcher at the end of the menu"
574
  #~ msgstr "Muestra un conmutador de idioma al final del menu"
575
 
languages/polylang-et.mo CHANGED
Binary file
languages/polylang-et.po CHANGED
@@ -3,8 +3,10 @@ msgstr ""
3
  "Project-Id-Version: Polylang\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
- "PO-Revision-Date: 2013-04-24 12:53+0200\n"
 
7
  "Language-Team: \n"
 
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -14,562 +16,530 @@ msgstr ""
14
  "_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
- "Last-Translator: Ahto Naris <ahto.naris@live.com>\n"
18
  "X-Generator: Poedit 1.5.5\n"
19
  "X-Poedit-SearchPath-0: .\n"
20
 
21
  # @ polylang
22
- #: include/about.php:3
23
  #, php-format
24
- msgid ""
25
- "Polylang is provided with an extensive %sdocumentation%s (in English only). "
26
- "It includes information on how to set up your multilingual site and use it "
27
- "on a daily basis, a FAQ, as well as a documentation for programmers to adapt "
28
- "their plugins and themes."
29
- msgstr ""
30
- "Polylang on varustatud ulatusliku %sdokumentatsiooniga%s (ainult inglise "
31
- "keeles). See sisaldab teavet kuidas luua ja kasutada igapäevaselt oma "
32
- "mitmekeelset kodulehte, KKK-d ning ka dokumentatsiooni programmeerijatele "
33
- "kuidas kohandada oma pluginad ja teemad."
34
 
35
  # @ polylang
36
- #: include/about.php:9
37
  #, php-format
38
- msgid ""
39
- "You will also find useful information in the %ssupport forum%s. However "
40
- "don't forget to make a search before posting a new topic."
41
- msgstr ""
42
- "Kasulikku informatsiooni on võimalik ka leida %sfoorumist%s. Paljud teemad "
43
- "on enne foorumis juba läbi arutatud, seega kasuta enne uue teema postitamist "
44
- "otsingut."
45
 
46
  # @ polylang
47
- #: include/about.php:16
48
  #, php-format
49
- msgid ""
50
- "Polylang is free of charge and is released under the same license as "
51
- "WordPress, the %sGPL%s."
52
- msgstr ""
53
- "Polylang on tasuta ja avaldatud sama litsentsi alusel nagu WordPress - %sGPL"
54
- "%s."
55
 
56
  # @ polylang
57
- #: include/about.php:22
58
  #, php-format
59
  msgid "If you wonder how you can help the project, just %sread this%s."
60
  msgstr "Kui sul on isu selles projektis abiks olla alusta %ssiit%s."
61
 
62
  # @ polylang
63
- #: include/about.php:27
64
- msgid ""
65
- "Finally if you like this plugin or if it helps your business, donations to "
66
- "the author are greatly appreciated."
67
- msgstr ""
68
- "Kui see plugin meeldib teile või aitab teie äri kaaluge autorile annetuse "
69
- "tegemist."
70
 
71
  # @ polylang
72
- #: include/admin-base.php:55 include/admin-base.php:190
73
- #: include/admin-filters.php:243 include/admin.php:23 include/admin.php:301
74
- #: include/list-table.php:13 polylang.php:339
 
 
 
75
  msgid "Languages"
76
  msgstr "Keeled"
77
 
78
  # @ polylang
79
- #: include/admin-base.php:153
80
  msgid "Displays language names"
81
  msgstr "Näita keelte nimetusi"
82
 
83
  # @ polylang
84
- #: include/admin-base.php:154
85
  msgid "Displays flags"
86
  msgstr "Näita lippe"
87
 
88
  # @ polylang
89
- #: include/admin-base.php:155
90
  msgid "Forces link to front page"
91
  msgstr "Suuna viide avalehele"
92
 
93
  # @ polylang
94
- #: include/admin-base.php:156
95
  msgid "Hides the current language"
96
  msgstr "Peidab hetkel kasutusel oleva keele"
97
 
98
  # @ polylang
99
- #: include/admin-base.php:160
100
  msgid "Displays as dropdown"
101
  msgstr "Näita rippmenüüna"
102
 
103
  # @ polylang
104
- #: include/admin-base.php:191
105
  msgid "Filters content by language"
106
  msgstr "Filtreerib sisu keele järgi"
107
 
108
  # @ polylang
109
- #: include/admin-base.php:186
110
  msgid "Show all languages"
111
  msgstr "Näita kõiki keeli"
112
 
113
  # @ polylang
114
- #: include/admin-filters.php:181 include/admin-filters.php:877
 
115
  msgid "Add new translation"
116
  msgstr "Lisa uus tõlge"
117
 
118
  # @ polylang
119
- #: include/admin-filters.php:209 include/admin-filters.php:267
120
- #: include/admin-filters.php:601 include/admin-filters.php:817
121
- #: include/admin-filters.php:835 include/list-table.php:12
122
- #: include/media-translations.php:5 include/media-translations.php:43
123
- #: include/post-translations.php:8 include/term-translations.php:15
124
- #: polylang.php:340
 
 
 
 
125
  msgid "Language"
126
  msgstr "Keel"
127
 
128
  # @ polylang
129
- #: include/admin-filters.php:616 include/admin-filters.php:651
130
- #: include/list-table.php:127 include/media-translations.php:40
131
- #: include/term-translations.php:6 include/term-translations.php:11
 
 
 
132
  msgid "Translations"
133
  msgstr "Tõlked"
134
 
135
  # @ polylang
136
- #: include/admin-filters.php:819 include/admin-filters.php:838
 
137
  msgid "Sets the language"
138
  msgstr "Määrab keele"
139
 
140
  # @ polylang
141
- #: include/admin-filters.php:1053
142
  msgid "The widget is displayed for:"
143
  msgstr "Moodul kuvatakse:"
144
 
145
  # @ polylang
146
- #: include/admin-filters.php:1057 polylang.php:341
 
147
  msgid "All languages"
148
  msgstr "Kõik keeled"
149
 
150
  # @ polylang
151
- #: include/admin-filters.php:1080
152
  msgid "Admin language"
153
  msgstr "Halduri keel"
154
 
155
  # @ polylang
156
- #: include/admin-filters.php:1085
157
  msgid "Wordpress default"
158
  msgstr "Wordpressi vaikimisi väärtus"
159
 
160
  # @ polylang
161
- #: include/admin-filters.php:1114 include/admin.php:306
 
162
  msgid "Settings"
163
  msgstr "Sätted"
164
 
165
  # @ polylang
166
- #: include/admin-filters.php:1120
167
  msgid "Upgrading language files&#8230;"
168
  msgstr "Keelefailide uuendamine&#8230;"
169
 
170
  # @ polylang
171
- #: include/admin.php:22
172
  msgid "About Polylang"
173
  msgstr "Polylang info"
174
 
175
  # @ polylang
176
- #: include/admin.php:27 include/list-table.php:82
177
  msgid "Strings translations"
178
  msgstr "Sõnade tõlkimised"
179
 
180
  # @ polylang
181
- #: include/admin.php:305 include/list-table.php:81
182
  msgid "Strings translation"
183
  msgstr "Sõnade tõlkimine"
184
 
185
  # @ polylang
186
- #: include/admin.php:345
187
  msgid "Enter a valid WorPress locale"
188
  msgstr "Sisesta määrustepärane WordPressi locale"
189
 
190
  # @ polylang
191
- #: include/admin.php:346
192
- msgid "The language code must be 2 characters long"
193
- msgstr "Keelekood peab olema 2 tähemärki pikk"
194
-
195
- # @ polylang
196
- #: include/admin.php:328
197
  msgid "The language code must be unique"
198
  msgstr "Keelekood peab olema unikaalne"
199
 
200
  # @ polylang
201
- #: include/admin.php:329
202
  msgid "The language must have a name"
203
  msgstr "Keelel peab olema nimetus"
204
 
205
  # @ polylang
206
- #: include/admin.php:330
207
- msgid ""
208
- "The language was created, but the WordPress language file was not "
209
- "downloaded. Please install it manually."
210
- msgstr ""
211
- "Keel loodi, aga WordPressi keelefaili allalaadimine ebaõnnestus. Palun "
212
- "paigalda see käsitsi."
213
 
214
  # @ polylang
215
- #: include/admin.php:449
216
  msgid "Widget title"
217
  msgstr "Mooduli pealkiri"
218
 
219
  # @ polylang
220
- #: include/base.php:368
221
  msgid "Taxonomies"
222
  msgstr "Taksonoomiad"
223
 
224
  # @ polylang
225
- #: include/base.php:369
226
  msgid "Custom fields"
227
  msgstr "Kohandatud väli"
228
 
229
  # @ polylang
230
- #: include/base.php:370
231
  msgid "Comment status"
232
  msgstr "Kommentaari seis"
233
 
234
  # @ polylang
235
- #: include/base.php:371
236
  msgid "Ping status"
237
  msgstr "Ping-i seis"
238
 
239
  # @ polylang
240
- #: include/base.php:372
241
  msgid "Sticky posts"
242
  msgstr "Esilehepostitused"
243
 
244
  # @ polylang
245
- #: include/base.php:373
246
  msgid "Published date"
247
  msgstr "Avaldamise kuupäev"
248
 
249
  # @ polylang
250
- #: include/base.php:374
251
  msgid "Post format"
252
  msgstr "Postituse vorming"
253
 
254
  # @ polylang
255
- #: include/base.php:375
256
  msgid "Page parent"
257
  msgstr "Ülemleht"
258
 
259
  # @ polylang
260
- #: include/base.php:376
261
  msgid "Page template"
262
  msgstr "Lehe mall"
263
 
264
  # @ polylang
265
- #: include/base.php:377
266
  msgid "Page order"
267
  msgstr "Lehe järjekorranr."
268
 
269
  # @ polylang
270
- #: include/base.php:378
271
  msgid "Featured image"
272
  msgstr "Tunnuspilt"
273
 
274
  # @ polylang
275
- #: include/languages-form.php:42
276
  msgid "Edit language"
277
  msgstr "Muuda keelt"
278
 
279
  # @ polylang
280
- #: include/languages-form.php:42 include/languages-form.php:123
 
281
  msgid "Add new language"
282
  msgstr "Lisa uus keel"
283
 
284
  # @ polylang
285
- #: include/languages-form.php:64
286
  msgid "Choose a language"
287
  msgstr "Vali keel"
288
 
289
  # @ polylang
290
- #: include/languages-form.php:78
291
  msgid "You can choose a language in the list or directly edit it below."
292
- msgstr ""
293
- "Saate valida keele loendist või vahetult redigeerida allpool olevates "
294
- "lahtrites."
295
 
296
  # @ polylang
297
- #: include/languages-form.php:82 include/list-table.php:34
 
298
  msgid "Full name"
299
  msgstr "Täisnimi"
300
 
301
  # @ polylang
302
- #: include/languages-form.php:84
303
  msgid "The name is how it is displayed on your site (for example: English)."
304
  msgstr "Täisnimi kuvatakse sinu lehel (näiteks: Eesti)."
305
 
306
  # @ polylang
307
- #: include/languages-form.php:88 include/list-table.php:35
 
308
  msgid "Locale"
309
  msgstr "Locale"
310
 
311
  # @ polylang
312
- #: include/languages-form.php:93
313
- msgid ""
314
- "Wordpress Locale for the language (for example: en_US). You will need to "
315
- "install the .mo file for this language."
316
- msgstr ""
317
- "WordPress Locale keelele (näiteks: en_US). Peate paigaldama .mo tõlkefaili "
318
- "selle keele jaoks."
319
 
320
  # @ polylang
321
- #: include/languages-form.php:97
322
  msgid "Language code"
323
  msgstr "Keelekood"
324
 
325
  # @ polylang
326
- #: include/languages-form.php:99
327
  msgid "2-letters ISO 639-1 language code (for example: en)"
328
  msgstr "2 täheline ISO 639-1 keelekood (näiteks: et)"
329
 
330
  # @ polylang
331
- #: include/languages-form.php:103
332
  msgid "Text direction"
333
  msgstr "Teksti suund"
334
 
335
  # @ polylang
336
- #: include/languages-form.php:107
337
  msgid "left to right"
338
  msgstr "vasakult paremale"
339
 
340
  # @ polylang
341
- #: include/languages-form.php:112
342
  msgid "right to left"
343
  msgstr "paremalt vasakule"
344
 
345
  # @ polylang
346
- #: include/languages-form.php:114
347
  msgid "Choose the text direction for the language"
348
  msgstr "Vali keele teksti suund "
349
 
350
  # @ polylang
351
- #: include/languages-form.php:118 include/list-table.php:37
 
352
  msgid "Order"
353
  msgstr "Järjekord"
354
 
355
  # @ polylang
356
- #: include/languages-form.php:120
357
  msgid "Position of the language in the language switcher"
358
  msgstr "Keele positsioon keele vahetajas"
359
 
360
  # @ polylang
361
- #: include/nav-menu.php:28 include/nav-menu.php:51 include/nav-menu.php:54
362
- #: include/nav-menu.php:82 include/nav-menu.php:106 polylang.php:302
 
 
 
 
363
  msgid "Language switcher"
364
  msgstr "Keele vahetaja"
365
 
366
  # @ polylang
367
- #: include/languages-form.php:148
368
  msgid "Search translations"
369
  msgstr "Otsi tõlkeid"
370
 
371
  # @ polylang
372
- #: include/languages-form.php:151
373
  msgid "Clean strings translation database"
374
  msgstr "Puhasta sõnade tõlkimise andmebaas"
375
 
376
  # @ polylang
377
- #: include/languages-form.php:167
378
  msgid "Default language"
379
  msgstr "Vaikimisi keel"
380
 
381
  # @ polylang
382
- #: include/languages-form.php:179
383
- msgid ""
384
- "There are posts, pages, categories or tags without language set. Do you want "
385
- "to set them all to default language ?"
386
- msgstr ""
387
- "Leidub postitusi, lehti, rubriike või silte millel pole keel määratud. Kas "
388
- "soovite neile määrata vaikimisi keele?"
389
 
390
  # @ polylang
391
- #: include/languages-form.php:187
392
  msgid "Detect browser language"
393
  msgstr "Tuvasta veebilehitseja keel"
394
 
395
  # @ polylang
396
- #: include/languages-form.php:193
397
- msgid ""
398
- "When the front page is visited, set the language according to the browser "
399
- "preference"
400
- msgstr ""
401
- "Kui külastatakse esilehte, kasuta keele määramiseks veebilehitseja eelistusi"
402
 
403
  # @ polylang
404
- #: include/languages-form.php:200
405
  msgid "URL modifications"
406
  msgstr "aadressi (URL) modifikatsioon"
407
 
408
  # @ polylang
409
- #: include/languages-form.php:206
410
- msgid ""
411
- "The language is set from content. Posts, pages, categories and tags urls are "
412
- "not modified."
413
- msgstr ""
414
- "Keel on määratud sisus. Postituste, lehtede, rubriikide ja siltide aadresse "
415
- "ei muudeta."
416
 
417
  # @ polylang
418
- #: include/languages-form.php:214
419
- msgid ""
420
- "The language code, for example /en/, is added to all urls when using pretty "
421
- "permalinks."
422
- msgstr ""
423
- "Keelekood (näiteks: /et/) lisatakse kõikidele aadressidele, kui kasutusel on "
424
- "nn. ilusad püsiviited"
425
-
426
- # @ polylang
427
- #: include/languages-form.php:223
428
  msgid "Remove /language/ in pretty permalinks. Example:"
429
  msgstr "Eemalda /language/ nn. ilusatest püsiviidetest. Näiteks:"
430
 
431
  # @ polylang
432
- #: include/languages-form.php:232
433
  msgid "Keep /language/ in pretty permalinks. Example:"
434
  msgstr "Säilita /language/ nn. ilusates püsiviidetes. Näiteks:"
435
 
436
  # @ polylang
437
- #: include/languages-form.php:241
438
  msgid "Hide URL language information for default language"
439
  msgstr "Peida keeleinfo aadressides (URL-ides), kui on kasutusel vaikekeel."
440
 
441
  # @ polylang
442
- #: include/languages-form.php:251
443
  #, php-format
444
- msgid ""
445
- "When using static front page, redirect the language page (example: %s) to "
446
- "the front page in the right language"
447
- msgstr ""
448
- "Kui kasutusel on staatiline esileht suunata keeleleht (näitkes: %s) õige "
449
- "keelse esilehe peale"
450
 
451
  # @ polylang
452
- #: include/languages-form.php:260
453
  msgid "Media"
454
  msgstr "Meedia"
455
 
456
  # @ polylang
457
- #: include/languages-form.php:266
458
  msgid "Activate languages and translations for media"
459
  msgstr "Aktiveeri keeled ja tõlked meedia jaoks."
460
 
461
  # @ polylang
462
- #: include/languages-form.php:273
463
  msgid "Synchronization"
464
  msgstr "Sünkroniseerimine"
465
 
466
  # @ polylang
467
- #: include/languages-form.php:287
468
  msgid "Custom post types"
469
  msgstr "Kohandatud postitusetüübid"
470
 
471
  # @ polylang
472
- #: include/languages-form.php:300
473
  msgid "Activate languages and translations for custom post types."
474
  msgstr "Aktiveeri keeled ja tõlked kohandatud postitusetüüpide jaoks."
475
 
476
  # @ polylang
477
- #: include/languages-form.php:307
478
  msgid "Custom taxonomies"
479
  msgstr "Kohandatud taksonoomiad"
480
 
481
  # @ polylang
482
- #: include/languages-form.php:320
483
  msgid "Activate languages and translations for custom taxonomies."
484
  msgstr "Aktiveeri keeled ja tõlked kohandatud taksonoomiate jaoks."
485
 
486
  # @ polylang
487
- #: include/list-table.php:26 include/media-translations.php:22
488
- #: include/media-translations.php:60 include/post-translations.php:10
489
- #: include/post-translations.php:33 include/term-translations.php:18
490
- #: include/term-translations.php:80
 
 
 
491
  msgid "Edit"
492
  msgstr "Muuda"
493
 
494
  # @ polylang
495
- #: include/list-table.php:27 include/list-table.php:162
 
496
  msgid "Delete"
497
  msgstr "Kustuta"
498
 
499
  # @ polylang
500
- #: include/list-table.php:36
501
  msgid "Code"
502
  msgstr "Kood"
503
 
504
  # @ polylang
505
- #: include/list-table.php:38
506
  msgid "Flag"
507
  msgstr "Lipp"
508
 
509
  # @ polylang
510
- #: include/list-table.php:39
511
  msgid "Posts"
512
  msgstr "Postitused"
513
 
514
  # @ polylang
515
- #: include/list-table.php:125
516
  msgid "Name"
517
  msgstr "Nimi"
518
 
519
  # @ polylang
520
- #: include/list-table.php:126
521
  msgid "String"
522
  msgstr "Sõna(d)"
523
 
524
  # @ polylang
525
- #: include/media-translations.php:6 include/media-translations.php:44
526
- #: include/term-translations.php:16
 
527
  msgid "Translation"
528
  msgstr "Tõlge"
529
 
530
  # @ polylang
531
- #: include/media-translations.php:31 include/media-translations.php:68
532
- #: include/post-translations.php:38 include/term-translations.php:60
 
 
533
  msgid "Add new"
534
  msgstr "Lisa uus"
535
 
536
  # @ polylang
537
- #: include/post-translations.php:5
538
  msgid "ID of pages in other languages:"
539
  msgstr "Teistes keeltes olevate lehtede ID-d:"
540
 
541
  # @ polylang
542
- #: include/post-translations.php:5
543
  msgid "ID of posts in other languages:"
544
  msgstr "Teistes keeltes olevate postituste ID-d:"
545
 
546
  # @ polylang
547
- #: include/post-translations.php:9
548
  msgid "Page ID"
549
  msgstr "Lehe ID"
550
 
551
  # @ polylang
552
- #: include/post-translations.php:9
553
  msgid "Post ID"
554
  msgstr "Postituse ID"
555
 
556
  # @ polylang
557
- #: include/term-translations.php:48
558
  msgid "No untranslated term"
559
  msgstr "Pole tõlkimata termineid"
560
 
561
  # @ polylang
562
- #: include/widget.php:6
563
  msgid "Language Switcher"
564
  msgstr "Keele vahetaja"
565
 
566
  # @ polylang
567
- #: include/widget.php:6
568
  msgid "Displays a language switcher"
569
  msgstr "Näitab keele vahetajat"
570
 
571
  # @ polylang
572
- #: include/widget.php:69
573
  msgid "Title:"
574
  msgstr "Pealkiri:"
575
 
@@ -580,37 +550,64 @@ msgid "Adds multilingual capability to WordPress"
580
  msgstr "Lisab mitmekeelsuse WordPressile"
581
 
582
  # @ polylang
583
- #: polylang.php:133
584
  #, php-format
585
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
586
- msgstr ""
587
- "Kasutusel on WordPress %s. Polylang vajab töötamiseks vähemalt WordPress "
588
- "versiooni %s."
589
-
590
- # @ polylang
591
- #: polylang.php:174
592
- msgid "For some reasons, Polylang could not create a table in your database."
593
- msgstr "Mingil põhjusel Polylang ei suutnud andmebaasi luua tabelit."
594
 
595
  # @ polylang
596
- #: polylang.php:235
597
- msgid ""
598
- "Polylang has been deactivated because you upgraded from a too old version."
599
  msgstr "Polylang on deaktiveeritud kuna uuendasite liiga vana versiooni pealt."
600
 
601
  # @ polylang
602
- #: polylang.php:237
603
  #, php-format
604
  msgid "Please upgrade first to %s before ugrading to %s."
605
- msgstr ""
606
- "Palun uuendage kõigepealt versioonile %s ja alles seejärel versioonile %s."
607
 
608
  # @ polylang
609
- #: include/list-table.php:124
610
  msgid "Group"
611
  msgstr "Grupp"
612
 
613
  # @ polylang
614
- #: include/list-table.php:173
615
  msgid "View all groups"
616
  msgstr "Vaata kõiki gruppe"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  "Project-Id-Version: Polylang\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2013-10-17 11:46+0100\n"
7
+ "Last-Translator: Ahto Naris <ahto.naris@live.com>\n"
8
  "Language-Team: \n"
9
+ "Language: \n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
16
  "_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"
17
  "X-Poedit-Basepath: ../\n"
18
  "X-Textdomain-Support: yes\n"
 
19
  "X-Generator: Poedit 1.5.5\n"
20
  "X-Poedit-SearchPath-0: .\n"
21
 
22
  # @ polylang
23
+ #: admin/view-about.php:3
24
  #, php-format
25
+ 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."
26
+ msgstr "Polylang on varustatud ulatusliku %sdokumentatsiooniga%s (ainult inglise keeles). See sisaldab teavet kuidas luua ja kasutada igapäevaselt oma mitmekeelset kodulehte, KKK-d ning ka dokumentatsiooni programmeerijatele kuidas kohandada oma pluginad ja teemad."
 
 
 
 
 
 
 
 
27
 
28
  # @ polylang
29
+ #: admin/view-about.php:9
30
  #, php-format
31
+ 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."
32
+ msgstr "Kasulikku informatsiooni on võimalik ka leida %sfoorumist%s. Paljud teemad on enne foorumis juba läbi arutatud, seega kasuta enne uue teema postitamist otsingut."
 
 
 
 
 
33
 
34
  # @ polylang
35
+ #: admin/view-about.php:16
36
  #, php-format
37
+ msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
38
+ msgstr "Polylang on tasuta ja avaldatud sama litsentsi alusel nagu WordPress - %sGPL%s."
 
 
 
 
39
 
40
  # @ polylang
41
+ #: admin/view-about.php:22
42
  #, php-format
43
  msgid "If you wonder how you can help the project, just %sread this%s."
44
  msgstr "Kui sul on isu selles projektis abiks olla alusta %ssiit%s."
45
 
46
  # @ polylang
47
+ #: admin/view-about.php:27
48
+ msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
49
+ msgstr "Kui see plugin meeldib teile või aitab teie äri kaaluge autorile annetuse tegemist."
 
 
 
 
50
 
51
  # @ polylang
52
+ #: admin/admin-filters-post.php:76
53
+ #: admin/admin.php:83
54
+ #: admin/admin.php:187
55
+ #: admin/settings.php:42
56
+ #: admin/settings.php:57
57
+ #: include/model.php:490
58
  msgid "Languages"
59
  msgstr "Keeled"
60
 
61
  # @ polylang
62
+ #: include/switcher.php:22
63
  msgid "Displays language names"
64
  msgstr "Näita keelte nimetusi"
65
 
66
  # @ polylang
67
+ #: include/switcher.php:23
68
  msgid "Displays flags"
69
  msgstr "Näita lippe"
70
 
71
  # @ polylang
72
+ #: include/switcher.php:24
73
  msgid "Forces link to front page"
74
  msgstr "Suuna viide avalehele"
75
 
76
  # @ polylang
77
+ #: include/switcher.php:25
78
  msgid "Hides the current language"
79
  msgstr "Peidab hetkel kasutusel oleva keele"
80
 
81
  # @ polylang
82
+ #: include/switcher.php:29
83
  msgid "Displays as dropdown"
84
  msgstr "Näita rippmenüüna"
85
 
86
  # @ polylang
87
+ #: admin/admin.php:188
88
  msgid "Filters content by language"
89
  msgstr "Filtreerib sisu keele järgi"
90
 
91
  # @ polylang
92
+ #: admin/admin.php:183
93
  msgid "Show all languages"
94
  msgstr "Näita kõiki keeli"
95
 
96
  # @ polylang
97
+ #: admin/admin-filters-columns.php:126
98
+ #: admin/admin-filters-columns.php:215
99
  msgid "Add new translation"
100
  msgstr "Lisa uus tõlge"
101
 
102
  # @ polylang
103
+ #: admin/admin-filters-columns.php:163
104
+ #: admin/admin-filters-media.php:58
105
+ #: admin/admin-filters-post.php:109
106
+ #: admin/admin-filters-term.php:72
107
+ #: admin/admin-filters-term.php:106
108
+ #: admin/view-translations-media.php:7
109
+ #: admin/view-translations-media.php:45
110
+ #: admin/view-translations-post.php:8
111
+ #: admin/view-translations-term.php:15
112
+ #: include/model.php:491
113
  msgid "Language"
114
  msgstr "Keel"
115
 
116
  # @ polylang
117
+ #: admin/admin-filters-media.php:73
118
+ #: admin/admin-filters-media.php:112
119
+ #: admin/table-string.php:111
120
+ #: admin/view-translations-media.php:42
121
+ #: admin/view-translations-term.php:6
122
+ #: admin/view-translations-term.php:11
123
  msgid "Translations"
124
  msgstr "Tõlked"
125
 
126
  # @ polylang
127
+ #: admin/admin-filters-term.php:74
128
+ #: admin/admin-filters-term.php:108
129
  msgid "Sets the language"
130
  msgstr "Määrab keele"
131
 
132
  # @ polylang
133
+ #: admin/admin-filters.php:60
134
  msgid "The widget is displayed for:"
135
  msgstr "Moodul kuvatakse:"
136
 
137
  # @ polylang
138
+ #: admin/admin-filters.php:63
139
+ #: include/model.php:492
140
  msgid "All languages"
141
  msgstr "Kõik keeled"
142
 
143
  # @ polylang
144
+ #: admin/admin-filters.php:120
145
  msgid "Admin language"
146
  msgstr "Halduri keel"
147
 
148
  # @ polylang
149
+ #: admin/admin-filters.php:123
150
  msgid "Wordpress default"
151
  msgstr "Wordpressi vaikimisi väärtus"
152
 
153
  # @ polylang
154
+ #: admin/admin.php:123
155
+ #: admin/settings.php:62
156
  msgid "Settings"
157
  msgstr "Sätted"
158
 
159
  # @ polylang
160
+ #: admin/admin-filters.php:151
161
  msgid "Upgrading language files&#8230;"
162
  msgstr "Keelefailide uuendamine&#8230;"
163
 
164
  # @ polylang
165
+ #: admin/settings.php:38
166
  msgid "About Polylang"
167
  msgstr "Polylang info"
168
 
169
  # @ polylang
170
+ #: admin/settings.php:46
171
  msgid "Strings translations"
172
  msgstr "Sõnade tõlkimised"
173
 
174
  # @ polylang
175
+ #: admin/settings.php:61
176
  msgid "Strings translation"
177
  msgstr "Sõnade tõlkimine"
178
 
179
  # @ polylang
180
+ #: admin/settings.php:74
181
  msgid "Enter a valid WorPress locale"
182
  msgstr "Sisesta määrustepärane WordPressi locale"
183
 
184
  # @ polylang
185
+ #: admin/settings.php:76
 
 
 
 
 
186
  msgid "The language code must be unique"
187
  msgstr "Keelekood peab olema unikaalne"
188
 
189
  # @ polylang
190
+ #: admin/settings.php:77
191
  msgid "The language must have a name"
192
  msgstr "Keelel peab olema nimetus"
193
 
194
  # @ polylang
195
+ #: admin/settings.php:78
196
+ msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
197
+ msgstr "Keel loodi, aga WordPressi keelefaili allalaadimine ebaõnnestus. Palun paigalda see käsitsi."
 
 
 
 
198
 
199
  # @ polylang
200
+ #: admin/settings.php:305
201
  msgid "Widget title"
202
  msgstr "Mooduli pealkiri"
203
 
204
  # @ polylang
205
+ #: admin/settings.php:323
206
  msgid "Taxonomies"
207
  msgstr "Taksonoomiad"
208
 
209
  # @ polylang
210
+ #: admin/settings.php:324
211
  msgid "Custom fields"
212
  msgstr "Kohandatud väli"
213
 
214
  # @ polylang
215
+ #: admin/settings.php:325
216
  msgid "Comment status"
217
  msgstr "Kommentaari seis"
218
 
219
  # @ polylang
220
+ #: admin/settings.php:326
221
  msgid "Ping status"
222
  msgstr "Ping-i seis"
223
 
224
  # @ polylang
225
+ #: admin/settings.php:327
226
  msgid "Sticky posts"
227
  msgstr "Esilehepostitused"
228
 
229
  # @ polylang
230
+ #: admin/settings.php:328
231
  msgid "Published date"
232
  msgstr "Avaldamise kuupäev"
233
 
234
  # @ polylang
235
+ #: admin/settings.php:329
236
  msgid "Post format"
237
  msgstr "Postituse vorming"
238
 
239
  # @ polylang
240
+ #: admin/settings.php:330
241
  msgid "Page parent"
242
  msgstr "Ülemleht"
243
 
244
  # @ polylang
245
+ #: admin/settings.php:331
246
  msgid "Page template"
247
  msgstr "Lehe mall"
248
 
249
  # @ polylang
250
+ #: admin/settings.php:332
251
  msgid "Page order"
252
  msgstr "Lehe järjekorranr."
253
 
254
  # @ polylang
255
+ #: admin/settings.php:333
256
  msgid "Featured image"
257
  msgstr "Tunnuspilt"
258
 
259
  # @ polylang
260
+ #: admin/view-languages.php:42
261
  msgid "Edit language"
262
  msgstr "Muuda keelt"
263
 
264
  # @ polylang
265
+ #: admin/view-languages.php:42
266
+ #: admin/view-languages.php:117
267
  msgid "Add new language"
268
  msgstr "Lisa uus keel"
269
 
270
  # @ polylang
271
+ #: admin/view-languages.php:58
272
  msgid "Choose a language"
273
  msgstr "Vali keel"
274
 
275
  # @ polylang
276
+ #: admin/view-languages.php:72
277
  msgid "You can choose a language in the list or directly edit it below."
278
+ msgstr "Saate valida keele loendist või vahetult redigeerida allpool olevates lahtrites."
 
 
279
 
280
  # @ polylang
281
+ #: admin/table-languages.php:74
282
+ #: admin/view-languages.php:76
283
  msgid "Full name"
284
  msgstr "Täisnimi"
285
 
286
  # @ polylang
287
+ #: admin/view-languages.php:78
288
  msgid "The name is how it is displayed on your site (for example: English)."
289
  msgstr "Täisnimi kuvatakse sinu lehel (näiteks: Eesti)."
290
 
291
  # @ polylang
292
+ #: admin/table-languages.php:75
293
+ #: admin/view-languages.php:82
294
  msgid "Locale"
295
  msgstr "Locale"
296
 
297
  # @ polylang
298
+ #: admin/view-languages.php:87
299
+ msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
300
+ msgstr "WordPress Locale keelele (näiteks: en_US). Peate paigaldama .mo tõlkefaili selle keele jaoks."
 
 
 
 
301
 
302
  # @ polylang
303
+ #: admin/view-languages.php:91
304
  msgid "Language code"
305
  msgstr "Keelekood"
306
 
307
  # @ polylang
308
+ #: admin/view-languages.php:93
309
  msgid "2-letters ISO 639-1 language code (for example: en)"
310
  msgstr "2 täheline ISO 639-1 keelekood (näiteks: et)"
311
 
312
  # @ polylang
313
+ #: admin/view-languages.php:97
314
  msgid "Text direction"
315
  msgstr "Teksti suund"
316
 
317
  # @ polylang
318
+ #: admin/view-languages.php:101
319
  msgid "left to right"
320
  msgstr "vasakult paremale"
321
 
322
  # @ polylang
323
+ #: admin/view-languages.php:106
324
  msgid "right to left"
325
  msgstr "paremalt vasakule"
326
 
327
  # @ polylang
328
+ #: admin/view-languages.php:108
329
  msgid "Choose the text direction for the language"
330
  msgstr "Vali keele teksti suund "
331
 
332
  # @ polylang
333
+ #: admin/table-languages.php:77
334
+ #: admin/view-languages.php:112
335
  msgid "Order"
336
  msgstr "Järjekord"
337
 
338
  # @ polylang
339
+ #: admin/view-languages.php:114
340
  msgid "Position of the language in the language switcher"
341
  msgstr "Keele positsioon keele vahetajas"
342
 
343
  # @ polylang
344
+ #: admin/admin-nav-menu.php:51
345
+ #: admin/admin-nav-menu.php:79
346
+ #: admin/admin-nav-menu.php:82
347
+ #: admin/admin-nav-menu.php:113
348
+ #: admin/admin-nav-menu.php:170
349
+ #: include/upgrade.php:175
350
  msgid "Language switcher"
351
  msgstr "Keele vahetaja"
352
 
353
  # @ polylang
354
+ #: admin/view-languages.php:143
355
  msgid "Search translations"
356
  msgstr "Otsi tõlkeid"
357
 
358
  # @ polylang
359
+ #: admin/view-languages.php:146
360
  msgid "Clean strings translation database"
361
  msgstr "Puhasta sõnade tõlkimise andmebaas"
362
 
363
  # @ polylang
364
+ #: admin/view-languages.php:164
365
  msgid "Default language"
366
  msgstr "Vaikimisi keel"
367
 
368
  # @ polylang
369
+ #: admin/view-languages.php:179
370
+ msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
371
+ msgstr "Leidub postitusi, lehti, rubriike või silte millel pole keel määratud. Kas soovite neile määrata vaikimisi keele?"
 
 
 
 
372
 
373
  # @ polylang
374
+ #: admin/view-languages.php:187
375
  msgid "Detect browser language"
376
  msgstr "Tuvasta veebilehitseja keel"
377
 
378
  # @ polylang
379
+ #: admin/view-languages.php:193
380
+ msgid "When the front page is visited, set the language according to the browser preference"
381
+ msgstr "Kui külastatakse esilehte, kasuta keele määramiseks veebilehitseja eelistusi"
 
 
 
382
 
383
  # @ polylang
384
+ #: admin/view-languages.php:200
385
  msgid "URL modifications"
386
  msgstr "aadressi (URL) modifikatsioon"
387
 
388
  # @ polylang
389
+ #: admin/view-languages.php:206
390
+ msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
391
+ msgstr "Keel on määratud sisus. Postituste, lehtede, rubriikide ja siltide aadresse ei muudeta."
 
 
 
 
392
 
393
  # @ polylang
394
+ #: admin/view-languages.php:253
 
 
 
 
 
 
 
 
 
395
  msgid "Remove /language/ in pretty permalinks. Example:"
396
  msgstr "Eemalda /language/ nn. ilusatest püsiviidetest. Näiteks:"
397
 
398
  # @ polylang
399
+ #: admin/view-languages.php:262
400
  msgid "Keep /language/ in pretty permalinks. Example:"
401
  msgstr "Säilita /language/ nn. ilusates püsiviidetes. Näiteks:"
402
 
403
  # @ polylang
404
+ #: admin/view-languages.php:271
405
  msgid "Hide URL language information for default language"
406
  msgstr "Peida keeleinfo aadressides (URL-ides), kui on kasutusel vaikekeel."
407
 
408
  # @ polylang
409
+ #: admin/view-languages.php:281
410
  #, php-format
411
+ msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
412
+ msgstr "Kui kasutusel on staatiline esileht suunata keeleleht (näitkes: %s) õige keelse esilehe peale"
 
 
 
 
413
 
414
  # @ polylang
415
+ #: admin/view-languages.php:290
416
  msgid "Media"
417
  msgstr "Meedia"
418
 
419
  # @ polylang
420
+ #: admin/view-languages.php:296
421
  msgid "Activate languages and translations for media"
422
  msgstr "Aktiveeri keeled ja tõlked meedia jaoks."
423
 
424
  # @ polylang
425
+ #: admin/view-languages.php:303
426
  msgid "Synchronization"
427
  msgstr "Sünkroniseerimine"
428
 
429
  # @ polylang
430
+ #: admin/view-languages.php:320
431
  msgid "Custom post types"
432
  msgstr "Kohandatud postitusetüübid"
433
 
434
  # @ polylang
435
+ #: admin/view-languages.php:333
436
  msgid "Activate languages and translations for custom post types."
437
  msgstr "Aktiveeri keeled ja tõlked kohandatud postitusetüüpide jaoks."
438
 
439
  # @ polylang
440
+ #: admin/view-languages.php:340
441
  msgid "Custom taxonomies"
442
  msgstr "Kohandatud taksonoomiad"
443
 
444
  # @ polylang
445
+ #: admin/view-languages.php:353
446
  msgid "Activate languages and translations for custom taxonomies."
447
  msgstr "Aktiveeri keeled ja tõlked kohandatud taksonoomiate jaoks."
448
 
449
  # @ polylang
450
+ #: admin/table-languages.php:54
451
+ #: admin/view-translations-media.php:24
452
+ #: admin/view-translations-media.php:62
453
+ #: admin/view-translations-post.php:10
454
+ #: admin/view-translations-post.php:33
455
+ #: admin/view-translations-term.php:18
456
+ #: admin/view-translations-term.php:80
457
  msgid "Edit"
458
  msgstr "Muuda"
459
 
460
  # @ polylang
461
+ #: admin/table-languages.php:60
462
+ #: admin/table-string.php:167
463
  msgid "Delete"
464
  msgstr "Kustuta"
465
 
466
  # @ polylang
467
+ #: admin/table-languages.php:76
468
  msgid "Code"
469
  msgstr "Kood"
470
 
471
  # @ polylang
472
+ #: admin/table-languages.php:78
473
  msgid "Flag"
474
  msgstr "Lipp"
475
 
476
  # @ polylang
477
+ #: admin/table-languages.php:79
478
  msgid "Posts"
479
  msgstr "Postitused"
480
 
481
  # @ polylang
482
+ #: admin/table-string.php:109
483
  msgid "Name"
484
  msgstr "Nimi"
485
 
486
  # @ polylang
487
+ #: admin/table-string.php:110
488
  msgid "String"
489
  msgstr "Sõna(d)"
490
 
491
  # @ polylang
492
+ #: admin/view-translations-media.php:8
493
+ #: admin/view-translations-media.php:46
494
+ #: admin/view-translations-term.php:16
495
  msgid "Translation"
496
  msgstr "Tõlge"
497
 
498
  # @ polylang
499
+ #: admin/view-translations-media.php:33
500
+ #: admin/view-translations-media.php:70
501
+ #: admin/view-translations-post.php:38
502
+ #: admin/view-translations-term.php:60
503
  msgid "Add new"
504
  msgstr "Lisa uus"
505
 
506
  # @ polylang
507
+ #: admin/view-translations-post.php:5
508
  msgid "ID of pages in other languages:"
509
  msgstr "Teistes keeltes olevate lehtede ID-d:"
510
 
511
  # @ polylang
512
+ #: admin/view-translations-post.php:5
513
  msgid "ID of posts in other languages:"
514
  msgstr "Teistes keeltes olevate postituste ID-d:"
515
 
516
  # @ polylang
517
+ #: admin/view-translations-post.php:9
518
  msgid "Page ID"
519
  msgstr "Lehe ID"
520
 
521
  # @ polylang
522
+ #: admin/view-translations-post.php:9
523
  msgid "Post ID"
524
  msgstr "Postituse ID"
525
 
526
  # @ polylang
527
+ #: admin/view-translations-term.php:48
528
  msgid "No untranslated term"
529
  msgstr "Pole tõlkimata termineid"
530
 
531
  # @ polylang
532
+ #: include/widget-languages.php:16
533
  msgid "Language Switcher"
534
  msgstr "Keele vahetaja"
535
 
536
  # @ polylang
537
+ #: include/widget-languages.php:16
538
  msgid "Displays a language switcher"
539
  msgstr "Näitab keele vahetajat"
540
 
541
  # @ polylang
542
+ #: include/widget-languages.php:100
543
  msgid "Title:"
544
  msgstr "Pealkiri:"
545
 
550
  msgstr "Lisab mitmekeelsuse WordPressile"
551
 
552
  # @ polylang
553
+ #: polylang.php:157
554
  #, php-format
555
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
556
+ msgstr "Kasutusel on WordPress %s. Polylang vajab töötamiseks vähemalt WordPress versiooni %s."
 
 
 
 
 
 
 
557
 
558
  # @ polylang
559
+ #: include/upgrade.php:75
560
+ msgid "Polylang has been deactivated because you upgraded from a too old version."
 
561
  msgstr "Polylang on deaktiveeritud kuna uuendasite liiga vana versiooni pealt."
562
 
563
  # @ polylang
564
+ #: include/upgrade.php:77
565
  #, php-format
566
  msgid "Please upgrade first to %s before ugrading to %s."
567
+ msgstr "Palun uuendage kõigepealt versioonile %s ja alles seejärel versioonile %s."
 
568
 
569
  # @ polylang
570
+ #: admin/table-string.php:108
571
  msgid "Group"
572
  msgstr "Grupp"
573
 
574
  # @ polylang
575
+ #: admin/table-string.php:186
576
  msgid "View all groups"
577
  msgstr "Vaata kõiki gruppe"
578
+
579
+ # @ polylang
580
+ #: admin/table-languages.php:59
581
+ msgid "You are about to permanently delete this language. Are you sure?"
582
+ msgstr ""
583
+
584
+ # @ polylang
585
+ #: admin/view-languages.php:147
586
+ msgid "Use this to remove unused strings from database, for example after a plugin has been uninstalled."
587
+ msgstr ""
588
+
589
+ # @ polylang
590
+ #: admin/view-languages.php:214
591
+ msgid "The language is set from the directory name in pretty permalinks. Example:"
592
+ msgstr ""
593
+
594
+ # @ polylang
595
+ #: admin/view-languages.php:223
596
+ msgid "The language is set from the subdomain name in pretty permalinks. Example:"
597
+ msgstr ""
598
+
599
+ # @ polylang
600
+ #: admin/view-languages.php:314
601
+ 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."
602
+ msgstr ""
603
+
604
+ # @ polylang
605
+ #: admin/settings.php:75
606
+ msgid "The language code contains invalid characters"
607
+ msgstr ""
608
+
609
+ # @ polylang
610
+ #: admin/view-languages.php:232
611
+ msgid "The language is set from different domains:"
612
+ msgstr ""
613
+
languages/polylang-fi.mo CHANGED
Binary file
languages/polylang-fi.po CHANGED
@@ -6,6 +6,7 @@ msgstr ""
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: Jani Alha <tuki@wysiwyg.fi>\n"
8
  "Language-Team: \n"
 
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
@@ -17,471 +18,447 @@ msgstr ""
17
  "X-Poedit-SearchPath-0: ..\n"
18
  "X-Poedit-SearchPath-1: ../include\n"
19
 
20
- #: include/about.php:3
21
  #, php-format
22
- msgid ""
23
- "Polylang is provided with an extensive %sdocumentation%s (in English only). "
24
- "It includes information on how to set up your multilingual site and use it "
25
- "on a daily basis, a FAQ, as well as a documentation for programmers to adapt "
26
- "their plugins and themes."
27
- msgstr ""
28
- "Polylang toimitetaan kattavan %sdokumentaation%s kanssa (vain englanniksi). "
29
- "Se sisältää tietoa kuinka perustat monikielisen sivuston ja käytät sitä "
30
- "päivittäisessä käytössä, UKK:t sekä dokumentaation ohjelmoijille lisäosien "
31
- "ja teemojen sovittamiseksi."
32
 
33
- #: include/about.php:9
34
  #, php-format
35
- msgid ""
36
- "You will also find useful information in the %ssupport forum%s. However "
37
- "don't forget to make a search before posting a new topic."
38
- msgstr ""
39
- "Tarpeellista tietoa löydät myös %stukifoorumilta%s. Älä kuitenkaan unohda "
40
- "tehdä hakua ennen uuden viestin lähettämistä."
41
 
42
- #: include/about.php:16
43
  #, php-format
44
- msgid ""
45
- "Polylang is free of charge and is released under the same license as "
46
- "WordPress, the %sGPL%s."
47
- msgstr ""
48
- "Polylang on ilmainen ja se on julkaistu saman lisenssin alla kuin WordPress, "
49
- "%sGPL%s."
50
 
51
- #: include/about.php:22
52
  #, php-format
53
  msgid "If you wonder how you can help the project, just %sread this%s."
54
  msgstr "Mikäli mietit kuinka voit auttaa projektia, %slue tämä%s."
55
 
56
- #: include/about.php:27
57
- msgid ""
58
- "Finally if you like this plugin or if it helps your business, donations to "
59
- "the author are greatly appreciated."
60
- msgstr ""
61
- "Mikäli pidit tästä lisäosasta tai se auttaa yritystäsi, lahjoituksia "
62
- "tekijälle arvostetaan suuresti."
63
 
64
- #: include/admin-base.php:55 include/admin-base.php:190
65
- #: include/admin-filters.php:243 include/admin.php:23 include/admin.php:301
66
- #: include/list-table.php:13 polylang.php:339
 
 
 
67
  msgid "Languages"
68
  msgstr "Kielet"
69
 
70
- #: include/admin-base.php:153
71
  msgid "Displays language names"
72
  msgstr "Näytä kielien nimet"
73
 
74
- #: include/admin-base.php:154
75
  msgid "Displays flags"
76
  msgstr "Näytä liput"
77
 
78
- #: include/admin-base.php:155
79
  msgid "Forces link to front page"
80
  msgstr "Pakottaa linkin etusivulle"
81
 
82
- #: include/admin-base.php:156
83
  msgid "Hides the current language"
84
  msgstr "Piilottaa nykyisen kielen"
85
 
86
- #: include/admin-base.php:160
87
  msgid "Displays as dropdown"
88
  msgstr "Näytä pudotusvalikkona"
89
 
90
- #: include/admin-base.php:191
91
  msgid "Filters content by language"
92
  msgstr "Suodata sisältöä kielen mukaan"
93
 
94
- #: include/admin-base.php:186
95
  msgid "Show all languages"
96
  msgstr "Näytä kaikki kielet"
97
 
98
- #: include/admin-filters.php:181 include/admin-filters.php:877
 
99
  msgid "Add new translation"
100
  msgstr "Lisää uusi käännös"
101
 
102
- #: include/admin-filters.php:209 include/admin-filters.php:267
103
- #: include/admin-filters.php:601 include/admin-filters.php:817
104
- #: include/admin-filters.php:835 include/list-table.php:12
105
- #: include/media-translations.php:5 include/media-translations.php:43
106
- #: include/post-translations.php:8 include/term-translations.php:15
107
- #: polylang.php:340
 
 
 
 
108
  msgid "Language"
109
  msgstr "Kieli"
110
 
111
- #: include/admin-filters.php:616 include/admin-filters.php:651
112
- #: include/list-table.php:127 include/media-translations.php:40
113
- #: include/term-translations.php:6 include/term-translations.php:11
 
 
 
114
  msgid "Translations"
115
  msgstr "Käännökset"
116
 
117
- #: include/admin-filters.php:819 include/admin-filters.php:838
 
118
  msgid "Sets the language"
119
  msgstr "Aseta kieli"
120
 
121
- #: include/admin-filters.php:1053
122
  msgid "The widget is displayed for:"
123
  msgstr "Vimpain näytetään:"
124
 
125
- #: include/admin-filters.php:1057 polylang.php:341
 
126
  msgid "All languages"
127
  msgstr "Kaikki kielet"
128
 
129
- #: include/admin-filters.php:1080
130
  msgid "Admin language"
131
  msgstr "Ylläpidon kieli"
132
 
133
- #: include/admin-filters.php:1085
134
  msgid "Wordpress default"
135
  msgstr "Wordpress oletus"
136
 
137
- #: include/admin-filters.php:1114 include/admin.php:306
 
138
  msgid "Settings"
139
  msgstr "Asetukset"
140
 
141
- #: include/admin-filters.php:1120
142
  msgid "Upgrading language files&#8230;"
143
  msgstr "Päivitetään kielitiedostoja&#8230;"
144
 
145
- #: include/admin.php:22
146
  msgid "About Polylang"
147
  msgstr "Tietoja Polylang:sta"
148
 
149
- #: include/admin.php:27 include/list-table.php:82
150
  msgid "Strings translations"
151
  msgstr "Merkkijonojen käännökset"
152
 
153
- #: include/admin.php:305 include/list-table.php:81
154
  msgid "Strings translation"
155
  msgstr "Merkkijonojen käännös"
156
 
157
- #: include/admin.php:345
158
  msgid "Enter a valid WorPress locale"
159
  msgstr "Syötä oikeanmuotoinen WordPress lokaali"
160
 
161
- #: include/admin.php:346
162
- msgid "The language code must be 2 characters long"
163
- msgstr "Kielikoodin täytyy olla 2 merkkiä pitkä"
164
-
165
- #: include/admin.php:328
166
  msgid "The language code must be unique"
167
  msgstr "Kielikoodin täytyy olla uniikki"
168
 
169
- #: include/admin.php:329
170
  msgid "The language must have a name"
171
  msgstr "Kielellä täytyy olla nimi"
172
 
173
- #: include/admin.php:330
174
- msgid ""
175
- "The language was created, but the WordPress language file was not "
176
- "downloaded. Please install it manually."
177
- msgstr ""
178
- "Kieli luotiin, mutta WordPress-kielitiedostoa ei ladattu. Asenna se käsin."
179
 
180
- #: include/admin.php:449
181
  msgid "Widget title"
182
  msgstr "Vimpaimen otsikko"
183
 
184
  # @ polylang
185
- #: include/base.php:368
186
  msgid "Taxonomies"
187
  msgstr "Luokittelut"
188
 
189
  # @ polylang
190
- #: include/base.php:369
191
  msgid "Custom fields"
192
  msgstr "Mukautetut kentät"
193
 
194
  # @ polylang
195
- #: include/base.php:370
196
  msgid "Comment status"
197
  msgstr "Kommentin tila"
198
 
199
  # @ polylang
200
- #: include/base.php:371
201
  msgid "Ping status"
202
  msgstr "Ping-tila"
203
 
204
  # @ polylang
205
- #: include/base.php:372
206
  msgid "Sticky posts"
207
  msgstr "Kiinnitetyt artikkelit"
208
 
209
  # @ polylang
210
- #: include/base.php:373
211
  msgid "Published date"
212
  msgstr "Julkaisupäivämäärä"
213
 
214
  # @ polylang
215
- #: include/base.php:374
216
  msgid "Post format"
217
  msgstr "Artikkelin muoto"
218
 
219
- #: include/base.php:375
220
  msgid "Page parent"
221
  msgstr "Sivun yläsivu"
222
 
223
  # @ polylang
224
- #: include/base.php:376
225
  msgid "Page template"
226
  msgstr "Sivun sivupohja"
227
 
228
- #: include/base.php:377
229
  msgid "Page order"
230
  msgstr "Sivun järjestys"
231
 
232
  # @ polylang
233
- #: include/base.php:378
234
  msgid "Featured image"
235
  msgstr "Artikkelikuva"
236
 
237
- #: include/languages-form.php:42
238
  msgid "Edit language"
239
  msgstr "Muokkaa kieltä"
240
 
241
- #: include/languages-form.php:42 include/languages-form.php:123
 
242
  msgid "Add new language"
243
  msgstr "Lisää uusi kieli"
244
 
245
- #: include/languages-form.php:64
246
  msgid "Choose a language"
247
  msgstr "Valitse kieli"
248
 
249
- #: include/languages-form.php:78
250
  msgid "You can choose a language in the list or directly edit it below."
251
  msgstr "Voit valita kielen listalta tai muokata sitä suoraan alla."
252
 
253
- #: include/languages-form.php:82 include/list-table.php:34
 
254
  msgid "Full name"
255
  msgstr "Täydellinen nimi"
256
 
257
- #: include/languages-form.php:84
258
  msgid "The name is how it is displayed on your site (for example: English)."
259
  msgstr "Nimi kuinka se esiintyy sivustollasi (esimerkiksi: Englanti)."
260
 
261
- #: include/languages-form.php:88 include/list-table.php:35
 
262
  msgid "Locale"
263
  msgstr "Lokaali"
264
 
265
- #: include/languages-form.php:93
266
- msgid ""
267
- "Wordpress Locale for the language (for example: en_US). You will need to "
268
- "install the .mo file for this language."
269
- msgstr ""
270
- "Wordpress lokaali tälle kielelle (esimerkiksi: en_US). Sinun pitää asentaa ."
271
- "mo-tiedosto tälle kielelle."
272
 
273
- #: include/languages-form.php:97
274
  msgid "Language code"
275
  msgstr "Kielikoodi"
276
 
277
- #: include/languages-form.php:99
278
  msgid "2-letters ISO 639-1 language code (for example: en)"
279
  msgstr "2-kirjaiminen ISO 639-1 kielikoodi (esimerkiksi: en)"
280
 
281
- #: include/languages-form.php:103
282
  msgid "Text direction"
283
  msgstr "Tekstin suunta"
284
 
285
- #: include/languages-form.php:107
286
  msgid "left to right"
287
  msgstr "vasemmalta oikealle"
288
 
289
- #: include/languages-form.php:112
290
  msgid "right to left"
291
  msgstr "oikealta vasemmalle"
292
 
293
- #: include/languages-form.php:114
294
  msgid "Choose the text direction for the language"
295
  msgstr "Valitse kielen tekstin suunta"
296
 
297
- #: include/languages-form.php:118 include/list-table.php:37
 
298
  msgid "Order"
299
  msgstr "Järjestys"
300
 
301
- #: include/languages-form.php:120
302
  msgid "Position of the language in the language switcher"
303
  msgstr "Kielen sijainti kielivalinnassa"
304
 
305
- #: include/nav-menu.php:28 include/nav-menu.php:51 include/nav-menu.php:54
306
- #: include/nav-menu.php:82 include/nav-menu.php:106 polylang.php:302
 
 
 
 
307
  msgid "Language switcher"
308
  msgstr "Kielivalinta"
309
 
310
- #: include/languages-form.php:148
311
  msgid "Search translations"
312
  msgstr "Haun käännökset"
313
 
314
- #: include/languages-form.php:151
315
  msgid "Clean strings translation database"
316
  msgstr "Tyhjennä merkkijonot käännöstietokannasta"
317
 
318
- #: include/languages-form.php:167
319
  msgid "Default language"
320
  msgstr "Oletuskieli"
321
 
322
- #: include/languages-form.php:179
323
- msgid ""
324
- "There are posts, pages, categories or tags without language set. Do you want "
325
- "to set them all to default language ?"
326
- msgstr ""
327
- "Siellä on artikkeleita, sivuja, kategorioita tai tageja ilman asetettua "
328
- "kieltä. Haluatko asettaa ne oletuskielelle?"
329
 
330
- #: include/languages-form.php:187
331
  msgid "Detect browser language"
332
  msgstr "Tunnista selaimen kieli"
333
 
334
- #: include/languages-form.php:193
335
- msgid ""
336
- "When the front page is visited, set the language according to the browser "
337
- "preference"
338
  msgstr "Kun etusivulla vieraillaan, aseta kieli selaimen asetuksen mukaan"
339
 
340
- #: include/languages-form.php:200
341
  msgid "URL modifications"
342
  msgstr "URL muunnokset"
343
 
344
- #: include/languages-form.php:206
345
- msgid ""
346
- "The language is set from content. Posts, pages, categories and tags urls are "
347
- "not modified."
348
- msgstr ""
349
- "Kieli asetetaan sisällöstä. Artikkelien, sivujen, kategorioiden ja tagien "
350
- "url-osoitteita ei muokata."
351
-
352
- #: include/languages-form.php:214
353
- msgid ""
354
- "The language code, for example /en/, is added to all urls when using pretty "
355
- "permalinks."
356
- msgstr ""
357
- "Kielikoodi, esimerkiksi /en/, lisätään url-osoitteisiin kun käytetään "
358
- "osoiterakennetta."
359
 
360
- #: include/languages-form.php:223
361
  msgid "Remove /language/ in pretty permalinks. Example:"
362
  msgstr "Poista /language/ osoiterakenteesta. Esimerkiksi:"
363
 
364
- #: include/languages-form.php:232
365
  msgid "Keep /language/ in pretty permalinks. Example:"
366
  msgstr "Säilytä /language/ osoiterakenteessa. Esimerkiksi:"
367
 
368
- #: include/languages-form.php:241
369
  msgid "Hide URL language information for default language"
370
  msgstr "Piilota URL-osoitteen kielitieto oletuskieleltä"
371
 
372
- #: include/languages-form.php:251
373
  #, php-format
374
- msgid ""
375
- "When using static front page, redirect the language page (example: %s) to "
376
- "the front page in the right language"
377
- msgstr ""
378
- "Kun käytetään staattista etusivua, uudelleenohjaa kielisivu (esimerkiksi: "
379
- "%s) oikean kielen etusivulle"
380
 
381
  # @ polylang
382
- #: include/languages-form.php:260
383
  msgid "Media"
384
  msgstr "Media"
385
 
386
  # @ polylang
387
- #: include/languages-form.php:266
388
  msgid "Activate languages and translations for media"
389
  msgstr "Aktivoi kielet ja käännökset mediassa."
390
 
391
- #: include/languages-form.php:273
392
  msgid "Synchronization"
393
  msgstr "Synkronointi"
394
 
395
  # @ polylang
396
- #: include/languages-form.php:287
397
  msgid "Custom post types"
398
  msgstr "Mukautetut artikkelien mallit"
399
 
400
  # @ polylang
401
- #: include/languages-form.php:300
402
  msgid "Activate languages and translations for custom post types."
403
  msgstr "Aktivoi kielet ja käännökset mukautettujen artikkelien malleissa."
404
 
405
  # @ polylang
406
- #: include/languages-form.php:307
407
  msgid "Custom taxonomies"
408
  msgstr "Mukautetut luokittelut"
409
 
410
  # @ polylang
411
- #: include/languages-form.php:320
412
  msgid "Activate languages and translations for custom taxonomies."
413
  msgstr "Aktivoi kielet ja käännökset mukautettuissa luokitteluissa."
414
 
415
- #: include/list-table.php:26 include/media-translations.php:22
416
- #: include/media-translations.php:60 include/post-translations.php:10
417
- #: include/post-translations.php:33 include/term-translations.php:18
418
- #: include/term-translations.php:80
 
 
 
419
  msgid "Edit"
420
  msgstr "Muokkaa"
421
 
422
- #: include/list-table.php:27 include/list-table.php:162
 
423
  msgid "Delete"
424
  msgstr "Poista"
425
 
426
- #: include/list-table.php:36
427
  msgid "Code"
428
  msgstr "Koodi"
429
 
430
- #: include/list-table.php:38
431
  msgid "Flag"
432
  msgstr "Lippu"
433
 
434
- #: include/list-table.php:39
435
  msgid "Posts"
436
  msgstr "Artikkelit"
437
 
438
- #: include/list-table.php:125
439
  msgid "Name"
440
  msgstr "Nimi"
441
 
442
- #: include/list-table.php:126
443
  msgid "String"
444
  msgstr "Merkkijono"
445
 
446
- #: include/media-translations.php:6 include/media-translations.php:44
447
- #: include/term-translations.php:16
 
448
  msgid "Translation"
449
  msgstr "Käännös"
450
 
451
- #: include/media-translations.php:31 include/media-translations.php:68
452
- #: include/post-translations.php:38 include/term-translations.php:60
 
 
453
  msgid "Add new"
454
  msgstr "Lisää uusi"
455
 
456
- #: include/post-translations.php:5
457
  msgid "ID of pages in other languages:"
458
  msgstr "Sivun ID toisilla kielillä:"
459
 
460
- #: include/post-translations.php:5
461
  msgid "ID of posts in other languages:"
462
  msgstr "Artikkelin ID toisilla kielillä:"
463
 
464
- #: include/post-translations.php:9
465
  msgid "Page ID"
466
  msgstr "Sivun ID"
467
 
468
- #: include/post-translations.php:9
469
  msgid "Post ID"
470
  msgstr "Artikkelin ID"
471
 
472
- #: include/term-translations.php:48
473
  msgid "No untranslated term"
474
  msgstr "Ei kääntämättömiä termejä"
475
 
476
- #: include/widget.php:6
477
  msgid "Language Switcher"
478
  msgstr "Kielivalinta"
479
 
480
- #: include/widget.php:6
481
  msgid "Displays a language switcher"
482
  msgstr "Näytä kielivalinta"
483
 
484
- #: include/widget.php:69
485
  msgid "Title:"
486
  msgstr "Otsikko:"
487
 
@@ -491,39 +468,75 @@ msgstr "Otsikko:"
491
  msgid "Adds multilingual capability to WordPress"
492
  msgstr "Lisää monikielisyyden tuen WordPressiin"
493
 
494
- #: polylang.php:133
495
  #, php-format
496
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
497
- msgstr ""
498
- "Käytät WordPress versiota %s. Polylang vaatii vähintään WordPress version %s."
499
-
500
- #: polylang.php:174
501
- msgid "For some reasons, Polylang could not create a table in your database."
502
- msgstr "Jostain syystä Polylang ei voinut luoda taulukkoa tietokantaasi."
503
 
504
  # @ polylang
505
- #: polylang.php:235
506
- msgid ""
507
- "Polylang has been deactivated because you upgraded from a too old version."
508
- msgstr ""
509
- "Polylang on poistettu käytöstä, koska päivitit liian vanhasta versiosta."
510
 
511
  # @ polylang
512
- #: polylang.php:237
513
  #, php-format
514
  msgid "Please upgrade first to %s before ugrading to %s."
515
  msgstr "Päivitä ensin versioon %s ennen kuin päivität %s."
516
 
517
  # @ polylang
518
- #: include/list-table.php:124
519
  msgid "Group"
520
  msgstr "Ryhmä"
521
 
522
  # @ polylang
523
- #: include/list-table.php:173
524
  msgid "View all groups"
525
  msgstr "Näytä kaikki ryhmät"
526
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
527
  #~ msgid "Displays a language switcher at the end of the menu"
528
  #~ msgstr "Näytä kielivalinta valikon lopussa"
529
 
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: Jani Alha <tuki@wysiwyg.fi>\n"
8
  "Language-Team: \n"
9
+ "Language: \n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
18
  "X-Poedit-SearchPath-0: ..\n"
19
  "X-Poedit-SearchPath-1: ../include\n"
20
 
21
+ #: admin/view-about.php:3
22
  #, php-format
23
+ 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."
24
+ msgstr "Polylang toimitetaan kattavan %sdokumentaation%s kanssa (vain englanniksi). Se sisältää tietoa kuinka perustat monikielisen sivuston ja käytät sitä päivittäisessä käytössä, UKK:t sekä dokumentaation ohjelmoijille lisäosien ja teemojen sovittamiseksi."
 
 
 
 
 
 
 
 
25
 
26
+ #: admin/view-about.php:9
27
  #, php-format
28
+ 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."
29
+ msgstr "Tarpeellista tietoa löydät myös %stukifoorumilta%s. Älä kuitenkaan unohda tehdä hakua ennen uuden viestin lähettämistä."
 
 
 
 
30
 
31
+ #: admin/view-about.php:16
32
  #, php-format
33
+ msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
34
+ msgstr "Polylang on ilmainen ja se on julkaistu saman lisenssin alla kuin WordPress, %sGPL%s."
 
 
 
 
35
 
36
+ #: admin/view-about.php:22
37
  #, php-format
38
  msgid "If you wonder how you can help the project, just %sread this%s."
39
  msgstr "Mikäli mietit kuinka voit auttaa projektia, %slue tämä%s."
40
 
41
+ #: admin/view-about.php:27
42
+ msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
43
+ msgstr "Mikäli pidit tästä lisäosasta tai se auttaa yritystäsi, lahjoituksia tekijälle arvostetaan suuresti."
 
 
 
 
44
 
45
+ #: admin/admin-filters-post.php:76
46
+ #: admin/admin.php:83
47
+ #: admin/admin.php:187
48
+ #: admin/settings.php:42
49
+ #: admin/settings.php:57
50
+ #: include/model.php:490
51
  msgid "Languages"
52
  msgstr "Kielet"
53
 
54
+ #: include/switcher.php:22
55
  msgid "Displays language names"
56
  msgstr "Näytä kielien nimet"
57
 
58
+ #: include/switcher.php:23
59
  msgid "Displays flags"
60
  msgstr "Näytä liput"
61
 
62
+ #: include/switcher.php:24
63
  msgid "Forces link to front page"
64
  msgstr "Pakottaa linkin etusivulle"
65
 
66
+ #: include/switcher.php:25
67
  msgid "Hides the current language"
68
  msgstr "Piilottaa nykyisen kielen"
69
 
70
+ #: include/switcher.php:29
71
  msgid "Displays as dropdown"
72
  msgstr "Näytä pudotusvalikkona"
73
 
74
+ #: admin/admin.php:188
75
  msgid "Filters content by language"
76
  msgstr "Suodata sisältöä kielen mukaan"
77
 
78
+ #: admin/admin.php:183
79
  msgid "Show all languages"
80
  msgstr "Näytä kaikki kielet"
81
 
82
+ #: admin/admin-filters-columns.php:126
83
+ #: admin/admin-filters-columns.php:215
84
  msgid "Add new translation"
85
  msgstr "Lisää uusi käännös"
86
 
87
+ #: admin/admin-filters-columns.php:163
88
+ #: admin/admin-filters-media.php:58
89
+ #: admin/admin-filters-post.php:109
90
+ #: admin/admin-filters-term.php:72
91
+ #: admin/admin-filters-term.php:106
92
+ #: admin/view-translations-media.php:7
93
+ #: admin/view-translations-media.php:45
94
+ #: admin/view-translations-post.php:8
95
+ #: admin/view-translations-term.php:15
96
+ #: include/model.php:491
97
  msgid "Language"
98
  msgstr "Kieli"
99
 
100
+ #: admin/admin-filters-media.php:73
101
+ #: admin/admin-filters-media.php:112
102
+ #: admin/table-string.php:111
103
+ #: admin/view-translations-media.php:42
104
+ #: admin/view-translations-term.php:6
105
+ #: admin/view-translations-term.php:11
106
  msgid "Translations"
107
  msgstr "Käännökset"
108
 
109
+ #: admin/admin-filters-term.php:74
110
+ #: admin/admin-filters-term.php:108
111
  msgid "Sets the language"
112
  msgstr "Aseta kieli"
113
 
114
+ #: admin/admin-filters.php:60
115
  msgid "The widget is displayed for:"
116
  msgstr "Vimpain näytetään:"
117
 
118
+ #: admin/admin-filters.php:63
119
+ #: include/model.php:492
120
  msgid "All languages"
121
  msgstr "Kaikki kielet"
122
 
123
+ #: admin/admin-filters.php:120
124
  msgid "Admin language"
125
  msgstr "Ylläpidon kieli"
126
 
127
+ #: admin/admin-filters.php:123
128
  msgid "Wordpress default"
129
  msgstr "Wordpress oletus"
130
 
131
+ #: admin/admin.php:123
132
+ #: admin/settings.php:62
133
  msgid "Settings"
134
  msgstr "Asetukset"
135
 
136
+ #: admin/admin-filters.php:151
137
  msgid "Upgrading language files&#8230;"
138
  msgstr "Päivitetään kielitiedostoja&#8230;"
139
 
140
+ #: admin/settings.php:38
141
  msgid "About Polylang"
142
  msgstr "Tietoja Polylang:sta"
143
 
144
+ #: admin/settings.php:46
145
  msgid "Strings translations"
146
  msgstr "Merkkijonojen käännökset"
147
 
148
+ #: admin/settings.php:61
149
  msgid "Strings translation"
150
  msgstr "Merkkijonojen käännös"
151
 
152
+ #: admin/settings.php:74
153
  msgid "Enter a valid WorPress locale"
154
  msgstr "Syötä oikeanmuotoinen WordPress lokaali"
155
 
156
+ #: admin/settings.php:76
 
 
 
 
157
  msgid "The language code must be unique"
158
  msgstr "Kielikoodin täytyy olla uniikki"
159
 
160
+ #: admin/settings.php:77
161
  msgid "The language must have a name"
162
  msgstr "Kielellä täytyy olla nimi"
163
 
164
+ #: admin/settings.php:78
165
+ msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
166
+ msgstr "Kieli luotiin, mutta WordPress-kielitiedostoa ei ladattu. Asenna se käsin."
 
 
 
167
 
168
+ #: admin/settings.php:305
169
  msgid "Widget title"
170
  msgstr "Vimpaimen otsikko"
171
 
172
  # @ polylang
173
+ #: admin/settings.php:323
174
  msgid "Taxonomies"
175
  msgstr "Luokittelut"
176
 
177
  # @ polylang
178
+ #: admin/settings.php:324
179
  msgid "Custom fields"
180
  msgstr "Mukautetut kentät"
181
 
182
  # @ polylang
183
+ #: admin/settings.php:325
184
  msgid "Comment status"
185
  msgstr "Kommentin tila"
186
 
187
  # @ polylang
188
+ #: admin/settings.php:326
189
  msgid "Ping status"
190
  msgstr "Ping-tila"
191
 
192
  # @ polylang
193
+ #: admin/settings.php:327
194
  msgid "Sticky posts"
195
  msgstr "Kiinnitetyt artikkelit"
196
 
197
  # @ polylang
198
+ #: admin/settings.php:328
199
  msgid "Published date"
200
  msgstr "Julkaisupäivämäärä"
201
 
202
  # @ polylang
203
+ #: admin/settings.php:329
204
  msgid "Post format"
205
  msgstr "Artikkelin muoto"
206
 
207
+ #: admin/settings.php:330
208
  msgid "Page parent"
209
  msgstr "Sivun yläsivu"
210
 
211
  # @ polylang
212
+ #: admin/settings.php:331
213
  msgid "Page template"
214
  msgstr "Sivun sivupohja"
215
 
216
+ #: admin/settings.php:332
217
  msgid "Page order"
218
  msgstr "Sivun järjestys"
219
 
220
  # @ polylang
221
+ #: admin/settings.php:333
222
  msgid "Featured image"
223
  msgstr "Artikkelikuva"
224
 
225
+ #: admin/view-languages.php:42
226
  msgid "Edit language"
227
  msgstr "Muokkaa kieltä"
228
 
229
+ #: admin/view-languages.php:42
230
+ #: admin/view-languages.php:117
231
  msgid "Add new language"
232
  msgstr "Lisää uusi kieli"
233
 
234
+ #: admin/view-languages.php:58
235
  msgid "Choose a language"
236
  msgstr "Valitse kieli"
237
 
238
+ #: admin/view-languages.php:72
239
  msgid "You can choose a language in the list or directly edit it below."
240
  msgstr "Voit valita kielen listalta tai muokata sitä suoraan alla."
241
 
242
+ #: admin/table-languages.php:74
243
+ #: admin/view-languages.php:76
244
  msgid "Full name"
245
  msgstr "Täydellinen nimi"
246
 
247
+ #: admin/view-languages.php:78
248
  msgid "The name is how it is displayed on your site (for example: English)."
249
  msgstr "Nimi kuinka se esiintyy sivustollasi (esimerkiksi: Englanti)."
250
 
251
+ #: admin/table-languages.php:75
252
+ #: admin/view-languages.php:82
253
  msgid "Locale"
254
  msgstr "Lokaali"
255
 
256
+ #: admin/view-languages.php:87
257
+ msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
258
+ msgstr "Wordpress lokaali tälle kielelle (esimerkiksi: en_US). Sinun pitää asentaa .mo-tiedosto tälle kielelle."
 
 
 
 
259
 
260
+ #: admin/view-languages.php:91
261
  msgid "Language code"
262
  msgstr "Kielikoodi"
263
 
264
+ #: admin/view-languages.php:93
265
  msgid "2-letters ISO 639-1 language code (for example: en)"
266
  msgstr "2-kirjaiminen ISO 639-1 kielikoodi (esimerkiksi: en)"
267
 
268
+ #: admin/view-languages.php:97
269
  msgid "Text direction"
270
  msgstr "Tekstin suunta"
271
 
272
+ #: admin/view-languages.php:101
273
  msgid "left to right"
274
  msgstr "vasemmalta oikealle"
275
 
276
+ #: admin/view-languages.php:106
277
  msgid "right to left"
278
  msgstr "oikealta vasemmalle"
279
 
280
+ #: admin/view-languages.php:108
281
  msgid "Choose the text direction for the language"
282
  msgstr "Valitse kielen tekstin suunta"
283
 
284
+ #: admin/table-languages.php:77
285
+ #: admin/view-languages.php:112
286
  msgid "Order"
287
  msgstr "Järjestys"
288
 
289
+ #: admin/view-languages.php:114
290
  msgid "Position of the language in the language switcher"
291
  msgstr "Kielen sijainti kielivalinnassa"
292
 
293
+ #: admin/admin-nav-menu.php:51
294
+ #: admin/admin-nav-menu.php:79
295
+ #: admin/admin-nav-menu.php:82
296
+ #: admin/admin-nav-menu.php:113
297
+ #: admin/admin-nav-menu.php:170
298
+ #: include/upgrade.php:175
299
  msgid "Language switcher"
300
  msgstr "Kielivalinta"
301
 
302
+ #: admin/view-languages.php:143
303
  msgid "Search translations"
304
  msgstr "Haun käännökset"
305
 
306
+ #: admin/view-languages.php:146
307
  msgid "Clean strings translation database"
308
  msgstr "Tyhjennä merkkijonot käännöstietokannasta"
309
 
310
+ #: admin/view-languages.php:164
311
  msgid "Default language"
312
  msgstr "Oletuskieli"
313
 
314
+ #: admin/view-languages.php:179
315
+ msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
316
+ msgstr "Siellä on artikkeleita, sivuja, kategorioita tai tageja ilman asetettua kieltä. Haluatko asettaa ne oletuskielelle?"
 
 
 
 
317
 
318
+ #: admin/view-languages.php:187
319
  msgid "Detect browser language"
320
  msgstr "Tunnista selaimen kieli"
321
 
322
+ #: admin/view-languages.php:193
323
+ msgid "When the front page is visited, set the language according to the browser preference"
 
 
324
  msgstr "Kun etusivulla vieraillaan, aseta kieli selaimen asetuksen mukaan"
325
 
326
+ #: admin/view-languages.php:200
327
  msgid "URL modifications"
328
  msgstr "URL muunnokset"
329
 
330
+ #: admin/view-languages.php:206
331
+ msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
332
+ msgstr "Kieli asetetaan sisällöstä. Artikkelien, sivujen, kategorioiden ja tagien url-osoitteita ei muokata."
 
 
 
 
 
 
 
 
 
 
 
 
333
 
334
+ #: admin/view-languages.php:253
335
  msgid "Remove /language/ in pretty permalinks. Example:"
336
  msgstr "Poista /language/ osoiterakenteesta. Esimerkiksi:"
337
 
338
+ #: admin/view-languages.php:262
339
  msgid "Keep /language/ in pretty permalinks. Example:"
340
  msgstr "Säilytä /language/ osoiterakenteessa. Esimerkiksi:"
341
 
342
+ #: admin/view-languages.php:271
343
  msgid "Hide URL language information for default language"
344
  msgstr "Piilota URL-osoitteen kielitieto oletuskieleltä"
345
 
346
+ #: admin/view-languages.php:281
347
  #, php-format
348
+ msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
349
+ msgstr "Kun käytetään staattista etusivua, uudelleenohjaa kielisivu (esimerkiksi: %s) oikean kielen etusivulle"
 
 
 
 
350
 
351
  # @ polylang
352
+ #: admin/view-languages.php:290
353
  msgid "Media"
354
  msgstr "Media"
355
 
356
  # @ polylang
357
+ #: admin/view-languages.php:296
358
  msgid "Activate languages and translations for media"
359
  msgstr "Aktivoi kielet ja käännökset mediassa."
360
 
361
+ #: admin/view-languages.php:303
362
  msgid "Synchronization"
363
  msgstr "Synkronointi"
364
 
365
  # @ polylang
366
+ #: admin/view-languages.php:320
367
  msgid "Custom post types"
368
  msgstr "Mukautetut artikkelien mallit"
369
 
370
  # @ polylang
371
+ #: admin/view-languages.php:333
372
  msgid "Activate languages and translations for custom post types."
373
  msgstr "Aktivoi kielet ja käännökset mukautettujen artikkelien malleissa."
374
 
375
  # @ polylang
376
+ #: admin/view-languages.php:340
377
  msgid "Custom taxonomies"
378
  msgstr "Mukautetut luokittelut"
379
 
380
  # @ polylang
381
+ #: admin/view-languages.php:353
382
  msgid "Activate languages and translations for custom taxonomies."
383
  msgstr "Aktivoi kielet ja käännökset mukautettuissa luokitteluissa."
384
 
385
+ #: admin/table-languages.php:54
386
+ #: admin/view-translations-media.php:24
387
+ #: admin/view-translations-media.php:62
388
+ #: admin/view-translations-post.php:10
389
+ #: admin/view-translations-post.php:33
390
+ #: admin/view-translations-term.php:18
391
+ #: admin/view-translations-term.php:80
392
  msgid "Edit"
393
  msgstr "Muokkaa"
394
 
395
+ #: admin/table-languages.php:60
396
+ #: admin/table-string.php:167
397
  msgid "Delete"
398
  msgstr "Poista"
399
 
400
+ #: admin/table-languages.php:76
401
  msgid "Code"
402
  msgstr "Koodi"
403
 
404
+ #: admin/table-languages.php:78
405
  msgid "Flag"
406
  msgstr "Lippu"
407
 
408
+ #: admin/table-languages.php:79
409
  msgid "Posts"
410
  msgstr "Artikkelit"
411
 
412
+ #: admin/table-string.php:109
413
  msgid "Name"
414
  msgstr "Nimi"
415
 
416
+ #: admin/table-string.php:110
417
  msgid "String"
418
  msgstr "Merkkijono"
419
 
420
+ #: admin/view-translations-media.php:8
421
+ #: admin/view-translations-media.php:46
422
+ #: admin/view-translations-term.php:16
423
  msgid "Translation"
424
  msgstr "Käännös"
425
 
426
+ #: admin/view-translations-media.php:33
427
+ #: admin/view-translations-media.php:70
428
+ #: admin/view-translations-post.php:38
429
+ #: admin/view-translations-term.php:60
430
  msgid "Add new"
431
  msgstr "Lisää uusi"
432
 
433
+ #: admin/view-translations-post.php:5
434
  msgid "ID of pages in other languages:"
435
  msgstr "Sivun ID toisilla kielillä:"
436
 
437
+ #: admin/view-translations-post.php:5
438
  msgid "ID of posts in other languages:"
439
  msgstr "Artikkelin ID toisilla kielillä:"
440
 
441
+ #: admin/view-translations-post.php:9
442
  msgid "Page ID"
443
  msgstr "Sivun ID"
444
 
445
+ #: admin/view-translations-post.php:9
446
  msgid "Post ID"
447
  msgstr "Artikkelin ID"
448
 
449
+ #: admin/view-translations-term.php:48
450
  msgid "No untranslated term"
451
  msgstr "Ei kääntämättömiä termejä"
452
 
453
+ #: include/widget-languages.php:16
454
  msgid "Language Switcher"
455
  msgstr "Kielivalinta"
456
 
457
+ #: include/widget-languages.php:16
458
  msgid "Displays a language switcher"
459
  msgstr "Näytä kielivalinta"
460
 
461
+ #: include/widget-languages.php:100
462
  msgid "Title:"
463
  msgstr "Otsikko:"
464
 
468
  msgid "Adds multilingual capability to WordPress"
469
  msgstr "Lisää monikielisyyden tuen WordPressiin"
470
 
471
+ #: polylang.php:157
472
  #, php-format
473
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
474
+ msgstr "Käytät WordPress versiota %s. Polylang vaatii vähintään WordPress version %s."
 
 
 
 
 
475
 
476
  # @ polylang
477
+ #: include/upgrade.php:75
478
+ msgid "Polylang has been deactivated because you upgraded from a too old version."
479
+ msgstr "Polylang on poistettu käytöstä, koska päivitit liian vanhasta versiosta."
 
 
480
 
481
  # @ polylang
482
+ #: include/upgrade.php:77
483
  #, php-format
484
  msgid "Please upgrade first to %s before ugrading to %s."
485
  msgstr "Päivitä ensin versioon %s ennen kuin päivität %s."
486
 
487
  # @ polylang
488
+ #: admin/table-string.php:108
489
  msgid "Group"
490
  msgstr "Ryhmä"
491
 
492
  # @ polylang
493
+ #: admin/table-string.php:186
494
  msgid "View all groups"
495
  msgstr "Näytä kaikki ryhmät"
496
 
497
+ # @ polylang
498
+ #: admin/table-languages.php:59
499
+ msgid "You are about to permanently delete this language. Are you sure?"
500
+ msgstr ""
501
+
502
+ # @ polylang
503
+ #: admin/view-languages.php:147
504
+ msgid "Use this to remove unused strings from database, for example after a plugin has been uninstalled."
505
+ msgstr ""
506
+
507
+ #: admin/view-languages.php:214
508
+ msgid "The language is set from the directory name in pretty permalinks. Example:"
509
+ msgstr ""
510
+
511
+ #: admin/view-languages.php:223
512
+ msgid "The language is set from the subdomain name in pretty permalinks. Example:"
513
+ msgstr ""
514
+
515
+ # @ polylang
516
+ #: admin/view-languages.php:314
517
+ 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."
518
+ msgstr ""
519
+
520
+ #: admin/settings.php:75
521
+ msgid "The language code contains invalid characters"
522
+ msgstr ""
523
+
524
+ # @ polylang
525
+ #: admin/view-languages.php:232
526
+ msgid "The language is set from different domains:"
527
+ msgstr ""
528
+
529
+ #~ msgid ""
530
+ #~ "The language code, for example /en/, is added to all urls when using "
531
+ #~ "pretty permalinks."
532
+ #~ msgstr ""
533
+ #~ "Kielikoodi, esimerkiksi /en/, lisätään url-osoitteisiin kun käytetään "
534
+ #~ "osoiterakennetta."
535
+
536
+ #~ msgid ""
537
+ #~ "For some reasons, Polylang could not create a table in your database."
538
+ #~ msgstr "Jostain syystä Polylang ei voinut luoda taulukkoa tietokantaasi."
539
+
540
  #~ msgid "Displays a language switcher at the end of the menu"
541
  #~ msgstr "Näytä kielivalinta valikon lopussa"
542
 
languages/polylang-fr_FR.mo CHANGED
Binary file
languages/polylang-fr_FR.po CHANGED
@@ -1,9 +1,9 @@
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: Polylang v1.0dev13\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
- "PO-Revision-Date: 2013-04-17 20:42+0100\n"
7
  "Last-Translator: F. Demarle\n"
8
  "Language-Team: \n"
9
  "Language: \n"
@@ -18,542 +18,528 @@ msgstr ""
18
  "X-Poedit-SearchPath-0: ..\n"
19
 
20
  # @ polylang
21
- #: include/about.php:3
22
  #, php-format
23
  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."
24
- msgstr "Polylang est fourni avec une %sdocumentation%s (en anglais). Elle explique comment installer votre site multilingue et l'utiliser au jour le jour. Elle contient aussi une FAQ et une documentation pour les programmeurs leur permettant d'adapter leurs extensions et leurs thèmes."
25
 
26
  # @ polylang
27
- #: include/about.php:9
28
  #, php-format
29
  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."
30
- msgstr "Vous pouvez aussi trouver des informations dans le %sforum de support%s (en anglais). Cependant, n'oubliez pas de faire une recherche avant de poster."
31
 
32
  # @ polylang
33
- #: include/about.php:16
34
  #, php-format
35
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
36
  msgstr "Polylang est gratuit et publié sous la même licence que WordPress, la %sGPL%s."
37
 
38
  # @ polylang
39
- #: include/about.php:22
40
  #, php-format
41
  msgid "If you wonder how you can help the project, just %sread this%s."
42
  msgstr "Si vous souhaitez aider le projet, %slisez cela%s."
43
 
44
  # @ polylang
45
- #: include/about.php:27
46
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
47
- msgstr "Enfin, si vous aimez cette extension ou si elle vous aide dans votre business, vous pouvez faire un don à l'auteur."
48
 
49
  # @ polylang
50
- #: include/admin-base.php:55
51
- #: include/admin-base.php:190
52
- #: include/admin-filters.php:243
53
- #: include/admin.php:23
54
- #: include/admin.php:301
55
- #: include/list-table.php:13
56
- #: polylang.php:339
57
  msgid "Languages"
58
  msgstr "Langues"
59
 
60
  # @ polylang
61
- #: include/admin-base.php:153
62
  msgid "Displays language names"
63
  msgstr "Afficher le nom des langues"
64
 
65
  # @ polylang
66
- #: include/admin-base.php:154
67
  msgid "Displays flags"
68
  msgstr "Afficher les drapeaux"
69
 
70
  # @ polylang
71
- #: include/admin-base.php:155
72
  msgid "Forces link to front page"
73
- msgstr "Force le lien vers la page d'accueil"
74
 
75
  # @ polylang
76
- #: include/admin-base.php:156
77
  msgid "Hides the current language"
78
  msgstr "Cacher la langue courante"
79
 
80
  # @ polylang
81
- #: include/admin-base.php:160
82
  msgid "Displays as dropdown"
83
  msgstr "Afficher comme liste déroulante"
84
 
85
  # @ polylang
86
- #: include/admin-base.php:191
87
  msgid "Filters content by language"
88
  msgstr "Filtrer le contenu par langue"
89
 
90
  # @ polylang
91
- #: include/admin-base.php:186
92
  msgid "Show all languages"
93
  msgstr "Afficher toutes les langues"
94
 
95
  # @ polylang
96
- #: include/admin-filters.php:181
97
- #: include/admin-filters.php:877
98
  msgid "Add new translation"
99
  msgstr "Ajoute une nouvelle traduction"
100
 
101
  # @ polylang
102
- #: include/admin-filters.php:209
103
- #: include/admin-filters.php:267
104
- #: include/admin-filters.php:601
105
- #: include/admin-filters.php:817
106
- #: include/admin-filters.php:835
107
- #: include/list-table.php:12
108
- #: include/media-translations.php:5
109
- #: include/media-translations.php:43
110
- #: include/post-translations.php:8
111
- #: include/term-translations.php:15
112
- #: polylang.php:340
113
  msgid "Language"
114
  msgstr "Langue"
115
 
116
  # @ polylang
117
- #: include/admin-filters.php:616
118
- #: include/admin-filters.php:651
119
- #: include/list-table.php:127
120
- #: include/media-translations.php:40
121
- #: include/term-translations.php:6
122
- #: include/term-translations.php:11
123
  msgid "Translations"
124
  msgstr "Traductions"
125
 
126
  # @ polylang
127
- #: include/admin-filters.php:819
128
- #: include/admin-filters.php:838
129
  msgid "Sets the language"
130
  msgstr "Définit la langue"
131
 
132
  # @ polylang
133
- #: include/admin-filters.php:1053
134
  msgid "The widget is displayed for:"
135
- msgstr "Afficher le widget pour :"
136
 
137
  # @ polylang
138
- #: include/admin-filters.php:1057
139
- #: polylang.php:341
140
  msgid "All languages"
141
  msgstr "Toutes les langues"
142
 
143
  # @ polylang
144
- #: include/admin-filters.php:1080
145
  msgid "Admin language"
146
- msgstr "Langue pour l'interface d'administration"
147
 
148
  # @ polylang
149
- #: include/admin-filters.php:1085
150
  msgid "Wordpress default"
151
  msgstr "Langue par défaut de WordPress"
152
 
153
  # @ polylang
154
- #: include/admin-filters.php:1114
155
- #: include/admin.php:306
156
  msgid "Settings"
157
  msgstr "Réglages"
158
 
159
  # @ polylang
160
- #: include/admin-filters.php:1120
161
  msgid "Upgrading language files&#8230;"
162
  msgstr "Mise à jour des fichiers de langues&#8230;"
163
 
164
  # @ polylang
165
- #: include/admin.php:22
166
  msgid "About Polylang"
167
  msgstr "A propos de Polylang"
168
 
169
  # @ polylang
170
- #: include/admin.php:27
171
- #: include/list-table.php:82
172
  msgid "Strings translations"
173
  msgstr "Traductions de phrases"
174
 
175
  # @ polylang
176
- #: include/admin.php:305
177
- #: include/list-table.php:81
178
  msgid "Strings translation"
179
  msgstr "Traduction de phrases"
180
 
181
  # @ polylang
182
- #: include/admin.php:345
183
- msgid "Enter a valid WorPress locale"
184
  msgstr "Entrez un code local WordPress valide"
185
 
186
  # @ polylang
187
- #: include/admin.php:346
188
- msgid "The language code must be 2 characters long"
189
- msgstr "Le code de la langue doit avoir 2 lettres"
190
-
191
- # @ polylang
192
- #: include/admin.php:328
193
  msgid "The language code must be unique"
194
  msgstr "Le code de la langue doit être unique"
195
 
196
  # @ polylang
197
- #: include/admin.php:329
198
  msgid "The language must have a name"
199
  msgstr "La langue doit avoir un nom"
200
 
201
  # @ polylang
202
- #: include/admin.php:330
203
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
204
- msgstr "La langue a été créée, mais le fichier de langue WordPress n'a pu être téléchargé. Merci de l'installer manuellement."
205
 
206
  # @ polylang
207
- #: include/admin.php:449
208
  msgid "Widget title"
209
  msgstr "Titre de widget"
210
 
211
  # @ polylang
212
- #: include/base.php:368
213
  msgid "Taxonomies"
214
  msgstr "Taxinomies"
215
 
216
  # @ polylang
217
- #: include/base.php:369
218
  msgid "Custom fields"
219
  msgstr "Champs personnalisés"
220
 
221
  # @ polylang
222
- #: include/base.php:370
223
  msgid "Comment status"
224
  msgstr "Autorisation des commentaires"
225
 
226
  # @ polylang
227
- #: include/base.php:371
228
  msgid "Ping status"
229
  msgstr "Autorisation des pings"
230
 
231
  # @ polylang
232
- #: include/base.php:372
233
  msgid "Sticky posts"
234
  msgstr "Articles mis en avant"
235
 
236
  # @ polylang
237
- #: include/base.php:373
238
  msgid "Published date"
239
  msgstr "Date de publication"
240
 
241
  # @ polylang
242
- #: include/base.php:374
243
  msgid "Post format"
244
  msgstr "Format"
245
 
246
  # @ polylang
247
- #: include/base.php:375
248
  msgid "Page parent"
249
  msgstr "Parent de page"
250
 
251
  # @ polylang
252
- #: include/base.php:376
253
  msgid "Page template"
254
  msgstr "Modèle de page"
255
 
256
  # @ polylang
257
- #: include/base.php:377
258
  msgid "Page order"
259
  msgstr "Ordre des pages"
260
 
261
  # @ polylang
262
- #: include/base.php:378
263
  msgid "Featured image"
264
  msgstr "Image à la une"
265
 
266
  # @ polylang
267
- #: include/languages-form.php:42
268
  msgid "Edit language"
269
  msgstr "Modifier la langue"
270
 
271
  # @ polylang
272
- #: include/languages-form.php:42
273
- #: include/languages-form.php:123
274
  msgid "Add new language"
275
  msgstr "Ajouter une nouvelle langue"
276
 
277
  # @ polylang
278
- #: include/languages-form.php:64
279
  msgid "Choose a language"
280
  msgstr "Choisir une langue"
281
 
282
  # @ polylang
283
- #: include/languages-form.php:78
284
  msgid "You can choose a language in the list or directly edit it below."
285
  msgstr "Choisissez une langue dans la liste ou éditez la directement ci-dessous."
286
 
287
  # @ polylang
288
- #: include/languages-form.php:82
289
- #: include/list-table.php:34
290
  msgid "Full name"
291
  msgstr "Nom"
292
 
293
  # @ polylang
294
- #: include/languages-form.php:84
295
  msgid "The name is how it is displayed on your site (for example: English)."
296
- msgstr "Le nom est utilisé un peu partout sur le site (par exemple : Français)"
297
 
298
  # @ polylang
299
- #: include/languages-form.php:88
300
- #: include/list-table.php:35
301
  msgid "Locale"
302
  msgstr "Code local"
303
 
304
  # @ polylang
305
- #: include/languages-form.php:93
306
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
307
- msgstr "Code local utilisé par Wordpress pour la langue (par exemple : fr_FR). Vous aurez besoin d'installer les fichiers .mo correspondant."
308
 
309
  # @ polylang
310
- #: include/languages-form.php:97
311
  msgid "Language code"
312
  msgstr "Code de la langue"
313
 
314
  # @ polylang
315
- #: include/languages-form.php:99
316
  msgid "2-letters ISO 639-1 language code (for example: en)"
317
- msgstr "Code ISO 639-1 à 2 lettres (par exemple : fr)"
318
 
319
  # @ polylang
320
- #: include/languages-form.php:103
321
  msgid "Text direction"
322
- msgstr "Système d'écriture"
323
 
324
  # @ polylang
325
- #: include/languages-form.php:107
326
  msgid "left to right"
327
  msgstr "de gauche à droite"
328
 
329
  # @ polylang
330
- #: include/languages-form.php:112
331
  msgid "right to left"
332
  msgstr "de droite à gauche"
333
 
334
  # @ polylang
335
- #: include/languages-form.php:114
336
  msgid "Choose the text direction for the language"
337
- msgstr "Choisir le système d'écriture pour la langue"
338
 
339
  # @ polylang
340
- #: include/languages-form.php:118
341
- #: include/list-table.php:37
342
  msgid "Order"
343
  msgstr "Ordre"
344
 
345
  # @ polylang
346
- #: include/languages-form.php:120
347
  msgid "Position of the language in the language switcher"
348
  msgstr "Position de la langue dans la liste de langues"
349
 
350
  # @ polylang
351
- #: include/nav-menu.php:28
352
- #: include/nav-menu.php:51
353
- #: include/nav-menu.php:54
354
- #: include/nav-menu.php:82
355
- #: include/nav-menu.php:106
356
- #: polylang.php:302
357
  msgid "Language switcher"
358
  msgstr "Liste des langues"
359
 
360
  # @ polylang
361
- #: include/languages-form.php:148
362
  msgid "Search translations"
363
  msgstr "Chercher dans les traductions"
364
 
365
  # @ polylang
366
- #: include/languages-form.php:151
367
  msgid "Clean strings translation database"
368
  msgstr "Nettoyer les traductions inutilisées"
369
 
370
  # @ polylang
371
- #: include/languages-form.php:167
372
  msgid "Default language"
373
  msgstr "Langue par défaut"
374
 
375
  # @ polylang
376
- #: include/languages-form.php:179
377
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
378
- msgstr "Il y a des articles, pages, catégories ou tags sans langue définie. Voulez-vous leur attribuer la langue par défaut ?"
379
 
380
  # @ polylang
381
- #: include/languages-form.php:187
382
  msgid "Detect browser language"
383
  msgstr "Détecter la langue du navigateur"
384
 
385
  # @ polylang
386
- #: include/languages-form.php:193
387
  msgid "When the front page is visited, set the language according to the browser preference"
388
- msgstr "Lorsque la page d'accueil est visitée pour la première fois, le visiteur est redirigé à la bonne URL en fonction des préférences de langue de son navigateur"
389
 
390
  # @ polylang
391
- #: include/languages-form.php:200
392
  msgid "URL modifications"
393
  msgstr "Modifications des URL"
394
 
395
  # @ polylang
396
- #: include/languages-form.php:206
397
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
398
  msgstr "La langue est déterminée par le contenu. Les urls des articles, pages, catégories et mots clés ne sont pas modifiées."
399
 
400
  # @ polylang
401
- #: include/languages-form.php:214
402
- msgid "The language code, for example /en/, is added to all urls when using pretty permalinks."
403
- msgstr "Le code de la langue, par exemple /fr/, est ajouté à tous les permaliens."
404
-
405
- # @ polylang
406
- #: include/languages-form.php:223
407
  msgid "Remove /language/ in pretty permalinks. Example:"
408
- msgstr "Supprime /language/ dans les permaliens. Exemple :"
409
 
410
  # @ polylang
411
- #: include/languages-form.php:232
412
  msgid "Keep /language/ in pretty permalinks. Example:"
413
- msgstr "Conserve /language/ dans les permaliens. Exemple :"
414
 
415
  # @ polylang
416
- #: include/languages-form.php:241
417
  msgid "Hide URL language information for default language"
418
- msgstr "Cacher l'information de langue dans l'URL pour la langue par défaut"
419
 
420
  # @ polylang
421
- #: include/languages-form.php:251
422
  #, php-format
423
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
424
- msgstr "Rediriger la page de langue (exemple: %s) vers la page d'accueil dans la bonne langue"
425
 
426
  # @ polylang
427
- #: include/languages-form.php:260
428
  msgid "Media"
429
  msgstr "Médias"
430
 
431
  # @ polylang
432
- #: include/languages-form.php:266
433
  msgid "Activate languages and translations for media"
434
  msgstr "Activer la gestion des langues et des traductions pour les médias"
435
 
436
  # @ polylang
437
- #: include/languages-form.php:273
438
  msgid "Synchronization"
439
  msgstr "Synchronisation"
440
 
441
  # @ polylang
442
- #: include/languages-form.php:287
443
  msgid "Custom post types"
444
  msgstr "Types de contenu"
445
 
446
  # @ polylang
447
- #: include/languages-form.php:300
448
  msgid "Activate languages and translations for custom post types."
449
  msgstr "Activer la gestion des langues et des traductions pour les types de contenu."
450
 
451
  # @ polylang
452
- #: include/languages-form.php:307
453
  msgid "Custom taxonomies"
454
  msgstr "Taxinomies"
455
 
456
  # @ polylang
457
- #: include/languages-form.php:320
458
  msgid "Activate languages and translations for custom taxonomies."
459
  msgstr "Activer la gestion des langues et des traductions pour les taxinomies."
460
 
461
  # @ polylang
462
- #: include/list-table.php:26
463
- #: include/media-translations.php:22
464
- #: include/media-translations.php:60
465
- #: include/post-translations.php:10
466
- #: include/post-translations.php:33
467
- #: include/term-translations.php:18
468
- #: include/term-translations.php:80
469
  msgid "Edit"
470
  msgstr "Modifier"
471
 
472
  # @ polylang
473
- #: include/list-table.php:27
474
- #: include/list-table.php:162
475
  msgid "Delete"
476
  msgstr "Supprimer"
477
 
478
  # @ polylang
479
- #: include/list-table.php:36
480
  msgid "Code"
481
  msgstr "Code"
482
 
483
  # @ polylang
484
- #: include/list-table.php:38
485
  msgid "Flag"
486
  msgstr "Drapeau"
487
 
488
  # @ polylang
489
- #: include/list-table.php:39
490
  msgid "Posts"
491
  msgstr "Articles"
492
 
493
  # @ polylang
494
- #: include/list-table.php:125
495
  msgid "Name"
496
  msgstr "Nom"
497
 
498
  # @ polylang
499
- #: include/list-table.php:126
500
  msgid "String"
501
  msgstr "Phrase"
502
 
503
  # @ polylang
504
- #: include/media-translations.php:6
505
- #: include/media-translations.php:44
506
- #: include/term-translations.php:16
507
  msgid "Translation"
508
  msgstr "Traduction"
509
 
510
  # @ polylang
511
- #: include/media-translations.php:31
512
- #: include/media-translations.php:68
513
- #: include/post-translations.php:38
514
- #: include/term-translations.php:60
515
  msgid "Add new"
516
  msgstr "Ajouter"
517
 
518
  # @ polylang
519
- #: include/post-translations.php:5
520
  msgid "ID of pages in other languages:"
521
- msgstr "ID des pages dans les autres langues :"
522
 
523
  # @ polylang
524
- #: include/post-translations.php:5
525
  msgid "ID of posts in other languages:"
526
- msgstr "ID des articles dans les autres langues :"
527
 
528
  # @ polylang
529
- #: include/post-translations.php:9
530
  msgid "Page ID"
531
  msgstr "ID de la page"
532
 
533
  # @ polylang
534
- #: include/post-translations.php:9
535
  msgid "Post ID"
536
- msgstr "ID de l'article"
537
 
538
  # @ polylang
539
- #: include/term-translations.php:48
540
  msgid "No untranslated term"
541
  msgstr "Pas de terme non traduit"
542
 
543
  # @ polylang
544
- #: include/widget.php:6
545
  msgid "Language Switcher"
546
  msgstr "Liste des langues"
547
 
548
  # @ polylang
549
- #: include/widget.php:6
550
  msgid "Displays a language switcher"
551
  msgstr "Affiche la liste des langues"
552
 
553
  # @ polylang
554
- #: include/widget.php:69
555
  msgid "Title:"
556
- msgstr "Titre :"
557
 
558
  # @ polylang
559
  #. translators: plugin header field 'Description'
@@ -562,34 +548,64 @@ msgid "Adds multilingual capability to WordPress"
562
  msgstr "Permet une utilisation multilingue de WordPress"
563
 
564
  # @ polylang
565
- #: polylang.php:133
566
  #, php-format
567
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
568
  msgstr "Vous utilisez WordPress %s. Polylang nécessite au moins WordPress %s."
569
 
570
  # @ polylang
571
- #: polylang.php:174
572
- msgid "For some reasons, Polylang could not create a table in your database."
573
- msgstr "Polylang n'a pu crée une table dans votre base de données."
574
-
575
- # @ polylang
576
- #: polylang.php:235
577
  msgid "Polylang has been deactivated because you upgraded from a too old version."
578
  msgstr "Polylang a été désactivé parce que vous avez fait une mise à jour depuis une version trop ancienne."
579
 
580
  # @ polylang
581
- #: polylang.php:237
582
  #, php-format
583
  msgid "Please upgrade first to %s before ugrading to %s."
584
- msgstr "Mettez à jour d'abord vers %s avant de mettre à jour vers %s."
585
 
586
  # @ polylang
587
- #: include/list-table.php:124
588
  msgid "Group"
589
  msgstr "Groupe"
590
 
591
  # @ polylang
592
- #: include/list-table.php:173
593
  msgid "View all groups"
594
  msgstr "Voir tous les groupes"
595
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: Polylang v1.2dev47\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2013-11-08 12:40+0100\n"
7
  "Last-Translator: F. Demarle\n"
8
  "Language-Team: \n"
9
  "Language: \n"
18
  "X-Poedit-SearchPath-0: ..\n"
19
 
20
  # @ polylang
21
+ #: admin/view-about.php:3
22
  #, php-format
23
  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."
24
+ msgstr "Polylang est fourni avec une %sdocumentation%s (en anglais). Elle explique comment installer votre site multilingue et l&rsquo;utiliser au jour le jour. Elle contient aussi une FAQ et une documentation pour les programmeurs leur permettant d&rsquo;adapter leurs extensions et leurs thèmes."
25
 
26
  # @ polylang
27
+ #: admin/view-about.php:9
28
  #, php-format
29
  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."
30
+ msgstr "Vous pouvez aussi trouver des informations dans le %sforum de support%s (en anglais). Cependant, n&rsquo;oubliez pas de faire une recherche avant de poster."
31
 
32
  # @ polylang
33
+ #: admin/view-about.php:16
34
  #, php-format
35
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
36
  msgstr "Polylang est gratuit et publié sous la même licence que WordPress, la %sGPL%s."
37
 
38
  # @ polylang
39
+ #: admin/view-about.php:22
40
  #, php-format
41
  msgid "If you wonder how you can help the project, just %sread this%s."
42
  msgstr "Si vous souhaitez aider le projet, %slisez cela%s."
43
 
44
  # @ polylang
45
+ #: admin/view-about.php:27
46
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
47
+ msgstr "Enfin, si vous aimez cette extension ou si elle vous aide dans votre business, vous pouvez faire un don à l&rsquo;auteur."
48
 
49
  # @ polylang
50
+ #: admin/admin-filters-post.php:76
51
+ #: admin/admin.php:83
52
+ #: admin/admin.php:187
53
+ #: admin/settings.php:42
54
+ #: admin/settings.php:57
55
+ #: include/model.php:490
 
56
  msgid "Languages"
57
  msgstr "Langues"
58
 
59
  # @ polylang
60
+ #: include/switcher.php:22
61
  msgid "Displays language names"
62
  msgstr "Afficher le nom des langues"
63
 
64
  # @ polylang
65
+ #: include/switcher.php:23
66
  msgid "Displays flags"
67
  msgstr "Afficher les drapeaux"
68
 
69
  # @ polylang
70
+ #: include/switcher.php:24
71
  msgid "Forces link to front page"
72
+ msgstr "Force le lien vers la page d&rsquo;accueil"
73
 
74
  # @ polylang
75
+ #: include/switcher.php:25
76
  msgid "Hides the current language"
77
  msgstr "Cacher la langue courante"
78
 
79
  # @ polylang
80
+ #: include/switcher.php:29
81
  msgid "Displays as dropdown"
82
  msgstr "Afficher comme liste déroulante"
83
 
84
  # @ polylang
85
+ #: admin/admin.php:188
86
  msgid "Filters content by language"
87
  msgstr "Filtrer le contenu par langue"
88
 
89
  # @ polylang
90
+ #: admin/admin.php:183
91
  msgid "Show all languages"
92
  msgstr "Afficher toutes les langues"
93
 
94
  # @ polylang
95
+ #: admin/admin-filters-columns.php:126
96
+ #: admin/admin-filters-columns.php:215
97
  msgid "Add new translation"
98
  msgstr "Ajoute une nouvelle traduction"
99
 
100
  # @ polylang
101
+ #: admin/admin-filters-columns.php:163
102
+ #: admin/admin-filters-media.php:58
103
+ #: admin/admin-filters-post.php:109
104
+ #: admin/admin-filters-term.php:72
105
+ #: admin/admin-filters-term.php:106
106
+ #: admin/view-translations-media.php:7
107
+ #: admin/view-translations-media.php:45
108
+ #: admin/view-translations-post.php:8
109
+ #: admin/view-translations-term.php:15
110
+ #: include/model.php:491
 
111
  msgid "Language"
112
  msgstr "Langue"
113
 
114
  # @ polylang
115
+ #: admin/admin-filters-media.php:73
116
+ #: admin/admin-filters-media.php:112
117
+ #: admin/table-string.php:111
118
+ #: admin/view-translations-media.php:42
119
+ #: admin/view-translations-term.php:6
120
+ #: admin/view-translations-term.php:11
121
  msgid "Translations"
122
  msgstr "Traductions"
123
 
124
  # @ polylang
125
+ #: admin/admin-filters-term.php:74
126
+ #: admin/admin-filters-term.php:108
127
  msgid "Sets the language"
128
  msgstr "Définit la langue"
129
 
130
  # @ polylang
131
+ #: admin/admin-filters.php:60
132
  msgid "The widget is displayed for:"
133
+ msgstr "Afficher le widget pour&nbsp;:"
134
 
135
  # @ polylang
136
+ #: admin/admin-filters.php:63
137
+ #: include/model.php:492
138
  msgid "All languages"
139
  msgstr "Toutes les langues"
140
 
141
  # @ polylang
142
+ #: admin/admin-filters.php:120
143
  msgid "Admin language"
144
+ msgstr "Langue pour l&rsquo;interface d&rsquo;administration"
145
 
146
  # @ polylang
147
+ #: admin/admin-filters.php:123
148
  msgid "Wordpress default"
149
  msgstr "Langue par défaut de WordPress"
150
 
151
  # @ polylang
152
+ #: admin/admin.php:123
153
+ #: admin/settings.php:62
154
  msgid "Settings"
155
  msgstr "Réglages"
156
 
157
  # @ polylang
158
+ #: admin/admin-filters.php:151
159
  msgid "Upgrading language files&#8230;"
160
  msgstr "Mise à jour des fichiers de langues&#8230;"
161
 
162
  # @ polylang
163
+ #: admin/settings.php:38
164
  msgid "About Polylang"
165
  msgstr "A propos de Polylang"
166
 
167
  # @ polylang
168
+ #: admin/settings.php:46
 
169
  msgid "Strings translations"
170
  msgstr "Traductions de phrases"
171
 
172
  # @ polylang
173
+ #: admin/settings.php:61
 
174
  msgid "Strings translation"
175
  msgstr "Traduction de phrases"
176
 
177
  # @ polylang
178
+ #: admin/settings.php:74
179
+ msgid "Enter a valid WordPress locale"
180
  msgstr "Entrez un code local WordPress valide"
181
 
182
  # @ polylang
183
+ #: admin/settings.php:76
 
 
 
 
 
184
  msgid "The language code must be unique"
185
  msgstr "Le code de la langue doit être unique"
186
 
187
  # @ polylang
188
+ #: admin/settings.php:77
189
  msgid "The language must have a name"
190
  msgstr "La langue doit avoir un nom"
191
 
192
  # @ polylang
193
+ #: admin/settings.php:78
194
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
195
+ msgstr "La langue a été créée, mais le fichier de langue WordPress n&rsquo;a pu être téléchargé. Merci de l&rsquo;installer manuellement."
196
 
197
  # @ polylang
198
+ #: admin/settings.php:305
199
  msgid "Widget title"
200
  msgstr "Titre de widget"
201
 
202
  # @ polylang
203
+ #: admin/settings.php:323
204
  msgid "Taxonomies"
205
  msgstr "Taxinomies"
206
 
207
  # @ polylang
208
+ #: admin/settings.php:324
209
  msgid "Custom fields"
210
  msgstr "Champs personnalisés"
211
 
212
  # @ polylang
213
+ #: admin/settings.php:325
214
  msgid "Comment status"
215
  msgstr "Autorisation des commentaires"
216
 
217
  # @ polylang
218
+ #: admin/settings.php:326
219
  msgid "Ping status"
220
  msgstr "Autorisation des pings"
221
 
222
  # @ polylang
223
+ #: admin/settings.php:327
224
  msgid "Sticky posts"
225
  msgstr "Articles mis en avant"
226
 
227
  # @ polylang
228
+ #: admin/settings.php:328
229
  msgid "Published date"
230
  msgstr "Date de publication"
231
 
232
  # @ polylang
233
+ #: admin/settings.php:329
234
  msgid "Post format"
235
  msgstr "Format"
236
 
237
  # @ polylang
238
+ #: admin/settings.php:330
239
  msgid "Page parent"
240
  msgstr "Parent de page"
241
 
242
  # @ polylang
243
+ #: admin/settings.php:331
244
  msgid "Page template"
245
  msgstr "Modèle de page"
246
 
247
  # @ polylang
248
+ #: admin/settings.php:332
249
  msgid "Page order"
250
  msgstr "Ordre des pages"
251
 
252
  # @ polylang
253
+ #: admin/settings.php:333
254
  msgid "Featured image"
255
  msgstr "Image à la une"
256
 
257
  # @ polylang
258
+ #: admin/view-languages.php:42
259
  msgid "Edit language"
260
  msgstr "Modifier la langue"
261
 
262
  # @ polylang
263
+ #: admin/view-languages.php:42
264
+ #: admin/view-languages.php:117
265
  msgid "Add new language"
266
  msgstr "Ajouter une nouvelle langue"
267
 
268
  # @ polylang
269
+ #: admin/view-languages.php:58
270
  msgid "Choose a language"
271
  msgstr "Choisir une langue"
272
 
273
  # @ polylang
274
+ #: admin/view-languages.php:72
275
  msgid "You can choose a language in the list or directly edit it below."
276
  msgstr "Choisissez une langue dans la liste ou éditez la directement ci-dessous."
277
 
278
  # @ polylang
279
+ #: admin/table-languages.php:74
280
+ #: admin/view-languages.php:76
281
  msgid "Full name"
282
  msgstr "Nom"
283
 
284
  # @ polylang
285
+ #: admin/view-languages.php:78
286
  msgid "The name is how it is displayed on your site (for example: English)."
287
+ msgstr "Le nom est utilisé un peu partout sur le site (par exemple&nbsp;: Français)"
288
 
289
  # @ polylang
290
+ #: admin/table-languages.php:75
291
+ #: admin/view-languages.php:82
292
  msgid "Locale"
293
  msgstr "Code local"
294
 
295
  # @ polylang
296
+ #: admin/view-languages.php:87
297
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
298
+ msgstr "Code local utilisé par Wordpress pour la langue (par exemple&nbsp;: fr_FR). Vous aurez besoin d&rsquo;installer les fichiers .mo correspondant."
299
 
300
  # @ polylang
301
+ #: admin/view-languages.php:91
302
  msgid "Language code"
303
  msgstr "Code de la langue"
304
 
305
  # @ polylang
306
+ #: admin/view-languages.php:93
307
  msgid "2-letters ISO 639-1 language code (for example: en)"
308
+ msgstr "Code ISO 639-1 à 2 lettres (par exemple&nbsp;: fr)"
309
 
310
  # @ polylang
311
+ #: admin/view-languages.php:97
312
  msgid "Text direction"
313
+ msgstr "Système d&rsquo;écriture"
314
 
315
  # @ polylang
316
+ #: admin/view-languages.php:101
317
  msgid "left to right"
318
  msgstr "de gauche à droite"
319
 
320
  # @ polylang
321
+ #: admin/view-languages.php:106
322
  msgid "right to left"
323
  msgstr "de droite à gauche"
324
 
325
  # @ polylang
326
+ #: admin/view-languages.php:108
327
  msgid "Choose the text direction for the language"
328
+ msgstr "Choisir le système d&rsquo;écriture pour la langue"
329
 
330
  # @ polylang
331
+ #: admin/table-languages.php:77
332
+ #: admin/view-languages.php:112
333
  msgid "Order"
334
  msgstr "Ordre"
335
 
336
  # @ polylang
337
+ #: admin/view-languages.php:114
338
  msgid "Position of the language in the language switcher"
339
  msgstr "Position de la langue dans la liste de langues"
340
 
341
  # @ polylang
342
+ #: admin/admin-nav-menu.php:51
343
+ #: admin/admin-nav-menu.php:79
344
+ #: admin/admin-nav-menu.php:82
345
+ #: admin/admin-nav-menu.php:113
346
+ #: admin/admin-nav-menu.php:170
347
+ #: include/upgrade.php:175
348
  msgid "Language switcher"
349
  msgstr "Liste des langues"
350
 
351
  # @ polylang
352
+ #: admin/view-languages.php:143
353
  msgid "Search translations"
354
  msgstr "Chercher dans les traductions"
355
 
356
  # @ polylang
357
+ #: admin/view-languages.php:146
358
  msgid "Clean strings translation database"
359
  msgstr "Nettoyer les traductions inutilisées"
360
 
361
  # @ polylang
362
+ #: admin/view-languages.php:164
363
  msgid "Default language"
364
  msgstr "Langue par défaut"
365
 
366
  # @ polylang
367
+ #: admin/view-languages.php:179
368
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
369
+ msgstr "Il y a des articles, pages, catégories ou tags sans langue définie. Voulez-vous leur attribuer la langue par défaut&nbsp;?"
370
 
371
  # @ polylang
372
+ #: admin/view-languages.php:187
373
  msgid "Detect browser language"
374
  msgstr "Détecter la langue du navigateur"
375
 
376
  # @ polylang
377
+ #: admin/view-languages.php:193
378
  msgid "When the front page is visited, set the language according to the browser preference"
379
+ msgstr "Lorsque la page d&rsquo;accueil est visitée pour la première fois, le visiteur est redirigé à la bonne URL en fonction des préférences de langue de son navigateur"
380
 
381
  # @ polylang
382
+ #: admin/view-languages.php:200
383
  msgid "URL modifications"
384
  msgstr "Modifications des URL"
385
 
386
  # @ polylang
387
+ #: admin/view-languages.php:206
388
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
389
  msgstr "La langue est déterminée par le contenu. Les urls des articles, pages, catégories et mots clés ne sont pas modifiées."
390
 
391
  # @ polylang
392
+ #: admin/view-languages.php:253
 
 
 
 
 
393
  msgid "Remove /language/ in pretty permalinks. Example:"
394
+ msgstr "Supprime /language/ dans les permaliens. Exemple&nbsp;:"
395
 
396
  # @ polylang
397
+ #: admin/view-languages.php:262
398
  msgid "Keep /language/ in pretty permalinks. Example:"
399
+ msgstr "Conserve /language/ dans les permaliens. Exemple&nbsp;:"
400
 
401
  # @ polylang
402
+ #: admin/view-languages.php:271
403
  msgid "Hide URL language information for default language"
404
+ msgstr "Cacher l&rsquo;information de langue dans l&rsquo;URL pour la langue par défaut"
405
 
406
  # @ polylang
407
+ #: admin/view-languages.php:281
408
  #, php-format
409
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
410
+ msgstr "Rediriger la page de langue (exemple&nbsp;: %s) vers la page d&rsquo;accueil dans la bonne langue"
411
 
412
  # @ polylang
413
+ #: admin/view-languages.php:290
414
  msgid "Media"
415
  msgstr "Médias"
416
 
417
  # @ polylang
418
+ #: admin/view-languages.php:296
419
  msgid "Activate languages and translations for media"
420
  msgstr "Activer la gestion des langues et des traductions pour les médias"
421
 
422
  # @ polylang
423
+ #: admin/view-languages.php:303
424
  msgid "Synchronization"
425
  msgstr "Synchronisation"
426
 
427
  # @ polylang
428
+ #: admin/view-languages.php:320
429
  msgid "Custom post types"
430
  msgstr "Types de contenu"
431
 
432
  # @ polylang
433
+ #: admin/view-languages.php:333
434
  msgid "Activate languages and translations for custom post types."
435
  msgstr "Activer la gestion des langues et des traductions pour les types de contenu."
436
 
437
  # @ polylang
438
+ #: admin/view-languages.php:340
439
  msgid "Custom taxonomies"
440
  msgstr "Taxinomies"
441
 
442
  # @ polylang
443
+ #: admin/view-languages.php:353
444
  msgid "Activate languages and translations for custom taxonomies."
445
  msgstr "Activer la gestion des langues et des traductions pour les taxinomies."
446
 
447
  # @ polylang
448
+ #: admin/table-languages.php:54
449
+ #: admin/view-translations-media.php:24
450
+ #: admin/view-translations-media.php:62
451
+ #: admin/view-translations-post.php:10
452
+ #: admin/view-translations-post.php:33
453
+ #: admin/view-translations-term.php:18
454
+ #: admin/view-translations-term.php:80
455
  msgid "Edit"
456
  msgstr "Modifier"
457
 
458
  # @ polylang
459
+ #: admin/table-languages.php:60
460
+ #: admin/table-string.php:167
461
  msgid "Delete"
462
  msgstr "Supprimer"
463
 
464
  # @ polylang
465
+ #: admin/table-languages.php:76
466
  msgid "Code"
467
  msgstr "Code"
468
 
469
  # @ polylang
470
+ #: admin/table-languages.php:78
471
  msgid "Flag"
472
  msgstr "Drapeau"
473
 
474
  # @ polylang
475
+ #: admin/table-languages.php:79
476
  msgid "Posts"
477
  msgstr "Articles"
478
 
479
  # @ polylang
480
+ #: admin/table-string.php:109
481
  msgid "Name"
482
  msgstr "Nom"
483
 
484
  # @ polylang
485
+ #: admin/table-string.php:110
486
  msgid "String"
487
  msgstr "Phrase"
488
 
489
  # @ polylang
490
+ #: admin/view-translations-media.php:8
491
+ #: admin/view-translations-media.php:46
492
+ #: admin/view-translations-term.php:16
493
  msgid "Translation"
494
  msgstr "Traduction"
495
 
496
  # @ polylang
497
+ #: admin/view-translations-media.php:33
498
+ #: admin/view-translations-media.php:70
499
+ #: admin/view-translations-post.php:38
500
+ #: admin/view-translations-term.php:60
501
  msgid "Add new"
502
  msgstr "Ajouter"
503
 
504
  # @ polylang
505
+ #: admin/view-translations-post.php:5
506
  msgid "ID of pages in other languages:"
507
+ msgstr "ID des pages dans les autres langues&nbsp;:"
508
 
509
  # @ polylang
510
+ #: admin/view-translations-post.php:5
511
  msgid "ID of posts in other languages:"
512
+ msgstr "ID des articles dans les autres langues&nbsp;:"
513
 
514
  # @ polylang
515
+ #: admin/view-translations-post.php:9
516
  msgid "Page ID"
517
  msgstr "ID de la page"
518
 
519
  # @ polylang
520
+ #: admin/view-translations-post.php:9
521
  msgid "Post ID"
522
+ msgstr "ID de l&rsquo;article"
523
 
524
  # @ polylang
525
+ #: admin/view-translations-term.php:48
526
  msgid "No untranslated term"
527
  msgstr "Pas de terme non traduit"
528
 
529
  # @ polylang
530
+ #: include/widget-languages.php:16
531
  msgid "Language Switcher"
532
  msgstr "Liste des langues"
533
 
534
  # @ polylang
535
+ #: include/widget-languages.php:16
536
  msgid "Displays a language switcher"
537
  msgstr "Affiche la liste des langues"
538
 
539
  # @ polylang
540
+ #: include/widget-languages.php:100
541
  msgid "Title:"
542
+ msgstr "Titre&nbsp;:"
543
 
544
  # @ polylang
545
  #. translators: plugin header field 'Description'
548
  msgstr "Permet une utilisation multilingue de WordPress"
549
 
550
  # @ polylang
551
+ #: polylang.php:157
552
  #, php-format
553
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
554
  msgstr "Vous utilisez WordPress %s. Polylang nécessite au moins WordPress %s."
555
 
556
  # @ polylang
557
+ #: include/upgrade.php:75
 
 
 
 
 
558
  msgid "Polylang has been deactivated because you upgraded from a too old version."
559
  msgstr "Polylang a été désactivé parce que vous avez fait une mise à jour depuis une version trop ancienne."
560
 
561
  # @ polylang
562
+ #: include/upgrade.php:77
563
  #, php-format
564
  msgid "Please upgrade first to %s before ugrading to %s."
565
+ msgstr "Mettez à jour d&rsquo;abord vers %s avant de mettre à jour vers %s."
566
 
567
  # @ polylang
568
+ #: admin/table-string.php:108
569
  msgid "Group"
570
  msgstr "Groupe"
571
 
572
  # @ polylang
573
+ #: admin/table-string.php:186
574
  msgid "View all groups"
575
  msgstr "Voir tous les groupes"
576
 
577
+ # @ polylang
578
+ #: admin/table-languages.php:59
579
+ msgid "You are about to permanently delete this language. Are you sure?"
580
+ msgstr "Etes vous sûr de vouloir effacer cette langue&nbsp;?"
581
+
582
+ # @ polylang
583
+ #: admin/view-languages.php:147
584
+ msgid "Use this to remove unused strings from database, for example after a plugin has been uninstalled."
585
+ msgstr "Utilisez cette option pour supprimer les phrases inutiles dans la base de données, par exemple après avoir déssinstallé une extension."
586
+
587
+ # @ polylang
588
+ #: admin/view-languages.php:214
589
+ msgid "The language is set from the directory name in pretty permalinks. Example:"
590
+ msgstr "La langue est déterminée par le nom du répertoire dans les permaliens. Exemple&nbsp;:"
591
+
592
+ # @ polylang
593
+ #: admin/view-languages.php:223
594
+ msgid "The language is set from the subdomain name in pretty permalinks. Example:"
595
+ msgstr "La langue est déterminée par le sous-domaine dans les permaliens. Exemple&nbsp;:"
596
+
597
+ # @ polylang
598
+ #: admin/view-languages.php:314
599
+ 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."
600
+ msgstr "Les options de synchronisation permettent de maintenir les mêmes valeurs de métacontenus entre les traductions d&rsquo;un article ou d&rsquo;une page (ou de les traduire dans le cas des taxinomies et de la page parent)"
601
+
602
+ # @ polylang
603
+ #: admin/settings.php:75
604
+ msgid "The language code contains invalid characters"
605
+ msgstr "Le code de la langue contient des caractères invalides"
606
+
607
+ # @ polylang
608
+ #: admin/view-languages.php:232
609
+ msgid "The language is set from different domains:"
610
+ msgstr "La langue est déterminée par des noms de domaine différents&nbsp;:"
611
+
languages/polylang-he_IL.mo CHANGED
Binary file
languages/polylang-he_IL.po CHANGED
@@ -1,605 +1,639 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: polylang\n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: \n"
6
- "PO-Revision-Date: \n"
7
- "Last-Translator: Ariel Klikstein <a@arielk.net>\n"
8
- "Language-Team: ARYO Digital <mail@aryo.co.il>\n"
9
- "Language: he\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; plural=n != 1;\n"
14
- "X-Poedit-SourceCharset: UTF-8\n"
15
- "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
16
- "_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"
17
- "X-Poedit-Basepath: .\n"
18
- "X-Textdomain-Support: yes\n"
19
- "X-Generator: Poedit 1.5.4\n"
20
- "X-Poedit-SearchPath-0: ..\n"
21
-
22
- # @ polylang
23
- #: include/about.php:3
24
- #, php-format
25
- msgid ""
26
- "Polylang is provided with an extensive %sdocumentation%s (in English only). "
27
- "It includes information on how to set up your multilingual site and use it "
28
- "on a daily basis, a FAQ, as well as a documentation for programmers to adapt "
29
- "their plugins and themes."
30
- msgstr ""
31
- "התוסף מסופק עם %sתיעוד מסודר%s (באנגלית בלבד). התיעוד כולל מידע על הקמת אתר "
32
- "רב לשוני והשתמשות בו על בסיס יומיומי, שאלות נפוצות, וכן תיעוד עבור מפתחים "
33
- "להתאמת תוספים וערכות נושא לתוסף."
34
-
35
- # @ polylang
36
- #: include/about.php:9
37
- #, php-format
38
- msgid ""
39
- "You will also find useful information in the %ssupport forum%s. However "
40
- "don't forget to make a search before posting a new topic."
41
- msgstr ""
42
- "תוכלו למצוא מידע שימושי ב %sפורום תמיכה%s של התוסף. רק אל תשכחו לחפש לפני "
43
- "שאתם שואלים."
44
-
45
- # @ polylang
46
- #: include/about.php:16
47
- #, php-format
48
- msgid ""
49
- "Polylang is free of charge and is released under the same license as "
50
- "WordPress, the %sGPL%s."
51
- msgstr ""
52
- "התוסף ללא תשלום והוא משוחרר לשימוש חופשי ברישיון %sGPL%s בדומה לוורדפרס."
53
-
54
- # @ polylang
55
- #: include/about.php:22
56
- #, php-format
57
- msgid "If you wonder how you can help the project, just %sread this%s."
58
- msgstr "אם הינכם מעוניינים לעזור לפרויקט הזה %sקראו כאן%s."
59
-
60
- # @ polylang
61
- #: include/about.php:27
62
- msgid ""
63
- "Finally if you like this plugin or if it helps your business, donations to "
64
- "the author are greatly appreciated."
65
- msgstr ""
66
- "אם אתם ממש אוהבים את התוסף הזה או שזה עוזר לעסק שלכם, אני מאוד אעריך אם "
67
- "תתמכו בי."
68
-
69
- # @ polylang
70
- #: include/admin-base.php:55 include/admin-base.php:190
71
- #: include/admin-filters.php:243 include/admin.php:23 include/admin.php:301
72
- #: include/list-table.php:13 polylang.php:339
73
- msgid "Languages"
74
- msgstr "שפות"
75
-
76
- # @ polylang
77
- #: include/admin-base.php:153
78
- msgid "Displays language names"
79
- msgstr "הצגת שם שפה"
80
-
81
- # @ polylang
82
- #: include/admin-base.php:154
83
- msgid "Displays flags"
84
- msgstr "הצגת דגלים"
85
-
86
- # @ polylang
87
- #: include/admin-base.php:155
88
- msgid "Forces link to front page"
89
- msgstr "לקשר תמיד לעמוד הבית"
90
-
91
- # @ polylang
92
- #: include/admin-base.php:156
93
- msgid "Hides the current language"
94
- msgstr "הסתרת שפה נוכחית"
95
-
96
- # @ polylang
97
- #: include/admin-base.php:160
98
- msgid "Displays as dropdown"
99
- msgstr "תצוגה בתפריט נפתח"
100
-
101
- # @ polylang
102
- #: include/admin-base.php:191
103
- msgid "Filters content by language"
104
- msgstr "סינון תוכן לפי שפה"
105
-
106
- # @ polylang
107
- #: include/admin-base.php:186
108
- msgid "Show all languages"
109
- msgstr "הצגת כל השפות"
110
-
111
- # @ polylang
112
- #: include/admin-filters.php:181 include/admin-filters.php:877
113
- msgid "Add new translation"
114
- msgstr "הוספת תרגום חדש"
115
-
116
- # @ polylang
117
- #: include/admin-filters.php:209 include/admin-filters.php:267
118
- #: include/admin-filters.php:601 include/admin-filters.php:817
119
- #: include/admin-filters.php:835 include/list-table.php:12
120
- #: include/media-translations.php:5 include/media-translations.php:43
121
- #: include/post-translations.php:8 include/term-translations.php:15
122
- #: polylang.php:340
123
- msgid "Language"
124
- msgstr "שפה"
125
-
126
- # @ polylang
127
- #: include/admin-filters.php:616 include/admin-filters.php:651
128
- #: include/list-table.php:127 include/media-translations.php:40
129
- #: include/term-translations.php:6 include/term-translations.php:11
130
- msgid "Translations"
131
- msgstr "תרגומים"
132
-
133
- # @ polylang
134
- #: include/admin-filters.php:819 include/admin-filters.php:838
135
- msgid "Sets the language"
136
- msgstr "הגדרות שפה"
137
-
138
- # @ polylang
139
- #: include/admin-filters.php:1053
140
- msgid "The widget is displayed for:"
141
- msgstr "וידגט' זה יוצג בשפה:"
142
-
143
- # @ polylang
144
- #: include/admin-filters.php:1057 polylang.php:341
145
- msgid "All languages"
146
- msgstr "כל השפות"
147
-
148
- # @ polylang
149
- #: include/admin-filters.php:1080
150
- msgid "Admin language"
151
- msgstr "שפת פאנל ניהול"
152
-
153
- #: include/admin-filters.php:1085
154
- msgid "Wordpress default"
155
- msgstr "ברירת מחדל"
156
-
157
- # @ default
158
- # @ polylang
159
- #: include/admin-filters.php:1114 include/admin.php:306
160
- msgid "Settings"
161
- msgstr "הגדרות"
162
-
163
- # @ polylang
164
- #: include/admin-filters.php:1120
165
- msgid "Upgrading language files&#8230;"
166
- msgstr "עדכון קבצי שפה&#8230;"
167
-
168
- # @ polylang
169
- #: include/admin.php:22
170
- msgid "About Polylang"
171
- msgstr "אודות התוסף"
172
-
173
- # @ polylang
174
- #: include/admin.php:27 include/list-table.php:82
175
- msgid "Strings translations"
176
- msgstr "מחרוזות תרגומים"
177
-
178
- # @ polylang
179
- #: include/admin.php:305 include/list-table.php:81
180
- msgid "Strings translation"
181
- msgstr "מחרוזות תרגום"
182
-
183
- # @ polylang
184
- #: include/admin.php:345
185
- msgid "Enter a valid WorPress locale"
186
- msgstr "הזן אזור שתקף בוורדפרס"
187
-
188
- # @ polylang
189
- #: include/admin.php:346
190
- msgid "The language code must be 2 characters long"
191
- msgstr "קוד שפה חייב להיות עם 2 תוים לפחות"
192
-
193
- # @ polylang
194
- #: include/admin.php:328
195
- msgid "The language code must be unique"
196
- msgstr "קוד שפה חייב להיות ייחודי"
197
-
198
- # @ polylang
199
- #: include/admin.php:329
200
- msgid "The language must have a name"
201
- msgstr "שם שפה חובה"
202
-
203
- # @ polylang
204
- #: include/admin.php:330
205
- msgid ""
206
- "The language was created, but the WordPress language file was not "
207
- "downloaded. Please install it manually."
208
- msgstr ""
209
- "השפה נוצרה, אבל את הקובץ שפה של וורדפרס לא היה ניתן להוריד. אנא התקן את "
210
- "הקבצים באופן ידני."
211
-
212
- # @ polylang
213
- #: include/admin.php:449
214
- msgid "Widget title"
215
- msgstr "וידג'ט טקסט"
216
-
217
- # @ polylang
218
- #: include/base.php:368
219
- msgid "Taxonomies"
220
- msgstr "טקסונומיות"
221
-
222
- # @ polylang
223
- #: include/base.php:369
224
- msgid "Custom fields"
225
- msgstr "שדות מיוחדים"
226
-
227
- # @ polylang
228
- #: include/base.php:370
229
- msgid "Comment status"
230
- msgstr "סטטוס תגובה"
231
-
232
- # @ polylang
233
- #: include/base.php:371
234
- msgid "Ping status"
235
- msgstr "סטטוס פינג"
236
-
237
- # @ polylang
238
- #: include/base.php:372
239
- msgid "Sticky posts"
240
- msgstr "פוסטים דביקים"
241
-
242
- # @ polylang
243
- #: include/base.php:373
244
- msgid "Published date"
245
- msgstr "תאריך פרסום"
246
-
247
- # @ polylang
248
- #: include/base.php:374
249
- msgid "Post format"
250
- msgstr "סוג תוכן"
251
-
252
- # @ default
253
- #: include/base.php:375
254
- msgid "Page parent"
255
- msgstr "עמוד אב"
256
-
257
- # @ polylang
258
- #: include/base.php:376
259
- msgid "Page template"
260
- msgstr "תבנית עמוד"
261
-
262
- # @ polylang
263
- #: include/base.php:377
264
- msgid "Page order"
265
- msgstr "סידור עמוד"
266
-
267
- # @ polylang
268
- #: include/base.php:378
269
- msgid "Featured image"
270
- msgstr "תמונה ראשית"
271
-
272
- # @ polylang
273
- #: include/languages-form.php:42
274
- msgid "Edit language"
275
- msgstr "עריכת שפה"
276
-
277
- # @ polylang
278
- #: include/languages-form.php:42 include/languages-form.php:123
279
- msgid "Add new language"
280
- msgstr "הוספת שפה חדשה"
281
-
282
- # @ polylang
283
- #: include/languages-form.php:64
284
- msgid "Choose a language"
285
- msgstr "בחירת שפה"
286
-
287
- # @ polylang
288
- #: include/languages-form.php:78
289
- msgid "You can choose a language in the list or directly edit it below."
290
- msgstr "אפשר לבחור שפה מהרשימה או ישירות לערוך אותה בהמשך."
291
-
292
- # @ polylang
293
- #: include/languages-form.php:82 include/list-table.php:34
294
- msgid "Full name"
295
- msgstr "שם מלא"
296
-
297
- # @ polylang
298
- #: include/languages-form.php:84
299
- msgid "The name is how it is displayed on your site (for example: English)."
300
- msgstr "השם שיוצג באתר שלך (לדוגמא: עברית)"
301
-
302
- # @ polylang
303
- #: include/languages-form.php:88 include/list-table.php:35
304
- msgid "Locale"
305
- msgstr "מיקום"
306
-
307
- # @ polylang
308
- #: include/languages-form.php:93
309
- msgid ""
310
- "Wordpress Locale for the language (for example: en_US). You will need to "
311
- "install the .mo file for this language."
312
- msgstr ""
313
- "קבצי שפה של וורדפרס (לדוגמא he_IL ). חייב להיות קובץ .MO בשביל הגדרת שפה"
314
-
315
- # @ polylang
316
- #: include/languages-form.php:97
317
- msgid "Language code"
318
- msgstr "קוד שפה"
319
-
320
- # @ polylang
321
- #: include/languages-form.php:99
322
- msgid "2-letters ISO 639-1 language code (for example: en)"
323
- msgstr "2 תוים לפחות (לדוגמא: he)"
324
-
325
- # @ polylang
326
- #: include/languages-form.php:103
327
- msgid "Text direction"
328
- msgstr "כיוון טקסט"
329
-
330
- # @ polylang
331
- #: include/languages-form.php:107
332
- msgid "left to right"
333
- msgstr "שמאל לימין"
334
-
335
- # @ polylang
336
- #: include/languages-form.php:112
337
- msgid "right to left"
338
- msgstr "ימין לשמאל"
339
-
340
- # @ polylang
341
- #: include/languages-form.php:114
342
- msgid "Choose the text direction for the language"
343
- msgstr "בחירת כיווניות טקסט עבור השפה"
344
-
345
- # @ polylang
346
- #: include/languages-form.php:118 include/list-table.php:37
347
- msgid "Order"
348
- msgstr "סידור"
349
-
350
- # @ polylang
351
- #: include/languages-form.php:120
352
- msgid "Position of the language in the language switcher"
353
- msgstr "מיקום שפה במחליף השפות"
354
-
355
- # @ polylang
356
- #: include/nav-menu.php:28 include/nav-menu.php:51 include/nav-menu.php:54
357
- #: include/nav-menu.php:82 include/nav-menu.php:106 polylang.php:302
358
- msgid "Language switcher"
359
- msgstr "מחליף שפות"
360
-
361
- # @ polylang
362
- #: include/languages-form.php:148
363
- msgid "Search translations"
364
- msgstr "חיפוש תרגומים"
365
-
366
- # @ polylang
367
- #: include/languages-form.php:151
368
- msgid "Clean strings translation database"
369
- msgstr "ניקוי מחרוזות תרגום מהדטא בייס"
370
-
371
- # @ polylang
372
- #: include/languages-form.php:167
373
- msgid "Default language"
374
- msgstr "שפת ברירת מחדל"
375
-
376
- # @ polylang
377
- #: include/languages-form.php:179
378
- msgid ""
379
- "There are posts, pages, categories or tags without language set. Do you want "
380
- "to set them all to default language ?"
381
- msgstr ""
382
- "יש הודעות, דפים, קטגוריות או תגיות שאינם מוגדרים בשפה מסויימת. האם להגדיר את "
383
- "כולם שפת ברירת המחדל? "
384
-
385
- # @ polylang
386
- #: include/languages-form.php:187
387
- msgid "Detect browser language"
388
- msgstr "זיהוי שפת דפדפן"
389
-
390
- # @ polylang
391
- #: include/languages-form.php:193
392
- msgid ""
393
- "When the front page is visited, set the language according to the browser "
394
- "preference"
395
- msgstr "כאשר הגולש הגיע לעמוד הבית, הצג את השפה על פי שפת הדפדפן של הגולש"
396
-
397
- # @ polylang
398
- #: include/languages-form.php:200
399
- msgid "URL modifications"
400
- msgstr "שינויי URL"
401
-
402
- # @ polylang
403
- #: include/languages-form.php:206
404
- msgid ""
405
- "The language is set from content. Posts, pages, categories and tags urls are "
406
- "not modified."
407
- msgstr ""
408
- "השפה מוגדרת בגלל התוכן. ה URL של הפוסטים, העמודים, הקטגוריות והתגיות אינם "
409
- "משתנים."
410
-
411
- #: include/languages-form.php:214
412
- msgid ""
413
- "The language code, for example /en/, is added to all urls when using pretty "
414
- "permalinks."
415
- msgstr ""
416
- "קוד השפה, לדוגמא /en/, נוסף לכל הקישורים באתר בעת שימוש בקישורים ידידותיים "
417
- "(pretty permalinks)."
418
-
419
- # @ polylang
420
- #: include/languages-form.php:223
421
- msgid "Remove /language/ in pretty permalinks. Example:"
422
- msgstr "מחק /language/ מכתובת השפה. לדוגמא:"
423
-
424
- # @ polylang
425
- #: include/languages-form.php:232
426
- msgid "Keep /language/ in pretty permalinks. Example:"
427
- msgstr "כתובת מיקום שפה לאחר /language/. לדוגמא:"
428
-
429
- # @ polylang
430
- #: include/languages-form.php:241
431
- msgid "Hide URL language information for default language"
432
- msgstr "הסרת שינוי כתובת עבור שפת ברירת מחדל"
433
-
434
- # @ polylang
435
- #: include/languages-form.php:251
436
- #, php-format
437
- msgid ""
438
- "When using static front page, redirect the language page (example: %s) to "
439
- "the front page in the right language"
440
- msgstr ""
441
- "בעת שימוש בדף בית סטטי, לנתב מחדש את דף השפה (לדוגמה: %s) לדף הבית בשפה "
442
- "הנכונה"
443
-
444
- # @ polylang
445
- #: include/languages-form.php:260
446
- msgid "Media"
447
- msgstr "מדיה"
448
-
449
- # @ polylang
450
- #: include/languages-form.php:266
451
- msgid "Activate languages and translations for media"
452
- msgstr "הפעלת תרגום שפות עבור מערכת המדיה"
453
-
454
- #: include/languages-form.php:273
455
- msgid "Synchronization"
456
- msgstr "סנכרון"
457
-
458
- # @ polylang
459
- #: include/languages-form.php:287
460
- msgid "Custom post types"
461
- msgstr "סוגי פוסטים מותאמים אישית"
462
-
463
- # @ polylang
464
- #: include/languages-form.php:300
465
- msgid "Activate languages and translations for custom post types."
466
- msgstr "הפעלת תרגום שפות עבור סוגי פוסטים מותאמים אישית"
467
-
468
- # @ polylang
469
- #: include/languages-form.php:307
470
- msgid "Custom taxonomies"
471
- msgstr "טקסונומיות מותאמות אישית"
472
-
473
- # @ polylang
474
- #: include/languages-form.php:320
475
- msgid "Activate languages and translations for custom taxonomies."
476
- msgstr "הפעלת תרגום שפות עבור טקסונומיות מותאמות אישית"
477
-
478
- # @ polylang
479
- #: include/list-table.php:26 include/media-translations.php:22
480
- #: include/media-translations.php:60 include/post-translations.php:10
481
- #: include/post-translations.php:33 include/term-translations.php:18
482
- #: include/term-translations.php:80
483
- msgid "Edit"
484
- msgstr "עריכה"
485
-
486
- # @ polylang
487
- #: include/list-table.php:27 include/list-table.php:162
488
- msgid "Delete"
489
- msgstr "מחיקה"
490
-
491
- # @ polylang
492
- #: include/list-table.php:36
493
- msgid "Code"
494
- msgstr "קוד"
495
-
496
- # @ polylang
497
- #: include/list-table.php:38
498
- msgid "Flag"
499
- msgstr "דגל"
500
-
501
- # @ polylang
502
- #: include/list-table.php:39
503
- msgid "Posts"
504
- msgstr "פוסטים"
505
-
506
- # @ polylang
507
- #: include/list-table.php:125
508
- msgid "Name"
509
- msgstr "שם"
510
-
511
- # @ polylang
512
- #: include/list-table.php:126
513
- msgid "String"
514
- msgstr "מחרוזת"
515
-
516
- # @ polylang
517
- #: include/media-translations.php:6 include/media-translations.php:44
518
- #: include/term-translations.php:16
519
- msgid "Translation"
520
- msgstr "תרגום"
521
-
522
- # @ polylang
523
- #: include/media-translations.php:31 include/media-translations.php:68
524
- #: include/post-translations.php:38 include/term-translations.php:60
525
- msgid "Add new"
526
- msgstr "הוספת חדש"
527
-
528
- # @ polylang
529
- #: include/post-translations.php:5
530
- msgid "ID of pages in other languages:"
531
- msgstr "עמודים בשפות אחרות"
532
-
533
- # @ polylang
534
- #: include/post-translations.php:5
535
- msgid "ID of posts in other languages:"
536
- msgstr "פוסטים בשפות אחרות"
537
-
538
- # @ polylang
539
- #: include/post-translations.php:9
540
- msgid "Page ID"
541
- msgstr "מספר זיהוי עמוד"
542
-
543
- # @ polylang
544
- #: include/post-translations.php:9
545
- msgid "Post ID"
546
- msgstr "מספר זיהוי פוסט"
547
-
548
- # @ polylang
549
- #: include/term-translations.php:48
550
- msgid "No untranslated term"
551
- msgstr "המונח לא תורגם"
552
-
553
- # @ polylang
554
- #: include/widget.php:6
555
- msgid "Language Switcher"
556
- msgstr "מחליף שפות"
557
-
558
- # @ polylang
559
- #: include/widget.php:6
560
- msgid "Displays a language switcher"
561
- msgstr "הצגת מחליף השפות"
562
-
563
- # @ polylang
564
- #: include/widget.php:69
565
- msgid "Title:"
566
- msgstr "כותרת:"
567
-
568
- # @ polylang
569
- #. translators: plugin header field 'Description'
570
- #: polylang.php:0
571
- msgid "Adds multilingual capability to WordPress"
572
- msgstr "הוספת יכולות שפות מרובה בוורדפרס"
573
-
574
- # @ polylang
575
- #: polylang.php:133
576
- #, php-format
577
- msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
578
- msgstr "המערכת על וורדפרס גרסה %s. התוסף דורש לכל הפחות וורדפרס גרסה %s."
579
-
580
- # @ polylang
581
- #: polylang.php:174
582
- msgid "For some reasons, Polylang could not create a table in your database."
583
- msgstr "מסיבות מסויימות, התוסף לא מצליח ליצור טבלה במסד הנתונים של המערכת"
584
-
585
- # @ polylang
586
- #: polylang.php:235
587
- msgid ""
588
- "Polylang has been deactivated because you upgraded from a too old version."
589
- msgstr "תוסף השפות (Polylang) בוטל בגלל ששדרגת מגרסה ישנה מידי"
590
-
591
- # @ polylang
592
- #: polylang.php:237
593
- #, php-format
594
- msgid "Please upgrade first to %s before ugrading to %s."
595
- msgstr "אנא שדרגו ראשית כל ל %s לפני שאתם משדרגים ל %s"
596
-
597
- # @ polylang
598
- #: include/list-table.php:124
599
- msgid "Group"
600
- msgstr "קבוצה"
601
-
602
- # @ polylang
603
- #: include/list-table.php:173
604
- msgid "View all groups"
605
- msgstr "הצגת כל הקבוצות"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: polylang\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: \n"
7
+ "Last-Translator: Ariel K <a@arielk.net>\n"
8
+ "Language-Team: ARYO Digital <mail@aryo.co.il>\n"
9
+ "Language: he\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; plural=n != 1;\n"
14
+ "X-Poedit-SourceCharset: UTF-8\n"
15
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
16
+ "_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"
17
+ "X-Poedit-Basepath: .\n"
18
+ "X-Textdomain-Support: yes\n"
19
+ "X-Generator: Poedit 1.5.5\n"
20
+ "X-Poedit-SearchPath-0: ..\n"
21
+
22
+ # @ polylang
23
+ #: admin/view-about.php:3
24
+ #, php-format
25
+ msgid ""
26
+ "Polylang is provided with an extensive %sdocumentation%s (in English only). "
27
+ "It includes information on how to set up your multilingual site and use it "
28
+ "on a daily basis, a FAQ, as well as a documentation for programmers to adapt "
29
+ "their plugins and themes."
30
+ msgstr ""
31
+ "התוסף מסופק עם %sתיעוד מסודר%s (באנגלית בלבד). התיעוד כולל מידע על הקמת אתר "
32
+ "רב לשוני והשתמשות בו על בסיס יומיומי, שאלות נפוצות, וכן תיעוד עבור מפתחים "
33
+ "להתאמת תוספים וערכות נושא לתוסף."
34
+
35
+ # @ polylang
36
+ #: admin/view-about.php:9
37
+ #, php-format
38
+ msgid ""
39
+ "You will also find useful information in the %ssupport forum%s. However "
40
+ "don't forget to make a search before posting a new topic."
41
+ msgstr ""
42
+ "תוכלו למצוא מידע שימושי ב %sפורום תמיכה%s של התוסף. רק אל תשכחו לחפש לפני "
43
+ "שאתם שואלים."
44
+
45
+ # @ polylang
46
+ #: admin/view-about.php:16
47
+ #, php-format
48
+ msgid ""
49
+ "Polylang is free of charge and is released under the same license as "
50
+ "WordPress, the %sGPL%s."
51
+ msgstr ""
52
+ "התוסף ללא תשלום והוא משוחרר לשימוש חופשי ברישיון %sGPL%s בדומה לוורדפרס."
53
+
54
+ # @ polylang
55
+ #: admin/view-about.php:22
56
+ #, php-format
57
+ msgid "If you wonder how you can help the project, just %sread this%s."
58
+ msgstr "אם הינכם מעוניינים לעזור לפרויקט הזה %sקראו כאן%s."
59
+
60
+ # @ polylang
61
+ #: admin/view-about.php:27
62
+ msgid ""
63
+ "Finally if you like this plugin or if it helps your business, donations to "
64
+ "the author are greatly appreciated."
65
+ msgstr ""
66
+ "אם אתם ממש אוהבים את התוסף הזה או שזה עוזר לעסק שלכם, אני מאוד אעריך אם "
67
+ "תתמכו בי."
68
+
69
+ # @ polylang
70
+ #: admin/admin-filters-post.php:76 admin/admin.php:83 admin/admin.php:187
71
+ #: admin/settings.php:42 admin/settings.php:57 include/model.php:490
72
+ msgid "Languages"
73
+ msgstr "שפות"
74
+
75
+ # @ polylang
76
+ #: include/switcher.php:22
77
+ msgid "Displays language names"
78
+ msgstr "הצגת שם שפה"
79
+
80
+ # @ polylang
81
+ #: include/switcher.php:23
82
+ msgid "Displays flags"
83
+ msgstr "הצגת דגלים"
84
+
85
+ # @ polylang
86
+ #: include/switcher.php:24
87
+ msgid "Forces link to front page"
88
+ msgstr "לקשר תמיד לעמוד הבית"
89
+
90
+ # @ polylang
91
+ #: include/switcher.php:25
92
+ msgid "Hides the current language"
93
+ msgstr "הסתרת שפה נוכחית"
94
+
95
+ # @ polylang
96
+ #: include/switcher.php:29
97
+ msgid "Displays as dropdown"
98
+ msgstr "תצוגה בתפריט נפתח"
99
+
100
+ # @ polylang
101
+ #: admin/admin.php:188
102
+ msgid "Filters content by language"
103
+ msgstr "סינון תוכן לפי שפה"
104
+
105
+ # @ polylang
106
+ #: admin/admin.php:183
107
+ msgid "Show all languages"
108
+ msgstr "הצגת כל השפות"
109
+
110
+ # @ polylang
111
+ #: admin/admin-filters-columns.php:126 admin/admin-filters-columns.php:215
112
+ msgid "Add new translation"
113
+ msgstr "הוספת תרגום חדש"
114
+
115
+ # @ polylang
116
+ #: admin/admin-filters-columns.php:163 admin/admin-filters-media.php:58
117
+ #: admin/admin-filters-post.php:109 admin/admin-filters-term.php:72
118
+ #: admin/admin-filters-term.php:106 admin/view-translations-media.php:7
119
+ #: admin/view-translations-media.php:45 admin/view-translations-post.php:8
120
+ #: admin/view-translations-term.php:15 include/model.php:491
121
+ msgid "Language"
122
+ msgstr "שפה"
123
+
124
+ # @ polylang
125
+ #: admin/admin-filters-media.php:73 admin/admin-filters-media.php:112
126
+ #: admin/table-string.php:111 admin/view-translations-media.php:42
127
+ #: admin/view-translations-term.php:6 admin/view-translations-term.php:11
128
+ msgid "Translations"
129
+ msgstr "תרגומים"
130
+
131
+ # @ polylang
132
+ #: admin/admin-filters-term.php:74 admin/admin-filters-term.php:108
133
+ msgid "Sets the language"
134
+ msgstr "הגדרות שפה"
135
+
136
+ # @ polylang
137
+ #: admin/admin-filters.php:60
138
+ msgid "The widget is displayed for:"
139
+ msgstr "וידגט' זה יוצג בשפה:"
140
+
141
+ # @ polylang
142
+ #: admin/admin-filters.php:63 include/model.php:492
143
+ msgid "All languages"
144
+ msgstr "כל השפות"
145
+
146
+ # @ polylang
147
+ #: admin/admin-filters.php:120
148
+ msgid "Admin language"
149
+ msgstr "שפת פאנל ניהול"
150
+
151
+ #: admin/admin-filters.php:123
152
+ msgid "Wordpress default"
153
+ msgstr "ברירת מחדל"
154
+
155
+ # @ default
156
+ # @ polylang
157
+ #: admin/admin.php:123 admin/settings.php:62
158
+ msgid "Settings"
159
+ msgstr "הגדרות"
160
+
161
+ # @ polylang
162
+ #: admin/admin-filters.php:151
163
+ msgid "Upgrading language files&#8230;"
164
+ msgstr "עדכון קבצי שפה&#8230;"
165
+
166
+ # @ polylang
167
+ #: admin/settings.php:38
168
+ msgid "About Polylang"
169
+ msgstr "אודות התוסף"
170
+
171
+ # @ polylang
172
+ #: admin/settings.php:46
173
+ msgid "Strings translations"
174
+ msgstr "מחרוזות תרגומים"
175
+
176
+ # @ polylang
177
+ #: admin/settings.php:61
178
+ msgid "Strings translation"
179
+ msgstr "מחרוזות תרגום"
180
+
181
+ # @ polylang
182
+ #: admin/settings.php:74
183
+ msgid "Enter a valid WordPress locale"
184
+ msgstr "יש להזין מקום שתקף בוורדפרס"
185
+
186
+ # @ polylang
187
+ #: admin/settings.php:76
188
+ msgid "The language code must be unique"
189
+ msgstr "קוד שפה חייב להיות ייחודי"
190
+
191
+ # @ polylang
192
+ #: admin/settings.php:77
193
+ msgid "The language must have a name"
194
+ msgstr "שם שפה חובה"
195
+
196
+ # @ polylang
197
+ #: admin/settings.php:78
198
+ msgid ""
199
+ "The language was created, but the WordPress language file was not "
200
+ "downloaded. Please install it manually."
201
+ msgstr ""
202
+ "השפה נוצרה, אבל את הקובץ שפה של וורדפרס לא היה ניתן להוריד. יש להתקין את "
203
+ "הקבצים באופן ידני."
204
+
205
+ # @ polylang
206
+ #: admin/settings.php:305
207
+ msgid "Widget title"
208
+ msgstr "וידג'ט טקסט"
209
+
210
+ # @ polylang
211
+ #: admin/settings.php:323
212
+ msgid "Taxonomies"
213
+ msgstr "טקסונומיות"
214
+
215
+ # @ polylang
216
+ #: admin/settings.php:324
217
+ msgid "Custom fields"
218
+ msgstr "שדות מיוחדים"
219
+
220
+ # @ polylang
221
+ #: admin/settings.php:325
222
+ msgid "Comment status"
223
+ msgstr "סטטוס תגובה"
224
+
225
+ # @ polylang
226
+ #: admin/settings.php:326
227
+ msgid "Ping status"
228
+ msgstr "סטטוס פינג"
229
+
230
+ # @ polylang
231
+ #: admin/settings.php:327
232
+ msgid "Sticky posts"
233
+ msgstr "פוסטים דביקים"
234
+
235
+ # @ polylang
236
+ #: admin/settings.php:328
237
+ msgid "Published date"
238
+ msgstr "תאריך פרסום"
239
+
240
+ # @ polylang
241
+ #: admin/settings.php:329
242
+ msgid "Post format"
243
+ msgstr "סוג תוכן"
244
+
245
+ # @ default
246
+ #: admin/settings.php:330
247
+ msgid "Page parent"
248
+ msgstr "עמוד אב"
249
+
250
+ # @ polylang
251
+ #: admin/settings.php:331
252
+ msgid "Page template"
253
+ msgstr "תבנית עמוד"
254
+
255
+ # @ polylang
256
+ #: admin/settings.php:332
257
+ msgid "Page order"
258
+ msgstr "סידור עמוד"
259
+
260
+ # @ polylang
261
+ #: admin/settings.php:333
262
+ msgid "Featured image"
263
+ msgstr "תמונה ראשית"
264
+
265
+ # @ polylang
266
+ #: admin/view-languages.php:42
267
+ msgid "Edit language"
268
+ msgstr "עריכת שפה"
269
+
270
+ # @ polylang
271
+ #: admin/view-languages.php:42 admin/view-languages.php:117
272
+ msgid "Add new language"
273
+ msgstr "הוספת שפה חדשה"
274
+
275
+ # @ polylang
276
+ #: admin/view-languages.php:58
277
+ msgid "Choose a language"
278
+ msgstr "בחירת שפה"
279
+
280
+ # @ polylang
281
+ #: admin/view-languages.php:72
282
+ msgid "You can choose a language in the list or directly edit it below."
283
+ msgstr "אפשר לבחור שפה מהרשימה או ישירות לערוך אותה בהמשך."
284
+
285
+ # @ polylang
286
+ #: admin/table-languages.php:74 admin/view-languages.php:76
287
+ msgid "Full name"
288
+ msgstr "שם מלא"
289
+
290
+ # @ polylang
291
+ #: admin/view-languages.php:78
292
+ msgid "The name is how it is displayed on your site (for example: English)."
293
+ msgstr "השם שיוצג באתר שלך (לדוגמא: עברית)"
294
+
295
+ # @ polylang
296
+ #: admin/table-languages.php:75 admin/view-languages.php:82
297
+ msgid "Locale"
298
+ msgstr "מיקום"
299
+
300
+ # @ polylang
301
+ #: admin/view-languages.php:87
302
+ msgid ""
303
+ "Wordpress Locale for the language (for example: en_US). You will need to "
304
+ "install the .mo file for this language."
305
+ msgstr ""
306
+ "קבצי שפה של וורדפרס (לדוגמא he_IL ). חייב להיות קובץ .MO בשביל הגדרת שפה"
307
+
308
+ # @ polylang
309
+ #: admin/view-languages.php:91
310
+ msgid "Language code"
311
+ msgstr "קוד שפה"
312
+
313
+ # @ polylang
314
+ #: admin/view-languages.php:93
315
+ msgid "2-letters ISO 639-1 language code (for example: en)"
316
+ msgstr "2 תוים לפחות (לדוגמא: he)"
317
+
318
+ # @ polylang
319
+ #: admin/view-languages.php:97
320
+ msgid "Text direction"
321
+ msgstr "כיוון טקסט"
322
+
323
+ # @ polylang
324
+ #: admin/view-languages.php:101
325
+ msgid "left to right"
326
+ msgstr "שמאל לימין"
327
+
328
+ # @ polylang
329
+ #: admin/view-languages.php:106
330
+ msgid "right to left"
331
+ msgstr "ימין לשמאל"
332
+
333
+ # @ polylang
334
+ #: admin/view-languages.php:108
335
+ msgid "Choose the text direction for the language"
336
+ msgstr "בחירת כיווניות טקסט עבור השפה"
337
+
338
+ # @ polylang
339
+ #: admin/table-languages.php:77 admin/view-languages.php:112
340
+ msgid "Order"
341
+ msgstr "סידור"
342
+
343
+ # @ polylang
344
+ #: admin/view-languages.php:114
345
+ msgid "Position of the language in the language switcher"
346
+ msgstr "מיקום שפה במחליף השפות"
347
+
348
+ # @ polylang
349
+ #: admin/admin-nav-menu.php:51 admin/admin-nav-menu.php:79
350
+ #: admin/admin-nav-menu.php:82 admin/admin-nav-menu.php:113
351
+ #: admin/admin-nav-menu.php:170 include/upgrade.php:175
352
+ msgid "Language switcher"
353
+ msgstr "מחליף שפות"
354
+
355
+ # @ polylang
356
+ #: admin/view-languages.php:143
357
+ msgid "Search translations"
358
+ msgstr "חיפוש תרגומים"
359
+
360
+ # @ polylang
361
+ #: admin/view-languages.php:146
362
+ msgid "Clean strings translation database"
363
+ msgstr "ניקוי מחרוזות תרגום מהדטא בייס"
364
+
365
+ # @ polylang
366
+ #: admin/view-languages.php:164
367
+ msgid "Default language"
368
+ msgstr "שפת ברירת מחדל"
369
+
370
+ # @ polylang
371
+ #: admin/view-languages.php:179
372
+ msgid ""
373
+ "There are posts, pages, categories or tags without language set. Do you want "
374
+ "to set them all to default language ?"
375
+ msgstr ""
376
+ "יש הודעות, דפים, קטגוריות או תגיות שאינם מוגדרים בשפה מסויימת. האם להגדיר את "
377
+ "כולם שפת ברירת המחדל? "
378
+
379
+ # @ polylang
380
+ #: admin/view-languages.php:187
381
+ msgid "Detect browser language"
382
+ msgstr "זיהוי שפת דפדפן"
383
+
384
+ # @ polylang
385
+ #: admin/view-languages.php:193
386
+ msgid ""
387
+ "When the front page is visited, set the language according to the browser "
388
+ "preference"
389
+ msgstr "כאשר הגולש הגיע לעמוד הבית, הצג את השפה על פי שפת הדפדפן של הגולש"
390
+
391
+ # @ polylang
392
+ #: admin/view-languages.php:200
393
+ msgid "URL modifications"
394
+ msgstr "שינויי URL"
395
+
396
+ # @ polylang
397
+ #: admin/view-languages.php:206
398
+ msgid ""
399
+ "The language is set from content. Posts, pages, categories and tags urls are "
400
+ "not modified."
401
+ msgstr ""
402
+ "השפה מוגדרת בגלל התוכן. ה URL של הפוסטים, העמודים, הקטגוריות והתגיות אינו "
403
+ "משתנה."
404
+
405
+ # @ polylang
406
+ #: admin/view-languages.php:253
407
+ msgid "Remove /language/ in pretty permalinks. Example:"
408
+ msgstr "מחק /language/ מכתובת השפה. לדוגמא:"
409
+
410
+ # @ polylang
411
+ #: admin/view-languages.php:262
412
+ msgid "Keep /language/ in pretty permalinks. Example:"
413
+ msgstr "כתובת מיקום שפה לאחר /language/. לדוגמא:"
414
+
415
+ # @ polylang
416
+ #: admin/view-languages.php:271
417
+ msgid "Hide URL language information for default language"
418
+ msgstr "הסרת שינוי כתובת עבור שפת ברירת מחדל"
419
+
420
+ # @ polylang
421
+ #: admin/view-languages.php:281
422
+ #, php-format
423
+ msgid ""
424
+ "When using static front page, redirect the language page (example: %s) to "
425
+ "the front page in the right language"
426
+ msgstr ""
427
+ "בעת שימוש בדף בית סטטי, לנתב מחדש את דף השפה (לדוגמה: %s) לדף הבית בשפה "
428
+ "הנכונה"
429
+
430
+ # @ polylang
431
+ #: admin/view-languages.php:290
432
+ msgid "Media"
433
+ msgstr "מדיה"
434
+
435
+ # @ polylang
436
+ #: admin/view-languages.php:296
437
+ msgid "Activate languages and translations for media"
438
+ msgstr "הפעלת תרגום שפות עבור מערכת המדיה"
439
+
440
+ #: admin/view-languages.php:303
441
+ msgid "Synchronization"
442
+ msgstr "סנכרון"
443
+
444
+ # @ polylang
445
+ #: admin/view-languages.php:320
446
+ msgid "Custom post types"
447
+ msgstr "סוגי פוסטים מותאמים אישית"
448
+
449
+ # @ polylang
450
+ #: admin/view-languages.php:333
451
+ msgid "Activate languages and translations for custom post types."
452
+ msgstr "הפעלת תרגום שפות עבור סוגי פוסטים מותאמים אישית"
453
+
454
+ # @ polylang
455
+ #: admin/view-languages.php:340
456
+ msgid "Custom taxonomies"
457
+ msgstr "טקסונומיות מותאמות אישית"
458
+
459
+ # @ polylang
460
+ #: admin/view-languages.php:353
461
+ msgid "Activate languages and translations for custom taxonomies."
462
+ msgstr "הפעלת תרגום שפות עבור טקסונומיות מותאמות אישית"
463
+
464
+ # @ polylang
465
+ #: admin/table-languages.php:54 admin/view-translations-media.php:24
466
+ #: admin/view-translations-media.php:62 admin/view-translations-post.php:10
467
+ #: admin/view-translations-post.php:33 admin/view-translations-term.php:18
468
+ #: admin/view-translations-term.php:80
469
+ msgid "Edit"
470
+ msgstr "עריכה"
471
+
472
+ # @ polylang
473
+ #: admin/table-languages.php:60 admin/table-string.php:167
474
+ msgid "Delete"
475
+ msgstr "מחיקה"
476
+
477
+ # @ polylang
478
+ #: admin/table-languages.php:76
479
+ msgid "Code"
480
+ msgstr "קוד"
481
+
482
+ # @ polylang
483
+ #: admin/table-languages.php:78
484
+ msgid "Flag"
485
+ msgstr "דגל"
486
+
487
+ # @ polylang
488
+ #: admin/table-languages.php:79
489
+ msgid "Posts"
490
+ msgstr "פוסטים"
491
+
492
+ # @ polylang
493
+ #: admin/table-string.php:109
494
+ msgid "Name"
495
+ msgstr "שם"
496
+
497
+ # @ polylang
498
+ #: admin/table-string.php:110
499
+ msgid "String"
500
+ msgstr "מחרוזת"
501
+
502
+ # @ polylang
503
+ #: admin/view-translations-media.php:8 admin/view-translations-media.php:46
504
+ #: admin/view-translations-term.php:16
505
+ msgid "Translation"
506
+ msgstr "תרגום"
507
+
508
+ # @ polylang
509
+ #: admin/view-translations-media.php:33 admin/view-translations-media.php:70
510
+ #: admin/view-translations-post.php:38 admin/view-translations-term.php:60
511
+ msgid "Add new"
512
+ msgstr "הוספת חדש"
513
+
514
+ # @ polylang
515
+ #: admin/view-translations-post.php:5
516
+ msgid "ID of pages in other languages:"
517
+ msgstr "עמודים בשפות אחרות"
518
+
519
+ # @ polylang
520
+ #: admin/view-translations-post.php:5
521
+ msgid "ID of posts in other languages:"
522
+ msgstr "פוסטים בשפות אחרות"
523
+
524
+ # @ polylang
525
+ #: admin/view-translations-post.php:9
526
+ msgid "Page ID"
527
+ msgstr "מספר זיהוי עמוד"
528
+
529
+ # @ polylang
530
+ #: admin/view-translations-post.php:9
531
+ msgid "Post ID"
532
+ msgstr "מספר זיהוי פוסט"
533
+
534
+ # @ polylang
535
+ #: admin/view-translations-term.php:48
536
+ msgid "No untranslated term"
537
+ msgstr "המונח לא תורגם"
538
+
539
+ # @ polylang
540
+ #: include/widget-languages.php:16
541
+ msgid "Language Switcher"
542
+ msgstr "מחליף שפות"
543
+
544
+ # @ polylang
545
+ #: include/widget-languages.php:16
546
+ msgid "Displays a language switcher"
547
+ msgstr "הצגת מחליף השפות"
548
+
549
+ # @ polylang
550
+ #: include/widget-languages.php:100
551
+ msgid "Title:"
552
+ msgstr "כותרת:"
553
+
554
+ # @ polylang
555
+ #. translators: plugin header field 'Description'
556
+ #: polylang.php:0
557
+ msgid "Adds multilingual capability to WordPress"
558
+ msgstr "הוספת יכולות שפות מרובה בוורדפרס"
559
+
560
+ # @ polylang
561
+ #: polylang.php:157
562
+ #, php-format
563
+ msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
564
+ msgstr "המערכת על וורדפרס גרסה %s. התוסף דורש לכל הפחות וורדפרס גרסה %s."
565
+
566
+ # @ polylang
567
+ #: include/upgrade.php:75
568
+ msgid ""
569
+ "Polylang has been deactivated because you upgraded from a too old version."
570
+ msgstr "תוסף השפות (Polylang) בוטל בגלל ששדרגת מגרסה ישנה מידי"
571
+
572
+ # @ polylang
573
+ #: include/upgrade.php:77
574
+ #, php-format
575
+ msgid "Please upgrade first to %s before ugrading to %s."
576
+ msgstr "אנא שדרגו ראשית כל ל %s לפני שאתם משדרגים ל %s"
577
+
578
+ # @ polylang
579
+ #: admin/table-string.php:108
580
+ msgid "Group"
581
+ msgstr "קבוצה"
582
+
583
+ # @ polylang
584
+ #: admin/table-string.php:186
585
+ msgid "View all groups"
586
+ msgstr "הצגת כל הקבוצות"
587
+
588
+ # @ polylang
589
+ #: admin/table-languages.php:59
590
+ msgid "You are about to permanently delete this language. Are you sure?"
591
+ msgstr "השפה עומדת להמחק לצמיתות. האם למחוק בכל זאת?"
592
+
593
+ # @ polylang
594
+ #: admin/view-languages.php:147
595
+ msgid ""
596
+ "Use this to remove unused strings from database, for example after a plugin "
597
+ "has been uninstalled."
598
+ msgstr ""
599
+ "יש להשתמש באפשרוית זו כדי להסיר מחרוזות שאינן בשימוש ממסד הנתונים, לדוגמא: "
600
+ "לאחר הסרת התוסף מהמערכת."
601
+
602
+ # @ polylang
603
+ #: admin/view-languages.php:214
604
+ msgid ""
605
+ "The language is set from the directory name in pretty permalinks. Example:"
606
+ msgstr "השפה מוגדרת משם התיקיה במבנה קישורים, לדוגמא:"
607
+
608
+ # @ polylang
609
+ #: admin/view-languages.php:223
610
+ msgid ""
611
+ "The language is set from the subdomain name in pretty permalinks. Example:"
612
+ msgstr "השפה מוגדרת משם הסאב דומיין במבנה קישורים, לדוגמא:"
613
+
614
+ # @ polylang
615
+ #: admin/view-languages.php:314
616
+ msgid ""
617
+ "The synchronization options allow to maintain exact same values (or "
618
+ "translations in the case of taxonomies and page parent) of meta content "
619
+ "between the translations of a post or page."
620
+ msgstr ""
621
+ "אפשרויות הסנכרון תאפשר לשמור על אותם ערכים מדויקים (או תרגומים במקרה של "
622
+ "טקסונומיות ועמודי אב) של תוכן מטא בין התרגומים של הפוסט או העמוד."
623
+
624
+ # @ polylang
625
+ #: admin/settings.php:75
626
+ msgid "The language code contains invalid characters"
627
+ msgstr "קוד השפה מכיל תווים לא חוקיים"
628
+
629
+ # @ polylang
630
+ #: admin/view-languages.php:232
631
+ msgid "The language is set from different domains:"
632
+ msgstr "השפה מוגדרת מדומיינים שונים:"
633
+
634
+ #~ msgid ""
635
+ #~ "The language code, for example /en/, is added to all urls when using "
636
+ #~ "pretty permalinks."
637
+ #~ msgstr ""
638
+ #~ "קוד השפה, לדוגמא /en/, נוסף לכל הקישורים באתר בעת שימוש בקישורים "
639
+ #~ "ידידותיים (pretty permalinks)."
languages/polylang-hu_HU.mo CHANGED
Binary file
languages/polylang-hu_HU.po CHANGED
@@ -18,458 +18,446 @@ msgstr ""
18
  "X-Poedit-SearchPath-0: ..\n"
19
  "X-Poedit-SearchPath-1: ../include\n"
20
 
21
- #: include/about.php:3
22
  #, php-format
23
  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."
24
  msgstr "A bővítményhez részletes %sdokumentáció%s áll rendelkezésre (angol nyelven), amely tartalmazza a telepítéshez és a mindennapos használathoz szükséges leírásokat, és a fejlesztők számára szükséges információkat is."
25
 
26
- #: include/about.php:9
27
  #, php-format
28
  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."
29
  msgstr "Továbbá a %stámogató fórumban%s is találhatók hasznos információk, de új téma indítása előtt érdemes a keresést is használni."
30
 
31
- #: include/about.php:16
32
  #, php-format
33
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
34
  msgstr "Polylang bővítmény ingyen használható és a WordPress-el azonos, %sGPL%s licensz alatt lett kiadva."
35
 
36
- #: include/about.php:22
37
  #, php-format
38
  msgid "If you wonder how you can help the project, just %sread this%s."
39
  msgstr "Ha hasznosnak bizonyult a bővítmény, akkor %sfejlesztéssel, teszteléssel vagy fórum válaszokkal%s is lehet segíteni folyamatos fejlődését."
40
 
41
- #: include/about.php:27
42
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
43
  msgstr "Vagy a lentebbi gombra kattintva adományozással is hozzá lehet járulni a fejlesztéséhez, amit ez úton is köszönünk!"
44
 
45
- #: include/admin-base.php:55
46
- #: include/admin-base.php:190
47
- #: include/admin-filters.php:243
48
- #: include/admin.php:23
49
- #: include/admin.php:301
50
- #: include/list-table.php:13
51
- #: polylang.php:339
52
  msgid "Languages"
53
  msgstr "Nyelvek"
54
 
55
- #: include/admin-base.php:153
56
  msgid "Displays language names"
57
  msgstr "Nyelvek nevének mutatása"
58
 
59
- #: include/admin-base.php:154
60
  msgid "Displays flags"
61
  msgstr "Nyelv zászlók mutatása"
62
 
63
- #: include/admin-base.php:155
64
  msgid "Forces link to front page"
65
  msgstr "Főoldal linkje tartalmazza a nyelvet is"
66
 
67
- #: include/admin-base.php:156
68
  msgid "Hides the current language"
69
  msgstr "Aktuális nyelv elrejtése"
70
 
71
- #: include/admin-base.php:160
72
  msgid "Displays as dropdown"
73
  msgstr "Megjelenítés legördülő menüként"
74
 
75
- #: include/admin-base.php:191
76
  msgid "Filters content by language"
77
  msgstr "Tartalom szűrése nyelv szerint"
78
 
79
- #: include/admin-base.php:186
80
  msgid "Show all languages"
81
  msgstr "Minden nyelv"
82
 
83
- #: include/admin-filters.php:181
84
- #: include/admin-filters.php:877
85
  msgid "Add new translation"
86
  msgstr "Új fordítás hozzáadása"
87
 
88
- #: include/admin-filters.php:209
89
- #: include/admin-filters.php:267
90
- #: include/admin-filters.php:601
91
- #: include/admin-filters.php:817
92
- #: include/admin-filters.php:835
93
- #: include/list-table.php:12
94
- #: include/media-translations.php:5
95
- #: include/media-translations.php:43
96
- #: include/post-translations.php:8
97
- #: include/term-translations.php:15
98
- #: polylang.php:340
99
  msgid "Language"
100
  msgstr "Nyelv"
101
 
102
- #: include/admin-filters.php:616
103
- #: include/admin-filters.php:651
104
- #: include/list-table.php:127
105
- #: include/media-translations.php:40
106
- #: include/term-translations.php:6
107
- #: include/term-translations.php:11
108
  msgid "Translations"
109
  msgstr "Fordítások"
110
 
111
- #: include/admin-filters.php:819
112
- #: include/admin-filters.php:838
113
  msgid "Sets the language"
114
  msgstr "Nyelvek beállítása"
115
 
116
- #: include/admin-filters.php:1053
117
  msgid "The widget is displayed for:"
118
  msgstr "Widget megjelenítése ennél a nyelvnél:"
119
 
120
- #: include/admin-filters.php:1057
121
- #: polylang.php:341
122
  msgid "All languages"
123
  msgstr "Minden nyelv"
124
 
125
- #: include/admin-filters.php:1080
126
  msgid "Admin language"
127
  msgstr "Adminisztrációs felület nyelve"
128
 
129
- #: include/admin-filters.php:1085
130
  msgid "Wordpress default"
131
  msgstr "WordPress alapértelmezett"
132
 
133
- #: include/admin-filters.php:1114
134
- #: include/admin.php:306
135
  msgid "Settings"
136
  msgstr "Beállítások"
137
 
138
- #: include/admin-filters.php:1120
139
  msgid "Upgrading language files&#8230;"
140
  msgstr "Nyelv fájlok frissítése&#8230;"
141
 
142
- #: include/admin.php:22
143
  msgid "About Polylang"
144
  msgstr "Polylang bővítményről"
145
 
146
- #: include/admin.php:27
147
- #: include/list-table.php:82
148
  msgid "Strings translations"
149
  msgstr "Szöveg fordítások"
150
 
151
- #: include/admin.php:305
152
- #: include/list-table.php:81
153
  msgid "Strings translation"
154
  msgstr "Szöveg fordítások"
155
 
156
- #: include/admin.php:345
157
  msgid "Enter a valid WorPress locale"
158
  msgstr "WordPress nyelvkód (pl. hu_HU)"
159
 
160
- #: include/admin.php:346
161
- msgid "The language code must be 2 characters long"
162
- msgstr "2 karakteres nyelvkód (pl. hu)"
163
-
164
- #: include/admin.php:328
165
  msgid "The language code must be unique"
166
  msgstr "A nyelvkódnak egyedinek kell lennie"
167
 
168
- #: include/admin.php:329
169
  msgid "The language must have a name"
170
  msgstr "Nevet is kell adni a nyelvnek"
171
 
172
- #: include/admin.php:330
173
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
174
  msgstr "A nyelv hozzá lett adva, de a WordPress fordítások (.mo fájlok) ehhez a nyelvhez nem lettek letöltve, ezt kézzel kell megtenni."
175
 
176
- #: include/admin.php:449
177
  msgid "Widget title"
178
  msgstr "Widget címe"
179
 
180
  # @ polylang
181
- #: include/base.php:368
182
  msgid "Taxonomies"
183
  msgstr "Taxonómiák (kategóriák, címkék)"
184
 
185
  # @ polylang
186
- #: include/base.php:369
187
  msgid "Custom fields"
188
  msgstr "Egyedi mezők"
189
 
190
  # @ polylang
191
- #: include/base.php:370
192
  msgid "Comment status"
193
  msgstr "Hozzászólás állapot"
194
 
195
  # @ polylang
196
- #: include/base.php:371
197
  msgid "Ping status"
198
  msgstr "Értesítés (ping) állapot"
199
 
200
  # @ polylang
201
- #: include/base.php:372
202
  msgid "Sticky posts"
203
  msgstr "Ragadós bejegyzések"
204
 
205
  # @ polylang
206
- #: include/base.php:373
207
  msgid "Published date"
208
  msgstr "Közzététel időpontja"
209
 
210
- #: include/base.php:374
211
  msgid "Post format"
212
  msgstr "Formátum"
213
 
214
- #: include/base.php:375
215
  msgid "Page parent"
216
  msgstr "Szülő oldal"
217
 
218
  # @ polylang
219
- #: include/base.php:376
220
  msgid "Page template"
221
  msgstr "Oldal sablonminta"
222
 
223
- #: include/base.php:377
224
  msgid "Page order"
225
  msgstr "Oldal sorrend"
226
 
227
  # @ polylang
228
- #: include/base.php:378
229
  msgid "Featured image"
230
  msgstr "Kiemelt kép"
231
 
232
- #: include/languages-form.php:42
233
  msgid "Edit language"
234
  msgstr "Nyelv szerkesztése"
235
 
236
- #: include/languages-form.php:42
237
- #: include/languages-form.php:123
238
  msgid "Add new language"
239
  msgstr "Új nyelv hozzáadása"
240
 
241
- #: include/languages-form.php:64
242
  msgid "Choose a language"
243
  msgstr "Nyelv kiválasztása"
244
 
245
- #: include/languages-form.php:78
246
  msgid "You can choose a language in the list or directly edit it below."
247
  msgstr "Kiválasztható egy nyelv, vagy lentebb megadhatók a részletei:"
248
 
249
- #: include/languages-form.php:82
250
- #: include/list-table.php:34
251
  msgid "Full name"
252
  msgstr "Nyelv teljes neve"
253
 
254
- #: include/languages-form.php:84
255
  msgid "The name is how it is displayed on your site (for example: English)."
256
  msgstr "A nyelv teljes neve, ahogy majd a honlapon is megjelenik (pl. Magyar)"
257
 
258
- #: include/languages-form.php:88
259
- #: include/list-table.php:35
260
  msgid "Locale"
261
  msgstr "WP nyelvkód"
262
 
263
- #: include/languages-form.php:93
264
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
265
  msgstr "WordPress nyelvkód (pl. hu_HU). A nyelvhez tartozó .mo fordítás fájlt kézzel kell telepíteni."
266
 
267
- #: include/languages-form.php:97
268
  msgid "Language code"
269
  msgstr "Nyelvkód"
270
 
271
- #: include/languages-form.php:99
272
  msgid "2-letters ISO 639-1 language code (for example: en)"
273
  msgstr "2 karakteres ISO 639-1 nyelvkód (pl. hu)"
274
 
275
- #: include/languages-form.php:103
276
  msgid "Text direction"
277
  msgstr "Nyelv írásmódja"
278
 
279
- #: include/languages-form.php:107
280
  msgid "left to right"
281
  msgstr "balról jobbra"
282
 
283
- #: include/languages-form.php:112
284
  msgid "right to left"
285
  msgstr "jobbról balra"
286
 
287
- #: include/languages-form.php:114
288
  msgid "Choose the text direction for the language"
289
  msgstr "Nyelv írásmódjának kiválasztása"
290
 
291
- #: include/languages-form.php:118
292
- #: include/list-table.php:37
293
  msgid "Order"
294
  msgstr "Sorrend"
295
 
296
- #: include/languages-form.php:120
297
  msgid "Position of the language in the language switcher"
298
  msgstr "Hányadikként jelenjen meg a nyelv"
299
 
300
- #: include/nav-menu.php:28
301
- #: include/nav-menu.php:51
302
- #: include/nav-menu.php:54
303
- #: include/nav-menu.php:82
304
- #: include/nav-menu.php:106
305
- #: polylang.php:302
306
  msgid "Language switcher"
307
  msgstr "Nyelv választó"
308
 
309
- #: include/languages-form.php:148
310
  msgid "Search translations"
311
  msgstr "Fordítás keresése"
312
 
313
- #: include/languages-form.php:151
314
  msgid "Clean strings translation database"
315
  msgstr "Szöveg fordítások törlése"
316
 
317
- #: include/languages-form.php:167
318
  msgid "Default language"
319
  msgstr "Alapértelmezett nyelv"
320
 
321
- #: include/languages-form.php:179
322
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
323
  msgstr "Vannak bejegyzések, oldalak, kategóriák és címkék, amelyekhez még nincs nyelv megadva. Ezek használják az alapértelmezett nyelvet."
324
 
325
- #: include/languages-form.php:187
326
  msgid "Detect browser language"
327
  msgstr "Böngésző nyelvének használata"
328
 
329
- #: include/languages-form.php:193
330
  msgid "When the front page is visited, set the language according to the browser preference"
331
  msgstr "Amikor meglátogatják a honlapot, akkor a látogató böngészőjének nyelvét vegyük alapul."
332
 
333
- #: include/languages-form.php:200
334
  msgid "URL modifications"
335
  msgstr "Linkek módosítása"
336
 
337
- #: include/languages-form.php:206
338
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
339
  msgstr "Nyelv meghatározása a kért tartalom nyelve alapján. Oldalak, bejegyzések, kategóriák, címkék linkje nem lesz módosítva."
340
 
341
- #: include/languages-form.php:214
342
- msgid "The language code, for example /en/, is added to all urls when using pretty permalinks."
343
- msgstr "A nyelvkód, pl. /hu/ része a linknek, ha a közvetlen linknek beállítása nem az alapértelmezett."
344
-
345
- #: include/languages-form.php:223
346
  msgid "Remove /language/ in pretty permalinks. Example:"
347
  msgstr "Közvetlen linkekben NE szerepeljen a /language/ előtag, pl.:"
348
 
349
- #: include/languages-form.php:232
350
  msgid "Keep /language/ in pretty permalinks. Example:"
351
  msgstr "Közvetlen linkekben szerepeljen a /language/ előtag, pl.:"
352
 
353
- #: include/languages-form.php:241
354
  msgid "Hide URL language information for default language"
355
  msgstr "Nyelvkód eltávolítása a linkekből az alapértelmezett nyelv esetén"
356
 
357
- #: include/languages-form.php:251
358
  #, php-format
359
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
360
  msgstr "Ha a kezdőoldal egy statikus oldal, akkor a nyelv választásnál (pl: %s) legyen átirányítás a megfelelő nyelvű kezdőoldalra"
361
 
362
  # @ polylang
363
- #: include/languages-form.php:260
364
  msgid "Media"
365
  msgstr "Média"
366
 
367
  # @ polylang
368
- #: include/languages-form.php:266
369
  msgid "Activate languages and translations for media"
370
  msgstr "Médiák fordításának bekapcsolása"
371
 
372
- #: include/languages-form.php:273
373
  msgid "Synchronization"
374
  msgstr "Szinkronizálás"
375
 
376
  # @ polylang
377
- #: include/languages-form.php:287
378
  msgid "Custom post types"
379
  msgstr "Egyedi bejegyzés típusok"
380
 
381
  # @ polylang
382
- #: include/languages-form.php:300
383
  msgid "Activate languages and translations for custom post types."
384
  msgstr "Egyedi bejegyzés típusok fordításának bekapcsolása."
385
 
386
  # @ polylang
387
- #: include/languages-form.php:307
388
  msgid "Custom taxonomies"
389
  msgstr "Egyedi taxonómiák (kategóriák, címkék)"
390
 
391
  # @ polylang
392
- #: include/languages-form.php:320
393
  msgid "Activate languages and translations for custom taxonomies."
394
  msgstr "Egyedi taxonómiák (kategóriák, címkék) fordításának bekapcsolása."
395
 
396
- #: include/list-table.php:26
397
- #: include/media-translations.php:22
398
- #: include/media-translations.php:60
399
- #: include/post-translations.php:10
400
- #: include/post-translations.php:33
401
- #: include/term-translations.php:18
402
- #: include/term-translations.php:80
403
  msgid "Edit"
404
  msgstr "Szerkesztés"
405
 
406
- #: include/list-table.php:27
407
- #: include/list-table.php:162
408
  msgid "Delete"
409
  msgstr "Törlés"
410
 
411
- #: include/list-table.php:36
412
  msgid "Code"
413
  msgstr "Nyelvkód"
414
 
415
- #: include/list-table.php:38
416
  msgid "Flag"
417
  msgstr "Zászló"
418
 
419
- #: include/list-table.php:39
420
  msgid "Posts"
421
  msgstr "Bejegyzések"
422
 
423
- #: include/list-table.php:125
424
  msgid "Name"
425
  msgstr "Név"
426
 
427
- #: include/list-table.php:126
428
  msgid "String"
429
  msgstr "Szöveg"
430
 
431
- #: include/media-translations.php:6
432
- #: include/media-translations.php:44
433
- #: include/term-translations.php:16
434
  msgid "Translation"
435
  msgstr "Fordítás"
436
 
437
- #: include/media-translations.php:31
438
- #: include/media-translations.php:68
439
- #: include/post-translations.php:38
440
- #: include/term-translations.php:60
441
  msgid "Add new"
442
  msgstr "Új hozzáadása"
443
 
444
- #: include/post-translations.php:5
445
  msgid "ID of pages in other languages:"
446
  msgstr "Oldal fordításai:"
447
 
448
- #: include/post-translations.php:5
449
  msgid "ID of posts in other languages:"
450
  msgstr "Bejegyzés fordításai:"
451
 
452
- #: include/post-translations.php:9
453
  msgid "Page ID"
454
  msgstr "Azonosító"
455
 
456
- #: include/post-translations.php:9
457
  msgid "Post ID"
458
  msgstr "Azonosító"
459
 
460
- #: include/term-translations.php:48
461
  msgid "No untranslated term"
462
  msgstr "Nincsenek fordítással nem rendelkező kategóriák/címkék"
463
 
464
- #: include/widget.php:6
465
  msgid "Language Switcher"
466
  msgstr "Nyelv választó"
467
 
468
- #: include/widget.php:6
469
  msgid "Displays a language switcher"
470
  msgstr "Nyelv választó elhelyezése"
471
 
472
- #: include/widget.php:69
473
  msgid "Title:"
474
  msgstr "Cím:"
475
 
@@ -479,36 +467,75 @@ msgstr "Cím:"
479
  msgid "Adds multilingual capability to WordPress"
480
  msgstr "Többnyelvű tartalom, fordítások kezelése."
481
 
482
- #: polylang.php:133
483
  #, php-format
484
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
485
  msgstr "Jelenleg a WordPress %s verziója van használva. Polylang bővítmény használatához legalább WordPress %s verzió szükséges."
486
 
487
- #: polylang.php:174
488
- msgid "For some reasons, Polylang could not create a table in your database."
489
- msgstr "Polylang bővítménynek nem sikerült egy adatbázis táblát létrehozni."
490
-
491
  # @ polylang
492
- #: polylang.php:235
493
  msgid "Polylang has been deactivated because you upgraded from a too old version."
494
  msgstr "Polylang bővítmény ki lett kapcsolva, mert túl régi verzióról lett frissítve."
495
 
496
  # @ polylang
497
- #: polylang.php:237
498
  #, php-format
499
  msgid "Please upgrade first to %s before ugrading to %s."
500
  msgstr "Először a(z) %s verzióra kell elvégezni a frissítést, majd csak utána lehet a(z) %s verzióra is."
501
 
502
  # @ polylang
503
- #: include/list-table.php:124
504
  msgid "Group"
505
  msgstr ""
506
 
507
  # @ polylang
508
- #: include/list-table.php:173
509
  msgid "View all groups"
510
  msgstr ""
511
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
512
  #~ msgid "Displays a language switcher at the end of the menu"
513
  #~ msgstr "A menü végén megjeleníti a nyelv választót"
514
 
18
  "X-Poedit-SearchPath-0: ..\n"
19
  "X-Poedit-SearchPath-1: ../include\n"
20
 
21
+ #: admin/view-about.php:3
22
  #, php-format
23
  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."
24
  msgstr "A bővítményhez részletes %sdokumentáció%s áll rendelkezésre (angol nyelven), amely tartalmazza a telepítéshez és a mindennapos használathoz szükséges leírásokat, és a fejlesztők számára szükséges információkat is."
25
 
26
+ #: admin/view-about.php:9
27
  #, php-format
28
  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."
29
  msgstr "Továbbá a %stámogató fórumban%s is találhatók hasznos információk, de új téma indítása előtt érdemes a keresést is használni."
30
 
31
+ #: admin/view-about.php:16
32
  #, php-format
33
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
34
  msgstr "Polylang bővítmény ingyen használható és a WordPress-el azonos, %sGPL%s licensz alatt lett kiadva."
35
 
36
+ #: admin/view-about.php:22
37
  #, php-format
38
  msgid "If you wonder how you can help the project, just %sread this%s."
39
  msgstr "Ha hasznosnak bizonyult a bővítmény, akkor %sfejlesztéssel, teszteléssel vagy fórum válaszokkal%s is lehet segíteni folyamatos fejlődését."
40
 
41
+ #: admin/view-about.php:27
42
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
43
  msgstr "Vagy a lentebbi gombra kattintva adományozással is hozzá lehet járulni a fejlesztéséhez, amit ez úton is köszönünk!"
44
 
45
+ #: admin/admin-filters-post.php:76
46
+ #: admin/admin.php:83
47
+ #: admin/admin.php:187
48
+ #: admin/settings.php:42
49
+ #: admin/settings.php:57
50
+ #: include/model.php:490
 
51
  msgid "Languages"
52
  msgstr "Nyelvek"
53
 
54
+ #: include/switcher.php:22
55
  msgid "Displays language names"
56
  msgstr "Nyelvek nevének mutatása"
57
 
58
+ #: include/switcher.php:23
59
  msgid "Displays flags"
60
  msgstr "Nyelv zászlók mutatása"
61
 
62
+ #: include/switcher.php:24
63
  msgid "Forces link to front page"
64
  msgstr "Főoldal linkje tartalmazza a nyelvet is"
65
 
66
+ #: include/switcher.php:25
67
  msgid "Hides the current language"
68
  msgstr "Aktuális nyelv elrejtése"
69
 
70
+ #: include/switcher.php:29
71
  msgid "Displays as dropdown"
72
  msgstr "Megjelenítés legördülő menüként"
73
 
74
+ #: admin/admin.php:188
75
  msgid "Filters content by language"
76
  msgstr "Tartalom szűrése nyelv szerint"
77
 
78
+ #: admin/admin.php:183
79
  msgid "Show all languages"
80
  msgstr "Minden nyelv"
81
 
82
+ #: admin/admin-filters-columns.php:126
83
+ #: admin/admin-filters-columns.php:215
84
  msgid "Add new translation"
85
  msgstr "Új fordítás hozzáadása"
86
 
87
+ #: admin/admin-filters-columns.php:163
88
+ #: admin/admin-filters-media.php:58
89
+ #: admin/admin-filters-post.php:109
90
+ #: admin/admin-filters-term.php:72
91
+ #: admin/admin-filters-term.php:106
92
+ #: admin/view-translations-media.php:7
93
+ #: admin/view-translations-media.php:45
94
+ #: admin/view-translations-post.php:8
95
+ #: admin/view-translations-term.php:15
96
+ #: include/model.php:491
 
97
  msgid "Language"
98
  msgstr "Nyelv"
99
 
100
+ #: admin/admin-filters-media.php:73
101
+ #: admin/admin-filters-media.php:112
102
+ #: admin/table-string.php:111
103
+ #: admin/view-translations-media.php:42
104
+ #: admin/view-translations-term.php:6
105
+ #: admin/view-translations-term.php:11
106
  msgid "Translations"
107
  msgstr "Fordítások"
108
 
109
+ #: admin/admin-filters-term.php:74
110
+ #: admin/admin-filters-term.php:108
111
  msgid "Sets the language"
112
  msgstr "Nyelvek beállítása"
113
 
114
+ #: admin/admin-filters.php:60
115
  msgid "The widget is displayed for:"
116
  msgstr "Widget megjelenítése ennél a nyelvnél:"
117
 
118
+ #: admin/admin-filters.php:63
119
+ #: include/model.php:492
120
  msgid "All languages"
121
  msgstr "Minden nyelv"
122
 
123
+ #: admin/admin-filters.php:120
124
  msgid "Admin language"
125
  msgstr "Adminisztrációs felület nyelve"
126
 
127
+ #: admin/admin-filters.php:123
128
  msgid "Wordpress default"
129
  msgstr "WordPress alapértelmezett"
130
 
131
+ #: admin/admin.php:123
132
+ #: admin/settings.php:62
133
  msgid "Settings"
134
  msgstr "Beállítások"
135
 
136
+ #: admin/admin-filters.php:151
137
  msgid "Upgrading language files&#8230;"
138
  msgstr "Nyelv fájlok frissítése&#8230;"
139
 
140
+ #: admin/settings.php:38
141
  msgid "About Polylang"
142
  msgstr "Polylang bővítményről"
143
 
144
+ #: admin/settings.php:46
 
145
  msgid "Strings translations"
146
  msgstr "Szöveg fordítások"
147
 
148
+ #: admin/settings.php:61
 
149
  msgid "Strings translation"
150
  msgstr "Szöveg fordítások"
151
 
152
+ #: admin/settings.php:74
153
  msgid "Enter a valid WorPress locale"
154
  msgstr "WordPress nyelvkód (pl. hu_HU)"
155
 
156
+ #: admin/settings.php:76
 
 
 
 
157
  msgid "The language code must be unique"
158
  msgstr "A nyelvkódnak egyedinek kell lennie"
159
 
160
+ #: admin/settings.php:77
161
  msgid "The language must have a name"
162
  msgstr "Nevet is kell adni a nyelvnek"
163
 
164
+ #: admin/settings.php:78
165
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
166
  msgstr "A nyelv hozzá lett adva, de a WordPress fordítások (.mo fájlok) ehhez a nyelvhez nem lettek letöltve, ezt kézzel kell megtenni."
167
 
168
+ #: admin/settings.php:305
169
  msgid "Widget title"
170
  msgstr "Widget címe"
171
 
172
  # @ polylang
173
+ #: admin/settings.php:323
174
  msgid "Taxonomies"
175
  msgstr "Taxonómiák (kategóriák, címkék)"
176
 
177
  # @ polylang
178
+ #: admin/settings.php:324
179
  msgid "Custom fields"
180
  msgstr "Egyedi mezők"
181
 
182
  # @ polylang
183
+ #: admin/settings.php:325
184
  msgid "Comment status"
185
  msgstr "Hozzászólás állapot"
186
 
187
  # @ polylang
188
+ #: admin/settings.php:326
189
  msgid "Ping status"
190
  msgstr "Értesítés (ping) állapot"
191
 
192
  # @ polylang
193
+ #: admin/settings.php:327
194
  msgid "Sticky posts"
195
  msgstr "Ragadós bejegyzések"
196
 
197
  # @ polylang
198
+ #: admin/settings.php:328
199
  msgid "Published date"
200
  msgstr "Közzététel időpontja"
201
 
202
+ #: admin/settings.php:329
203
  msgid "Post format"
204
  msgstr "Formátum"
205
 
206
+ #: admin/settings.php:330
207
  msgid "Page parent"
208
  msgstr "Szülő oldal"
209
 
210
  # @ polylang
211
+ #: admin/settings.php:331
212
  msgid "Page template"
213
  msgstr "Oldal sablonminta"
214
 
215
+ #: admin/settings.php:332
216
  msgid "Page order"
217
  msgstr "Oldal sorrend"
218
 
219
  # @ polylang
220
+ #: admin/settings.php:333
221
  msgid "Featured image"
222
  msgstr "Kiemelt kép"
223
 
224
+ #: admin/view-languages.php:42
225
  msgid "Edit language"
226
  msgstr "Nyelv szerkesztése"
227
 
228
+ #: admin/view-languages.php:42
229
+ #: admin/view-languages.php:117
230
  msgid "Add new language"
231
  msgstr "Új nyelv hozzáadása"
232
 
233
+ #: admin/view-languages.php:58
234
  msgid "Choose a language"
235
  msgstr "Nyelv kiválasztása"
236
 
237
+ #: admin/view-languages.php:72
238
  msgid "You can choose a language in the list or directly edit it below."
239
  msgstr "Kiválasztható egy nyelv, vagy lentebb megadhatók a részletei:"
240
 
241
+ #: admin/table-languages.php:74
242
+ #: admin/view-languages.php:76
243
  msgid "Full name"
244
  msgstr "Nyelv teljes neve"
245
 
246
+ #: admin/view-languages.php:78
247
  msgid "The name is how it is displayed on your site (for example: English)."
248
  msgstr "A nyelv teljes neve, ahogy majd a honlapon is megjelenik (pl. Magyar)"
249
 
250
+ #: admin/table-languages.php:75
251
+ #: admin/view-languages.php:82
252
  msgid "Locale"
253
  msgstr "WP nyelvkód"
254
 
255
+ #: admin/view-languages.php:87
256
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
257
  msgstr "WordPress nyelvkód (pl. hu_HU). A nyelvhez tartozó .mo fordítás fájlt kézzel kell telepíteni."
258
 
259
+ #: admin/view-languages.php:91
260
  msgid "Language code"
261
  msgstr "Nyelvkód"
262
 
263
+ #: admin/view-languages.php:93
264
  msgid "2-letters ISO 639-1 language code (for example: en)"
265
  msgstr "2 karakteres ISO 639-1 nyelvkód (pl. hu)"
266
 
267
+ #: admin/view-languages.php:97
268
  msgid "Text direction"
269
  msgstr "Nyelv írásmódja"
270
 
271
+ #: admin/view-languages.php:101
272
  msgid "left to right"
273
  msgstr "balról jobbra"
274
 
275
+ #: admin/view-languages.php:106
276
  msgid "right to left"
277
  msgstr "jobbról balra"
278
 
279
+ #: admin/view-languages.php:108
280
  msgid "Choose the text direction for the language"
281
  msgstr "Nyelv írásmódjának kiválasztása"
282
 
283
+ #: admin/table-languages.php:77
284
+ #: admin/view-languages.php:112
285
  msgid "Order"
286
  msgstr "Sorrend"
287
 
288
+ #: admin/view-languages.php:114
289
  msgid "Position of the language in the language switcher"
290
  msgstr "Hányadikként jelenjen meg a nyelv"
291
 
292
+ #: admin/admin-nav-menu.php:51
293
+ #: admin/admin-nav-menu.php:79
294
+ #: admin/admin-nav-menu.php:82
295
+ #: admin/admin-nav-menu.php:113
296
+ #: admin/admin-nav-menu.php:170
297
+ #: include/upgrade.php:175
298
  msgid "Language switcher"
299
  msgstr "Nyelv választó"
300
 
301
+ #: admin/view-languages.php:143
302
  msgid "Search translations"
303
  msgstr "Fordítás keresése"
304
 
305
+ #: admin/view-languages.php:146
306
  msgid "Clean strings translation database"
307
  msgstr "Szöveg fordítások törlése"
308
 
309
+ #: admin/view-languages.php:164
310
  msgid "Default language"
311
  msgstr "Alapértelmezett nyelv"
312
 
313
+ #: admin/view-languages.php:179
314
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
315
  msgstr "Vannak bejegyzések, oldalak, kategóriák és címkék, amelyekhez még nincs nyelv megadva. Ezek használják az alapértelmezett nyelvet."
316
 
317
+ #: admin/view-languages.php:187
318
  msgid "Detect browser language"
319
  msgstr "Böngésző nyelvének használata"
320
 
321
+ #: admin/view-languages.php:193
322
  msgid "When the front page is visited, set the language according to the browser preference"
323
  msgstr "Amikor meglátogatják a honlapot, akkor a látogató böngészőjének nyelvét vegyük alapul."
324
 
325
+ #: admin/view-languages.php:200
326
  msgid "URL modifications"
327
  msgstr "Linkek módosítása"
328
 
329
+ #: admin/view-languages.php:206
330
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
331
  msgstr "Nyelv meghatározása a kért tartalom nyelve alapján. Oldalak, bejegyzések, kategóriák, címkék linkje nem lesz módosítva."
332
 
333
+ #: admin/view-languages.php:253
 
 
 
 
334
  msgid "Remove /language/ in pretty permalinks. Example:"
335
  msgstr "Közvetlen linkekben NE szerepeljen a /language/ előtag, pl.:"
336
 
337
+ #: admin/view-languages.php:262
338
  msgid "Keep /language/ in pretty permalinks. Example:"
339
  msgstr "Közvetlen linkekben szerepeljen a /language/ előtag, pl.:"
340
 
341
+ #: admin/view-languages.php:271
342
  msgid "Hide URL language information for default language"
343
  msgstr "Nyelvkód eltávolítása a linkekből az alapértelmezett nyelv esetén"
344
 
345
+ #: admin/view-languages.php:281
346
  #, php-format
347
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
348
  msgstr "Ha a kezdőoldal egy statikus oldal, akkor a nyelv választásnál (pl: %s) legyen átirányítás a megfelelő nyelvű kezdőoldalra"
349
 
350
  # @ polylang
351
+ #: admin/view-languages.php:290
352
  msgid "Media"
353
  msgstr "Média"
354
 
355
  # @ polylang
356
+ #: admin/view-languages.php:296
357
  msgid "Activate languages and translations for media"
358
  msgstr "Médiák fordításának bekapcsolása"
359
 
360
+ #: admin/view-languages.php:303
361
  msgid "Synchronization"
362
  msgstr "Szinkronizálás"
363
 
364
  # @ polylang
365
+ #: admin/view-languages.php:320
366
  msgid "Custom post types"
367
  msgstr "Egyedi bejegyzés típusok"
368
 
369
  # @ polylang
370
+ #: admin/view-languages.php:333
371
  msgid "Activate languages and translations for custom post types."
372
  msgstr "Egyedi bejegyzés típusok fordításának bekapcsolása."
373
 
374
  # @ polylang
375
+ #: admin/view-languages.php:340
376
  msgid "Custom taxonomies"
377
  msgstr "Egyedi taxonómiák (kategóriák, címkék)"
378
 
379
  # @ polylang
380
+ #: admin/view-languages.php:353
381
  msgid "Activate languages and translations for custom taxonomies."
382
  msgstr "Egyedi taxonómiák (kategóriák, címkék) fordításának bekapcsolása."
383
 
384
+ #: admin/table-languages.php:54
385
+ #: admin/view-translations-media.php:24
386
+ #: admin/view-translations-media.php:62
387
+ #: admin/view-translations-post.php:10
388
+ #: admin/view-translations-post.php:33
389
+ #: admin/view-translations-term.php:18
390
+ #: admin/view-translations-term.php:80
391
  msgid "Edit"
392
  msgstr "Szerkesztés"
393
 
394
+ #: admin/table-languages.php:60
395
+ #: admin/table-string.php:167
396
  msgid "Delete"
397
  msgstr "Törlés"
398
 
399
+ #: admin/table-languages.php:76
400
  msgid "Code"
401
  msgstr "Nyelvkód"
402
 
403
+ #: admin/table-languages.php:78
404
  msgid "Flag"
405
  msgstr "Zászló"
406
 
407
+ #: admin/table-languages.php:79
408
  msgid "Posts"
409
  msgstr "Bejegyzések"
410
 
411
+ #: admin/table-string.php:109
412
  msgid "Name"
413
  msgstr "Név"
414
 
415
+ #: admin/table-string.php:110
416
  msgid "String"
417
  msgstr "Szöveg"
418
 
419
+ #: admin/view-translations-media.php:8
420
+ #: admin/view-translations-media.php:46
421
+ #: admin/view-translations-term.php:16
422
  msgid "Translation"
423
  msgstr "Fordítás"
424
 
425
+ #: admin/view-translations-media.php:33
426
+ #: admin/view-translations-media.php:70
427
+ #: admin/view-translations-post.php:38
428
+ #: admin/view-translations-term.php:60
429
  msgid "Add new"
430
  msgstr "Új hozzáadása"
431
 
432
+ #: admin/view-translations-post.php:5
433
  msgid "ID of pages in other languages:"
434
  msgstr "Oldal fordításai:"
435
 
436
+ #: admin/view-translations-post.php:5
437
  msgid "ID of posts in other languages:"
438
  msgstr "Bejegyzés fordításai:"
439
 
440
+ #: admin/view-translations-post.php:9
441
  msgid "Page ID"
442
  msgstr "Azonosító"
443
 
444
+ #: admin/view-translations-post.php:9
445
  msgid "Post ID"
446
  msgstr "Azonosító"
447
 
448
+ #: admin/view-translations-term.php:48
449
  msgid "No untranslated term"
450
  msgstr "Nincsenek fordítással nem rendelkező kategóriák/címkék"
451
 
452
+ #: include/widget-languages.php:16
453
  msgid "Language Switcher"
454
  msgstr "Nyelv választó"
455
 
456
+ #: include/widget-languages.php:16
457
  msgid "Displays a language switcher"
458
  msgstr "Nyelv választó elhelyezése"
459
 
460
+ #: include/widget-languages.php:100
461
  msgid "Title:"
462
  msgstr "Cím:"
463
 
467
  msgid "Adds multilingual capability to WordPress"
468
  msgstr "Többnyelvű tartalom, fordítások kezelése."
469
 
470
+ #: polylang.php:157
471
  #, php-format
472
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
473
  msgstr "Jelenleg a WordPress %s verziója van használva. Polylang bővítmény használatához legalább WordPress %s verzió szükséges."
474
 
 
 
 
 
475
  # @ polylang
476
+ #: include/upgrade.php:75
477
  msgid "Polylang has been deactivated because you upgraded from a too old version."
478
  msgstr "Polylang bővítmény ki lett kapcsolva, mert túl régi verzióról lett frissítve."
479
 
480
  # @ polylang
481
+ #: include/upgrade.php:77
482
  #, php-format
483
  msgid "Please upgrade first to %s before ugrading to %s."
484
  msgstr "Először a(z) %s verzióra kell elvégezni a frissítést, majd csak utána lehet a(z) %s verzióra is."
485
 
486
  # @ polylang
487
+ #: admin/table-string.php:108
488
  msgid "Group"
489
  msgstr ""
490
 
491
  # @ polylang
492
+ #: admin/table-string.php:186
493
  msgid "View all groups"
494
  msgstr ""
495
 
496
+ # @ polylang
497
+ #: admin/table-languages.php:59
498
+ msgid "You are about to permanently delete this language. Are you sure?"
499
+ msgstr ""
500
+
501
+ # @ polylang
502
+ #: admin/view-languages.php:147
503
+ msgid "Use this to remove unused strings from database, for example after a plugin has been uninstalled."
504
+ msgstr ""
505
+
506
+ #: admin/view-languages.php:214
507
+ msgid "The language is set from the directory name in pretty permalinks. Example:"
508
+ msgstr ""
509
+
510
+ #: admin/view-languages.php:223
511
+ msgid "The language is set from the subdomain name in pretty permalinks. Example:"
512
+ msgstr ""
513
+
514
+ # @ polylang
515
+ #: admin/view-languages.php:314
516
+ 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."
517
+ msgstr ""
518
+
519
+ #: admin/settings.php:75
520
+ msgid "The language code contains invalid characters"
521
+ msgstr ""
522
+
523
+ # @ polylang
524
+ #: admin/view-languages.php:232
525
+ msgid "The language is set from different domains:"
526
+ msgstr ""
527
+
528
+ #~ msgid ""
529
+ #~ "The language code, for example /en/, is added to all urls when using "
530
+ #~ "pretty permalinks."
531
+ #~ msgstr ""
532
+ #~ "A nyelvkód, pl. /hu/ része a linknek, ha a közvetlen linknek beállítása "
533
+ #~ "nem az alapértelmezett."
534
+
535
+ #~ msgid ""
536
+ #~ "For some reasons, Polylang could not create a table in your database."
537
+ #~ msgstr "Polylang bővítménynek nem sikerült egy adatbázis táblát létrehozni."
538
+
539
  #~ msgid "Displays a language switcher at the end of the menu"
540
  #~ msgstr "A menü végén megjeleníti a nyelv választót"
541
 
languages/polylang-id_ID.mo CHANGED
Binary file
languages/polylang-id_ID.po CHANGED
@@ -3,9 +3,10 @@ msgstr ""
3
  "Project-Id-Version: Polylang v1.1dev10\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
- "PO-Revision-Date: 2013-08-14 07:47+0700\n"
7
  "Last-Translator: ajoull <ajoull@gmail.com>\n"
8
  "Language-Team: ajoull <ajoull@gmail.com>\n"
 
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
@@ -15,568 +16,530 @@ msgstr ""
15
  "_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"
16
  "X-Poedit-Basepath: ../\n"
17
  "X-Textdomain-Support: yes\n"
18
- "Language: Bahasa Indonesia\n"
19
  "X-Generator: Poedit 1.5.7\n"
20
  "X-Poedit-SearchPath-0: .\n"
21
 
22
  # @ polylang
23
- #: include/about.php:3
24
  #, php-format
25
- msgid ""
26
- "Polylang is provided with an extensive %sdocumentation%s (in English only). "
27
- "It includes information on how to set up your multilingual site and use it "
28
- "on a daily basis, a FAQ, as well as a documentation for programmers to adapt "
29
- "their plugins and themes."
30
- msgstr ""
31
- "Polylang disedikan beserta %sdokumentasi%s yang lengkap (tapi dalam Bahasa "
32
- "Inggris). Dokumentasi tersebut meliputi informasi tentang cara mengeset "
33
- "situs multi-bahasa Anda dan menggunakannya sehari-hari, sebuah FAQ, dan juga "
34
- "dokumentasi untuk para programer untuk mengadaptasi plugin dan theme buatan "
35
- "mereka."
36
 
37
  # @ polylang
38
- #: include/about.php:9
39
  #, php-format
40
- msgid ""
41
- "You will also find useful information in the %ssupport forum%s. However "
42
- "don't forget to make a search before posting a new topic."
43
- msgstr ""
44
- "Anda juga akan menemukan informasi bermanfaat di dalam %sforum pendukung "
45
- "(support forum)%s. Walaupun demikian, lakukan terlebih dahulu pencarian "
46
- "mengenai topik Anda inginkan sebelum membuat topik baru di forum tersebut."
47
 
48
  # @ polylang
49
- #: include/about.php:16
50
  #, php-format
51
- msgid ""
52
- "Polylang is free of charge and is released under the same license as "
53
- "WordPress, the %sGPL%s."
54
- msgstr ""
55
- "Polylang disediakan gratis dan dirilis di bawah lisensi yang sama dengan "
56
- "WordPress, yaitu %sGPL%s."
57
 
58
  # @ polylang
59
- #: include/about.php:22
60
  #, php-format
61
  msgid "If you wonder how you can help the project, just %sread this%s."
62
- msgstr ""
63
- "Jika ingin tahu bagaimana caranya Anda bisa berkontribusi dalam proyek ini, "
64
- "silahkan %sbaca ini%s."
65
 
66
  # @ polylang
67
- #: include/about.php:27
68
- msgid ""
69
- "Finally if you like this plugin or if it helps your business, donations to "
70
- "the author are greatly appreciated."
71
- msgstr ""
72
- "Akhir kata, jika Anda menyukai plugin ini ataupun merasa bahwa plugin ini "
73
- "membantu bisnis Anda, donasi kepada pembuatnya sangat dihargai."
74
 
75
  # @ polylang
76
- #: include/admin-base.php:55 include/admin-base.php:190
77
- #: include/admin-filters.php:243 include/admin.php:23 include/admin.php:301
78
- #: include/list-table.php:13 polylang.php:339
 
 
 
79
  msgid "Languages"
80
  msgstr "Bahasa"
81
 
82
  # @ polylang
83
- #: include/admin-base.php:153
84
  msgid "Displays language names"
85
  msgstr "Tampilkan nama-nama bahasa"
86
 
87
  # @ polylang
88
- #: include/admin-base.php:154
89
  msgid "Displays flags"
90
  msgstr "Tampilkan bendera"
91
 
92
  # @ polylang
93
- #: include/admin-base.php:155
94
  msgid "Forces link to front page"
95
  msgstr "Paksa tautan ke halaman depan"
96
 
97
  # @ polylang
98
- #: include/admin-base.php:156
99
  msgid "Hides the current language"
100
  msgstr "Sembunyikan bahasa yang berlaku"
101
 
102
  # @ polylang
103
- #: include/admin-base.php:160
104
  msgid "Displays as dropdown"
105
  msgstr "Tampilkan sebagai dropdown"
106
 
107
  # @ polylang
108
- #: include/admin-base.php:191
109
  msgid "Filters content by language"
110
  msgstr "Pilah konten sesuai bahasa"
111
 
112
  # @ polylang
113
- #: include/admin-base.php:186
114
  msgid "Show all languages"
115
  msgstr "Tampilkan semua bahasa"
116
 
117
  # @ polylang
118
- #: include/admin-filters.php:181 include/admin-filters.php:877
 
119
  msgid "Add new translation"
120
  msgstr "Tambahkan terjemahan baru"
121
 
122
  # @ polylang
123
- #: include/admin-filters.php:209 include/admin-filters.php:267
124
- #: include/admin-filters.php:601 include/admin-filters.php:817
125
- #: include/admin-filters.php:835 include/list-table.php:12
126
- #: include/media-translations.php:5 include/media-translations.php:43
127
- #: include/post-translations.php:8 include/term-translations.php:15
128
- #: polylang.php:340
 
 
 
 
129
  msgid "Language"
130
  msgstr "Bahasa"
131
 
132
  # @ polylang
133
- #: include/admin-filters.php:616 include/admin-filters.php:651
134
- #: include/list-table.php:127 include/media-translations.php:40
135
- #: include/term-translations.php:6 include/term-translations.php:11
 
 
 
136
  msgid "Translations"
137
  msgstr "Terjemahan"
138
 
139
  # @ polylang
140
- #: include/admin-filters.php:819 include/admin-filters.php:838
 
141
  msgid "Sets the language"
142
  msgstr "Setel bahasa"
143
 
144
  # @ polylang
145
- #: include/admin-filters.php:1053
146
  msgid "The widget is displayed for:"
147
  msgstr "Widget tersebut ditampilkan untuk:"
148
 
149
  # @ polylang
150
- #: include/admin-filters.php:1057 polylang.php:341
 
151
  msgid "All languages"
152
  msgstr "Semua bahasa"
153
 
154
  # @ polylang
155
- #: include/admin-filters.php:1080
156
  msgid "Admin language"
157
  msgstr "Bahasa untuk Admin"
158
 
159
  # @ polylang
160
- #: include/admin-filters.php:1085
161
  msgid "Wordpress default"
162
  msgstr "Setelan asli Wordpress"
163
 
164
  # @ polylang
165
- #: include/admin-filters.php:1114 include/admin.php:306
 
166
  msgid "Settings"
167
  msgstr "Pengaturan"
168
 
169
  # @ polylang
170
- #: include/admin-filters.php:1120
171
  msgid "Upgrading language files&#8230;"
172
  msgstr "Meng-upgrade file bahasa&#8230;"
173
 
174
  # @ polylang
175
- #: include/admin.php:22
176
  msgid "About Polylang"
177
  msgstr "Tentang Polylang"
178
 
179
  # @ polylang
180
- #: include/admin.php:27 include/list-table.php:82
181
  msgid "Strings translations"
182
  msgstr "Penerjemahan string"
183
 
184
  # @ polylang
185
- #: include/admin.php:305 include/list-table.php:81
186
  msgid "Strings translation"
187
  msgstr "Terjemahan string"
188
 
189
  # @ polylang
190
- #: include/admin.php:345
191
  msgid "Enter a valid WorPress locale"
192
  msgstr "Masukkan lokala (locale) Wordpress yang valid."
193
 
194
  # @ polylang
195
- #: include/admin.php:346
196
- msgid "The language code must be 2 characters long"
197
- msgstr "Kode bahasa harus sepanjang 2 karakter"
198
-
199
- # @ polylang
200
- #: include/admin.php:328
201
  msgid "The language code must be unique"
202
  msgstr "Kode bahasa harus unik"
203
 
204
  # @ polylang
205
- #: include/admin.php:329
206
  msgid "The language must have a name"
207
  msgstr "Bahasa harus memiliki nama"
208
 
209
  # @ polylang
210
- #: include/admin.php:330
211
- msgid ""
212
- "The language was created, but the WordPress language file was not "
213
- "downloaded. Please install it manually."
214
- msgstr ""
215
- "Bahasa telah dibuat, namun file bahasa untuk Wordpress belum terunduh. "
216
- "Silahkan menginstalnya secara manual."
217
 
218
  # @ polylang
219
- #: include/admin.php:449
220
  msgid "Widget title"
221
  msgstr "Judul widget"
222
 
223
  # @ polylang
224
- #: include/base.php:368
225
  msgid "Taxonomies"
226
  msgstr "Taksonomi"
227
 
228
  # @ polylang
229
- #: include/base.php:369
230
  msgid "Custom fields"
231
  msgstr "Bidang kustom (custom fields)"
232
 
233
  # @ polylang
234
- #: include/base.php:370
235
  msgid "Comment status"
236
  msgstr "Status komentar"
237
 
238
  # @ polylang
239
- #: include/base.php:371
240
  msgid "Ping status"
241
  msgstr "Status ping"
242
 
243
  # @ polylang
244
- #: include/base.php:372
245
  msgid "Sticky posts"
246
  msgstr "Tulisan-tulisan lekat (sticky posts)"
247
 
248
  # @ polylang
249
- #: include/base.php:373
250
  msgid "Published date"
251
  msgstr "Tanggal diterbitkan"
252
 
253
  # @ polylang
254
- #: include/base.php:374
255
  msgid "Post format"
256
  msgstr "Format penulisan"
257
 
258
  # @ polylang
259
- #: include/base.php:375
260
  msgid "Page parent"
261
  msgstr "Induk halaman"
262
 
263
  # @ polylang
264
- #: include/base.php:376
265
  msgid "Page template"
266
  msgstr "Templet halaman"
267
 
268
  # @ polylang
269
- #: include/base.php:377
270
  msgid "Page order"
271
  msgstr "Urutan halaman"
272
 
273
  # @ polylang
274
- #: include/base.php:378
275
  msgid "Featured image"
276
  msgstr "Gambar fitur (featured image)"
277
 
278
  # @ polylang
279
- #: include/languages-form.php:42
280
  msgid "Edit language"
281
  msgstr "Sunting bahasa"
282
 
283
  # @ polylang
284
- #: include/languages-form.php:42 include/languages-form.php:123
 
285
  msgid "Add new language"
286
  msgstr "Tambahkan bahasa baru"
287
 
288
  # @ polylang
289
- #: include/languages-form.php:64
290
  msgid "Choose a language"
291
  msgstr "Pilih sebuah bahasa"
292
 
293
  # @ polylang
294
- #: include/languages-form.php:78
295
  msgid "You can choose a language in the list or directly edit it below."
296
- msgstr ""
297
- "Anda dapat memilih suatu bahasa dari daftar yang ada atau langsung "
298
- "menyuntingnya di bawah ini."
299
 
300
  # @ polylang
301
- #: include/languages-form.php:82 include/list-table.php:34
 
302
  msgid "Full name"
303
  msgstr "Sebutan lengkap"
304
 
305
  # @ polylang
306
- #: include/languages-form.php:84
307
  msgid "The name is how it is displayed on your site (for example: English)."
308
- msgstr ""
309
- "Sebutan tersebut sebagai nama bahasa yang akan ditampilkan pada situs Anda "
310
- "(contohnya: Bahasa Indonesia)"
311
 
312
  # @ polylang
313
- #: include/languages-form.php:88 include/list-table.php:35
 
314
  msgid "Locale"
315
  msgstr "Lokala <i>(locale)</i>"
316
 
317
  # @ polylang
318
- #: include/languages-form.php:93
319
- msgid ""
320
- "Wordpress Locale for the language (for example: en_US). You will need to "
321
- "install the .mo file for this language."
322
- msgstr ""
323
- "Lokala Wordpress untuk bahasa tersebut (contohnya: id_ID). Anda harus "
324
- "menginstal file .mo untuk bahasa ini."
325
 
326
  # @ polylang
327
- #: include/languages-form.php:97
328
  msgid "Language code"
329
  msgstr "Kode bahasa"
330
 
331
  # @ polylang
332
- #: include/languages-form.php:99
333
  msgid "2-letters ISO 639-1 language code (for example: en)"
334
  msgstr "Kode bahasa 2-abjad ISO 639-1 (contoh: id)"
335
 
336
  # @ polylang
337
- #: include/languages-form.php:103
338
  msgid "Text direction"
339
  msgstr "Arah teks"
340
 
341
  # @ polylang
342
- #: include/languages-form.php:107
343
  msgid "left to right"
344
  msgstr "kiri ke kanan"
345
 
346
  # @ polylang
347
- #: include/languages-form.php:112
348
  msgid "right to left"
349
  msgstr "kanan ke kiri"
350
 
351
  # @ polylang
352
- #: include/languages-form.php:114
353
  msgid "Choose the text direction for the language"
354
  msgstr "Pilih arah teks untuk bahasa tersebut"
355
 
356
  # @ polylang
357
- #: include/languages-form.php:118 include/list-table.php:37
 
358
  msgid "Order"
359
  msgstr "Urutan"
360
 
361
  # @ polylang
362
- #: include/languages-form.php:120
363
  msgid "Position of the language in the language switcher"
364
  msgstr "Posisi bahasa dalam Pengalih Bahasa"
365
 
366
  # @ polylang
367
- #: include/nav-menu.php:28 include/nav-menu.php:51 include/nav-menu.php:54
368
- #: include/nav-menu.php:82 include/nav-menu.php:106 polylang.php:302
 
 
 
 
369
  msgid "Language switcher"
370
  msgstr "Pengalih Bahasa"
371
 
372
  # @ polylang
373
- #: include/languages-form.php:148
374
  msgid "Search translations"
375
  msgstr "Cari terjemahan"
376
 
377
  # @ polylang
378
- #: include/languages-form.php:151
379
  msgid "Clean strings translation database"
380
  msgstr "Bersihkan database terjemahan semua string"
381
 
382
  # @ polylang
383
- #: include/languages-form.php:167
384
  msgid "Default language"
385
  msgstr "Bahasa default"
386
 
387
  # @ polylang
388
- #: include/languages-form.php:179
389
- msgid ""
390
- "There are posts, pages, categories or tags without language set. Do you want "
391
- "to set them all to default language ?"
392
- msgstr ""
393
- "Terdapat tulisan, halaman, kategori atau tag tanpa set bahasa. Anda ingin "
394
- "mengeset itu semua ke bahasa setelan awal <i>(dafault language)</i>?"
395
 
396
  # @ polylang
397
- #: include/languages-form.php:187
398
  msgid "Detect browser language"
399
  msgstr "Deteksi bahasa peramban <i>(browser language)</i>"
400
 
401
  # @ polylang
402
- #: include/languages-form.php:193
403
- msgid ""
404
- "When the front page is visited, set the language according to the browser "
405
- "preference"
406
- msgstr ""
407
- "Saat halaman depan dikunjungi, setel bahasa sesuai preferensi peramban <i>"
408
- "(browser preference)</i>"
409
 
410
  # @ polylang
411
- #: include/languages-form.php:200
412
  msgid "URL modifications"
413
  msgstr "Pemodifikasian URL"
414
 
415
  # @ polylang
416
- #: include/languages-form.php:206
417
- msgid ""
418
- "The language is set from content. Posts, pages, categories and tags urls are "
419
- "not modified."
420
- msgstr ""
421
- "Bahasa disetel dari konten. URL untuk tulisan, halaman, kategori dan tag "
422
- "tidak dimodifikasi."
423
 
424
  # @ polylang
425
- #: include/languages-form.php:214
426
- msgid ""
427
- "The language code, for example /en/, is added to all urls when using pretty "
428
- "permalinks."
429
- msgstr ""
430
- "Kode bahasa, contohnya /id/, ditambahkan pada semua URL ketika menggunakan "
431
- "permalink cantik."
432
-
433
- # @ polylang
434
- #: include/languages-form.php:223
435
  msgid "Remove /language/ in pretty permalinks. Example:"
436
  msgstr "Hilangkan /language/ dalam permalink cantik. Contoh:"
437
 
438
  # @ polylang
439
- #: include/languages-form.php:232
440
  msgid "Keep /language/ in pretty permalinks. Example:"
441
  msgstr "Biarkan /language/ dalam permalink cantik. Contoh:"
442
 
443
  # @ polylang
444
- #: include/languages-form.php:241
445
  msgid "Hide URL language information for default language"
446
  msgstr "Sembunyikan informasi bahasa URL untuk bahasa <i>default</i>"
447
 
448
  # @ polylang
449
- #: include/languages-form.php:251
450
  #, php-format
451
- msgid ""
452
- "When using static front page, redirect the language page (example: %s) to "
453
- "the front page in the right language"
454
- msgstr ""
455
- "Ketika menggunakan halaman depan statis, arahkan halaman bahasa (contoh: %s) "
456
- "ke halaman depan dalam bahasa yang benar."
457
 
458
  # @ polylang
459
- #: include/languages-form.php:260
460
  msgid "Media"
461
  msgstr "Media"
462
 
463
  # @ polylang
464
- #: include/languages-form.php:266
465
  msgid "Activate languages and translations for media"
466
  msgstr "Aktifkan bahasa dan terjemahan untuk media"
467
 
468
  # @ polylang
469
- #: include/languages-form.php:273
470
  msgid "Synchronization"
471
  msgstr "Sinkronisasi"
472
 
473
  # @ polylang
474
- #: include/languages-form.php:287
475
  msgid "Custom post types"
476
  msgstr "Jenis tulisan kustom (Custom post types)"
477
 
478
  # @ polylang
479
- #: include/languages-form.php:300
480
  msgid "Activate languages and translations for custom post types."
481
  msgstr "Aktifkan bahasa dan terjemahan untuk jenis tulisan kustom."
482
 
483
  # @ polylang
484
- #: include/languages-form.php:307
485
  msgid "Custom taxonomies"
486
  msgstr "Taksonomi kustom"
487
 
488
  # @ polylang
489
- #: include/languages-form.php:320
490
  msgid "Activate languages and translations for custom taxonomies."
491
  msgstr "Aktifkan bahasa dan terjemahan untuk taksonomi kustom."
492
 
493
  # @ polylang
494
- #: include/list-table.php:26 include/media-translations.php:22
495
- #: include/media-translations.php:60 include/post-translations.php:10
496
- #: include/post-translations.php:33 include/term-translations.php:18
497
- #: include/term-translations.php:80
 
 
 
498
  msgid "Edit"
499
  msgstr "Sunting"
500
 
501
  # @ polylang
502
- #: include/list-table.php:27 include/list-table.php:162
 
503
  msgid "Delete"
504
  msgstr "Hapus"
505
 
506
  # @ polylang
507
- #: include/list-table.php:36
508
  msgid "Code"
509
  msgstr "Kode"
510
 
511
  # @ polylang
512
- #: include/list-table.php:38
513
  msgid "Flag"
514
  msgstr "Bendera"
515
 
516
  # @ polylang
517
- #: include/list-table.php:39
518
  msgid "Posts"
519
  msgstr "Tulisan (posts)"
520
 
521
  # @ polylang
522
- #: include/list-table.php:125
523
  msgid "Name"
524
  msgstr "Nama"
525
 
526
  # @ polylang
527
- #: include/list-table.php:126
528
  msgid "String"
529
  msgstr "String"
530
 
531
  # @ polylang
532
- #: include/media-translations.php:6 include/media-translations.php:44
533
- #: include/term-translations.php:16
 
534
  msgid "Translation"
535
  msgstr "Terjemahan"
536
 
537
  # @ polylang
538
- #: include/media-translations.php:31 include/media-translations.php:68
539
- #: include/post-translations.php:38 include/term-translations.php:60
 
 
540
  msgid "Add new"
541
  msgstr "Tambah yang baru"
542
 
543
  # @ polylang
544
- #: include/post-translations.php:5
545
  msgid "ID of pages in other languages:"
546
  msgstr "ID untuk halaman dalam bahasa lainnya:"
547
 
548
  # @ polylang
549
- #: include/post-translations.php:5
550
  msgid "ID of posts in other languages:"
551
  msgstr "ID untuk tulisan dalam bahasa lainnya:"
552
 
553
  # @ polylang
554
- #: include/post-translations.php:9
555
  msgid "Page ID"
556
  msgstr "ID halaman"
557
 
558
  # @ polylang
559
- #: include/post-translations.php:9
560
  msgid "Post ID"
561
  msgstr "ID halaman"
562
 
563
  # @ polylang
564
- #: include/term-translations.php:48
565
  msgid "No untranslated term"
566
  msgstr "Tidak ada istilah yang belum diterjemahkan"
567
 
568
  # @ polylang
569
- #: include/widget.php:6
570
  msgid "Language Switcher"
571
  msgstr "Pengalih Bahasa"
572
 
573
  # @ polylang
574
- #: include/widget.php:6
575
  msgid "Displays a language switcher"
576
  msgstr "Tampilkan sebuah Pengalih Bahasa"
577
 
578
  # @ polylang
579
- #: include/widget.php:69
580
  msgid "Title:"
581
  msgstr "Judul:"
582
 
@@ -587,39 +550,64 @@ msgid "Adds multilingual capability to WordPress"
587
  msgstr "Tambahkan kapabilitas multi-bahasa ke Wordpress"
588
 
589
  # @ polylang
590
- #: polylang.php:133
591
  #, php-format
592
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
593
- msgstr ""
594
- "Anda menggunakan WordPress %s. Polylang memerlukan setidaknya WordPress %s."
595
-
596
- # @ polylang
597
- #: polylang.php:174
598
- msgid "For some reasons, Polylang could not create a table in your database."
599
- msgstr ""
600
- "Karena suatu hal, Polylang tidak dapat membuat tabel dalam database Anda."
601
 
602
  # @ polylang
603
- #: polylang.php:235
604
- msgid ""
605
- "Polylang has been deactivated because you upgraded from a too old version."
606
- msgstr ""
607
- "Polylang telah dinonaktifkan karena Anda meng-<i>upgrade</i> nya dari versi "
608
- "yang sangat lama."
609
 
610
  # @ polylang
611
- #: polylang.php:237
612
  #, php-format
613
  msgid "Please upgrade first to %s before ugrading to %s."
614
- msgstr ""
615
- "Mohon <i>upgrade</i> dahulu ke %s sebelum meng-<i>upgrade</i> nya ke %s."
616
 
617
  # @ polylang
618
- #: include/list-table.php:124
619
  msgid "Group"
620
  msgstr "Grup"
621
 
622
  # @ polylang
623
- #: include/list-table.php:173
624
  msgid "View all groups"
625
  msgstr "Tampilkan semua grup"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  "Project-Id-Version: Polylang v1.1dev10\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2013-10-17 11:44+0100\n"
7
  "Last-Translator: ajoull <ajoull@gmail.com>\n"
8
  "Language-Team: ajoull <ajoull@gmail.com>\n"
9
+ "Language: Bahasa Indonesia\n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
16
  "_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"
17
  "X-Poedit-Basepath: ../\n"
18
  "X-Textdomain-Support: yes\n"
 
19
  "X-Generator: Poedit 1.5.7\n"
20
  "X-Poedit-SearchPath-0: .\n"
21
 
22
  # @ polylang
23
+ #: admin/view-about.php:3
24
  #, php-format
25
+ 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."
26
+ msgstr "Polylang disedikan beserta %sdokumentasi%s yang lengkap (tapi dalam Bahasa Inggris). Dokumentasi tersebut meliputi informasi tentang cara mengeset situs multi-bahasa Anda dan menggunakannya sehari-hari, sebuah FAQ, dan juga dokumentasi untuk para programer untuk mengadaptasi plugin dan theme buatan mereka."
 
 
 
 
 
 
 
 
 
27
 
28
  # @ polylang
29
+ #: admin/view-about.php:9
30
  #, php-format
31
+ 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."
32
+ msgstr "Anda juga akan menemukan informasi bermanfaat di dalam %sforum pendukung (support forum)%s. Walaupun demikian, lakukan terlebih dahulu pencarian mengenai topik Anda inginkan sebelum membuat topik baru di forum tersebut."
 
 
 
 
 
33
 
34
  # @ polylang
35
+ #: admin/view-about.php:16
36
  #, php-format
37
+ msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
38
+ msgstr "Polylang disediakan gratis dan dirilis di bawah lisensi yang sama dengan WordPress, yaitu %sGPL%s."
 
 
 
 
39
 
40
  # @ polylang
41
+ #: admin/view-about.php:22
42
  #, php-format
43
  msgid "If you wonder how you can help the project, just %sread this%s."
44
+ msgstr "Jika ingin tahu bagaimana caranya Anda bisa berkontribusi dalam proyek ini, silahkan %sbaca ini%s."
 
 
45
 
46
  # @ polylang
47
+ #: admin/view-about.php:27
48
+ msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
49
+ msgstr "Akhir kata, jika Anda menyukai plugin ini ataupun merasa bahwa plugin ini membantu bisnis Anda, donasi kepada pembuatnya sangat dihargai."
 
 
 
 
50
 
51
  # @ polylang
52
+ #: admin/admin-filters-post.php:76
53
+ #: admin/admin.php:83
54
+ #: admin/admin.php:187
55
+ #: admin/settings.php:42
56
+ #: admin/settings.php:57
57
+ #: include/model.php:490
58
  msgid "Languages"
59
  msgstr "Bahasa"
60
 
61
  # @ polylang
62
+ #: include/switcher.php:22
63
  msgid "Displays language names"
64
  msgstr "Tampilkan nama-nama bahasa"
65
 
66
  # @ polylang
67
+ #: include/switcher.php:23
68
  msgid "Displays flags"
69
  msgstr "Tampilkan bendera"
70
 
71
  # @ polylang
72
+ #: include/switcher.php:24
73
  msgid "Forces link to front page"
74
  msgstr "Paksa tautan ke halaman depan"
75
 
76
  # @ polylang
77
+ #: include/switcher.php:25
78
  msgid "Hides the current language"
79
  msgstr "Sembunyikan bahasa yang berlaku"
80
 
81
  # @ polylang
82
+ #: include/switcher.php:29
83
  msgid "Displays as dropdown"
84
  msgstr "Tampilkan sebagai dropdown"
85
 
86
  # @ polylang
87
+ #: admin/admin.php:188
88
  msgid "Filters content by language"
89
  msgstr "Pilah konten sesuai bahasa"
90
 
91
  # @ polylang
92
+ #: admin/admin.php:183
93
  msgid "Show all languages"
94
  msgstr "Tampilkan semua bahasa"
95
 
96
  # @ polylang
97
+ #: admin/admin-filters-columns.php:126
98
+ #: admin/admin-filters-columns.php:215
99
  msgid "Add new translation"
100
  msgstr "Tambahkan terjemahan baru"
101
 
102
  # @ polylang
103
+ #: admin/admin-filters-columns.php:163
104
+ #: admin/admin-filters-media.php:58
105
+ #: admin/admin-filters-post.php:109
106
+ #: admin/admin-filters-term.php:72
107
+ #: admin/admin-filters-term.php:106
108
+ #: admin/view-translations-media.php:7
109
+ #: admin/view-translations-media.php:45
110
+ #: admin/view-translations-post.php:8
111
+ #: admin/view-translations-term.php:15
112
+ #: include/model.php:491
113
  msgid "Language"
114
  msgstr "Bahasa"
115
 
116
  # @ polylang
117
+ #: admin/admin-filters-media.php:73
118
+ #: admin/admin-filters-media.php:112
119
+ #: admin/table-string.php:111
120
+ #: admin/view-translations-media.php:42
121
+ #: admin/view-translations-term.php:6
122
+ #: admin/view-translations-term.php:11
123
  msgid "Translations"
124
  msgstr "Terjemahan"
125
 
126
  # @ polylang
127
+ #: admin/admin-filters-term.php:74
128
+ #: admin/admin-filters-term.php:108
129
  msgid "Sets the language"
130
  msgstr "Setel bahasa"
131
 
132
  # @ polylang
133
+ #: admin/admin-filters.php:60
134
  msgid "The widget is displayed for:"
135
  msgstr "Widget tersebut ditampilkan untuk:"
136
 
137
  # @ polylang
138
+ #: admin/admin-filters.php:63
139
+ #: include/model.php:492
140
  msgid "All languages"
141
  msgstr "Semua bahasa"
142
 
143
  # @ polylang
144
+ #: admin/admin-filters.php:120
145
  msgid "Admin language"
146
  msgstr "Bahasa untuk Admin"
147
 
148
  # @ polylang
149
+ #: admin/admin-filters.php:123
150
  msgid "Wordpress default"
151
  msgstr "Setelan asli Wordpress"
152
 
153
  # @ polylang
154
+ #: admin/admin.php:123
155
+ #: admin/settings.php:62
156
  msgid "Settings"
157
  msgstr "Pengaturan"
158
 
159
  # @ polylang
160
+ #: admin/admin-filters.php:151
161
  msgid "Upgrading language files&#8230;"
162
  msgstr "Meng-upgrade file bahasa&#8230;"
163
 
164
  # @ polylang
165
+ #: admin/settings.php:38
166
  msgid "About Polylang"
167
  msgstr "Tentang Polylang"
168
 
169
  # @ polylang
170
+ #: admin/settings.php:46
171
  msgid "Strings translations"
172
  msgstr "Penerjemahan string"
173
 
174
  # @ polylang
175
+ #: admin/settings.php:61
176
  msgid "Strings translation"
177
  msgstr "Terjemahan string"
178
 
179
  # @ polylang
180
+ #: admin/settings.php:74
181
  msgid "Enter a valid WorPress locale"
182
  msgstr "Masukkan lokala (locale) Wordpress yang valid."
183
 
184
  # @ polylang
185
+ #: admin/settings.php:76
 
 
 
 
 
186
  msgid "The language code must be unique"
187
  msgstr "Kode bahasa harus unik"
188
 
189
  # @ polylang
190
+ #: admin/settings.php:77
191
  msgid "The language must have a name"
192
  msgstr "Bahasa harus memiliki nama"
193
 
194
  # @ polylang
195
+ #: admin/settings.php:78
196
+ msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
197
+ msgstr "Bahasa telah dibuat, namun file bahasa untuk Wordpress belum terunduh. Silahkan menginstalnya secara manual."
 
 
 
 
198
 
199
  # @ polylang
200
+ #: admin/settings.php:305
201
  msgid "Widget title"
202
  msgstr "Judul widget"
203
 
204
  # @ polylang
205
+ #: admin/settings.php:323
206
  msgid "Taxonomies"
207
  msgstr "Taksonomi"
208
 
209
  # @ polylang
210
+ #: admin/settings.php:324
211
  msgid "Custom fields"
212
  msgstr "Bidang kustom (custom fields)"
213
 
214
  # @ polylang
215
+ #: admin/settings.php:325
216
  msgid "Comment status"
217
  msgstr "Status komentar"
218
 
219
  # @ polylang
220
+ #: admin/settings.php:326
221
  msgid "Ping status"
222
  msgstr "Status ping"
223
 
224
  # @ polylang
225
+ #: admin/settings.php:327
226
  msgid "Sticky posts"
227
  msgstr "Tulisan-tulisan lekat (sticky posts)"
228
 
229
  # @ polylang
230
+ #: admin/settings.php:328
231
  msgid "Published date"
232
  msgstr "Tanggal diterbitkan"
233
 
234
  # @ polylang
235
+ #: admin/settings.php:329
236
  msgid "Post format"
237
  msgstr "Format penulisan"
238
 
239
  # @ polylang
240
+ #: admin/settings.php:330
241
  msgid "Page parent"
242
  msgstr "Induk halaman"
243
 
244
  # @ polylang
245
+ #: admin/settings.php:331
246
  msgid "Page template"
247
  msgstr "Templet halaman"
248
 
249
  # @ polylang
250
+ #: admin/settings.php:332
251
  msgid "Page order"
252
  msgstr "Urutan halaman"
253
 
254
  # @ polylang
255
+ #: admin/settings.php:333
256
  msgid "Featured image"
257
  msgstr "Gambar fitur (featured image)"
258
 
259
  # @ polylang
260
+ #: admin/view-languages.php:42
261
  msgid "Edit language"
262
  msgstr "Sunting bahasa"
263
 
264
  # @ polylang
265
+ #: admin/view-languages.php:42
266
+ #: admin/view-languages.php:117
267
  msgid "Add new language"
268
  msgstr "Tambahkan bahasa baru"
269
 
270
  # @ polylang
271
+ #: admin/view-languages.php:58
272
  msgid "Choose a language"
273
  msgstr "Pilih sebuah bahasa"
274
 
275
  # @ polylang
276
+ #: admin/view-languages.php:72
277
  msgid "You can choose a language in the list or directly edit it below."
278
+ msgstr "Anda dapat memilih suatu bahasa dari daftar yang ada atau langsung menyuntingnya di bawah ini."
 
 
279
 
280
  # @ polylang
281
+ #: admin/table-languages.php:74
282
+ #: admin/view-languages.php:76
283
  msgid "Full name"
284
  msgstr "Sebutan lengkap"
285
 
286
  # @ polylang
287
+ #: admin/view-languages.php:78
288
  msgid "The name is how it is displayed on your site (for example: English)."
289
+ msgstr "Sebutan tersebut sebagai nama bahasa yang akan ditampilkan pada situs Anda (contohnya: Bahasa Indonesia)"
 
 
290
 
291
  # @ polylang
292
+ #: admin/table-languages.php:75
293
+ #: admin/view-languages.php:82
294
  msgid "Locale"
295
  msgstr "Lokala <i>(locale)</i>"
296
 
297
  # @ polylang
298
+ #: admin/view-languages.php:87
299
+ msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
300
+ msgstr "Lokala Wordpress untuk bahasa tersebut (contohnya: id_ID). Anda harus menginstal file .mo untuk bahasa ini."
 
 
 
 
301
 
302
  # @ polylang
303
+ #: admin/view-languages.php:91
304
  msgid "Language code"
305
  msgstr "Kode bahasa"
306
 
307
  # @ polylang
308
+ #: admin/view-languages.php:93
309
  msgid "2-letters ISO 639-1 language code (for example: en)"
310
  msgstr "Kode bahasa 2-abjad ISO 639-1 (contoh: id)"
311
 
312
  # @ polylang
313
+ #: admin/view-languages.php:97
314
  msgid "Text direction"
315
  msgstr "Arah teks"
316
 
317
  # @ polylang
318
+ #: admin/view-languages.php:101
319
  msgid "left to right"
320
  msgstr "kiri ke kanan"
321
 
322
  # @ polylang
323
+ #: admin/view-languages.php:106
324
  msgid "right to left"
325
  msgstr "kanan ke kiri"
326
 
327
  # @ polylang
328
+ #: admin/view-languages.php:108
329
  msgid "Choose the text direction for the language"
330
  msgstr "Pilih arah teks untuk bahasa tersebut"
331
 
332
  # @ polylang
333
+ #: admin/table-languages.php:77
334
+ #: admin/view-languages.php:112
335
  msgid "Order"
336
  msgstr "Urutan"
337
 
338
  # @ polylang
339
+ #: admin/view-languages.php:114
340
  msgid "Position of the language in the language switcher"
341
  msgstr "Posisi bahasa dalam Pengalih Bahasa"
342
 
343
  # @ polylang
344
+ #: admin/admin-nav-menu.php:51
345
+ #: admin/admin-nav-menu.php:79
346
+ #: admin/admin-nav-menu.php:82
347
+ #: admin/admin-nav-menu.php:113
348
+ #: admin/admin-nav-menu.php:170
349
+ #: include/upgrade.php:175
350
  msgid "Language switcher"
351
  msgstr "Pengalih Bahasa"
352
 
353
  # @ polylang
354
+ #: admin/view-languages.php:143
355
  msgid "Search translations"
356
  msgstr "Cari terjemahan"
357
 
358
  # @ polylang
359
+ #: admin/view-languages.php:146
360
  msgid "Clean strings translation database"
361
  msgstr "Bersihkan database terjemahan semua string"
362
 
363
  # @ polylang
364
+ #: admin/view-languages.php:164
365
  msgid "Default language"
366
  msgstr "Bahasa default"
367
 
368
  # @ polylang
369
+ #: admin/view-languages.php:179
370
+ msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
371
+ msgstr "Terdapat tulisan, halaman, kategori atau tag tanpa set bahasa. Anda ingin mengeset itu semua ke bahasa setelan awal <i>(dafault language)</i>?"
 
 
 
 
372
 
373
  # @ polylang
374
+ #: admin/view-languages.php:187
375
  msgid "Detect browser language"
376
  msgstr "Deteksi bahasa peramban <i>(browser language)</i>"
377
 
378
  # @ polylang
379
+ #: admin/view-languages.php:193
380
+ msgid "When the front page is visited, set the language according to the browser preference"
381
+ msgstr "Saat halaman depan dikunjungi, setel bahasa sesuai preferensi peramban <i>(browser preference)</i>"
 
 
 
 
382
 
383
  # @ polylang
384
+ #: admin/view-languages.php:200
385
  msgid "URL modifications"
386
  msgstr "Pemodifikasian URL"
387
 
388
  # @ polylang
389
+ #: admin/view-languages.php:206
390
+ msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
391
+ msgstr "Bahasa disetel dari konten. URL untuk tulisan, halaman, kategori dan tag tidak dimodifikasi."
 
 
 
 
392
 
393
  # @ polylang
394
+ #: admin/view-languages.php:253
 
 
 
 
 
 
 
 
 
395
  msgid "Remove /language/ in pretty permalinks. Example:"
396
  msgstr "Hilangkan /language/ dalam permalink cantik. Contoh:"
397
 
398
  # @ polylang
399
+ #: admin/view-languages.php:262
400
  msgid "Keep /language/ in pretty permalinks. Example:"
401
  msgstr "Biarkan /language/ dalam permalink cantik. Contoh:"
402
 
403
  # @ polylang
404
+ #: admin/view-languages.php:271
405
  msgid "Hide URL language information for default language"
406
  msgstr "Sembunyikan informasi bahasa URL untuk bahasa <i>default</i>"
407
 
408
  # @ polylang
409
+ #: admin/view-languages.php:281
410
  #, php-format
411
+ msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
412
+ msgstr "Ketika menggunakan halaman depan statis, arahkan halaman bahasa (contoh: %s) ke halaman depan dalam bahasa yang benar."
 
 
 
 
413
 
414
  # @ polylang
415
+ #: admin/view-languages.php:290
416
  msgid "Media"
417
  msgstr "Media"
418
 
419
  # @ polylang
420
+ #: admin/view-languages.php:296
421
  msgid "Activate languages and translations for media"
422
  msgstr "Aktifkan bahasa dan terjemahan untuk media"
423
 
424
  # @ polylang
425
+ #: admin/view-languages.php:303
426
  msgid "Synchronization"
427
  msgstr "Sinkronisasi"
428
 
429
  # @ polylang
430
+ #: admin/view-languages.php:320
431
  msgid "Custom post types"
432
  msgstr "Jenis tulisan kustom (Custom post types)"
433
 
434
  # @ polylang
435
+ #: admin/view-languages.php:333
436
  msgid "Activate languages and translations for custom post types."
437
  msgstr "Aktifkan bahasa dan terjemahan untuk jenis tulisan kustom."
438
 
439
  # @ polylang
440
+ #: admin/view-languages.php:340
441
  msgid "Custom taxonomies"
442
  msgstr "Taksonomi kustom"
443
 
444
  # @ polylang
445
+ #: admin/view-languages.php:353
446
  msgid "Activate languages and translations for custom taxonomies."
447
  msgstr "Aktifkan bahasa dan terjemahan untuk taksonomi kustom."
448
 
449
  # @ polylang
450
+ #: admin/table-languages.php:54
451
+ #: admin/view-translations-media.php:24
452
+ #: admin/view-translations-media.php:62
453
+ #: admin/view-translations-post.php:10
454
+ #: admin/view-translations-post.php:33
455
+ #: admin/view-translations-term.php:18
456
+ #: admin/view-translations-term.php:80
457
  msgid "Edit"
458
  msgstr "Sunting"
459
 
460
  # @ polylang
461
+ #: admin/table-languages.php:60
462
+ #: admin/table-string.php:167
463
  msgid "Delete"
464
  msgstr "Hapus"
465
 
466
  # @ polylang
467
+ #: admin/table-languages.php:76
468
  msgid "Code"
469
  msgstr "Kode"
470
 
471
  # @ polylang
472
+ #: admin/table-languages.php:78
473
  msgid "Flag"
474
  msgstr "Bendera"
475
 
476
  # @ polylang
477
+ #: admin/table-languages.php:79
478
  msgid "Posts"
479
  msgstr "Tulisan (posts)"
480
 
481
  # @ polylang
482
+ #: admin/table-string.php:109
483
  msgid "Name"
484
  msgstr "Nama"
485
 
486
  # @ polylang
487
+ #: admin/table-string.php:110
488
  msgid "String"
489
  msgstr "String"
490
 
491
  # @ polylang
492
+ #: admin/view-translations-media.php:8
493
+ #: admin/view-translations-media.php:46
494
+ #: admin/view-translations-term.php:16
495
  msgid "Translation"
496
  msgstr "Terjemahan"
497
 
498
  # @ polylang
499
+ #: admin/view-translations-media.php:33
500
+ #: admin/view-translations-media.php:70
501
+ #: admin/view-translations-post.php:38
502
+ #: admin/view-translations-term.php:60
503
  msgid "Add new"
504
  msgstr "Tambah yang baru"
505
 
506
  # @ polylang
507
+ #: admin/view-translations-post.php:5
508
  msgid "ID of pages in other languages:"
509
  msgstr "ID untuk halaman dalam bahasa lainnya:"
510
 
511
  # @ polylang
512
+ #: admin/view-translations-post.php:5
513
  msgid "ID of posts in other languages:"
514
  msgstr "ID untuk tulisan dalam bahasa lainnya:"
515
 
516
  # @ polylang
517
+ #: admin/view-translations-post.php:9
518
  msgid "Page ID"
519
  msgstr "ID halaman"
520
 
521
  # @ polylang
522
+ #: admin/view-translations-post.php:9
523
  msgid "Post ID"
524
  msgstr "ID halaman"
525
 
526
  # @ polylang
527
+ #: admin/view-translations-term.php:48
528
  msgid "No untranslated term"
529
  msgstr "Tidak ada istilah yang belum diterjemahkan"
530
 
531
  # @ polylang
532
+ #: include/widget-languages.php:16
533
  msgid "Language Switcher"
534
  msgstr "Pengalih Bahasa"
535
 
536
  # @ polylang
537
+ #: include/widget-languages.php:16
538
  msgid "Displays a language switcher"
539
  msgstr "Tampilkan sebuah Pengalih Bahasa"
540
 
541
  # @ polylang
542
+ #: include/widget-languages.php:100
543
  msgid "Title:"
544
  msgstr "Judul:"
545
 
550
  msgstr "Tambahkan kapabilitas multi-bahasa ke Wordpress"
551
 
552
  # @ polylang
553
+ #: polylang.php:157
554
  #, php-format
555
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
556
+ msgstr "Anda menggunakan WordPress %s. Polylang memerlukan setidaknya WordPress %s."
 
 
 
 
 
 
 
557
 
558
  # @ polylang
559
+ #: include/upgrade.php:75
560
+ msgid "Polylang has been deactivated because you upgraded from a too old version."
561
+ msgstr "Polylang telah dinonaktifkan karena Anda meng-<i>upgrade</i> nya dari versi yang sangat lama."
 
 
 
562
 
563
  # @ polylang
564
+ #: include/upgrade.php:77
565
  #, php-format
566
  msgid "Please upgrade first to %s before ugrading to %s."
567
+ msgstr "Mohon <i>upgrade</i> dahulu ke %s sebelum meng-<i>upgrade</i> nya ke %s."
 
568
 
569
  # @ polylang
570
+ #: admin/table-string.php:108
571
  msgid "Group"
572
  msgstr "Grup"
573
 
574
  # @ polylang
575
+ #: admin/table-string.php:186
576
  msgid "View all groups"
577
  msgstr "Tampilkan semua grup"
578
+
579
+ # @ polylang
580
+ #: admin/table-languages.php:59
581
+ msgid "You are about to permanently delete this language. Are you sure?"
582
+ msgstr ""
583
+
584
+ # @ polylang
585
+ #: admin/view-languages.php:147
586
+ msgid "Use this to remove unused strings from database, for example after a plugin has been uninstalled."
587
+ msgstr ""
588
+
589
+ # @ polylang
590
+ #: admin/view-languages.php:214
591
+ msgid "The language is set from the directory name in pretty permalinks. Example:"
592
+ msgstr ""
593
+
594
+ # @ polylang
595
+ #: admin/view-languages.php:223
596
+ msgid "The language is set from the subdomain name in pretty permalinks. Example:"
597
+ msgstr ""
598
+
599
+ # @ polylang
600
+ #: admin/view-languages.php:314
601
+ 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."
602
+ msgstr ""
603
+
604
+ # @ polylang
605
+ #: admin/settings.php:75
606
+ msgid "The language code contains invalid characters"
607
+ msgstr ""
608
+
609
+ # @ polylang
610
+ #: admin/view-languages.php:232
611
+ msgid "The language is set from different domains:"
612
+ msgstr ""
613
+
languages/polylang-it_IT.mo CHANGED
Binary file
languages/polylang-it_IT.po CHANGED
@@ -14,11 +14,11 @@ msgstr ""
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.5\n"
18
  "X-Poedit-SearchPath-0: ..\n"
19
  "X-Poedit-SearchPath-1: ../include\n"
20
 
21
- #: include/about.php:3
22
  #, php-format
23
  msgid ""
24
  "Polylang is provided with an extensive %sdocumentation%s (in English only). "
@@ -32,7 +32,7 @@ msgstr ""
32
  "(FAQ), ed anche informazioni per i programmatori che volessero adattare i "
33
  "propri plugin e temi."
34
 
35
- #: include/about.php:9
36
  #, php-format
37
  msgid ""
38
  "You will also find useful information in the %ssupport forum%s. However "
@@ -42,7 +42,7 @@ msgstr ""
42
  "Comunque, prima di inviare una richiesta per un nuovo argomento, è sempre "
43
  "buona regola fare una ricerca."
44
 
45
- #: include/about.php:16
46
  #, php-format
47
  msgid ""
48
  "Polylang is free of charge and is released under the same license as "
@@ -51,14 +51,14 @@ msgstr ""
51
  "Polylang è gratuito ed è stato rilasciato con la stessa licenza di "
52
  "WordPress, la %sGPL%s."
53
 
54
- #: include/about.php:22
55
  #, php-format
56
  msgid "If you wonder how you can help the project, just %sread this%s."
57
  msgstr ""
58
  "Per sapere come poter aiutare questo progetto è sufficiente %sleggere questo"
59
  "%s."
60
 
61
- #: include/about.php:27
62
  msgid ""
63
  "Finally if you like this plugin or if it helps your business, donations to "
64
  "the author are greatly appreciated."
@@ -66,116 +66,110 @@ msgstr ""
66
  "Infine, se il plugin vi è stato utile per il vostro business, considerate la "
67
  "possibilità di fare una donazione a favore dell'autore."
68
 
69
- #: include/admin-base.php:55 include/admin-base.php:190
70
- #: include/admin-filters.php:243 include/admin.php:23 include/admin.php:301
71
- #: include/list-table.php:13 polylang.php:339
72
  msgid "Languages"
73
  msgstr "Lingue"
74
 
75
- #: include/admin-base.php:153
76
  msgid "Displays language names"
77
  msgstr "Visualizza i nomi delle lingue"
78
 
79
- #: include/admin-base.php:154
80
  msgid "Displays flags"
81
  msgstr "Visualizza le bandiere"
82
 
83
- #: include/admin-base.php:155
84
  msgid "Forces link to front page"
85
  msgstr "Forza il collegamento alla prima pagina"
86
 
87
- #: include/admin-base.php:156
88
  msgid "Hides the current language"
89
  msgstr "Nascondi la lingua corrente"
90
 
91
- #: include/admin-base.php:160
92
  msgid "Displays as dropdown"
93
  msgstr "Visualizza come menu a discesa"
94
 
95
- #: include/admin-base.php:191
96
  msgid "Filters content by language"
97
  msgstr "Filtra il contenuto per lingua"
98
 
99
- #: include/admin-base.php:186
100
  msgid "Show all languages"
101
  msgstr "Mostra tutte le lingue"
102
 
103
- #: include/admin-filters.php:181 include/admin-filters.php:877
104
  msgid "Add new translation"
105
  msgstr "Aggiungi nuova traduzione"
106
 
107
- #: include/admin-filters.php:209 include/admin-filters.php:267
108
- #: include/admin-filters.php:601 include/admin-filters.php:817
109
- #: include/admin-filters.php:835 include/list-table.php:12
110
- #: include/media-translations.php:5 include/media-translations.php:43
111
- #: include/post-translations.php:8 include/term-translations.php:15
112
- #: polylang.php:340
113
  msgid "Language"
114
  msgstr "Lingua"
115
 
116
- #: include/admin-filters.php:616 include/admin-filters.php:651
117
- #: include/list-table.php:127 include/media-translations.php:40
118
- #: include/term-translations.php:6 include/term-translations.php:11
119
  msgid "Translations"
120
  msgstr "Traduzioni"
121
 
122
- #: include/admin-filters.php:819 include/admin-filters.php:838
123
  msgid "Sets the language"
124
  msgstr "Imposta la lingua"
125
 
126
- #: include/admin-filters.php:1053
127
  msgid "The widget is displayed for:"
128
  msgstr "Il widget viene visualizzato per:"
129
 
130
- #: include/admin-filters.php:1057 polylang.php:341
131
  msgid "All languages"
132
  msgstr "Tutte le lingue"
133
 
134
- #: include/admin-filters.php:1080
135
  msgid "Admin language"
136
  msgstr "Lingua degli amministratori"
137
 
138
- #: include/admin-filters.php:1085
139
  msgid "Wordpress default"
140
  msgstr "Impostazione predefinita di Wordpress"
141
 
142
- #: include/admin-filters.php:1114 include/admin.php:306
143
  msgid "Settings"
144
  msgstr "Impostazioni"
145
 
146
- #: include/admin-filters.php:1120
147
  msgid "Upgrading language files&#8230;"
148
  msgstr "Aggiornamento dei file di lingua&#8230;"
149
 
150
- #: include/admin.php:22
151
  msgid "About Polylang"
152
  msgstr "Informazioni su Polylang"
153
 
154
- #: include/admin.php:27 include/list-table.php:82
155
  msgid "Strings translations"
156
  msgstr "Traduzioni delle stringhe"
157
 
158
- #: include/admin.php:305 include/list-table.php:81
159
  msgid "Strings translation"
160
  msgstr "Traduzione delle stringhe"
161
 
162
- #: include/admin.php:345
163
- msgid "Enter a valid WorPress locale"
164
  msgstr "Inserire impostazioni locali valide per WordPress"
165
 
166
- #: include/admin.php:346
167
- msgid "The language code must be 2 characters long"
168
- msgstr "Il codice della lingua deve essere lungo 2 caratteri"
169
-
170
- #: include/admin.php:328
171
  msgid "The language code must be unique"
172
  msgstr "Il codice della lingua deve essere unico"
173
 
174
- #: include/admin.php:329
175
  msgid "The language must have a name"
176
  msgstr "La lingua deve avere un nome"
177
 
178
- #: include/admin.php:330
179
  msgid ""
180
  "The language was created, but the WordPress language file was not "
181
  "downloaded. Please install it manually."
@@ -183,94 +177,94 @@ msgstr ""
183
  "La lingua è stata creata, ma il file della lingua di WordPress non è stato "
184
  "scaricato. Installarlo manualmente."
185
 
186
- #: include/admin.php:449
187
  msgid "Widget title"
188
  msgstr "Titolo del widget"
189
 
190
  # @ polylang
191
- #: include/base.php:368
192
  msgid "Taxonomies"
193
  msgstr "Tassonomie"
194
 
195
  # @ polylang
196
- #: include/base.php:369
197
  msgid "Custom fields"
198
  msgstr "Campi personalizzati"
199
 
200
  # @ polylang
201
- #: include/base.php:370
202
  msgid "Comment status"
203
  msgstr "Stato del commento"
204
 
205
  # @ polylang
206
- #: include/base.php:371
207
  msgid "Ping status"
208
  msgstr "Stato di ping"
209
 
210
  # @ polylang
211
- #: include/base.php:372
212
  msgid "Sticky posts"
213
  msgstr "Articoli evidenziati"
214
 
215
  # @ polylang
216
- #: include/base.php:373
217
  msgid "Published date"
218
  msgstr "Data di pubblicazione"
219
 
220
  # @ polylang
221
- #: include/base.php:374
222
  msgid "Post format"
223
  msgstr "Formato articolo"
224
 
225
- #: include/base.php:375
226
  msgid "Page parent"
227
  msgstr "Pagina padre"
228
 
229
  # @ polylang
230
- #: include/base.php:376
231
  msgid "Page template"
232
  msgstr "Modello pagina"
233
 
234
- #: include/base.php:377
235
  msgid "Page order"
236
  msgstr "Ordine pagine"
237
 
238
  # @ polylang
239
- #: include/base.php:378
240
  msgid "Featured image"
241
  msgstr "Immagine evidenziata"
242
 
243
- #: include/languages-form.php:42
244
  msgid "Edit language"
245
  msgstr "Modifica lingua"
246
 
247
- #: include/languages-form.php:42 include/languages-form.php:123
248
  msgid "Add new language"
249
  msgstr "Aggiungi nuova lingua"
250
 
251
- #: include/languages-form.php:64
252
  msgid "Choose a language"
253
  msgstr "Scegli una lingua"
254
 
255
- #: include/languages-form.php:78
256
  msgid "You can choose a language in the list or directly edit it below."
257
  msgstr ""
258
  "Scegliere una lingua dall'elenco o inserirla direttamente nei campi a "
259
  "seguire."
260
 
261
- #: include/languages-form.php:82 include/list-table.php:34
262
  msgid "Full name"
263
  msgstr "Nome completo"
264
 
265
- #: include/languages-form.php:84
266
  msgid "The name is how it is displayed on your site (for example: English)."
267
  msgstr "Il nome come appare sul sito."
268
 
269
- #: include/languages-form.php:88 include/list-table.php:35
270
  msgid "Locale"
271
  msgstr "Impostazioni locali"
272
 
273
- #: include/languages-form.php:93
274
  msgid ""
275
  "Wordpress Locale for the language (for example: en_US). You will need to "
276
  "install the .mo file for this language."
@@ -278,56 +272,57 @@ msgstr ""
278
  "Impostazioni locali di Wordpress per la lingua (per esempio: en_US). è "
279
  "necessario installare il file .mo per questa lingua."
280
 
281
- #: include/languages-form.php:97
282
  msgid "Language code"
283
  msgstr "Codice della lingua"
284
 
285
- #: include/languages-form.php:99
286
  msgid "2-letters ISO 639-1 language code (for example: en)"
287
  msgstr "Codice della lingua a 2 lettere ISO 639-1 (per esempio: en)"
288
 
289
- #: include/languages-form.php:103
290
  msgid "Text direction"
291
  msgstr "Direzione del testo"
292
 
293
- #: include/languages-form.php:107
294
  msgid "left to right"
295
  msgstr "Da sinistra a destra"
296
 
297
- #: include/languages-form.php:112
298
  msgid "right to left"
299
  msgstr "Da destra a sinistra"
300
 
301
- #: include/languages-form.php:114
302
  msgid "Choose the text direction for the language"
303
  msgstr "Scegliere la direzione del testo per la lingua"
304
 
305
- #: include/languages-form.php:118 include/list-table.php:37
306
  msgid "Order"
307
  msgstr "Ordinamento"
308
 
309
- #: include/languages-form.php:120
310
  msgid "Position of the language in the language switcher"
311
  msgstr "Posizione della lingua nel selettore di lingua"
312
 
313
- #: include/nav-menu.php:28 include/nav-menu.php:51 include/nav-menu.php:54
314
- #: include/nav-menu.php:82 include/nav-menu.php:106 polylang.php:302
 
315
  msgid "Language switcher"
316
  msgstr "Selettore di lingua"
317
 
318
- #: include/languages-form.php:148
319
  msgid "Search translations"
320
  msgstr "Ricerca in traduzioni"
321
 
322
- #: include/languages-form.php:151
323
  msgid "Clean strings translation database"
324
  msgstr "Cancellare le stringhe di traduzione dal database"
325
 
326
- #: include/languages-form.php:167
327
  msgid "Default language"
328
  msgstr "Lingua predefinita"
329
 
330
- #: include/languages-form.php:179
331
  msgid ""
332
  "There are posts, pages, categories or tags without language set. Do you want "
333
  "to set them all to default language ?"
@@ -335,11 +330,11 @@ msgstr ""
335
  "Ci sono articoli, pagine, categorie o tag per i quali la lingua non è stata "
336
  "impostata. Si desidera impostarla per tutti come la lingua predefinita?"
337
 
338
- #: include/languages-form.php:187
339
  msgid "Detect browser language"
340
  msgstr "Individua la lingua del browser"
341
 
342
- #: include/languages-form.php:193
343
  msgid ""
344
  "When the front page is visited, set the language according to the browser "
345
  "preference"
@@ -347,11 +342,11 @@ msgstr ""
347
  "Imposta la lingua secondo le preferenze del browser quando viene visitata la "
348
  "pagina iniziale"
349
 
350
- #: include/languages-form.php:200
351
  msgid "URL modifications"
352
  msgstr "modifiche dell'URL"
353
 
354
- #: include/languages-form.php:206
355
  msgid ""
356
  "The language is set from content. Posts, pages, categories and tags urls are "
357
  "not modified."
@@ -359,29 +354,21 @@ msgstr ""
359
  "La lingua è impostata dal contenuto. Gli URL di articoli, pagine, categorie "
360
  "and tag non sono modificati."
361
 
362
- #: include/languages-form.php:214
363
- msgid ""
364
- "The language code, for example /en/, is added to all urls when using pretty "
365
- "permalinks."
366
- msgstr ""
367
- "Il codice della lingua, per esempio /en/, viene aggiunto a tutti gli URL "
368
- "quando si usano i pretty permalinks."
369
-
370
- #: include/languages-form.php:223
371
  msgid "Remove /language/ in pretty permalinks. Example:"
372
  msgstr "Rimuovi /language/ dai pretty permalinks. Esempio:"
373
 
374
- #: include/languages-form.php:232
375
  msgid "Keep /language/ in pretty permalinks. Example:"
376
  msgstr "Mantieni /language/ nei pretty permalinks. Esempio:"
377
 
378
- #: include/languages-form.php:241
379
  msgid "Hide URL language information for default language"
380
  msgstr ""
381
  "Nascondi le informazioni relative alla lingua dall'URL per la lingua "
382
  "predefinita"
383
 
384
- #: include/languages-form.php:251
385
  #, php-format
386
  msgid ""
387
  "When using static front page, redirect the language page (example: %s) to "
@@ -391,109 +378,109 @@ msgstr ""
391
  "lingua (esempio: %s) alla pagina iniziale nella lingua giusta"
392
 
393
  # @ polylang
394
- #: include/languages-form.php:260
395
  msgid "Media"
396
  msgstr "Media"
397
 
398
  # @ polylang
399
- #: include/languages-form.php:266
400
  msgid "Activate languages and translations for media"
401
  msgstr "Attiva lingue e traduzioni per i media"
402
 
403
- #: include/languages-form.php:273
404
  msgid "Synchronization"
405
  msgstr "Sincronizzazione"
406
 
407
  # @ polylang
408
- #: include/languages-form.php:287
409
  msgid "Custom post types"
410
  msgstr "Tipi di articoli personalizzati"
411
 
412
  # @ polylang
413
- #: include/languages-form.php:300
414
  msgid "Activate languages and translations for custom post types."
415
  msgstr "Attiva lingue e traduzioni per i tipi di articoli personalizzati."
416
 
417
  # @ polylang
418
- #: include/languages-form.php:307
419
  msgid "Custom taxonomies"
420
  msgstr "Tassonomie personalizzate"
421
 
422
  # @ polylang
423
- #: include/languages-form.php:320
424
  msgid "Activate languages and translations for custom taxonomies."
425
  msgstr "Attiva lingue e traduzioni per tassonomie personalizzate"
426
 
427
- #: include/list-table.php:26 include/media-translations.php:22
428
- #: include/media-translations.php:60 include/post-translations.php:10
429
- #: include/post-translations.php:33 include/term-translations.php:18
430
- #: include/term-translations.php:80
431
  msgid "Edit"
432
  msgstr "Modifica"
433
 
434
- #: include/list-table.php:27 include/list-table.php:162
435
  msgid "Delete"
436
  msgstr "Cancella"
437
 
438
- #: include/list-table.php:36
439
  msgid "Code"
440
  msgstr "Codice"
441
 
442
- #: include/list-table.php:38
443
  msgid "Flag"
444
  msgstr "Bandiera"
445
 
446
- #: include/list-table.php:39
447
  msgid "Posts"
448
  msgstr "Articoli"
449
 
450
- #: include/list-table.php:125
451
  msgid "Name"
452
  msgstr "Nome"
453
 
454
- #: include/list-table.php:126
455
  msgid "String"
456
  msgstr "Stringa"
457
 
458
- #: include/media-translations.php:6 include/media-translations.php:44
459
- #: include/term-translations.php:16
460
  msgid "Translation"
461
  msgstr "Traduzione"
462
 
463
- #: include/media-translations.php:31 include/media-translations.php:68
464
- #: include/post-translations.php:38 include/term-translations.php:60
465
  msgid "Add new"
466
  msgstr "Aggiungi nuovo"
467
 
468
- #: include/post-translations.php:5
469
  msgid "ID of pages in other languages:"
470
  msgstr "ID delle pagine in altre lingue:"
471
 
472
- #: include/post-translations.php:5
473
  msgid "ID of posts in other languages:"
474
  msgstr "ID degli articoli in altre lingue:"
475
 
476
- #: include/post-translations.php:9
477
  msgid "Page ID"
478
  msgstr "ID pagina"
479
 
480
- #: include/post-translations.php:9
481
  msgid "Post ID"
482
  msgstr "ID articolo"
483
 
484
- #: include/term-translations.php:48
485
  msgid "No untranslated term"
486
  msgstr "Tutti i termini sono tradotti"
487
 
488
- #: include/widget.php:6
489
  msgid "Language Switcher"
490
  msgstr "Selettore di lingua"
491
 
492
- #: include/widget.php:6
493
  msgid "Displays a language switcher"
494
  msgstr "Visualizza un selettore di lingua"
495
 
496
- #: include/widget.php:69
497
  msgid "Title:"
498
  msgstr "Titolo:"
499
 
@@ -503,20 +490,14 @@ msgstr "Titolo:"
503
  msgid "Adds multilingual capability to WordPress"
504
  msgstr "Aggiungi funzionalità multilingua a WordPress"
505
 
506
- #: polylang.php:133
507
  #, php-format
508
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
509
  msgstr ""
510
  "Si sta utilizzando WordPress %s. Polylang richiede almeno WordPress %s."
511
 
512
- #: polylang.php:174
513
- msgid "For some reasons, Polylang could not create a table in your database."
514
- msgstr ""
515
- "Per qualche ragione, Polylang non è stato in grado di creare una tabella nel "
516
- "database."
517
-
518
  # @ polylang
519
- #: polylang.php:235
520
  msgid ""
521
  "Polylang has been deactivated because you upgraded from a too old version."
522
  msgstr ""
@@ -524,21 +505,82 @@ msgstr ""
524
  "versione troppo vecchia."
525
 
526
  # @ polylang
527
- #: polylang.php:237
528
  #, php-format
529
  msgid "Please upgrade first to %s before ugrading to %s."
530
  msgstr "È necessario aggiornare alla %s prima di aggiornare alla %s."
531
 
532
  # @ polylang
533
- #: include/list-table.php:124
534
  msgid "Group"
535
  msgstr "Gruppo"
536
 
537
  # @ polylang
538
- #: include/list-table.php:173
539
  msgid "View all groups"
540
  msgstr "Visualizza tutti i gruppi"
541
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
542
  #~ msgid "Displays a language switcher at the end of the menu"
543
  #~ msgstr "Visualizza un selettore di lingua alla fine del menu"
544
 
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.7\n"
18
  "X-Poedit-SearchPath-0: ..\n"
19
  "X-Poedit-SearchPath-1: ../include\n"
20
 
21
+ #: admin/view-about.php:3
22
  #, php-format
23
  msgid ""
24
  "Polylang is provided with an extensive %sdocumentation%s (in English only). "
32
  "(FAQ), ed anche informazioni per i programmatori che volessero adattare i "
33
  "propri plugin e temi."
34
 
35
+ #: admin/view-about.php:9
36
  #, php-format
37
  msgid ""
38
  "You will also find useful information in the %ssupport forum%s. However "
42
  "Comunque, prima di inviare una richiesta per un nuovo argomento, è sempre "
43
  "buona regola fare una ricerca."
44
 
45
+ #: admin/view-about.php:16
46
  #, php-format
47
  msgid ""
48
  "Polylang is free of charge and is released under the same license as "
51
  "Polylang è gratuito ed è stato rilasciato con la stessa licenza di "
52
  "WordPress, la %sGPL%s."
53
 
54
+ #: admin/view-about.php:22
55
  #, php-format
56
  msgid "If you wonder how you can help the project, just %sread this%s."
57
  msgstr ""
58
  "Per sapere come poter aiutare questo progetto è sufficiente %sleggere questo"
59
  "%s."
60
 
61
+ #: admin/view-about.php:27
62
  msgid ""
63
  "Finally if you like this plugin or if it helps your business, donations to "
64
  "the author are greatly appreciated."
66
  "Infine, se il plugin vi è stato utile per il vostro business, considerate la "
67
  "possibilità di fare una donazione a favore dell'autore."
68
 
69
+ #: admin/admin-filters-post.php:76 admin/admin.php:83 admin/admin.php:187
70
+ #: admin/settings.php:42 admin/settings.php:57 include/model.php:490
 
71
  msgid "Languages"
72
  msgstr "Lingue"
73
 
74
+ #: include/switcher.php:22
75
  msgid "Displays language names"
76
  msgstr "Visualizza i nomi delle lingue"
77
 
78
+ #: include/switcher.php:23
79
  msgid "Displays flags"
80
  msgstr "Visualizza le bandiere"
81
 
82
+ #: include/switcher.php:24
83
  msgid "Forces link to front page"
84
  msgstr "Forza il collegamento alla prima pagina"
85
 
86
+ #: include/switcher.php:25
87
  msgid "Hides the current language"
88
  msgstr "Nascondi la lingua corrente"
89
 
90
+ #: include/switcher.php:29
91
  msgid "Displays as dropdown"
92
  msgstr "Visualizza come menu a discesa"
93
 
94
+ #: admin/admin.php:188
95
  msgid "Filters content by language"
96
  msgstr "Filtra il contenuto per lingua"
97
 
98
+ #: admin/admin.php:183
99
  msgid "Show all languages"
100
  msgstr "Mostra tutte le lingue"
101
 
102
+ #: admin/admin-filters-columns.php:126 admin/admin-filters-columns.php:215
103
  msgid "Add new translation"
104
  msgstr "Aggiungi nuova traduzione"
105
 
106
+ #: admin/admin-filters-columns.php:163 admin/admin-filters-media.php:58
107
+ #: admin/admin-filters-post.php:109 admin/admin-filters-term.php:72
108
+ #: admin/admin-filters-term.php:106 admin/view-translations-media.php:7
109
+ #: admin/view-translations-media.php:45 admin/view-translations-post.php:8
110
+ #: admin/view-translations-term.php:15 include/model.php:491
 
111
  msgid "Language"
112
  msgstr "Lingua"
113
 
114
+ #: admin/admin-filters-media.php:73 admin/admin-filters-media.php:112
115
+ #: admin/table-string.php:111 admin/view-translations-media.php:42
116
+ #: admin/view-translations-term.php:6 admin/view-translations-term.php:11
117
  msgid "Translations"
118
  msgstr "Traduzioni"
119
 
120
+ #: admin/admin-filters-term.php:74 admin/admin-filters-term.php:108
121
  msgid "Sets the language"
122
  msgstr "Imposta la lingua"
123
 
124
+ #: admin/admin-filters.php:60
125
  msgid "The widget is displayed for:"
126
  msgstr "Il widget viene visualizzato per:"
127
 
128
+ #: admin/admin-filters.php:63 include/model.php:492
129
  msgid "All languages"
130
  msgstr "Tutte le lingue"
131
 
132
+ #: admin/admin-filters.php:120
133
  msgid "Admin language"
134
  msgstr "Lingua degli amministratori"
135
 
136
+ #: admin/admin-filters.php:123
137
  msgid "Wordpress default"
138
  msgstr "Impostazione predefinita di Wordpress"
139
 
140
+ #: admin/admin.php:123 admin/settings.php:62
141
  msgid "Settings"
142
  msgstr "Impostazioni"
143
 
144
+ #: admin/admin-filters.php:151
145
  msgid "Upgrading language files&#8230;"
146
  msgstr "Aggiornamento dei file di lingua&#8230;"
147
 
148
+ #: admin/settings.php:38
149
  msgid "About Polylang"
150
  msgstr "Informazioni su Polylang"
151
 
152
+ #: admin/settings.php:46
153
  msgid "Strings translations"
154
  msgstr "Traduzioni delle stringhe"
155
 
156
+ #: admin/settings.php:61
157
  msgid "Strings translation"
158
  msgstr "Traduzione delle stringhe"
159
 
160
+ #: admin/settings.php:74
161
+ msgid "Enter a valid WordPress locale"
162
  msgstr "Inserire impostazioni locali valide per WordPress"
163
 
164
+ #: admin/settings.php:76
 
 
 
 
165
  msgid "The language code must be unique"
166
  msgstr "Il codice della lingua deve essere unico"
167
 
168
+ #: admin/settings.php:77
169
  msgid "The language must have a name"
170
  msgstr "La lingua deve avere un nome"
171
 
172
+ #: admin/settings.php:78
173
  msgid ""
174
  "The language was created, but the WordPress language file was not "
175
  "downloaded. Please install it manually."
177
  "La lingua è stata creata, ma il file della lingua di WordPress non è stato "
178
  "scaricato. Installarlo manualmente."
179
 
180
+ #: admin/settings.php:305
181
  msgid "Widget title"
182
  msgstr "Titolo del widget"
183
 
184
  # @ polylang
185
+ #: admin/settings.php:323
186
  msgid "Taxonomies"
187
  msgstr "Tassonomie"
188
 
189
  # @ polylang
190
+ #: admin/settings.php:324
191
  msgid "Custom fields"
192
  msgstr "Campi personalizzati"
193
 
194
  # @ polylang
195
+ #: admin/settings.php:325
196
  msgid "Comment status"
197
  msgstr "Stato del commento"
198
 
199
  # @ polylang
200
+ #: admin/settings.php:326
201
  msgid "Ping status"
202
  msgstr "Stato di ping"
203
 
204
  # @ polylang
205
+ #: admin/settings.php:327
206
  msgid "Sticky posts"
207
  msgstr "Articoli evidenziati"
208
 
209
  # @ polylang
210
+ #: admin/settings.php:328
211
  msgid "Published date"
212
  msgstr "Data di pubblicazione"
213
 
214
  # @ polylang
215
+ #: admin/settings.php:329
216
  msgid "Post format"
217
  msgstr "Formato articolo"
218
 
219
+ #: admin/settings.php:330
220
  msgid "Page parent"
221
  msgstr "Pagina padre"
222
 
223
  # @ polylang
224
+ #: admin/settings.php:331
225
  msgid "Page template"
226
  msgstr "Modello pagina"
227
 
228
+ #: admin/settings.php:332
229
  msgid "Page order"
230
  msgstr "Ordine pagine"
231
 
232
  # @ polylang
233
+ #: admin/settings.php:333
234
  msgid "Featured image"
235
  msgstr "Immagine evidenziata"
236
 
237
+ #: admin/view-languages.php:42
238
  msgid "Edit language"
239
  msgstr "Modifica lingua"
240
 
241
+ #: admin/view-languages.php:42 admin/view-languages.php:117
242
  msgid "Add new language"
243
  msgstr "Aggiungi nuova lingua"
244
 
245
+ #: admin/view-languages.php:58
246
  msgid "Choose a language"
247
  msgstr "Scegli una lingua"
248
 
249
+ #: admin/view-languages.php:72
250
  msgid "You can choose a language in the list or directly edit it below."
251
  msgstr ""
252
  "Scegliere una lingua dall'elenco o inserirla direttamente nei campi a "
253
  "seguire."
254
 
255
+ #: admin/table-languages.php:74 admin/view-languages.php:76
256
  msgid "Full name"
257
  msgstr "Nome completo"
258
 
259
+ #: admin/view-languages.php:78
260
  msgid "The name is how it is displayed on your site (for example: English)."
261
  msgstr "Il nome come appare sul sito."
262
 
263
+ #: admin/table-languages.php:75 admin/view-languages.php:82
264
  msgid "Locale"
265
  msgstr "Impostazioni locali"
266
 
267
+ #: admin/view-languages.php:87
268
  msgid ""
269
  "Wordpress Locale for the language (for example: en_US). You will need to "
270
  "install the .mo file for this language."
272
  "Impostazioni locali di Wordpress per la lingua (per esempio: en_US). è "
273
  "necessario installare il file .mo per questa lingua."
274
 
275
+ #: admin/view-languages.php:91
276
  msgid "Language code"
277
  msgstr "Codice della lingua"
278
 
279
+ #: admin/view-languages.php:93
280
  msgid "2-letters ISO 639-1 language code (for example: en)"
281
  msgstr "Codice della lingua a 2 lettere ISO 639-1 (per esempio: en)"
282
 
283
+ #: admin/view-languages.php:97
284
  msgid "Text direction"
285
  msgstr "Direzione del testo"
286
 
287
+ #: admin/view-languages.php:101
288
  msgid "left to right"
289
  msgstr "Da sinistra a destra"
290
 
291
+ #: admin/view-languages.php:106
292
  msgid "right to left"
293
  msgstr "Da destra a sinistra"
294
 
295
+ #: admin/view-languages.php:108
296
  msgid "Choose the text direction for the language"
297
  msgstr "Scegliere la direzione del testo per la lingua"
298
 
299
+ #: admin/table-languages.php:77 admin/view-languages.php:112
300
  msgid "Order"
301
  msgstr "Ordinamento"
302
 
303
+ #: admin/view-languages.php:114
304
  msgid "Position of the language in the language switcher"
305
  msgstr "Posizione della lingua nel selettore di lingua"
306
 
307
+ #: admin/admin-nav-menu.php:51 admin/admin-nav-menu.php:79
308
+ #: admin/admin-nav-menu.php:82 admin/admin-nav-menu.php:113
309
+ #: admin/admin-nav-menu.php:170 include/upgrade.php:175
310
  msgid "Language switcher"
311
  msgstr "Selettore di lingua"
312
 
313
+ #: admin/view-languages.php:143
314
  msgid "Search translations"
315
  msgstr "Ricerca in traduzioni"
316
 
317
+ #: admin/view-languages.php:146
318
  msgid "Clean strings translation database"
319
  msgstr "Cancellare le stringhe di traduzione dal database"
320
 
321
+ #: admin/view-languages.php:164
322
  msgid "Default language"
323
  msgstr "Lingua predefinita"
324
 
325
+ #: admin/view-languages.php:179
326
  msgid ""
327
  "There are posts, pages, categories or tags without language set. Do you want "
328
  "to set them all to default language ?"
330
  "Ci sono articoli, pagine, categorie o tag per i quali la lingua non è stata "
331
  "impostata. Si desidera impostarla per tutti come la lingua predefinita?"
332
 
333
+ #: admin/view-languages.php:187
334
  msgid "Detect browser language"
335
  msgstr "Individua la lingua del browser"
336
 
337
+ #: admin/view-languages.php:193
338
  msgid ""
339
  "When the front page is visited, set the language according to the browser "
340
  "preference"
342
  "Imposta la lingua secondo le preferenze del browser quando viene visitata la "
343
  "pagina iniziale"
344
 
345
+ #: admin/view-languages.php:200
346
  msgid "URL modifications"
347
  msgstr "modifiche dell'URL"
348
 
349
+ #: admin/view-languages.php:206
350
  msgid ""
351
  "The language is set from content. Posts, pages, categories and tags urls are "
352
  "not modified."
354
  "La lingua è impostata dal contenuto. Gli URL di articoli, pagine, categorie "
355
  "and tag non sono modificati."
356
 
357
+ #: admin/view-languages.php:253
 
 
 
 
 
 
 
 
358
  msgid "Remove /language/ in pretty permalinks. Example:"
359
  msgstr "Rimuovi /language/ dai pretty permalinks. Esempio:"
360
 
361
+ #: admin/view-languages.php:262
362
  msgid "Keep /language/ in pretty permalinks. Example:"
363
  msgstr "Mantieni /language/ nei pretty permalinks. Esempio:"
364
 
365
+ #: admin/view-languages.php:271
366
  msgid "Hide URL language information for default language"
367
  msgstr ""
368
  "Nascondi le informazioni relative alla lingua dall'URL per la lingua "
369
  "predefinita"
370
 
371
+ #: admin/view-languages.php:281
372
  #, php-format
373
  msgid ""
374
  "When using static front page, redirect the language page (example: %s) to "
378
  "lingua (esempio: %s) alla pagina iniziale nella lingua giusta"
379
 
380
  # @ polylang
381
+ #: admin/view-languages.php:290
382
  msgid "Media"
383
  msgstr "Media"
384
 
385
  # @ polylang
386
+ #: admin/view-languages.php:296
387
  msgid "Activate languages and translations for media"
388
  msgstr "Attiva lingue e traduzioni per i media"
389
 
390
+ #: admin/view-languages.php:303
391
  msgid "Synchronization"
392
  msgstr "Sincronizzazione"
393
 
394
  # @ polylang
395
+ #: admin/view-languages.php:320
396
  msgid "Custom post types"
397
  msgstr "Tipi di articoli personalizzati"
398
 
399
  # @ polylang
400
+ #: admin/view-languages.php:333
401
  msgid "Activate languages and translations for custom post types."
402
  msgstr "Attiva lingue e traduzioni per i tipi di articoli personalizzati."
403
 
404
  # @ polylang
405
+ #: admin/view-languages.php:340
406
  msgid "Custom taxonomies"
407
  msgstr "Tassonomie personalizzate"
408
 
409
  # @ polylang
410
+ #: admin/view-languages.php:353
411
  msgid "Activate languages and translations for custom taxonomies."
412
  msgstr "Attiva lingue e traduzioni per tassonomie personalizzate"
413
 
414
+ #: admin/table-languages.php:54 admin/view-translations-media.php:24
415
+ #: admin/view-translations-media.php:62 admin/view-translations-post.php:10
416
+ #: admin/view-translations-post.php:33 admin/view-translations-term.php:18
417
+ #: admin/view-translations-term.php:80
418
  msgid "Edit"
419
  msgstr "Modifica"
420
 
421
+ #: admin/table-languages.php:60 admin/table-string.php:167
422
  msgid "Delete"
423
  msgstr "Cancella"
424
 
425
+ #: admin/table-languages.php:76
426
  msgid "Code"
427
  msgstr "Codice"
428
 
429
+ #: admin/table-languages.php:78
430
  msgid "Flag"
431
  msgstr "Bandiera"
432
 
433
+ #: admin/table-languages.php:79
434
  msgid "Posts"
435
  msgstr "Articoli"
436
 
437
+ #: admin/table-string.php:109
438
  msgid "Name"
439
  msgstr "Nome"
440
 
441
+ #: admin/table-string.php:110
442
  msgid "String"
443
  msgstr "Stringa"
444
 
445
+ #: admin/view-translations-media.php:8 admin/view-translations-media.php:46
446
+ #: admin/view-translations-term.php:16
447
  msgid "Translation"
448
  msgstr "Traduzione"
449
 
450
+ #: admin/view-translations-media.php:33 admin/view-translations-media.php:70
451
+ #: admin/view-translations-post.php:38 admin/view-translations-term.php:60
452
  msgid "Add new"
453
  msgstr "Aggiungi nuovo"
454
 
455
+ #: admin/view-translations-post.php:5
456
  msgid "ID of pages in other languages:"
457
  msgstr "ID delle pagine in altre lingue:"
458
 
459
+ #: admin/view-translations-post.php:5
460
  msgid "ID of posts in other languages:"
461
  msgstr "ID degli articoli in altre lingue:"
462
 
463
+ #: admin/view-translations-post.php:9
464
  msgid "Page ID"
465
  msgstr "ID pagina"
466
 
467
+ #: admin/view-translations-post.php:9
468
  msgid "Post ID"
469
  msgstr "ID articolo"
470
 
471
+ #: admin/view-translations-term.php:48
472
  msgid "No untranslated term"
473
  msgstr "Tutti i termini sono tradotti"
474
 
475
+ #: include/widget-languages.php:16
476
  msgid "Language Switcher"
477
  msgstr "Selettore di lingua"
478
 
479
+ #: include/widget-languages.php:16
480
  msgid "Displays a language switcher"
481
  msgstr "Visualizza un selettore di lingua"
482
 
483
+ #: include/widget-languages.php:100
484
  msgid "Title:"
485
  msgstr "Titolo:"
486
 
490
  msgid "Adds multilingual capability to WordPress"
491
  msgstr "Aggiungi funzionalità multilingua a WordPress"
492
 
493
+ #: polylang.php:157
494
  #, php-format
495
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
496
  msgstr ""
497
  "Si sta utilizzando WordPress %s. Polylang richiede almeno WordPress %s."
498
 
 
 
 
 
 
 
499
  # @ polylang
500
+ #: include/upgrade.php:75
501
  msgid ""
502
  "Polylang has been deactivated because you upgraded from a too old version."
503
  msgstr ""
505
  "versione troppo vecchia."
506
 
507
  # @ polylang
508
+ #: include/upgrade.php:77
509
  #, php-format
510
  msgid "Please upgrade first to %s before ugrading to %s."
511
  msgstr "È necessario aggiornare alla %s prima di aggiornare alla %s."
512
 
513
  # @ polylang
514
+ #: admin/table-string.php:108
515
  msgid "Group"
516
  msgstr "Gruppo"
517
 
518
  # @ polylang
519
+ #: admin/table-string.php:186
520
  msgid "View all groups"
521
  msgstr "Visualizza tutti i gruppi"
522
 
523
+ # @ polylang
524
+ #: admin/table-languages.php:59
525
+ msgid "You are about to permanently delete this language. Are you sure?"
526
+ msgstr "Si sta per cancellare permanentemente questa lingua. Siete sicuri?"
527
+
528
+ # @ polylang
529
+ #: admin/view-languages.php:147
530
+ msgid ""
531
+ "Use this to remove unused strings from database, for example after a plugin "
532
+ "has been uninstalled."
533
+ msgstr ""
534
+ "Usare questo per rimuovere stringhe inutilizzate dal database, per esempio "
535
+ "dopo la disinstallazione di un plugin."
536
+
537
+ #: admin/view-languages.php:214
538
+ msgid ""
539
+ "The language is set from the directory name in pretty permalinks. Example:"
540
+ msgstr ""
541
+ "La lingua è impostata dal nome della directory nei pretty permalinks. "
542
+ "Esempio:"
543
+
544
+ #: admin/view-languages.php:223
545
+ msgid ""
546
+ "The language is set from the subdomain name in pretty permalinks. Example:"
547
+ msgstr ""
548
+ "La lingua è impostata dal nome del sottodominio nei pretty permalinks. "
549
+ "Esempio"
550
+
551
+ # @ polylang
552
+ #: admin/view-languages.php:314
553
+ msgid ""
554
+ "The synchronization options allow to maintain exact same values (or "
555
+ "translations in the case of taxonomies and page parent) of meta content "
556
+ "between the translations of a post or page."
557
+ msgstr ""
558
+ "Le opzioni di sincronizzazione permettono di mantenere esattamente gli "
559
+ "stessi valori (o traduzioni, nel caso di tassonomie e pagine genitore) del "
560
+ "meta contenuto tra le traduzioni di un articolo o una pagina."
561
+
562
+ #: admin/settings.php:75
563
+ msgid "The language code contains invalid characters"
564
+ msgstr "Il codice della lingua contiene caratteri non validi"
565
+
566
+ # @ polylang
567
+ #: admin/view-languages.php:232
568
+ msgid "The language is set from different domains:"
569
+ msgstr "La lingua è impostata da domini diversi:"
570
+
571
+ #~ msgid ""
572
+ #~ "The language code, for example /en/, is added to all urls when using "
573
+ #~ "pretty permalinks."
574
+ #~ msgstr ""
575
+ #~ "Il codice della lingua, per esempio /en/, viene aggiunto a tutti gli URL "
576
+ #~ "quando si usano i pretty permalinks."
577
+
578
+ #~ msgid ""
579
+ #~ "For some reasons, Polylang could not create a table in your database."
580
+ #~ msgstr ""
581
+ #~ "Per qualche ragione, Polylang non è stato in grado di creare una tabella "
582
+ #~ "nel database."
583
+
584
  #~ msgid "Displays a language switcher at the end of the menu"
585
  #~ msgstr "Visualizza un selettore di lingua alla fine del menu"
586
 
languages/polylang-lt_LT.mo CHANGED
Binary file
languages/polylang-lt_LT.po CHANGED
@@ -6,18 +6,20 @@ msgstr ""
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: Naglis Jonaitis <njonaitis@gmail.com>\n"
8
  "Language-Team: \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: nplural=n>1;\n"
 
13
  "X-Poedit-SourceCharset: utf-8\n"
14
  "X-Poedit-KeywordsList: _e;__;_x\n"
15
  "X-Poedit-Basepath: .\n"
16
- "X-Generator: Poedit 1.5.5\n"
17
  "X-Poedit-SearchPath-0: ..\n"
18
  "X-Poedit-SearchPath-1: ../include\n"
19
 
20
- #: include/about.php:3
21
  #, php-format
22
  msgid ""
23
  "Polylang is provided with an extensive %sdocumentation%s (in English only). "
@@ -30,7 +32,7 @@ msgstr ""
30
  "kasdien, D.U.K. bei dokumentaciją programuotojams, aprašančią kaip "
31
  "pritaikyti savo įskiepius bei temas."
32
 
33
- #: include/about.php:9
34
  #, php-format
35
  msgid ""
36
  "You will also find useful information in the %ssupport forum%s. However "
@@ -39,7 +41,7 @@ msgstr ""
39
  "Naudingos informacijos taip pat galite rasti %spalaikymo forume%s. Tiesa, "
40
  "nepamirškite paieškoti prieš sukurdami naują temą."
41
 
42
- #: include/about.php:16
43
  #, php-format
44
  msgid ""
45
  "Polylang is free of charge and is released under the same license as "
@@ -48,12 +50,12 @@ msgstr ""
48
  "Polylang yra nemokamas ir leidžiamas su ta pačia licencija kaip ir WordPress "
49
  "- %sGPL%s."
50
 
51
- #: include/about.php:22
52
  #, php-format
53
  msgid "If you wonder how you can help the project, just %sread this%s."
54
  msgstr "Jei norite prisidėti prie šio projekto, %sskaitykite čia%s."
55
 
56
- #: include/about.php:27
57
  msgid ""
58
  "Finally if you like this plugin or if it helps your business, donations to "
59
  "the author are greatly appreciated."
@@ -61,116 +63,110 @@ msgstr ""
61
  "Galiausiai, jei Jums patinka šis įskiepis arba jei jis padeda Jūsų verslui, "
62
  "autorius labai vertintų Jūsų paramą."
63
 
64
- #: include/admin-base.php:55 include/admin-base.php:190
65
- #: include/admin-filters.php:243 include/admin.php:23 include/admin.php:301
66
- #: include/list-table.php:13 polylang.php:339
67
  msgid "Languages"
68
  msgstr "Kalbos"
69
 
70
- #: include/admin-base.php:153
71
  msgid "Displays language names"
72
  msgstr "Rodyti kalbų pavadinimus"
73
 
74
- #: include/admin-base.php:154
75
  msgid "Displays flags"
76
  msgstr "Rodyti vėliavėles"
77
 
78
- #: include/admin-base.php:155
79
  msgid "Forces link to front page"
80
  msgstr "Priverstinai nukreipti į pagrindinį puslapį"
81
 
82
- #: include/admin-base.php:156
83
  msgid "Hides the current language"
84
  msgstr "Nerodyti dabartinės kalbos"
85
 
86
- #: include/admin-base.php:160
87
  msgid "Displays as dropdown"
88
  msgstr "Rodyti kaip išskleidžiamą pasirinkimą"
89
 
90
- #: include/admin-base.php:191
91
  msgid "Filters content by language"
92
  msgstr "Atrenka turinį pagal kalbą"
93
 
94
- #: include/admin-base.php:186
95
  msgid "Show all languages"
96
  msgstr "Rodyti visas kalbas"
97
 
98
- #: include/admin-filters.php:181 include/admin-filters.php:877
99
  msgid "Add new translation"
100
  msgstr "Pridėti naują vertimą"
101
 
102
- #: include/admin-filters.php:209 include/admin-filters.php:267
103
- #: include/admin-filters.php:601 include/admin-filters.php:817
104
- #: include/admin-filters.php:835 include/list-table.php:12
105
- #: include/media-translations.php:5 include/media-translations.php:43
106
- #: include/post-translations.php:8 include/term-translations.php:15
107
- #: polylang.php:340
108
  msgid "Language"
109
  msgstr "Kalba"
110
 
111
- #: include/admin-filters.php:616 include/admin-filters.php:651
112
- #: include/list-table.php:127 include/media-translations.php:40
113
- #: include/term-translations.php:6 include/term-translations.php:11
114
  msgid "Translations"
115
  msgstr "Vertimai"
116
 
117
- #: include/admin-filters.php:819 include/admin-filters.php:838
118
  msgid "Sets the language"
119
  msgstr "Nustatyti kalbą"
120
 
121
- #: include/admin-filters.php:1053
122
  msgid "The widget is displayed for:"
123
  msgstr "Valdiklį rodyti:"
124
 
125
- #: include/admin-filters.php:1057 polylang.php:341
126
  msgid "All languages"
127
  msgstr "Visoms kalboms"
128
 
129
- #: include/admin-filters.php:1080
130
  msgid "Admin language"
131
  msgstr "Administravimo skydelio kalba"
132
 
133
- #: include/admin-filters.php:1085
134
  msgid "Wordpress default"
135
  msgstr "Wordpress numatytasis"
136
 
137
- #: include/admin-filters.php:1114 include/admin.php:306
138
  msgid "Settings"
139
  msgstr "Nustatymai"
140
 
141
- #: include/admin-filters.php:1120
142
  msgid "Upgrading language files&#8230;"
143
  msgstr "Atnaujinami kalbų failai&#8230;"
144
 
145
- #: include/admin.php:22
146
  msgid "About Polylang"
147
  msgstr "Apie Polylang"
148
 
149
- #: include/admin.php:27 include/list-table.php:82
150
  msgid "Strings translations"
151
  msgstr "Eilučių vertimas"
152
 
153
- #: include/admin.php:305 include/list-table.php:81
154
  msgid "Strings translation"
155
  msgstr "Eilučių vertimas"
156
 
157
- #: include/admin.php:345
158
- msgid "Enter a valid WorPress locale"
159
  msgstr "Įveskite taisyklingą WordPress lokalę"
160
 
161
- #: include/admin.php:346
162
- msgid "The language code must be 2 characters long"
163
- msgstr "Kalbos kodas privalo būti dviejų simbolių ilgio"
164
-
165
- #: include/admin.php:328
166
  msgid "The language code must be unique"
167
  msgstr "Kalbos kodas privalo būti unikalus"
168
 
169
- #: include/admin.php:329
170
  msgid "The language must have a name"
171
  msgstr "Kalba privalo turėti vardą"
172
 
173
- #: include/admin.php:330
174
  msgid ""
175
  "The language was created, but the WordPress language file was not "
176
  "downloaded. Please install it manually."
@@ -178,93 +174,93 @@ msgstr ""
178
  "Kalba buvo pridėta, tačiau jos WordPress kalbos failas nebuvo parsiųstas. "
179
  "Prašome tai padaryti rankiniu būdu."
180
 
181
- #: include/admin.php:449
182
  msgid "Widget title"
183
  msgstr "Valdiklio pavadinimas"
184
 
185
  # @ polylang
186
- #: include/base.php:368
187
  msgid "Taxonomies"
188
  msgstr "Taksonomijos"
189
 
190
  # @ polylang
191
- #: include/base.php:369
192
  msgid "Custom fields"
193
  msgstr "Pasirinktiniai laukai"
194
 
195
  # @ polylang
196
- #: include/base.php:370
197
  msgid "Comment status"
198
  msgstr "Komentarų būsena"
199
 
200
  # @ polylang
201
- #: include/base.php:371
202
  msgid "Ping status"
203
  msgstr "Ryšio patikrinimo būsena"
204
 
205
  # @ polylang
206
- #: include/base.php:372
207
  msgid "Sticky posts"
208
  msgstr "Nuolat pirmame puslapyje rodomi įrašai"
209
 
210
  # @ polylang
211
- #: include/base.php:373
212
  msgid "Published date"
213
  msgstr "Paskelbimo data"
214
 
215
  # @ polylang
216
- #: include/base.php:374
217
  msgid "Post format"
218
  msgstr "Įrašo formatas"
219
 
220
- #: include/base.php:375
221
  msgid "Page parent"
222
  msgstr "Tėvinis puslapis"
223
 
224
  # @ polylang
225
- #: include/base.php:376
226
  msgid "Page template"
227
  msgstr "Puslapio šablonas"
228
 
229
- #: include/base.php:377
230
  msgid "Page order"
231
  msgstr "Puslapio tvarka"
232
 
233
  # @ polylang
234
- #: include/base.php:378
235
  msgid "Featured image"
236
  msgstr "Spec. paveikslėlis"
237
 
238
- #: include/languages-form.php:42
239
  msgid "Edit language"
240
  msgstr "Redaguoti kalbą"
241
 
242
- #: include/languages-form.php:42 include/languages-form.php:123
243
  msgid "Add new language"
244
  msgstr "Pridėti naują kalbą"
245
 
246
- #: include/languages-form.php:64
247
  msgid "Choose a language"
248
  msgstr "Pasirinkite kalbą"
249
 
250
- #: include/languages-form.php:78
251
  msgid "You can choose a language in the list or directly edit it below."
252
  msgstr ""
253
  "Galite pasirinkti kalbą iš sąrašo arba tiesiogiai redaguoti ją apačioje."
254
 
255
- #: include/languages-form.php:82 include/list-table.php:34
256
  msgid "Full name"
257
  msgstr "Pilnas vardas"
258
 
259
- #: include/languages-form.php:84
260
  msgid "The name is how it is displayed on your site (for example: English)."
261
  msgstr "Vardas, kuris bus rodomas Jūsų svetainėje (pavyzdžiui: English)."
262
 
263
- #: include/languages-form.php:88 include/list-table.php:35
264
  msgid "Locale"
265
  msgstr "Lokalė"
266
 
267
- #: include/languages-form.php:93
268
  msgid ""
269
  "Wordpress Locale for the language (for example: en_US). You will need to "
270
  "install the .mo file for this language."
@@ -272,56 +268,57 @@ msgstr ""
272
  "Kalbos WordPress lokalė (pavyzdžiui: lt_LT). Jums reikės įsidiegti šios "
273
  "kalbos .mo failą."
274
 
275
- #: include/languages-form.php:97
276
  msgid "Language code"
277
  msgstr "Kalbos kodas"
278
 
279
- #: include/languages-form.php:99
280
  msgid "2-letters ISO 639-1 language code (for example: en)"
281
  msgstr "Dviejų raidžių ISO 639-1 kalbos kodas (pavyzdžiui: lt)"
282
 
283
- #: include/languages-form.php:103
284
  msgid "Text direction"
285
  msgstr "Teksto kryptis"
286
 
287
- #: include/languages-form.php:107
288
  msgid "left to right"
289
  msgstr "iš kairės į dešinę"
290
 
291
- #: include/languages-form.php:112
292
  msgid "right to left"
293
  msgstr "iš dešinės į kairę"
294
 
295
- #: include/languages-form.php:114
296
  msgid "Choose the text direction for the language"
297
  msgstr "Pasirinkite kalbos teksto kryptį"
298
 
299
- #: include/languages-form.php:118 include/list-table.php:37
300
  msgid "Order"
301
  msgstr "Tvarka"
302
 
303
- #: include/languages-form.php:120
304
  msgid "Position of the language in the language switcher"
305
  msgstr "Kalbos pozicija kalbos perjungiklyje"
306
 
307
- #: include/nav-menu.php:28 include/nav-menu.php:51 include/nav-menu.php:54
308
- #: include/nav-menu.php:82 include/nav-menu.php:106 polylang.php:302
 
309
  msgid "Language switcher"
310
  msgstr "Kalbų perjungimas"
311
 
312
- #: include/languages-form.php:148
313
  msgid "Search translations"
314
  msgstr "Ieškoti vertimuose"
315
 
316
- #: include/languages-form.php:151
317
  msgid "Clean strings translation database"
318
  msgstr "Išvalyti eilučių vertimų duomenų bazę"
319
 
320
- #: include/languages-form.php:167
321
  msgid "Default language"
322
  msgstr "Numatytoji kalba"
323
 
324
- #: include/languages-form.php:179
325
  msgid ""
326
  "There are posts, pages, categories or tags without language set. Do you want "
327
  "to set them all to default language ?"
@@ -329,11 +326,11 @@ msgstr ""
329
  "Yra įrašų, puslapių, kategorijų arba žymų, kuriems nenustatyta kalba. Ar "
330
  "norite visiems jiems priskirti numatytąją kalbą?"
331
 
332
- #: include/languages-form.php:187
333
  msgid "Detect browser language"
334
  msgstr "Nustatyti naršyklės kalbą"
335
 
336
- #: include/languages-form.php:193
337
  msgid ""
338
  "When the front page is visited, set the language according to the browser "
339
  "preference"
@@ -341,39 +338,31 @@ msgstr ""
341
  "Kai aplankomas pagrindinis puslapis, nustatyti kalbą pagal naršyklės "
342
  "pageidavimą"
343
 
344
- #: include/languages-form.php:200
345
  msgid "URL modifications"
346
  msgstr "URL pakeitimai"
347
 
348
- #: include/languages-form.php:206
349
  msgid ""
350
  "The language is set from content. Posts, pages, categories and tags urls are "
351
  "not modified."
352
  msgstr ""
353
- "Kalba nustatyta pagal turinį. Įrašų, puslapių, kategorijų ir žymų URL "
354
  "adresai nepakeisti."
355
 
356
- #: include/languages-form.php:214
357
- msgid ""
358
- "The language code, for example /en/, is added to all urls when using pretty "
359
- "permalinks."
360
- msgstr ""
361
- "Kalbos kodas, pavyzdžiui /lt/, bus pridėtas prie adresų jei naudojamos "
362
- "pastoviosios nuorodos."
363
-
364
- #: include/languages-form.php:223
365
  msgid "Remove /language/ in pretty permalinks. Example:"
366
  msgstr "Pašalinti /language/ iš pastoviųjų nuorodų. Pavyzdys:"
367
 
368
- #: include/languages-form.php:232
369
  msgid "Keep /language/ in pretty permalinks. Example:"
370
  msgstr "Palikti /language/ pastoviosiose nuorodose. Pavyzdys:"
371
 
372
- #: include/languages-form.php:241
373
  msgid "Hide URL language information for default language"
374
  msgstr "Numatytajai kalbai nerodyti kalbos informacijos URL"
375
 
376
- #: include/languages-form.php:251
377
  #, php-format
378
  msgid ""
379
  "When using static front page, redirect the language page (example: %s) to "
@@ -383,109 +372,109 @@ msgstr ""
383
  "%s) į pradžios puslapį atitinkamoje kalboje"
384
 
385
  # @ polylang
386
- #: include/languages-form.php:260
387
  msgid "Media"
388
  msgstr "Failai"
389
 
390
  # @ polylang
391
- #: include/languages-form.php:266
392
  msgid "Activate languages and translations for media"
393
  msgstr "Įgalinti kalbas ir vertimus failams"
394
 
395
- #: include/languages-form.php:273
396
  msgid "Synchronization"
397
  msgstr "Sinchronizavimas"
398
 
399
  # @ polylang
400
- #: include/languages-form.php:287
401
  msgid "Custom post types"
402
  msgstr "Pasirinktiniai įrašų tipai"
403
 
404
  # @ polylang
405
- #: include/languages-form.php:300
406
  msgid "Activate languages and translations for custom post types."
407
  msgstr "Įgalinti kalbas bei vertimus pasirinktiniams įrašų tipams."
408
 
409
  # @ polylang
410
- #: include/languages-form.php:307
411
  msgid "Custom taxonomies"
412
  msgstr "Pasirinktinės taksonomijos"
413
 
414
  # @ polylang
415
- #: include/languages-form.php:320
416
  msgid "Activate languages and translations for custom taxonomies."
417
  msgstr "Įgalinti kalbas ir vertimus pasirinktinėms taksonomijoms."
418
 
419
- #: include/list-table.php:26 include/media-translations.php:22
420
- #: include/media-translations.php:60 include/post-translations.php:10
421
- #: include/post-translations.php:33 include/term-translations.php:18
422
- #: include/term-translations.php:80
423
  msgid "Edit"
424
  msgstr "Redaguoti"
425
 
426
- #: include/list-table.php:27 include/list-table.php:162
427
  msgid "Delete"
428
  msgstr "Ištrinti"
429
 
430
- #: include/list-table.php:36
431
  msgid "Code"
432
  msgstr "Kodas"
433
 
434
- #: include/list-table.php:38
435
  msgid "Flag"
436
  msgstr "Vėliava"
437
 
438
- #: include/list-table.php:39
439
  msgid "Posts"
440
  msgstr "Įrašai"
441
 
442
- #: include/list-table.php:125
443
  msgid "Name"
444
  msgstr "Vardas"
445
 
446
- #: include/list-table.php:126
447
  msgid "String"
448
  msgstr "Eilutė"
449
 
450
- #: include/media-translations.php:6 include/media-translations.php:44
451
- #: include/term-translations.php:16
452
  msgid "Translation"
453
  msgstr "Vertimas"
454
 
455
- #: include/media-translations.php:31 include/media-translations.php:68
456
- #: include/post-translations.php:38 include/term-translations.php:60
457
  msgid "Add new"
458
  msgstr "Pridėti naują"
459
 
460
- #: include/post-translations.php:5
461
  msgid "ID of pages in other languages:"
462
  msgstr "Puslapių kitose kalbose ID:"
463
 
464
- #: include/post-translations.php:5
465
  msgid "ID of posts in other languages:"
466
  msgstr "Įrašų kitose kalbose ID:"
467
 
468
- #: include/post-translations.php:9
469
  msgid "Page ID"
470
  msgstr "Puslapio ID"
471
 
472
- #: include/post-translations.php:9
473
  msgid "Post ID"
474
  msgstr "Įrašo ID"
475
 
476
- #: include/term-translations.php:48
477
  msgid "No untranslated term"
478
  msgstr "Nėra išversto atitikmens"
479
 
480
- #: include/widget.php:6
481
  msgid "Language Switcher"
482
  msgstr "Kalbų perjungimas"
483
 
484
- #: include/widget.php:6
485
  msgid "Displays a language switcher"
486
  msgstr "Leidžia pasirinkti puslapio kalbą"
487
 
488
- #: include/widget.php:69
489
  msgid "Title:"
490
  msgstr "Pavadinimas:"
491
 
@@ -495,40 +484,92 @@ msgstr "Pavadinimas:"
495
  msgid "Adds multilingual capability to WordPress"
496
  msgstr "Prideda daugiakalbystės funkciją Wordpress sistemai"
497
 
498
- #: polylang.php:133
499
  #, php-format
500
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
501
  msgstr ""
502
  "Jūs naudojatės WordPress %s. Polylang reikalauja mažiausiai WordPress %s."
503
 
504
- #: polylang.php:174
505
- msgid "For some reasons, Polylang could not create a table in your database."
506
- msgstr ""
507
- "Dėl kažkokių priežasčių Polylang nepavyko sukurti lentelės Jūsų duomenų "
508
- "bazėje."
509
-
510
  # @ polylang
511
- #: polylang.php:235
512
  msgid ""
513
  "Polylang has been deactivated because you upgraded from a too old version."
514
  msgstr "Polylang buvo išjungtas, nes atsinaujinote iš per daug senos versijos."
515
 
516
  # @ polylang
517
- #: polylang.php:237
518
  #, php-format
519
  msgid "Please upgrade first to %s before ugrading to %s."
520
  msgstr "Prašome atsinaujinti iki %s, prieš atnaujinant iki %s."
521
 
522
  # @ polylang
523
- #: include/list-table.php:124
524
  msgid "Group"
525
  msgstr "Grupė"
526
 
527
  # @ polylang
528
- #: include/list-table.php:173
529
  msgid "View all groups"
530
  msgstr "Peržiūrėti visas grupes"
531
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
532
  #~ msgid "Displays a language switcher at the end of the menu"
533
  #~ msgstr "Meniu pabaigoje rodyti kalbų perjungimų pasirinkimą"
534
 
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: Naglis Jonaitis <njonaitis@gmail.com>\n"
8
  "Language-Team: \n"
9
+ "Language: lt_LT\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=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
14
+ "%100<10 || n%100>=20) ? 1 : 2);\n"
15
  "X-Poedit-SourceCharset: utf-8\n"
16
  "X-Poedit-KeywordsList: _e;__;_x\n"
17
  "X-Poedit-Basepath: .\n"
18
+ "X-Generator: Poedit 1.5.7\n"
19
  "X-Poedit-SearchPath-0: ..\n"
20
  "X-Poedit-SearchPath-1: ../include\n"
21
 
22
+ #: admin/view-about.php:3
23
  #, php-format
24
  msgid ""
25
  "Polylang is provided with an extensive %sdocumentation%s (in English only). "
32
  "kasdien, D.U.K. bei dokumentaciją programuotojams, aprašančią kaip "
33
  "pritaikyti savo įskiepius bei temas."
34
 
35
+ #: admin/view-about.php:9
36
  #, php-format
37
  msgid ""
38
  "You will also find useful information in the %ssupport forum%s. However "
41
  "Naudingos informacijos taip pat galite rasti %spalaikymo forume%s. Tiesa, "
42
  "nepamirškite paieškoti prieš sukurdami naują temą."
43
 
44
+ #: admin/view-about.php:16
45
  #, php-format
46
  msgid ""
47
  "Polylang is free of charge and is released under the same license as "
50
  "Polylang yra nemokamas ir leidžiamas su ta pačia licencija kaip ir WordPress "
51
  "- %sGPL%s."
52
 
53
+ #: admin/view-about.php:22
54
  #, php-format
55
  msgid "If you wonder how you can help the project, just %sread this%s."
56
  msgstr "Jei norite prisidėti prie šio projekto, %sskaitykite čia%s."
57
 
58
+ #: admin/view-about.php:27
59
  msgid ""
60
  "Finally if you like this plugin or if it helps your business, donations to "
61
  "the author are greatly appreciated."
63
  "Galiausiai, jei Jums patinka šis įskiepis arba jei jis padeda Jūsų verslui, "
64
  "autorius labai vertintų Jūsų paramą."
65
 
66
+ #: admin/admin-filters-post.php:76 admin/admin.php:83 admin/admin.php:187
67
+ #: admin/settings.php:42 admin/settings.php:57 include/model.php:490
 
68
  msgid "Languages"
69
  msgstr "Kalbos"
70
 
71
+ #: include/switcher.php:22
72
  msgid "Displays language names"
73
  msgstr "Rodyti kalbų pavadinimus"
74
 
75
+ #: include/switcher.php:23
76
  msgid "Displays flags"
77
  msgstr "Rodyti vėliavėles"
78
 
79
+ #: include/switcher.php:24
80
  msgid "Forces link to front page"
81
  msgstr "Priverstinai nukreipti į pagrindinį puslapį"
82
 
83
+ #: include/switcher.php:25
84
  msgid "Hides the current language"
85
  msgstr "Nerodyti dabartinės kalbos"
86
 
87
+ #: include/switcher.php:29
88
  msgid "Displays as dropdown"
89
  msgstr "Rodyti kaip išskleidžiamą pasirinkimą"
90
 
91
+ #: admin/admin.php:188
92
  msgid "Filters content by language"
93
  msgstr "Atrenka turinį pagal kalbą"
94
 
95
+ #: admin/admin.php:183
96
  msgid "Show all languages"
97
  msgstr "Rodyti visas kalbas"
98
 
99
+ #: admin/admin-filters-columns.php:126 admin/admin-filters-columns.php:215
100
  msgid "Add new translation"
101
  msgstr "Pridėti naują vertimą"
102
 
103
+ #: admin/admin-filters-columns.php:163 admin/admin-filters-media.php:58
104
+ #: admin/admin-filters-post.php:109 admin/admin-filters-term.php:72
105
+ #: admin/admin-filters-term.php:106 admin/view-translations-media.php:7
106
+ #: admin/view-translations-media.php:45 admin/view-translations-post.php:8
107
+ #: admin/view-translations-term.php:15 include/model.php:491
 
108
  msgid "Language"
109
  msgstr "Kalba"
110
 
111
+ #: admin/admin-filters-media.php:73 admin/admin-filters-media.php:112
112
+ #: admin/table-string.php:111 admin/view-translations-media.php:42
113
+ #: admin/view-translations-term.php:6 admin/view-translations-term.php:11
114
  msgid "Translations"
115
  msgstr "Vertimai"
116
 
117
+ #: admin/admin-filters-term.php:74 admin/admin-filters-term.php:108
118
  msgid "Sets the language"
119
  msgstr "Nustatyti kalbą"
120
 
121
+ #: admin/admin-filters.php:60
122
  msgid "The widget is displayed for:"
123
  msgstr "Valdiklį rodyti:"
124
 
125
+ #: admin/admin-filters.php:63 include/model.php:492
126
  msgid "All languages"
127
  msgstr "Visoms kalboms"
128
 
129
+ #: admin/admin-filters.php:120
130
  msgid "Admin language"
131
  msgstr "Administravimo skydelio kalba"
132
 
133
+ #: admin/admin-filters.php:123
134
  msgid "Wordpress default"
135
  msgstr "Wordpress numatytasis"
136
 
137
+ #: admin/admin.php:123 admin/settings.php:62
138
  msgid "Settings"
139
  msgstr "Nustatymai"
140
 
141
+ #: admin/admin-filters.php:151
142
  msgid "Upgrading language files&#8230;"
143
  msgstr "Atnaujinami kalbų failai&#8230;"
144
 
145
+ #: admin/settings.php:38
146
  msgid "About Polylang"
147
  msgstr "Apie Polylang"
148
 
149
+ #: admin/settings.php:46
150
  msgid "Strings translations"
151
  msgstr "Eilučių vertimas"
152
 
153
+ #: admin/settings.php:61
154
  msgid "Strings translation"
155
  msgstr "Eilučių vertimas"
156
 
157
+ #: admin/settings.php:74
158
+ msgid "Enter a valid WordPress locale"
159
  msgstr "Įveskite taisyklingą WordPress lokalę"
160
 
161
+ #: admin/settings.php:76
 
 
 
 
162
  msgid "The language code must be unique"
163
  msgstr "Kalbos kodas privalo būti unikalus"
164
 
165
+ #: admin/settings.php:77
166
  msgid "The language must have a name"
167
  msgstr "Kalba privalo turėti vardą"
168
 
169
+ #: admin/settings.php:78
170
  msgid ""
171
  "The language was created, but the WordPress language file was not "
172
  "downloaded. Please install it manually."
174
  "Kalba buvo pridėta, tačiau jos WordPress kalbos failas nebuvo parsiųstas. "
175
  "Prašome tai padaryti rankiniu būdu."
176
 
177
+ #: admin/settings.php:305
178
  msgid "Widget title"
179
  msgstr "Valdiklio pavadinimas"
180
 
181
  # @ polylang
182
+ #: admin/settings.php:323
183
  msgid "Taxonomies"
184
  msgstr "Taksonomijos"
185
 
186
  # @ polylang
187
+ #: admin/settings.php:324
188
  msgid "Custom fields"
189
  msgstr "Pasirinktiniai laukai"
190
 
191
  # @ polylang
192
+ #: admin/settings.php:325
193
  msgid "Comment status"
194
  msgstr "Komentarų būsena"
195
 
196
  # @ polylang
197
+ #: admin/settings.php:326
198
  msgid "Ping status"
199
  msgstr "Ryšio patikrinimo būsena"
200
 
201
  # @ polylang
202
+ #: admin/settings.php:327
203
  msgid "Sticky posts"
204
  msgstr "Nuolat pirmame puslapyje rodomi įrašai"
205
 
206
  # @ polylang
207
+ #: admin/settings.php:328
208
  msgid "Published date"
209
  msgstr "Paskelbimo data"
210
 
211
  # @ polylang
212
+ #: admin/settings.php:329
213
  msgid "Post format"
214
  msgstr "Įrašo formatas"
215
 
216
+ #: admin/settings.php:330
217
  msgid "Page parent"
218
  msgstr "Tėvinis puslapis"
219
 
220
  # @ polylang
221
+ #: admin/settings.php:331
222
  msgid "Page template"
223
  msgstr "Puslapio šablonas"
224
 
225
+ #: admin/settings.php:332
226
  msgid "Page order"
227
  msgstr "Puslapio tvarka"
228
 
229
  # @ polylang
230
+ #: admin/settings.php:333
231
  msgid "Featured image"
232
  msgstr "Spec. paveikslėlis"
233
 
234
+ #: admin/view-languages.php:42
235
  msgid "Edit language"
236
  msgstr "Redaguoti kalbą"
237
 
238
+ #: admin/view-languages.php:42 admin/view-languages.php:117
239
  msgid "Add new language"
240
  msgstr "Pridėti naują kalbą"
241
 
242
+ #: admin/view-languages.php:58
243
  msgid "Choose a language"
244
  msgstr "Pasirinkite kalbą"
245
 
246
+ #: admin/view-languages.php:72
247
  msgid "You can choose a language in the list or directly edit it below."
248
  msgstr ""
249
  "Galite pasirinkti kalbą iš sąrašo arba tiesiogiai redaguoti ją apačioje."
250
 
251
+ #: admin/table-languages.php:74 admin/view-languages.php:76
252
  msgid "Full name"
253
  msgstr "Pilnas vardas"
254
 
255
+ #: admin/view-languages.php:78
256
  msgid "The name is how it is displayed on your site (for example: English)."
257
  msgstr "Vardas, kuris bus rodomas Jūsų svetainėje (pavyzdžiui: English)."
258
 
259
+ #: admin/table-languages.php:75 admin/view-languages.php:82
260
  msgid "Locale"
261
  msgstr "Lokalė"
262
 
263
+ #: admin/view-languages.php:87
264
  msgid ""
265
  "Wordpress Locale for the language (for example: en_US). You will need to "
266
  "install the .mo file for this language."
268
  "Kalbos WordPress lokalė (pavyzdžiui: lt_LT). Jums reikės įsidiegti šios "
269
  "kalbos .mo failą."
270
 
271
+ #: admin/view-languages.php:91
272
  msgid "Language code"
273
  msgstr "Kalbos kodas"
274
 
275
+ #: admin/view-languages.php:93
276
  msgid "2-letters ISO 639-1 language code (for example: en)"
277
  msgstr "Dviejų raidžių ISO 639-1 kalbos kodas (pavyzdžiui: lt)"
278
 
279
+ #: admin/view-languages.php:97
280
  msgid "Text direction"
281
  msgstr "Teksto kryptis"
282
 
283
+ #: admin/view-languages.php:101
284
  msgid "left to right"
285
  msgstr "iš kairės į dešinę"
286
 
287
+ #: admin/view-languages.php:106
288
  msgid "right to left"
289
  msgstr "iš dešinės į kairę"
290
 
291
+ #: admin/view-languages.php:108
292
  msgid "Choose the text direction for the language"
293
  msgstr "Pasirinkite kalbos teksto kryptį"
294
 
295
+ #: admin/table-languages.php:77 admin/view-languages.php:112
296
  msgid "Order"
297
  msgstr "Tvarka"
298
 
299
+ #: admin/view-languages.php:114
300
  msgid "Position of the language in the language switcher"
301
  msgstr "Kalbos pozicija kalbos perjungiklyje"
302
 
303
+ #: admin/admin-nav-menu.php:51 admin/admin-nav-menu.php:79
304
+ #: admin/admin-nav-menu.php:82 admin/admin-nav-menu.php:113
305
+ #: admin/admin-nav-menu.php:170 include/upgrade.php:175
306
  msgid "Language switcher"
307
  msgstr "Kalbų perjungimas"
308
 
309
+ #: admin/view-languages.php:143
310
  msgid "Search translations"
311
  msgstr "Ieškoti vertimuose"
312
 
313
+ #: admin/view-languages.php:146
314
  msgid "Clean strings translation database"
315
  msgstr "Išvalyti eilučių vertimų duomenų bazę"
316
 
317
+ #: admin/view-languages.php:164
318
  msgid "Default language"
319
  msgstr "Numatytoji kalba"
320
 
321
+ #: admin/view-languages.php:179
322
  msgid ""
323
  "There are posts, pages, categories or tags without language set. Do you want "
324
  "to set them all to default language ?"
326
  "Yra įrašų, puslapių, kategorijų arba žymų, kuriems nenustatyta kalba. Ar "
327
  "norite visiems jiems priskirti numatytąją kalbą?"
328
 
329
+ #: admin/view-languages.php:187
330
  msgid "Detect browser language"
331
  msgstr "Nustatyti naršyklės kalbą"
332
 
333
+ #: admin/view-languages.php:193
334
  msgid ""
335
  "When the front page is visited, set the language according to the browser "
336
  "preference"
338
  "Kai aplankomas pagrindinis puslapis, nustatyti kalbą pagal naršyklės "
339
  "pageidavimą"
340
 
341
+ #: admin/view-languages.php:200
342
  msgid "URL modifications"
343
  msgstr "URL pakeitimai"
344
 
345
+ #: admin/view-languages.php:206
346
  msgid ""
347
  "The language is set from content. Posts, pages, categories and tags urls are "
348
  "not modified."
349
  msgstr ""
350
+ "Kalba nustatoma pagal turinį. Įrašų, puslapių, kategorijų ir žymų URL "
351
  "adresai nepakeisti."
352
 
353
+ #: admin/view-languages.php:253
 
 
 
 
 
 
 
 
354
  msgid "Remove /language/ in pretty permalinks. Example:"
355
  msgstr "Pašalinti /language/ iš pastoviųjų nuorodų. Pavyzdys:"
356
 
357
+ #: admin/view-languages.php:262
358
  msgid "Keep /language/ in pretty permalinks. Example:"
359
  msgstr "Palikti /language/ pastoviosiose nuorodose. Pavyzdys:"
360
 
361
+ #: admin/view-languages.php:271
362
  msgid "Hide URL language information for default language"
363
  msgstr "Numatytajai kalbai nerodyti kalbos informacijos URL"
364
 
365
+ #: admin/view-languages.php:281
366
  #, php-format
367
  msgid ""
368
  "When using static front page, redirect the language page (example: %s) to "
372
  "%s) į pradžios puslapį atitinkamoje kalboje"
373
 
374
  # @ polylang
375
+ #: admin/view-languages.php:290
376
  msgid "Media"
377
  msgstr "Failai"
378
 
379
  # @ polylang
380
+ #: admin/view-languages.php:296
381
  msgid "Activate languages and translations for media"
382
  msgstr "Įgalinti kalbas ir vertimus failams"
383
 
384
+ #: admin/view-languages.php:303
385
  msgid "Synchronization"
386
  msgstr "Sinchronizavimas"
387
 
388
  # @ polylang
389
+ #: admin/view-languages.php:320
390
  msgid "Custom post types"
391
  msgstr "Pasirinktiniai įrašų tipai"
392
 
393
  # @ polylang
394
+ #: admin/view-languages.php:333
395
  msgid "Activate languages and translations for custom post types."
396
  msgstr "Įgalinti kalbas bei vertimus pasirinktiniams įrašų tipams."
397
 
398
  # @ polylang
399
+ #: admin/view-languages.php:340
400
  msgid "Custom taxonomies"
401
  msgstr "Pasirinktinės taksonomijos"
402
 
403
  # @ polylang
404
+ #: admin/view-languages.php:353
405
  msgid "Activate languages and translations for custom taxonomies."
406
  msgstr "Įgalinti kalbas ir vertimus pasirinktinėms taksonomijoms."
407
 
408
+ #: admin/table-languages.php:54 admin/view-translations-media.php:24
409
+ #: admin/view-translations-media.php:62 admin/view-translations-post.php:10
410
+ #: admin/view-translations-post.php:33 admin/view-translations-term.php:18
411
+ #: admin/view-translations-term.php:80
412
  msgid "Edit"
413
  msgstr "Redaguoti"
414
 
415
+ #: admin/table-languages.php:60 admin/table-string.php:167
416
  msgid "Delete"
417
  msgstr "Ištrinti"
418
 
419
+ #: admin/table-languages.php:76
420
  msgid "Code"
421
  msgstr "Kodas"
422
 
423
+ #: admin/table-languages.php:78
424
  msgid "Flag"
425
  msgstr "Vėliava"
426
 
427
+ #: admin/table-languages.php:79
428
  msgid "Posts"
429
  msgstr "Įrašai"
430
 
431
+ #: admin/table-string.php:109
432
  msgid "Name"
433
  msgstr "Vardas"
434
 
435
+ #: admin/table-string.php:110
436
  msgid "String"
437
  msgstr "Eilutė"
438
 
439
+ #: admin/view-translations-media.php:8 admin/view-translations-media.php:46
440
+ #: admin/view-translations-term.php:16
441
  msgid "Translation"
442
  msgstr "Vertimas"
443
 
444
+ #: admin/view-translations-media.php:33 admin/view-translations-media.php:70
445
+ #: admin/view-translations-post.php:38 admin/view-translations-term.php:60
446
  msgid "Add new"
447
  msgstr "Pridėti naują"
448
 
449
+ #: admin/view-translations-post.php:5
450
  msgid "ID of pages in other languages:"
451
  msgstr "Puslapių kitose kalbose ID:"
452
 
453
+ #: admin/view-translations-post.php:5
454
  msgid "ID of posts in other languages:"
455
  msgstr "Įrašų kitose kalbose ID:"
456
 
457
+ #: admin/view-translations-post.php:9
458
  msgid "Page ID"
459
  msgstr "Puslapio ID"
460
 
461
+ #: admin/view-translations-post.php:9
462
  msgid "Post ID"
463
  msgstr "Įrašo ID"
464
 
465
+ #: admin/view-translations-term.php:48
466
  msgid "No untranslated term"
467
  msgstr "Nėra išversto atitikmens"
468
 
469
+ #: include/widget-languages.php:16
470
  msgid "Language Switcher"
471
  msgstr "Kalbų perjungimas"
472
 
473
+ #: include/widget-languages.php:16
474
  msgid "Displays a language switcher"
475
  msgstr "Leidžia pasirinkti puslapio kalbą"
476
 
477
+ #: include/widget-languages.php:100
478
  msgid "Title:"
479
  msgstr "Pavadinimas:"
480
 
484
  msgid "Adds multilingual capability to WordPress"
485
  msgstr "Prideda daugiakalbystės funkciją Wordpress sistemai"
486
 
487
+ #: polylang.php:157
488
  #, php-format
489
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
490
  msgstr ""
491
  "Jūs naudojatės WordPress %s. Polylang reikalauja mažiausiai WordPress %s."
492
 
 
 
 
 
 
 
493
  # @ polylang
494
+ #: include/upgrade.php:75
495
  msgid ""
496
  "Polylang has been deactivated because you upgraded from a too old version."
497
  msgstr "Polylang buvo išjungtas, nes atsinaujinote iš per daug senos versijos."
498
 
499
  # @ polylang
500
+ #: include/upgrade.php:77
501
  #, php-format
502
  msgid "Please upgrade first to %s before ugrading to %s."
503
  msgstr "Prašome atsinaujinti iki %s, prieš atnaujinant iki %s."
504
 
505
  # @ polylang
506
+ #: admin/table-string.php:108
507
  msgid "Group"
508
  msgstr "Grupė"
509
 
510
  # @ polylang
511
+ #: admin/table-string.php:186
512
  msgid "View all groups"
513
  msgstr "Peržiūrėti visas grupes"
514
 
515
+ # @ polylang
516
+ #: admin/table-languages.php:59
517
+ msgid "You are about to permanently delete this language. Are you sure?"
518
+ msgstr "Ketinate visam laikui ištrinti šią kalbą. Ar tikrai to norite?"
519
+
520
+ # @ polylang
521
+ #: admin/view-languages.php:147
522
+ msgid ""
523
+ "Use this to remove unused strings from database, for example after a plugin "
524
+ "has been uninstalled."
525
+ msgstr ""
526
+ "Naudokite nenaudojamų eilučių pašalinimui iš duomenų bazės, pavyzdžiui po "
527
+ "įskiepio ištrynimo."
528
+
529
+ #: admin/view-languages.php:214
530
+ msgid ""
531
+ "The language is set from the directory name in pretty permalinks. Example:"
532
+ msgstr "Kalba nustatoma pagal aplanką pastoviosiose nuorodose. Pavyzdys:"
533
+
534
+ #: admin/view-languages.php:223
535
+ msgid ""
536
+ "The language is set from the subdomain name in pretty permalinks. Example:"
537
+ msgstr ""
538
+ "Kalba nustatoma pagal subdomeno vardą pastoviosiose nuorodose. Pavyzdys:"
539
+
540
+ # @ polylang
541
+ #: admin/view-languages.php:314
542
+ msgid ""
543
+ "The synchronization options allow to maintain exact same values (or "
544
+ "translations in the case of taxonomies and page parent) of meta content "
545
+ "between the translations of a post or page."
546
+ msgstr ""
547
+ "Sinchronizacijos parinktys leidžia išlaikyti pastovias vienodas turinio "
548
+ "reikšmes (ar vertimus taksonomijų ar tėvinių puslapių atveju) tarp puslapio "
549
+ "ar įrašo vertimų."
550
+
551
+ #: admin/settings.php:75
552
+ msgid "The language code contains invalid characters"
553
+ msgstr "Kalbos kode yra neleistinų simbolių"
554
+
555
+ # @ polylang
556
+ #: admin/view-languages.php:232
557
+ msgid "The language is set from different domains:"
558
+ msgstr "Kalba nustatoma iš skirtingų domenų:"
559
+
560
+ #~ msgid ""
561
+ #~ "The language code, for example /en/, is added to all urls when using "
562
+ #~ "pretty permalinks."
563
+ #~ msgstr ""
564
+ #~ "Kalbos kodas, pavyzdžiui /lt/, bus pridėtas prie adresų jei naudojamos "
565
+ #~ "pastoviosios nuorodos."
566
+
567
+ #~ msgid ""
568
+ #~ "For some reasons, Polylang could not create a table in your database."
569
+ #~ msgstr ""
570
+ #~ "Dėl kažkokių priežasčių Polylang nepavyko sukurti lentelės Jūsų duomenų "
571
+ #~ "bazėje."
572
+
573
  #~ msgid "Displays a language switcher at the end of the menu"
574
  #~ msgstr "Meniu pabaigoje rodyti kalbų perjungimų pasirinkimą"
575
 
languages/polylang-lv.mo CHANGED
Binary file
languages/polylang-lv.po CHANGED
@@ -3,7 +3,7 @@ msgstr ""
3
  "Project-Id-Version: polylang 0.8\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
- "PO-Revision-Date: 2013-01-06 19:31+0100\n"
7
  "Last-Translator: Andis <andis.grossteins@gmail.com>\n"
8
  "Language-Team: \n"
9
  "Language: \n"
@@ -20,538 +20,525 @@ msgstr ""
20
  "X-Poedit-SearchPath-0: .\n"
21
 
22
  # @ polylang
23
- #: include/about.php:3
24
  #, php-format
25
  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."
26
  msgstr "Polylang tiek piedāvāts ar plaÅ¡u %sdokumentāciju%s (tikai angliski). Tā satur informāciju par to kā uzstādÄ«t vietni vairākās valodās un kā to lietot ikdienā, BUJ, kā arÄ« dokumentāciju programmētājiem par spraudņu un kažociņu pielāgoÅ¡anu."
27
 
28
  # @ polylang
29
- #: include/about.php:9
30
  #, php-format
31
  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."
32
  msgstr "NoderÄ«gu informāciju varat atrast arÄ« %satbalsata forumā%s. Ieteicams veikt meklēšanu pirms atvērt jaunu foruma tematu."
33
 
34
  # @ polylang
35
- #: include/about.php:16
36
  #, php-format
37
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
38
  msgstr "Polylang ir bezmaksas un tiek piedāvāts ar to paÅ¡u licenci kā WordPress, %sGPL%s."
39
 
40
  # @ polylang
41
- #: include/about.php:22
42
  #, php-format
43
  msgid "If you wonder how you can help the project, just %sread this%s."
44
  msgstr "Ja jÅ«s prātojat kā varētu palÄ«dzēt Å¡im projektam, %sizlasiet Å¡o%s."
45
 
46
  # @ polylang
47
- #: include/about.php:27
48
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
49
  msgstr "Visbeidzot, ja jums patÄ«k Å¡is spraudnis vai ari tas palÄ«dz jÅ«su biznesā, ziedojumi autoram tiks augsti vērtēti."
50
 
51
  # @ polylang
52
- #: include/admin-base.php:55
53
- #: include/admin-base.php:190
54
- #: include/admin-filters.php:243
55
- #: include/admin.php:23
56
- #: include/admin.php:301
57
- #: include/list-table.php:13
58
- #: polylang.php:339
59
  msgid "Languages"
60
  msgstr "Valodas"
61
 
62
  # @ polylang
63
- #: include/admin-base.php:153
64
  msgid "Displays language names"
65
  msgstr "Rāda valodu nosaukumus"
66
 
67
  # @ polylang
68
- #: include/admin-base.php:154
69
  msgid "Displays flags"
70
  msgstr "Rāda karogus"
71
 
72
  # @ polylang
73
- #: include/admin-base.php:155
74
  msgid "Forces link to front page"
75
  msgstr "Valodas saite ved uz sākumlapu"
76
 
77
  # @ polylang
78
- #: include/admin-base.php:156
79
  msgid "Hides the current language"
80
  msgstr "Paslēpt aktÄ«vo valodu"
81
 
82
  # @ polylang
83
- #: include/admin-base.php:160
84
  msgid "Displays as dropdown"
85
  msgstr "Rāda kā nolaižamo izvēlni"
86
 
87
  # @ polylang
88
- #: include/admin-base.php:191
89
  msgid "Filters content by language"
90
  msgstr ""
91
 
92
  # @ polylang
93
- #: include/admin-base.php:186
94
  msgid "Show all languages"
95
  msgstr "RādÄ«t visas valodas"
96
 
97
  # @ polylang
98
- #: include/admin-filters.php:181
99
- #: include/admin-filters.php:877
100
  msgid "Add new translation"
101
  msgstr "Pievienot jaunu tulkojumu"
102
 
103
  # @ polylang
104
- #: include/admin-filters.php:209
105
- #: include/admin-filters.php:267
106
- #: include/admin-filters.php:601
107
- #: include/admin-filters.php:817
108
- #: include/admin-filters.php:835
109
- #: include/list-table.php:12
110
- #: include/media-translations.php:5
111
- #: include/media-translations.php:43
112
- #: include/post-translations.php:8
113
- #: include/term-translations.php:15
114
- #: polylang.php:340
115
  msgid "Language"
116
  msgstr "Valoda"
117
 
118
  # @ polylang
119
- #: include/admin-filters.php:616
120
- #: include/admin-filters.php:651
121
- #: include/list-table.php:127
122
- #: include/media-translations.php:40
123
- #: include/term-translations.php:6
124
- #: include/term-translations.php:11
125
  msgid "Translations"
126
  msgstr "Tulkojumi"
127
 
128
  # @ polylang
129
- #: include/admin-filters.php:819
130
- #: include/admin-filters.php:838
131
  msgid "Sets the language"
132
  msgstr "Nosaka valodu"
133
 
134
  # @ polylang
135
- #: include/admin-filters.php:1053
136
  msgid "The widget is displayed for:"
137
  msgstr "Logdaļa tiek rādÄ«ta:"
138
 
139
  # @ polylang
140
- #: include/admin-filters.php:1057
141
- #: polylang.php:341
142
  msgid "All languages"
143
  msgstr "Visas valodas"
144
 
145
  # @ polylang
146
- #: include/admin-filters.php:1080
147
  msgid "Admin language"
148
  msgstr "VadÄ«bas valoda"
149
 
150
- #: include/admin-filters.php:1085
151
  msgid "Wordpress default"
152
  msgstr ""
153
 
154
  # @ default
155
  # @ polylang
156
- #: include/admin-filters.php:1114
157
- #: include/admin.php:306
158
  msgid "Settings"
159
  msgstr "UzstādÄ«jumi"
160
 
161
  # @ polylang
162
- #: include/admin-filters.php:1120
163
  msgid "Upgrading language files&#8230;"
164
  msgstr "Atjaunina valodu failus&#8230;"
165
 
166
  # @ polylang
167
- #: include/admin.php:22
168
  msgid "About Polylang"
169
  msgstr "Par Polylang"
170
 
171
  # @ polylang
172
- #: include/admin.php:27
173
- #: include/list-table.php:82
174
  msgid "Strings translations"
175
  msgstr "Tekstu tulkojumi"
176
 
177
  # @ polylang
178
- #: include/admin.php:305
179
- #: include/list-table.php:81
180
  msgid "Strings translation"
181
  msgstr "Tekstu tulkoÅ¡ana"
182
 
183
  # @ polylang
184
- #: include/admin.php:345
185
  msgid "Enter a valid WorPress locale"
186
  msgstr "Ievadiet derÄ«gu WordPress valodas kodu"
187
 
188
  # @ polylang
189
- #: include/admin.php:346
190
- msgid "The language code must be 2 characters long"
191
- msgstr "Valodas kodā jābūt 2 simboliem"
192
-
193
- # @ polylang
194
- #: include/admin.php:328
195
  msgid "The language code must be unique"
196
  msgstr "Valodas kodam jābÅ«t unikālam"
197
 
198
  # @ polylang
199
- #: include/admin.php:329
200
  msgid "The language must have a name"
201
  msgstr "Valodai ir nepiecieÅ¡ams nosaukums"
202
 
203
  # @ polylang
204
- #: include/admin.php:330
205
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
206
  msgstr "Valoda tika izveidota, bet WordPress tulkojumu fails netika lejuplādēts. LÅ«dzu uzstādiet to manuāli."
207
 
208
  # @ polylang
209
- #: include/admin.php:449
210
  msgid "Widget title"
211
  msgstr "Logdaļas virsraksts"
212
 
213
  # @ polylang
214
- #: include/base.php:368
215
  msgid "Taxonomies"
216
  msgstr ""
217
 
218
  # @ polylang
219
- #: include/base.php:369
220
  msgid "Custom fields"
221
  msgstr ""
222
 
223
  # @ polylang
224
- #: include/base.php:370
225
  msgid "Comment status"
226
  msgstr ""
227
 
228
  # @ polylang
229
- #: include/base.php:371
230
  msgid "Ping status"
231
  msgstr ""
232
 
233
  # @ polylang
234
- #: include/base.php:372
235
  msgid "Sticky posts"
236
  msgstr ""
237
 
238
  # @ polylang
239
- #: include/base.php:373
240
  msgid "Published date"
241
  msgstr ""
242
 
243
  # @ polylang
244
- #: include/base.php:374
245
  msgid "Post format"
246
  msgstr ""
247
 
248
  # @ default
249
- #: include/base.php:375
250
  msgid "Page parent"
251
  msgstr ""
252
 
253
  # @ polylang
254
- #: include/base.php:376
255
  msgid "Page template"
256
  msgstr ""
257
 
258
  # @ polylang
259
- #: include/base.php:377
260
  msgid "Page order"
261
  msgstr ""
262
 
263
  # @ polylang
264
- #: include/base.php:378
265
  msgid "Featured image"
266
  msgstr ""
267
 
268
  # @ polylang
269
- #: include/languages-form.php:42
270
  msgid "Edit language"
271
  msgstr "Rediģēt valodu"
272
 
273
  # @ polylang
274
- #: include/languages-form.php:42
275
- #: include/languages-form.php:123
276
  msgid "Add new language"
277
  msgstr "Pievienot jaunu valodu"
278
 
279
  # @ polylang
280
- #: include/languages-form.php:64
281
  msgid "Choose a language"
282
  msgstr "Izvēlēties valodu"
283
 
284
  # @ polylang
285
- #: include/languages-form.php:78
286
  msgid "You can choose a language in the list or directly edit it below."
287
  msgstr "JÅ«s varat izvēlēties valodu no saraksta, vai ari rediģēt to zemāk."
288
 
289
  # @ polylang
290
- #: include/languages-form.php:82
291
- #: include/list-table.php:34
292
  msgid "Full name"
293
  msgstr "Pilns nosaukums"
294
 
295
  # @ polylang
296
- #: include/languages-form.php:84
297
  msgid "The name is how it is displayed on your site (for example: English)."
298
  msgstr "Nosaukums, kādu to attēlos lapā (piemēram: LatvieÅ¡u)"
299
 
300
  # @ polylang
301
- #: include/languages-form.php:88
302
- #: include/list-table.php:35
303
  msgid "Locale"
304
  msgstr "Lokāle"
305
 
306
  # @ polylang
307
- #: include/languages-form.php:93
308
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
309
  msgstr "WordPress valodas lokāle Å¡ai valodai (piemēram: en_US). Jums nāksies uzstādÄ«t .mo failu Å¡ai valodai."
310
 
311
  # @ polylang
312
- #: include/languages-form.php:97
313
  msgid "Language code"
314
  msgstr "Valodas kods (piem.: lv)"
315
 
316
  # @ polylang
317
- #: include/languages-form.php:99
318
  msgid "2-letters ISO 639-1 language code (for example: en)"
319
  msgstr "2 burtu ISO 639-1 valodas kods (piemēram: en)"
320
 
321
  # @ polylang
322
- #: include/languages-form.php:103
323
  msgid "Text direction"
324
  msgstr "LasÄ«Å¡anas virziens"
325
 
326
  # @ polylang
327
- #: include/languages-form.php:107
328
  msgid "left to right"
329
  msgstr "no kreisās uz labo"
330
 
331
  # @ polylang
332
- #: include/languages-form.php:112
333
  msgid "right to left"
334
  msgstr "no labās uz kreiso"
335
 
336
  # @ polylang
337
- #: include/languages-form.php:114
338
  msgid "Choose the text direction for the language"
339
  msgstr "Izvēlieties lasÄ«Å¡anas virzienu Å¡ai valodai"
340
 
341
  # @ polylang
342
- #: include/languages-form.php:118
343
- #: include/list-table.php:37
344
  msgid "Order"
345
  msgstr "SecÄ«ba"
346
 
347
  # @ polylang
348
- #: include/languages-form.php:120
349
  msgid "Position of the language in the language switcher"
350
  msgstr "Valodas atraÅ¡anās vieta valodu izvēlnē"
351
 
352
  # @ polylang
353
- #: include/nav-menu.php:28
354
- #: include/nav-menu.php:51
355
- #: include/nav-menu.php:54
356
- #: include/nav-menu.php:82
357
- #: include/nav-menu.php:106
358
- #: polylang.php:302
359
  msgid "Language switcher"
360
  msgstr "Valodu izvēlne"
361
 
362
  # @ polylang
363
- #: include/languages-form.php:148
364
  msgid "Search translations"
365
  msgstr ""
366
 
367
  # @ polylang
368
- #: include/languages-form.php:151
369
  msgid "Clean strings translation database"
370
  msgstr ""
371
 
372
  # @ polylang
373
- #: include/languages-form.php:167
374
  msgid "Default language"
375
  msgstr "Noklusētā valoda"
376
 
377
  # @ polylang
378
- #: include/languages-form.php:179
379
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
380
  msgstr "Ir atrasti raksti, lapas, tēmas, vai birkas bez uzstādÄ«tas valodas. Vai vēlaties uzstādÄ«t tām visām noklusēto valodu?"
381
 
382
  # @ polylang
383
- #: include/languages-form.php:187
384
  msgid "Detect browser language"
385
  msgstr "Noteikt pārlÅ«ka valodu"
386
 
387
  # @ polylang
388
- #: include/languages-form.php:193
389
  msgid "When the front page is visited, set the language according to the browser preference"
390
  msgstr "Kad tiek apmeklēta sākumlapa, uzstāda valodu atkarÄ«bā no pārlÅ«kprogrammas uzstādÄ«jumiem"
391
 
392
  # @ polylang
393
- #: include/languages-form.php:200
394
  msgid "URL modifications"
395
  msgstr "SaiÅ¡u modifikācijas"
396
 
397
  # @ polylang
398
- #: include/languages-form.php:206
399
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
400
  msgstr ""
401
 
402
- #: include/languages-form.php:214
403
- msgid "The language code, for example /en/, is added to all urls when using pretty permalinks."
404
- msgstr ""
405
-
406
  # @ polylang
407
- #: include/languages-form.php:223
408
  msgid "Remove /language/ in pretty permalinks. Example:"
409
  msgstr "NerādÄ«t /language/ nemainÄ«gajās saitēs. Piemērs:"
410
 
411
  # @ polylang
412
- #: include/languages-form.php:232
413
  msgid "Keep /language/ in pretty permalinks. Example:"
414
  msgstr "Atstāt /language/ nemainÄ«gajās saitēs. Piemērs:"
415
 
416
  # @ polylang
417
- #: include/languages-form.php:241
418
  msgid "Hide URL language information for default language"
419
  msgstr "Paslēpt noklusētās valodas informāciju hipersaitēs"
420
 
421
  # @ polylang
422
- #: include/languages-form.php:251
423
  #, php-format
424
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
425
  msgstr ""
426
 
427
  # @ polylang
428
- #: include/languages-form.php:260
429
  msgid "Media"
430
  msgstr ""
431
 
432
  # @ polylang
433
- #: include/languages-form.php:266
434
  msgid "Activate languages and translations for media"
435
  msgstr ""
436
 
437
- #: include/languages-form.php:273
438
  msgid "Synchronization"
439
  msgstr ""
440
 
441
  # @ polylang
442
- #: include/languages-form.php:287
443
  msgid "Custom post types"
444
  msgstr ""
445
 
446
  # @ polylang
447
- #: include/languages-form.php:300
448
  msgid "Activate languages and translations for custom post types."
449
  msgstr ""
450
 
451
  # @ polylang
452
- #: include/languages-form.php:307
453
  msgid "Custom taxonomies"
454
  msgstr ""
455
 
456
  # @ polylang
457
- #: include/languages-form.php:320
458
  msgid "Activate languages and translations for custom taxonomies."
459
  msgstr ""
460
 
461
  # @ polylang
462
- #: include/list-table.php:26
463
- #: include/media-translations.php:22
464
- #: include/media-translations.php:60
465
- #: include/post-translations.php:10
466
- #: include/post-translations.php:33
467
- #: include/term-translations.php:18
468
- #: include/term-translations.php:80
469
  msgid "Edit"
470
  msgstr "Rediģēt"
471
 
472
  # @ polylang
473
- #: include/list-table.php:27
474
- #: include/list-table.php:162
475
  msgid "Delete"
476
  msgstr "Dzēst"
477
 
478
  # @ polylang
479
- #: include/list-table.php:36
480
  msgid "Code"
481
  msgstr "Kods"
482
 
483
  # @ polylang
484
- #: include/list-table.php:38
485
  msgid "Flag"
486
  msgstr "Karogs"
487
 
488
  # @ polylang
489
- #: include/list-table.php:39
490
  msgid "Posts"
491
  msgstr "Raksti"
492
 
493
  # @ polylang
494
- #: include/list-table.php:125
495
  msgid "Name"
496
  msgstr "Nosaukums"
497
 
498
  # @ polylang
499
- #: include/list-table.php:126
500
  msgid "String"
501
  msgstr "Teksts"
502
 
503
  # @ polylang
504
- #: include/media-translations.php:6
505
- #: include/media-translations.php:44
506
- #: include/term-translations.php:16
507
  msgid "Translation"
508
  msgstr "Tulkojums"
509
 
510
  # @ polylang
511
- #: include/media-translations.php:31
512
- #: include/media-translations.php:68
513
- #: include/post-translations.php:38
514
- #: include/term-translations.php:60
515
  msgid "Add new"
516
  msgstr "Pievienot jaunu"
517
 
518
  # @ polylang
519
- #: include/post-translations.php:5
520
  msgid "ID of pages in other languages:"
521
  msgstr "lapas ID citās valodās:"
522
 
523
  # @ polylang
524
- #: include/post-translations.php:5
525
  msgid "ID of posts in other languages:"
526
  msgstr "raksta ID citās valodās:"
527
 
528
  # @ polylang
529
- #: include/post-translations.php:9
530
  msgid "Page ID"
531
  msgstr "Lapas ID"
532
 
533
  # @ polylang
534
- #: include/post-translations.php:9
535
  msgid "Post ID"
536
  msgstr "Raksta ID"
537
 
538
  # @ polylang
539
- #: include/term-translations.php:48
540
  msgid "No untranslated term"
541
  msgstr "Netulkotu terminu nav"
542
 
543
  # @ polylang
544
- #: include/widget.php:6
545
  msgid "Language Switcher"
546
  msgstr "Valodu Izvēlne"
547
 
548
  # @ polylang
549
- #: include/widget.php:6
550
  msgid "Displays a language switcher"
551
  msgstr "Parāda valodu izvēlni"
552
 
553
  # @ polylang
554
- #: include/widget.php:69
555
  msgid "Title:"
556
  msgstr "Virsraksts:"
557
 
@@ -562,34 +549,64 @@ msgid "Adds multilingual capability to WordPress"
562
  msgstr ""
563
 
564
  # polylang
565
- #: polylang.php:133
566
  #, php-format
567
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
568
  msgstr "JÅ«s lietojat WordPress %s. Polylang nepiecieÅ¡ama vismaz WordPress %s versija."
569
 
570
  # @ polylang
571
- #: polylang.php:174
572
- msgid "For some reasons, Polylang could not create a table in your database."
573
- msgstr "Kaut kādu iemeslu dēļ Polylang nevārēja izveidot vajadzīgo tabulu datubāzē."
574
-
575
- # @ polylang
576
- #: polylang.php:235
577
  msgid "Polylang has been deactivated because you upgraded from a too old version."
578
  msgstr ""
579
 
580
  # @ polylang
581
- #: polylang.php:237
582
  #, php-format
583
  msgid "Please upgrade first to %s before ugrading to %s."
584
  msgstr ""
585
 
586
  # @ polylang
587
- #: include/list-table.php:124
588
  msgid "Group"
589
  msgstr ""
590
 
591
  # @ polylang
592
- #: include/list-table.php:173
593
  msgid "View all groups"
594
  msgstr ""
595
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  "Project-Id-Version: polylang 0.8\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2013-10-17 11:42+0100\n"
7
  "Last-Translator: Andis <andis.grossteins@gmail.com>\n"
8
  "Language-Team: \n"
9
  "Language: \n"
20
  "X-Poedit-SearchPath-0: .\n"
21
 
22
  # @ polylang
23
+ #: admin/view-about.php:3
24
  #, php-format
25
  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."
26
  msgstr "Polylang tiek piedāvāts ar plaÅ¡u %sdokumentāciju%s (tikai angliski). Tā satur informāciju par to kā uzstādÄ«t vietni vairākās valodās un kā to lietot ikdienā, BUJ, kā arÄ« dokumentāciju programmētājiem par spraudņu un kažociņu pielāgoÅ¡anu."
27
 
28
  # @ polylang
29
+ #: admin/view-about.php:9
30
  #, php-format
31
  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."
32
  msgstr "NoderÄ«gu informāciju varat atrast arÄ« %satbalsata forumā%s. Ieteicams veikt meklēšanu pirms atvērt jaunu foruma tematu."
33
 
34
  # @ polylang
35
+ #: admin/view-about.php:16
36
  #, php-format
37
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
38
  msgstr "Polylang ir bezmaksas un tiek piedāvāts ar to paÅ¡u licenci kā WordPress, %sGPL%s."
39
 
40
  # @ polylang
41
+ #: admin/view-about.php:22
42
  #, php-format
43
  msgid "If you wonder how you can help the project, just %sread this%s."
44
  msgstr "Ja jÅ«s prātojat kā varētu palÄ«dzēt Å¡im projektam, %sizlasiet Å¡o%s."
45
 
46
  # @ polylang
47
+ #: admin/view-about.php:27
48
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
49
  msgstr "Visbeidzot, ja jums patÄ«k Å¡is spraudnis vai ari tas palÄ«dz jÅ«su biznesā, ziedojumi autoram tiks augsti vērtēti."
50
 
51
  # @ polylang
52
+ #: admin/admin-filters-post.php:76
53
+ #: admin/admin.php:83
54
+ #: admin/admin.php:187
55
+ #: admin/settings.php:42
56
+ #: admin/settings.php:57
57
+ #: include/model.php:490
 
58
  msgid "Languages"
59
  msgstr "Valodas"
60
 
61
  # @ polylang
62
+ #: include/switcher.php:22
63
  msgid "Displays language names"
64
  msgstr "Rāda valodu nosaukumus"
65
 
66
  # @ polylang
67
+ #: include/switcher.php:23
68
  msgid "Displays flags"
69
  msgstr "Rāda karogus"
70
 
71
  # @ polylang
72
+ #: include/switcher.php:24
73
  msgid "Forces link to front page"
74
  msgstr "Valodas saite ved uz sākumlapu"
75
 
76
  # @ polylang
77
+ #: include/switcher.php:25
78
  msgid "Hides the current language"
79
  msgstr "Paslēpt aktÄ«vo valodu"
80
 
81
  # @ polylang
82
+ #: include/switcher.php:29
83
  msgid "Displays as dropdown"
84
  msgstr "Rāda kā nolaižamo izvēlni"
85
 
86
  # @ polylang
87
+ #: admin/admin.php:188
88
  msgid "Filters content by language"
89
  msgstr ""
90
 
91
  # @ polylang
92
+ #: admin/admin.php:183
93
  msgid "Show all languages"
94
  msgstr "RādÄ«t visas valodas"
95
 
96
  # @ polylang
97
+ #: admin/admin-filters-columns.php:126
98
+ #: admin/admin-filters-columns.php:215
99
  msgid "Add new translation"
100
  msgstr "Pievienot jaunu tulkojumu"
101
 
102
  # @ polylang
103
+ #: admin/admin-filters-columns.php:163
104
+ #: admin/admin-filters-media.php:58
105
+ #: admin/admin-filters-post.php:109
106
+ #: admin/admin-filters-term.php:72
107
+ #: admin/admin-filters-term.php:106
108
+ #: admin/view-translations-media.php:7
109
+ #: admin/view-translations-media.php:45
110
+ #: admin/view-translations-post.php:8
111
+ #: admin/view-translations-term.php:15
112
+ #: include/model.php:491
 
113
  msgid "Language"
114
  msgstr "Valoda"
115
 
116
  # @ polylang
117
+ #: admin/admin-filters-media.php:73
118
+ #: admin/admin-filters-media.php:112
119
+ #: admin/table-string.php:111
120
+ #: admin/view-translations-media.php:42
121
+ #: admin/view-translations-term.php:6
122
+ #: admin/view-translations-term.php:11
123
  msgid "Translations"
124
  msgstr "Tulkojumi"
125
 
126
  # @ polylang
127
+ #: admin/admin-filters-term.php:74
128
+ #: admin/admin-filters-term.php:108
129
  msgid "Sets the language"
130
  msgstr "Nosaka valodu"
131
 
132
  # @ polylang
133
+ #: admin/admin-filters.php:60
134
  msgid "The widget is displayed for:"
135
  msgstr "Logdaļa tiek rādÄ«ta:"
136
 
137
  # @ polylang
138
+ #: admin/admin-filters.php:63
139
+ #: include/model.php:492
140
  msgid "All languages"
141
  msgstr "Visas valodas"
142
 
143
  # @ polylang
144
+ #: admin/admin-filters.php:120
145
  msgid "Admin language"
146
  msgstr "VadÄ«bas valoda"
147
 
148
+ #: admin/admin-filters.php:123
149
  msgid "Wordpress default"
150
  msgstr ""
151
 
152
  # @ default
153
  # @ polylang
154
+ #: admin/admin.php:123
155
+ #: admin/settings.php:62
156
  msgid "Settings"
157
  msgstr "UzstādÄ«jumi"
158
 
159
  # @ polylang
160
+ #: admin/admin-filters.php:151
161
  msgid "Upgrading language files&#8230;"
162
  msgstr "Atjaunina valodu failus&#8230;"
163
 
164
  # @ polylang
165
+ #: admin/settings.php:38
166
  msgid "About Polylang"
167
  msgstr "Par Polylang"
168
 
169
  # @ polylang
170
+ #: admin/settings.php:46
 
171
  msgid "Strings translations"
172
  msgstr "Tekstu tulkojumi"
173
 
174
  # @ polylang
175
+ #: admin/settings.php:61
 
176
  msgid "Strings translation"
177
  msgstr "Tekstu tulkoÅ¡ana"
178
 
179
  # @ polylang
180
+ #: admin/settings.php:74
181
  msgid "Enter a valid WorPress locale"
182
  msgstr "Ievadiet derÄ«gu WordPress valodas kodu"
183
 
184
  # @ polylang
185
+ #: admin/settings.php:76
 
 
 
 
 
186
  msgid "The language code must be unique"
187
  msgstr "Valodas kodam jābÅ«t unikālam"
188
 
189
  # @ polylang
190
+ #: admin/settings.php:77
191
  msgid "The language must have a name"
192
  msgstr "Valodai ir nepiecieÅ¡ams nosaukums"
193
 
194
  # @ polylang
195
+ #: admin/settings.php:78
196
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
197
  msgstr "Valoda tika izveidota, bet WordPress tulkojumu fails netika lejuplādēts. LÅ«dzu uzstādiet to manuāli."
198
 
199
  # @ polylang
200
+ #: admin/settings.php:305
201
  msgid "Widget title"
202
  msgstr "Logdaļas virsraksts"
203
 
204
  # @ polylang
205
+ #: admin/settings.php:323
206
  msgid "Taxonomies"
207
  msgstr ""
208
 
209
  # @ polylang
210
+ #: admin/settings.php:324
211
  msgid "Custom fields"
212
  msgstr ""
213
 
214
  # @ polylang
215
+ #: admin/settings.php:325
216
  msgid "Comment status"
217
  msgstr ""
218
 
219
  # @ polylang
220
+ #: admin/settings.php:326
221
  msgid "Ping status"
222
  msgstr ""
223
 
224
  # @ polylang
225
+ #: admin/settings.php:327
226
  msgid "Sticky posts"
227
  msgstr ""
228
 
229
  # @ polylang
230
+ #: admin/settings.php:328
231
  msgid "Published date"
232
  msgstr ""
233
 
234
  # @ polylang
235
+ #: admin/settings.php:329
236
  msgid "Post format"
237
  msgstr ""
238
 
239
  # @ default
240
+ #: admin/settings.php:330
241
  msgid "Page parent"
242
  msgstr ""
243
 
244
  # @ polylang
245
+ #: admin/settings.php:331
246
  msgid "Page template"
247
  msgstr ""
248
 
249
  # @ polylang
250
+ #: admin/settings.php:332
251
  msgid "Page order"
252
  msgstr ""
253
 
254
  # @ polylang
255
+ #: admin/settings.php:333
256
  msgid "Featured image"
257
  msgstr ""
258
 
259
  # @ polylang
260
+ #: admin/view-languages.php:42
261
  msgid "Edit language"
262
  msgstr "Rediģēt valodu"
263
 
264
  # @ polylang
265
+ #: admin/view-languages.php:42
266
+ #: admin/view-languages.php:117
267
  msgid "Add new language"
268
  msgstr "Pievienot jaunu valodu"
269
 
270
  # @ polylang
271
+ #: admin/view-languages.php:58
272
  msgid "Choose a language"
273
  msgstr "Izvēlēties valodu"
274
 
275
  # @ polylang
276
+ #: admin/view-languages.php:72
277
  msgid "You can choose a language in the list or directly edit it below."
278
  msgstr "JÅ«s varat izvēlēties valodu no saraksta, vai ari rediģēt to zemāk."
279
 
280
  # @ polylang
281
+ #: admin/table-languages.php:74
282
+ #: admin/view-languages.php:76
283
  msgid "Full name"
284
  msgstr "Pilns nosaukums"
285
 
286
  # @ polylang
287
+ #: admin/view-languages.php:78
288
  msgid "The name is how it is displayed on your site (for example: English)."
289
  msgstr "Nosaukums, kādu to attēlos lapā (piemēram: LatvieÅ¡u)"
290
 
291
  # @ polylang
292
+ #: admin/table-languages.php:75
293
+ #: admin/view-languages.php:82
294
  msgid "Locale"
295
  msgstr "Lokāle"
296
 
297
  # @ polylang
298
+ #: admin/view-languages.php:87
299
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
300
  msgstr "WordPress valodas lokāle Å¡ai valodai (piemēram: en_US). Jums nāksies uzstādÄ«t .mo failu Å¡ai valodai."
301
 
302
  # @ polylang
303
+ #: admin/view-languages.php:91
304
  msgid "Language code"
305
  msgstr "Valodas kods (piem.: lv)"
306
 
307
  # @ polylang
308
+ #: admin/view-languages.php:93
309
  msgid "2-letters ISO 639-1 language code (for example: en)"
310
  msgstr "2 burtu ISO 639-1 valodas kods (piemēram: en)"
311
 
312
  # @ polylang
313
+ #: admin/view-languages.php:97
314
  msgid "Text direction"
315
  msgstr "LasÄ«Å¡anas virziens"
316
 
317
  # @ polylang
318
+ #: admin/view-languages.php:101
319
  msgid "left to right"
320
  msgstr "no kreisās uz labo"
321
 
322
  # @ polylang
323
+ #: admin/view-languages.php:106
324
  msgid "right to left"
325
  msgstr "no labās uz kreiso"
326
 
327
  # @ polylang
328
+ #: admin/view-languages.php:108
329
  msgid "Choose the text direction for the language"
330
  msgstr "Izvēlieties lasÄ«Å¡anas virzienu Å¡ai valodai"
331
 
332
  # @ polylang
333
+ #: admin/table-languages.php:77
334
+ #: admin/view-languages.php:112
335
  msgid "Order"
336
  msgstr "SecÄ«ba"
337
 
338
  # @ polylang
339
+ #: admin/view-languages.php:114
340
  msgid "Position of the language in the language switcher"
341
  msgstr "Valodas atraÅ¡anās vieta valodu izvēlnē"
342
 
343
  # @ polylang
344
+ #: admin/admin-nav-menu.php:51
345
+ #: admin/admin-nav-menu.php:79
346
+ #: admin/admin-nav-menu.php:82
347
+ #: admin/admin-nav-menu.php:113
348
+ #: admin/admin-nav-menu.php:170
349
+ #: include/upgrade.php:175
350
  msgid "Language switcher"
351
  msgstr "Valodu izvēlne"
352
 
353
  # @ polylang
354
+ #: admin/view-languages.php:143
355
  msgid "Search translations"
356
  msgstr ""
357
 
358
  # @ polylang
359
+ #: admin/view-languages.php:146
360
  msgid "Clean strings translation database"
361
  msgstr ""
362
 
363
  # @ polylang
364
+ #: admin/view-languages.php:164
365
  msgid "Default language"
366
  msgstr "Noklusētā valoda"
367
 
368
  # @ polylang
369
+ #: admin/view-languages.php:179
370
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
371
  msgstr "Ir atrasti raksti, lapas, tēmas, vai birkas bez uzstādÄ«tas valodas. Vai vēlaties uzstādÄ«t tām visām noklusēto valodu?"
372
 
373
  # @ polylang
374
+ #: admin/view-languages.php:187
375
  msgid "Detect browser language"
376
  msgstr "Noteikt pārlÅ«ka valodu"
377
 
378
  # @ polylang
379
+ #: admin/view-languages.php:193
380
  msgid "When the front page is visited, set the language according to the browser preference"
381
  msgstr "Kad tiek apmeklēta sākumlapa, uzstāda valodu atkarÄ«bā no pārlÅ«kprogrammas uzstādÄ«jumiem"
382
 
383
  # @ polylang
384
+ #: admin/view-languages.php:200
385
  msgid "URL modifications"
386
  msgstr "SaiÅ¡u modifikācijas"
387
 
388
  # @ polylang
389
+ #: admin/view-languages.php:206
390
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
391
  msgstr ""
392
 
 
 
 
 
393
  # @ polylang
394
+ #: admin/view-languages.php:253
395
  msgid "Remove /language/ in pretty permalinks. Example:"
396
  msgstr "NerādÄ«t /language/ nemainÄ«gajās saitēs. Piemērs:"
397
 
398
  # @ polylang
399
+ #: admin/view-languages.php:262
400
  msgid "Keep /language/ in pretty permalinks. Example:"
401
  msgstr "Atstāt /language/ nemainÄ«gajās saitēs. Piemērs:"
402
 
403
  # @ polylang
404
+ #: admin/view-languages.php:271
405
  msgid "Hide URL language information for default language"
406
  msgstr "Paslēpt noklusētās valodas informāciju hipersaitēs"
407
 
408
  # @ polylang
409
+ #: admin/view-languages.php:281
410
  #, php-format
411
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
412
  msgstr ""
413
 
414
  # @ polylang
415
+ #: admin/view-languages.php:290
416
  msgid "Media"
417
  msgstr ""
418
 
419
  # @ polylang
420
+ #: admin/view-languages.php:296
421
  msgid "Activate languages and translations for media"
422
  msgstr ""
423
 
424
+ #: admin/view-languages.php:303
425
  msgid "Synchronization"
426
  msgstr ""
427
 
428
  # @ polylang
429
+ #: admin/view-languages.php:320
430
  msgid "Custom post types"
431
  msgstr ""
432
 
433
  # @ polylang
434
+ #: admin/view-languages.php:333
435
  msgid "Activate languages and translations for custom post types."
436
  msgstr ""
437
 
438
  # @ polylang
439
+ #: admin/view-languages.php:340
440
  msgid "Custom taxonomies"
441
  msgstr ""
442
 
443
  # @ polylang
444
+ #: admin/view-languages.php:353
445
  msgid "Activate languages and translations for custom taxonomies."
446
  msgstr ""
447
 
448
  # @ polylang
449
+ #: admin/table-languages.php:54
450
+ #: admin/view-translations-media.php:24
451
+ #: admin/view-translations-media.php:62
452
+ #: admin/view-translations-post.php:10
453
+ #: admin/view-translations-post.php:33
454
+ #: admin/view-translations-term.php:18
455
+ #: admin/view-translations-term.php:80
456
  msgid "Edit"
457
  msgstr "Rediģēt"
458
 
459
  # @ polylang
460
+ #: admin/table-languages.php:60
461
+ #: admin/table-string.php:167
462
  msgid "Delete"
463
  msgstr "Dzēst"
464
 
465
  # @ polylang
466
+ #: admin/table-languages.php:76
467
  msgid "Code"
468
  msgstr "Kods"
469
 
470
  # @ polylang
471
+ #: admin/table-languages.php:78
472
  msgid "Flag"
473
  msgstr "Karogs"
474
 
475
  # @ polylang
476
+ #: admin/table-languages.php:79
477
  msgid "Posts"
478
  msgstr "Raksti"
479
 
480
  # @ polylang
481
+ #: admin/table-string.php:109
482
  msgid "Name"
483
  msgstr "Nosaukums"
484
 
485
  # @ polylang
486
+ #: admin/table-string.php:110
487
  msgid "String"
488
  msgstr "Teksts"
489
 
490
  # @ polylang
491
+ #: admin/view-translations-media.php:8
492
+ #: admin/view-translations-media.php:46
493
+ #: admin/view-translations-term.php:16
494
  msgid "Translation"
495
  msgstr "Tulkojums"
496
 
497
  # @ polylang
498
+ #: admin/view-translations-media.php:33
499
+ #: admin/view-translations-media.php:70
500
+ #: admin/view-translations-post.php:38
501
+ #: admin/view-translations-term.php:60
502
  msgid "Add new"
503
  msgstr "Pievienot jaunu"
504
 
505
  # @ polylang
506
+ #: admin/view-translations-post.php:5
507
  msgid "ID of pages in other languages:"
508
  msgstr "lapas ID citās valodās:"
509
 
510
  # @ polylang
511
+ #: admin/view-translations-post.php:5
512
  msgid "ID of posts in other languages:"
513
  msgstr "raksta ID citās valodās:"
514
 
515
  # @ polylang
516
+ #: admin/view-translations-post.php:9
517
  msgid "Page ID"
518
  msgstr "Lapas ID"
519
 
520
  # @ polylang
521
+ #: admin/view-translations-post.php:9
522
  msgid "Post ID"
523
  msgstr "Raksta ID"
524
 
525
  # @ polylang
526
+ #: admin/view-translations-term.php:48
527
  msgid "No untranslated term"
528
  msgstr "Netulkotu terminu nav"
529
 
530
  # @ polylang
531
+ #: include/widget-languages.php:16
532
  msgid "Language Switcher"
533
  msgstr "Valodu Izvēlne"
534
 
535
  # @ polylang
536
+ #: include/widget-languages.php:16
537
  msgid "Displays a language switcher"
538
  msgstr "Parāda valodu izvēlni"
539
 
540
  # @ polylang
541
+ #: include/widget-languages.php:100
542
  msgid "Title:"
543
  msgstr "Virsraksts:"
544
 
549
  msgstr ""
550
 
551
  # polylang
552
+ #: polylang.php:157
553
  #, php-format
554
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
555
  msgstr "JÅ«s lietojat WordPress %s. Polylang nepiecieÅ¡ama vismaz WordPress %s versija."
556
 
557
  # @ polylang
558
+ #: include/upgrade.php:75
 
 
 
 
 
559
  msgid "Polylang has been deactivated because you upgraded from a too old version."
560
  msgstr ""
561
 
562
  # @ polylang
563
+ #: include/upgrade.php:77
564
  #, php-format
565
  msgid "Please upgrade first to %s before ugrading to %s."
566
  msgstr ""
567
 
568
  # @ polylang
569
+ #: admin/table-string.php:108
570
  msgid "Group"
571
  msgstr ""
572
 
573
  # @ polylang
574
+ #: admin/table-string.php:186
575
  msgid "View all groups"
576
  msgstr ""
577
 
578
+ # @ polylang
579
+ #: admin/table-languages.php:59
580
+ msgid "You are about to permanently delete this language. Are you sure?"
581
+ msgstr ""
582
+
583
+ # @ polylang
584
+ #: admin/view-languages.php:147
585
+ msgid "Use this to remove unused strings from database, for example after a plugin has been uninstalled."
586
+ msgstr ""
587
+
588
+ # @ polylang
589
+ #: admin/view-languages.php:214
590
+ msgid "The language is set from the directory name in pretty permalinks. Example:"
591
+ msgstr ""
592
+
593
+ # @ polylang
594
+ #: admin/view-languages.php:223
595
+ msgid "The language is set from the subdomain name in pretty permalinks. Example:"
596
+ msgstr ""
597
+
598
+ # @ polylang
599
+ #: admin/view-languages.php:314
600
+ 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."
601
+ msgstr ""
602
+
603
+ # @ polylang
604
+ #: admin/settings.php:75
605
+ msgid "The language code contains invalid characters"
606
+ msgstr ""
607
+
608
+ # @ polylang
609
+ #: admin/view-languages.php:232
610
+ msgid "The language is set from different domains:"
611
+ msgstr ""
612
+
languages/polylang-nb_NO.mo CHANGED
Binary file
languages/polylang-nb_NO.po CHANGED
@@ -3,7 +3,7 @@ msgstr ""
3
  "Project-Id-Version: Polylang v0.9.8\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
- "PO-Revision-Date: 2013-05-15 10:41+0100\n"
7
  "Last-Translator: Tom Boersma <info@oransje.com>\n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
@@ -15,11 +15,11 @@ msgstr ""
15
  "_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"
16
  "X-Poedit-Basepath: ../\n"
17
  "X-Textdomain-Support: yes\n"
18
- "X-Generator: Poedit 1.5.5\n"
19
  "X-Poedit-SearchPath-0: .\n"
20
 
21
  # @ polylang
22
- #: include/about.php:3
23
  #, php-format
24
  msgid ""
25
  "Polylang is provided with an extensive %sdocumentation%s (in English only). "
@@ -33,7 +33,7 @@ msgstr ""
33
  "programmerere for å tilpasse sine plugins og temaer."
34
 
35
  # @ polylang
36
- #: include/about.php:9
37
  #, php-format
38
  msgid ""
39
  "You will also find useful information in the %ssupport forum%s. However "
@@ -43,7 +43,7 @@ msgstr ""
43
  "søk før du legger til et nytt emne."
44
 
45
  # @ polylang
46
- #: include/about.php:16
47
  #, php-format
48
  msgid ""
49
  "Polylang is free of charge and is released under the same license as "
@@ -52,13 +52,13 @@ msgstr ""
52
  "Polylang er gratis og er utgitt under samme lisens som WordPress, %sGPL%s."
53
 
54
  # @ polylang
55
- #: include/about.php:22
56
  #, php-format
57
  msgid "If you wonder how you can help the project, just %sread this%s."
58
  msgstr "Hvis du lurer på hvordan du kan hjelpe prosjektet, %sles her%s."
59
 
60
  # @ polylang
61
- #: include/about.php:27
62
  msgid ""
63
  "Finally if you like this plugin or if it helps your business, donations to "
64
  "the author are greatly appreciated."
@@ -67,142 +67,135 @@ msgstr ""
67
  "donasjoner til forfatteren er verdsatt i høyeste grad."
68
 
69
  # @ polylang
70
- #: include/admin-base.php:55 include/admin-base.php:190
71
- #: include/admin-filters.php:243 include/admin.php:23 include/admin.php:301
72
- #: include/list-table.php:13 polylang.php:339
73
  msgid "Languages"
74
  msgstr "Språk"
75
 
76
  # @ polylang
77
- #: include/admin-base.php:153
78
  msgid "Displays language names"
79
  msgstr "Viser språknavn"
80
 
81
  # @ polylang
82
- #: include/admin-base.php:154
83
  msgid "Displays flags"
84
  msgstr "Viser flagg"
85
 
86
  # @ polylang
87
- #: include/admin-base.php:155
88
  msgid "Forces link to front page"
89
  msgstr "Tvinger lenke til forsiden"
90
 
91
  # @ polylang
92
- #: include/admin-base.php:156
93
  msgid "Hides the current language"
94
  msgstr "Skjuler nåværende språk"
95
 
96
  # @ polylang
97
- #: include/admin-base.php:160
98
  msgid "Displays as dropdown"
99
  msgstr "Vises som dropdown"
100
 
101
  # @ polylang
102
- #: include/admin-base.php:191
103
  msgid "Filters content by language"
104
  msgstr "Filtre innhold etter språk"
105
 
106
  # @ polylang
107
- #: include/admin-base.php:186
108
  msgid "Show all languages"
109
  msgstr "Vis alle språk"
110
 
111
  # @ polylang
112
- #: include/admin-filters.php:181 include/admin-filters.php:877
113
  msgid "Add new translation"
114
  msgstr "Legg til ny oversettelse"
115
 
116
  # @ polylang
117
- #: include/admin-filters.php:209 include/admin-filters.php:267
118
- #: include/admin-filters.php:601 include/admin-filters.php:817
119
- #: include/admin-filters.php:835 include/list-table.php:12
120
- #: include/media-translations.php:5 include/media-translations.php:43
121
- #: include/post-translations.php:8 include/term-translations.php:15
122
- #: polylang.php:340
123
  msgid "Language"
124
  msgstr "Språk"
125
 
126
  # @ polylang
127
- #: include/admin-filters.php:616 include/admin-filters.php:651
128
- #: include/list-table.php:127 include/media-translations.php:40
129
- #: include/term-translations.php:6 include/term-translations.php:11
130
  msgid "Translations"
131
  msgstr "Oversettelser"
132
 
133
  # @ polylang
134
- #: include/admin-filters.php:819 include/admin-filters.php:838
135
  msgid "Sets the language"
136
  msgstr "Bestemmer språket"
137
 
138
  # @ polylang
139
- #: include/admin-filters.php:1053
140
  msgid "The widget is displayed for:"
141
  msgstr "Widgeten vises for:"
142
 
143
  # @ polylang
144
- #: include/admin-filters.php:1057 polylang.php:341
145
  msgid "All languages"
146
  msgstr "Alle språk"
147
 
148
  # @ polylang
149
- #: include/admin-filters.php:1080
150
  msgid "Admin language"
151
  msgstr "Admin språk"
152
 
153
  # @ polylang
154
- #: include/admin-filters.php:1085
155
  msgid "Wordpress default"
156
  msgstr "WordPress standard"
157
 
158
  # @ default
159
  # @ polylang
160
- #: include/admin-filters.php:1114 include/admin.php:306
161
  msgid "Settings"
162
  msgstr "Innstillinger"
163
 
164
  # @ polylang
165
- #: include/admin-filters.php:1120
166
  msgid "Upgrading language files&#8230;"
167
  msgstr "Oppgraderer språkfiler&#8230;"
168
 
169
  # @ polylang
170
- #: include/admin.php:22
171
  msgid "About Polylang"
172
  msgstr "Om Polylang"
173
 
174
  # @ polylang
175
- #: include/admin.php:27 include/list-table.php:82
176
  msgid "Strings translations"
177
  msgstr "String oversettelser"
178
 
179
  # @ polylang
180
- #: include/admin.php:305 include/list-table.php:81
181
  msgid "Strings translation"
182
  msgstr "String oversettelse"
183
 
184
  # @ polylang
185
- #: include/admin.php:345
186
- msgid "Enter a valid WorPress locale"
187
  msgstr "Tast inn en gyldig WordPress Locale"
188
 
189
  # @ polylang
190
- #: include/admin.php:346
191
- msgid "The language code must be 2 characters long"
192
- msgstr "Språkkoden må være 2 bokstaver lang"
193
-
194
- # @ polylang
195
- #: include/admin.php:328
196
  msgid "The language code must be unique"
197
  msgstr "Språkkoden må være unikt"
198
 
199
  # @ polylang
200
- #: include/admin.php:329
201
  msgid "The language must have a name"
202
  msgstr "Språket må ha et navn"
203
 
204
  # @ polylang
205
- #: include/admin.php:330
206
  msgid ""
207
  "The language was created, but the WordPress language file was not "
208
  "downloaded. Please install it manually."
@@ -211,102 +204,102 @@ msgstr ""
211
  "Vennligst installer den manuelt."
212
 
213
  # @ polylang
214
- #: include/admin.php:449
215
  msgid "Widget title"
216
  msgstr "Widget tittel"
217
 
218
  # @ polylang
219
- #: include/base.php:368
220
  msgid "Taxonomies"
221
  msgstr "Taksonomier"
222
 
223
  # @ polylang
224
- #: include/base.php:369
225
  msgid "Custom fields"
226
  msgstr "Tilpassede felt"
227
 
228
  # @ polylang
229
- #: include/base.php:370
230
  msgid "Comment status"
231
  msgstr "Kommentar status"
232
 
233
  # @ polylang
234
- #: include/base.php:371
235
  msgid "Ping status"
236
  msgstr "Ping status"
237
 
238
  # @ polylang
239
- #: include/base.php:372
240
  msgid "Sticky posts"
241
  msgstr "Klebrige innlegg"
242
 
243
  # @ polylang
244
- #: include/base.php:373
245
  msgid "Published date"
246
  msgstr "Dato publisering"
247
 
248
  # @ default
249
- #: include/base.php:374
250
  msgid "Post format"
251
  msgstr "Format"
252
 
253
  # @ default
254
- #: include/base.php:375
255
  msgid "Page parent"
256
  msgstr "Side forelder"
257
 
258
  # @ polylang
259
- #: include/base.php:376
260
  msgid "Page template"
261
  msgstr "Sidemal"
262
 
263
  # @ polylang
264
- #: include/base.php:377
265
  msgid "Page order"
266
  msgstr "Side rekkefølge"
267
 
268
  # @ polylang
269
- #: include/base.php:378
270
  msgid "Featured image"
271
  msgstr "Fremhevet bilde"
272
 
273
  # @ polylang
274
- #: include/languages-form.php:42
275
  msgid "Edit language"
276
  msgstr "Rediger språk"
277
 
278
  # @ polylang
279
- #: include/languages-form.php:42 include/languages-form.php:123
280
  msgid "Add new language"
281
  msgstr "Legg til nytt språk"
282
 
283
  # @ polylang
284
- #: include/languages-form.php:64
285
  msgid "Choose a language"
286
  msgstr "Velg et språk"
287
 
288
  # @ polylang
289
- #: include/languages-form.php:78
290
  msgid "You can choose a language in the list or directly edit it below."
291
  msgstr "Du kan velge et språk fra listen eller redigere direkte nedenfor."
292
 
293
  # @ polylang
294
- #: include/languages-form.php:82 include/list-table.php:34
295
  msgid "Full name"
296
  msgstr "Fullt navn"
297
 
298
  # @ polylang
299
- #: include/languages-form.php:84
300
  msgid "The name is how it is displayed on your site (for example: English)."
301
  msgstr "Navnet som det vises på nettstedet ditt (for eksempel: English)."
302
 
303
  # @ polylang
304
- #: include/languages-form.php:88 include/list-table.php:35
305
  msgid "Locale"
306
  msgstr "Locale"
307
 
308
  # @ polylang
309
- #: include/languages-form.php:93
310
  msgid ""
311
  "Wordpress Locale for the language (for example: en_US). You will need to "
312
  "install the .mo file for this language."
@@ -315,68 +308,69 @@ msgstr ""
315
  "filen for dette språket."
316
 
317
  # @ polylang
318
- #: include/languages-form.php:97
319
  msgid "Language code"
320
  msgstr "Språkkode"
321
 
322
  # @ polylang
323
- #: include/languages-form.php:99
324
  msgid "2-letters ISO 639-1 language code (for example: en)"
325
  msgstr "2-bokstavers ISO 639-1 språkkode (for eksempel: en)"
326
 
327
  # @ polylang
328
- #: include/languages-form.php:103
329
  msgid "Text direction"
330
  msgstr "Tekstretning"
331
 
332
  # @ polylang
333
- #: include/languages-form.php:107
334
  msgid "left to right"
335
  msgstr "venstre til høyre"
336
 
337
  # @ polylang
338
- #: include/languages-form.php:112
339
  msgid "right to left"
340
  msgstr "høyre til venstre"
341
 
342
  # @ polylang
343
- #: include/languages-form.php:114
344
  msgid "Choose the text direction for the language"
345
  msgstr "Velg tekstretning for språket"
346
 
347
  # @ polylang
348
- #: include/languages-form.php:118 include/list-table.php:37
349
  msgid "Order"
350
  msgstr "Rekkefølge"
351
 
352
  # @ polylang
353
- #: include/languages-form.php:120
354
  msgid "Position of the language in the language switcher"
355
  msgstr "Språkets plasering i språkskifteren"
356
 
357
  # @ polylang
358
- #: include/nav-menu.php:28 include/nav-menu.php:51 include/nav-menu.php:54
359
- #: include/nav-menu.php:82 include/nav-menu.php:106 polylang.php:302
 
360
  msgid "Language switcher"
361
  msgstr "Språkskifter"
362
 
363
  # @ polylang
364
- #: include/languages-form.php:148
365
  msgid "Search translations"
366
  msgstr "Søk oversettelser"
367
 
368
  # @ polylang
369
- #: include/languages-form.php:151
370
  msgid "Clean strings translation database"
371
  msgstr "Rens string oversettelsene i databasen"
372
 
373
  # @ polylang
374
- #: include/languages-form.php:167
375
  msgid "Default language"
376
  msgstr "Standard språk"
377
 
378
  # @ polylang
379
- #: include/languages-form.php:179
380
  msgid ""
381
  "There are posts, pages, categories or tags without language set. Do you want "
382
  "to set them all to default language ?"
@@ -385,57 +379,48 @@ msgstr ""
385
  "sette dem alle til standard språk?"
386
 
387
  # @ polylang
388
- #: include/languages-form.php:187
389
  msgid "Detect browser language"
390
  msgstr "Detekter nettleserens språkpreferance"
391
 
392
  # @ polylang
393
- #: include/languages-form.php:193
394
  msgid ""
395
  "When the front page is visited, set the language according to the browser "
396
  "preference"
397
  msgstr "Når forsiden besøkes, velg språk i henhold til nettleserens preferanse"
398
 
399
  # @ polylang
400
- #: include/languages-form.php:200
401
  msgid "URL modifications"
402
  msgstr "URL modifikasjoner"
403
 
404
  # @ polylang
405
- #: include/languages-form.php:206
406
  msgid ""
407
  "The language is set from content. Posts, pages, categories and tags urls are "
408
  "not modified."
409
  msgstr ""
410
- "Språket er satt fra innhold. Innlegg, sider, kategorier og tags urls er ikke "
411
- "endret."
412
-
413
- # @ polylang
414
- #: include/languages-form.php:214
415
- msgid ""
416
- "The language code, for example /en/, is added to all urls when using pretty "
417
- "permalinks."
418
- msgstr ""
419
- "Språkkoden, for eksempel /en/, er lagt til alle urls når du bruker pene "
420
- "permalenker"
421
 
422
  # @ polylang
423
- #: include/languages-form.php:223
424
  msgid "Remove /language/ in pretty permalinks. Example:"
425
  msgstr "Fjern /language/ i pene permalenker. Eksempel:"
426
 
427
  # @ polylang
428
- #: include/languages-form.php:232
429
  msgid "Keep /language/ in pretty permalinks. Example:"
430
  msgstr "Behold /language/ i pene permalenker. Eksempel:"
431
 
432
  # @ polylang
433
- #: include/languages-form.php:241
434
  msgid "Hide URL language information for default language"
435
  msgstr "Skjul URL språkinformasjon for standard språk"
436
 
437
  # @ polylang
438
- #: include/languages-form.php:251
439
  #, php-format
440
  msgid ""
441
  "When using static front page, redirect the language page (example: %s) to "
@@ -445,127 +430,127 @@ msgstr ""
445
  "forsiden på riktig språk"
446
 
447
  # @ polylang
448
- #: include/languages-form.php:260
449
  msgid "Media"
450
  msgstr "Media"
451
 
452
  # @ polylang
453
- #: include/languages-form.php:266
454
  msgid "Activate languages and translations for media"
455
  msgstr "Aktiver språk og oversettelser for media"
456
 
457
  # @ polylang
458
- #: include/languages-form.php:273
459
  msgid "Synchronization"
460
  msgstr "Synkronisering"
461
 
462
  # @ polylang
463
- #: include/languages-form.php:287
464
  msgid "Custom post types"
465
  msgstr "Tilpassede innleggstyper"
466
 
467
  # @ polylang
468
- #: include/languages-form.php:300
469
  msgid "Activate languages and translations for custom post types."
470
  msgstr "Aktiver språk og oversettelser for tilpassede innleggstyper."
471
 
472
  # @ polylang
473
- #: include/languages-form.php:307
474
  msgid "Custom taxonomies"
475
  msgstr "Tilpassede taksonomier"
476
 
477
  # @ polylang
478
- #: include/languages-form.php:320
479
  msgid "Activate languages and translations for custom taxonomies."
480
  msgstr "Aktiver språk og oversettelser for tilpassede taksonomier."
481
 
482
  # @ polylang
483
- #: include/list-table.php:26 include/media-translations.php:22
484
- #: include/media-translations.php:60 include/post-translations.php:10
485
- #: include/post-translations.php:33 include/term-translations.php:18
486
- #: include/term-translations.php:80
487
  msgid "Edit"
488
  msgstr "Rediger"
489
 
490
  # @ polylang
491
- #: include/list-table.php:27 include/list-table.php:162
492
  msgid "Delete"
493
  msgstr "Slett"
494
 
495
  # @ polylang
496
- #: include/list-table.php:36
497
  msgid "Code"
498
  msgstr "Kode"
499
 
500
  # @ polylang
501
- #: include/list-table.php:38
502
  msgid "Flag"
503
  msgstr "Flagg"
504
 
505
  # @ polylang
506
- #: include/list-table.php:39
507
  msgid "Posts"
508
  msgstr "Innlegg"
509
 
510
  # @ polylang
511
- #: include/list-table.php:125
512
  msgid "Name"
513
  msgstr "Navn"
514
 
515
  # @ polylang
516
- #: include/list-table.php:126
517
  msgid "String"
518
  msgstr "String"
519
 
520
  # @ polylang
521
- #: include/media-translations.php:6 include/media-translations.php:44
522
- #: include/term-translations.php:16
523
  msgid "Translation"
524
  msgstr "Oversettelse"
525
 
526
  # @ polylang
527
- #: include/media-translations.php:31 include/media-translations.php:68
528
- #: include/post-translations.php:38 include/term-translations.php:60
529
  msgid "Add new"
530
  msgstr "Legg til ny"
531
 
532
  # @ polylang
533
- #: include/post-translations.php:5
534
  msgid "ID of pages in other languages:"
535
  msgstr "Sidens ID i andre språk:"
536
 
537
  # @ polylang
538
- #: include/post-translations.php:5
539
  msgid "ID of posts in other languages:"
540
  msgstr "Innleggets ID i andre språk:"
541
 
542
  # @ polylang
543
- #: include/post-translations.php:9
544
  msgid "Page ID"
545
  msgstr "Side ID"
546
 
547
  # @ polylang
548
- #: include/post-translations.php:9
549
  msgid "Post ID"
550
  msgstr "Innlegg ID"
551
 
552
  # @ polylang
553
- #: include/term-translations.php:48
554
  msgid "No untranslated term"
555
  msgstr "Ingen uoversatte uttrykk"
556
 
557
  # @ polylang
558
- #: include/widget.php:6
559
  msgid "Language Switcher"
560
  msgstr "Språkskifter"
561
 
562
  # @ polylang
563
- #: include/widget.php:6
564
  msgid "Displays a language switcher"
565
  msgstr "Viser en språkskifter"
566
 
567
  # @ polylang
568
- #: include/widget.php:69
569
  msgid "Title:"
570
  msgstr "Tittel:"
571
 
@@ -576,19 +561,13 @@ msgid "Adds multilingual capability to WordPress"
576
  msgstr "Legger til flerspråklig funksjonalitet til Wordpress"
577
 
578
  # @ polylang
579
- #: polylang.php:133
580
  #, php-format
581
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
582
  msgstr "Du bruker WordPress %s. Polylang krever minst WordPress %s."
583
 
584
  # @ polylang
585
- #: polylang.php:174
586
- msgid "For some reasons, Polylang could not create a table in your database."
587
- msgstr ""
588
- "Av en eller annen grunn kan ikke Polylang legge til en tabell i din database."
589
-
590
- # @ polylang
591
- #: polylang.php:235
592
  msgid ""
593
  "Polylang has been deactivated because you upgraded from a too old version."
594
  msgstr ""
@@ -596,17 +575,64 @@ msgstr ""
596
  "versjon."
597
 
598
  # @ polylang
599
- #: polylang.php:237
600
  #, php-format
601
  msgid "Please upgrade first to %s before ugrading to %s."
602
  msgstr "Vennligst oppgrader først til %s før du oppgraderer til %s."
603
 
604
  # @ polylang
605
- #: include/list-table.php:124
606
  msgid "Group"
607
  msgstr "Gruppe"
608
 
609
  # @ polylang
610
- #: include/list-table.php:173
611
  msgid "View all groups"
612
  msgstr "Vis alle grupper"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  "Project-Id-Version: Polylang v0.9.8\n"
4
  "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2013-10-31 05:51+0100\n"
7
  "Last-Translator: Tom Boersma <info@oransje.com>\n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
15
  "_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"
16
  "X-Poedit-Basepath: ../\n"
17
  "X-Textdomain-Support: yes\n"
18
+ "X-Generator: Poedit 1.5.7\n"
19
  "X-Poedit-SearchPath-0: .\n"
20
 
21
  # @ polylang
22
+ #: admin/view-about.php:3
23
  #, php-format
24
  msgid ""
25
  "Polylang is provided with an extensive %sdocumentation%s (in English only). "
33
  "programmerere for å tilpasse sine plugins og temaer."
34
 
35
  # @ polylang
36
+ #: admin/view-about.php:9
37
  #, php-format
38
  msgid ""
39
  "You will also find useful information in the %ssupport forum%s. However "
43
  "søk før du legger til et nytt emne."
44
 
45
  # @ polylang
46
+ #: admin/view-about.php:16
47
  #, php-format
48
  msgid ""
49
  "Polylang is free of charge and is released under the same license as "
52
  "Polylang er gratis og er utgitt under samme lisens som WordPress, %sGPL%s."
53
 
54
  # @ polylang
55
+ #: admin/view-about.php:22
56
  #, php-format
57
  msgid "If you wonder how you can help the project, just %sread this%s."
58
  msgstr "Hvis du lurer på hvordan du kan hjelpe prosjektet, %sles her%s."
59
 
60
  # @ polylang
61
+ #: admin/view-about.php:27
62
  msgid ""
63
  "Finally if you like this plugin or if it helps your business, donations to "
64
  "the author are greatly appreciated."
67
  "donasjoner til forfatteren er verdsatt i høyeste grad."
68
 
69
  # @ polylang
70
+ #: admin/admin-filters-post.php:76 admin/admin.php:83 admin/admin.php:187
71
+ #: admin/settings.php:42 admin/settings.php:57 include/model.php:490
 
72
  msgid "Languages"
73
  msgstr "Språk"
74
 
75
  # @ polylang
76
+ #: include/switcher.php:22
77
  msgid "Displays language names"
78
  msgstr "Viser språknavn"
79
 
80
  # @ polylang
81
+ #: include/switcher.php:23
82
  msgid "Displays flags"
83
  msgstr "Viser flagg"
84
 
85
  # @ polylang
86
+ #: include/switcher.php:24
87
  msgid "Forces link to front page"
88
  msgstr "Tvinger lenke til forsiden"
89
 
90
  # @ polylang
91
+ #: include/switcher.php:25
92
  msgid "Hides the current language"
93
  msgstr "Skjuler nåværende språk"
94
 
95
  # @ polylang
96
+ #: include/switcher.php:29
97
  msgid "Displays as dropdown"
98
  msgstr "Vises som dropdown"
99
 
100
  # @ polylang
101
+ #: admin/admin.php:188
102
  msgid "Filters content by language"
103
  msgstr "Filtre innhold etter språk"
104
 
105
  # @ polylang
106
+ #: admin/admin.php:183
107
  msgid "Show all languages"
108
  msgstr "Vis alle språk"
109
 
110
  # @ polylang
111
+ #: admin/admin-filters-columns.php:126 admin/admin-filters-columns.php:215
112
  msgid "Add new translation"
113
  msgstr "Legg til ny oversettelse"
114
 
115
  # @ polylang
116
+ #: admin/admin-filters-columns.php:163 admin/admin-filters-media.php:58
117
+ #: admin/admin-filters-post.php:109 admin/admin-filters-term.php:72
118
+ #: admin/admin-filters-term.php:106 admin/view-translations-media.php:7
119
+ #: admin/view-translations-media.php:45 admin/view-translations-post.php:8
120
+ #: admin/view-translations-term.php:15 include/model.php:491
 
121
  msgid "Language"
122
  msgstr "Språk"
123
 
124
  # @ polylang
125
+ #: admin/admin-filters-media.php:73 admin/admin-filters-media.php:112
126
+ #: admin/table-string.php:111 admin/view-translations-media.php:42
127
+ #: admin/view-translations-term.php:6 admin/view-translations-term.php:11
128
  msgid "Translations"
129
  msgstr "Oversettelser"
130
 
131
  # @ polylang
132
+ #: admin/admin-filters-term.php:74 admin/admin-filters-term.php:108
133
  msgid "Sets the language"
134
  msgstr "Bestemmer språket"
135
 
136
  # @ polylang
137
+ #: admin/admin-filters.php:60
138
  msgid "The widget is displayed for:"
139
  msgstr "Widgeten vises for:"
140
 
141
  # @ polylang
142
+ #: admin/admin-filters.php:63 include/model.php:492
143
  msgid "All languages"
144
  msgstr "Alle språk"
145
 
146
  # @ polylang
147
+ #: admin/admin-filters.php:120
148
  msgid "Admin language"
149
  msgstr "Admin språk"
150
 
151
  # @ polylang
152
+ #: admin/admin-filters.php:123
153
  msgid "Wordpress default"
154
  msgstr "WordPress standard"
155
 
156
  # @ default
157
  # @ polylang
158
+ #: admin/admin.php:123 admin/settings.php:62
159
  msgid "Settings"
160
  msgstr "Innstillinger"
161
 
162
  # @ polylang
163
+ #: admin/admin-filters.php:151
164
  msgid "Upgrading language files&#8230;"
165
  msgstr "Oppgraderer språkfiler&#8230;"
166
 
167
  # @ polylang
168
+ #: admin/settings.php:38
169
  msgid "About Polylang"
170
  msgstr "Om Polylang"
171
 
172
  # @ polylang
173
+ #: admin/settings.php:46
174
  msgid "Strings translations"
175
  msgstr "String oversettelser"
176
 
177
  # @ polylang
178
+ #: admin/settings.php:61
179
  msgid "Strings translation"
180
  msgstr "String oversettelse"
181
 
182
  # @ polylang
183
+ #: admin/settings.php:74
184
+ msgid "Enter a valid WordPress locale"
185
  msgstr "Tast inn en gyldig WordPress Locale"
186
 
187
  # @ polylang
188
+ #: admin/settings.php:76
 
 
 
 
 
189
  msgid "The language code must be unique"
190
  msgstr "Språkkoden må være unikt"
191
 
192
  # @ polylang
193
+ #: admin/settings.php:77
194
  msgid "The language must have a name"
195
  msgstr "Språket må ha et navn"
196
 
197
  # @ polylang
198
+ #: admin/settings.php:78
199
  msgid ""
200
  "The language was created, but the WordPress language file was not "
201
  "downloaded. Please install it manually."
204
  "Vennligst installer den manuelt."
205
 
206
  # @ polylang
207
+ #: admin/settings.php:305
208
  msgid "Widget title"
209
  msgstr "Widget tittel"
210
 
211
  # @ polylang
212
+ #: admin/settings.php:323
213
  msgid "Taxonomies"
214
  msgstr "Taksonomier"
215
 
216
  # @ polylang
217
+ #: admin/settings.php:324
218
  msgid "Custom fields"
219
  msgstr "Tilpassede felt"
220
 
221
  # @ polylang
222
+ #: admin/settings.php:325
223
  msgid "Comment status"
224
  msgstr "Kommentar status"
225
 
226
  # @ polylang
227
+ #: admin/settings.php:326
228
  msgid "Ping status"
229
  msgstr "Ping status"
230
 
231
  # @ polylang
232
+ #: admin/settings.php:327
233
  msgid "Sticky posts"
234
  msgstr "Klebrige innlegg"
235
 
236
  # @ polylang
237
+ #: admin/settings.php:328
238
  msgid "Published date"
239
  msgstr "Dato publisering"
240
 
241
  # @ default
242
+ #: admin/settings.php:329
243
  msgid "Post format"
244
  msgstr "Format"
245
 
246
  # @ default
247
+ #: admin/settings.php:330
248
  msgid "Page parent"
249
  msgstr "Side forelder"
250
 
251
  # @ polylang
252
+ #: admin/settings.php:331
253
  msgid "Page template"
254
  msgstr "Sidemal"
255
 
256
  # @ polylang
257
+ #: admin/settings.php:332
258
  msgid "Page order"
259
  msgstr "Side rekkefølge"
260
 
261
  # @ polylang
262
+ #: admin/settings.php:333
263
  msgid "Featured image"
264
  msgstr "Fremhevet bilde"
265
 
266
  # @ polylang
267
+ #: admin/view-languages.php:42
268
  msgid "Edit language"
269
  msgstr "Rediger språk"
270
 
271
  # @ polylang
272
+ #: admin/view-languages.php:42 admin/view-languages.php:117
273
  msgid "Add new language"
274
  msgstr "Legg til nytt språk"
275
 
276
  # @ polylang
277
+ #: admin/view-languages.php:58
278
  msgid "Choose a language"
279
  msgstr "Velg et språk"
280
 
281
  # @ polylang
282
+ #: admin/view-languages.php:72
283
  msgid "You can choose a language in the list or directly edit it below."
284
  msgstr "Du kan velge et språk fra listen eller redigere direkte nedenfor."
285
 
286
  # @ polylang
287
+ #: admin/table-languages.php:74 admin/view-languages.php:76
288
  msgid "Full name"
289
  msgstr "Fullt navn"
290
 
291
  # @ polylang
292
+ #: admin/view-languages.php:78
293
  msgid "The name is how it is displayed on your site (for example: English)."
294
  msgstr "Navnet som det vises på nettstedet ditt (for eksempel: English)."
295
 
296
  # @ polylang
297
+ #: admin/table-languages.php:75 admin/view-languages.php:82
298
  msgid "Locale"
299
  msgstr "Locale"
300
 
301
  # @ polylang
302
+ #: admin/view-languages.php:87
303
  msgid ""
304
  "Wordpress Locale for the language (for example: en_US). You will need to "
305
  "install the .mo file for this language."
308
  "filen for dette språket."
309
 
310
  # @ polylang
311
+ #: admin/view-languages.php:91
312
  msgid "Language code"
313
  msgstr "Språkkode"
314
 
315
  # @ polylang
316
+ #: admin/view-languages.php:93
317
  msgid "2-letters ISO 639-1 language code (for example: en)"
318
  msgstr "2-bokstavers ISO 639-1 språkkode (for eksempel: en)"
319
 
320
  # @ polylang
321
+ #: admin/view-languages.php:97
322
  msgid "Text direction"
323
  msgstr "Tekstretning"
324
 
325
  # @ polylang
326
+ #: admin/view-languages.php:101
327
  msgid "left to right"
328
  msgstr "venstre til høyre"
329
 
330
  # @ polylang
331
+ #: admin/view-languages.php:106
332
  msgid "right to left"
333
  msgstr "høyre til venstre"
334
 
335
  # @ polylang
336
+ #: admin/view-languages.php:108
337
  msgid "Choose the text direction for the language"
338
  msgstr "Velg tekstretning for språket"
339
 
340
  # @ polylang
341
+ #: admin/table-languages.php:77 admin/view-languages.php:112
342
  msgid "Order"
343
  msgstr "Rekkefølge"
344
 
345
  # @ polylang
346
+ #: admin/view-languages.php:114
347
  msgid "Position of the language in the language switcher"
348
  msgstr "Språkets plasering i språkskifteren"
349
 
350
  # @ polylang
351
+ #: admin/admin-nav-menu.php:51 admin/admin-nav-menu.php:79
352
+ #: admin/admin-nav-menu.php:82 admin/admin-nav-menu.php:113
353
+ #: admin/admin-nav-menu.php:170 include/upgrade.php:175
354
  msgid "Language switcher"
355
  msgstr "Språkskifter"
356
 
357
  # @ polylang
358
+ #: admin/view-languages.php:143
359
  msgid "Search translations"
360
  msgstr "Søk oversettelser"
361
 
362
  # @ polylang
363
+ #: admin/view-languages.php:146
364
  msgid "Clean strings translation database"
365
  msgstr "Rens string oversettelsene i databasen"
366
 
367
  # @ polylang
368
+ #: admin/view-languages.php:164
369
  msgid "Default language"
370
  msgstr "Standard språk"
371
 
372
  # @ polylang
373
+ #: admin/view-languages.php:179
374
  msgid ""
375
  "There are posts, pages, categories or tags without language set. Do you want "
376
  "to set them all to default language ?"
379
  "sette dem alle til standard språk?"
380
 
381
  # @ polylang
382
+ #: admin/view-languages.php:187
383
  msgid "Detect browser language"
384
  msgstr "Detekter nettleserens språkpreferance"
385
 
386
  # @ polylang
387
+ #: admin/view-languages.php:193
388
  msgid ""
389
  "When the front page is visited, set the language according to the browser "
390
  "preference"
391
  msgstr "Når forsiden besøkes, velg språk i henhold til nettleserens preferanse"
392
 
393
  # @ polylang
394
+ #: admin/view-languages.php:200
395
  msgid "URL modifications"
396
  msgstr "URL modifikasjoner"
397
 
398
  # @ polylang
399
+ #: admin/view-languages.php:206
400
  msgid ""
401
  "The language is set from content. Posts, pages, categories and tags urls are "
402
  "not modified."
403
  msgstr ""
404
+ "Språket bestemmes av innhold. Innlegg, sider, kategorier og tags urls er "
405
+ "ikke endret."
 
 
 
 
 
 
 
 
 
406
 
407
  # @ polylang
408
+ #: admin/view-languages.php:253
409
  msgid "Remove /language/ in pretty permalinks. Example:"
410
  msgstr "Fjern /language/ i pene permalenker. Eksempel:"
411
 
412
  # @ polylang
413
+ #: admin/view-languages.php:262
414
  msgid "Keep /language/ in pretty permalinks. Example:"
415
  msgstr "Behold /language/ i pene permalenker. Eksempel:"
416
 
417
  # @ polylang
418
+ #: admin/view-languages.php:271
419
  msgid "Hide URL language information for default language"
420
  msgstr "Skjul URL språkinformasjon for standard språk"
421
 
422
  # @ polylang
423
+ #: admin/view-languages.php:281
424
  #, php-format
425
  msgid ""
426
  "When using static front page, redirect the language page (example: %s) to "
430
  "forsiden på riktig språk"
431
 
432
  # @ polylang
433
+ #: admin/view-languages.php:290
434
  msgid "Media"
435
  msgstr "Media"
436
 
437
  # @ polylang
438
+ #: admin/view-languages.php:296
439
  msgid "Activate languages and translations for media"
440
  msgstr "Aktiver språk og oversettelser for media"
441
 
442
  # @ polylang
443
+ #: admin/view-languages.php:303
444
  msgid "Synchronization"
445
  msgstr "Synkronisering"
446
 
447
  # @ polylang
448
+ #: admin/view-languages.php:320
449
  msgid "Custom post types"
450
  msgstr "Tilpassede innleggstyper"
451
 
452
  # @ polylang
453
+ #: admin/view-languages.php:333
454
  msgid "Activate languages and translations for custom post types."
455
  msgstr "Aktiver språk og oversettelser for tilpassede innleggstyper."
456
 
457
  # @ polylang
458
+ #: admin/view-languages.php:340
459
  msgid "Custom taxonomies"
460
  msgstr "Tilpassede taksonomier"
461
 
462
  # @ polylang
463
+ #: admin/view-languages.php:353
464
  msgid "Activate languages and translations for custom taxonomies."
465
  msgstr "Aktiver språk og oversettelser for tilpassede taksonomier."
466
 
467
  # @ polylang
468
+ #: admin/table-languages.php:54 admin/view-translations-media.php:24
469
+ #: admin/view-translations-media.php:62 admin/view-translations-post.php:10
470
+ #: admin/view-translations-post.php:33 admin/view-translations-term.php:18
471
+ #: admin/view-translations-term.php:80
472
  msgid "Edit"
473
  msgstr "Rediger"
474
 
475
  # @ polylang
476
+ #: admin/table-languages.php:60 admin/table-string.php:167
477
  msgid "Delete"
478
  msgstr "Slett"
479
 
480
  # @ polylang
481
+ #: admin/table-languages.php:76
482
  msgid "Code"
483
  msgstr "Kode"
484
 
485
  # @ polylang
486
+ #: admin/table-languages.php:78
487
  msgid "Flag"
488
  msgstr "Flagg"
489
 
490
  # @ polylang
491
+ #: admin/table-languages.php:79
492
  msgid "Posts"
493
  msgstr "Innlegg"
494
 
495
  # @ polylang
496
+ #: admin/table-string.php:109
497
  msgid "Name"
498
  msgstr "Navn"
499
 
500
  # @ polylang
501
+ #: admin/table-string.php:110
502
  msgid "String"
503
  msgstr "String"
504
 
505
  # @ polylang
506
+ #: admin/view-translations-media.php:8 admin/view-translations-media.php:46
507
+ #: admin/view-translations-term.php:16
508
  msgid "Translation"
509
  msgstr "Oversettelse"
510
 
511
  # @ polylang
512
+ #: admin/view-translations-media.php:33 admin/view-translations-media.php:70
513
+ #: admin/view-translations-post.php:38 admin/view-translations-term.php:60
514
  msgid "Add new"
515
  msgstr "Legg til ny"
516
 
517
  # @ polylang
518
+ #: admin/view-translations-post.php:5
519
  msgid "ID of pages in other languages:"
520
  msgstr "Sidens ID i andre språk:"
521
 
522
  # @ polylang
523
+ #: admin/view-translations-post.php:5
524
  msgid "ID of posts in other languages:"
525
  msgstr "Innleggets ID i andre språk:"
526
 
527
  # @ polylang
528
+ #: admin/view-translations-post.php:9
529
  msgid "Page ID"
530
  msgstr "Side ID"
531
 
532
  # @ polylang
533
+ #: admin/view-translations-post.php:9
534
  msgid "Post ID"
535
  msgstr "Innlegg ID"
536
 
537
  # @ polylang
538
+ #: admin/view-translations-term.php:48
539
  msgid "No untranslated term"
540
  msgstr "Ingen uoversatte uttrykk"
541
 
542
  # @ polylang
543
+ #: include/widget-languages.php:16
544
  msgid "Language Switcher"
545
  msgstr "Språkskifter"
546
 
547
  # @ polylang
548
+ #: include/widget-languages.php:16
549
  msgid "Displays a language switcher"
550
  msgstr "Viser en språkskifter"
551
 
552
  # @ polylang
553
+ #: include/widget-languages.php:100
554
  msgid "Title:"
555
  msgstr "Tittel:"
556
 
561
  msgstr "Legger til flerspråklig funksjonalitet til Wordpress"
562
 
563
  # @ polylang
564
+ #: polylang.php:157
565
  #, php-format
566
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
567
  msgstr "Du bruker WordPress %s. Polylang krever minst WordPress %s."
568
 
569
  # @ polylang
570
+ #: include/upgrade.php:75
 
 
 
 
 
 
571
  msgid ""
572
  "Polylang has been deactivated because you upgraded from a too old version."
573
  msgstr ""
575
  "versjon."
576
 
577
  # @ polylang
578
+ #: include/upgrade.php:77
579
  #, php-format
580
  msgid "Please upgrade first to %s before ugrading to %s."
581
  msgstr "Vennligst oppgrader først til %s før du oppgraderer til %s."
582
 
583
  # @ polylang
584
+ #: admin/table-string.php:108
585
  msgid "Group"
586
  msgstr "Gruppe"
587
 
588
  # @ polylang
589
+ #: admin/table-string.php:186
590
  msgid "View all groups"
591
  msgstr "Vis alle grupper"
592
+
593
+ # @ polylang
594
+ #: admin/table-languages.php:59
595
+ msgid "You are about to permanently delete this language. Are you sure?"
596
+ msgstr "Du holder på å slette dette språket permanent. Er du sikkert?"
597
+
598
+ # @ polylang
599
+ #: admin/view-languages.php:147
600
+ msgid ""
601
+ "Use this to remove unused strings from database, for example after a plugin "
602
+ "has been uninstalled."
603
+ msgstr ""
604
+ "Bruk dette for å fjerne ubrukte stringer fra databasen, f.eks. når en "
605
+ "utvidelse er avinstallert."
606
+
607
+ # @ polylang
608
+ #: admin/view-languages.php:214
609
+ msgid ""
610
+ "The language is set from the directory name in pretty permalinks. Example:"
611
+ msgstr "Språket bestemmes av directory navnet i pene permalenker. Eksempel:"
612
+
613
+ # @ polylang
614
+ #: admin/view-languages.php:223
615
+ msgid ""
616
+ "The language is set from the subdomain name in pretty permalinks. Example:"
617
+ msgstr "Språket bestemmes av subdomenenavn i pene permalenker. Eksempel:"
618
+
619
+ # @ polylang
620
+ #: admin/view-languages.php:314
621
+ msgid ""
622
+ "The synchronization options allow to maintain exact same values (or "
623
+ "translations in the case of taxonomies and page parent) of meta content "
624
+ "between the translations of a post or page."
625
+ msgstr ""
626
+ "Synkroniseringsvalgene tillater å ta vare på nøyaktig de samme verdiene "
627
+ "(eller oversettelser når det gjelder taksonomier og sideforelder) av "
628
+ "metainnhold mellom oversettelser av et innlegg eller en side."
629
+
630
+ # @ polylang
631
+ #: admin/settings.php:75
632
+ msgid "The language code contains invalid characters"
633
+ msgstr "Språkkoden inneholder ugyldige tegn"
634
+
635
+ # @ polylang
636
+ #: admin/view-languages.php:232
637
+ msgid "The language is set from different domains:"
638
+ msgstr "Språket bestemmes av andre domener:"
languages/polylang-nl_NL.mo CHANGED
Binary file
languages/polylang-nl_NL.po CHANGED
@@ -18,538 +18,525 @@ msgstr ""
18
  "X-Poedit-SearchPath-0: ..\n"
19
 
20
  # @ polylang
21
- #: include/about.php:3
22
  #, php-format
23
  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."
24
  msgstr "Polylang is voorzien van uitgebreide %sdocumentatie%s (alleen in engels). Dit omvat informatie hoe een meertalige site opgezet kan worden en het gebruik op dagelijkse basis, een FAQ en ook documentatie voor ontwikkelaars voor het aanpassen van hun plugins en thema's."
25
 
26
  # @ polylang
27
- #: include/about.php:9
28
  #, php-format
29
  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."
30
  msgstr "Je kunt ook bruikbare information vinden in het %s support forum%s. Vergeet niet eerst een zoekopdracht uit te voeren voordat je een nieuw item post."
31
 
32
  # @ polylang
33
- #: include/about.php:16
34
  #, php-format
35
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
36
  msgstr "Polylang is gratis te gebruiken en is vrijgegeven onder dezelfde licentie als Wordpress, de %sGPL%s."
37
 
38
  # @ polylang
39
- #: include/about.php:22
40
  #, php-format
41
  msgid "If you wonder how you can help the project, just %sread this%s."
42
  msgstr "Ben je benieuwd hoe je dit project kan ondersteunen, %slees dit%s."
43
 
44
  # @ polylang
45
- #: include/about.php:27
46
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
47
  msgstr "Tot slot, wanneer deze plugin je bevalt of wanneer het jouw bedrijfsvoering ondersteunt, donaties ten behoeve van de auteur wordt zeer gewaardeerd."
48
 
49
  # @ polylang
50
- #: include/admin-base.php:55
51
- #: include/admin-base.php:190
52
- #: include/admin-filters.php:243
53
- #: include/admin.php:23
54
- #: include/admin.php:301
55
- #: include/list-table.php:13
56
- #: polylang.php:339
57
  msgid "Languages"
58
  msgstr "Talen"
59
 
60
  # @ polylang
61
- #: include/admin-base.php:153
62
  msgid "Displays language names"
63
  msgstr "Toon namen van talen"
64
 
65
  # @ polylang
66
- #: include/admin-base.php:154
67
  msgid "Displays flags"
68
  msgstr "Toon vlaggen"
69
 
70
  # @ polylang
71
- #: include/admin-base.php:155
72
  msgid "Forces link to front page"
73
  msgstr "Forceer link naar startpagina"
74
 
75
  # @ polylang
76
- #: include/admin-base.php:156
77
  msgid "Hides the current language"
78
  msgstr "Verberg huidige taal"
79
 
80
  # @ polylang
81
- #: include/admin-base.php:160
82
  msgid "Displays as dropdown"
83
  msgstr "Toon als dropdown"
84
 
85
  # @ polylang
86
- #: include/admin-base.php:191
87
  msgid "Filters content by language"
88
  msgstr ""
89
 
90
  # @ polylang
91
- #: include/admin-base.php:186
92
  msgid "Show all languages"
93
  msgstr "Toon alle talen"
94
 
95
  # @ polylang
96
- #: include/admin-filters.php:181
97
- #: include/admin-filters.php:877
98
  msgid "Add new translation"
99
  msgstr "Voeg nieuwe vertaling toe"
100
 
101
  # @ polylang
102
- #: include/admin-filters.php:209
103
- #: include/admin-filters.php:267
104
- #: include/admin-filters.php:601
105
- #: include/admin-filters.php:817
106
- #: include/admin-filters.php:835
107
- #: include/list-table.php:12
108
- #: include/media-translations.php:5
109
- #: include/media-translations.php:43
110
- #: include/post-translations.php:8
111
- #: include/term-translations.php:15
112
- #: polylang.php:340
113
  msgid "Language"
114
  msgstr "Taal"
115
 
116
  # @ polylang
117
- #: include/admin-filters.php:616
118
- #: include/admin-filters.php:651
119
- #: include/list-table.php:127
120
- #: include/media-translations.php:40
121
- #: include/term-translations.php:6
122
- #: include/term-translations.php:11
123
  msgid "Translations"
124
  msgstr "Vertalingen"
125
 
126
  # @ polylang
127
- #: include/admin-filters.php:819
128
- #: include/admin-filters.php:838
129
  msgid "Sets the language"
130
  msgstr "Stelt de taal in"
131
 
132
  # @ polylang
133
- #: include/admin-filters.php:1053
134
  msgid "The widget is displayed for:"
135
  msgstr "Het widget wordt getoond voor:"
136
 
137
  # @ polylang
138
- #: include/admin-filters.php:1057
139
- #: polylang.php:341
140
  msgid "All languages"
141
  msgstr "Alle talen"
142
 
143
  # @ polylang
144
- #: include/admin-filters.php:1080
145
  msgid "Admin language"
146
  msgstr "Admin taal"
147
 
148
- #: include/admin-filters.php:1085
149
  msgid "Wordpress default"
150
  msgstr ""
151
 
152
  # @ default
153
  # @ polylang
154
- #: include/admin-filters.php:1114
155
- #: include/admin.php:306
156
  msgid "Settings"
157
  msgstr "Instellingen"
158
 
159
  # @ polylang
160
- #: include/admin-filters.php:1120
161
  msgid "Upgrading language files&#8230;"
162
  msgstr "Aanpassen taalbestanden&#8230;"
163
 
164
  # @ polylang
165
- #: include/admin.php:22
166
  msgid "About Polylang"
167
  msgstr "Over Polylang"
168
 
169
  # @ polylang
170
- #: include/admin.php:27
171
- #: include/list-table.php:82
172
  msgid "Strings translations"
173
  msgstr "Tekstvertalingen"
174
 
175
  # @ polylang
176
- #: include/admin.php:305
177
- #: include/list-table.php:81
178
  msgid "Strings translation"
179
  msgstr "Tekstvertaling"
180
 
181
  # @ polylang
182
- #: include/admin.php:345
183
  msgid "Enter a valid WorPress locale"
184
  msgstr "Voer een geldige Wordpress lokaal in"
185
 
186
  # @ polylang
187
- #: include/admin.php:346
188
- msgid "The language code must be 2 characters long"
189
- msgstr "De taalcode moet uit 2 karakters bestaan"
190
-
191
- # @ polylang
192
- #: include/admin.php:328
193
  msgid "The language code must be unique"
194
  msgstr "De taalcode moet uniek zijn"
195
 
196
  # @ polylang
197
- #: include/admin.php:329
198
  msgid "The language must have a name"
199
  msgstr "De taal moet een naam hebben"
200
 
201
  # @ polylang
202
- #: include/admin.php:330
203
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
204
  msgstr "De taal was gecreëerd, maar het Wordpress taalbestand was niet gedownload. Handmatige installatie is noodzakelijk."
205
 
206
  # @ polylang
207
- #: include/admin.php:449
208
  msgid "Widget title"
209
  msgstr "Widget titel"
210
 
211
  # @ polylang
212
- #: include/base.php:368
213
  msgid "Taxonomies"
214
  msgstr ""
215
 
216
  # @ polylang
217
- #: include/base.php:369
218
  msgid "Custom fields"
219
  msgstr ""
220
 
221
  # @ polylang
222
- #: include/base.php:370
223
  msgid "Comment status"
224
  msgstr ""
225
 
226
  # @ polylang
227
- #: include/base.php:371
228
  msgid "Ping status"
229
  msgstr ""
230
 
231
  # @ polylang
232
- #: include/base.php:372
233
  msgid "Sticky posts"
234
  msgstr ""
235
 
236
  # @ polylang
237
- #: include/base.php:373
238
  msgid "Published date"
239
  msgstr ""
240
 
241
  # @ polylang
242
- #: include/base.php:374
243
  msgid "Post format"
244
  msgstr ""
245
 
246
  # @ polylang
247
- #: include/base.php:375
248
  msgid "Page parent"
249
  msgstr ""
250
 
251
  # @ polylang
252
- #: include/base.php:376
253
  msgid "Page template"
254
  msgstr ""
255
 
256
  # @ polylang
257
- #: include/base.php:377
258
  msgid "Page order"
259
  msgstr ""
260
 
261
  # @ polylang
262
- #: include/base.php:378
263
  msgid "Featured image"
264
  msgstr ""
265
 
266
  # @ polylang
267
- #: include/languages-form.php:42
268
  msgid "Edit language"
269
  msgstr "Wijzig taal"
270
 
271
  # @ polylang
272
- #: include/languages-form.php:42
273
- #: include/languages-form.php:123
274
  msgid "Add new language"
275
  msgstr "Voeg nieuwe taal toe"
276
 
277
  # @ polylang
278
- #: include/languages-form.php:64
279
  msgid "Choose a language"
280
  msgstr "Kies een taal"
281
 
282
  # @ polylang
283
- #: include/languages-form.php:78
284
  msgid "You can choose a language in the list or directly edit it below."
285
  msgstr "Kies een taal uit de lijst of vul deze direct hieronder in."
286
 
287
  # @ polylang
288
- #: include/languages-form.php:82
289
- #: include/list-table.php:34
290
  msgid "Full name"
291
  msgstr "Volledige naam"
292
 
293
  # @ polylang
294
- #: include/languages-form.php:84
295
  msgid "The name is how it is displayed on your site (for example: English)."
296
  msgstr "De naam geeft aan hoe het op je site getoond wordt (b.v.: Nederlands)."
297
 
298
  # @ polylang
299
- #: include/languages-form.php:88
300
- #: include/list-table.php:35
301
  msgid "Locale"
302
  msgstr "Locale"
303
 
304
  # @ polylang
305
- #: include/languages-form.php:93
306
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
307
  msgstr "Wordpress Locale voor de taal (bv.: nl_NL). Installeer het .mo bestand voor deze taal."
308
 
309
  # @ polylang
310
- #: include/languages-form.php:97
311
  msgid "Language code"
312
  msgstr "Taalcode"
313
 
314
  # @ polylang
315
- #: include/languages-form.php:99
316
  msgid "2-letters ISO 639-1 language code (for example: en)"
317
  msgstr "2-karakter ISO 639-1 taalcode (bv.: nl)"
318
 
319
  # @ polylang
320
- #: include/languages-form.php:103
321
  msgid "Text direction"
322
  msgstr "Tekstrichting"
323
 
324
  # @ polylang
325
- #: include/languages-form.php:107
326
  msgid "left to right"
327
  msgstr "van links naar rechts"
328
 
329
  # @ polylang
330
- #: include/languages-form.php:112
331
  msgid "right to left"
332
  msgstr "van rechts naar links"
333
 
334
  # @ polylang
335
- #: include/languages-form.php:114
336
  msgid "Choose the text direction for the language"
337
  msgstr "Kies de tekstrichting voor de taal"
338
 
339
  # @ polylang
340
- #: include/languages-form.php:118
341
- #: include/list-table.php:37
342
  msgid "Order"
343
  msgstr "Volgorde"
344
 
345
  # @ polylang
346
- #: include/languages-form.php:120
347
  msgid "Position of the language in the language switcher"
348
  msgstr "Positionering van de taal in de taalschakelaar"
349
 
350
  # @ polylang
351
- #: include/nav-menu.php:28
352
- #: include/nav-menu.php:51
353
- #: include/nav-menu.php:54
354
- #: include/nav-menu.php:82
355
- #: include/nav-menu.php:106
356
- #: polylang.php:302
357
  msgid "Language switcher"
358
  msgstr "Taalschakelaar"
359
 
360
  # @ polylang
361
- #: include/languages-form.php:148
362
  msgid "Search translations"
363
  msgstr ""
364
 
365
  # @ polylang
366
- #: include/languages-form.php:151
367
  msgid "Clean strings translation database"
368
  msgstr ""
369
 
370
  # @ polylang
371
- #: include/languages-form.php:167
372
  msgid "Default language"
373
  msgstr "Standaardtaal"
374
 
375
  # @ polylang
376
- #: include/languages-form.php:179
377
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
378
  msgstr "Er zijn berichten, pagina's, categorieën of tags zonder taalinstelling. Deze allemaal instellen op de standaardtaal?"
379
 
380
  # @ polylang
381
- #: include/languages-form.php:187
382
  msgid "Detect browser language"
383
  msgstr "Bepaal de taal van de browser"
384
 
385
  # @ polylang
386
- #: include/languages-form.php:193
387
  msgid "When the front page is visited, set the language according to the browser preference"
388
  msgstr "Wanneer de startpagina bezocht is, stel dan de taal in op basis van de voorkeur van de browser"
389
 
390
  # @ polylang
391
- #: include/languages-form.php:200
392
  msgid "URL modifications"
393
  msgstr "URL aanpassingen"
394
 
395
  # @ polylang
396
- #: include/languages-form.php:206
397
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
398
  msgstr ""
399
 
400
- #: include/languages-form.php:214
401
- msgid "The language code, for example /en/, is added to all urls when using pretty permalinks."
402
- msgstr ""
403
-
404
  # @ polylang
405
- #: include/languages-form.php:223
406
  msgid "Remove /language/ in pretty permalinks. Example:"
407
  msgstr "Verwijder /language/ in pretty permalinks. Voorbeeld:"
408
 
409
  # @ polylang
410
- #: include/languages-form.php:232
411
  msgid "Keep /language/ in pretty permalinks. Example:"
412
  msgstr "Behoud /language/ in pretty permalinks. Voorbeeld:"
413
 
414
  # @ polylang
415
- #: include/languages-form.php:241
416
  msgid "Hide URL language information for default language"
417
  msgstr "Verberg URL taalinformatie voor de standaardtaal"
418
 
419
  # @ polylang
420
- #: include/languages-form.php:251
421
  #, php-format
422
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
423
  msgstr ""
424
 
425
  # @ polylang
426
- #: include/languages-form.php:260
427
  msgid "Media"
428
  msgstr ""
429
 
430
  # @ polylang
431
- #: include/languages-form.php:266
432
  msgid "Activate languages and translations for media"
433
  msgstr ""
434
 
435
- #: include/languages-form.php:273
436
  msgid "Synchronization"
437
  msgstr ""
438
 
439
  # @ polylang
440
- #: include/languages-form.php:287
441
  msgid "Custom post types"
442
  msgstr ""
443
 
444
  # @ polylang
445
- #: include/languages-form.php:300
446
  msgid "Activate languages and translations for custom post types."
447
  msgstr ""
448
 
449
  # @ polylang
450
- #: include/languages-form.php:307
451
  msgid "Custom taxonomies"
452
  msgstr ""
453
 
454
  # @ polylang
455
- #: include/languages-form.php:320
456
  msgid "Activate languages and translations for custom taxonomies."
457
  msgstr ""
458
 
459
  # @ polylang
460
- #: include/list-table.php:26
461
- #: include/media-translations.php:22
462
- #: include/media-translations.php:60
463
- #: include/post-translations.php:10
464
- #: include/post-translations.php:33
465
- #: include/term-translations.php:18
466
- #: include/term-translations.php:80
467
  msgid "Edit"
468
  msgstr "Wijzig"
469
 
470
  # @ polylang
471
- #: include/list-table.php:27
472
- #: include/list-table.php:162
473
  msgid "Delete"
474
  msgstr "Verwijder"
475
 
476
  # @ polylang
477
- #: include/list-table.php:36
478
  msgid "Code"
479
  msgstr "Taalcode"
480
 
481
  # @ polylang
482
- #: include/list-table.php:38
483
  msgid "Flag"
484
  msgstr "Vlag"
485
 
486
  # @ polylang
487
- #: include/list-table.php:39
488
  msgid "Posts"
489
  msgstr "Berichten"
490
 
491
  # @ polylang
492
- #: include/list-table.php:125
493
  msgid "Name"
494
  msgstr "Naam"
495
 
496
  # @ polylang
497
- #: include/list-table.php:126
498
  msgid "String"
499
  msgstr "Tekst"
500
 
501
  # @ polylang
502
- #: include/media-translations.php:6
503
- #: include/media-translations.php:44
504
- #: include/term-translations.php:16
505
  msgid "Translation"
506
  msgstr "Vertaling"
507
 
508
  # @ polylang
509
- #: include/media-translations.php:31
510
- #: include/media-translations.php:68
511
- #: include/post-translations.php:38
512
- #: include/term-translations.php:60
513
  msgid "Add new"
514
  msgstr "Voeg nieuwe toe"
515
 
516
  # @ polylang
517
- #: include/post-translations.php:5
518
  msgid "ID of pages in other languages:"
519
  msgstr "ID's van pagina's in andere talen:"
520
 
521
  # @ polylang
522
- #: include/post-translations.php:5
523
  msgid "ID of posts in other languages:"
524
  msgstr "ID's van berichten in andere talen:"
525
 
526
  # @ polylang
527
- #: include/post-translations.php:9
528
  msgid "Page ID"
529
  msgstr "Pagina ID"
530
 
531
  # @ polylang
532
- #: include/post-translations.php:9
533
  msgid "Post ID"
534
  msgstr "Bericht ID"
535
 
536
  # @ polylang
537
- #: include/term-translations.php:48
538
  msgid "No untranslated term"
539
  msgstr "Geen onvertaalde term"
540
 
541
  # @ polylang
542
- #: include/widget.php:6
543
  msgid "Language Switcher"
544
  msgstr "Taalschakelaar"
545
 
546
  # @ polylang
547
- #: include/widget.php:6
548
  msgid "Displays a language switcher"
549
  msgstr "Toon een taalschakelaar"
550
 
551
  # @ polylang
552
- #: include/widget.php:69
553
  msgid "Title:"
554
  msgstr "Titel:"
555
 
@@ -560,34 +547,64 @@ msgid "Adds multilingual capability to WordPress"
560
  msgstr ""
561
 
562
  # @ polylang
563
- #: polylang.php:133
564
  #, php-format
565
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
566
  msgstr "Je gebruikt Wordpress %s. Polylang vereist tenminste Wordpress %s."
567
 
568
  # @ polylang
569
- #: polylang.php:174
570
- msgid "For some reasons, Polylang could not create a table in your database."
571
- msgstr "Om onbekende reden kon Polylang geen tabel in jouw database creëren."
572
-
573
- # @ polylang
574
- #: polylang.php:235
575
  msgid "Polylang has been deactivated because you upgraded from a too old version."
576
  msgstr ""
577
 
578
  # @ polylang
579
- #: polylang.php:237
580
  #, php-format
581
  msgid "Please upgrade first to %s before ugrading to %s."
582
  msgstr ""
583
 
584
  # @ polylang
585
- #: include/list-table.php:124
586
  msgid "Group"
587
  msgstr ""
588
 
589
  # @ polylang
590
- #: include/list-table.php:173
591
  msgid "View all groups"
592
  msgstr ""
593
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  "X-Poedit-SearchPath-0: ..\n"
19
 
20
  # @ polylang
21
+ #: admin/view-about.php:3
22
  #, php-format
23
  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."
24
  msgstr "Polylang is voorzien van uitgebreide %sdocumentatie%s (alleen in engels). Dit omvat informatie hoe een meertalige site opgezet kan worden en het gebruik op dagelijkse basis, een FAQ en ook documentatie voor ontwikkelaars voor het aanpassen van hun plugins en thema's."
25
 
26
  # @ polylang
27
+ #: admin/view-about.php:9
28
  #, php-format
29
  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."
30
  msgstr "Je kunt ook bruikbare information vinden in het %s support forum%s. Vergeet niet eerst een zoekopdracht uit te voeren voordat je een nieuw item post."
31
 
32
  # @ polylang
33
+ #: admin/view-about.php:16
34
  #, php-format
35
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
36
  msgstr "Polylang is gratis te gebruiken en is vrijgegeven onder dezelfde licentie als Wordpress, de %sGPL%s."
37
 
38
  # @ polylang
39
+ #: admin/view-about.php:22
40
  #, php-format
41
  msgid "If you wonder how you can help the project, just %sread this%s."
42
  msgstr "Ben je benieuwd hoe je dit project kan ondersteunen, %slees dit%s."
43
 
44
  # @ polylang
45
+ #: admin/view-about.php:27
46
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
47
  msgstr "Tot slot, wanneer deze plugin je bevalt of wanneer het jouw bedrijfsvoering ondersteunt, donaties ten behoeve van de auteur wordt zeer gewaardeerd."
48
 
49
  # @ polylang
50
+ #: admin/admin-filters-post.php:76
51
+ #: admin/admin.php:83
52
+ #: admin/admin.php:187
53
+ #: admin/settings.php:42
54
+ #: admin/settings.php:57
55
+ #: include/model.php:490
 
56
  msgid "Languages"
57
  msgstr "Talen"
58
 
59
  # @ polylang
60
+ #: include/switcher.php:22
61
  msgid "Displays language names"
62
  msgstr "Toon namen van talen"
63
 
64
  # @ polylang
65
+ #: include/switcher.php:23
66
  msgid "Displays flags"
67
  msgstr "Toon vlaggen"
68
 
69
  # @ polylang
70
+ #: include/switcher.php:24
71
  msgid "Forces link to front page"
72
  msgstr "Forceer link naar startpagina"
73
 
74
  # @ polylang
75
+ #: include/switcher.php:25
76
  msgid "Hides the current language"
77
  msgstr "Verberg huidige taal"
78
 
79
  # @ polylang
80
+ #: include/switcher.php:29
81
  msgid "Displays as dropdown"
82
  msgstr "Toon als dropdown"
83
 
84
  # @ polylang
85
+ #: admin/admin.php:188
86
  msgid "Filters content by language"
87
  msgstr ""
88
 
89
  # @ polylang
90
+ #: admin/admin.php:183
91
  msgid "Show all languages"
92
  msgstr "Toon alle talen"
93
 
94
  # @ polylang
95
+ #: admin/admin-filters-columns.php:126
96
+ #: admin/admin-filters-columns.php:215
97
  msgid "Add new translation"
98
  msgstr "Voeg nieuwe vertaling toe"
99
 
100
  # @ polylang
101
+ #: admin/admin-filters-columns.php:163
102
+ #: admin/admin-filters-media.php:58
103
+ #: admin/admin-filters-post.php:109
104
+ #: admin/admin-filters-term.php:72
105
+ #: admin/admin-filters-term.php:106
106
+ #: admin/view-translations-media.php:7
107
+ #: admin/view-translations-media.php:45
108
+ #: admin/view-translations-post.php:8
109
+ #: admin/view-translations-term.php:15
110
+ #: include/model.php:491
 
111
  msgid "Language"
112
  msgstr "Taal"
113
 
114
  # @ polylang
115
+ #: admin/admin-filters-media.php:73
116
+ #: admin/admin-filters-media.php:112
117
+ #: admin/table-string.php:111
118
+ #: admin/view-translations-media.php:42
119
+ #: admin/view-translations-term.php:6
120
+ #: admin/view-translations-term.php:11
121
  msgid "Translations"
122
  msgstr "Vertalingen"
123
 
124
  # @ polylang
125
+ #: admin/admin-filters-term.php:74
126
+ #: admin/admin-filters-term.php:108
127
  msgid "Sets the language"
128
  msgstr "Stelt de taal in"
129
 
130
  # @ polylang
131
+ #: admin/admin-filters.php:60
132
  msgid "The widget is displayed for:"
133
  msgstr "Het widget wordt getoond voor:"
134
 
135
  # @ polylang
136
+ #: admin/admin-filters.php:63
137
+ #: include/model.php:492
138
  msgid "All languages"
139
  msgstr "Alle talen"
140
 
141
  # @ polylang
142
+ #: admin/admin-filters.php:120
143
  msgid "Admin language"
144
  msgstr "Admin taal"
145
 
146
+ #: admin/admin-filters.php:123
147
  msgid "Wordpress default"
148
  msgstr ""
149
 
150
  # @ default
151
  # @ polylang
152
+ #: admin/admin.php:123
153
+ #: admin/settings.php:62
154
  msgid "Settings"
155
  msgstr "Instellingen"
156
 
157
  # @ polylang
158
+ #: admin/admin-filters.php:151
159
  msgid "Upgrading language files&#8230;"
160
  msgstr "Aanpassen taalbestanden&#8230;"
161
 
162
  # @ polylang
163
+ #: admin/settings.php:38
164
  msgid "About Polylang"
165
  msgstr "Over Polylang"
166
 
167
  # @ polylang
168
+ #: admin/settings.php:46
 
169
  msgid "Strings translations"
170
  msgstr "Tekstvertalingen"
171
 
172
  # @ polylang
173
+ #: admin/settings.php:61
 
174
  msgid "Strings translation"
175
  msgstr "Tekstvertaling"
176
 
177
  # @ polylang
178
+ #: admin/settings.php:74
179
  msgid "Enter a valid WorPress locale"
180
  msgstr "Voer een geldige Wordpress lokaal in"
181
 
182
  # @ polylang
183
+ #: admin/settings.php:76
 
 
 
 
 
184
  msgid "The language code must be unique"
185
  msgstr "De taalcode moet uniek zijn"
186
 
187
  # @ polylang
188
+ #: admin/settings.php:77
189
  msgid "The language must have a name"
190
  msgstr "De taal moet een naam hebben"
191
 
192
  # @ polylang
193
+ #: admin/settings.php:78
194
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
195
  msgstr "De taal was gecreëerd, maar het Wordpress taalbestand was niet gedownload. Handmatige installatie is noodzakelijk."
196
 
197
  # @ polylang
198
+ #: admin/settings.php:305
199
  msgid "Widget title"
200
  msgstr "Widget titel"
201
 
202
  # @ polylang
203
+ #: admin/settings.php:323
204
  msgid "Taxonomies"
205
  msgstr ""
206
 
207
  # @ polylang
208
+ #: admin/settings.php:324
209
  msgid "Custom fields"
210
  msgstr ""
211
 
212
  # @ polylang
213
+ #: admin/settings.php:325
214
  msgid "Comment status"
215
  msgstr ""
216
 
217
  # @ polylang
218
+ #: admin/settings.php:326
219
  msgid "Ping status"
220
  msgstr ""
221
 
222
  # @ polylang
223
+ #: admin/settings.php:327
224
  msgid "Sticky posts"
225
  msgstr ""
226
 
227
  # @ polylang
228
+ #: admin/settings.php:328
229
  msgid "Published date"
230
  msgstr ""
231
 
232
  # @ polylang
233
+ #: admin/settings.php:329
234
  msgid "Post format"
235
  msgstr ""
236
 
237
  # @ polylang
238
+ #: admin/settings.php:330
239
  msgid "Page parent"
240
  msgstr ""
241
 
242
  # @ polylang
243
+ #: admin/settings.php:331
244
  msgid "Page template"
245
  msgstr ""
246
 
247
  # @ polylang
248
+ #: admin/settings.php:332
249
  msgid "Page order"
250
  msgstr ""
251
 
252
  # @ polylang
253
+ #: admin/settings.php:333
254
  msgid "Featured image"
255
  msgstr ""
256
 
257
  # @ polylang
258
+ #: admin/view-languages.php:42
259
  msgid "Edit language"
260
  msgstr "Wijzig taal"
261
 
262
  # @ polylang
263
+ #: admin/view-languages.php:42
264
+ #: admin/view-languages.php:117
265
  msgid "Add new language"
266
  msgstr "Voeg nieuwe taal toe"
267
 
268
  # @ polylang
269
+ #: admin/view-languages.php:58
270
  msgid "Choose a language"
271
  msgstr "Kies een taal"
272
 
273
  # @ polylang
274
+ #: admin/view-languages.php:72
275
  msgid "You can choose a language in the list or directly edit it below."
276
  msgstr "Kies een taal uit de lijst of vul deze direct hieronder in."
277
 
278
  # @ polylang
279
+ #: admin/table-languages.php:74
280
+ #: admin/view-languages.php:76
281
  msgid "Full name"
282
  msgstr "Volledige naam"
283
 
284
  # @ polylang
285
+ #: admin/view-languages.php:78
286
  msgid "The name is how it is displayed on your site (for example: English)."
287
  msgstr "De naam geeft aan hoe het op je site getoond wordt (b.v.: Nederlands)."
288
 
289
  # @ polylang
290
+ #: admin/table-languages.php:75
291
+ #: admin/view-languages.php:82
292
  msgid "Locale"
293
  msgstr "Locale"
294
 
295
  # @ polylang
296
+ #: admin/view-languages.php:87
297
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
298
  msgstr "Wordpress Locale voor de taal (bv.: nl_NL). Installeer het .mo bestand voor deze taal."
299
 
300
  # @ polylang
301
+ #: admin/view-languages.php:91
302
  msgid "Language code"
303
  msgstr "Taalcode"
304
 
305
  # @ polylang
306
+ #: admin/view-languages.php:93
307
  msgid "2-letters ISO 639-1 language code (for example: en)"
308
  msgstr "2-karakter ISO 639-1 taalcode (bv.: nl)"
309
 
310
  # @ polylang
311
+ #: admin/view-languages.php:97
312
  msgid "Text direction"
313
  msgstr "Tekstrichting"
314
 
315
  # @ polylang
316
+ #: admin/view-languages.php:101
317
  msgid "left to right"
318
  msgstr "van links naar rechts"
319
 
320
  # @ polylang
321
+ #: admin/view-languages.php:106
322
  msgid "right to left"
323
  msgstr "van rechts naar links"
324
 
325
  # @ polylang
326
+ #: admin/view-languages.php:108
327
  msgid "Choose the text direction for the language"
328
  msgstr "Kies de tekstrichting voor de taal"
329
 
330
  # @ polylang
331
+ #: admin/table-languages.php:77
332
+ #: admin/view-languages.php:112
333
  msgid "Order"
334
  msgstr "Volgorde"
335
 
336
  # @ polylang
337
+ #: admin/view-languages.php:114
338
  msgid "Position of the language in the language switcher"
339
  msgstr "Positionering van de taal in de taalschakelaar"
340
 
341
  # @ polylang
342
+ #: admin/admin-nav-menu.php:51
343
+ #: admin/admin-nav-menu.php:79
344
+ #: admin/admin-nav-menu.php:82
345
+ #: admin/admin-nav-menu.php:113
346
+ #: admin/admin-nav-menu.php:170
347
+ #: include/upgrade.php:175
348
  msgid "Language switcher"
349
  msgstr "Taalschakelaar"
350
 
351
  # @ polylang
352
+ #: admin/view-languages.php:143
353
  msgid "Search translations"
354
  msgstr ""
355
 
356
  # @ polylang
357
+ #: admin/view-languages.php:146
358
  msgid "Clean strings translation database"
359
  msgstr ""
360
 
361
  # @ polylang
362
+ #: admin/view-languages.php:164
363
  msgid "Default language"
364
  msgstr "Standaardtaal"
365
 
366
  # @ polylang
367
+ #: admin/view-languages.php:179
368
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
369
  msgstr "Er zijn berichten, pagina's, categorieën of tags zonder taalinstelling. Deze allemaal instellen op de standaardtaal?"
370
 
371
  # @ polylang
372
+ #: admin/view-languages.php:187
373
  msgid "Detect browser language"
374
  msgstr "Bepaal de taal van de browser"
375
 
376
  # @ polylang
377
+ #: admin/view-languages.php:193
378
  msgid "When the front page is visited, set the language according to the browser preference"
379
  msgstr "Wanneer de startpagina bezocht is, stel dan de taal in op basis van de voorkeur van de browser"
380
 
381
  # @ polylang
382
+ #: admin/view-languages.php:200
383
  msgid "URL modifications"
384
  msgstr "URL aanpassingen"
385
 
386
  # @ polylang
387
+ #: admin/view-languages.php:206
388
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
389
  msgstr ""
390
 
 
 
 
 
391
  # @ polylang
392
+ #: admin/view-languages.php:253
393
  msgid "Remove /language/ in pretty permalinks. Example:"
394
  msgstr "Verwijder /language/ in pretty permalinks. Voorbeeld:"
395
 
396
  # @ polylang
397
+ #: admin/view-languages.php:262
398
  msgid "Keep /language/ in pretty permalinks. Example:"
399
  msgstr "Behoud /language/ in pretty permalinks. Voorbeeld:"
400
 
401
  # @ polylang
402
+ #: admin/view-languages.php:271
403
  msgid "Hide URL language information for default language"
404
  msgstr "Verberg URL taalinformatie voor de standaardtaal"
405
 
406
  # @ polylang
407
+ #: admin/view-languages.php:281
408
  #, php-format
409
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
410
  msgstr ""
411
 
412
  # @ polylang
413
+ #: admin/view-languages.php:290
414
  msgid "Media"
415
  msgstr ""
416
 
417
  # @ polylang
418
+ #: admin/view-languages.php:296
419
  msgid "Activate languages and translations for media"
420
  msgstr ""
421
 
422
+ #: admin/view-languages.php:303
423
  msgid "Synchronization"
424
  msgstr ""
425
 
426
  # @ polylang
427
+ #: admin/view-languages.php:320
428
  msgid "Custom post types"
429
  msgstr ""
430
 
431
  # @ polylang
432
+ #: admin/view-languages.php:333
433
  msgid "Activate languages and translations for custom post types."
434
  msgstr ""
435
 
436
  # @ polylang
437
+ #: admin/view-languages.php:340
438
  msgid "Custom taxonomies"
439
  msgstr ""
440
 
441
  # @ polylang
442
+ #: admin/view-languages.php:353
443
  msgid "Activate languages and translations for custom taxonomies."
444
  msgstr ""
445
 
446
  # @ polylang
447
+ #: admin/table-languages.php:54
448
+ #: admin/view-translations-media.php:24
449
+ #: admin/view-translations-media.php:62
450
+ #: admin/view-translations-post.php:10
451
+ #: admin/view-translations-post.php:33
452
+ #: admin/view-translations-term.php:18
453
+ #: admin/view-translations-term.php:80
454
  msgid "Edit"
455
  msgstr "Wijzig"
456
 
457
  # @ polylang
458
+ #: admin/table-languages.php:60
459
+ #: admin/table-string.php:167
460
  msgid "Delete"
461
  msgstr "Verwijder"
462
 
463
  # @ polylang
464
+ #: admin/table-languages.php:76
465
  msgid "Code"
466
  msgstr "Taalcode"
467
 
468
  # @ polylang
469
+ #: admin/table-languages.php:78
470
  msgid "Flag"
471
  msgstr "Vlag"
472
 
473
  # @ polylang
474
+ #: admin/table-languages.php:79
475
  msgid "Posts"
476
  msgstr "Berichten"
477
 
478
  # @ polylang
479
+ #: admin/table-string.php:109
480
  msgid "Name"
481
  msgstr "Naam"
482
 
483
  # @ polylang
484
+ #: admin/table-string.php:110
485
  msgid "String"
486
  msgstr "Tekst"
487
 
488
  # @ polylang
489
+ #: admin/view-translations-media.php:8
490
+ #: admin/view-translations-media.php:46
491
+ #: admin/view-translations-term.php:16
492
  msgid "Translation"
493
  msgstr "Vertaling"
494
 
495
  # @ polylang
496
+ #: admin/view-translations-media.php:33
497
+ #: admin/view-translations-media.php:70
498
+ #: admin/view-translations-post.php:38
499
+ #: admin/view-translations-term.php:60
500
  msgid "Add new"
501
  msgstr "Voeg nieuwe toe"
502
 
503
  # @ polylang
504
+ #: admin/view-translations-post.php:5
505
  msgid "ID of pages in other languages:"
506
  msgstr "ID's van pagina's in andere talen:"
507
 
508
  # @ polylang
509
+ #: admin/view-translations-post.php:5
510
  msgid "ID of posts in other languages:"
511
  msgstr "ID's van berichten in andere talen:"
512
 
513
  # @ polylang
514
+ #: admin/view-translations-post.php:9
515
  msgid "Page ID"
516
  msgstr "Pagina ID"
517
 
518
  # @ polylang
519
+ #: admin/view-translations-post.php:9
520
  msgid "Post ID"
521
  msgstr "Bericht ID"
522
 
523
  # @ polylang
524
+ #: admin/view-translations-term.php:48
525
  msgid "No untranslated term"
526
  msgstr "Geen onvertaalde term"
527
 
528
  # @ polylang
529
+ #: include/widget-languages.php:16
530
  msgid "Language Switcher"
531
  msgstr "Taalschakelaar"
532
 
533
  # @ polylang
534
+ #: include/widget-languages.php:16
535
  msgid "Displays a language switcher"
536
  msgstr "Toon een taalschakelaar"
537
 
538
  # @ polylang
539
+ #: include/widget-languages.php:100
540
  msgid "Title:"
541
  msgstr "Titel:"
542
 
547
  msgstr ""
548
 
549
  # @ polylang
550
+ #: polylang.php:157
551
  #, php-format
552
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
553
  msgstr "Je gebruikt Wordpress %s. Polylang vereist tenminste Wordpress %s."
554
 
555
  # @ polylang
556
+ #: include/upgrade.php:75
 
 
 
 
 
557
  msgid "Polylang has been deactivated because you upgraded from a too old version."
558
  msgstr ""
559
 
560
  # @ polylang
561
+ #: include/upgrade.php:77
562
  #, php-format
563
  msgid "Please upgrade first to %s before ugrading to %s."
564
  msgstr ""
565
 
566
  # @ polylang
567
+ #: admin/table-string.php:108
568
  msgid "Group"
569
  msgstr ""
570
 
571
  # @ polylang
572
+ #: admin/table-string.php:186
573
  msgid "View all groups"
574
  msgstr ""
575
 
576
+ # @ polylang
577
+ #: admin/table-languages.php:59
578
+ msgid "You are about to permanently delete this language. Are you sure?"
579
+ msgstr ""
580
+
581
+ # @ polylang
582
+ #: admin/view-languages.php:147
583
+ msgid "Use this to remove unused strings from database, for example after a plugin has been uninstalled."
584
+ msgstr ""
585
+
586
+ # @ polylang
587
+ #: admin/view-languages.php:214
588
+ msgid "The language is set from the directory name in pretty permalinks. Example:"
589
+ msgstr ""
590
+
591
+ # @ polylang
592
+ #: admin/view-languages.php:223
593
+ msgid "The language is set from the subdomain name in pretty permalinks. Example:"
594
+ msgstr ""
595
+
596
+ # @ polylang
597
+ #: admin/view-languages.php:314
598
+ 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."
599
+ msgstr ""
600
+
601
+ # @ polylang
602
+ #: admin/settings.php:75
603
+ msgid "The language code contains invalid characters"
604
+ msgstr ""
605
+
606
+ # @ polylang
607
+ #: admin/view-languages.php:232
608
+ msgid "The language is set from different domains:"
609
+ msgstr ""
610
+
languages/polylang-pl_PL.mo CHANGED
Binary file
languages/polylang-pl_PL.po CHANGED
@@ -18,537 +18,524 @@ msgstr ""
18
  "X-Poedit-SearchPath-0: ..\n"
19
 
20
  # @ polylang
21
- #: include/about.php:3
22
  #, php-format
23
  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."
24
  msgstr ""
25
 
26
  # @ polylang
27
- #: include/about.php:9
28
  #, php-format
29
  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."
30
  msgstr ""
31
 
32
  # @ polylang
33
- #: include/about.php:16
34
  #, php-format
35
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
36
  msgstr ""
37
 
38
  # @ polylang
39
- #: include/about.php:22
40
  #, php-format
41
  msgid "If you wonder how you can help the project, just %sread this%s."
42
  msgstr ""
43
 
44
  # @ polylang
45
- #: include/about.php:27
46
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
47
  msgstr ""
48
 
49
  # @ polylang
50
- #: include/admin-base.php:55
51
- #: include/admin-base.php:190
52
- #: include/admin-filters.php:243
53
- #: include/admin.php:23
54
- #: include/admin.php:301
55
- #: include/list-table.php:13
56
- #: polylang.php:339
57
  msgid "Languages"
58
  msgstr "Języki"
59
 
60
  # @ polylang
61
- #: include/admin-base.php:153
62
  msgid "Displays language names"
63
  msgstr "Wyświetla nazwy języków"
64
 
65
  # @ polylang
66
- #: include/admin-base.php:154
67
  msgid "Displays flags"
68
  msgstr "Wyświetla flagi"
69
 
70
  # @ polylang
71
- #: include/admin-base.php:155
72
  msgid "Forces link to front page"
73
  msgstr "Wymusza link do strony głównej"
74
 
75
  # @ polylang
76
- #: include/admin-base.php:156
77
  msgid "Hides the current language"
78
  msgstr "Ukrywa aktualny język"
79
 
80
  # @ polylang
81
- #: include/admin-base.php:160
82
  msgid "Displays as dropdown"
83
  msgstr "Wyświetla się jako menu rozwijane"
84
 
85
  # @ polylang
86
- #: include/admin-base.php:191
87
  msgid "Filters content by language"
88
  msgstr ""
89
 
90
  # @ polylang
91
- #: include/admin-base.php:186
92
  msgid "Show all languages"
93
  msgstr "Pokaż wszystkie języki"
94
 
95
  # @ polylang
96
- #: include/admin-filters.php:181
97
- #: include/admin-filters.php:877
98
  msgid "Add new translation"
99
  msgstr "Dodaj nowe tłumaczenie"
100
 
101
  # @ polylang
102
- #: include/admin-filters.php:209
103
- #: include/admin-filters.php:267
104
- #: include/admin-filters.php:601
105
- #: include/admin-filters.php:817
106
- #: include/admin-filters.php:835
107
- #: include/list-table.php:12
108
- #: include/media-translations.php:5
109
- #: include/media-translations.php:43
110
- #: include/post-translations.php:8
111
- #: include/term-translations.php:15
112
- #: polylang.php:340
113
  msgid "Language"
114
  msgstr "Język"
115
 
116
  # @ polylang
117
- #: include/admin-filters.php:616
118
- #: include/admin-filters.php:651
119
- #: include/list-table.php:127
120
- #: include/media-translations.php:40
121
- #: include/term-translations.php:6
122
- #: include/term-translations.php:11
123
  msgid "Translations"
124
  msgstr "Tłumaczenia"
125
 
126
  # @ polylang
127
- #: include/admin-filters.php:819
128
- #: include/admin-filters.php:838
129
  msgid "Sets the language"
130
  msgstr "Ustawia język"
131
 
132
  # @ polylang
133
- #: include/admin-filters.php:1053
134
  msgid "The widget is displayed for:"
135
  msgstr "Widget wyświetlany jest dla:"
136
 
137
  # @ polylang
138
- #: include/admin-filters.php:1057
139
- #: polylang.php:341
140
  msgid "All languages"
141
  msgstr "Wszystkie języki"
142
 
143
  # @ polylang
144
- #: include/admin-filters.php:1080
145
  msgid "Admin language"
146
  msgstr "Język administratora"
147
 
148
- #: include/admin-filters.php:1085
149
  msgid "Wordpress default"
150
  msgstr ""
151
 
152
  # @ default
153
  # @ polylang
154
- #: include/admin-filters.php:1114
155
- #: include/admin.php:306
156
  msgid "Settings"
157
  msgstr "Ustawienia"
158
 
159
  # @ polylang
160
- #: include/admin-filters.php:1120
161
  msgid "Upgrading language files&#8230;"
162
  msgstr "Uaktualnianie pliku językowego&#8230;"
163
 
164
  # @ polylang
165
- #: include/admin.php:22
166
  msgid "About Polylang"
167
  msgstr ""
168
 
169
  # @ polylang
170
- #: include/admin.php:27
171
- #: include/list-table.php:82
172
  msgid "Strings translations"
173
  msgstr "Tłumaczenia ciągów tekstowych"
174
 
175
  # @ polylang
176
- #: include/admin.php:305
177
- #: include/list-table.php:81
178
  msgid "Strings translation"
179
  msgstr "Tłumaczenie ciągów tekstowych"
180
 
181
  # @ polylang
182
- #: include/admin.php:345
183
  msgid "Enter a valid WorPress locale"
184
  msgstr "Wpisz prawidłową lokalizację WordPress"
185
 
186
  # @ polylang
187
- #: include/admin.php:346
188
- msgid "The language code must be 2 characters long"
189
- msgstr "Kod języka musi się składać z 2 znaków"
190
-
191
- # @ polylang
192
- #: include/admin.php:328
193
  msgid "The language code must be unique"
194
  msgstr "Kod języka musi być unikalny"
195
 
196
  # @ polylang
197
- #: include/admin.php:329
198
  msgid "The language must have a name"
199
  msgstr "Język musi mieć nazwę"
200
 
201
  # @ polylang
202
- #: include/admin.php:330
203
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
204
  msgstr "Język został dodany, ale plik językowy WordPress nie został załadowany. Proszę zainstalować go manualnie."
205
 
206
  # @ polylang
207
- #: include/admin.php:449
208
  msgid "Widget title"
209
  msgstr "Nazwa widgeta"
210
 
211
  # @ polylang
212
- #: include/base.php:368
213
  msgid "Taxonomies"
214
  msgstr ""
215
 
216
  # @ polylang
217
- #: include/base.php:369
218
  msgid "Custom fields"
219
  msgstr ""
220
 
221
  # @ polylang
222
- #: include/base.php:370
223
  msgid "Comment status"
224
  msgstr ""
225
 
226
  # @ polylang
227
- #: include/base.php:371
228
  msgid "Ping status"
229
  msgstr ""
230
 
231
  # @ polylang
232
- #: include/base.php:372
233
  msgid "Sticky posts"
234
  msgstr ""
235
 
236
  # @ polylang
237
- #: include/base.php:373
238
  msgid "Published date"
239
  msgstr ""
240
 
241
  # @ polylang
242
- #: include/base.php:374
243
  msgid "Post format"
244
  msgstr ""
245
 
246
  # @ default
247
- #: include/base.php:375
248
  msgid "Page parent"
249
  msgstr ""
250
 
251
  # @ polylang
252
- #: include/base.php:376
253
  msgid "Page template"
254
  msgstr ""
255
 
256
  # @ polylang
257
- #: include/base.php:377
258
  msgid "Page order"
259
  msgstr ""
260
 
261
  # @ polylang
262
- #: include/base.php:378
263
  msgid "Featured image"
264
  msgstr ""
265
 
266
  # @ polylang
267
- #: include/languages-form.php:42
268
  msgid "Edit language"
269
  msgstr "Edytuj język"
270
 
271
  # @ polylang
272
- #: include/languages-form.php:42
273
- #: include/languages-form.php:123
274
  msgid "Add new language"
275
  msgstr "Dodaj nowy język"
276
 
277
  # @ polylang
278
- #: include/languages-form.php:64
279
  msgid "Choose a language"
280
  msgstr "Wybierz język"
281
 
282
  # @ polylang
283
- #: include/languages-form.php:78
284
  msgid "You can choose a language in the list or directly edit it below."
285
  msgstr "Możesz wybrać język z listy lub edytować go bezpośrednio poniżej"
286
 
287
  # @ polylang
288
- #: include/languages-form.php:82
289
- #: include/list-table.php:34
290
  msgid "Full name"
291
  msgstr "Pełna nazwa"
292
 
293
  # @ polylang
294
- #: include/languages-form.php:84
295
  msgid "The name is how it is displayed on your site (for example: English)."
296
  msgstr "Nazwa, tak jak będzie wyświetlana na stronie (np. English)"
297
 
298
  # @ polylang
299
- #: include/languages-form.php:88
300
- #: include/list-table.php:35
301
  msgid "Locale"
302
  msgstr "Lokalizacja"
303
 
304
  # @ polylang
305
- #: include/languages-form.php:93
306
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
307
  msgstr "Lokalizacja WordPress dla języka (np. en_US). Dla tego języka będziesz musiał zainstalować plik .mo."
308
 
309
  # @ polylang
310
- #: include/languages-form.php:97
311
  msgid "Language code"
312
  msgstr "Kod języka"
313
 
314
  # @ polylang
315
- #: include/languages-form.php:99
316
  msgid "2-letters ISO 639-1 language code (for example: en)"
317
  msgstr "2-literowy kod języka w ISO 639-1 (np. en)"
318
 
319
  # @ polylang
320
- #: include/languages-form.php:103
321
  msgid "Text direction"
322
  msgstr "Kierunek zapisu języka"
323
 
324
  # @ polylang
325
- #: include/languages-form.php:107
326
  msgid "left to right"
327
  msgstr "od lewej do prawej"
328
 
329
  # @ polylang
330
- #: include/languages-form.php:112
331
  msgid "right to left"
332
  msgstr "od prawej do lewej"
333
 
334
  # @ polylang
335
- #: include/languages-form.php:114
336
  msgid "Choose the text direction for the language"
337
  msgstr "Wybierz kierunek zapisu języka"
338
 
339
  # @ polylang
340
- #: include/languages-form.php:118
341
- #: include/list-table.php:37
342
  msgid "Order"
343
  msgstr "Kolejność"
344
 
345
  # @ polylang
346
- #: include/languages-form.php:120
347
  msgid "Position of the language in the language switcher"
348
  msgstr "Pozycja języka w przełączniku języka"
349
 
350
  # @ polylang
351
- #: include/nav-menu.php:28
352
- #: include/nav-menu.php:51
353
- #: include/nav-menu.php:54
354
- #: include/nav-menu.php:82
355
- #: include/nav-menu.php:106
356
- #: polylang.php:302
357
  msgid "Language switcher"
358
  msgstr "Przełącznik języka"
359
 
360
  # @ polylang
361
- #: include/languages-form.php:148
362
  msgid "Search translations"
363
  msgstr ""
364
 
365
  # @ polylang
366
- #: include/languages-form.php:151
367
  msgid "Clean strings translation database"
368
  msgstr ""
369
 
370
  # @ polylang
371
- #: include/languages-form.php:167
372
  msgid "Default language"
373
  msgstr "Domyślny język"
374
 
375
  # @ polylang
376
- #: include/languages-form.php:179
377
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
378
  msgstr "Istnieją wpisy, strony, kategorie i tagi bez określonego języka. Czy chcesz ustawić dla nich domyślny język?"
379
 
380
  # @ polylang
381
- #: include/languages-form.php:187
382
  msgid "Detect browser language"
383
  msgstr "Wykryj język przeglądarki"
384
 
385
  # @ polylang
386
- #: include/languages-form.php:193
387
  msgid "When the front page is visited, set the language according to the browser preference"
388
  msgstr "Przy wejściu na stronę domową, ustaw język zgodnie z ustawieniami przeglądarki"
389
 
390
  # @ polylang
391
- #: include/languages-form.php:200
392
  msgid "URL modifications"
393
  msgstr "Modyfikacje URL"
394
 
395
  # @ polylang
396
- #: include/languages-form.php:206
397
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
398
  msgstr ""
399
 
400
- #: include/languages-form.php:214
401
- msgid "The language code, for example /en/, is added to all urls when using pretty permalinks."
402
- msgstr ""
403
-
404
  # @ polylang
405
- #: include/languages-form.php:223
406
  msgid "Remove /language/ in pretty permalinks. Example:"
407
  msgstr "Usuń /language/ z przyjaznych permalinków. Np.:"
408
 
409
  # @ polylang
410
- #: include/languages-form.php:232
411
  msgid "Keep /language/ in pretty permalinks. Example:"
412
  msgstr "Zachowaj /language/ w przyjaznych permalinkach. Np.:"
413
 
414
  # @ polylang
415
- #: include/languages-form.php:241
416
  msgid "Hide URL language information for default language"
417
  msgstr "Ukryj informację o języku w URL dla domyślnego języka"
418
 
419
- #: include/languages-form.php:251
420
  #, php-format
421
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
422
  msgstr ""
423
 
424
  # @ polylang
425
- #: include/languages-form.php:260
426
  msgid "Media"
427
  msgstr ""
428
 
429
  # @ polylang
430
- #: include/languages-form.php:266
431
  msgid "Activate languages and translations for media"
432
  msgstr ""
433
 
434
- #: include/languages-form.php:273
435
  msgid "Synchronization"
436
  msgstr ""
437
 
438
  # @ polylang
439
- #: include/languages-form.php:287
440
  msgid "Custom post types"
441
  msgstr ""
442
 
443
  # @ polylang
444
- #: include/languages-form.php:300
445
  msgid "Activate languages and translations for custom post types."
446
  msgstr ""
447
 
448
  # @ polylang
449
- #: include/languages-form.php:307
450
  msgid "Custom taxonomies"
451
  msgstr ""
452
 
453
  # @ polylang
454
- #: include/languages-form.php:320
455
  msgid "Activate languages and translations for custom taxonomies."
456
  msgstr ""
457
 
458
  # @ polylang
459
- #: include/list-table.php:26
460
- #: include/media-translations.php:22
461
- #: include/media-translations.php:60
462
- #: include/post-translations.php:10
463
- #: include/post-translations.php:33
464
- #: include/term-translations.php:18
465
- #: include/term-translations.php:80
466
  msgid "Edit"
467
  msgstr "Edytuj"
468
 
469
  # @ polylang
470
- #: include/list-table.php:27
471
- #: include/list-table.php:162
472
  msgid "Delete"
473
  msgstr "Usuń"
474
 
475
  # @ polylang
476
- #: include/list-table.php:36
477
  msgid "Code"
478
  msgstr "Kod"
479
 
480
  # @ polylang
481
- #: include/list-table.php:38
482
  msgid "Flag"
483
  msgstr "Flaga"
484
 
485
  # @ polylang
486
- #: include/list-table.php:39
487
  msgid "Posts"
488
  msgstr "Wpisy"
489
 
490
  # @ polylang
491
- #: include/list-table.php:125
492
  msgid "Name"
493
  msgstr "Nazwa"
494
 
495
  # @ polylang
496
- #: include/list-table.php:126
497
  msgid "String"
498
  msgstr "Ciąg tekstowy"
499
 
500
  # @ polylang
501
- #: include/media-translations.php:6
502
- #: include/media-translations.php:44
503
- #: include/term-translations.php:16
504
  msgid "Translation"
505
  msgstr "Tłumaczenie"
506
 
507
  # @ polylang
508
- #: include/media-translations.php:31
509
- #: include/media-translations.php:68
510
- #: include/post-translations.php:38
511
- #: include/term-translations.php:60
512
  msgid "Add new"
513
  msgstr "Dodaj nowy"
514
 
515
  # @ polylang
516
- #: include/post-translations.php:5
517
  msgid "ID of pages in other languages:"
518
  msgstr "ID stron w innych językach"
519
 
520
  # @ polylang
521
- #: include/post-translations.php:5
522
  msgid "ID of posts in other languages:"
523
  msgstr "ID wpisów w innych językach"
524
 
525
  # @ polylang
526
- #: include/post-translations.php:9
527
  msgid "Page ID"
528
  msgstr "ID strony"
529
 
530
  # @ polylang
531
- #: include/post-translations.php:9
532
  msgid "Post ID"
533
  msgstr "ID wpisu"
534
 
535
  # @ polylang
536
- #: include/term-translations.php:48
537
  msgid "No untranslated term"
538
  msgstr "Brak nieprzetłumaczonego terminu"
539
 
540
  # @ polylang
541
- #: include/widget.php:6
542
  msgid "Language Switcher"
543
  msgstr "Przełącznik języka"
544
 
545
  # @ polylang
546
- #: include/widget.php:6
547
  msgid "Displays a language switcher"
548
  msgstr "Wyświetla przełącznik języka"
549
 
550
  # @ polylang
551
- #: include/widget.php:69
552
  msgid "Title:"
553
  msgstr "Tytuł:"
554
 
@@ -559,34 +546,64 @@ msgid "Adds multilingual capability to WordPress"
559
  msgstr ""
560
 
561
  # @ polylang
562
- #: polylang.php:133
563
  #, php-format
564
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
565
  msgstr "Używasz WordPress %s. Polylang wymaga przynajmniej WordPress %s."
566
 
567
  # @ polylang
568
- #: polylang.php:174
569
- msgid "For some reasons, Polylang could not create a table in your database."
570
- msgstr ""
571
-
572
- # @ polylang
573
- #: polylang.php:235
574
  msgid "Polylang has been deactivated because you upgraded from a too old version."
575
  msgstr ""
576
 
577
  # @ polylang
578
- #: polylang.php:237
579
  #, php-format
580
  msgid "Please upgrade first to %s before ugrading to %s."
581
  msgstr ""
582
 
583
  # @ polylang
584
- #: include/list-table.php:124
585
  msgid "Group"
586
  msgstr ""
587
 
588
  # @ polylang
589
- #: include/list-table.php:173
590
  msgid "View all groups"
591
  msgstr ""
592
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  "X-Poedit-SearchPath-0: ..\n"
19
 
20
  # @ polylang
21
+ #: admin/view-about.php:3
22
  #, php-format
23
  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."
24
  msgstr ""
25
 
26
  # @ polylang
27
+ #: admin/view-about.php:9
28
  #, php-format
29
  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."
30
  msgstr ""
31
 
32
  # @ polylang
33
+ #: admin/view-about.php:16
34
  #, php-format
35
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
36
  msgstr ""
37
 
38
  # @ polylang
39
+ #: admin/view-about.php:22
40
  #, php-format
41
  msgid "If you wonder how you can help the project, just %sread this%s."
42
  msgstr ""
43
 
44
  # @ polylang
45
+ #: admin/view-about.php:27
46
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
47
  msgstr ""
48
 
49
  # @ polylang
50
+ #: admin/admin-filters-post.php:76
51
+ #: admin/admin.php:83
52
+ #: admin/admin.php:187
53
+ #: admin/settings.php:42
54
+ #: admin/settings.php:57
55
+ #: include/model.php:490
 
56
  msgid "Languages"
57
  msgstr "Języki"
58
 
59
  # @ polylang
60
+ #: include/switcher.php:22
61
  msgid "Displays language names"
62
  msgstr "Wyświetla nazwy języków"
63
 
64
  # @ polylang
65
+ #: include/switcher.php:23
66
  msgid "Displays flags"
67
  msgstr "Wyświetla flagi"
68
 
69
  # @ polylang
70
+ #: include/switcher.php:24
71
  msgid "Forces link to front page"
72
  msgstr "Wymusza link do strony głównej"
73
 
74
  # @ polylang
75
+ #: include/switcher.php:25
76
  msgid "Hides the current language"
77
  msgstr "Ukrywa aktualny język"
78
 
79
  # @ polylang
80
+ #: include/switcher.php:29
81
  msgid "Displays as dropdown"
82
  msgstr "Wyświetla się jako menu rozwijane"
83
 
84
  # @ polylang
85
+ #: admin/admin.php:188
86
  msgid "Filters content by language"
87
  msgstr ""
88
 
89
  # @ polylang
90
+ #: admin/admin.php:183
91
  msgid "Show all languages"
92
  msgstr "Pokaż wszystkie języki"
93
 
94
  # @ polylang
95
+ #: admin/admin-filters-columns.php:126
96
+ #: admin/admin-filters-columns.php:215
97
  msgid "Add new translation"
98
  msgstr "Dodaj nowe tłumaczenie"
99
 
100
  # @ polylang
101
+ #: admin/admin-filters-columns.php:163
102
+ #: admin/admin-filters-media.php:58
103
+ #: admin/admin-filters-post.php:109
104
+ #: admin/admin-filters-term.php:72
105
+ #: admin/admin-filters-term.php:106
106
+ #: admin/view-translations-media.php:7
107
+ #: admin/view-translations-media.php:45
108
+ #: admin/view-translations-post.php:8
109
+ #: admin/view-translations-term.php:15
110
+ #: include/model.php:491
 
111
  msgid "Language"
112
  msgstr "Język"
113
 
114
  # @ polylang
115
+ #: admin/admin-filters-media.php:73
116
+ #: admin/admin-filters-media.php:112
117
+ #: admin/table-string.php:111
118
+ #: admin/view-translations-media.php:42
119
+ #: admin/view-translations-term.php:6
120
+ #: admin/view-translations-term.php:11
121
  msgid "Translations"
122
  msgstr "Tłumaczenia"
123
 
124
  # @ polylang
125
+ #: admin/admin-filters-term.php:74
126
+ #: admin/admin-filters-term.php:108
127
  msgid "Sets the language"
128
  msgstr "Ustawia język"
129
 
130
  # @ polylang
131
+ #: admin/admin-filters.php:60
132
  msgid "The widget is displayed for:"
133
  msgstr "Widget wyświetlany jest dla:"
134
 
135
  # @ polylang
136
+ #: admin/admin-filters.php:63
137
+ #: include/model.php:492
138
  msgid "All languages"
139
  msgstr "Wszystkie języki"
140
 
141
  # @ polylang
142
+ #: admin/admin-filters.php:120
143
  msgid "Admin language"
144
  msgstr "Język administratora"
145
 
146
+ #: admin/admin-filters.php:123
147
  msgid "Wordpress default"
148
  msgstr ""
149
 
150
  # @ default
151
  # @ polylang
152
+ #: admin/admin.php:123
153
+ #: admin/settings.php:62
154
  msgid "Settings"
155
  msgstr "Ustawienia"
156
 
157
  # @ polylang
158
+ #: admin/admin-filters.php:151
159
  msgid "Upgrading language files&#8230;"
160
  msgstr "Uaktualnianie pliku językowego&#8230;"
161
 
162
  # @ polylang
163
+ #: admin/settings.php:38
164
  msgid "About Polylang"
165
  msgstr ""
166
 
167
  # @ polylang
168
+ #: admin/settings.php:46
 
169
  msgid "Strings translations"
170
  msgstr "Tłumaczenia ciągów tekstowych"
171
 
172
  # @ polylang
173
+ #: admin/settings.php:61
 
174
  msgid "Strings translation"
175
  msgstr "Tłumaczenie ciągów tekstowych"
176
 
177
  # @ polylang
178
+ #: admin/settings.php:74
179
  msgid "Enter a valid WorPress locale"
180
  msgstr "Wpisz prawidłową lokalizację WordPress"
181
 
182
  # @ polylang
183
+ #: admin/settings.php:76
 
 
 
 
 
184
  msgid "The language code must be unique"
185
  msgstr "Kod języka musi być unikalny"
186
 
187
  # @ polylang
188
+ #: admin/settings.php:77
189
  msgid "The language must have a name"
190
  msgstr "Język musi mieć nazwę"
191
 
192
  # @ polylang
193
+ #: admin/settings.php:78
194
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
195
  msgstr "Język został dodany, ale plik językowy WordPress nie został załadowany. Proszę zainstalować go manualnie."
196
 
197
  # @ polylang
198
+ #: admin/settings.php:305
199
  msgid "Widget title"
200
  msgstr "Nazwa widgeta"
201
 
202
  # @ polylang
203
+ #: admin/settings.php:323
204
  msgid "Taxonomies"
205
  msgstr ""
206
 
207
  # @ polylang
208
+ #: admin/settings.php:324
209
  msgid "Custom fields"
210
  msgstr ""
211
 
212
  # @ polylang
213
+ #: admin/settings.php:325
214
  msgid "Comment status"
215
  msgstr ""
216
 
217
  # @ polylang
218
+ #: admin/settings.php:326
219
  msgid "Ping status"
220
  msgstr ""
221
 
222
  # @ polylang
223
+ #: admin/settings.php:327
224
  msgid "Sticky posts"
225
  msgstr ""
226
 
227
  # @ polylang
228
+ #: admin/settings.php:328
229
  msgid "Published date"
230
  msgstr ""
231
 
232
  # @ polylang
233
+ #: admin/settings.php:329
234
  msgid "Post format"
235
  msgstr ""
236
 
237
  # @ default
238
+ #: admin/settings.php:330
239
  msgid "Page parent"
240
  msgstr ""
241
 
242
  # @ polylang
243
+ #: admin/settings.php:331
244
  msgid "Page template"
245
  msgstr ""
246
 
247
  # @ polylang
248
+ #: admin/settings.php:332
249
  msgid "Page order"
250
  msgstr ""
251
 
252
  # @ polylang
253
+ #: admin/settings.php:333
254
  msgid "Featured image"
255
  msgstr ""
256
 
257
  # @ polylang
258
+ #: admin/view-languages.php:42
259
  msgid "Edit language"
260
  msgstr "Edytuj język"
261
 
262
  # @ polylang
263
+ #: admin/view-languages.php:42
264
+ #: admin/view-languages.php:117
265
  msgid "Add new language"
266
  msgstr "Dodaj nowy język"
267
 
268
  # @ polylang
269
+ #: admin/view-languages.php:58
270
  msgid "Choose a language"
271
  msgstr "Wybierz język"
272
 
273
  # @ polylang
274
+ #: admin/view-languages.php:72
275
  msgid "You can choose a language in the list or directly edit it below."
276
  msgstr "Możesz wybrać język z listy lub edytować go bezpośrednio poniżej"
277
 
278
  # @ polylang
279
+ #: admin/table-languages.php:74
280
+ #: admin/view-languages.php:76
281
  msgid "Full name"
282
  msgstr "Pełna nazwa"
283
 
284
  # @ polylang
285
+ #: admin/view-languages.php:78
286
  msgid "The name is how it is displayed on your site (for example: English)."
287
  msgstr "Nazwa, tak jak będzie wyświetlana na stronie (np. English)"
288
 
289
  # @ polylang
290
+ #: admin/table-languages.php:75
291
+ #: admin/view-languages.php:82
292
  msgid "Locale"
293
  msgstr "Lokalizacja"
294
 
295
  # @ polylang
296
+ #: admin/view-languages.php:87
297
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
298
  msgstr "Lokalizacja WordPress dla języka (np. en_US). Dla tego języka będziesz musiał zainstalować plik .mo."
299
 
300
  # @ polylang
301
+ #: admin/view-languages.php:91
302
  msgid "Language code"
303
  msgstr "Kod języka"
304
 
305
  # @ polylang
306
+ #: admin/view-languages.php:93
307
  msgid "2-letters ISO 639-1 language code (for example: en)"
308
  msgstr "2-literowy kod języka w ISO 639-1 (np. en)"
309
 
310
  # @ polylang
311
+ #: admin/view-languages.php:97
312
  msgid "Text direction"
313
  msgstr "Kierunek zapisu języka"
314
 
315
  # @ polylang
316
+ #: admin/view-languages.php:101
317
  msgid "left to right"
318
  msgstr "od lewej do prawej"
319
 
320
  # @ polylang
321
+ #: admin/view-languages.php:106
322
  msgid "right to left"
323
  msgstr "od prawej do lewej"
324
 
325
  # @ polylang
326
+ #: admin/view-languages.php:108
327
  msgid "Choose the text direction for the language"
328
  msgstr "Wybierz kierunek zapisu języka"
329
 
330
  # @ polylang
331
+ #: admin/table-languages.php:77
332
+ #: admin/view-languages.php:112
333
  msgid "Order"
334
  msgstr "Kolejność"
335
 
336
  # @ polylang
337
+ #: admin/view-languages.php:114
338
  msgid "Position of the language in the language switcher"
339
  msgstr "Pozycja języka w przełączniku języka"
340
 
341
  # @ polylang
342
+ #: admin/admin-nav-menu.php:51
343
+ #: admin/admin-nav-menu.php:79
344
+ #: admin/admin-nav-menu.php:82
345
+ #: admin/admin-nav-menu.php:113
346
+ #: admin/admin-nav-menu.php:170
347
+ #: include/upgrade.php:175
348
  msgid "Language switcher"
349
  msgstr "Przełącznik języka"
350
 
351
  # @ polylang
352
+ #: admin/view-languages.php:143
353
  msgid "Search translations"
354
  msgstr ""
355
 
356
  # @ polylang
357
+ #: admin/view-languages.php:146
358
  msgid "Clean strings translation database"
359
  msgstr ""
360
 
361
  # @ polylang
362
+ #: admin/view-languages.php:164
363
  msgid "Default language"
364
  msgstr "Domyślny język"
365
 
366
  # @ polylang
367
+ #: admin/view-languages.php:179
368
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
369
  msgstr "Istnieją wpisy, strony, kategorie i tagi bez określonego języka. Czy chcesz ustawić dla nich domyślny język?"
370
 
371
  # @ polylang
372
+ #: admin/view-languages.php:187
373
  msgid "Detect browser language"
374
  msgstr "Wykryj język przeglądarki"
375
 
376
  # @ polylang
377
+ #: admin/view-languages.php:193
378
  msgid "When the front page is visited, set the language according to the browser preference"
379
  msgstr "Przy wejściu na stronę domową, ustaw język zgodnie z ustawieniami przeglądarki"
380
 
381
  # @ polylang
382
+ #: admin/view-languages.php:200
383
  msgid "URL modifications"
384
  msgstr "Modyfikacje URL"
385
 
386
  # @ polylang
387
+ #: admin/view-languages.php:206
388
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
389
  msgstr ""
390
 
 
 
 
 
391
  # @ polylang
392
+ #: admin/view-languages.php:253
393
  msgid "Remove /language/ in pretty permalinks. Example:"
394
  msgstr "Usuń /language/ z przyjaznych permalinków. Np.:"
395
 
396
  # @ polylang
397
+ #: admin/view-languages.php:262
398
  msgid "Keep /language/ in pretty permalinks. Example:"
399
  msgstr "Zachowaj /language/ w przyjaznych permalinkach. Np.:"
400
 
401
  # @ polylang
402
+ #: admin/view-languages.php:271
403
  msgid "Hide URL language information for default language"
404
  msgstr "Ukryj informację o języku w URL dla domyślnego języka"
405
 
406
+ #: admin/view-languages.php:281
407
  #, php-format
408
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
409
  msgstr ""
410
 
411
  # @ polylang
412
+ #: admin/view-languages.php:290
413
  msgid "Media"
414
  msgstr ""
415
 
416
  # @ polylang
417
+ #: admin/view-languages.php:296
418
  msgid "Activate languages and translations for media"
419
  msgstr ""
420
 
421
+ #: admin/view-languages.php:303
422
  msgid "Synchronization"
423
  msgstr ""
424
 
425
  # @ polylang
426
+ #: admin/view-languages.php:320
427
  msgid "Custom post types"
428
  msgstr ""
429
 
430
  # @ polylang
431
+ #: admin/view-languages.php:333
432
  msgid "Activate languages and translations for custom post types."
433
  msgstr ""
434
 
435
  # @ polylang
436
+ #: admin/view-languages.php:340
437
  msgid "Custom taxonomies"
438
  msgstr ""
439
 
440
  # @ polylang
441
+ #: admin/view-languages.php:353
442
  msgid "Activate languages and translations for custom taxonomies."
443
  msgstr ""
444
 
445
  # @ polylang
446
+ #: admin/table-languages.php:54
447
+ #: admin/view-translations-media.php:24
448
+ #: admin/view-translations-media.php:62
449
+ #: admin/view-translations-post.php:10
450
+ #: admin/view-translations-post.php:33
451
+ #: admin/view-translations-term.php:18
452
+ #: admin/view-translations-term.php:80
453
  msgid "Edit"
454
  msgstr "Edytuj"
455
 
456
  # @ polylang
457
+ #: admin/table-languages.php:60
458
+ #: admin/table-string.php:167
459
  msgid "Delete"
460
  msgstr "Usuń"
461
 
462
  # @ polylang
463
+ #: admin/table-languages.php:76
464
  msgid "Code"
465
  msgstr "Kod"
466
 
467
  # @ polylang
468
+ #: admin/table-languages.php:78
469
  msgid "Flag"
470
  msgstr "Flaga"
471
 
472
  # @ polylang
473
+ #: admin/table-languages.php:79
474
  msgid "Posts"
475
  msgstr "Wpisy"
476
 
477
  # @ polylang
478
+ #: admin/table-string.php:109
479
  msgid "Name"
480
  msgstr "Nazwa"
481
 
482
  # @ polylang
483
+ #: admin/table-string.php:110
484
  msgid "String"
485
  msgstr "Ciąg tekstowy"
486
 
487
  # @ polylang
488
+ #: admin/view-translations-media.php:8
489
+ #: admin/view-translations-media.php:46
490
+ #: admin/view-translations-term.php:16
491
  msgid "Translation"
492
  msgstr "Tłumaczenie"
493
 
494
  # @ polylang
495
+ #: admin/view-translations-media.php:33
496
+ #: admin/view-translations-media.php:70
497
+ #: admin/view-translations-post.php:38
498
+ #: admin/view-translations-term.php:60
499
  msgid "Add new"
500
  msgstr "Dodaj nowy"
501
 
502
  # @ polylang
503
+ #: admin/view-translations-post.php:5
504
  msgid "ID of pages in other languages:"
505
  msgstr "ID stron w innych językach"
506
 
507
  # @ polylang
508
+ #: admin/view-translations-post.php:5
509
  msgid "ID of posts in other languages:"
510
  msgstr "ID wpisów w innych językach"
511
 
512
  # @ polylang
513
+ #: admin/view-translations-post.php:9
514
  msgid "Page ID"
515
  msgstr "ID strony"
516
 
517
  # @ polylang
518
+ #: admin/view-translations-post.php:9
519
  msgid "Post ID"
520
  msgstr "ID wpisu"
521
 
522
  # @ polylang
523
+ #: admin/view-translations-term.php:48
524
  msgid "No untranslated term"
525
  msgstr "Brak nieprzetłumaczonego terminu"
526
 
527
  # @ polylang
528
+ #: include/widget-languages.php:16
529
  msgid "Language Switcher"
530
  msgstr "Przełącznik języka"
531
 
532
  # @ polylang
533
+ #: include/widget-languages.php:16
534
  msgid "Displays a language switcher"
535
  msgstr "Wyświetla przełącznik języka"
536
 
537
  # @ polylang
538
+ #: include/widget-languages.php:100
539
  msgid "Title:"
540
  msgstr "Tytuł:"
541
 
546
  msgstr ""
547
 
548
  # @ polylang
549
+ #: polylang.php:157
550
  #, php-format
551
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
552
  msgstr "Używasz WordPress %s. Polylang wymaga przynajmniej WordPress %s."
553
 
554
  # @ polylang
555
+ #: include/upgrade.php:75
 
 
 
 
 
556
  msgid "Polylang has been deactivated because you upgraded from a too old version."
557
  msgstr ""
558
 
559
  # @ polylang
560
+ #: include/upgrade.php:77
561
  #, php-format
562
  msgid "Please upgrade first to %s before ugrading to %s."
563
  msgstr ""
564
 
565
  # @ polylang
566
+ #: admin/table-string.php:108
567
  msgid "Group"
568
  msgstr ""
569
 
570
  # @ polylang
571
+ #: admin/table-string.php:186
572
  msgid "View all groups"
573
  msgstr ""
574
 
575
+ # @ polylang
576
+ #: admin/table-languages.php:59
577
+ msgid "You are about to permanently delete this language. Are you sure?"
578
+ msgstr ""
579
+
580
+ # @ polylang
581
+ #: admin/view-languages.php:147
582
+ msgid "Use this to remove unused strings from database, for example after a plugin has been uninstalled."
583
+ msgstr ""
584
+
585
+ # @ polylang
586
+ #: admin/view-languages.php:214
587
+ msgid "The language is set from the directory name in pretty permalinks. Example:"
588
+ msgstr ""
589
+
590
+ # @ polylang
591
+ #: admin/view-languages.php:223
592
+ msgid "The language is set from the subdomain name in pretty permalinks. Example:"
593
+ msgstr ""
594
+
595
+ # @ polylang
596
+ #: admin/view-languages.php:314
597
+ 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."
598
+ msgstr ""
599
+
600
+ # @ polylang
601
+ #: admin/settings.php:75
602
+ msgid "The language code contains invalid characters"
603
+ msgstr ""
604
+
605
+ # @ polylang
606
+ #: admin/view-languages.php:232
607
+ msgid "The language is set from different domains:"
608
+ msgstr ""
609
+
languages/polylang-pt_PT.mo CHANGED
Binary file
languages/polylang-pt_PT.po CHANGED
@@ -17,459 +17,447 @@ msgstr ""
17
  "X-Poedit-SearchPath-0: ..\n"
18
  "X-Poedit-SearchPath-1: ../include\n"
19
 
20
- #: include/about.php:3
21
  #, php-format
22
  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."
23
  msgstr "O polylang está provido de uma extensa %sdocumentação%s (porém somente em Inglês). Inclui informação de como definir o seu site multilíngua e utilizá-lo no dia-a-dia, uma FAQ, assim como documentação para os programadores adaptarem os seus plugins e temas."
24
 
25
- #: include/about.php:9
26
  #, php-format
27
  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."
28
  msgstr "Também encontrará informações úteis no %sfórum de suporte%s, no entanto, não se esqueça de pesquisar antes de publicar um novo tópico."
29
 
30
- #: include/about.php:16
31
  #, php-format
32
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
33
  msgstr "O Polylang é gratuito e é abrangido pela mesmo licença que o WordPress, o %sGPL%s."
34
 
35
- #: include/about.php:22
36
  #, php-format
37
  msgid "If you wonder how you can help the project, just %sread this%s."
38
  msgstr "Se pretende ajudar o projeto, %sleia isto%s."
39
 
40
- #: include/about.php:27
41
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
42
  msgstr " Finalmente, se gostou deste plugin ou se este está a ajudá-lo no seu negócio, doações ao autor são extremamente agradecidas."
43
 
44
- #: include/admin-base.php:55
45
- #: include/admin-base.php:190
46
- #: include/admin-filters.php:243
47
- #: include/admin.php:23
48
- #: include/admin.php:301
49
- #: include/list-table.php:13
50
- #: polylang.php:339
51
  msgid "Languages"
52
  msgstr "Linguas"
53
 
54
- #: include/admin-base.php:153
55
  msgid "Displays language names"
56
  msgstr "Apresentar os nomes das linguas"
57
 
58
- #: include/admin-base.php:154
59
  msgid "Displays flags"
60
  msgstr "Apresentar bandeiras"
61
 
62
- #: include/admin-base.php:155
63
  msgid "Forces link to front page"
64
  msgstr "Forçar a hiperligação para a página inicial"
65
 
66
- #: include/admin-base.php:156
67
  msgid "Hides the current language"
68
  msgstr "Esconde a lingua actual"
69
 
70
- #: include/admin-base.php:160
71
  msgid "Displays as dropdown"
72
  msgstr "Apresentar como caixa de selecção"
73
 
74
- #: include/admin-base.php:191
75
  msgid "Filters content by language"
76
  msgstr "Filtrar conteúdo pela lingua"
77
 
78
- #: include/admin-base.php:186
79
  msgid "Show all languages"
80
  msgstr "Exibit todas as linguas"
81
 
82
- #: include/admin-filters.php:181
83
- #: include/admin-filters.php:877
84
  msgid "Add new translation"
85
  msgstr "Adicionar nova tradução"
86
 
87
- #: include/admin-filters.php:209
88
- #: include/admin-filters.php:267
89
- #: include/admin-filters.php:601
90
- #: include/admin-filters.php:817
91
- #: include/admin-filters.php:835
92
- #: include/list-table.php:12
93
- #: include/media-translations.php:5
94
- #: include/media-translations.php:43
95
- #: include/post-translations.php:8
96
- #: include/term-translations.php:15
97
- #: polylang.php:340
98
  msgid "Language"
99
  msgstr "Lingua"
100
 
101
- #: include/admin-filters.php:616
102
- #: include/admin-filters.php:651
103
- #: include/list-table.php:127
104
- #: include/media-translations.php:40
105
- #: include/term-translations.php:6
106
- #: include/term-translations.php:11
107
  msgid "Translations"
108
  msgstr "Traduções"
109
 
110
- #: include/admin-filters.php:819
111
- #: include/admin-filters.php:838
112
  msgid "Sets the language"
113
  msgstr "Define a lingua"
114
 
115
- #: include/admin-filters.php:1053
116
  msgid "The widget is displayed for:"
117
  msgstr "O widget é apresentado para:"
118
 
119
- #: include/admin-filters.php:1057
120
- #: polylang.php:341
121
  msgid "All languages"
122
  msgstr "Todas as linguas"
123
 
124
- #: include/admin-filters.php:1080
125
  msgid "Admin language"
126
  msgstr "Ligua do administrador"
127
 
128
- #: include/admin-filters.php:1085
129
  msgid "Wordpress default"
130
  msgstr "Padrão WordPress"
131
 
132
- #: include/admin-filters.php:1114
133
- #: include/admin.php:306
134
  msgid "Settings"
135
  msgstr "Definições"
136
 
137
- #: include/admin-filters.php:1120
138
  msgid "Upgrading language files&#8230;"
139
  msgstr "A actualizar ficheiros de lingua&#8230;"
140
 
141
- #: include/admin.php:22
142
  msgid "About Polylang"
143
  msgstr "Acerca de Polylang"
144
 
145
- #: include/admin.php:27
146
- #: include/list-table.php:82
147
  msgid "Strings translations"
148
  msgstr "Traduções de entradas"
149
 
150
- #: include/admin.php:305
151
- #: include/list-table.php:81
152
  msgid "Strings translation"
153
  msgstr "Tradução das entradas"
154
 
155
- #: include/admin.php:345
156
  msgid "Enter a valid WorPress locale"
157
  msgstr "Insira um código de lingua WordPress válido"
158
 
159
- #: include/admin.php:346
160
- msgid "The language code must be 2 characters long"
161
- msgstr "O código de lingua tem que ter um comprimento de 2 caractéres"
162
-
163
- #: include/admin.php:328
164
  msgid "The language code must be unique"
165
  msgstr " O código de lingua tem que ser único"
166
 
167
- #: include/admin.php:329
168
  msgid "The language must have a name"
169
  msgstr "A lingua tem que ter um nome"
170
 
171
- #: include/admin.php:330
172
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
173
  msgstr "A lingua foi criada mas o ficheiro de lingua do WordPress não foi descarregado. Por favor, instale manualmente."
174
 
175
- #: include/admin.php:449
176
  msgid "Widget title"
177
  msgstr "Titulo do Widget"
178
 
179
  # @ polylang
180
- #: include/base.php:368
181
  msgid "Taxonomies"
182
  msgstr "Taxonomia"
183
 
184
  # @ polylang
185
- #: include/base.php:369
186
  msgid "Custom fields"
187
  msgstr "Campos personalizados"
188
 
189
  # @ polylang
190
- #: include/base.php:370
191
  msgid "Comment status"
192
  msgstr "Estado do comentário"
193
 
194
  # @ polylang
195
- #: include/base.php:371
196
  msgid "Ping status"
197
  msgstr "Estado do ping"
198
 
199
  # @ polylang
200
- #: include/base.php:372
201
  msgid "Sticky posts"
202
  msgstr "Artigos fixos"
203
 
204
  # @ polylang
205
- #: include/base.php:373
206
  msgid "Published date"
207
  msgstr "Data de publicação"
208
 
209
  # @ polylang
210
- #: include/base.php:374
211
  msgid "Post format"
212
  msgstr "Formato do artigo"
213
 
214
- #: include/base.php:375
215
  msgid "Page parent"
216
  msgstr "Página superior"
217
 
218
  # @ polylang
219
- #: include/base.php:376
220
  msgid "Page template"
221
  msgstr "Modelo da página"
222
 
223
- #: include/base.php:377
224
  msgid "Page order"
225
  msgstr "Ordem da página"
226
 
227
  # @ polylang
228
- #: include/base.php:378
229
  msgid "Featured image"
230
  msgstr "Imagem de destaque"
231
 
232
- #: include/languages-form.php:42
233
  msgid "Edit language"
234
  msgstr "Editar lingua"
235
 
236
- #: include/languages-form.php:42
237
- #: include/languages-form.php:123
238
  msgid "Add new language"
239
  msgstr "Adicionar uma lingua nova"
240
 
241
- #: include/languages-form.php:64
242
  msgid "Choose a language"
243
  msgstr "Escolher uma lingua"
244
 
245
- #: include/languages-form.php:78
246
  msgid "You can choose a language in the list or directly edit it below."
247
  msgstr "Pode escolher uma lingua da lista ou editá-la directamente abaixo."
248
 
249
- #: include/languages-form.php:82
250
- #: include/list-table.php:34
251
  msgid "Full name"
252
  msgstr "Nome completo"
253
 
254
- #: include/languages-form.php:84
255
  msgid "The name is how it is displayed on your site (for example: English)."
256
  msgstr "O nome será apresentado como no seu site (por exemplo: Português)"
257
 
258
- #: include/languages-form.php:88
259
- #: include/list-table.php:35
260
  msgid "Locale"
261
  msgstr "Código de lingua"
262
 
263
- #: include/languages-form.php:93
264
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
265
  msgstr "Código de lingua WordPress para a lingua (por exemplo: pt_PT). Precisará de instalar o ficheiro .mo para esta lingua."
266
 
267
- #: include/languages-form.php:97
268
  msgid "Language code"
269
  msgstr "Lingua de código"
270
 
271
- #: include/languages-form.php:99
272
  msgid "2-letters ISO 639-1 language code (for example: en)"
273
  msgstr "Código de lingua 2-letras ISO 639-1 (Por exemplo: pt)"
274
 
275
- #: include/languages-form.php:103
276
  msgid "Text direction"
277
  msgstr "Orientação do texto"
278
 
279
- #: include/languages-form.php:107
280
  msgid "left to right"
281
  msgstr "Esquerda para a direita"
282
 
283
- #: include/languages-form.php:112
284
  msgid "right to left"
285
  msgstr "Direita para a esquerda"
286
 
287
- #: include/languages-form.php:114
288
  msgid "Choose the text direction for the language"
289
  msgstr "Escolha a orientação do texto para a lingua "
290
 
291
- #: include/languages-form.php:118
292
- #: include/list-table.php:37
293
  msgid "Order"
294
  msgstr "Ordem"
295
 
296
- #: include/languages-form.php:120
297
  msgid "Position of the language in the language switcher"
298
  msgstr "Posição da lingua no seleccionador de linguas"
299
 
300
- #: include/nav-menu.php:28
301
- #: include/nav-menu.php:51
302
- #: include/nav-menu.php:54
303
- #: include/nav-menu.php:82
304
- #: include/nav-menu.php:106
305
- #: polylang.php:302
306
  msgid "Language switcher"
307
  msgstr "Seleccionador de lingua"
308
 
309
- #: include/languages-form.php:148
310
  msgid "Search translations"
311
  msgstr "Procurar traduções"
312
 
313
- #: include/languages-form.php:151
314
  msgid "Clean strings translation database"
315
  msgstr "Limpar traduções da base de dados"
316
 
317
- #: include/languages-form.php:167
318
  msgid "Default language"
319
  msgstr "Lingua por padrão"
320
 
321
- #: include/languages-form.php:179
322
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
323
  msgstr "Existem artigos, páginas, categorias ou tags sem lingua definida. Deseja colocá-los todos em lingua padrão?"
324
 
325
- #: include/languages-form.php:187
326
  msgid "Detect browser language"
327
  msgstr "Detectar a lingua do navegador"
328
 
329
- #: include/languages-form.php:193
330
  msgid "When the front page is visited, set the language according to the browser preference"
331
  msgstr "Quando a pagina inicial for visitada, defina a lingua consoante as definições do navegador"
332
 
333
- #: include/languages-form.php:200
334
  msgid "URL modifications"
335
  msgstr "Modificações no URL"
336
 
337
- #: include/languages-form.php:206
338
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
339
  msgstr "A lingua é escolhida a partir do conteúdo. O URL dos artigos, páginas, categorias e etiquetas não são modificados."
340
 
341
- #: include/languages-form.php:214
342
- msgid "The language code, for example /en/, is added to all urls when using pretty permalinks."
343
- msgstr "O código de lingua, por exemplo /pt/, é adicionado a todas as URL se as ligações permanentes estiverem activadas."
344
-
345
- #: include/languages-form.php:223
346
  msgid "Remove /language/ in pretty permalinks. Example:"
347
  msgstr "Remover /language/ das hiperligações permanentes. Exemplo:"
348
 
349
- #: include/languages-form.php:232
350
  msgid "Keep /language/ in pretty permalinks. Example:"
351
  msgstr "Manter /language/ nas hiperligações permanentes. Exemplo:"
352
 
353
- #: include/languages-form.php:241
354
  msgid "Hide URL language information for default language"
355
  msgstr "Esconder a informação da lingua padrão do URL"
356
 
357
- #: include/languages-form.php:251
358
  #, php-format
359
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
360
  msgstr "Se tiver configurada uma página estática, redirecionar a página da lingua (exemplo: %s) para a página inicial na lingua certa"
361
 
362
  # @ polylang
363
- #: include/languages-form.php:260
364
  msgid "Media"
365
  msgstr "Media"
366
 
367
  # @ polylang
368
- #: include/languages-form.php:266
369
  msgid "Activate languages and translations for media"
370
  msgstr "Activar línguas e traduções para a media"
371
 
372
- #: include/languages-form.php:273
373
  msgid "Synchronization"
374
  msgstr "Sincronização"
375
 
376
  # @ polylang
377
- #: include/languages-form.php:287
378
  msgid "Custom post types"
379
  msgstr "Tipos de conteúdo personalizados"
380
 
381
  # @ polylang
382
- #: include/languages-form.php:300
383
  msgid "Activate languages and translations for custom post types."
384
  msgstr "Activar línguas e traduções para os tipos de conteúdo personalizados."
385
 
386
  # @ polylang
387
- #: include/languages-form.php:307
388
  msgid "Custom taxonomies"
389
  msgstr "Taxonomias personalizadas"
390
 
391
  # @ polylang
392
- #: include/languages-form.php:320
393
  msgid "Activate languages and translations for custom taxonomies."
394
  msgstr "Activar línguas e traduções para taxonomias personalizadas."
395
 
396
- #: include/list-table.php:26
397
- #: include/media-translations.php:22
398
- #: include/media-translations.php:60
399
- #: include/post-translations.php:10
400
- #: include/post-translations.php:33
401
- #: include/term-translations.php:18
402
- #: include/term-translations.php:80
403
  msgid "Edit"
404
  msgstr "Editar"
405
 
406
- #: include/list-table.php:27
407
- #: include/list-table.php:162
408
  msgid "Delete"
409
  msgstr "Apagar"
410
 
411
- #: include/list-table.php:36
412
  msgid "Code"
413
  msgstr "Código"
414
 
415
- #: include/list-table.php:38
416
  msgid "Flag"
417
  msgstr "Bandeira"
418
 
419
- #: include/list-table.php:39
420
  msgid "Posts"
421
  msgstr "Artigos"
422
 
423
- #: include/list-table.php:125
424
  msgid "Name"
425
  msgstr "Nome"
426
 
427
- #: include/list-table.php:126
428
  msgid "String"
429
  msgstr "Entrada"
430
 
431
- #: include/media-translations.php:6
432
- #: include/media-translations.php:44
433
- #: include/term-translations.php:16
434
  msgid "Translation"
435
  msgstr "Tradução"
436
 
437
- #: include/media-translations.php:31
438
- #: include/media-translations.php:68
439
- #: include/post-translations.php:38
440
- #: include/term-translations.php:60
441
  msgid "Add new"
442
  msgstr "Adicionar novo"
443
 
444
- #: include/post-translations.php:5
445
  msgid "ID of pages in other languages:"
446
  msgstr "Identificação das páginas noutras lnguas"
447
 
448
- #: include/post-translations.php:5
449
  msgid "ID of posts in other languages:"
450
  msgstr "Identificação dos artigos noutras lnguas"
451
 
452
- #: include/post-translations.php:9
453
  msgid "Page ID"
454
  msgstr "Identificação da página"
455
 
456
- #: include/post-translations.php:9
457
  msgid "Post ID"
458
  msgstr "Identificação dos artigos"
459
 
460
- #: include/term-translations.php:48
461
  msgid "No untranslated term"
462
  msgstr "Nenhum termo por traduzir"
463
 
464
- #: include/widget.php:6
465
  msgid "Language Switcher"
466
  msgstr "Seleccionador de lingua"
467
 
468
- #: include/widget.php:6
469
  msgid "Displays a language switcher"
470
  msgstr "Apresenta o seleccionador de lingua"
471
 
472
- #: include/widget.php:69
473
  msgid "Title:"
474
  msgstr "Título:"
475
 
@@ -479,36 +467,77 @@ msgstr "Título:"
479
  msgid "Adds multilingual capability to WordPress"
480
  msgstr "Adiciona capacidades multilíngua ao WordPress"
481
 
482
- #: polylang.php:133
483
  #, php-format
484
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
485
  msgstr "Está a utilizar o WordPress %s. O Polylang necessita de pelo menos ter a versão %s do WordPress."
486
 
487
- #: polylang.php:174
488
- msgid "For some reasons, Polylang could not create a table in your database."
489
- msgstr "Por algum motivo, o Polylang não conseguiu criar uma tabela na sua base de dados."
490
-
491
  # @ polylang
492
- #: polylang.php:235
493
  msgid "Polylang has been deactivated because you upgraded from a too old version."
494
  msgstr "O Polylang foi desactivado porque o upgrade foi feito de uma versão muito antiga."
495
 
496
  # @ polylang
497
- #: polylang.php:237
498
  #, php-format
499
  msgid "Please upgrade first to %s before ugrading to %s."
500
  msgstr "Por favor, faça primeiro o upgrade para %s antes de fazer o upgrade para %s."
501
 
502
  # @ polylang
503
- #: include/list-table.php:124
504
  msgid "Group"
505
  msgstr ""
506
 
507
  # @ polylang
508
- #: include/list-table.php:173
509
  msgid "View all groups"
510
  msgstr ""
511
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
512
  #~ msgid "Displays a language switcher at the end of the menu"
513
  #~ msgstr "Apresenta o seleccionador de lingua no final do menu."
514
 
17
  "X-Poedit-SearchPath-0: ..\n"
18
  "X-Poedit-SearchPath-1: ../include\n"
19
 
20
+ #: admin/view-about.php:3
21
  #, php-format
22
  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."
23
  msgstr "O polylang está provido de uma extensa %sdocumentação%s (porém somente em Inglês). Inclui informação de como definir o seu site multilíngua e utilizá-lo no dia-a-dia, uma FAQ, assim como documentação para os programadores adaptarem os seus plugins e temas."
24
 
25
+ #: admin/view-about.php:9
26
  #, php-format
27
  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."
28
  msgstr "Também encontrará informações úteis no %sfórum de suporte%s, no entanto, não se esqueça de pesquisar antes de publicar um novo tópico."
29
 
30
+ #: admin/view-about.php:16
31
  #, php-format
32
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
33
  msgstr "O Polylang é gratuito e é abrangido pela mesmo licença que o WordPress, o %sGPL%s."
34
 
35
+ #: admin/view-about.php:22
36
  #, php-format
37
  msgid "If you wonder how you can help the project, just %sread this%s."
38
  msgstr "Se pretende ajudar o projeto, %sleia isto%s."
39
 
40
+ #: admin/view-about.php:27
41
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
42
  msgstr " Finalmente, se gostou deste plugin ou se este está a ajudá-lo no seu negócio, doações ao autor são extremamente agradecidas."
43
 
44
+ #: admin/admin-filters-post.php:76
45
+ #: admin/admin.php:83
46
+ #: admin/admin.php:187
47
+ #: admin/settings.php:42
48
+ #: admin/settings.php:57
49
+ #: include/model.php:490
 
50
  msgid "Languages"
51
  msgstr "Linguas"
52
 
53
+ #: include/switcher.php:22
54
  msgid "Displays language names"
55
  msgstr "Apresentar os nomes das linguas"
56
 
57
+ #: include/switcher.php:23
58
  msgid "Displays flags"
59
  msgstr "Apresentar bandeiras"
60
 
61
+ #: include/switcher.php:24
62
  msgid "Forces link to front page"
63
  msgstr "Forçar a hiperligação para a página inicial"
64
 
65
+ #: include/switcher.php:25
66
  msgid "Hides the current language"
67
  msgstr "Esconde a lingua actual"
68
 
69
+ #: include/switcher.php:29
70
  msgid "Displays as dropdown"
71
  msgstr "Apresentar como caixa de selecção"
72
 
73
+ #: admin/admin.php:188
74
  msgid "Filters content by language"
75
  msgstr "Filtrar conteúdo pela lingua"
76
 
77
+ #: admin/admin.php:183
78
  msgid "Show all languages"
79
  msgstr "Exibit todas as linguas"
80
 
81
+ #: admin/admin-filters-columns.php:126
82
+ #: admin/admin-filters-columns.php:215
83
  msgid "Add new translation"
84
  msgstr "Adicionar nova tradução"
85
 
86
+ #: admin/admin-filters-columns.php:163
87
+ #: admin/admin-filters-media.php:58
88
+ #: admin/admin-filters-post.php:109
89
+ #: admin/admin-filters-term.php:72
90
+ #: admin/admin-filters-term.php:106
91
+ #: admin/view-translations-media.php:7
92
+ #: admin/view-translations-media.php:45
93
+ #: admin/view-translations-post.php:8
94
+ #: admin/view-translations-term.php:15
95
+ #: include/model.php:491
 
96
  msgid "Language"
97
  msgstr "Lingua"
98
 
99
+ #: admin/admin-filters-media.php:73
100
+ #: admin/admin-filters-media.php:112
101
+ #: admin/table-string.php:111
102
+ #: admin/view-translations-media.php:42
103
+ #: admin/view-translations-term.php:6
104
+ #: admin/view-translations-term.php:11
105
  msgid "Translations"
106
  msgstr "Traduções"
107
 
108
+ #: admin/admin-filters-term.php:74
109
+ #: admin/admin-filters-term.php:108
110
  msgid "Sets the language"
111
  msgstr "Define a lingua"
112
 
113
+ #: admin/admin-filters.php:60
114
  msgid "The widget is displayed for:"
115
  msgstr "O widget é apresentado para:"
116
 
117
+ #: admin/admin-filters.php:63
118
+ #: include/model.php:492
119
  msgid "All languages"
120
  msgstr "Todas as linguas"
121
 
122
+ #: admin/admin-filters.php:120
123
  msgid "Admin language"
124
  msgstr "Ligua do administrador"
125
 
126
+ #: admin/admin-filters.php:123
127
  msgid "Wordpress default"
128
  msgstr "Padrão WordPress"
129
 
130
+ #: admin/admin.php:123
131
+ #: admin/settings.php:62
132
  msgid "Settings"
133
  msgstr "Definições"
134
 
135
+ #: admin/admin-filters.php:151
136
  msgid "Upgrading language files&#8230;"
137
  msgstr "A actualizar ficheiros de lingua&#8230;"
138
 
139
+ #: admin/settings.php:38
140
  msgid "About Polylang"
141
  msgstr "Acerca de Polylang"
142
 
143
+ #: admin/settings.php:46
 
144
  msgid "Strings translations"
145
  msgstr "Traduções de entradas"
146
 
147
+ #: admin/settings.php:61
 
148
  msgid "Strings translation"
149
  msgstr "Tradução das entradas"
150
 
151
+ #: admin/settings.php:74
152
  msgid "Enter a valid WorPress locale"
153
  msgstr "Insira um código de lingua WordPress válido"
154
 
155
+ #: admin/settings.php:76
 
 
 
 
156
  msgid "The language code must be unique"
157
  msgstr " O código de lingua tem que ser único"
158
 
159
+ #: admin/settings.php:77
160
  msgid "The language must have a name"
161
  msgstr "A lingua tem que ter um nome"
162
 
163
+ #: admin/settings.php:78
164
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
165
  msgstr "A lingua foi criada mas o ficheiro de lingua do WordPress não foi descarregado. Por favor, instale manualmente."
166
 
167
+ #: admin/settings.php:305
168
  msgid "Widget title"
169
  msgstr "Titulo do Widget"
170
 
171
  # @ polylang
172
+ #: admin/settings.php:323
173
  msgid "Taxonomies"
174
  msgstr "Taxonomia"
175
 
176
  # @ polylang
177
+ #: admin/settings.php:324
178
  msgid "Custom fields"
179
  msgstr "Campos personalizados"
180
 
181
  # @ polylang
182
+ #: admin/settings.php:325
183
  msgid "Comment status"
184
  msgstr "Estado do comentário"
185
 
186
  # @ polylang
187
+ #: admin/settings.php:326
188
  msgid "Ping status"
189
  msgstr "Estado do ping"
190
 
191
  # @ polylang
192
+ #: admin/settings.php:327
193
  msgid "Sticky posts"
194
  msgstr "Artigos fixos"
195
 
196
  # @ polylang
197
+ #: admin/settings.php:328
198
  msgid "Published date"
199
  msgstr "Data de publicação"
200
 
201
  # @ polylang
202
+ #: admin/settings.php:329
203
  msgid "Post format"
204
  msgstr "Formato do artigo"
205
 
206
+ #: admin/settings.php:330
207
  msgid "Page parent"
208
  msgstr "Página superior"
209
 
210
  # @ polylang
211
+ #: admin/settings.php:331
212
  msgid "Page template"
213
  msgstr "Modelo da página"
214
 
215
+ #: admin/settings.php:332
216
  msgid "Page order"
217
  msgstr "Ordem da página"
218
 
219
  # @ polylang
220
+ #: admin/settings.php:333
221
  msgid "Featured image"
222
  msgstr "Imagem de destaque"
223
 
224
+ #: admin/view-languages.php:42
225
  msgid "Edit language"
226
  msgstr "Editar lingua"
227
 
228
+ #: admin/view-languages.php:42
229
+ #: admin/view-languages.php:117
230
  msgid "Add new language"
231
  msgstr "Adicionar uma lingua nova"
232
 
233
+ #: admin/view-languages.php:58
234
  msgid "Choose a language"
235
  msgstr "Escolher uma lingua"
236
 
237
+ #: admin/view-languages.php:72
238
  msgid "You can choose a language in the list or directly edit it below."
239
  msgstr "Pode escolher uma lingua da lista ou editá-la directamente abaixo."
240
 
241
+ #: admin/table-languages.php:74
242
+ #: admin/view-languages.php:76
243
  msgid "Full name"
244
  msgstr "Nome completo"
245
 
246
+ #: admin/view-languages.php:78
247
  msgid "The name is how it is displayed on your site (for example: English)."
248
  msgstr "O nome será apresentado como no seu site (por exemplo: Português)"
249
 
250
+ #: admin/table-languages.php:75
251
+ #: admin/view-languages.php:82
252
  msgid "Locale"
253
  msgstr "Código de lingua"
254
 
255
+ #: admin/view-languages.php:87
256
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
257
  msgstr "Código de lingua WordPress para a lingua (por exemplo: pt_PT). Precisará de instalar o ficheiro .mo para esta lingua."
258
 
259
+ #: admin/view-languages.php:91
260
  msgid "Language code"
261
  msgstr "Lingua de código"
262
 
263
+ #: admin/view-languages.php:93
264
  msgid "2-letters ISO 639-1 language code (for example: en)"
265
  msgstr "Código de lingua 2-letras ISO 639-1 (Por exemplo: pt)"
266
 
267
+ #: admin/view-languages.php:97
268
  msgid "Text direction"
269
  msgstr "Orientação do texto"
270
 
271
+ #: admin/view-languages.php:101
272
  msgid "left to right"
273
  msgstr "Esquerda para a direita"
274
 
275
+ #: admin/view-languages.php:106
276
  msgid "right to left"
277
  msgstr "Direita para a esquerda"
278
 
279
+ #: admin/view-languages.php:108
280
  msgid "Choose the text direction for the language"
281
  msgstr "Escolha a orientação do texto para a lingua "
282
 
283
+ #: admin/table-languages.php:77
284
+ #: admin/view-languages.php:112
285
  msgid "Order"
286
  msgstr "Ordem"
287
 
288
+ #: admin/view-languages.php:114
289
  msgid "Position of the language in the language switcher"
290
  msgstr "Posição da lingua no seleccionador de linguas"
291
 
292
+ #: admin/admin-nav-menu.php:51
293
+ #: admin/admin-nav-menu.php:79
294
+ #: admin/admin-nav-menu.php:82
295
+ #: admin/admin-nav-menu.php:113
296
+ #: admin/admin-nav-menu.php:170
297
+ #: include/upgrade.php:175
298
  msgid "Language switcher"
299
  msgstr "Seleccionador de lingua"
300
 
301
+ #: admin/view-languages.php:143
302
  msgid "Search translations"
303
  msgstr "Procurar traduções"
304
 
305
+ #: admin/view-languages.php:146
306
  msgid "Clean strings translation database"
307
  msgstr "Limpar traduções da base de dados"
308
 
309
+ #: admin/view-languages.php:164
310
  msgid "Default language"
311
  msgstr "Lingua por padrão"
312
 
313
+ #: admin/view-languages.php:179
314
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
315
  msgstr "Existem artigos, páginas, categorias ou tags sem lingua definida. Deseja colocá-los todos em lingua padrão?"
316
 
317
+ #: admin/view-languages.php:187
318
  msgid "Detect browser language"
319
  msgstr "Detectar a lingua do navegador"
320
 
321
+ #: admin/view-languages.php:193
322
  msgid "When the front page is visited, set the language according to the browser preference"
323
  msgstr "Quando a pagina inicial for visitada, defina a lingua consoante as definições do navegador"
324
 
325
+ #: admin/view-languages.php:200
326
  msgid "URL modifications"
327
  msgstr "Modificações no URL"
328
 
329
+ #: admin/view-languages.php:206
330
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
331
  msgstr "A lingua é escolhida a partir do conteúdo. O URL dos artigos, páginas, categorias e etiquetas não são modificados."
332
 
333
+ #: admin/view-languages.php:253
 
 
 
 
334
  msgid "Remove /language/ in pretty permalinks. Example:"
335
  msgstr "Remover /language/ das hiperligações permanentes. Exemplo:"
336
 
337
+ #: admin/view-languages.php:262
338
  msgid "Keep /language/ in pretty permalinks. Example:"
339
  msgstr "Manter /language/ nas hiperligações permanentes. Exemplo:"
340
 
341
+ #: admin/view-languages.php:271
342
  msgid "Hide URL language information for default language"
343
  msgstr "Esconder a informação da lingua padrão do URL"
344
 
345
+ #: admin/view-languages.php:281
346
  #, php-format
347
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
348
  msgstr "Se tiver configurada uma página estática, redirecionar a página da lingua (exemplo: %s) para a página inicial na lingua certa"
349
 
350
  # @ polylang
351
+ #: admin/view-languages.php:290
352
  msgid "Media"
353
  msgstr "Media"
354
 
355
  # @ polylang
356
+ #: admin/view-languages.php:296
357
  msgid "Activate languages and translations for media"
358
  msgstr "Activar línguas e traduções para a media"
359
 
360
+ #: admin/view-languages.php:303
361
  msgid "Synchronization"
362
  msgstr "Sincronização"
363
 
364
  # @ polylang
365
+ #: admin/view-languages.php:320
366
  msgid "Custom post types"
367
  msgstr "Tipos de conteúdo personalizados"
368
 
369
  # @ polylang
370
+ #: admin/view-languages.php:333
371
  msgid "Activate languages and translations for custom post types."
372
  msgstr "Activar línguas e traduções para os tipos de conteúdo personalizados."
373
 
374
  # @ polylang
375
+ #: admin/view-languages.php:340
376
  msgid "Custom taxonomies"
377
  msgstr "Taxonomias personalizadas"
378
 
379
  # @ polylang
380
+ #: admin/view-languages.php:353
381
  msgid "Activate languages and translations for custom taxonomies."
382
  msgstr "Activar línguas e traduções para taxonomias personalizadas."
383
 
384
+ #: admin/table-languages.php:54
385
+ #: admin/view-translations-media.php:24
386
+ #: admin/view-translations-media.php:62
387
+ #: admin/view-translations-post.php:10
388
+ #: admin/view-translations-post.php:33
389
+ #: admin/view-translations-term.php:18
390
+ #: admin/view-translations-term.php:80
391
  msgid "Edit"
392
  msgstr "Editar"
393
 
394
+ #: admin/table-languages.php:60
395
+ #: admin/table-string.php:167
396
  msgid "Delete"
397
  msgstr "Apagar"
398
 
399
+ #: admin/table-languages.php:76
400
  msgid "Code"
401
  msgstr "Código"
402
 
403
+ #: admin/table-languages.php:78
404
  msgid "Flag"
405
  msgstr "Bandeira"
406
 
407
+ #: admin/table-languages.php:79
408
  msgid "Posts"
409
  msgstr "Artigos"
410
 
411
+ #: admin/table-string.php:109
412
  msgid "Name"
413
  msgstr "Nome"
414
 
415
+ #: admin/table-string.php:110
416
  msgid "String"
417
  msgstr "Entrada"
418
 
419
+ #: admin/view-translations-media.php:8
420
+ #: admin/view-translations-media.php:46
421
+ #: admin/view-translations-term.php:16
422
  msgid "Translation"
423
  msgstr "Tradução"
424
 
425
+ #: admin/view-translations-media.php:33
426
+ #: admin/view-translations-media.php:70
427
+ #: admin/view-translations-post.php:38
428
+ #: admin/view-translations-term.php:60
429
  msgid "Add new"
430
  msgstr "Adicionar novo"
431
 
432
+ #: admin/view-translations-post.php:5
433
  msgid "ID of pages in other languages:"
434
  msgstr "Identificação das páginas noutras lnguas"
435
 
436
+ #: admin/view-translations-post.php:5
437
  msgid "ID of posts in other languages:"
438
  msgstr "Identificação dos artigos noutras lnguas"
439
 
440
+ #: admin/view-translations-post.php:9
441
  msgid "Page ID"
442
  msgstr "Identificação da página"
443
 
444
+ #: admin/view-translations-post.php:9
445
  msgid "Post ID"
446
  msgstr "Identificação dos artigos"
447
 
448
+ #: admin/view-translations-term.php:48
449
  msgid "No untranslated term"
450
  msgstr "Nenhum termo por traduzir"
451
 
452
+ #: include/widget-languages.php:16
453
  msgid "Language Switcher"
454
  msgstr "Seleccionador de lingua"
455
 
456
+ #: include/widget-languages.php:16
457
  msgid "Displays a language switcher"
458
  msgstr "Apresenta o seleccionador de lingua"
459
 
460
+ #: include/widget-languages.php:100
461
  msgid "Title:"
462
  msgstr "Título:"
463
 
467
  msgid "Adds multilingual capability to WordPress"
468
  msgstr "Adiciona capacidades multilíngua ao WordPress"
469
 
470
+ #: polylang.php:157
471
  #, php-format
472
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
473
  msgstr "Está a utilizar o WordPress %s. O Polylang necessita de pelo menos ter a versão %s do WordPress."
474
 
 
 
 
 
475
  # @ polylang
476
+ #: include/upgrade.php:75
477
  msgid "Polylang has been deactivated because you upgraded from a too old version."
478
  msgstr "O Polylang foi desactivado porque o upgrade foi feito de uma versão muito antiga."
479
 
480
  # @ polylang
481
+ #: include/upgrade.php:77
482
  #, php-format
483
  msgid "Please upgrade first to %s before ugrading to %s."
484
  msgstr "Por favor, faça primeiro o upgrade para %s antes de fazer o upgrade para %s."
485
 
486
  # @ polylang
487
+ #: admin/table-string.php:108
488
  msgid "Group"
489
  msgstr ""
490
 
491
  # @ polylang
492
+ #: admin/table-string.php:186
493
  msgid "View all groups"
494
  msgstr ""
495
 
496
+ # @ polylang
497
+ #: admin/table-languages.php:59
498
+ msgid "You are about to permanently delete this language. Are you sure?"
499
+ msgstr ""
500
+
501
+ # @ polylang
502
+ #: admin/view-languages.php:147
503
+ msgid "Use this to remove unused strings from database, for example after a plugin has been uninstalled."
504
+ msgstr ""
505
+
506
+ #: admin/view-languages.php:214
507
+ msgid "The language is set from the directory name in pretty permalinks. Example:"
508
+ msgstr ""
509
+
510
+ #: admin/view-languages.php:223
511
+ msgid "The language is set from the subdomain name in pretty permalinks. Example:"
512
+ msgstr ""
513
+
514
+ # @ polylang
515
+ #: admin/view-languages.php:314
516
+ 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."
517
+ msgstr ""
518
+
519
+ #: admin/settings.php:75
520
+ msgid "The language code contains invalid characters"
521
+ msgstr ""
522
+
523
+ # @ polylang
524
+ #: admin/view-languages.php:232
525
+ msgid "The language is set from different domains:"
526
+ msgstr ""
527
+
528
+ #~ msgid ""
529
+ #~ "The language code, for example /en/, is added to all urls when using "
530
+ #~ "pretty permalinks."
531
+ #~ msgstr ""
532
+ #~ "O código de lingua, por exemplo /pt/, é adicionado a todas as URL se as "
533
+ #~ "ligações permanentes estiverem activadas."
534
+
535
+ #~ msgid ""
536
+ #~ "For some reasons, Polylang could not create a table in your database."
537
+ #~ msgstr ""
538
+ #~ "Por algum motivo, o Polylang não conseguiu criar uma tabela na sua base "
539
+ #~ "de dados."
540
+
541
  #~ msgid "Displays a language switcher at the end of the menu"
542
  #~ msgstr "Apresenta o seleccionador de lingua no final do menu."
543
 
languages/polylang-ru_RU.mo CHANGED
Binary file
languages/polylang-ru_RU.po CHANGED
@@ -2,7 +2,7 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: polylang\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2013-01-29 15:29+0300\n"
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: danalan <danalan@danalan.info>\n"
8
  "Language-Team: \n"
@@ -20,534 +20,521 @@ msgstr ""
20
  "X-Poedit-SearchPath-0: ..\n"
21
 
22
  # @ polylang
23
- #: include/about.php:3
24
  #, php-format
25
  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."
26
  msgstr "Polylang предоставляется с исчерпывающей %sдокументацией%s (только на английском), которая включает информацию по настройке и использованию вашего многоязычного сайта, ответы на частые вопросы, а также документацию для программистов для адаптации их собственных плагинов и тем."
27
 
28
  # @ polylang
29
- #: include/about.php:9
30
  #, php-format
31
  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."
32
  msgstr "Также вы можете найти полезную информацию на %sфоруме поддержки%s. Однако, не забывайте пользоваться поиском, прежде чем создавать новые темы."
33
 
34
  # @ polylang
35
- #: include/about.php:16
36
  #, php-format
37
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
38
  msgstr "Polylang бесплатен и предоставляется на таких же, как и WordPress условиях, %sGPL%s."
39
 
40
  # @ polylang
41
- #: include/about.php:22
42
  #, php-format
43
  msgid "If you wonder how you can help the project, just %sread this%s."
44
  msgstr "Если вас интересует, как можно помочь проекту, просто %sпрочтите это%s."
45
 
46
  # @ polylang
47
- #: include/about.php:27
48
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
49
  msgstr "Если же вам понравился этот плагин, или он помогает вам в бизнесе, автор будет весьма признателен за любые добровольные пожертвования."
50
 
51
  # @ polylang
52
- #: include/admin-base.php:55
53
- #: include/admin-base.php:190
54
- #: include/admin-filters.php:243
55
- #: include/admin.php:23
56
- #: include/admin.php:301
57
- #: include/list-table.php:13
58
- #: polylang.php:339
59
  msgid "Languages"
60
  msgstr "Языки"
61
 
62
  # @ polylang
63
- #: include/admin-base.php:153
64
  msgid "Displays language names"
65
  msgstr "Показывать названия языков"
66
 
67
  # @ polylang
68
- #: include/admin-base.php:154
69
  msgid "Displays flags"
70
  msgstr "Показывать флаги"
71
 
72
  # @ polylang
73
- #: include/admin-base.php:155
74
  msgid "Forces link to front page"
75
  msgstr "Принудительно переходить на главную страницу при смене языка"
76
 
77
  # @ polylang
78
- #: include/admin-base.php:156
79
  msgid "Hides the current language"
80
  msgstr "Убрать текущий язык"
81
 
82
  # @ polylang
83
- #: include/admin-base.php:160
84
  msgid "Displays as dropdown"
85
  msgstr "Показывать как выпадающий список"
86
 
87
  # @ polylang
88
- #: include/admin-base.php:191
89
  msgid "Filters content by language"
90
  msgstr "Устанавливает язык"
91
 
92
  # @ polylang
93
- #: include/admin-base.php:186
94
  msgid "Show all languages"
95
  msgstr "Показать все языки"
96
 
97
  # @ polylang
98
- #: include/admin-filters.php:181
99
- #: include/admin-filters.php:877
100
  msgid "Add new translation"
101
  msgstr "Добавить новый перевод"
102
 
103
  # @ polylang
104
- #: include/admin-filters.php:209
105
- #: include/admin-filters.php:267
106
- #: include/admin-filters.php:601
107
- #: include/admin-filters.php:817
108
- #: include/admin-filters.php:835
109
- #: include/list-table.php:12
110
- #: include/media-translations.php:5
111
- #: include/media-translations.php:43
112
- #: include/post-translations.php:8
113
- #: include/term-translations.php:15
114
- #: polylang.php:340
115
  msgid "Language"
116
  msgstr "Язык"
117
 
118
  # @ polylang
119
- #: include/admin-filters.php:616
120
- #: include/admin-filters.php:651
121
- #: include/list-table.php:127
122
- #: include/media-translations.php:40
123
- #: include/term-translations.php:6
124
- #: include/term-translations.php:11
125
  msgid "Translations"
126
  msgstr "Переводы"
127
 
128
  # @ polylang
129
- #: include/admin-filters.php:819
130
- #: include/admin-filters.php:838
131
  msgid "Sets the language"
132
  msgstr "Устанавливает язык"
133
 
134
  # @ polylang
135
- #: include/admin-filters.php:1053
136
  msgid "The widget is displayed for:"
137
  msgstr "Показывать виджет для"
138
 
139
  # @ polylang
140
- #: include/admin-filters.php:1057
141
- #: polylang.php:341
142
  msgid "All languages"
143
  msgstr "Все языки"
144
 
145
  # @ polylang
146
- #: include/admin-filters.php:1080
147
  msgid "Admin language"
148
  msgstr "Язык админ.панели"
149
 
150
- #: include/admin-filters.php:1085
151
  msgid "Wordpress default"
152
  msgstr "По умолчанию"
153
 
154
  # @ default
155
  # @ polylang
156
- #: include/admin-filters.php:1114
157
- #: include/admin.php:306
158
  msgid "Settings"
159
  msgstr "Настройки"
160
 
161
  # @ polylang
162
- #: include/admin-filters.php:1120
163
  msgid "Upgrading language files&#8230;"
164
  msgstr "Обновление языковых файлов&#8230;"
165
 
166
  # @ polylang
167
- #: include/admin.php:22
168
  msgid "About Polylang"
169
  msgstr "О Polylang"
170
 
171
  # @ polylang
172
- #: include/admin.php:27
173
- #: include/list-table.php:82
174
  msgid "Strings translations"
175
  msgstr "Переводы строк"
176
 
177
  # @ polylang
178
- #: include/admin.php:305
179
- #: include/list-table.php:81
180
  msgid "Strings translation"
181
  msgstr "Перевод строк"
182
 
183
  # @ polylang
184
- #: include/admin.php:345
185
  msgid "Enter a valid WorPress locale"
186
  msgstr ""
187
 
188
  # @ polylang
189
- #: include/admin.php:346
190
- msgid "The language code must be 2 characters long"
191
- msgstr "Код языка должен состоять из 2-х символов"
192
-
193
- # @ polylang
194
- #: include/admin.php:328
195
  msgid "The language code must be unique"
196
  msgstr "Код языка должен быть уникальным"
197
 
198
  # @ polylang
199
- #: include/admin.php:329
200
  msgid "The language must have a name"
201
  msgstr "У языка должно быть название"
202
 
203
  # @ polylang
204
- #: include/admin.php:330
205
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
206
  msgstr "Язык был успешно создан, однако отсутствует языковой файл WordPress. Пожалуйста, установите его вручную."
207
 
208
  # @ polylang
209
- #: include/admin.php:449
210
  msgid "Widget title"
211
  msgstr "Название виджета"
212
 
213
  # @ polylang
214
- #: include/base.php:368
215
  msgid "Taxonomies"
216
  msgstr "Таксономия"
217
 
218
  # @ polylang
219
- #: include/base.php:369
220
  msgid "Custom fields"
221
  msgstr "Пользовательские поля"
222
 
223
  # @ polylang
224
- #: include/base.php:370
225
  msgid "Comment status"
226
  msgstr "Статус комментария"
227
 
228
  # @ polylang
229
- #: include/base.php:371
230
  msgid "Ping status"
231
  msgstr "Статус отклика"
232
 
233
  # @ polylang
234
- #: include/base.php:372
235
  msgid "Sticky posts"
236
  msgstr "Прилепленные записи"
237
 
238
  # @ polylang
239
- #: include/base.php:373
240
  msgid "Published date"
241
  msgstr "Дата опубликования"
242
 
243
- #: include/base.php:374
244
  msgid "Post format"
245
  msgstr "Формат записи"
246
 
247
  # @ default
248
- #: include/base.php:375
249
  msgid "Page parent"
250
  msgstr "Родительская страница"
251
 
252
  # @ polylang
253
- #: include/base.php:376
254
  msgid "Page template"
255
  msgstr "Шаблон страницы"
256
 
257
  # @ polylang
258
- #: include/base.php:377
259
  msgid "Page order"
260
  msgstr "Порядок страниц"
261
 
262
  # @ polylang
263
- #: include/base.php:378
264
  msgid "Featured image"
265
  msgstr "Выбранный рисунок"
266
 
267
  # @ polylang
268
- #: include/languages-form.php:42
269
  msgid "Edit language"
270
  msgstr "Редактировать язык"
271
 
272
  # @ polylang
273
- #: include/languages-form.php:42
274
- #: include/languages-form.php:123
275
  msgid "Add new language"
276
  msgstr "Добавить новый язык"
277
 
278
  # @ polylang
279
- #: include/languages-form.php:64
280
  msgid "Choose a language"
281
  msgstr "Показать все языки"
282
 
283
  # @ polylang
284
- #: include/languages-form.php:78
285
  msgid "You can choose a language in the list or directly edit it below."
286
  msgstr "Выберите язык из списка или укажите сами."
287
 
288
  # @ polylang
289
- #: include/languages-form.php:82
290
- #: include/list-table.php:34
291
  msgid "Full name"
292
  msgstr "Полное название"
293
 
294
  # @ polylang
295
- #: include/languages-form.php:84
296
  msgid "The name is how it is displayed on your site (for example: English)."
297
  msgstr "Название для отображения на сайте (например: Русский)."
298
 
299
  # @ polylang
300
- #: include/languages-form.php:88
301
- #: include/list-table.php:35
302
  msgid "Locale"
303
  msgstr "Локаль"
304
 
305
  # @ polylang
306
- #: include/languages-form.php:93
307
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
308
  msgstr "Локаль Wordpress'a для языка (например: ru_RU). Вы должны установить файлы .mo для админ.панели и используемой темы."
309
 
310
  # @ polylang
311
- #: include/languages-form.php:97
312
  msgid "Language code"
313
  msgstr "Код языка"
314
 
315
  # @ polylang
316
- #: include/languages-form.php:99
317
  msgid "2-letters ISO 639-1 language code (for example: en)"
318
  msgstr "2х-буквенный ISO 639-1 код языка (например: ru)"
319
 
320
  # @ polylang
321
- #: include/languages-form.php:103
322
  msgid "Text direction"
323
  msgstr "Направление текста"
324
 
325
  # @ polylang
326
- #: include/languages-form.php:107
327
  msgid "left to right"
328
  msgstr "слева направо"
329
 
330
  # @ polylang
331
- #: include/languages-form.php:112
332
  msgid "right to left"
333
  msgstr "справа налево"
334
 
335
  # @ polylang
336
- #: include/languages-form.php:114
337
  msgid "Choose the text direction for the language"
338
  msgstr "Выберите направление текста для языка"
339
 
340
  # @ polylang
341
- #: include/languages-form.php:118
342
- #: include/list-table.php:37
343
  msgid "Order"
344
  msgstr "Порядок"
345
 
346
  # @ polylang
347
- #: include/languages-form.php:120
348
  msgid "Position of the language in the language switcher"
349
  msgstr "Порядок языка в переключателе языков"
350
 
351
  # @ polylang
352
- #: include/nav-menu.php:28
353
- #: include/nav-menu.php:51
354
- #: include/nav-menu.php:54
355
- #: include/nav-menu.php:82
356
- #: include/nav-menu.php:106
357
- #: polylang.php:302
358
  msgid "Language switcher"
359
  msgstr "Переключатель языков"
360
 
361
  # @ polylang
362
- #: include/languages-form.php:148
363
  msgid "Search translations"
364
  msgstr "Поиск перевода"
365
 
366
- #: include/languages-form.php:151
367
  msgid "Clean strings translation database"
368
  msgstr "Почистить базу данных переводов строк"
369
 
370
  # @ polylang
371
- #: include/languages-form.php:167
372
  msgid "Default language"
373
  msgstr "Язык по умолчанию"
374
 
375
  # @ polylang
376
- #: include/languages-form.php:179
377
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
378
  msgstr "Найдены записи, страницы, категории или метки без указанния какого-либо языка. Установить им язык по-умолчанию?"
379
 
380
  # @ polylang
381
- #: include/languages-form.php:187
382
  msgid "Detect browser language"
383
  msgstr "Определять язык в браузере"
384
 
385
  # @ polylang
386
- #: include/languages-form.php:193
387
  msgid "When the front page is visited, set the language according to the browser preference"
388
  msgstr "Установить язык сайта согласно настройкам браузера"
389
 
390
  # @ polylang
391
- #: include/languages-form.php:200
392
  msgid "URL modifications"
393
  msgstr "Модификации URL"
394
 
395
- #: include/languages-form.php:206
396
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
397
  msgstr "Язык устанавливается по содержимому. Адреса URL записей, страниц, категорий и тэгов не модифицируются."
398
 
399
- #: include/languages-form.php:214
400
- msgid "The language code, for example /en/, is added to all urls when using pretty permalinks."
401
- msgstr "Код языка, например /en/, добавляется ко всем URL, если используются постоянные ссылки."
402
-
403
  # @ polylang
404
- #: include/languages-form.php:223
405
  msgid "Remove /language/ in pretty permalinks. Example:"
406
  msgstr "Удалить /language/ в ЧПУ. Пример:"
407
 
408
  # @ polylang
409
- #: include/languages-form.php:232
410
  msgid "Keep /language/ in pretty permalinks. Example:"
411
  msgstr "Оставить /language/ в ЧПУ. Пример:"
412
 
413
  # @ polylang
414
- #: include/languages-form.php:241
415
  msgid "Hide URL language information for default language"
416
  msgstr "Спрятать название языка по-умолчанию из URL"
417
 
418
- #: include/languages-form.php:251
419
  #, php-format
420
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
421
  msgstr "Если используются статические страницы, перенаправлять языковые варианты (например: %s) на главную страницу в нужном языке."
422
 
423
  # @ polylang
424
- #: include/languages-form.php:260
425
  msgid "Media"
426
  msgstr "Медиа"
427
 
428
  # @ polylang
429
- #: include/languages-form.php:266
430
  msgid "Activate languages and translations for media"
431
  msgstr "Активировать языки и переводы для мультимедиа материалов"
432
 
433
- #: include/languages-form.php:273
434
  msgid "Synchronization"
435
  msgstr "Синхронизация"
436
 
437
  # @ polylang
438
- #: include/languages-form.php:287
439
  msgid "Custom post types"
440
  msgstr "Пользовательские типы записей"
441
 
442
  # @ polylang
443
- #: include/languages-form.php:300
444
  msgid "Activate languages and translations for custom post types."
445
  msgstr "Активировать языки и переводы для пользовательских типов записей."
446
 
447
  # @ polylang
448
- #: include/languages-form.php:307
449
  msgid "Custom taxonomies"
450
  msgstr "Пользовательская таксономия"
451
 
452
  # @ polylang
453
- #: include/languages-form.php:320
454
  msgid "Activate languages and translations for custom taxonomies."
455
  msgstr "Активировать языки и переводы для пользовательской таксономии."
456
 
457
  # @ polylang
458
- #: include/list-table.php:26
459
- #: include/media-translations.php:22
460
- #: include/media-translations.php:60
461
- #: include/post-translations.php:10
462
- #: include/post-translations.php:33
463
- #: include/term-translations.php:18
464
- #: include/term-translations.php:80
465
  msgid "Edit"
466
  msgstr "Редактировать"
467
 
468
  # @ polylang
469
- #: include/list-table.php:27
470
- #: include/list-table.php:162
471
  msgid "Delete"
472
  msgstr "Удалить"
473
 
474
  # @ polylang
475
- #: include/list-table.php:36
476
  msgid "Code"
477
  msgstr "Код"
478
 
479
  # @ polylang
480
- #: include/list-table.php:38
481
  msgid "Flag"
482
  msgstr "Флаг"
483
 
484
  # @ polylang
485
- #: include/list-table.php:39
486
  msgid "Posts"
487
  msgstr "Записи"
488
 
489
  # @ polylang
490
- #: include/list-table.php:125
491
  msgid "Name"
492
  msgstr "Название"
493
 
494
  # @ polylang
495
- #: include/list-table.php:126
496
  msgid "String"
497
  msgstr "Строка"
498
 
499
  # @ polylang
500
- #: include/media-translations.php:6
501
- #: include/media-translations.php:44
502
- #: include/term-translations.php:16
503
  msgid "Translation"
504
  msgstr "Перевод"
505
 
506
  # @ polylang
507
- #: include/media-translations.php:31
508
- #: include/media-translations.php:68
509
- #: include/post-translations.php:38
510
- #: include/term-translations.php:60
511
  msgid "Add new"
512
  msgstr "Добавить новый"
513
 
514
  # @ polylang
515
- #: include/post-translations.php:5
516
  msgid "ID of pages in other languages:"
517
  msgstr "ID страницы на других языках:"
518
 
519
  # @ polylang
520
- #: include/post-translations.php:5
521
  msgid "ID of posts in other languages:"
522
  msgstr "ID записи на других языках:"
523
 
524
  # @ polylang
525
- #: include/post-translations.php:9
526
  msgid "Page ID"
527
  msgstr "ID страницы"
528
 
529
  # @ polylang
530
- #: include/post-translations.php:9
531
  msgid "Post ID"
532
  msgstr "ID записи"
533
 
534
  # @ polylang
535
- #: include/term-translations.php:48
536
  msgid "No untranslated term"
537
  msgstr "Нет непереведенных значений"
538
 
539
  # @ polylang
540
- #: include/widget.php:6
541
  msgid "Language Switcher"
542
  msgstr "Переключатель языков"
543
 
544
  # @ polylang
545
- #: include/widget.php:6
546
  msgid "Displays a language switcher"
547
  msgstr "Показывает переключатель языков"
548
 
549
  # @ polylang
550
- #: include/widget.php:69
551
  msgid "Title:"
552
  msgstr "Название:"
553
 
@@ -558,34 +545,70 @@ msgid "Adds multilingual capability to WordPress"
558
  msgstr ""
559
 
560
  # @ polylang
561
- #: polylang.php:133
562
  #, php-format
563
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
564
  msgstr "Установлен WordPress %s. Для корректной работы Polylang требуется минимум WordPress %s."
565
 
566
  # @ polylang
567
- #: polylang.php:174
568
- msgid "For some reasons, Polylang c
2
  msgstr ""
3
  "Project-Id-Version: polylang\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: \n"
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: danalan <danalan@danalan.info>\n"
8
  "Language-Team: \n"
20
  "X-Poedit-SearchPath-0: ..\n"
21
 
22
  # @ polylang
23
+ #: admin/view-about.php:3
24
  #, php-format
25
  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."
26
  msgstr "Polylang предоставляется с исчерпывающей %sдокументацией%s (только на английском), которая включает информацию по настройке и использованию вашего многоязычного сайта, ответы на частые вопросы, а также документацию для программистов для адаптации их собственных плагинов и тем."
27
 
28
  # @ polylang
29
+ #: admin/view-about.php:9
30
  #, php-format
31
  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."
32
  msgstr "Также вы можете найти полезную информацию на %sфоруме поддержки%s. Однако, не забывайте пользоваться поиском, прежде чем создавать новые темы."
33
 
34
  # @ polylang
35
+ #: admin/view-about.php:16
36
  #, php-format
37
  msgid "Polylang is free of charge and is released under the same license as WordPress, the %sGPL%s."
38
  msgstr "Polylang бесплатен и предоставляется на таких же, как и WordPress условиях, %sGPL%s."
39
 
40
  # @ polylang
41
+ #: admin/view-about.php:22
42
  #, php-format
43
  msgid "If you wonder how you can help the project, just %sread this%s."
44
  msgstr "Если вас интересует, как можно помочь проекту, просто %sпрочтите это%s."
45
 
46
  # @ polylang
47
+ #: admin/view-about.php:27
48
  msgid "Finally if you like this plugin or if it helps your business, donations to the author are greatly appreciated."
49
  msgstr "Если же вам понравился этот плагин, или он помогает вам в бизнесе, автор будет весьма признателен за любые добровольные пожертвования."
50
 
51
  # @ polylang
52
+ #: admin/admin-filters-post.php:76
53
+ #: admin/admin.php:83
54
+ #: admin/admin.php:187
55
+ #: admin/settings.php:42
56
+ #: admin/settings.php:57
57
+ #: include/model.php:490
 
58
  msgid "Languages"
59
  msgstr "Языки"
60
 
61
  # @ polylang
62
+ #: include/switcher.php:22
63
  msgid "Displays language names"
64
  msgstr "Показывать названия языков"
65
 
66
  # @ polylang
67
+ #: include/switcher.php:23
68
  msgid "Displays flags"
69
  msgstr "Показывать флаги"
70
 
71
  # @ polylang
72
+ #: include/switcher.php:24
73
  msgid "Forces link to front page"
74
  msgstr "Принудительно переходить на главную страницу при смене языка"
75
 
76
  # @ polylang
77
+ #: include/switcher.php:25
78
  msgid "Hides the current language"
79
  msgstr "Убрать текущий язык"
80
 
81
  # @ polylang
82
+ #: include/switcher.php:29
83
  msgid "Displays as dropdown"
84
  msgstr "Показывать как выпадающий список"
85
 
86
  # @ polylang
87
+ #: admin/admin.php:188
88
  msgid "Filters content by language"
89
  msgstr "Устанавливает язык"
90
 
91
  # @ polylang
92
+ #: admin/admin.php:183
93
  msgid "Show all languages"
94
  msgstr "Показать все языки"
95
 
96
  # @ polylang
97
+ #: admin/admin-filters-columns.php:126
98
+ #: admin/admin-filters-columns.php:215
99
  msgid "Add new translation"
100
  msgstr "Добавить новый перевод"
101
 
102
  # @ polylang
103
+ #: admin/admin-filters-columns.php:163
104
+ #: admin/admin-filters-media.php:58
105
+ #: admin/admin-filters-post.php:109
106
+ #: admin/admin-filters-term.php:72
107
+ #: admin/admin-filters-term.php:106
108
+ #: admin/view-translations-media.php:7
109
+ #: admin/view-translations-media.php:45
110
+ #: admin/view-translations-post.php:8
111
+ #: admin/view-translations-term.php:15
112
+ #: include/model.php:491
 
113
  msgid "Language"
114
  msgstr "Язык"
115
 
116
  # @ polylang
117
+ #: admin/admin-filters-media.php:73
118
+ #: admin/admin-filters-media.php:112
119
+ #: admin/table-string.php:111
120
+ #: admin/view-translations-media.php:42
121
+ #: admin/view-translations-term.php:6
122
+ #: admin/view-translations-term.php:11
123
  msgid "Translations"
124
  msgstr "Переводы"
125
 
126
  # @ polylang
127
+ #: admin/admin-filters-term.php:74
128
+ #: admin/admin-filters-term.php:108
129
  msgid "Sets the language"
130
  msgstr "Устанавливает язык"
131
 
132
  # @ polylang
133
+ #: admin/admin-filters.php:60
134
  msgid "The widget is displayed for:"
135
  msgstr "Показывать виджет для"
136
 
137
  # @ polylang
138
+ #: admin/admin-filters.php:63
139
+ #: include/model.php:492
140
  msgid "All languages"
141
  msgstr "Все языки"
142
 
143
  # @ polylang
144
+ #: admin/admin-filters.php:120
145
  msgid "Admin language"
146
  msgstr "Язык админ.панели"
147
 
148
+ #: admin/admin-filters.php:123
149
  msgid "Wordpress default"
150
  msgstr "По умолчанию"
151
 
152
  # @ default
153
  # @ polylang
154
+ #: admin/admin.php:123
155
+ #: admin/settings.php:62
156
  msgid "Settings"
157
  msgstr "Настройки"
158
 
159
  # @ polylang
160
+ #: admin/admin-filters.php:151
161
  msgid "Upgrading language files&#8230;"
162
  msgstr "Обновление языковых файлов&#8230;"
163
 
164
  # @ polylang
165
+ #: admin/settings.php:38
166
  msgid "About Polylang"
167
  msgstr "О Polylang"
168
 
169
  # @ polylang
170
+ #: admin/settings.php:46
 
171
  msgid "Strings translations"
172
  msgstr "Переводы строк"
173
 
174
  # @ polylang
175
+ #: admin/settings.php:61
 
176
  msgid "Strings translation"
177
  msgstr "Перевод строк"
178
 
179
  # @ polylang
180
+ #: admin/settings.php:74
181
  msgid "Enter a valid WorPress locale"
182
  msgstr ""
183
 
184
  # @ polylang
185
+ #: admin/settings.php:76
 
 
 
 
 
186
  msgid "The language code must be unique"
187
  msgstr "Код языка должен быть уникальным"
188
 
189
  # @ polylang
190
+ #: admin/settings.php:77
191
  msgid "The language must have a name"
192
  msgstr "У языка должно быть название"
193
 
194
  # @ polylang
195
+ #: admin/settings.php:78
196
  msgid "The language was created, but the WordPress language file was not downloaded. Please install it manually."
197
  msgstr "Язык был успешно создан, однако отсутствует языковой файл WordPress. Пожалуйста, установите его вручную."
198
 
199
  # @ polylang
200
+ #: admin/settings.php:305
201
  msgid "Widget title"
202
  msgstr "Название виджета"
203
 
204
  # @ polylang
205
+ #: admin/settings.php:323
206
  msgid "Taxonomies"
207
  msgstr "Таксономия"
208
 
209
  # @ polylang
210
+ #: admin/settings.php:324
211
  msgid "Custom fields"
212
  msgstr "Пользовательские поля"
213
 
214
  # @ polylang
215
+ #: admin/settings.php:325
216
  msgid "Comment status"
217
  msgstr "Статус комментария"
218
 
219
  # @ polylang
220
+ #: admin/settings.php:326
221
  msgid "Ping status"
222
  msgstr "Статус отклика"
223
 
224
  # @ polylang
225
+ #: admin/settings.php:327
226
  msgid "Sticky posts"
227
  msgstr "Прилепленные записи"
228
 
229
  # @ polylang
230
+ #: admin/settings.php:328
231
  msgid "Published date"
232
  msgstr "Дата опубликования"
233
 
234
+ #: admin/settings.php:329
235
  msgid "Post format"
236
  msgstr "Формат записи"
237
 
238
  # @ default
239
+ #: admin/settings.php:330
240
  msgid "Page parent"
241
  msgstr "Родительская страница"
242
 
243
  # @ polylang
244
+ #: admin/settings.php:331
245
  msgid "Page template"
246
  msgstr "Шаблон страницы"
247
 
248
  # @ polylang
249
+ #: admin/settings.php:332
250
  msgid "Page order"
251
  msgstr "Порядок страниц"
252
 
253
  # @ polylang
254
+ #: admin/settings.php:333
255
  msgid "Featured image"
256
  msgstr "Выбранный рисунок"
257
 
258
  # @ polylang
259
+ #: admin/view-languages.php:42
260
  msgid "Edit language"
261
  msgstr "Редактировать язык"
262
 
263
  # @ polylang
264
+ #: admin/view-languages.php:42
265
+ #: admin/view-languages.php:117
266
  msgid "Add new language"
267
  msgstr "Добавить новый язык"
268
 
269
  # @ polylang
270
+ #: admin/view-languages.php:58
271
  msgid "Choose a language"
272
  msgstr "Показать все языки"
273
 
274
  # @ polylang
275
+ #: admin/view-languages.php:72
276
  msgid "You can choose a language in the list or directly edit it below."
277
  msgstr "Выберите язык из списка или укажите сами."
278
 
279
  # @ polylang
280
+ #: admin/table-languages.php:74
281
+ #: admin/view-languages.php:76
282
  msgid "Full name"
283
  msgstr "Полное название"
284
 
285
  # @ polylang
286
+ #: admin/view-languages.php:78
287
  msgid "The name is how it is displayed on your site (for example: English)."
288
  msgstr "Название для отображения на сайте (например: Русский)."
289
 
290
  # @ polylang
291
+ #: admin/table-languages.php:75
292
+ #: admin/view-languages.php:82
293
  msgid "Locale"
294
  msgstr "Локаль"
295
 
296
  # @ polylang
297
+ #: admin/view-languages.php:87
298
  msgid "Wordpress Locale for the language (for example: en_US). You will need to install the .mo file for this language."
299
  msgstr "Локаль Wordpress'a для языка (например: ru_RU). Вы должны установить файлы .mo для админ.панели и используемой темы."
300
 
301
  # @ polylang
302
+ #: admin/view-languages.php:91
303
  msgid "Language code"
304
  msgstr "Код языка"
305
 
306
  # @ polylang
307
+ #: admin/view-languages.php:93
308
  msgid "2-letters ISO 639-1 language code (for example: en)"
309
  msgstr "2х-буквенный ISO 639-1 код языка (например: ru)"
310
 
311
  # @ polylang
312
+ #: admin/view-languages.php:97
313
  msgid "Text direction"
314
  msgstr "Направление текста"
315
 
316
  # @ polylang
317
+ #: admin/view-languages.php:101
318
  msgid "left to right"
319
  msgstr "слева направо"
320
 
321
  # @ polylang
322
+ #: admin/view-languages.php:106
323
  msgid "right to left"
324
  msgstr "справа налево"
325
 
326
  # @ polylang
327
+ #: admin/view-languages.php:108
328
  msgid "Choose the text direction for the language"
329
  msgstr "Выберите направление текста для языка"
330
 
331
  # @ polylang
332
+ #: admin/table-languages.php:77
333
+ #: admin/view-languages.php:112
334
  msgid "Order"
335
  msgstr "Порядок"
336
 
337
  # @ polylang
338
+ #: admin/view-languages.php:114
339
  msgid "Position of the language in the language switcher"
340
  msgstr "Порядок языка в переключателе языков"
341
 
342
  # @ polylang
343
+ #: admin/admin-nav-menu.php:51
344
+ #: admin/admin-nav-menu.php:79
345
+ #: admin/admin-nav-menu.php:82
346
+ #: admin/admin-nav-menu.php:113
347
+ #: admin/admin-nav-menu.php:170
348
+ #: include/upgrade.php:175
349
  msgid "Language switcher"
350
  msgstr "Переключатель языков"
351
 
352
  # @ polylang
353
+ #: admin/view-languages.php:143
354
  msgid "Search translations"
355
  msgstr "Поиск перевода"
356
 
357
+ #: admin/view-languages.php:146
358
  msgid "Clean strings translation database"
359
  msgstr "Почистить базу данных переводов строк"
360
 
361
  # @ polylang
362
+ #: admin/view-languages.php:164
363
  msgid "Default language"
364
  msgstr "Язык по умолчанию"
365
 
366
  # @ polylang
367
+ #: admin/view-languages.php:179
368
  msgid "There are posts, pages, categories or tags without language set. Do you want to set them all to default language ?"
369
  msgstr "Найдены записи, страницы, категории или метки без указанния какого-либо языка. Установить им язык по-умолчанию?"
370
 
371
  # @ polylang
372
+ #: admin/view-languages.php:187
373
  msgid "Detect browser language"
374
  msgstr "Определять язык в браузере"
375
 
376
  # @ polylang
377
+ #: admin/view-languages.php:193
378
  msgid "When the front page is visited, set the language according to the browser preference"
379
  msgstr "Установить язык сайта согласно настройкам браузера"
380
 
381
  # @ polylang
382
+ #: admin/view-languages.php:200
383
  msgid "URL modifications"
384
  msgstr "Модификации URL"
385
 
386
+ #: admin/view-languages.php:206
387
  msgid "The language is set from content. Posts, pages, categories and tags urls are not modified."
388
  msgstr "Язык устанавливается по содержимому. Адреса URL записей, страниц, категорий и тэгов не модифицируются."
389
 
 
 
 
 
390
  # @ polylang
391
+ #: admin/view-languages.php:253
392
  msgid "Remove /language/ in pretty permalinks. Example:"
393
  msgstr "Удалить /language/ в ЧПУ. Пример:"
394
 
395
  # @ polylang
396
+ #: admin/view-languages.php:262
397
  msgid "Keep /language/ in pretty permalinks. Example:"
398
  msgstr "Оставить /language/ в ЧПУ. Пример:"
399
 
400
  # @ polylang
401
+ #: admin/view-languages.php:271
402
  msgid "Hide URL language information for default language"
403
  msgstr "Спрятать название языка по-умолчанию из URL"
404
 
405
+ #: admin/view-languages.php:281
406
  #, php-format
407
  msgid "When using static front page, redirect the language page (example: %s) to the front page in the right language"
408
  msgstr "Если используются статические страницы, перенаправлять языковые варианты (например: %s) на главную страницу в нужном языке."
409
 
410
  # @ polylang
411
+ #: admin/view-languages.php:290
412
  msgid "Media"
413
  msgstr "Медиа"
414
 
415
  # @ polylang
416
+ #: admin/view-languages.php:296
417
  msgid "Activate languages and translations for media"
418
  msgstr "Активировать языки и переводы для мультимедиа материалов"
419
 
420
+ #: admin/view-languages.php:303
421
  msgid "Synchronization"
422
  msgstr "Синхронизация"
423
 
424
  # @ polylang
425
+ #: admin/view-languages.php:320
426
  msgid "Custom post types"
427
  msgstr "Пользовательские типы записей"
428
 
429
  # @ polylang
430
+ #: admin/view-languages.php:333
431
  msgid "Activate languages and translations for custom post types."
432
  msgstr "Активировать языки и переводы для пользовательских типов записей."
433
 
434
  # @ polylang
435
+ #: admin/view-languages.php:340
436
  msgid "Custom taxonomies"
437
  msgstr "Пользовательская таксономия"
438
 
439
  # @ polylang
440
+ #: admin/view-languages.php:353
441
  msgid "Activate languages and translations for custom taxonomies."
442
  msgstr "Активировать языки и переводы для пользовательской таксономии."
443
 
444
  # @ polylang
445
+ #: admin/table-languages.php:54
446
+ #: admin/view-translations-media.php:24
447
+ #: admin/view-translations-media.php:62
448
+ #: admin/view-translations-post.php:10
449
+ #: admin/view-translations-post.php:33
450
+ #: admin/view-translations-term.php:18
451
+ #: admin/view-translations-term.php:80
452
  msgid "Edit"
453
  msgstr "Редактировать"
454
 
455
  # @ polylang
456
+ #: admin/table-languages.php:60
457
+ #: admin/table-string.php:167
458
  msgid "Delete"
459
  msgstr "Удалить"
460
 
461
  # @ polylang
462
+ #: admin/table-languages.php:76
463
  msgid "Code"
464
  msgstr "Код"
465
 
466
  # @ polylang
467
+ #: admin/table-languages.php:78
468
  msgid "Flag"
469
  msgstr "Флаг"
470
 
471
  # @ polylang
472
+ #: admin/table-languages.php:79
473
  msgid "Posts"
474
  msgstr "Записи"
475
 
476
  # @ polylang
477
+ #: admin/table-string.php:109
478
  msgid "Name"
479
  msgstr "Название"
480
 
481
  # @ polylang
482
+ #: admin/table-string.php:110
483
  msgid "String"
484
  msgstr "Строка"
485
 
486
  # @ polylang
487
+ #: admin/view-translations-media.php:8
488
+ #: admin/view-translations-media.php:46
489
+ #: admin/view-translations-term.php:16
490
  msgid "Translation"
491
  msgstr "Перевод"
492
 
493
  # @ polylang
494
+ #: admin/view-translations-media.php:33
495
+ #: admin/view-translations-media.php:70
496
+ #: admin/view-translations-post.php:38
497
+ #: admin/view-translations-term.php:60
498
  msgid "Add new"
499
  msgstr "Добавить новый"
500
 
501
  # @ polylang
502
+ #: admin/view-translations-post.php:5
503
  msgid "ID of pages in other languages:"
504
  msgstr "ID страницы на других языках:"
505
 
506
  # @ polylang
507
+ #: admin/view-translations-post.php:5
508
  msgid "ID of posts in other languages:"
509
  msgstr "ID записи на других языках:"
510
 
511
  # @ polylang
512
+ #: admin/view-translations-post.php:9
513
  msgid "Page ID"
514
  msgstr "ID страницы"
515
 
516
  # @ polylang
517
+ #: admin/view-translations-post.php:9
518
  msgid "Post ID"
519
  msgstr "ID записи"
520
 
521
  # @ polylang
522
+ #: admin/view-translations-term.php:48
523
  msgid "No untranslated term"
524
  msgstr "Нет непереведенных значений"
525
 
526
  # @ polylang
527
+ #: include/widget-languages.php:16
528
  msgid "Language Switcher"
529
  msgstr "Переключатель языков"
530
 
531
  # @ polylang
532
+ #: include/widget-languages.php:16
533
  msgid "Displays a language switcher"
534
  msgstr "Показывает переключатель языков"
535
 
536
  # @ polylang
537
+ #: include/widget-languages.php:100
538
  msgid "Title:"
539
  msgstr "Название:"
540
 
545
  msgstr ""
546
 
547
  # @ polylang
548
+ #: polylang.php:157
549
  #, php-format
550
  msgid "You are using WordPress %s. Polylang requires at least WordPress %s."
551
  msgstr "Установлен WordPress %s. Для корректной работы Polylang требуется минимум WordPress %s."
552
 
553
  # @ polylang