WP fail2ban - Version 4.3.0-RC3

Version Description

Download this release

Release Info

Developer invisnet
Plugin Icon 128x128 WP fail2ban
Version 4.3.0-RC3
Comparing to
See all releases

Code changes from version 4.2.7.1 to 4.3.0-RC3

Files changed (86) hide show
  1. admin/admin.php +196 -79
  2. admin/config.php +160 -134
  3. admin/config/block.php +127 -103
  4. admin/config/logging.php +224 -221
  5. admin/config/plugins.php +110 -171
  6. admin/config/remote-ips.php +97 -85
  7. admin/config/syslog.php +164 -129
  8. admin/lib/about.php +122 -158
  9. admin/lib/tab.php +480 -241
  10. admin/tools.php +52 -0
  11. assets/icon.svg +7 -0
  12. assets/menu.svg +7 -0
  13. feature/comments.php +146 -157
  14. feature/lib.php +151 -111
  15. feature/password.php +23 -23
  16. feature/plugins.php +234 -212
  17. feature/spam.php +37 -46
  18. feature/user-enum.php +103 -117
  19. feature/user.php +62 -46
  20. feature/xmlrpc.php +82 -88
  21. feature/xmlrpc/log.php +22 -24
  22. feature/xmlrpc/pingback.php +24 -26
  23. filters.d/wordpress-extra.conf +1 -1
  24. filters.d/wordpress-hard.conf +2 -1
  25. filters.d/wordpress-soft.conf +3 -2
  26. lib/activation.php +83 -0
  27. lib/constants.php +112 -134
  28. lib/convert-data.php +102 -0
  29. lib/defaults.php +34 -71
  30. lib/loader.php +438 -311
  31. readme.txt +26 -12
  32. vendor/freemius/wordpress-sdk/.gitattributes +8 -2
  33. vendor/freemius/wordpress-sdk/.github/ISSUE_TEMPLATE.md +6 -25
  34. vendor/freemius/wordpress-sdk/.github/ISSUE_TEMPLATE/1-bug-report.md +46 -0
  35. vendor/freemius/wordpress-sdk/.github/ISSUE_TEMPLATE/2-feature-request.md +30 -0
  36. vendor/freemius/wordpress-sdk/.github/ISSUE_TEMPLATE/3-support-request.md +15 -0
  37. vendor/freemius/wordpress-sdk/.github/ISSUE_TEMPLATE/4-security-issue-disclosure.md +11 -0
  38. vendor/freemius/wordpress-sdk/assets/css/admin/account.css +1 -1
  39. vendor/freemius/wordpress-sdk/assets/css/admin/common.css +2 -2
  40. vendor/freemius/wordpress-sdk/assets/css/admin/connect.css +1 -1
  41. vendor/freemius/wordpress-sdk/assets/css/admin/debug.css +1 -1
  42. vendor/freemius/wordpress-sdk/assets/css/admin/dialog-boxes.css +1 -1
  43. vendor/freemius/wordpress-sdk/assets/css/admin/plugins.css +1 -0
  44. vendor/freemius/wordpress-sdk/assets/css/customizer.css +1 -1
  45. vendor/freemius/wordpress-sdk/assets/scss/_colors.scss +6 -0
  46. vendor/freemius/wordpress-sdk/assets/scss/admin/_data-debug-mode.scss +7 -0
  47. vendor/freemius/wordpress-sdk/assets/scss/admin/_modal-common.scss +5 -0
  48. vendor/freemius/wordpress-sdk/assets/scss/admin/_switch.scss +119 -0
  49. vendor/freemius/wordpress-sdk/assets/scss/admin/_user-change.scss +57 -0
  50. vendor/freemius/wordpress-sdk/assets/scss/admin/account.scss +1 -1
  51. vendor/freemius/wordpress-sdk/assets/scss/admin/common.scss +2 -0
  52. vendor/freemius/wordpress-sdk/assets/scss/admin/connect.scss +10 -2
  53. vendor/freemius/wordpress-sdk/assets/scss/admin/debug.scss +1 -84
  54. vendor/freemius/wordpress-sdk/assets/scss/admin/dialog-boxes.scss +2 -0
  55. vendor/freemius/wordpress-sdk/assets/scss/customizer.scss +40 -0
  56. vendor/freemius/wordpress-sdk/includes/class-freemius.php +1589 -281
  57. vendor/freemius/wordpress-sdk/includes/class-fs-plugin-updater.php +32 -2
  58. vendor/freemius/wordpress-sdk/includes/class-fs-storage.php +45 -40
  59. vendor/freemius/wordpress-sdk/includes/customizer/class-fs-customizer-upsell-control.php +5 -1
  60. vendor/freemius/wordpress-sdk/includes/entities/class-fs-entity.php +10 -0
  61. vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin-license.php +33 -0
  62. vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin.php +5 -0
  63. vendor/freemius/wordpress-sdk/includes/entities/class-fs-pricing.php +16 -0
  64. vendor/freemius/wordpress-sdk/includes/entities/class-fs-site.php +3 -3
  65. vendor/freemius/wordpress-sdk/includes/entities/class-fs-subscription.php +136 -114
  66. vendor/freemius/wordpress-sdk/includes/fs-core-functions.php +282 -217
  67. vendor/freemius/wordpress-sdk/includes/fs-essential-functions.php +5 -1
  68. vendor/freemius/wordpress-sdk/includes/fs-plugin-info-dialog.php +27 -6
  69. vendor/freemius/wordpress-sdk/includes/managers/class-fs-admin-menu-manager.php +53 -32
  70. vendor/freemius/wordpress-sdk/includes/managers/class-fs-cache-manager.php +1 -1
  71. vendor/freemius/wordpress-sdk/includes/managers/class-fs-option-manager.php +35 -11
  72. vendor/freemius/wordpress-sdk/includes/managers/class-fs-plugin-manager.php +3 -3
  73. vendor/freemius/wordpress-sdk/languages/freemius-cs_CZ.mo +0 -0
  74. vendor/freemius/wordpress-sdk/languages/freemius-cs_CZ.po +2546 -0
  75. vendor/freemius/wordpress-sdk/languages/freemius-da_DK.mo +0 -0
  76. vendor/freemius/wordpress-sdk/languages/freemius-da_DK.po +727 -901
  77. vendor/freemius/wordpress-sdk/languages/freemius-en.mo +0 -0
  78. vendor/freemius/wordpress-sdk/languages/freemius-en.po +415 -379
  79. vendor/freemius/wordpress-sdk/languages/freemius-es_ES.mo +0 -0
  80. vendor/freemius/wordpress-sdk/languages/freemius-es_ES.po +508 -470
  81. vendor/freemius/wordpress-sdk/languages/freemius-fr_FR.mo +0 -0
  82. vendor/freemius/wordpress-sdk/languages/freemius-fr_FR.po +492 -454
  83. vendor/freemius/wordpress-sdk/languages/freemius-he_IL.mo +0 -0
  84. vendor/freemius/wordpress-sdk/languages/freemius-he_IL.po +491 -453
  85. vendor/freemius/wordpress-sdk/languages/freemius-hu_HU.mo +0 -0
  86. vendor/freemius/wordpress-sdk/languages/freemius-hu_HU.po +4 -4
admin/admin.php CHANGED
@@ -4,94 +4,211 @@
4
  * Admin
5
  *
6
  * @package wp-fail2ban
7
- * @since 4.0.0
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- require __DIR__ . '/config.php';
15
- require __DIR__ . '/lib/about.php';
16
- /**
17
- * Register admin menus
18
- *
19
- * @since 4.0.0
20
- */
21
- function admin_menu()
22
- {
23
- global $submenu ;
24
- add_menu_page(
25
- 'WP fail2ban',
26
- 'WP fail2ban',
27
- 'manage_options',
28
- 'wp-fail2ban',
29
- __NAMESPACE__ . '\\about',
30
- 'dashicons-analytics'
31
- );
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
- if ( function_exists( '\\add_security_page' ) ) {
34
- $slug = 'wp-fail2ban';
35
- add_security_page(
36
- 'WP fail2ban',
37
- 'WP fail2ban',
38
- $slug,
39
- __NAMESPACE__ . '\\security'
40
- );
41
- } else {
42
- add_submenu_page(
43
- 'wp-fail2ban',
44
- 'Settings',
45
- 'Settings',
46
- 'manage_options',
 
 
 
47
  'wpf2b-settings',
48
  __NAMESPACE__ . '\\settings'
49
  );
 
 
 
 
50
  }
51
 
52
- $hook = add_submenu_page(
53
- 'wp-fail2ban',
54
- 'WP fail2ban - Remote Tools',
55
- 'Remote Tools',
56
- 'manage_options',
57
- 'wp-fail2ban-tools',
58
- __NAMESPACE__ . '\\remote_tools'
59
- );
60
- add_action( "load-{$hook}", function () {
61
- if ( function_exists( '\\org\\lecklider\\charles\\wordpress\\wp_fail2ban\\addons\\remote_tools\\help' ) ) {
62
- \org\lecklider\charles\wordpress\wp_fail2ban\addons\remote_tools\help();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  }
64
- } );
65
- $submenu['wp-fail2ban'][0][0] = __( 'Welcome' );
66
- }
67
-
68
- add_action( 'admin_menu', __NAMESPACE__ . '\\admin_menu' );
69
- /**
70
- * Add Settings link on Plugins page
71
- *
72
- * @since 4.2.6 Add support for ClassicPress security page
73
- * @since 4.2.0
74
- *
75
- * @param array $links
76
- * @param string $file
77
- */
78
- function plugin_action_links( $links, $file )
79
- {
80
- if ( preg_match( "|{$file}\$|", WP_FAIL2BAN_FILE ) ) {
81
- array_unshift( $links, sprintf(
82
- '<a href="%s?page=%s" title="%s">%s</a>',
83
- admin_url( 'admin.php' ),
84
- ( wf_fs()->is_free_plan() ? 'wp-fail2ban' : 'wpf2b-settings' ),
85
- __( 'Settings' ),
86
- ( function_exists( '\\add_security_page' ) ? '<span class="dashicon dashicons-admin-generic"></span>' : __( 'Settings' ) )
87
- ) );
88
  }
89
- return $links;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  }
91
-
92
- add_filter(
93
- 'plugin_action_links',
94
- __NAMESPACE__ . '\\plugin_action_links',
95
- 10,
96
- 2
97
- );
4
  * Admin
5
  *
6
  * @package wp-fail2ban
7
+ * @since 4.0.0
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
+
12
+ if ( defined( 'ABSPATH' ) ) {
13
+ require_once __DIR__ . '/config.php';
14
+ require_once __DIR__ . '/tools.php';
15
+ require_once __DIR__ . '/lib/about.php';
16
+ include_once_exists( WP_FAIL2BAN_DIR . '/premium/admin/admin.php' );
17
+ /**
18
+ * Helper: Security and Settings menu
19
+ *
20
+ * @since 4.3.0
21
+ *
22
+ * @param string $capability Capability
23
+ */
24
+ function _security_settings( $capability = 'manage_options' )
25
+ {
26
+
27
+ if ( function_exists( '\\add_security_page' ) ) {
28
+ $hook = add_security_page(
29
+ 'WP fail2ban',
30
+ 'WP fail2ban',
31
+ plugin_basename( WP_FAIL2BAN_DIR ),
32
+ __NAMESPACE__ . '\\security'
33
+ );
34
+ add_action( "load-{$hook}", function () {
35
+ TabBase::setDefaultTab( 'logging' );
36
+ TabBase::getActiveTab()->current_screen();
37
+ } );
38
+ if ( class_exists( __NAMESPACE__ . '\\premium\\WPf2b' ) ) {
39
+ _settings( 'status', $capability );
40
+ }
41
+ } else {
42
+ _settings( apply_filters( __METHOD__ . '.page', 'logging' ), $capability );
43
+ }
44
 
45
+ }
46
+
47
+ /**
48
+ * Helper: Settings menu
49
+ *
50
+ * @since 4.3.0
51
+ *
52
+ * @param $page string|null
53
+ * @param $capability string
54
+ */
55
+ function _settings( $page = null, $capability = 'manage_options' )
56
+ {
57
+ $hook = add_submenu_page(
58
+ 'wp-fail2ban-menu',
59
+ __( 'Settings', 'wp-fail2ban' ),
60
+ __( 'Settings', 'wp-fail2ban' ),
61
+ $capability,
62
  'wpf2b-settings',
63
  __NAMESPACE__ . '\\settings'
64
  );
65
+ add_action( "load-{$hook}", function () use( $page ) {
66
+ TabBase::setDefaultTab( $page );
67
+ TabBase::getActiveTab()->current_screen();
68
+ } );
69
  }
70
 
71
+ /**
72
+ * Helper: Remote Tools menu
73
+ *
74
+ * @since 4.3.0
75
+ *
76
+ * @param string $capability Capability
77
+ */
78
+ function _remote_tools( $capability = 'manage_options' )
79
+ {
80
+ add_submenu_page(
81
+ 'wp-fail2ban-menu',
82
+ __( 'Tools', 'wp-fail2ban' ),
83
+ __( ' - Remote Tools (&beta;)', 'wp-fail2ban' ),
84
+ $capability,
85
+ 'wp-fail2ban-tools',
86
+ __NAMESPACE__ . '\\remote_tools'
87
+ );
88
+ }
89
+
90
+ /**
91
+ * Register admin menus
92
+ *
93
+ * @since 4.0.0
94
+ */
95
+ function admin_menu()
96
+ {
97
+ if ( wf_fs()->is_free_plan() && !wf_fs()->is_trial() || wf_fs()->is_plan( 'remote', true ) ) {
98
+
99
+ if ( !is_multisite() ) {
100
+ add_menu_page(
101
+ 'WP fail2ban',
102
+ 'WP fail2ban',
103
+ 'manage_options',
104
+ 'wp-fail2ban-menu',
105
+ __NAMESPACE__ . '\\about',
106
+ plugin_dir_url( WP_FAIL2BAN_FILE ) . 'assets/menu.svg'
107
+ );
108
+ add_action( 'admin_menu', __NAMESPACE__ . '\\admin_menu_fix', PHP_INT_MAX );
109
+
110
+ if ( !is_multisite() ) {
111
+ _security_settings();
112
+ _remote_tools();
113
+ }
114
+
115
+ }
116
+
117
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
  }
119
+
120
+ add_action( 'admin_menu', __NAMESPACE__ . '\\admin_menu' );
121
+ /**
122
+ * Register network admin menus
123
+ *
124
+ * @since 4.3.0
125
+ */
126
+ function network_admin_menu()
127
+ {
128
+
129
+ if ( wf_fs()->is_free_plan() && !wf_fs()->is_trial() ) {
130
+ add_menu_page(
131
+ 'WP fail2ban',
132
+ 'WP fail2ban',
133
+ 'manage_options',
134
+ 'wp-fail2ban-menu',
135
+ __NAMESPACE__ . '\\about',
136
+ plugin_dir_url( WP_FAIL2BAN_FILE ) . 'assets/menu.svg'
137
+ );
138
+ add_action( 'network_admin_menu', __NAMESPACE__ . '\\admin_menu_fix', PHP_INT_MAX );
139
+ _security_settings();
140
+ _remote_tools();
141
+ }
142
+
143
+ }
144
+
145
+ add_action( 'network_admin_menu', __NAMESPACE__ . '\\network_admin_menu' );
146
+ /**
147
+ * Fix first submenu name.
148
+ *
149
+ * @since 4.3.0
150
+ */
151
+ function admin_menu_fix()
152
+ {
153
+ global $submenu ;
154
+ if ( isset( $submenu['wp-fail2ban-menu'] ) && 'WP fail2ban' == @$submenu['wp-fail2ban-menu'][0][0] ) {
155
+ $submenu['wp-fail2ban-menu'][0][0] = __( 'Welcome', 'wp-fail2ban' );
156
+ }
157
+ }
158
+
159
+ /**
160
+ * Add Settings link on Plugins page
161
+ *
162
+ * @since 4.2.0
163
+ *
164
+ * @param string[] $actions An array of plugin action links. By default this can include 'activate',
165
+ * 'deactivate', and 'delete'.
166
+ * @param string $plugin_file Path to the plugin file relative to the plugins directory.
167
+ * @param array $plugin_data An array of plugin data. See `get_plugin_data()`.
168
+ * @param string $context The plugin context. By default this can include 'all', 'active', 'inactive',
169
+ * 'recently_activated', 'upgrade', 'mustuse', 'dropins', and 'search'.
170
+ */
171
+ function plugin_action_links(
172
+ $actions,
173
+ $plugin_file,
174
+ $plugin_data,
175
+ $context
176
+ )
177
+ {
178
+
179
+ if ( preg_match( "|{$plugin_file}\$|", WP_FAIL2BAN_FILE ) && (!is_multisite() || is_network_admin()) ) {
180
+
181
+ if ( function_exists( '\\add_security_page' ) ) {
182
+ return $actions;
183
+ } else {
184
+ $page = 'wpf2b-fail2ban-menu';
185
+ }
186
+
187
+ $settings = sprintf(
188
+ '<a href="%s?page=wpf2b-settings&tab=about" title="%s">%s</a>',
189
+ network_admin_url( 'admin.php' ),
190
+ __( 'Settings', 'wp-fail2ban' ),
191
+ ( function_exists( '\\add_security_page' ) ? '<span class="dashicon dashicons-admin-generic"></span>' : __( 'Settings', 'wp-fail2ban' ) )
192
+ );
193
+ // Add Settings at the start
194
+ $actions = array_merge( [
195
+ 'settings' => $settings,
196
+ ], $actions );
197
+ }
198
+
199
+ return $actions;
200
+ }
201
+
202
+ add_filter(
203
+ 'plugin_action_links',
204
+ __NAMESPACE__ . '\\plugin_action_links',
205
+ 10,
206
+ 4
207
+ );
208
+ add_filter(
209
+ 'network_admin_plugin_action_links',
210
+ __NAMESPACE__ . '\\plugin_action_links',
211
+ 10,
212
+ 4
213
+ );
214
  }
 
 
 
 
 
 
 
admin/config.php CHANGED
@@ -1,160 +1,186 @@
1
  <?php
2
-
3
  /**
4
  * Config
5
  *
6
  * @package wp-fail2ban
7
- * @since 4.0.0
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- require_once 'lib/tab.php';
15
- foreach ( glob( __DIR__ . '/config/*.php' ) as $filename ) {
16
- require_once $filename;
17
- }
18
- /**
19
- * Render Security settings.
20
- *
21
- * @since 4.2.6
22
- */
23
- function security()
24
- {
25
- $tabs = [
26
- 'logging',
27
- 'syslog',
28
- 'block',
29
- 'remote-ips'
30
- ];
31
- if ( version_compare( PHP_VERSION, '5.6.0', '>=' ) ) {
32
- $tabs[] = 'plugins';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  }
34
- $page = 'wp-fail2ban';
35
- if ( wf_fs()->is_premium() ) {
36
- $page .= '-premium';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  }
38
- render_tabs( $tabs, 'logging', $page );
39
- }
40
 
41
- /**
42
- * Render Settings.
43
- *
44
- * @since 4.2.6
45
- */
46
- function settings()
47
- {
48
- $tabs = [];
49
-
50
- if ( !function_exists( '\\add_security_page' ) ) {
51
  $tabs = [
52
  'logging',
53
  'syslog',
54
  'block',
55
- 'remote-ips'
 
56
  ];
57
- if ( version_compare( PHP_VERSION, '5.6.0', '>=' ) ) {
58
- $tabs[] = 'plugins';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  }
 
 
 
60
  }
61
-
62
- $default = 'logging';
63
- render_tabs( $tabs, $default, 'wpf2b-settings' );
64
- }
65
 
66
- /**
67
- * Render Tabs.
68
- *
69
- * @since 4.2.6
70
- *
71
- * @param array $tabs List of slugs of tabs to render
72
- * @param string $default Default tab slug
73
- * @param string $menu Menu slug
74
- */
75
- function render_tabs( array $tabs, $default, $menu )
76
- {
77
- ?>
78
- <div class="wrap">
79
- <?php
80
- echo apply_filters( __METHOD__ . '.title', "<h1>WP fail2ban</h1>" ) ;
81
- ?>
82
- <hr class="wp-header-end">
83
-
84
- <h2 class="nav-tab-wrapper wp-clearfix">
85
- <?php
86
- $active_tab = Tab::getActiveTab( $default );
87
- foreach ( $tabs as $slug ) {
88
- $class = 'nav-tab';
89
- if ( $active_tab->getSlug() == $slug ) {
90
- $class .= ' nav-tab-active';
 
 
 
 
91
  }
92
- $params = apply_filters( __METHOD__ . '.params', [
93
- 'page' => $menu,
94
- 'tab' => $slug,
95
- ] );
96
- printf(
97
- '<a class="%s" href="?%s">%s</a>',
98
- $class,
99
- http_build_query( $params ),
100
- Tab::getTabName( $slug )
 
 
101
  );
102
- }
103
- ?>
104
- </h2>
105
-
106
- <form action="options.php?tab=<?php
107
- echo $active_tab->getSlug() ;
108
- ?>" method="post">
109
- <?php
110
- settings_fields( 'wp-fail2ban' );
111
- $active_tab->render();
112
- echo '<hr><p>' . __( '<strong>Note:</strong> The Free version of <em>WP fail2ban</em> is configured by defining constants in <tt>wp-config.php</tt>; these tabs display those values.' ) . '<br>' . __( 'Upgrade to the Premium version to enable this interface.' ) . '</p>' ;
113
- ?>
114
- </form>
115
- </div>
116
- <?php
117
- }
118
 
119
- /**
120
- * Proxy for api.wp-fail2ban.com
121
- *
122
- * @since 4.2.6
123
- */
124
- function remote_tools()
125
- {
126
- global $current_user ;
127
- ?>
128
- <div class="wrap">
129
- <h1>Remote Tools (&beta;)</h1>
130
- <hr class="wp-header-end">
131
- <?php
132
-
133
- if ( function_exists( '\\org\\lecklider\\charles\\wordpress\\wp_fail2ban\\addons\\remote_tools\\tab' ) ) {
134
- \org\lecklider\charles\wordpress\wp_fail2ban\addons\remote_tools\tab();
135
- } else {
136
  ?>
137
- <h2 class="nav-tab-wrapper wp-clearfix">
138
- <a class="nav-tab nav-tab-active" href="#">Overview</a>
139
- </h2>
140
- <div class="card">
141
- <h2>Remote Tools Add-on</h2>
142
- <p>This add-on provides features that make life with WP fail2ban easier, all from a remote server. This gives access to valuable but infrequently used tools without bloating the core plugin.</p>
143
- <p>The first of these is a <strong>Custom Filter Tool</strong> (CFT).</p>
144
- <blockquote>
145
- <p>The filter files included are intended only as a starting point for those who want <em>WPf2b</em> to work “out of the box”.</p>
146
- <p>There is no &ldquo;one size fits all&rdquo; configuration possible for <em>fail2ban</em> - what may be a soft failure for one site should be treated as a hard failure for another, and vice versa.</p>
147
- </blockquote>
148
- <p>You could simply edit the filter files included, but it&lsquo;s surprisingly easy to make a mistake; I learned this the hard way with earlier versions of <em>WPf2b</em>.... The CFT removes most of the opportunities for human error - always a good thing!</p>
149
- <hr>
150
- <p>The Remote Tools Add-on is available from the <a href="<?php
151
- echo admin_url( 'admin.php?page=wp-fail2ban-addons' ) ;
152
- ?>">Add-Ons menu</a>.</p>
153
  </div>
154
- <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
155
  }
156
-
157
- ?>
158
- </div>
159
- <?php
160
  }
 
1
  <?php
 
2
  /**
3
  * Config
4
  *
5
  * @package wp-fail2ban
6
+ * @since 4.0.0
7
  */
8
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
+ if (defined('ABSPATH')) {
11
+ require_once 'lib/tab.php';
12
+ require_once 'config/block.php';
13
+ require_once 'config/logging.php';
14
+ require_once 'config/plugins.php';
15
+ require_once 'config/remote-ips.php';
16
+ require_once 'config/syslog.php';
17
+
18
+ if (false === (@include_once WP_FAIL2BAN_DIR.'/premium/admin/config.php')) {
19
+ /**
20
+ * Init
21
+ *
22
+ */
23
+ function init_tabs()
24
+ {
25
+ new TabBlock();
26
+ new TabLogging();
27
+ new TabPlugins();
28
+ new TabRemoteIPs();
29
+ new TabSyslog();
30
+ }
31
+ add_action('init', __NAMESPACE__.'\init_tabs', 999);
32
+ } // @include
33
+
34
+ /**
35
+ * Display settings messages.
36
+ *
37
+ * @since 4.3.0
38
+ */
39
+ function admin_notices()
40
+ {
41
+ $screen = get_current_screen();
42
+ switch ($screen->id) {
43
+ case 'security_page_wp-fail2ban-premium':
44
+ case 'wp-fail2ban_page_wpf2b-settings':
45
+ settings_errors();
46
+ break;
47
+ }
48
  }
49
+ add_action('admin_notices', __NAMESPACE__.'\admin_notices');
50
+
51
+ /**
52
+ * Get network settings messages.
53
+ *
54
+ * @since 4.3.0
55
+ */
56
+ function network_admin_notices()
57
+ {
58
+ $screen = get_current_screen();
59
+ switch ($screen->id) {
60
+ case 'security_page_wp-fail2ban-premium-network':
61
+ case 'wp-fail2ban_page_wpf2b-settings-network':
62
+ if ($transients = get_site_transient('settings_errors')) {
63
+ global $wp_settings_errors;
64
+
65
+ $wp_settings_errors = array_merge((array)$wp_settings_errors, $transients);
66
+ delete_site_transient('settings_errors');
67
+ }
68
+ settings_errors();
69
+ break;
70
+ }
71
  }
72
+ add_action('network_admin_notices', __NAMESPACE__.'\network_admin_notices');
 
73
 
74
+ /**
75
+ * Render Security settings.
76
+ *
77
+ * @since 4.3.0
78
+ */
79
+ function security()
80
+ {
 
 
 
81
  $tabs = [
82
  'logging',
83
  'syslog',
84
  'block',
85
+ 'remote-ips',
86
+ 'plugins'
87
  ];
88
+ $tabs = apply_filters(__METHOD__.'.tabs', $tabs);
89
+ $page = apply_filters(__METHOD__.'.page', plugin_basename(WP_FAIL2BAN_DIR));
90
+
91
+ render_tabs($tabs, $page);
92
+ }
93
+
94
+ /**
95
+ * Render Settings.
96
+ *
97
+ * @since 4.0.0
98
+ */
99
+ function settings()
100
+ {
101
+ $tabs = [];
102
+
103
+ if (!function_exists('\add_security_page')) {
104
+ $tabs = [
105
+ 'logging',
106
+ 'syslog',
107
+ 'block',
108
+ 'remote-ips'
109
+ ];
110
+ if (version_compare(PHP_VERSION, '5.6.0', '>=')) {
111
+ $tabs[] = 'plugins';
112
+ }
113
  }
114
+ $tabs = apply_filters(__METHOD__.'.tabs', $tabs);
115
+
116
+ render_tabs($tabs, 'wpf2b-settings');
117
  }
 
 
 
 
118
 
119
+ /**
120
+ * Render Tabs.
121
+ *
122
+ * @since 4.3.0
123
+ *
124
+ * @param array $tabs List of slugs of tabs to render
125
+ * @param string $menu Menu slug
126
+ */
127
+ function render_tabs(array $tabs, $menu)
128
+ {
129
+ $active_tab = TabBase::getActiveTab();
130
+
131
+ ?>
132
+ <div class="wrap">
133
+ <?=apply_filters(__METHOD__.'.title', sprintf('<h1>%s</h1>', __('Settings', 'wp-fail2ban')))?>
134
+ <hr class="wp-header-end">
135
+
136
+ <h2 class="nav-tab-wrapper wp-clearfix">
137
+ <?php
138
+ foreach ($tabs as $slug) {
139
+ $class = 'nav-tab';
140
+ if ($active_tab->getSlug() == $slug) {
141
+ $class .= ' nav-tab-active';
142
+ }
143
+ $params = apply_filters(__METHOD__.'.params', [
144
+ 'page' => $menu,
145
+ 'tab' => $slug
146
+ ]);
147
+ printf('<a class="%s" href="?%s">%s</a>', $class, http_build_query($params), TabBase::getTabName($slug));
148
  }
149
+ ?>
150
+ </h2>
151
+
152
+ <?php
153
+ // Because the settings API was never finished we need an ugly hack
154
+ $action = sprintf(
155
+ '%s?tab=%s',
156
+ admin_url(is_network_admin()
157
+ ? 'admin-post.php'
158
+ : 'options.php'),
159
+ $active_tab->getSlug()
160
  );
161
+ ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
162
 
163
+ <form action="<?=$action?>" method="post">
164
+ <?php
165
+ settings_fields('wp-fail2ban');
166
+ $active_tab->render();
 
 
 
 
 
 
 
 
 
 
 
 
 
167
  ?>
168
+ </form>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
169
  </div>
170
+ <?php
171
+ }
172
+
173
+ /**
174
+ * Helper: filtered defined(...)
175
+ *
176
+ * @since 4.3.0
177
+ *
178
+ * @param string $define
179
+ * @return mixed
180
+ */
181
+ function have_defined($define)
182
+ {
183
+ return apply_filters(__NAMESPACE__.'\have_defined', defined($define), $define);
184
  }
 
 
 
 
185
  }
186
+
admin/config/block.php CHANGED
@@ -1,120 +1,144 @@
1
  <?php
2
-
3
  /**
4
  * Settings - Block
5
  *
6
  * @package wp-fail2ban
7
- * @since 4.0.0
8
  */
9
- namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- /**
15
- * Tab: Block
16
- *
17
- * @since 4.0.0
18
- */
19
- class TabBlock extends Tab
20
- {
21
- /**
22
- * {@inheritDoc}
23
- *
24
- * @since 4.0.0
25
- */
26
- public function __construct()
27
- {
28
- add_action( 'admin_init', [ $this, 'admin_init' ] );
29
- parent::__construct( 'block', 'Users' );
30
- }
31
-
32
- /**
33
- * {@inheritDoc}
34
- *
35
- * @since 4.0.0
36
- */
37
- public function admin_init()
38
- {
39
- // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing
40
- add_settings_section(
41
- 'wp-fail2ban-block',
42
- __( 'Block' ),
43
- [ $this, 'section' ],
44
- 'wp-fail2ban-block'
45
- );
46
- add_settings_field(
47
- 'block-user-enumeration',
48
- parent::doc_link( 'WP_FAIL2BAN_BLOCK_USER_ENUMERATION', __( 'User Enumeration' ) ),
49
- [ $this, 'userEnumeration' ],
50
- 'wp-fail2ban-block',
51
- 'wp-fail2ban-block'
52
- );
53
- add_settings_field(
54
- 'block-users',
55
- parent::doc_link( 'WP_FAIL2BAN_BLOCKED_USERS', __( 'Usernames' ) ),
56
- [ $this, 'usernames' ],
57
- 'wp-fail2ban-block',
58
- 'wp-fail2ban-block'
59
- );
60
- // phpcs:enable
61
- }
62
-
63
- /**
64
- * {@inheritDoc}
65
- *
66
- * @since 4.0.0
67
- *
68
- * @param array $settings
69
- * @param array $input
70
- */
71
- public function sanitize( array $settings, array $input = null )
72
- {
73
- return $settings;
74
- }
75
-
76
- /**
77
- * {@inheritDoc}
78
- *
79
- * @since 4.0.0
80
- */
81
- public function section()
82
- {
83
- echo '' ;
84
- }
85
-
86
  /**
87
- * User Enumeration
88
  *
89
  * @since 4.0.0
90
  */
91
- public function userEnumeration()
92
  {
93
- printf( '<input type="checkbox" disabled="disabled" %s>', checked( WP_FAIL2BAN_BLOCK_USER_ENUMERATION, true, false ) );
94
- }
95
-
96
- /**
97
- * Blocked usernames
98
- *
99
- * @since 4.0.0
100
- */
101
- public function usernames()
102
- {
103
-
104
- if ( defined( 'WP_FAIL2BAN_BLOCKED_USERS' ) ) {
105
-
106
- if ( is_array( WP_FAIL2BAN_BLOCKED_USERS ) ) {
107
- $value = join( ', ', WP_FAIL2BAN_BLOCKED_USERS );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
  } else {
109
- $value = WP_FAIL2BAN_BLOCKED_USERS;
110
  }
111
-
112
- } else {
113
- $value = '';
 
114
  }
115
-
116
- printf( '<input class="regular-text" type="text" disabled="disabled" value="%s">', esc_attr( $value ) );
117
- }
118
 
 
 
 
 
 
 
 
 
 
 
119
  }
120
- new TabBlock();
1
  <?php
 
2
  /**
3
  * Settings - Block
4
  *
5
  * @package wp-fail2ban
6
+ * @since 4.0.0
7
  */
8
+ namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
+ if (defined('ABSPATH')) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  /**
12
+ * Tab: Block
13
  *
14
  * @since 4.0.0
15
  */
16
+ class TabBlock extends TabBase
17
  {
18
+ /**
19
+ * {@inheritDoc}
20
+ *
21
+ * @since 4.0.0
22
+ */
23
+ public function __construct()
24
+ {
25
+ // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing
26
+ $this->__['users'] = __('Users', 'wp-fail2ban');
27
+ $this->__['user-enumeration'] = __('Block User Enumeration', 'wp-fail2ban');
28
+ $this->__['blacklist'] = __('Blacklisted Usernames', 'wp-fail2ban');
29
+ $this->__['username-login'] = __('Block username logins', 'wp-fail2ban');
30
+ // phpcs:enable
31
+
32
+ parent::__construct('block', __('Block', 'wp-fail2ban'));
33
+ }
34
+
35
+ /**
36
+ * {@inheritDoc}
37
+ *
38
+ * @since 4.0.0
39
+ */
40
+ public function admin_init()
41
+ {
42
+ // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing
43
+ add_settings_section('wp-fail2ban-users', $this->__['users'], [$this, 'section'], 'wp-fail2ban-block');
44
+ add_settings_field('user-enumeration', $this->__['user-enumeration'], [$this, 'userEnumeration'], 'wp-fail2ban-block', 'wp-fail2ban-users');
45
+ add_settings_field('blacklist', $this->__['blacklist'], [$this, 'users'], 'wp-fail2ban-block', 'wp-fail2ban-users');
46
+ add_settings_field('username-login', $this->__['username-login'], [$this, 'usernames'], 'wp-fail2ban-block', 'wp-fail2ban-users');
47
+ // phpcs:enable
48
+ }
49
+
50
+ /**
51
+ * {*inheritDoc}
52
+ *
53
+ * @since 4.3.0
54
+ */
55
+ public function current_screen()
56
+ {
57
+ $fmt = <<<___FMT___
58
+ <dl><style>dt{font-weight:bold;}</style>
59
+ <dt>%s</dt>
60
+ <dd><p>%s</p><p>%s</p><p>%s</p>%s</dd>
61
+ <dt>%s</dt>
62
+ <dd><p>%s</p><p>%s</p>%s</dd>
63
+ <dt>%s</dt>
64
+ <dd><p>%s</p><p>%s</p>%s</dd>
65
+ </dl>
66
+ ___FMT___;
67
+ get_current_screen()->add_help_tab([
68
+ 'id' => 'users',
69
+ 'title' => $this->__['users'],
70
+ 'content' => sprintf(
71
+ $fmt,
72
+ $this->__['user-enumeration'],
73
+ __('Automated brute-force attacks ("bots") typically start by getting a list of valid usernames ("user enumeration").', 'wp-fail2ban'),
74
+ __('Blocking user enumeration can force attackers to guess usernames, making these attacks much less likely to succeed.', 'wp-fail2ban'),
75
+ __('<strong>N.B.</strong> Some Themes "leak" usernames (for example, via Author profile pages); see <strong>Block username logins</strong> for an alternative.', 'wp-fail2ban'),
76
+ $this->see_also(['WP_FAIL2BAN_BLOCK_USER_ENUMERATION']),
77
+ $this->__['blacklist'],
78
+ __('Automated brute-force attacks ("bots") will often use well-known usernames, e.g. <tt>admin</tt>.', 'wp-fail2ban'),
79
+ __('Blacklisted usernames are blocked early in the login process, reducing server load.', 'wp-fail2ban'),
80
+ $this->see_also(['WP_FAIL2BAN_BLOCKED_USERS']),
81
+ $this->__['username-login'],
82
+ __('It is sometimes not possible to block user enumeration (for example, if your theme provides Author profiles). An alternative is to require users to login with their email address.', 'wp-fail2ban'),
83
+ __('<strong>N.B.</strong> This also applies to Blacklisted Usernames; you must list <em>email addresses</em>, not usernames.', 'wp-fail2ban'),
84
+ $this->see_also(['WP_FAIL2BAN_BLOCK_USERNAME_LOGIN'])
85
+ )
86
+ ]);
87
+
88
+ parent::current_screen();
89
+ }
90
+
91
+ /**
92
+ * {@inheritDoc}
93
+ *
94
+ * @since 4.0.0
95
+ */
96
+ public function section()
97
+ {
98
+ echo '';
99
+ }
100
+
101
+ /**
102
+ * User Enumeration
103
+ *
104
+ * @since 4.0.0
105
+ */
106
+ public function userEnumeration()
107
+ {
108
+ $this->checkbox('WP_FAIL2BAN_BLOCK_USER_ENUMERATION');
109
+ }
110
+
111
+ /**
112
+ * Blocked usernames
113
+ *
114
+ * @since 4.0.0
115
+ */
116
+ public function users()
117
+ {
118
+ if (defined('WP_FAIL2BAN_BLOCKED_USERS')) {
119
+ if (is_array(WP_FAIL2BAN_BLOCKED_USERS)) {
120
+ $value = join(', ', WP_FAIL2BAN_BLOCKED_USERS);
121
+ } else {
122
+ $value = WP_FAIL2BAN_BLOCKED_USERS;
123
+ }
124
  } else {
125
+ $value = '';
126
  }
127
+ printf(
128
+ '<input class="regular-text" type="text" disabled="disabled" value="%s">',
129
+ esc_attr($value)
130
+ );
131
  }
 
 
 
132
 
133
+ /**
134
+ * Block username logins
135
+ *
136
+ * @since 4.3.0
137
+ */
138
+ public function usernames()
139
+ {
140
+ $this->checkbox('WP_FAIL2BAN_BLOCK_USERNAME_LOGIN');
141
+ }
142
+ }
143
  }
144
+
admin/config/logging.php CHANGED
@@ -1,189 +1,182 @@
1
  <?php
2
-
3
  /**
4
  * Settings - Logging
5
  *
6
  * @package wp-fail2ban
7
- * @since 4.0.0
8
  */
9
- namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- /**
15
- * Tab: Logging
16
- *
17
- * @since 4.0.0
18
- */
19
- class TabLogging extends Tab
20
- {
21
- /**
22
- * {@inheritDoc}
23
- */
24
- public function __construct()
25
- {
26
- add_action( 'admin_init', [ $this, 'admin_init' ], 100 );
27
- parent::__construct( 'logging', 'Logging' );
28
- }
29
-
30
- /**
31
- * {@inheritDoc}
32
- *
33
- * @since 4.0.0
34
- */
35
- public function admin_init()
36
- {
37
- // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing
38
- add_settings_section(
39
- 'wp-fail2ban-logging',
40
- __( 'What & Where' ),
41
- [ $this, 'sectionWhatWhere' ],
42
- 'wp-fail2ban-logging'
43
- );
44
- add_settings_field(
45
- 'logging-log-authentication',
46
- parent::doc_link( 'WP_FAIL2BAN_AUTH_LOG', __( 'Authentication' ) ),
47
- [ $this, 'authentication' ],
48
- 'wp-fail2ban-logging',
49
- 'wp-fail2ban-logging'
50
- );
51
- add_settings_field(
52
- 'logging-log-comments',
53
- parent::doc_link( 'WP_FAIL2BAN_LOG_COMMENTS', __( 'Comments' ) ),
54
- [ $this, 'comments' ],
55
- 'wp-fail2ban-logging',
56
- 'wp-fail2ban-logging'
57
- );
58
- add_settings_field(
59
- 'logging-log-spam',
60
- parent::doc_link( 'WP_FAIL2BAN_LOG_SPAM', __( 'Spam' ) ),
61
- [ $this, 'spam' ],
62
- 'wp-fail2ban-logging',
63
- 'wp-fail2ban-logging'
64
- );
65
- add_settings_field(
66
- 'logging-log-password-request',
67
- parent::doc_link( 'WP_FAIL2BAN_LOG_PASSWORD_REQUEST', __( 'Password Requests' ) ),
68
- [ $this, 'passwordRequest' ],
69
- 'wp-fail2ban-logging',
70
- 'wp-fail2ban-logging'
71
- );
72
- add_settings_field(
73
- 'logging-log-pingbacks',
74
- parent::doc_link( 'WP_FAIL2BAN_LOG_PINGBACKS', __( 'Pingbacks' ) ),
75
- [ $this, 'pingbacks' ],
76
- 'wp-fail2ban-logging',
77
- 'wp-fail2ban-logging'
78
- );
79
- // phpcs:enable
80
- }
81
-
82
- /**
83
- * {@inheritDoc}
84
- *
85
- * @since 4.0.0
86
- */
87
- public function render()
88
- {
89
- parent::render();
90
- }
91
-
92
- /**
93
- * {@inheritDoc}
94
- *
95
- * @since 4.0.0
96
- *
97
- * @param array $settings {@inheritDoc}
98
- * @param array $input {@inheritDoc}
99
- *
100
- * @return array {@inheritDoc}
101
- */
102
- public function sanitize( array $settings, array $input = null )
103
- {
104
- return $settings;
105
- }
106
-
107
- /**
108
- * Section summary.
109
- *
110
- * @since 4.0.0
111
- */
112
- public function sectionWhatWhere()
113
- {
114
- echo '' ;
115
- }
116
-
117
- /**
118
- * Authentication.
119
- *
120
- * @since 4.0.0
121
- */
122
- public function authentication()
123
- {
124
- printf( '<label>%s: %s</label>', __( 'Use facility' ), $this->getLogFacilities( 'WP_FAIL2BAN_AUTH_LOG', true ) );
125
- }
126
-
127
  /**
128
- * Comments.
129
  *
130
  * @since 4.0.0
131
  */
132
- public function comments()
133
  {
134
- add_filter(
135
- 'wp_fail2ban_log_WP_FAIL2BAN_LOG_COMMENTS',
136
- [ $this, 'commentsExtra' ],
137
- 10,
138
- 3
139
- );
140
- $this->log(
141
- 'WP_FAIL2BAN_LOG_COMMENTS',
142
- 'WP_FAIL2BAN_COMMENT_LOG',
143
- '',
144
- [ 'comments-extra', 'logging-comments-extra-facility' ]
145
- );
146
- }
147
-
148
- /**
149
- * Comments extra helper - checked.
150
- *
151
- * @since 4.0.0
152
- *
153
- * @param int $value Value to check
154
- */
155
- protected function commentExtraChecked( $value )
156
- {
157
- if ( !defined( 'WP_FAIL2BAN_LOG_COMMENTS_EXTRA' ) ) {
158
- return '';
159
  }
160
- return checked( $value & WP_FAIL2BAN_LOG_COMMENTS_EXTRA, $value, false );
161
- }
162
-
163
- /**
164
- * Comments extra helper - disabled.
165
- *
166
- * @since 4.0.0
167
- */
168
- protected function commentExtraDisabled()
169
- {
170
- return 'disabled="disabled';
171
- }
172
-
173
- /**
174
- * Comments extra.
175
- *
176
- * @since 4.0.0
177
- *
178
- * @param string $html HTML prefixed to output
179
- * @param string $define_name Not used
180
- * @param string $define_log Not used
181
- *
182
- * @return string
183
- */
184
- public function commentsExtra( $html, $define_name, $define_log )
185
- {
186
- $fmt = <<<___HTML___
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
187
  <table>
188
  <tr>
189
  <th>%s</th>
@@ -203,53 +196,63 @@ class TabLogging extends Tab
203
  </tr>
204
  </table>
205
  ___HTML___;
206
- return $html . sprintf(
207
- $fmt,
208
- parent::doc_link( 'WP_FAIL2BAN_LOG_COMMENTS_EXTRA', __( 'Also log:' ) ),
209
- $this->commentExtraChecked( WPF2B_EVENT_COMMENT_NOT_FOUND ),
210
- __( 'Post not found' ),
211
- $this->commentExtraChecked( WPF2B_EVENT_COMMENT_CLOSED ),
212
- __( 'Comments closed' ),
213
- $this->commentExtraChecked( WPF2B_EVENT_COMMENT_TRASH ),
214
- __( 'Trash post' ),
215
- $this->commentExtraChecked( WPF2B_EVENT_COMMENT_DRAFT ),
216
- __( 'Draft post' ),
217
- $this->commentExtraChecked( WPF2B_EVENT_COMMENT_PASSWORD ),
218
- __( 'Password-protected post' ),
219
- parent::doc_link( 'WP_FAIL2BAN_COMMENT_EXTRA_LOG', __( 'Use facility:' ) ),
220
- $this->getLogFacilities( 'WP_FAIL2BAN_COMMENT_EXTRA_LOG', false )
221
- );
222
- }
223
-
224
- /**
225
- * Password request
226
- *
227
- * @since 4.0.0
228
- */
229
- public function passwordRequest()
230
- {
231
- $this->log( 'WP_FAIL2BAN_LOG_PASSWORD_REQUEST', 'WP_FAIL2BAN_PASSWORD_REQUEST_LOG' );
232
- }
233
-
234
- /**
235
- * Pingbacks
236
- *
237
- * @since 4.0.0
238
- */
239
- public function pingbacks()
240
- {
241
- $this->log( 'WP_FAIL2BAN_LOG_PINGBACKS', 'WP_FAIL2BAN_PINGBACK_LOG' );
242
- }
243
-
244
- /**
245
- * Spam
246
- *
247
- * @since 4.0.0
248
- */
249
- public function spam()
250
- {
251
- $this->log( 'WP_FAIL2BAN_LOG_SPAM', 'WP_FAIL2BAN_SPAM_LOG' );
252
- }
253
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
254
  }
255
- new TabLogging();
1
  <?php
 
2
  /**
3
  * Settings - Logging
4
  *
5
  * @package wp-fail2ban
6
+ * @since 4.0.0
7
  */
8
+ namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
+ if (defined('ABSPATH')) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  /**
12
+ * Tab: Logging
13
  *
14
  * @since 4.0.0
15
  */
16
+ class TabLogging extends TabBase
17
  {
18
+ /**
19
+ * {@inheritDoc}
20
+ */
21
+ public function __construct()
22
+ {
23
+ // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing
24
+ $this->__['what-where'] = __('What & Where', 'wp-fail2ban');
25
+ $this->__['authentication'] = __('Authentication', 'wp-fail2ban');
26
+ $this->__['comments'] = __('Comments', 'wp-fail2ban');
27
+ $this->__['spam'] = __('Spam', 'wp-fail2ban');
28
+ $this->__['password-request'] = __('Password Requests', 'wp-fail2ban');
29
+ $this->__['pingbacks'] = __('Pingbacks', 'wp-fail2ban');
30
+ // phpcs:enable
31
+
32
+ parent::__construct('logging', __('Logging', 'wp-fail2ban'));
 
 
 
 
 
 
 
 
 
 
33
  }
34
+
35
+ /**
36
+ * {@inheritDoc}
37
+ *
38
+ * @since 4.0.0
39
+ */
40
+ public function admin_init()
41
+ {
42
+ // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing
43
+ add_settings_section('wp-fail2ban-logging', $this->__['what-where'], [$this, 'sectionWhatWhere'],'wp-fail2ban-logging');
44
+ add_settings_field('logging-log-authentication', $this->__['authentication'], [$this, 'authentication'], 'wp-fail2ban-logging', 'wp-fail2ban-logging');
45
+ add_settings_field('logging-log-comments', $this->__['comments'], [$this, 'comments'], 'wp-fail2ban-logging', 'wp-fail2ban-logging');
46
+ add_settings_field('logging-log-spam', $this->__['spam'], [$this, 'spam'], 'wp-fail2ban-logging', 'wp-fail2ban-logging');
47
+ add_settings_field('logging-log-password-request', $this->__['password-request'], [$this, 'passwordRequest'], 'wp-fail2ban-logging', 'wp-fail2ban-logging');
48
+ add_settings_field('logging-log-pingbacks', $this->__['pingbacks'], [$this, 'pingbacks'], 'wp-fail2ban-logging', 'wp-fail2ban-logging');
49
+ // phpcs:enable
50
+ }
51
+
52
+ /**
53
+ * {@inheritDoc}
54
+ *
55
+ * @since 4.3.0
56
+ */
57
+ public function current_screen()
58
+ {
59
+ $fmt = <<<___FMT___
60
+ <dl><style>dt{font-weight:bold;}</style>
61
+ <dt>%s</dt><dd>%s</dd>
62
+ <dt>%s</dt><dd>%s</dd>
63
+ <dt>%s</dt><dd>%s</dd>
64
+ <dt>%s</dt><dd>%s</dd>
65
+ <dt>%s</dt><dd>%s</dd>
66
+ </dl>
67
+ ___FMT___;
68
+ get_current_screen()->add_help_tab([
69
+ 'id' => 'what-where',
70
+ 'title' => $this->__['what-where'],
71
+ 'content' => sprintf(
72
+ $fmt,
73
+ $this->__['authentication'],
74
+ $this->see_also([
75
+ 'WP_FAIL2BAN_AUTH_LOG'
76
+ ]),
77
+ $this->__['comments'],
78
+ $this->see_also([
79
+ 'WP_FAIL2BAN_LOG_COMMENTS',
80
+ 'WP_FAIL2BAN_LOG_COMMENTS_EXTRA',
81
+ 'WP_FAIL2BAN_COMMENT_EXTRA_LOG'
82
+ ]),
83
+ $this->__['spam'],
84
+ $this->see_also([
85
+ 'WP_FAIL2BAN_LOG_SPAM',
86
+ 'WP_FAIL2BAN_SPAM_LOG'
87
+ ]),
88
+ $this->__['password-request'],
89
+ $this->see_also([
90
+ 'WP_FAIL2BAN_LOG_PASSWORD_REQUEST',
91
+ 'WP_FAIL2BAN_PASSWORD_REQUEST_LOG'
92
+ ]),
93
+ $this->__['pingbacks'],
94
+ $this->see_also([
95
+ 'WP_FAIL2BAN_LOG_PINGBACKS',
96
+ 'WP_FAIL2BAN_PINGBACK_LOG'
97
+ ])
98
+ )
99
+ ]);
100
+ parent::current_screen();
101
+ }
102
+
103
+ /**
104
+ * Section summary.
105
+ *
106
+ * @since 4.0.0
107
+ */
108
+ public function sectionWhatWhere()
109
+ {
110
+ // noop
111
+ }
112
+
113
+ /**
114
+ * Authentication.
115
+ *
116
+ * @since 4.0.0
117
+ */
118
+ public function authentication()
119
+ {
120
+ printf(
121
+ '<label>%s: %s</label><p class="description">%s</p>',
122
+ __('Use facility', 'wp-fail2ban'),
123
+ $this->getLogFacilities('WP_FAIL2BAN_AUTH_LOG', true),
124
+ Config::desc('WP_FAIL2BAN_AUTH_LOG')
125
+ );
126
+ }
127
+
128
+ /**
129
+ * Comments.
130
+ *
131
+ * @since 4.0.0
132
+ */
133
+ public function comments()
134
+ {
135
+ add_filter('wp_fail2ban_log_WP_FAIL2BAN_LOG_COMMENTS', [$this, 'commentsExtra'], 10, 3);
136
+
137
+ $this->log(
138
+ 'WP_FAIL2BAN_LOG_COMMENTS',
139
+ 'WP_FAIL2BAN_COMMENT_LOG',
140
+ ['comments-extra', 'logging-comments-extra-facility']
141
+ );
142
+ }
143
+
144
+ /**
145
+ * Comments extra helper - checked.
146
+ *
147
+ * @since 4.0.0
148
+ *
149
+ * @param int $value Value to check
150
+ */
151
+ protected function commentExtraChecked($value)
152
+ {
153
+ return checked($value == ($value & Config::get('WP_FAIL2BAN_LOG_COMMENTS_EXTRA')), true, false);
154
+ }
155
+
156
+ /**
157
+ * Comments extra helper - disabled.
158
+ *
159
+ * @since 4.0.0
160
+ */
161
+ protected function commentExtraDisabled()
162
+ {
163
+ return 'disabled="disabled';
164
+ }
165
+
166
+ /**
167
+ * Comments extra.
168
+ *
169
+ * @since 4.0.0
170
+ *
171
+ * @param string $html HTML prefixed to output
172
+ * @param string $define_name Not used
173
+ * @param string $define_log Not used
174
+ *
175
+ * @return string
176
+ */
177
+ public function commentsExtra($html, $define_name, $define_log)
178
+ {
179
+ $fmt = <<< ___HTML___
180
  <table>
181
  <tr>
182
  <th>%s</th>
196
  </tr>
197
  </table>
198
  ___HTML___;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
199
 
200
+ return $html.sprintf(
201
+ $fmt,
202
+ __('Also log:', 'wp-fail2ban'),
203
+ $this->commentExtraChecked(WPF2B_EVENT_COMMENT_NOT_FOUND),
204
+ __('Post not found', 'wp-fail2ban'),
205
+ $this->commentExtraChecked(WPF2B_EVENT_COMMENT_CLOSED),
206
+ __('Comments closed', 'wp-fail2ban'),
207
+ $this->commentExtraChecked(WPF2B_EVENT_COMMENT_TRASH),
208
+ __('Trash post', 'wp-fail2ban'),
209
+ $this->commentExtraChecked(WPF2B_EVENT_COMMENT_DRAFT),
210
+ __('Draft post', 'wp-fail2ban'),
211
+ $this->commentExtraChecked(WPF2B_EVENT_COMMENT_PASSWORD),
212
+ __('Password-protected post', 'wp-fail2ban'),
213
+ __('Use facility:', 'wp-fail2ban'),
214
+ $this->getLogFacilities('WP_FAIL2BAN_COMMENT_EXTRA_LOG', false)
215
+ );
216
+ }
217
+
218
+ /**
219
+ * Password request
220
+ *
221
+ * @since 4.0.0
222
+ */
223
+ public function passwordRequest()
224
+ {
225
+ $this->log(
226
+ 'WP_FAIL2BAN_LOG_PASSWORD_REQUEST',
227
+ 'WP_FAIL2BAN_PASSWORD_REQUEST_LOG'
228
+ );
229
+ }
230
+
231
+ /**
232
+ * Pingbacks
233
+ *
234
+ * @since 4.0.0
235
+ */
236
+ public function pingbacks()
237
+ {
238
+ $this->log(
239
+ 'WP_FAIL2BAN_LOG_PINGBACKS',
240
+ 'WP_FAIL2BAN_PINGBACK_LOG'
241
+ );
242
+ }
243
+
244
+ /**
245
+ * Spam
246
+ *
247
+ * @since 4.0.0
248
+ */
249
+ public function spam()
250
+ {
251
+ $this->log(
252
+ 'WP_FAIL2BAN_LOG_SPAM',
253
+ 'WP_FAIL2BAN_SPAM_LOG'
254
+ );
255
+ }
256
+ }
257
  }
258
+
admin/config/plugins.php CHANGED
@@ -1,185 +1,124 @@
1
  <?php
2
-
3
  /**
4
  * Settings - Plugins
5
  *
6
  * @package wp-fail2ban
7
- * @since 4.2.0
8
  */
9
- namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- /**
15
- * Tab: Plugins
16
- *
17
- * @since 4.2.0
18
- */
19
- class TabPlugins extends Tab
20
- {
21
- /**
22
- * {@inheritDoc}
23
- */
24
- public function __construct()
25
- {
26
- add_action( 'admin_init', [ $this, 'admin_init' ], 100 );
27
- parent::__construct( 'plugins', 'Plugins' );
28
- }
29
-
30
- /**
31
- * {@inheritDoc}
32
- *
33
- * @since 4.0.0
34
- */
35
- public function admin_init()
36
- {
37
- // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing
38
- add_settings_section(
39
- 'wp-fail2ban-plugins',
40
- __( 'Event Class Facilities' ),
41
- [ $this, 'sectionLoggingEventClasses' ],
42
- 'wp-fail2ban-plugins'
43
- );
44
- add_settings_field(
45
- 'plugins-log-auth',
46
- parent::doc_link( 'WP_FAIL2BAN_PLUGIN_LOG_AUTH', __( 'Authentication' ) ),
47
- [ $this, 'auth' ],
48
- 'wp-fail2ban-plugins',
49
- 'wp-fail2ban-plugins'
50
- );
51
- add_settings_field(
52
- 'plugins-log-comment',
53
- parent::doc_link( 'WP_FAIL2BAN_PLUGIN_LOG_COMMENT', __( 'Comment' ) ),
54
- [ $this, 'comment' ],
55
- 'wp-fail2ban-plugins',
56
- 'wp-fail2ban-plugins'
57
- );
58
- add_settings_field(
59
- 'plugins-log-password',
60
- parent::doc_link( 'WP_FAIL2BAN_PLUGIN_LOG_PASSWORD', __( 'Password' ) ),
61
- [ $this, 'password' ],
62
- 'wp-fail2ban-plugins',
63
- 'wp-fail2ban-plugins'
64
- );
65
- add_settings_field(
66
- 'plugins-log-rest',
67
- parent::doc_link( 'WP_FAIL2BAN_PLUGIN_LOG_REST', __( 'REST' ) ),
68
- [ $this, 'rest' ],
69
- 'wp-fail2ban-plugins',
70
- 'wp-fail2ban-plugins'
71
- );
72
- add_settings_field(
73
- 'plugins-log-spam',
74
- parent::doc_link( 'WP_FAIL2BAN_PLUGIN_LOG_SPAM', __( 'Spam' ) ),
75
- [ $this, 'spam' ],
76
- 'wp-fail2ban-plugins',
77
- 'wp-fail2ban-plugins'
78
- );
79
- add_settings_field(
80
- 'plugins-log-xmlrpc',
81
- parent::doc_link( 'WP_FAIL2BAN_PLUGIN_LOG_XMLRPC', __( 'XML-RPC' ) ),
82
- [ $this, 'xmlrpc' ],
83
- 'wp-fail2ban-plugins',
84
- 'wp-fail2ban-plugins'
85
- );
86
- // phpcs:enable
87
- }
88
-
89
- /**
90
- * {@inheritDoc}
91
- *
92
- * @since 4.2.0
93
- */
94
- public function render()
95
- {
96
- parent::render();
97
- }
98
-
99
- /**
100
- * {@inheritDoc}
101
- *
102
- * @since 4.2.0
103
- *
104
- * @param array $settings {@inheritDoc}
105
- * @param array $input {@inheritDoc}
106
- *
107
- * @return array {@inheritDoc}
108
- */
109
- public function sanitize( array $settings, array $input = null )
110
- {
111
- return $settings;
112
- }
113
-
114
  /**
115
- * Section summary.
116
  *
117
  * @since 4.2.0
118
  */
119
- public function sectionLoggingEventClasses()
120
  {
121
- echo __( 'Facilities to use for plugin-generated messages. The defaults follow the Core defaults.' ) ;
122
- }
123
-
124
- /**
125
- * Auth
126
- *
127
- * @since 4.2.0
128
- */
129
- public function auth()
130
- {
131
- $this->log( 'WP_FAIL2BAN_PLUGIN_LOG_AUTH', 'WP_FAIL2BAN_PLUGIN_AUTH_LOG' );
132
- }
133
-
134
- /**
135
- * Comment
136
- *
137
- * @since 4.2.0
138
- */
139
- public function comment()
140
- {
141
- $this->log( 'WP_FAIL2BAN_PLUGIN_LOG_COMMENT', 'WP_FAIL2BAN_PLUGIN_COMMENT_LOG' );
142
- }
143
-
144
- /**
145
- * Password
146
- *
147
- * @since 4.2.0
148
- */
149
- public function password()
150
- {
151
- $this->log( 'WP_FAIL2BAN_PLUGIN_LOG_PASSWORD', 'WP_FAIL2BAN_PLUGIN_PASSWORD_LOG' );
152
- }
153
-
154
- /**
155
- * REST
156
- *
157
- * @since 4.2.0
158
- */
159
- public function rest()
160
- {
161
- $this->log( 'WP_FAIL2BAN_PLUGIN_LOG_REST', 'WP_FAIL2BAN_PLUGIN_REST_LOG' );
162
- }
163
-
164
- /**
165
- * Spam
166
- *
167
- * @since 4.2.0
168
- */
169
- public function spam()
170
- {
171
- $this->log( 'WP_FAIL2BAN_PLUGIN_LOG_SPAM', 'WP_FAIL2BAN_PLUGIN_SPAM_LOG' );
172
- }
173
-
174
- /**
175
- * XML-RPC
176
- *
177
- * @since 4.2.0
178
- */
179
- public function xmlrpc()
180
- {
181
- $this->log( 'WP_FAIL2BAN_PLUGIN_LOG_XMLRPC', 'WP_FAIL2BAN_PLUGIN_XMLRPC_LOG' );
182
- }
183
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
184
  }
185
- new TabPlugins();
1
  <?php
 
2
  /**
3
  * Settings - Plugins
4
  *
5
  * @package wp-fail2ban
6
+ * @since 4.2.0
7
  */
8
+ namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
+ if (defined('ABSPATH')) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  /**
12
+ * Tab: Plugins
13
  *
14
  * @since 4.2.0
15
  */
16
+ class TabPlugins extends TabBase
17
  {
18
+ /**
19
+ * {@inheritDoc}
20
+ */
21
+ public function __construct()
22
+ {
23
+ parent::__construct('plugins', __('Plugins', 'wp-fail2ban'));
24
+ }
25
+
26
+ /**
27
+ * {@inheritDoc}
28
+ *
29
+ * @since 4.0.0
30
+ */
31
+ public function admin_init()
32
+ {
33
+ // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing
34
+ add_settings_section('wp-fail2ban-plugins', __('Event Class Facilities', 'wp-fail2ban'), [$this, 'sectionLoggingEventClasses'], 'wp-fail2ban-plugins');
35
+ add_settings_field('plugins-log-auth', __('Authentication', 'wp-fail2ban'), [$this, 'auth'], 'wp-fail2ban-plugins', 'wp-fail2ban-plugins');
36
+ add_settings_field('plugins-log-comment', __('Comment', 'wp-fail2ban'), [$this, 'comment'], 'wp-fail2ban-plugins', 'wp-fail2ban-plugins');
37
+ add_settings_field('plugins-log-password', __('Password', 'wp-fail2ban'), [$this, 'password'], 'wp-fail2ban-plugins', 'wp-fail2ban-plugins');
38
+ add_settings_field('plugins-log-rest', __('REST', 'wp-fail2ban'), [$this, 'rest'], 'wp-fail2ban-plugins', 'wp-fail2ban-plugins');
39
+ add_settings_field('plugins-log-spam', __('Spam', 'wp-fail2ban'), [$this, 'spam'], 'wp-fail2ban-plugins', 'wp-fail2ban-plugins');
40
+ add_settings_field('plugins-log-xmlrpc', __('XML-RPC', 'wp-fail2ban'), [$this, 'xmlrpc'], 'wp-fail2ban-plugins', 'wp-fail2ban-plugins');
41
+ // phpcs:enable
42
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
 
44
+ /**
45
+ * {@inheritDoc}
46
+ *
47
+ * @since 4.3.0
48
+ */
49
+ public function current_screen()
50
+ {
51
+ }
52
+
53
+ /**
54
+ * Section summary.
55
+ *
56
+ * @since 4.2.0
57
+ */
58
+ public function sectionLoggingEventClasses()
59
+ {
60
+ echo __('Facilities to use for plugin-generated messages. The defaults follow the Core defaults.', 'wp-fail2ban');
61
+ }
62
+
63
+ /**
64
+ * Auth
65
+ *
66
+ * @since 4.2.0
67
+ */
68
+ public function auth()
69
+ {
70
+ $this->log('WP_FAIL2BAN_PLUGIN_LOG_AUTH', 'WP_FAIL2BAN_PLUGIN_AUTH_LOG');
71
+ }
72
+
73
+ /**
74
+ * Comment
75
+ *
76
+ * @since 4.2.0
77
+ */
78
+ public function comment()
79
+ {
80
+ $this->log('WP_FAIL2BAN_PLUGIN_LOG_COMMENT', 'WP_FAIL2BAN_PLUGIN_COMMENT_LOG');
81
+ }
82
+
83
+ /**
84
+ * Password
85
+ *
86
+ * @since 4.2.0
87
+ */
88
+ public function password()
89
+ {
90
+ $this->log('WP_FAIL2BAN_PLUGIN_LOG_PASSWORD', 'WP_FAIL2BAN_PLUGIN_PASSWORD_LOG');
91
+ }
92
+
93
+ /**
94
+ * REST
95
+ *
96
+ * @since 4.2.0
97
+ */
98
+ public function rest()
99
+ {
100
+ $this->log('WP_FAIL2BAN_PLUGIN_LOG_REST', 'WP_FAIL2BAN_PLUGIN_REST_LOG');
101
+ }
102
+
103
+ /**
104
+ * Spam
105
+ *
106
+ * @since 4.2.0
107
+ */
108
+ public function spam()
109
+ {
110
+ $this->log('WP_FAIL2BAN_PLUGIN_LOG_SPAM', 'WP_FAIL2BAN_PLUGIN_SPAM_LOG');
111
+ }
112
+
113
+ /**
114
+ * XML-RPC
115
+ *
116
+ * @since 4.2.0
117
+ */
118
+ public function xmlrpc()
119
+ {
120
+ $this->log('WP_FAIL2BAN_PLUGIN_LOG_XMLRPC', 'WP_FAIL2BAN_PLUGIN_XMLRPC_LOG');
121
+ }
122
+ }
123
  }
124
+
admin/config/remote-ips.php CHANGED
@@ -1,100 +1,112 @@
1
  <?php
2
-
3
  /**
4
  * Settings - Remote IPs
5
  *
6
  * @package wp-fail2ban
7
- * @since 4.0.0
8
  */
9
- namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- /**
15
- * Tab: Remote IPs
16
- *
17
- * @since 4.0.0
18
- */
19
- class TabRemoteIPs extends Tab
20
- {
21
- /**
22
- * {@inheritDoc}
23
- *
24
- * @since 4.0.0
25
- */
26
- public function __construct()
27
- {
28
- add_action( 'admin_init', [ $this, 'admin_init' ] );
29
- parent::__construct( 'remote-ips', 'Remote IPs' );
30
- }
31
-
32
  /**
33
- * {@inheritDoc}
34
  *
35
  * @since 4.0.0
36
  */
37
- public function admin_init()
38
  {
39
- // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing
40
- add_settings_section(
41
- 'wp-fail2ban-proxies',
42
- __( 'Proxies' ),
43
- [ $this, 'section' ],
44
- 'wp-fail2ban-remote-ips'
45
- );
46
- add_settings_field(
47
- 'remote-ips-proxies',
48
- parent::doc_link( 'WP_FAIL2BAN_PROXIES', __( 'IP list' ) ),
49
- [ $this, 'proxies' ],
50
- 'wp-fail2ban-remote-ips',
51
- 'wp-fail2ban-proxies'
52
- );
53
- // phpcs:enable
54
- }
55
-
56
- /**
57
- * {@inheritDoc}
58
- *
59
- * @since 4.0.0
60
- *
61
- * @param array $settings
62
- * @param array $input
63
- */
64
- public function sanitize( array $settings, array $input = null )
65
- {
66
- return $settings;
67
- }
68
-
69
- /**
70
- * Section blurb.
71
- *
72
- * @since 4.0.0
73
- */
74
- public function section()
75
- {
76
- echo '' ;
77
- }
78
-
79
- /**
80
- * Proxies.
81
- *
82
- * @since 4.0.0
83
- */
84
- public function proxies()
85
- {
86
- $value = '';
87
- if ( defined( 'WP_FAIL2BAN_PROXIES' ) ) {
88
-
89
- if ( is_array( WP_FAIL2BAN_PROXIES ) ) {
90
- $value = join( "\n", WP_FAIL2BAN_PROXIES );
91
- } else {
92
- $value = join( "\n", array_map( 'trim', explode( ',', WP_FAIL2BAN_PROXIES ) ) );
93
- }
94
-
95
  }
96
- printf( '<fieldset><textarea class="code" cols="20" rows="10" disabled="disabled">%s</textarea></fieldset>', esc_html( $value ) );
97
- }
98
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  }
100
- new TabRemoteIPs();
1
  <?php
 
2
  /**
3
  * Settings - Remote IPs
4
  *
5
  * @package wp-fail2ban
6
+ * @since 4.0.0
7
  */
8
+ namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
+ if (defined('ABSPATH')) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  /**
12
+ * Tab: Remote IPs
13
  *
14
  * @since 4.0.0
15
  */
16
+ class TabRemoteIPs extends TabBase
17
  {
18
+ /**
19
+ * {@inheritDoc}
20
+ *
21
+ * @since 4.0.0
22
+ */
23
+ public function __construct()
24
+ {
25
+ $this->__['wp-fail2ban-proxies'] = __('Proxies', 'wp-fail2ban');
26
+ $this->__['remote-ips-proxies'] = __('IP list', 'wp-fail2ban');
27
+
28
+ parent::__construct('remote-ips', __('Remote IPs', 'wp-fail2ban'));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  }
 
 
30
 
31
+ /**
32
+ * {@inheritDoc}
33
+ *
34
+ * @since 4.0.0
35
+ */
36
+ public function admin_init()
37
+ {
38
+ // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing
39
+ add_settings_section('wp-fail2ban-proxies', $this->__['wp-fail2ban-proxies'], [$this, 'section'], 'wp-fail2ban-remote-ips');
40
+ add_settings_field('remote-ips-proxies', $this->__['remote-ips-proxies'], [$this, 'proxies'], 'wp-fail2ban-remote-ips', 'wp-fail2ban-proxies');
41
+ // phpcs:enable
42
+ }
43
+
44
+ /**
45
+ * {@inheritDoc}
46
+ *
47
+ * @since 4.3.0
48
+ */
49
+ public function current_screen()
50
+ {
51
+ $fmt = <<<___FMT___
52
+ <dl><style>dt{font-weight:bold;}</style>
53
+ <dt>%s</dt>
54
+ <dd><p>%s</p><p>%s</p>%s</dd>
55
+ </dl>
56
+ ___FMT___;
57
+ get_current_screen()->add_help_tab([
58
+ 'id' => 'remote-ips-proxies',
59
+ 'title' => $this->__['wp-fail2ban-proxies'],
60
+ 'content' => sprintf(
61
+ $fmt,
62
+ $this->__['remote-ips-proxies'],
63
+ __('A list of IPv4 addresses in CIDR notation. The list of CloudFlare IPs can be found <a href="https://www.cloudflare.com/ips-v4" rel="noopener" target="_blank">here</a>', 'wp-fail2ban'),
64
+ __('<strong>NB:</strong> IPv6 is not yet supported.', 'wp-fail2ban'),
65
+ $this->doc_link('WP_FAIL2BAN_PROXIES')
66
+ )
67
+ ]);
68
+ parent::current_screen();
69
+ }
70
+
71
+ /**
72
+ * Section blurb.
73
+ *
74
+ * @since 4.0.0
75
+ */
76
+ public function section()
77
+ {
78
+ echo '';
79
+ }
80
+
81
+ /**
82
+ * Helper - multi-line string from proxies list.
83
+ *
84
+ * @since 4.3.0
85
+ *
86
+ * @return string
87
+ */
88
+ protected function proxies_value()
89
+ {
90
+ $proxies = Config::get('WP_FAIL2BAN_PROXIES');
91
+ return (is_array($proxies))
92
+ ? join("\n", $proxies)
93
+ : join("\n", array_map('trim', explode(',', $proxies)));
94
+ }
95
+
96
+ /**
97
+ * Proxies.
98
+ *
99
+ * @since 4.3.0 Refactored.
100
+ * @since 4.0.0
101
+ */
102
+ public function proxies()
103
+ {
104
+ printf(
105
+ '<fieldset><textarea class="code" cols="20" rows="10" disabled="disabled">%s</textarea></fieldset>',
106
+ esc_html($this->proxies_value())
107
+ );
108
+ $this->description('WP_FAIL2BAN_PROXIES');
109
+ }
110
+ }
111
  }
112
+
admin/config/syslog.php CHANGED
@@ -1,103 +1,137 @@
1
  <?php
2
-
3
  /**
4
  * Settings - syslog
5
  *
6
  * @package wp-fail2ban
7
- * @since 4.0.0
8
  */
9
- namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- /**
15
- * Tab: Syslog
16
- *
17
- * @since 4.0.0
18
- */
19
- class TabSyslog extends Tab
20
- {
21
- /**
22
- * {@inheritDoc}
23
- */
24
- public function __construct()
25
- {
26
- add_action( 'admin_init', [ $this, 'admin_init' ], 100 );
27
- parent::__construct( 'syslog', '<tt>syslog</tt>' );
28
- }
29
-
30
- /**
31
- * {@inheritDoc}
32
- *
33
- * @since 4.0.0
34
- */
35
- public function admin_init()
36
- {
37
- // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing
38
- add_settings_section(
39
- 'wp-fail2ban-connection',
40
- __( 'Connection' ),
41
- [ $this, 'sectionConnection' ],
42
- 'wp-fail2ban-syslog'
43
- );
44
- add_settings_field(
45
- 'logging-connection',
46
- parent::doc_link( 'WP_FAIL2BAN_OPENLOG_OPTIONS', __( 'Options' ) ),
47
- [ $this, 'connection' ],
48
- 'wp-fail2ban-syslog',
49
- 'wp-fail2ban-connection'
50
- );
51
- add_settings_section(
52
- 'wp-fail2ban-workarounds',
53
- __( 'Workarounds' ),
54
- [ $this, 'sectionWorkarounds' ],
55
- 'wp-fail2ban-syslog'
56
- );
57
- add_settings_field(
58
- 'logging-workarounds',
59
- parent::doc_link( '../syslog', __( 'Options' ) ),
60
- [ $this, 'workarounds' ],
61
- 'wp-fail2ban-syslog',
62
- 'wp-fail2ban-workarounds'
63
- );
64
- // phpcs:enable
65
- }
66
-
67
- /**
68
- * {@inheritDoc}
69
- *
70
- * @since 4.0.0
71
- *
72
- * @param array $settings {@inheritDoc}
73
- * @param array $input {@inheritDoc}
74
- *
75
- * @return array {@inheritDoc}
76
- */
77
- public function sanitize( array $settings, array $input = null )
78
- {
79
- return $settings;
80
- }
81
-
82
- /**
83
- * Connection section blurb.
84
- *
85
- * @since 4.0.0
86
- */
87
- public function sectionConnection()
88
- {
89
- echo '' ;
90
- }
91
-
92
  /**
93
- * Connection.
94
  *
95
  * @since 4.0.0
96
  */
97
- public function connection()
98
  {
99
- $class = '';
100
- $fmt = <<<___STR___
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
  <fieldset>
102
  <label><input type="checkbox" disabled="disabled" %s> <code>LOG_CONS</code></label><br>
103
  <label><input type="checkbox" disabled="disabled" %s> <code>LOG_PERROR</code></label><br>
@@ -106,36 +140,37 @@ class TabSyslog extends Tab
106
  <label><input type="radio" disabled="disabled" %s> <code>LOG_ODELAY</code></label>
107
  </fieldset>
108
  ___STR___;
109
- printf(
110
- $fmt,
111
- checked( WP_FAIL2BAN_OPENLOG_OPTIONS & LOG_CONS, LOG_CONS, false ),
112
- checked( WP_FAIL2BAN_OPENLOG_OPTIONS & LOG_PERROR, LOG_PERROR, false ),
113
- checked( WP_FAIL2BAN_OPENLOG_OPTIONS & LOG_PID, LOG_PID, false ),
114
- __( 'default' ),
115
- checked( WP_FAIL2BAN_OPENLOG_OPTIONS & LOG_NDELAY, LOG_NDELAY, false ),
116
- __( 'default' ),
117
- checked( WP_FAIL2BAN_OPENLOG_OPTIONS & LOG_ODELAY, LOG_ODELAY, false )
118
- );
119
- }
120
-
121
- /**
122
- * Workarounds section blurb.
123
- *
124
- * @since 4.0.0
125
- */
126
- public function sectionWorkarounds()
127
- {
128
- echo '' ;
129
- }
130
-
131
- /**
132
- * Workarounds.
133
- *
134
- * @since 4.0.0
135
- */
136
- public function workarounds()
137
- {
138
- $fmt = <<<___STR___
 
139
  <fieldset>
140
  <label><input type="checkbox" disabled="disabled" %s> %s</label>
141
  <br>
@@ -144,16 +179,16 @@ ___STR___;
144
  <label><input type="checkbox" disabled="disabled" %s> %s</label>
145
  </fieldset>
146
  ___STR___;
147
- printf(
148
- $fmt,
149
- checked( @WP_FAIL2BAN_SYSLOG_SHORT_TAG, true, false ),
150
- __( 'Short Tag' ),
151
- checked( @WP_FAIL2BAN_HTTP_HOST, true, false ),
152
- __( 'Specify Host' ),
153
- checked( @WP_FAIL2BAN_TRUNCATE_HOST, true, false ),
154
- __( 'Truncate Host' )
155
- );
 
156
  }
157
-
158
  }
159
- new TabSyslog();
1
  <?php
 
2
  /**
3
  * Settings - syslog
4
  *
5
  * @package wp-fail2ban
6
+ * @since 4.0.0
7
  */
8
+ namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
+ if (defined('ABSPATH')) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  /**
12
+ * Tab: Syslog
13
  *
14
  * @since 4.0.0
15
  */
16
+ class TabSyslog extends TabBase
17
  {
18
+ /**
19
+ * {@inheritDoc}
20
+ */
21
+ public function __construct()
22
+ {
23
+ // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing
24
+ $this->__['wp-fail2ban-connection'] = __('Connection', 'wp-fail2ban');
25
+ $this->__['syslog-connection-options'] = __('Options', 'wp-fail2ban');
26
+ $this->__['wp-fail2ban-workarounds'] = __('Workarounds', 'wp-fail2ban');
27
+ $this->__['syslog-workarounds'] = __('Options', 'wp-fail2ban');
28
+ // phpcs:enable
29
+
30
+ parent::__construct('syslog', 'syslog');
31
+ }
32
+
33
+ /**
34
+ * {@inheritDoc}
35
+ *
36
+ * @since 4.0.0
37
+ */
38
+ public function admin_init()
39
+ {
40
+ // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing
41
+ add_settings_section('wp-fail2ban-connection', $this->__['wp-fail2ban-connection'], [$this, 'sectionConnection'], 'wp-fail2ban-syslog');
42
+ add_settings_field('syslog-connection-options', $this->__['syslog-connection-options'], [$this, 'connection'], 'wp-fail2ban-syslog', 'wp-fail2ban-connection');
43
+
44
+ add_settings_section('wp-fail2ban-workarounds', $this->__['wp-fail2ban-workarounds'], [$this, 'sectionWorkarounds'], 'wp-fail2ban-syslog');
45
+ add_settings_field('syslog-workarounds', $this->__['syslog-workarounds'], [$this, 'workarounds'], 'wp-fail2ban-syslog', 'wp-fail2ban-workarounds');
46
+ // phpcs:enable
47
+ }
48
+
49
+ /**
50
+ * {@inheritDoc}
51
+ *
52
+ * @since 4.3.0
53
+ */
54
+ public function current_screen()
55
+ {
56
+ $fmt = <<<___FMT___
57
+ <p>%s</p>
58
+ <table><style>th{text-align:left;vertical-align:top;}</style>
59
+ <tr><th scope="row">LOG_CONS</th><td>%s</td></tr>
60
+ <tr><th scope="row">LOG_NDELAY</th><td>%s</td></tr>
61
+ <tr><th scope="row">LOG_ODELAY</th><td>%s</td></tr>
62
+ <tr><th scope="row">LOG_PERROR</th><td>%s</td></tr>
63
+ <tr><th scope="row">LOG_PID</th><td>%s</td></tr>
64
+ </table>
65
+ %s
66
+ ___FMT___;
67
+ get_current_screen()->add_help_tab([
68
+ 'id' => 'syslog-connection-options',
69
+ 'title' => $this->__['wp-fail2ban-connection'],
70
+ 'content' => sprintf(
71
+ $fmt,
72
+ __('Used to indicate what logging options will be used when generating a log message.', 'wp-fail2ban'),
73
+ __('if there is an error while sending data to the system logger, write directly to the system console', 'wp-fail2ban'),
74
+ __('open the connection to the logger immediately', 'wp-fail2ban'),
75
+ __('(default) delay opening the connection until the first message is logged', 'wp-fail2ban'),
76
+ __('print log message also to standard error', 'wp-fail2ban'),
77
+ __('include PID with each message', 'wp-fail2ban'),
78
+ $this->see_also(['WP_FAIL2BAN_OPENLOG_OPTIONS'])
79
+ )
80
+ ]);
81
+ $fmt = <<<___FMT___
82
+ <p>%s</p>
83
+ <p>%s</p>
84
+ <dl><style>dt{font-weight:bold;}</style>
85
+ <dt>%s</dt>
86
+ <dd><p>%s</p>%s</dd>
87
+ <dt>%s</dt>
88
+ <dd><p>%s</p>%s</dd>
89
+ <dt>%s</dt>
90
+ <dd><p>%s</p><p>%s</p>%s</dd>
91
+ </dl>
92
+ ___FMT___;
93
+ get_current_screen()->add_help_tab([
94
+ 'id' => 'syslog-workarounds',
95
+ 'title' => $this->__['wp-fail2ban-workarounds'],
96
+ 'content' => sprintf(
97
+ $fmt,
98
+ __('<tt>syslog</tt> was only <a href="https://tools.ietf.org/html/rfc5424" target="_blank">standardised</a> in 2009, so unfortunately there are still implementations that need some help.', 'wp-fail2ban'),
99
+ __('By far the most common limitation is the length of the initial information fields; these options provide ways to shorten the data in those fields.', 'wp-fail2ban'),
100
+ __('Short Tag', 'wp-fail2ban'),
101
+ __('Some syslog implementations assume that the first part of the message (the tag) won&lsquo;t exceed some (small) number of characters. This option tells <em>WPf2b</em> to use <tt>wp</tt> instead of <tt>wordpress</tt>, thereby saving 7 characters; this may be enough to make syslog happy.', 'wp-fail2ban'),
102
+ $this->see_also(['WP_FAIL2BAN_SYSLOG_SHORT_TAG']),
103
+ __('Specify Host', 'wp-fail2ban'),
104
+ __('"Short Tag" may not be enough, so this allows you to specify the hostname. See the <a href="https://docs.wp-fail2ban.com/en/___WPF2BVER___/defines/constants/WP_FAIL2BAN_HTTP_HOST.html" target="_blank">documentation</a> for more details.', 'wp-fail2ban'),
105
+ $this->see_also(['WP_FAIL2BAN_HTTP_HOST']),
106
+ __('Truncate Host', 'wp-fail2ban'),
107
+ __('When all else fails, this allows you to truncate the hostname after a number of characters.', 'wp-fail2ban'),
108
+ __('<strong>N.B.</strong> This may be removed in a future release; it was broken prior to 4.3 and there were no bug reports, so it seems likely absolutely no-one is using it.', 'wp-fail2ban'),
109
+ $this->see_also(['WP_FAIL2BAN_TRUNCATE_HOST'])
110
+ )
111
+ ]);
112
+
113
+ parent::current_screen();
114
+ }
115
+
116
+ /**
117
+ * Connection section blurb.
118
+ *
119
+ * @since 4.0.0
120
+ */
121
+ public function sectionConnection()
122
+ {
123
+ echo '';
124
+ }
125
+
126
+ /**
127
+ * Connection.
128
+ *
129
+ * @since 4.3.0 Refactor to premium.
130
+ * @since 4.0.0
131
+ */
132
+ public function connection()
133
+ {
134
+ $fmt = <<<___STR___
135
  <fieldset>
136
  <label><input type="checkbox" disabled="disabled" %s> <code>LOG_CONS</code></label><br>
137
  <label><input type="checkbox" disabled="disabled" %s> <code>LOG_PERROR</code></label><br>
140
  <label><input type="radio" disabled="disabled" %s> <code>LOG_ODELAY</code></label>
141
  </fieldset>
142
  ___STR___;
143
+ // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing, PSR2.Methods.FunctionCallSignature.MultipleArguments
144
+ printf(
145
+ $fmt,
146
+ checked(WP_FAIL2BAN_OPENLOG_OPTIONS & LOG_CONS, LOG_CONS, false),
147
+ checked(WP_FAIL2BAN_OPENLOG_OPTIONS & LOG_PERROR, LOG_PERROR, false),
148
+ checked(WP_FAIL2BAN_OPENLOG_OPTIONS & LOG_PID, LOG_PID, false), __('default'),
149
+ checked(WP_FAIL2BAN_OPENLOG_OPTIONS & LOG_NDELAY, LOG_NDELAY, false), __('default'),
150
+ checked(WP_FAIL2BAN_OPENLOG_OPTIONS & LOG_ODELAY, LOG_ODELAY, false)
151
+ );
152
+ // phpcs:enable
153
+ }
154
+
155
+ /**
156
+ * Workarounds section blurb.
157
+ *
158
+ * @since 4.0.0
159
+ */
160
+ public function sectionWorkarounds()
161
+ {
162
+ echo '';
163
+ }
164
+
165
+ /**
166
+ * Workarounds.
167
+ *
168
+ * @since 4.3.0 Refactor to premium.
169
+ * @since 4.0.0
170
+ */
171
+ public function workarounds()
172
+ {
173
+ $fmt = <<<___STR___
174
  <fieldset>
175
  <label><input type="checkbox" disabled="disabled" %s> %s</label>
176
  <br>
179
  <label><input type="checkbox" disabled="disabled" %s> %s</label>
180
  </fieldset>
181
  ___STR___;
182
+ printf(
183
+ $fmt,
184
+ checked(@WP_FAIL2BAN_SYSLOG_SHORT_TAG, true, false),
185
+ __('Short Tag', 'wp-fail2ban'),
186
+ checked(@WP_FAIL2BAN_HTTP_HOST, true, false),
187
+ __('Specify Host', 'wp-fail2ban'),
188
+ checked(@WP_FAIL2BAN_TRUNCATE_HOST, true, false),
189
+ __('Truncate Host', 'wp-fail2ban')
190
+ );
191
+ }
192
  }
 
193
  }
194
+
admin/lib/about.php CHANGED
@@ -4,175 +4,139 @@
4
  * About
5
  *
6
  * @package wp-fail2ban
7
- * @since 4.2.0
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- /**
15
- * About content
16
- *
17
- * @since 4.2.0
18
- *
19
- * @param bool $hide_title
20
- */
21
- function about( $hide_title = false )
22
- {
23
- $wp_f2b_ver = substr( WP_FAIL2BAN_VER, 0, strrpos( WP_FAIL2BAN_VER, '.' ) );
24
- ?>
25
- <div class="wrap">
26
- <style>
27
- div.inside ul {
28
- list-style: disc;
29
- padding-left: 2em;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  }
31
- </style>
32
- <?php
33
- if ( !$hide_title ) {
 
 
 
 
 
 
 
 
 
34
  ?>
35
- <h1>WP fail2ban</h1>
36
- <?php
37
- }
38
- ?>
39
- <div id="poststuff">
40
- <div id="post-body" class="metabox-holder columns-2">
41
- <div id="post-body-content">
42
- <div class="meta-box-sortables ui-sortable">
43
- <div class="postbox">
44
- <h2>Version 4.2.7.1</h2>
45
- <div class="inside">
46
- <ul>
47
- <li>Fix error when blocking user enumeration via <tt>oembed</tt>.</li>
48
- </ul>
49
- </div>
50
- </div>
51
- </div>
52
- <div class="meta-box-sortables ui-sortable">
53
- <div class="postbox">
54
- <h2>Version 4.2.7</h2>
55
- <div class="inside">
56
- <ul>
57
- <li>Fix error when blocking user enumeration via REST.</li>
58
- <li>Fix buttons on Settings tabs.</li>
59
- </ul>
60
- </div>
61
- </div>
62
- </div>
63
- <div class="meta-box-sortables ui-sortable">
64
- <div class="postbox">
65
- <h2>Version 4.2.6</h2>
66
- <div class="inside">
67
- <ul>
68
- <li>Add support for <a href="<?php
69
- echo admin_url( 'admin.php?page=wp-fail2ban-tools' ) ;
70
- ?>">Remote Tools</a> add-on.
71
- <li>Add support for the new ClassicPress security page.</li>
72
- <li>Improved user enumeration blocking.</li>
73
- </ul>
74
- </div>
75
- </div>
76
- </div>
77
- <div class="meta-box-sortables ui-sortable">
78
- <div class="postbox">
79
- <h2>Version 4.2.5</h2>
80
- <div class="inside">
81
- <ul>
82
- <li>Properly fix PHP 5.3 support; tested on CentOS 6. Does not support any UI or Premium features.</li>
83
- <li>Fix potential issue with <tt>WP_FAIL2BAN_BLOCK_USER_ENUMERATION</tt> if calling REST API or XMLRPC from admin area.</li>
84
- </ul>
85
- </div>
86
- </div>
87
- </div>
88
- <div class="meta-box-sortables ui-sortable">
89
- <div class="postbox">
90
- <h2>Version 4.2.4</h2>
91
- <div class="inside">
92
- <ul>
93
- <li>Add filter for login failed message.</li>
94
- <li>Fix logging spam comments from admin area.</li>
95
- <li>Fix Settings link from Plugins page.</li>
96
- <li>Update Freemius library.</li>
97
- </ul>
98
- </div>
99
- </div>
100
- </div>
101
- <div class="meta-box-sortables ui-sortable">
102
- <div class="postbox">
103
- <h2>Version 4.2.3</h2>
104
- <div class="inside">
105
- <ul>
106
- <li>Workaround for some versions of PHP 7.x that would cause <tt>define()</tt>s to be ignored.</li>
107
- <li>Add config note to settings tabs.</li>
108
- <li>Fix documentation links.</li>
109
- </ul>
110
- </div>
111
- </div>
112
- </div>
113
- <div class="meta-box-sortables ui-sortable">
114
- <div class="postbox">
115
- <h2>Version 4.2.2</h2>
116
- <div class="inside">
117
- <ul>
118
- <li>Fix 5.3 compatibility.</li>
119
- </ul>
120
- </div>
121
- </div>
122
- </div>
123
- <div class="meta-box-sortables ui-sortable">
124
- <div class="postbox">
125
- <h2>Version 4.2.1</h2>
126
- <div class="inside">
127
- <ul>
128
- <li>Completed support for <tt><a href="https://docs.wp-fail2ban.com/en/4.2/defines/WP_FAIL2BAN_COMMENT_EXTRA_LOG.html" target="docs.wp-fail2ban.com">WP_FAIL2BAN_COMMENT_EXTRA_LOG</a></tt>.</li>
129
- <li>Add support for 3rd-party plugins; see <a href="https://docs.wp-fail2ban.com/en/4.2/developers.html" target="docs.wp-fail2ban.com">Developers</a>.<br>
130
- <p><ul>
131
- <li>Add-on for <a href="https://wordpress.org/plugins/wp-fail2ban-addon-contact-form-7/">Contact Form 7</a> (experimental).</li>
132
- <li>Add-on for <a href="https://wordpress.org/plugins/wp-fail2ban-addon-gravity-forms/">Gravity Forms</a> (experimental).</li>
133
- </ul></p>
134
- </li>
135
- <li>Change logging for known-user with incorrect password; previously logged as unknown user and matched by <tt>hard</tt> filters (due to limitations in older versions of WordPress), now logged as known user and matched by <tt>soft</tt>.</li>
136
- <li>Bugfix for email-as-username - now logged correctly and matched by <tt>soft</tt>, not <tt>hard</tt>, filters.</li>
137
- <li>Bugfix for regression in code to prevent Free/Premium conflict.</li>
138
- </ul>
139
- </div>
140
- </div>
141
- </div>
142
- </div>
143
- <div id="postbox-container-1" class="postbox-container">
144
- <div class="meta-box-sortables">
145
- <div class="postbox">
146
- <h2>Getting Started</h2>
147
- <div class="inside">
148
- <ol>
149
- <li><a href="https://docs.wp-fail2ban.com/en/<?php
150
- echo $wp_f2b_ver ;
151
- ?>/introduction.html" target="docs.wp-fail2ban.com">Introduction</a></li>
152
- <li><a href="https://docs.wp-fail2ban.com/en/<?php
153
- echo $wp_f2b_ver ;
154
- ?>/configuration.html" target="docs.wp-fail2ban.com">Configuration</a></li>
155
- </ol>
156
  </div>
157
  </div>
158
- <div class="postbox">
159
- <h2>Getting Help</h2>
160
- <div class="inside">
161
- <ul>
162
- <?php
163
- if ( wf_fs()->is_free_plan() ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
164
  ?>
165
- <li><a href="https://wordpress.org/support/plugin/wp-fail2ban/" target="_blank">WordPress.org Forum</a></li>
166
- <?php
167
- }
168
- ?>
 
 
169
  </div>
170
  </div>
171
  </div>
 
172
  </div>
173
  </div>
174
- &nbsp;
175
- </div>
176
- </div>
177
- <?php
178
  }
4
  * About
5
  *
6
  * @package wp-fail2ban
7
+ * @since 4.2.0
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
+
12
+ if ( defined( 'ABSPATH' ) ) {
13
+ /**
14
+ * Pull in extra "about" information
15
+ *
16
+ * @since 4.3.0
17
+ *
18
+ * @return string
19
+ */
20
+ function _get_extra_about()
21
+ {
22
+ $extra = '';
23
+ /**
24
+ * Don't make a remote call if the user hasn't opted in
25
+ */
26
+
27
+ if ( !wf_fs()->is_tracking_prohibited() ) {
28
+ $extra = get_site_transient( 'wp_fail2ban_extra_about' );
29
+
30
+ if ( false === apply_filters( 'wp_fail2ban_extra_about_transient', $extra ) ) {
31
+ $url = apply_filters( 'wp_fail2ban_extra_about_url', 'https://wp-fail2ban.com/extra-about/?version=' . $wp_f2b_ver );
32
+
33
+ if ( !is_wp_error( $rv = wp_remote_get( $url ) ) ) {
34
+ /**
35
+ * Try not to fetch more than once per day
36
+ */
37
+ set_site_transient( 'wp_fail2ban_extra_about', $rv['body'], DAY_IN_SECONDS );
38
+ $extra = $rv['body'];
39
+ }
40
+
41
+ }
42
+
43
+ }
44
+
45
+ return $extra;
46
  }
47
+
48
+ /**
49
+ * About content
50
+ *
51
+ * @since 4.2.0
52
+ *
53
+ * @param bool $hide_title
54
+ */
55
+ function about( $hide_title = false )
56
+ {
57
+ $wp_f2b_ver = substr( WP_FAIL2BAN_VER, 0, strrpos( WP_FAIL2BAN_VER, '.' ) );
58
+ $extra = _get_extra_about();
59
  ?>
60
+ <div class="wrap">
61
+ <style>
62
+ div.inside ul {
63
+ list-style: disc;
64
+ padding-left: 2em;
65
+ }
66
+ </style>
67
+ <?php
68
+ if ( !$hide_title ) {
69
+ ?>
70
+ <h1>WP fail2ban</h1>
71
+ <?php
72
+ }
73
+ ?>
74
+ <div id="poststuff">
75
+ <div id="post-body" class="metabox-holder columns-2">
76
+ <div id="post-body-content">
77
+ <div class="meta-box-sortables ui-sortable">
78
+ <?php
79
+ echo $extra ;
80
+ ?>
81
+ <div class="postbox">
82
+ <h2>Version 4.3.0</h2>
83
+ <div class="inside">
84
+ <ul>
85
+ <li>Add full multisite support. See <a href="https://wp-fail2ban.com/blog/changes-to-multisite-support/" rel="noopener" target="_blank">here</a> for more information.</li>
86
+ <li>Add separate logging for empty usernames.</li>
87
+ <li>Improve user enumeration blocking compatibility with the WordPress block editor (Gutenberg).</li>
88
+ <li>Log extra information for events <em>(premium)</em>.</li>
89
+ <li>Add new event class for blocked actions <em>(premium)</em>.</li>
90
+ </ul>
91
+ </div>
92
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  </div>
94
  </div>
95
+ <div id="postbox-container-1" class="postbox-container">
96
+ <div class="meta-box-sortables">
97
+ <div class="postbox">
98
+ <h2>Getting Started</h2>
99
+ <div class="inside">
100
+ <ol>
101
+ <li><a href="https://docs.wp-fail2ban.com/en/<?php
102
+ echo $wp_f2b_ver ;
103
+ ?>/introduction.html" rel="noopener" target="docs.wp-fail2ban.com">Introduction</a></li>
104
+ <li><a href="https://docs.wp-fail2ban.com/en/<?php
105
+ echo $wp_f2b_ver ;
106
+ ?>/configuration.html" rel="noopener" target="docs.wp-fail2ban.com">Configuration</a></li>
107
+ </ol>
108
+ </div>
109
+ </div>
110
+ <div class="postbox">
111
+ <h2>Getting Help</h2>
112
+ <div class="inside">
113
+ <ul>
114
+ <?php
115
+
116
+ if ( wf_fs()->is_trial() ) {
117
+ ?>
118
+ <li><a href="https://forums.invis.net/c/wp-fail2ban/support-trial/" rel="noopener" target="_blank">Trial Support Forum</a></li>
119
+ <?php
120
+ } elseif ( wf_fs()->is_free_plan() ) {
121
+ ?>
122
+ <li><a href="https://forums.invis.net/c/wp-fail2ban/support-free/" rel="noopener" target="_blank">Free Support Forum</a></li>
123
+ <?php
124
+ }
125
+
126
  ?>
127
+ <?php
128
+ ?>
129
+ <?php
130
+ ?>
131
+ </div>
132
+ </div>
133
  </div>
134
  </div>
135
  </div>
136
+ &nbsp;
137
  </div>
138
  </div>
139
+ <?php
140
+ }
141
+
 
142
  }
admin/lib/tab.php CHANGED
@@ -1,260 +1,499 @@
1
  <?php
2
-
3
  /**
4
  * Tab base class
5
  *
6
- * @package wp-fail2ban-premium
7
- * @since 4.0.0
 
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- /**
15
- * Base Tab class
16
- *
17
- * @since 4.0.0
18
- */
19
- abstract class Tab
20
- {
21
- /**
22
- * @var array Array of Tab objects
23
- */
24
- protected static $tabs = array() ;
25
- /**
26
- * @var string Active tab slug
27
- */
28
- protected static $active_tab ;
29
- /**
30
- * @var string Tab slug
31
- */
32
- protected $tab_slug ;
33
- /**
34
- * @var string Tab name
35
- */
36
- protected $tab_name ;
37
- /**
38
- * Hook: admin_init
39
- *
40
- * @since 4.0.0
41
- */
42
- public abstract function admin_init();
43
-
44
- /**
45
- * Sanitize and store form fields
46
- *
47
- * @since 4.0.0
48
- *
49
- * @param array $settings Settings to update
50
- * @param array $input Form fields
51
- *
52
- * @return array $settings
53
- */
54
- public abstract function sanitize( array $settings, array $input = null );
55
-
56
- /**
57
- * Contruct.
58
- *
59
- * @since 4.0.0
60
- *
61
- * @param string $slug Tab slug
62
- * @param string $name Tab name
63
- */
64
- public function __construct( $slug, $name )
65
- {
66
- $this->tab_slug = $slug;
67
- $this->tab_name = $name;
68
- self::$tabs[$slug] = $this;
69
- }
70
-
71
  /**
72
- * Getter - slug
73
  *
74
  * @since 4.0.0
75
- *
76
- * @return string Tab slug
77
- */
78
- public function getSlug()
79
- {
80
- return $this->tab_slug;
81
- }
82
-
83
- /**
84
- * Getter - name
85
- *
86
- * @since 4.0.0
87
- *
88
- * @return string Tab name
89
  */
90
- public function getName()
91
  {
92
- return $this->tab_name;
93
- }
94
-
95
- /**
96
- * Render settings section
97
- *
98
- * @since 4.0.0
99
- */
100
- public function render()
101
- {
102
- do_settings_sections( 'wp-fail2ban-' . $this->tab_slug );
103
- }
104
-
105
- /**
106
- * Helper - tab
107
- *
108
- * @since 4.0.0
109
- *
110
- * @param string $slug Tab slug
111
- *
112
- * @return Tab Tab
113
- */
114
- public static function getTab( $slug )
115
- {
116
- return self::$tabs[$slug];
117
- }
118
-
119
- /**
120
- * Helper - current tab
121
- *
122
- * @since 4.0.0
123
- *
124
- * @param string $default Default slug
125
- *
126
- * @return Tab Tab
127
- */
128
- public static function getActiveTab( $default = null )
129
- {
130
- if ( !empty(self::$active_tab) ) {
131
- return self::$active_tab;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132
  }
133
- return self::$active_tab = ( array_key_exists( @$_GET['tab'], self::$tabs ) ? self::$tabs[$_GET['tab']] : self::$tabs[$default] );
134
- }
135
-
136
- /**
137
- * Helper - tab name
138
- *
139
- * @since 4.0.0
140
- *
141
- * @param string $slug Tab slug
142
- *
143
- * @return string Tab name
144
- */
145
- public static function getTabName( $slug )
146
- {
147
- return self::getTab( $slug )->getName();
148
- }
149
-
150
- /**
151
- * Link to documentation
152
- *
153
- * @since 4.2.0
154
- *
155
- * @param string $define
156
- * @param string $name
157
- *
158
- * @return string
159
- */
160
- public static function doc_link( $define, $name )
161
- {
162
- static $wp_f2b_ver ;
163
- if ( empty($wp_f2b_ver) ) {
164
- $wp_f2b_ver = substr( WP_FAIL2BAN_VER, 0, strrpos( WP_FAIL2BAN_VER, '.' ) );
165
  }
166
- return sprintf(
167
- '<a href="https://docs.wp-fail2ban.com/en/%s/defines/constants/%s.html" style="text-decoration: none;" target="_blank" title="Documentation"><span class="dashicons dashicons-external" style="vertical-align: text-bottom"></span></a> %s',
168
- $wp_f2b_ver,
169
- $define,
170
- $name
171
- );
172
- }
173
-
174
- /**
175
- * Helper - drop-down list of facilities
176
- *
177
- * @since 4.0.0
178
- *
179
- * @param string $def Name of define for selected value
180
- * @param bool $_enabled Enabled?
181
- */
182
- protected function getLogFacilities( $def, $_enabled = false )
183
- {
184
- $enabled = false;
185
- $facilities = [
186
- LOG_AUTH => 'LOG_AUTH',
187
- LOG_AUTHPRIV => 'LOG_AUTHPRIV',
188
- LOG_CRON => 'LOG_CRON',
189
- LOG_DAEMON => 'LOG_DAEMON',
190
- LOG_KERN => 'LOG_KERN',
191
- LOG_LOCAL0 => 'LOG_LOCAL0',
192
- LOG_LOCAL1 => 'LOG_LOCAL1',
193
- LOG_LOCAL2 => 'LOG_LOCAL2',
194
- LOG_LOCAL3 => 'LOG_LOCAL3',
195
- LOG_LOCAL4 => 'LOG_LOCAL4',
196
- LOG_LOCAL5 => 'LOG_LOCAL5',
197
- LOG_LOCAL6 => 'LOG_LOCAL6',
198
- LOG_LOCAL7 => 'LOG_LOCAL7',
199
- LOG_LPR => 'LOG_LPR',
200
- LOG_MAIL => 'LOG_MAIL',
201
- LOG_NEWS => 'LOG_NEWS',
202
- LOG_SYSLOG => 'LOG_SYSLOG',
203
- LOG_USER => 'LOG_USER',
204
- LOG_UUCP => 'LOG_UUCP',
205
- ];
206
- $default = constant( "DEFAULT_{$def}" );
207
- $value = ( defined( $def ) ? constant( $def ) : $default );
208
- $str = '<select disabled="disabled">';
209
- foreach ( $facilities as $facility => $name ) {
210
- $str .= sprintf(
211
- '<option value="%s" %s>%s%s</option>',
212
- $facility,
213
- selected( $value, $facility, false ),
214
- $name,
215
- ( $facility == $default ? __( ' (default)' ) : '' )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
216
  );
217
  }
218
- $str .= '</select>';
219
- return $str;
220
- }
221
-
222
- /**
223
- * Log helper - enable/disable+facility
224
- *
225
- * @since 4.2.0 Moved to Tab
226
- * @since 4.0.0
227
- *
228
- * @param string $define_name Name of define to enable logging
229
- * @param string $define_log Name of define for log facility
230
- * @param string $description Description
231
- * @param array $toggle Array of IDs to sync toggle state
232
- */
233
- protected function log(
234
- $define_name,
235
- $define_log,
236
- $description = '',
237
- array $toggle = array()
238
- )
239
- {
240
- $enabled = defined( $define_name ) && true === constant( $define_name );
241
- $fmt = <<<___FMT___
242
- <label><input type="checkbox" disabled="disabled" %s> Enable logging</label>,
243
- <label>use facility: %s</label>
244
- <p class="description">%s</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
245
  ___FMT___;
246
- $html = sprintf(
247
- $fmt,
248
- checked( $enabled, true, false ),
249
- $this->getLogFacilities( $define_log ),
250
- $description
251
- );
252
- echo apply_filters(
253
- "wp_fail2ban_log_{$define_name}",
254
- $html,
255
- $define_name,
256
- $define_log
257
- ) ;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
258
  }
 
259
 
260
- }
1
  <?php
 
2
  /**
3
  * Tab base class
4
  *
5
+ * @package wp-fail2ban
6
+ * @since 4.0.0
7
+ * @php 5.6
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
+ if (defined('ABSPATH')) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  /**
13
+ * Tab: Base class
14
  *
15
  * @since 4.0.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  */
17
+ abstract class TabBase
18
  {
19
+ /**
20
+ * @var array Array of Tab objects
21
+ */
22
+ protected static $tabs = [];
23
+ /**
24
+ * @var string Default tab slug
25
+ */
26
+ protected static $default_tab;
27
+ /**
28
+ * @var string Active tab slug
29
+ */
30
+ protected static $active_tab;
31
+
32
+ /**
33
+ * @var string Tab slug
34
+ */
35
+ protected $tab_slug;
36
+ /**
37
+ * @var string Tab name
38
+ */
39
+ protected $tab_name;
40
+ /**
41
+ * @since 4.3.0
42
+ * @var bool Apply/Reset buttons?
43
+ */
44
+ protected $tab_apply;
45
+
46
+ /**
47
+ * @var array Settings
48
+ * @since 4.3.0
49
+ */
50
+ protected $settings;
51
+
52
+ /**
53
+ * @var int admin_init priority
54
+ * @since 4.3.0
55
+ */
56
+ protected $admin_init_priority = 10;
57
+
58
+ /**
59
+ * Hook: admin_init
60
+ *
61
+ * @since 4.0.0
62
+ */
63
+ abstract public function admin_init();
64
+
65
+ /**
66
+ * Hook: current_screen
67
+ *
68
+ * @since 4.3.0
69
+ */
70
+ public function current_screen()
71
+ {
72
+ get_current_screen()->set_help_sidebar(
73
+ '<p><strong>' . __('For more information:') . '</strong></p>' .
74
+ '<p>' . __('<a href="https://codex.wordpress.org/Managing_Plugins#Plugin_Management">Documentation on Managing Plugins</a>') . '</p>' .
75
+ '<p>' . __('<a href="https://wordpress.org/support/">Support</a>') . '</p>'
76
+ );
77
  }
78
+
79
+ /**
80
+ * Sanitize and store form fields
81
+ *
82
+ * @since 4.3.0 Refactor
83
+ * @since 4.0.0
84
+ *
85
+ * @param array $input Form fields
86
+ */
87
+ public function sanitize(array $input = null)
88
+ {
89
+ return [];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  }
91
+
92
+ /**
93
+ * Contruct.
94
+ *
95
+ * @since 4.0.0
96
+ *
97
+ * @param string $slug Tab slug
98
+ * @param string $name Tab name
99
+ * @param bool $apply Show Apply/Reset buttons
100
+ */
101
+ public function __construct($slug, $name, $apply = true)
102
+ {
103
+ $this->tab_slug = $slug;
104
+ $this->tab_name = $name;
105
+ $this->tab_apply = $apply;
106
+
107
+ self::$tabs[$slug] = $this;
108
+
109
+ $this->settings = Config::settings();
110
+
111
+ add_action('admin_init', [$this, 'admin_init'], $this->admin_init_priority);
112
+
113
+ add_filter('gettext', [$this, 'gettext'], PHP_INT_MAX, 3);
114
+ }
115
+
116
+ /**
117
+ * Hook: gettext
118
+ *
119
+ * @since 4.3.0
120
+ *
121
+ * @param string $translation
122
+ * @param string $text
123
+ * @param string $domain
124
+ * @return stringq
125
+ */
126
+ public function gettext($translation, $text, $domain)
127
+ {
128
+ static $wp_f2b_ver;
129
+
130
+ if (empty($wp_f2b_ver)) {
131
+ $wp_f2b_ver = substr(WP_FAIL2BAN_VER, 0, strrpos(WP_FAIL2BAN_VER, '.'));
132
+ }
133
+
134
+ return str_replace('___WPF2BVER___', $wp_f2b_ver, $translation);
135
+ }
136
+
137
+ /**
138
+ * Getter - slug
139
+ *
140
+ * @since 4.0.0
141
+ *
142
+ * @return string Tab slug
143
+ */
144
+ public function getSlug()
145
+ {
146
+ return $this->tab_slug;
147
+ }
148
+
149
+ /**
150
+ * Getter - name
151
+ *
152
+ * @since 4.0.0
153
+ *
154
+ * @return string Tab name
155
+ */
156
+ public function getName()
157
+ {
158
+ return $this->tab_name;
159
+ }
160
+
161
+ /**
162
+ * Render settings section
163
+ *
164
+ * @since 4.3.0 Refactored.
165
+ * @since 4.0.0
166
+ */
167
+ public function render()
168
+ {
169
+ do_settings_sections('wp-fail2ban-'.$this->tab_slug);
170
+ $this->render_buttons();
171
+ }
172
+
173
+ /**
174
+ * Render settings section buttons
175
+ *
176
+ * @since 4.3.0
177
+ */
178
+ protected function render_buttons()
179
+ {
180
+ echo '<hr><p>'.__('<strong>Note:</strong> The Free version of <em>WP fail2ban</em> is configured by defining constants in <tt>wp-config.php</tt>; these tabs display those values.').'<br>'.
181
+ __('Upgrade to the Premium version to enable this interface.').'</p>';
182
+ }
183
+
184
+ /**
185
+ * Helper: is this the active tab?
186
+ *
187
+ * @since 4.3.0
188
+ *
189
+ * @return bool
190
+ */
191
+ protected function isActiveTab()
192
+ {
193
+ return ($this->tab_name == self::getActiveTab()->getName());
194
+ }
195
+
196
+ /**
197
+ * Helper - tab
198
+ *
199
+ * @since 4.0.0
200
+ *
201
+ * @param string $slug Tab slug
202
+ * @return Tab Tab
203
+ */
204
+ public static function getTab($slug)
205
+ {
206
+ return self::$tabs[$slug];
207
+ }
208
+
209
+ /**
210
+ * Helper - set the default tab.
211
+ *
212
+ * @since 4.3.0
213
+ *
214
+ * @param string $default Default tab slug
215
+ */
216
+ public static function setDefaultTab($default)
217
+ {
218
+ self::$default_tab = $default;
219
+ }
220
+
221
+ /**
222
+ * Helper - current tab
223
+ *
224
+ * @since 4.0.0
225
+ *
226
+ * @return TabBase Tab
227
+ */
228
+ public static function getActiveTab()
229
+ {
230
+ if (!empty(self::$active_tab)) {
231
+ return self::$active_tab;
232
+ }
233
+
234
+ return (self::$active_tab = (array_key_exists(@$_GET['tab'], self::$tabs))
235
+ ? self::$tabs[$_GET['tab']]
236
+ : self::$tabs[self::$default_tab]
237
  );
238
  }
239
+
240
+ /**
241
+ * Helper - tab name
242
+ *
243
+ * @since 4.0.0
244
+ *
245
+ * @param string $slug Tab slug
246
+ * @return string Tab name
247
+ */
248
+ public static function getTabName($slug)
249
+ {
250
+ return self::getTab($slug)->getName();
251
+ }
252
+
253
+ /**
254
+ * Helper - tab exists?
255
+ *
256
+ * @since 4.3.0
257
+ *
258
+ * @param string $slug Tab slug
259
+ * @return bool
260
+ */
261
+ public static function tabExists($slug)
262
+ {
263
+ return array_key_exists($slug, self::$tabs);
264
+ }
265
+
266
+ /**
267
+ * Link to documentation
268
+ *
269
+ * @since 4.3.0 Protected
270
+ * @since 4.2.0
271
+ *
272
+ * @param string $define
273
+ * @return string
274
+ */
275
+ protected function doc_link($define)
276
+ {
277
+ static $wp_f2b_ver;
278
+
279
+ if (empty($wp_f2b_ver)) {
280
+ $wp_f2b_ver = substr(WP_FAIL2BAN_VER, 0, strrpos(WP_FAIL2BAN_VER, '.'));
281
+ }
282
+
283
+ return sprintf('<a href="https://docs.wp-fail2ban.com/en/%s/defines/constants/%s.html" style="text-decoration: none;" target="_blank" title="%s">%s<span class="dashicons dashicons-external" style="vertical-align: text-bottom"></span></a>', $wp_f2b_ver, $define, __('Documentation', 'wp-fail2ban'), $define);
284
+ }
285
+
286
+ /**
287
+ * Standard list of links to docs
288
+ *
289
+ * @since 4.3.0
290
+ *
291
+ * @param array $defines List of defines
292
+ * @return string HTML
293
+ */
294
+ protected function see_also(array $defines)
295
+ {
296
+ return sprintf(
297
+ '<p><em>%s</em>&nbsp;&nbsp;%s',
298
+ __('See also:', 'wp-fail2ban'),
299
+ implode('&nbsp;/&nbsp;', array_map(function ($i) {
300
+ return $this->doc_link($i);
301
+ }, $defines))
302
+ );
303
+ }
304
+
305
+ /**
306
+ * Helper - build drop-down list of facilities
307
+ *
308
+ * @since 4.3.0
309
+ *
310
+ * @param string $def Name of define for selected value
311
+ * @param string $str Opening select html
312
+ *
313
+ * @return string
314
+ */
315
+ protected function getLogFacilitiesOptions($def, $str)
316
+ {
317
+ $default = Config::get_default($def);
318
+ $value = Config::get($def);
319
+
320
+ foreach (ConvertData::$FacilityName2Value as $name => $facility) {
321
+ $str .= sprintf(
322
+ '<option value="%s" %s>%s%s</option>',
323
+ $facility,
324
+ selected($value, $facility, false),
325
+ $name,
326
+ ($facility == $default) ? __(' (default)') : ''
327
+ );
328
+ }
329
+ $str .= '</select>';
330
+
331
+ return $str;
332
+ }
333
+
334
+ /**
335
+ * Helper - drop-down list of facilities
336
+ *
337
+ * @since 4.3.0 Refactored.
338
+ * @since 4.0.0
339
+ *
340
+ * @param string $def Name of define for selected value
341
+ * @param bool $_enabled Enabled?
342
+ *
343
+ * @return string
344
+ */
345
+ protected function getLogFacilities($def, $_enabled = false)
346
+ {
347
+ return $this->getLogFacilitiesOptions($def, '<select disabled="disabled">');
348
+ }
349
+
350
+ /**
351
+ * Log helper - enable/disable+facility
352
+ *
353
+ * @since 4.3.0 Refactored
354
+ * @since 4.2.0 Moved to Tab
355
+ * @since 4.0.0
356
+ *
357
+ * @param string $define_name Name of define to enable logging
358
+ * @param string $define_log Name of define for log facility
359
+ * @param array $toggle Array of IDs to sync toggle state
360
+ * @param bool $echo Echo?
361
+ */
362
+ protected function log($define_name, $define_log, array $toggle = [], $echo = true)
363
+ {
364
+ $enabled = (true === Config::get($define_name)); // @TODO
365
+ $fmt = <<<___FMT___
366
+ <input type="checkbox" disabled="disabled" %s> <label>%s</label>,
367
+ <label>%s:</label> %s
368
  ___FMT___;
369
+ $html = sprintf(
370
+ $fmt,
371
+ checked($enabled, true, false),
372
+ __('Enable logging', 'wp-fail2ban'),
373
+ __('use facility', 'wp-fail2ban'),
374
+ $this->getLogFacilities($define_log)
375
+ );
376
+ $html .= sprintf('<p class="description">%s</p>', Config::desc($define_name));
377
+ $rv = apply_filters("wp_fail2ban_log_{$define_name}", $html, $define_name, $define_log);
378
+ if ($echo) {
379
+ echo $rv;
380
+ } else {
381
+ return $rv;
382
+ }
383
+ }
384
+
385
+ /**
386
+ * id="%s" Helper
387
+ *
388
+ * @since 4.3.0 Moved here.
389
+ * @since 4.0.0
390
+ *
391
+ * @param string $define
392
+ *
393
+ * @return string
394
+ */
395
+ protected function field_name($define)
396
+ {
397
+ global $wp_fail2ban;
398
+
399
+ return 'wp-fail2ban['.join('][', $wp_fail2ban['config'][$define]['field']).']';
400
+ }
401
+
402
+ /**
403
+ * name="%s" Helper
404
+ *
405
+ * @since 4.3.0 Moved here.
406
+ * @since 4.0.0
407
+ *
408
+ * @param string $define
409
+ *
410
+ * @return string
411
+ */
412
+ protected function field_id($define)
413
+ {
414
+ global $wp_fail2ban;
415
+
416
+ return join('-', $wp_fail2ban['config'][$define]['field']);
417
+ }
418
+
419
+ /**
420
+ * Helper: checked()
421
+ *
422
+ * @since 4.3.0
423
+ *
424
+ * @param string $define
425
+ * @param bool $current
426
+ * @param bool $echo
427
+ * @return mixed
428
+ */
429
+ protected function def_checked($define, $current = true, $echo = true)
430
+ {
431
+ return checked(Config::get($define), $current, $echo);
432
+ }
433
+
434
+ /**
435
+ * NDEF disabled helper
436
+ *
437
+ * @since 4.3.0 Add $override; moved here.
438
+ * @since 4.0.0
439
+ *
440
+ * @param string $define
441
+ * @param bool $override
442
+ * @return string
443
+ */
444
+ protected function ndef_disabled($define, $override = false)
445
+ {
446
+ return disabled(Config::def($define) || $override, true, false);
447
+ }
448
+
449
+ /**
450
+ * Display standard checkbox
451
+ *
452
+ * @since 4.3.0
453
+ *
454
+ * @param string $define Constant
455
+ * @param bool $show_desc Show description?
456
+ * @param string $plan Freemius plan
457
+ * @param bool $echo Echo?
458
+ *
459
+ * @return string
460
+ */
461
+ protected function checkbox($define, $show_desc = true, $plan = 'bronze', $echo = true)
462
+ {
463
+ $html = sprintf(
464
+ '<input type="checkbox" disabled="disabled" %s>',
465
+ checked(constant($define), true, false)
466
+ );
467
+ if ($show_desc) {
468
+ $html = '<label>'.$html.' '.$this->description($define, false).'</label>';
469
+ }
470
+ if ($echo) {
471
+ echo $html;
472
+ }
473
+ return $html;
474
+ }
475
+
476
+ /**
477
+ * Helper: setting description
478
+ *
479
+ * @since 4.3.0
480
+ *
481
+ * @param string $define
482
+ * @param bool $echo
483
+ *
484
+ * @return string
485
+ */
486
+ protected function description($define, $echo = true)
487
+ {
488
+ if (!is_null($desc = Config::desc($define))) {
489
+ if ($echo) {
490
+ echo '<p class="description">'.$desc.'</p>';
491
+ }
492
+ return $desc;
493
+ } else {
494
+ return '';
495
+ }
496
+ }
497
  }
498
+ }
499
 
 
admin/tools.php ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Tools
4
+ *
5
+ * @package wp-fail2ban
6
+ * @since 4.3.0
7
+ */
8
+ namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
+
10
+ if (defined('ABSPATH')) {
11
+ /**
12
+ * Proxy for api.wp-fail2ban.com
13
+ *
14
+ * @since 4.2.6
15
+ */
16
+ function remote_tools()
17
+ {
18
+ global $current_user;
19
+
20
+ ?>
21
+ <div class="wrap">
22
+ <h1><?=__('Remote Tools (&beta;)', 'wp-fail2ban')?></h1>
23
+ <hr class="wp-header-end">
24
+ <?php
25
+ if (function_exists(__NAMESPACE__.'\addons\remote_tools\tab')) {
26
+ addons\remote_tools\tab();
27
+ } else {
28
+ ?>
29
+ <h2 class="nav-tab-wrapper wp-clearfix">
30
+ <a class="nav-tab nav-tab-active" href="#"><?=__('Overview', 'wp-fail2ban')?></a>
31
+ </h2>
32
+ <div class="card">
33
+ <h2>Remote Tools Add-on</h2>
34
+ <p>This add-on provides features that make life with WP fail2ban easier, all from a remote server. This gives access to valuable but infrequently used tools without bloating the core plugin.</p>
35
+ <p>The first of these is a <strong>Custom Filter Tool</strong> (CFT).</p>
36
+ <blockquote>
37
+ <p>The filter files included are intended only as a starting point for those who want <em>WPf2b</em> to work &ldquo;out of the box&rdquo;.</p>
38
+ <p>There is no &ldquo;one size fits all&rdquo; configuration possible for <em>fail2ban</em> - what may be a soft failure for one site should be treated as a hard failure for another, and vice versa.</p>
39
+ </blockquote>
40
+ <p>You could simply edit the filter files included, but it&lsquo;s surprisingly easy to make a mistake; I learned this the hard way with earlier versions of <em>WPf2b</em>.... The CFT removes most of the opportunities for human error - always a good thing!</p>
41
+ <hr>
42
+ <p>The Remote Tools Add-on is available from the <a href="<?php echo admin_url('admin.php?page=wp-fail2ban-addons') ?>">Add-Ons menu</a>.</p>
43
+ </div>
44
+ <?php
45
+ }
46
+
47
+ ?>
48
+ </div>
49
+ <?php
50
+ }
51
+ }
52
+
assets/icon.svg ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="-4 -4 40 40" stroke-width="0" fill="#fff">
3
+ <style>svg { background-color: #180c30; }</style>
4
+ <path d="M16,0 l6.5,6.5 l-3.5,3.5 l-3,-3 l-9,9 l3,3 l-3.5,3.5 L0,16 z" />
5
+ <path d="M0,31 L31,0 L32,1 L1,32 z" />
6
+ <path d="M16,32 L32,16 l-6.5,-6.5 l-3.5,3.5 l3,3 l-9,9 l-3,-3 l-3.5,3.5 z" />
7
+ </svg>
assets/menu.svg ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="-1 -1 34 34" fill="#fff" stroke="#fff" width="20" height="20">
3
+ <path d="M16,0 l7,7 l-4,4 l-3,-3 l-8,8 l3,3 l-4,4 l-7,-7 z"/>
4
+ <path d="M16,32 l16,-16 l-7,-7 l-4,4 l3,3 l-8,8 l-3,-3 l-4,4 z"/>
5
+ <path d="M2,31 l-1,-1 l29,-29 l1,1 z"/>
6
+ </svg>
7
+
feature/comments.php CHANGED
@@ -1,5 +1,4 @@
1
  <?php
2
-
3
  /**
4
  * Comment logging
5
  *
@@ -8,186 +7,176 @@
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- /**
15
- * @since 4.0.5 Guard
16
- */
17
 
18
- if ( !function_exists( __NAMESPACE__ . '\\notify_post_author' ) ) {
19
  /**
20
- * Log new comment
21
- *
22
- * @since 3.5.0
23
- *
24
- * @param bool $maybe_notify
25
- * @param int $comment_ID
26
- *
27
- * @return bool
28
- *
29
- * @wp-f2b-extra Comment \d+
30
  */
31
- function notify_post_author( $maybe_notify, $comment_ID )
32
- {
33
- openlog( 'WP_FAIL2BAN_COMMENT_LOG' );
34
- syslog( LOG_INFO, "Comment {$comment_ID}" );
35
- closelog();
36
- // @codeCoverageIgnoreEnd
37
- return $maybe_notify;
38
- }
39
-
40
- add_filter(
41
- 'notify_post_author',
42
- __NAMESPACE__ . '\\notify_post_author',
43
- 10,
44
- 2
45
- );
46
- }
47
-
48
-
49
- if ( defined( 'WP_FAIL2BAN_LOG_COMMENTS_EXTRA' ) ) {
50
- /** WPF2B_EVENT_COMMENT_NOT_FOUND */
51
- if ( WP_FAIL2BAN_LOG_COMMENTS_EXTRA & 0x20002 ) {
52
  /**
53
- * @since 4.0.5 Guard
 
 
 
 
 
 
 
 
 
54
  */
55
-
56
- if ( !function_exists( __NAMESPACE__ . '\\comment_id_not_found' ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  /**
58
- * Log attempted comment on non-existent post
59
- *
60
- * @since 4.0.0
61
- *
62
- * @param int $comment_post_ID
63
- *
64
- * @wp-f2b-extra Comment post not found \d+
65
  */
66
- function comment_id_not_found( $comment_post_ID )
67
- {
68
- openlog( 'WP_FAIL2BAN_COMMENT_EXTRA_LOG' );
69
- syslog( LOG_NOTICE, "Comment post not found {$comment_post_ID}" );
70
- closelog();
71
- // @codeCoverageIgnoreEnd
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  }
73
-
74
- add_action( 'comment_id_not_found', __NAMESPACE__ . '\\comment_id_not_found' );
75
  }
76
-
77
- }
78
- /** LOG_ACTION_LOG_COMMENT_CLOSED */
79
- if ( WP_FAIL2BAN_LOG_COMMENTS_EXTRA & 0x20004 ) {
80
- /**
81
- * @since 4.0.5 Guard
82
- */
83
-
84
- if ( !function_exists( __NAMESPACE__ . '\\comment_closed' ) ) {
85
  /**
86
- * Log attempted comment on closed post
87
- *
88
- * @since 4.0.0
89
- *
90
- * @param int $comment_post_ID
91
- *
92
- * @wp-f2b-extra Comments closed on post \d+
93
  */
94
- function comment_closed( $comment_post_ID )
95
- {
96
- openlog( 'WP_FAIL2BAN_COMMENT_EXTRA_LOG' );
97
- syslog( LOG_NOTICE, "Comments closed on post {$comment_post_ID}" );
98
- closelog();
99
- // @codeCoverageIgnoreEnd
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  }
101
-
102
- add_action( 'comment_closed', __NAMESPACE__ . '\\comment_closed' );
103
  }
104
-
105
- }
106
- /** LOG_ACTION_LOG_COMMENT_TRASH */
107
- if ( WP_FAIL2BAN_LOG_COMMENTS_EXTRA & 0x20008 ) {
108
- /**
109
- * @since 4.0.5 Guard
110
- */
111
-
112
- if ( !function_exists( __NAMESPACE__ . '\\comment_on_trash' ) ) {
113
  /**
114
- * Log attempted comment on trashed post
115
- *
116
- * @since 4.0.2 Fix message
117
- * @since 4.0.0
118
- *
119
- * @param int $comment_post_ID
120
- *
121
- * @wp-f2b-extra Comment attempt on trash post \d+
122
  */
123
- function comment_on_trash( $comment_post_ID )
124
- {
125
- openlog( 'WP_FAIL2BAN_COMMENT_EXTRA_LOG' );
126
- syslog( LOG_NOTICE, "Comment attempt on trash post {$comment_post_ID}" );
127
- closelog();
128
- // @codeCoverageIgnoreEnd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
  }
130
-
131
- add_action( 'comment_on_trash', __NAMESPACE__ . '\\comment_on_trash' );
132
  }
133
-
134
- }
135
- /** LOG_ACTION_LOG_COMMENT_DRAFT */
136
- if ( WP_FAIL2BAN_LOG_COMMENTS_EXTRA & 0x20010 ) {
137
- /**
138
- * @since 4.0.5 Guard
139
- */
140
-
141
- if ( !function_exists( __NAMESPACE__ . '\\comment_on_draft' ) ) {
142
  /**
143
- * Log attempted comment on draft post
144
- *
145
- * @since 4.0.2 Fix message
146
- * @since 4.0.0
147
- *
148
- * @param int $comment_post_ID
149
- *
150
- * @wp-f2b-extra Comment attempt on draft post \d+
151
  */
152
- function comment_on_draft( $comment_post_ID )
153
- {
154
- openlog( 'WP_FAIL2BAN_COMMENT_EXTRA_LOG' );
155
- syslog( LOG_NOTICE, "Comment attempt on draft post {$comment_post_ID}" );
156
- closelog();
157
- // @codeCoverageIgnoreEnd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
158
  }
159
-
160
- add_action( 'comment_on_draft', __NAMESPACE__ . '\\comment_on_draft' );
161
  }
162
-
163
- }
164
- /** LOG_ACTION_LOG_COMMENT_PASSWORD */
165
- if ( WP_FAIL2BAN_LOG_COMMENTS_EXTRA & 0x20020 ) {
166
- /**
167
- * @since 4.0.5 Guard
168
- */
169
-
170
- if ( !function_exists( __NAMESPACE__ . '\\comment_on_password_protected' ) ) {
171
  /**
172
- * Log attempted comment on password-protected post
173
- *
174
- * @since 4.0.2 Fix message
175
- * @since 4.0.0
176
- *
177
- * @param int $comment_post_ID
178
- *
179
- * @wp-f2b-extra Comment attempt on password-protected post \d+
180
  */
181
- function comment_on_password_protected( $comment_post_ID )
182
- {
183
- openlog( 'WP_FAIL2BAN_COMMENT_EXTRA_LOG' );
184
- syslog( LOG_NOTICE, "Comment attempt on password-protected post {$comment_post_ID}" );
185
- closelog();
186
- // @codeCoverageIgnoreEnd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
187
  }
188
-
189
- add_action( 'comment_on_password_protected', __NAMESPACE__ . '\\comment_on_password_protected' );
190
  }
191
-
192
  }
193
  }
 
1
  <?php
 
2
  /**
3
  * Comment logging
4
  *
7
  */
8
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
+ if (defined('ABSPATH')) {
11
+ include_once_exists(WP_FAIL2BAN_DIR.'/premium/feature/comments.php');
 
 
 
 
12
 
 
13
  /**
14
+ * @since 4.0.5 Guard
 
 
 
 
 
 
 
 
 
15
  */
16
+ if (!function_exists(__NAMESPACE__.'\notify_post_author')) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  /**
18
+ * Log new comment
19
+ *
20
+ * @since 3.5.0
21
+ *
22
+ * @param bool $maybe_notify
23
+ * @param int $comment_ID
24
+ *
25
+ * @return bool
26
+ *
27
+ * @wp-f2b-extra Comment \d+
28
  */
29
+ function notify_post_author($maybe_notify, $comment_ID)
30
+ {
31
+ openlog('WP_FAIL2BAN_COMMENT_LOG');
32
+ syslog(LOG_INFO, "Comment {$comment_ID}");
33
+ closelog();
34
+
35
+ do_action(__FUNCTION__, $maybe_notify, $comment_ID);
36
+
37
+ return $maybe_notify;
38
+ }
39
+ add_filter('notify_post_author', __NAMESPACE__.'\notify_post_author', 10, 2);
40
+ }
41
+
42
+ if (defined('WP_FAIL2BAN_LOG_COMMENTS_EXTRA')) {
43
+ /** WPF2B_EVENT_COMMENT_NOT_FOUND */
44
+ if (WP_FAIL2BAN_LOG_COMMENTS_EXTRA & 0x00020002) {
45
  /**
46
+ * @since 4.0.5 Guard
 
 
 
 
 
 
47
  */
48
+ if (!function_exists(__NAMESPACE__.'\comment_id_not_found')) {
49
+ /**
50
+ * Log attempted comment on non-existent post
51
+ *
52
+ * @since 4.0.0
53
+ *
54
+ * @param int $comment_post_ID
55
+ *
56
+ * @wp-f2b-extra Comment post not found \d+
57
+ */
58
+ function comment_id_not_found($comment_post_ID)
59
+ {
60
+ openlog('WP_FAIL2BAN_COMMENT_EXTRA_LOG');
61
+ syslog(LOG_NOTICE, "Comment post not found {$comment_post_ID}");
62
+ closelog();
63
+
64
+ do_action(__FUNCTION__, $comment_post_ID);
65
+ }
66
+ add_action('comment_id_not_found', __NAMESPACE__.'\comment_id_not_found');
67
  }
 
 
68
  }
69
+
70
+ /** LOG_ACTION_LOG_COMMENT_CLOSED */
71
+ if (WP_FAIL2BAN_LOG_COMMENTS_EXTRA & 0x00020004) {
 
 
 
 
 
 
72
  /**
73
+ * @since 4.0.5 Guard
 
 
 
 
 
 
74
  */
75
+ if (!function_exists(__NAMESPACE__.'\comment_closed')) {
76
+ /**
77
+ * Log attempted comment on closed post
78
+ *
79
+ * @since 4.0.0
80
+ *
81
+ * @param int $comment_post_ID
82
+ *
83
+ * @wp-f2b-extra Comments closed on post \d+
84
+ */
85
+ function comment_closed($comment_post_ID)
86
+ {
87
+ openlog('WP_FAIL2BAN_COMMENT_EXTRA_LOG');
88
+ syslog(LOG_NOTICE, "Comments closed on post {$comment_post_ID}");
89
+ closelog();
90
+
91
+ do_action(__FUNCTION__, $comment_post_ID);
92
+ }
93
+ add_action('comment_closed', __NAMESPACE__.'\comment_closed');
94
  }
 
 
95
  }
96
+
97
+ /** LOG_ACTION_LOG_COMMENT_TRASH */
98
+ if (WP_FAIL2BAN_LOG_COMMENTS_EXTRA & 0x00020008) {
 
 
 
 
 
 
99
  /**
100
+ * @since 4.0.5 Guard
 
 
 
 
 
 
 
101
  */
102
+ if (!function_exists(__NAMESPACE__.'\comment_on_trash')) {
103
+ /**
104
+ * Log attempted comment on trashed post
105
+ *
106
+ * @since 4.0.2 Fix message
107
+ * @since 4.0.0
108
+ *
109
+ * @param int $comment_post_ID
110
+ *
111
+ * @wp-f2b-extra Comment attempt on trash post \d+
112
+ */
113
+ function comment_on_trash($comment_post_ID)
114
+ {
115
+ openlog('WP_FAIL2BAN_COMMENT_EXTRA_LOG');
116
+ syslog(LOG_NOTICE, "Comment attempt on trash post {$comment_post_ID}");
117
+ closelog();
118
+
119
+ do_action(__FUNCTION__, $comment_post_ID);
120
+ }
121
+ add_action('comment_on_trash', __NAMESPACE__.'\comment_on_trash');
122
  }
 
 
123
  }
124
+
125
+ /** LOG_ACTION_LOG_COMMENT_DRAFT */
126
+ if (WP_FAIL2BAN_LOG_COMMENTS_EXTRA & 0x00020010) {
 
 
 
 
 
 
127
  /**
128
+ * @since 4.0.5 Guard
 
 
 
 
 
 
 
129
  */
130
+ if (!function_exists(__NAMESPACE__.'\comment_on_draft')) {
131
+ /**
132
+ * Log attempted comment on draft post
133
+ *
134
+ * @since 4.0.2 Fix message
135
+ * @since 4.0.0
136
+ *
137
+ * @param int $comment_post_ID
138
+ *
139
+ * @wp-f2b-extra Comment attempt on draft post \d+
140
+ */
141
+ function comment_on_draft($comment_post_ID)
142
+ {
143
+ openlog('WP_FAIL2BAN_COMMENT_EXTRA_LOG');
144
+ syslog(LOG_NOTICE, "Comment attempt on draft post {$comment_post_ID}");
145
+ closelog();
146
+
147
+ do_action(__FUNCTION__, $comment_post_ID);
148
+ }
149
+ add_action('comment_on_draft', __NAMESPACE__.'\comment_on_draft');
150
  }
 
 
151
  }
152
+
153
+ /** LOG_ACTION_LOG_COMMENT_PASSWORD */
154
+ if (WP_FAIL2BAN_LOG_COMMENTS_EXTRA & 0x00020020) {
 
 
 
 
 
 
155
  /**
156
+ * @since 4.0.5 Guard
 
 
 
 
 
 
 
157
  */
158
+ if (!function_exists(__NAMESPACE__.'\comment_on_password_protected')) {
159
+ /**
160
+ * Log attempted comment on password-protected post
161
+ *
162
+ * @since 4.0.2 Fix message
163
+ * @since 4.0.0
164
+ *
165
+ * @param int $comment_post_ID
166
+ *
167
+ * @wp-f2b-extra Comment attempt on password-protected post \d+
168
+ */
169
+ function comment_on_password_protected($comment_post_ID)
170
+ {
171
+ openlog('WP_FAIL2BAN_COMMENT_EXTRA_LOG');
172
+ syslog(LOG_NOTICE, "Comment attempt on password-protected post {$comment_post_ID}");
173
+ closelog();
174
+
175
+ do_action(__FUNCTION__, $comment_post_ID);
176
+ }
177
+ add_action('comment_on_password_protected', __NAMESPACE__.'\comment_on_password_protected');
178
  }
 
 
179
  }
 
180
  }
181
  }
182
+
feature/lib.php CHANGED
@@ -1,5 +1,4 @@
1
  <?php
2
-
3
  /**
4
  * Library functions
5
  *
@@ -8,130 +7,171 @@
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- /**
15
- * Wrapper for \openlog
16
- *
17
- * @since 3.5.0 Refactored for unit testing
18
- *
19
- * @param string $log
20
- */
21
- function openlog( $log = 'WP_FAIL2BAN_AUTH_LOG' )
22
- {
23
- $tag = ( defined( 'WP_FAIL2BAN_SYSLOG_SHORT_TAG' ) && true === WP_FAIL2BAN_SYSLOG_SHORT_TAG ? 'wp' : 'wordpress' );
24
- $host = ( array_key_exists( 'WP_FAIL2BAN_HTTP_HOST', $_ENV ) ? $_ENV['WP_FAIL2BAN_HTTP_HOST'] : $_SERVER['HTTP_HOST'] );
25
  /**
26
- * Some varieties of syslogd have difficulty if $host is too long
27
- * @since 3.5.0
 
 
 
 
 
28
  */
29
- if ( defined( 'WP_FAIL2BAN_TRUNCATE_HOST' ) && 1 < intval( WP_FAIL2BAN_TRUNCATE_HOST ) ) {
30
- $host = substr( $host, 0, intval( WP_FAIL2BAN_TRUNCATE_HOST ) );
 
 
 
31
  }
32
-
33
- if ( false === \openlog( "{$tag}({$host})", WP_FAIL2BAN_OPENLOG_OPTIONS, constant( $log ) ) ) {
34
- error_log( 'WPf2b: Cannot open syslog', 0 );
35
- // @codeCoverageIgnore
36
- } elseif ( defined( 'WP_FAIL2BAN_TRACE' ) ) {
37
- error_log( 'WPf2b: Opened syslog', 0 );
38
- // @codeCoverageIgnore
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  }
40
 
41
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
 
43
- /**
44
- * Wrapper for \syslog
45
- *
46
- * @since 3.5.0
47
- *
48
- * @param int $level
49
- * @param string $msg
50
- * @param string|null $remote_addr
51
- */
52
- function syslog( $level, $msg, $remote_addr = null )
53
- {
54
- $msg .= ' from ';
55
- $msg .= ( is_null( $remote_addr ) ? remote_addr() : $remote_addr );
56
-
57
- if ( false === \syslog( $level, $msg ) ) {
58
- error_log( "WPf2b: Cannot write to syslog: '{$msg}'", 0 );
59
- // @codeCoverageIgnore
60
- } elseif ( defined( 'WP_FAIL2BAN_TRACE' ) ) {
61
- error_log( "WPf2b: Wrote to syslog: '{$msg}'", 0 );
62
- // @codeCoverageIgnore
63
- }
64
-
65
- \closelog();
66
- if ( defined( 'PHPUNIT_COMPOSER_INSTALL' ) ) {
67
- echo "{$level}|{$msg}" ;
68
  }
69
- }
70
 
71
- /**
72
- * Graceful immediate exit
73
- *
74
- * @since 4.2.7 Remove JSON support
75
- * @since 4.0.5 Add JSON support
76
- * @since 3.5.0 Refactored for unit testing
77
- */
78
- function bail()
79
- {
80
- wp_die( 'Forbidden', 'Forbidden', array(
81
- 'response' => 403,
82
- ) );
83
- }
 
 
 
 
 
 
 
84
 
85
- /**
86
- * Compute remote IP address
87
- *
88
- * @return string
89
- *
90
- * @todo Test me!
91
- * @codeCoverageIgnore
92
- */
93
- function remote_addr()
94
- {
95
- static $remote_addr = null ;
96
  /**
97
- * @since 4.0.0
 
 
 
 
 
98
  */
99
-
100
- if ( is_null( $remote_addr ) ) {
101
- if ( defined( 'WP_FAIL2BAN_PROXIES' ) ) {
102
-
103
- if ( array_key_exists( 'HTTP_X_FORWARDED_FOR', $_SERVER ) ) {
104
- $ip = ip2long( $_SERVER['REMOTE_ADDR'] );
105
- /**
106
- * PHP 7 lets you define an array
107
- * @since 3.5.4
108
- */
109
- $proxies = ( is_array( WP_FAIL2BAN_PROXIES ) ? WP_FAIL2BAN_PROXIES : explode( ',', WP_FAIL2BAN_PROXIES ) );
110
- foreach ( $proxies as $proxy ) {
111
-
112
- if ( '#' == $proxy[0] ) {
113
- continue;
114
- } elseif ( 2 == count( $cidr = explode( '/', $proxy ) ) ) {
115
- $net = ip2long( $cidr[0] );
116
- $mask = ~(pow( 2, 32 - $cidr[1] ) - 1);
117
- } else {
118
- $net = ip2long( $proxy );
119
- $mask = -1;
120
- }
121
-
122
- if ( $net == ($ip & $mask) ) {
123
- return ( false === ($len = strpos( $_SERVER['HTTP_X_FORWARDED_FOR'], ',' )) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : substr( $_SERVER['HTTP_X_FORWARDED_FOR'], 0, $len ) );
 
 
 
 
 
 
 
 
124
  }
125
  }
126
  }
127
-
 
 
 
 
 
 
 
128
  }
129
- /**
130
- * For plugins and themes that anonymise requests
131
- * @since 3.6.0
132
- */
133
- $remote_addr = ( defined( 'WP_FAIL2BAN_REMOTE_ADDR' ) ? WP_FAIL2BAN_REMOTE_ADDR : $_SERVER['REMOTE_ADDR'] );
134
  }
135
-
136
- return $remote_addr;
137
  }
 
1
  <?php
 
2
  /**
3
  * Library functions
4
  *
7
  */
8
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
+ if (defined('ABSPATH')) {
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  /**
12
+ * Helper.
13
+ *
14
+ * @since 4.3.0
15
+ *
16
+ * @param mixed $key
17
+ * @param array $ary
18
+ * @return mixed|null Array value if present, null otherwise.
19
  */
20
+ function array_value($key, array $ary)
21
+ {
22
+ return (array_key_exists($key, $ary))
23
+ ? $ary[$key]
24
+ : null;
25
  }
26
+
27
+ /**
28
+ * Wrapper for \openlog
29
+ *
30
+ * @since 3.5.0 Refactored for unit testing
31
+ *
32
+ * @param string $log
33
+ */
34
+ function openlog($log = 'WP_FAIL2BAN_AUTH_LOG')
35
+ {
36
+ $tag = (defined('WP_FAIL2BAN_SYSLOG_SHORT_TAG') && true === WP_FAIL2BAN_SYSLOG_SHORT_TAG)
37
+ ? 'wp' // @codeCoverageIgnore
38
+ : 'wordpress';
39
+ $host = (array_key_exists('WP_FAIL2BAN_HTTP_HOST', $_ENV))
40
+ ? $_ENV['WP_FAIL2BAN_HTTP_HOST'] // @codeCoverageIgnore
41
+ : $_SERVER['HTTP_HOST'];
42
+ if (is_multisite() && !SUBDOMAIN_INSTALL) {
43
+ /**
44
+ * @todo Test me!
45
+ * @codeCoverageIgnore
46
+ */
47
+ if (1 < ($blog_id = get_current_blog_id())) {
48
+ $blog = get_blog_details($blog_id, false);
49
+ $host .= '/'.trim($blog->path, '/');
50
+ }
51
+ }
52
+ /**
53
+ * Some varieties of syslogd have difficulty if $host is too long
54
+ * @since 3.5.0
55
+ */
56
+ if (defined('WP_FAIL2BAN_TRUNCATE_HOST') && 1 < intval(WP_FAIL2BAN_TRUNCATE_HOST)) {
57
+ $host = substr($host, 0, intval(WP_FAIL2BAN_TRUNCATE_HOST));
58
+ }
59
+ /**
60
+ * Refactor for unit testing.
61
+ * @since 4.3.0
62
+ */
63
+ $options = (defined('WP_FAIL2BAN_OPENLOG_OPTIONS')) ? WP_FAIL2BAN_OPENLOG_OPTIONS : null;
64
+ if (false === \openlog("$tag($host)", $options, constant($log))) {
65
+ error_log('WPf2b: Cannot open syslog', 0); // @codeCoverageIgnore
66
+ } elseif (defined('WP_FAIL2BAN_TRACE')) {
67
+ error_log('WPf2b: Opened syslog', 0); // @codeCoverageIgnore
68
+ }
69
  }
70
 
71
+ /**
72
+ * Wrapper for \syslog
73
+ *
74
+ * @since 3.5.0
75
+ *
76
+ * @param int $level
77
+ * @param string $msg
78
+ * @param string|null $remote_addr
79
+ */
80
+ function syslog($level, $msg, $remote_addr = null)
81
+ {
82
+ $msg .= ' from ';
83
+ $msg .= (is_null($remote_addr))
84
+ ? remote_addr()
85
+ : $remote_addr;
86
 
87
+ if (false === \syslog($level, $msg)) {
88
+ error_log("WPf2b: Cannot write to syslog: '{$msg}'", 0); // @codeCoverageIgnore
89
+ } elseif (defined('WP_FAIL2BAN_TRACE')) {
90
+ error_log("WPf2b: Wrote to syslog: '{$msg}'", 0); // @codeCoverageIgnore
91
+ }
92
+ \closelog();
93
+
94
+ if (defined('PHPUNIT_COMPOSER_INSTALL')) {
95
+ echo "$level|$msg";
96
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
  }
 
98
 
99
+ /**
100
+ * Graceful immediate exit
101
+ *
102
+ * @since 4.3.0 Remove JSON support
103
+ * @since 4.0.5 Add JSON support
104
+ * @since 3.5.0 Refactored for unit testing
105
+ *
106
+ * @param bool $is_json
107
+ */
108
+ function bail()
109
+ {
110
+ \wp_die('Forbidden', 'Forbidden', array('exit' => false, 'response' => 403));
111
+
112
+ if (defined('PHPUNIT_COMPOSER_INSTALL')) {
113
+ return false; // for testing
114
+ } else {
115
+ exit;
116
+ }
117
+ } // @codeCoverageIgnore
118
+
119
 
 
 
 
 
 
 
 
 
 
 
 
120
  /**
121
+ * Compute remote IP address
122
+ *
123
+ * @return string
124
+ *
125
+ * @todo Test me!
126
+ * @codeCoverageIgnore
127
  */
128
+ function remote_addr()
129
+ {
130
+ static $remote_addr = null;
131
+
132
+ /**
133
+ * @since 4.0.0
134
+ */
135
+ if (is_null($remote_addr)) {
136
+ if (defined('WP_FAIL2BAN_PROXIES')) {
137
+ if (array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER)) {
138
+ $ip = ip2long($_SERVER['REMOTE_ADDR']);
139
+ /**
140
+ * PHP 7 lets you define an array
141
+ * @since 3.5.4
142
+ */
143
+ $proxies = (is_array(WP_FAIL2BAN_PROXIES))
144
+ ? WP_FAIL2BAN_PROXIES
145
+ : explode(',', WP_FAIL2BAN_PROXIES);
146
+ foreach ($proxies as $proxy) {
147
+ if ('#' == $proxy[0]) {
148
+ continue;
149
+ } elseif (2 == count($cidr = explode('/', $proxy))) {
150
+ $net = ip2long($cidr[0]);
151
+ $mask = ~ ( pow(2, (32 - $cidr[1])) - 1 );
152
+ } else {
153
+ $net = ip2long($proxy);
154
+ $mask = -1;
155
+ }
156
+ if ($net == ($ip & $mask)) {
157
+ return (false === ($len = strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',')))
158
+ ? $_SERVER['HTTP_X_FORWARDED_FOR']
159
+ : substr($_SERVER['HTTP_X_FORWARDED_FOR'], 0, $len);
160
+ }
161
  }
162
  }
163
  }
164
+
165
+ /**
166
+ * For plugins and themes that anonymise requests
167
+ * @since 3.6.0
168
+ */
169
+ $remote_addr = (defined('WP_FAIL2BAN_REMOTE_ADDR'))
170
+ ? WP_FAIL2BAN_REMOTE_ADDR
171
+ : $_SERVER['REMOTE_ADDR'];
172
  }
173
+
174
+ return $remote_addr;
 
 
 
175
  }
 
 
176
  }
177
+
feature/password.php CHANGED
@@ -1,5 +1,4 @@
1
  <?php
2
-
3
  /**
4
  * Password-related functionality
5
  *
@@ -8,30 +7,31 @@
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- /**
15
- * @since 4.0.5
16
- */
17
 
18
- if ( !function_exists( __NAMESPACE__ . '\\retrieve_password' ) ) {
19
  /**
20
- * Log password reset requests
21
- *
22
- * @since 3.5.0
23
- *
24
- * @param string $user_login
25
- *
26
- * @wp-f2b-extra Password reset requested for .*
27
  */
28
- function retrieve_password( $user_login )
29
- {
30
- openlog( 'WP_FAIL2BAN_PASSWORD_REQUEST_LOG' );
31
- syslog( LOG_NOTICE, "Password reset requested for {$user_login}" );
32
- closelog();
33
- // @codeCoverageIgnoreEnd
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  }
35
-
36
- add_action( 'retrieve_password', __NAMESPACE__ . '\\retrieve_password' );
37
  }
 
1
  <?php
 
2
  /**
3
  * Password-related functionality
4
  *
7
  */
8
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
+ if (defined('ABSPATH')) {
11
+ include_once_exists(WP_FAIL2BAN_DIR.'/premium/feature/password.php');
 
 
 
 
12
 
 
13
  /**
14
+ * @since 4.0.5
 
 
 
 
 
 
15
  */
16
+ if (!function_exists(__NAMESPACE__.'\retrieve_password')) {
17
+ /**
18
+ * Log password reset requests
19
+ *
20
+ * @since 3.5.0
21
+ *
22
+ * @param string $user_login
23
+ *
24
+ * @wp-f2b-extra Password reset requested for .*
25
+ */
26
+ function retrieve_password($user_login)
27
+ {
28
+ openlog('WP_FAIL2BAN_PASSWORD_REQUEST_LOG');
29
+ syslog(LOG_NOTICE, "Password reset requested for {$user_login}");
30
+ closelog();
31
+
32
+ do_action(__FUNCTION__, $user_login);
33
+ }
34
+ add_action('retrieve_password', __NAMESPACE__.'\retrieve_password');
35
  }
 
 
36
  }
37
+
feature/plugins.php CHANGED
@@ -1,233 +1,255 @@
1
  <?php
2
-
3
  /**
4
  * Library functions
5
  *
6
  * @package wp-fail2ban
7
- * @since 4.2.0
 
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- /**
15
- * Hook: plugins_loaded
16
- *
17
- * @since 4.2.0
18
- */
19
- function plugins_loaded()
20
- {
21
- do_action( 'wp_fail2ban_register' );
22
- }
23
 
24
- add_action( 'plugins_loaded', __NAMESPACE__ . '\\plugins_loaded' );
25
- /**
26
- * Register plugin
27
- *
28
- * @since 4.2.0
29
- *
30
- * @param string $slug Plugin slug. This must be the actual plugin slug. Maximum length is 255 which should be more than enough.
31
- * @param string $name Plugin display name. This should be an unescaped string - HTML is allowed.
32
- *
33
- * @return int|false ID
34
- */
35
- function register_plugin( $slug, $name )
36
- {
37
- global $wp_fail2ban, $wpdb ;
38
- if ( 255 < strlen( $slug ) ) {
39
- throw new \LengthException( 'slug too long' );
40
- }
41
- if ( 255 < strlen( $name ) ) {
42
- throw new \LengthException( 'name too long' );
43
- }
44
- if ( !is_array( @$wp_fail2ban['plugins'] ) ) {
45
- $wp_fail2ban['plugins'] = [];
46
- }
47
- if ( array_key_exists( $slug, $wp_fail2ban['plugins'] ) ) {
48
- return $wp_fail2ban['plugins'][$slug];
49
- }
50
- static $id = 0 ;
51
- return $wp_fail2ban['plugins'][$slug] = [
52
- 'id' => ++$id,
53
- 'name' => $name,
54
- 'messages' => [],
55
- ];
56
- }
57
 
58
- add_action(
59
- 'wp_fail2ban_register_plugin',
60
- __NAMESPACE__ . '\\register_plugin',
61
- 1,
62
- 2
63
- );
64
- /**
65
- * Check if plugin is registered.
66
- *
67
- * @since 4.2.0
68
- *
69
- * @param string $plugin_slug
70
- *
71
- * @return bool
72
- */
73
- function is_registered_plugin( $plugin_slug )
74
- {
75
- global $wp_fail2ban ;
76
- return array_key_exists( $plugin_slug, $wp_fail2ban['plugins'] );
77
- }
78
 
79
- /**
80
- * Register plugin message.
81
- *
82
- * @since 4.2.0
83
- *
84
- * @param string $plugin_slug
85
- * @param array $msg [
86
- * string slug: Message slug
87
- * string fail: hard|soft|extra
88
- * int facility: syslog facility
89
- * int priority: syslog priority
90
- * string event_class: Event Class
91
- * int event_id: Event ID
92
- * string message: Message with placeholders
93
- * HOST: Remote IP
94
- * USER: Current user name
95
- * array vars: Array of [name => regex] pairs
96
- */
97
- function register_message( $plugin_slug, array $msg )
98
- {
99
- global $wp_fail2ban ;
100
- $event_classes = [
101
- 'auth' => WPF2B_EVENT_CLASS_AUTH,
102
- 'comment' => WPF2B_EVENT_CLASS_COMMENT,
103
- 'password' => WPF2B_EVENT_CLASS_PASSWORD,
104
- 'rest' => WPF2B_EVENT_CLASS_REST,
105
- 'spam' => WPF2B_EVENT_CLASS_SPAM,
106
- 'xmlrpc' => WPF2B_EVENT_CLASS_XMLRPC,
107
- 'other' => 0,
108
- ];
109
- $args = [];
110
- if ( !is_registered_plugin( $plugin_slug ) ) {
111
- throw new \InvalidArgumentException( 'plugin not registered' );
112
- }
113
- if ( !array_key_exists( 'slug', $msg ) ) {
114
- throw new \InvalidArgumentException( "Missing 'slug'" );
115
- }
116
- if ( !is_string( $msg['slug'] ) ) {
117
- throw new \InvalidArgumentException( "'slug' must be string" );
118
- }
119
- if ( !array_key_exists( 'fail', $msg ) ) {
120
- throw new \InvalidArgumentException( "Missing 'fail'" );
121
- }
122
- if ( !in_array( $msg['fail'], [ 'hard', 'soft', 'extra' ] ) ) {
123
- throw new \UnexpectedValueException( "'fail' must be one of 'hard', 'soft', 'extra'" );
124
- }
125
- $args['fail'] = $msg['fail'];
126
- if ( !array_key_exists( 'priority', $msg ) ) {
127
- throw new \InvalidArgumentException( "Missing 'priority'" );
128
- }
129
- if ( !in_array( $msg['priority'], [
130
- LOG_CRIT,
131
- LOG_ERR,
132
- LOG_WARNING,
133
- LOG_NOTICE,
134
- LOG_INFO,
135
- LOG_DEBUG
136
- ] ) ) {
137
- throw new \UnexpectedValueException( "Invalid 'priority'" );
138
- }
139
- $args['priority'] = $msg['priority'];
140
- if ( !array_key_exists( 'event_class', $msg ) ) {
141
- throw new \InvalidArgumentException( "Missing 'event_class'" );
142
- }
143
- if ( !array_key_exists( $event_class = strtolower( $msg['event_class'] ), $event_classes ) ) {
144
- throw new \UnexpectedValueException( "Invalid 'event_class'" );
145
- }
146
- $args['class'] = $event_class;
147
- $event_class = $event_classes[$event_class];
148
- $log = sprintf( "WP_FAIL2BAN_%s_LOG", strtoupper( $event_class ) );
149
- if ( !array_key_exists( 'event_id', $msg ) ) {
150
- throw new \InvalidArgumentException( "Missing 'event_id'" );
151
- }
152
- if ( ($msg['event_id'] & 0xffff) !== $msg['event_id'] ) {
153
- throw new \UnexpectedValueException( "Invalid 'event_id'" );
154
- }
155
- $args['event_id'] = WPF2B_EVENT_TYPE_PLUGIN | $event_class | $msg['event_id'];
156
- if ( !array_key_exists( 'message', $msg ) ) {
157
- throw new \InvalidArgumentException( "Missing 'message'" );
158
- }
159
- if ( !is_string( $msg['message'] ) ) {
160
- throw new \UnexpectedValueException( "Invalid 'message'" );
161
- }
162
- $args['message'] = $msg['message'];
163
- if ( !array_key_exists( 'vars', $msg ) ) {
164
- throw new \InvalidArgumentException( "Missing 'vars'" );
165
  }
166
- if ( !is_array( $msg['vars'] ) ) {
167
- throw new \UnexpectedValueException( "Invalid 'vars'" );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
  }
169
- $args['vars'] = $msg['vars'];
170
- $wp_fail2ban['plugins'][$plugin_slug]['messages'][$msg['slug']] = $args;
171
- }
172
 
173
- add_action(
174
- 'wp_fail2ban_register_message',
175
- __NAMESPACE__ . '\\register_message',
176
- 1,
177
- 2
178
- );
179
- /**
180
- * Check if message is registered.
181
- *
182
- * NB: Assumes plugin is registered.
183
- *
184
- * @since 4.2.0
185
- *
186
- * @param string $plugin_slug
187
- * @param string $message_slug
188
- *
189
- * @return bool
190
- */
191
- function is_registered_plugin_message( $plugin_slug, $message_slug )
192
- {
193
- global $wp_fail2ban ;
194
- return array_key_exists( $message_slug, $wp_fail2ban['plugins'][$plugin_slug]['messages'] );
195
- }
 
 
 
 
 
 
 
196
 
197
- /**
198
- * Log plugin message.
199
- *
200
- * @since 4.2.0
201
- *
202
- * @param string $plugin_slug Plugin slug for registered message
203
- * @param string $message_slug Message slug for registered message
204
- * @param array $vars Substitution vars
205
- */
206
- function log_message( $plugin_slug, $message_slug = null, array $vars = array() )
207
- {
208
- global $wp_fail2ban ;
209
- if ( !is_registered_plugin( $plugin_slug ) ) {
210
- throw new \InvalidArgumentException( 'plugin not registered' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
211
  }
212
- if ( !is_registered_plugin_message( $plugin_slug, $message_slug ) ) {
213
- throw new \InvalidArgumentException( 'message not registered' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
214
  }
215
- $args = $wp_fail2ban['plugins'][$plugin_slug]['messages'][$message_slug];
216
- $msg = $args['message'];
217
- foreach ( $args['vars'] as $name => $regex ) {
218
- if ( array_key_exists( $name, $vars ) ) {
219
- $msg = str_replace( "___{$name}___", $vars[$name], $msg );
 
 
 
 
 
 
 
 
 
 
 
220
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
221
  }
222
- openlog( sprintf( 'WP_FAIL2BAN_PLUGIN_%s_LOG', strtoupper( $args['class'] ) ) );
223
- syslog( $args['priority'], "({$plugin_slug}) {$msg}" );
224
- closelog();
225
- // @codeCoverageIgnoreEnd
226
  }
227
 
228
- add_action(
229
- 'wp_fail2ban_log_message',
230
- __NAMESPACE__ . '\\log_message',
231
- 1,
232
- 3
233
- );
1
  <?php
 
2
  /**
3
  * Library functions
4
  *
5
  * @package wp-fail2ban
6
+ * @since 4.2.0
7
+ * @php 5.6
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
+ if (defined('ABSPATH')) {
12
+ include_once_exists(WP_FAIL2BAN_DIR.'/premium/feature/plugins.php');
 
 
 
 
 
 
 
 
 
 
13
 
14
+ /**
15
+ * @since 4.2.0
16
+ */
17
+ global $wp_fail2ban;
18
+ $wp_fail2ban['plugins'] = array();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
 
20
+ /**
21
+ * Hook: plugins_loaded
22
+ *
23
+ * @codeCoverageIgnore
24
+ *
25
+ * @since 4.2.0
26
+ */
27
+ function wp_fail2ban_register()
28
+ {
29
+ do_action('wp_fail2ban_register');
30
+ }
31
+ add_action('plugins_loaded', __NAMESPACE__.'\wp_fail2ban_register');
 
 
 
 
 
 
 
 
32
 
33
+ /**
34
+ * Register plugin
35
+ *
36
+ * @since 4.2.0
37
+ *
38
+ * @param string $slug Plugin slug. This must be the actual plugin slug. Maximum length is 255 which should be more than enough.
39
+ * @param string $name Plugin display name. This should be an unescaped string - HTML is allowed.
40
+ *
41
+ * @return int|false ID
42
+ */
43
+ function register_plugin($slug, $name)
44
+ {
45
+ global $wp_fail2ban, $wpdb;
46
+
47
+ if (255 < strlen($slug)) {
48
+ throw new \LengthException('slug too long');
49
+ }
50
+
51
+ if (255 < strlen($name)) {
52
+ throw new \LengthException('name too long');
53
+ }
54
+
55
+ if (!is_array(@$wp_fail2ban['plugins'])) {
56
+ $wp_fail2ban['plugins'] = [];
57
+ }
58
+
59
+ if (array_key_exists($slug, $wp_fail2ban['plugins'])) {
60
+ return $wp_fail2ban['plugins'][$slug];
61
+ }
62
+
63
+ if (is_null($rv = apply_filters(__FUNCTION__, null, $slug, $name))) {
64
+ static $id = 0;
65
+
66
+ return ($wp_fail2ban['plugins'][$slug] = [
67
+ 'id' => ++$id,
68
+ 'name' => $name,
69
+ 'messages' => []
70
+ ]);
71
+ } else {
72
+ return $rv;
73
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  }
75
+ add_action('wp_fail2ban_register_plugin', __NAMESPACE__.'\register_plugin', 1, 2);
76
+
77
+ /**
78
+ * Check if plugin is registered.
79
+ *
80
+ * @since 4.2.0
81
+ *
82
+ * @param string $plugin_slug
83
+ *
84
+ * @return bool
85
+ */
86
+ function is_registered_plugin($plugin_slug)
87
+ {
88
+ global $wp_fail2ban;
89
+
90
+ return array_key_exists($plugin_slug, $wp_fail2ban['plugins']);
91
  }
 
 
 
92
 
93
+ /**
94
+ * Register plugin message.
95
+ *
96
+ * @since 4.2.0
97
+ *
98
+ * @param string $plugin_slug
99
+ * @param array $msg [
100
+ * string slug: Message slug
101
+ * string fail: hard|soft|extra
102
+ * int facility: syslog facility
103
+ * int priority: syslog priority
104
+ * string event_class: Event Class
105
+ * int event_id: Event ID
106
+ * string message: Message with placeholders
107
+ * HOST: Remote IP
108
+ * USER: Current user name
109
+ * array vars: Array of [name => regex] pairs
110
+ */
111
+ function register_message($plugin_slug, array $msg)
112
+ {
113
+ global $wp_fail2ban;
114
+ $event_classes = [
115
+ 'auth' => WPF2B_EVENT_CLASS_AUTH,
116
+ 'comment' => WPF2B_EVENT_CLASS_COMMENT,
117
+ 'password' => WPF2B_EVENT_CLASS_PASSWORD,
118
+ 'rest' => WPF2B_EVENT_CLASS_REST,
119
+ 'spam' => WPF2B_EVENT_CLASS_SPAM,
120
+ 'xmlrpc' => WPF2B_EVENT_CLASS_XMLRPC,
121
+ 'other' => 0
122
+ ];
123
 
124
+ $args = [];
125
+
126
+ if (!is_registered_plugin($plugin_slug)) {
127
+ throw new \InvalidArgumentException('plugin not registered');
128
+ }
129
+
130
+ if (!array_key_exists('slug', $msg)) {
131
+ throw new \InvalidArgumentException("Missing 'slug'");
132
+ }
133
+ if (!is_string($msg['slug'])) {
134
+ throw new \InvalidArgumentException("'slug' must be string");
135
+ }
136
+
137
+ if (!array_key_exists('fail', $msg)) {
138
+ throw new \InvalidArgumentException("Missing 'fail'");
139
+ }
140
+ if (!in_array($msg['fail'], ['hard', 'soft', 'extra'])) {
141
+ throw new \UnexpectedValueException("'fail' must be one of 'hard', 'soft', 'extra'");
142
+ }
143
+ $args['fail'] = $msg['fail'];
144
+
145
+ if (!array_key_exists('priority', $msg)) {
146
+ throw new \InvalidArgumentException("Missing 'priority'");
147
+ }
148
+ if (!in_array($msg['priority'], [
149
+ LOG_CRIT,
150
+ LOG_ERR,
151
+ LOG_WARNING,
152
+ LOG_NOTICE,
153
+ LOG_INFO,
154
+ LOG_DEBUG
155
+ ])) {
156
+ throw new \UnexpectedValueException("Invalid 'priority'");
157
+ }
158
+ $args['priority'] = $msg['priority'];
159
+
160
+ if (!array_key_exists('event_class', $msg)) {
161
+ throw new \InvalidArgumentException("Missing 'event_class'");
162
+ }
163
+ if (!array_key_exists($event_class = strtolower($msg['event_class']), $event_classes)) {
164
+ throw new \UnexpectedValueException("Invalid 'event_class'");
165
+ }
166
+ $args['class'] = $event_class;
167
+ $event_class = $event_classes[$event_class];
168
+
169
+ $log = sprintf("WP_FAIL2BAN_%s_LOG", strtoupper($event_class));
170
+
171
+ if (!array_key_exists('event_id', $msg)) {
172
+ throw new \InvalidArgumentException("Missing 'event_id'");
173
+ }
174
+ if (($msg['event_id'] & 0x0000FFFF) !== $msg['event_id']) {
175
+ throw new \UnexpectedValueException("Invalid 'event_id'");
176
+ }
177
+ $args['event_id'] = WPF2B_EVENT_TYPE_PLUGIN | $event_class | $msg['event_id'];
178
+
179
+ if (!array_key_exists('message', $msg)) {
180
+ throw new \InvalidArgumentException("Missing 'message'");
181
+ }
182
+ if (!is_string($msg['message'])) {
183
+ throw new \UnexpectedValueException("Invalid 'message'");
184
+ }
185
+ $args['message'] = $msg['message'];
186
+
187
+ if (!array_key_exists('vars', $msg)) {
188
+ throw new \InvalidArgumentException("Missing 'vars'");
189
+ }
190
+ if (!is_array($msg['vars'])) {
191
+ throw new \UnexpectedValueException("Invalid 'vars'");
192
+ }
193
+ $args['vars'] = $msg['vars'];
194
+
195
+ $wp_fail2ban['plugins'][$plugin_slug]['messages'][$msg['slug']] = $args;
196
  }
197
+ add_action('wp_fail2ban_register_message', __NAMESPACE__.'\register_message', 1, 2);
198
+
199
+ /**
200
+ * Check if message is registered.
201
+ *
202
+ * NB: Assumes plugin is registered.
203
+ *
204
+ * @since 4.2.0
205
+ *
206
+ * @param string $plugin_slug
207
+ * @param string $message_slug
208
+ *
209
+ * @return bool
210
+ */
211
+ function is_registered_plugin_message($plugin_slug, $message_slug)
212
+ {
213
+ global $wp_fail2ban;
214
+
215
+ return array_key_exists($message_slug, $wp_fail2ban['plugins'][$plugin_slug]['messages']);
216
  }
217
+
218
+ /**
219
+ * Log plugin message.
220
+ *
221
+ * @since 4.2.0
222
+ *
223
+ * @param string $plugin_slug Plugin slug for registered message
224
+ * @param string $message_slug Message slug for registered message
225
+ * @param array $vars Substitution vars
226
+ */
227
+ function log_message($plugin_slug, $message_slug = null, array $vars = [])
228
+ {
229
+ global $wp_fail2ban;
230
+
231
+ if (!is_registered_plugin($plugin_slug)) {
232
+ throw new \InvalidArgumentException('plugin not registered');
233
  }
234
+
235
+ if (!is_registered_plugin_message($plugin_slug, $message_slug)) {
236
+ throw new \InvalidArgumentException('message not registered');
237
+ }
238
+
239
+ $args = $wp_fail2ban['plugins'][$plugin_slug]['messages'][$message_slug];
240
+ $msg = $args['message'];
241
+ foreach ($args['vars'] as $name => $regex) {
242
+ if (array_key_exists($name, $vars)) {
243
+ $msg = str_replace("___{$name}___", $vars[$name], $msg);
244
+ }
245
+ }
246
+
247
+ openlog(sprintf('WP_FAIL2BAN_PLUGIN_%s_LOG', strtoupper($args['class'])));
248
+ syslog($args['priority'], "($plugin_slug) $msg");
249
+ closelog();
250
+
251
+ do_action(__FUNCTION__, $plugin_slug, $message_slug, $vars, $args);
252
  }
253
+ add_action('wp_fail2ban_log_message', __NAMESPACE__.'\log_message', 1, 3);
 
 
 
254
  }
255
 
 
 
 
 
 
 
feature/spam.php CHANGED
@@ -1,60 +1,51 @@
1
  <?php
2
-
3
  /**
4
  * Spam comments
5
  *
6
  * @package wp-fail2ban
7
- * @since 4.0.0
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- /**
15
- * @since 4.0.5
16
- */
17
 
18
- if ( !function_exists( __NAMESPACE__ . '\\log_spam_comment' ) ) {
19
  /**
20
- * Catch comments marked as spam
21
- *
22
- * @since 3.5.0
23
- *
24
- * @param int $comment_id
25
- * @param string $comment_status
26
- *
27
- * @wp-f2b-hard Spam comment \d+
28
  */
29
- function log_spam_comment( $comment_id, $comment_status )
30
- {
31
- if ( 'spam' === $comment_status ) {
32
-
33
- if ( is_null( $comment = get_comment( $comment_id, ARRAY_A ) ) ) {
34
- /**
35
- * @todo: decide what to do about this
36
- */
37
- } else {
38
- $remote_addr = ( empty($comment['comment_author_IP']) ? 'unknown' : $comment['comment_author_IP'] );
39
- openlog( 'WP_FAIL2BAN_SPAM_LOG' );
40
- syslog( LOG_NOTICE, "Spam comment {$comment_id}", $remote_addr );
41
- closelog();
42
- // @codeCoverageIgnoreEnd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
  }
44
-
45
- }
 
46
  }
47
-
48
- add_action(
49
- 'comment_post',
50
- __NAMESPACE__ . '\\log_spam_comment',
51
- 10,
52
- 2
53
- );
54
- add_action(
55
- 'wp_set_comment_status',
56
- __NAMESPACE__ . '\\log_spam_comment',
57
- 10,
58
- 2
59
- );
60
  }
 
1
  <?php
 
2
  /**
3
  * Spam comments
4
  *
5
  * @package wp-fail2ban
6
+ * @since 4.0.0
7
  */
8
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
+ if (defined('ABSPATH')) {
11
+ include_once_exists(WP_FAIL2BAN_DIR.'/premium/feature/spam.php');
 
 
 
 
12
 
 
13
  /**
14
+ * @since 4.0.5
 
 
 
 
 
 
 
15
  */
16
+ if (!function_exists(__NAMESPACE__.'\log_spam_comment')) {
17
+ /**
18
+ * Catch comments marked as spam
19
+ *
20
+ * @since 3.5.0
21
+ *
22
+ * @param int $comment_id
23
+ * @param string $comment_status
24
+ *
25
+ * @wp-f2b-hard Spam comment \d+
26
+ */
27
+ function log_spam_comment($comment_id, $comment_status)
28
+ {
29
+ if ('spam' === $comment_status) {
30
+ if (is_null($comment = get_comment($comment_id, ARRAY_A))) {
31
+ /**
32
+ * @todo: decide what to do about this
33
+ */
34
+ } else {
35
+ $remote_addr = (empty($comment['comment_author_IP']))
36
+ ? 'unknown' // @codeCoverageIgnore
37
+ : $comment['comment_author_IP'];
38
+
39
+ openlog('WP_FAIL2BAN_SPAM_LOG');
40
+ syslog(LOG_NOTICE, "Spam comment {$comment_id}", $remote_addr);
41
+ closelog();
42
+
43
+ do_action(__FUNCTION__, $comment_id, $comment_status);
44
+ }
45
  }
46
+ };
47
+ add_action('comment_post', __NAMESPACE__.'\log_spam_comment', 10, 2);
48
+ add_action('wp_set_comment_status', __NAMESPACE__.'\log_spam_comment', 10, 2);
49
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  }
51
+
feature/user-enum.php CHANGED
@@ -1,143 +1,129 @@
1
  <?php
2
-
3
  /**
4
  * User enumeration
5
  *
6
  * @package wp-fail2ban
7
- * @since 4.0.0
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- /**
15
- * @since 4.0.5 Guard
16
- */
17
- if ( !function_exists( __NAMESPACE__ . '\\_log_bail_user_enum' ) ) {
18
  /**
19
- * Common enumeration handling
20
- *
21
- * @since 4.2.7 Remove JSON support
22
- * @since 4.1.0 Add JSON support
23
- * @since 4.0.0
24
- *
25
- * @return \WP_Error
26
- *
27
- * @wp-f2b-hard Blocked user enumeration attempt
28
  */
29
- function _log_bail_user_enum()
30
- {
31
- openlog();
32
- syslog( LOG_NOTICE, 'Blocked user enumeration attempt' );
33
- closelog();
34
- // @codeCoverageIgnoreEnd
35
- return bail();
36
- }
 
 
 
 
 
 
 
 
 
 
 
37
 
38
- }
39
- /**
40
- * @since 4.0.5 Guard
41
- */
 
42
 
43
- if ( !function_exists( __NAMESPACE__ . '\\parse_request' ) ) {
44
  /**
45
- * Catch traditional user enum
46
- *
47
- * @see \WP::parse_request()
48
- *
49
- * @since 3.5.0 Refactored for unit testing
50
- * @since 2.1.0
51
- *
52
- * @param \WP $query
53
- *
54
- * @return \WP
55
  */
56
- function parse_request( $query )
57
- {
58
- if ( !current_user_can( 'list_users' ) && intval( @$query->query_vars['author'] ) ) {
59
- _log_bail_user_enum();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  }
61
- return $query;
62
  }
63
-
64
- add_filter(
65
- 'parse_request',
66
- __NAMESPACE__ . '\\parse_request',
67
- 1,
68
- 2
69
- );
70
- }
71
-
72
- /**
73
- * @since 4.0.5 Guard
74
- */
75
 
76
- if ( !function_exists( __NAMESPACE__ . '\\rest_user_query' ) ) {
77
  /**
78
- * Catch RESTful user list
79
- *
80
- * @see \WP_REST_Users_Controller::get_items()
81
- *
82
- * @since 4.0.0
83
- *
84
- * @param array $prepared_args
85
- * @param \WP_REST_Request $request
86
- *
87
- * @return array|\WP_Error
88
  */
89
- function rest_user_query( $prepared_args, $request )
90
- {
91
- if ( !current_user_can( 'list_users' ) ) {
92
- return _log_bail_user_enum();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  }
94
- return $prepared_args;
95
  }
96
-
97
- add_filter(
98
- 'rest_user_query',
99
- __NAMESPACE__ . '\\rest_user_query',
100
- 10,
101
- 2
102
- );
103
- }
104
 
105
- /**
106
- * @since 4.2.6 Guard
107
- */
108
-
109
- if ( !function_exists( __NAMESPACE__ . '\\oembed_response_data' ) ) {
110
  /**
111
- *
112
- * @see \get_oembed_response_data()
113
- *
114
- * @since 4.2.7.1 Fix `add_filter()` params
115
- * @since 4.2.6
116
- *
117
- * @param array $data The response data.
118
- * @param \WP_Post $post The post object.
119
- * @param int $width The requested width.
120
- * @param int $height The calculated height.
121
- *
122
- * @return array
123
  */
124
- function oembed_response_data(
125
- $data,
126
- $post,
127
- $width,
128
- $height
129
- )
130
- {
131
- unset( $data['author_name'] );
132
- unset( $data['author_url'] );
133
- return $data;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
134
  }
135
-
136
- add_filter(
137
- 'oembed_response_data',
138
- __NAMESPACE__ . '\\oembed_response_data',
139
- PHP_INT_MAX - 1,
140
- // almost last in case something expects author_xxx to be set
141
- 4
142
- );
143
  }
 
1
  <?php
 
2
  /**
3
  * User enumeration
4
  *
5
  * @package wp-fail2ban
6
+ * @since 4.0.0
7
  */
8
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
+ if (defined('ABSPATH')) {
11
+ include_once_exists(WP_FAIL2BAN_DIR.'/premium/feature/user-enum.php');
12
+
 
 
 
 
13
  /**
14
+ * @since 4.0.5 Guard
 
 
 
 
 
 
 
 
15
  */
16
+ if (!function_exists(__NAMESPACE__.'\_log_bail_user_enum')) {
17
+ /**
18
+ * Common enumeration handling
19
+ *
20
+ * @since 4.3.0 Remove JSON support
21
+ * @since 4.1.0 Add JSON support
22
+ * @since 4.0.0
23
+ *
24
+ * @param bool $is_json
25
+ *
26
+ * @return \WP_Error
27
+ *
28
+ * @wp-f2b-hard Blocked user enumeration attempt
29
+ */
30
+ function _log_bail_user_enum()
31
+ {
32
+ openlog();
33
+ syslog(LOG_NOTICE, 'Blocked user enumeration attempt');
34
+ closelog();
35
 
36
+ do_action(__FUNCTION__);
37
+
38
+ return bail();
39
+ }
40
+ }
41
 
 
42
  /**
43
+ * @since 4.0.5 Guard
 
 
 
 
 
 
 
 
 
44
  */
45
+ if (!function_exists(__NAMESPACE__.'\parse_request')) {
46
+ /**
47
+ * Catch traditional user enum
48
+ *
49
+ * @see \WP::parse_request()
50
+ *
51
+ * @since 4.3.0 Refactored to make XDebug happy; h/t @dinghy
52
+ * Changed cap to 'edit_others_posts'
53
+ * @since 3.5.0 Refactored for unit testing
54
+ * @since 2.1.0
55
+ *
56
+ * @param \WP $query
57
+ *
58
+ * @return \WP
59
+ */
60
+ function parse_request($query)
61
+ {
62
+ if (!current_user_can('edit_others_posts') && intval(array_value('author', $query->query_vars))) {
63
+ _log_bail_user_enum();
64
+ }
65
+
66
+ return $query;
67
  }
68
+ add_filter('parse_request', __NAMESPACE__.'\parse_request', 1);
69
  }
 
 
 
 
 
 
 
 
 
 
 
 
70
 
 
71
  /**
72
+ * @since 4.0.5 Guard
 
 
 
 
 
 
 
 
 
73
  */
74
+ if (!function_exists(__NAMESPACE__.'\rest_user_query')) {
75
+ /**
76
+ * Catch RESTful user list
77
+ *
78
+ * @see \WP_REST_Users_Controller::get_items()
79
+ *
80
+ * @since 4.3.0 Change to 'edit_others_posts'
81
+ * @since 4.0.0
82
+ *
83
+ * @param array $prepared_args
84
+ * @param \WP_REST_Request $request
85
+ *
86
+ * @return array|\WP_Error
87
+ */
88
+ function rest_user_query($prepared_args, $request)
89
+ {
90
+ if (!current_user_can('edit_others_posts')) {
91
+ return _log_bail_user_enum();
92
+ }
93
+
94
+ return $prepared_args;
95
  }
96
+ add_filter('rest_user_query', __NAMESPACE__.'\rest_user_query', 10, 2);
97
  }
 
 
 
 
 
 
 
 
98
 
 
 
 
 
 
99
  /**
100
+ * @since 4.2.7
 
 
 
 
 
 
 
 
 
 
 
101
  */
102
+ if (!function_exists(__NAMESPACE__.'\oembed_response_data')) {
103
+ /**
104
+ * Catch oembed user info
105
+ *
106
+ * @codeCoverageIgnore
107
+ *
108
+ * @see \get_oembed_response_data()
109
+ *
110
+ * @since 4.2.7
111
+ *
112
+ * @param array $data The response data.
113
+ * @param WP_Post $post The post object.
114
+ * @param int $width The requested width.
115
+ * @param int $height The calculated height.
116
+ *
117
+ * @return array
118
+ */
119
+ function oembed_response_data($data, $post, $width, $height)
120
+ {
121
+ unset($data['author_name']);
122
+ unset($data['author_url']);
123
+
124
+ return $data;
125
+ }
126
+ add_filter('oembed_response_data', __NAMESPACE__.'\oembed_response_data', PHP_INT_MAX-1, 4);
127
  }
 
 
 
 
 
 
 
 
128
  }
129
+
feature/user.php CHANGED
@@ -1,61 +1,77 @@
1
  <?php
2
-
3
  /**
4
  * Blocked user functionality
5
  *
6
  * @package wp-fail2ban
7
- * @since 4.0.0
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- /**
15
- * @since 4.0.5 Guard
16
- */
17
 
18
- if ( !function_exists( __NAMESPACE__ . '\\authenticate' ) ) {
19
  /**
20
- * Catched blocked users
21
- *
22
- * @since 3.5.0 Refactored for unit testing
23
- * @since 2.0.0
24
- *
25
- * @param mixed|null $user
26
- * @param string $username
27
- * @param string $password
28
- *
29
- * @return mixed|null
30
- *
31
- * @wp-f2b-hard Blocked authentication attempt for .*
32
  */
33
- function authenticate( $user, $username, $password )
34
- {
35
-
36
- if ( !empty($username) ) {
37
- /**
38
- * @since 3.5.0 Arrays allowed in PHP 7
39
- */
40
- $matched = ( is_array( WP_FAIL2BAN_BLOCKED_USERS ) ? in_array( $username, WP_FAIL2BAN_BLOCKED_USERS ) : preg_match( '/' . WP_FAIL2BAN_BLOCKED_USERS . '/i', $username ) );
41
-
42
- if ( $matched ) {
43
- openlog();
44
- syslog( LOG_NOTICE, "Blocked authentication attempt for {$username}" );
45
- closelog();
46
- // @codeCoverageIgnoreEnd
47
- bail();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  }
49
-
 
50
  }
51
-
52
- return $user;
53
  }
54
-
55
- add_filter(
56
- 'authenticate',
57
- __NAMESPACE__ . '\\authenticate',
58
- 1,
59
- 3
60
- );
61
  }
 
1
  <?php
 
2
  /**
3
  * Blocked user functionality
4
  *
5
  * @package wp-fail2ban
6
+ * @since 4.0.0
7
  */
8
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
+ if (defined('ABSPATH')) {
11
+ include_once_exists(WP_FAIL2BAN_DIR.'/premium/feature/user.php');
 
 
 
 
12
 
 
13
  /**
14
+ * @since 4.0.5 Guard
 
 
 
 
 
 
 
 
 
 
 
15
  */
16
+ if (!function_exists(__NAMESPACE__.'\block_users')) {
17
+ /**
18
+ * Catch blocked users
19
+ *
20
+ * @see \wp_authenticate()
21
+ *
22
+ * @since 4.3.0 Add blocking username logins
23
+ * @since 3.5.0 Refactored for unit testing
24
+ * @since 2.0.0
25
+ *
26
+ * @param mixed|null $user
27
+ * @param string $username
28
+ * @param string $password
29
+ *
30
+ * @return mixed|null
31
+ *
32
+ * @wp-f2b-hard Blocked authentication attempt for .*
33
+ * @wp-f2b-hard Blocked username authentication attempt for .*
34
+ */
35
+ function block_users($user, $username, $password)
36
+ {
37
+ if (!empty($username)) {
38
+ if (defined('WP_FAIL2BAN_BLOCK_USERNAME_LOGIN') && WP_FAIL2BAN_BLOCK_USERNAME_LOGIN) {
39
+ if (is_email($username)) {
40
+ // OK!
41
+ } else {
42
+ openlog();
43
+ syslog(LOG_NOTICE, "Blocked username authentication attempt for {$username}");
44
+ closelog();
45
+
46
+ do_action(__FUNCTION__.'.block_username_login', $user, $username, $password);
47
+
48
+ return bail(); // for testing
49
+ }
50
+ }
51
+
52
+ if (defined('WP_FAIL2BAN_BLOCKED_USERS') && WP_FAIL2BAN_BLOCKED_USERS) {
53
+ /**
54
+ * @since 3.5.0 Arrays allowed in PHP 7
55
+ */
56
+ $matched = (is_array(WP_FAIL2BAN_BLOCKED_USERS))
57
+ ? in_array($username, WP_FAIL2BAN_BLOCKED_USERS)
58
+ : preg_match('/'.WP_FAIL2BAN_BLOCKED_USERS.'/i', $username);
59
+
60
+ if ($matched) {
61
+ openlog();
62
+ syslog(LOG_NOTICE, "Blocked authentication attempt for {$username}");
63
+ closelog();
64
+
65
+ do_action(__FUNCTION__.'.blocked_users', $user, $username, $password);
66
+
67
+ return bail(); // for testing
68
+ }
69
+ }
70
  }
71
+
72
+ return $user;
73
  }
74
+ add_filter('authenticate', __NAMESPACE__.'\block_users', 1, 3);
 
75
  }
 
 
 
 
 
 
 
76
  }
77
+
feature/xmlrpc.php CHANGED
@@ -1,108 +1,102 @@
1
  <?php
2
-
3
  /**
4
  * XML-RPC functionality
5
  *
6
  * @package wp-fail2ban
7
- * @since 4.0.0
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- /**
15
- * @since 4.0.5 Guard
16
- */
17
 
18
- if ( !function_exists( __NAMESPACE__ . '\\xmlrpc_login_error' ) ) {
19
  /**
20
- * Catch multiple XML-RPC authentication failures
21
- *
22
- * @see \wp_xmlrpc_server::login()
23
- *
24
- * @since 4.0.0 Return $error
25
- * @since 3.5.0 Refactored for unit testing
26
- * @since 3.0.0
27
- *
28
- * @param \IXR_Error $error
29
- * @param \WP_Error $user
30
- *
31
- * @return \IXR_Error
32
- *
33
- * @wp-f2b-hard XML-RPC multicall authentication failure
34
  */
35
- function xmlrpc_login_error( $error, $user )
36
- {
37
- static $attempts = 0 ;
38
-
39
- if ( ++$attempts > 1 ) {
40
- openlog();
41
- syslog( LOG_NOTICE, 'XML-RPC multicall authentication failure' );
42
- closelog();
43
- // @codeCoverageIgnoreEnd
44
- bail();
45
- } else {
46
- return $error;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  }
48
-
49
  }
50
-
51
- add_action(
52
- 'xmlrpc_login_error',
53
- __NAMESPACE__ . '\\xmlrpc_login_error',
54
- 10,
55
- 2
56
- );
57
- }
58
 
59
- /**
60
- * @since 4.0.5 Guard
61
- */
62
 
63
- if ( !function_exists( __NAMESPACE__ . '\\xmlrpc_pingback_error' ) ) {
64
  /**
65
- * Catch failed pingbacks
66
- *
67
- * @see \wp_xmlrpc_server::pingback_error()
68
- *
69
- * @since 4.0.0 Return $ixr_error
70
- * @since 3.5.0 Refactored for unit testing
71
- * @since 3.0.0
72
- *
73
- * @param \IXR_Error $ixr_error
74
- *
75
- * @return \IXR_Error
76
- *
77
- * @wp-f2b-hard Pingback error .* generated
78
  */
79
- function xmlrpc_pingback_error( $ixr_error )
80
- {
81
-
82
- if ( 48 !== $ixr_error->code ) {
83
- openlog();
84
- syslog( LOG_NOTICE, 'Pingback error ' . $ixr_error->code . ' generated' );
85
- closelog();
86
- // @codeCoverageIgnoreEnd
87
- }
88
-
89
- return $ixr_error;
90
  }
91
-
92
- add_filter( 'xmlrpc_pingback_error', __NAMESPACE__ . '\\xmlrpc_pingback_error', 5 );
93
- }
94
 
95
- /**
96
- * @since 4.0.0 Refactored
97
- * @since 2.2.0
98
- */
99
- if ( defined( 'WP_FAIL2BAN_LOG_PINGBACKS' ) && true === WP_FAIL2BAN_LOG_PINGBACKS ) {
100
- require_once 'xmlrpc/pingback.php';
 
101
  }
102
- /**
103
- * @since 4.0.0 Refactored
104
- * @since 3.6.0
105
- */
106
- if ( defined( 'WP_FAIL2BAN_XMLRPC_LOG' ) && '' < WP_FAIL2BAN_XMLRPC_LOG ) {
107
- require_once 'xmlrpc/log.php';
108
- }
1
  <?php
 
2
  /**
3
  * XML-RPC functionality
4
  *
5
  * @package wp-fail2ban
6
+ * @since 4.0.0
7
  */
8
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
+ if (defined('ABSPATH')) {
11
+ include_once_exists(WP_FAIL2BAN_DIR.'/premium/feature/xmlrpc.php');
 
 
 
 
12
 
 
13
  /**
14
+ * @since 4.0.5 Guard
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  */
16
+ if (!function_exists(__NAMESPACE__.'\xmlrpc_login_error')) {
17
+ /**
18
+ * Catch multiple XML-RPC authentication failures
19
+ *
20
+ * @see \wp_xmlrpc_server::login()
21
+ *
22
+ * @since 4.0.0 Return $error
23
+ * @since 3.5.0 Refactored for unit testing
24
+ * @since 3.0.0
25
+ *
26
+ * @param \IXR_Error $error
27
+ * @param \WP_Error $user
28
+ *
29
+ * @return \IXR_Error
30
+ *
31
+ * @wp-f2b-hard XML-RPC multicall authentication failure
32
+ */
33
+ function xmlrpc_login_error($error, $user)
34
+ {
35
+ static $attempts = 0;
36
+
37
+ if (++$attempts > 1) {
38
+ openlog();
39
+ syslog(LOG_NOTICE, 'XML-RPC multicall authentication failure');
40
+ closelog();
41
+
42
+ do_action(__FUNCTION__, $error, $user);
43
+
44
+ bail();
45
+ } else {
46
+ return $error;
47
+ }
48
+ } // @codeCoverageIgnore
49
+ add_action('xmlrpc_login_error', __NAMESPACE__.'\xmlrpc_login_error', 10, 2);
50
+ }
51
+
52
+ /**
53
+ * @since 4.0.5 Guard
54
+ */
55
+ if (!function_exists(__NAMESPACE__.'\xmlrpc_pingback_error')) {
56
+ /**
57
+ * Catch failed pingbacks
58
+ *
59
+ * @see \wp_xmlrpc_server::pingback_error()
60
+ *
61
+ * @since 4.0.0 Return $ixr_error
62
+ * @since 3.5.0 Refactored for unit testing
63
+ * @since 3.0.0
64
+ *
65
+ * @param \IXR_Error $ixr_error
66
+ *
67
+ * @return \IXR_Error
68
+ *
69
+ * @wp-f2b-hard Pingback error .* generated
70
+ */
71
+ function xmlrpc_pingback_error($ixr_error)
72
+ {
73
+ if (48 !== $ixr_error->code) {
74
+ openlog();
75
+ syslog(LOG_NOTICE, 'Pingback error '.$ixr_error->code.' generated');
76
+ closelog();
77
+
78
+ do_action(__FUNCTION__, $ixr_error);
79
+ }
80
+ return $ixr_error;
81
  }
82
+ add_filter('xmlrpc_pingback_error', __NAMESPACE__.'\xmlrpc_pingback_error', 5);
83
  }
 
 
 
 
 
 
 
 
84
 
 
 
 
85
 
 
86
  /**
87
+ * @since 4.0.0 Refactored
88
+ * @since 2.2.0
 
 
 
 
 
 
 
 
 
 
 
89
  */
90
+ if (defined('WP_FAIL2BAN_LOG_PINGBACKS') && true === WP_FAIL2BAN_LOG_PINGBACKS) {
91
+ require_once 'xmlrpc/pingback.php';
 
 
 
 
 
 
 
 
 
92
  }
 
 
 
93
 
94
+ /**
95
+ * @since 4.0.0 Refactored
96
+ * @since 3.6.0
97
+ */
98
+ if (defined('WP_FAIL2BAN_XMLRPC_LOG') && '' < WP_FAIL2BAN_XMLRPC_LOG) {
99
+ require_once 'xmlrpc/log.php';
100
+ }
101
  }
102
+
 
 
 
 
 
 
feature/xmlrpc/log.php CHANGED
@@ -4,32 +4,30 @@
4
  *
5
  * @package wp-fail2ban
6
  * @since 4.0.0
 
7
  */
8
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
- if (!defined('ABSPATH')) {
11
- exit;
12
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
- /**
15
- * Log XML-RPC requests
16
- *
17
- * It seems attackers are doing weird things with XML-RPC. This makes it easy to
18
- * log them for analysis and future blocking.
19
- *
20
- * @since 4.0.0 Fix: Removed HTTP_RAW_POST_DATA
21
- * https://wordpress.org/support/?p=10971843
22
- * @since 3.6.0
23
- *
24
- * @codeCoverageIgnore
25
- */
26
- if (false === ($fp = fopen(WP_FAIL2BAN_XMLRPC_LOG, 'a+'))) {
27
- // TODO: decided whether to log this
28
- } else {
29
- $raw_data = (version_compare(PHP_VERSION, '7.0.0') >= 0)
30
- ? file_get_contents('php://input')
31
- : $HTTP_RAW_POST_DATA;
32
-
33
- fprintf($fp, "# ---\n# Date: %s\n# IP: %s\n\n%s\n", date(DATE_ATOM), remote_addr(), $raw_data);
34
- fclose($fp);
35
  }
 
4
  *
5
  * @package wp-fail2ban
6
  * @since 4.0.0
7
+ * @codeCoverageIgnore
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
+ if (defined('ABSPATH')) {
12
+ /**
13
+ * Log XML-RPC requests
14
+ *
15
+ * It seems attackers are doing weird things with XML-RPC. This makes it easy to
16
+ * log them for analysis and future blocking.
17
+ *
18
+ * @since 4.0.0 Fix: Removed HTTP_RAW_POST_DATA
19
+ * https://wordpress.org/support/?p=10971843
20
+ * @since 3.6.0
21
+ */
22
+ if (false === ($fp = fopen(WP_FAIL2BAN_XMLRPC_LOG, 'a+'))) {
23
+ // TODO: decided whether to log this
24
+ } else {
25
+ $raw_data = (version_compare(PHP_VERSION, '7.0.0') >= 0)
26
+ ? file_get_contents('php://input')
27
+ : $HTTP_RAW_POST_DATA;
28
 
29
+ fprintf($fp, "# ---\n# Date: %s\n# IP: %s\n\n%s\n", date(DATE_ATOM), remote_addr(), $raw_data);
30
+ fclose($fp);
31
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  }
33
+
feature/xmlrpc/pingback.php CHANGED
@@ -1,40 +1,38 @@
1
  <?php
2
-
3
  /**
4
  * pingback logging
5
  *
6
  * @package wp-fail2ban
7
- * @since 4.0.0
8
  */
9
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
 
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
- /**
15
- * @since 4.0.5 Guard
16
- */
17
 
18
- if ( !function_exists( __NAMESPACE__ . '\\xmlrpc_call' ) ) {
19
  /**
20
- * Log pingbacks
21
- *
22
- * @since 3.5.0 Refactored for unit testing
23
- * @since 2.2.0
24
- *
25
- * @param string $call
26
  */
27
- function xmlrpc_call( $call )
28
- {
29
-
30
- if ( 'pingback.ping' == $call ) {
31
- openlog( 'WP_FAIL2BAN_PINGBACK_LOG' );
32
- syslog( LOG_INFO, 'Pingback requested' );
33
- closelog();
34
- // @codeCoverageIgnoreEnd
 
 
 
 
 
 
 
 
 
 
35
  }
36
-
37
  }
38
-
39
- add_action( 'xmlrpc_call', __NAMESPACE__ . '\\xmlrpc_call' );
40
  }
 
1
  <?php
 
2
  /**
3
  * pingback logging
4
  *
5
  * @package wp-fail2ban
6
+ * @since 4.0.0
7
  */
8
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
+ if (defined('ABSPATH')) {
11
+ include_once_exists(WP_FAIL2BAN_DIR.'/premium/feature/xmlrpc/pingback.php');
 
 
 
 
12
 
 
13
  /**
14
+ * @since 4.0.5 Guard
 
 
 
 
 
15
  */
16
+ if (!function_exists(__NAMESPACE__.'\xmlrpc_call')) {
17
+ /**
18
+ * Log pingbacks
19
+ *
20
+ * @since 3.5.0 Refactored for unit testing
21
+ * @since 2.2.0
22
+ *
23
+ * @param string $call
24
+ */
25
+ function xmlrpc_call($call)
26
+ {
27
+ if ('pingback.ping' == $call) {
28
+ openlog('WP_FAIL2BAN_PINGBACK_LOG');
29
+ syslog(LOG_INFO, 'Pingback requested');
30
+ closelog();
31
+
32
+ do_action(__FUNCTION__, $call);
33
+ }
34
  }
35
+ add_action('xmlrpc_call', __NAMESPACE__.'\xmlrpc_call');
36
  }
 
 
37
  }
38
+
filters.d/wordpress-extra.conf CHANGED
@@ -1,5 +1,5 @@
1
  # Fail2Ban filter for WordPress extra failures
2
- # Auto-generated: 2019-09-30T18:16:57+00:00
3
  #
4
 
5
  [INCLUDES]
1
  # Fail2Ban filter for WordPress extra failures
2
+ # Auto-generated: 2020-04-16T05:48:22+00:00
3
  #
4
 
5
  [INCLUDES]
filters.d/wordpress-hard.conf CHANGED
@@ -1,5 +1,5 @@
1
  # Fail2Ban filter for WordPress hard failures
2
- # Auto-generated: 2019-09-30T18:16:57+00:00
3
  #
4
 
5
  [INCLUDES]
@@ -16,6 +16,7 @@ failregex = ^%(__prefix_line)sAuthentication attempt for unknown user .* from <H
16
  ^%(__prefix_line)sSpam comment \d+ from <HOST>$
17
  ^%(__prefix_line)sBlocked user enumeration attempt from <HOST>$
18
  ^%(__prefix_line)sBlocked authentication attempt for .* from <HOST>$
 
19
  ^%(__prefix_line)sXML-RPC multicall authentication failure from <HOST>$
20
  ^%(__prefix_line)sPingback error .* generated from <HOST>$
21
 
1
  # Fail2Ban filter for WordPress hard failures
2
+ # Auto-generated: 2020-04-16T05:48:22+00:00
3
  #
4
 
5
  [INCLUDES]
16
  ^%(__prefix_line)sSpam comment \d+ from <HOST>$
17
  ^%(__prefix_line)sBlocked user enumeration attempt from <HOST>$
18
  ^%(__prefix_line)sBlocked authentication attempt for .* from <HOST>$
19
+ ^%(__prefix_line)sBlocked username authentication attempt for .* from <HOST>$
20
  ^%(__prefix_line)sXML-RPC multicall authentication failure from <HOST>$
21
  ^%(__prefix_line)sPingback error .* generated from <HOST>$
22
 
filters.d/wordpress-soft.conf CHANGED
@@ -1,5 +1,5 @@
1
  # Fail2Ban filter for WordPress soft failures
2
- # Auto-generated: 2019-09-30T18:16:57+00:00
3
  #
4
 
5
  [INCLUDES]
@@ -10,7 +10,8 @@ before = common.conf
10
 
11
  _daemon = (?:wordpress|wp)
12
 
13
- failregex = ^%(__prefix_line)sAuthentication failure for .* from <HOST>$
 
14
  ^%(__prefix_line)sREST authentication failure for .* from <HOST>$
15
  ^%(__prefix_line)sXML-RPC authentication failure for .* from <HOST>$
16
 
1
  # Fail2Ban filter for WordPress soft failures
2
+ # Auto-generated: 2020-04-16T05:48:22+00:00
3
  #
4
 
5
  [INCLUDES]
10
 
11
  _daemon = (?:wordpress|wp)
12
 
13
+ failregex = ^%(__prefix_line)sEmpty username from <HOST>$
14
+ ^%(__prefix_line)sAuthentication failure for .* from <HOST>$
15
  ^%(__prefix_line)sREST authentication failure for .* from <HOST>$
16
  ^%(__prefix_line)sXML-RPC authentication failure for .* from <HOST>$
17
 
lib/activation.php ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WP fail2ban activation
4
+ *
5
+ * @package wp-fail2ban
6
+ * @since 4.3.0
7
+ */
8
+ namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
+
10
+ if (defined('ABSPATH')) {
11
+ \register_activation_hook(WP_FAIL2BAN_FILE, function () {
12
+ foreach (get_mu_plugins() as $plugin => $data) {
13
+ if (0 === strpos($data['Name'], 'WP fail2ban')) {
14
+ $wp_f2b_ver = substr(WP_FAIL2BAN_VER, 0, strrpos(WP_FAIL2BAN_VER, '.'));
15
+ $error_msg = __('<h1>Cannot activate WP fail2ban</h1>', 'wp-fail2ban');
16
+ $mu_file = WPMU_PLUGIN_DIR.'/'.$plugin;
17
+ if (is_link($mu_file)) {
18
+ if (false === ($link = readlink($mu_file)) ||
19
+ false === ($path = realpath($mu_file)))
20
+ {
21
+ $h3 = __('A broken symbolic link was found in <tt>mu-plugins</tt>:');
22
+ $error_msg .= <<<__ERROR__
23
+ <h3>{$h3}</h3>
24
+ <p><tt>{$mu_file}</tt></p>
25
+ __ERROR__;
26
+ } elseif (WP_FAIL2BAN_FILE == $path) {
27
+ // OK, we're linking to ourself
28
+ } else {
29
+ $mu_file = str_replace('/', '/<wbr>', $mu_file);
30
+ $mu_file = substr($mu_file, strlen(WPMU_PLUGIN_DIR)-1);
31
+
32
+ $h3 = __('A conflicting symbolic link was found in <tt>mu-plugins</tt>:');
33
+ $error_msg .= <<<__ERROR__
34
+ <h3>{$h3}</h3>
35
+ <style>
36
+ table { text-align: center; }
37
+ td { width: 50%; }
38
+ th { font-size: 200%; }
39
+ td, th { font-family: monospace; }
40
+ span.tt { font-weight: bold; }
41
+ </style>
42
+ <table>
43
+ <tr>
44
+ <td>{$mu_file}</td>
45
+ <th>&DoubleRightArrow;</th>
46
+ <td>{$link}</td>
47
+ </tr>
48
+ <tr>
49
+ <td colspan="3"><span class="tt">&equiv;</span> <span>{$path}</span></td>
50
+ </tr>
51
+ <tr>
52
+ <td colspan="3"></td>
53
+ </tr>
54
+ </table>
55
+ __ERROR__;
56
+ }
57
+
58
+ } else {
59
+ $mu_file = str_replace('/', '/<wbr>', $mu_file);
60
+ $mu_file = substr($mu_file, strlen(WPMU_PLUGIN_DIR)-1);
61
+
62
+ $h3 = __('A conflicting file was found in <tt>mu-plugins</tt>:');
63
+ $error_msg .= <<<__ERROR__
64
+ <h3>{$h3}</h3>
65
+ <p><tt>{$mu_file}</tt></p>
66
+ __ERROR__;
67
+ }
68
+ $error_msg .= sprintf(
69
+ __('<p>Please see the <a href="%s" target="_blank">documentation</a> for how to configure %s for <tt>mu-plugins</tt>.</p>'),
70
+ "https://docs.wp-fail2ban.com/en/{$wp_f2b_ver}/configuration.html#mu-plugins-support",
71
+ $wpf2b
72
+ );
73
+ $error_msg .= sprintf(__('<p>Click <a href="%s">here</a> to return to the plugins page.</p>'), admin_url('plugins.php'));
74
+
75
+ deactivate_plugins(plugin_basename(WP_FAIL2BAN_FILE));
76
+ wp_die($error_msg);
77
+ }
78
+ }
79
+
80
+ @include_once WP_FAIL2BAN_DIR.'/premium/activation.php';
81
+ });
82
+ }
83
+
lib/constants.php CHANGED
@@ -3,142 +3,120 @@
3
  * Constants
4
  *
5
  * @package wp-fail2ban
6
- * @since 4.2.0
7
  */
8
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
- if (!defined('ABSPATH')) {
11
- exit;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  }
13
-
14
- // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing
15
- /**
16
- * Defaults
17
- *
18
- * @since 4.0.0
19
- */
20
- define('DEFAULT_WP_FAIL2BAN_OPENLOG_OPTIONS', LOG_PID|LOG_NDELAY);
21
- define('DEFAULT_WP_FAIL2BAN_AUTH_LOG', LOG_AUTH);
22
- define('DEFAULT_WP_FAIL2BAN_COMMENT_LOG', LOG_USER);
23
- define('DEFAULT_WP_FAIL2BAN_PINGBACK_LOG', LOG_USER);
24
- define('DEFAULT_WP_FAIL2BAN_PASSWORD_REQUEST_LOG', LOG_USER);
25
- define('DEFAULT_WP_FAIL2BAN_SPAM_LOG', LOG_AUTH);
26
- /**
27
- * @since 4.0.5
28
- */
29
- define('DEFAULT_WP_FAIL2BAN_COMMENT_EXTRA_LOG', LOG_AUTH);
30
- define('DEFAULT_WP_FAIL2BAN_PINGBACK_ERROR_LOG', LOG_AUTH);
31
- /**
32
- * @since 4.2.0
33
- */
34
- define('DEFAULT_WP_FAIL2BAN_PLUGIN_AUTH_LOG', LOG_AUTH);
35
- define('DEFAULT_WP_FAIL2BAN_PLUGIN_COMMENT_LOG', LOG_USER);
36
- define('DEFAULT_WP_FAIL2BAN_PLUGIN_OTHER_LOG', LOG_USER);
37
- define('DEFAULT_WP_FAIL2BAN_PLUGIN_PASSWORD_LOG', LOG_USER);
38
- define('DEFAULT_WP_FAIL2BAN_PLUGIN_REST_LOG', LOG_USER);
39
- define('DEFAULT_WP_FAIL2BAN_PLUGIN_SPAM_LOG', LOG_AUTH);
40
- define('DEFAULT_WP_FAIL2BAN_PLUGIN_XMLRPC_LOG', LOG_USER);
41
-
42
- /*
43
- 31 | Test
44
- 30 | Plugin
45
- 29 |
46
- 28 |
47
- 27 |
48
- 26 |
49
- 25 |
50
- 24 |
51
- ---
52
- 23 | Event Class
53
- 22 | ..
54
- 21 | ..
55
- 20 | ..
56
- 19 | ..
57
- 18 | ..
58
- 17 | ..
59
- 16 | ..
60
- ---
61
- 15 | ID
62
- 14 | ..
63
- 13 | ..
64
- 12 | ..
65
- 11 | ..
66
- 10 | ..
67
- 09 | ..
68
- 08 | ..
69
- ---
70
- 07 | ..
71
- 06 | ..
72
- 05 | ..
73
- 04 | ..
74
- 03 | ..
75
- 02 | ..
76
- 01 | ..
77
- 00 | ..
78
- */
79
-
80
-
81
-
82
- define('WPF2B_EVENT_CLASS_AUTH', 0x00010000);
83
- define('WPF2B_EVENT_CLASS_COMMENT', 0x00020000);
84
- define('WPF2B_EVENT_CLASS_XMLRPC', 0x00040000);
85
- define('WPF2B_EVENT_CLASS_PASSWORD', 0x00080000);
86
- define('WPF2B_EVENT_CLASS_REST', 0x00100000); /** @since 4.1.0 */
87
- define('WPF2B_EVENT_CLASS_SPAM', 0x00200000); /** @since 4.2.0 */
88
- define('WPF2B_EVENT_TYPE_PLUGIN', 0x40000000); /** @since 4.2.0 */
89
- define('WPF2B_EVENT_TYPE_TEST', 0x80000000); /** @since 4.2.0 */
90
-
91
-
92
- /**
93
- *
94
- */
95
- define('WPF2B_EVENT_ACTIVATED', 0xffffffff);
96
-
97
-
98
- /**
99
- * Auth
100
- */
101
- define('WPF2B_EVENT_AUTH_OK', WPF2B_EVENT_CLASS_AUTH | 0x0001);
102
- define('WPF2B_EVENT_AUTH_FAIL', WPF2B_EVENT_CLASS_AUTH | 0x0002);
103
- define('WPF2B_EVENT_AUTH_BLOCK_USER', WPF2B_EVENT_CLASS_AUTH | 0x0004);
104
- define('WPF2B_EVENT_AUTH_BLOCK_USER_ENUM', WPF2B_EVENT_CLASS_AUTH | 0x0008);
105
-
106
- /**
107
- * Comment
108
- */
109
- define('WPF2B_EVENT_COMMENT', WPF2B_EVENT_CLASS_COMMENT | 0x0001); // 0x00020001
110
- define('WPF2B_EVENT_COMMENT_SPAM', WPF2B_EVENT_CLASS_COMMENT | WPF2B_EVENT_CLASS_SPAM | 0x0001); // 0x00220001
111
- // comment extra
112
- define('WPF2B_EVENT_COMMENT_NOT_FOUND', WPF2B_EVENT_CLASS_COMMENT | 0x0002); // 0x00020002
113
- define('WPF2B_EVENT_COMMENT_CLOSED', WPF2B_EVENT_CLASS_COMMENT | 0x0004); // 0x00020004
114
- define('WPF2B_EVENT_COMMENT_TRASH', WPF2B_EVENT_CLASS_COMMENT | 0x0008); // 0x00020008
115
- define('WPF2B_EVENT_COMMENT_DRAFT', WPF2B_EVENT_CLASS_COMMENT | 0x0010); // 0x00020010
116
- define('WPF2B_EVENT_COMMENT_PASSWORD', WPF2B_EVENT_CLASS_COMMENT | WPF2B_EVENT_CLASS_PASSWORD | 0x0020); // 0x00020020
117
-
118
- /**
119
- * XML-RPC
120
- */
121
- define('WPF2B_EVENT_XMLRPC_PINGBACK', WPF2B_EVENT_CLASS_XMLRPC | 0x0001);
122
- define('WPF2B_EVENT_XMLRPC_PINGBACK_ERROR', WPF2B_EVENT_CLASS_XMLRPC | 0x0002);
123
- define('WPF2B_EVENT_XMLRPC_MULTI_AUTH_FAIL', WPF2B_EVENT_CLASS_XMLRPC | WPF2B_EVENT_CLASS_AUTH | 0x0004);
124
- define('WPF2B_EVENT_XMLRPC_AUTH_OK', WPF2B_EVENT_CLASS_XMLRPC | WPF2B_EVENT_CLASS_AUTH | 0x0008);
125
- define('WPF2B_EVENT_XMLRPC_AUTH_FAIL', WPF2B_EVENT_CLASS_XMLRPC | WPF2B_EVENT_CLASS_AUTH | 0x0010);
126
-
127
- /**
128
- * Password
129
- */
130
- define('WPF2B_ACTION_PASSWORD_REQUEST', WPF2B_EVENT_CLASS_PASSWORD | 0x0001);
131
-
132
- /**
133
- * REST
134
- * @since 4.1.0
135
- */
136
- define('WPF2B_EVENT_REST_AUTH_OK', WPF2B_EVENT_CLASS_REST | WPF2B_EVENT_CLASS_AUTH | 0x0001);
137
- define('WPF2B_EVENT_REST_AUTH_FAIL', WPF2B_EVENT_CLASS_REST | WPF2B_EVENT_CLASS_AUTH | 0x0002);
138
-
139
- /**
140
- *
141
- */
142
- define('WPF2B_EVENT_DEACTIVATED', 0x00000000);
143
- // phpcs:enable
144
 
3
  * Constants
4
  *
5
  * @package wp-fail2ban
6
+ * @since 4.2.0
7
  */
8
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
+ // @codeCoverageIgnoreStart
11
+ if (defined('ABSPATH')) {
12
+ // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing
13
+ /*
14
+ 31 | Test
15
+ 30 | Plugin
16
+ 29 |
17
+ 28 |
18
+ 27 |
19
+ 26 |
20
+ 25 |
21
+ 24 |
22
+ ---
23
+ 23 | Event Class
24
+ 22 | ..
25
+ 21 | ..
26
+ 20 | ..
27
+ 19 | ..
28
+ 18 | ..
29
+ 17 | ..
30
+ 16 | ..
31
+ ---
32
+ 15 | ID
33
+ 14 | ..
34
+ 13 | ..
35
+ 12 | ..
36
+ 11 | ..
37
+ 10 | ..
38
+ 09 | ..
39
+ 08 | ..
40
+ ---
41
+ 07 | ..
42
+ 06 | ..
43
+ 05 | ..
44
+ 04 | ..
45
+ 03 | ..
46
+ 02 | ..
47
+ 01 | ..
48
+ 00 | ..
49
+ */
50
+
51
+
52
+
53
+ define('WPF2B_EVENT_CLASS_AUTH', 0x00010000);
54
+ define('WPF2B_EVENT_CLASS_COMMENT', 0x00020000);
55
+ define('WPF2B_EVENT_CLASS_XMLRPC', 0x00040000);
56
+ define('WPF2B_EVENT_CLASS_PASSWORD', 0x00080000);
57
+ define('WPF2B_EVENT_CLASS_REST', 0x00100000); /** @since 4.1.0 */
58
+ define('WPF2B_EVENT_CLASS_SPAM', 0x00200000); /** @since 4.2.0 */
59
+ define('WPF2B_EVENT_CLASS_BLOCK', 0x00400000); /** @since 4.3.0*/
60
+ define('WPF2B_EVENT_TYPE_PLUGIN', 0x40000000); /** @since 4.2.0 */
61
+ define('WPF2B_EVENT_TYPE_TEST', 0x80000000); /** @since 4.2.0 */
62
+
63
+
64
+ /**
65
+ *
66
+ */
67
+ define('WPF2B_EVENT_ACTIVATED', 0xffffffff);
68
+
69
+
70
+ /**
71
+ * Auth
72
+ */
73
+ define('WPF2B_EVENT_AUTH_OK', WPF2B_EVENT_CLASS_AUTH | 0x0001);
74
+ define('WPF2B_EVENT_AUTH_FAIL', WPF2B_EVENT_CLASS_AUTH | 0x0002);
75
+ define('WPF2B_EVENT_AUTH_BLOCK_USER', WPF2B_EVENT_CLASS_AUTH | WPF2B_EVENT_CLASS_BLOCK | 0x0004);
76
+ define('WPF2B_EVENT_AUTH_BLOCK_USER__', WPF2B_EVENT_CLASS_AUTH | 0x0004); /** @deprecated 4.3.0 */
77
+ define('WPF2B_EVENT_AUTH_BLOCK_USER_ENUM', WPF2B_EVENT_CLASS_AUTH | WPF2B_EVENT_CLASS_BLOCK | 0x0008);
78
+ define('WPF2B_EVENT_AUTH_BLOCK_USER_ENUM__', WPF2B_EVENT_CLASS_AUTH | 0x0008); /** @deprecated 4.3.0 */
79
+ define('WPF2B_EVENT_AUTH_EMPTY_USER', WPF2B_EVENT_CLASS_AUTH | 0x0010);
80
+ define('WPF2B_EVENT_AUTH_BLOCK_USERNAME_LOGIN', WPF2B_EVENT_CLASS_AUTH | WPF2B_EVENT_CLASS_BLOCK | 0x0020); /** @since 4.3.0 */
81
+
82
+ /**
83
+ * Comment
84
+ */
85
+ define('WPF2B_EVENT_COMMENT', WPF2B_EVENT_CLASS_COMMENT | 0x0001); // 0x00020001
86
+ define('WPF2B_EVENT_COMMENT_SPAM', WPF2B_EVENT_CLASS_COMMENT | WPF2B_EVENT_CLASS_SPAM | 0x0001); // 0x00220001
87
+ // comment extra
88
+ define('WPF2B_EVENT_COMMENT_NOT_FOUND', WPF2B_EVENT_CLASS_COMMENT | 0x0002); // 0x00020002
89
+ define('WPF2B_EVENT_COMMENT_CLOSED', WPF2B_EVENT_CLASS_COMMENT | 0x0004); // 0x00020004
90
+ define('WPF2B_EVENT_COMMENT_TRASH', WPF2B_EVENT_CLASS_COMMENT | 0x0008); // 0x00020008
91
+ define('WPF2B_EVENT_COMMENT_DRAFT', WPF2B_EVENT_CLASS_COMMENT | 0x0010); // 0x00020010
92
+ define('WPF2B_EVENT_COMMENT_PASSWORD', WPF2B_EVENT_CLASS_COMMENT | WPF2B_EVENT_CLASS_PASSWORD | 0x0020); // 0x000A0020
93
+
94
+ /**
95
+ * XML-RPC
96
+ */
97
+ define('WPF2B_EVENT_XMLRPC_PINGBACK', WPF2B_EVENT_CLASS_XMLRPC | 0x0001);
98
+ define('WPF2B_EVENT_XMLRPC_PINGBACK_ERROR', WPF2B_EVENT_CLASS_XMLRPC | 0x0002);
99
+ define('WPF2B_EVENT_XMLRPC_MULTI_AUTH_FAIL', WPF2B_EVENT_CLASS_XMLRPC | WPF2B_EVENT_CLASS_AUTH | 0x0004);
100
+ define('WPF2B_EVENT_XMLRPC_AUTH_OK', WPF2B_EVENT_CLASS_XMLRPC | WPF2B_EVENT_CLASS_AUTH | 0x0008);
101
+ define('WPF2B_EVENT_XMLRPC_AUTH_FAIL', WPF2B_EVENT_CLASS_XMLRPC | WPF2B_EVENT_CLASS_AUTH | 0x0010);
102
+
103
+ /**
104
+ * Password
105
+ */
106
+ define('WPF2B_EVENT_PASSWORD_REQUEST', WPF2B_EVENT_CLASS_PASSWORD | 0x0001);
107
+
108
+ /**
109
+ * REST
110
+ * @since 4.1.0
111
+ */
112
+ define('WPF2B_EVENT_REST_AUTH_OK', WPF2B_EVENT_CLASS_REST | WPF2B_EVENT_CLASS_AUTH | 0x0001);
113
+ define('WPF2B_EVENT_REST_AUTH_FAIL', WPF2B_EVENT_CLASS_REST | WPF2B_EVENT_CLASS_AUTH | 0x0002);
114
+
115
+ /**
116
+ *
117
+ */
118
+ define('WPF2B_EVENT_DEACTIVATED', 0x00000000);
119
+ // phpcs:enable
120
  }
121
+ // @codeCoverageIgnoreEnd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
 
lib/convert-data.php ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Convertors
4
+ *
5
+ * @package wp-fail2ban
6
+ * @since __NEXT_RELEASE
7
+ * @php 5.3
8
+ */
9
+ namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
+
11
+ if (defined('ABSPATH')) { // @codeCoverageIgnore
12
+ /**
13
+ * Convert various things to various other things.
14
+ *
15
+ * @since 4.3.0
16
+ */
17
+ abstract class ConvertData
18
+ {
19
+ /**
20
+ * @var string[] Map Event ID to Slug.
21
+ */
22
+ public static $Event2Slug = array(
23
+ 0x00000000 => 'deactivated',
24
+ WPF2B_EVENT_AUTH_OK => 'auth_ok',
25
+ WPF2B_EVENT_AUTH_FAIL => 'auth_fail',
26
+ WPF2B_EVENT_AUTH_BLOCK_USER => 'auth_block_user',
27
+ WPF2B_EVENT_AUTH_BLOCK_USER_ENUM => 'auth_block_user_enum',
28
+ WPF2B_EVENT_AUTH_BLOCK_USERNAME_LOGIN => 'auth_block_usernames',
29
+ WPF2B_EVENT_AUTH_EMPTY_USER => 'auth_empty_user',
30
+ WPF2B_EVENT_COMMENT => 'comment',
31
+ WPF2B_EVENT_COMMENT_SPAM => 'comment_spam',
32
+ WPF2B_EVENT_COMMENT_NOT_FOUND => 'comment_not_found',
33
+ WPF2B_EVENT_COMMENT_CLOSED => 'comment_closed',
34
+ WPF2B_EVENT_COMMENT_TRASH => 'comment_trash',
35
+ WPF2B_EVENT_COMMENT_DRAFT => 'comment_draft',
36
+ WPF2B_EVENT_COMMENT_PASSWORD => 'comment_password',
37
+ WPF2B_EVENT_XMLRPC_PINGBACK => 'xmlrpc_pingback',
38
+ WPF2B_EVENT_XMLRPC_PINGBACK_ERROR => 'xmlrpc_pingback_error',
39
+ WPF2B_EVENT_XMLRPC_MULTI_AUTH_FAIL => 'xmlrpc_multi_auth_fail',
40
+ WPF2B_EVENT_XMLRPC_AUTH_OK => 'xmlrpc_auth_ok',
41
+ WPF2B_EVENT_XMLRPC_AUTH_FAIL => 'xmlrpc_auth_fail',
42
+ WPF2B_EVENT_PASSWORD_REQUEST => 'password_request',
43
+ WPF2B_EVENT_REST_AUTH_OK => 'rest_auth_ok',
44
+ WPF2B_EVENT_REST_AUTH_FAIL => 'rest_auth_fail',
45
+ 0xFFFFFFFF => 'activated',
46
+ );
47
+
48
+ /**
49
+ * @var int[] Map Event Slug to ID.
50
+ */
51
+ public static $Slug2Event = array(
52
+ 'deactivated' => 0x00000000,
53
+ 'auth_ok' => WPF2B_EVENT_AUTH_OK,
54
+ 'auth_fail' => WPF2B_EVENT_AUTH_FAIL,
55
+ 'auth_block_user' => WPF2B_EVENT_AUTH_BLOCK_USER,
56
+ 'auth_block_user_enum' => WPF2B_EVENT_AUTH_BLOCK_USER_ENUM,
57
+ 'auth_block_usernames' => WPF2B_EVENT_AUTH_BLOCK_USERNAME_LOGIN,
58
+ 'auth_empty_user' => WPF2B_EVENT_AUTH_EMPTY_USER,
59
+ 'comment_spam' => WPF2B_EVENT_COMMENT_SPAM,
60
+ 'comment_not_found' => WPF2B_EVENT_COMMENT_NOT_FOUND,
61
+ 'comment_closed' => WPF2B_EVENT_COMMENT_CLOSED,
62
+ 'comment_trash' => WPF2B_EVENT_COMMENT_TRASH,
63
+ 'comment_draft' => WPF2B_EVENT_COMMENT_DRAFT,
64
+ 'comment_password' => WPF2B_EVENT_COMMENT_PASSWORD,
65
+ 'xmlrpc_pingback' => WPF2B_EVENT_XMLRPC_PINGBACK,
66
+ 'xmlrpc_pingback_error' => WPF2B_EVENT_XMLRPC_PINGBACK_ERROR,
67
+ 'xmlrpc_multi_auth_fail' => WPF2B_EVENT_XMLRPC_MULTI_AUTH_FAIL,
68
+ 'xmlrpc_auth_ok' => WPF2B_EVENT_XMLRPC_AUTH_OK,
69
+ 'xmlrpc_auth_fail' => WPF2B_EVENT_XMLRPC_AUTH_FAIL,
70
+ 'password_request' => WPF2B_EVENT_PASSWORD_REQUEST,
71
+ 'rest_auth_ok' => WPF2B_EVENT_REST_AUTH_OK,
72
+ 'rest_auth_fail' => WPF2B_EVENT_REST_AUTH_FAIL,
73
+ 'activated' => 0xFFFFFFFF,
74
+ );
75
+
76
+ /**
77
+ * @var int[] Map syslog facility name to value.
78
+ */
79
+ public static $FacilityName2Value = array(
80
+ 'LOG_AUTH' => LOG_AUTH,
81
+ 'LOG_AUTHPRIV' => LOG_AUTHPRIV,
82
+ 'LOG_CRON' => LOG_CRON,
83
+ 'LOG_DAEMON' => LOG_DAEMON,
84
+ 'LOG_KERN' => LOG_KERN,
85
+ 'LOG_LOCAL0' => LOG_LOCAL0,
86
+ 'LOG_LOCAL1' => LOG_LOCAL1,
87
+ 'LOG_LOCAL2' => LOG_LOCAL2,
88
+ 'LOG_LOCAL3' => LOG_LOCAL3,
89
+ 'LOG_LOCAL4' => LOG_LOCAL4,
90
+ 'LOG_LOCAL5' => LOG_LOCAL5,
91
+ 'LOG_LOCAL6' => LOG_LOCAL6,
92
+ 'LOG_LOCAL7' => LOG_LOCAL7,
93
+ 'LOG_LPR' => LOG_LPR,
94
+ 'LOG_MAIL' => LOG_MAIL,
95
+ 'LOG_NEWS' => LOG_NEWS,
96
+ 'LOG_SYSLOG' => LOG_SYSLOG,
97
+ 'LOG_USER' => LOG_USER,
98
+ 'LOG_UUCP' => LOG_UUCP,
99
+ );
100
+ }
101
+ } // @codeCoverageIgnore
102
+
lib/defaults.php CHANGED
@@ -1,79 +1,42 @@
1
  <?php
2
  /**
3
- * Default Constants
4
  *
5
  * @package wp-fail2ban
6
- * @since 4.2.0
7
  */
8
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
- if (!defined('ABSPATH')) {
11
- exit;
12
- }
13
-
14
- /**
15
- * Allow custom openlog options.
16
- * e.g. you may not want the PID if logging remotely.
17
- *
18
- * @since 3.6.0 Add LOG_NDELAY
19
- * @since 3.5.0
20
- */
21
- if (!defined('WP_FAIL2BAN_OPENLOG_OPTIONS')) {
22
- define('WP_FAIL2BAN_OPENLOG_OPTIONS', DEFAULT_WP_FAIL2BAN_OPENLOG_OPTIONS);
23
- }
24
- /**
25
- * Make sure all custom logs are defined.
26
- * @since 3.5.0
27
- */
28
- if (!defined('WP_FAIL2BAN_AUTH_LOG')) {
29
- define('WP_FAIL2BAN_AUTH_LOG', DEFAULT_WP_FAIL2BAN_AUTH_LOG);
30
- }
31
- if (!defined('WP_FAIL2BAN_COMMENT_LOG')) {
32
- define('WP_FAIL2BAN_COMMENT_LOG', DEFAULT_WP_FAIL2BAN_COMMENT_LOG);
33
- }
34
- if (!defined('WP_FAIL2BAN_PINGBACK_LOG')) {
35
- define('WP_FAIL2BAN_PINGBACK_LOG', DEFAULT_WP_FAIL2BAN_PINGBACK_LOG);
36
- }
37
- /**
38
- * @since 4.0.0
39
- */
40
- if (!defined('WP_FAIL2BAN_PASSWORD_REQUEST_LOG')) {
41
- define('WP_FAIL2BAN_PASSWORD_REQUEST_LOG', DEFAULT_WP_FAIL2BAN_PASSWORD_REQUEST_LOG);
42
- }
43
- if (!defined('WP_FAIL2BAN_SPAM_LOG')) {
44
- define('WP_FAIL2BAN_SPAM_LOG', DEFAULT_WP_FAIL2BAN_SPAM_LOG);
45
- }
46
- /**
47
- * @since 4.0.5
48
- */
49
- if (!defined('WP_FAIL2BAN_COMMENT_EXTRA_LOG')) {
50
- define('WP_FAIL2BAN_COMMENT_EXTRA_LOG', DEFAULT_WP_FAIL2BAN_COMMENT_EXTRA_LOG);
51
- }
52
- if (!defined('WP_FAIL2BAN_PINGBACK_ERROR_LOG')) {
53
- define('WP_FAIL2BAN_PINGBACK_ERROR_LOG', DEFAULT_WP_FAIL2BAN_PINGBACK_ERROR_LOG);
54
- }
55
- /**
56
- * @since 4.2.0
57
- */
58
- if (!defined('WP_FAIL2BAN_PLUGIN_AUTH_LOG')) {
59
- define('WP_FAIL2BAN_PLUGIN_AUTH_LOG', DEFAULT_WP_FAIL2BAN_PLUGIN_AUTH_LOG);
60
- }
61
- if (!defined('WP_FAIL2BAN_PLUGIN_COMMENT_LOG')) {
62
- define('WP_FAIL2BAN_PLUGIN_COMMENT_LOG', DEFAULT_WP_FAIL2BAN_PLUGIN_COMMENT_LOG);
63
- }
64
- if (!defined('WP_FAIL2BAN_PLUGIN_OTHER_LOG')) {
65
- define('WP_FAIL2BAN_PLUGIN_OTHER_LOG', DEFAULT_WP_FAIL2BAN_PLUGIN_OTHER_LOG);
66
- }
67
- if (!defined('WP_FAIL2BAN_PLUGIN_PASSWORD_LOG')) {
68
- define('WP_FAIL2BAN_PLUGIN_PASSWORD_LOG', DEFAULT_WP_FAIL2BAN_PLUGIN_PASSWORD_LOG);
69
- }
70
- if (!defined('WP_FAIL2BAN_PLUGIN_REST_LOG')) {
71
- define('WP_FAIL2BAN_PLUGIN_REST_LOG', DEFAULT_WP_FAIL2BAN_PLUGIN_REST_LOG);
72
- }
73
- if (!defined('WP_FAIL2BAN_PLUGIN_SPAM_LOG')) {
74
- define('WP_FAIL2BAN_PLUGIN_SPAM_LOG', DEFAULT_WP_FAIL2BAN_PLUGIN_SPAM_LOG);
75
- }
76
- if (!defined('WP_FAIL2BAN_PLUGIN_XMLRPC_LOG')) {
77
- define('WP_FAIL2BAN_PLUGIN_XMLRPC_LOG', DEFAULT_WP_FAIL2BAN_PLUGIN_XMLRPC_LOG);
78
- }
79
 
1
  <?php
2
  /**
3
+ * Defaults
4
  *
5
  * @package wp-fail2ban
6
+ * @since 4.3.0
7
  */
8
  namespace org\lecklider\charles\wordpress\wp_fail2ban;
9
 
10
+ // @codeCoverageIgnoreStart
11
+ if (defined('ABSPATH')) {
12
+ // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing
13
+ /**
14
+ * Defaults
15
+ *
16
+ * @since 4.0.0
17
+ */
18
+ define('DEFAULT_WP_FAIL2BAN_OPENLOG_OPTIONS', LOG_PID|LOG_NDELAY);
19
+ define('DEFAULT_WP_FAIL2BAN_AUTH_LOG', LOG_AUTH);
20
+ define('DEFAULT_WP_FAIL2BAN_COMMENT_LOG', LOG_USER);
21
+ define('DEFAULT_WP_FAIL2BAN_PINGBACK_LOG', LOG_USER);
22
+ define('DEFAULT_WP_FAIL2BAN_PASSWORD_REQUEST_LOG', LOG_USER);
23
+ define('DEFAULT_WP_FAIL2BAN_SPAM_LOG', LOG_AUTH);
24
+ /**
25
+ * @since 4.0.5
26
+ */
27
+ define('DEFAULT_WP_FAIL2BAN_COMMENT_EXTRA_LOG', LOG_AUTH);
28
+ define('DEFAULT_WP_FAIL2BAN_PINGBACK_ERROR_LOG', LOG_AUTH);
29
+ /**
30
+ * @since 4.2.0
31
+ */
32
+ define('DEFAULT_WP_FAIL2BAN_PLUGIN_AUTH_LOG', LOG_AUTH);
33
+ define('DEFAULT_WP_FAIL2BAN_PLUGIN_COMMENT_LOG', LOG_USER);
34
+ define('DEFAULT_WP_FAIL2BAN_PLUGIN_OTHER_LOG', LOG_USER);
35
+ define('DEFAULT_WP_FAIL2BAN_PLUGIN_PASSWORD_LOG', LOG_USER);
36
+ define('DEFAULT_WP_FAIL2BAN_PLUGIN_REST_LOG', LOG_USER);
37
+ define('DEFAULT_WP_FAIL2BAN_PLUGIN_SPAM_LOG', LOG_AUTH);
38
+ define('DEFAULT_WP_FAIL2BAN_PLUGIN_XMLRPC_LOG', LOG_USER);
39
+ // phpcs:enable
40
+ }
41
+ // @codeCoverageIgnoreEnd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
 
lib/loader.php CHANGED
@@ -1,327 +1,454 @@
1
  <?php
2
-
3
  /**
4
  * Loader
5
  *
6
  * @package wp-fail2ban
7
- * @since 4.2.0
 
8
  */
9
- namespace {
10
- if ( !defined( 'ABSPATH' ) ) {
11
- exit;
12
- }
13
- if ( defined( 'PHPUNIT_COMPOSER_INSTALL' ) ) {
14
- return;
15
- }
16
- if ( !function_exists( 'boolval' ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  /**
18
- * PHP 5.3 helper
19
  *
20
- * @since 4.2.5
 
21
  *
22
- * @param mixed $val
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  *
24
- * @return bool
 
25
  */
26
- function boolval( $val )
27
  {
28
- return (bool) $val;
29
  }
30
-
31
- }
32
- }
33
- namespace org\lecklider\charles\wordpress\wp_fail2ban {
34
- /**
35
- * Helper
36
- *
37
- * @since 4.0.0
38
- *
39
- * @param string $define
40
- * @param callable $cast
41
- * @param bool $unset
42
- * @param array $field
43
- */
44
- function _load(
45
- $define,
46
- $cast,
47
- $unset,
48
- array $field
49
- )
50
- {
51
- global $wp_fail2ban ;
52
- $wp_fail2ban['config'][$define] = array(
53
- 'validate' => $cast,
54
- 'unset' => $unset,
55
- 'field' => $field,
56
- 'ndef' => !defined( $define ),
57
- );
58
- if ( !defined( $define ) ) {
59
-
60
- if ( defined( "DEFAULT_{$define}" ) ) {
61
- // we've got a default
62
- define( $define, $cast( constant( "DEFAULT_{$define}" ) ) );
63
- } else {
64
- // bah
65
- define( $define, $cast( false ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  }
67
-
68
  }
69
  }
70
-
71
- /**
72
- * Validate IP list
73
- *
74
- * @since 4.0.0
75
- *
76
- * @param array|string $value
77
- *
78
- * @return string
79
- */
80
- function validate_ips( $value )
81
- {
82
- return $value;
83
- }
84
-
85
- // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing
86
- _load(
87
- 'WP_FAIL2BAN_AUTH_LOG',
88
- 'intval',
89
- true,
90
- array( 'logging', 'authentication', 'facility' )
91
- );
92
- _load(
93
- 'WP_FAIL2BAN_LOG_COMMENTS',
94
- 'boolval',
95
- true,
96
- array( 'logging', 'comments', 'enabled' )
97
- );
98
- _load(
99
- 'WP_FAIL2BAN_LOG_COMMENTS_EXTRA',
100
- 'intval',
101
- true,
102
- array( 'logging', 'comments', 'extra' )
103
- );
104
- _load(
105
- 'WP_FAIL2BAN_COMMENT_LOG',
106
- 'intval',
107
- false,
108
- array( 'logging', 'comments', 'facility' )
109
- );
110
- _load(
111
- 'WP_FAIL2BAN_COMMENT_EXTRA_LOG',
112
- 'intval',
113
- false,
114
- array( 'logging', 'comments-extra', 'facility' )
115
- );
116
- _load(
117
- 'WP_FAIL2BAN_LOG_PASSWORD_REQUEST',
118
- 'boolval',
119
- true,
120
- array( 'logging', 'password-request', 'enabled' )
121
- );
122
- _load(
123
- 'WP_FAIL2BAN_PASSWORD_REQUEST_LOG',
124
- 'intval',
125
- false,
126
- array( 'logging', 'password-request', 'facility' )
127
- );
128
- _load(
129
- 'WP_FAIL2BAN_LOG_PINGBACKS',
130
- 'boolval',
131
- true,
132
- array( 'logging', 'pingback', 'enabled' )
133
- );
134
- _load(
135
- 'WP_FAIL2BAN_PINGBACK_LOG',
136
- 'intval',
137
- false,
138
- array( 'logging', 'pingback', 'facility' )
139
- );
140
- _load(
141
- 'WP_FAIL2BAN_LOG_SPAM',
142
- 'boolval',
143
- true,
144
- array( 'logging', 'spam', 'enabled' )
145
- );
146
- _load(
147
- 'WP_FAIL2BAN_SPAM_LOG',
148
- 'intval',
149
- false,
150
- array( 'logging', 'spam', 'facility' )
151
- );
152
- _load(
153
- 'WP_FAIL2BAN_OPENLOG_OPTIONS',
154
- 'intval',
155
- true,
156
- array( 'syslog', 'connection' )
157
- );
158
- _load(
159
- 'WP_FAIL2BAN_SYSLOG_SHORT_TAG',
160
- 'boolval',
161
- true,
162
- array( 'syslog', 'workaround', 'short_tag' )
163
- );
164
- _load(
165
- 'WP_FAIL2BAN_HTTP_HOST',
166
- 'boolval',
167
- true,
168
- array( 'syslog', 'workaround', 'http_host' )
169
- );
170
- _load(
171
- 'WP_FAIL2BAN_TRUNCATE_HOST',
172
- 'boolval',
173
- true,
174
- array( 'syslog', 'workaround', 'truncate_host' )
175
- );
176
- _load(
177
- 'WP_FAIL2BAN_BLOCK_USER_ENUMERATION',
178
- 'boolval',
179
- true,
180
- array( 'block', 'user_enumeration' )
181
- );
182
- _load(
183
- 'WP_FAIL2BAN_BLOCKED_USERS',
184
- 'strval',
185
- true,
186
- array( 'block', 'users' )
187
- );
188
- _load(
189
- 'WP_FAIL2BAN_PROXIES',
190
- __NAMESPACE__ . '\\validate_ips',
191
- true,
192
- array( 'remote-ip', 'proxies' )
193
- );
194
- _load(
195
- 'WP_FAIL2BAN_PLUGIN_LOG_AUTH',
196
- 'boolval',
197
- true,
198
- array(
199
- 'logging',
200
- 'plugins',
201
- 'auth',
202
- 'enabled'
203
- )
204
- );
205
- _load(
206
- 'WP_FAIL2BAN_PLUGIN_LOG_COMMENT',
207
- 'boolval',
208
- true,
209
- array(
210
- 'logging',
211
- 'plugins',
212
- 'comment',
213
- 'enabled'
214
- )
215
- );
216
- _load(
217
- 'WP_FAIL2BAN_PLUGIN_LOG_PASSWORD',
218
- 'boolval',
219
- true,
220
- array(
221
- 'logging',
222
- 'plugins',
223
- 'password',
224
- 'enabled'
225
- )
226
- );
227
- _load(
228
- 'WP_FAIL2BAN_PLUGIN_LOG_REST',
229
- 'boolval',
230
- true,
231
- array(
232
- 'logging',
233
- 'plugins',
234
- 'rest',
235
- 'enabled'
236
- )
237
- );
238
- _load(
239
- 'WP_FAIL2BAN_PLUGIN_LOG_SPAM',
240
- 'boolval',
241
- true,
242
- array(
243
- 'logging',
244
- 'plugins',
245
- 'spam',
246
- 'enabled'
247
- )
248
- );
249
- _load(
250
- 'WP_FAIL2BAN_PLUGIN_LOG_XMLRPC',
251
- 'boolval',
252
- true,
253
- array(
254
- 'logging',
255
- 'plugins',
256
- 'xmlrpc',
257
- 'enabled'
258
- )
259
- );
260
- _load(
261
- 'WP_FAIL2BAN_PLUGIN_AUTH_LOG',
262
- 'intval',
263
- false,
264
- array(
265
- 'logging',
266
- 'plugins',
267
- 'auth',
268
- 'facility'
269
- )
270
- );
271
- _load(
272
- 'WP_FAIL2BAN_PLUGIN_COMMENT_LOG',
273
- 'intval',
274
- false,
275
- array(
276
- 'logging',
277
- 'plugins',
278
- 'comment',
279
- 'facility'
280
- )
281
- );
282
- _load(
283
- 'WP_FAIL2BAN_PLUGIN_PASSWORD_LOG',
284
- 'intval',
285
- false,
286
- array(
287
- 'logging',
288
- 'plugins',
289
- 'password',
290
- 'facility'
291
- )
292
- );
293
- _load(
294
- 'WP_FAIL2BAN_PLUGIN_REST_LOG',
295
- 'intval',
296
- false,
297
- array(
298
- 'logging',
299
- 'plugins',
300
- 'rest',
301
- 'facility'
302
- )
303
- );
304
- _load(
305
- 'WP_FAIL2BAN_PLUGIN_SPAM_LOG',
306
- 'intval',
307
- false,
308
- array(
309
- 'logging',
310
- 'plugins',
311
- 'spam',
312
- 'facility'
313
- )
314
- );
315
- _load(
316
- 'WP_FAIL2BAN_PLUGIN_XMLRPC_LOG',
317
- 'intval',
318
- false,
319
- array(
320
- 'logging',
321
- 'plugins',
322
- 'xmlrpc',
323
- 'facility'
324
- )
325
- );
326
- // phpcs:enable
327
- }
1
  <?php
 
2
  /**
3
  * Loader
4
  *
5
  * @package wp-fail2ban
6
+ * @since 4.2.0
7
+ * @php 5.6
8
  */
9
+ namespace org\lecklider\charles\wordpress\wp_fail2ban;
10
+
11
+ if (defined('PHPUNIT_COMPOSER_INSTALL')) {
12
+ return;
13
+
14
+ } elseif (defined('ABSPATH')) {
15
+ /**
16
+ * Config
17
+ *
18
+ * @since 4.2.0
19
+ */
20
+ class Config
21
+ {
22
+ /**
23
+ * @var array Settings
24
+ * @since 4.3.0
25
+ */
26
+ protected static $settings = null;
27
+ /**
28
+ * @var Config Instance.
29
+ * @since 4.3.0
30
+ */
31
+ protected static $instance = null;
32
+
33
+ /**
34
+ * Construct
35
+ *
36
+ * @since 4.3.0
37
+ */
38
+ public static function load(array $config = [])
39
+ {
40
+ if (is_null(self::$instance)) {
41
+ global $wp_fail2ban;
42
+
43
+ $class = get_called_class();
44
+ self::$instance = new $class();
45
+
46
+ $wp_fail2ban['config'] = apply_filters(
47
+ __METHOD__.'.config',
48
+ array_merge(
49
+ $config,
50
+ array(
51
+ 'WP_FAIL2BAN_AUTH_LOG' => array(
52
+ 'validate' => 'intval',
53
+ 'unset' => true,
54
+ 'field' => array(
55
+ 'logging',
56
+ 'authentication',
57
+ 'facility')),
58
+ 'WP_FAIL2BAN_LOG_COMMENTS' => array(
59
+ 'validate' => 'boolval',
60
+ 'unset' => true,
61
+ 'field' => array(
62
+ 'logging',
63
+ 'comments',
64
+ 'enabled')),
65
+ 'WP_FAIL2BAN_LOG_COMMENTS_EXTRA' => array(
66
+ 'validate' => 'intval',
67
+ 'unset' => true,
68
+ 'field' => array(
69
+ 'logging',
70
+ 'comments',
71
+ 'extra')),
72
+ 'WP_FAIL2BAN_COMMENT_LOG' => array(
73
+ 'validate' => 'intval',
74
+ 'unset' => false,
75
+ 'field' => array(
76
+ 'logging',
77
+ 'comments',
78
+ 'facility')),
79
+ 'WP_FAIL2BAN_COMMENT_EXTRA_LOG' => array(
80
+ 'validate' => 'intval',
81
+ 'unset' => false,
82
+ 'field' => array(
83
+ 'logging',
84
+ 'comments-extra',
85
+ 'facility')),
86
+ 'WP_FAIL2BAN_LOG_PASSWORD_REQUEST' => array(
87
+ 'validate' => 'boolval',
88
+ 'unset' => true,
89
+ 'field' => array(
90
+ 'logging',
91
+ 'password-request',
92
+ 'enabled')),
93
+ 'WP_FAIL2BAN_PASSWORD_REQUEST_LOG' => array(
94
+ 'validate' => 'intval',
95
+ 'unset' => false,
96
+ 'field' => array(
97
+ 'logging',
98
+ 'password-request',
99
+ 'facility')),
100
+ 'WP_FAIL2BAN_LOG_PINGBACKS' => array(
101
+ 'validate' => 'boolval',
102
+ 'unset' => true,
103
+ 'field' => array(
104
+ 'logging',
105
+ 'pingback',
106
+ 'enabled')),
107
+ 'WP_FAIL2BAN_PINGBACK_LOG' => array(
108
+ 'validate' => 'intval',
109
+ 'unset' => false,
110
+ 'field' => array(
111
+ 'logging',
112
+ 'pingback',
113
+ 'facility')),
114
+ 'WP_FAIL2BAN_LOG_SPAM' => array(
115
+ 'validate' => 'boolval',
116
+ 'unset' => true,
117
+ 'field' => array(
118
+ 'logging',
119
+ 'spam',
120
+ 'enabled')),
121
+ 'WP_FAIL2BAN_SPAM_LOG' => array(
122
+ 'validate' => 'intval',
123
+ 'unset' => false,
124
+ 'field' => array(
125
+ 'logging',
126
+ 'spam',
127
+ 'facility')),
128
+
129
+ /**
130
+ * syslog
131
+ */
132
+ 'WP_FAIL2BAN_OPENLOG_OPTIONS' => array(
133
+ 'validate' => 'intval',
134
+ 'unset' => true,
135
+ 'field' => array(
136
+ 'syslog',
137
+ 'connection')),
138
+ 'WP_FAIL2BAN_SYSLOG_SHORT_TAG' => array(
139
+ 'validate' => 'boolval',
140
+ 'unset' => true,
141
+ 'field' => array(
142
+ 'syslog',
143
+ 'workaround',
144
+ 'short_tag')),
145
+ 'WP_FAIL2BAN_HTTP_HOST' => array(
146
+ 'validate' => 'boolval',
147
+ 'unset' => true,
148
+ 'field' => array(
149
+ 'syslog',
150
+ 'workaround',
151
+ 'http_host')),
152
+ 'WP_FAIL2BAN_TRUNCATE_HOST' => array(
153
+ 'validate' => 'boolval',
154
+ 'unset' => true,
155
+ 'field' => array(
156
+ 'syslog',
157
+ 'workaround',
158
+ 'truncate_host')),
159
+
160
+ /**
161
+ * Block
162
+ */
163
+ 'WP_FAIL2BAN_BLOCK_USER_ENUMERATION' => array(
164
+ 'validate' => 'boolval',
165
+ 'unset' => true,
166
+ 'field' => array(
167
+ 'block',
168
+ 'user_enumeration')),
169
+ 'WP_FAIL2BAN_BLOCKED_USERS' => array(
170
+ 'validate' => 'strval',
171
+ 'unset' => true,
172
+ 'field' => array(
173
+ 'block',
174
+ 'users')),
175
+ 'WP_FAIL2BAN_BLOCK_USERNAME_LOGIN' => array(
176
+ 'validate' => 'boolval',
177
+ 'unset' => true,
178
+ 'field' => array(
179
+ 'block',
180
+ 'usernames')),
181
+
182
+ /**
183
+ * Plugins
184
+ */
185
+ 'WP_FAIL2BAN_PLUGIN_LOG_AUTH' => array(
186
+ 'validate' => 'boolval',
187
+ 'unset' => true,
188
+ 'field' => array(
189
+ 'logging',
190
+ 'plugins',
191
+ 'auth',
192
+ 'enabled')),
193
+ 'WP_FAIL2BAN_PLUGIN_LOG_COMMENT' => array(
194
+ 'validate' => 'boolval',
195
+ 'unset' => true,
196
+ 'field' => array(
197
+ 'logging',
198
+ 'plugins',
199
+ 'comment',
200
+ 'enabled')),
201
+ 'WP_FAIL2BAN_PLUGIN_LOG_PASSWORD' => array(
202
+ 'validate' => 'boolval',
203
+ 'unset' => true,
204
+ 'field' => array(
205
+ 'logging',
206
+ 'plugins',
207
+ 'password',
208
+ 'enabled')),
209
+ 'WP_FAIL2BAN_PLUGIN_LOG_REST' => array(
210
+ 'validate' => 'boolval',
211
+ 'unset' => true,
212
+ 'field' => array(
213
+ 'logging',
214
+ 'plugins',
215
+ 'rest',
216
+ 'enabled')),
217
+ 'WP_FAIL2BAN_PLUGIN_LOG_SPAM' => array(
218
+ 'validate' => 'boolval',
219
+ 'unset' => true,
220
+ 'field' => array(
221
+ 'logging',
222
+ 'plugins',
223
+ 'spam',
224
+ 'enabled')),
225
+ 'WP_FAIL2BAN_PLUGIN_LOG_XMLRPC' => array(
226
+ 'validate' => 'boolval',
227
+ 'unset' => true,
228
+ 'field' => array(
229
+ 'logging',
230
+ 'plugins',
231
+ 'xmlrpc',
232
+ 'enabled')),
233
+ 'WP_FAIL2BAN_PLUGIN_AUTH_LOG' => array(
234
+ 'validate' => 'intval',
235
+ 'unset' => false,
236
+ 'field' => array(
237
+ 'logging',
238
+ 'plugins',
239
+ 'auth',
240
+ 'facility')),
241
+ 'WP_FAIL2BAN_PLUGIN_COMMENT_LOG' => array(
242
+ 'validate' => 'intval',
243
+ 'unset' => false,
244
+ 'field' => array(
245
+ 'logging',
246
+ 'plugins',
247
+ 'comment',
248
+ 'facility')),
249
+ 'WP_FAIL2BAN_PLUGIN_PASSWORD_LOG' => array(
250
+ 'validate' => 'intval',
251
+ 'unset' => false,
252
+ 'field' => array(
253
+ 'logging',
254
+ 'plugins',
255
+ 'password',
256
+ 'facility')),
257
+ 'WP_FAIL2BAN_PLUGIN_REST_LOG' => array(
258
+ 'validate' => 'intval',
259
+ 'unset' => false,
260
+ 'field' => array(
261
+ 'logging',
262
+ 'plugins',
263
+ 'rest',
264
+ 'facility')),
265
+ 'WP_FAIL2BAN_PLUGIN_SPAM_LOG' => array(
266
+ 'validate' => 'intval',
267
+ 'unset' => false,
268
+ 'field' => array(
269
+ 'logging',
270
+ 'plugins',
271
+ 'spam',
272
+ 'facility')),
273
+ 'WP_FAIL2BAN_PLUGIN_XMLRPC_LOG' => array(
274
+ 'validate' => 'intval',
275
+ 'unset' => false,
276
+ 'field' => array(
277
+ 'logging',
278
+ 'plugins',
279
+ 'xmlrpc',
280
+ 'facility')),
281
+
282
+ 'WP_FAIL2BAN_PROXIES' => array(
283
+ 'validate' => __CLASS__.'::validate_ips',
284
+ 'unset' => true,
285
+ 'field' => array(
286
+ 'remote-ip',
287
+ 'proxies')),
288
+ )
289
+ )
290
+ );
291
+
292
+ static::init();
293
+ }
294
+ }
295
+
296
+ protected static function init()
297
+ {
298
+ global $wp_fail2ban;
299
+
300
+ self::$settings = array();
301
+
302
+ foreach ($wp_fail2ban['config'] as $define => $args) {
303
+ if ($wp_fail2ban['config'][$define]['ndef'] = !defined($define)) {
304
+ if (defined("DEFAULT_{$define}")) {
305
+ define($define, $args['validate'](constant("DEFAULT_{$define}")));
306
+ } else {
307
+ // bah
308
+ define($define, call_user_func($args['validate'], false));
309
+ }
310
+ }
311
+ }
312
+ }
313
+
314
  /**
315
+ * Validate IP list.
316
  *
317
+ * @since 4.3.0 Refactored
318
+ * @since 4.0.0
319
  *
320
+ * @param array|string $value
321
+ * @return string
322
+ */
323
+ public static function validate_ips($value)
324
+ {
325
+ return self::$instance->doValidateIPs($value);
326
+ }
327
+
328
+ public function doValidateIPs($value)
329
+ {
330
+ return (false === $value) ? '' : $value;
331
+ }
332
+
333
+ /**
334
+ * Helper: filtered get_site_option('wp-fail2ban')
335
+ *
336
+ * @since 4.3.0
337
  *
338
+ * @param bool $filter
339
+ * @return array
340
  */
341
+ public static function settings($filter = true)
342
  {
343
+ return self::$instance->getSettings($filter);
344
  }
345
+
346
+ public function getSettings($filter = true)
347
+ {
348
+ return self::$settings;
349
+ }
350
+
351
+ // phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
352
+ /**
353
+ * Helper: default value
354
+ *
355
+ * @since 4.3.0
356
+ *
357
+ * @param string $define
358
+ * @return mixed
359
+ */
360
+ public static function get_default($define)
361
+ {
362
+ $const = "DEFAULT_{$define}";
363
+
364
+ return (defined($const))
365
+ ? constant($const)
366
+ : null;
367
+ }
368
+ // phpcs:enable
369
+
370
+ /**
371
+ * Help:er: is defined?
372
+ *
373
+ * @since 4.3.0
374
+ *
375
+ * @param string $define Constant name
376
+ * @return bool Is defined?
377
+ */
378
+ public static function def($define)
379
+ {
380
+ return !self::ndef($define);
381
+ }
382
+
383
+ /**
384
+ * Helper: is not defined?
385
+ *
386
+ * @since 4.3.0
387
+ *
388
+ * @param string $define Constant name
389
+ * @return bool Is not defined?
390
+ */
391
+ public static function ndef($define)
392
+ {
393
+ return self::$instance->getNdef($define);
394
+ }
395
+
396
+ public function getNdef($define)
397
+ {
398
+ global $wp_fail2ban;
399
+
400
+ return @$wp_fail2ban['config'][$define]['ndef'];
401
+ }
402
+
403
+ /**
404
+ * Helper: get value
405
+ *
406
+ * @since 4.3.0
407
+ *
408
+ * @param string $define Constant name
409
+ * @param array $settings Premium: settings to use
410
+ * @return mixed Constant value
411
+ */
412
+ public static function get($define, array $settings = null)
413
+ {
414
+ return self::$instance->getter($define, $settings);
415
+ }
416
+
417
+ public function getter($define, array $settings = null)
418
+ {
419
+ return (defined($define)) ? constant($define) : null;
420
+ }
421
+
422
+ /**
423
+ * Helper: get description
424
+ *
425
+ * @since 4.3.0
426
+ *
427
+ * @param string $define Constant name.
428
+ * @return string|null Description.
429
+ */
430
+ public static function desc($define)
431
+ {
432
+ return self::$instance->getDesc($define);
433
+ }
434
+
435
+ public function getDesc($define)
436
+ {
437
+ switch ($define) {
438
+ case 'WP_FAIL2BAN_AUTH_LOG':
439
+ return __('Logins and attempted logins.', 'wp-fail2ban');
440
+ case 'WP_FAIL2BAN_LOG_SPAM':
441
+ return __('Log comments marked as spam.', 'wp-fail2ban');
442
+ case 'WP_FAIL2BAN_BLOCK_USER_ENUMERATION':
443
+ return __('Stop attackers listing existing usernames.', 'wp-fail2ban');
444
+ case 'WP_FAIL2BAN_BLOCK_USERNAME_LOGIN':
445
+ return __('Allow <b>email addresses only</b> for login.', 'wp-fail2ban');
446
+ case 'WP_FAIL2BAN_PROXIES':
447
+ return __('Trusted IPv4 list.', 'wp-fail2ban');
448
+ default:
449
+ return null;
450
  }
 
451
  }
452
  }
453
+ }
454
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -3,11 +3,11 @@ Contributors: invisnet
3
  Donate link: https://paypal.me/invisnet/
4
  Author URI: https://charles.lecklider.org/
5
  Plugin URI: https://wp-fail2ban.com/
6
- Tags: fail2ban, login, security, syslog
7
  Requires at least: 4.2
8
- Tested up to: 5.2
9
- Stable tag: 4.2.7.1
10
- Requires PHP: 5.3
11
  License: GPLv2 or later
12
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
13
 
@@ -26,20 +26,22 @@ Write a myriad of WordPress events to syslog for integration with fail2ban.
26
 
27
  = Features =
28
 
29
- * **NEW - Remote Tools Add-on**
30
- The Remote Tools add-on provides extra features without adding bloat to the core plugin. For more details see the [add-on page](https://wp-fail2ban.com/add-ons/remote-tools/).
31
 
32
- **NB:** Requires PHP >= 5.6
 
33
 
34
- * **NEW - Support for 3rd-party Plugins**
 
 
 
35
  Version 4.2 introduces a simple API for authors to integrate their plugins with *WPf2b*, with 2 *experimental* add-ons:
36
  * [Contact Form 7](https://wordpress.org/plugins/wp-fail2ban-addon-contact-form-7/)
37
  * [Gravity Forms](https://wordpress.org/plugins/wp-fail2ban-addon-gravity-forms/)
38
 
39
- **NB:** Requires PHP >= 5.6
40
-
41
  * **CloudFlare and Proxy Servers**
42
- *WPf2b* can be configured to work with CloudFlare and other proxy servers. For an overview see [`WP_FAIL2BAN_PROXIES`](https://docs.wp-fail2ban.com/en/4.2/defines.html#wp-fail2ban-proxies).
43
 
44
  * **Comments**
45
  *WPf2b* can log comments (see [`WP_FAIL2BAN_LOG_COMMENTS`](https://docs.wp-fail2ban.com/en/4.2/defines.html#wp-fail2ban-log-comments)) and attempted comments (see [`WP_FAIL2BAN_LOG_COMMENTS_EXTRA`](https://docs.wp-fail2ban.com/en/4.2/defines.html#wp-fail2ban-log-comments-extra)).
@@ -51,7 +53,7 @@ Write a myriad of WordPress events to syslog for integration with fail2ban.
51
  *WPf2b* can log comments marked as spam. See [`WP_FAIL2BAN_LOG_SPAM`](https://docs.wp-fail2ban.com/en/4.2/defines.html#wp-fail2ban-log-spam).
52
 
53
  * **Block User Enumeration**
54
- *WPf2b* can block user enumeration. See [`WP_FAIL2BAN_BLOCK_USER_ENUMERATION`](https://docs.wp-fail2ban.com/en/4.2/defines.html#wp-fail2ban-block-user-enumeration).
55
 
56
  * **Work-Arounds for Broken syslogd**
57
  *WPf2b* can be configured to work around most syslogd weirdness. For an overview see [`WP_FAIL2BAN_SYSLOG_SHORT_TAG`](https://docs.wp-fail2ban.com/en/4.2/defines.html#wp-fail2ban-syslog-short-tag) and [`WP_FAIL2BAN_HTTP_HOST`](https://docs.wp-fail2ban.com/en/4.2/defines.html#wp-fail2ban-http-host).
@@ -70,6 +72,14 @@ Write a myriad of WordPress events to syslog for integration with fail2ban.
70
 
71
  == Changelog ==
72
 
 
 
 
 
 
 
 
 
73
  = 4.2.7.1 =
74
  * Fix error when blocking user enumeration via `oembed` (h/t @wordpressfab).
75
 
@@ -228,6 +238,9 @@ Write a myriad of WordPress events to syslog for integration with fail2ban.
228
 
229
  == Upgrade Notice ==
230
 
 
 
 
231
  = 4.2.7.1 =
232
  This is a bugfix release. You do not need to update your filters from 4.1.0.
233
 
@@ -311,3 +324,4 @@ Bugfix in experimental code; still an experimental release.
311
 
312
  = 2.0.0 =
313
  This is an experimental release. If your current version is working and you're not interested in the new features, skip this version - wait for 2.1.0. For those that do want to test this release, note that `wordpress.conf` has changed - you'll need to copy it to `fail2ban/filters.d` again.
 
3
  Donate link: https://paypal.me/invisnet/
4
  Author URI: https://charles.lecklider.org/
5
  Plugin URI: https://wp-fail2ban.com/
6
+ Tags: fail2ban, login, security, syslog, brute force, protection, classicpress
7
  Requires at least: 4.2
8
+ Tested up to: 5.4
9
+ Stable tag: 4.3.0-RC3
10
+ Requires PHP: 5.6
11
  License: GPLv2 or later
12
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
13
 
26
 
27
  = Features =
28
 
29
+ * **NEW - Multisite Support**
30
+ Version 4.3 introduces [proper support for multisite networks](https://wp-fail2ban.com/features/multisite-networks/?utm_source=readme).
31
 
32
+ * **NEW** - Block username logins**
33
+ It is sometimes not possible to block user enumeration (for example, if your theme provides Author profiles). Version 4.3 adds support for requiring the use of email addresses for login.
34
 
35
+ * **Remote Tools Add-on**
36
+ The Remote Tools add-on provides extra features without adding bloat to the core plugin. For more details see the [add-on page](https://wp-fail2ban.com/add-ons/remote-tools/?utm_source=readme).
37
+
38
+ * **Support for 3rd-party Plugins**
39
  Version 4.2 introduces a simple API for authors to integrate their plugins with *WPf2b*, with 2 *experimental* add-ons:
40
  * [Contact Form 7](https://wordpress.org/plugins/wp-fail2ban-addon-contact-form-7/)
41
  * [Gravity Forms](https://wordpress.org/plugins/wp-fail2ban-addon-gravity-forms/)
42
 
 
 
43
  * **CloudFlare and Proxy Servers**
44
+ *WPf2b* can be configured to work with [CloudFlare and other proxy servers](https://wp-fail2ban.com/features/cloudflare-and-proxy-servers/?utm_source=readme).
45
 
46
  * **Comments**
47
  *WPf2b* can log comments (see [`WP_FAIL2BAN_LOG_COMMENTS`](https://docs.wp-fail2ban.com/en/4.2/defines.html#wp-fail2ban-log-comments)) and attempted comments (see [`WP_FAIL2BAN_LOG_COMMENTS_EXTRA`](https://docs.wp-fail2ban.com/en/4.2/defines.html#wp-fail2ban-log-comments-extra)).
53
  *WPf2b* can log comments marked as spam. See [`WP_FAIL2BAN_LOG_SPAM`](https://docs.wp-fail2ban.com/en/4.2/defines.html#wp-fail2ban-log-spam).
54
 
55
  * **Block User Enumeration**
56
+ *WPf2b* can [block user enumeration](https://wp-fail2ban.com/features/block-user-enumeration/?utm_source=readme).
57
 
58
  * **Work-Arounds for Broken syslogd**
59
  *WPf2b* can be configured to work around most syslogd weirdness. For an overview see [`WP_FAIL2BAN_SYSLOG_SHORT_TAG`](https://docs.wp-fail2ban.com/en/4.2/defines.html#wp-fail2ban-syslog-short-tag) and [`WP_FAIL2BAN_HTTP_HOST`](https://docs.wp-fail2ban.com/en/4.2/defines.html#wp-fail2ban-http-host).
72
 
73
  == Changelog ==
74
 
75
+ = 4.3.0 "Columbo" =
76
+ * Add full multisite support.
77
+ * Add separate logging for login attemtps with empty username.
78
+ * Improve user enumeration blocking compatibility with the WordPress block editor (Gutenberg).
79
+ * Log extra information for events (premium).
80
+ * Add new event class for blocked actions (premium).
81
+ * Bump the minimum PHP version to 5.6.
82
+
83
  = 4.2.7.1 =
84
  * Fix error when blocking user enumeration via `oembed` (h/t @wordpressfab).
85
 
238
 
239
  == Upgrade Notice ==
240
 
241
+ = 4.3.0 =
242
+ To take advantage of the new features you will need up update your `fail2ban` filters; existing filters will continue to work as before.
243
+
244
  = 4.2.7.1 =
245
  This is a bugfix release. You do not need to update your filters from 4.1.0.
246
 
324
 
325
  = 2.0.0 =
326
  This is an experimental release. If your current version is working and you're not interested in the new features, skip this version - wait for 2.1.0. For those that do want to test this release, note that `wordpress.conf` has changed - you'll need to copy it to `fail2ban/filters.d` again.
327
+
vendor/freemius/wordpress-sdk/.gitattributes CHANGED
@@ -1,5 +1,4 @@
1
  # Items to ignore when downloading a zip
2
-
3
  .codeclimate.yml export-ignore
4
  .git export-ignore
5
  .github export-ignore
@@ -8,4 +7,11 @@
8
  .travis.yml export-ignore
9
  gulpfile.js export-ignore
10
  composer.json export-ignore
11
- /assets/scss/ export-ignore
 
 
 
 
 
 
 
1
  # Items to ignore when downloading a zip
 
2
  .codeclimate.yml export-ignore
3
  .git export-ignore
4
  .github export-ignore
7
  .travis.yml export-ignore
8
  gulpfile.js export-ignore
9
  composer.json export-ignore
10
+ /assets/scss/ export-ignore
11
+
12
+ # Declare files that will always have CRLF line endings on checkout.
13
+ #*.php text eol=crlf
14
+
15
+ # Denote all files that are truly binary and should not be modified.
16
+ *.png binary
17
+ *.jpg binary
vendor/freemius/wordpress-sdk/.github/ISSUE_TEMPLATE.md CHANGED
@@ -1,29 +1,10 @@
1
- **Actual Behavior**:
2
- - `What is the issue? (*)`
3
- - `What is the expected behavior?`
4
 
5
- **Versions**: (*)
6
- - `Freemius SDK Version:`
7
- - `WordPress Version:`
8
- - `PHP Version:`
9
 
10
- **Plugin / Theme**: (*)
11
- - `Name:`
12
- - `Slug:`
13
- - `Freemius ID:`
14
 
15
- **Additional Information**:
16
- - `Browser Type: (*)`
17
- - `Browser Version: (*)`
18
- - `OS: (*)`
19
- - `Stack Traces:`
20
 
21
- ----
22
- **Note:** `(*)` indicates required information. Without this information, your issue may be auto-closed.
23
-
24
- > You can find your Freemius SDK version at `/freemius/start.php`
25
-
26
- > You can find your Freemius product ID in the Freemius dashboard: `SETTINGS -> INTEGRATION`.
27
-
28
- > Do not modify the titles or questions. Simply add your responses to the ends of the questions.
29
- Add more lines if needed.
1
+ 🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑
 
 
2
 
3
+ Please help us process issues more efficiently by filing an
4
+ issue using one of the following templates:
 
 
5
 
6
+ https://github.com/freemius/wordpress-sdk/issues/new/choose
 
 
 
7
 
8
+ Thank you!
 
 
 
 
9
 
10
+ 🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑
 
 
 
 
 
 
 
 
vendor/freemius/wordpress-sdk/.github/ISSUE_TEMPLATE/1-bug-report.md ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ name: "\U0001F41E Bug report"
3
+ about: Report a bug in the Freemius WordPress SDK
4
+ ---
5
+ <!--🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅
6
+
7
+ Hi there! 😄
8
+
9
+ To expedite issue processing please search open and closed issues before submitting a new one.
10
+ Existing issues often contain information about workarounds, resolution, or progress updates.
11
+
12
+ 🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅-->
13
+
14
+ # 🐞 bug report
15
+
16
+ **Behavior**:
17
+ - `What is the issue? (*)`
18
+ <!-- ✍️--> A clear and concise description of the problem including reproduction steps when possible...
19
+ - `What is the expected behavior?`
20
+ <!-- ✍️-->
21
+
22
+ **Versions**: (*)
23
+ - `Freemius SDK Version:` <!-- ✍️edit: --> 1.2.3
24
+ - `WordPress Version:` <!-- ✍️edit: --> 5.0
25
+ - `PHP Version:` <!-- ✍️edit: --> 7.0
26
+
27
+ **Plugin / Theme**: (*)
28
+ - `Name:` <!-- ✍️edit: --> My Awesome Product
29
+ - `Slug:` <!-- ✍️edit: --> my-awesome-product
30
+ - `Freemius ID:` <!-- ✍️edit: --> 1234
31
+
32
+ **Additional Information**:
33
+ - `Browser Type: (*)`
34
+ - `Browser Version: (*)`
35
+ - `OS: (*)`
36
+ - `Stack Traces:`
37
+
38
+ ----
39
+ **Note:** `(*)` indicates required information. Without this information, your issue may be auto-closed.
40
+
41
+ > You can find your Freemius SDK version at `/freemius/start.php`
42
+
43
+ > You can find your Freemius product ID in the Freemius dashboard: `SETTINGS -> INTEGRATION`.
44
+
45
+ > Do not modify the titles or questions. Simply add your responses to the ends of the questions.
46
+ Add more lines if needed.
vendor/freemius/wordpress-sdk/.github/ISSUE_TEMPLATE/2-feature-request.md ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ name: "\U0001F680 Feature request"
3
+ about: Suggest a feature for Freemius WordPress SDK
4
+
5
+ ---
6
+ <!--🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅
7
+
8
+ Hi there! 😄
9
+
10
+ Feature requests that aren't related to the SDK should be submitted here:
11
+ https://trello.com/b/I6o3BZOo/features-requests
12
+
13
+ To expedite issue processing please search open and closed issues before submitting a new one.
14
+ Existing issues often contain information about workarounds, resolution, or progress updates.
15
+
16
+ 🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅-->
17
+
18
+
19
+ # 🚀 feature request
20
+
21
+ ### Description
22
+ <!-- ✍️--> A clear and concise description of the problem or missing capability...
23
+
24
+
25
+ ### Describe the solution you'd like
26
+ <!-- ✍️--> If you have a solution in mind, please describe it.
27
+
28
+
29
+ ### Describe alternatives you've considered
30
+ <!-- ✍️--> Have you considered any alternative solutions or workarounds?
vendor/freemius/wordpress-sdk/.github/ISSUE_TEMPLATE/3-support-request.md ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ name: "❓ Support request"
3
+ about: Questions and requests for support
4
+
5
+ ---
6
+
7
+ 🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑
8
+
9
+ Please do not file questions or support requests on the GitHub issues tracker.
10
+
11
+ You can get your questions answered by contacting our support team via support@freemius.com
12
+
13
+ Thank you!
14
+
15
+ 🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑
vendor/freemius/wordpress-sdk/.github/ISSUE_TEMPLATE/4-security-issue-disclosure.md ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ name: ⚠️ Security issue disclosure
3
+ about: Report a security issue in Freemius SDK, API, Developer Dashboard, or User Dashboard
4
+
5
+ ---
6
+
7
+ 🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑
8
+
9
+ To report vulnerabilities in Freemius itself, email us at security@freemius.com.
10
+
11
+ 🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑🛑
vendor/freemius/wordpress-sdk/assets/css/admin/account.css CHANGED
@@ -1 +1 @@
1
- label.fs-tag,span.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}#fs_account .postbox,#fs_account .widefat{max-width:700px}#fs_account h3{font-size:1.3em;padding:12px 15px;margin:0 0 12px 0;line-height:1.4;border-bottom:1px solid #F1F1F1}#fs_account h3 .dashicons{width:26px;height:26px;font-size:1.3em}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .dashicons{vertical-align:middle}#fs_account .fs-header-actions{position:absolute;top:17px;right:15px;font-size:0.9em}#fs_account .fs-header-actions ul{margin:0}#fs_account .fs-header-actions li{float:left}#fs_account .fs-header-actions li form{display:inline-block}#fs_account .fs-header-actions li a{text-decoration:none}#fs_account_details .button-group{float:right}.rtl #fs_account .fs-header-actions{left:15px;right:auto}.fs-key-value-table{width:100%}.fs-key-value-table form{display:inline-block}.fs-key-value-table tr td:first-child{text-align:right}.fs-key-value-table tr td:first-child nobr{font-weight:bold}.fs-key-value-table tr td:first-child form{display:block}.fs-key-value-table tr td.fs-right{text-align:right}.fs-key-value-table tr.fs-odd{background:#ebebeb}.fs-key-value-table td,.fs-key-value-table th{padding:10px}.fs-key-value-table code{line-height:28px}.fs-key-value-table var,.fs-key-value-table code,.fs-key-value-table input[type="text"]{color:#0073AA;font-size:16px;background:none}.fs-key-value-table input[type="text"]{width:100%;font-weight:bold}.fs-field-beta_program label{margin-left:7px}label.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error{background:#dc3232}#fs_sites .fs-scrollable-table .fs-table-body{max-height:200px;overflow:auto;border:1px solid #e5e5e5}#fs_sites .fs-scrollable-table .fs-table-body>table.widefat{border:none !important}#fs_sites .fs-scrollable-table .fs-main-column{width:100%}#fs_sites .fs-scrollable-table .fs-site-details td:first-of-type{text-align:right;color:grey;width:1px}#fs_sites .fs-scrollable-table .fs-site-details td:last-of-type{text-align:right}#fs_sites .fs-scrollable-table .fs-install-details table tr td{width:1px;white-space:nowrap}#fs_sites .fs-scrollable-table .fs-install-details table tr td:last-of-type{width:auto}#fs_addons h3{border:none;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons thead{white-space:nowrap}#fs_addons td:first-child,#fs_addons th:first-child{text-align:left;font-weight:bold}#fs_addons td:last-child,#fs_addons th:last-child{text-align:right}#fs_addons th{font-weight:bold}#fs_billing_address{width:100%}#fs_billing_address tr td{width:50%;padding:5px}#fs_billing_address tr:first-of-type td{padding-top:0}#fs_billing_address span{font-weight:bold}#fs_billing_address input,#fs_billing_address select{display:block;width:100%;margin-top:5px}#fs_billing_address input::-moz-placeholder,#fs_billing_address select::-moz-placeholder{color:transparent;opacity:1}#fs_billing_address input:-ms-input-placeholder,#fs_billing_address select:-ms-input-placeholder{color:transparent}#fs_billing_address input::-webkit-input-placeholder,#fs_billing_address select::-webkit-input-placeholder{color:transparent}#fs_billing_address input.fs-read-mode,#fs_billing_address select.fs-read-mode{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode td span{display:none}#fs_billing_address.fs-read-mode input,#fs_billing_address.fs-read-mode select{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode input::-moz-placeholder,#fs_billing_address.fs-read-mode select::-moz-placeholder{color:#ccc;opacity:1}#fs_billing_address.fs-read-mode input:-ms-input-placeholder,#fs_billing_address.fs-read-mode select:-ms-input-placeholder{color:#ccc}#fs_billing_address.fs-read-mode input::-webkit-input-placeholder,#fs_billing_address.fs-read-mode select::-webkit-input-placeholder{color:#ccc}#fs_billing_address button{display:block;width:100%}
1
+ label.fs-tag,span.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}#fs_account .postbox,#fs_account .widefat{max-width:800px}#fs_account h3{font-size:1.3em;padding:12px 15px;margin:0 0 12px 0;line-height:1.4;border-bottom:1px solid #F1F1F1}#fs_account h3 .dashicons{width:26px;height:26px;font-size:1.3em}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .dashicons{vertical-align:middle}#fs_account .fs-header-actions{position:absolute;top:17px;right:15px;font-size:0.9em}#fs_account .fs-header-actions ul{margin:0}#fs_account .fs-header-actions li{float:left}#fs_account .fs-header-actions li form{display:inline-block}#fs_account .fs-header-actions li a{text-decoration:none}#fs_account_details .button-group{float:right}.rtl #fs_account .fs-header-actions{left:15px;right:auto}.fs-key-value-table{width:100%}.fs-key-value-table form{display:inline-block}.fs-key-value-table tr td:first-child{text-align:right}.fs-key-value-table tr td:first-child nobr{font-weight:bold}.fs-key-value-table tr td:first-child form{display:block}.fs-key-value-table tr td.fs-right{text-align:right}.fs-key-value-table tr.fs-odd{background:#ebebeb}.fs-key-value-table td,.fs-key-value-table th{padding:10px}.fs-key-value-table code{line-height:28px}.fs-key-value-table var,.fs-key-value-table code,.fs-key-value-table input[type="text"]{color:#0073AA;font-size:16px;background:none}.fs-key-value-table input[type="text"]{width:100%;font-weight:bold}.fs-field-beta_program label{margin-left:7px}label.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error{background:#dc3232}#fs_sites .fs-scrollable-table .fs-table-body{max-height:200px;overflow:auto;border:1px solid #e5e5e5}#fs_sites .fs-scrollable-table .fs-table-body>table.widefat{border:none !important}#fs_sites .fs-scrollable-table .fs-main-column{width:100%}#fs_sites .fs-scrollable-table .fs-site-details td:first-of-type{text-align:right;color:grey;width:1px}#fs_sites .fs-scrollable-table .fs-site-details td:last-of-type{text-align:right}#fs_sites .fs-scrollable-table .fs-install-details table tr td{width:1px;white-space:nowrap}#fs_sites .fs-scrollable-table .fs-install-details table tr td:last-of-type{width:auto}#fs_addons h3{border:none;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons thead{white-space:nowrap}#fs_addons td:first-child,#fs_addons th:first-child{text-align:left;font-weight:bold}#fs_addons td:last-child,#fs_addons th:last-child{text-align:right}#fs_addons th{font-weight:bold}#fs_billing_address{width:100%}#fs_billing_address tr td{width:50%;padding:5px}#fs_billing_address tr:first-of-type td{padding-top:0}#fs_billing_address span{font-weight:bold}#fs_billing_address input,#fs_billing_address select{display:block;width:100%;margin-top:5px}#fs_billing_address input::-moz-placeholder,#fs_billing_address select::-moz-placeholder{color:transparent;opacity:1}#fs_billing_address input:-ms-input-placeholder,#fs_billing_address select:-ms-input-placeholder{color:transparent}#fs_billing_address input::-webkit-input-placeholder,#fs_billing_address select::-webkit-input-placeholder{color:transparent}#fs_billing_address input.fs-read-mode,#fs_billing_address select.fs-read-mode{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode td span{display:none}#fs_billing_address.fs-read-mode input,#fs_billing_address.fs-read-mode select{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode input::-moz-placeholder,#fs_billing_address.fs-read-mode select::-moz-placeholder{color:#ccc;opacity:1}#fs_billing_address.fs-read-mode input:-ms-input-placeholder,#fs_billing_address.fs-read-mode select:-ms-input-placeholder{color:#ccc}#fs_billing_address.fs-read-mode input::-webkit-input-placeholder,#fs_billing_address.fs-read-mode select::-webkit-input-placeholder{color:#ccc}#fs_billing_address button{display:block;width:100%}
vendor/freemius/wordpress-sdk/assets/css/admin/common.css CHANGED
@@ -1,2 +1,2 @@
1
- .fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}.theme-browser .theme .fs-premium-theme-badge-container{position:absolute;right:0;top:0}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge{position:relative;top:0;margin-top:10px;text-align:center}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-premium-theme-badge{font-size:1.1em}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-beta-theme-badge{background:#00a0d2}#fs_frame{line-height:0;font-size:0}.fs-full-size-wrapper{margin:40px 0 -65px -20px}@media (max-width: 600px){.fs-full-size-wrapper{margin:0 0 -65px -10px}}
2
- .fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px !important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2 !important;background-color:#f2fcff !important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,0.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion{display:block !important}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;-moz-box-shadow:0 2px 2px rgba(6,113,6,0.3);-webkit-box-shadow:0 2px 2px rgba(6,113,6,0.3);box-shadow:0 2px 2px rgba(6,113,6,0.3);opacity:0.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}.fs-secure-notice a.fs-security-proof{color:green;text-decoration:none}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 600px){.fs-secure-notice{display:none}}@media screen and (max-width: 500px){#fs_promo_tab{display:none}}@media screen and (max-width: 782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'}.fs-submenu-item.pricing.upgrade-mode{color:greenyellow}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}.fs-ajax-spinner{border:0;width:20px;height:20px;margin-right:5px;vertical-align:sub;display:inline-block;background:url("/wp-admin/images/wpspin_light-2x.gif");background-size:contain}.wrap.fs-section h2{text-align:left}.plugins p.fs-upgrade-notice{border:0;background-color:#d54e21;padding:10px;color:#f9f9f9;margin-top:10px}
1
+ .fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}.theme-browser .theme .fs-premium-theme-badge-container{position:absolute;right:0;top:0}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge{position:relative;top:0;margin-top:10px;text-align:center}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-premium-theme-badge{font-size:1.1em}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-beta-theme-badge{background:#00a0d2}.fs-switch{position:relative;display:inline-block;color:#ccc;text-shadow:0 1px 1px rgba(255,255,255,0.8);height:18px;padding:6px 6px 5px 6px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);background:#ececec;box-shadow:0 0 4px rgba(0,0,0,0.1),inset 0 1px 3px 0 rgba(0,0,0,0.1);cursor:pointer}.fs-switch span{display:inline-block;width:35px;text-transform:uppercase}.fs-switch .fs-toggle{position:absolute;top:1px;width:37px;height:25px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.3);border-radius:4px;background:#fff;background-color:#fff;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #ececec), color-stop(1, #fff));background-image:-webkit-linear-gradient(top, #ececec, #fff);background-image:-moz-linear-gradient(top, #ececec, #fff);background-image:-ms-linear-gradient(top, #ececec, #fff);background-image:-o-linear-gradient(top, #ececec, #fff);background-image:linear-gradient(top, bottom, #ececec, #fff);box-shadow:inset 0 1px 0 0 rgba(255,255,255,0.5);z-index:999;-moz-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-o-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-ms-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-webkit-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1)}.fs-switch.fs-off .fs-toggle{left:2%}.fs-switch.fs-on .fs-toggle{left:54%}.fs-switch.fs-round{top:8px;padding:4px 25px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round .fs-toggle{top:0;width:24px;height:24px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round.fs-off .fs-toggle{left:-1px}.fs-switch.fs-round.fs-on{background:#0085ba}.fs-switch.fs-round.fs-on .fs-toggle{left:25px}.fs-switch.fs-small.fs-round{padding:1px 19px}.fs-switch.fs-small.fs-round .fs-toggle{top:0;width:18px;height:18px;-moz-border-radius:18px;-webkit-border-radius:18px;border-radius:18px}.fs-switch.fs-small.fs-round.fs-on .fs-toggle{left:19px}.fs-switch-feedback{margin-left:10px}.fs-switch-feedback.success{color:#71ae00}.rtl .fs-switch-feedback{margin-left:0;margin-right:10px}#fs_frame{line-height:0;font-size:0}.fs-full-size-wrapper{margin:40px 0 -65px -20px}@media (max-width: 600px){.fs-full-size-wrapper{margin:0 0 -65px -10px}}
2
+ .fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px !important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2 !important;background-color:#f2fcff !important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,0.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion{display:block !important}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;-moz-box-shadow:0 2px 2px rgba(6,113,6,0.3);-webkit-box-shadow:0 2px 2px rgba(6,113,6,0.3);box-shadow:0 2px 2px rgba(6,113,6,0.3);opacity:0.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}.fs-secure-notice a.fs-security-proof{color:green;text-decoration:none}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 600px){.fs-secure-notice{display:none}}@media screen and (max-width: 500px){#fs_promo_tab{display:none}}@media screen and (max-width: 782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'}.fs-submenu-item.pricing.upgrade-mode{color:greenyellow}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}.fs-ajax-spinner{border:0;width:20px;height:20px;margin-right:5px;vertical-align:sub;display:inline-block;background:url("/wp-admin/images/wpspin_light-2x.gif");background-size:contain;margin-bottom:-2px}.wrap.fs-section h2{text-align:left}.plugins p.fs-upgrade-notice{border:0;background-color:#d54e21;padding:10px;color:#f9f9f9;margin-top:10px}
vendor/freemius/wordpress-sdk/assets/css/admin/connect.css CHANGED
@@ -1 +1 @@
1
- #fs_connect{width:480px;-moz-box-shadow:0px 1px 2px rgba(0,0,0,0.3);-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.3);box-shadow:0px 1px 2px rgba(0,0,0,0.3);margin:20px 0}@media screen and (max-width: 479px){#fs_connect{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;width:auto;margin:0 0 0 -10px}}#fs_connect .fs-content{background:#fff;padding:15px 20px}#fs_connect .fs-content .fs-error{background:snow;color:#d3135a;border:1px solid #d3135a;-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);text-align:center;padding:5px;margin-bottom:10px}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-license-key-container{position:relative;width:280px;margin:10px auto 0 auto}#fs_connect .fs-license-key-container input{width:100%}#fs_connect .fs-license-key-container .dashicons{position:absolute;top:5px;right:5px}#fs_connect.require-license-key .fs-sites-list-container td{cursor:pointer}#fs_connect #delegate_to_site_admins{margin-right:15px;float:right;height:26px;vertical-align:middle;line-height:37px;font-weight:bold;border-bottom:1px dashed;text-decoration:none}#fs_connect #delegate_to_site_admins.rtl{margin-left:15px;margin-right:0}#fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}#fs_connect .fs-actions .button{padding:0 10px 1px;line-height:35px;height:37px;font-size:16px;margin-bottom:0}#fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}#fs_connect .fs-actions .button.button-primary{padding-right:15px;padding-left:15px}#fs_connect .fs-actions .button.button-primary:after{content:' \279C'}#fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}#fs_connect .fs-actions .button.button-secondary{float:right}#fs_connect.fs-anonymous-disabled .fs-actions .button.button-primary{width:100%}#fs_connect .fs-permissions{padding:10px 20px;background:#FEFEFE;-moz-transition:background 0.5s ease;-o-transition:background 0.5s ease;-ms-transition:background 0.5s ease;-webkit-transition:background 0.5s ease;transition:background 0.5s ease}#fs_connect .fs-permissions .fs-license-sync-disclaimer{text-align:center;margin-top:0}#fs_connect .fs-permissions .fs-trigger{font-size:0.9em;text-decoration:none;text-align:center;display:block}#fs_connect .fs-permissions ul{height:0;overflow:hidden;margin:0}#fs_connect .fs-permissions ul li{margin-bottom:12px}#fs_connect .fs-permissions ul li:last-child{margin-bottom:0}#fs_connect .fs-permissions ul li i.dashicons{float:left;font-size:40px;width:40px;height:40px}#fs_connect .fs-permissions ul li div{margin-left:55px}#fs_connect .fs-permissions ul li div span{font-weight:bold;text-transform:uppercase;color:#23282d}#fs_connect .fs-permissions ul li div p{margin:2px 0 0 0}#fs_connect .fs-permissions.fs-open{background:#fff}#fs_connect .fs-permissions.fs-open ul{height:auto;margin:20px 20px 10px 20px}@media screen and (max-width: 479px){#fs_connect .fs-permissions{background:#fff}#fs_connect .fs-permissions .fs-trigger{display:none}#fs_connect .fs-permissions ul{height:auto;margin:20px}}#fs_connect .fs-freemium-licensing{padding:8px;background:#777;color:#fff}#fs_connect .fs-freemium-licensing p{text-align:center;display:block;margin:0;padding:0}#fs_connect .fs-freemium-licensing a{color:#C2EEFF;text-decoration:underline}#fs_connect .fs-visual{padding:12px;line-height:0;background:#fafafa;height:80px;position:relative}#fs_connect .fs-visual .fs-site-icon{position:absolute;left:20px;top:10px}#fs_connect .fs-visual .fs-connect-logo{position:absolute;right:20px;top:10px}#fs_connect .fs-visual .fs-plugin-icon{position:absolute;top:10px;left:50%;margin-left:-40px}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-site-icon,#fs_connect .fs-visual img,#fs_connect .fs-visual object{width:80px;height:80px}#fs_connect .fs-visual .dashicons-wordpress{font-size:64px;background:#01749a;color:#fff;width:64px;height:64px;padding:8px}#fs_connect .fs-visual .dashicons-plus{position:absolute;top:50%;font-size:30px;margin-top:-10px;color:#bbb}#fs_connect .fs-visual .dashicons-plus.fs-first{left:28%}#fs_connect .fs-visual .dashicons-plus.fs-second{left:65%}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-connect-logo,#fs_connect .fs-visual .fs-site-icon{border:1px solid #ccc;padding:1px;background:#fff}#fs_connect .fs-terms{text-align:center;font-size:0.85em;padding:5px;background:rgba(0,0,0,0.05)}#fs_connect .fs-terms,#fs_connect .fs-terms a{color:#999}#fs_connect .fs-terms a{text-decoration:none}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .fs-tooltip{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:rgba(0,0,0,0.8);color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl .fs-tooltip-trigger .fs-tooltip{text-align:right}.fs-tooltip-trigger .fs-tooltip::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:rgba(0,0,0,0.8) transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl .fs-tooltip-trigger .fs-tooltip::after{right:21px;left:auto}.fs-tooltip-trigger:hover .fs-tooltip{visibility:visible;opacity:1}#fs_marketing_optin{display:none;margin-top:10px;border:1px solid #ccc;padding:10px;line-height:1.5em}#fs_marketing_optin .fs-message{display:block;margin-bottom:5px;font-size:1.05em;font-weight:600}#fs_marketing_optin.error{border:1px solid #d3135a;background:#fee}#fs_marketing_optin.error .fs-message{color:#d3135a}#fs_marketing_optin .fs-input-container{margin-top:5px}#fs_marketing_optin .fs-input-container label{margin-top:5px;display:block}#fs_marketing_optin .fs-input-container label input{float:left;margin:1px 0 0 0}#fs_marketing_optin .fs-input-container label:first-child{display:block;margin-bottom:2px}#fs_marketing_optin .fs-input-label{display:block;margin-left:20px}#fs_marketing_optin .fs-input-label .underlined{text-decoration:underline}.rtl #fs_marketing_optin .fs-input-container label input{float:right}.rtl #fs_marketing_optin .fs-input-label{margin-left:0;margin-right:20px}.rtl #fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}.rtl #fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}.rtl #fs_connect .fs-actions .button.button-primary:after{content:' \000bb'}.rtl #fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}.rtl #fs_connect .fs-actions .button.button-secondary{float:left}.rtl #fs_connect .fs-permissions ul li div{margin-right:55px;margin-left:0}.rtl #fs_connect .fs-permissions ul li i.dashicons{float:right}.rtl #fs_connect .fs-visual .fs-site-icon{right:20px;left:auto}.rtl #fs_connect .fs-visual .fs-connect-logo{right:auto;left:20px}#fs_theme_connect_wrapper{position:fixed;top:0;height:100%;width:100%;z-index:99990;background:rgba(0,0,0,0.75);text-align:center;overflow-y:auto}#fs_theme_connect_wrapper:before{content:"";display:inline-block;vertical-align:middle;height:100%}#fs_theme_connect_wrapper>button.close{color:white;cursor:pointer;height:40px;width:40px;position:absolute;right:0;border:0;background-color:transparent;top:32px}#fs_theme_connect_wrapper #fs_connect{top:0;text-align:left;display:inline-block;vertical-align:middle;margin-top:52px;margin-bottom:20px}#fs_theme_connect_wrapper #fs_connect .fs-terms{background:rgba(140,140,140,0.64)}#fs_theme_connect_wrapper #fs_connect .fs-terms,#fs_theme_connect_wrapper #fs_connect .fs-terms a{color:#c5c5c5}.wp-pointer-content #fs_connect{margin:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.fs-opt-in-pointer .wp-pointer-content{padding:0}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow{border-bottom-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow-inner{border-bottom-color:#fafafa}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow{border-top-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow-inner{border-top-color:#fafafa}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow{border-right-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow-inner{border-right-color:#fafafa}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow{border-left-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow-inner{border-left-color:#fafafa}
1
+ #fs_connect{width:480px;-moz-box-shadow:0px 1px 2px rgba(0,0,0,0.3);-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.3);box-shadow:0px 1px 2px rgba(0,0,0,0.3);margin:20px 0}@media screen and (max-width: 479px){#fs_connect{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;width:auto;margin:0 0 0 -10px}}#fs_connect .fs-content{background:#fff;padding:15px 20px}#fs_connect .fs-content .fs-error{background:snow;color:#d3135a;border:1px solid #d3135a;-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);text-align:center;padding:5px;margin-bottom:10px}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-license-key-container{position:relative;width:280px;margin:10px auto 0 auto}#fs_connect .fs-license-key-container input{width:100%}#fs_connect .fs-license-key-container .dashicons{position:absolute;top:5px;right:5px}#fs_connect.require-license-key .fs-sites-list-container td{cursor:pointer}#fs_connect #delegate_to_site_admins{margin-right:15px;float:right;height:26px;vertical-align:middle;line-height:37px;font-weight:bold;border-bottom:1px dashed;text-decoration:none}#fs_connect #delegate_to_site_admins.rtl{margin-left:15px;margin-right:0}#fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}#fs_connect .fs-actions .button{padding:0 10px 1px;line-height:35px;height:37px;font-size:16px;margin-bottom:0}#fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}#fs_connect .fs-actions .button.button-primary{padding-right:15px;padding-left:15px}#fs_connect .fs-actions .button.button-primary:after{content:' \279C'}#fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}#fs_connect .fs-actions .button.button-secondary{float:right}#fs_connect.fs-anonymous-disabled .fs-actions .button.button-primary{width:100%}#fs_connect .fs-permissions{padding:10px 20px;background:#FEFEFE;-moz-transition:background 0.5s ease;-o-transition:background 0.5s ease;-ms-transition:background 0.5s ease;-webkit-transition:background 0.5s ease;transition:background 0.5s ease}#fs_connect .fs-permissions .fs-license-sync-disclaimer{text-align:center;margin-top:0}#fs_connect .fs-permissions .fs-trigger{font-size:0.9em;text-decoration:none;text-align:center;display:block}#fs_connect .fs-permissions ul{height:0;overflow:hidden;margin:0}#fs_connect .fs-permissions ul li{margin-bottom:12px}#fs_connect .fs-permissions ul li:last-child{margin-bottom:0}#fs_connect .fs-permissions ul li i.dashicons{float:left;font-size:40px;width:40px;height:40px}#fs_connect .fs-permissions ul li .fs-switch{float:right}#fs_connect .fs-permissions ul li .fs-permission-description{margin-left:55px}#fs_connect .fs-permissions ul li .fs-permission-description span{font-weight:bold;text-transform:uppercase;color:#23282d}#fs_connect .fs-permissions ul li .fs-permission-description p{margin:2px 0 0 0}#fs_connect .fs-permissions.fs-open{background:#fff}#fs_connect .fs-permissions.fs-open ul{height:auto;margin:20px 20px 10px 20px}@media screen and (max-width: 479px){#fs_connect .fs-permissions{background:#fff}#fs_connect .fs-permissions .fs-trigger{display:none}#fs_connect .fs-permissions ul{height:auto;margin:20px}}#fs_connect .fs-freemium-licensing{padding:8px;background:#777;color:#fff}#fs_connect .fs-freemium-licensing p{text-align:center;display:block;margin:0;padding:0}#fs_connect .fs-freemium-licensing a{color:#C2EEFF;text-decoration:underline}#fs_connect .fs-visual{padding:12px;line-height:0;background:#fafafa;height:80px;position:relative}#fs_connect .fs-visual .fs-site-icon{position:absolute;left:20px;top:10px}#fs_connect .fs-visual .fs-connect-logo{position:absolute;right:20px;top:10px}#fs_connect .fs-visual .fs-plugin-icon{position:absolute;top:10px;left:50%;margin-left:-40px}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-site-icon,#fs_connect .fs-visual img,#fs_connect .fs-visual object{width:80px;height:80px}#fs_connect .fs-visual .dashicons-wordpress{font-size:64px;background:#01749a;color:#fff;width:64px;height:64px;padding:8px}#fs_connect .fs-visual .dashicons-plus{position:absolute;top:50%;font-size:30px;margin-top:-10px;color:#bbb}#fs_connect .fs-visual .dashicons-plus.fs-first{left:28%}#fs_connect .fs-visual .dashicons-plus.fs-second{left:65%}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-connect-logo,#fs_connect .fs-visual .fs-site-icon{border:1px solid #ccc;padding:1px;background:#fff}#fs_connect .fs-terms{text-align:center;font-size:0.85em;padding:5px;background:rgba(0,0,0,0.05)}#fs_connect .fs-terms,#fs_connect .fs-terms a{color:#999}#fs_connect .fs-terms a{text-decoration:none}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .fs-tooltip{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:rgba(0,0,0,0.8);color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl .fs-tooltip-trigger .fs-tooltip{text-align:right}.fs-tooltip-trigger .fs-tooltip::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:rgba(0,0,0,0.8) transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl .fs-tooltip-trigger .fs-tooltip::after{right:21px;left:auto}.fs-tooltip-trigger:hover .fs-tooltip{visibility:visible;opacity:1}#fs_marketing_optin{display:none;margin-top:10px;border:1px solid #ccc;padding:10px;line-height:1.5em}#fs_marketing_optin .fs-message{display:block;margin-bottom:5px;font-size:1.05em;font-weight:600}#fs_marketing_optin.error{border:1px solid #d3135a;background:#fee}#fs_marketing_optin.error .fs-message{color:#d3135a}#fs_marketing_optin .fs-input-container{margin-top:5px}#fs_marketing_optin .fs-input-container label{margin-top:5px;display:block}#fs_marketing_optin .fs-input-container label input{float:left;margin:1px 0 0 0}#fs_marketing_optin .fs-input-container label:first-child{display:block;margin-bottom:2px}#fs_marketing_optin .fs-input-label{display:block;margin-left:20px}#fs_marketing_optin .fs-input-label .underlined{text-decoration:underline}.rtl #fs_marketing_optin .fs-input-container label input{float:right}.rtl #fs_marketing_optin .fs-input-label{margin-left:0;margin-right:20px}.rtl #fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}.rtl #fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}.rtl #fs_connect .fs-actions .button.button-primary:after{content:' \000bb'}.rtl #fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}.rtl #fs_connect .fs-actions .button.button-secondary{float:left}.rtl #fs_connect .fs-permissions ul li .fs-permission-description{margin-right:55px;margin-left:0}.rtl #fs_connect .fs-permissions ul li .fs-switch{float:left}.rtl #fs_connect .fs-permissions ul li i.dashicons{float:right}.rtl #fs_connect .fs-visual .fs-site-icon{right:20px;left:auto}.rtl #fs_connect .fs-visual .fs-connect-logo{right:auto;left:20px}#fs_theme_connect_wrapper{position:fixed;top:0;height:100%;width:100%;z-index:99990;background:rgba(0,0,0,0.75);text-align:center;overflow-y:auto}#fs_theme_connect_wrapper:before{content:"";display:inline-block;vertical-align:middle;height:100%}#fs_theme_connect_wrapper>button.close{color:white;cursor:pointer;height:40px;width:40px;position:absolute;right:0;border:0;background-color:transparent;top:32px}#fs_theme_connect_wrapper #fs_connect{top:0;text-align:left;display:inline-block;vertical-align:middle;margin-top:52px;margin-bottom:20px}#fs_theme_connect_wrapper #fs_connect .fs-terms{background:rgba(140,140,140,0.64)}#fs_theme_connect_wrapper #fs_connect .fs-terms,#fs_theme_connect_wrapper #fs_connect .fs-terms a{color:#c5c5c5}.wp-pointer-content #fs_connect{margin:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.fs-opt-in-pointer .wp-pointer-content{padding:0}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow{border-bottom-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow-inner{border-bottom-color:#fafafa}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow{border-top-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow-inner{border-top-color:#fafafa}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow{border-right-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow-inner{border-right-color:#fafafa}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow{border-left-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow-inner{border-left-color:#fafafa}
vendor/freemius/wordpress-sdk/assets/css/admin/debug.css CHANGED
@@ -1 +1 @@
1
- .switch{position:relative;display:inline-block;font-size:1.6em;font-weight:bold;color:#ccc;text-shadow:0px 1px 1px rgba(255,255,255,0.8);height:18px;padding:6px 6px 5px 6px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:4px;background:#ececec;box-shadow:0px 0px 4px rgba(0,0,0,0.1),inset 0px 1px 3px 0px rgba(0,0,0,0.1);cursor:pointer}.switch span{display:inline-block;width:35px;text-transform:uppercase}.switch span.on{color:#6bc406}.switch .toggle{position:absolute;top:1px;width:37px;height:25px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.3);border-radius:4px;background:#fff;background:-moz-linear-gradient(top, #ececec 0%, #fff 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ececec), color-stop(100%, #fff));background:-webkit-linear-gradient(top, #ececec 0%, #fff 100%);background:-o-linear-gradient(top, #ececec 0%, #fff 100%);background:-ms-linear-gradient(top, #ececec 0%, #fff 100%);background:linear-gradient(top, #ececec 0%, #fff 100%);box-shadow:inset 0px 1px 0px 0px rgba(255,255,255,0.5);z-index:999;-moz-transition:all 0.15s ease-in-out;-o-transition:all 0.15s ease-in-out;-ms-transition:all 0.15s ease-in-out;-webkit-transition:all 0.15s ease-in-out;transition:all 0.15s ease-in-out}.switch.on .toggle{left:2%}.switch.off .toggle{left:54%}.switch.round{padding:0px 20px;border-radius:40px}.switch.round .toggle{border-radius:40px;width:14px;height:14px}.switch.round.on .toggle{left:3%;background:#6bc406}.switch.round.off .toggle{left:58%}.switch-label{font-size:20px;line-height:31px;margin:0 5px}#fs_log_book table{font-family:Consolas,Monaco,monospace;font-size:12px}#fs_log_book table th{color:#ccc}#fs_log_book table tr{background:#232525}#fs_log_book table tr.alternate{background:#2b2b2b}#fs_log_book table tr td.fs-col--logger{color:#5a7435}#fs_log_book table tr td.fs-col--type{color:#ffc861}#fs_log_book table tr td.fs-col--function{color:#a7b7b1;font-weight:bold}#fs_log_book table tr td.fs-col--message,#fs_log_book table tr td.fs-col--message a{color:#9a73ac !important}#fs_log_book table tr td.fs-col--file{color:#d07922}#fs_log_book table tr td.fs-col--timestamp{color:#6596be}
1
+ .fs-switch-label{font-size:20px;line-height:31px;margin:0 5px}#fs_log_book table{font-family:Consolas,Monaco,monospace;font-size:12px}#fs_log_book table th{color:#ccc}#fs_log_book table tr{background:#232525}#fs_log_book table tr.alternate{background:#2b2b2b}#fs_log_book table tr td.fs-col--logger{color:#5a7435}#fs_log_book table tr td.fs-col--type{color:#ffc861}#fs_log_book table tr td.fs-col--function{color:#a7b7b1;font-weight:bold}#fs_log_book table tr td.fs-col--message,#fs_log_book table tr td.fs-col--message a{color:#9a73ac !important}#fs_log_book table tr td.fs-col--file{color:#d07922}#fs_log_book table tr td.fs-col--timestamp{color:#6596be}
vendor/freemius/wordpress-sdk/assets/css/admin/dialog-boxes.css CHANGED
@@ -1,2 +1,2 @@
1
- .fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal.fs-success .fs-modal-header{border-bottom-color:#46b450}.fs-modal.fs-success .fs-modal-body{background-color:#f7fff7}.fs-modal.fs-warn .fs-modal-header{border-bottom-color:#ffb900}.fs-modal.fs-warn .fs-modal-body{background-color:#fff8e5}.fs-modal.fs-error .fs-modal-header{border-bottom-color:#dc3232}.fs-modal.fs-error .fs-modal-body{background-color:#ffeaea}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-header{border-bottom:#eeeeee solid 1px;background:#fbfbfb;padding:15px 20px;position:relative;margin-bottom:-10px}.fs-modal .fs-modal-header h4{margin:0;padding:0;text-transform:uppercase;font-size:1.2em;font-weight:bold;color:#cacaca;text-shadow:1px 1px 1px #fff;letter-spacing:0.6px;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{position:absolute;right:10px;top:12px;cursor:pointer;color:#bbb;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;padding:3px;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{color:#fff;background:#aaa}.fs-modal .fs-modal-header .fs-close .dashicons,.fs-modal .fs-modal-header .fs-close:hover .dashicons{text-decoration:none}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px;line-height:1.5em}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel>.notice.inline{margin:0;display:none}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{right:auto;left:20px}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .reason-input,.fs-modal.fs-modal-deactivation-feedback .internal-message{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea,.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea{width:100%}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}@media (max-width: 650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label{float:left}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0 !important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{margin-top:0;line-height:1.5em}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-subscription-cancellation .fs-price-increase-warning{color:red;font-weight:bold;padding:0 25px;margin-bottom:0}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:left;top:5px;position:relative}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:right}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{display:block;margin-left:24px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{margin-left:0;margin-right:24px}.fs-modal.fs-modal-license-activation .fs-modal-body input.fs-license-key{width:100%}.fs-license-options-container table,.fs-license-options-container table select,.fs-license-options-container table .fs-available-license-key{width:100%}.fs-license-options-container table td:first-child{width:1%}.fs-license-options-container table .fs-other-license-key-container label{position:relative;top:6px;float:left;margin-right:5px}.fs-license-options-container table .fs-other-license-key-container div{overflow:hidden;width:auto;height:30px;display:block;top:2px;position:relative}.fs-license-options-container table .fs-other-license-key-container div input{margin:0}.fs-sites-list-container td{cursor:pointer}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-modal.fs-modal-license-key-resend .email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend.fs-freemium input.email-address{width:300px}.fs-modal.fs-modal-license-key-resend.fs-freemium label{display:block;margin-bottom:10px}.fs-modal.fs-modal-license-key-resend.fs-premium input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{float:right;margin-left:7px}@media (max-width: 650px){.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{margin-top:2px}}
2
  .rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{padding-left:2px;padding-right:0}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:left;margin-right:7px;margin-left:0}a.show-license-resend-modal{margin-top:4px;display:inline-block}.fs-ajax-loader{position:relative;width:170px;height:20px;margin:auto}.fs-ajax-loader .fs-ajax-loader-bar{position:absolute;top:0;background-color:#0074a3;width:20px;height:20px;-webkit-animation-name:bounce_ajaxLoader;-moz-animation-name:bounce_ajaxLoader;-ms-animation-name:bounce_ajaxLoader;-o-animation-name:bounce_ajaxLoader;animation-name:bounce_ajaxLoader;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s;animation-duration:1.5s;animation-iteration-count:infinite;-o-animation-iteration-count:infinite;-ms-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;-webkit-animation-direction:normal;-moz-animation-direction:normal;-ms-animation-direction:normal;-o-animation-direction:normal;animation-direction:normal;-moz-transform:0.3;-o-transform:0.3;-ms-transform:0.3;-webkit-transform:0.3;transform:0.3}.fs-ajax-loader .fs-ajax-loader-bar-1{left:0px;animation-delay:0.6s;-o-animation-delay:0.6s;-ms-animation-delay:0.6s;-webkit-animation-delay:0.6s;-moz-animation-delay:0.6s}.fs-ajax-loader .fs-ajax-loader-bar-2{left:19px;animation-delay:0.75s;-o-animation-delay:0.75s;-ms-animation-delay:0.75s;-webkit-animation-delay:0.75s;-moz-animation-delay:0.75s}.fs-ajax-loader .fs-ajax-loader-bar-3{left:38px;animation-delay:0.9s;-o-animation-delay:0.9s;-ms-animation-delay:0.9s;-webkit-animation-delay:0.9s;-moz-animation-delay:0.9s}.fs-ajax-loader .fs-ajax-loader-bar-4{left:57px;animation-delay:1.05s;-o-animation-delay:1.05s;-ms-animation-delay:1.05s;-webkit-animation-delay:1.05s;-moz-animation-delay:1.05s}.fs-ajax-loader .fs-ajax-loader-bar-5{left:76px;animation-delay:1.2s;-o-animation-delay:1.2s;-ms-animation-delay:1.2s;-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s}.fs-ajax-loader .fs-ajax-loader-bar-6{left:95px;animation-delay:1.35s;-o-animation-delay:1.35s;-ms-animation-delay:1.35s;-webkit-animation-delay:1.35s;-moz-animation-delay:1.35s}.fs-ajax-loader .fs-ajax-loader-bar-7{left:114px;animation-delay:1.5s;-o-animation-delay:1.5s;-ms-animation-delay:1.5s;-webkit-animation-delay:1.5s;-moz-animation-delay:1.5s}.fs-ajax-loader .fs-ajax-loader-bar-8{left:133px;animation-delay:1.65s;-o-animation-delay:1.65s;-ms-animation-delay:1.65s;-webkit-animation-delay:1.65s;-moz-animation-delay:1.65s}@-moz-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-ms-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-o-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-webkit-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}.fs-modal-auto-install #request-filesystem-credentials-form h2,.fs-modal-auto-install #request-filesystem-credentials-form .request-filesystem-credentials-action-buttons{display:none}.fs-modal-auto-install #request-filesystem-credentials-form input[type=password],.fs-modal-auto-install #request-filesystem-credentials-form input[type=email],.fs-modal-auto-install #request-filesystem-credentials-form input[type=text]{-webkit-appearance:none;padding:10px 10px 5px 10px;width:300px;max-width:100%}.fs-modal-auto-install #request-filesystem-credentials-form>div,.fs-modal-auto-install #request-filesystem-credentials-form label,.fs-modal-auto-install #request-filesystem-credentials-form fieldset{width:300px;max-width:100%;margin:0 auto;display:block}.button-primary.warn{box-shadow:0 1px 0 #d2593c;text-shadow:0 -1px 1px #d2593c,1px 0 1px #d2593c,0 1px 1px #d2593c,-1px 0 1px #d2593c;background:#f56a48;border-color:#ec6544 #d2593c #d2593c}.button-primary.warn:hover{background:#fd6d4a;border-color:#d2593c}.button-primary.warn:focus{box-shadow:0 1px 0 #dd6041,0 0 2px 1px #e4a796}.button-primary.warn:active{background:#dd6041;border-color:#d2593c;box-shadow:inset 0 2px 0 #d2593c}.button-primary.warn.disabled{color:#f5b3a1 !important;background:#e76444 !important;border-color:#d85e40 !important;text-shadow:0 -1px 0 rgba(0,0,0,0.1) !important}
1
+ .fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .dashicons{vertical-align:middle}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal.fs-success .fs-modal-header{border-bottom-color:#46b450}.fs-modal.fs-success .fs-modal-body{background-color:#f7fff7}.fs-modal.fs-warn .fs-modal-header{border-bottom-color:#ffb900}.fs-modal.fs-warn .fs-modal-body{background-color:#fff8e5}.fs-modal.fs-error .fs-modal-header{border-bottom-color:#dc3232}.fs-modal.fs-error .fs-modal-body{background-color:#ffeaea}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-header{border-bottom:#eeeeee solid 1px;background:#fbfbfb;padding:15px 20px;position:relative;margin-bottom:-10px}.fs-modal .fs-modal-header h4{margin:0;padding:0;text-transform:uppercase;font-size:1.2em;font-weight:bold;color:#cacaca;text-shadow:1px 1px 1px #fff;letter-spacing:0.6px;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{position:absolute;right:10px;top:12px;cursor:pointer;color:#bbb;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;padding:3px;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{color:#fff;background:#aaa}.fs-modal .fs-modal-header .fs-close .dashicons,.fs-modal .fs-modal-header .fs-close:hover .dashicons{text-decoration:none}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px;line-height:1.5em}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel>.notice.inline{margin:0;display:none}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{right:auto;left:20px}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .reason-input,.fs-modal.fs-modal-deactivation-feedback .internal-message{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea,.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea{width:100%}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}@media (max-width: 650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label{float:left}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0 !important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{margin-top:0;line-height:1.5em}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-subscription-cancellation .fs-price-increase-warning{color:red;font-weight:bold;padding:0 25px;margin-bottom:0}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:left;top:5px;position:relative}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:right}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{display:block;margin-left:24px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{margin-left:0;margin-right:24px}.fs-modal.fs-modal-license-activation .fs-modal-body input.fs-license-key{width:100%}.fs-license-options-container table,.fs-license-options-container table select,.fs-license-options-container table .fs-available-license-key{width:100%}.fs-license-options-container table td:first-child{width:1%}.fs-license-options-container table .fs-other-license-key-container label{position:relative;top:6px;float:left;margin-right:5px}.fs-license-options-container table .fs-other-license-key-container div{overflow:hidden;width:auto;height:30px;display:block;top:2px;position:relative}.fs-license-options-container table .fs-other-license-key-container div input{margin:0}.fs-sites-list-container td{cursor:pointer}.fs-modal.fs-modal-user-change .fs-modal-body input#fs_other_email_address{width:100%}.fs-user-change-options-container table{width:100%;border-collapse:collapse}.fs-user-change-options-container table tr{display:block;margin-bottom:2px}.fs-user-change-options-container table .fs-email-address-container td{display:inline-block}.fs-user-change-options-container table .fs-email-address-container input[type="radio"]{margin-bottom:0;margin-top:0}.fs-user-change-options-container table .fs-other-email-address-container{width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div{display:table;width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div label,.fs-user-change-options-container table .fs-other-email-address-container>div>div{display:table-cell}.fs-user-change-options-container table .fs-other-email-address-container>div label{width:1%;padding-left:3px;padding-right:3px}.fs-user-change-options-container table .fs-other-email-address-container>div>div{width:auto}.fs-user-change-options-container table .fs-other-email-address-container>div>div input{width:100%}.fs-modal.fs-modal-developer-license-debug-mode .fs-modal-body input.fs-license-or-user-key{width:100%}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-modal.fs-modal-license-key-resend .email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend.fs-freemium input.email-address{width:300px}.fs-modal.fs-modal-license-key-resend.fs-freemium label{display:block;margin-bottom:10px}.fs-modal.fs-modal-license-key-resend.fs-premium input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{float:right;margin-left:7px}@media (max-width: 650px){.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{margin-top:2px}}
2
  .rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{padding-left:2px;padding-right:0}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:left;margin-right:7px;margin-left:0}a.show-license-resend-modal{margin-top:4px;display:inline-block}.fs-ajax-loader{position:relative;width:170px;height:20px;margin:auto}.fs-ajax-loader .fs-ajax-loader-bar{position:absolute;top:0;background-color:#0074a3;width:20px;height:20px;-webkit-animation-name:bounce_ajaxLoader;-moz-animation-name:bounce_ajaxLoader;-ms-animation-name:bounce_ajaxLoader;-o-animation-name:bounce_ajaxLoader;animation-name:bounce_ajaxLoader;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s;animation-duration:1.5s;animation-iteration-count:infinite;-o-animation-iteration-count:infinite;-ms-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;-webkit-animation-direction:normal;-moz-animation-direction:normal;-ms-animation-direction:normal;-o-animation-direction:normal;animation-direction:normal;-moz-transform:0.3;-o-transform:0.3;-ms-transform:0.3;-webkit-transform:0.3;transform:0.3}.fs-ajax-loader .fs-ajax-loader-bar-1{left:0px;animation-delay:0.6s;-o-animation-delay:0.6s;-ms-animation-delay:0.6s;-webkit-animation-delay:0.6s;-moz-animation-delay:0.6s}.fs-ajax-loader .fs-ajax-loader-bar-2{left:19px;animation-delay:0.75s;-o-animation-delay:0.75s;-ms-animation-delay:0.75s;-webkit-animation-delay:0.75s;-moz-animation-delay:0.75s}.fs-ajax-loader .fs-ajax-loader-bar-3{left:38px;animation-delay:0.9s;-o-animation-delay:0.9s;-ms-animation-delay:0.9s;-webkit-animation-delay:0.9s;-moz-animation-delay:0.9s}.fs-ajax-loader .fs-ajax-loader-bar-4{left:57px;animation-delay:1.05s;-o-animation-delay:1.05s;-ms-animation-delay:1.05s;-webkit-animation-delay:1.05s;-moz-animation-delay:1.05s}.fs-ajax-loader .fs-ajax-loader-bar-5{left:76px;animation-delay:1.2s;-o-animation-delay:1.2s;-ms-animation-delay:1.2s;-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s}.fs-ajax-loader .fs-ajax-loader-bar-6{left:95px;animation-delay:1.35s;-o-animation-delay:1.35s;-ms-animation-delay:1.35s;-webkit-animation-delay:1.35s;-moz-animation-delay:1.35s}.fs-ajax-loader .fs-ajax-loader-bar-7{left:114px;animation-delay:1.5s;-o-animation-delay:1.5s;-ms-animation-delay:1.5s;-webkit-animation-delay:1.5s;-moz-animation-delay:1.5s}.fs-ajax-loader .fs-ajax-loader-bar-8{left:133px;animation-delay:1.65s;-o-animation-delay:1.65s;-ms-animation-delay:1.65s;-webkit-animation-delay:1.65s;-moz-animation-delay:1.65s}@-moz-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-ms-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-o-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-webkit-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}.fs-modal-auto-install #request-filesystem-credentials-form h2,.fs-modal-auto-install #request-filesystem-credentials-form .request-filesystem-credentials-action-buttons{display:none}.fs-modal-auto-install #request-filesystem-credentials-form input[type=password],.fs-modal-auto-install #request-filesystem-credentials-form input[type=email],.fs-modal-auto-install #request-filesystem-credentials-form input[type=text]{-webkit-appearance:none;padding:10px 10px 5px 10px;width:300px;max-width:100%}.fs-modal-auto-install #request-filesystem-credentials-form>div,.fs-modal-auto-install #request-filesystem-credentials-form label,.fs-modal-auto-install #request-filesystem-credentials-form fieldset{width:300px;max-width:100%;margin:0 auto;display:block}.button-primary.warn{box-shadow:0 1px 0 #d2593c;text-shadow:0 -1px 1px #d2593c,1px 0 1px #d2593c,0 1px 1px #d2593c,-1px 0 1px #d2593c;background:#f56a48;border-color:#ec6544 #d2593c #d2593c}.button-primary.warn:hover{background:#fd6d4a;border-color:#d2593c}.button-primary.warn:focus{box-shadow:0 1px 0 #dd6041,0 0 2px 1px #e4a796}.button-primary.warn:active{background:#dd6041;border-color:#d2593c;box-shadow:inset 0 2px 0 #d2593c}.button-primary.warn.disabled{color:#f5b3a1 !important;background:#e76444 !important;border-color:#d85e40 !important;text-shadow:0 -1px 0 rgba(0,0,0,0.1) !important}
vendor/freemius/wordpress-sdk/assets/css/admin/plugins.css ADDED
@@ -0,0 +1 @@
 
1
+ label.fs-tag,span.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}.wp-list-table.plugins .plugin-title span.fs-tag{display:inline-block;margin-left:5px;line-height:10px}
vendor/freemius/wordpress-sdk/assets/css/customizer.css CHANGED
@@ -1 +1 @@
1
- #fs_customizer_upsell .fs-customizer-plan{padding:10px 20px 20px 20px;border-radius:3px;background:#fff}#fs_customizer_upsell .fs-customizer-plan h2{position:relative;margin:0;line-height:2em;text-transform:uppercase}#fs_customizer_upsell .fs-customizer-plan h2 .button-link{top:-2px}#fs_customizer_upsell .fs-feature{position:relative}#fs_customizer_upsell .dashicons-yes{color:#0085ba;font-size:2em;vertical-align:bottom;margin-left:-7px;margin-right:10px}.rtl #fs_customizer_upsell .dashicons-yes{margin-left:10px;margin-right:-7px}#fs_customizer_upsell .dashicons-editor-help{color:#bbb;cursor:help}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:#000;color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{text-align:right}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#000 transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{right:21px;left:auto}#fs_customizer_upsell .dashicons-editor-help:hover .fs-feature-desc{visibility:visible;opacity:1}#fs_customizer_upsell .button-primary{display:block;text-align:center;margin-top:10px}#fs_customizer_support{display:block !important}#fs_customizer_support .button{float:right}#fs_customizer_support .button-group{width:100%;display:block;margin-top:10px}#fs_customizer_support .button-group .button{float:none;width:50%;text-align:center}
1
+ #fs_customizer_upsell .fs-customizer-plan{padding:10px 20px 20px 20px;border-radius:3px;background:#fff}#fs_customizer_upsell .fs-customizer-plan h2{position:relative;margin:0;line-height:2em;text-transform:uppercase}#fs_customizer_upsell .fs-customizer-plan h2 .button-link{top:-2px}#fs_customizer_upsell .fs-feature{position:relative}#fs_customizer_upsell .dashicons-yes{color:#0085ba;font-size:2em;vertical-align:bottom;margin-left:-7px;margin-right:10px}.rtl #fs_customizer_upsell .dashicons-yes{margin-left:10px;margin-right:-7px}#fs_customizer_upsell .dashicons-editor-help{color:#bbb;cursor:help}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:#000;color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{text-align:right}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#000 transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{right:21px;left:auto}#fs_customizer_upsell .dashicons-editor-help:hover .fs-feature-desc{visibility:visible;opacity:1}#fs_customizer_upsell .button-primary{display:block;text-align:center;margin-top:10px}#fs_customizer_support{display:block !important}#fs_customizer_support .button{float:right}#fs_customizer_support .button-group{width:100%;display:block;margin-top:10px}#fs_customizer_support .button-group .button{float:none;width:50%;text-align:center}#customize-theme-controls #accordion-section-freemius_upsell{border-top:1px solid #0085ba !important;border-bottom:1px solid #0085ba !important}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title{color:#fff;background-color:#0085ba;border-left:4px solid #0085ba;transition:.15s background-color ease-in-out, .15s border-color ease-in-out;outline:none;border-bottom:none !important}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title:hover{background-color:#008ec2;border-left-color:#0073aa}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title:after{color:#fff}#customize-theme-controls #accordion-section-freemius_upsell .rtl h3.accordion-section-title{border-left:none;border-right:4px solid #0085ba}#customize-theme-controls #accordion-section-freemius_upsell .rtl h3.accordion-section-title:hover{border-right-color:#0073aa}
vendor/freemius/wordpress-sdk/assets/scss/_colors.scss CHANGED
@@ -55,6 +55,12 @@ $wp-button-alert-active-background-color: #dd6041;
55
  $wp-button-alert-disabled-color: #f5b3a1;
56
  $wp-button-alert-disabled-background-color: #e76444;
57
  $wp-button-alert-disabled-border-color: #d85e40;
 
 
 
 
 
 
58
 
59
  $wordpress_color: #01749A;
60
  $blogger_color: #ff8100;
55
  $wp-button-alert-disabled-color: #f5b3a1;
56
  $wp-button-alert-disabled-background-color: #e76444;
57
  $wp-button-alert-disabled-border-color: #d85e40;
58
+ $wp-button-primary-color: #fff;
59
+ $wp-button-primary-background-color: #0085ba;
60
+ $wp-button-primary-hover-background-color: #008ec2;
61
+ $wp-button-primary-focus-background-color: $wp-button-primary-hover-background-color;
62
+ $wp-button-primary-active-background-color: #0073aa;
63
+
64
 
65
  $wordpress_color: #01749A;
66
  $blogger_color: #ff8100;
vendor/freemius/wordpress-sdk/assets/scss/admin/_data-debug-mode.scss ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ .fs-modal.fs-modal-developer-license-debug-mode {
2
+ .fs-modal-body {
3
+ input.fs-license-or-user-key {
4
+ width: 100%;
5
+ }
6
+ }
7
+ }
vendor/freemius/wordpress-sdk/assets/scss/admin/_modal-common.scss CHANGED
@@ -11,6 +11,11 @@
11
  display: none;
12
  background: rgba(0, 0, 0, 0.6);
13
 
 
 
 
 
 
14
  .fs-modal-dialog {
15
  background: transparent;
16
  position: absolute;
11
  display: none;
12
  background: rgba(0, 0, 0, 0.6);
13
 
14
+ .dashicons
15
+ {
16
+ vertical-align: middle;
17
+ }
18
+
19
  .fs-modal-dialog {
20
  background: transparent;
21
  position: absolute;
vendor/freemius/wordpress-sdk/assets/scss/admin/_switch.scss ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ $switch-size: 24px;
2
+ $switch-small-size: 0.75 * $switch-size;
3
+ $switch-on-color: $wp-button-primary-background-color;
4
+
5
+ .fs-switch
6
+ {
7
+ position: relative;
8
+ display: inline-block;
9
+ //font-size: 1.6em;
10
+ //font-weight: bold;
11
+ color: #ccc;
12
+ text-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);
13
+ height: 18px;
14
+ padding: 6px 6px 5px 6px;
15
+ border: 1px solid #ccc;
16
+ border: 1px solid rgba(0, 0, 0, 0.2);
17
+ //border-radius: 4px;
18
+ background: #ececec;
19
+ box-shadow: 0 0 4px rgba(0, 0, 0, 0.1), inset 0 1px 3px 0 rgba(0, 0, 0, 0.1);
20
+ cursor: pointer;
21
+
22
+ span
23
+ {
24
+ display: inline-block;
25
+ width: 35px;
26
+ text-transform: uppercase;
27
+ }
28
+
29
+ .fs-toggle
30
+ {
31
+ position: absolute;
32
+ top: 1px;
33
+ width: 37px;
34
+ height: $switch-size + 1px;
35
+ border: 1px solid #ccc;
36
+ border: 1px solid rgba(0, 0, 0, 0.3);
37
+ border-radius: 4px;
38
+ background: #fff;
39
+ @include linear-gradient(#ececec, #fff);
40
+ box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.5);
41
+ z-index: 999;
42
+ @include transition(0.40s cubic-bezier(0.54, 1.6, 0.5, 1));
43
+ }
44
+
45
+ &.fs-off .fs-toggle
46
+ {
47
+ left: 2%;
48
+ }
49
+ &.fs-on .fs-toggle
50
+ {
51
+ left: 54%;
52
+ }
53
+
54
+ /* Round switch */
55
+ &.fs-round
56
+ {
57
+ top: $switch-size / 3;
58
+ padding: 4px ($switch-size + 1px);
59
+ @include border-radius($switch-size);
60
+
61
+ .fs-toggle
62
+ {
63
+ top: 0;
64
+ width: $switch-size;
65
+ height: $switch-size;
66
+ @include border-radius($switch-size);
67
+ }
68
+
69
+ &.fs-off .fs-toggle
70
+ {
71
+ left: -1px;
72
+ }
73
+
74
+ &.fs-on
75
+ {
76
+ background: $switch-on-color;
77
+
78
+ .fs-toggle
79
+ {
80
+ left: $switch-size + 1px;
81
+ }
82
+ }
83
+ }
84
+
85
+ &.fs-small
86
+ {
87
+ &.fs-round
88
+ {
89
+ padding: 1px ($switch-small-size + 1px);
90
+
91
+ .fs-toggle
92
+ {
93
+ top: 0;
94
+ width: $switch-small-size;
95
+ height: $switch-small-size;
96
+ @include border-radius($switch-small-size);
97
+ }
98
+
99
+ &.fs-on .fs-toggle
100
+ {
101
+ left: $switch-small-size + 1px;
102
+ }
103
+ }
104
+ }
105
+ }
106
+
107
+ .fs-switch-feedback {
108
+ margin-left: 10px;
109
+
110
+ &.success {
111
+ color: $fs-logo-green-color;
112
+ }
113
+
114
+ .rtl &
115
+ {
116
+ margin-left: 0;
117
+ margin-right: 10px;
118
+ }
119
+ }
vendor/freemius/wordpress-sdk/assets/scss/admin/_user-change.scss ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fs-modal.fs-modal-user-change {
2
+ .fs-modal-body {
3
+ input#fs_other_email_address {
4
+ width: 100%;
5
+ }
6
+ }
7
+ }
8
+
9
+ .fs-user-change-options-container {
10
+ table {
11
+ width: 100%;
12
+ border-collapse: collapse;
13
+
14
+ tr {
15
+ display: block;
16
+ margin-bottom: 2px;
17
+ }
18
+
19
+ .fs-email-address-container {
20
+ td {
21
+ display: inline-block;
22
+ }
23
+
24
+ input[type="radio"] {
25
+ margin-bottom: 0;
26
+ margin-top: 0;
27
+ }
28
+ }
29
+
30
+ .fs-other-email-address-container {
31
+ width: 100%;
32
+
33
+ > div {
34
+ display: table;
35
+ width: 100%;
36
+
37
+ label, > div {
38
+ display: table-cell;
39
+ }
40
+
41
+ label {
42
+ width: 1%;
43
+ padding-left: 3px;
44
+ padding-right: 3px;
45
+ }
46
+
47
+ > div {
48
+ width: auto;
49
+
50
+ input {
51
+ width: 100%;
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+ }
vendor/freemius/wordpress-sdk/assets/scss/admin/account.scss CHANGED
@@ -6,7 +6,7 @@
6
  .postbox,
7
  .widefat
8
  {
9
- max-width: 700px;
10
  }
11
 
12
  h3
6
  .postbox,
7
  .widefat
8
  {
9
+ max-width: 800px;
10
  }
11
 
12
  h3
vendor/freemius/wordpress-sdk/assets/scss/admin/common.scss CHANGED
@@ -1,5 +1,6 @@
1
  @import "../start";
2
  @import "themes";
 
3
 
4
  #fs_frame
5
  {
@@ -209,6 +210,7 @@ span.fs-submenu-item.fs-sub:before
209
  display: inline-block;
210
  background: url('/wp-admin/images/wpspin_light-2x.gif');
211
  background-size: contain;
 
212
  }
213
 
214
  .wrap.fs-section {
1
  @import "../start";
2
  @import "themes";
3
+ @import "switch";
4
 
5
  #fs_frame
6
  {
210
  display: inline-block;
211
  background: url('/wp-admin/images/wpspin_light-2x.gif');
212
  background-size: contain;
213
+ margin-bottom: -2px;
214
  }
215
 
216
  .wrap.fs-section {
vendor/freemius/wordpress-sdk/assets/scss/admin/connect.scss CHANGED
@@ -185,7 +185,11 @@ $form_width: 480px;
185
  height: 40px;
186
  }
187
 
188
- div
 
 
 
 
189
  {
190
  margin-left: 55px;
191
 
@@ -401,12 +405,16 @@ $form_width: 480px;
401
  {
402
  li
403
  {
404
- div
405
  {
406
  margin-right: 55px;
407
  margin-left: 0;
408
  }
409
 
 
 
 
 
410
  i.dashicons
411
  {
412
  float: right;
185
  height: 40px;
186
  }
187
 
188
+ .fs-switch {
189
+ float: right;
190
+ }
191
+
192
+ .fs-permission-description
193
  {
194
  margin-left: 55px;
195
 
405
  {
406
  li
407
  {
408
+ .fs-permission-description
409
  {
410
  margin-right: 55px;
411
  margin-left: 0;
412
  }
413
 
414
+ .fs-switch {
415
+ float: left;
416
+ }
417
+
418
  i.dashicons
419
  {
420
  float: right;
vendor/freemius/wordpress-sdk/assets/scss/admin/debug.scss CHANGED
@@ -1,89 +1,6 @@
1
  @import "../start";
2
 
3
- .switch
4
- {
5
- position: relative;
6
- display: inline-block;
7
- font-size: 1.6em;
8
- font-weight: bold;
9
- color: #ccc;
10
- text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.8);
11
- height: 18px;
12
- padding: 6px 6px 5px 6px;
13
- border: 1px solid #ccc;
14
- border: 1px solid rgba(0, 0, 0, 0.2);
15
- border-radius: 4px;
16
- background: #ececec;
17
- box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.1), inset 0px 1px 3px 0px rgba(0, 0, 0, 0.1);
18
- cursor: pointer;
19
-
20
- span
21
- {
22
- display: inline-block; width: 35px;
23
- text-transform: uppercase;
24
-
25
- &.on
26
- {
27
- color: $button-primary-bkg;
28
- }
29
- }
30
-
31
- .toggle
32
- {
33
- position: absolute;
34
- top: 1px;
35
- width: 37px;
36
- height: 25px;
37
- border: 1px solid #ccc;
38
- border: 1px solid rgba(0, 0, 0, 0.3);
39
- border-radius: 4px;
40
- background: #fff;
41
- background: -moz-linear-gradient(top, #ececec 0%, #fff 100%);
42
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ececec), color-stop(100%, #fff));
43
- background: -webkit-linear-gradient(top, #ececec 0%, #fff 100%);
44
- background: -o-linear-gradient(top, #ececec 0%, #fff 100%);
45
- background: -ms-linear-gradient(top, #ececec 0%, #fff 100%);
46
- background: linear-gradient(top, #ececec 0%, #fff 100%);
47
- box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.5);
48
- z-index: 999;
49
- @include transition(all 0.15s ease-in-out);
50
- }
51
-
52
- &.on .toggle
53
- {
54
- left: 2%;
55
- }
56
- &.off .toggle
57
- {
58
- left: 54%;
59
- }
60
-
61
- /* Round switch */
62
- &.round
63
- {
64
- padding: 0px 20px;
65
- border-radius: 40px;
66
-
67
- .toggle
68
- {
69
- border-radius: 40px;
70
- width: 14px;
71
- height: 14px;
72
- }
73
-
74
- &.on .toggle
75
- {
76
- left: 3%;
77
- background: $button-primary-bkg;
78
- }
79
- &.off .toggle
80
- {
81
- left: 58%;
82
- }
83
- }
84
- }
85
-
86
- .switch-label
87
  {
88
  font-size: 20px;
89
  line-height: 31px;
1
  @import "../start";
2
 
3
+ .fs-switch-label
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  {
5
  font-size: 20px;
6
  line-height: 31px;
vendor/freemius/wordpress-sdk/assets/scss/admin/dialog-boxes.scss CHANGED
@@ -3,6 +3,8 @@
3
  @import "deactivation-feedback";
4
  @import "subscription-cancellation";
5
  @import "license-activation";
 
 
6
  @import "multisite-options";
7
  @import "license-key-resend";
8
  @import "ajax-loader";
3
  @import "deactivation-feedback";
4
  @import "subscription-cancellation";
5
  @import "license-activation";
6
+ @import "user-change";
7
+ @import "data-debug-mode";
8
  @import "multisite-options";
9
  @import "license-key-resend";
10
  @import "ajax-loader";
vendor/freemius/wordpress-sdk/assets/scss/customizer.scss CHANGED
@@ -122,4 +122,44 @@
122
  text-align: center;
123
  }
124
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  }
122
  text-align: center;
123
  }
124
  }
125
+ }
126
+
127
+ #customize-theme-controls #accordion-section-freemius_upsell
128
+ {
129
+ border-top: 1px solid $wp-button-primary-background-color !important;;
130
+ border-bottom: 1px solid $wp-button-primary-background-color !important;;
131
+
132
+ h3.accordion-section-title
133
+ {
134
+ color: $wp-button-primary-color;
135
+ background-color: $wp-button-primary-background-color;
136
+ border-left: 4px solid $wp-button-primary-background-color;
137
+ transition: .15s background-color ease-in-out, .15s border-color ease-in-out;
138
+ outline: none;
139
+ border-bottom: none !important;
140
+
141
+ &:hover
142
+ {
143
+ background-color: $wp-button-primary-hover-background-color;
144
+ border-left-color: $wp-button-primary-active-background-color;
145
+ }
146
+
147
+ &:after {
148
+ color: $wp-button-primary-color;
149
+ }
150
+ }
151
+
152
+ .rtl
153
+ {
154
+ h3.accordion-section-title
155
+ {
156
+ border-left: none;
157
+ border-right: 4px solid $wp-button-primary-background-color;
158
+
159
+ &:hover
160
+ {
161
+ border-right-color: $wp-button-primary-active-background-color;
162
+ }
163
+ }
164
+ }
165
  }
vendor/freemius/wordpress-sdk/includes/class-freemius.php CHANGED
@@ -164,6 +164,15 @@
164
  */
165
  private $_has_addons;
166
 
 
 
 
 
 
 
 
 
 
167
  /**
168
  * @since 1.1.6
169
  * @var string[]bool.
@@ -334,6 +343,14 @@
334
  */
335
  private $_dynamically_added_top_level_page_hook_name = '';
336
 
 
 
 
 
 
 
 
 
337
  #region Uninstall Reasons IDs
338
 
339
  const REASON_NO_LONGER_NEEDED = 1;
@@ -484,13 +501,13 @@
484
  );
485
 
486
  if ( 'true' === fs_request_get( 'fs_clear_api_cache' ) ||
487
- 'true' === fs_request_is_action( 'restart_freemius' )
488
  ) {
489
  FS_Api::clear_cache();
490
  $this->_cache->clear();
491
  }
492
 
493
- $this->_register_hooks();
494
 
495
  /**
496
  * Starting from version 2.0.0, `FS_Site` entities no longer have the `plan` property and have `plan_id`
@@ -702,6 +719,52 @@
702
  $this->_menu->has_menu();
703
  }
704
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
705
  /**
706
  * Check if the context module is free wp.org theme.
707
  *
@@ -734,12 +797,11 @@
734
  * @since 1.2.2.7 Even if the menu item was specified to be hidden, when it is the context page, then show the submenu item so the user will have the right context page.
735
  *
736
  * @param string $slug
737
- * @param bool $ignore_free_wp_org_theme_context This is used to decide if the associated tab should be shown
738
- * or hidden.
739
  *
740
  * @return bool
741
  */
742
- function is_submenu_item_visible( $slug, $ignore_free_wp_org_theme_context = false ) {
743
  if ( $this->is_admin_page( $slug ) ) {
744
  /**
745
  * It is the current context page, so show the submenu item
@@ -754,7 +816,7 @@
754
  return false;
755
  }
756
 
757
- if ( ! $ignore_free_wp_org_theme_context && $this->is_free_wp_org_theme() ) {
758
  /**
759
  * wp.org themes are limited to a single submenu item, and
760
  * sub-submenu items are most likely not allowed (never verified).
@@ -980,7 +1042,7 @@
980
  }
981
 
982
  if ( isset( $this->_storage->subscription ) && is_object( $this->_storage->subscription ) ) {
983
- $this->_storage->subscriptions = array( $this->_storage->subscription );
984
  }
985
  }
986
 
@@ -1453,11 +1515,11 @@
1453
  * @author Vova Feldman (@svovaf)
1454
  * @since 1.0.9
1455
  */
1456
- private function _register_hooks() {
1457
  $this->_logger->entrance();
1458
 
1459
  if ( is_admin() ) {
1460
- add_action( 'plugins_loaded', array( &$this, '_hook_action_links_and_register_account_hooks' ) );
1461
 
1462
  if ( $this->is_plugin() ) {
1463
  if ( self::is_plugin_install_page() && true !== fs_request_get_bool( 'fs_allow_updater_and_dialog' ) ) {
@@ -1498,34 +1560,6 @@
1498
  } else {
1499
  add_action( 'after_switch_theme', array( &$this, '_activate_theme_event_hook' ), 10, 2 );
1500
 
1501
- /**
1502
- * Include the required hooks to capture the theme settings' page tabs
1503
- * and cache them.
1504
- *
1505
- * @author Vova Feldman (@svovaf)
1506
- * @since 1.2.2.7
1507
- */
1508
- if ( ! $this->_cache->has_valid( 'tabs' ) ) {
1509
- add_action( 'admin_footer', array( &$this, '_tabs_capture' ) );
1510
- // Add license activation AJAX callback.
1511
- $this->add_ajax_action( 'store_tabs', array( &$this, '_store_tabs_ajax_action' ) );
1512
-
1513
- add_action( 'admin_enqueue_scripts', array( &$this, '_store_tabs_styles' ), 9999999 );
1514
- }
1515
-
1516
- add_action(
1517
- 'admin_footer',
1518
- array( &$this, '_add_freemius_tabs' ),
1519
- /**
1520
- * The tabs JS code must be executed after the tabs capture logic (_tabs_capture()).
1521
- * That's why the priority is 11 while the tabs capture logic is added
1522
- * with priority 10.
1523
- *
1524
- * @author Vova Feldman (@svovaf)
1525
- */
1526
- 11
1527
- );
1528
-
1529
  add_action( 'admin_footer', array( &$this, '_style_premium_theme' ) );
1530
  }
1531
 
@@ -1545,7 +1579,10 @@
1545
  *
1546
  * @author Vova Feldman (@svovaf)
1547
  */
1548
- if ( $this->is_plugin() && $this->is_activation_mode( false ) ) {
 
 
 
1549
  add_action( 'plugins_loaded', array( &$this, '_plugins_loaded' ) );
1550
  } else {
1551
  // If was activated before, then it was already loaded before.
@@ -1602,9 +1639,11 @@
1602
  add_action( 'admin_init', array( &$this, '_add_license_activation' ) );
1603
  add_action( 'admin_init', array( &$this, '_add_premium_version_upgrade_selection' ) );
1604
  add_action( 'admin_init', array( &$this, '_add_beta_mode_update_handler' ) );
 
1605
 
1606
  $this->add_ajax_action( 'update_billing', array( &$this, '_update_billing_ajax_action' ) );
1607
  $this->add_ajax_action( 'start_trial', array( &$this, '_start_trial_ajax_action' ) );
 
1608
 
1609
  if ( $this->_is_network_active && fs_is_network_admin() ) {
1610
  $this->add_ajax_action( 'network_activate', array( &$this, '_network_activate_ajax_action' ) );
@@ -1646,6 +1685,65 @@
1646
  }
1647
  }
1648
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1649
  /**
1650
  * Makes Freemius-related updates unavailable on the "Add Plugins" admin page (/plugin-install.php) so that
1651
  * they won't interfere with the .org plugins' functionalities on that page (e.g. updating of a .org plugin).
@@ -1908,7 +2006,7 @@
1908
  * @since 2.0.0
1909
  */
1910
  function _hook_action_links_and_register_account_hooks() {
1911
- add_action( 'admin_init', array( &$this, '_add_tracking_links' ) );
1912
 
1913
  if ( self::is_plugins_page() && $this->is_plugin() ) {
1914
  $this->hook_plugin_action_links();
@@ -2250,6 +2348,10 @@
2250
 
2251
  if ( ! isset( $caller_map[ $caller_file_hash ] ) ) {
2252
  foreach ( $all_plugins_paths as $plugin_path ) {
 
 
 
 
2253
  if ( false !== strpos( $caller_file_path, fs_normalize_path( dirname( $plugin_path ) . '/' ) ) ) {
2254
  $caller_map[ $caller_file_hash ] = fs_normalize_path( $plugin_path );
2255
  break;
@@ -2928,7 +3030,7 @@
2928
  * @return bool
2929
  */
2930
  function is_activation_page() {
2931
- if ( $this->_menu->is_main_settings_page() ) {
2932
  return true;
2933
  }
2934
 
@@ -4630,22 +4732,7 @@
4630
 
4631
  $this->parse_settings( $plugin_info );
4632
 
4633
- if ( is_admin() && $this->is_theme() && $this->is_premium() && ! $this->has_active_valid_license() ) {
4634
- $this->add_ajax_action(
4635
- 'delete_theme_update_data',
4636
- array( &$this, '_delete_theme_update_data_action' )
4637
- );
4638
- }
4639
-
4640
- if ( ! self::is_ajax() ) {
4641
- if ( ! $this->is_addon() || $this->is_only_premium() ) {
4642
- add_action(
4643
- ( $this->_is_network_active && fs_is_network_admin() ? 'network_' : '' ) . 'admin_menu',
4644
- array( &$this, '_prepare_admin_menu' ),
4645
- WP_FS__LOWEST_PRIORITY
4646
- );
4647
- }
4648
- }
4649
 
4650
  if ( $this->should_stop_execution() ) {
4651
  return;
@@ -4803,6 +4890,7 @@
4803
  if (
4804
  $this->_parent->is_registered() &&
4805
  ! $this->is_registered() &&
 
4806
  /**
4807
  * If not registered for add-on and the following conditions for the add-on are met, activate add-on account.
4808
  * * Network active and in network admin - network activate add-on account.
@@ -5320,6 +5408,62 @@
5320
  }
5321
  }
5322
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5323
  /**
5324
  * Parse plugin's settings (as defined by the plugin dev).
5325
  *
@@ -5396,6 +5540,7 @@
5396
  'is_live' => $this->get_bool_option( $plugin_info, 'is_live', true ),
5397
  'affiliate_moderation' => $this->get_option( $plugin_info, 'has_affiliation' ),
5398
  'bundle_id' => $this->get_option( $plugin_info, 'bundle_id', null ),
 
5399
  ) );
5400
 
5401
  if ( $plugin->is_updated() ) {
@@ -5467,6 +5612,14 @@
5467
 
5468
  $this->_is_trial_require_payment = $this->get_bool_option( $plugin_info['trial'], 'is_require_payment', false );
5469
  }
 
 
 
 
 
 
 
 
5470
  }
5471
 
5472
  /**
@@ -5819,12 +5972,16 @@
5819
  * @return Freemius[]
5820
  */
5821
  function get_installed_addons() {
 
 
 
 
 
5822
  $installed_addons = array();
 
5823
  foreach ( self::$_instances as $instance ) {
5824
- if ( $instance->is_addon() && is_object( $instance->_parent_plugin ) ) {
5825
- if ( $this->_plugin->id == $instance->_parent_plugin->id ) {
5826
- $installed_addons[] = $instance;
5827
- }
5828
  }
5829
  }
5830
 
@@ -5874,7 +6031,25 @@
5874
  * @return bool
5875
  */
5876
  function is_addon() {
5877
- return isset( $this->_plugin->parent_plugin_id ) && is_numeric( $this->_plugin->parent_plugin_id );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5878
  }
5879
 
5880
  /**
@@ -6631,6 +6806,8 @@
6631
  } else {
6632
  $this->sync_install();
6633
  }
 
 
6634
  }
6635
  }
6636
  }
@@ -6843,6 +7020,8 @@
6843
  } else {
6844
  $this->sync_install( array(), true );
6845
  }
 
 
6846
  }
6847
  }
6848
 
@@ -6937,8 +7116,7 @@
6937
 
6938
  $this->_add_upgrade_action_link();
6939
 
6940
- if ( ! $this->is_addon() &&
6941
- ! ( ! $this->_is_network_active && fs_is_network_admin() ) &&
6942
  (
6943
  ( true === $this->_storage->require_license_activation ) ||
6944
  // Not registered nor anonymous.
@@ -6948,7 +7126,7 @@
6948
  )
6949
  ) {
6950
  if ( ! $this->is_pending_activation() ) {
6951
- if ( ! $this->_menu->is_main_settings_page() ) {
6952
  /**
6953
  * If a user visits any other admin page before activating the premium-only theme with a valid
6954
  * license, reactivate the previous theme.
@@ -7015,8 +7193,8 @@
7015
  }
7016
  }
7017
 
7018
- if ( $this->is_theme() &&
7019
- $this->_menu->is_main_settings_page()
7020
  ) {
7021
  $this->_show_theme_activation_optin_dialog();
7022
  }
@@ -7781,7 +7959,7 @@
7781
  *
7782
  * @return array
7783
  */
7784
- private function get_sites_for_network_level_optin() {
7785
  $sites = array();
7786
  $all_sites = self::get_sites();
7787
 
@@ -7911,6 +8089,10 @@
7911
  foreach ( $sites as $site ) {
7912
  $blog_id = self::get_site_blog_id( $site );
7913
 
 
 
 
 
7914
  $install_id = $this->_delete_site( true, $blog_id );
7915
 
7916
  // Clear all storage data.
@@ -8688,26 +8870,28 @@
8688
  $include_themes = true,
8689
  $include_blog_data = true
8690
  ) {
8691
- if ( ! defined( 'WP_FS__TRACK_PLUGINS' ) || false !== WP_FS__TRACK_PLUGINS ) {
8692
- /**
8693
- * @since 1.1.8 Also send plugin updates.
8694
- */
8695
- if ( $include_plugins && ! isset( $override['plugins'] ) ) {
8696
- $plugins = $this->get_plugins_data_for_api();
8697
- if ( ! empty( $plugins ) ) {
8698
- $override['plugins'] = $plugins;
 
 
8699
  }
8700
  }
8701
- }
8702
 
8703
- if ( ! defined( 'WP_FS__TRACK_THEMES' ) || false !== WP_FS__TRACK_THEMES ) {
8704
- /**
8705
- * @since 1.1.8 Also send themes updates.
8706
- */
8707
- if ( $include_themes && ! isset( $override['themes'] ) ) {
8708
- $themes = $this->get_themes_data_for_api();
8709
- if ( ! empty( $themes ) ) {
8710
- $override['themes'] = $themes;
 
8711
  }
8712
  }
8713
  }
@@ -9063,6 +9247,21 @@
9063
  }
9064
  }
9065
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9066
  /**
9067
  * Update install only if changed.
9068
  *
@@ -9346,6 +9545,8 @@
9346
  $fs = self::get_instance_by_file( $plugin_file );
9347
 
9348
  if ( is_object( $fs ) ) {
 
 
9349
  self::require_plugin_essentials();
9350
 
9351
  if ( is_plugin_active( $fs->_free_plugin_basename ) ||
@@ -9397,10 +9598,12 @@
9397
  * @author Vova Feldman (@svovaf)
9398
  * @since 1.0.1
9399
  *
 
 
9400
  * @return array
9401
  */
9402
- function get_plugin_data() {
9403
- if ( ! isset( $this->_plugin_data ) ) {
9404
  self::require_plugin_essentials();
9405
 
9406
  if ( $this->is_plugin() ) {
@@ -9505,6 +9708,18 @@
9505
  null;
9506
  }
9507
 
 
 
 
 
 
 
 
 
 
 
 
 
9508
  /**
9509
  * @author Vova Feldman (@svovaf)
9510
  * @since 1.2.1.5
@@ -9527,6 +9742,32 @@
9527
  $this->_plugin->id;
9528
  }
9529
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9530
  /**
9531
  * @author Vova Feldman (@svovaf)
9532
  * @since 1.0.1
@@ -9626,12 +9867,14 @@
9626
  * @author Vova Feldman (@svovaf)
9627
  * @since 1.0.0
9628
  *
 
 
9629
  * @return string
9630
  */
9631
- function get_plugin_version() {
9632
  $this->_logger->entrance();
9633
 
9634
- $plugin_data = $this->get_plugin_data();
9635
 
9636
  $this->_logger->departure( 'Version = ' . $plugin_data['Version'] );
9637
 
@@ -9756,7 +9999,7 @@
9756
  * @return array[number]FS_User
9757
  */
9758
  static function get_all_users() {
9759
- $users = self::$_accounts->get_option( 'users', array() );
9760
 
9761
  if ( ! is_array( $users ) ) {
9762
  $users = array();
@@ -9800,7 +10043,7 @@
9800
  $option_name = $module_type . '_' . $option_name;
9801
  }
9802
 
9803
- return self::$_accounts->get_option( $option_name, array(), $network_level_or_blog_id );
9804
  }
9805
 
9806
  /**
@@ -9848,6 +10091,54 @@
9848
  self::$_accounts->set_option( $option_name, $option_value, $store, $network_level_or_blog_id );
9849
  }
9850
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9851
  /**
9852
  * @author Vova Feldman (@svovaf)
9853
  * @since 1.0.6
@@ -10031,7 +10322,7 @@
10031
  * @return FS_Plugin_Tag[]
10032
  */
10033
  private static function get_all_updates() {
10034
- $updates = self::$_accounts->get_option( 'updates', array() );
10035
 
10036
  if ( ! is_array( $updates ) ) {
10037
  $updates = array();
@@ -10047,7 +10338,7 @@
10047
  * @return array<number,FS_Plugin[]>|false
10048
  */
10049
  private static function get_all_addons() {
10050
- $addons = self::$_accounts->get_option( 'addons', array() );
10051
 
10052
  if ( ! is_array( $addons ) ) {
10053
  $addons = array();
@@ -10060,7 +10351,7 @@
10060
  * @author Vova Feldman (@svovaf)
10061
  * @since 1.0.6
10062
  *
10063
- * @return FS_Plugin[]|false
10064
  */
10065
  private static function get_all_account_addons() {
10066
  $addons = self::$_accounts->get_option( 'account_addons', array() );
@@ -10161,7 +10452,7 @@
10161
  * @author Vova Feldman (@svovaf)
10162
  * @since 1.0.6
10163
  *
10164
- * @return FS_Plugin[]|false
10165
  */
10166
  function get_account_addons() {
10167
  $this->_logger->entrance();
@@ -10305,7 +10596,7 @@
10305
 
10306
  if ( ! fs_is_network_admin() ) {
10307
  // Get blog-level activated installations.
10308
- $sites = self::$_accounts->get_option( 'sites', array() );
10309
  } else {
10310
  $sites = null;
10311
 
@@ -10314,7 +10605,7 @@
10314
  ) {
10315
  if ( FS_Site::is_valid_id( $addon_storage->network_install_blog_id ) ) {
10316
  // Get network-level activated installations.
10317
- $sites = self::$_accounts->get_option(
10318
  'sites',
10319
  array(),
10320
  $addon_storage->network_install_blog_id
@@ -10324,9 +10615,10 @@
10324
  }
10325
 
10326
  $addon_info = array(
10327
- 'is_connected' => false,
10328
- 'slug' => $slug,
10329
- 'title' => $addon->title
 
10330
  );
10331
 
10332
  if ( ! $is_installed ) {
@@ -10372,14 +10664,14 @@
10372
 
10373
  $addon_info['site'] = $site;
10374
 
10375
- $plugins_data = self::$_accounts->get_option( WP_FS__MODULE_TYPE_PLUGIN . 's', array() );
10376
  if ( isset( $plugins_data[ $slug ] ) ) {
10377
  $plugin_data = $plugins_data[ $slug ];
10378
 
10379
  $addon_info['version'] = $plugin_data->version;
10380
  }
10381
 
10382
- $all_plans = self::$_accounts->get_option( 'plans', array() );
10383
  if ( isset( $all_plans[ $slug ] ) ) {
10384
  $plans = $all_plans[ $slug ];
10385
 
@@ -10392,7 +10684,7 @@
10392
  }
10393
  }
10394
 
10395
- $licenses = self::$_accounts->get_option( 'all_licenses', array() );
10396
  if ( is_array( $licenses ) && isset( $licenses[ $addon_id ] ) ) {
10397
  foreach ( $licenses[ $addon_id ] as $license ) {
10398
  if ( $license->id == $site->license_id ) {
@@ -10406,7 +10698,9 @@
10406
  if ( isset( $addon_storage->subscriptions ) &&
10407
  ! empty( $addon_storage->subscriptions )
10408
  ) {
10409
- foreach ( $addon_storage->subscriptions as $subscription ) {
 
 
10410
  if ( $subscription->license_id == $site->license_id ) {
10411
  $addon_info['subscription'] = $subscription;
10412
  break;
@@ -10497,7 +10791,7 @@
10497
  function is_premium() {
10498
  /**
10499
  * `$this->_plugin` will be `false` when `is_activation_mode` calls this method directly from the
10500
- * `_register_hooks` method.
10501
  *
10502
  * @author Leo Fajardo (@leorw)
10503
  * @since 2.2.3
@@ -10594,13 +10888,26 @@
10594
  return false;
10595
  }
10596
 
10597
- return $this->has_active_valid_license() && ( $this->_site->trial_plan_id == $this->_license->plan_id );
10598
- }
 
10599
 
10600
- /**
10601
- * Check if trial already utilized.
10602
- *
10603
- * @since 1.0.9
 
 
 
 
 
 
 
 
 
 
 
 
10604
  *
10605
  * @return bool
10606
  */
@@ -10729,10 +11036,26 @@
10729
  * @author Vova Feldman (@svovaf)
10730
  * @since 1.1.7.3
10731
  *
 
 
10732
  * @return bool
10733
  */
10734
- function has_any_license() {
10735
- return is_array( $this->_licenses ) && ( 0 < count( $this->_licenses ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10736
  }
10737
 
10738
  /**
@@ -10878,7 +11201,9 @@
10878
 
10879
  if ( $license instanceof FS_Plugin_License ) {
10880
  $this->_licenses[] = $license;
10881
- $this->_license = $license;
 
 
10882
  $this->_store_licenses();
10883
 
10884
  return $license;
@@ -11103,7 +11428,22 @@
11103
 
11104
  // Update current license.
11105
  if ( is_object( $this->_license ) ) {
11106
- $this->_license = $this->_get_license_by_id( $this->_license->id );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11107
  }
11108
 
11109
  return $this->_licenses;
@@ -11443,6 +11783,21 @@
11443
  return true;
11444
  }
11445
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11446
  /**
11447
  * Activate a given license on a collection of blogs/sites that are not yet opted-in.
11448
  *
@@ -11458,7 +11813,7 @@
11458
  private function activate_license_on_many_sites(
11459
  FS_User $user,
11460
  $license_key,
11461
- array $site_ids
11462
  ) {
11463
  $sites = array();
11464
  foreach ( $site_ids as $site_id ) {
@@ -11482,30 +11837,43 @@
11482
  }
11483
 
11484
  $installs = array();
11485
- foreach ( $result->installs as $install ) {
11486
- $installs[] = new FS_Site( $install );
11487
- }
11488
 
11489
- // Map site addresses to their blog IDs.
11490
- $address_to_blog_map = $this->get_address_to_blog_map();
11491
 
11492
- $first_blog_id = null;
11493
 
11494
- foreach ( $installs as $install ) {
11495
- $address = trailingslashit( fs_strip_url_protocol( $install->url ) );
11496
- $blog_id = $address_to_blog_map[ $address ];
11497
 
11498
- $this->_store_site( true, $blog_id, $install );
 
 
 
 
 
 
 
 
 
11499
 
11500
- $this->reset_anonymous_mode( $blog_id );
11501
 
11502
- if ( is_null( $first_blog_id ) ) {
11503
- $first_blog_id = $blog_id;
 
 
 
 
 
 
 
 
 
11504
  }
11505
- }
11506
 
11507
- if ( ! FS_Site::is_valid_id( $this->_storage->network_install_blog_id ) ) {
11508
- $this->_storage->network_install_blog_id = $first_blog_id;
 
11509
  }
11510
 
11511
  return true;
@@ -11524,7 +11892,15 @@
11524
  function _update_site_license( $new_license ) {
11525
  $this->_logger->entrance();
11526
 
11527
- $this->_license = $new_license;
 
 
 
 
 
 
 
 
11528
 
11529
  if ( ! is_object( $new_license ) ) {
11530
  $this->_site->license_id = null;
@@ -11559,6 +11935,241 @@
11559
  return $this->_license;
11560
  }
11561
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11562
  /**
11563
  * Sync site's subscription.
11564
  *
@@ -11616,7 +12227,7 @@
11616
  return null;
11617
  }
11618
 
11619
- foreach ( $this->_storage->subscriptions as $subscription ) {
11620
  if ( $subscription->license_id == $license_id ) {
11621
  return $subscription;
11622
  }
@@ -11642,7 +12253,7 @@
11642
  return;
11643
  }
11644
 
11645
- $subscriptions = $this->_storage->subscriptions;
11646
 
11647
  $updated_subscription = false;
11648
  foreach ( $subscriptions as $key => $existing_subscription ) {
@@ -11737,7 +12348,7 @@
11737
  }
11738
 
11739
  $current_plan_order = - 1;
11740
- $required_plan_order = - 1;
11741
  for ( $i = 0, $len = count( $this->_plans ); $i < $len; $i ++ ) {
11742
  if ( $plan === $this->_plans[ $i ]->name ) {
11743
  $required_plan_order = $i;
@@ -11755,9 +12366,11 @@
11755
  * @author Vova Feldman (@svovaf)
11756
  * @since 1.2.1.7
11757
  *
 
 
11758
  * @return bool
11759
  */
11760
- function is_single_plan() {
11761
  $this->_logger->entrance();
11762
 
11763
  if ( ! $this->is_registered() ||
@@ -11767,7 +12380,18 @@
11767
  return true;
11768
  }
11769
 
11770
- return ( 1 === ( count( $this->_plans ) - ( $this->has_free_plan() ? 1 : 0 ) ) );
 
 
 
 
 
 
 
 
 
 
 
11771
  }
11772
 
11773
  /**
@@ -11881,6 +12505,77 @@
11881
  fs_require_template( 'forms/resend-key.php', $vars );
11882
  }
11883
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11884
  /**
11885
  * Displays a subscription cancellation dialog box when the user clicks on the "Deactivate License"
11886
  * link on the "Account" page or deactivates a plugin and there's an active subscription that is
@@ -11899,6 +12594,10 @@
11899
  // Subscription cancellation dialog box is currently not supported for multisite networks.
11900
  return array();
11901
  }
 
 
 
 
11902
 
11903
  $license = $this->_get_license();
11904
 
@@ -11986,8 +12685,18 @@
11986
  return;
11987
  }
11988
 
11989
- if ( ! $this->is_premium() ) {
11990
- // Only add license activation logic to the premium version.
 
 
 
 
 
 
 
 
 
 
11991
  return;
11992
  }
11993
 
@@ -12013,6 +12722,55 @@
12013
  $this->add_ajax_action( 'resend_license_key', array( &$this, '_resend_license_key_ajax_action' ) );
12014
  }
12015
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12016
  /**
12017
  * @author Leo Fajardo (@leorw)
12018
  * @since 2.0.2
@@ -12118,7 +12876,9 @@
12118
  array(),
12119
  fs_request_get_bool( 'is_marketing_allowed', null ),
12120
  fs_request_get( 'blog_id', null ),
12121
- fs_request_get( 'module_id', null, 'post' )
 
 
12122
  );
12123
 
12124
  echo json_encode( $result );
@@ -12126,6 +12886,86 @@
12126
  exit;
12127
  }
12128
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12129
  /**
12130
  * A helper method to activate migrated licenses. If the product is network activated and integrated, the method will network activate the license.
12131
  *
@@ -12149,7 +12989,9 @@
12149
  $is_marketing_allowed = null,
12150
  $plugin_id = null
12151
  ) {
12152
- return $this->activate_license(
 
 
12153
  $license_key,
12154
  $this->is_network_active() ?
12155
  $this->get_sites_for_network_level_optin() :
@@ -12158,6 +13000,11 @@
12158
  null,
12159
  $plugin_id
12160
  );
 
 
 
 
 
12161
  }
12162
 
12163
  /**
@@ -12171,6 +13018,7 @@
12171
  * @param null|bool $is_marketing_allowed
12172
  * @param null|int $blog_id
12173
  * @param null|number $plugin_id
 
12174
  *
12175
  * @return array {
12176
  * @var bool $success
@@ -12183,7 +13031,9 @@
12183
  $sites = array(),
12184
  $is_marketing_allowed = null,
12185
  $blog_id = null,
12186
- $plugin_id = null
 
 
12187
  ) {
12188
  $this->_logger->entrance();
12189
 
@@ -12198,12 +13048,27 @@
12198
  $this :
12199
  $this->get_addon_instance( $plugin_id );
12200
 
 
 
12201
  $error = false;
12202
  $next_page = false;
12203
 
12204
  $has_valid_blog_id = is_numeric( $blog_id );
12205
 
12206
- if ( $fs->is_registered() ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
12207
  if ( fs_is_network_admin() && ! $has_valid_blog_id ) {
12208
  // If no specific blog ID was provided, activate the license for all sites in the network.
12209
  $blog_2_install_map = array();
@@ -12214,7 +13079,7 @@
12214
  continue;
12215
  }
12216
 
12217
- $install = $this->get_install_by_blog_id( $site['blog_id'] );
12218
 
12219
  if ( is_object( $install ) ) {
12220
  $blog_2_install_map[ $site['blog_id'] ] = $install;
@@ -12223,10 +13088,8 @@
12223
  }
12224
  }
12225
 
12226
- $user = $this->get_current_or_network_user();
12227
-
12228
  if ( ! empty( $blog_2_install_map ) ) {
12229
- $result = $this->activate_license_on_many_installs( $user, $license_key, $blog_2_install_map );
12230
 
12231
  if ( true !== $result ) {
12232
  $error = FS_Api::is_api_error_object( $result ) ?
@@ -12236,7 +13099,7 @@
12236
  }
12237
 
12238
  if ( empty( $error ) && ! empty( $site_ids ) ) {
12239
- $result = $this->activate_license_on_many_sites( $user, $license_key, $site_ids );
12240
 
12241
  if ( true !== $result ) {
12242
  $error = FS_Api::is_api_error_object( $result ) ?
@@ -12252,31 +13115,67 @@
12252
  *
12253
  * @author Leo Fajardo (@leorw)
12254
  */
12255
- $this->switch_to_blog( $blog_id );
12256
  }
12257
 
12258
- $api = $fs->get_api_site_scope();
 
 
 
12259
 
12260
- $params = array(
12261
- 'license_key' => $fs->apply_filters( 'license_key', $license_key )
12262
- );
12263
 
12264
- $install = $api->call( $fs->add_show_pending( '/' ), 'put', $params );
12265
 
12266
- if ( FS_Api::is_api_error( $install ) ) {
12267
- $error = FS_Api::is_api_error_object( $install ) ?
12268
- $install->error->message :
12269
- var_export( $install->error, true );
12270
- } else {
12271
- $fs->reconnect_locally( $has_valid_blog_id );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12272
  }
12273
  }
12274
 
12275
  if ( empty( $error ) ) {
12276
- $this->network_upgrade_mode_completed();
12277
 
12278
  $fs->_sync_license( true, $has_valid_blog_id );
12279
 
 
 
12280
  $next_page = $fs->is_addon() ?
12281
  $fs->get_parent_instance()->get_account_url() :
12282
  $fs->get_account_url();
@@ -12325,17 +13224,17 @@
12325
  continue;
12326
  }
12327
 
12328
- if ( $this->is_installed_on_site( $blog_id ) ) {
12329
  // Site was already connected before.
12330
  continue;
12331
  }
12332
 
12333
- if ( $this->is_site_delegated_connection( $blog_id ) ) {
12334
  // Site's connection was delegated.
12335
  continue;
12336
  }
12337
 
12338
- if ( $this->is_anonymous_site( $blog_id ) ) {
12339
  // Site connection was already skipped.
12340
  continue;
12341
  }
@@ -12344,43 +13243,101 @@
12344
  }
12345
 
12346
  if ( ! empty( $pending_sites ) ) {
12347
- if ( $this->is_freemium() && $this->is_enable_anonymous() ) {
12348
- $this->skip_connection( $pending_sites );
12349
  } else {
12350
- $this->delegate_connection( $pending_sites );
12351
  }
12352
  }
12353
  }
12354
  }
12355
  }
12356
 
12357
- if ( false === $error && true === $this->_storage->require_license_activation ) {
12358
- $this->_storage->require_license_activation = false;
12359
  }
12360
 
12361
- $result = array(
12362
- 'success' => ( false === $error )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12363
  );
12364
 
12365
- if ( false !== $error ) {
12366
- $result['error'] = $this->apply_filters( 'opt_in_error_message', $error );
12367
- } else {
12368
- if ( $this->is_addon() || $this->has_addons() ) {
12369
- /**
12370
- * Purge the valid user licenses cache so that when the "Account" or the "Add-Ons" page is loaded,
12371
- * an updated valid user licenses collection will be fetched from the server which is used to also
12372
- * update the account add-ons (add-ons the user has licenses for).
12373
- *
12374
- * @author Leo Fajardo (@leorw)
12375
- * @since 2.2.4
12376
- */
12377
- $this->purge_valid_user_licenses_cache();
12378
  }
12379
 
12380
- $result['next_page'] = $next_page;
 
 
 
 
 
12381
  }
12382
 
12383
- return $result;
12384
  }
12385
 
12386
  /**
@@ -13409,9 +14366,8 @@
13409
  $page_param = $this->_menu->get_slug( $page );
13410
 
13411
  if ( empty( $page ) &&
13412
- $this->is_theme() &&
13413
  // Show the opt-in as an overlay for free wp.org themes or themes without any settings page.
13414
- ( $this->is_free_wp_org_theme() || ! $this->has_settings_menu() )
13415
  ) {
13416
  $params[ $this->get_unique_affix() . '_show_optin' ] = 'true';
13417
 
@@ -13841,10 +14797,12 @@
13841
  *
13842
  * @param int $blog_id
13843
  * @param FS_Site $install
 
 
13844
  */
13845
  function switch_to_blog( $blog_id, FS_Site $install = null ) {
13846
  if ( $blog_id == $this->_context_is_network_or_blog_id ) {
13847
- return;
13848
  }
13849
 
13850
  switch_to_blog( $blog_id );
@@ -13858,9 +14816,10 @@
13858
  $install :
13859
  $this->get_install_by_blog_id( $blog_id );
13860
 
13861
- $this->_user = false;
13862
- $this->_licenses = false;
13863
- $this->_license = null;
 
13864
 
13865
  if ( is_object( $this->_site ) ) {
13866
  // Try to fetch user from install.
@@ -13905,6 +14864,8 @@
13905
 
13906
  unset( $this->_site_api );
13907
  unset( $this->_user_api );
 
 
13908
  }
13909
 
13910
  /**
@@ -14350,6 +15311,18 @@
14350
  return ( $this->_menu->get_slug( $page ) === fs_request_get( 'page', '', 'get' ) );
14351
  }
14352
 
 
 
 
 
 
 
 
 
 
 
 
 
14353
  /**
14354
  * Get module's main admin setting page URL.
14355
  *
@@ -14370,8 +15343,22 @@
14370
  * @since 1.2.2.7
14371
  *
14372
  * @return bool
 
 
14373
  */
14374
  function is_theme_settings_page() {
 
 
 
 
 
 
 
 
 
 
 
 
14375
  return fs_starts_with(
14376
  fs_request_get( 'page', '', 'get' ),
14377
  $this->_menu->get_slug()
@@ -14791,7 +15778,7 @@
14791
  /**
14792
  * This is a special fault tolerance mechanism to handle a scenario that the user data is missing.
14793
  */
14794
- $user = $this->fetch_user_by_install();
14795
  }
14796
 
14797
  $this->_user = ( $user instanceof FS_User ) ?
@@ -14831,13 +15818,19 @@
14831
  * @author Vova Feldman (@svovaf)
14832
  * @since 2.0.0
14833
  *
 
 
14834
  * @return \FS_User|mixed
14835
  */
14836
- private function fetch_user_by_install() {
 
 
 
 
14837
  $api = $this->get_api_site_scope();
14838
 
14839
  $uid = $this->get_anonymous_id();
14840
- $request_path = "/users/{$this->_site->user_id}.json?uid={$uid}";
14841
 
14842
  $result = $api->get( $request_path, false, WP_FS__TIME_10_MIN_IN_SEC );
14843
 
@@ -14993,6 +15986,13 @@
14993
  'is_uninstalled' => false,
14994
  ) );
14995
 
 
 
 
 
 
 
 
14996
  if ( true === $network_level_or_blog_id ) {
14997
  if ( ! isset( $override_with['sites'] ) ) {
14998
  $params['sites'] = $this->get_sites_for_network_level_optin();
@@ -15088,9 +16088,12 @@
15088
  if ( ! $is_uninstall ) {
15089
  $fs_user = Freemius::_get_user_by_email( $email );
15090
  if ( is_object( $fs_user ) && ! $this->is_pending_activation() ) {
15091
- return $this->install_with_current_user(
 
15092
  false,
15093
  $trial_plan_id,
 
 
15094
  $sites
15095
  );
15096
  }
@@ -15257,6 +16260,9 @@
15257
  ( isset( $decoded->is_marketing_allowed ) && ! is_null( $decoded->is_marketing_allowed ) ?
15258
  $decoded->is_marketing_allowed :
15259
  null ),
 
 
 
15260
  $decoded->install_id,
15261
  $decoded->install_public_key,
15262
  $decoded->install_secret_key,
@@ -15270,6 +16276,9 @@
15270
  ( isset( $decoded->is_marketing_allowed ) && ! is_null( $decoded->is_marketing_allowed ) ?
15271
  $decoded->is_marketing_allowed :
15272
  null ),
 
 
 
15273
  $decoded->installs,
15274
  false
15275
  );
@@ -15361,7 +16370,7 @@
15361
  );
15362
 
15363
  if ( is_numeric( $first_install->license_id ) ) {
15364
- $this->_license = $this->_get_license_by_id( $first_install->license_id );
15365
  }
15366
 
15367
  $this->_admin_notices->remove_sticky( 'connect_account' );
@@ -15496,6 +16505,7 @@
15496
  fs_request_get( 'user_public_key' ),
15497
  fs_request_get( 'user_secret_key' ),
15498
  fs_request_get_bool( 'is_marketing_allowed', null ),
 
15499
  $pending_sites_info['blog_ids'],
15500
  $pending_sites_info['license_key'],
15501
  $pending_sites_info['trial_plan_id']
@@ -15506,6 +16516,7 @@
15506
  fs_request_get( 'user_public_key' ),
15507
  fs_request_get( 'user_secret_key' ),
15508
  fs_request_get_bool( 'is_marketing_allowed', null ),
 
15509
  fs_request_get( 'install_id' ),
15510
  fs_request_get( 'install_public_key' ),
15511
  fs_request_get( 'install_secret_key' ),
@@ -15561,13 +16572,12 @@
15561
  * @param string $user_public_key
15562
  * @param string $user_secret_key
15563
  * @param bool|null $is_marketing_allowed
 
15564
  * @param number $install_id
15565
  * @param string $install_public_key
15566
  * @param string $install_secret_key
15567
  * @param bool $redirect
15568
- * @param bool $auto_install Since 1.2.1.7 If `true` and setting up an account with a valid license, will
15569
- * redirect (or return a URL) to the account page with a special parameter to
15570
- * trigger the auto installation processes.
15571
  *
15572
  * @return string If redirect is `false`, returns the next page the user should be redirected to.
15573
  */
@@ -15576,6 +16586,7 @@
15576
  $user_public_key,
15577
  $user_secret_key,
15578
  $is_marketing_allowed,
 
15579
  $install_id,
15580
  $install_public_key,
15581
  $install_secret_key,
@@ -15617,6 +16628,10 @@
15617
  $this->disable_opt_in_notice_and_lock_user();
15618
  }
15619
 
 
 
 
 
15620
  return $this->setup_account(
15621
  $this->_user,
15622
  $this->_site,
@@ -15635,6 +16650,7 @@
15635
  * @param string $user_public_key
15636
  * @param string $user_secret_key
15637
  * @param bool|null $is_marketing_allowed
 
15638
  * @param array $site_ids
15639
  * @param bool $license_key
15640
  * @param bool $trial_plan_id
@@ -15647,6 +16663,7 @@
15647
  $user_public_key,
15648
  $user_secret_key,
15649
  $is_marketing_allowed,
 
15650
  $site_ids,
15651
  $license_key = false,
15652
  $trial_plan_id = false,
@@ -15658,6 +16675,10 @@
15658
  $this->disable_opt_in_notice_and_lock_user();
15659
  }
15660
 
 
 
 
 
15661
  $sites = array();
15662
  foreach ( $site_ids as $site_id ) {
15663
  $sites[] = $this->get_site_info( array( 'blog_id' => $site_id ) );
@@ -15676,11 +16697,10 @@
15676
  * @param string $user_public_key
15677
  * @param string $user_secret_key
15678
  * @param bool|null $is_marketing_allowed
 
15679
  * @param object[] $installs
15680
  * @param bool $redirect
15681
- * @param bool $auto_install Since 1.2.1.7 If `true` and setting up an account with a valid license, will
15682
- * redirect (or return a URL) to the account page with a special parameter to
15683
- * trigger the auto installation processes.
15684
  *
15685
  * @return string If redirect is `false`, returns the next page the user should be redirected to.
15686
  */
@@ -15689,6 +16709,7 @@
15689
  $user_public_key,
15690
  $user_secret_key,
15691
  $is_marketing_allowed,
 
15692
  array $installs,
15693
  $redirect = true,
15694
  $auto_install = false
@@ -15699,6 +16720,10 @@
15699
  $this->disable_opt_in_notice_and_lock_user();
15700
  }
15701
 
 
 
 
 
15702
  $install_ids = array();
15703
 
15704
  foreach ( $installs as $install ) {
@@ -15808,6 +16833,8 @@
15808
  */
15809
  $license_key = fs_request_get( 'license_secret_key' );
15810
 
 
 
15811
  $this->install_with_current_user( $license_key );
15812
  }
15813
  }
@@ -15852,7 +16879,7 @@
15852
  *
15853
  * @return \FS_Site|object|string If redirect is `false`, returns the next page the user should be redirected to, or the API error object if failed to install. If $setup_account is set to `false`, return the newly created install.
15854
  */
15855
- private function install_with_user(
15856
  FS_User $user,
15857
  $license_key = false,
15858
  $trial_plan_id = false,
@@ -15941,6 +16968,10 @@
15941
 
15942
  if ( ! empty( $license_key ) ) {
15943
  $extra_install_params['license_key'] = $this->apply_filters( 'license_key', $license_key );
 
 
 
 
15944
  } else if ( FS_Plugin_Plan::is_valid_id( $trial_plan_id ) ) {
15945
  $extra_install_params['trial_plan_id'] = $trial_plan_id;
15946
  }
@@ -15962,7 +16993,7 @@
15962
  ! $this->is_api_result_object( $result, 'installs' )
15963
  ) {
15964
  if ( ! empty( $args['license_key'] ) ) {
15965
- // Pass full the fully entered license key to the failure handler.
15966
  $args['license_key'] = $license_key;
15967
  }
15968
 
@@ -16339,7 +17370,7 @@
16339
  */
16340
  private function add_menu_action() {
16341
  if ( $this->is_activation_mode() ) {
16342
- if ( $this->is_plugin() || ( $this->has_settings_menu() && ! $this->is_free_wp_org_theme() ) ) {
16343
  $this->override_plugin_menu_with_activation();
16344
  } else {
16345
  /**
@@ -16361,7 +17392,7 @@
16361
  }
16362
  } else if (
16363
  fs_request_is_action( 'sync_user' ) &&
16364
- ( ! $this->has_settings_menu() || $this->is_free_wp_org_theme() )
16365
  ) {
16366
  $this->_handle_account_user_sync();
16367
  }
@@ -16609,7 +17640,7 @@
16609
  // Didn't ask to hide the pricing page.
16610
  $this->is_page_visible( 'pricing' ) &&
16611
  // Don't have a valid active license or has more than one plan.
16612
- ( ! $this->is_paying() || ! $this->is_single_plan() )
16613
  );
16614
  }
16615
 
@@ -16627,12 +17658,13 @@
16627
  return false;
16628
  }
16629
 
16630
- if ( $this->is_free_wp_org_theme() && ! fs_is_network_admin() ) {
16631
- // Also add action links or submenu items when running in a free .org theme so the tabs will be visible.
16632
- return true;
16633
- }
16634
-
16635
- if ( $is_activation_mode && ! $this->is_free_wp_org_theme() ) {
 
16636
  return false;
16637
  }
16638
 
@@ -16712,17 +17744,19 @@
16712
  }
16713
 
16714
  if ( $add_submenu_items ) {
16715
- // Add contact page.
16716
- $this->add_submenu_item(
16717
- $this->get_text_inline( 'Contact Us', 'contact-us' ),
16718
- array( &$this, '_contact_page_render' ),
16719
- $this->get_plugin_name() . ' &ndash; ' . $this->get_text_inline( 'Contact Us', 'contact-us' ),
16720
- 'manage_options',
16721
- 'contact',
16722
- 'Freemius::_clean_admin_content_section',
16723
- WP_FS__DEFAULT_PRIORITY,
16724
- $this->is_submenu_item_visible( 'contact' )
16725
- );
 
 
16726
 
16727
  if ( $this->has_addons() ) {
16728
  $this->add_submenu_item(
@@ -16741,7 +17775,7 @@
16741
  if ( $add_submenu_items ||
16742
  ( $is_activation_mode && $this->is_only_premium() && $this->is_admin_page( 'pricing' ) )
16743
  ) {
16744
- if ( ! WP_FS__DEMO_MODE ) {
16745
  $show_pricing = (
16746
  $this->is_submenu_item_visible( 'pricing' ) &&
16747
  $this->is_pricing_page_visible()
@@ -17106,6 +18140,24 @@
17106
 
17107
  #endregion ------------------------------------------------------------------
17108
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17109
 
17110
  #--------------------------------------------------------------------------------
17111
  #region Actions / Hooks / Filters
@@ -17482,37 +18534,44 @@
17482
  private function _store_site( $store = true, $network_level_or_blog_id = null, FS_Site $site = null ) {
17483
  $this->_logger->entrance();
17484
 
17485
- if ( empty( $this->_site->id ) ) {
 
 
 
 
17486
  $this->_logger->error( "Empty install ID, can't store site." );
17487
 
17488
  return;
17489
  }
17490
 
17491
- $site_clone = is_object( $site ) ? $site : $this->_site;
17492
- $encrypted_site = clone $site_clone;
17493
 
17494
  $sites = self::get_all_sites( $this->_module_type, $network_level_or_blog_id );
17495
 
17496
- $prev_stored_user_id = $this->_storage->get( 'prev_user_id', false, $network_level_or_blog_id );
 
17497
 
17498
- if ( empty( $prev_stored_user_id ) &&
17499
- $this->_user->id != $this->_site->user_id
17500
- ) {
17501
- /**
17502
- * Store the current user ID as the previous user ID so that the previous user can be used
17503
- * as the install's owner while the new owner's details are not yet available.
17504
- *
17505
- * This will be executed only in the `replica` site. For example, there are 2 sites, namely `original`
17506
- * and `replica`, then an ownership change was initiated and completed in the `original`, the `replica`
17507
- * will be using the previous user until it is updated again (e.g.: until the next clone of `original`
17508
- * into `replica`.
17509
- *
17510
- * @author Leo Fajardo (@leorw)
17511
- */
17512
- $this->_storage->store( 'prev_user_id', $sites[ $this->_slug ]->user_id, $network_level_or_blog_id );
 
 
 
17513
  }
17514
 
17515
- $sites[ $this->_slug ] = $encrypted_site;
17516
 
17517
  $this->set_account_option( 'sites', $sites, $store, $network_level_or_blog_id );
17518
  }
@@ -17722,6 +18781,10 @@
17722
  * @since 2.2.4
17723
  */
17724
  private function purge_valid_user_licenses_cache() {
 
 
 
 
17725
  $this->get_api_user_scope()->purge_cache( $this->get_valid_user_licenses_endpoint() );
17726
  }
17727
 
@@ -18380,6 +19443,88 @@
18380
  return self::is_active_valid_license( $this->_license );
18381
  }
18382
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18383
  /**
18384
  * Check if a given license is active & valid (not expired).
18385
  *
@@ -18694,7 +19839,7 @@
18694
  } else {
18695
  // Authentication params are broken.
18696
  $this->_admin_notices->add(
18697
- $this->get_text_inline( 'It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again.', 'wrong-authentication-param-message' ),
18698
  $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
18699
  'error'
18700
  );
@@ -18861,12 +20006,32 @@
18861
  $this->get_network_install_blog_id()
18862
  );
18863
  } else {
18864
- if ( is_object( $this->_license ) && $this->_license->is_expired() ) {
18865
- if ( ! $this->has_features_enabled_license() ) {
18866
- $this->_deactivate_license();
18867
- $plan_change = 'downgraded';
18868
- } else {
18869
- $plan_change = 'expired';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18870
  }
18871
  }
18872
 
@@ -18890,7 +20055,7 @@
18890
 
18891
  $hmm_text = $this->get_text_x_inline( 'Hmm', 'something somebody says when they are thinking about what you have just said.', 'hmm' ) . '...';
18892
 
18893
- if ( $this->has_paid_plan() ) {
18894
  switch ( $plan_change ) {
18895
  case 'none':
18896
  if ( ! $background && is_admin() ) {
@@ -18983,6 +20148,9 @@
18983
  'license_expired',
18984
  $hmm_text
18985
  );
 
 
 
18986
  $this->_admin_notices->remove_sticky( 'plan_upgraded' );
18987
  break;
18988
  case 'trial_started':
@@ -19037,7 +20205,8 @@
19037
  * @author Vova Feldman (@svovaf)
19038
  * @since 1.0.5
19039
  *
19040
- * @param bool $background
 
19041
  */
19042
  protected function _activate_license( $background = false, $premium_license = null ) {
19043
  $this->_logger->entrance();
@@ -19231,7 +20400,11 @@
19231
 
19232
  if ( $show_notice ) {
19233
  $this->_admin_notices->add(
19234
- sprintf( $this->get_text_inline( 'Your license was successfully deactivated, you are back to the %s plan.', 'license-deactivation-message' ), $this->get_plan_title() ),
 
 
 
 
19235
  $this->get_text_inline( 'O.K', 'ok' )
19236
  );
19237
  }
@@ -19844,7 +21017,7 @@
19844
 
19845
  $api = $this->get_api_site_or_plugin_scope();
19846
 
19847
- $path = $this->add_show_pending( '/addons.json?enriched=true' );
19848
 
19849
  /**
19850
  * @since 1.2.1
@@ -20038,6 +21211,39 @@
20038
  return true;
20039
  }
20040
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20041
  /**
20042
  * Handle user name update.
20043
  *
@@ -20151,7 +21357,7 @@
20151
  * @return string
20152
  */
20153
  function get_after_activation_url( $filter, $params = array(), $network = null ) {
20154
- if ( $this->is_free_wp_org_theme() &&
20155
  ( fs_request_has( 'pending_activation' ) ||
20156
  // For cases when the first time path is set, even though it's a WP.org theme.
20157
  fs_request_get_bool( $this->get_unique_affix() . '_show_optin' ) )
@@ -20206,8 +21412,9 @@
20206
  // Alias.
20207
  $oops_text = $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...';
20208
 
20209
- $is_network_action = $this->is_network_level_action();
20210
- $blog_id = $this->is_network_level_site_specific_action();
 
20211
 
20212
  if ( is_numeric( $blog_id ) ) {
20213
  $this->switch_to_blog( $blog_id );
@@ -20219,7 +21426,7 @@
20219
  case 'opt_in':
20220
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
20221
 
20222
- if ( $plugin_id == $this->get_id() ) {
20223
  if ( $is_network_action && ! empty( $blog_id ) ) {
20224
  if ( ! $this->is_registered() ) {
20225
  $this->install_with_user(
@@ -20242,7 +21449,7 @@
20242
  case 'toggle_tracking':
20243
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
20244
 
20245
- if ( $plugin_id == $this->get_id() ) {
20246
  if ( $is_network_action && ! empty( $blog_id ) ) {
20247
  if ( $this->is_registered() ) {
20248
  if ( $this->is_tracking_prohibited() ) {
@@ -20277,8 +21484,20 @@
20277
  case 'delete_account':
20278
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
20279
 
20280
- if ( $plugin_id == $this->get_id() ) {
20281
- if ( $is_network_action && empty( $blog_id ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
20282
  $this->delete_network_account_event();
20283
  } else {
20284
  $this->delete_account_event();
@@ -20294,7 +21513,12 @@
20294
  } else {
20295
  if ( $this->is_addon_activated( $plugin_id ) ) {
20296
  $fs_addon = self::get_instance_by_id( $plugin_id );
20297
- $fs_addon->delete_account_event();
 
 
 
 
 
20298
 
20299
  fs_redirect( $this->_get_admin_page_url( 'account' ) );
20300
  }
@@ -20894,6 +22118,26 @@
20894
  return $this->_plugin_api;
20895
  }
20896
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20897
  /**
20898
  * Get site API scope object (fallback to public plugin scope when not registered).
20899
  *
@@ -21227,7 +22471,7 @@
21227
  function _show_theme_activation_optin_dialog() {
21228
  fs_enqueue_local_style( 'fs_connect', '/admin/connect.css' );
21229
 
21230
- add_action( 'admin_footer-themes.php', array( &$this, '_add_fs_theme_activation_dialog' ) );
21231
  }
21232
 
21233
  /**
@@ -21235,6 +22479,12 @@
21235
  * @since 1.2.2
21236
  */
21237
  function _add_fs_theme_activation_dialog() {
 
 
 
 
 
 
21238
  $vars = array( 'id' => $this->_module_id );
21239
  fs_require_once_template( 'connect.php', $vars );
21240
  }
@@ -21322,7 +22572,7 @@
21322
  $add_upgrade_link = (
21323
  $add_action_links ||
21324
  ( $is_activation_mode && $this->is_only_premium() )
21325
- ) && ! WP_FS__DEMO_MODE;
21326
 
21327
  $add_addons_link = ( $add_action_links && $this->has_addons() );
21328
 
@@ -21411,6 +22661,20 @@
21411
 
21412
  $this->_logger->entrance();
21413
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21414
  if ( fs_is_network_admin() ) {
21415
  if ( ! $this->_is_network_active ) {
21416
  // Don't add tracking links when browsing the network WP Admin and the plugin is not network active.
@@ -21461,6 +22725,10 @@
21461
  return;
21462
  }
21463
 
 
 
 
 
21464
  $link_text_id = '';
21465
  $url = '#';
21466
 
@@ -21470,8 +22738,6 @@
21470
  } else {
21471
  $link_text_id = $this->get_text_inline( 'Opt In', 'opt-in' );
21472
  }
21473
-
21474
- add_action( 'admin_footer', array( &$this, '_add_optout_dialog' ) );
21475
  } else if ( $this->is_anonymous() || $this->is_activation_mode() ) {
21476
  /**
21477
  * Show opt-in link only if skipped or in activation mode.
@@ -21488,6 +22754,8 @@
21488
  $url = $this->get_activation_url( $params );
21489
  }
21490
 
 
 
21491
  if ( ! empty( $link_text_id ) && $this->is_plugin() && self::is_plugins_page() ) {
21492
  $this->add_plugin_action_link(
21493
  $link_text_id,
@@ -22177,7 +23445,7 @@
22177
  function _tabs_capture() {
22178
  $this->_logger->entrance();
22179
 
22180
- if ( ! $this->is_theme_settings_page() ||
22181
  ! $this->is_matching_url( $this->main_menu_url() )
22182
  ) {
22183
  return;
@@ -22232,7 +23500,7 @@
22232
  function _store_tabs_styles() {
22233
  $this->_logger->entrance();
22234
 
22235
- if ( ! $this->is_theme_settings_page() ||
22236
  ! $this->is_matching_url( $this->main_menu_url() )
22237
  ) {
22238
  return;
@@ -22306,18 +23574,23 @@
22306
  return false;
22307
  }
22308
 
22309
- if ( ! $this->is_theme() ) {
22310
  // Only add tabs to themes for now.
22311
  return false;
22312
  }
22313
 
22314
- if ( ! $this->has_paid_plan() && ! $this->has_addons() ) {
22315
  // Only add tabs to monetizing themes.
22316
  return false;
22317
  }
22318
 
22319
- if ( ! $this->is_theme_settings_page() ) {
22320
- // Only add tabs if browsing one of the theme's setting pages.
 
 
 
 
 
22321
  return false;
22322
  }
22323
 
@@ -23004,8 +24277,8 @@
23004
  }
23005
 
23006
  $modules = array_merge(
23007
- array_values( self::$_accounts->get_option( 'plugins', array() ) ),
23008
- array_values( self::$_accounts->get_option( 'themes', array() ) )
23009
  );
23010
 
23011
  foreach ( $modules as $module ) {
@@ -23110,10 +24383,45 @@
23110
  *
23111
  * @author Vova Feldman (@svovaf)
23112
  */
23113
- self::shoot_ajax_success( array( 'is_marketing_allowed' => null ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23114
  }
23115
 
23116
- self::shoot_ajax_success( array( 'is_marketing_allowed' => $user_plugins[0]->is_marketing_allowed ) );
23117
  }
23118
 
23119
  /**
@@ -23149,8 +24457,8 @@
23149
  }
23150
 
23151
  $modules = array_merge(
23152
- array_values( self::$_accounts->get_option( 'plugins', array() ) ),
23153
- array_values( self::$_accounts->get_option( 'themes', array() ) )
23154
  );
23155
 
23156
  foreach ( $modules as $key => $module ) {
164
  */
165
  private $_has_addons;
166
 
167
+ /**
168
+ * @since 2.4.5
169
+ * @var string Navigation type: 'menu' or 'tabs'.
170
+ */
171
+ private $_navigation;
172
+
173
+ const NAVIGATION_MENU = 'menu';
174
+ const NAVIGATION_TABS = 'tabs';
175
+
176
  /**
177
  * @since 1.1.6
178
  * @var string[]bool.
343
  */
344
  private $_dynamically_added_top_level_page_hook_name = '';
345
 
346
+ /**
347
+ * @author Leo Fajardo (@leorw)
348
+ * @since 2.3.1
349
+ *
350
+ * @var bool
351
+ */
352
+ private $is_whitelabeled;
353
+
354
  #region Uninstall Reasons IDs
355
 
356
  const REASON_NO_LONGER_NEEDED = 1;
501
  );
502
 
503
  if ( 'true' === fs_request_get( 'fs_clear_api_cache' ) ||
504
+ fs_request_is_action( 'restart_freemius' )
505
  ) {
506
  FS_Api::clear_cache();
507
  $this->_cache->clear();
508
  }
509
 
510
+ $this->register_constructor_hooks();
511
 
512
  /**
513
  * Starting from version 2.0.0, `FS_Site` entities no longer have the `plan` property and have `plan_id`
719
  $this->_menu->has_menu();
720
  }
721
 
722
+ /**
723
+ * If `true` the opt-in should be shown as a modal dialog box on the themes.php page. WordPress.org themes guidelines prohibit from redirecting the user from the themes.php page after activating a theme.
724
+ *
725
+ * @author Vova Feldman (@svovaf)
726
+ * @since 2.4.5
727
+ *
728
+ * @return bool
729
+ */
730
+ function show_opt_in_on_themes_page() {
731
+ if ( ! $this->is_free_wp_org_theme() ) {
732
+ return false;
733
+ }
734
+
735
+ if ( ! $this->has_settings_menu() ) {
736
+ return true;
737
+ }
738
+
739
+ return $this->show_settings_with_tabs();
740
+ }
741
+
742
+ /**
743
+ * If `true` the opt-in should be shown on the product's main setting page.
744
+ *
745
+ * @author Vova Feldman (@svovaf)
746
+ * @since 2.4.5
747
+ *
748
+ * @return bool
749
+ *
750
+ * @uses show_opt_in_on_themes_page();
751
+ */
752
+ function show_opt_in_on_setting_page() {
753
+ return ! $this->show_opt_in_on_themes_page();
754
+ }
755
+
756
+ /**
757
+ * If `true` the settings should be shown using tabs.
758
+ *
759
+ * @author Vova Feldman (@svovaf)
760
+ * @since 2.4.5
761
+ *
762
+ * @return bool
763
+ */
764
+ function show_settings_with_tabs() {
765
+ return ( self::NAVIGATION_TABS === $this->_navigation );
766
+ }
767
+
768
  /**
769
  * Check if the context module is free wp.org theme.
770
  *
797
  * @since 1.2.2.7 Even if the menu item was specified to be hidden, when it is the context page, then show the submenu item so the user will have the right context page.
798
  *
799
  * @param string $slug
800
+ * @param bool $is_tabs_visibility_check This is used to decide if the associated tab should be shown or hidden.
 
801
  *
802
  * @return bool
803
  */
804
+ function is_submenu_item_visible( $slug, $is_tabs_visibility_check = false ) {
805
  if ( $this->is_admin_page( $slug ) ) {
806
  /**
807
  * It is the current context page, so show the submenu item
816
  return false;
817
  }
818
 
819
+ if ( ! $is_tabs_visibility_check && $this->show_settings_with_tabs() ) {
820
  /**
821
  * wp.org themes are limited to a single submenu item, and
822
  * sub-submenu items are most likely not allowed (never verified).
1042
  }
1043
 
1044
  if ( isset( $this->_storage->subscription ) && is_object( $this->_storage->subscription ) ) {
1045
+ $this->_storage->subscriptions = array( fs_get_entity( $this->_storage->subscription, FS_Subscription::get_class_name() ) );
1046
  }
1047
  }
1048
 
1515
  * @author Vova Feldman (@svovaf)
1516
  * @since 1.0.9
1517
  */
1518
+ private function register_constructor_hooks() {
1519
  $this->_logger->entrance();
1520
 
1521
  if ( is_admin() ) {
1522
+ add_action( 'admin_init', array( &$this, '_hook_action_links_and_register_account_hooks' ) );
1523
 
1524
  if ( $this->is_plugin() ) {
1525
  if ( self::is_plugin_install_page() && true !== fs_request_get_bool( 'fs_allow_updater_and_dialog' ) ) {
1560
  } else {
1561
  add_action( 'after_switch_theme', array( &$this, '_activate_theme_event_hook' ), 10, 2 );
1562
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1563
  add_action( 'admin_footer', array( &$this, '_style_premium_theme' ) );
1564
  }
1565
 
1579
  *
1580
  * @author Vova Feldman (@svovaf)
1581
  */
1582
+ if ( $this->is_plugin() &&
1583
+ $this->is_activation_mode( false ) &&
1584
+ 0 == did_action( 'plugins_loaded' )
1585
+ ) {
1586
  add_action( 'plugins_loaded', array( &$this, '_plugins_loaded' ) );
1587
  } else {
1588
  // If was activated before, then it was already loaded before.
1639
  add_action( 'admin_init', array( &$this, '_add_license_activation' ) );
1640
  add_action( 'admin_init', array( &$this, '_add_premium_version_upgrade_selection' ) );
1641
  add_action( 'admin_init', array( &$this, '_add_beta_mode_update_handler' ) );
1642
+ add_action( 'admin_init', array( &$this, '_add_user_change_option' ) );
1643
 
1644
  $this->add_ajax_action( 'update_billing', array( &$this, '_update_billing_ajax_action' ) );
1645
  $this->add_ajax_action( 'start_trial', array( &$this, '_start_trial_ajax_action' ) );
1646
+ $this->add_ajax_action( 'set_data_debug_mode', array( &$this, '_set_data_debug_mode' ) );
1647
 
1648
  if ( $this->_is_network_active && fs_is_network_admin() ) {
1649
  $this->add_ajax_action( 'network_activate', array( &$this, '_network_activate_ajax_action' ) );
1685
  }
1686
  }
1687
 
1688
+ /**
1689
+ * Register the required hooks right after the settings parse is completed.
1690
+ *
1691
+ * @author Vova Feldman (@svovaf)
1692
+ * @since 2.3.1
1693
+ */
1694
+ private function register_after_settings_parse_hooks() {
1695
+ if ( is_admin() &&
1696
+ $this->is_theme() &&
1697
+ $this->is_premium() &&
1698
+ ! $this->has_active_valid_license()
1699
+ ) {
1700
+ $this->add_ajax_action(
1701
+ 'delete_theme_update_data',
1702
+ array( &$this, '_delete_theme_update_data_action' )
1703
+ );
1704
+ }
1705
+
1706
+ if ( $this->show_settings_with_tabs() ) {
1707
+ /**
1708
+ * Include the required hooks to capture the theme settings' page tabs
1709
+ * and cache them.
1710
+ *
1711
+ * @author Vova Feldman (@svovaf)
1712
+ * @since 1.2.2.7
1713
+ */
1714
+ if ( ! $this->_cache->has_valid( 'tabs' ) ) {
1715
+ add_action( 'admin_footer', array( &$this, '_tabs_capture' ) );
1716
+ // Add license activation AJAX callback.
1717
+ $this->add_ajax_action( 'store_tabs', array( &$this, '_store_tabs_ajax_action' ) );
1718
+
1719
+ add_action( 'admin_enqueue_scripts', array( &$this, '_store_tabs_styles' ), 9999999 );
1720
+ }
1721
+
1722
+ add_action(
1723
+ 'admin_footer',
1724
+ array( &$this, '_add_freemius_tabs' ),
1725
+ /**
1726
+ * The tabs JS code must be executed after the tabs capture logic (_tabs_capture()).
1727
+ * That's why the priority is 11 while the tabs capture logic is added
1728
+ * with priority 10.
1729
+ *
1730
+ * @author Vova Feldman (@svovaf)
1731
+ */
1732
+ 11
1733
+ );
1734
+ }
1735
+
1736
+ if ( ! self::is_ajax() ) {
1737
+ if ( ! $this->is_addon() || $this->is_only_premium() ) {
1738
+ add_action(
1739
+ ( $this->_is_network_active && fs_is_network_admin() ? 'network_' : '' ) . 'admin_menu',
1740
+ array( &$this, '_prepare_admin_menu' ),
1741
+ WP_FS__LOWEST_PRIORITY
1742
+ );
1743
+ }
1744
+ }
1745
+ }
1746
+
1747
  /**
1748
  * Makes Freemius-related updates unavailable on the "Add Plugins" admin page (/plugin-install.php) so that
1749
  * they won't interfere with the .org plugins' functionalities on that page (e.g. updating of a .org plugin).
2006
  * @since 2.0.0
2007
  */
2008
  function _hook_action_links_and_register_account_hooks() {
2009
+ $this->_add_tracking_links();
2010
 
2011
  if ( self::is_plugins_page() && $this->is_plugin() ) {
2012
  $this->hook_plugin_action_links();
2348
 
2349
  if ( ! isset( $caller_map[ $caller_file_hash ] ) ) {
2350
  foreach ( $all_plugins_paths as $plugin_path ) {
2351
+ if ( empty( $plugin_path ) ) {
2352
+ continue;
2353
+ }
2354
+
2355
  if ( false !== strpos( $caller_file_path, fs_normalize_path( dirname( $plugin_path ) . '/' ) ) ) {
2356
  $caller_map[ $caller_file_hash ] = fs_normalize_path( $plugin_path );
2357
  break;
3030
  * @return bool
3031
  */
3032
  function is_activation_page() {
3033
+ if ( $this->_menu->is_activation_page( $this->show_opt_in_on_themes_page() ) ) {
3034
  return true;
3035
  }
3036
 
4732
 
4733
  $this->parse_settings( $plugin_info );
4734
 
4735
+ $this->register_after_settings_parse_hooks();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4736
 
4737
  if ( $this->should_stop_execution() ) {
4738
  return;
4890
  if (
4891
  $this->_parent->is_registered() &&
4892
  ! $this->is_registered() &&
4893
+ $this->has_free_plan() &&
4894
  /**
4895
  * If not registered for add-on and the following conditions for the add-on are met, activate add-on account.
4896
  * * Network active and in network admin - network activate add-on account.
5408
  }
5409
  }
5410
 
5411
+ /**
5412
+ * @author Vova Feldman (@svovaf)
5413
+ * @since 2.3.2
5414
+ *
5415
+ * @return bool
5416
+ */
5417
+ function is_extensions_tracking_allowed() {
5418
+ return (true === $this->_storage->get( 'is_extensions_tracking_allowed', true ) );
5419
+ }
5420
+
5421
+ /**
5422
+ * @author Vova Feldman (@svovaf)
5423
+ * @since 2.3.2
5424
+ */
5425
+ function _update_tracking_permission_callback() {
5426
+ $this->_logger->entrance();
5427
+
5428
+ $this->check_ajax_referer( 'update_tracking_permission' );
5429
+
5430
+ $is_enabled = fs_request_get_bool( 'is_enabled', null );
5431
+
5432
+ if ( ! is_bool( $is_enabled ) ) {
5433
+ self::shoot_ajax_failure();
5434
+ }
5435
+
5436
+ $permission = fs_request_get( 'permission' );
5437
+
5438
+ switch ( $permission ) {
5439
+ case 'extensions':
5440
+ $this->update_extensions_tracking_flag( $is_enabled );
5441
+ break;
5442
+ default:
5443
+ $permission = 'no_match';
5444
+ }
5445
+
5446
+ if ( 'no_match' === $permission ) {
5447
+ self::shoot_ajax_failure();
5448
+ }
5449
+
5450
+ self::shoot_ajax_success( array(
5451
+ 'permissions' => array(
5452
+ $permission => $is_enabled,
5453
+ )
5454
+ ) );
5455
+ }
5456
+
5457
+ /**
5458
+ * @author Leo Fajardo (@leorw)
5459
+ * @since 2.3.2
5460
+ *
5461
+ * @param bool $is_enabled
5462
+ */
5463
+ private function update_extensions_tracking_flag( $is_enabled ) {
5464
+ $this->_storage->store( 'is_extensions_tracking_allowed', $is_enabled );
5465
+ }
5466
+
5467
  /**
5468
  * Parse plugin's settings (as defined by the plugin dev).
5469
  *
5540
  'is_live' => $this->get_bool_option( $plugin_info, 'is_live', true ),
5541
  'affiliate_moderation' => $this->get_option( $plugin_info, 'has_affiliation' ),
5542
  'bundle_id' => $this->get_option( $plugin_info, 'bundle_id', null ),
5543
+ 'bundle_public_key' => $this->get_option( $plugin_info, 'bundle_public_key', null ),
5544
  ) );
5545
 
5546
  if ( $plugin->is_updated() ) {
5612
 
5613
  $this->_is_trial_require_payment = $this->get_bool_option( $plugin_info['trial'], 'is_require_payment', false );
5614
  }
5615
+
5616
+ $this->_navigation = $this->get_option(
5617
+ $plugin_info,
5618
+ 'navigation',
5619
+ $this->is_free_wp_org_theme() ?
5620
+ self::NAVIGATION_TABS :
5621
+ self::NAVIGATION_MENU
5622
+ );
5623
  }
5624
 
5625
  /**
5972
  * @return Freemius[]
5973
  */
5974
  function get_installed_addons() {
5975
+ if ( $this->is_addon() ) {
5976
+ // Add-on cannot have add-ons.
5977
+ return array();
5978
+ }
5979
+
5980
  $installed_addons = array();
5981
+
5982
  foreach ( self::$_instances as $instance ) {
5983
+ if ( $instance->is_addon_of( $this->_plugin->id ) ) {
5984
+ $installed_addons[] = $instance;
 
 
5985
  }
5986
  }
5987
 
6031
  * @return bool
6032
  */
6033
  function is_addon() {
6034
+ return (
6035
+ isset( $this->_plugin->parent_plugin_id ) &&
6036
+ is_numeric( $this->_plugin->parent_plugin_id )
6037
+ );
6038
+ }
6039
+
6040
+ /**
6041
+ * @author Vova Feldman (@svovaf)
6042
+ * @since 2.3.2
6043
+ *
6044
+ * @param number $parent_product_id
6045
+ *
6046
+ * @return bool
6047
+ */
6048
+ function is_addon_of( $parent_product_id ) {
6049
+ return (
6050
+ $this->is_addon() &&
6051
+ $parent_product_id == $this->_plugin->parent_plugin_id
6052
+ );
6053
  }
6054
 
6055
  /**
6806
  } else {
6807
  $this->sync_install();
6808
  }
6809
+
6810
+ $this->maybe_sync_install_user();
6811
  }
6812
  }
6813
  }
7020
  } else {
7021
  $this->sync_install( array(), true );
7022
  }
7023
+
7024
+ $this->maybe_sync_install_user();
7025
  }
7026
  }
7027
 
7116
 
7117
  $this->_add_upgrade_action_link();
7118
 
7119
+ if ( ! ( ! $this->_is_network_active && fs_is_network_admin() ) &&
 
7120
  (
7121
  ( true === $this->_storage->require_license_activation ) ||
7122
  // Not registered nor anonymous.
7126
  )
7127
  ) {
7128
  if ( ! $this->is_pending_activation() ) {
7129
+ if ( ! $this->_menu->is_activation_page( $this->show_opt_in_on_themes_page() ) ) {
7130
  /**
7131
  * If a user visits any other admin page before activating the premium-only theme with a valid
7132
  * license, reactivate the previous theme.
7193
  }
7194
  }
7195
 
7196
+ if ( $this->show_opt_in_on_themes_page() &&
7197
+ $this->is_activation_page()
7198
  ) {
7199
  $this->_show_theme_activation_optin_dialog();
7200
  }
7959
  *
7960
  * @return array
7961
  */
7962
+ function get_sites_for_network_level_optin() {
7963
  $sites = array();
7964
  $all_sites = self::get_sites();
7965
 
8089
  foreach ( $sites as $site ) {
8090
  $blog_id = self::get_site_blog_id( $site );
8091
 
8092
+ if ( $this->is_site_delegated_connection( $blog_id ) ) {
8093
+ continue;
8094
+ }
8095
+
8096
  $install_id = $this->_delete_site( true, $blog_id );
8097
 
8098
  // Clear all storage data.
8870
  $include_themes = true,
8871
  $include_blog_data = true
8872
  ) {
8873
+ if ( $this->is_extensions_tracking_allowed() ) {
8874
+ if ( ! defined( 'WP_FS__TRACK_PLUGINS' ) || false !== WP_FS__TRACK_PLUGINS ) {
8875
+ /**
8876
+ * @since 1.1.8 Also send plugin updates.
8877
+ */
8878
+ if ( $include_plugins && ! isset( $override['plugins'] ) ) {
8879
+ $plugins = $this->get_plugins_data_for_api();
8880
+ if ( ! empty( $plugins ) ) {
8881
+ $override['plugins'] = $plugins;
8882
+ }
8883
  }
8884
  }
 
8885
 
8886
+ if ( ! defined( 'WP_FS__TRACK_THEMES' ) || false !== WP_FS__TRACK_THEMES ) {
8887
+ /**
8888
+ * @since 1.1.8 Also send themes updates.
8889
+ */
8890
+ if ( $include_themes && ! isset( $override['themes'] ) ) {
8891
+ $themes = $this->get_themes_data_for_api();
8892
+ if ( ! empty( $themes ) ) {
8893
+ $override['themes'] = $themes;
8894
+ }
8895
  }
8896
  }
8897
  }
9247
  }
9248
  }
9249
 
9250
+ /**
9251
+ * Syncs the install owner's data if needed (i.e., if the install owner is different from the loaded user).
9252
+ *
9253
+ * @author Leo Fajardo (@leorw)
9254
+ * @since 2.3.2
9255
+ */
9256
+ private function maybe_sync_install_user() {
9257
+ if ( $this->_user->id == $this->_site->user_id ) {
9258
+ return;
9259
+ }
9260
+
9261
+ // Fetch user data and store if found.
9262
+ $this->sync_user_by_current_install();
9263
+ }
9264
+
9265
  /**
9266
  * Update install only if changed.
9267
  *
9545
  $fs = self::get_instance_by_file( $plugin_file );
9546
 
9547
  if ( is_object( $fs ) ) {
9548
+ $fs->remove_sdk_reference();
9549
+
9550
  self::require_plugin_essentials();
9551
 
9552
  if ( is_plugin_active( $fs->_free_plugin_basename ) ||
9598
  * @author Vova Feldman (@svovaf)
9599
  * @since 1.0.1
9600
  *
9601
+ * @param bool $reparse_plugin_metadata
9602
+ *
9603
  * @return array
9604
  */
9605
+ function get_plugin_data( $reparse_plugin_metadata = false ) {
9606
+ if ( ! isset( $this->_plugin_data ) || $reparse_plugin_metadata ) {
9607
  self::require_plugin_essentials();
9608
 
9609
  if ( $this->is_plugin() ) {
9708
  null;
9709
  }
9710
 
9711
+ /**
9712
+ * @author Vova Feldman (@svovaf)
9713
+ * @since 2.3.1
9714
+ *
9715
+ * @return string|null Bundle public key.
9716
+ */
9717
+ function get_bundle_public_key() {
9718
+ return isset( $this->_plugin->bundle_public_key ) ?
9719
+ $this->_plugin->bundle_public_key :
9720
+ null;
9721
+ }
9722
+
9723
  /**
9724
  * @author Vova Feldman (@svovaf)
9725
  * @since 1.2.1.5
9742
  $this->_plugin->id;
9743
  }
9744
 
9745
+ /**
9746
+ * @author Vova Feldman (@svovaf)
9747
+ * @since 2.3.1
9748
+ *
9749
+ * @return string
9750
+ */
9751
+ function get_usage_tracking_terms_url() {
9752
+ return $this->apply_filters(
9753
+ 'usage_tracking_terms_url',
9754
+ "https://freemius.com/wordpress/usage-tracking/{$this->_plugin->id}/{$this->_slug}/"
9755
+ );
9756
+ }
9757
+
9758
+ /**
9759
+ * @author Vova Feldman (@svovaf)
9760
+ * @since 2.3.1
9761
+ *
9762
+ * @return string
9763
+ */
9764
+ function get_eula_url() {
9765
+ return $this->apply_filters(
9766
+ 'eula_url',
9767
+ "https://freemius.com/terms/{$this->_plugin->id}/{$this->_slug}/"
9768
+ );
9769
+ }
9770
+
9771
  /**
9772
  * @author Vova Feldman (@svovaf)
9773
  * @since 1.0.1
9867
  * @author Vova Feldman (@svovaf)
9868
  * @since 1.0.0
9869
  *
9870
+ * @param bool $reparse_plugin_metadata
9871
+ *
9872
  * @return string
9873
  */
9874
+ function get_plugin_version( $reparse_plugin_metadata = false ) {
9875
  $this->_logger->entrance();
9876
 
9877
+ $plugin_data = $this->get_plugin_data( $reparse_plugin_metadata );
9878
 
9879
  $this->_logger->departure( 'Version = ' . $plugin_data['Version'] );
9880
 
9999
  * @return array[number]FS_User
10000
  */
10001
  static function get_all_users() {
10002
+ $users = self::maybe_get_entities_account_option( 'users', array() );
10003
 
10004
  if ( ! is_array( $users ) ) {
10005
  $users = array();
10043
  $option_name = $module_type . '_' . $option_name;
10044
  }
10045
 
10046
+ return self::maybe_get_entities_account_option( $option_name, array(), $network_level_or_blog_id );
10047
  }
10048
 
10049
  /**
10091
  self::$_accounts->set_option( $option_name, $option_value, $store, $network_level_or_blog_id );
10092
  }
10093
 
10094
+ /**
10095
+ * This method can also return non-entity or non-entities collection option like the `user_id_license_ids_map` option.
10096
+ *
10097
+ * @author Leo Fajardo (@leorw)
10098
+ * @since 2.3.1
10099
+ *
10100
+ * @param string $option_name
10101
+ * @param mixed $default
10102
+ * @param null|bool|int $network_level_or_blog_id When an integer, use the given blog storage. When `true` use the multisite storage (if there's a network). When `false`, use the current context blog storage. When `null`, the decision which storage to use (MS vs. Current S) will be handled internally and determined based on the $option (based on self::$_SITE_LEVEL_PARAMS).
10103
+ *
10104
+ * @return mixed|FS_Plugin[]|FS_User[]|FS_Site[]|FS_Plugin_License[]|FS_Plugin_Plan[]|FS_Plugin_Tag[]
10105
+ */
10106
+ private static function maybe_get_entities_account_option( $option_name, $default = null, $network_level_or_blog_id = null ) {
10107
+ $option = self::$_accounts->get_option( $option_name, $default, $network_level_or_blog_id );
10108
+
10109
+ $class_name = '';
10110
+
10111
+ switch ( $option_name ) {
10112
+ case 'plugins':
10113
+ case 'themes':
10114
+ case 'addons':
10115
+ $class_name = FS_Plugin::get_class_name();
10116
+ break;
10117
+ case 'users':
10118
+ $class_name = FS_User::get_class_name();
10119
+ break;
10120
+ case 'sites':
10121
+ $class_name = FS_Site::get_class_name();
10122
+ break;
10123
+ case 'licenses':
10124
+ case 'all_licenses':
10125
+ $class_name = FS_Plugin_License::get_class_name();
10126
+ break;
10127
+ case 'plans':
10128
+ $class_name = FS_Plugin_Plan::get_class_name();
10129
+ break;
10130
+ case 'updates':
10131
+ $class_name = FS_Plugin_Tag::get_class_name();
10132
+ break;
10133
+ }
10134
+
10135
+ if ( empty( $class_name ) ) {
10136
+ return $option;
10137
+ }
10138
+
10139
+ return fs_get_entities( $option, $class_name );
10140
+ }
10141
+
10142
  /**
10143
  * @author Vova Feldman (@svovaf)
10144
  * @since 1.0.6
10322
  * @return FS_Plugin_Tag[]
10323
  */
10324
  private static function get_all_updates() {
10325
+ $updates = self::maybe_get_entities_account_option( 'updates', array() );
10326
 
10327
  if ( ! is_array( $updates ) ) {
10328
  $updates = array();
10338
  * @return array<number,FS_Plugin[]>|false
10339
  */
10340
  private static function get_all_addons() {
10341
+ $addons = self::maybe_get_entities_account_option( 'addons', array() );
10342
 
10343
  if ( ! is_array( $addons ) ) {
10344
  $addons = array();
10351
  * @author Vova Feldman (@svovaf)
10352
  * @since 1.0.6
10353
  *
10354
+ * @return number[]|false
10355
  */
10356
  private static function get_all_account_addons() {
10357
  $addons = self::$_accounts->get_option( 'account_addons', array() );
10452
  * @author Vova Feldman (@svovaf)
10453
  * @since 1.0.6
10454
  *
10455
+ * @return number[]|false
10456
  */
10457
  function get_account_addons() {
10458
  $this->_logger->entrance();
10596
 
10597
  if ( ! fs_is_network_admin() ) {
10598
  // Get blog-level activated installations.
10599
+ $sites = self::maybe_get_entities_account_option( 'sites', array() );
10600
  } else {
10601
  $sites = null;
10602
 
10605
  ) {
10606
  if ( FS_Site::is_valid_id( $addon_storage->network_install_blog_id ) ) {
10607
  // Get network-level activated installations.
10608
+ $sites = self::maybe_get_entities_account_option(
10609
  'sites',
10610
  array(),
10611
  $addon_storage->network_install_blog_id
10615
  }
10616
 
10617
  $addon_info = array(
10618
+ 'is_connected' => false,
10619
+ 'slug' => $slug,
10620
+ 'title' => $addon->title,
10621
+ 'is_whitelabeled' => $addon_storage->is_whitelabeled
10622
  );
10623
 
10624
  if ( ! $is_installed ) {
10664
 
10665
  $addon_info['site'] = $site;
10666
 
10667
+ $plugins_data = self::maybe_get_entities_account_option( WP_FS__MODULE_TYPE_PLUGIN . 's', array() );
10668
  if ( isset( $plugins_data[ $slug ] ) ) {
10669
  $plugin_data = $plugins_data[ $slug ];
10670
 
10671
  $addon_info['version'] = $plugin_data->version;
10672
  }
10673
 
10674
+ $all_plans = self::maybe_get_entities_account_option( 'plans', array() );
10675
  if ( isset( $all_plans[ $slug ] ) ) {
10676
  $plans = $all_plans[ $slug ];
10677
 
10684
  }
10685
  }
10686
 
10687
+ $licenses = self::maybe_get_entities_account_option( 'all_licenses', array() );
10688
  if ( is_array( $licenses ) && isset( $licenses[ $addon_id ] ) ) {
10689
  foreach ( $licenses[ $addon_id ] as $license ) {
10690
  if ( $license->id == $site->license_id ) {
10698
  if ( isset( $addon_storage->subscriptions ) &&
10699
  ! empty( $addon_storage->subscriptions )
10700
  ) {
10701
+ $addon_subscriptions = fs_get_entities( $addon_storage->subscriptions, FS_Subscription::get_class_name() );
10702
+
10703
+ foreach ( $addon_subscriptions as $subscription ) {
10704
  if ( $subscription->license_id == $site->license_id ) {
10705
  $addon_info['subscription'] = $subscription;
10706
  break;
10791
  function is_premium() {
10792
  /**
10793
  * `$this->_plugin` will be `false` when `is_activation_mode` calls this method directly from the
10794
+ * `register_constructor_hooks` method.
10795
  *
10796
  * @author Leo Fajardo (@leorw)
10797
  * @since 2.2.3
10888
  return false;
10889
  }
10890
 
10891
+ if ( ! $this->has_active_valid_license() ) {
10892
+ return false;
10893
+ }
10894
 
10895
+ if ( $this->_site->trial_plan_id != $this->_license->plan_id ) {
10896
+ return false;
10897
+ }
10898
+
10899
+ /**
10900
+ * @var FS_Subscription $subscription
10901
+ */
10902
+ $subscription = $this->_get_subscription( $this->_license->id );
10903
+
10904
+ return ( is_object( $subscription ) && $subscription->is_active() );
10905
+ }
10906
+
10907
+ /**
10908
+ * Check if trial already utilized.
10909
+ *
10910
+ * @since 1.0.9
10911
  *
10912
  * @return bool
10913
  */
11036
  * @author Vova Feldman (@svovaf)
11037
  * @since 1.1.7.3
11038
  *
11039
+ * @param bool $including_foreign
11040
+ *
11041
  * @return bool
11042
  */
11043
+ function has_any_license( $including_foreign = true ) {
11044
+ if ( ! is_array( $this->_licenses ) || 0 === count( $this->_licenses ) ) {
11045
+ return false;
11046
+ }
11047
+
11048
+ if ( $including_foreign ) {
11049
+ return true;
11050
+ }
11051
+
11052
+ foreach ( $this->_licenses as $license ) {
11053
+ if ( $this->_user->id == $license->user_id ) {
11054
+ return true;
11055
+ }
11056
+ }
11057
+
11058
+ return false;
11059
  }
11060
 
11061
  /**
11201
 
11202
  if ( $license instanceof FS_Plugin_License ) {
11203
  $this->_licenses[] = $license;
11204
+
11205
+ $this->set_license( $license );
11206
+
11207
  $this->_store_licenses();
11208
 
11209
  return $license;
11428
 
11429
  // Update current license.
11430
  if ( is_object( $this->_license ) ) {
11431
+ $license = $this->_get_license_by_id( $this->_license->id );
11432
+
11433
+ if ( is_object( $license ) ) {
11434
+ /**
11435
+ * `$license` can be `false` in case a user change action has just been completed and this method
11436
+ * has synced the `$this->_licenses` collection for the new user. In this case, the
11437
+ * `$this->_licenses` collection may have only the newly activated license that is associated with
11438
+ * the new user. `set_license` will eventually be called in the same request by the logic that
11439
+ * follows outside this method which will detect that the install's license has been updated, and
11440
+ * then `_update_site_license` will be called which in turn will call `set_license`.
11441
+ *
11442
+ * @author Leo Fajardo (@leorw)
11443
+ * @since 2.3.2
11444
+ */
11445
+ $this->set_license( $license );
11446
+ }
11447
  }
11448
 
11449
  return $this->_licenses;
11783
  return true;
11784
  }
11785
 
11786
+ /**
11787
+ * Activate a given license on a collection of blogs/sites that are not yet opted-in.
11788
+ *
11789
+ * @author Vova Feldman (@svovaf)
11790
+ * @since 2.3.1
11791
+ *
11792
+ * @param \FS_User $user
11793
+ * @param string $license_key
11794
+ *
11795
+ * @return true|mixed True if successful, otherwise, the API result.
11796
+ */
11797
+ private function activate_license_on_site( FS_User $user, $license_key ) {
11798
+ return $this->activate_license_on_many_sites( $user, $license_key );
11799
+ }
11800
+
11801
  /**
11802
  * Activate a given license on a collection of blogs/sites that are not yet opted-in.
11803
  *
11813
  private function activate_license_on_many_sites(
11814
  FS_User $user,
11815
  $license_key,
11816
+ array $site_ids = array()
11817
  ) {
11818
  $sites = array();
11819
  foreach ( $site_ids as $site_id ) {
11837
  }
11838
 
11839
  $installs = array();
 
 
 
11840
 
11841
+ if ( $this->is_api_result_entity( $result ) ) {
11842
+ $install = new FS_Site( $result );
11843
 
11844
+ $this->_user = $user;
11845
 
11846
+ $this->_store_site( true, null, $install );
 
 
11847
 
11848
+ $this->_site = $install;
11849
+
11850
+ $this->reset_anonymous_mode();
11851
+ } else {
11852
+ foreach ( $result->installs as $install ) {
11853
+ $installs[] = new FS_Site( $install );
11854
+ }
11855
+
11856
+ // Map site addresses to their blog IDs.
11857
+ $address_to_blog_map = $this->get_address_to_blog_map();
11858
 
11859
+ $first_blog_id = null;
11860
 
11861
+ foreach ( $installs as $install ) {
11862
+ $address = trailingslashit( fs_strip_url_protocol( $install->url ) );
11863
+ $blog_id = $address_to_blog_map[ $address ];
11864
+
11865
+ $this->_store_site( true, $blog_id, $install );
11866
+
11867
+ $this->reset_anonymous_mode( $blog_id );
11868
+
11869
+ if ( is_null( $first_blog_id ) ) {
11870
+ $first_blog_id = $blog_id;
11871
+ }
11872
  }
 
11873
 
11874
+ if ( ! FS_Site::is_valid_id( $this->_storage->network_install_blog_id ) ) {
11875
+ $this->_storage->network_install_blog_id = $first_blog_id;
11876
+ }
11877
  }
11878
 
11879
  return true;
11892
  function _update_site_license( $new_license ) {
11893
  $this->_logger->entrance();
11894
 
11895
+ /**
11896
+ * In case this call will be removed in the future, the `_sync_licenses()` method needs to be updated
11897
+ * accordingly so that it will also handle the case when an ownership change is done via license
11898
+ * activation.
11899
+ *
11900
+ * @author Leo Fajardo (@leorw)
11901
+ * @since 2.3.2
11902
+ */
11903
+ $this->set_license( $new_license );
11904
 
11905
  if ( ! is_object( $new_license ) ) {
11906
  $this->_site->license_id = null;
11935
  return $this->_license;
11936
  }
11937
 
11938
+ /**
11939
+ * @author Vova Feldman (@svovaf)
11940
+ * @since 2.3.1
11941
+ *
11942
+ * @param \FS_Plugin_License $license
11943
+ */
11944
+ private function set_license( FS_Plugin_License $license = null ) {
11945
+ $this->_license = $license;
11946
+
11947
+ $this->maybe_update_whitelabel_flag( $license );
11948
+ }
11949
+
11950
+ /**
11951
+ * @author Leo Fajardo (@leorw)
11952
+ * @since 2.3.1
11953
+ *
11954
+ * @param FS_Plugin_License $license
11955
+ */
11956
+ private function maybe_update_whitelabel_flag( $license ) {
11957
+ $is_whitelabeled = isset( $this->_storage->is_whitelabeled ) ?
11958
+ $this->_storage->is_whitelabeled :
11959
+ false;
11960
+
11961
+ if ( is_object( $license ) ) {
11962
+ $license_user = self::_get_user_by_id( $license->user_id );
11963
+
11964
+ if ( ! is_object( $license_user ) ) {
11965
+ // If foreign license, do not update the `is_whitelabeled` flag.
11966
+ return;
11967
+ }
11968
+
11969
+ if ( $this->is_addon() ) {
11970
+ /**
11971
+ * Store the last license data to the parent's storage since it's needed only when showing the
11972
+ * "Start Debug" dialog which is triggered from the "Account" page. This way, there's no need to
11973
+ * iterate over the add-ons just to get the last license data.
11974
+ */
11975
+ $this->get_parent_instance()->store_last_activated_license_data( $license, $license_user );
11976
+ } else {
11977
+ $this->store_last_activated_license_data( $license );
11978
+ }
11979
+
11980
+ if ( $license->is_whitelabeled ) {
11981
+ // Activated a developer license, data should be hidden.
11982
+ $is_whitelabeled = true;
11983
+ } else if ( $this->is_registered() && $this->_user->id == $license->user_id ) {
11984
+ // The account owner activated a regular license key, no need to hide the data.
11985
+ $is_whitelabeled = false;
11986
+ }
11987
+ }
11988
+
11989
+ $this->_storage->is_whitelabeled = $is_whitelabeled;
11990
+
11991
+ // Reset the whitelabeled status after update.
11992
+ $this->is_whitelabeled = null;
11993
+ if ( $this->is_addon() ) {
11994
+ $parent_fs = $this->get_parent_instance();
11995
+
11996
+ if ( is_object( $parent_fs ) ) {
11997
+ $parent_fs->is_whitelabeled = null;
11998
+ }
11999
+ }
12000
+ }
12001
+
12002
+ /**
12003
+ * @author Leo Fajardo (@leorw)
12004
+ * @since 2.3.1
12005
+ *
12006
+ * @param FS_Plugin_License $license
12007
+ * @param FS_User $license_user
12008
+ */
12009
+ private function store_last_activated_license_data( FS_Plugin_License $license, $license_user = null ) {
12010
+ if ( ! is_object( $license_user ) ) {
12011
+ $this->_storage->last_license_key = md5( $license->secret_key );
12012
+ $this->_storage->last_license_user_id = null;
12013
+ } else {
12014
+ $this->_storage->last_license_user_key = md5( $license_user->secret_key );
12015
+ $this->_storage->last_license_user_id = $license_user->id;
12016
+ }
12017
+ }
12018
+
12019
+ /**
12020
+ * @author Leo Fajardo (@leorw)
12021
+ * @since 2.3.1
12022
+ *
12023
+ * @param bool $ignore_data_debug_mode
12024
+ *
12025
+ * @return bool
12026
+ */
12027
+ function is_whitelabeled_by_flag( $ignore_data_debug_mode = false ) {
12028
+ if ( true !== $this->_storage->is_whitelabeled ) {
12029
+ return false;
12030
+ } else if ( $ignore_data_debug_mode ) {
12031
+ return true;
12032
+ }
12033
+
12034
+ $fs = $this->is_addon() ?
12035
+ $this->get_parent_instance() :
12036
+ $this;
12037
+
12038
+ return ! $fs->is_data_debug_mode();
12039
+ }
12040
+
12041
+ /**
12042
+ * @author Leo Fajardo (@leorw)
12043
+ * @since 2.3.1
12044
+ *
12045
+ * @return number
12046
+ */
12047
+ function get_last_license_user_id() {
12048
+ return ( FS_User::is_valid_id( $this->_storage->last_license_user_id ) ) ?
12049
+ $this->_storage->last_license_user_id :
12050
+ null;
12051
+ }
12052
+
12053
+ /**
12054
+ * @author Leo Fajardo (@leorw)
12055
+ * @since 2.3.1
12056
+ *
12057
+ * @param int $blog_id
12058
+ * @param bool $ignore_data_debug_mode
12059
+ *
12060
+ * @return bool
12061
+ */
12062
+ function is_whitelabeled( $ignore_data_debug_mode = false, $blog_id = null ) {
12063
+ if ( ! is_null( $blog_id ) ) {
12064
+ $this->switch_to_blog( $blog_id );
12065
+ }
12066
+
12067
+ if ( ! is_null( $this->is_whitelabeled ) ) {
12068
+ $is_whitelabeled = $this->is_whitelabeled;
12069
+ } else {
12070
+ $is_whitelabeled = false;
12071
+
12072
+ $is_whitelabeled_flag = $this->is_whitelabeled_by_flag( true );
12073
+
12074
+ if ( ! $this->has_addons() ) {
12075
+ $is_whitelabeled = $is_whitelabeled_flag;
12076
+ } else if ( $is_whitelabeled_flag ) {
12077
+ $is_whitelabeled = true;
12078
+ } else {
12079
+ $addon_ids = $this->get_updated_account_addons();
12080
+ $installed_addons = $this->get_installed_addons();
12081
+ foreach ( $installed_addons as $fs_addon ) {
12082
+ $addon_ids[] = $fs_addon->get_id();
12083
+ }
12084
+
12085
+ if ( ! empty( $addon_ids ) ) {
12086
+ $addon_ids = array_unique( $addon_ids );
12087
+
12088
+ $is_network_level = (
12089
+ fs_is_network_admin() &&
12090
+ $this->is_network_active()
12091
+ );
12092
+
12093
+ foreach ( $addon_ids as $addon_id ) {
12094
+ $addon = $this->get_addon( $addon_id );
12095
+
12096
+ if ( ! is_object( $addon ) ) {
12097
+ continue;
12098
+ }
12099
+
12100
+ $addon_storage = FS_Storage::instance( WP_FS__MODULE_TYPE_PLUGIN, $addon->slug );
12101
+ $fs_addon = $this->is_addon_activated( $addon_id ) ?
12102
+ self::get_addon_instance( $addon_id ) :
12103
+ null;
12104
+
12105
+ $was_addon_network_activated = false;
12106
+
12107
+ if ( is_object( $fs_addon ) ) {
12108
+ $was_addon_network_activated = $fs_addon->is_network_active();
12109
+ } else if ( $is_network_level ) {
12110
+ $was_addon_network_activated = $addon_storage->get( 'was_plugin_loaded', false, true );
12111
+ }
12112
+
12113
+ $network_delegated_connection = (
12114
+ $was_addon_network_activated &&
12115
+ $addon_storage->get( 'is_delegated_connection', false, true )
12116
+ );
12117
+
12118
+ if (
12119
+ $is_network_level &&
12120
+ ( ! $was_addon_network_activated || $network_delegated_connection )
12121
+ ) {
12122
+ $sites = self::get_sites();
12123
+
12124
+ /**
12125
+ * If in network admin area and the add-on was not network-activated or network-activated
12126
+ * and network-delegated, find any add-on whose is_whitelabeled flag is true.
12127
+ */
12128
+ foreach ( $sites as $site ) {
12129
+ $site_info = $this->get_site_info( $site );
12130
+
12131
+ if ( $addon_storage->get( 'is_whitelabeled', false, $site_info['blog_id'] ) ) {
12132
+ $is_whitelabeled = true;
12133
+ break;
12134
+ }
12135
+ }
12136
+
12137
+ if ( $is_whitelabeled ) {
12138
+ break;
12139
+ }
12140
+ } else {
12141
+ /**
12142
+ * This will be executed when any of the following is met:
12143
+ * 1. Add-on was network-activated, not network-delegated, and in network admin area.
12144
+ * 2. Add-on was network-activated, network-delegated, and in site admin area.
12145
+ * 3. Add-on was not network-activated and in site admin area.
12146
+ */
12147
+ if ( true === $addon_storage->is_whitelabeled ) {
12148
+ $is_whitelabeled = true;
12149
+ break;
12150
+ }
12151
+ }
12152
+ }
12153
+ }
12154
+ }
12155
+
12156
+ $this->is_whitelabeled = $is_whitelabeled;
12157
+
12158
+ if ( ! $is_whitelabeled || ! $this->is_data_debug_mode() ) {
12159
+ $this->_admin_notices->remove_sticky( 'data_debug_mode_enabled' );
12160
+ }
12161
+
12162
+ if ( ! is_null( $blog_id ) ) {
12163
+ $this->restore_current_blog();
12164
+ }
12165
+ }
12166
+
12167
+ return (
12168
+ $is_whitelabeled &&
12169
+ ( $ignore_data_debug_mode || ! $this->is_data_debug_mode() )
12170
+ );
12171
+ }
12172
+
12173
  /**
12174
  * Sync site's subscription.
12175
  *
12227
  return null;
12228
  }
12229
 
12230
+ foreach ( fs_get_entities( $this->_storage->subscriptions, FS_Subscription::get_class_name() ) as $subscription ) {
12231
  if ( $subscription->license_id == $license_id ) {
12232
  return $subscription;
12233
  }
12253
  return;
12254
  }
12255
 
12256
+ $subscriptions = fs_get_entities( $this->_storage->subscriptions, FS_Subscription::get_class_name() );
12257
 
12258
  $updated_subscription = false;
12259
  foreach ( $subscriptions as $key => $existing_subscription ) {
12348
  }
12349
 
12350
  $current_plan_order = - 1;
12351
+ $required_plan_order = PHP_INT_MAX;
12352
  for ( $i = 0, $len = count( $this->_plans ); $i < $len; $i ++ ) {
12353
  if ( $plan === $this->_plans[ $i ]->name ) {
12354
  $required_plan_order = $i;
12366
  * @author Vova Feldman (@svovaf)
12367
  * @since 1.2.1.7
12368
  *
12369
+ * @param bool $double_check In some cases developers prefer to release their paid offering as premium-only, even though there is a free version. For those cases, looking at the 'is_premium_only' value isn't enough because the result will return false even when the product has only signle paid plan.
12370
+ *
12371
  * @return bool
12372
  */
12373
+ function is_single_plan( $double_check = false ) {
12374
  $this->_logger->entrance();
12375
 
12376
  if ( ! $this->is_registered() ||
12380
  return true;
12381
  }
12382
 
12383
+ $has_free_plan = $this->has_free_plan();
12384
+
12385
+ if ( ! $has_free_plan && $double_check ) {
12386
+ foreach ( $this->_plans as $plan ) {
12387
+ if ( $plan->is_free() ) {
12388
+ $has_free_plan = true;
12389
+ break;
12390
+ }
12391
+ }
12392
+ }
12393
+
12394
+ return ( 1 === ( count( $this->_plans ) - ( $has_free_plan ? 1 : 0 ) ) );
12395
  }
12396
 
12397
  /**
12505
  fs_require_template( 'forms/resend-key.php', $vars );
12506
  }
12507
 
12508
+ /**
12509
+ * Returns a collection of IDs of installs that are associated with the context product and its add-ons, and activated with foreign licenses.
12510
+ *
12511
+ * @author Leo Fajardo (@leorw)
12512
+ * @since 2.3.2
12513
+ *
12514
+ * @return number[]
12515
+ */
12516
+ function get_installs_ids_with_foreign_licenses() {
12517
+ $installs = array();
12518
+
12519
+ if (
12520
+ is_object( $this->_license ) &&
12521
+ $this->_site->user_id != $this->_license->user_id
12522
+ ) {
12523
+ $installs[] = $this->_site->id;
12524
+ }
12525
+
12526
+ /**
12527
+ * Also try to get foreign licenses for the context product's add-ons.
12528
+ */
12529
+ $installs_by_slug_map = $this->get_parent_and_addons_installs_info();
12530
+
12531
+ foreach ( $installs_by_slug_map as $slug => $install_info ) {
12532
+ if ( $slug == $this->get_slug() ) {
12533
+ continue;
12534
+ }
12535
+
12536
+ $install = $install_info['install'];
12537
+ $license = $install_info['license'];
12538
+
12539
+ if (
12540
+ is_object( $license ) &&
12541
+ $install->user_id != $license->user_id
12542
+ ) {
12543
+ $installs[] = $install->id;
12544
+ }
12545
+ }
12546
+
12547
+ return $installs;
12548
+ }
12549
+
12550
+ /**
12551
+ * Displays the "Change User" dialog box when the user clicks on the "Change User" button on the "Account" page.
12552
+ *
12553
+ * @author Leo Fajardo (@leorw)
12554
+ * @since 2.3.2
12555
+ *
12556
+ * @param number[] $install_ids
12557
+ */
12558
+ function _add_user_change_dialog_box( $install_ids ) {
12559
+ $vars = array(
12560
+ 'id' => $this->_module_id,
12561
+ 'license_owners' => $this->fetch_installs_licenses_owners_data( $install_ids )
12562
+ );
12563
+
12564
+ fs_require_template( 'forms/user-change.php', $vars );
12565
+ }
12566
+
12567
+ /**
12568
+ * @author Leo Fajardo (@leorw)
12569
+ * @since 2.3.1
12570
+ */
12571
+ function _add_data_debug_mode_dialog_box() {
12572
+ $vars = array(
12573
+ 'id' => $this->_module_id,
12574
+ );
12575
+
12576
+ fs_require_template( 'forms/data-debug-mode.php', $vars );
12577
+ }
12578
+
12579
  /**
12580
  * Displays a subscription cancellation dialog box when the user clicks on the "Deactivate License"
12581
  * link on the "Account" page or deactivates a plugin and there's an active subscription that is
12594
  // Subscription cancellation dialog box is currently not supported for multisite networks.
12595
  return array();
12596
  }
12597
+
12598
+ if ( $this->is_whitelabeled() ) {
12599
+ return array();
12600
+ }
12601
 
12602
  $license = $this->_get_license();
12603
 
12685
  return;
12686
  }
12687
 
12688
+ if (
12689
+ $this->has_premium_version() &&
12690
+ ! $this->is_premium() &&
12691
+ /**
12692
+ * Also handle the case when an upgrade was made using the free version.
12693
+ *
12694
+ * @author Leo Fajardo (@leorw)
12695
+ * @since 2.3.2
12696
+ */
12697
+ ! is_object( $this->_get_license() )
12698
+ ) {
12699
+ // Only add license activation logic to the premium version, or in case of a serviceware plugin, also in the free version.
12700
  return;
12701
  }
12702
 
12722
  $this->add_ajax_action( 'resend_license_key', array( &$this, '_resend_license_key_ajax_action' ) );
12723
  }
12724
 
12725
+ /**
12726
+ * Prepares page to include all required UI and logic for the "Change User" dialog.
12727
+ *
12728
+ * @author Leo Fajardo (@leorw)
12729
+ * @since 2.3.2
12730
+ */
12731
+ function _add_user_change_option() {
12732
+ if ( ! $this->should_handle_user_change() ) {
12733
+ return;
12734
+ }
12735
+
12736
+ if ( empty( $this->get_installs_ids_with_foreign_licenses() ) ) {
12737
+ // Handle user change only when the parent product or one of its add-ons is activated with a foreign license.
12738
+ return;
12739
+ }
12740
+
12741
+ // Add user change AJAX handler.
12742
+ $this->add_ajax_action( 'change_user', array( &$this, '_user_change_ajax_action' ) );
12743
+ }
12744
+
12745
+ /**
12746
+ * @author Leo Fajardo (@leorw)
12747
+ * @since 2.3.2
12748
+ */
12749
+ function should_handle_user_change() {
12750
+ if ( ! $this->is_user_admin() ) {
12751
+ // Only admins can change user.
12752
+ return false;
12753
+ }
12754
+
12755
+ if ( $this->is_addon() ) {
12756
+ return false;
12757
+ }
12758
+
12759
+ if ( ! $this->is_registered() ) {
12760
+ return false;
12761
+ }
12762
+
12763
+ if (
12764
+ $this->is_network_active() &&
12765
+ ( fs_is_network_admin() || ! $this->is_site_delegated_connection() )
12766
+ ) {
12767
+ // Handle only on site-level "Account" section for now.
12768
+ return false;
12769
+ }
12770
+
12771
+ return true;
12772
+ }
12773
+
12774
  /**
12775
  * @author Leo Fajardo (@leorw)
12776
  * @since 2.0.2
12876
  array(),
12877
  fs_request_get_bool( 'is_marketing_allowed', null ),
12878
  fs_request_get( 'blog_id', null ),
12879
+ fs_request_get( 'module_id', null, 'post' ),
12880
+ fs_request_get( 'user_id', null ),
12881
+ fs_request_get_bool( 'is_extensions_tracking_allowed', true )
12882
  );
12883
 
12884
  echo json_encode( $result );
12886
  exit;
12887
  }
12888
 
12889
+ /**
12890
+ * User change WP AJAX handler.
12891
+ *
12892
+ * @author Leo Fajardo (@leorw)
12893
+ * @since 2.3.2
12894
+ */
12895
+ function _user_change_ajax_action() {
12896
+ $this->_logger->entrance();
12897
+
12898
+ $this->check_ajax_referer( 'change_user' );
12899
+
12900
+ $new_email_address = trim( fs_request_get( 'email_address', '' ) );
12901
+ $new_user_id = fs_request_get( 'user_id' );
12902
+
12903
+ if ( empty( $new_email_address ) && ! FS_User::is_valid_id( $new_user_id ) ) {
12904
+ self::shoot_ajax_failure( fs_text_inline( 'Invalid new user ID or email address.', 'invalid-new-user-id-or-email', $this->get_slug() ) );
12905
+ }
12906
+
12907
+ $params = array();
12908
+
12909
+ if ( ! empty( $new_email_address ) ) {
12910
+ $params['user_email'] = $new_email_address;
12911
+ } else {
12912
+ $params['user_id'] = $new_user_id;
12913
+ }
12914
+
12915
+ $installs_info_by_slug_map = $this->get_parent_and_addons_installs_info();
12916
+ $install_ids = array();
12917
+
12918
+ foreach ( $installs_info_by_slug_map as $slug => $install_info ) {
12919
+ $install_ids[ $slug ] = $install_info['install']->id;
12920
+ }
12921
+
12922
+ $params['install_ids'] = implode( ',', array_values( $install_ids ) );
12923
+
12924
+ $install = $this->get_api_site_scope()->call( $this->add_show_pending( '/' ), 'put', $params );
12925
+
12926
+ if ( FS_Api::is_api_error( $install ) ) {
12927
+ $error = '';
12928
+
12929
+ if ( is_object( $install ) ) {
12930
+ switch ( $install->error->code ) {
12931
+ case 'user_exist':
12932
+ $error = (
12933
+ $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...' .
12934
+ $this->get_text_inline( 'Sorry, we could not complete the email update. Another user with the same email is already registered.', 'user-exist-message' ) . ' ' .
12935
+ sprintf( $this->get_text_inline( 'If you would like to give up the ownership of the %s\'s account to %s click the Change Ownership button.', 'user-exist-message_ownership' ), $this->_module_type, '<b>' . $new_email_address . '</b>' ) .
12936
+ sprintf(
12937
+ '<a style="line-height: 40px;" href="%s"><button class="button button-primary">%s &nbsp;&#10140;</button></a>',
12938
+ $this->get_account_url( 'change_owner', array(
12939
+ 'state' => 'init',
12940
+ 'candidate_email' => $new_email_address
12941
+ ) ),
12942
+ $this->get_text_inline( 'Change Ownership', 'change-ownership' )
12943
+ )
12944
+ );
12945
+ break;
12946
+ }
12947
+ }
12948
+
12949
+ if ( empty( $error ) ) {
12950
+ $error = FS_Api::is_api_error_object( $install ) ?
12951
+ $install->error->message :
12952
+ var_export( $install->error, true );
12953
+ }
12954
+
12955
+ self::shoot_ajax_failure( $error );
12956
+ } else {
12957
+ if (
12958
+ // If successful ownership change.
12959
+ $this->get_user()->id != $install->user_id ||
12960
+ ! empty( $new_email_address )
12961
+ ) {
12962
+ $this->complete_ownership_change_by_license( $install->user_id, $install_ids );
12963
+ }
12964
+ }
12965
+
12966
+ self::shoot_ajax_success();
12967
+ }
12968
+
12969
  /**
12970
  * A helper method to activate migrated licenses. If the product is network activated and integrated, the method will network activate the license.
12971
  *
12989
  $is_marketing_allowed = null,
12990
  $plugin_id = null
12991
  ) {
12992
+ $this->_logger->entrance();
12993
+
12994
+ $result = $this->activate_license(
12995
  $license_key,
12996
  $this->is_network_active() ?
12997
  $this->get_sites_for_network_level_optin() :
13000
  null,
13001
  $plugin_id
13002
  );
13003
+
13004
+ // No need to show the sticky after license activation notice after migrating a license.
13005
+ $this->_admin_notices->remove_sticky( 'plan_upgraded' );
13006
+
13007
+ return $result;
13008
  }
13009
 
13010
  /**
13018
  * @param null|bool $is_marketing_allowed
13019
  * @param null|int $blog_id
13020
  * @param null|number $plugin_id
13021
+ * @param null|number $license_owner_id
13022
  *
13023
  * @return array {
13024
  * @var bool $success
13031
  $sites = array(),
13032
  $is_marketing_allowed = null,
13033
  $blog_id = null,
13034
+ $plugin_id = null,
13035
+ $license_owner_id = null,
13036
+ $is_extensions_tracking_allowed = true
13037
  ) {
13038
  $this->_logger->entrance();
13039
 
13048
  $this :
13049
  $this->get_addon_instance( $plugin_id );
13050
 
13051
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
13052
+
13053
  $error = false;
13054
  $next_page = false;
13055
 
13056
  $has_valid_blog_id = is_numeric( $blog_id );
13057
 
13058
+ $user = null;
13059
+
13060
+ if ( $fs->is_addon() && $fs->get_parent_instance()->is_registered() ) {
13061
+ /**
13062
+ * When activating an add-on's license and the parent is opted-in, activate the license with the parent's opted-in user context.
13063
+ *
13064
+ * @author Vova Feldman (@svovaf)
13065
+ */
13066
+ $user = $fs->get_parent_instance()->get_current_or_network_user();
13067
+ } else if ( $fs->is_registered() ) {
13068
+ $user = $fs->get_current_or_network_user();
13069
+ }
13070
+
13071
+ if ( is_object( $user ) ) {
13072
  if ( fs_is_network_admin() && ! $has_valid_blog_id ) {
13073
  // If no specific blog ID was provided, activate the license for all sites in the network.
13074
  $blog_2_install_map = array();
13079
  continue;
13080
  }
13081
 
13082
+ $install = $fs->get_install_by_blog_id( $site['blog_id'] );
13083
 
13084
  if ( is_object( $install ) ) {
13085
  $blog_2_install_map[ $site['blog_id'] ] = $install;
13088
  }
13089
  }
13090
 
 
 
13091
  if ( ! empty( $blog_2_install_map ) ) {
13092
+ $result = $fs->activate_license_on_many_installs( $user, $license_key, $blog_2_install_map );
13093
 
13094
  if ( true !== $result ) {
13095
  $error = FS_Api::is_api_error_object( $result ) ?
13099
  }
13100
 
13101
  if ( empty( $error ) && ! empty( $site_ids ) ) {
13102
+ $result = $fs->activate_license_on_many_sites( $user, $license_key, $site_ids );
13103
 
13104
  if ( true !== $result ) {
13105
  $error = FS_Api::is_api_error_object( $result ) ?
13115
  *
13116
  * @author Leo Fajardo (@leorw)
13117
  */
13118
+ $fs->switch_to_blog( $blog_id );
13119
  }
13120
 
13121
+ if ( $fs->is_registered() ) {
13122
+ $params = array(
13123
+ 'license_key' => $fs->apply_filters( 'license_key', $license_key )
13124
+ );
13125
 
13126
+ $install_ids = array();
 
 
13127
 
13128
+ $change_owner = FS_User::is_valid_id( $license_owner_id );
13129
 
13130
+ if ( $change_owner ) {
13131
+ $params['user_id'] = $license_owner_id;
13132
+
13133
+ $installs_info_by_slug_map = $fs->get_parent_and_addons_installs_info();
13134
+
13135
+ foreach ( $installs_info_by_slug_map as $slug => $install_info ) {
13136
+ $install_ids[ $slug ] = $install_info['install']->id;
13137
+ }
13138
+
13139
+ $params['install_ids'] = implode( ',', array_values( $install_ids ) );
13140
+ }
13141
+
13142
+ $api = $fs->get_api_site_scope();
13143
+
13144
+ $install = $api->call( $fs->add_show_pending( '/' ), 'put', $params );
13145
+
13146
+ if ( FS_Api::is_api_error( $install ) ) {
13147
+ $error = FS_Api::is_api_error_object( $install ) ?
13148
+ $install->error->message :
13149
+ var_export( $install->error, true );
13150
+ } else {
13151
+ $fs->reconnect_locally( $has_valid_blog_id );
13152
+
13153
+ if (
13154
+ $change_owner &&
13155
+ // If successful ownership change.
13156
+ $fs->get_user()->id != $install->user_id
13157
+ ) {
13158
+ $fs->complete_ownership_change_by_license( $install->user_id, $install_ids );
13159
+ }
13160
+ }
13161
+ } else /* ( $fs->is_addon() && $fs->get_parent_instance()->is_registered() ) */ {
13162
+ $result = $fs->activate_license_on_site( $user, $license_key );
13163
+
13164
+ if ( true !== $result ) {
13165
+ $error = FS_Api::is_api_error_object( $result ) ?
13166
+ $result->error->message :
13167
+ var_export( $result, true );
13168
+ }
13169
  }
13170
  }
13171
 
13172
  if ( empty( $error ) ) {
13173
+ $fs->network_upgrade_mode_completed();
13174
 
13175
  $fs->_sync_license( true, $has_valid_blog_id );
13176
 
13177
+ $this->maybe_sync_install_user();
13178
+
13179
  $next_page = $fs->is_addon() ?
13180
  $fs->get_parent_instance()->get_account_url() :
13181
  $fs->get_account_url();
13224
  continue;
13225
  }
13226
 
13227
+ if ( $fs->is_installed_on_site( $blog_id ) ) {
13228
  // Site was already connected before.
13229
  continue;
13230
  }
13231
 
13232
+ if ( $fs->is_site_delegated_connection( $blog_id ) ) {
13233
  // Site's connection was delegated.
13234
  continue;
13235
  }
13236
 
13237
+ if ( $fs->is_anonymous_site( $blog_id ) ) {
13238
  // Site connection was already skipped.
13239
  continue;
13240
  }
13243
  }
13244
 
13245
  if ( ! empty( $pending_sites ) ) {
13246
+ if ( $fs->is_freemium() && $fs->is_enable_anonymous() ) {
13247
+ $fs->skip_connection( $pending_sites );
13248
  } else {
13249
+ $fs->delegate_connection( $pending_sites );
13250
  }
13251
  }
13252
  }
13253
  }
13254
  }
13255
 
13256
+ if ( false === $error && true === $fs->_storage->require_license_activation ) {
13257
+ $fs->_storage->require_license_activation = false;
13258
  }
13259
 
13260
+ $result = array(
13261
+ 'success' => ( false === $error )
13262
+ );
13263
+
13264
+ if ( false !== $error ) {
13265
+ $result['error'] = $fs->apply_filters( 'opt_in_error_message', $error );
13266
+ } else {
13267
+ if ( $fs->is_addon() || $fs->has_addons() ) {
13268
+ /**
13269
+ * Purge the valid user licenses cache so that when the "Account" or the "Add-Ons" page is loaded,
13270
+ * an updated valid user licenses collection will be fetched from the server which is used to also
13271
+ * update the account add-ons (add-ons the user has licenses for).
13272
+ *
13273
+ * @author Leo Fajardo (@leorw)
13274
+ * @since 2.2.4
13275
+ */
13276
+ $fs->purge_valid_user_licenses_cache();
13277
+ }
13278
+
13279
+ $result['next_page'] = $next_page;
13280
+ }
13281
+
13282
+ return $result;
13283
+ }
13284
+
13285
+ /**
13286
+ * @author Leo Fajardo (@leorw)
13287
+ * @since 2.3.2
13288
+ *
13289
+ * @return array {
13290
+ * @key string Product slug.
13291
+ * @value array {
13292
+ * @property FS_Site $site
13293
+ * @property FS_Plugin_License $license
13294
+ * }
13295
+ * }
13296
+ */
13297
+ private function get_parent_and_addons_installs_info() {
13298
+ $fs = $this->is_addon() ?
13299
+ $this->get_parent_instance() :
13300
+ $this;
13301
+
13302
+ $installed_addons_ids = array();
13303
+
13304
+ $installed_addons_instances = $fs->get_installed_addons();
13305
+ foreach ( $installed_addons_instances as $instance ) {
13306
+ $installed_addons_ids[] = $instance->get_id();
13307
+ }
13308
+
13309
+ $addons_ids = array_unique( array_merge(
13310
+ $installed_addons_ids,
13311
+ $fs->get_updated_account_addons()
13312
+ ) );
13313
+
13314
+ // Add parent product info.
13315
+ $installs_info_by_slug_map = array(
13316
+ $fs->get_slug() => array(
13317
+ 'install' => $fs->get_site(),
13318
+ 'license' => $fs->_get_license()
13319
+ )
13320
  );
13321
 
13322
+ foreach ( $addons_ids as $addon_id ) {
13323
+ $is_installed = isset( $installed_addons_ids_map[ $addon_id ] );
13324
+
13325
+ $addon_info = $fs->_get_addon_info( $addon_id, $is_installed );
13326
+
13327
+ if ( ! $addon_info['is_connected'] ) {
13328
+ // Add-on is not associated with an install entity.
13329
+ continue;
 
 
 
 
 
13330
  }
13331
 
13332
+ $installs_info_by_slug_map[ $addon_info['slug'] ] = array(
13333
+ 'install' => $addon_info['site'],
13334
+ 'license' => isset( $addon_info['license'] ) ?
13335
+ $addon_info['license'] :
13336
+ null
13337
+ );
13338
  }
13339
 
13340
+ return $installs_info_by_slug_map;
13341
  }
13342
 
13343
  /**
14366
  $page_param = $this->_menu->get_slug( $page );
14367
 
14368
  if ( empty( $page ) &&
 
14369
  // Show the opt-in as an overlay for free wp.org themes or themes without any settings page.
14370
+ $this->show_opt_in_on_themes_page()
14371
  ) {
14372
  $params[ $this->get_unique_affix() . '_show_optin' ] = 'true';
14373
 
14797
  *
14798
  * @param int $blog_id
14799
  * @param FS_Site $install
14800
+ *
14801
+ * @return bool Since 2.3.1 returns if a switch was made.
14802
  */
14803
  function switch_to_blog( $blog_id, FS_Site $install = null ) {
14804
  if ( $blog_id == $this->_context_is_network_or_blog_id ) {
14805
+ return false;
14806
  }
14807
 
14808
  switch_to_blog( $blog_id );
14816
  $install :
14817
  $this->get_install_by_blog_id( $blog_id );
14818
 
14819
+ $this->_user = false;
14820
+ $this->_licenses = false;
14821
+ $this->_license = null;
14822
+ $this->is_whitelabeled = null;
14823
 
14824
  if ( is_object( $this->_site ) ) {
14825
  // Try to fetch user from install.
14864
 
14865
  unset( $this->_site_api );
14866
  unset( $this->_user_api );
14867
+
14868
+ return false;
14869
  }
14870
 
14871
  /**
15311
  return ( $this->_menu->get_slug( $page ) === fs_request_get( 'page', '', 'get' ) );
15312
  }
15313
 
15314
+ /**
15315
+ * Check if currently in the product's main admin page.
15316
+ *
15317
+ * @author Vova Feldman (@svovaf)
15318
+ * @since 2.3.1
15319
+ *
15320
+ * @return bool
15321
+ */
15322
+ function is_main_admin_page() {
15323
+ return $this->is_admin_page( '' );
15324
+ }
15325
+
15326
  /**
15327
  * Get module's main admin setting page URL.
15328
  *
15343
  * @since 1.2.2.7
15344
  *
15345
  * @return bool
15346
+ *
15347
+ * @deprecated Please use is_product_settings_page() instead;
15348
  */
15349
  function is_theme_settings_page() {
15350
+ return $this->is_product_settings_page();
15351
+ }
15352
+
15353
+ /**
15354
+ * Check if currently on the product's main setting page or on any of the Freemius added pages (via tabs).
15355
+ *
15356
+ * @author Vova Feldman (@svovaf)
15357
+ * @since 1.2.2.7
15358
+ *
15359
+ * @return bool
15360
+ */
15361
+ function is_product_settings_page() {
15362
  return fs_starts_with(
15363
  fs_request_get( 'page', '', 'get' ),
15364
  $this->_menu->get_slug()
15778
  /**
15779
  * This is a special fault tolerance mechanism to handle a scenario that the user data is missing.
15780
  */
15781
+ $user = $this->sync_user_by_current_install();
15782
  }
15783
 
15784
  $this->_user = ( $user instanceof FS_User ) ?
15818
  * @author Vova Feldman (@svovaf)
15819
  * @since 2.0.0
15820
  *
15821
+ * @param number|null $site_user_id
15822
+ *
15823
  * @return \FS_User|mixed
15824
  */
15825
+ private function sync_user_by_current_install( $site_user_id = null ) {
15826
+ $site_user_id = FS_Site::is_valid_id( $site_user_id ) ?
15827
+ $site_user_id :
15828
+ $this->_site->user_id;
15829
+
15830
  $api = $this->get_api_site_scope();
15831
 
15832
  $uid = $this->get_anonymous_id();
15833
+ $request_path = "/users/{$site_user_id}.json?uid={$uid}";
15834
 
15835
  $result = $api->get( $request_path, false, WP_FS__TIME_10_MIN_IN_SEC );
15836
 
15986
  'is_uninstalled' => false,
15987
  ) );
15988
 
15989
+ if ( $this->is_addon() ) {
15990
+ $parent_fs = $this->get_parent_instance();
15991
+
15992
+ $params['parent_plugin_slug'] = $parent_fs->_slug;
15993
+ $params['parent_plugin_id'] = $parent_fs->get_id();
15994
+ }
15995
+
15996
  if ( true === $network_level_or_blog_id ) {
15997
  if ( ! isset( $override_with['sites'] ) ) {
15998
  $params['sites'] = $this->get_sites_for_network_level_optin();
16088
  if ( ! $is_uninstall ) {
16089
  $fs_user = Freemius::_get_user_by_email( $email );
16090
  if ( is_object( $fs_user ) && ! $this->is_pending_activation() ) {
16091
+ return $this->install_with_user(
16092
+ $fs_user,
16093
  false,
16094
  $trial_plan_id,
16095
+ true,
16096
+ true,
16097
  $sites
16098
  );
16099
  }
16260
  ( isset( $decoded->is_marketing_allowed ) && ! is_null( $decoded->is_marketing_allowed ) ?
16261
  $decoded->is_marketing_allowed :
16262
  null ),
16263
+ ( isset( $decoded->is_extensions_tracking_allowed ) && ! is_null( $decoded->is_extensions_tracking_allowed ) ?
16264
+ $decoded->is_extensions_tracking_allowed :
16265
+ null ),
16266
  $decoded->install_id,
16267
  $decoded->install_public_key,
16268
  $decoded->install_secret_key,
16276
  ( isset( $decoded->is_marketing_allowed ) && ! is_null( $decoded->is_marketing_allowed ) ?
16277
  $decoded->is_marketing_allowed :
16278
  null ),
16279
+ ( isset( $decoded->is_extensions_tracking_allowed ) && ! is_null( $decoded->is_extensions_tracking_allowed ) ?
16280
+ $decoded->is_extensions_tracking_allowed :
16281
+ null ),
16282
  $decoded->installs,
16283
  false
16284
  );
16370
  );
16371
 
16372
  if ( is_numeric( $first_install->license_id ) ) {
16373
+ $this->set_license( $this->_get_license_by_id( $first_install->license_id ) );
16374
  }
16375
 
16376
  $this->_admin_notices->remove_sticky( 'connect_account' );
16505
  fs_request_get( 'user_public_key' ),
16506
  fs_request_get( 'user_secret_key' ),
16507
  fs_request_get_bool( 'is_marketing_allowed', null ),
16508
+ fs_request_get_bool( 'is_extensions_tracking_allowed', null ),
16509
  $pending_sites_info['blog_ids'],
16510
  $pending_sites_info['license_key'],
16511
  $pending_sites_info['trial_plan_id']
16516
  fs_request_get( 'user_public_key' ),
16517
  fs_request_get( 'user_secret_key' ),
16518
  fs_request_get_bool( 'is_marketing_allowed', null ),
16519
+ fs_request_get_bool( 'is_extensions_tracking_allowed', null ),
16520
  fs_request_get( 'install_id' ),
16521
  fs_request_get( 'install_public_key' ),
16522
  fs_request_get( 'install_secret_key' ),
16572
  * @param string $user_public_key
16573
  * @param string $user_secret_key
16574
  * @param bool|null $is_marketing_allowed
16575
+ * @param bool|null $is_extensions_tracking_allowed Since 2.3.2
16576
  * @param number $install_id
16577
  * @param string $install_public_key
16578
  * @param string $install_secret_key
16579
  * @param bool $redirect
16580
+ * @param bool $auto_install Since 1.2.1.7 If `true` and setting up an account with a valid license, will redirect (or return a URL) to the account page with a special parameter to trigger the auto installation processes.
 
 
16581
  *
16582
  * @return string If redirect is `false`, returns the next page the user should be redirected to.
16583
  */
16586
  $user_public_key,
16587
  $user_secret_key,
16588
  $is_marketing_allowed,
16589
+ $is_extensions_tracking_allowed,
16590
  $install_id,
16591
  $install_public_key,
16592
  $install_secret_key,
16628
  $this->disable_opt_in_notice_and_lock_user();
16629
  }
16630
 
16631
+ if ( ! is_null( $is_extensions_tracking_allowed ) ) {
16632
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
16633
+ }
16634
+
16635
  return $this->setup_account(
16636
  $this->_user,
16637
  $this->_site,
16650
  * @param string $user_public_key
16651
  * @param string $user_secret_key
16652
  * @param bool|null $is_marketing_allowed
16653
+ * @param bool|null $is_extensions_tracking_allowed Since 2.3.2
16654
  * @param array $site_ids
16655
  * @param bool $license_key
16656
  * @param bool $trial_plan_id
16663
  $user_public_key,
16664
  $user_secret_key,
16665
  $is_marketing_allowed,
16666
+ $is_extensions_tracking_allowed,
16667
  $site_ids,
16668
  $license_key = false,
16669
  $trial_plan_id = false,
16675
  $this->disable_opt_in_notice_and_lock_user();
16676
  }
16677
 
16678
+ if ( ! is_null( $is_extensions_tracking_allowed ) ) {
16679
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
16680
+ }
16681
+
16682
  $sites = array();
16683
  foreach ( $site_ids as $site_id ) {
16684
  $sites[] = $this->get_site_info( array( 'blog_id' => $site_id ) );
16697
  * @param string $user_public_key
16698
  * @param string $user_secret_key
16699
  * @param bool|null $is_marketing_allowed
16700
+ * @param bool|null $is_extensions_tracking_allowed Since 2.3.2
16701
  * @param object[] $installs
16702
  * @param bool $redirect
16703
+ * @param bool $auto_install Since 1.2.1.7 If `true` and setting up an account with a valid license, will redirect (or return a URL) to the account page with a special parameter to trigger the auto installation processes.
 
 
16704
  *
16705
  * @return string If redirect is `false`, returns the next page the user should be redirected to.
16706
  */
16709
  $user_public_key,
16710
  $user_secret_key,
16711
  $is_marketing_allowed,
16712
+ $is_extensions_tracking_allowed,
16713
  array $installs,
16714
  $redirect = true,
16715
  $auto_install = false
16720
  $this->disable_opt_in_notice_and_lock_user();
16721
  }
16722
 
16723
+ if ( ! is_null( $is_extensions_tracking_allowed ) ) {
16724
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
16725
+ }
16726
+
16727
  $install_ids = array();
16728
 
16729
  foreach ( $installs as $install ) {
16833
  */
16834
  $license_key = fs_request_get( 'license_secret_key' );
16835
 
16836
+ $this->update_extensions_tracking_flag( fs_request_get_bool( 'is_extensions_tracking_allowed', true ) );
16837
+
16838
  $this->install_with_current_user( $license_key );
16839
  }
16840
  }
16879
  *
16880
  * @return \FS_Site|object|string If redirect is `false`, returns the next page the user should be redirected to, or the API error object if failed to install. If $setup_account is set to `false`, return the newly created install.
16881
  */
16882
+ function install_with_user(
16883
  FS_User $user,
16884
  $license_key = false,
16885
  $trial_plan_id = false,
16968
 
16969
  if ( ! empty( $license_key ) ) {
16970
  $extra_install_params['license_key'] = $this->apply_filters( 'license_key', $license_key );
16971
+
16972
+ if ( $silent ) {
16973
+ $extra_install_params['ignore_license_owner'] = true;
16974
+ }
16975
  } else if ( FS_Plugin_Plan::is_valid_id( $trial_plan_id ) ) {
16976
  $extra_install_params['trial_plan_id'] = $trial_plan_id;
16977
  }
16993
  ! $this->is_api_result_object( $result, 'installs' )
16994
  ) {
16995
  if ( ! empty( $args['license_key'] ) ) {
16996
+ // Pass the fully entered license key to the failure handler.
16997
  $args['license_key'] = $license_key;
16998
  }
16999
 
17370
  */
17371
  private function add_menu_action() {
17372
  if ( $this->is_activation_mode() ) {
17373
+ if ( $this->show_opt_in_on_setting_page() ) {
17374
  $this->override_plugin_menu_with_activation();
17375
  } else {
17376
  /**
17392
  }
17393
  } else if (
17394
  fs_request_is_action( 'sync_user' ) &&
17395
+ ( ! $this->has_settings_menu() || $this->show_opt_in_on_themes_page() )
17396
  ) {
17397
  $this->_handle_account_user_sync();
17398
  }
17640
  // Didn't ask to hide the pricing page.
17641
  $this->is_page_visible( 'pricing' ) &&
17642
  // Don't have a valid active license or has more than one plan.
17643
+ ( ! $this->is_paying() || ! $this->is_single_plan( true ) )
17644
  );
17645
  }
17646
 
17658
  return false;
17659
  }
17660
 
17661
+ if ( $this->show_opt_in_on_themes_page() ) {
17662
+ if ( ! fs_is_network_admin() ) {
17663
+ // Also add action links or submenu items when running in a free .org theme so the tabs will be visible.
17664
+ return true;
17665
+ }
17666
+ } else if ( $is_activation_mode ) {
17667
+ // Don't show submenu-items/tabs in activation mode, unless it's a wp.org theme.
17668
  return false;
17669
  }
17670
 
17744
  }
17745
 
17746
  if ( $add_submenu_items ) {
17747
+ if (! WP_FS__DEMO_MODE && ! $this->is_whitelabeled() ) {
17748
+ // Add contact page.
17749
+ $this->add_submenu_item(
17750
+ $this->get_text_inline( 'Contact Us', 'contact-us' ),
17751
+ array( &$this, '_contact_page_render' ),
17752
+ $this->get_plugin_name() . ' &ndash; ' . $this->get_text_inline( 'Contact Us', 'contact-us' ),
17753
+ 'manage_options',
17754
+ 'contact',
17755
+ 'Freemius::_clean_admin_content_section',
17756
+ WP_FS__DEFAULT_PRIORITY,
17757
+ $this->is_submenu_item_visible( 'contact' )
17758
+ );
17759
+ }
17760
 
17761
  if ( $this->has_addons() ) {
17762
  $this->add_submenu_item(
17775
  if ( $add_submenu_items ||
17776
  ( $is_activation_mode && $this->is_only_premium() && $this->is_admin_page( 'pricing' ) )
17777
  ) {
17778
+ if (! WP_FS__DEMO_MODE && ! $this->is_whitelabeled() ) {
17779
  $show_pricing = (
17780
  $this->is_submenu_item_visible( 'pricing' ) &&
17781
  $this->is_pricing_page_visible()
18140
 
18141
  #endregion ------------------------------------------------------------------
18142
 
18143
+ #--------------------------------------------------------------------------------
18144
+ #region Admin Notices
18145
+ #--------------------------------------------------------------------------------
18146
+
18147
+ /**
18148
+ * @author Vova Feldman (@svovaf)
18149
+ * @since 2.3.1
18150
+ *
18151
+ * @param string|string[] $ids
18152
+ * @param int|null $network_level_or_blog_id
18153
+ *
18154
+ * @uses FS_Admin_Notices::remove_sticky()
18155
+ */
18156
+ function remove_sticky( $ids, $network_level_or_blog_id = null ) {
18157
+ $this->_admin_notices->remove_sticky( $ids, $network_level_or_blog_id );
18158
+ }
18159
+
18160
+ #endregion
18161
 
18162
  #--------------------------------------------------------------------------------
18163
  #region Actions / Hooks / Filters
18534
  private function _store_site( $store = true, $network_level_or_blog_id = null, FS_Site $site = null ) {
18535
  $this->_logger->entrance();
18536
 
18537
+ if ( is_null( $site ) ) {
18538
+ $site = $this->_site;
18539
+ }
18540
+
18541
+ if ( !isset( $site ) || !is_object($site) || empty( $site->id ) ) {
18542
  $this->_logger->error( "Empty install ID, can't store site." );
18543
 
18544
  return;
18545
  }
18546
 
18547
+ $site_clone = clone $site;
 
18548
 
18549
  $sites = self::get_all_sites( $this->_module_type, $network_level_or_blog_id );
18550
 
18551
+ if ( is_object( $this->_user ) && $this->_user->id != $site->user_id ) {
18552
+ $this->sync_user_by_current_install( $site->user_id );
18553
 
18554
+ $prev_stored_user_id = $this->_storage->get( 'prev_user_id', false, $network_level_or_blog_id );
18555
+
18556
+ if ( empty( $prev_stored_user_id ) &&
18557
+ is_object($this->_user) && $this->_user->id != $site->user_id
18558
+ ) {
18559
+ /**
18560
+ * Store the current user ID as the previous user ID so that the previous user can be used
18561
+ * as the install's owner while the new owner's details are not yet available.
18562
+ *
18563
+ * This will be executed only in the `replica` site. For example, there are 2 sites, namely `original`
18564
+ * and `replica`, then an ownership change was initiated and completed in the `original`, the `replica`
18565
+ * will be using the previous user until it is updated again (e.g.: until the next clone of `original`
18566
+ * into `replica`.
18567
+ *
18568
+ * @author Leo Fajardo (@leorw)
18569
+ */
18570
+ $this->_storage->store( 'prev_user_id', $sites[ $this->_slug ]->user_id, $network_level_or_blog_id );
18571
+ }
18572
  }
18573
 
18574
+ $sites[ $this->_slug ] = $site_clone;
18575
 
18576
  $this->set_account_option( 'sites', $sites, $store, $network_level_or_blog_id );
18577
  }
18781
  * @since 2.2.4
18782
  */
18783
  private function purge_valid_user_licenses_cache() {
18784
+ if ( ! $this->is_registered() ) {
18785
+ return;
18786
+ }
18787
+
18788
  $this->get_api_user_scope()->purge_cache( $this->get_valid_user_licenses_endpoint() );
18789
  }
18790
 
19443
  return self::is_active_valid_license( $this->_license );
19444
  }
19445
 
19446
+ /**
19447
+ * @author Leo Fajardo (@leorw)
19448
+ * @since 2.3.1
19449
+ */
19450
+ function is_data_debug_mode() {
19451
+ if ( is_null( $this->is_whitelabeled ) || ! $this->is_whitelabeled ) {
19452
+ return false;
19453
+ }
19454
+
19455
+ $fs = $this->is_addon() ?
19456
+ $this->get_parent_instance() :
19457
+ $this;
19458
+
19459
+ if ( $fs->is_network_active() && fs_is_network_admin() ) {
19460
+ $is_developer_license_debug_mode = get_site_transient( "fs_{$this->get_id()}_data_debug_mode" );
19461
+ } else {
19462
+ $is_developer_license_debug_mode = get_transient( "fs_{$this->get_id()}_data_debug_mode" );
19463
+ }
19464
+
19465
+ return ( 'true' === $is_developer_license_debug_mode );
19466
+ }
19467
+
19468
+ /**
19469
+ * @author Leo Fajardo (@leorw)
19470
+ * @since 2.3.1
19471
+ */
19472
+ function _set_data_debug_mode() {
19473
+ if ( ! $this->is_whitelabeled( true ) ) {
19474
+ return;
19475
+ }
19476
+
19477
+ $license_or_user_key = fs_request_get( 'license_or_user_key' );
19478
+
19479
+ $transient_value = ( ! empty( $license_or_user_key ) ) ?
19480
+ 'true' :
19481
+ 'false';
19482
+
19483
+ if ( 'true' === $transient_value ) {
19484
+ $stored_key = $this->_storage->get( ! FS_User::is_valid_id( $this->_storage->last_license_user_id ) ?
19485
+ 'last_license_key' :
19486
+ 'last_license_user_key'
19487
+ );
19488
+
19489
+ if ( md5( $license_or_user_key ) !== $stored_key ) {
19490
+ $this->shoot_ajax_failure( sprintf(
19491
+ '%s... %s',
19492
+ $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ),
19493
+ $this->get_text_inline(
19494
+ 'seems like the key you entered doesn\'t match our records.',
19495
+ 'developer-or-license-not-found'
19496
+ )
19497
+ ) );
19498
+ }
19499
+ }
19500
+
19501
+ if ( $this->is_network_active() && fs_is_network_admin() ) {
19502
+ set_site_transient(
19503
+ "fs_{$this->get_id()}_data_debug_mode",
19504
+ $transient_value,
19505
+ WP_FS__TIME_24_HOURS_IN_SEC / 24
19506
+ );
19507
+ } else {
19508
+ set_transient(
19509
+ "fs_{$this->get_id()}_data_debug_mode",
19510
+ $transient_value,
19511
+ WP_FS__TIME_24_HOURS_IN_SEC / 24
19512
+ );
19513
+ }
19514
+
19515
+ if ( 'true' === $transient_value ) {
19516
+ $this->_admin_notices->add_sticky(
19517
+ $this->get_text_inline(
19518
+ 'Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the "Stop Debug" link.',
19519
+ 'data_debug_mode_enabled'
19520
+ ),
19521
+ 'data_debug_mode_enabled'
19522
+ );
19523
+ }
19524
+
19525
+ $this->shoot_ajax_success();
19526
+ }
19527
+
19528
  /**
19529
  * Check if a given license is active & valid (not expired).
19530
  *
19839
  } else {
19840
  // Authentication params are broken.
19841
  $this->_admin_notices->add(
19842
+ $this->get_text_inline( 'It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again.', 'wrong-authentication-param-message' ) . '<br> ' . $this->get_text_inline( 'Error received from the server:', 'server-error-message' ) . var_export( $result->error, true ),
19843
  $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
19844
  'error'
19845
  );
20006
  $this->get_network_install_blog_id()
20007
  );
20008
  } else {
20009
+ if ( ! is_object( $this->_license ) ) {
20010
+ $this->maybe_update_whitelabel_flag(
20011
+ FS_Plugin_License::is_valid_id( $site->license_id ) ?
20012
+ $this->get_license_by_id( $site->license_id ) :
20013
+ null
20014
+ );
20015
+ } else {
20016
+ $this->maybe_update_whitelabel_flag( $this->_license );
20017
+
20018
+ if ( $this->_license->is_expired() ) {
20019
+ if ( ! $this->has_features_enabled_license() ) {
20020
+ $this->_deactivate_license();
20021
+ $plan_change = 'downgraded';
20022
+ } else {
20023
+ $last_time_expired_license_notice_was_shown = $this->_storage->get( 'expired_license_notice_shown', 0 );
20024
+
20025
+ if ( time() - ( 14 * WP_FS__TIME_24_HOURS_IN_SEC ) >= $last_time_expired_license_notice_was_shown ) {
20026
+ /**
20027
+ * Show the expired license notice every 14 days.
20028
+ *
20029
+ * @author Leo Fajardo (@leorw)
20030
+ * @since 2.3.1
20031
+ */
20032
+ $plan_change = 'expired';
20033
+ }
20034
+ }
20035
  }
20036
  }
20037
 
20055
 
20056
  $hmm_text = $this->get_text_x_inline( 'Hmm', 'something somebody says when they are thinking about what you have just said.', 'hmm' ) . '...';
20057
 
20058
+ if ( $this->apply_filters( 'has_paid_plan_account', $this->has_paid_plan() ) ) {
20059
  switch ( $plan_change ) {
20060
  case 'none':
20061
  if ( ! $background && is_admin() ) {
20148
  'license_expired',
20149
  $hmm_text
20150
  );
20151
+
20152
+ $this->_storage->expired_license_notice_shown = WP_FS__SCRIPT_START_TIME;
20153
+
20154
  $this->_admin_notices->remove_sticky( 'plan_upgraded' );
20155
  break;
20156
  case 'trial_started':
20205
  * @author Vova Feldman (@svovaf)
20206
  * @since 1.0.5
20207
  *
20208
+ * @param bool $background
20209
+ * @param FS_Plugin_License|null $premium_license
20210
  */
20211
  protected function _activate_license( $background = false, $premium_license = null ) {
20212
  $this->_logger->entrance();
20400
 
20401
  if ( $show_notice ) {
20402
  $this->_admin_notices->add(
20403
+ sprintf( $this->is_only_premium() ?
20404
+ $this->get_text_inline( 'Your %s license was successfully deactivated.', 'license-deactivation-message_premium-only' ) :
20405
+ $this->get_text_inline( 'Your license was successfully deactivated, you are back to the %s plan.', 'license-deactivation-message' ),
20406
+ $this->get_plan_title()
20407
+ ),
20408
  $this->get_text_inline( 'O.K', 'ok' )
20409
  );
20410
  }
21017
 
21018
  $api = $this->get_api_site_or_plugin_scope();
21019
 
21020
+ $path = $this->add_show_pending( '/addons.json?enriched=true&count=50' );
21021
 
21022
  /**
21023
  * @since 1.2.1
21211
  return true;
21212
  }
21213
 
21214
+ /**
21215
+ * Completes ownership change by license.
21216
+ *
21217
+ * @author Leo Fajardo (@leorw)
21218
+ * @since 2.3.2
21219
+ *
21220
+ * @param number $user_id
21221
+ * @param array[string]number $install_ids_by_slug_map
21222
+ *
21223
+ */
21224
+ private function complete_ownership_change_by_license( $user_id, $install_ids_by_slug_map ) {
21225
+ $this->_logger->entrance();
21226
+
21227
+ $this->sync_user_by_current_install( $user_id );
21228
+
21229
+ $result = $this->get_api_user_scope( true )->get(
21230
+ "/installs.json?install_ids=" . implode( ',', $install_ids_by_slug_map )
21231
+ );
21232
+
21233
+ if ( $this->is_api_result_object( $result, 'installs' ) ) {
21234
+ $sites = self::get_all_sites( $this->get_module_type() );
21235
+ $install_ids_by_slug_map = array_flip( $install_ids_by_slug_map );
21236
+
21237
+ foreach ( $result->installs as $install ) {
21238
+ $site = new FS_Site( $install );
21239
+
21240
+ $sites[ $install_ids_by_slug_map[ $site->id ] ] = clone $site;
21241
+ }
21242
+
21243
+ $this->set_account_option( 'sites', $sites, true );
21244
+ }
21245
+ }
21246
+
21247
  /**
21248
  * Handle user name update.
21249
  *
21357
  * @return string
21358
  */
21359
  function get_after_activation_url( $filter, $params = array(), $network = null ) {
21360
+ if ( $this->show_opt_in_on_themes_page() &&
21361
  ( fs_request_has( 'pending_activation' ) ||
21362
  // For cases when the first time path is set, even though it's a WP.org theme.
21363
  fs_request_get_bool( $this->get_unique_affix() . '_show_optin' ) )
21412
  // Alias.
21413
  $oops_text = $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...';
21414
 
21415
+ $is_network_action = $this->is_network_level_action();
21416
+ $blog_id = $this->is_network_level_site_specific_action();
21417
+ $is_parent_plugin_action = ( $plugin_id == $this->get_id() );
21418
 
21419
  if ( is_numeric( $blog_id ) ) {
21420
  $this->switch_to_blog( $blog_id );
21426
  case 'opt_in':
21427
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
21428
 
21429
+ if ( $is_parent_plugin_action ) {
21430
  if ( $is_network_action && ! empty( $blog_id ) ) {
21431
  if ( ! $this->is_registered() ) {
21432
  $this->install_with_user(
21449
  case 'toggle_tracking':
21450
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
21451
 
21452
+ if ( $is_parent_plugin_action ) {
21453
  if ( $is_network_action && ! empty( $blog_id ) ) {
21454
  if ( $this->is_registered() ) {
21455
  if ( $this->is_tracking_prohibited() ) {
21484
  case 'delete_account':
21485
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
21486
 
21487
+ $is_network_deletion = $is_network_action && empty( $blog_id );
21488
+
21489
+ if ( $is_parent_plugin_action ) {
21490
+ // Delete add-on installs if have any.
21491
+ $installed_addons = $this->get_installed_addons();
21492
+ foreach ( $installed_addons as $fs_addon ) {
21493
+ if ( $is_network_deletion ) {
21494
+ $fs_addon->delete_network_account_event();
21495
+ } else {
21496
+ $fs_addon->delete_account_event();
21497
+ }
21498
+ }
21499
+
21500
+ if ( $is_network_deletion ) {
21501
  $this->delete_network_account_event();
21502
  } else {
21503
  $this->delete_account_event();
21513
  } else {
21514
  if ( $this->is_addon_activated( $plugin_id ) ) {
21515
  $fs_addon = self::get_instance_by_id( $plugin_id );
21516
+
21517
+ if ( $is_network_deletion ) {
21518
+ $fs_addon->delete_network_account_event();
21519
+ } else {
21520
+ $fs_addon->delete_account_event();
21521
+ }
21522
 
21523
  fs_redirect( $this->_get_admin_page_url( 'account' ) );
21524
  }
22118
  return $this->_plugin_api;
22119
  }
22120
 
22121
+ /**
22122
+ * Get bundle public API scope.
22123
+ *
22124
+ * @author Vova Feldman (@svovaf)
22125
+ * @since 2.3.1
22126
+ *
22127
+ * @return FS_Api
22128
+ */
22129
+ function get_api_bundle_scope() {
22130
+ return FS_Api::instance(
22131
+ $this->get_bundle_id(),
22132
+ 'plugin',
22133
+ $this->get_bundle_id(),
22134
+ $this->get_bundle_public_key(),
22135
+ ! $this->is_live(),
22136
+ false,
22137
+ $this->get_sdk_version()
22138
+ );
22139
+ }
22140
+
22141
  /**
22142
  * Get site API scope object (fallback to public plugin scope when not registered).
22143
  *
22471
  function _show_theme_activation_optin_dialog() {
22472
  fs_enqueue_local_style( 'fs_connect', '/admin/connect.css' );
22473
 
22474
+ add_action( 'admin_footer', array( &$this, '_add_fs_theme_activation_dialog' ) );
22475
  }
22476
 
22477
  /**
22479
  * @since 1.2.2
22480
  */
22481
  function _add_fs_theme_activation_dialog() {
22482
+ global $pagenow;
22483
+
22484
+ if ( 'themes.php' !== $pagenow ) {
22485
+ return;
22486
+ }
22487
+
22488
  $vars = array( 'id' => $this->_module_id );
22489
  fs_require_once_template( 'connect.php', $vars );
22490
  }
22572
  $add_upgrade_link = (
22573
  $add_action_links ||
22574
  ( $is_activation_mode && $this->is_only_premium() )
22575
+ ) && ! WP_FS__DEMO_MODE && ( ! $this->is_whitelabeled() );
22576
 
22577
  $add_addons_link = ( $add_action_links && $this->has_addons() );
22578
 
22661
 
22662
  $this->_logger->entrance();
22663
 
22664
+ /**
22665
+ * @author Vova Feldman (@svovaf)
22666
+ * @since 2.3.2 Allow opting out from usage-tracking for paid products too by giving the appropriate warning letting the user know the automatic updates mechanism cannot function without an ongoing connection to the licensing and updates engine.
22667
+ */
22668
+ /*if ( $this->is_premium() ) {
22669
+ // Don't add opt-in/out for premium code base.
22670
+ return;
22671
+ }*/
22672
+
22673
+ if ( $this->is_only_premium() && $this->is_free_plan() ) {
22674
+ // Don't add tracking links for premium-only products that were opted-in by relation (add-on or a parent product) before activating any license.
22675
+ return;
22676
+ }
22677
+
22678
  if ( fs_is_network_admin() ) {
22679
  if ( ! $this->_is_network_active ) {
22680
  // Don't add tracking links when browsing the network WP Admin and the plugin is not network active.
22725
  return;
22726
  }
22727
 
22728
+ if ( $this->add_ajax_action( 'update_tracking_permission', array( &$this, '_update_tracking_permission_callback' ) ) ) {
22729
+ return;
22730
+ }
22731
+
22732
  $link_text_id = '';
22733
  $url = '#';
22734
 
22738
  } else {
22739
  $link_text_id = $this->get_text_inline( 'Opt In', 'opt-in' );
22740
  }
 
 
22741
  } else if ( $this->is_anonymous() || $this->is_activation_mode() ) {
22742
  /**
22743
  * Show opt-in link only if skipped or in activation mode.
22754
  $url = $this->get_activation_url( $params );
22755
  }
22756
 
22757
+ add_action( 'admin_footer', array( &$this, '_add_optout_dialog' ) );
22758
+
22759
  if ( ! empty( $link_text_id ) && $this->is_plugin() && self::is_plugins_page() ) {
22760
  $this->add_plugin_action_link(
22761
  $link_text_id,
23445
  function _tabs_capture() {
23446
  $this->_logger->entrance();
23447
 
23448
+ if ( ! $this->is_product_settings_page() ||
23449
  ! $this->is_matching_url( $this->main_menu_url() )
23450
  ) {
23451
  return;
23500
  function _store_tabs_styles() {
23501
  $this->_logger->entrance();
23502
 
23503
+ if ( ! $this->is_product_settings_page() ||
23504
  ! $this->is_matching_url( $this->main_menu_url() )
23505
  ) {
23506
  return;
23574
  return false;
23575
  }
23576
 
23577
+ if ( self::NAVIGATION_TABS !== $this->_navigation ) {
23578
  // Only add tabs to themes for now.
23579
  return false;
23580
  }
23581
 
23582
+ if ( $this->is_theme() && ! $this->has_paid_plan() && ! $this->has_addons() ) {
23583
  // Only add tabs to monetizing themes.
23584
  return false;
23585
  }
23586
 
23587
+ if ( ! $this->is_product_settings_page() ) {
23588
+ // Only add tabs if browsing one of the product's setting pages.
23589
+ return false;
23590
+ }
23591
+
23592
+ if ( $this->is_activation_mode() && $this->is_activation_page() ) {
23593
+ // Don't include tabs in the activation page.
23594
  return false;
23595
  }
23596
 
24277
  }
24278
 
24279
  $modules = array_merge(
24280
+ array_values( self::maybe_get_entities_account_option( 'plugins', array() ) ),
24281
+ array_values( self::maybe_get_entities_account_option( 'themes', array() ) )
24282
  );
24283
 
24284
  foreach ( $modules as $module ) {
24383
  *
24384
  * @author Vova Feldman (@svovaf)
24385
  */
24386
+ self::shoot_ajax_success( array(
24387
+ 'is_marketing_allowed' => null,
24388
+ 'license_owner_id' => null
24389
+ ) );
24390
+ }
24391
+
24392
+ self::shoot_ajax_success( array(
24393
+ 'is_marketing_allowed' => $user_plugins[0]->is_marketing_allowed,
24394
+ 'license_owner_id' => ( isset( $user_plugins[0]->license_owner_id ) ? $user_plugins[0]->license_owner_id : null )
24395
+ ) );
24396
+ }
24397
+
24398
+ /**
24399
+ * @author Leo Fajardo (@leorw)
24400
+ * @since 2.3.2
24401
+ *
24402
+ * @param number[] $install_ids
24403
+ *
24404
+ * @return array {
24405
+ * An array of objects containing the installs' licenses owners data.
24406
+ *
24407
+ * @property number $id User ID.
24408
+ * @property string $email User email (can be masked email).
24409
+ * }
24410
+ */
24411
+ private function fetch_installs_licenses_owners_data( $install_ids ) {
24412
+ $this->_logger->entrance();
24413
+
24414
+ $response = $this->get_api_user_scope()->get(
24415
+ '/licenses_owners.json?install_ids=' . implode( ',', $install_ids )
24416
+ );
24417
+
24418
+ $license_owners = null;
24419
+
24420
+ if ( $this->is_api_result_object( $response, 'owners' ) ) {
24421
+ $license_owners = $response->owners;
24422
  }
24423
 
24424
+ return $license_owners;
24425
  }
24426
 
24427
  /**
24457
  }
24458
 
24459
  $modules = array_merge(
24460
+ array_values( self::maybe_get_entities_account_option( 'plugins', array() ) ),
24461
+ array_values( self::maybe_get_entities_account_option( 'themes', array() ) )
24462
  );
24463
 
24464
  foreach ( $modules as $key => $module ) {
vendor/freemius/wordpress-sdk/includes/class-fs-plugin-updater.php CHANGED
@@ -102,7 +102,9 @@
102
  'edit_and_echo_plugin_update_row'
103
  ), 11, 2 );
104
 
105
- add_action( 'admin_head', array( &$this, 'catch_plugin_information_dialog_contents' ) );
 
 
106
 
107
  if ( ! WP_FS__IS_PRODUCTION_MODE ) {
108
  add_filter( 'http_request_host_is_external', array(
@@ -238,6 +240,12 @@
238
  * @since 2.0.0
239
  */
240
  private function add_transient_filters() {
 
 
 
 
 
 
241
  add_filter( 'pre_set_site_transient_update_plugins', array(
242
  &$this,
243
  'pre_set_site_transient_update_plugins_filter'
@@ -487,13 +495,35 @@
487
  return $transient_data;
488
  }
489
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
490
  if ( ! isset( $this->_update_details ) ) {
491
  // Get plugin's newest update.
492
  $new_version = $this->_fs->get_update(
493
  false,
494
  fs_request_get_bool( 'force-check' ),
495
  WP_FS__TIME_24_HOURS_IN_SEC / 24,
496
- $this->_fs->get_plugin_version()
497
  );
498
 
499
  $this->_update_details = false;
102
  'edit_and_echo_plugin_update_row'
103
  ), 11, 2 );
104
 
105
+ if ( ! $this->_fs->has_any_active_valid_license() ) {
106
+ add_action( 'admin_head', array( &$this, 'catch_plugin_information_dialog_contents' ) );
107
+ }
108
 
109
  if ( ! WP_FS__IS_PRODUCTION_MODE ) {
110
  add_filter( 'http_request_host_is_external', array(
240
  * @since 2.0.0
241
  */
242
  private function add_transient_filters() {
243
+ if ( $this->_fs->is_premium() && ! $this->_fs->is_tracking_allowed() ) {
244
+ $this->_logger->log( 'Opted out sites cannot receive automatic software updates.' );
245
+
246
+ return;
247
+ }
248
+
249
  add_filter( 'pre_set_site_transient_update_plugins', array(
250
  &$this,
251
  'pre_set_site_transient_update_plugins_filter'
495
  return $transient_data;
496
  }
497
 
498
+ global $wp_current_filter;
499
+
500
+ $current_plugin_version = $this->_fs->get_plugin_version();
501
+
502
+ if ( ! empty( $wp_current_filter ) && 'upgrader_process_complete' === $wp_current_filter[0] ) {
503
+ if (
504
+ is_null( $this->_update_details ) ||
505
+ ( is_object( $this->_update_details ) && $this->_update_details->new_version !== $current_plugin_version )
506
+ ) {
507
+ /**
508
+ * After an update, clear the stored update details and reparse the plugin's main file in order to get
509
+ * the updated version's information and prevent the previous update information from showing up on the
510
+ * updates page.
511
+ *
512
+ * @author Leo Fajardo (@leorw)
513
+ * @since 2.3.1
514
+ */
515
+ $this->_update_details = null;
516
+ $current_plugin_version = $this->_fs->get_plugin_version( true );
517
+ }
518
+ }
519
+
520
  if ( ! isset( $this->_update_details ) ) {
521
  // Get plugin's newest update.
522
  $new_version = $this->_fs->get_update(
523
  false,
524
  fs_request_get_bool( 'force-check' ),
525
  WP_FS__TIME_24_HOURS_IN_SEC / 24,
526
+ $current_plugin_version
527
  );
528
 
529
  $this->_update_details = false;
vendor/freemius/wordpress-sdk/includes/class-fs-storage.php CHANGED
@@ -336,57 +336,62 @@
336
  private static function load_network_options_map() {
337
  self::$_NETWORK_OPTIONS_MAP = array(
338
  // Network level options.
339
- 'affiliate_application_data' => 0,
340
- 'beta_data' => 0,
341
- 'connectivity_test' => 0,
342
- 'handle_gdpr_admin_notice' => 0,
343
- 'has_trial_plan' => 0,
344
- 'install_sync_timestamp' => 0,
345
- 'install_sync_cron' => 0,
346
- 'is_anonymous_ms' => 0,
347
- 'is_network_activated' => 0,
348
- 'is_on' => 0,
349
- 'is_plugin_new_install' => 0,
350
- 'network_install_blog_id' => 0,
351
- 'pending_sites_info' => 0,
352
- 'plugin_last_version' => 0,
353
- 'plugin_main_file' => 0,
354
- 'plugin_version' => 0,
355
- 'sdk_downgrade_mode' => 0,
356
- 'sdk_last_version' => 0,
357
- 'sdk_upgrade_mode' => 0,
358
- 'sdk_version' => 0,
359
- 'sticky_optin_added_ms' => 0,
360
- 'subscriptions' => 0,
361
- 'sync_timestamp' => 0,
362
- 'sync_cron' => 0,
363
- 'was_plugin_loaded' => 0,
364
- 'network_user_id' => 0,
365
- 'plugin_upgrade_mode' => 0,
366
- 'plugin_downgrade_mode' => 0,
367
- 'is_network_connected' => 0,
368
  /**
369
  * Special flag that is used when a super-admin upgrades to the new version of the SDK that
370
  * supports network level integration, when the connection decision wasn't made for all of the
371
  * sites in the network.
372
  */
373
- 'is_network_activation' => 0,
374
 
375
  // When network activated, then network level.
376
- 'install_timestamp' => 1,
377
- 'prev_is_premium' => 1,
378
- 'require_license_activation' => 1,
379
 
380
  // If not network activated OR delegated, then site level.
381
- 'activation_timestamp' => 2,
382
- 'prev_user_id' => 2,
383
- 'sticky_optin_added' => 2,
384
- 'uninstall_reason' => 2,
385
- 'is_pending_activation' => 2,
386
- 'pending_license_key' => 2,
 
 
 
 
 
387
 
388
  // Site level options.
389
- 'is_anonymous' => 3,
390
  );
391
  }
392
 
336
  private static function load_network_options_map() {
337
  self::$_NETWORK_OPTIONS_MAP = array(
338
  // Network level options.
339
+ 'affiliate_application_data' => 0,
340
+ 'beta_data' => 0,
341
+ 'connectivity_test' => 0,
342
+ 'handle_gdpr_admin_notice' => 0,
343
+ 'has_trial_plan' => 0,
344
+ 'install_sync_timestamp' => 0,
345
+ 'install_sync_cron' => 0,
346
+ 'is_anonymous_ms' => 0,
347
+ 'is_network_activated' => 0,
348
+ 'is_on' => 0,
349
+ 'is_plugin_new_install' => 0,
350
+ 'network_install_blog_id' => 0,
351
+ 'pending_sites_info' => 0,
352
+ 'plugin_last_version' => 0,
353
+ 'plugin_main_file' => 0,
354
+ 'plugin_version' => 0,
355
+ 'sdk_downgrade_mode' => 0,
356
+ 'sdk_last_version' => 0,
357
+ 'sdk_upgrade_mode' => 0,
358
+ 'sdk_version' => 0,
359
+ 'sticky_optin_added_ms' => 0,
360
+ 'subscriptions' => 0,
361
+ 'sync_timestamp' => 0,
362
+ 'sync_cron' => 0,
363
+ 'was_plugin_loaded' => 0,
364
+ 'network_user_id' => 0,
365
+ 'plugin_upgrade_mode' => 0,
366
+ 'plugin_downgrade_mode' => 0,
367
+ 'is_network_connected' => 0,
368
  /**
369
  * Special flag that is used when a super-admin upgrades to the new version of the SDK that
370
  * supports network level integration, when the connection decision wasn't made for all of the
371
  * sites in the network.
372
  */
373
+ 'is_network_activation' => 0,
374
 
375
  // When network activated, then network level.
376
+ 'install_timestamp' => 1,
377
+ 'prev_is_premium' => 1,
378
+ 'require_license_activation' => 1,
379
 
380
  // If not network activated OR delegated, then site level.
381
+ 'activation_timestamp' => 2,
382
+ 'expired_license_notice_shown' => 2,
383
+ 'is_whitelabeled' => 2,
384
+ 'last_license_key' => 2,
385
+ 'last_license_user_id' => 2,
386
+ 'prev_user_id' => 2,
387
+ 'sticky_optin_added' => 2,
388
+ 'uninstall_reason' => 2,
389
+ 'is_pending_activation' => 2,
390
+ 'pending_license_key' => 2,
391
+ 'is_extensions_tracking_allowed' => 2,
392
 
393
  // Site level options.
394
+ 'is_anonymous' => 3,
395
  );
396
  }
397
 
vendor/freemius/wordpress-sdk/includes/customizer/class-fs-customizer-upsell-control.php CHANGED
@@ -58,8 +58,12 @@
58
  $this->fs->get_trial_url() :
59
  $this->fs->get_upgrade_url();
60
 
 
 
 
 
61
  // Load features.
62
- $pricing = $this->fs->get_api_plugin_scope()->get( $this->fs->add_show_pending( "pricing.json" ) );
63
 
64
  if ( $this->fs->is_api_result_object( $pricing, 'plans' ) ) {
65
  // Add support features.
58
  $this->fs->get_trial_url() :
59
  $this->fs->get_upgrade_url();
60
 
61
+ $api = FS_Plugin::is_valid_id( $this->fs->get_bundle_id() ) ?
62
+ $this->fs->get_api_bundle_scope() :
63
+ $this->fs->get_api_plugin_scope();
64
+
65
  // Load features.
66
+ $pricing = $api->get( $this->fs->add_show_pending( "pricing.json" ) );
67
 
68
  if ( $this->fs->is_api_result_object( $pricing, 'plans' ) ) {
69
  // Add support features.
vendor/freemius/wordpress-sdk/includes/entities/class-fs-entity.php CHANGED
@@ -146,4 +146,14 @@
146
  static function is_valid_id($id){
147
  return is_numeric($id);
148
  }
 
 
 
 
 
 
 
 
 
 
149
  }
146
  static function is_valid_id($id){
147
  return is_numeric($id);
148
  }
149
+
150
+ /**
151
+ * @author Leo Fajardo (@leorw)
152
+ * @since 2.3.1
153
+ *
154
+ * @return string
155
+ */
156
+ public static function get_class_name() {
157
+ return get_called_class();
158
+ }
159
  }
vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin-license.php CHANGED
@@ -74,6 +74,10 @@
74
  * @var string
75
  */
76
  public $secret_key;
 
 
 
 
77
  /**
78
  * @var bool $is_free_localhost Defaults to true. If true, allow unlimited localhost installs with the same
79
  * license.
@@ -287,4 +291,33 @@
287
  function total_activations() {
288
  return ( $this->activated + $this->activated_local );
289
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
290
  }
74
  * @var string
75
  */
76
  public $secret_key;
77
+ /**
78
+ * @var bool
79
+ */
80
+ public $is_whitelabeled;
81
  /**
82
  * @var bool $is_free_localhost Defaults to true. If true, allow unlimited localhost installs with the same
83
  * license.
291
  function total_activations() {
292
  return ( $this->activated + $this->activated_local );
293
  }
294
+
295
+ /**
296
+ * @author Vova Feldman (@svovaf)
297
+ * @since 2.3.1
298
+ *
299
+ * @return string
300
+ */
301
+ function get_html_escaped_masked_secret_key() {
302
+ return self::mask_secret_key_for_html( $this->secret_key );
303
+ }
304
+
305
+ /**
306
+ * @author Vova Feldman (@svovaf)
307
+ * @since 2.3.1
308
+ *
309
+ * @param string $secret_key
310
+ *
311
+ * @return string
312
+ */
313
+ static function mask_secret_key_for_html( $secret_key ) {
314
+ return (
315
+ // Initial 6 chars - sk_ABC
316
+ htmlspecialchars( substr( $secret_key, 0, 6 ) ) .
317
+ // Masking
318
+ str_pad( '', ( strlen( $secret_key ) - 9 ) * 6, '&bull;' ) .
319
+ // Last 3 chars.
320
+ htmlspecialchars( substr( $secret_key, - 3 ) )
321
+ );
322
+ }
323
  }
vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin.php CHANGED
@@ -99,6 +99,11 @@
99
  * @var null|number
100
  */
101
  public $bundle_id;
 
 
 
 
 
102
 
103
  const AFFILIATE_MODERATION_CUSTOMERS = 'customers';
104
 
99
  * @var null|number
100
  */
101
  public $bundle_id;
102
+ /**
103
+ * @since 2.3.1
104
+ * @var null|string
105
+ */
106
+ public $bundle_public_key;
107
 
108
  const AFFILIATE_MODERATION_CUSTOMERS = 'customers';
109
 
vendor/freemius/wordpress-sdk/includes/entities/class-fs-pricing.php CHANGED
@@ -34,6 +34,13 @@
34
  * @var null|float
35
  */
36
  public $lifetime_price;
 
 
 
 
 
 
 
37
 
38
  #endregion Properties
39
 
@@ -138,4 +145,13 @@
138
  return ( $this->monthly_price * 12 - $this->annual_price ) * ( $this->is_unlimited() ? 1 : $this->licenses );
139
  }
140
 
 
 
 
 
 
 
 
 
 
141
  }
34
  * @var null|float
35
  */
36
  public $lifetime_price;
37
+ /**
38
+ * @author Leo Fajardo (@leorw)
39
+ * @since 2.3.1
40
+ *
41
+ * @var string One of the following: `usd`, `gbp`, `eur`.
42
+ */
43
+ public $currency;
44
 
45
  #endregion Properties
46
 
145
  return ( $this->monthly_price * 12 - $this->annual_price ) * ( $this->is_unlimited() ? 1 : $this->licenses );
146
  }
147
 
148
+ /**
149
+ * @author Leo Fajardo (@leorw)
150
+ * @since 2.3.1
151
+ *
152
+ * @return bool
153
+ */
154
+ function is_usd() {
155
+ return ( 'usd' === $this->currency );
156
+ }
157
  }
vendor/freemius/wordpress-sdk/includes/entities/class-fs-site.php CHANGED
@@ -172,12 +172,12 @@
172
  fs_ends_with( $subdomain, '.staging.wpengine.com' ) ||
173
  fs_ends_with( $subdomain, '.dev.wpengine.com' ) ||
174
  // Pantheon
175
- ( fs_ends_with($subdomain, 'pantheonsite.io') &&
176
- (fs_starts_with($subdomain, 'test-') || fs_starts_with($subdomain, 'dev-'))) ||
177
  // Cloudways
178
  fs_ends_with( $subdomain, '.cloudwaysapps.com' ) ||
179
  // Kinsta
180
- (fs_ends_with($subdomain, '.kinsta.com') && fs_starts_with($subdomain, 'staging-')) ||
181
  // DesktopServer
182
  fs_ends_with( $subdomain, '.dev.cc' )
183
  );
172
  fs_ends_with( $subdomain, '.staging.wpengine.com' ) ||
173
  fs_ends_with( $subdomain, '.dev.wpengine.com' ) ||
174
  // Pantheon
175
+ ( fs_ends_with( $subdomain, 'pantheonsite.io' ) &&
176
+ ( fs_starts_with( $subdomain, 'test-' ) || fs_starts_with( $subdomain, 'dev-' ) ) ) ||
177
  // Cloudways
178
  fs_ends_with( $subdomain, '.cloudwaysapps.com' ) ||
179
  // Kinsta
180
+ ( fs_starts_with( $subdomain, 'staging-' ) && ( fs_ends_with( $subdomain, '.kinsta.com' ) || fs_ends_with( $subdomain, '.kinsta.cloud' ) ) ) ||
181
  // DesktopServer
182
  fs_ends_with( $subdomain, '.dev.cc' )
183
  );
vendor/freemius/wordpress-sdk/includes/entities/class-fs-subscription.php CHANGED
@@ -1,125 +1,147 @@
1
  <?php
2
- /**
3
- * @package Freemius
4
- * @copyright Copyright (c) 2015, Freemius, Inc.
5
- * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
6
- * @since 1.0.9
7
- */
8
 
9
- if ( ! defined( 'ABSPATH' ) ) {
10
- exit;
11
- }
12
 
13
- class FS_Subscription extends FS_Entity {
14
 
15
- #region Properties
16
 
17
- /**
18
- * @var number
19
- */
20
- public $user_id;
21
- /**
22
- * @var number
23
- */
24
- public $install_id;
25
- /**
26
- * @var number
27
- */
28
- public $plan_id;
29
- /**
30
- * @var number
31
- */
32
- public $license_id;
33
- /**
34
- * @var float
35
- */
36
- public $total_gross;
37
- /**
38
- * @var float
39
- */
40
- public $amount_per_cycle;
41
- /**
42
- * @var int # of months
43
- */
44
- public $billing_cycle;
45
- /**
46
- * @var float
47
- */
48
- public $outstanding_balance;
49
- /**
50
- * @var int
51
- */
52
- public $failed_payments;
53
- /**
54
- * @var string
55
- */
56
- public $gateway;
57
- /**
58
- * @var string
59
- */
60
- public $external_id;
61
- /**
62
- * @var string|null
63
- */
64
- public $trial_ends;
65
- /**
66
- * @var string|null Datetime of the next payment, or null if cancelled
67
- */
68
- public $next_payment;
69
- /**
70
- * @var string|null
71
- */
72
- public $vat_id;
73
- /**
74
- * @var string Two characters country code
75
- */
76
- public $country_code;
 
 
 
 
 
 
77
 
78
- #endregion Properties
79
 
80
- /**
81
- * @param object|bool $subscription
82
- */
83
- function __construct( $subscription = false ) {
84
- parent::__construct( $subscription );
85
- }
86
 
87
- static function get_type() {
88
- return 'subscription';
89
- }
90
 
91
- /**
92
- * Check if subscription is active.
93
- *
94
- * @author Vova Feldman (@svovaf)
95
- * @since 1.0.9
96
- *
97
- * @return bool
98
- */
99
- function is_active() {
100
- return ! empty( $this->next_payment ) &&
101
- ( strtotime( $this->next_payment ) > WP_FS__SCRIPT_START_TIME );
102
- }
103
 
104
- /**
105
- * Subscription considered to be new without any payments
106
- * if the next payment should be made within less than 24 hours
107
- * from the subscription creation.
108
- *
109
- * @author Vova Feldman (@svovaf)
110
- * @since 1.0.9
111
- *
112
- * @return bool
113
- */
114
- function is_first_payment_pending() {
115
- return ( WP_FS__TIME_24_HOURS_IN_SEC >= strtotime( $this->next_payment ) - strtotime( $this->created ) );
116
- }
117
 
118
- /**
119
- * @author Vova Feldman (@svovaf)
120
- * @since 1.1.7
121
- */
122
- function has_trial() {
123
- return ! is_null( $this->trial_ends );
124
- }
125
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
2
+ /**
3
+ * @package Freemius
4
+ * @copyright Copyright (c) 2015, Freemius, Inc.
5
+ * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
6
+ * @since 1.0.9
7
+ */
8
 
9
+ if ( ! defined( 'ABSPATH' ) ) {
10
+ exit;
11
+ }
12
 
13
+ class FS_Subscription extends FS_Entity {
14
 
15
+ #region Properties
16
 
17
+ /**
18
+ * @var number
19
+ */
20
+ public $user_id;
21
+ /**
22
+ * @var number
23
+ */
24
+ public $install_id;
25
+ /**
26
+ * @var number
27
+ */
28
+ public $plan_id;
29
+ /**
30
+ * @var number
31
+ */
32
+ public $license_id;
33
+ /**
34
+ * @var float
35
+ */
36
+ public $total_gross;
37
+ /**
38
+ * @var float
39
+ */
40
+ public $amount_per_cycle;
41
+ /**
42
+ * @var int # of months
43
+ */
44
+ public $billing_cycle;
45
+ /**
46
+ * @var float
47
+ */
48
+ public $outstanding_balance;
49
+ /**
50
+ * @var int
51
+ */
52
+ public $failed_payments;
53
+ /**
54
+ * @var string
55
+ */
56
+ public $gateway;
57
+ /**
58
+ * @var string
59
+ */
60
+ public $external_id;
61
+ /**
62
+ * @var string|null
63
+ */
64
+ public $trial_ends;
65
+ /**
66
+ * @var string|null Datetime of the next payment, or null if cancelled.
67
+ */
68
+ public $next_payment;
69
+ /**
70
+ * @since 2.3.1
71
+ *
72
+ * @var string|null Datetime of the cancellation.
73
+ */
74
+ public $canceled_at;
75
+ /**
76
+ * @var string|null
77
+ */
78
+ public $vat_id;
79
+ /**
80
+ * @var string Two characters country code
81
+ */
82
+ public $country_code;
83
 
84
+ #endregion Properties
85
 
86
+ /**
87
+ * @param object|bool $subscription
88
+ */
89
+ function __construct( $subscription = false ) {
90
+ parent::__construct( $subscription );
91
+ }
92
 
93
+ static function get_type() {
94
+ return 'subscription';
95
+ }
96
 
97
+ /**
98
+ * Check if subscription is active.
99
+ *
100
+ * @author Vova Feldman (@svovaf)
101
+ * @since 1.0.9
102
+ *
103
+ * @return bool
104
+ */
105
+ function is_active() {
106
+ if ( $this->is_canceled() ) {
107
+ return false;
108
+ }
109
 
110
+ return (
111
+ ! empty( $this->next_payment ) &&
112
+ strtotime( $this->next_payment ) > WP_FS__SCRIPT_START_TIME
113
+ );
114
+ }
 
 
 
 
 
 
 
 
115
 
116
+ /**
117
+ * @author Vova Feldman (@svovaf)
118
+ * @since 2.3.1
119
+ *
120
+ * @return bool
121
+ */
122
+ function is_canceled() {
123
+ return ! is_null( $this->canceled_at );
124
+ }
125
+
126
+ /**
127
+ * Subscription considered to be new without any payments
128
+ * if the next payment should be made within less than 24 hours
129
+ * from the subscription creation.
130
+ *
131
+ * @author Vova Feldman (@svovaf)
132
+ * @since 1.0.9
133
+ *
134
+ * @return bool
135
+ */
136
+ function is_first_payment_pending() {
137
+ return ( WP_FS__TIME_24_HOURS_IN_SEC >= strtotime( $this->next_payment ) - strtotime( $this->created ) );
138
+ }
139
+
140
+ /**
141
+ * @author Vova Feldman (@svovaf)
142
+ * @since 1.1.7
143
+ */
144
+ function has_trial() {
145
+ return ! is_null( $this->trial_ends );
146
+ }
147
+ }
vendor/freemius/wordpress-sdk/includes/fs-core-functions.php CHANGED
@@ -63,62 +63,70 @@
63
  /* Scripts and styles including.
64
  --------------------------------------------------------------------------------------------*/
65
 
66
- /**
67
- * Generates an absolute URL to the given path. This function ensures that the URL will be correct whether the asset
68
- * is inside a plugin's folder or a theme's folder.
69
- *
70
- * Examples:
71
- * 1. "themes" folder
72
- * Path: C:/xampp/htdocs/fswp/wp-content/themes/twentytwelve/freemius/assets/css/admin/common.css
73
- * URL: http://fswp:8080/wp-content/themes/twentytwelve/freemius/assets/css/admin/common.css
74
- *
75
- * 2. "plugins" folder
76
- * Path: C:/xampp/htdocs/fswp/wp-content/plugins/rating-widget-premium/freemius/assets/css/admin/common.css
77
- * URL: http://fswp:8080/wp-content/plugins/rating-widget-premium/freemius/assets/css/admin/common.css
78
- *
79
- * @author Leo Fajardo (@leorw)
80
- * @since 1.2.2
81
- *
82
- * @param string $asset_abs_path Asset's absolute path.
83
- *
84
- * @return string Asset's URL.
85
- */
86
- function fs_asset_url( $asset_abs_path ) {
87
- $wp_content_dir = fs_normalize_path( WP_CONTENT_DIR );
88
- $asset_abs_path = fs_normalize_path( $asset_abs_path );
89
-
90
- if ( 0 === strpos( $asset_abs_path, $wp_content_dir ) ) {
91
- // Handle both theme and plugin assets located in the standard directories.
92
- $asset_rel_path = str_replace( $wp_content_dir, '', $asset_abs_path );
93
- $asset_url = content_url( fs_normalize_path( $asset_rel_path ) );
94
- } else {
95
- $wp_plugins_dir = fs_normalize_path( WP_PLUGIN_DIR );
96
- if ( 0 === strpos( $asset_abs_path, $wp_plugins_dir ) ) {
97
- // Try to handle plugin assets that may be located in a non-standard plugins directory.
98
- $asset_rel_path = str_replace( $wp_plugins_dir, '', $asset_abs_path );
99
- $asset_url = plugins_url( fs_normalize_path( $asset_rel_path ) );
100
  } else {
101
- // Try to handle theme assets that may be located in a non-standard themes directory.
102
- $active_theme_stylesheet = get_stylesheet();
103
- $wp_themes_dir = fs_normalize_path( trailingslashit( get_theme_root( $active_theme_stylesheet ) ) );
104
- $asset_rel_path = str_replace( $wp_themes_dir, '', fs_normalize_path( $asset_abs_path ) );
105
- $asset_url = trailingslashit( get_theme_root_uri( $active_theme_stylesheet ) ) . fs_normalize_path( $asset_rel_path );
 
 
 
 
 
 
 
106
  }
107
- }
108
 
109
- return $asset_url;
 
110
  }
111
 
112
- function fs_enqueue_local_style( $handle, $path, $deps = array(), $ver = false, $media = 'all' ) {
113
- wp_enqueue_style( $handle, fs_asset_url( WP_FS__DIR_CSS . '/' . trim( $path, '/' ) ), $deps, $ver, $media );
 
 
114
  }
115
 
116
- function fs_enqueue_local_script( $handle, $path, $deps = array(), $ver = false, $in_footer = 'all' ) {
117
- wp_enqueue_script( $handle, fs_asset_url( WP_FS__DIR_JS . '/' . trim( $path, '/' ) ), $deps, $ver, $in_footer );
 
 
118
  }
119
 
120
- function fs_img_url( $path, $img_dir = WP_FS__DIR_IMG ) {
121
- return ( fs_asset_url( $img_dir . '/' . trim( $path, '/' ) ) );
 
 
122
  }
123
 
124
  #--------------------------------------------------------------------------------
@@ -315,138 +323,191 @@
315
 
316
  /* Core UI.
317
  --------------------------------------------------------------------------------------------*/
318
- /**
319
- * @param number $module_id
320
- * @param string $page
321
- * @param string $action
322
- * @param string $title
323
- * @param string $button_class
324
- * @param array $params
325
- * @param bool $is_primary
326
- * @param bool $is_small
327
- * @param string|bool $icon_class Optional class for an icon (since 1.1.7).
328
- * @param string|bool $confirmation Optional confirmation message before submit (since 1.1.7).
329
- * @param string $method Since 1.1.7
330
- *
331
- * @uses fs_ui_get_action_button()
332
- */
333
- function fs_ui_action_button(
334
- $module_id,
335
- $page,
336
- $action,
337
- $title,
338
- $button_class = '',
339
- $params = array(),
340
- $is_primary = true,
341
- $is_small = false,
342
- $icon_class = false,
343
- $confirmation = false,
344
- $method = 'GET'
345
- ) {
346
- echo fs_ui_get_action_button(
347
  $module_id,
348
  $page,
349
  $action,
350
  $title,
351
- $button_class,
352
- $params,
353
- $is_primary,
354
- $is_small,
355
- $icon_class,
356
- $confirmation,
357
- $method
358
- );
359
- }
360
-
361
- /**
362
- * @author Vova Feldman (@svovaf)
363
- * @since 1.1.7
364
- *
365
- * @param number $module_id
366
- * @param string $page
367
- * @param string $action
368
- * @param string $title
369
- * @param string $button_class
370
- * @param array $params
371
- * @param bool $is_primary
372
- * @param bool $is_small
373
- * @param string|bool $icon_class Optional class for an icon.
374
- * @param string|bool $confirmation Optional confirmation message before submit.
375
- * @param string $method
376
- *
377
- * @return string
378
- */
379
- function fs_ui_get_action_button(
380
- $module_id,
381
- $page,
382
- $action,
383
- $title,
384
- $button_class = '',
385
- $params = array(),
386
- $is_primary = true,
387
- $is_small = false,
388
- $icon_class = false,
389
- $confirmation = false,
390
- $method = 'GET'
391
- ) {
392
- // Prepend icon (if set).
393
- $title = ( is_string( $icon_class ) ? '<i class="' . $icon_class . '"></i> ' : '' ) . $title;
394
-
395
- if ( is_string( $confirmation ) ) {
396
- return sprintf( '<form action="%s" method="%s"><input type="hidden" name="fs_action" value="%s">%s<a href="#" class="%s" onclick="if (confirm(\'%s\')) this.parentNode.submit(); return false;">%s</a></form>',
397
- freemius( $module_id )->_get_admin_page_url( $page, $params ),
398
- $method,
399
  $action,
400
- wp_nonce_field( $action, '_wpnonce', true, false ),
401
- 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
 
 
 
 
402
  $confirmation,
403
- $title
404
- );
405
- } else if ( 'GET' !== strtoupper( $method ) ) {
406
- return sprintf( '<form action="%s" method="%s"><input type="hidden" name="fs_action" value="%s">%s<a href="#" class="%s" onclick="this.parentNode.submit(); return false;">%s</a></form>',
407
- freemius( $module_id )->_get_admin_page_url( $page, $params ),
408
- $method,
409
- $action,
410
- wp_nonce_field( $action, '_wpnonce', true, false ),
411
- 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
412
- $title
413
- );
414
- } else {
415
- return sprintf( '<a href="%s" class="%s">%s</a></form>',
416
- wp_nonce_url( freemius( $module_id )->_get_admin_page_url( $page, array_merge( $params, array( 'fs_action' => $action ) ) ), $action ),
417
- 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
418
- $title
419
  );
420
  }
421
  }
422
 
423
- function fs_ui_action_link( $module_id, $page, $action, $title, $params = array() ) {
424
- ?><a class=""
425
- href="<?php echo wp_nonce_url( freemius( $module_id )->_get_admin_page_url( $page, array_merge( $params, array( 'fs_action' => $action ) ) ), $action ) ?>"><?php echo $title ?></a><?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
426
  }
427
 
428
- /*function fs_error_handler($errno, $errstr, $errfile, $errline)
429
- {
430
- if (false === strpos($errfile, 'freemius/'))
431
- {
432
- // @todo Dump Freemius errors to local log.
433
- }
434
-
435
- // switch ($errno) {
436
- // case E_USER_ERROR:
437
- // break;
438
- // case E_WARNING:
439
- // case E_USER_WARNING:
440
- // break;
441
- // case E_NOTICE:
442
- // case E_USER_NOTICE:
443
- // break;
444
- // default:
445
- // break;
446
- // }
447
  }
448
 
449
- set_error_handler('fs_error_handler');*/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
450
 
451
  if ( ! function_exists( 'fs_nonce_url' ) ) {
452
  /**
@@ -634,71 +695,75 @@
634
 
635
  #endregion Url Canonization ------------------------------------------------------------------
636
 
637
- /**
638
- * @author Vova Feldman (@svovaf)
639
- *
640
- * @since 1.2.2 Changed to usage of WP_Filesystem_Direct.
641
- *
642
- * @param string $from URL
643
- * @param string $to File path.
644
- *
645
- * @return bool Is successfully downloaded.
646
- */
647
- function fs_download_image( $from, $to ) {
648
- $dir = dirname( $to );
 
649
 
650
- if ( 'direct' !== get_filesystem_method( array(), $dir ) ) {
651
- return false;
652
- }
653
 
654
- if ( ! class_exists( 'WP_Filesystem_Direct' ) ) {
655
- require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
656
- require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
657
- }
658
 
659
- $fs = new WP_Filesystem_Direct( '' );
660
- $tmpfile = download_url( $from );
661
 
662
- if ( $tmpfile instanceof WP_Error ) {
663
- // Issue downloading the file.
664
- return false;
665
- }
666
 
667
- $fs->copy( $tmpfile, $to );
668
- $fs->delete( $tmpfile );
669
 
670
- return true;
 
671
  }
672
 
673
  /* General Utilities
674
  --------------------------------------------------------------------------------------------*/
675
 
676
- /**
677
- * Sorts an array by the value of the priority key.
678
- *
679
- * @author Daniel Iser (@danieliser)
680
- * @since 1.1.7
681
- *
682
- * @param $a
683
- * @param $b
684
- *
685
- * @return int
686
- */
687
- function fs_sort_by_priority( $a, $b ) {
 
 
 
 
 
 
 
 
 
 
 
 
688
 
689
- // If b has a priority and a does not, b wins.
690
- if ( ! isset( $a['priority'] ) && isset( $b['priority'] ) ) {
691
- return 1;
692
- } // If b has a priority and a does not, b wins.
693
- elseif ( isset( $a['priority'] ) && ! isset( $b['priority'] ) ) {
694
- return - 1;
695
- } // If neither has a priority or both priorities are equal its a tie.
696
- elseif ( ( ! isset( $a['priority'] ) && ! isset( $b['priority'] ) ) || $a['priority'] === $b['priority'] ) {
697
- return 0;
698
  }
699
-
700
- // If both have priority return the winner.
701
- return ( $a['priority'] < $b['priority'] ) ? - 1 : 1;
702
  }
703
 
704
  #--------------------------------------------------------------------------------
63
  /* Scripts and styles including.
64
  --------------------------------------------------------------------------------------------*/
65
 
66
+ if ( ! function_exists( 'fs_asset_url' ) ) {
67
+ /**
68
+ * Generates an absolute URL to the given path. This function ensures that the URL will be correct whether the asset
69
+ * is inside a plugin's folder or a theme's folder.
70
+ *
71
+ * Examples:
72
+ * 1. "themes" folder
73
+ * Path: C:/xampp/htdocs/fswp/wp-content/themes/twentytwelve/freemius/assets/css/admin/common.css
74
+ * URL: http://fswp:8080/wp-content/themes/twentytwelve/freemius/assets/css/admin/common.css
75
+ *
76
+ * 2. "plugins" folder
77
+ * Path: C:/xampp/htdocs/fswp/wp-content/plugins/rating-widget-premium/freemius/assets/css/admin/common.css
78
+ * URL: http://fswp:8080/wp-content/plugins/rating-widget-premium/freemius/assets/css/admin/common.css
79
+ *
80
+ * @author Leo Fajardo (@leorw)
81
+ * @since 1.2.2
82
+ *
83
+ * @param string $asset_abs_path Asset's absolute path.
84
+ *
85
+ * @return string Asset's URL.
86
+ */
87
+ function fs_asset_url( $asset_abs_path ) {
88
+ $wp_content_dir = fs_normalize_path( WP_CONTENT_DIR );
89
+ $asset_abs_path = fs_normalize_path( $asset_abs_path );
90
+
91
+ if ( 0 === strpos( $asset_abs_path, $wp_content_dir ) ) {
92
+ // Handle both theme and plugin assets located in the standard directories.
93
+ $asset_rel_path = str_replace( $wp_content_dir, '', $asset_abs_path );
94
+ $asset_url = content_url( fs_normalize_path( $asset_rel_path ) );
 
 
 
 
 
95
  } else {
96
+ $wp_plugins_dir = fs_normalize_path( WP_PLUGIN_DIR );
97
+ if ( 0 === strpos( $asset_abs_path, $wp_plugins_dir ) ) {
98
+ // Try to handle plugin assets that may be located in a non-standard plugins directory.
99
+ $asset_rel_path = str_replace( $wp_plugins_dir, '', $asset_abs_path );
100
+ $asset_url = plugins_url( fs_normalize_path( $asset_rel_path ) );
101
+ } else {
102
+ // Try to handle theme assets that may be located in a non-standard themes directory.
103
+ $active_theme_stylesheet = get_stylesheet();
104
+ $wp_themes_dir = fs_normalize_path( trailingslashit( get_theme_root( $active_theme_stylesheet ) ) );
105
+ $asset_rel_path = str_replace( $wp_themes_dir, '', fs_normalize_path( $asset_abs_path ) );
106
+ $asset_url = trailingslashit( get_theme_root_uri( $active_theme_stylesheet ) ) . fs_normalize_path( $asset_rel_path );
107
+ }
108
  }
 
109
 
110
+ return $asset_url;
111
+ }
112
  }
113
 
114
+ if ( ! function_exists( 'fs_enqueue_local_style' ) ) {
115
+ function fs_enqueue_local_style( $handle, $path, $deps = array(), $ver = false, $media = 'all' ) {
116
+ wp_enqueue_style( $handle, fs_asset_url( WP_FS__DIR_CSS . '/' . trim( $path, '/' ) ), $deps, $ver, $media );
117
+ }
118
  }
119
 
120
+ if ( ! function_exists( 'fs_enqueue_local_script' ) ) {
121
+ function fs_enqueue_local_script( $handle, $path, $deps = array(), $ver = false, $in_footer = 'all' ) {
122
+ wp_enqueue_script( $handle, fs_asset_url( WP_FS__DIR_JS . '/' . trim( $path, '/' ) ), $deps, $ver, $in_footer );
123
+ }
124
  }
125
 
126
+ if ( ! function_exists( 'fs_img_url' ) ) {
127
+ function fs_img_url( $path, $img_dir = WP_FS__DIR_IMG ) {
128
+ return ( fs_asset_url( $img_dir . '/' . trim( $path, '/' ) ) );
129
+ }
130
  }
131
 
132
  #--------------------------------------------------------------------------------
323
 
324
  /* Core UI.
325
  --------------------------------------------------------------------------------------------*/
326
+ if ( ! function_exists( 'fs_ui_action_button' ) ) {
327
+ /**
328
+ * @param number $module_id
329
+ * @param string $page
330
+ * @param string $action
331
+ * @param string $title
332
+ * @param string $button_class
333
+ * @param array $params
334
+ * @param bool $is_primary
335
+ * @param bool $is_small
336
+ * @param string|bool $icon_class Optional class for an icon (since 1.1.7).
337
+ * @param string|bool $confirmation Optional confirmation message before submit (since 1.1.7).
338
+ * @param string $method Since 1.1.7
339
+ *
340
+ * @uses fs_ui_get_action_button()
341
+ */
342
+ function fs_ui_action_button(
 
 
 
 
 
 
 
 
 
 
 
 
343
  $module_id,
344
  $page,
345
  $action,
346
  $title,
347
+ $button_class = '',
348
+ $params = array(),
349
+ $is_primary = true,
350
+ $is_small = false,
351
+ $icon_class = false,
352
+ $confirmation = false,
353
+ $method = 'GET'
354
+ ) {
355
+ echo fs_ui_get_action_button(
356
+ $module_id,
357
+ $page,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
358
  $action,
359
+ $title,
360
+ $button_class,
361
+ $params,
362
+ $is_primary,
363
+ $is_small,
364
+ $icon_class,
365
  $confirmation,
366
+ $method
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
367
  );
368
  }
369
  }
370
 
371
+ if ( ! function_exists( 'fs_ui_get_action_button' ) ) {
372
+ /**
373
+ * @author Vova Feldman (@svovaf)
374
+ * @since 1.1.7
375
+ *
376
+ * @param number $module_id
377
+ * @param string $page
378
+ * @param string $action
379
+ * @param string $title
380
+ * @param string $button_class
381
+ * @param array $params
382
+ * @param bool $is_primary
383
+ * @param bool $is_small
384
+ * @param string|bool $icon_class Optional class for an icon.
385
+ * @param string|bool $confirmation Optional confirmation message before submit.
386
+ * @param string $method
387
+ *
388
+ * @return string
389
+ */
390
+ function fs_ui_get_action_button(
391
+ $module_id,
392
+ $page,
393
+ $action,
394
+ $title,
395
+ $button_class = '',
396
+ $params = array(),
397
+ $is_primary = true,
398
+ $is_small = false,
399
+ $icon_class = false,
400
+ $confirmation = false,
401
+ $method = 'GET'
402
+ ) {
403
+ // Prepend icon (if set).
404
+ $title = ( is_string( $icon_class ) ? '<i class="' . $icon_class . '"></i> ' : '' ) . $title;
405
+
406
+ if ( is_string( $confirmation ) ) {
407
+ return sprintf( '<form action="%s" method="%s"><input type="hidden" name="fs_action" value="%s">%s<a href="#" class="%s" onclick="if (confirm(\'%s\')) this.parentNode.submit(); return false;">%s</a></form>',
408
+ freemius( $module_id )->_get_admin_page_url( $page, $params ),
409
+ $method,
410
+ $action,
411
+ wp_nonce_field( $action, '_wpnonce', true, false ),
412
+ 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
413
+ $confirmation,
414
+ $title
415
+ );
416
+ } else if ( 'GET' !== strtoupper( $method ) ) {
417
+ return sprintf( '<form action="%s" method="%s"><input type="hidden" name="fs_action" value="%s">%s<a href="#" class="%s" onclick="this.parentNode.submit(); return false;">%s</a></form>',
418
+ freemius( $module_id )->_get_admin_page_url( $page, $params ),
419
+ $method,
420
+ $action,
421
+ wp_nonce_field( $action, '_wpnonce', true, false ),
422
+ 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
423
+ $title
424
+ );
425
+ } else {
426
+ return sprintf( '<a href="%s" class="%s">%s</a></form>',
427
+ wp_nonce_url( freemius( $module_id )->_get_admin_page_url( $page, array_merge( $params, array( 'fs_action' => $action ) ) ), $action ),
428
+ 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
429
+ $title
430
+ );
431
+ }
432
+ }
433
+
434
+ function fs_ui_action_link( $module_id, $page, $action, $title, $params = array() ) {
435
+ ?><a class=""
436
+ href="<?php echo wp_nonce_url( freemius( $module_id )->_get_admin_page_url( $page, array_merge( $params, array( 'fs_action' => $action ) ) ), $action ) ?>"><?php echo $title ?></a><?php
437
+ }
438
  }
439
 
440
+ if ( ! function_exists( 'fs_get_entity' ) ) {
441
+ /**
442
+ * @author Leo Fajardo (@leorw)
443
+ * @since 2.3.1
444
+ *
445
+ * @param mixed $entity
446
+ * @param string $class
447
+ *
448
+ * @return FS_Plugin|FS_User|FS_Site|FS_Plugin_License|FS_Plugin_Plan|FS_Plugin_Tag|FS_Subscription
449
+ */
450
+ function fs_get_entity( $entity, $class ) {
451
+ if ( ! is_object( $entity ) || $entity instanceof $class ) {
452
+ return $entity;
453
+ }
454
+
455
+ return new $class( $entity );
456
+ }
 
 
457
  }
458
 
459
+ if ( ! function_exists( 'fs_get_entities' ) ) {
460
+ /**
461
+ * @author Leo Fajardo (@leorw)
462
+ * @since 2.3.1
463
+ *
464
+ * @param mixed $entities
465
+ * @param string $class_name
466
+ *
467
+ * @return FS_Plugin[]|FS_User[]|FS_Site[]|FS_Plugin_License[]|FS_Plugin_Plan[]|FS_Plugin_Tag[]|FS_Subscription[]
468
+ */
469
+ function fs_get_entities( $entities, $class_name ) {
470
+ if ( ! is_array( $entities ) || empty( $entities ) ) {
471
+ return $entities;
472
+ }
473
+
474
+ // Get first element.
475
+ $first_array_element = reset( $entities );
476
+
477
+ if ( $first_array_element instanceof $class_name ) {
478
+ /**
479
+ * If the first element of the array is an instance of the context class, assume that all other
480
+ * elements are instances of the class.
481
+ */
482
+ return $entities;
483
+ }
484
+
485
+ if (
486
+ is_array( $first_array_element ) &&
487
+ ! empty( $first_array_element )
488
+ ) {
489
+ $first_array_element = reset( $first_array_element );
490
+
491
+ if ( $first_array_element instanceof $class_name ) {
492
+ /**
493
+ * If the first element of the `$entities` array is an array whose first element is an instance of the
494
+ * context class, assume that all other objects are instances of the class.
495
+ */
496
+ return $entities;
497
+ }
498
+ }
499
+
500
+ foreach ( $entities as $key => $entities_or_entity ) {
501
+ if ( is_array( $entities_or_entity ) ) {
502
+ $entities[ $key ] = fs_get_entities( $entities_or_entity, $class_name );
503
+ } else {
504
+ $entities[ $key ] = fs_get_entity( $entities_or_entity, $class_name );
505
+ }
506
+ }
507
+
508
+ return $entities;
509
+ }
510
+ }
511
 
512
  if ( ! function_exists( 'fs_nonce_url' ) ) {
513
  /**
695
 
696
  #endregion Url Canonization ------------------------------------------------------------------
697
 
698
+ if ( ! function_exists( 'fs_download_image' ) ) {
699
+ /**
700
+ * @author Vova Feldman (@svovaf)
701
+ *
702
+ * @since 1.2.2 Changed to usage of WP_Filesystem_Direct.
703
+ *
704
+ * @param string $from URL
705
+ * @param string $to File path.
706
+ *
707
+ * @return bool Is successfully downloaded.
708
+ */
709
+ function fs_download_image( $from, $to ) {
710
+ $dir = dirname( $to );
711
 
712
+ if ( 'direct' !== get_filesystem_method( array(), $dir ) ) {
713
+ return false;
714
+ }
715
 
716
+ if ( ! class_exists( 'WP_Filesystem_Direct' ) ) {
717
+ require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
718
+ require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
719
+ }
720
 
721
+ $fs = new WP_Filesystem_Direct( '' );
722
+ $tmpfile = download_url( $from );
723
 
724
+ if ( $tmpfile instanceof WP_Error ) {
725
+ // Issue downloading the file.
726
+ return false;
727
+ }
728
 
729
+ $fs->copy( $tmpfile, $to );
730
+ $fs->delete( $tmpfile );
731
 
732
+ return true;
733
+ }
734
  }
735
 
736
  /* General Utilities
737
  --------------------------------------------------------------------------------------------*/
738
 
739
+ if ( ! function_exists( 'fs_sort_by_priority' ) ) {
740
+ /**
741
+ * Sorts an array by the value of the priority key.
742
+ *
743
+ * @author Daniel Iser (@danieliser)
744
+ * @since 1.1.7
745
+ *
746
+ * @param $a
747
+ * @param $b
748
+ *
749
+ * @return int
750
+ */
751
+ function fs_sort_by_priority( $a, $b ) {
752
+
753
+ // If b has a priority and a does not, b wins.
754
+ if ( ! isset( $a['priority'] ) && isset( $b['priority'] ) ) {
755
+ return 1;
756
+ } // If b has a priority and a does not, b wins.
757
+ elseif ( isset( $a['priority'] ) && ! isset( $b['priority'] ) ) {
758
+ return - 1;
759
+ } // If neither has a priority or both priorities are equal its a tie.
760
+ elseif ( ( ! isset( $a['priority'] ) && ! isset( $b['priority'] ) ) || $a['priority'] === $b['priority'] ) {
761
+ return 0;
762
+ }
763
 
764
+ // If both have priority return the winner.
765
+ return ( $a['priority'] < $b['priority'] ) ? - 1 : 1;
 
 
 
 
 
 
 
766
  }
 
 
 
767
  }
768
 
769
  #--------------------------------------------------------------------------------
vendor/freemius/wordpress-sdk/includes/fs-essential-functions.php CHANGED
@@ -344,7 +344,11 @@
344
  }
345
 
346
  if ( ! isset( $newest_sdk->type ) || 'theme' !== $newest_sdk->type ) {
347
- $in_activation = ( ! is_plugin_active( $plugin_file ) );
 
 
 
 
348
  } else {
349
  $theme = wp_get_theme();
350
  $in_activation = ( $newest_sdk->plugin_path == $theme->stylesheet );
344
  }
345
 
346
  if ( ! isset( $newest_sdk->type ) || 'theme' !== $newest_sdk->type ) {
347
+ if ( ! function_exists( 'is_plugin_active' ) ) {
348
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
349
+ }
350
+
351
+ $in_activation = ( ! is_plugin_active( $plugin_file ) );
352
  } else {
353
  $theme = wp_get_theme();
354
  $in_activation = ( $newest_sdk->plugin_path == $theme->stylesheet );
vendor/freemius/wordpress-sdk/includes/fs-plugin-info-dialog.php CHANGED
@@ -145,15 +145,36 @@
145
  }
146
 
147
  if ( is_array( $pricing ) && 0 < count( $pricing ) ) {
148
- $has_paid_plan = true;
149
 
150
- foreach ( $pricing as &$prices ) {
151
  $prices = new FS_Pricing( $prices );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  }
153
 
154
- $plan->pricing = $pricing;
 
155
 
156
- $has_pricing = true;
 
 
 
157
  }
158
 
159
  if ( is_array( $features ) && 0 < count( $features ) ) {
@@ -1047,7 +1068,7 @@
1047
  $href = add_query_arg( array( 'tab' => $tab, 'section' => $section_name ) );
1048
  $href = esc_url( $href );
1049
  $san_section = esc_attr( $section_name );
1050
- echo "\t<a name='$san_section' href='$href' $class>$title</a>\n";
1051
  }
1052
 
1053
  echo "</div>\n";
@@ -1414,7 +1435,7 @@
1414
  $stars_label
1415
  ) ) ?>"><?php echo $stars_label ?></a></span>
1416
  <span class="counter-back">
1417
- <span class="counter-bar" style="width: <?php echo 92 * $_rating; ?>px;"></span>
1418
  </span>
1419
  <span class="counter-count"><?php echo number_format_i18n( $ratecount ); ?></span>
1420
  </div>
145
  }
146
 
147
  if ( is_array( $pricing ) && 0 < count( $pricing ) ) {
148
+ $filtered_pricing = array();
149
 
150
+ foreach ( $pricing as $prices ) {
151
  $prices = new FS_Pricing( $prices );
152
+
153
+ if ( ! $prices->is_usd() ) {
154
+ /**
155
+ * Skip non-USD pricing.
156
+ *
157
+ * @author Leo Fajardo (@leorw)
158
+ * @since 2.3.1
159
+ */
160
+ continue;
161
+ }
162
+
163
+ if ( ( $prices->has_monthly() && $prices->monthly_price > 1.0 ) ||
164
+ ( $prices->has_annual() && $prices->annual_price > 1.0 ) ||
165
+ ( $prices->has_lifetime() && $prices->lifetime_price > 1.0 )
166
+ ) {
167
+ $filtered_pricing[] = $prices;
168
+ }
169
  }
170
 
171
+ if ( ! empty( $filtered_pricing ) ) {
172
+ $has_paid_plan = true;
173
 
174
+ $plan->pricing = $filtered_pricing;
175
+
176
+ $has_pricing = true;
177
+ }
178
  }
179
 
180
  if ( is_array( $features ) && 0 < count( $features ) ) {
1068
  $href = add_query_arg( array( 'tab' => $tab, 'section' => $section_name ) );
1069
  $href = esc_url( $href );
1070
  $san_section = esc_attr( $section_name );
1071
+ echo "\t<a name='$san_section' href='$href' $class>" . esc_html( $title ) . "</a>\n";
1072
  }
1073
 
1074
  echo "</div>\n";
1435
  $stars_label
1436
  ) ) ?>"><?php echo $stars_label ?></a></span>
1437
  <span class="counter-back">
1438
+ <span class="counter-bar" style="width: <?php echo absint(92 * $_rating); ?>px;"></span>
1439
  </span>
1440
  <span class="counter-count"><?php echo number_format_i18n( $ratecount ); ?></span>
1441
  </div>
vendor/freemius/wordpress-sdk/includes/managers/class-fs-admin-menu-manager.php CHANGED
@@ -430,41 +430,62 @@
430
  $this->get_raw_slug();
431
  }
432
 
433
- /**
434
- * Is user on plugin's admin activation page.
435
- *
436
- * @author Vova Feldman (@svovaf)
437
- * @since 1.0.8
438
- *
439
- * @return bool
440
- */
441
- function is_main_settings_page() {
442
- if ( $this->_menu_exists &&
443
- ( fs_is_plugin_page( $this->_menu_slug ) || fs_is_plugin_page( $this->_module_unique_affix ) )
444
- ) {
445
- /**
446
- * Module has a settings menu and the context page is the main settings page, so assume it's in
447
- * activation (doesn't really check if already opted-in/skipped or not).
448
- *
449
- * @since 1.2.2
450
- */
451
- return true;
452
- }
453
 
454
- global $pagenow;
455
- if ( ( WP_FS__MODULE_TYPE_THEME === $this->_module_type ) && Freemius::is_themes_page() ) {
456
- /**
457
- * In activation only when show_optin query string param is given.
458
- *
459
- * @since 1.2.2
460
- */
461
- return fs_request_get_bool( $this->_module_unique_affix . '_show_optin' );
462
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
463
 
464
- return false;
465
- }
 
 
 
 
 
 
 
 
 
 
 
 
466
 
467
- #region Submenu Override
468
 
469
  /**
470
  * Override submenu's action.
430
  $this->get_raw_slug();
431
  }
432
 
433
+ /**
434
+ * Is user on plugin's admin activation page.
435
+ *
436
+ * @author Vova Feldman (@svovaf)
437
+ * @since 1.0.8
438
+ *
439
+ * @param bool $show_opt_in_on_themes_page Since 2.3.1
440
+ *
441
+ * @return bool
442
+ *
443
+ * @deprecated Please use is_activation_page() instead.
444
+ */
445
+ function is_main_settings_page( $show_opt_in_on_themes_page = false ) {
446
+ return $this->is_activation_page( $show_opt_in_on_themes_page );
447
+ }
 
 
 
 
 
448
 
449
+ /**
450
+ * Is user on product's admin activation page.
451
+ *
452
+ * @author Vova Feldman (@svovaf)
453
+ * @since 2.3.1
454
+ *
455
+ * @param bool $show_opt_in_on_themes_page Since 2.3.1
456
+ *
457
+ * @return bool
458
+ */
459
+ function is_activation_page( $show_opt_in_on_themes_page = false ) {
460
+ if ( $show_opt_in_on_themes_page ) {
461
+ /**
462
+ * In activation only when show_optin query string param is given.
463
+ *
464
+ * @since 1.2.2
465
+ */
466
+ return (
467
+ ( WP_FS__MODULE_TYPE_THEME === $this->_module_type ) &&
468
+ Freemius::is_themes_page() &&
469
+ fs_request_get_bool( $this->_module_unique_affix . '_show_optin' )
470
+ );
471
+ }
472
 
473
+ if ( $this->_menu_exists &&
474
+ ( fs_is_plugin_page( $this->_menu_slug ) || fs_is_plugin_page( $this->_module_unique_affix ) )
475
+ ) {
476
+ /**
477
+ * Module has a settings menu and the context page is the main settings page, so assume it's in
478
+ * activation (doesn't really check if already opted-in/skipped or not).
479
+ *
480
+ * @since 1.2.2
481
+ */
482
+ return true;
483
+ }
484
+
485
+ return false;
486
+ }
487
 
488
+ #region Submenu Override
489
 
490
  /**
491
  * Override submenu's action.
vendor/freemius/wordpress-sdk/includes/managers/class-fs-cache-manager.php CHANGED
@@ -37,7 +37,7 @@
37
  $this->_logger->entrance();
38
  $this->_logger->log( 'id = ' . $id );
39
 
40
- $this->_options = FS_Option_Manager::get_manager( $id, true, true );
41
  }
42
 
43
  /**
37
  $this->_logger->entrance();
38
  $this->_logger->log( 'id = ' . $id );
39
 
40
+ $this->_options = FS_Option_Manager::get_manager( $id, true, true, false );
41
  }
42
 
43
  /**
vendor/freemius/wordpress-sdk/includes/managers/class-fs-option-manager.php CHANGED
@@ -48,6 +48,11 @@
48
  */
49
  private $_is_network_storage;
50
 
 
 
 
 
 
51
  /**
52
  * @var array[string]FS_Option_Manager {
53
  * @key string
@@ -60,11 +65,17 @@
60
  * @author Vova Feldman (@svovaf)
61
  * @since 1.0.3
62
  *
63
- * @param string $id
64
- * @param bool $load
65
- * @param bool|int $network_level_or_blog_id Since 2.0.0
 
66
  */
67
- private function __construct( $id, $load = false, $network_level_or_blog_id = false ) {
 
 
 
 
 
68
  $id = strtolower( $id );
69
 
70
  $this->_logger = FS_Logger::get_logger( WP_FS__SLUG . '_opt_mngr_' . $id, WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK );
@@ -74,6 +85,8 @@
74
 
75
  $this->_id = $id;
76
 
 
 
77
  if ( is_multisite() ) {
78
  $this->_is_network_storage = ( true === $network_level_or_blog_id );
79
 
@@ -93,13 +106,19 @@
93
  * @author Vova Feldman (@svovaf)
94
  * @since 1.0.3
95
  *
96
- * @param string $id
97
- * @param bool $load
98
- * @param bool|int $network_level_or_blog_id Since 2.0.0
 
99
  *
100
- * @return FS_Option_Manager
101
  */
102
- static function get_manager( $id, $load = false, $network_level_or_blog_id = false ) {
 
 
 
 
 
103
  $key = strtolower( $id );
104
 
105
  if ( is_multisite() ) {
@@ -115,7 +134,12 @@
115
  }
116
 
117
  if ( ! isset( self::$_MANAGERS[ $key ] ) ) {
118
- self::$_MANAGERS[ $key ] = new FS_Option_Manager( $id, $load, $network_level_or_blog_id );
 
 
 
 
 
119
  } // If load required but not yet loaded, load.
120
  else if ( $load && ! self::$_MANAGERS[ $key ]->is_loaded() ) {
121
  self::$_MANAGERS[ $key ]->load();
@@ -410,7 +434,7 @@
410
  } else if ( $this->_blog_id > 0 ) {
411
  update_blog_option( $this->_blog_id, $option_name, $this->_options );
412
  } else {
413
- update_option( $option_name, $this->_options );
414
  }
415
 
416
  if ( ! WP_FS__DEBUG_SDK ) {
48
  */
49
  private $_is_network_storage;
50
 
51
+ /**
52
+ * @var bool|null
53
+ */
54
+ private $_autoload;
55
+
56
  /**
57
  * @var array[string]FS_Option_Manager {
58
  * @key string
65
  * @author Vova Feldman (@svovaf)
66
  * @since 1.0.3
67
  *
68
+ * @param string $id
69
+ * @param bool $load
70
+ * @param bool|int $network_level_or_blog_id Since 2.0.0
71
+ * @param bool|null $autoload
72
  */
73
+ private function __construct(
74
+ $id,
75
+ $load = false,
76
+ $network_level_or_blog_id = false,
77
+ $autoload = null
78
+ ) {
79
  $id = strtolower( $id );
80
 
81
  $this->_logger = FS_Logger::get_logger( WP_FS__SLUG . '_opt_mngr_' . $id, WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK );
85
 
86
  $this->_id = $id;
87
 
88
+ $this->_autoload = $autoload;
89
+
90
  if ( is_multisite() ) {
91
  $this->_is_network_storage = ( true === $network_level_or_blog_id );
92
 
106
  * @author Vova Feldman (@svovaf)
107
  * @since 1.0.3
108
  *
109
+ * @param string $id
110
+ * @param bool $load
111
+ * @param bool|int $network_level_or_blog_id Since 2.0.0
112
+ * @param bool|null $autoload
113
  *
114
+ * @return \FS_Option_Manager
115
  */
116
+ static function get_manager(
117
+ $id,
118
+ $load = false,
119
+ $network_level_or_blog_id = false,
120
+ $autoload = null
121
+ ) {
122
  $key = strtolower( $id );
123
 
124
  if ( is_multisite() ) {
134
  }
135
 
136
  if ( ! isset( self::$_MANAGERS[ $key ] ) ) {
137
+ self::$_MANAGERS[ $key ] = new FS_Option_Manager(
138
+ $id,
139
+ $load,
140
+ $network_level_or_blog_id,
141
+ $autoload
142
+ );
143
  } // If load required but not yet loaded, load.
144
  else if ( $load && ! self::$_MANAGERS[ $key ]->is_loaded() ) {
145
  self::$_MANAGERS[ $key ]->load();
434
  } else if ( $this->_blog_id > 0 ) {
435
  update_blog_option( $this->_blog_id, $option_name, $this->_options );
436
  } else {
437
+ update_option( $option_name, $this->_options, $this->_autoload );
438
  }
439
 
440
  if ( ! WP_FS__DEBUG_SDK ) {
vendor/freemius/wordpress-sdk/includes/managers/class-fs-plugin-manager.php CHANGED
@@ -83,12 +83,12 @@
83
  $option_manager = $this->get_option_manager();
84
 
85
  if ( false !== $module_type ) {
86
- return $option_manager->get_option( $module_type . 's', array() );
87
  }
88
 
89
  return array(
90
- self::OPTION_NAME_PLUGINS => $option_manager->get_option( self::OPTION_NAME_PLUGINS, array() ),
91
- self::OPTION_NAME_THEMES => $option_manager->get_option( self::OPTION_NAME_THEMES, array() ),
92
  );
93
  }
94
 
83
  $option_manager = $this->get_option_manager();
84
 
85
  if ( false !== $module_type ) {
86
+ return fs_get_entities( $option_manager->get_option( $module_type . 's', array() ), FS_Plugin::get_class_name() );
87
  }
88
 
89
  return array(
90
+ self::OPTION_NAME_PLUGINS => fs_get_entities( $option_manager->get_option( self::OPTION_NAME_PLUGINS, array() ), FS_Plugin::get_class_name() ),
91
+ self::OPTION_NAME_THEMES => fs_get_entities( $option_manager->get_option( self::OPTION_NAME_THEMES, array() ), FS_Plugin::get_class_name() ),
92
  );
93
  }
94
 
vendor/freemius/wordpress-sdk/languages/freemius-cs_CZ.mo ADDED
Binary file
vendor/freemius/wordpress-sdk/languages/freemius-cs_CZ.po ADDED
@@ -0,0 +1,2546 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2019 freemius
2
+ # This file is distributed under the same license as the freemius package.
3
+ # Translators:
4
+ # Karolína Vyskočilová <karolina@kybernaut.cz>, 2019
5
+ msgid ""
6
+ msgstr ""
7
+ "Project-Id-Version: WordPress SDK\n"
8
+ "Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
9
+ "POT-Creation-Date: \n"
10
+ "PO-Revision-Date: 2019-10-07 15:33+0000\n"
11
+ "Last-Translator: Vova Feldman <vova@freemius.com>\n"
12
+ "Language: cs_CZ\n"
13
+ "Language-Team: Czech (Czech Republic) (http://www.transifex.com/freemius/wordpress-sdk/language/cs_CZ/)\n"
14
+ "Content-Type: text/plain; charset=UTF-8\n"
15
+ "Content-Transfer-Encoding: 8bit\n"
16
+ "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
17
+ "MIME-Version: 1.0\n"
18
+ "X-Poedit-Basepath: ..\n"
19
+ "X-Poedit-KeywordsList: get_text_inline;fs_text_inline;fs_echo_inline;fs_esc_js_inline;fs_esc_attr_inline;fs_esc_attr_echo_inline;fs_esc_html_inline;fs_esc_html_echo_inline;get_text_x_inline:1,2c;fs_text_x_inline:1,2c;fs_echo_x_inline:1,2c;fs_esc_attr_x_inline:1,2c;fs_esc_js_x_inline:1,2c;fs_esc_js_echo_x_inline:1,2c;fs_esc_html_x_inline:1,2c;fs_esc_html_echo_x_inline:1,2c\n"
20
+ "X-Poedit-SearchPath-0: .\n"
21
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
22
+ "X-Poedit-SourceCharset: UTF-8\n"
23
+
24
+ #: includes/class-freemius.php1880, templates/account.php:840
25
+ msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
26
+ msgstr "Aktualizováním na Beta verzi nahradíte nainstalovanou verzi %s nejnovějším vydáním Beta verze - používejte s opatrností a ne na produkčních webech. Varovali jsme vás."
27
+
28
+ #: includes/class-freemius.php:1887
29
+ msgid "Would you like to proceed with the update?"
30
+ msgstr "Chcete pokračovat v aktualizaci?"
31
+
32
+ #: includes/class-freemius.php:2095
33
+ msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
34
+ msgstr "Freemius SDK nemohlo najít hlavní soubor pluginu. S aktuální chybou se obraťte se na sdk@freemius.com."
35
+
36
+ #: includes/class-freemius.php:2097
37
+ msgid "Error"
38
+ msgstr "Chyba"
39
+
40
+ #: includes/class-freemius.php:2491
41
+ msgid "I found a better %s"
42
+ msgstr "Našel jsem lepší %s"
43
+
44
+ #: includes/class-freemius.php:2493
45
+ msgid "What's the %s's name?"
46
+ msgstr "Jak se %s jmenuje?"
47
+
48
+ #: includes/class-freemius.php:2499
49
+ msgid "It's a temporary %s. I'm just debugging an issue."
50
+ msgstr "Jen dočasná %s - ladím nějaký problém."
51
+
52
+ #: includes/class-freemius.php:2501
53
+ msgid "Deactivation"
54
+ msgstr "Deaktivace"
55
+
56
+ #: includes/class-freemius.php:2502
57
+ msgid "Theme Switch"
58
+ msgstr "Změna šablony"
59
+
60
+ #: includes/class-freemius.php2511, templates/forms/resend-key.php:24
61
+ msgid "Other"
62
+ msgstr "Jiné"
63
+
64
+ #: includes/class-freemius.php:2519
65
+ msgid "I no longer need the %s"
66
+ msgstr "Již nepotřebuji %s"
67
+
68
+ #: includes/class-freemius.php:2526
69
+ msgid "I only needed the %s for a short period"
70
+ msgstr "Potřeboval %s jsem jen krátkou dobu"
71
+
72
+ #: includes/class-freemius.php:2532
73
+ msgid "The %s broke my site"
74
+ msgstr "%s rozbil můj web"
75
+
76
+ #: includes/class-freemius.php:2539
77
+ msgid "The %s suddenly stopped working"
78
+ msgstr "%s náhle přestal pracovat"
79
+
80
+ #: includes/class-freemius.php:2549
81
+ msgid "I can't pay for it anymore"
82
+ msgstr "Už si to nemohu dovolit"
83
+
84
+ #: includes/class-freemius.php:2551
85
+ msgid "What price would you feel comfortable paying?"
86
+ msgstr "Jakou cenu byste byli ochotni platit?"
87
+
88
+ #: includes/class-freemius.php:2557
89
+ msgid "I don't like to share my information with you"
90
+ msgstr "Nechci s vámi sdílet své informace"
91
+
92
+ #: includes/class-freemius.php:2578
93
+ msgid "The %s didn't work"
94
+ msgstr "%s nefungoval"
95
+
96
+ #: includes/class-freemius.php:2588
97
+ msgid "I couldn't understand how to make it work"
98
+ msgstr "Nedokázal jsem jej zprovoznit"
99
+
100
+ #: includes/class-freemius.php:2596
101
+ msgid "The %s is great, but I need specific feature that you don't support"
102
+ msgstr "%s je skvělý, ale potřebuji funkci, kterou není podporovaná"
103
+
104
+ #: includes/class-freemius.php:2598
105
+ msgid "What feature?"
106
+ msgstr "Jaká funkce?"
107
+
108
+ #: includes/class-freemius.php:2602
109
+ msgid "The %s is not working"
110
+ msgstr "%s nefunguje"
111
+
112
+ #: includes/class-freemius.php:2604
113
+ msgid "Kindly share what didn't work so we can fix it for future users..."
114
+ msgstr "Dejte nám prosím vědět, co nefungovalo, ať to můžeme opravit pro další uživatele..."
115
+
116
+ #: includes/class-freemius.php:2608
117
+ msgid "It's not what I was looking for"
118
+ msgstr "Není to to, co jsem hledal"
119
+
120
+ #: includes/class-freemius.php:2610
121
+ msgid "What you've been looking for?"
122
+ msgstr "Co jste hledali?"
123
+
124
+ #: includes/class-freemius.php:2614
125
+ msgid "The %s didn't work as expected"
126
+ msgstr "%s nefungoval podle očekávání"
127
+
128
+ #: includes/class-freemius.php:2616
129
+ msgid "What did you expect?"
130
+ msgstr "Co jste očekávali?"
131
+
132
+ #: includes/class-freemius.php3471, templates/debug.php:20
133
+ msgid "Freemius Debug"
134
+ msgstr "Freemius Debug"
135
+
136
+ #: includes/class-freemius.php:4223
137
+ msgid "I don't know what is cURL or how to install it, help me!"
138
+ msgstr "Nevím, co je cURL nebo jak jej nainstalovat, pomozte mi!"
139
+
140
+ #: includes/class-freemius.php:4225
141
+ msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
142
+ msgstr "Zkontaktujeme vaší hostingovou společnost a zkusíme vyřešit tento problém. Na %s dostanete upozornění, jakmile budeme vědět něco nového."
143
+
144
+ #: includes/class-freemius.php:4232
145
+ msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
146
+ msgstr "Výborně, nainstalujte prosím cURL a povolte ji v souboru php.ini. Dále vyhledejte v souboru php.ini direktivu 'disable_functions ' a odeberte všechny zakázané metody začínající na \"curl_\". Chcete-li se ujistit, že byla úspěšně aktivována, použijte 'phpinfo() '. Jakmile je aktivován, deaktivujte %s a znovu jej aktivujte."
147
+
148
+ #: includes/class-freemius.php:4337
149
+ msgid "Yes - do your thing"
150
+ msgstr "Ano - udělejte, co potřebujete"
151
+
152
+ #: includes/class-freemius.php:4342
153
+ msgid "No - just deactivate"
154
+ msgstr "Ne - jen deaktivovat"
155
+
156
+ #: includes/class-freemius.php4387, includes/class-freemius.php4881,
157
+ #: includes/class-freemius.php6032, includes/class-freemius.php13153,
158
+ #: includes/class-freemius.php16558, includes/class-freemius.php16646,
159
+ #: includes/class-freemius.php16812, includes/class-freemius.php19040,
160
+ #: includes/class-freemius.php19381, includes/class-freemius.php19391,
161
+ #: includes/class-freemius.php20051, includes/class-freemius.php20924,
162
+ #: includes/class-freemius.php21039, includes/class-freemius.php21183,
163
+ #: templates/add-ons.php:57
164
+ msgctxt "exclamation"
165
+ msgid "Oops"
166
+ msgstr "Jejda"
167
+
168
+ #: includes/class-freemius.php:4456
169
+ msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
170
+ msgstr "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
171
+
172
+ #: includes/class-freemius.php:4878
173
+ msgctxt "addonX cannot run without pluginY"
174
+ msgid "%s cannot run without %s."
175
+ msgstr "%s nelze spustit bez %s."
176
+
177
+ #: includes/class-freemius.php:4879
178
+ msgctxt "addonX cannot run..."
179
+ msgid "%s cannot run without the plugin."
180
+ msgstr "%s nelze spustit bez tohoto pluginu."
181
+
182
+ #: includes/class-freemius.php5052, includes/class-freemius.php5077,
183
+ #: includes/class-freemius.php:20122
184
+ msgid "Unexpected API error. Please contact the %s's author with the following error."
185
+ msgstr "Unexpected API error. Please contact the %s's author with the following error."
186
+
187
+ #: includes/class-freemius.php:5720
188
+ msgid "Premium %s version was successfully activated."
189
+ msgstr "Premium %s version was successfully activated."
190
+
191
+ #: includes/class-freemius.php5732, includes/class-freemius.php:7599
192
+ msgctxt ""
193
+ msgid "W00t"
194
+ msgstr "W00t"
195
+
196
+ #: includes/class-freemius.php:5747
197
+ msgid "You have a %s license."
198
+ msgstr "Máte licenci „%s“."
199
+
200
+ #: includes/class-freemius.php5751, includes/class-freemius.php15975,
201
+ #: includes/class-freemius.php15986, includes/class-freemius.php19292,
202
+ #: includes/class-freemius.php19642, includes/class-freemius.php19711,
203
+ #: includes/class-freemius.php:19876
204
+ msgctxt "interjection expressing joy or exuberance"
205
+ msgid "Yee-haw"
206
+ msgstr "Yee-haw"
207
+
208
+ #: includes/class-freemius.php:6015
209
+ msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
210
+ msgstr "%s bezplatná zkušební verze byla úspěšně zrušena. Jelikož toto rozšíření nenabízí bezplatnou verzi, bylo automaticky deaktivováno. Chcete-li jej v budoucnu používat, budete si muset zakoupit licenci."
211
+
212
+ #: includes/class-freemius.php:6019
213
+ msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
214
+ msgstr "%s je pouze prémiové rozšíření. Před aktivací pluginu si musíte nejprve zakoupit licenci."
215
+
216
+ #: includes/class-freemius.php6028, templates/add-ons.php186,
217
+ #: templates/account/partials/addon.php:381
218
+ msgid "More information about %s"
219
+ msgstr "Více informací o %s"
220
+
221
+ #: includes/class-freemius.php:6029
222
+ msgid "Purchase License"
223
+ msgstr "Koupit licenci"
224
+
225
+ #: includes/class-freemius.php6964, templates/connect.php:163
226
+ msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
227
+ msgstr "Aktivační email od %s by měl dorazit do vašeho mailboxu (%s). Ujistěte se, že v emailu kliknete na tlačítko aktivovat, abyste %s."
228
+
229
+ #: includes/class-freemius.php:6968
230
+ msgid "start the trial"
231
+ msgstr "spustit zkušební verzi"
232
+
233
+ #: includes/class-freemius.php6969, templates/connect.php:167
234
+ msgid "complete the install"
235
+ msgstr "dokončit installaci"
236
+
237
+ #: includes/class-freemius.php:7081
238
+ msgid "You are just one step away - %s"
239
+ msgstr "Jste jen na krok od - %s"
240
+
241
+ #: includes/class-freemius.php:7084
242
+ msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
243
+ msgid "Complete \"%s\" Activation Now"
244
+ msgstr "Dokončit aktivaci pluginu „%s“"
245
+
246
+ #: includes/class-freemius.php:7162
247
+ msgid "We made a few tweaks to the %s, %s"
248
+ msgstr "Udělali jsme několik vylepšení %s, %s"
249
+
250
+ #: includes/class-freemius.php:7166
251
+ msgid "Opt in to make \"%s\" better!"
252
+ msgstr "Zúčastněte se, aby byl \"%s\" ještě lepší!"
253
+
254
+ #: includes/class-freemius.php:7598
255
+ msgid "The upgrade of %s was successfully completed."
256
+ msgstr "Aktualizace %s byla úspěšně dokončena."
257
+
258
+ #: includes/class-freemius.php9802, includes/class-fs-plugin-updater.php1038,
259
+ #: includes/class-fs-plugin-updater.php1233,
260
+ #: includes/class-fs-plugin-updater.php1240,
261
+ #: templates/auto-installation.php:32
262
+ msgid "Add-On"
263
+ msgstr "Doplněk"
264
+
265
+ #: includes/class-freemius.php9804, templates/account.php335,
266
+ #: templates/account.php343, templates/debug.php360, templates/debug.php:551
267
+ msgid "Plugin"
268
+ msgstr "Plugin"
269
+
270
+ #: includes/class-freemius.php9805, templates/account.php336,
271
+ #: templates/account.php344, templates/debug.php360, templates/debug.php551,
272
+ #: templates/forms/deactivation/form.php:71
273
+ msgid "Theme"
274
+ msgstr "Šablona"
275
+
276
+ #: includes/class-freemius.php:12596
277
+ msgid "An unknown error has occurred while trying to set the user's beta mode."
278
+ msgstr "Během nastavování uživatelského beta módu došlo k neočekávané chybě."
279
+
280
+ #: includes/class-freemius.php:13020
281
+ msgid "Invalid site details collection."
282
+ msgstr "Invalid site details collection."
283
+
284
+ #: includes/class-freemius.php:13140
285
+ msgid "We couldn't find your email address in the system, are you sure it's the right address?"
286
+ msgstr "Nemohli jsme najít vaši e-mailovou adresu v systému, jste si jisti, že je to správná adresa?"
287
+
288
+ #: includes/class-freemius.php:13142
289
+ msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
290
+ msgstr "We can't see any active licenses associated with that email address, are you sure it's the right address?"
291
+
292
+ #: includes/class-freemius.php:13416
293
+ msgid "Account is pending activation."
294
+ msgstr "Účet čeká na aktivaci."
295
+
296
+ #: includes/class-freemius.php13528,
297
+ #: templates/forms/premium-versions-upgrade-handler.php:47
298
+ msgid "Buy a license now"
299
+ msgstr "Koupit licenci nyní"
300
+
301
+ #: includes/class-freemius.php13540,
302
+ #: templates/forms/premium-versions-upgrade-handler.php:46
303
+ msgid "Renew your license now"
304
+ msgstr "Obnovte svou licenci teď"
305
+
306
+ #: includes/class-freemius.php:13544
307
+ msgid "%s to access version %s security & feature updates, and support."
308
+ msgstr "%s pro přístup k verzi %s zajišťující podporu a nejen bezpečnostní aktualizace."
309
+
310
+ #: includes/class-freemius.php:15957
311
+ msgid "%s activation was successfully completed."
312
+ msgstr "Aktivace %s byla úspěšně dokončena."
313
+
314
+ #: includes/class-freemius.php:15971
315
+ msgid "Your account was successfully activated with the %s plan."
316
+ msgstr "Účet byl úspěšně aktivován s plánem %s."
317
+
318
+ #: includes/class-freemius.php15982, includes/class-freemius.php:19707
319
+ msgid "Your trial has been successfully started."
320
+ msgstr "Vaše zkušebí verze byla úspěšně spuštěna."
321
+
322
+ #: includes/class-freemius.php16556, includes/class-freemius.php16644,
323
+ #: includes/class-freemius.php:16810
324
+ msgid "Couldn't activate %s."
325
+ msgstr "Nelze aktivovat %s."
326
+
327
+ #: includes/class-freemius.php16557, includes/class-freemius.php16645,
328
+ #: includes/class-freemius.php:16811
329
+ msgid "Please contact us with the following message:"
330
+ msgstr "Kontaktujte nás prosím s následující zprávou:"
331
+
332
+ #: includes/class-freemius.php16641, templates/forms/data-debug-mode.php:162
333
+ msgid "An unknown error has occurred."
334
+ msgstr "Došlo k neznámé chybě."
335
+
336
+ #: includes/class-freemius.php17168, includes/class-freemius.php:22082
337
+ msgid "Upgrade"
338
+ msgstr "Upgrade"
339
+
340
+ #: includes/class-freemius.php:17174
341
+ msgid "Start Trial"
342
+ msgstr "Začít Trial"
343
+
344
+ #: includes/class-freemius.php:17176
345
+ msgid "Pricing"
346
+ msgstr "Ceník"
347
+
348
+ #: includes/class-freemius.php17256, includes/class-freemius.php:17258
349
+ msgid "Affiliation"
350
+ msgstr "Affiliation"
351
+
352
+ #: includes/class-freemius.php17286, includes/class-freemius.php17288,
353
+ #: templates/account.php183, templates/debug.php:326
354
+ msgid "Account"
355
+ msgstr "Účet"
356
+
357
+ #: includes/class-freemius.php17302, includes/class-freemius.php17304,
358
+ #: includes/customizer/class-fs-customizer-support-section.php:60
359
+ msgid "Contact Us"
360
+ msgstr "Support"
361
+
362
+ #: includes/class-freemius.php17315, includes/class-freemius.php17317,
363
+ #: includes/class-freemius.php22096, templates/account.php111,
364
+ #: templates/account/partials/addon.php:44
365
+ msgid "Add-Ons"
366
+ msgstr "Doplňky"
367
+
368
+ #: includes/class-freemius.php:17351
369
+ msgctxt "ASCII arrow left icon"
370
+ msgid "&#x2190;"
371
+ msgstr "&#x2190;"
372
+
373
+ #: includes/class-freemius.php:17351
374
+ msgctxt "ASCII arrow right icon"
375
+ msgid "&#x27a4;"
376
+ msgstr "&#x27a4;"
377
+
378
+ #: includes/class-freemius.php17353, templates/pricing.php:103
379
+ msgctxt "noun"
380
+ msgid "Pricing"
381
+ msgstr "Ceník"
382
+
383
+ #: includes/class-freemius.php17566,
384
+ #: includes/customizer/class-fs-customizer-support-section.php:67
385
+ msgid "Support Forum"
386
+ msgstr "Fórum podpory"
387
+
388
+ #: includes/class-freemius.php:18536
389
+ msgid "Your email has been successfully verified - you are AWESOME!"
390
+ msgstr "Your email has been successfully verified - you are AWESOME!"
391
+
392
+ #: includes/class-freemius.php:18537
393
+ msgctxt "a positive response"
394
+ msgid "Right on"
395
+ msgstr "Right on"
396
+
397
+ #: includes/class-freemius.php:19041
398
+ msgid "seems like the key you entered doesn't match our records."
399
+ msgstr "seems like the key you entered doesn't match our records."
400
+
401
+ #: includes/class-freemius.php:19065
402
+ msgid "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
403
+ msgstr "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
404
+
405
+ #: includes/class-freemius.php:19283
406
+ msgid "Your %s Add-on plan was successfully upgraded."
407
+ msgstr "Your %s Add-on plan was successfully upgraded."
408
+
409
+ #: includes/class-freemius.php:19285
410
+ msgid "%s Add-on was successfully purchased."
411
+ msgstr "Rozšíření %s bylo úspěšně zakoupeno."
412
+
413
+ #: includes/class-freemius.php:19288
414
+ msgid "Download the latest version"
415
+ msgstr "Stáhnout nejnovější verzi"
416
+
417
+ #: includes/class-freemius.php:19374
418
+ msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
419
+ msgstr "Váš server blokuje přístup k Freemium API, což je zásadní pro synchronizaci %1s. Obraťte se na svého poskytovatele , aby přidal do svého whitelistu %2s"
420
+
421
+ #: includes/class-freemius.php19380, includes/class-freemius.php19390,
422
+ #: includes/class-freemius.php19835, includes/class-freemius.php:19924
423
+ msgid "Error received from the server:"
424
+ msgstr "Chyba přijatá ze serveru:"
425
+
426
+ #: includes/class-freemius.php:19390
427
+ msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
428
+ msgstr "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
429
+
430
+ #: includes/class-freemius.php19604, includes/class-freemius.php19840,
431
+ #: includes/class-freemius.php19895, includes/class-freemius.php:19998
432
+ msgctxt ""
433
+ msgid "Hmm"
434
+ msgstr "Hmm"
435
+
436
+ #: includes/class-freemius.php:19617
437
+ msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
438
+ msgstr "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
439
+
440
+ #: includes/class-freemius.php19618, templates/account.php113,
441
+ #: templates/add-ons.php250, templates/account/partials/addon.php:46
442
+ msgctxt "trial period"
443
+ msgid "Trial"
444
+ msgstr "Trial"
445
+
446
+ #: includes/class-freemius.php:19623
447
+ msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
448
+ msgstr "I have upgraded my account but when I try to Sync the License, the plan remains %s."
449
+
450
+ #: includes/class-freemius.php19627, includes/class-freemius.php:19686
451
+ msgid "Please contact us here"
452
+ msgstr "Kontaktujte nás prosím zde"
453
+
454
+ #: includes/class-freemius.php:19638
455
+ msgid "Your plan was successfully activated."
456
+ msgstr "Vaše licence byla úspěšně aktivována."
457
+
458
+ #: includes/class-freemius.php:19639
459
+ msgid "Your plan was successfully upgraded."
460
+ msgstr "Váš plán byl úspěšně aktualizován."
461
+
462
+ #: includes/class-freemius.php:19656
463
+ msgid "Your plan was successfully changed to %s."
464
+ msgstr "Váše předplatné bylo úspěšně změněn na %s."
465
+
466
+ #: includes/class-freemius.php:19672
467
+ msgid "Your license has expired. You can still continue using the free %s forever."
468
+ msgstr "Vaše licence vypršela. Stále však můžete free verzi %s bez omezení."
469
+
470
+ #: includes/class-freemius.php:19674
471
+ msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
472
+ msgstr "Vaše licence vypršela. %1$sObnovte předplatné%2$s, abyste mohli mohli %3$s používat bez omezení."
473
+
474
+ #: includes/class-freemius.php:19682
475
+ msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
476
+ msgstr "Vaše licence byla zrušena. Pokud si myslíte, že je to chyba, obraťte se na naší podporu."
477
+
478
+ #: includes/class-freemius.php:19695
479
+ msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
480
+ msgstr "Vaše licence vypršela. Stále však můžete používat všechny funkce verze %s, ale pro získání technické podpory a nejnovějších aktualizací budete muset obnovit svou licenci."
481
+
482
+ #: includes/class-freemius.php:19721
483
+ msgid "Your free trial has expired. You can still continue using all our free features."
484
+ msgstr "Your free trial has expired. You can still continue using all our free features."
485
+
486
+ #: includes/class-freemius.php:19723
487
+ msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
488
+ msgstr "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
489
+
490
+ #: includes/class-freemius.php:19831
491
+ msgid "It looks like the license could not be activated."
492
+ msgstr "Licenci se nepodařilo aktivovat."
493
+
494
+ #: includes/class-freemius.php:19873
495
+ msgid "Your license was successfully activated."
496
+ msgstr "Vaše licence byla úspěšně aktivována."
497
+
498
+ #: includes/class-freemius.php:19899
499
+ msgid "It looks like your site currently doesn't have an active license."
500
+ msgstr "It looks like your site currently doesn't have an active license."
501
+
502
+ #: includes/class-freemius.php:19923
503
+ msgid "It looks like the license deactivation failed."
504
+ msgstr "Deaktivace licence pravděpodobně selhala."
505
+
506
+ #: includes/class-freemius.php:19951
507
+ msgid "Your license was successfully deactivated, you are back to the %s plan."
508
+ msgstr "Vaše licence byla úspěšně deaktivována, jste zpět na plánu %s."
509
+
510
+ #: includes/class-freemius.php:19952
511
+ msgid "O.K"
512
+ msgstr "OK"
513
+
514
+ #: includes/class-freemius.php:20005
515
+ msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
516
+ msgstr "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
517
+
518
+ #: includes/class-freemius.php:20014
519
+ msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
520
+ msgstr "Vaše předplatné bylo úspěšně zrušeno. Platnost licence %s vyprší za %s."
521
+
522
+ #: includes/class-freemius.php:20056
523
+ msgid "You are already running the %s in a trial mode."
524
+ msgstr "You are already running the %s in a trial mode."
525
+
526
+ #: includes/class-freemius.php:20067
527
+ msgid "You already utilized a trial before."
528
+ msgstr "O zkušební licenci nelze žádat dvakrát."
529
+
530
+ #: includes/class-freemius.php:20081
531
+ msgid "Plan %s do not exist, therefore, can't start a trial."
532
+ msgstr "Plán %s neexistuje, proto nemůžete používt zkušební verzi."
533
+
534
+ #: includes/class-freemius.php:20092
535
+ msgid "Plan %s does not support a trial period."
536
+ msgstr "Plán %s nepodporuje zkušební období."
537
+
538
+ #: includes/class-freemius.php:20103
539
+ msgid "None of the %s's plans supports a trial period."
540
+ msgstr "None of the %s's plans supports a trial period."
541
+
542
+ #: includes/class-freemius.php:20153
543
+ msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
544
+ msgstr "Zkuušební režim už vám skončil, takže už není co rušit :)"
545
+
546
+ #: includes/class-freemius.php:20189
547
+ msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
548
+ msgstr "Omlouváme se, ale měli jsme nějaký dočasný problém se zrušením vaší zkušební licence. Zkuste to znovu za několik minut."
549
+
550
+ #: includes/class-freemius.php:20208
551
+ msgid "Your %s free trial was successfully cancelled."
552
+ msgstr "Your %s free trial was successfully cancelled."
553
+
554
+ #: includes/class-freemius.php:20524
555
+ msgid "Version %s was released."
556
+ msgstr "Byla vydána verze %s."
557
+
558
+ #: includes/class-freemius.php:20524
559
+ msgid "Please download %s."
560
+ msgstr "Stáhněte si prosím %s."
561
+
562
+ #: includes/class-freemius.php:20531
563
+ msgid "the latest %s version here"
564
+ msgstr "nejnovější %s verze zde"
565
+
566
+ #: includes/class-freemius.php:20536
567
+ msgid "New"
568
+ msgstr "Nový"
569
+
570
+ #: includes/class-freemius.php:20541
571
+ msgid "Seems like you got the latest release."
572
+ msgstr "Pravděpodobně máte nejnovější verzi."
573
+
574
+ #: includes/class-freemius.php:20542
575
+ msgid "You are all good!"
576
+ msgstr "You are all good!"
577
+
578
+ #: includes/class-freemius.php:20812
579
+ msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
580
+ msgstr "Ověřovací zpráva byla právě odeslána na email %s. Pokud ji nenajdete do 5 min, zkontrolujte prosím složku pro spam."
581
+
582
+ #: includes/class-freemius.php:20951
583
+ msgid "Site successfully opted in."
584
+ msgstr "Site successfully opted in."
585
+
586
+ #: includes/class-freemius.php20952, includes/class-freemius.php:21792
587
+ msgid "Awesome"
588
+ msgstr "Úžasný"
589
+
590
+ #: includes/class-freemius.php20968, templates/forms/optout.php:32
591
+ msgid "We appreciate your help in making the %s better by letting us track some usage data."
592
+ msgstr "Vážíme si vaší pomoci při zlepšování %s tím, že nám umožníte sledovat některá data o jeho používání."
593
+
594
+ #: includes/class-freemius.php:20969
595
+ msgid "Thank you!"
596
+ msgstr "Děkujeme!"
597
+
598
+ #: includes/class-freemius.php:20976
599
+ msgid "We will no longer be sending any usage data of %s on %s to %s."
600
+ msgstr "Nebudeme již posílat žádná data o používání %s na %s do %s."
601
+
602
+ #: includes/class-freemius.php:21105
603
+ msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
604
+ msgstr "Zkontrolujte si prosím emailovou schránku, měli byste obdržet zprávu od %s pro potvrzení změny vlastnictví. Z bezpečnostních důvodů je nutné potvrdit tuto změnu během následujících 15 minut. Pokud email nemůžete najít, zkontrolujte složku se spamem."
605
+
606
+ #: includes/class-freemius.php:21111
607
+ msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
608
+ msgstr "Děkujeme za potvrzení změny vlastnictví. Email byl právě odeslán na adresu %s, ke konečnému schválení."
609
+
610
+ #: includes/class-freemius.php:21116
611
+ msgid "%s is the new owner of the account."
612
+ msgstr "%s je nový vlastník účtu."
613
+
614
+ #: includes/class-freemius.php:21118
615
+ msgctxt "as congratulations"
616
+ msgid "Congrats"
617
+ msgstr "Gratulujeme"
618
+
619
+ #: includes/class-freemius.php:21138
620
+ msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
621
+ msgstr "Omlouváme se, ale aktualizaci emailu jsem nemohli dokončit. Uživatel s vámi zadaným emailem už je registrován."
622
+
623
+ #: includes/class-freemius.php:21139
624
+ msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
625
+ msgstr "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
626
+
627
+ #: includes/class-freemius.php:21146
628
+ msgid "Change Ownership"
629
+ msgstr "Změnit vlastnictví"
630
+
631
+ #: includes/class-freemius.php:21154
632
+ msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
633
+ msgstr "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
634
+
635
+ #: includes/class-freemius.php:21166
636
+ msgid "Please provide your full name."
637
+ msgstr "Zadejte prosím své celé jméno."
638
+
639
+ #: includes/class-freemius.php:21171
640
+ msgid "Your name was successfully updated."
641
+ msgstr "Vaše jméno bylo úspěšně aktualizováno."
642
+
643
+ #: includes/class-freemius.php:21232
644
+ msgid "You have successfully updated your %s."
645
+ msgstr "Úspěšně jste aktualizovali %s."
646
+
647
+ #: includes/class-freemius.php:21372
648
+ msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
649
+ msgstr "Just letting you know that the add-ons information of %s is being pulled from an external server."
650
+
651
+ #: includes/class-freemius.php:21373
652
+ msgctxt "advance notice of something that will need attention."
653
+ msgid "Heads up"
654
+ msgstr "Heads up"
655
+
656
+ #: includes/class-freemius.php:21832
657
+ msgctxt "exclamation"
658
+ msgid "Hey"
659
+ msgstr "Dobrý den"
660
+
661
+ #: includes/class-freemius.php:21832
662
+ msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
663
+ msgstr "Jak se vám líbí %s? Otestujte všechny naše %s nadstandardní funkce s %d-denní zkušební verze zdarma."
664
+
665
+ #: includes/class-freemius.php:21840
666
+ msgid "No commitment for %s days - cancel anytime!"
667
+ msgstr "No commitment for %s days - cancel anytime!"
668
+
669
+ #: includes/class-freemius.php:21841
670
+ msgid "No credit card required"
671
+ msgstr "Kreditní karta není vyžadována"
672
+
673
+ #: includes/class-freemius.php21848, templates/forms/trial-start.php:53
674
+ msgctxt "call to action"
675
+ msgid "Start free trial"
676
+ msgstr "Start free trial"
677
+
678
+ #: includes/class-freemius.php:21925
679
+ msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
680
+ msgstr "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
681
+
682
+ #: includes/class-freemius.php:21934
683
+ msgid "Learn more"
684
+ msgstr "Přečtěte si více"
685
+
686
+ #: includes/class-freemius.php22120, templates/account.php499,
687
+ #: templates/account.php624, templates/connect.php171,
688
+ #: templates/connect.php421, templates/forms/license-activation.php27,
689
+ #: templates/account/partials/addon.php:321
690
+ msgid "Activate License"
691
+ msgstr "Aktivovat licenci"
692
+
693
+ #: includes/class-freemius.php22121, templates/account.php571,
694
+ #: templates/account.php623, templates/account/partials/addon.php322,
695
+ #: templates/account/partials/site.php:271
696
+ msgid "Change License"
697
+ msgstr "Změnit licenci"
698
+
699
+ #: includes/class-freemius.php22217, templates/account/partials/site.php:169
700
+ msgid "Opt Out"
701
+ msgstr "Odhlásit se"
702
+
703
+ #: includes/class-freemius.php22219, includes/class-freemius.php22225,
704
+ #: templates/account/partials/site.php49,
705
+ #: templates/account/partials/site.php:169
706
+ msgid "Opt In"
707
+ msgstr "Zúčastnit se"
708
+
709
+ #: includes/class-freemius.php:22453
710
+ msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
711
+ msgstr " Placená verze %1s je již nainstalována. Aktivujte jí, abyste mohli těžit z %2s funkcí. %3s"
712
+
713
+ #: includes/class-freemius.php:22461
714
+ msgid "Activate %s features"
715
+ msgstr "Aktivovat %s funkce"
716
+
717
+ #: includes/class-freemius.php:22474
718
+ msgid "Please follow these steps to complete the upgrade"
719
+ msgstr "Dokončete upgrade provedením následujících kroků"
720
+
721
+ #: includes/class-freemius.php:22478
722
+ msgid "Download the latest %s version"
723
+ msgstr "Stáhnout nejnovější verzi %s"
724
+
725
+ #: includes/class-freemius.php:22482
726
+ msgid "Upload and activate the downloaded version"
727
+ msgstr "Nahrát a aktivovat stáhnutou verzi"
728
+
729
+ #: includes/class-freemius.php:22484
730
+ msgid "How to upload and activate?"
731
+ msgstr "Jak nahrát a aktivovat?"
732
+
733
+ #: includes/class-freemius.php:22618
734
+ msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
735
+ msgstr "%sClick here%s to choose the sites where you'd like to activate the license on."
736
+
737
+ #: includes/class-freemius.php:22779
738
+ msgid "Auto installation only works for opted-in users."
739
+ msgstr "Auto installation only works for opted-in users."
740
+
741
+ #: includes/class-freemius.php22789, includes/class-freemius.php22822,
742
+ #: includes/class-fs-plugin-updater.php1212,
743
+ #: includes/class-fs-plugin-updater.php:1226
744
+ msgid "Invalid module ID."
745
+ msgstr "Invalid module ID."
746
+
747
+ #: includes/class-freemius.php22798, includes/class-fs-plugin-updater.php:1248
748
+ msgid "Premium version already active."
749
+ msgstr "Prémiová verze je již aktivní."
750
+
751
+ #: includes/class-freemius.php:22805
752
+ msgid "You do not have a valid license to access the premium version."
753
+ msgstr "You do not have a valid license to access the premium version."
754
+
755
+ #: includes/class-freemius.php:22812
756
+ msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
757
+ msgstr "Plugin is a \"Serviceware\" which means it does not have a premium code version."
758
+
759
+ #: includes/class-freemius.php22830, includes/class-fs-plugin-updater.php:1247
760
+ msgid "Premium add-on version already installed."
761
+ msgstr "Premium add-on version already installed."
762
+
763
+ #: includes/class-freemius.php:23180
764
+ msgid "View paid features"
765
+ msgstr "Zobrazit placené funkce"
766
+
767
+ #: includes/class-freemius.php:23502
768
+ msgid "Thank you so much for using %s and its add-ons!"
769
+ msgstr "Thank you so much for using %s and its add-ons!"
770
+
771
+ #: includes/class-freemius.php:23503
772
+ msgid "Thank you so much for using %s!"
773
+ msgstr "Thank you so much for using %s!"
774
+
775
+ #: includes/class-freemius.php:23509
776
+ msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
777
+ msgstr "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
778
+
779
+ #: includes/class-freemius.php:23513
780
+ msgid "Thank you so much for using our products!"
781
+ msgstr "Thank you so much for using our products!"
782
+
783
+ #: includes/class-freemius.php:23514
784
+ msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
785
+ msgstr "You've already opted-in to our usage-tracking, which helps us keep improving them."
786
+
787
+ #: includes/class-freemius.php:23533
788
+ msgid "%s and its add-ons"
789
+ msgstr "%s a jeho doplňky"
790
+
791
+ #: includes/class-freemius.php:23542
792
+ msgid "Products"
793
+ msgstr "Produkty"
794
+
795
+ #: includes/class-freemius.php23549, templates/connect.php:272
796
+ msgid "Yes"
797
+ msgstr "Ano"
798
+
799
+ #: includes/class-freemius.php23550, templates/connect.php:273
800
+ msgid "send me security & feature updates, educational content and offers."
801
+ msgstr "send me security & feature updates, educational content and offers."
802
+
803
+ #: includes/class-freemius.php23551, templates/connect.php:278
804
+ msgid "No"
805
+ msgstr "Ne"
806
+
807
+ #: includes/class-freemius.php23553, templates/connect.php:280
808
+ msgid "do %sNOT%s send me security & feature updates, educational content and offers."
809
+ msgstr "do %sNOT%s send me security & feature updates, educational content and offers."
810
+
811
+ #: includes/class-freemius.php:23563
812
+ msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
813
+ msgstr "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
814
+
815
+ #: includes/class-freemius.php23565, templates/connect.php:287
816
+ msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
817
+ msgstr "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
818
+
819
+ #: includes/class-freemius.php:23847
820
+ msgid "License key is empty."
821
+ msgstr "Licenční klíč je prázdný."
822
+
823
+ #: includes/class-fs-plugin-updater.php206,
824
+ #: templates/forms/premium-versions-upgrade-handler.php:57
825
+ msgid "Renew license"
826
+ msgstr "Obnovit licenci"
827
+
828
+ #: includes/class-fs-plugin-updater.php211,
829
+ #: templates/forms/premium-versions-upgrade-handler.php:58
830
+ msgid "Buy license"
831
+ msgstr "Koupit licenci"
832
+
833
+ #: includes/class-fs-plugin-updater.php321,
834
+ #: includes/class-fs-plugin-updater.php:354
835
+ msgid "There is a %s of %s available."
836
+ msgstr "There is a %s of %s available."
837
+
838
+ #: includes/class-fs-plugin-updater.php323,
839
+ #: includes/class-fs-plugin-updater.php:359
840
+ msgid "new Beta version"
841
+ msgstr "nová Beta verze"
842
+
843
+ #: includes/class-fs-plugin-updater.php324,
844
+ #: includes/class-fs-plugin-updater.php:360
845
+ msgid "new version"
846
+ msgstr "nová verze"
847
+
848
+ #: includes/class-fs-plugin-updater.php:383
849
+ msgid "Important Upgrade Notice:"
850
+ msgstr "Important Upgrade Notice:"
851
+
852
+ #: includes/class-fs-plugin-updater.php:1277
853
+ msgid "Installing plugin: %s"
854
+ msgstr "Instaluji plugin: %s"
855
+
856
+ #: includes/class-fs-plugin-updater.php:1318
857
+ msgid "Unable to connect to the filesystem. Please confirm your credentials."
858
+ msgstr "Nelze se připojit k systémovému souboru. Potvrďte prosím svá pověření."
859
+
860
+ #: includes/class-fs-plugin-updater.php:1500
861
+ msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
862
+ msgstr "Balíček remote pluginů neobsahuje složku s žádoucím \"slug\" a přejmenování nefunguje."
863
+
864
+ #: includes/fs-plugin-info-dialog.php:535
865
+ msgid "Purchase More"
866
+ msgstr "Zakoupit další"
867
+
868
+ #: includes/fs-plugin-info-dialog.php536,
869
+ #: templates/account/partials/addon.php:385
870
+ msgctxt "verb"
871
+ msgid "Purchase"
872
+ msgstr "Zakoupit"
873
+
874
+ #: includes/fs-plugin-info-dialog.php:540
875
+ msgid "Start my free %s"
876
+ msgstr "Začít můj bezplatný %s"
877
+
878
+ #: includes/fs-plugin-info-dialog.php:738
879
+ msgid "Install Free Version Update Now"
880
+ msgstr "Install Free Version Update Now"
881
+
882
+ #: includes/fs-plugin-info-dialog.php739, templates/account.php:560
883
+ msgid "Install Update Now"
884
+ msgstr "Nainstalovat aktualizaci"
885
+
886
+ #: includes/fs-plugin-info-dialog.php:748
887
+ msgid "Install Free Version Now"
888
+ msgstr "Nainstalovat verzi zdarma"
889
+
890
+ #: includes/fs-plugin-info-dialog.php749, templates/add-ons.php323,
891
+ #: templates/auto-installation.php111,
892
+ #: templates/account/partials/addon.php365,
893
+ #: templates/account/partials/addon.php:418
894
+ msgid "Install Now"
895
+ msgstr "Instalovat"
896
+
897
+ #: includes/fs-plugin-info-dialog.php:765
898
+ msgctxt "as download latest version"
899
+ msgid "Download Latest Free Version"
900
+ msgstr "Stáhněte si nejnovější bezplatnou verzi"
901
+
902
+ #: includes/fs-plugin-info-dialog.php766, templates/account.php91,
903
+ #: templates/add-ons.php37, templates/account/partials/addon.php:25
904
+ msgctxt "as download latest version"
905
+ msgid "Download Latest"
906
+ msgstr "Stáhněte si nejnovější"
907
+
908
+ #: includes/fs-plugin-info-dialog.php781, templates/add-ons.php329,
909
+ #: templates/account/partials/addon.php356,
910
+ #: templates/account/partials/addon.php:412
911
+ msgid "Activate this add-on"
912
+ msgstr "Aktivovat toto rozšíření"
913
+
914
+ #: includes/fs-plugin-info-dialog.php783, templates/connect.php:418
915
+ msgid "Activate Free Version"
916
+ msgstr "Aktivovat bezplatnou verzi"
917
+
918
+ #: includes/fs-plugin-info-dialog.php784, templates/account.php115,
919
+ #: templates/add-ons.php330, templates/account/partials/addon.php:48
920
+ msgid "Activate"
921
+ msgstr "Aktivovat"
922
+
923
+ #: includes/fs-plugin-info-dialog.php:994
924
+ msgctxt "Plugin installer section title"
925
+ msgid "Description"
926
+ msgstr "Popis"
927
+
928
+ #: includes/fs-plugin-info-dialog.php:995
929
+ msgctxt "Plugin installer section title"
930
+ msgid "Installation"
931
+ msgstr "Instalace"
932
+
933
+ #: includes/fs-plugin-info-dialog.php:996
934
+ msgctxt "Plugin installer section title"
935
+ msgid "FAQ"
936
+ msgstr "FAQ"
937
+
938
+ #: includes/fs-plugin-info-dialog.php997,
939
+ #: templates/plugin-info/description.php:55
940
+ msgid "Screenshots"
941
+ msgstr "Snímky obrazovky"
942
+
943
+ #: includes/fs-plugin-info-dialog.php:998
944
+ msgctxt "Plugin installer section title"
945
+ msgid "Changelog"
946
+ msgstr "Historie změn"
947
+
948
+ #: includes/fs-plugin-info-dialog.php:999
949
+ msgctxt "Plugin installer section title"
950
+ msgid "Reviews"
951
+ msgstr "Vaše hodnocení"
952
+
953
+ #: includes/fs-plugin-info-dialog.php:1000
954
+ msgctxt "Plugin installer section title"
955
+ msgid "Other Notes"
956
+ msgstr "Other Notes"
957
+
958
+ #: includes/fs-plugin-info-dialog.php:1015
959
+ msgctxt "Plugin installer section title"
960
+ msgid "Features & Pricing"
961
+ msgstr "Vlastnosti a ceník"
962
+
963
+ #: includes/fs-plugin-info-dialog.php:1025
964
+ msgid "Plugin Install"
965
+ msgstr "Instalace pluginu"
966
+
967
+ #: includes/fs-plugin-info-dialog.php:1097
968
+ msgctxt "e.g. Professional Plan"
969
+ msgid "%s Plan"
970
+ msgstr "%s plán"
971
+
972
+ #: includes/fs-plugin-info-dialog.php:1123
973
+ msgctxt "e.g. the best product"
974
+ msgid "Best"
975
+ msgstr "Nejlepší"
976
+
977
+ #: includes/fs-plugin-info-dialog.php1129,
978
+ #: includes/fs-plugin-info-dialog.php:1149
979
+ msgctxt "as every month"
980
+ msgid "Monthly"
981
+ msgstr "Měsíčně"
982
+
983
+ #: includes/fs-plugin-info-dialog.php:1132
984
+ msgctxt "as once a year"
985
+ msgid "Annual"
986
+ msgstr "Ročně"
987
+
988
+ #: includes/fs-plugin-info-dialog.php:1135
989
+ msgid "Lifetime"
990
+ msgstr "Doživotní"
991
+
992
+ #: includes/fs-plugin-info-dialog.php1149,
993
+ #: includes/fs-plugin-info-dialog.php1151,
994
+ #: includes/fs-plugin-info-dialog.php:1153
995
+ msgctxt "e.g. billed monthly"
996
+ msgid "Billed %s"
997
+ msgstr "Účtováno %s"
998
+
999
+ #: includes/fs-plugin-info-dialog.php:1151
1000
+ msgctxt "as once a year"
1001
+ msgid "Annually"
1002
+ msgstr "Ročně"
1003
+
1004
+ #: includes/fs-plugin-info-dialog.php:1153
1005
+ msgctxt "as once a year"
1006
+ msgid "Once"
1007
+ msgstr "Jedenkrát"
1008
+
1009
+ #: includes/fs-plugin-info-dialog.php:1159
1010
+ msgid "Single Site License"
1011
+ msgstr "Single Site License"
1012
+
1013
+ #: includes/fs-plugin-info-dialog.php:1161
1014
+ msgid "Unlimited Licenses"
1015
+ msgstr "Unlimited Licenses"
1016
+
1017
+ #: includes/fs-plugin-info-dialog.php:1163
1018
+ msgid "Up to %s Sites"
1019
+ msgstr "Až pro %s webů"
1020
+
1021
+ #: includes/fs-plugin-info-dialog.php1173,
1022
+ #: templates/plugin-info/features.php:82
1023
+ msgctxt "as monthly period"
1024
+ msgid "mo"
1025
+ msgstr "po"
1026
+
1027
+ #: includes/fs-plugin-info-dialog.php1180,
1028
+ #: templates/plugin-info/features.php:80
1029
+ msgctxt "as annual period"
1030
+ msgid "year"
1031
+ msgstr "rok"
1032
+
1033
+ #: includes/fs-plugin-info-dialog.php:1234
1034
+ msgctxt "noun"
1035
+ msgid "Price"
1036
+ msgstr "Cena"
1037
+
1038
+ #: includes/fs-plugin-info-dialog.php:1282
1039
+ msgid "Save %s"
1040
+ msgstr "Uložit %s"
1041
+
1042
+ #: includes/fs-plugin-info-dialog.php:1292
1043
+ msgid "No commitment for %s - cancel anytime"
1044
+ msgstr "No commitment for %s - cancel anytime"
1045
+
1046
+ #: includes/fs-plugin-info-dialog.php:1295
1047
+ msgid "After your free %s, pay as little as %s"
1048
+ msgstr "Po bezplatné %s platit jen v %s"
1049
+
1050
+ #: includes/fs-plugin-info-dialog.php:1306
1051
+ msgid "Details"
1052
+ msgstr "Detaily"
1053
+
1054
+ #: includes/fs-plugin-info-dialog.php1310, templates/account.php102,
1055
+ #: templates/debug.php203, templates/debug.php240, templates/debug.php457,
1056
+ #: templates/account/partials/addon.php:36
1057
+ msgctxt "product version"
1058
+ msgid "Version"
1059
+ msgstr "Verze"
1060
+
1061
+ #: includes/fs-plugin-info-dialog.php:1317
1062
+ msgctxt "as the plugin author"
1063
+ msgid "Author"
1064
+ msgstr "Autor"
1065
+
1066
+ #: includes/fs-plugin-info-dialog.php:1324
1067
+ msgid "Last Updated"
1068
+ msgstr "Poslední aktualizace"
1069
+
1070
+ #: includes/fs-plugin-info-dialog.php1329, templates/account.php:468
1071
+ msgctxt "x-ago"
1072
+ msgid "%s ago"
1073
+ msgstr "Před %s"
1074
+
1075
+ #: includes/fs-plugin-info-dialog.php:1338
1076
+ msgid "Requires WordPress Version"
1077
+ msgstr "Vyžaduje verzi WordPress"
1078
+
1079
+ #: includes/fs-plugin-info-dialog.php:1339
1080
+ msgid "%s or higher"
1081
+ msgstr "%s nebo vyšší"
1082
+
1083
+ #: includes/fs-plugin-info-dialog.php:1346
1084
+ msgid "Compatible up to"
1085
+ msgstr "Kompatibilní až po"
1086
+
1087
+ #: includes/fs-plugin-info-dialog.php:1354
1088
+ msgid "Downloaded"
1089
+ msgstr "Staženo"
1090
+
1091
+ #: includes/fs-plugin-info-dialog.php:1358
1092
+ msgid "%s time"
1093
+ msgstr "%s krát"
1094
+
1095
+ #: includes/fs-plugin-info-dialog.php:1360
1096
+ msgid "%s times"
1097
+ msgstr "%s krát"
1098
+
1099
+ #: includes/fs-plugin-info-dialog.php:1370
1100
+ msgid "WordPress.org Plugin Page"
1101
+ msgstr "Název pluginu na WordPress.org"
1102
+
1103
+ #: includes/fs-plugin-info-dialog.php:1378
1104
+ msgid "Plugin Homepage"
1105
+ msgstr "Hlavní stránka pluginu"
1106
+
1107
+ #: includes/fs-plugin-info-dialog.php1386,
1108
+ #: includes/fs-plugin-info-dialog.php:1468
1109
+ msgid "Donate to this plugin"
1110
+ msgstr "Přispějte na tento plugin"
1111
+
1112
+ #: includes/fs-plugin-info-dialog.php:1393
1113
+ msgid "Average Rating"
1114
+ msgstr "Průměrné hodnocení"
1115
+
1116
+ #: includes/fs-plugin-info-dialog.php:1400
1117
+ msgid "based on %s"
1118
+ msgstr "založeno na %s"
1119
+
1120
+ #: includes/fs-plugin-info-dialog.php:1404
1121
+ msgid "%s rating"
1122
+ msgstr "%s hodnocení"
1123
+
1124
+ #: includes/fs-plugin-info-dialog.php:1406
1125
+ msgid "%s ratings"
1126
+ msgstr "%s hodnocení"
1127
+
1128
+ #: includes/fs-plugin-info-dialog.php:1421
1129
+ msgid "%s star"
1130
+ msgstr "%s hvězda"
1131
+
1132
+ #: includes/fs-plugin-info-dialog.php:1423
1133
+ msgid "%s stars"
1134
+ msgstr "%s hvězd"
1135
+
1136
+ #: includes/fs-plugin-info-dialog.php:1434
1137
+ msgid "Click to see reviews that provided a rating of %s"
1138
+ msgstr "Click to see reviews that provided a rating of %s"
1139
+
1140
+ #: includes/fs-plugin-info-dialog.php:1447
1141
+ msgid "Contributors"
1142
+ msgstr "Přispěvatelé"
1143
+
1144
+ #: includes/fs-plugin-info-dialog.php1476,
1145
+ #: includes/fs-plugin-info-dialog.php:1478
1146
+ msgid "Warning"
1147
+ msgstr "Varování"
1148
+
1149
+ #: includes/fs-plugin-info-dialog.php:1476
1150
+ msgid "This plugin has not been tested with your current version of WordPress."
1151
+ msgstr "This plugin has not been tested with your current version of WordPress."
1152
+
1153
+ #: includes/fs-plugin-info-dialog.php:1478
1154
+ msgid "This plugin has not been marked as compatible with your version of WordPress."
1155
+ msgstr "This plugin has not been marked as compatible with your version of WordPress."
1156
+
1157
+ #: includes/fs-plugin-info-dialog.php:1497
1158
+ msgid "Paid add-on must be deployed to Freemius."
1159
+ msgstr "Placený doplněk musí být nasazen na Freemius."
1160
+
1161
+ #: includes/fs-plugin-info-dialog.php:1498
1162
+ msgid "Add-on must be deployed to WordPress.org or Freemius."
1163
+ msgstr "Rozšíření musí být nasazeno na WordPress.org nebo na Freemius."
1164
+
1165
+ #: includes/fs-plugin-info-dialog.php:1519
1166
+ msgid "Newer Version (%s) Installed"
1167
+ msgstr "Novější verze (%s) nainstalována"
1168
+
1169
+ #: includes/fs-plugin-info-dialog.php:1520
1170
+ msgid "Newer Free Version (%s) Installed"
1171
+ msgstr "Novější verze zdarma (%s) nainstalována"
1172
+
1173
+ #: includes/fs-plugin-info-dialog.php:1527
1174
+ msgid "Latest Version Installed"
1175
+ msgstr "Nainstalována nejnovější verze"
1176
+
1177
+ #: includes/fs-plugin-info-dialog.php:1528
1178
+ msgid "Latest Free Version Installed"
1179
+ msgstr "Nainstalována nejnovější verze zdarma"
1180
+
1181
+ #: templates/account.php92, templates/forms/subscription-cancellation.php96,
1182
+ #: templates/account/partials/addon.php26,
1183
+ #: templates/account/partials/site.php:311
1184
+ msgid "Downgrading your plan"
1185
+ msgstr "Snižuji vaše předplatné"
1186
+
1187
+ #: templates/account.php93, templates/forms/subscription-cancellation.php97,
1188
+ #: templates/account/partials/addon.php27,
1189
+ #: templates/account/partials/site.php:312
1190
+ msgid "Cancelling the subscription"
1191
+ msgstr "Ruším předplatné"
1192
+
1193
+ #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
1194
+ #. subscription'
1195
+ #: templates/account.php95, templates/forms/subscription-cancellation.php99,
1196
+ #: templates/account/partials/site.php:314
1197
+ msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1198
+ msgstr "%1s okamžitě zastaví všechny budoucí opakující se platby a licence k plánu %s vyprší za %s."
1199
+
1200
+ #: templates/account.php96, templates/forms/subscription-cancellation.php100,
1201
+ #: templates/account/partials/addon.php30,
1202
+ #: templates/account/partials/site.php:315
1203
+ msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1204
+ msgstr "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1205
+
1206
+ #: templates/account.php97, templates/forms/subscription-cancellation.php106,
1207
+ #: templates/account/partials/addon.php:31
1208
+ msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1209
+ msgstr "Zrušení zkušební verze okamžitě zablokuje přístup ke všem prémiovým funkcím. Opravdu chcete pokračovat?"
1210
+
1211
+ #: templates/account.php98, templates/forms/subscription-cancellation.php101,
1212
+ #: templates/account/partials/addon.php32,
1213
+ #: templates/account/partials/site.php:316
1214
+ msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1215
+ msgstr "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1216
+
1217
+ #: templates/account.php99, templates/forms/subscription-cancellation.php102,
1218
+ #: templates/account/partials/addon.php33,
1219
+ #: templates/account/partials/site.php:317
1220
+ msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1221
+ msgstr "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1222
+
1223
+ #. translators: %s: Plan title (e.g. "Professional")
1224
+ #: templates/account.php101,
1225
+ #: templates/account/partials/activate-license-button.php31,
1226
+ #: templates/account/partials/addon.php:35
1227
+ msgid "Activate %s Plan"
1228
+ msgstr "Aktivovat %s plán"
1229
+
1230
+ #. translators: %s: Time period (e.g. Auto renews in "2 months")
1231
+ #: templates/account.php104, templates/account/partials/addon.php38,
1232
+ #: templates/account/partials/site.php:291
1233
+ msgid "Auto renews in %s"
1234
+ msgstr "Automaticky se obnoví za %s"
1235
+
1236
+ #. translators: %s: Time period (e.g. Expires in "2 months")
1237
+ #: templates/account.php106, templates/account/partials/addon.php40,
1238
+ #: templates/account/partials/site.php:293
1239
+ msgid "Expires in %s"
1240
+ msgstr "Vyprší za %s"
1241
+
1242
+ #: templates/account.php:107
1243
+ msgctxt "as synchronize license"
1244
+ msgid "Sync License"
1245
+ msgstr "Synchronizovat licence"
1246
+
1247
+ #: templates/account.php108, templates/account/partials/addon.php:41
1248
+ msgid "Cancel Trial"
1249
+ msgstr "Zrušit zkušební verzi"
1250
+
1251
+ #: templates/account.php109, templates/account/partials/addon.php:42
1252
+ msgid "Change Plan"
1253
+ msgstr "Změnit plán"
1254
+
1255
+ #: templates/account.php110, templates/account/partials/addon.php:43
1256
+ msgctxt "verb"
1257
+ msgid "Upgrade"
1258
+ msgstr "Vylepšit"
1259
+
1260
+ #: templates/account.php112, templates/account/partials/addon.php45,
1261
+ #: templates/account/partials/site.php:318
1262
+ msgctxt "verb"
1263
+ msgid "Downgrade"
1264
+ msgstr "Přejít na nižší verzi"
1265
+
1266
+ #: templates/account.php114, templates/add-ons.php246,
1267
+ #: templates/plugin-info/features.php72,
1268
+ #: templates/account/partials/addon.php47,
1269
+ #: templates/account/partials/site.php:33
1270
+ msgid "Free"
1271
+ msgstr "Zdarma"
1272
+
1273
+ #: templates/account.php116, templates/debug.php373,
1274
+ #: includes/customizer/class-fs-customizer-upsell-control.php110,
1275
+ #: templates/account/partials/addon.php:49
1276
+ msgctxt "as product pricing plan"
1277
+ msgid "Plan"
1278
+ msgstr "Druh členství"
1279
+
1280
+ #: templates/account.php:117
1281
+ msgid "Bundle Plan"
1282
+ msgstr "Bundle Plan"
1283
+
1284
+ #: templates/account.php:191
1285
+ msgid "Free Trial"
1286
+ msgstr "Zkušební verze zdarma"
1287
+
1288
+ #: templates/account.php:202
1289
+ msgid "Account Details"
1290
+ msgstr "Detaily účtu"
1291
+
1292
+ #: templates/account.php209, templates/forms/data-debug-mode.php:33
1293
+ msgid "Start Debug"
1294
+ msgstr "Start Debug"
1295
+
1296
+ #: templates/account.php:211
1297
+ msgid "Stop Debug"
1298
+ msgstr "Stop Debug"
1299
+
1300
+ #: templates/account.php:218
1301
+ msgid "Billing & Invoices"
1302
+ msgstr "Billing & Invoices"
1303
+
1304
+ #: templates/account.php:229
1305
+ msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1306
+ msgstr "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1307
+
1308
+ #: templates/account.php:231
1309
+ msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1310
+ msgstr "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1311
+
1312
+ #: templates/account.php:234
1313
+ msgid "Delete Account"
1314
+ msgstr "Smazat účet"
1315
+
1316
+ #: templates/account.php246, templates/account/partials/addon.php231,
1317
+ #: templates/account/partials/deactivate-license-button.php:35
1318
+ msgid "Deactivate License"
1319
+ msgstr "Deaktivovat licenci"
1320
+
1321
+ #: templates/account.php269, templates/forms/subscription-cancellation.php:125
1322
+ msgid "Are you sure you want to proceed?"
1323
+ msgstr "Opravdu chcete pokračovat?"
1324
+
1325
+ #: templates/account.php269, templates/account/partials/addon.php:255
1326
+ msgid "Cancel Subscription"
1327
+ msgstr "Zrušit předplatné"
1328
+
1329
+ #: templates/account.php298, templates/account/partials/addon.php:340
1330
+ msgctxt "as synchronize"
1331
+ msgid "Sync"
1332
+ msgstr "Synchronizovat"
1333
+
1334
+ #: templates/account.php313, templates/debug.php:507
1335
+ msgid "Name"
1336
+ msgstr "Jméno"
1337
+
1338
+ #: templates/account.php319, templates/debug.php:508
1339
+ msgid "Email"
1340
+ msgstr "Email"
1341
+
1342
+ #: templates/account.php326, templates/debug.php371, templates/debug.php:557
1343
+ msgid "User ID"
1344
+ msgstr "ID uživatele"
1345
+
1346
+ #: templates/account.php344, templates/account.php637,
1347
+ #: templates/account.php682, templates/debug.php238, templates/debug.php365,
1348
+ #: templates/debug.php454, templates/debug.php506, templates/debug.php555,
1349
+ #: templates/debug.php632, templates/account/payments.php35,
1350
+ #: templates/debug/logger.php:21
1351
+ msgid "ID"
1352
+ msgstr "ID"
1353
+
1354
+ #: templates/account.php:351
1355
+ msgid "Site ID"
1356
+ msgstr "ID stránky"
1357
+
1358
+ #: templates/account.php:354
1359
+ msgid "No ID"
1360
+ msgstr "Žádné ID"
1361
+
1362
+ #: templates/account.php359, templates/debug.php245, templates/debug.php374,
1363
+ #: templates/debug.php458, templates/debug.php510,
1364
+ #: templates/account/partials/site.php:227
1365
+ msgid "Public Key"
1366
+ msgstr "Veřejný klíč"
1367
+
1368
+ #: templates/account.php365, templates/debug.php375, templates/debug.php459,
1369
+ #: templates/debug.php511, templates/account/partials/site.php:239
1370
+ msgid "Secret Key"
1371
+ msgstr "Tajný klíč"
1372
+
1373
+ #: templates/account.php:368
1374
+ msgctxt "as secret encryption key missing"
1375
+ msgid "No Secret"
1376
+ msgstr "Tajný klíč chybí"
1377
+
1378
+ #: templates/account.php395, templates/account/partials/site.php120,
1379
+ #: templates/account/partials/site.php:122
1380
+ msgid "Trial"
1381
+ msgstr "Zkouška"
1382
+
1383
+ #: templates/account.php422, templates/debug.php562,
1384
+ #: templates/account/partials/site.php:260
1385
+ msgid "License Key"
1386
+ msgstr "Licenční klíč"
1387
+
1388
+ #: templates/account.php:453
1389
+ msgid "Join the Beta program"
1390
+ msgstr "Join the Beta program"
1391
+
1392
+ #: templates/account.php:459
1393
+ msgid "not verified"
1394
+ msgstr "není ověřeno"
1395
+
1396
+ #: templates/account.php468, templates/account/partials/addon.php:190
1397
+ msgid "Expired"
1398
+ msgstr "Vypršelo"
1399
+
1400
+ #: templates/account.php:528
1401
+ msgid "Premium version"
1402
+ msgstr "Prémiová verze"
1403
+
1404
+ #: templates/account.php:530
1405
+ msgid "Free version"
1406
+ msgstr "Verze zdarma"
1407
+
1408
+ #: templates/account.php:542
1409
+ msgid "Verify Email"
1410
+ msgstr "Ověřit e-mail"
1411
+
1412
+ #: templates/account.php:553
1413
+ msgid "Download %s Version"
1414
+ msgstr "Stáhnout verzi %s"
1415
+
1416
+ #: templates/account.php568, templates/account.php820,
1417
+ #: templates/account/partials/site.php248,
1418
+ #: templates/account/partials/site.php:270
1419
+ msgctxt "verb"
1420
+ msgid "Show"
1421
+ msgstr "Zobrazit"
1422
+
1423
+ #: templates/account.php:583
1424
+ msgid "What is your %s?"
1425
+ msgstr "Jaké je vaše \"%s\"?"
1426
+
1427
+ #: templates/account.php591, templates/account/billing.php:21
1428
+ msgctxt "verb"
1429
+ msgid "Edit"
1430
+ msgstr "Upravit"
1431
+
1432
+ #: templates/account.php:616
1433
+ msgid "Sites"
1434
+ msgstr "Weby"
1435
+
1436
+ #: templates/account.php:629
1437
+ msgid "Search by address"
1438
+ msgstr "Hledat podle adresy"
1439
+
1440
+ #: templates/account.php638, templates/debug.php:368
1441
+ msgid "Address"
1442
+ msgstr "Adresa"
1443
+
1444
+ #: templates/account.php:639
1445
+ msgid "License"
1446
+ msgstr "Licence"
1447
+
1448
+ #: templates/account.php:640
1449
+ msgid "Plan"
1450
+ msgstr "Druh členství"
1451
+
1452
+ #: templates/account.php:685
1453
+ msgctxt "as software license"
1454
+ msgid "License"
1455
+ msgstr "Licence"
1456
+
1457
+ #: templates/account.php:814
1458
+ msgctxt "verb"
1459
+ msgid "Hide"
1460
+ msgstr "Skrýt"
1461
+
1462
+ #: templates/account.php836, templates/forms/data-debug-mode.php:31
1463
+ msgid "Processing"
1464
+ msgstr "Processing"
1465
+
1466
+ #: templates/account.php:839
1467
+ msgid "Get updates for bleeding edge Beta versions of %s."
1468
+ msgstr "Get updates for bleeding edge Beta versions of %s."
1469
+
1470
+ #: templates/account.php:897
1471
+ msgid "Cancelling %s"
1472
+ msgstr "Ruším %s"
1473
+
1474
+ #: templates/account.php897, templates/account.php914,
1475
+ #: templates/forms/subscription-cancellation.php27,
1476
+ #: templates/forms/deactivation/form.php:133
1477
+ msgid "trial"
1478
+ msgstr "zkušební"
1479
+
1480
+ #: templates/account.php912, templates/forms/deactivation/form.php:150
1481
+ msgid "Cancelling %s..."
1482
+ msgstr "Ruším %s..."
1483
+
1484
+ #: templates/account.php915, templates/forms/subscription-cancellation.php28,
1485
+ #: templates/forms/deactivation/form.php:134
1486
+ msgid "subscription"
1487
+ msgstr "předplatné"
1488
+
1489
+ #: templates/account.php:929
1490
+ msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1491
+ msgstr "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1492
+
1493
+ #: templates/add-ons.php:38
1494
+ msgid "View details"
1495
+ msgstr "Zobrazit podrobnosti"
1496
+
1497
+ #: templates/add-ons.php:48
1498
+ msgid "Add Ons for %s"
1499
+ msgstr "Rozšíření pro %s"
1500
+
1501
+ #: templates/add-ons.php:58
1502
+ msgid "We couldn't load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1503
+ msgstr "We couldn't load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1504
+
1505
+ #: templates/add-ons.php:229
1506
+ msgctxt "active add-on"
1507
+ msgid "Active"
1508
+ msgstr "Active"
1509
+
1510
+ #: templates/add-ons.php:230
1511
+ msgctxt "installed add-on"
1512
+ msgid "Installed"
1513
+ msgstr "Installed"
1514
+
1515
+ #: templates/admin-notice.php13, templates/forms/license-activation.php207,
1516
+ #: templates/forms/resend-key.php:77
1517
+ msgctxt "as close a window"
1518
+ msgid "Dismiss"
1519
+ msgstr "Skrýt"
1520
+
1521
+ #: templates/auto-installation.php:45
1522
+ msgid "%s sec"
1523
+ msgstr "%s s"
1524
+
1525
+ #: templates/auto-installation.php:83
1526
+ msgid "Automatic Installation"
1527
+ msgstr "Automatic Installation"
1528
+
1529
+ #: templates/auto-installation.php:93
1530
+ msgid "An automated download and installation of %s (paid version) from %s will start in %s. If you would like to do it manually - click the cancellation button now."
1531
+ msgstr "An automated download and installation of %s (paid version) from %s will start in %s. If you would like to do it manually - click the cancellation button now."
1532
+
1533
+ #: templates/auto-installation.php:104
1534
+ msgid "The installation process has started and may take a few minutes to complete. Please wait until it is done - do not refresh this page."
1535
+ msgstr "Proces instalace byl zahájen a může trvat několik minut. Počkejte prosím na dokončení - neobnovujte tuto stránku."
1536
+
1537
+ #: templates/auto-installation.php:109
1538
+ msgid "Cancel Installation"
1539
+ msgstr "Cancel Installation"
1540
+
1541
+ #: templates/checkout.php:180
1542
+ msgid "Checkout"
1543
+ msgstr "Pokladna"
1544
+
1545
+ #: templates/checkout.php:180
1546
+ msgid "PCI compliant"
1547
+ msgstr "Kompatibilní s PCI"
1548
+
1549
+ #. translators: %s: name (e.g. Hey John,)
1550
+ #: templates/connect.php:112
1551
+ msgctxt "greeting"
1552
+ msgid "Hey %s,"
1553
+ msgstr "Dobrý den %s,"
1554
+
1555
+ #: templates/connect.php:154
1556
+ msgid "Allow & Continue"
1557
+ msgstr "Povolit a pokračovat"
1558
+
1559
+ #: templates/connect.php:158
1560
+ msgid "Re-send activation email"
1561
+ msgstr "Znovu poslat aktivační email"
1562
+
1563
+ #: templates/connect.php:162
1564
+ msgid "Thanks %s!"
1565
+ msgstr "Děkujeme %s!"
1566
+
1567
+ #: templates/connect.php172, templates/forms/license-activation.php:46
1568
+ msgid "Agree & Activate License"
1569
+ msgstr "Aktivovat licenci"
1570
+
1571
+ #: templates/connect.php:181
1572
+ msgid "Thanks for purchasing %s! To get started, please enter your license key:"
1573
+ msgstr "Děkujeme za nákup %s! Pro aktivaci zadejte prosím svůj licenční klíč:"
1574
+
1575
+ #: templates/connect.php:188
1576
+ msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s."
1577
+ msgstr "Nezmeškejte žádnou důležitou aktualizaci - dovolte nám sbírat anonymní a obecná diagnostická data s %4$s a nechte se upozornit na nové funkce, výukové materiály, nabídky a bezpečnostní aktualizace."
1578
+
1579
+ #: templates/connect.php:189
1580
+ msgid "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
1581
+ msgstr "Nezmeškejte žádnou důležitou aktualizaci - dovolte nám sbírat anonymní a obecná diagnostická data s %4$s a nechte se upozornit na nové funkce a bezpečnostní aktualizace."
1582
+
1583
+ #: templates/connect.php:195
1584
+ msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
1585
+ msgstr "Nezmeškejte žádnou důležitou aktualizaci - dovolte nám sbírat anonymní a obecná diagnostická data s %4$s a nechte se upozornit na nové funkce, výukové materiály, nabídky a bezpečnostní aktualizace. Pokud tohle přeskočíte tak se nic neděje. %1$s bude bez problémů dál fungovat."
1586
+
1587
+ #: templates/connect.php:196
1588
+ msgid "Never miss an important update - opt in to our security & feature updates notifications, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
1589
+ msgstr "Nezmeškejte žádnou důležitou aktualizaci - dovolte nám sbírat anonymní a obecná diagnostická data s %4$s a nechte se upozornit na nové funkce a bezpečnostní aktualizace. Pokud tohle přeskočíte tak se nic neděje. %1$s bude bez problémů dál fungovat."
1590
+
1591
+ #: templates/connect.php:230
1592
+ msgid "We're excited to introduce the Freemius network-level integration."
1593
+ msgstr "Jsme rádi, že vám můžeme ukázat integraci Freemiusu i v rámci sítě webů."
1594
+
1595
+ #: templates/connect.php:233
1596
+ msgid "During the update process we detected %d site(s) that are still pending license activation."
1597
+ msgstr "During the update process we detected %d site(s) that are still pending license activation."
1598
+
1599
+ #: templates/connect.php:235
1600
+ msgid "If you'd like to use the %s on those sites, please enter your license key below and click the activation button."
1601
+ msgstr "If you'd like to use the %s on those sites, please enter your license key below and click the activation button."
1602
+
1603
+ #: templates/connect.php:237
1604
+ msgid "%s's paid features"
1605
+ msgstr "%s's paid features"
1606
+
1607
+ #: templates/connect.php:242
1608
+ msgid "Alternatively, you can skip it for now and activate the license later, in your %s's network-level Account page."
1609
+ msgstr "Alternatively, you can skip it for now and activate the license later, in your %s's network-level Account page."
1610
+
1611
+ #: templates/connect.php:244
1612
+ msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
1613
+ msgstr "During the update process we detected %s site(s) in the network that are still pending your attention."
1614
+
1615
+ #: templates/connect.php253, templates/forms/data-debug-mode.php35,
1616
+ #: templates/forms/license-activation.php:49
1617
+ msgid "License key"
1618
+ msgstr "Licenční klíč"
1619
+
1620
+ #: templates/connect.php256, templates/forms/license-activation.php:22
1621
+ msgid "Can't find your license key?"
1622
+ msgstr "Nemůžete najít svůj licenční klíč?"
1623
+
1624
+ #: templates/connect.php315, templates/connect.php652,
1625
+ #: templates/forms/deactivation/retry-skip.php:20
1626
+ msgctxt "verb"
1627
+ msgid "Skip"
1628
+ msgstr "Přeskočit"
1629
+
1630
+ #: templates/connect.php:318
1631
+ msgid "Delegate to Site Admins"
1632
+ msgstr "Delegate to Site Admins"
1633
+
1634
+ #: templates/connect.php:318
1635
+ msgid "If you click it, this decision will be delegated to the sites administrators."
1636
+ msgstr "If you click it, this decision will be delegated to the sites administrators."
1637
+
1638
+ #: templates/connect.php:346
1639
+ msgid "Your Profile Overview"
1640
+ msgstr "Informace o vašem profilu"
1641
+
1642
+ #: templates/connect.php:347
1643
+ msgid "Name and email address"
1644
+ msgstr "Jméno a emailová adresa"
1645
+
1646
+ #: templates/connect.php:352
1647
+ msgid "Your Site Overview"
1648
+ msgstr "Informace o vaší stránce"
1649
+
1650
+ #: templates/connect.php:353
1651
+ msgid "Site URL, WP version, PHP info, plugins & themes"
1652
+ msgstr "URL webu, verze WP, PHP info, pluginy a šablony"
1653
+
1654
+ #: templates/connect.php:358
1655
+ msgid "Admin Notices"
1656
+ msgstr "Zobrazení oznámení v adminu"
1657
+
1658
+ #: templates/connect.php359, templates/connect.php:375
1659
+ msgid "Updates, announcements, marketing, no spam"
1660
+ msgstr "Aktualizace, oznámení, marketing, žádný spam"
1661
+
1662
+ #: templates/connect.php:364
1663
+ msgid "Current %s Events"
1664
+ msgstr "Informace o událostech pro %s"
1665
+
1666
+ #: templates/connect.php:365
1667
+ msgid "Activation, deactivation and uninstall"
1668
+ msgstr "Aktivace, deaktivace a odinstalace"
1669
+
1670
+ #: templates/connect.php:374
1671
+ msgid "Newsletter"
1672
+ msgstr "Newsletter"
1673
+
1674
+ #: templates/connect.php391, templates/forms/license-activation.php:41
1675
+ msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
1676
+ msgstr "Pro ověření platnosti vaší licence a automatických aktualizací bude tento %1$s periodicky odesílat data do %2$s."
1677
+
1678
+ #: templates/connect.php:396
1679
+ msgid "What permissions are being granted?"
1680
+ msgstr "Jaká oprávnění budou udělena?"
1681
+
1682
+ #: templates/connect.php:417
1683
+ msgid "Don't have a license key?"
1684
+ msgstr "Nemáte licenční klíč?"
1685
+
1686
+ #: templates/connect.php:420
1687
+ msgid "Have a license key?"
1688
+ msgstr "Máte licenční klíč?"
1689
+
1690
+ #: templates/connect.php:428
1691
+ msgid "Privacy Policy"
1692
+ msgstr "Zásady ochrany osobních údajů"
1693
+
1694
+ #: templates/connect.php:430
1695
+ msgid "License Agreement"
1696
+ msgstr "Licenční smlouva"
1697
+
1698
+ #: templates/connect.php:430
1699
+ msgid "Terms of Service"
1700
+ msgstr "Podmínky služby"
1701
+
1702
+ #: templates/connect.php:805
1703
+ msgctxt "as in the process of sending an email"
1704
+ msgid "Sending email"
1705
+ msgstr "Probíhá odesílání emailů"
1706
+
1707
+ #: templates/connect.php:806
1708
+ msgctxt "as activating plugin"
1709
+ msgid "Activating"
1710
+ msgstr "Probíhá aktivace"
1711
+
1712
+ #: templates/contact.php:78
1713
+ msgid "Contact"
1714
+ msgstr "Kontakt"
1715
+
1716
+ #: templates/debug.php:17
1717
+ msgctxt "as turned off"
1718
+ msgid "Off"
1719
+ msgstr "Vypnuto"
1720
+
1721
+ #: templates/debug.php:18
1722
+ msgctxt "as turned on"
1723
+ msgid "On"
1724
+ msgstr "Zapnuto"
1725
+
1726
+ #: templates/debug.php:20
1727
+ msgid "SDK"
1728
+ msgstr "SDK"
1729
+
1730
+ #: templates/debug.php:24
1731
+ msgctxt "as code debugging"
1732
+ msgid "Debugging"
1733
+ msgstr "Debugging"
1734
+
1735
+ #: templates/debug.php54, templates/debug.php250, templates/debug.php376,
1736
+ #: templates/debug.php:512
1737
+ msgid "Actions"
1738
+ msgstr "Akce objednávky"
1739
+
1740
+ #: templates/debug.php:64
1741
+ msgid "Are you sure you want to delete all Freemius data?"
1742
+ msgstr "Opravdu chcete smazat veškerá Freemius data?"
1743
+
1744
+ #: templates/debug.php:64
1745
+ msgid "Delete All Accounts"
1746
+ msgstr "Delete All Accounts"
1747
+
1748
+ #: templates/debug.php:71
1749
+ msgid "Clear API Cache"
1750
+ msgstr "Vymazat paměť API"
1751
+
1752
+ #: templates/debug.php:79
1753
+ msgid "Clear Updates Transients"
1754
+ msgstr "Clear Updates Transients"
1755
+
1756
+ #: templates/debug.php:86
1757
+ msgid "Sync Data From Server"
1758
+ msgstr "Synchronizovat data ze serveru"
1759
+
1760
+ #: templates/debug.php:95
1761
+ msgid "Migrate Options to Network"
1762
+ msgstr "Migrate Options to Network"
1763
+
1764
+ #: templates/debug.php:100
1765
+ msgid "Load DB Option"
1766
+ msgstr "Load DB Option"
1767
+
1768
+ #: templates/debug.php:103
1769
+ msgid "Set DB Option"
1770
+ msgstr "Set DB Option"
1771
+
1772
+ #: templates/debug.php:182
1773
+ msgid "Key"
1774
+ msgstr "Klíč"
1775
+
1776
+ #: templates/debug.php:183
1777
+ msgid "Value"
1778
+ msgstr "Hodnota"
1779
+
1780
+ #: templates/debug.php:199
1781
+ msgctxt "as software development kit versions"
1782
+ msgid "SDK Versions"
1783
+ msgstr "SDK Versions"
1784
+
1785
+ #: templates/debug.php:204
1786
+ msgid "SDK Path"
1787
+ msgstr "Cesta l SDK"
1788
+
1789
+ #: templates/debug.php205, templates/debug.php:244
1790
+ msgid "Module Path"
1791
+ msgstr "Cesta k modulu"
1792
+
1793
+ #: templates/debug.php:206
1794
+ msgid "Is Active"
1795
+ msgstr "Je aktivní"
1796
+
1797
+ #: templates/debug.php234, templates/debug/plugins-themes-sync.php:35
1798
+ msgid "Plugins"
1799
+ msgstr "Pluginy"
1800
+
1801
+ #: templates/debug.php234, templates/debug/plugins-themes-sync.php:56
1802
+ msgid "Themes"
1803
+ msgstr "Šablony"
1804
+
1805
+ #: templates/debug.php239, templates/debug.php370, templates/debug.php456,
1806
+ #: templates/debug/scheduled-crons.php:80
1807
+ msgid "Slug"
1808
+ msgstr "Zkratka"
1809
+
1810
+ #: templates/debug.php241, templates/debug.php:455
1811
+ msgid "Title"
1812
+ msgstr "Nadpis"
1813
+
1814
+ #: templates/debug.php:242
1815
+ msgctxt "as application program interface"
1816
+ msgid "API"
1817
+ msgstr "API"
1818
+
1819
+ #: templates/debug.php:243
1820
+ msgid "Freemius State"
1821
+ msgstr "Stav Freemius"
1822
+
1823
+ #: templates/debug.php:247
1824
+ msgid "Network Blog"
1825
+ msgstr "Network Blog"
1826
+
1827
+ #: templates/debug.php:248
1828
+ msgid "Network User"
1829
+ msgstr "Network User"
1830
+
1831
+ #: templates/debug.php:285
1832
+ msgctxt "as connection was successful"
1833
+ msgid "Connected"
1834
+ msgstr "Připojeno"
1835
+
1836
+ #: templates/debug.php:286
1837
+ msgctxt "as connection blocked"
1838
+ msgid "Blocked"
1839
+ msgstr "Zablokováno"
1840
+
1841
+ #: templates/debug.php:322
1842
+ msgid "Simulate Trial Promotion"
1843
+ msgstr "Simulate Trial Promotion"
1844
+
1845
+ #: templates/debug.php:334
1846
+ msgid "Simulate Network Upgrade"
1847
+ msgstr "Simulate Network Upgrade"
1848
+
1849
+ #: templates/debug.php:359
1850
+ msgid "%s Installs"
1851
+ msgstr "%s instalací"
1852
+
1853
+ #: templates/debug.php:361
1854
+ msgctxt "like websites"
1855
+ msgid "Sites"
1856
+ msgstr "Weby"
1857
+
1858
+ #: templates/debug.php367, templates/account/partials/site.php:156
1859
+ msgid "Blog ID"
1860
+ msgstr "Blog ID"
1861
+
1862
+ #: templates/debug.php:372
1863
+ msgid "License ID"
1864
+ msgstr "License ID"
1865
+
1866
+ #: templates/debug.php436, templates/debug.php535,
1867
+ #: templates/account/partials/addon.php:435
1868
+ msgctxt "verb"
1869
+ msgid "Delete"
1870
+ msgstr "Smazat"
1871
+
1872
+ #: templates/debug.php:450
1873
+ msgid "Add Ons of module %s"
1874
+ msgstr "Add Ons of module %s"
1875
+
1876
+ #: templates/debug.php:502
1877
+ msgid "Users"
1878
+ msgstr "Uživatelé"
1879
+
1880
+ #: templates/debug.php:509
1881
+ msgid "Verified"
1882
+ msgstr "Ověřeno"
1883
+
1884
+ #: templates/debug.php:551
1885
+ msgid "%s Licenses"
1886
+ msgstr "%s licencí"
1887
+
1888
+ #: templates/debug.php:556
1889
+ msgid "Plugin ID"
1890
+ msgstr "ID pluginu"
1891
+
1892
+ #: templates/debug.php:558
1893
+ msgid "Plan ID"
1894
+ msgstr "ID členství"
1895
+
1896
+ #: templates/debug.php:559
1897
+ msgid "Quota"
1898
+ msgstr "Quota"
1899
+
1900
+ #: templates/debug.php:560
1901
+ msgid "Activated"
1902
+ msgstr "Aktivovaný"
1903
+
1904
+ #: templates/debug.php:561
1905
+ msgid "Blocking"
1906
+ msgstr "Blokování"
1907
+
1908
+ #: templates/debug.php:563
1909
+ msgctxt "as expiration date"
1910
+ msgid "Expiration"
1911
+ msgstr "Expirace"
1912
+
1913
+ #: templates/debug.php:590
1914
+ msgid "Debug Log"
1915
+ msgstr "Ladící log"
1916
+
1917
+ #: templates/debug.php:594
1918
+ msgid "All Types"
1919
+ msgstr "Všechny typy"
1920
+
1921
+ #: templates/debug.php:601
1922
+ msgid "All Requests"
1923
+ msgstr "All Requests"
1924
+
1925
+ #: templates/debug.php606, templates/debug.php635,
1926
+ #: templates/debug/logger.php:25
1927
+ msgid "File"
1928
+ msgstr "Soubor"
1929
+
1930
+ #: templates/debug.php607, templates/debug.php633,
1931
+ #: templates/debug/logger.php:23
1932
+ msgid "Function"
1933
+ msgstr "Funkce"
1934
+
1935
+ #: templates/debug.php:608
1936
+ msgid "Process ID"
1937
+ msgstr "Process ID"
1938
+
1939
+ #: templates/debug.php:609
1940
+ msgid "Logger"
1941
+ msgstr "Logger"
1942
+
1943
+ #: templates/debug.php610, templates/debug.php634,
1944
+ #: templates/debug/logger.php:24
1945
+ msgid "Message"
1946
+ msgstr "Zpráva"
1947
+
1948
+ #: templates/debug.php:612
1949
+ msgid "Filter"
1950
+ msgstr "Filtr"
1951
+
1952
+ #: templates/debug.php:620
1953
+ msgid "Download"
1954
+ msgstr "Stáhnout"
1955
+
1956
+ #: templates/debug.php631, templates/debug/logger.php:22
1957
+ msgid "Type"
1958
+ msgstr "Typ"
1959
+
1960
+ #: templates/debug.php636, templates/debug/logger.php:26
1961
+ msgid "Timestamp"
1962
+ msgstr "Datum a čas"
1963
+
1964
+ #: templates/secure-https-header.php:28
1965
+ msgid "Secure HTTPS %s page, running from an external domain"
1966
+ msgstr "Zabezpečená stránka HTTPS %s spuštěná z externí domény"
1967
+
1968
+ #: includes/customizer/class-fs-customizer-support-section.php55,
1969
+ #: templates/plugin-info/features.php:43
1970
+ msgid "Support"
1971
+ msgstr "Podpora"
1972
+
1973
+ #: includes/debug/class-fs-debug-bar-panel.php48,
1974
+ #: templates/debug/api-calls.php54, templates/debug/logger.php:62
1975
+ msgctxt "milliseconds"
1976
+ msgid "ms"
1977
+ msgstr "ms"
1978
+
1979
+ #: includes/debug/debug-bar-start.php:41
1980
+ msgid "Freemius API"
1981
+ msgstr "Freemius API"
1982
+
1983
+ #: includes/debug/debug-bar-start.php:42
1984
+ msgid "Requests"
1985
+ msgstr "Žádosti"
1986
+
1987
+ #: templates/account/billing.php:22
1988
+ msgctxt "verb"
1989
+ msgid "Update"
1990
+ msgstr "Aktualizovat"
1991
+
1992
+ #: templates/account/billing.php:33
1993
+ msgid "Billing"
1994
+ msgstr "Fakturace"
1995
+
1996
+ #: templates/account/billing.php38, templates/account/billing.php:38
1997
+ msgid "Business name"
1998
+ msgstr "Jméno firmy"
1999
+
2000
+ #: templates/account/billing.php39, templates/account/billing.php:39
2001
+ msgid "Tax / VAT ID"
2002
+ msgstr "Tax / VAT ID"
2003
+
2004
+ #: templates/account/billing.php42, templates/account/billing.php42,
2005
+ #: templates/account/billing.php43, templates/account/billing.php:43
2006
+ msgid "Address Line %d"
2007
+ msgstr "Address Line %d"
2008
+
2009
+ #: templates/account/billing.php46, templates/account/billing.php:46
2010
+ msgid "City"
2011
+ msgstr "Město"
2012
+
2013
+ #: templates/account/billing.php46, templates/account/billing.php:46
2014
+ msgid "Town"
2015
+ msgstr "Město"
2016
+
2017
+ #: templates/account/billing.php47, templates/account/billing.php:47
2018
+ msgid "ZIP / Postal Code"
2019
+ msgstr "PSČ / směrovací číslo"
2020
+
2021
+ #: templates/account/billing.php:302
2022
+ msgid "Country"
2023
+ msgstr "Země"
2024
+
2025
+ #: templates/account/billing.php:304
2026
+ msgid "Select Country"
2027
+ msgstr "Vyberte zemi"
2028
+
2029
+ #: templates/account/billing.php311, templates/account/billing.php:312
2030
+ msgid "State"
2031
+ msgstr "Kraj"
2032
+
2033
+ #: templates/account/billing.php311, templates/account/billing.php:312
2034
+ msgid "Province"
2035
+ msgstr "Okres"
2036
+
2037
+ #: templates/account/payments.php:29
2038
+ msgid "Payments"
2039
+ msgstr "Platby"
2040
+
2041
+ #: templates/account/payments.php:36
2042
+ msgid "Date"
2043
+ msgstr "Datum"
2044
+
2045
+ #: templates/account/payments.php:37
2046
+ msgid "Amount"
2047
+ msgstr "Částka"
2048
+
2049
+ #: templates/account/payments.php38, templates/account/payments.php:50
2050
+ msgid "Invoice"
2051
+ msgstr "Faktura"
2052
+
2053
+ #: templates/debug/api-calls.php:56
2054
+ msgid "API"
2055
+ msgstr "API"
2056
+
2057
+ #: templates/debug/api-calls.php:68
2058
+ msgid "Method"
2059
+ msgstr "Metoda"
2060
+
2061
+ #: templates/debug/api-calls.php:69
2062
+ msgid "Code"
2063
+ msgstr "Kód"
2064
+
2065
+ #: templates/debug/api-calls.php:70
2066
+ msgid "Length"
2067
+ msgstr "Délka"
2068
+
2069
+ #: templates/debug/api-calls.php:71
2070
+ msgctxt "as file/folder path"
2071
+ msgid "Path"
2072
+ msgstr "Složka"
2073
+
2074
+ #: templates/debug/api-calls.php:73
2075
+ msgid "Body"
2076
+ msgstr "Tělo"
2077
+
2078
+ #: templates/debug/api-calls.php:75
2079
+ msgid "Result"
2080
+ msgstr "Výsledek"
2081
+
2082
+ #: templates/debug/api-calls.php:76
2083
+ msgid "Start"
2084
+ msgstr "Začátek"
2085
+
2086
+ #: templates/debug/api-calls.php:77
2087
+ msgid "End"
2088
+ msgstr "Konec"
2089
+
2090
+ #: templates/debug/logger.php:15
2091
+ msgid "Log"
2092
+ msgstr "Záznam"
2093
+
2094
+ #. translators: %s: time period (e.g. In "2 hours")
2095
+ #: templates/debug/plugins-themes-sync.php18,
2096
+ #: templates/debug/scheduled-crons.php:91
2097
+ msgid "In %s"
2098
+ msgstr "Za %s"
2099
+
2100
+ #. translators: %s: time period (e.g. "2 hours" ago)
2101
+ #: templates/debug/plugins-themes-sync.php20,
2102
+ #: templates/debug/scheduled-crons.php:93
2103
+ msgid "%s ago"
2104
+ msgstr "Před %s"
2105
+
2106
+ #: templates/debug/plugins-themes-sync.php21,
2107
+ #: templates/debug/scheduled-crons.php:74
2108
+ msgctxt "seconds"
2109
+ msgid "sec"
2110
+ msgstr "s"
2111
+
2112
+ #: templates/debug/plugins-themes-sync.php:23
2113
+ msgid "Plugins & Themes Sync"
2114
+ msgstr "Pluginy a synchronizace šablon"
2115
+
2116
+ #: templates/debug/plugins-themes-sync.php:28
2117
+ msgid "Total"
2118
+ msgstr "Celkem"
2119
+
2120
+ #: templates/debug/plugins-themes-sync.php29,
2121
+ #: templates/debug/scheduled-crons.php:84
2122
+ msgid "Last"
2123
+ msgstr "Poslední"
2124
+
2125
+ #: templates/debug/scheduled-crons.php:76
2126
+ msgid "Scheduled Crons"
2127
+ msgstr "Plánované crony"
2128
+
2129
+ #: templates/debug/scheduled-crons.php:81
2130
+ msgid "Module"
2131
+ msgstr "Modul"
2132
+
2133
+ #: templates/debug/scheduled-crons.php:82
2134
+ msgid "Module Type"
2135
+ msgstr "Typ modulu"
2136
+
2137
+ #: templates/debug/scheduled-crons.php:83
2138
+ msgid "Cron Type"
2139
+ msgstr "Cron Type"
2140
+
2141
+ #: templates/debug/scheduled-crons.php:85
2142
+ msgid "Next"
2143
+ msgstr "Následující"
2144
+
2145
+ #: templates/forms/affiliation.php:82
2146
+ msgid "Non-expiring"
2147
+ msgstr "Non-expiring"
2148
+
2149
+ #: templates/forms/affiliation.php:85
2150
+ msgid "Apply to become an affiliate"
2151
+ msgstr "Apply to become an affiliate"
2152
+
2153
+ #: templates/forms/affiliation.php:104
2154
+ msgid "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
2155
+ msgstr "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
2156
+
2157
+ #: templates/forms/affiliation.php:119
2158
+ msgid "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information."
2159
+ msgstr "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information."
2160
+
2161
+ #: templates/forms/affiliation.php:122
2162
+ msgid "Your affiliation account was temporarily suspended."
2163
+ msgstr "Your affiliation account was temporarily suspended."
2164
+
2165
+ #: templates/forms/affiliation.php:125
2166
+ msgid "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days."
2167
+ msgstr "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days."
2168
+
2169
+ #: templates/forms/affiliation.php:128
2170
+ msgid "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
2171
+ msgstr "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
2172
+
2173
+ #: templates/forms/affiliation.php:141
2174
+ msgid "Like the %s? Become our ambassador and earn cash ;-)"
2175
+ msgstr "Like the %s? Become our ambassador and earn cash ;-)"
2176
+
2177
+ #: templates/forms/affiliation.php:142
2178
+ msgid "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
2179
+ msgstr "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
2180
+
2181
+ #: templates/forms/affiliation.php:145
2182
+ msgid "Program Summary"
2183
+ msgstr "Program Summary"
2184
+
2185
+ #: templates/forms/affiliation.php:147
2186
+ msgid "%s commission when a customer purchases a new license."
2187
+ msgstr "%s provizi, když zákazník zakoupí novou licenci."
2188
+
2189
+ #: templates/forms/affiliation.php:149
2190
+ msgid "Get commission for automated subscription renewals."
2191
+ msgstr "Get commission for automated subscription renewals."
2192
+
2193
+ #: templates/forms/affiliation.php:152
2194
+ msgid "%s tracking cookie after the first visit to maximize earnings potential."
2195
+ msgstr "%s tracking cookie after the first visit to maximize earnings potential."
2196
+
2197
+ #: templates/forms/affiliation.php:155
2198
+ msgid "Unlimited commissions."
2199
+ msgstr "Unlimited commissions."
2200
+
2201
+ #: templates/forms/affiliation.php:157
2202
+ msgid "%s minimum payout amount."
2203
+ msgstr "%s minimální částka výplaty."
2204
+
2205
+ #: templates/forms/affiliation.php:158
2206
+ msgid "Payouts are in USD and processed monthly via PayPal."
2207
+ msgstr "Payouts are in USD and processed monthly via PayPal."
2208
+
2209
+ #: templates/forms/affiliation.php:159
2210
+ msgid "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
2211
+ msgstr "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
2212
+
2213
+ #: templates/forms/affiliation.php:162
2214
+ msgid "Affiliate"
2215
+ msgstr "Partner"
2216
+
2217
+ #: templates/forms/affiliation.php165, templates/forms/resend-key.php:23
2218
+ msgid "Email address"
2219
+ msgstr "Emailová adresa"
2220
+
2221
+ #: templates/forms/affiliation.php:169
2222
+ msgid "Full name"
2223
+ msgstr "Celé jméno"
2224
+
2225
+ #: templates/forms/affiliation.php:173
2226
+ msgid "PayPal account email address"
2227
+ msgstr "E-mailová adresa účtu PayPal"
2228
+
2229
+ #: templates/forms/affiliation.php:177
2230
+ msgid "Where are you going to promote the %s?"
2231
+ msgstr "Where are you going to promote the %s?"
2232
+
2233
+ #: templates/forms/affiliation.php:179
2234
+ msgid "Enter the domain of your website or other websites from where you plan to promote the %s."
2235
+ msgstr "Enter the domain of your website or other websites from where you plan to promote the %s."
2236
+
2237
+ #: templates/forms/affiliation.php:181
2238
+ msgid "Add another domain"
2239
+ msgstr "Add another domain"
2240
+
2241
+ #: templates/forms/affiliation.php:185
2242
+ msgid "Extra Domains"
2243
+ msgstr "Další domény"
2244
+
2245
+ #: templates/forms/affiliation.php:186
2246
+ msgid "Extra domains where you will be marketing the product from."
2247
+ msgstr "Extra domains where you will be marketing the product from."
2248
+
2249
+ #: templates/forms/affiliation.php:196
2250
+ msgid "Promotion methods"
2251
+ msgstr "Promotion methods"
2252
+
2253
+ #: templates/forms/affiliation.php:199
2254
+ msgid "Social media (Facebook, Twitter, etc.)"
2255
+ msgstr "Social media (Facebook, Twitter, etc.)"
2256
+
2257
+ #: templates/forms/affiliation.php:203
2258
+ msgid "Mobile apps"
2259
+ msgstr "Mobile apps"
2260
+
2261
+ #: templates/forms/affiliation.php:207
2262
+ msgid "Website, email, and social media statistics (optional)"
2263
+ msgstr "Statistika o webová stránc, emaiul a sociálních médiích"
2264
+
2265
+ #: templates/forms/affiliation.php:210
2266
+ msgid "Please feel free to provide any relevant website or social media statistics, e.g. monthly unique site visits, number of email subscribers, followers, etc. (we will keep this information confidential)."
2267
+ msgstr "Please feel free to provide any relevant website or social media statistics, e.g. monthly unique site visits, number of email subscribers, followers, etc. (we will keep this information confidential)."
2268
+
2269
+ #: templates/forms/affiliation.php:214
2270
+ msgid "How will you promote us?"
2271
+ msgstr "Jakým způsobem budete mé produkty propagovat?"
2272
+
2273
+ #: templates/forms/affiliation.php:217
2274
+ msgid "Please provide details on how you intend to promote %s (please be as specific as possible)."
2275
+ msgstr "Please provide details on how you intend to promote %s (please be as specific as possible)."
2276
+
2277
+ #: templates/forms/affiliation.php223, templates/forms/resend-key.php:22
2278
+ msgid "Cancel"
2279
+ msgstr "Zrušit"
2280
+
2281
+ #: templates/forms/affiliation.php:225
2282
+ msgid "Become an affiliate"
2283
+ msgstr "Staňte se naším afiliátem"
2284
+
2285
+ #: templates/forms/data-debug-mode.php:25
2286
+ msgid "Please enter the license key to enable the debug mode:"
2287
+ msgstr "Please enter the license key to enable the debug mode:"
2288
+
2289
+ #: templates/forms/data-debug-mode.php:27
2290
+ msgid "To enter the debug mode, please enter the secret key of the license owner (UserID = %d), which you can find in your \"My Profile\" section of your User Dashboard:"
2291
+ msgstr "To enter the debug mode, please enter the secret key of the license owner (UserID = %d), which you can find in your \"My Profile\" section of your User Dashboard:"
2292
+
2293
+ #: templates/forms/data-debug-mode.php:32
2294
+ msgid "Submit"
2295
+ msgstr "Submit"
2296
+
2297
+ #: templates/forms/data-debug-mode.php:36
2298
+ msgid "User key"
2299
+ msgstr "User key"
2300
+
2301
+ #: templates/forms/license-activation.php:23
2302
+ msgid "Please enter the license key that you received in the email right after the purchase:"
2303
+ msgstr "Please enter the license key that you received in the email right after the purchase:"
2304
+
2305
+ #: templates/forms/license-activation.php:28
2306
+ msgid "Update License"
2307
+ msgstr "Aktualizovat licenci"
2308
+
2309
+ #: templates/forms/optout.php:30
2310
+ msgctxt "verb"
2311
+ msgid "Opt Out"
2312
+ msgstr "Odhlásit se"
2313
+
2314
+ #: templates/forms/optout.php:31
2315
+ msgctxt "verb"
2316
+ msgid "Opt In"
2317
+ msgstr "Zúčastnit se"
2318
+
2319
+ #: templates/forms/optout.php:33
2320
+ msgid "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking."
2321
+ msgstr "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking."
2322
+
2323
+ #: templates/forms/optout.php:35
2324
+ msgid "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
2325
+ msgstr "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
2326
+
2327
+ #: templates/forms/premium-versions-upgrade-handler.php:40
2328
+ msgid "There is a new version of %s available."
2329
+ msgstr "Je k dispozici nová verze %s."
2330
+
2331
+ #: templates/forms/premium-versions-upgrade-handler.php:41
2332
+ msgid " %s to access version %s security & feature updates, and support."
2333
+ msgstr " %s pro přístup k verzi %s zajišťující podporu a nejen bezpečnostní aktualizace."
2334
+
2335
+ #: templates/forms/premium-versions-upgrade-handler.php:54
2336
+ msgid "New Version Available"
2337
+ msgstr "Nová verze k dispozici"
2338
+
2339
+ #: templates/forms/premium-versions-upgrade-handler.php:75
2340
+ msgctxt "close a window"
2341
+ msgid "Dismiss"
2342
+ msgstr "Skrýt"
2343
+
2344
+ #: templates/forms/resend-key.php:21
2345
+ msgid "Send License Key"
2346
+ msgstr "Odeslat licenční klíč"
2347
+
2348
+ #: templates/forms/resend-key.php:57
2349
+ msgid "Enter the email address you've used for the upgrade below and we will resend you the license key."
2350
+ msgstr "Níže zadejte emailovou adresu, kterou jste použili pro koupi pluginu a my vám znovu odešleme váš licenční klíč."
2351
+
2352
+ #: templates/forms/subscription-cancellation.php:37
2353
+ msgid "Deactivating or uninstalling the %s will automatically disable the license, which you'll be able to use on another site."
2354
+ msgstr "Deactivating or uninstalling the %s will automatically disable the license, which you'll be able to use on another site."
2355
+
2356
+ #: templates/forms/subscription-cancellation.php:47
2357
+ msgid "In case you are NOT planning on using this %s on this site (or any other site) - would you like to cancel the %s as well?"
2358
+ msgstr "In case you are NOT planning on using this %s on this site (or any other site) - would you like to cancel the %s as well?"
2359
+
2360
+ #: templates/forms/subscription-cancellation.php:52
2361
+ msgid "license"
2362
+ msgstr "licence"
2363
+
2364
+ #: templates/forms/subscription-cancellation.php:57
2365
+ msgid "Cancel %s - I no longer need any security & feature updates, nor support for %s because I'm not planning to use the %s on this, or any other site."
2366
+ msgstr "Cancel %s - I no longer need any security & feature updates, nor support for %s because I'm not planning to use the %s on this, or any other site."
2367
+
2368
+ #: templates/forms/subscription-cancellation.php:68
2369
+ msgid "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
2370
+ msgstr "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
2371
+
2372
+ #: templates/forms/subscription-cancellation.php:103
2373
+ msgid "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
2374
+ msgstr "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
2375
+
2376
+ #: templates/forms/subscription-cancellation.php:136
2377
+ msgid "Cancel %s?"
2378
+ msgstr "Cancel %s?"
2379
+
2380
+ #: templates/forms/subscription-cancellation.php:143
2381
+ msgid "Proceed"
2382
+ msgstr "Pokračovat"
2383
+
2384
+ #: templates/forms/subscription-cancellation.php191,
2385
+ #: templates/forms/deactivation/form.php:171
2386
+ msgid "Cancel %s & Proceed"
2387
+ msgstr "Zrušit %s &gt; pokračovat"
2388
+
2389
+ #: templates/forms/trial-start.php:22
2390
+ msgid "You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
2391
+ msgstr "You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
2392
+
2393
+ #: templates/forms/trial-start.php:28
2394
+ msgid "For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt in with your user and non-sensitive site information, allowing the %s to periodically send data to %s to check for version updates and to validate your trial."
2395
+ msgstr "Aby bylo vyhověno WordPress.org pokynům, před zahájením zkušebního období vás žádáme, abyste se rozhodli pro uživatele a necitlivé informace o webu, aby %s umožňoval periodicky odesílat data do %s za účelem kontroly aktualizací verzí a ověření zkušební verze."
2396
+
2397
+ #: templates/js/style-premium-theme.php:39
2398
+ msgid "Premium"
2399
+ msgstr "Prémium"
2400
+
2401
+ #: templates/js/style-premium-theme.php:42
2402
+ msgid "Beta"
2403
+ msgstr "Beta"
2404
+
2405
+ #: templates/partials/network-activation.php:27
2406
+ msgid "Activate license on all sites in the network."
2407
+ msgstr "Activate license on all sites in the network."
2408
+
2409
+ #: templates/partials/network-activation.php:28
2410
+ msgid "Apply on all sites in the network."
2411
+ msgstr "Apply on all sites in the network."
2412
+
2413
+ #: templates/partials/network-activation.php:31
2414
+ msgid "Activate license on all pending sites."
2415
+ msgstr "Activate license on all pending sites."
2416
+
2417
+ #: templates/partials/network-activation.php:32
2418
+ msgid "Apply on all pending sites."
2419
+ msgstr "Apply on all pending sites."
2420
+
2421
+ #: templates/partials/network-activation.php40,
2422
+ #: templates/partials/network-activation.php:74
2423
+ msgid "allow"
2424
+ msgstr "povolit"
2425
+
2426
+ #: templates/partials/network-activation.php43,
2427
+ #: templates/partials/network-activation.php:77
2428
+ msgid "delegate"
2429
+ msgstr "delegovat"
2430
+
2431
+ #: templates/partials/network-activation.php47,
2432
+ #: templates/partials/network-activation.php:81
2433
+ msgid "skip"
2434
+ msgstr "přeskočit"
2435
+
2436
+ #: templates/plugin-info/description.php72,
2437
+ #: templates/plugin-info/screenshots.php:31
2438
+ msgid "Click to view full-size screenshot %d"
2439
+ msgstr "Klikněte pro zobrazení plné velikosti snímku obrazovky %d"
2440
+
2441
+ #: templates/plugin-info/features.php:56
2442
+ msgid "Unlimited Updates"
2443
+ msgstr "Neomezené aktualizace"
2444
+
2445
+ #: templates/account/partials/activate-license-button.php:46
2446
+ msgid "Localhost"
2447
+ msgstr "Localhost"
2448
+
2449
+ #: templates/account/partials/activate-license-button.php:50
2450
+ msgctxt "as 5 licenses left"
2451
+ msgid "%s left"
2452
+ msgstr "Zbývá %s"
2453
+
2454
+ #: templates/account/partials/activate-license-button.php:51
2455
+ msgid "Last license"
2456
+ msgstr "Poslední licence"
2457
+
2458
+ #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
2459
+ #. subscription'
2460
+ #: templates/account/partials/addon.php:29
2461
+ msgid "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2462
+ msgstr "%1$s okamžitě zastaví všechny budoucí opakující se platby a licence k plánu %s vyprší za %s."
2463
+
2464
+ #: templates/account/partials/addon.php:185
2465
+ msgid "Cancelled"
2466
+ msgstr "Zrušena"
2467
+
2468
+ #: templates/account/partials/addon.php:195
2469
+ msgid "No expiration"
2470
+ msgstr "Bez vypršení"
2471
+
2472
+ #: templates/account/partials/site.php:189
2473
+ msgid "Owner Name"
2474
+ msgstr "Jméno vlastníka"
2475
+
2476
+ #: templates/account/partials/site.php:201
2477
+ msgid "Owner Email"
2478
+ msgstr "E-mail vlastníka"
2479
+
2480
+ #: templates/account/partials/site.php:213
2481
+ msgid "Owner ID"
2482
+ msgstr "ID vlastníka"
2483
+
2484
+ #: templates/account/partials/site.php:286
2485
+ msgid "Subscription"
2486
+ msgstr "Předplatné"
2487
+
2488
+ #: templates/forms/deactivation/contact.php:19
2489
+ msgid "Sorry for the inconvenience and we are here to help if you give us a chance."
2490
+ msgstr "Omlouváme se za způsobené nepříjemnosti, ale když se nám dáte šanci, tak se vám ze všech sil pokusíme pomoci."
2491
+
2492
+ #: templates/forms/deactivation/contact.php:22
2493
+ msgid "Contact Support"
2494
+ msgstr "Kontaktovat podporu"
2495
+
2496
+ #: templates/forms/deactivation/form.php:64
2497
+ msgid "Anonymous feedback"
2498
+ msgstr "Anonymní zpětná vazba"
2499
+
2500
+ #: templates/forms/deactivation/form.php:70
2501
+ msgid "Deactivate"
2502
+ msgstr "Deaktivovat"
2503
+
2504
+ #: templates/forms/deactivation/form.php:72
2505
+ msgid "Activate %s"
2506
+ msgstr "Aktivovat %s"
2507
+
2508
+ #: templates/forms/deactivation/form.php:87
2509
+ msgid "Quick Feedback"
2510
+ msgstr "Rychlá zpětná vazba"
2511
+
2512
+ #: templates/forms/deactivation/form.php:91
2513
+ msgid "If you have a moment, please let us know why you are %s"
2514
+ msgstr "Máte-li chvilku, dejte nám vědět, proč %s"
2515
+
2516
+ #: templates/forms/deactivation/form.php:91
2517
+ msgid "deactivating"
2518
+ msgstr "deaktivujete"
2519
+
2520
+ #: templates/forms/deactivation/form.php:91
2521
+ msgid "switching"
2522
+ msgstr "přepínám"
2523
+
2524
+ #: templates/forms/deactivation/form.php:365
2525
+ msgid "Submit & %s"
2526
+ msgstr "Odeslat & %s"
2527
+
2528
+ #: templates/forms/deactivation/form.php:386
2529
+ msgid "Kindly tell us the reason so we can improve."
2530
+ msgstr "Dejte nám prosím vědět z jakého důvodu, ať to můžeme zlepšit."
2531
+
2532
+ #: templates/forms/deactivation/form.php:511
2533
+ msgid "Yes - %s"
2534
+ msgstr "Ano - %s"
2535
+
2536
+ #: templates/forms/deactivation/form.php:518
2537
+ msgid "Skip & %s"
2538
+ msgstr "Přeskočit & %s"
2539
+
2540
+ #: templates/forms/deactivation/retry-skip.php:21
2541
+ msgid "Click here to use the plugin anonymously"
2542
+ msgstr "Klikněte zde pro anonymní používání tohoto pluginu"
2543
+
2544
+ #: templates/forms/deactivation/retry-skip.php:23
2545
+ msgid "You might have missed it, but you don't have to share any data and can just %s the opt-in."
2546
+ msgstr "You might have missed it, but you don't have to share any data and can just %s the opt-in."
vendor/freemius/wordpress-sdk/languages/freemius-da_DK.mo CHANGED
Binary file
vendor/freemius/wordpress-sdk/languages/freemius-da_DK.po CHANGED
@@ -1,1632 +1,1520 @@
 
 
 
 
 
 
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: \n"
4
- "Report-Msgid-Bugs-To: \n"
5
  "POT-Creation-Date: \n"
6
- "PO-Revision-Date: \n"
7
- "Last-Translator: \n"
8
- "Language: \n"
9
- "Language-Team: \n"
10
- "Content-Type: \n"
11
- "Content-Transfer-Encoding: \n"
12
- "Plural-Forms: \n"
13
- o: https://github.com/Freemius/wordpress-sdk/issues\n"
14
- "POT-Creation-Date: \n"
15
- "PO-Revision-Date: 2019-06-05 13:40+0000\n"
16
- "Last-Translator: Joachim Jensen\n"
17
  "Language-Team: Danish (Denmark) (http://www.transifex.com/freemius/wordpress-sdk/language/da_DK/)\n"
18
- "MIME-Version: 1.0\n"
19
  "Content-Type: text/plain; charset=UTF-8\n"
20
  "Content-Transfer-Encoding: 8bit\n"
21
- "Language: da_DK\n"
22
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
23
  "X-Poedit-Basepath: ..\n"
24
  "X-Poedit-KeywordsList: get_text_inline;fs_text_inline;fs_echo_inline;fs_esc_js_inline;fs_esc_attr_inline;fs_esc_attr_echo_inline;fs_esc_html_inline;fs_esc_html_echo_inline;get_text_x_inline:1,2c;fs_text_x_inline:1,2c;fs_echo_x_inline:1,2c;fs_esc_attr_x_inline:1,2c;fs_esc_js_x_inline:1,2c;fs_esc_js_echo_x_inline:1,2c;fs_esc_html_x_inline:1,2c;fs_esc_html_echo_x_inline:1,2c\n"
25
  "X-Poedit-SearchPath-0: .\n"
26
  "X-Poedit-SearchPathExcluded-0: *.js\n"
27
  "X-Poedit-SourceCharset: UTF-8\n"
28
 
29
- #: includes/class-freemius.php1838, templates/account.php:769
30
- msgid ""
31
- "An update to a Beta version will replace your installed version of %s with "
32
- "the latest Beta release - use with caution, and not on production sites. You"
33
- " have been warned."
34
- msgstr ""
35
 
36
- #: includes/class-freemius.php:1845
37
  msgid "Would you like to proceed with the update?"
38
- msgstr ""
39
 
40
- #: includes/class-freemius.php:2053
41
- msgid ""
42
- "Freemius SDK couldn't find the plugin's main file. Please contact "
43
- "sdk@freemius.com with the current error."
44
- msgstr ""
45
 
46
- #: includes/class-freemius.php:2055
47
  msgid "Error"
48
  msgstr "Fejl"
49
 
50
- #: includes/class-freemius.php:2445
51
  msgid "I found a better %s"
52
  msgstr "Jeg fandt et bedre %s"
53
 
54
- #: includes/class-freemius.php:2447
55
  msgid "What's the %s's name?"
56
  msgstr "Hvad er navnet på %s?"
57
 
58
- #: includes/class-freemius.php:2453
59
  msgid "It's a temporary %s. I'm just debugging an issue."
60
  msgstr "Det er en midlertidig %s. Jeg er i gang med fejlrettelser."
61
 
62
- #: includes/class-freemius.php:2455
63
  msgid "Deactivation"
64
  msgstr "Deaktivering"
65
 
66
- #: includes/class-freemius.php:2456
67
  msgid "Theme Switch"
68
  msgstr "Temaskift"
69
 
70
- #: includes/class-freemius.php2465, templates/forms/resend-key.php:24
71
  msgid "Other"
72
  msgstr "Andet"
73
 
74
- #: includes/class-freemius.php:2473
75
  msgid "I no longer need the %s"
76
  msgstr "Jeg har ikke længere brug for %s"
77
 
78
- #: includes/class-freemius.php:2480
79
  msgid "I only needed the %s for a short period"
80
  msgstr "Jeg behøvede kun %s i en kort periode"
81
 
82
- #: includes/class-freemius.php:2486
83
  msgid "The %s broke my site"
84
  msgstr "%s ødelagde min webside"
85
 
86
- #: includes/class-freemius.php:2493
87
  msgid "The %s suddenly stopped working"
88
  msgstr "%s stoppede pludseligt med at virke"
89
 
90
- #: includes/class-freemius.php:2503
91
  msgid "I can't pay for it anymore"
92
  msgstr "Jeg kan ikke længere betale for det"
93
 
94
- #: includes/class-freemius.php:2505
95
  msgid "What price would you feel comfortable paying?"
96
  msgstr "Hvilken pris ville du foretrække at betale?"
97
 
98
- #: includes/class-freemius.php:2511
99
  msgid "I don't like to share my information with you"
100
  msgstr "Jeg har ikke lyst til at dele mine informationer med jer"
101
 
102
- #: includes/class-freemius.php:2532
103
  msgid "The %s didn't work"
104
  msgstr "%s virkede ikke"
105
 
106
- #: includes/class-freemius.php:2542
107
  msgid "I couldn't understand how to make it work"
108
  msgstr "Jeg forstod ikke, hvordan jeg skulle få det til at fungere."
109
 
110
- #: includes/class-freemius.php:2550
111
  msgid "The %s is great, but I need specific feature that you don't support"
112
  msgstr "%s er godt, men jeg har brug for en specifik feature, som ikke understøttes"
113
 
114
- #: includes/class-freemius.php:2552
115
  msgid "What feature?"
116
  msgstr "Hvilken feature?"
117
 
118
- #: includes/class-freemius.php:2556
119
  msgid "The %s is not working"
120
  msgstr "%s virker ikke"
121
 
122
- #: includes/class-freemius.php:2558
123
  msgid "Kindly share what didn't work so we can fix it for future users..."
124
- msgstr ""
125
 
126
- #: includes/class-freemius.php:2562
127
  msgid "It's not what I was looking for"
128
  msgstr "Det er ikke, hvad jeg søgte"
129
 
130
- #: includes/class-freemius.php:2564
131
  msgid "What you've been looking for?"
132
- msgstr "Hvad har du ledt efter?"
133
 
134
- #: includes/class-freemius.php:2568
135
  msgid "The %s didn't work as expected"
136
  msgstr "%s virkede ikke som forventet"
137
 
138
- #: includes/class-freemius.php:2570
139
  msgid "What did you expect?"
140
  msgstr "Hvad forventede du?"
141
 
142
- #: includes/class-freemius.php3425, templates/debug.php:20
143
  msgid "Freemius Debug"
144
  msgstr "Freemius Debug"
145
 
146
- #: includes/class-freemius.php:4177
147
  msgid "I don't know what is cURL or how to install it, help me!"
148
  msgstr "Jeg ved ikke hvad cURL er, eller hvordan jeg installerer det. Hjælp mig!"
149
 
150
- #: includes/class-freemius.php:4179
151
- msgid ""
152
- "We'll make sure to contact your hosting company and resolve the issue. You "
153
- "will get a follow-up email to %s once we have an update."
154
  msgstr "Vi vil kontakte din udbyder og løse problemet. Når vi har opdatinger i sagen, vil vi følge op med en email til dig på %s."
155
 
156
- #: includes/class-freemius.php:4186
157
- msgid ""
158
- "Great, please install cURL and enable it in your php.ini file. In addition, "
159
- "search for the 'disable_functions' directive in your php.ini file and remove"
160
- " any disabled methods starting with 'curl_'. To make sure it was "
161
- "successfully activated, use 'phpinfo()'. Once activated, deactivate the %s "
162
- "and reactivate it back again."
163
- msgstr ""
164
 
165
- #: includes/class-freemius.php:4291
166
  msgid "Yes - do your thing"
167
  msgstr "Ja - fortsæt bare"
168
 
169
- #: includes/class-freemius.php:4296
170
  msgid "No - just deactivate"
171
  msgstr "Nej - bare deaktiver"
172
 
173
- #: includes/class-freemius.php4341, includes/class-freemius.php4850,
174
- #: includes/class-freemius.php5999, includes/class-freemius.php12682,
175
- #: includes/class-freemius.php16045, includes/class-freemius.php16133,
176
- #: includes/class-freemius.php16299, includes/class-freemius.php18758,
177
- #: includes/class-freemius.php18768, includes/class-freemius.php19404,
178
- #: includes/class-freemius.php20277, includes/class-freemius.php20392,
179
- #: includes/class-freemius.php20536, templates/add-ons.php:54
 
180
  msgctxt "exclamation"
181
  msgid "Oops"
182
  msgstr "Ups"
183
 
184
- #: includes/class-freemius.php:4410
185
- msgid ""
186
- "Thank for giving us the chance to fix it! A message was just sent to our "
187
- "technical staff. We will get back to you as soon as we have an update to %s."
188
- " Appreciate your patience."
189
  msgstr "Tak fordi du giver os en chance for at fixe det! En besked er lige blevet sendt til vores tekniske personale. Vi vil vende tilbage, så snart der er nyt om %s. Vi sætter pris på din tålmodighed."
190
 
191
- #: includes/class-freemius.php:4847
192
  msgctxt "addonX cannot run without pluginY"
193
  msgid "%s cannot run without %s."
194
  msgstr "%s virker ikke uden %s."
195
 
196
- #: includes/class-freemius.php:4848
197
  msgctxt "addonX cannot run..."
198
  msgid "%s cannot run without the plugin."
199
  msgstr "%s virker ikke uden pluginnet."
200
 
201
- #: includes/class-freemius.php5020, includes/class-freemius.php5045,
202
- #: includes/class-freemius.php:19475
203
- msgid ""
204
- "Unexpected API error. Please contact the %s's author with the following "
205
- "error."
206
- msgstr ""
207
 
208
- #: includes/class-freemius.php:5687
209
  msgid "Premium %s version was successfully activated."
210
  msgstr "Premium-versionen af %s blev aktiveret."
211
 
212
- #: includes/class-freemius.php5699, includes/class-freemius.php:7567
213
  msgctxt ""
214
- "Used to express elation, enthusiasm, or triumph (especially in electronic "
215
- "communication)."
216
  msgid "W00t"
217
  msgstr "W00t"
218
 
219
- #: includes/class-freemius.php:5714
220
  msgid "You have a %s license."
221
  msgstr "Du har en %s licens."
222
 
223
- #: includes/class-freemius.php5718, includes/class-freemius.php15466,
224
- #: includes/class-freemius.php15477, includes/class-freemius.php18669,
225
- #: includes/class-freemius.php18999, includes/class-freemius.php19065,
226
- #: includes/class-freemius.php:19229
227
  msgctxt "interjection expressing joy or exuberance"
228
  msgid "Yee-haw"
229
  msgstr "Yee-haw"
230
 
231
- #: includes/class-freemius.php:5982
232
- msgid ""
233
- "%s free trial was successfully cancelled. Since the add-on is premium only "
234
- "it was automatically deactivated. If you like to use it in the future, "
235
- "you'll have to purchase a license."
236
- msgstr ""
237
 
238
- #: includes/class-freemius.php:5986
239
- msgid ""
240
- "%s is a premium only add-on. You have to purchase a license first before "
241
- "activating the plugin."
242
- msgstr ""
243
 
244
- #: includes/class-freemius.php5995, templates/add-ons.php130,
245
- #: templates/account/partials/addon.php:343
246
  msgid "More information about %s"
247
  msgstr "Mere information om %s"
248
 
249
- #: includes/class-freemius.php:5996
250
  msgid "Purchase License"
251
  msgstr "Køb licens"
252
 
253
- #: includes/class-freemius.php6931, templates/connect.php:163
254
- msgid ""
255
- "You should receive an activation email for %s to your mailbox at %s. Please "
256
- "make sure you click the activation button in that email to %s."
257
- msgstr ""
258
 
259
- #: includes/class-freemius.php:6935
260
  msgid "start the trial"
261
  msgstr "start prøveperioden"
262
 
263
- #: includes/class-freemius.php6936, templates/connect.php:167
264
  msgid "complete the install"
265
  msgstr "færdiggør installeringen"
266
 
267
- #: includes/class-freemius.php:7049
268
  msgid "You are just one step away - %s"
269
  msgstr "Du mangler kun ét skridt - %s"
270
 
271
- #: includes/class-freemius.php:7052
272
  msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
273
  msgid "Complete \"%s\" Activation Now"
274
  msgstr "Færdiggør aktivering af \"%s\" nu"
275
 
276
- #: includes/class-freemius.php:7130
277
  msgid "We made a few tweaks to the %s, %s"
278
  msgstr "Vi har foretaget nogle rettelser til %s, %s"
279
 
280
- #: includes/class-freemius.php:7134
281
  msgid "Opt in to make \"%s\" better!"
282
- msgstr ""
283
 
284
- #: includes/class-freemius.php:7566
285
  msgid "The upgrade of %s was successfully completed."
286
  msgstr "Opgraderingen af %s blev fuldendt."
287
 
288
- #: includes/class-freemius.php9728, includes/class-fs-plugin-updater.php975,
289
- #: includes/class-fs-plugin-updater.php1170,
290
- #: includes/class-fs-plugin-updater.php1177,
291
  #: templates/auto-installation.php:32
292
  msgid "Add-On"
293
  msgstr "Tilføjelse"
294
 
295
- #: includes/class-freemius.php9730, templates/account.php313,
296
- #: templates/account.php321, templates/debug.php361, templates/debug.php:522
297
  msgid "Plugin"
298
  msgstr "Plugin"
299
 
300
- #: includes/class-freemius.php9731, templates/account.php314,
301
- #: templates/account.php322, templates/debug.php361, templates/debug.php522,
302
  #: templates/forms/deactivation/form.php:71
303
  msgid "Theme"
304
  msgstr "Tema"
305
 
306
- #: includes/class-freemius.php:12148
307
- msgid ""
308
- "An unknown error has occurred while trying to set the user's beta mode."
309
- msgstr ""
310
 
311
- #: includes/class-freemius.php:12549
312
  msgid "Invalid site details collection."
313
- msgstr ""
314
 
315
- #: includes/class-freemius.php:12669
316
- msgid ""
317
- "We couldn't find your email address in the system, are you sure it's the "
318
- "right address?"
319
  msgstr "Vi kunne ikke finde din e-mailadresse i systemet, er du sikker på, det er den rigtige adresse?"
320
 
321
- #: includes/class-freemius.php:12671
322
- msgid ""
323
- "We can't see any active licenses associated with that email address, are you"
324
- " sure it's the right address?"
325
  msgstr "Vi kan ikke finde nogen aktive licenser knyttet til den e-mailadresse, er du sikker på, det er den rigtige adresse?"
326
 
327
- #: includes/class-freemius.php:12945
328
  msgid "Account is pending activation."
329
  msgstr "Konto afventer aktivering."
330
 
331
- #: includes/class-freemius.php13057,
332
  #: templates/forms/premium-versions-upgrade-handler.php:47
333
  msgid "Buy a license now"
334
- msgstr ""
335
 
336
- #: includes/class-freemius.php13069,
337
  #: templates/forms/premium-versions-upgrade-handler.php:46
338
  msgid "Renew your license now"
339
- msgstr ""
340
 
341
- #: includes/class-freemius.php:13073
342
  msgid "%s to access version %s security & feature updates, and support."
343
- msgstr ""
344
 
345
- #: includes/class-freemius.php:15448
346
  msgid "%s activation was successfully completed."
347
  msgstr "Aktivering af %s blev gennemført."
348
 
349
- #: includes/class-freemius.php:15462
350
  msgid "Your account was successfully activated with the %s plan."
351
  msgstr "Din konto blev aktiveret med planen %s."
352
 
353
- #: includes/class-freemius.php15473, includes/class-freemius.php:19061
354
  msgid "Your trial has been successfully started."
355
  msgstr "Din prøveperiode er begyndt."
356
 
357
- #: includes/class-freemius.php16043, includes/class-freemius.php16131,
358
- #: includes/class-freemius.php:16297
359
  msgid "Couldn't activate %s."
360
  msgstr "Kunne ikke aktivere %s."
361
 
362
- #: includes/class-freemius.php16044, includes/class-freemius.php16132,
363
- #: includes/class-freemius.php:16298
364
  msgid "Please contact us with the following message:"
365
  msgstr "Kontakt os venligst med følgende besked:"
366
 
367
- #: includes/class-freemius.php:16128
368
  msgid "An unknown error has occurred."
369
- msgstr ""
370
 
371
- #: includes/class-freemius.php16655, includes/class-freemius.php:21409
372
  msgid "Upgrade"
373
  msgstr "Opgrader"
374
 
375
- #: includes/class-freemius.php:16661
376
  msgid "Start Trial"
377
  msgstr "Start prøveperiode"
378
 
379
- #: includes/class-freemius.php:16663
380
  msgid "Pricing"
381
  msgstr "Priser"
382
 
383
- #: includes/class-freemius.php16742, includes/class-freemius.php:16744
384
  msgid "Affiliation"
385
  msgstr "Affiliation"
386
 
387
- #: includes/class-freemius.php16772, includes/class-freemius.php16774,
388
- #: templates/account.php177, templates/debug.php:326
389
  msgid "Account"
390
  msgstr "Konto"
391
 
392
- #: includes/class-freemius.php16787, includes/class-freemius.php16789,
393
  #: includes/customizer/class-fs-customizer-support-section.php:60
394
  msgid "Contact Us"
395
  msgstr "Kontakt os"
396
 
397
- #: includes/class-freemius.php16799, includes/class-freemius.php16801,
398
- #: includes/class-freemius.php21423, templates/account.php105,
399
- #: templates/account/partials/addon.php:45
400
  msgid "Add-Ons"
401
  msgstr "Tilføjelser"
402
 
403
- #: includes/class-freemius.php:16835
404
  msgctxt "ASCII arrow left icon"
405
  msgid "&#x2190;"
406
- msgstr ""
407
 
408
- #: includes/class-freemius.php:16835
409
  msgctxt "ASCII arrow right icon"
410
  msgid "&#x27a4;"
411
- msgstr ""
412
 
413
- #: includes/class-freemius.php16837, templates/pricing.php:102
414
  msgctxt "noun"
415
  msgid "Pricing"
416
  msgstr "Priser"
417
 
418
- #: includes/class-freemius.php17050,
419
  #: includes/customizer/class-fs-customizer-support-section.php:67
420
  msgid "Support Forum"
421
  msgstr "Supportforum"
422
 
423
- #: includes/class-freemius.php:17995
424
  msgid "Your email has been successfully verified - you are AWESOME!"
425
  msgstr "Din e-mailadresse er blevet verificeret - du er FOR SEJ!"
426
 
427
- #: includes/class-freemius.php:17996
428
  msgctxt "a positive response"
429
  msgid "Right on"
430
  msgstr "Sådan"
431
 
432
- #: includes/class-freemius.php:18660
 
 
 
 
 
 
 
 
433
  msgid "Your %s Add-on plan was successfully upgraded."
434
- msgstr ""
435
 
436
- #: includes/class-freemius.php:18662
437
  msgid "%s Add-on was successfully purchased."
438
  msgstr "Betalingen for tilføjelsen %s blev gennemført."
439
 
440
- #: includes/class-freemius.php:18665
441
  msgid "Download the latest version"
442
  msgstr "Download den seneste version"
443
 
444
- #: includes/class-freemius.php:18751
445
- msgid ""
446
- "Your server is blocking the access to Freemius' API, which is crucial for "
447
- "%1$s synchronization. Please contact your host to whitelist %2$s"
448
- msgstr ""
449
 
450
- #: includes/class-freemius.php18757, includes/class-freemius.php19188,
451
- #: includes/class-freemius.php:19277
452
  msgid "Error received from the server:"
453
  msgstr "Fejl modtager fra serveren:"
454
 
455
- #: includes/class-freemius.php:18767
456
- msgid ""
457
- "It seems like one of the authentication parameters is wrong. Update your "
458
- "Public Key, Secret Key & User ID, and try again."
459
- msgstr ""
460
 
461
- #: includes/class-freemius.php18961, includes/class-freemius.php19193,
462
- #: includes/class-freemius.php19248, includes/class-freemius.php:19351
463
  msgctxt ""
464
- "something somebody says when they are thinking about what you have just "
465
- "said."
466
  msgid "Hmm"
467
  msgstr "Hmm"
468
 
469
- #: includes/class-freemius.php:18974
470
- msgid ""
471
- "It looks like you are still on the %s plan. If you did upgrade or change "
472
- "your plan, it's probably an issue on our side - sorry."
473
- msgstr ""
474
 
475
- #: includes/class-freemius.php18975, templates/account.php107,
476
- #: templates/add-ons.php191, templates/account/partials/addon.php:47
477
  msgctxt "trial period"
478
  msgid "Trial"
479
  msgstr "Prøveperiode"
480
 
481
- #: includes/class-freemius.php:18980
482
- msgid ""
483
- "I have upgraded my account but when I try to Sync the License, the plan "
484
- "remains %s."
485
  msgstr "Jeg har opgraderet min konto, men når jeg forsøger at synkronisere licensen, forbliver planen %s."
486
 
487
- #: includes/class-freemius.php18984, includes/class-freemius.php:19043
488
  msgid "Please contact us here"
489
  msgstr "Kontakt os her"
490
 
491
- #: includes/class-freemius.php:18995
492
  msgid "Your plan was successfully activated."
493
- msgstr ""
494
 
495
- #: includes/class-freemius.php:18996
496
  msgid "Your plan was successfully upgraded."
497
  msgstr "Din plan er blevet opgraderet."
498
 
499
- #: includes/class-freemius.php:19013
500
  msgid "Your plan was successfully changed to %s."
501
  msgstr "Din plan er blevet ændret til %s."
502
 
503
- #: includes/class-freemius.php:19029
504
- msgid ""
505
- "Your license has expired. You can still continue using the free %s forever."
506
  msgstr "Din licens er udløbet. Du kan stadig fortsætte med at benytte den gratis udgave af %s."
507
 
508
- #: includes/class-freemius.php:19031
509
- msgid ""
510
- "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s "
511
- "without interruptions."
512
  msgstr "Din licens er udløbet. %1$sOpgrader nu%2$s for at fortsætte med at benytte %3$s uden forstyrrelser."
513
 
514
- #: includes/class-freemius.php:19039
515
- msgid ""
516
- "Your license has been cancelled. If you think it's a mistake, please contact"
517
- " support."
518
  msgstr "Din licens er blevet annulleret. Hvis du mener, dette er en fejl, så kontakt venligst support."
519
 
520
- #: includes/class-freemius.php:19052
521
- msgid ""
522
- "Your license has expired. You can still continue using all the %s features, "
523
- "but you'll need to renew your license to continue getting updates and "
524
- "support."
525
  msgstr "Din licens er udløbet. Du kan stadig benytte alle funktionerne i %s, men du bliver nødt til at fornye din licens for at få opdateringer og support."
526
 
527
- #: includes/class-freemius.php:19075
528
- msgid ""
529
- "Your free trial has expired. You can still continue using all our free "
530
- "features."
531
  msgstr "Din gratis prøveperiode er udløbet. Du kan stadig benytte alle de gratis features."
532
 
533
- #: includes/class-freemius.php:19077
534
- msgid ""
535
- "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s "
536
- "without interruptions."
537
- msgstr ""
538
 
539
- #: includes/class-freemius.php:19184
540
  msgid "It looks like the license could not be activated."
541
  msgstr "Det ser ud til, at licensen ikke kunne aktiveres."
542
 
543
- #: includes/class-freemius.php:19226
544
  msgid "Your license was successfully activated."
545
  msgstr "Din licens er blevet aktiveret."
546
 
547
- #: includes/class-freemius.php:19252
548
  msgid "It looks like your site currently doesn't have an active license."
549
  msgstr "Det ser ud til, at dit websted endnu ikke har en aktiv licens."
550
 
551
- #: includes/class-freemius.php:19276
552
  msgid "It looks like the license deactivation failed."
553
  msgstr "Det ser ud til, at licens-deaktiveringen mislykkedes."
554
 
555
- #: includes/class-freemius.php:19304
556
- msgid ""
557
- "Your license was successfully deactivated, you are back to the %s plan."
558
  msgstr "Din licens blev deaktiveret, du er tilbage på planen %s."
559
 
560
- #: includes/class-freemius.php:19305
561
  msgid "O.K"
562
  msgstr "O.K"
563
 
564
- #: includes/class-freemius.php:19358
565
- msgid ""
566
- "Seems like we are having some temporary issue with your subscription "
567
- "cancellation. Please try again in few minutes."
568
- msgstr ""
569
 
570
- #: includes/class-freemius.php:19367
571
- msgid ""
572
- "Your subscription was successfully cancelled. Your %s plan license will "
573
- "expire in %s."
574
- msgstr ""
575
 
576
- #: includes/class-freemius.php:19409
577
  msgid "You are already running the %s in a trial mode."
578
  msgstr "Du benytter allerede %s under en prøveperiode."
579
 
580
- #: includes/class-freemius.php:19420
581
  msgid "You already utilized a trial before."
582
  msgstr "Du har allerede brugt din prøveperiode."
583
 
584
- #: includes/class-freemius.php:19434
585
  msgid "Plan %s do not exist, therefore, can't start a trial."
586
  msgstr "Plan %s eksisterer ikke og kan derfor ikke starte prøveperiode."
587
 
588
- #: includes/class-freemius.php:19445
589
  msgid "Plan %s does not support a trial period."
590
  msgstr "Plan %s understøtter ikke en prøveperiode."
591
 
592
- #: includes/class-freemius.php:19456
593
  msgid "None of the %s's plans supports a trial period."
594
- msgstr ""
595
 
596
- #: includes/class-freemius.php:19506
597
- msgid ""
598
- "It looks like you are not in trial mode anymore so there's nothing to cancel"
599
- " :)"
600
  msgstr "Det lader ikke til du er i en prøveperiode længere, så der er ikke noget at annullere :-)"
601
 
602
- #: includes/class-freemius.php:19542
603
- msgid ""
604
- "Seems like we are having some temporary issue with your trial cancellation. "
605
- "Please try again in few minutes."
606
- msgstr ""
607
 
608
- #: includes/class-freemius.php:19561
609
  msgid "Your %s free trial was successfully cancelled."
610
  msgstr "Din gratis prøveperiode for %s er blevet annulleret."
611
 
612
- #: includes/class-freemius.php:19877
613
  msgid "Version %s was released."
614
  msgstr "Version %s er blevet udgivet."
615
 
616
- #: includes/class-freemius.php:19877
617
  msgid "Please download %s."
618
  msgstr "Download venligst %s."
619
 
620
- #: includes/class-freemius.php:19884
621
  msgid "the latest %s version here"
622
  msgstr "den seneste version af %s her"
623
 
624
- #: includes/class-freemius.php:19889
625
  msgid "New"
626
  msgstr "Ny"
627
 
628
- #: includes/class-freemius.php:19894
629
  msgid "Seems like you got the latest release."
630
  msgstr "Det ser ud til, at du har den seneste udgivelse."
631
 
632
- #: includes/class-freemius.php:19895
633
  msgid "You are all good!"
634
  msgstr "Det var det!"
635
 
636
- #: includes/class-freemius.php:20165
637
- msgid ""
638
- "Verification mail was just sent to %s. If you can't find it after 5 min, "
639
- "please check your spam box."
640
- msgstr ""
641
 
642
- #: includes/class-freemius.php:20304
643
  msgid "Site successfully opted in."
644
  msgstr "Websted er tilmeldt."
645
 
646
- #: includes/class-freemius.php20305, includes/class-freemius.php:21125
647
  msgid "Awesome"
648
  msgstr "Sejt"
649
 
650
- #: includes/class-freemius.php20321, templates/forms/optout.php:32
651
- msgid ""
652
- "We appreciate your help in making the %s better by letting us track some "
653
- "usage data."
654
  msgstr "Vi sætter pris på din hjælp med at forbedre %s ved at lade os indsamle brugsdata."
655
 
656
- #: includes/class-freemius.php:20322
657
  msgid "Thank you!"
658
  msgstr "Mange tak!"
659
 
660
- #: includes/class-freemius.php:20329
661
  msgid "We will no longer be sending any usage data of %s on %s to %s."
662
  msgstr "Vi vil ikke længere indsende brugsdata af %s på %s til %s."
663
 
664
- #: includes/class-freemius.php:20458
665
- msgid ""
666
- "Please check your mailbox, you should receive an email via %s to confirm the"
667
- " ownership change. From security reasons, you must confirm the change within"
668
- " the next 15 min. If you cannot find the email, please check your spam "
669
- "folder."
670
- msgstr ""
671
 
672
- #: includes/class-freemius.php:20464
673
- msgid ""
674
- "Thanks for confirming the ownership change. An email was just sent to %s for"
675
- " final approval."
676
- msgstr ""
677
 
678
- #: includes/class-freemius.php:20469
679
  msgid "%s is the new owner of the account."
680
  msgstr "%s er den nye ejer af kontoen."
681
 
682
- #: includes/class-freemius.php:20471
683
  msgctxt "as congratulations"
684
  msgid "Congrats"
685
  msgstr "Tillykke"
686
 
687
- #: includes/class-freemius.php:20491
688
- msgid ""
689
- "Sorry, we could not complete the email update. Another user with the same "
690
- "email is already registered."
691
- msgstr ""
692
 
693
- #: includes/class-freemius.php:20492
694
- msgid ""
695
- "If you would like to give up the ownership of the %s's account to %s click "
696
- "the Change Ownership button."
697
- msgstr ""
698
 
699
- #: includes/class-freemius.php:20499
700
  msgid "Change Ownership"
701
  msgstr "Skift ejerskab"
702
 
703
- #: includes/class-freemius.php:20507
704
- msgid ""
705
- "Your email was successfully updated. You should receive an email with "
706
- "confirmation instructions in few moments."
707
- msgstr ""
708
 
709
- #: includes/class-freemius.php:20519
710
  msgid "Please provide your full name."
711
  msgstr "Indtast venligst dit fulde navn."
712
 
713
- #: includes/class-freemius.php:20524
714
  msgid "Your name was successfully updated."
715
  msgstr "Dit navn er blevet opdateret."
716
 
717
- #: includes/class-freemius.php:20585
718
  msgid "You have successfully updated your %s."
719
  msgstr "Opdatering af %s blev gennemført."
720
 
721
- #: includes/class-freemius.php:20725
722
- msgid ""
723
- "Just letting you know that the add-ons information of %s is being pulled "
724
- "from an external server."
725
- msgstr ""
726
 
727
- #: includes/class-freemius.php:20726
728
  msgctxt "advance notice of something that will need attention."
729
  msgid "Heads up"
730
  msgstr "Se her"
731
 
732
- #: includes/class-freemius.php:21165
733
  msgctxt "exclamation"
734
  msgid "Hey"
735
  msgstr "Hey"
736
 
737
- #: includes/class-freemius.php:21165
738
- msgid ""
739
- "How do you like %s so far? Test all our %s premium features with a %d-day "
740
- "free trial."
741
- msgstr "Hvad syntes du om %s indtil videre? Test alle %s premium funktioner med en %d-dags gratis prøveperiode."
742
 
743
- #: includes/class-freemius.php:21173
744
  msgid "No commitment for %s days - cancel anytime!"
745
  msgstr "Ingen bindinger i %s dage - annuller når som helst!"
746
 
747
- #: includes/class-freemius.php:21174
748
  msgid "No credit card required"
749
  msgstr "Betalingskort ikke påkrævet"
750
 
751
- #: includes/class-freemius.php21181, templates/forms/trial-start.php:53
752
  msgctxt "call to action"
753
  msgid "Start free trial"
754
  msgstr "Start gratis prøveperiode"
755
 
756
- #: includes/class-freemius.php:21258
757
- msgid ""
758
- "Hey there, did you know that %s has an affiliate program? If you like the %s"
759
- " you can become our ambassador and earn some cash!"
760
- msgstr ""
761
 
762
- #: includes/class-freemius.php:21267
763
  msgid "Learn more"
764
  msgstr "Læs mere"
765
 
766
- #: includes/class-freemius.php21447, templates/account.php474,
767
- #: templates/account.php595, templates/connect.php171,
768
- #: templates/connect.php421, templates/forms/license-activation.php25,
769
- #: templates/account/partials/addon.php:287
770
  msgid "Activate License"
771
  msgstr "Aktiver licens"
772
 
773
- #: includes/class-freemius.php21448, templates/account.php543,
774
- #: templates/account.php594, templates/account/partials/site.php:256
 
775
  msgid "Change License"
776
  msgstr "Skift licens"
777
 
778
- #: includes/class-freemius.php21539, templates/account/partials/site.php:161
779
  msgid "Opt Out"
780
  msgstr "Frameld"
781
 
782
- #: includes/class-freemius.php21541, includes/class-freemius.php21547,
783
- #: templates/account/partials/site.php43,
784
- #: templates/account/partials/site.php:161
785
  msgid "Opt In"
786
  msgstr "Tilmeld"
787
 
788
- #: includes/class-freemius.php:21775
789
- msgid ""
790
- " The paid version of %1$s is already installed. Please activate it to start "
791
- "benefiting the %2$s features. %3$s"
792
- msgstr ""
793
 
794
- #: includes/class-freemius.php:21783
795
  msgid "Activate %s features"
796
- msgstr ""
797
 
798
- #: includes/class-freemius.php:21796
799
  msgid "Please follow these steps to complete the upgrade"
800
  msgstr "Følg venligst disse trin for at færdiggøre opgraderingen"
801
 
802
- #: includes/class-freemius.php:21800
803
  msgid "Download the latest %s version"
804
  msgstr "Download den seneste version af %s"
805
 
806
- #: includes/class-freemius.php:21804
807
  msgid "Upload and activate the downloaded version"
808
  msgstr "Upload og aktiver den downloadede version"
809
 
810
- #: includes/class-freemius.php:21806
811
  msgid "How to upload and activate?"
812
  msgstr "Upload og aktivering, hvordan?"
813
 
814
- #: includes/class-freemius.php:21940
815
- msgid ""
816
- "%sClick here%s to choose the sites where you'd like to activate the license "
817
- "on."
818
- msgstr ""
819
 
820
- #: includes/class-freemius.php:22101
821
  msgid "Auto installation only works for opted-in users."
822
  msgstr "Auto-installation fungerer kun for tilmeldte brugere."
823
 
824
- #: includes/class-freemius.php22111, includes/class-freemius.php22144,
825
- #: includes/class-fs-plugin-updater.php1149,
826
- #: includes/class-fs-plugin-updater.php:1163
827
  msgid "Invalid module ID."
828
  msgstr "Ugyldigt modul-ID."
829
 
830
- #: includes/class-freemius.php22120, includes/class-fs-plugin-updater.php:1185
831
  msgid "Premium version already active."
832
  msgstr "Premium version allerede aktiv."
833
 
834
- #: includes/class-freemius.php:22127
835
  msgid "You do not have a valid license to access the premium version."
836
  msgstr "Du har ikke en gyldig licens til at benytte premium-versionen."
837
 
838
- #: includes/class-freemius.php:22134
839
- msgid ""
840
- "Plugin is a \"Serviceware\" which means it does not have a premium code "
841
- "version."
842
- msgstr ""
843
 
844
- #: includes/class-freemius.php22152, includes/class-fs-plugin-updater.php:1184
845
  msgid "Premium add-on version already installed."
846
  msgstr "Premium tilføjelse er allerede installeret."
847
 
848
- #: includes/class-freemius.php:22497
849
  msgid "View paid features"
850
  msgstr "Vis betalte features"
851
 
852
- #: includes/class-freemius.php:22819
853
  msgid "Thank you so much for using %s and its add-ons!"
854
- msgstr ""
855
 
856
- #: includes/class-freemius.php:22820
857
  msgid "Thank you so much for using %s!"
858
  msgstr "Tak fordi du benytter %s!"
859
 
860
- #: includes/class-freemius.php:22826
861
- msgid ""
862
- "You've already opted-in to our usage-tracking, which helps us keep improving"
863
- " the %s."
864
  msgstr "Du er allerede tilmeldt vores brugssporing, hvilket hjælper os med at forbedre %s."
865
 
866
- #: includes/class-freemius.php:22830
867
  msgid "Thank you so much for using our products!"
868
  msgstr "Mange tak for at benytte vores produkter!"
869
 
870
- #: includes/class-freemius.php:22831
871
- msgid ""
872
- "You've already opted-in to our usage-tracking, which helps us keep improving"
873
- " them."
874
  msgstr "Du er allerede tilmeldt vores brugssporing, hvilket hjælper os med at forbedre dem."
875
 
876
- #: includes/class-freemius.php:22850
877
  msgid "%s and its add-ons"
878
  msgstr "%s og tilføjelser"
879
 
880
- #: includes/class-freemius.php:22859
881
  msgid "Products"
882
  msgstr "Produkter"
883
 
884
- #: includes/class-freemius.php22866, templates/connect.php:272
885
  msgid "Yes"
886
  msgstr "Ja"
887
 
888
- #: includes/class-freemius.php22867, templates/connect.php:273
889
  msgid "send me security & feature updates, educational content and offers."
890
  msgstr "send mig sikkerheds- og feature-opdateringer, informativt indhold og tilbud."
891
 
892
- #: includes/class-freemius.php22868, templates/connect.php:278
893
  msgid "No"
894
  msgstr "Nej"
895
 
896
- #: includes/class-freemius.php22870, templates/connect.php:280
897
- msgid ""
898
- "do %sNOT%s send me security & feature updates, educational content and "
899
- "offers."
900
  msgstr "send %sIKKE%s sikkerheds- og feature-opdateringer, informativt indhold og tilbud."
901
 
902
- #: includes/class-freemius.php:22880
903
- msgid ""
904
- "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance "
905
- "requirements it is required that you provide your explicit consent, again, "
906
- "confirming that you are onboard :-)"
907
- msgstr ""
908
 
909
- #: includes/class-freemius.php22882, templates/connect.php:287
910
- msgid ""
911
- "Please let us know if you'd like us to contact you for security & feature "
912
- "updates, educational content, and occasional offers:"
913
  msgstr "Lad os vide, om vi har lov til at kontakte dig med sikkerheds- og feature-opdateringer, informativt indhold og lejlighedsvise tilbud:"
914
 
915
- #: includes/class-freemius.php:23164
916
  msgid "License key is empty."
917
  msgstr "Licensnøglen er tom."
918
 
919
- #: includes/class-fs-plugin-updater.php184,
920
  #: templates/forms/premium-versions-upgrade-handler.php:57
921
  msgid "Renew license"
922
  msgstr "Forny licens"
923
 
924
- #: includes/class-fs-plugin-updater.php189,
925
  #: templates/forms/premium-versions-upgrade-handler.php:58
926
  msgid "Buy license"
927
- msgstr ""
928
 
929
- #: includes/class-fs-plugin-updater.php280,
930
- #: includes/class-fs-plugin-updater.php:313
931
  msgid "There is a %s of %s available."
932
- msgstr ""
933
 
934
- #: includes/class-fs-plugin-updater.php282,
935
- #: includes/class-fs-plugin-updater.php:318
936
  msgid "new Beta version"
937
- msgstr ""
938
 
939
- #: includes/class-fs-plugin-updater.php283,
940
- #: includes/class-fs-plugin-updater.php:319
941
  msgid "new version"
942
- msgstr ""
943
 
944
- #: includes/class-fs-plugin-updater.php:342
945
  msgid "Important Upgrade Notice:"
946
- msgstr ""
947
 
948
- #: includes/class-fs-plugin-updater.php:1214
949
  msgid "Installing plugin: %s"
950
  msgstr "Installerer plugin: %s"
951
 
952
- #: includes/class-fs-plugin-updater.php:1255
953
  msgid "Unable to connect to the filesystem. Please confirm your credentials."
954
- msgstr ""
955
 
956
- #: includes/class-fs-plugin-updater.php:1437
957
- msgid ""
958
- "The remote plugin package does not contain a folder with the desired slug "
959
- "and renaming did not work."
960
- msgstr ""
961
 
962
- #: includes/fs-plugin-info-dialog.php:509
963
  msgid "Purchase More"
964
- msgstr ""
965
 
966
- #: includes/fs-plugin-info-dialog.php510,
967
- #: templates/account/partials/addon.php:347
968
  msgctxt "verb"
969
  msgid "Purchase"
970
  msgstr "Køb"
971
 
972
- #: includes/fs-plugin-info-dialog.php:514
973
  msgid "Start my free %s"
974
  msgstr "Start min gratis %s"
975
 
976
- #: includes/fs-plugin-info-dialog.php:712
977
  msgid "Install Free Version Update Now"
978
  msgstr "Installer opdatering til gratis version nu"
979
 
980
- #: includes/fs-plugin-info-dialog.php713, templates/account.php:534
981
  msgid "Install Update Now"
982
  msgstr "Installer opdatering nu"
983
 
984
- #: includes/fs-plugin-info-dialog.php:722
985
  msgid "Install Free Version Now"
986
  msgstr "Installer gratis version nu"
987
 
988
- #: includes/fs-plugin-info-dialog.php723, templates/add-ons.php262,
989
  #: templates/auto-installation.php111,
990
- #: templates/account/partials/addon.php327,
991
- #: templates/account/partials/addon.php:379
992
  msgid "Install Now"
993
  msgstr "Installer nu"
994
 
995
- #: includes/fs-plugin-info-dialog.php:739
996
  msgctxt "as download latest version"
997
  msgid "Download Latest Free Version"
998
  msgstr "Download seneste gratis version"
999
 
1000
- #: includes/fs-plugin-info-dialog.php740, templates/account.php85,
1001
- #: templates/add-ons.php34, templates/account/partials/addon.php:25
1002
  msgctxt "as download latest version"
1003
  msgid "Download Latest"
1004
  msgstr "Download seneste"
1005
 
1006
- #: includes/fs-plugin-info-dialog.php755, templates/add-ons.php268,
1007
- #: templates/account/partials/addon.php318,
1008
- #: templates/account/partials/addon.php:373
1009
  msgid "Activate this add-on"
1010
  msgstr "Aktiver denne tilføjelse"
1011
 
1012
- #: includes/fs-plugin-info-dialog.php757, templates/connect.php:418
1013
  msgid "Activate Free Version"
1014
  msgstr "Aktiver gratis version"
1015
 
1016
- #: includes/fs-plugin-info-dialog.php758, templates/account.php109,
1017
- #: templates/add-ons.php269, templates/account/partials/addon.php:49
1018
  msgid "Activate"
1019
  msgstr "Aktiver"
1020
 
1021
- #: includes/fs-plugin-info-dialog.php:968
1022
  msgctxt "Plugin installer section title"
1023
  msgid "Description"
1024
  msgstr "Beskrivelse"
1025
 
1026
- #: includes/fs-plugin-info-dialog.php:969
1027
  msgctxt "Plugin installer section title"
1028
  msgid "Installation"
1029
  msgstr "Installering"
1030
 
1031
- #: includes/fs-plugin-info-dialog.php:970
1032
  msgctxt "Plugin installer section title"
1033
  msgid "FAQ"
1034
  msgstr "FAQ"
1035
 
1036
- #: includes/fs-plugin-info-dialog.php971,
1037
  #: templates/plugin-info/description.php:55
1038
  msgid "Screenshots"
1039
  msgstr "Skærmbilleder"
1040
 
1041
- #: includes/fs-plugin-info-dialog.php:972
1042
  msgctxt "Plugin installer section title"
1043
  msgid "Changelog"
1044
  msgstr "Ændringslog"
1045
 
1046
- #: includes/fs-plugin-info-dialog.php:973
1047
  msgctxt "Plugin installer section title"
1048
  msgid "Reviews"
1049
  msgstr "Anmeldelser"
1050
 
1051
- #: includes/fs-plugin-info-dialog.php:974
1052
  msgctxt "Plugin installer section title"
1053
  msgid "Other Notes"
1054
  msgstr "Andre noter"
1055
 
1056
- #: includes/fs-plugin-info-dialog.php:989
1057
  msgctxt "Plugin installer section title"
1058
  msgid "Features & Pricing"
1059
  msgstr "Funktioner og priser"
1060
 
1061
- #: includes/fs-plugin-info-dialog.php:999
1062
  msgid "Plugin Install"
1063
  msgstr "Plugin-installering"
1064
 
1065
- #: includes/fs-plugin-info-dialog.php:1071
1066
  msgctxt "e.g. Professional Plan"
1067
  msgid "%s Plan"
1068
  msgstr "%s Plan"
1069
 
1070
- #: includes/fs-plugin-info-dialog.php:1097
1071
  msgctxt "e.g. the best product"
1072
  msgid "Best"
1073
  msgstr "Bedste"
1074
 
1075
- #: includes/fs-plugin-info-dialog.php1103,
1076
- #: includes/fs-plugin-info-dialog.php:1123
1077
  msgctxt "as every month"
1078
  msgid "Monthly"
1079
  msgstr "Månedligt"
1080
 
1081
- #: includes/fs-plugin-info-dialog.php:1106
1082
  msgctxt "as once a year"
1083
  msgid "Annual"
1084
  msgstr "Årligt"
1085
 
1086
- #: includes/fs-plugin-info-dialog.php:1109
1087
  msgid "Lifetime"
1088
  msgstr "Livstid"
1089
 
1090
- #: includes/fs-plugin-info-dialog.php1123,
1091
- #: includes/fs-plugin-info-dialog.php1125,
1092
- #: includes/fs-plugin-info-dialog.php:1127
1093
  msgctxt "e.g. billed monthly"
1094
  msgid "Billed %s"
1095
  msgstr "Faktureret %s"
1096
 
1097
- #: includes/fs-plugin-info-dialog.php:1125
1098
  msgctxt "as once a year"
1099
  msgid "Annually"
1100
  msgstr "Årligt"
1101
 
1102
- #: includes/fs-plugin-info-dialog.php:1127
1103
  msgctxt "as once a year"
1104
  msgid "Once"
1105
  msgstr "Engangsbeløb"
1106
 
1107
- #: includes/fs-plugin-info-dialog.php:1133
1108
  msgid "Single Site License"
1109
- msgstr ""
1110
 
1111
- #: includes/fs-plugin-info-dialog.php:1135
1112
  msgid "Unlimited Licenses"
1113
  msgstr "Ubegrænsede licenser"
1114
 
1115
- #: includes/fs-plugin-info-dialog.php:1137
1116
  msgid "Up to %s Sites"
1117
  msgstr "Op til %s websteder"
1118
 
1119
- #: includes/fs-plugin-info-dialog.php1147,
1120
  #: templates/plugin-info/features.php:82
1121
  msgctxt "as monthly period"
1122
  msgid "mo"
1123
  msgstr "md"
1124
 
1125
- #: includes/fs-plugin-info-dialog.php1154,
1126
  #: templates/plugin-info/features.php:80
1127
  msgctxt "as annual period"
1128
  msgid "year"
1129
  msgstr "år"
1130
 
1131
- #: includes/fs-plugin-info-dialog.php:1208
1132
  msgctxt "noun"
1133
  msgid "Price"
1134
  msgstr "Pris"
1135
 
1136
- #: includes/fs-plugin-info-dialog.php:1256
1137
  msgid "Save %s"
1138
  msgstr "Spar %s"
1139
 
1140
- #: includes/fs-plugin-info-dialog.php:1266
1141
  msgid "No commitment for %s - cancel anytime"
1142
  msgstr "Ingen bindinger ved %s - annuller når som helst"
1143
 
1144
- #: includes/fs-plugin-info-dialog.php:1269
1145
  msgid "After your free %s, pay as little as %s"
1146
  msgstr "Efter din gratis %s er prisen kun %s"
1147
 
1148
- #: includes/fs-plugin-info-dialog.php:1280
1149
  msgid "Details"
1150
  msgstr "Detaljer"
1151
 
1152
- #: includes/fs-plugin-info-dialog.php1284, templates/account.php96,
1153
- #: templates/debug.php203, templates/debug.php240, templates/debug.php454,
1154
  #: templates/account/partials/addon.php:36
1155
  msgctxt "product version"
1156
  msgid "Version"
1157
  msgstr "Version"
1158
 
1159
- #: includes/fs-plugin-info-dialog.php:1291
1160
  msgctxt "as the plugin author"
1161
  msgid "Author"
1162
  msgstr "Forfatter"
1163
 
1164
- #: includes/fs-plugin-info-dialog.php:1298
1165
  msgid "Last Updated"
1166
  msgstr "Senest opdateret"
1167
 
1168
- #: includes/fs-plugin-info-dialog.php1303, templates/account.php:444
1169
  msgctxt "x-ago"
1170
  msgid "%s ago"
1171
  msgstr "%s siden"
1172
 
1173
- #: includes/fs-plugin-info-dialog.php:1312
1174
  msgid "Requires WordPress Version"
1175
  msgstr "Kræver WordPress-version"
1176
 
1177
- #: includes/fs-plugin-info-dialog.php:1313
1178
  msgid "%s or higher"
1179
  msgstr "%s eller højere"
1180
 
1181
- #: includes/fs-plugin-info-dialog.php:1320
1182
  msgid "Compatible up to"
1183
  msgstr "Kompatibel op til"
1184
 
1185
- #: includes/fs-plugin-info-dialog.php:1328
1186
  msgid "Downloaded"
1187
  msgstr "Downloadet"
1188
 
1189
- #: includes/fs-plugin-info-dialog.php:1332
1190
  msgid "%s time"
1191
  msgstr "%s gang"
1192
 
1193
- #: includes/fs-plugin-info-dialog.php:1334
1194
  msgid "%s times"
1195
  msgstr "%s gange"
1196
 
1197
- #: includes/fs-plugin-info-dialog.php:1344
1198
  msgid "WordPress.org Plugin Page"
1199
  msgstr "WordPress.org Plugin-side"
1200
 
1201
- #: includes/fs-plugin-info-dialog.php:1352
1202
  msgid "Plugin Homepage"
1203
  msgstr "Plugin-websted"
1204
 
1205
- #: includes/fs-plugin-info-dialog.php1360,
1206
- #: includes/fs-plugin-info-dialog.php:1442
1207
  msgid "Donate to this plugin"
1208
  msgstr "Donér til dette plugin"
1209
 
1210
- #: includes/fs-plugin-info-dialog.php:1367
1211
  msgid "Average Rating"
1212
  msgstr "Gennemsnitlig vurdering"
1213
 
1214
- #: includes/fs-plugin-info-dialog.php:1374
1215
  msgid "based on %s"
1216
  msgstr "baseret på %s"
1217
 
1218
- #: includes/fs-plugin-info-dialog.php:1378
1219
  msgid "%s rating"
1220
  msgstr "%s vurdering"
1221
 
1222
- #: includes/fs-plugin-info-dialog.php:1380
1223
  msgid "%s ratings"
1224
  msgstr "%s vurderinger"
1225
 
1226
- #: includes/fs-plugin-info-dialog.php:1395
1227
  msgid "%s star"
1228
  msgstr "%s stjerne"
1229
 
1230
- #: includes/fs-plugin-info-dialog.php:1397
1231
  msgid "%s stars"
1232
  msgstr "%s stjerner"
1233
 
1234
- #: includes/fs-plugin-info-dialog.php:1408
1235
  msgid "Click to see reviews that provided a rating of %s"
1236
- msgstr ""
1237
 
1238
- #: includes/fs-plugin-info-dialog.php:1421
1239
  msgid "Contributors"
1240
  msgstr "Bidragsydere"
1241
 
1242
- #: includes/fs-plugin-info-dialog.php1450,
1243
- #: includes/fs-plugin-info-dialog.php:1452
1244
  msgid "Warning"
1245
  msgstr "Advarsel"
1246
 
1247
- #: includes/fs-plugin-info-dialog.php:1450
1248
- msgid ""
1249
- "This plugin has not been tested with your current version of WordPress."
1250
  msgstr "Dette plugin er ikke blevet testet med din nuværende version af WordPress."
1251
 
1252
- #: includes/fs-plugin-info-dialog.php:1452
1253
- msgid ""
1254
- "This plugin has not been marked as compatible with your version of "
1255
- "WordPress."
1256
- msgstr ""
1257
 
1258
- #: includes/fs-plugin-info-dialog.php:1471
1259
  msgid "Paid add-on must be deployed to Freemius."
1260
- msgstr ""
1261
 
1262
- #: includes/fs-plugin-info-dialog.php:1472
1263
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1264
- msgstr ""
1265
 
1266
- #: includes/fs-plugin-info-dialog.php:1493
1267
  msgid "Newer Version (%s) Installed"
1268
  msgstr "Nyere version (%s) installeret"
1269
 
1270
- #: includes/fs-plugin-info-dialog.php:1494
1271
  msgid "Newer Free Version (%s) Installed"
1272
  msgstr "Nyere gratis version (%s) installeret"
1273
 
1274
- #: includes/fs-plugin-info-dialog.php:1501
1275
  msgid "Latest Version Installed"
1276
  msgstr "Seneste version installeret"
1277
 
1278
- #: includes/fs-plugin-info-dialog.php:1502
1279
  msgid "Latest Free Version Installed"
1280
  msgstr "Seneste gratis version installeret"
1281
 
1282
- #: templates/account.php86, templates/forms/subscription-cancellation.php96,
1283
  #: templates/account/partials/addon.php26,
1284
- #: templates/account/partials/site.php:295
1285
  msgid "Downgrading your plan"
1286
- msgstr ""
1287
 
1288
- #: templates/account.php87, templates/forms/subscription-cancellation.php97,
1289
  #: templates/account/partials/addon.php27,
1290
- #: templates/account/partials/site.php:296
1291
  msgid "Cancelling the subscription"
1292
- msgstr ""
1293
 
1294
  #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
1295
  #. subscription'
1296
- #: templates/account.php:89
1297
- msgid ""
1298
- "%1$s will immediately stop all future recurring payments and your %2$s plan "
1299
- "license will expire in %3$s."
1300
- msgstr ""
1301
 
1302
- #: templates/account.php90, templates/forms/subscription-cancellation.php100,
1303
  #: templates/account/partials/addon.php30,
1304
- #: templates/account/partials/site.php:299
1305
- msgid ""
1306
- "Please note that we will not be able to grandfather outdated pricing for "
1307
- "renewals/new subscriptions after a cancellation. If you choose to renew the "
1308
- "subscription manually in the future, after a price increase, which typically"
1309
- " occurs once a year, you will be charged the updated price."
1310
- msgstr ""
1311
 
1312
- #: templates/account.php91, templates/forms/subscription-cancellation.php106,
1313
  #: templates/account/partials/addon.php:31
1314
- msgid ""
1315
- "Cancelling the trial will immediately block access to all premium features. "
1316
- "Are you sure?"
1317
- msgstr ""
1318
 
1319
- #: templates/account.php92, templates/forms/subscription-cancellation.php101,
1320
  #: templates/account/partials/addon.php32,
1321
- #: templates/account/partials/site.php:300
1322
- msgid ""
1323
- "You can still enjoy all %s features but you will not have access to %s "
1324
- "security & feature updates, nor support."
1325
- msgstr ""
1326
 
1327
- #: templates/account.php93, templates/forms/subscription-cancellation.php102,
1328
  #: templates/account/partials/addon.php33,
1329
- #: templates/account/partials/site.php:301
1330
- msgid ""
1331
- "Once your license expires you can still use the Free version but you will "
1332
- "NOT have access to the %s features."
1333
- msgstr ""
1334
 
1335
  #. translators: %s: Plan title (e.g. "Professional")
1336
- #: templates/account.php95,
1337
  #: templates/account/partials/activate-license-button.php31,
1338
  #: templates/account/partials/addon.php:35
1339
  msgid "Activate %s Plan"
1340
  msgstr "Aktiver %s plan"
1341
 
1342
  #. translators: %s: Time period (e.g. Auto renews in "2 months")
1343
- #: templates/account.php98, templates/account/partials/addon.php38,
1344
- #: templates/account/partials/site.php:275
1345
  msgid "Auto renews in %s"
1346
  msgstr "Auto-fornyer om %s"
1347
 
1348
  #. translators: %s: Time period (e.g. Expires in "2 months")
1349
- #: templates/account.php100, templates/account/partials/addon.php40,
1350
- #: templates/account/partials/site.php:277
1351
  msgid "Expires in %s"
1352
  msgstr "Udløber om %s"
1353
 
1354
- #: templates/account.php101, templates/account/partials/addon.php:41
1355
  msgctxt "as synchronize license"
1356
  msgid "Sync License"
1357
  msgstr "Synkroniser licens"
1358
 
1359
- #: templates/account.php102, templates/account/partials/addon.php:42
1360
  msgid "Cancel Trial"
1361
  msgstr "Annuller prøveperiode"
1362
 
1363
- #: templates/account.php103, templates/account/partials/addon.php:43
1364
  msgid "Change Plan"
1365
  msgstr "Skift plan"
1366
 
1367
- #: templates/account.php104, templates/account/partials/addon.php:44
1368
  msgctxt "verb"
1369
  msgid "Upgrade"
1370
  msgstr "Opgrader"
1371
 
1372
- #: templates/account.php106, templates/account/partials/addon.php46,
1373
- #: templates/account/partials/site.php:302
1374
  msgctxt "verb"
1375
  msgid "Downgrade"
1376
  msgstr "Nedgrader"
1377
 
1378
- #: templates/account.php108, templates/add-ons.php187,
1379
  #: templates/plugin-info/features.php72,
1380
- #: templates/account/partials/addon.php48,
1381
- #: templates/account/partials/site.php:31
1382
  msgid "Free"
1383
  msgstr "Gratis"
1384
 
1385
- #: templates/account.php110, templates/debug.php373,
1386
- #: includes/customizer/class-fs-customizer-upsell-control.php106,
1387
- #: templates/account/partials/addon.php:50
1388
  msgctxt "as product pricing plan"
1389
  msgid "Plan"
1390
  msgstr "Plan"
1391
 
1392
- #: templates/account.php:111
1393
  msgid "Bundle Plan"
1394
- msgstr ""
1395
 
1396
- #: templates/account.php:185
1397
  msgid "Free Trial"
1398
  msgstr "Gratis prøveperiode"
1399
 
1400
- #: templates/account.php:196
1401
  msgid "Account Details"
1402
  msgstr "Kontodetaljer"
1403
 
1404
- #: templates/account.php:200
 
 
 
 
 
 
 
 
1405
  msgid "Billing & Invoices"
1406
- msgstr ""
1407
 
1408
- #: templates/account.php:210
1409
- msgid ""
1410
- "Deleting the account will automatically deactivate your %s plan license so "
1411
- "you can use it on other sites. If you want to terminate the recurring "
1412
- "payments as well, click the \"Cancel\" button, and first \"Downgrade\" your "
1413
- "account. Are you sure you would like to continue with the deletion?"
1414
- msgstr ""
1415
 
1416
- #: templates/account.php:212
1417
- msgid ""
1418
- "Deletion is not temporary. Only delete if you no longer want to use this %s "
1419
- "anymore. Are you sure you would like to continue with the deletion?"
1420
- msgstr ""
1421
 
1422
- #: templates/account.php:215
1423
  msgid "Delete Account"
1424
  msgstr "Slet konto"
1425
 
1426
- #: templates/account.php227, templates/account/partials/addon.php211,
1427
  #: templates/account/partials/deactivate-license-button.php:35
1428
  msgid "Deactivate License"
1429
  msgstr "Deaktiver licens"
1430
 
1431
- #: templates/account.php250, templates/forms/subscription-cancellation.php:125
1432
  msgid "Are you sure you want to proceed?"
1433
  msgstr "Er du sikker på, du vil fortsætte?"
1434
 
1435
- #: templates/account.php250, templates/account/partials/addon.php:234
1436
  msgid "Cancel Subscription"
1437
  msgstr "Annuller abonnement"
1438
 
1439
- #: templates/account.php:278
1440
  msgctxt "as synchronize"
1441
  msgid "Sync"
1442
  msgstr "Synkroniser"
1443
 
1444
- #: templates/account.php292, templates/debug.php:489
1445
  msgid "Name"
1446
  msgstr "Navn"
1447
 
1448
- #: templates/account.php298, templates/debug.php:490
1449
  msgid "Email"
1450
  msgstr "E-mail"
1451
 
1452
- #: templates/account.php305, templates/debug.php372, templates/debug.php:528
1453
  msgid "User ID"
1454
  msgstr "Bruger-ID"
1455
 
1456
- #: templates/account.php322, templates/account.php608,
1457
- #: templates/account.php653, templates/debug.php238, templates/debug.php366,
1458
- #: templates/debug.php451, templates/debug.php488, templates/debug.php526,
1459
- #: templates/debug.php599, templates/account/payments.php35,
1460
  #: templates/debug/logger.php:21
1461
  msgid "ID"
1462
  msgstr "ID"
1463
 
1464
- #: templates/account.php:329
1465
  msgid "Site ID"
1466
  msgstr "Websteds-ID"
1467
 
1468
- #: templates/account.php:332
1469
  msgid "No ID"
1470
  msgstr "Intet ID"
1471
 
1472
- #: templates/account.php337, templates/debug.php245, templates/debug.php374,
1473
- #: templates/debug.php455, templates/debug.php492,
1474
- #: templates/account/partials/site.php:219
1475
  msgid "Public Key"
1476
  msgstr "Offentlig nøgle"
1477
 
1478
- #: templates/account.php343, templates/debug.php375, templates/debug.php456,
1479
- #: templates/debug.php493, templates/account/partials/site.php:231
1480
  msgid "Secret Key"
1481
  msgstr "Privat nøgle"
1482
 
1483
- #: templates/account.php:346
1484
  msgctxt "as secret encryption key missing"
1485
  msgid "No Secret"
1486
  msgstr "Ingen privat nøgle"
1487
 
1488
- #: templates/account.php373, templates/account/partials/site.php112,
1489
- #: templates/account/partials/site.php:114
1490
  msgid "Trial"
1491
  msgstr "Prøveperiode"
1492
 
1493
- #: templates/account.php400, templates/debug.php533,
1494
- #: templates/account/partials/site.php:248
1495
  msgid "License Key"
1496
  msgstr "Licensnøgle"
1497
 
1498
- #: templates/account.php:429
1499
  msgid "Join the Beta program"
1500
- msgstr ""
1501
 
1502
- #: templates/account.php:435
1503
  msgid "not verified"
1504
  msgstr "ikke verificeret"
1505
 
1506
- #: templates/account.php444, templates/account/partials/addon.php:172
1507
  msgid "Expired"
1508
  msgstr "Udløbet"
1509
 
1510
- #: templates/account.php:502
1511
  msgid "Premium version"
1512
  msgstr "Premium version"
1513
 
1514
- #: templates/account.php:504
1515
  msgid "Free version"
1516
  msgstr "Gratis version"
1517
 
1518
- #: templates/account.php:516
1519
  msgid "Verify Email"
1520
  msgstr "Verificer e-mail"
1521
 
1522
- #: templates/account.php:527
1523
  msgid "Download %s Version"
1524
  msgstr "Download 1%s version"
1525
 
1526
- #: templates/account.php541, templates/account.php749,
1527
- #: templates/account/partials/site.php237,
1528
- #: templates/account/partials/site.php:255
1529
  msgctxt "verb"
1530
  msgid "Show"
1531
  msgstr "Vis"
1532
 
1533
- #: templates/account.php:555
1534
  msgid "What is your %s?"
1535
  msgstr "Angiv venligst %s?"
1536
 
1537
- #: templates/account.php563, templates/account/billing.php:21
1538
  msgctxt "verb"
1539
  msgid "Edit"
1540
  msgstr "Rediger"
1541
 
1542
- #: templates/account.php:588
1543
  msgid "Sites"
1544
  msgstr "Websteder"
1545
 
1546
- #: templates/account.php:599
1547
  msgid "Search by address"
1548
  msgstr "Søg efter adresse"
1549
 
1550
- #: templates/account.php609, templates/debug.php:369
1551
  msgid "Address"
1552
  msgstr "Adresse"
1553
 
1554
- #: templates/account.php:610
1555
  msgid "License"
1556
  msgstr "Licens"
1557
 
1558
- #: templates/account.php:611
1559
  msgid "Plan"
1560
  msgstr "Plan"
1561
 
1562
- #: templates/account.php:656
1563
  msgctxt "as software license"
1564
  msgid "License"
1565
  msgstr "Licens"
1566
 
1567
- #: templates/account.php:743
1568
  msgctxt "verb"
1569
  msgid "Hide"
1570
  msgstr "Skjul"
1571
 
1572
- #: templates/account.php:765
1573
  msgid "Processing"
1574
  msgstr "Arbejder"
1575
 
1576
- #: templates/account.php:768
1577
  msgid "Get updates for bleeding edge Beta versions of %s."
1578
- msgstr ""
1579
 
1580
- #: templates/account.php:826
1581
  msgid "Cancelling %s"
1582
- msgstr ""
1583
 
1584
- #: templates/account.php826, templates/account.php843,
1585
  #: templates/forms/subscription-cancellation.php27,
1586
  #: templates/forms/deactivation/form.php:133
1587
  msgid "trial"
1588
- msgstr ""
1589
 
1590
- #: templates/account.php841, templates/forms/deactivation/form.php:150
1591
  msgid "Cancelling %s..."
1592
- msgstr ""
1593
 
1594
- #: templates/account.php844, templates/forms/subscription-cancellation.php28,
1595
  #: templates/forms/deactivation/form.php:134
1596
  msgid "subscription"
1597
- msgstr ""
1598
 
1599
- #: templates/account.php:858
1600
- msgid ""
1601
- "Deactivating your license will block all premium features, but will enable "
1602
- "activating the license on another site. Are you sure you want to proceed?"
1603
- msgstr ""
1604
 
1605
- #: templates/add-ons.php:35
1606
  msgid "View details"
1607
  msgstr "Vis detaljer"
1608
 
1609
- #: templates/add-ons.php:45
1610
  msgid "Add Ons for %s"
1611
  msgstr "Tilføjelser til %s"
1612
 
1613
- #: templates/add-ons.php:55
1614
- msgid ""
1615
- "We could'nt load the add-ons list. It's probably an issue on our side, "
1616
- "please try to come back in few minutes."
1617
- msgstr ""
1618
 
1619
- #: templates/add-ons.php:173
1620
  msgctxt "active add-on"
1621
  msgid "Active"
1622
  msgstr "Aktiv"
1623
 
1624
- #: templates/add-ons.php:174
1625
  msgctxt "installed add-on"
1626
  msgid "Installed"
1627
- msgstr ""
1628
 
1629
- #: templates/admin-notice.php13, templates/forms/license-activation.php209,
1630
  #: templates/forms/resend-key.php:77
1631
  msgctxt "as close a window"
1632
  msgid "Dismiss"
@@ -1641,17 +1529,12 @@ msgid "Automatic Installation"
1641
  msgstr "Automatisk installering"
1642
 
1643
  #: templates/auto-installation.php:93
1644
- msgid ""
1645
- "An automated download and installation of %s (paid version) from %s will "
1646
- "start in %s. If you would like to do it manually - click the cancellation "
1647
- "button now."
1648
- msgstr ""
1649
 
1650
  #: templates/auto-installation.php:104
1651
- msgid ""
1652
- "The installation process has started and may take a few minutes to complete."
1653
- " Please wait until it is done - do not refresh this page."
1654
- msgstr ""
1655
 
1656
  #: templates/auto-installation.php:109
1657
  msgid "Cancel Installation"
@@ -1663,7 +1546,7 @@ msgstr "Udtjekning"
1663
 
1664
  #: templates/checkout.php:180
1665
  msgid "PCI compliant"
1666
- msgstr ""
1667
 
1668
  #. translators: %s: name (e.g. Hey John,)
1669
  #: templates/connect.php:112
@@ -1683,80 +1566,60 @@ msgstr "Gensend e-mail om aktivering"
1683
  msgid "Thanks %s!"
1684
  msgstr "Tak %s!"
1685
 
1686
- #: templates/connect.php172, templates/forms/license-activation.php:44
1687
  msgid "Agree & Activate License"
1688
  msgstr "Accepter & aktiver licens"
1689
 
1690
  #: templates/connect.php:181
1691
- msgid ""
1692
- "Thanks for purchasing %s! To get started, please enter your license key:"
1693
  msgstr "Tak for at købe %s! For at komme i gang, venligst indtast din licensnøgle:"
1694
 
1695
  #: templates/connect.php:188
1696
- msgid ""
1697
- "Never miss an important update - opt in to our security & feature updates "
1698
- "notifications, educational content, offers, and non-sensitive diagnostic "
1699
- "tracking with %4$s."
1700
- msgstr ""
1701
 
1702
  #: templates/connect.php:189
1703
- msgid ""
1704
- "Never miss an important update - opt in to our security and feature updates "
1705
- "notifications, and non-sensitive diagnostic tracking with %4$s."
1706
- msgstr ""
1707
 
1708
  #: templates/connect.php:195
1709
- msgid ""
1710
- "Never miss an important update - opt in to our security & feature updates "
1711
- "notifications, educational content, offers, and non-sensitive diagnostic "
1712
- "tracking with %4$s. If you skip this, that's okay! %1$s will still work just"
1713
- " fine."
1714
- msgstr ""
1715
 
1716
  #: templates/connect.php:196
1717
- msgid ""
1718
- "Never miss an important update - opt in to our security & feature updates "
1719
- "notifications, and non-sensitive diagnostic tracking with %4$s. If you skip "
1720
- "this, that's okay! %1$s will still work just fine."
1721
- msgstr ""
1722
 
1723
  #: templates/connect.php:230
1724
  msgid "We're excited to introduce the Freemius network-level integration."
1725
- msgstr ""
1726
 
1727
  #: templates/connect.php:233
1728
- msgid ""
1729
- "During the update process we detected %d site(s) that are still pending "
1730
- "license activation."
1731
- msgstr ""
1732
 
1733
  #: templates/connect.php:235
1734
- msgid ""
1735
- "If you'd like to use the %s on those sites, please enter your license key "
1736
- "below and click the activation button."
1737
- msgstr ""
1738
 
1739
  #: templates/connect.php:237
1740
  msgid "%s's paid features"
1741
- msgstr ""
1742
 
1743
  #: templates/connect.php:242
1744
- msgid ""
1745
- "Alternatively, you can skip it for now and activate the license later, in "
1746
- "your %s's network-level Account page."
1747
- msgstr ""
1748
 
1749
  #: templates/connect.php:244
1750
- msgid ""
1751
- "During the update process we detected %s site(s) in the network that are "
1752
- "still pending your attention."
1753
- msgstr ""
1754
 
1755
- #: templates/connect.php253, templates/forms/license-activation.php:47
 
1756
  msgid "License key"
1757
  msgstr "Licensnøgle"
1758
 
1759
- #: templates/connect.php256, templates/forms/license-activation.php:20
1760
  msgid "Can't find your license key?"
1761
  msgstr "Kan du ikke finde din licensnøgle?"
1762
 
@@ -1768,13 +1631,11 @@ msgstr "Spring over"
1768
 
1769
  #: templates/connect.php:318
1770
  msgid "Delegate to Site Admins"
1771
- msgstr ""
1772
 
1773
  #: templates/connect.php:318
1774
- msgid ""
1775
- "If you click it, this decision will be delegated to the sites "
1776
- "administrators."
1777
- msgstr ""
1778
 
1779
  #: templates/connect.php:346
1780
  msgid "Your Profile Overview"
@@ -1798,11 +1659,11 @@ msgstr "Admin-meddelelser"
1798
 
1799
  #: templates/connect.php359, templates/connect.php:375
1800
  msgid "Updates, announcements, marketing, no spam"
1801
- msgstr ""
1802
 
1803
  #: templates/connect.php:364
1804
  msgid "Current %s Events"
1805
- msgstr ""
1806
 
1807
  #: templates/connect.php:365
1808
  msgid "Activation, deactivation and uninstall"
@@ -1812,11 +1673,9 @@ msgstr "Aktivering, deaktivering og afinstallering"
1812
  msgid "Newsletter"
1813
  msgstr "Nyhedsbrev"
1814
 
1815
- #: templates/connect.php391, templates/forms/license-activation.php:39
1816
- msgid ""
1817
- "The %1$s will be periodically sending data to %2$s to check for security and"
1818
- " feature updates, and verify the validity of your license."
1819
- msgstr ""
1820
 
1821
  #: templates/connect.php:396
1822
  msgid "What permissions are being granted?"
@@ -1836,7 +1695,7 @@ msgstr "Privatlivspolitik"
1836
 
1837
  #: templates/connect.php:430
1838
  msgid "License Agreement"
1839
- msgstr ""
1840
 
1841
  #: templates/connect.php:430
1842
  msgid "Terms of Service"
@@ -1876,7 +1735,7 @@ msgid "Debugging"
1876
  msgstr "Fejlfinding"
1877
 
1878
  #: templates/debug.php54, templates/debug.php250, templates/debug.php376,
1879
- #: templates/debug.php:494
1880
  msgid "Actions"
1881
  msgstr "Handlinger"
1882
 
@@ -1894,7 +1753,7 @@ msgstr "Ryd API-cache"
1894
 
1895
  #: templates/debug.php:79
1896
  msgid "Clear Updates Transients"
1897
- msgstr ""
1898
 
1899
  #: templates/debug.php:86
1900
  msgid "Sync Data From Server"
@@ -1902,7 +1761,7 @@ msgstr "Synkroniser data fra server"
1902
 
1903
  #: templates/debug.php:95
1904
  msgid "Migrate Options to Network"
1905
- msgstr ""
1906
 
1907
  #: templates/debug.php:100
1908
  msgid "Load DB Option"
@@ -1945,12 +1804,12 @@ msgstr "Plugins"
1945
  msgid "Themes"
1946
  msgstr "Temaer"
1947
 
1948
- #: templates/debug.php239, templates/debug.php371, templates/debug.php453,
1949
  #: templates/debug/scheduled-crons.php:80
1950
  msgid "Slug"
1951
  msgstr "Kortnavn"
1952
 
1953
- #: templates/debug.php241, templates/debug.php:452
1954
  msgid "Title"
1955
  msgstr "Titel"
1956
 
@@ -1983,126 +1842,130 @@ msgstr "Blokeret"
1983
 
1984
  #: templates/debug.php:322
1985
  msgid "Simulate Trial Promotion"
1986
- msgstr ""
1987
 
1988
  #: templates/debug.php:334
1989
  msgid "Simulate Network Upgrade"
1990
  msgstr "Simuler netværksopgradering"
1991
 
1992
- #: templates/debug.php:360
1993
  msgid "%s Installs"
1994
  msgstr "%s installeringer"
1995
 
1996
- #: templates/debug.php:362
1997
  msgctxt "like websites"
1998
  msgid "Sites"
1999
  msgstr "Websteder"
2000
 
2001
- #: templates/debug.php368, templates/account/partials/site.php:148
2002
  msgid "Blog ID"
2003
  msgstr "Blog-ID"
2004
 
2005
- #: templates/debug.php433, templates/debug.php511,
2006
- #: templates/account/partials/addon.php:396
 
 
 
 
2007
  msgctxt "verb"
2008
  msgid "Delete"
2009
  msgstr "Slet"
2010
 
2011
- #: templates/debug.php:447
2012
  msgid "Add Ons of module %s"
2013
  msgstr "Tilføjelser til modul %s"
2014
 
2015
- #: templates/debug.php:484
2016
  msgid "Users"
2017
  msgstr "Brugere"
2018
 
2019
- #: templates/debug.php:491
2020
  msgid "Verified"
2021
  msgstr "Verificeret"
2022
 
2023
- #: templates/debug.php:522
2024
  msgid "%s Licenses"
2025
  msgstr "1%s licenser"
2026
 
2027
- #: templates/debug.php:527
2028
  msgid "Plugin ID"
2029
  msgstr "Plugin-ID"
2030
 
2031
- #: templates/debug.php:529
2032
  msgid "Plan ID"
2033
  msgstr "Plan-ID"
2034
 
2035
- #: templates/debug.php:530
2036
  msgid "Quota"
2037
  msgstr "Kvote"
2038
 
2039
- #: templates/debug.php:531
2040
  msgid "Activated"
2041
  msgstr "Aktiveret"
2042
 
2043
- #: templates/debug.php:532
2044
  msgid "Blocking"
2045
  msgstr "Blokerer"
2046
 
2047
- #: templates/debug.php:534
2048
  msgctxt "as expiration date"
2049
  msgid "Expiration"
2050
  msgstr "Udløber"
2051
 
2052
- #: templates/debug.php:557
2053
  msgid "Debug Log"
2054
  msgstr "Fejlfindingslog"
2055
 
2056
- #: templates/debug.php:561
2057
  msgid "All Types"
2058
  msgstr "Alle typer"
2059
 
2060
- #: templates/debug.php:568
2061
  msgid "All Requests"
2062
  msgstr "Alle forespørgsler"
2063
 
2064
- #: templates/debug.php573, templates/debug.php602,
2065
  #: templates/debug/logger.php:25
2066
  msgid "File"
2067
  msgstr "Fil"
2068
 
2069
- #: templates/debug.php574, templates/debug.php600,
2070
  #: templates/debug/logger.php:23
2071
  msgid "Function"
2072
  msgstr "Funktion"
2073
 
2074
- #: templates/debug.php:575
2075
  msgid "Process ID"
2076
  msgstr "Proces-ID"
2077
 
2078
- #: templates/debug.php:576
2079
  msgid "Logger"
2080
  msgstr "Logger"
2081
 
2082
- #: templates/debug.php577, templates/debug.php601,
2083
  #: templates/debug/logger.php:24
2084
  msgid "Message"
2085
  msgstr "Besked"
2086
 
2087
- #: templates/debug.php:579
2088
  msgid "Filter"
2089
  msgstr "Filter"
2090
 
2091
- #: templates/debug.php:587
2092
  msgid "Download"
2093
  msgstr "Download"
2094
 
2095
- #: templates/debug.php598, templates/debug/logger.php:22
2096
  msgid "Type"
2097
  msgstr "Type"
2098
 
2099
- #: templates/debug.php603, templates/debug/logger.php:26
2100
  msgid "Timestamp"
2101
  msgstr "Tidsstempel"
2102
 
2103
  #: templates/secure-https-header.php:28
2104
  msgid "Secure HTTPS %s page, running from an external domain"
2105
- msgstr ""
2106
 
2107
  #: includes/customizer/class-fs-customizer-support-section.php55,
2108
  #: templates/plugin-info/features.php:43
@@ -2121,7 +1984,7 @@ msgstr "Freemius API"
2121
 
2122
  #: includes/debug/debug-bar-start.php:42
2123
  msgid "Requests"
2124
- msgstr ""
2125
 
2126
  #: templates/account/billing.php:22
2127
  msgctxt "verb"
@@ -2212,7 +2075,7 @@ msgstr "Sti"
2212
 
2213
  #: templates/debug/api-calls.php:73
2214
  msgid "Body"
2215
- msgstr ""
2216
 
2217
  #: templates/debug/api-calls.php:75
2218
  msgid "Result"
@@ -2287,46 +2150,35 @@ msgstr "Udløber ikke"
2287
 
2288
  #: templates/forms/affiliation.php:85
2289
  msgid "Apply to become an affiliate"
2290
- msgstr ""
2291
 
2292
  #: templates/forms/affiliation.php:104
2293
- msgid ""
2294
- "Your affiliate application for %s has been accepted! Log in to your "
2295
- "affiliate area at: %s."
2296
- msgstr ""
2297
 
2298
  #: templates/forms/affiliation.php:119
2299
- msgid ""
2300
- "Thank you for applying for our affiliate program, we'll review your details "
2301
- "during the next 14 days and will get back to you with further information."
2302
- msgstr ""
2303
 
2304
  #: templates/forms/affiliation.php:122
2305
  msgid "Your affiliation account was temporarily suspended."
2306
- msgstr ""
2307
 
2308
  #: templates/forms/affiliation.php:125
2309
- msgid ""
2310
- "Thank you for applying for our affiliate program, unfortunately, we've "
2311
- "decided at this point to reject your application. Please try again in 30 "
2312
- "days."
2313
- msgstr ""
2314
 
2315
  #: templates/forms/affiliation.php:128
2316
- msgid ""
2317
- "Due to violation of our affiliation terms, we decided to temporarily block "
2318
- "your affiliation account. If you have any questions, please contact support."
2319
- msgstr ""
2320
 
2321
  #: templates/forms/affiliation.php:141
2322
  msgid "Like the %s? Become our ambassador and earn cash ;-)"
2323
- msgstr ""
2324
 
2325
  #: templates/forms/affiliation.php:142
2326
- msgid ""
2327
- "Refer new customers to our %s and earn %s commission on each successful sale"
2328
- " you refer!"
2329
- msgstr ""
2330
 
2331
  #: templates/forms/affiliation.php:145
2332
  msgid "Program Summary"
@@ -2334,34 +2186,31 @@ msgstr "Programoversigt"
2334
 
2335
  #: templates/forms/affiliation.php:147
2336
  msgid "%s commission when a customer purchases a new license."
2337
- msgstr ""
2338
 
2339
  #: templates/forms/affiliation.php:149
2340
  msgid "Get commission for automated subscription renewals."
2341
- msgstr ""
2342
 
2343
  #: templates/forms/affiliation.php:152
2344
- msgid ""
2345
- "%s tracking cookie after the first visit to maximize earnings potential."
2346
- msgstr ""
2347
 
2348
  #: templates/forms/affiliation.php:155
2349
  msgid "Unlimited commissions."
2350
- msgstr ""
2351
 
2352
  #: templates/forms/affiliation.php:157
2353
  msgid "%s minimum payout amount."
2354
- msgstr ""
2355
 
2356
  #: templates/forms/affiliation.php:158
2357
  msgid "Payouts are in USD and processed monthly via PayPal."
2358
- msgstr ""
2359
 
2360
  #: templates/forms/affiliation.php:159
2361
- msgid ""
2362
- "As we reserve 30 days for potential refunds, we only pay commissions that "
2363
- "are older than 30 days."
2364
- msgstr ""
2365
 
2366
  #: templates/forms/affiliation.php:162
2367
  msgid "Affiliate"
@@ -2384,10 +2233,8 @@ msgid "Where are you going to promote the %s?"
2384
  msgstr "Hvor vil du promovere %s?"
2385
 
2386
  #: templates/forms/affiliation.php:179
2387
- msgid ""
2388
- "Enter the domain of your website or other websites from where you plan to "
2389
- "promote the %s."
2390
- msgstr ""
2391
 
2392
  #: templates/forms/affiliation.php:181
2393
  msgid "Add another domain"
@@ -2418,21 +2265,16 @@ msgid "Website, email, and social media statistics (optional)"
2418
  msgstr "Websted, e-mail, og statistikker for sociale medier (valgfrit)"
2419
 
2420
  #: templates/forms/affiliation.php:210
2421
- msgid ""
2422
- "Please feel free to provide any relevant website or social media statistics,"
2423
- " e.g. monthly unique site visits, number of email subscribers, followers, "
2424
- "etc. (we will keep this information confidential)."
2425
- msgstr ""
2426
 
2427
  #: templates/forms/affiliation.php:214
2428
  msgid "How will you promote us?"
2429
  msgstr "Hvordan vil du promovere os?"
2430
 
2431
  #: templates/forms/affiliation.php:217
2432
- msgid ""
2433
- "Please provide details on how you intend to promote %s (please be as "
2434
- "specific as possible)."
2435
- msgstr ""
2436
 
2437
  #: templates/forms/affiliation.php223, templates/forms/resend-key.php:22
2438
  msgid "Cancel"
@@ -2442,13 +2284,27 @@ msgstr "Annuller"
2442
  msgid "Become an affiliate"
2443
  msgstr "Bliv en affiliate"
2444
 
2445
- #: templates/forms/license-activation.php:21
2446
- msgid ""
2447
- "Please enter the license key that you received in the email right after the "
2448
- "purchase:"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2449
  msgstr "Indtast licensnøglen, du modtog i e-mailen lige efter købet:"
2450
 
2451
- #: templates/forms/license-activation.php:26
2452
  msgid "Update License"
2453
  msgstr "Opdater licens"
2454
 
@@ -2463,16 +2319,11 @@ msgid "Opt In"
2463
  msgstr "Tilmeld"
2464
 
2465
  #: templates/forms/optout.php:33
2466
- msgid ""
2467
- "Usage tracking is done in the name of making %s better. Making a better user"
2468
- " experience, prioritizing new features, and more good things. We'd really "
2469
- "appreciate if you'll reconsider letting us continue with the tracking."
2470
- msgstr ""
2471
 
2472
  #: templates/forms/optout.php:35
2473
- msgid ""
2474
- "By clicking \"Opt Out\", we will no longer be sending any data from %s to "
2475
- "%s."
2476
  msgstr "Ved at klikke \"Frameld\" vil vi ikke længere sende data fra %s til %s."
2477
 
2478
  #: templates/forms/premium-versions-upgrade-handler.php:40
@@ -2481,7 +2332,7 @@ msgstr "En ny version af %s er tilgængelig."
2481
 
2482
  #: templates/forms/premium-versions-upgrade-handler.php:41
2483
  msgid " %s to access version %s security & feature updates, and support."
2484
- msgstr ""
2485
 
2486
  #: templates/forms/premium-versions-upgrade-handler.php:54
2487
  msgid "New Version Available"
@@ -2497,81 +2348,53 @@ msgid "Send License Key"
2497
  msgstr "Send licensnøgle"
2498
 
2499
  #: templates/forms/resend-key.php:57
2500
- msgid ""
2501
- "Enter the email address you've used for the upgrade below and we will resend"
2502
- " you the license key."
2503
  msgstr "Indtast e-mailadressen, som du benyttede ved opgraderingen, nedenfor og vi vil gensende licensnøglen til dig."
2504
 
2505
  #: templates/forms/subscription-cancellation.php:37
2506
- msgid ""
2507
- "Deactivating or uninstalling the %s will automatically disable the license, "
2508
- "which you'll be able to use on another site."
2509
- msgstr ""
2510
 
2511
  #: templates/forms/subscription-cancellation.php:47
2512
- msgid ""
2513
- "In case you are NOT planning on using this %s on this site (or any other "
2514
- "site) - would you like to cancel the %s as well?"
2515
- msgstr ""
2516
 
2517
  #: templates/forms/subscription-cancellation.php:52
2518
  msgid "license"
2519
- msgstr ""
2520
 
2521
  #: templates/forms/subscription-cancellation.php:57
2522
- msgid ""
2523
- "Cancel %s - I no longer need any security & feature updates, nor support for"
2524
- " %s because I'm not planning to use the %s on this, or any other site."
2525
- msgstr ""
2526
 
2527
  #: templates/forms/subscription-cancellation.php:68
2528
- msgid ""
2529
- "Don't cancel %s - I'm still interested in getting security & feature "
2530
- "updates, as well as be able to contact support."
2531
- msgstr ""
2532
-
2533
- #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
2534
- #. subscription'
2535
- #: templates/forms/subscription-cancellation.php99,
2536
- #: templates/account/partials/addon.php29,
2537
- #: templates/account/partials/site.php:298
2538
- msgid ""
2539
- "%1$s will immediately stop all future recurring payments and your %s plan "
2540
- "license will expire in %s."
2541
- msgstr ""
2542
 
2543
  #: templates/forms/subscription-cancellation.php:103
2544
- msgid ""
2545
- "Once your license expires you will no longer be able to use the %s, unless "
2546
- "you activate it again with a valid premium license."
2547
- msgstr ""
2548
 
2549
  #: templates/forms/subscription-cancellation.php:136
2550
  msgid "Cancel %s?"
2551
- msgstr ""
2552
 
2553
  #: templates/forms/subscription-cancellation.php:143
2554
  msgid "Proceed"
2555
- msgstr ""
2556
 
2557
  #: templates/forms/subscription-cancellation.php191,
2558
  #: templates/forms/deactivation/form.php:171
2559
  msgid "Cancel %s & Proceed"
2560
- msgstr ""
2561
 
2562
  #: templates/forms/trial-start.php:22
2563
- msgid ""
2564
- "You are 1-click away from starting your %1$s-day free trial of the %2$s "
2565
- "plan."
2566
  msgstr "Du er 1 klik fra at begynde din %1$s dages gratis prøveperiode af planen %2$s."
2567
 
2568
  #: templates/forms/trial-start.php:28
2569
- msgid ""
2570
- "For compliance with the WordPress.org guidelines, before we start the trial "
2571
- "we ask that you opt in with your user and non-sensitive site information, "
2572
- "allowing the %s to periodically send data to %s to check for version updates"
2573
- " and to validate your trial."
2574
- msgstr ""
2575
 
2576
  #: templates/js/style-premium-theme.php:39
2577
  msgid "Premium"
@@ -2579,7 +2402,7 @@ msgstr "Premium"
2579
 
2580
  #: templates/js/style-premium-theme.php:42
2581
  msgid "Beta"
2582
- msgstr ""
2583
 
2584
  #: templates/partials/network-activation.php:27
2585
  msgid "Activate license on all sites in the network."
@@ -2634,33 +2457,38 @@ msgstr "%s tilbage"
2634
  msgid "Last license"
2635
  msgstr "Seneste license"
2636
 
2637
- #: templates/account/partials/addon.php:167
 
 
 
 
 
 
2638
  msgid "Cancelled"
2639
  msgstr "Annulleret"
2640
 
2641
- #: templates/account/partials/addon.php:177
2642
  msgid "No expiration"
2643
  msgstr "Udløber ikke"
2644
 
2645
- #: templates/account/partials/site.php:181
2646
  msgid "Owner Name"
2647
  msgstr "Ejer-navn"
2648
 
2649
- #: templates/account/partials/site.php:193
2650
  msgid "Owner Email"
2651
  msgstr "E-mailadresse for ejer"
2652
 
2653
- #: templates/account/partials/site.php:205
2654
  msgid "Owner ID"
2655
  msgstr "Ejer-ID"
2656
 
2657
- #: templates/account/partials/site.php:270
2658
  msgid "Subscription"
2659
  msgstr "Abonnement"
2660
 
2661
  #: templates/forms/deactivation/contact.php:19
2662
- msgid ""
2663
- "Sorry for the inconvenience and we are here to help if you give us a chance."
2664
  msgstr "Vi beklager ulejligheden, og vi er her for at hjælpe, hvis du giver os chancen."
2665
 
2666
  #: templates/forms/deactivation/contact.php:22
@@ -2681,7 +2509,7 @@ msgstr "Aktiver %s"
2681
 
2682
  #: templates/forms/deactivation/form.php:87
2683
  msgid "Quick Feedback"
2684
- msgstr ""
2685
 
2686
  #: templates/forms/deactivation/form.php:91
2687
  msgid "If you have a moment, please let us know why you are %s"
@@ -2716,7 +2544,5 @@ msgid "Click here to use the plugin anonymously"
2716
  msgstr "Klik her for at benytte pluginnet anonymt"
2717
 
2718
  #: templates/forms/deactivation/retry-skip.php:23
2719
- msgid ""
2720
- "You might have missed it, but you don't have to share any data and can just "
2721
- "%s the opt-in."
2722
  msgstr "Du har måske overset det, men du behøver ikke at dele data og kan blot %s tilmeldingen."
1
+ # Copyright (C) 2019 freemius
2
+ # This file is distributed under the same license as the freemius package.
3
+ # Translators:
4
+ # Joachim Jensen, 2019
5
+ # Joachim Jensen, 2016-2018
6
+ # Lars Koudal, 2018-2019
7
  msgid ""
8
  msgstr ""
9
+ "Project-Id-Version: WordPress SDK\n"
10
+ "Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
11
  "POT-Creation-Date: \n"
12
+ "PO-Revision-Date: 2019-10-07 15:33+0000\n"
13
+ "Last-Translator: Vova Feldman <vova@freemius.com>\n"
14
+ "Language: da_DK\n"
 
 
 
 
 
 
 
 
15
  "Language-Team: Danish (Denmark) (http://www.transifex.com/freemius/wordpress-sdk/language/da_DK/)\n"
 
16
  "Content-Type: text/plain; charset=UTF-8\n"
17
  "Content-Transfer-Encoding: 8bit\n"
 
18
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
+ "MIME-Version: 1.0\n"
20
  "X-Poedit-Basepath: ..\n"
21
  "X-Poedit-KeywordsList: get_text_inline;fs_text_inline;fs_echo_inline;fs_esc_js_inline;fs_esc_attr_inline;fs_esc_attr_echo_inline;fs_esc_html_inline;fs_esc_html_echo_inline;get_text_x_inline:1,2c;fs_text_x_inline:1,2c;fs_echo_x_inline:1,2c;fs_esc_attr_x_inline:1,2c;fs_esc_js_x_inline:1,2c;fs_esc_js_echo_x_inline:1,2c;fs_esc_html_x_inline:1,2c;fs_esc_html_echo_x_inline:1,2c\n"
22
  "X-Poedit-SearchPath-0: .\n"
23
  "X-Poedit-SearchPathExcluded-0: *.js\n"
24
  "X-Poedit-SourceCharset: UTF-8\n"
25
 
26
+ #: includes/class-freemius.php1880, templates/account.php:840
27
+ msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
28
+ msgstr "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
 
 
 
29
 
30
+ #: includes/class-freemius.php:1887
31
  msgid "Would you like to proceed with the update?"
32
+ msgstr "Vil du fortsætte med opdateringen?"
33
 
34
+ #: includes/class-freemius.php:2095
35
+ msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
36
+ msgstr "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
 
 
37
 
38
+ #: includes/class-freemius.php:2097
39
  msgid "Error"
40
  msgstr "Fejl"
41
 
42
+ #: includes/class-freemius.php:2491
43
  msgid "I found a better %s"
44
  msgstr "Jeg fandt et bedre %s"
45
 
46
+ #: includes/class-freemius.php:2493
47
  msgid "What's the %s's name?"
48
  msgstr "Hvad er navnet på %s?"
49
 
50
+ #: includes/class-freemius.php:2499
51
  msgid "It's a temporary %s. I'm just debugging an issue."
52
  msgstr "Det er en midlertidig %s. Jeg er i gang med fejlrettelser."
53
 
54
+ #: includes/class-freemius.php:2501
55
  msgid "Deactivation"
56
  msgstr "Deaktivering"
57
 
58
+ #: includes/class-freemius.php:2502
59
  msgid "Theme Switch"
60
  msgstr "Temaskift"
61
 
62
+ #: includes/class-freemius.php2511, templates/forms/resend-key.php:24
63
  msgid "Other"
64
  msgstr "Andet"
65
 
66
+ #: includes/class-freemius.php:2519
67
  msgid "I no longer need the %s"
68
  msgstr "Jeg har ikke længere brug for %s"
69
 
70
+ #: includes/class-freemius.php:2526
71
  msgid "I only needed the %s for a short period"
72
  msgstr "Jeg behøvede kun %s i en kort periode"
73
 
74
+ #: includes/class-freemius.php:2532
75
  msgid "The %s broke my site"
76
  msgstr "%s ødelagde min webside"
77
 
78
+ #: includes/class-freemius.php:2539
79
  msgid "The %s suddenly stopped working"
80
  msgstr "%s stoppede pludseligt med at virke"
81
 
82
+ #: includes/class-freemius.php:2549
83
  msgid "I can't pay for it anymore"
84
  msgstr "Jeg kan ikke længere betale for det"
85
 
86
+ #: includes/class-freemius.php:2551
87
  msgid "What price would you feel comfortable paying?"
88
  msgstr "Hvilken pris ville du foretrække at betale?"
89
 
90
+ #: includes/class-freemius.php:2557
91
  msgid "I don't like to share my information with you"
92
  msgstr "Jeg har ikke lyst til at dele mine informationer med jer"
93
 
94
+ #: includes/class-freemius.php:2578
95
  msgid "The %s didn't work"
96
  msgstr "%s virkede ikke"
97
 
98
+ #: includes/class-freemius.php:2588
99
  msgid "I couldn't understand how to make it work"
100
  msgstr "Jeg forstod ikke, hvordan jeg skulle få det til at fungere."
101
 
102
+ #: includes/class-freemius.php:2596
103
  msgid "The %s is great, but I need specific feature that you don't support"
104
  msgstr "%s er godt, men jeg har brug for en specifik feature, som ikke understøttes"
105
 
106
+ #: includes/class-freemius.php:2598
107
  msgid "What feature?"
108
  msgstr "Hvilken feature?"
109
 
110
+ #: includes/class-freemius.php:2602
111
  msgid "The %s is not working"
112
  msgstr "%s virker ikke"
113
 
114
+ #: includes/class-freemius.php:2604
115
  msgid "Kindly share what didn't work so we can fix it for future users..."
116
+ msgstr "Vær venlig at dele hvad der ikke virkede så vi kan rette det for kommende brugere...."
117
 
118
+ #: includes/class-freemius.php:2608
119
  msgid "It's not what I was looking for"
120
  msgstr "Det er ikke, hvad jeg søgte"
121
 
122
+ #: includes/class-freemius.php:2610
123
  msgid "What you've been looking for?"
124
+ msgstr "Hvad ledte du efter?"
125
 
126
+ #: includes/class-freemius.php:2614
127
  msgid "The %s didn't work as expected"
128
  msgstr "%s virkede ikke som forventet"
129
 
130
+ #: includes/class-freemius.php:2616
131
  msgid "What did you expect?"
132
  msgstr "Hvad forventede du?"
133
 
134
+ #: includes/class-freemius.php3471, templates/debug.php:20
135
  msgid "Freemius Debug"
136
  msgstr "Freemius Debug"
137
 
138
+ #: includes/class-freemius.php:4223
139
  msgid "I don't know what is cURL or how to install it, help me!"
140
  msgstr "Jeg ved ikke hvad cURL er, eller hvordan jeg installerer det. Hjælp mig!"
141
 
142
+ #: includes/class-freemius.php:4225
143
+ msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
 
 
144
  msgstr "Vi vil kontakte din udbyder og løse problemet. Når vi har opdatinger i sagen, vil vi følge op med en email til dig på %s."
145
 
146
+ #: includes/class-freemius.php:4232
147
+ msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
148
+ msgstr "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
 
 
 
 
 
149
 
150
+ #: includes/class-freemius.php:4337
151
  msgid "Yes - do your thing"
152
  msgstr "Ja - fortsæt bare"
153
 
154
+ #: includes/class-freemius.php:4342
155
  msgid "No - just deactivate"
156
  msgstr "Nej - bare deaktiver"
157
 
158
+ #: includes/class-freemius.php4387, includes/class-freemius.php4881,
159
+ #: includes/class-freemius.php6032, includes/class-freemius.php13153,
160
+ #: includes/class-freemius.php16558, includes/class-freemius.php16646,
161
+ #: includes/class-freemius.php16812, includes/class-freemius.php19040,
162
+ #: includes/class-freemius.php19381, includes/class-freemius.php19391,
163
+ #: includes/class-freemius.php20051, includes/class-freemius.php20924,
164
+ #: includes/class-freemius.php21039, includes/class-freemius.php21183,
165
+ #: templates/add-ons.php:57
166
  msgctxt "exclamation"
167
  msgid "Oops"
168
  msgstr "Ups"
169
 
170
+ #: includes/class-freemius.php:4456
171
+ msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
 
 
 
172
  msgstr "Tak fordi du giver os en chance for at fixe det! En besked er lige blevet sendt til vores tekniske personale. Vi vil vende tilbage, så snart der er nyt om %s. Vi sætter pris på din tålmodighed."
173
 
174
+ #: includes/class-freemius.php:4878
175
  msgctxt "addonX cannot run without pluginY"
176
  msgid "%s cannot run without %s."
177
  msgstr "%s virker ikke uden %s."
178
 
179
+ #: includes/class-freemius.php:4879
180
  msgctxt "addonX cannot run..."
181
  msgid "%s cannot run without the plugin."
182
  msgstr "%s virker ikke uden pluginnet."
183
 
184
+ #: includes/class-freemius.php5052, includes/class-freemius.php5077,
185
+ #: includes/class-freemius.php:20122
186
+ msgid "Unexpected API error. Please contact the %s's author with the following error."
187
+ msgstr "Uventet API-fejl. Kontakt %s's forfatter med følgende fejl."
 
 
188
 
189
+ #: includes/class-freemius.php:5720
190
  msgid "Premium %s version was successfully activated."
191
  msgstr "Premium-versionen af %s blev aktiveret."
192
 
193
+ #: includes/class-freemius.php5732, includes/class-freemius.php:7599
194
  msgctxt ""
 
 
195
  msgid "W00t"
196
  msgstr "W00t"
197
 
198
+ #: includes/class-freemius.php:5747
199
  msgid "You have a %s license."
200
  msgstr "Du har en %s licens."
201
 
202
+ #: includes/class-freemius.php5751, includes/class-freemius.php15975,
203
+ #: includes/class-freemius.php15986, includes/class-freemius.php19292,
204
+ #: includes/class-freemius.php19642, includes/class-freemius.php19711,
205
+ #: includes/class-freemius.php:19876
206
  msgctxt "interjection expressing joy or exuberance"
207
  msgid "Yee-haw"
208
  msgstr "Yee-haw"
209
 
210
+ #: includes/class-freemius.php:6015
211
+ msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
212
+ msgstr "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
 
 
 
213
 
214
+ #: includes/class-freemius.php:6019
215
+ msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
216
+ msgstr "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
 
 
217
 
218
+ #: includes/class-freemius.php6028, templates/add-ons.php186,
219
+ #: templates/account/partials/addon.php:381
220
  msgid "More information about %s"
221
  msgstr "Mere information om %s"
222
 
223
+ #: includes/class-freemius.php:6029
224
  msgid "Purchase License"
225
  msgstr "Køb licens"
226
 
227
+ #: includes/class-freemius.php6964, templates/connect.php:163
228
+ msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
229
+ msgstr "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
 
 
230
 
231
+ #: includes/class-freemius.php:6968
232
  msgid "start the trial"
233
  msgstr "start prøveperioden"
234
 
235
+ #: includes/class-freemius.php6969, templates/connect.php:167
236
  msgid "complete the install"
237
  msgstr "færdiggør installeringen"
238
 
239
+ #: includes/class-freemius.php:7081
240
  msgid "You are just one step away - %s"
241
  msgstr "Du mangler kun ét skridt - %s"
242
 
243
+ #: includes/class-freemius.php:7084
244
  msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
245
  msgid "Complete \"%s\" Activation Now"
246
  msgstr "Færdiggør aktivering af \"%s\" nu"
247
 
248
+ #: includes/class-freemius.php:7162
249
  msgid "We made a few tweaks to the %s, %s"
250
  msgstr "Vi har foretaget nogle rettelser til %s, %s"
251
 
252
+ #: includes/class-freemius.php:7166
253
  msgid "Opt in to make \"%s\" better!"
254
+ msgstr "Accepter for at gøre \"%s\" bedre!"
255
 
256
+ #: includes/class-freemius.php:7598
257
  msgid "The upgrade of %s was successfully completed."
258
  msgstr "Opgraderingen af %s blev fuldendt."
259
 
260
+ #: includes/class-freemius.php9802, includes/class-fs-plugin-updater.php1038,
261
+ #: includes/class-fs-plugin-updater.php1233,
262
+ #: includes/class-fs-plugin-updater.php1240,
263
  #: templates/auto-installation.php:32
264
  msgid "Add-On"
265
  msgstr "Tilføjelse"
266
 
267
+ #: includes/class-freemius.php9804, templates/account.php335,
268
+ #: templates/account.php343, templates/debug.php360, templates/debug.php:551
269
  msgid "Plugin"
270
  msgstr "Plugin"
271
 
272
+ #: includes/class-freemius.php9805, templates/account.php336,
273
+ #: templates/account.php344, templates/debug.php360, templates/debug.php551,
274
  #: templates/forms/deactivation/form.php:71
275
  msgid "Theme"
276
  msgstr "Tema"
277
 
278
+ #: includes/class-freemius.php:12596
279
+ msgid "An unknown error has occurred while trying to set the user's beta mode."
280
+ msgstr "An unknown error has occurred while trying to set the user's beta mode."
 
281
 
282
+ #: includes/class-freemius.php:13020
283
  msgid "Invalid site details collection."
284
+ msgstr "Invalid site details collection."
285
 
286
+ #: includes/class-freemius.php:13140
287
+ msgid "We couldn't find your email address in the system, are you sure it's the right address?"
 
 
288
  msgstr "Vi kunne ikke finde din e-mailadresse i systemet, er du sikker på, det er den rigtige adresse?"
289
 
290
+ #: includes/class-freemius.php:13142
291
+ msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
 
 
292
  msgstr "Vi kan ikke finde nogen aktive licenser knyttet til den e-mailadresse, er du sikker på, det er den rigtige adresse?"
293
 
294
+ #: includes/class-freemius.php:13416
295
  msgid "Account is pending activation."
296
  msgstr "Konto afventer aktivering."
297
 
298
+ #: includes/class-freemius.php13528,
299
  #: templates/forms/premium-versions-upgrade-handler.php:47
300
  msgid "Buy a license now"
301
+ msgstr "Køb en licens nu"
302
 
303
+ #: includes/class-freemius.php13540,
304
  #: templates/forms/premium-versions-upgrade-handler.php:46
305
  msgid "Renew your license now"
306
+ msgstr "Forny din licens nu"
307
 
308
+ #: includes/class-freemius.php:13544
309
  msgid "%s to access version %s security & feature updates, and support."
310
+ msgstr "%s to access version %s security & feature updates, and support."
311
 
312
+ #: includes/class-freemius.php:15957
313
  msgid "%s activation was successfully completed."
314
  msgstr "Aktivering af %s blev gennemført."
315
 
316
+ #: includes/class-freemius.php:15971
317
  msgid "Your account was successfully activated with the %s plan."
318
  msgstr "Din konto blev aktiveret med planen %s."
319
 
320
+ #: includes/class-freemius.php15982, includes/class-freemius.php:19707
321
  msgid "Your trial has been successfully started."
322
  msgstr "Din prøveperiode er begyndt."
323
 
324
+ #: includes/class-freemius.php16556, includes/class-freemius.php16644,
325
+ #: includes/class-freemius.php:16810
326
  msgid "Couldn't activate %s."
327
  msgstr "Kunne ikke aktivere %s."
328
 
329
+ #: includes/class-freemius.php16557, includes/class-freemius.php16645,
330
+ #: includes/class-freemius.php:16811
331
  msgid "Please contact us with the following message:"
332
  msgstr "Kontakt os venligst med følgende besked:"
333
 
334
+ #: includes/class-freemius.php16641, templates/forms/data-debug-mode.php:162
335
  msgid "An unknown error has occurred."
336
+ msgstr "Der skete en ukendt fejl."
337
 
338
+ #: includes/class-freemius.php17168, includes/class-freemius.php:22082
339
  msgid "Upgrade"
340
  msgstr "Opgrader"
341
 
342
+ #: includes/class-freemius.php:17174
343
  msgid "Start Trial"
344
  msgstr "Start prøveperiode"
345
 
346
+ #: includes/class-freemius.php:17176
347
  msgid "Pricing"
348
  msgstr "Priser"
349
 
350
+ #: includes/class-freemius.php17256, includes/class-freemius.php:17258
351
  msgid "Affiliation"
352
  msgstr "Affiliation"
353
 
354
+ #: includes/class-freemius.php17286, includes/class-freemius.php17288,
355
+ #: templates/account.php183, templates/debug.php:326
356
  msgid "Account"
357
  msgstr "Konto"
358
 
359
+ #: includes/class-freemius.php17302, includes/class-freemius.php17304,
360
  #: includes/customizer/class-fs-customizer-support-section.php:60
361
  msgid "Contact Us"
362
  msgstr "Kontakt os"
363
 
364
+ #: includes/class-freemius.php17315, includes/class-freemius.php17317,
365
+ #: includes/class-freemius.php22096, templates/account.php111,
366
+ #: templates/account/partials/addon.php:44
367
  msgid "Add-Ons"
368
  msgstr "Tilføjelser"
369
 
370
+ #: includes/class-freemius.php:17351
371
  msgctxt "ASCII arrow left icon"
372
  msgid "&#x2190;"
373
+ msgstr "&#x2190;"
374
 
375
+ #: includes/class-freemius.php:17351
376
  msgctxt "ASCII arrow right icon"
377
  msgid "&#x27a4;"
378
+ msgstr "&#x27a4;"
379
 
380
+ #: includes/class-freemius.php17353, templates/pricing.php:103
381
  msgctxt "noun"
382
  msgid "Pricing"
383
  msgstr "Priser"
384
 
385
+ #: includes/class-freemius.php17566,
386
  #: includes/customizer/class-fs-customizer-support-section.php:67
387
  msgid "Support Forum"
388
  msgstr "Supportforum"
389
 
390
+ #: includes/class-freemius.php:18536
391
  msgid "Your email has been successfully verified - you are AWESOME!"
392
  msgstr "Din e-mailadresse er blevet verificeret - du er FOR SEJ!"
393
 
394
+ #: includes/class-freemius.php:18537
395
  msgctxt "a positive response"
396
  msgid "Right on"
397
  msgstr "Sådan"
398
 
399
+ #: includes/class-freemius.php:19041
400
+ msgid "seems like the key you entered doesn't match our records."
401
+ msgstr "seems like the key you entered doesn't match our records."
402
+
403
+ #: includes/class-freemius.php:19065
404
+ msgid "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
405
+ msgstr "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
406
+
407
+ #: includes/class-freemius.php:19283
408
  msgid "Your %s Add-on plan was successfully upgraded."
409
+ msgstr "Your %s Add-on plan was successfully upgraded."
410
 
411
+ #: includes/class-freemius.php:19285
412
  msgid "%s Add-on was successfully purchased."
413
  msgstr "Betalingen for tilføjelsen %s blev gennemført."
414
 
415
+ #: includes/class-freemius.php:19288
416
  msgid "Download the latest version"
417
  msgstr "Download den seneste version"
418
 
419
+ #: includes/class-freemius.php:19374
420
+ msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
421
+ msgstr "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
 
 
422
 
423
+ #: includes/class-freemius.php19380, includes/class-freemius.php19390,
424
+ #: includes/class-freemius.php19835, includes/class-freemius.php:19924
425
  msgid "Error received from the server:"
426
  msgstr "Fejl modtager fra serveren:"
427
 
428
+ #: includes/class-freemius.php:19390
429
+ msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
430
+ msgstr "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
 
 
431
 
432
+ #: includes/class-freemius.php19604, includes/class-freemius.php19840,
433
+ #: includes/class-freemius.php19895, includes/class-freemius.php:19998
434
  msgctxt ""
 
 
435
  msgid "Hmm"
436
  msgstr "Hmm"
437
 
438
+ #: includes/class-freemius.php:19617
439
+ msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
440
+ msgstr "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
 
 
441
 
442
+ #: includes/class-freemius.php19618, templates/account.php113,
443
+ #: templates/add-ons.php250, templates/account/partials/addon.php:46
444
  msgctxt "trial period"
445
  msgid "Trial"
446
  msgstr "Prøveperiode"
447
 
448
+ #: includes/class-freemius.php:19623
449
+ msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
 
 
450
  msgstr "Jeg har opgraderet min konto, men når jeg forsøger at synkronisere licensen, forbliver planen %s."
451
 
452
+ #: includes/class-freemius.php19627, includes/class-freemius.php:19686
453
  msgid "Please contact us here"
454
  msgstr "Kontakt os her"
455
 
456
+ #: includes/class-freemius.php:19638
457
  msgid "Your plan was successfully activated."
458
+ msgstr "Din plan er blevet aktiveret."
459
 
460
+ #: includes/class-freemius.php:19639
461
  msgid "Your plan was successfully upgraded."
462
  msgstr "Din plan er blevet opgraderet."
463
 
464
+ #: includes/class-freemius.php:19656
465
  msgid "Your plan was successfully changed to %s."
466
  msgstr "Din plan er blevet ændret til %s."
467
 
468
+ #: includes/class-freemius.php:19672
469
+ msgid "Your license has expired. You can still continue using the free %s forever."
 
470
  msgstr "Din licens er udløbet. Du kan stadig fortsætte med at benytte den gratis udgave af %s."
471
 
472
+ #: includes/class-freemius.php:19674
473
+ msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
 
 
474
  msgstr "Din licens er udløbet. %1$sOpgrader nu%2$s for at fortsætte med at benytte %3$s uden forstyrrelser."
475
 
476
+ #: includes/class-freemius.php:19682
477
+ msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
 
 
478
  msgstr "Din licens er blevet annulleret. Hvis du mener, dette er en fejl, så kontakt venligst support."
479
 
480
+ #: includes/class-freemius.php:19695
481
+ msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
 
 
 
482
  msgstr "Din licens er udløbet. Du kan stadig benytte alle funktionerne i %s, men du bliver nødt til at fornye din licens for at få opdateringer og support."
483
 
484
+ #: includes/class-freemius.php:19721
485
+ msgid "Your free trial has expired. You can still continue using all our free features."
 
 
486
  msgstr "Din gratis prøveperiode er udløbet. Du kan stadig benytte alle de gratis features."
487
 
488
+ #: includes/class-freemius.php:19723
489
+ msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
490
+ msgstr "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
 
 
491
 
492
+ #: includes/class-freemius.php:19831
493
  msgid "It looks like the license could not be activated."
494
  msgstr "Det ser ud til, at licensen ikke kunne aktiveres."
495
 
496
+ #: includes/class-freemius.php:19873
497
  msgid "Your license was successfully activated."
498
  msgstr "Din licens er blevet aktiveret."
499
 
500
+ #: includes/class-freemius.php:19899
501
  msgid "It looks like your site currently doesn't have an active license."
502
  msgstr "Det ser ud til, at dit websted endnu ikke har en aktiv licens."
503
 
504
+ #: includes/class-freemius.php:19923
505
  msgid "It looks like the license deactivation failed."
506
  msgstr "Det ser ud til, at licens-deaktiveringen mislykkedes."
507
 
508
+ #: includes/class-freemius.php:19951
509
+ msgid "Your license was successfully deactivated, you are back to the %s plan."
 
510
  msgstr "Din licens blev deaktiveret, du er tilbage på planen %s."
511
 
512
+ #: includes/class-freemius.php:19952
513
  msgid "O.K"
514
  msgstr "O.K"
515
 
516
+ #: includes/class-freemius.php:20005
517
+ msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
518
+ msgstr "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
 
 
519
 
520
+ #: includes/class-freemius.php:20014
521
+ msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
522
+ msgstr "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
 
 
523
 
524
+ #: includes/class-freemius.php:20056
525
  msgid "You are already running the %s in a trial mode."
526
  msgstr "Du benytter allerede %s under en prøveperiode."
527
 
528
+ #: includes/class-freemius.php:20067
529
  msgid "You already utilized a trial before."
530
  msgstr "Du har allerede brugt din prøveperiode."
531
 
532
+ #: includes/class-freemius.php:20081
533
  msgid "Plan %s do not exist, therefore, can't start a trial."
534
  msgstr "Plan %s eksisterer ikke og kan derfor ikke starte prøveperiode."
535
 
536
+ #: includes/class-freemius.php:20092
537
  msgid "Plan %s does not support a trial period."
538
  msgstr "Plan %s understøtter ikke en prøveperiode."
539
 
540
+ #: includes/class-freemius.php:20103
541
  msgid "None of the %s's plans supports a trial period."
542
+ msgstr "Ingen af %s's planer understøtter prøveperiode."
543
 
544
+ #: includes/class-freemius.php:20153
545
+ msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
 
 
546
  msgstr "Det lader ikke til du er i en prøveperiode længere, så der er ikke noget at annullere :-)"
547
 
548
+ #: includes/class-freemius.php:20189
549
+ msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
550
+ msgstr "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
 
 
551
 
552
+ #: includes/class-freemius.php:20208
553
  msgid "Your %s free trial was successfully cancelled."
554
  msgstr "Din gratis prøveperiode for %s er blevet annulleret."
555
 
556
+ #: includes/class-freemius.php:20524
557
  msgid "Version %s was released."
558
  msgstr "Version %s er blevet udgivet."
559
 
560
+ #: includes/class-freemius.php:20524
561
  msgid "Please download %s."
562
  msgstr "Download venligst %s."
563
 
564
+ #: includes/class-freemius.php:20531
565
  msgid "the latest %s version here"
566
  msgstr "den seneste version af %s her"
567
 
568
+ #: includes/class-freemius.php:20536
569
  msgid "New"
570
  msgstr "Ny"
571
 
572
+ #: includes/class-freemius.php:20541
573
  msgid "Seems like you got the latest release."
574
  msgstr "Det ser ud til, at du har den seneste udgivelse."
575
 
576
+ #: includes/class-freemius.php:20542
577
  msgid "You are all good!"
578
  msgstr "Det var det!"
579
 
580
+ #: includes/class-freemius.php:20812
581
+ msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
582
+ msgstr "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
 
 
583
 
584
+ #: includes/class-freemius.php:20951
585
  msgid "Site successfully opted in."
586
  msgstr "Websted er tilmeldt."
587
 
588
+ #: includes/class-freemius.php20952, includes/class-freemius.php:21792
589
  msgid "Awesome"
590
  msgstr "Sejt"
591
 
592
+ #: includes/class-freemius.php20968, templates/forms/optout.php:32
593
+ msgid "We appreciate your help in making the %s better by letting us track some usage data."
 
 
594
  msgstr "Vi sætter pris på din hjælp med at forbedre %s ved at lade os indsamle brugsdata."
595
 
596
+ #: includes/class-freemius.php:20969
597
  msgid "Thank you!"
598
  msgstr "Mange tak!"
599
 
600
+ #: includes/class-freemius.php:20976
601
  msgid "We will no longer be sending any usage data of %s on %s to %s."
602
  msgstr "Vi vil ikke længere indsende brugsdata af %s på %s til %s."
603
 
604
+ #: includes/class-freemius.php:21105
605
+ msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
606
+ msgstr "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
 
 
 
 
607
 
608
+ #: includes/class-freemius.php:21111
609
+ msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
610
+ msgstr "Tak fordi du bekræftede skift af ejerskab. En e-mail er blevet sendt til %s for sidste godkendelse."
 
 
611
 
612
+ #: includes/class-freemius.php:21116
613
  msgid "%s is the new owner of the account."
614
  msgstr "%s er den nye ejer af kontoen."
615
 
616
+ #: includes/class-freemius.php:21118
617
  msgctxt "as congratulations"
618
  msgid "Congrats"
619
  msgstr "Tillykke"
620
 
621
+ #: includes/class-freemius.php:21138
622
+ msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
623
+ msgstr "Beklager, vi kunne ikke opdatere e-mailen. Der er allerede registreret en anden bruger med samme e-mail."
 
 
624
 
625
+ #: includes/class-freemius.php:21139
626
+ msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
627
+ msgstr "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
 
 
628
 
629
+ #: includes/class-freemius.php:21146
630
  msgid "Change Ownership"
631
  msgstr "Skift ejerskab"
632
 
633
+ #: includes/class-freemius.php:21154
634
+ msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
635
+ msgstr "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
 
 
636
 
637
+ #: includes/class-freemius.php:21166
638
  msgid "Please provide your full name."
639
  msgstr "Indtast venligst dit fulde navn."
640
 
641
+ #: includes/class-freemius.php:21171
642
  msgid "Your name was successfully updated."
643
  msgstr "Dit navn er blevet opdateret."
644
 
645
+ #: includes/class-freemius.php:21232
646
  msgid "You have successfully updated your %s."
647
  msgstr "Opdatering af %s blev gennemført."
648
 
649
+ #: includes/class-freemius.php:21372
650
+ msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
651
+ msgstr "Just letting you know that the add-ons information of %s is being pulled from an external server."
 
 
652
 
653
+ #: includes/class-freemius.php:21373
654
  msgctxt "advance notice of something that will need attention."
655
  msgid "Heads up"
656
  msgstr "Se her"
657
 
658
+ #: includes/class-freemius.php:21832
659
  msgctxt "exclamation"
660
  msgid "Hey"
661
  msgstr "Hey"
662
 
663
+ #: includes/class-freemius.php:21832
664
+ msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
665
+ msgstr "Hvad synes du om %s indtil videre? Test alle vores premium funktioner i %s med en %d-dags gratis prøveperiode."
 
 
666
 
667
+ #: includes/class-freemius.php:21840
668
  msgid "No commitment for %s days - cancel anytime!"
669
  msgstr "Ingen bindinger i %s dage - annuller når som helst!"
670
 
671
+ #: includes/class-freemius.php:21841
672
  msgid "No credit card required"
673
  msgstr "Betalingskort ikke påkrævet"
674
 
675
+ #: includes/class-freemius.php21848, templates/forms/trial-start.php:53
676
  msgctxt "call to action"
677
  msgid "Start free trial"
678
  msgstr "Start gratis prøveperiode"
679
 
680
+ #: includes/class-freemius.php:21925
681
+ msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
682
+ msgstr "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
 
 
683
 
684
+ #: includes/class-freemius.php:21934
685
  msgid "Learn more"
686
  msgstr "Læs mere"
687
 
688
+ #: includes/class-freemius.php22120, templates/account.php499,
689
+ #: templates/account.php624, templates/connect.php171,
690
+ #: templates/connect.php421, templates/forms/license-activation.php27,
691
+ #: templates/account/partials/addon.php:321
692
  msgid "Activate License"
693
  msgstr "Aktiver licens"
694
 
695
+ #: includes/class-freemius.php22121, templates/account.php571,
696
+ #: templates/account.php623, templates/account/partials/addon.php322,
697
+ #: templates/account/partials/site.php:271
698
  msgid "Change License"
699
  msgstr "Skift licens"
700
 
701
+ #: includes/class-freemius.php22217, templates/account/partials/site.php:169
702
  msgid "Opt Out"
703
  msgstr "Frameld"
704
 
705
+ #: includes/class-freemius.php22219, includes/class-freemius.php22225,
706
+ #: templates/account/partials/site.php49,
707
+ #: templates/account/partials/site.php:169
708
  msgid "Opt In"
709
  msgstr "Tilmeld"
710
 
711
+ #: includes/class-freemius.php:22453
712
+ msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
713
+ msgstr " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
 
 
714
 
715
+ #: includes/class-freemius.php:22461
716
  msgid "Activate %s features"
717
+ msgstr "Aktiver funktioner i %s"
718
 
719
+ #: includes/class-freemius.php:22474
720
  msgid "Please follow these steps to complete the upgrade"
721
  msgstr "Følg venligst disse trin for at færdiggøre opgraderingen"
722
 
723
+ #: includes/class-freemius.php:22478
724
  msgid "Download the latest %s version"
725
  msgstr "Download den seneste version af %s"
726
 
727
+ #: includes/class-freemius.php:22482
728
  msgid "Upload and activate the downloaded version"
729
  msgstr "Upload og aktiver den downloadede version"
730
 
731
+ #: includes/class-freemius.php:22484
732
  msgid "How to upload and activate?"
733
  msgstr "Upload og aktivering, hvordan?"
734
 
735
+ #: includes/class-freemius.php:22618
736
+ msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
737
+ msgstr "%sClick here%s to choose the sites where you'd like to activate the license on."
 
 
738
 
739
+ #: includes/class-freemius.php:22779
740
  msgid "Auto installation only works for opted-in users."
741
  msgstr "Auto-installation fungerer kun for tilmeldte brugere."
742
 
743
+ #: includes/class-freemius.php22789, includes/class-freemius.php22822,
744
+ #: includes/class-fs-plugin-updater.php1212,
745
+ #: includes/class-fs-plugin-updater.php:1226
746
  msgid "Invalid module ID."
747
  msgstr "Ugyldigt modul-ID."
748
 
749
+ #: includes/class-freemius.php22798, includes/class-fs-plugin-updater.php:1248
750
  msgid "Premium version already active."
751
  msgstr "Premium version allerede aktiv."
752
 
753
+ #: includes/class-freemius.php:22805
754
  msgid "You do not have a valid license to access the premium version."
755
  msgstr "Du har ikke en gyldig licens til at benytte premium-versionen."
756
 
757
+ #: includes/class-freemius.php:22812
758
+ msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
759
+ msgstr "Plugin is a \"Serviceware\" which means it does not have a premium code version."
 
 
760
 
761
+ #: includes/class-freemius.php22830, includes/class-fs-plugin-updater.php:1247
762
  msgid "Premium add-on version already installed."
763
  msgstr "Premium tilføjelse er allerede installeret."
764
 
765
+ #: includes/class-freemius.php:23180
766
  msgid "View paid features"
767
  msgstr "Vis betalte features"
768
 
769
+ #: includes/class-freemius.php:23502
770
  msgid "Thank you so much for using %s and its add-ons!"
771
+ msgstr "Mange tak for, at du benytter %s og tilhørende add-ons!"
772
 
773
+ #: includes/class-freemius.php:23503
774
  msgid "Thank you so much for using %s!"
775
  msgstr "Tak fordi du benytter %s!"
776
 
777
+ #: includes/class-freemius.php:23509
778
+ msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
 
 
779
  msgstr "Du er allerede tilmeldt vores brugssporing, hvilket hjælper os med at forbedre %s."
780
 
781
+ #: includes/class-freemius.php:23513
782
  msgid "Thank you so much for using our products!"
783
  msgstr "Mange tak for at benytte vores produkter!"
784
 
785
+ #: includes/class-freemius.php:23514
786
+ msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
 
 
787
  msgstr "Du er allerede tilmeldt vores brugssporing, hvilket hjælper os med at forbedre dem."
788
 
789
+ #: includes/class-freemius.php:23533
790
  msgid "%s and its add-ons"
791
  msgstr "%s og tilføjelser"
792
 
793
+ #: includes/class-freemius.php:23542
794
  msgid "Products"
795
  msgstr "Produkter"
796
 
797
+ #: includes/class-freemius.php23549, templates/connect.php:272
798
  msgid "Yes"
799
  msgstr "Ja"
800
 
801
+ #: includes/class-freemius.php23550, templates/connect.php:273
802
  msgid "send me security & feature updates, educational content and offers."
803
  msgstr "send mig sikkerheds- og feature-opdateringer, informativt indhold og tilbud."
804
 
805
+ #: includes/class-freemius.php23551, templates/connect.php:278
806
  msgid "No"
807
  msgstr "Nej"
808
 
809
+ #: includes/class-freemius.php23553, templates/connect.php:280
810
+ msgid "do %sNOT%s send me security & feature updates, educational content and offers."
 
 
811
  msgstr "send %sIKKE%s sikkerheds- og feature-opdateringer, informativt indhold og tilbud."
812
 
813
+ #: includes/class-freemius.php:23563
814
+ msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
815
+ msgstr "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
 
 
 
816
 
817
+ #: includes/class-freemius.php23565, templates/connect.php:287
818
+ msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
 
 
819
  msgstr "Lad os vide, om vi har lov til at kontakte dig med sikkerheds- og feature-opdateringer, informativt indhold og lejlighedsvise tilbud:"
820
 
821
+ #: includes/class-freemius.php:23847
822
  msgid "License key is empty."
823
  msgstr "Licensnøglen er tom."
824
 
825
+ #: includes/class-fs-plugin-updater.php206,
826
  #: templates/forms/premium-versions-upgrade-handler.php:57
827
  msgid "Renew license"
828
  msgstr "Forny licens"
829
 
830
+ #: includes/class-fs-plugin-updater.php211,
831
  #: templates/forms/premium-versions-upgrade-handler.php:58
832
  msgid "Buy license"
833
+ msgstr "Køb licens"
834
 
835
+ #: includes/class-fs-plugin-updater.php321,
836
+ #: includes/class-fs-plugin-updater.php:354
837
  msgid "There is a %s of %s available."
838
+ msgstr "There is a %s of %s available."
839
 
840
+ #: includes/class-fs-plugin-updater.php323,
841
+ #: includes/class-fs-plugin-updater.php:359
842
  msgid "new Beta version"
843
+ msgstr "ny Beta-version"
844
 
845
+ #: includes/class-fs-plugin-updater.php324,
846
+ #: includes/class-fs-plugin-updater.php:360
847
  msgid "new version"
848
+ msgstr "ny version"
849
 
850
+ #: includes/class-fs-plugin-updater.php:383
851
  msgid "Important Upgrade Notice:"
852
+ msgstr "Vigtig meddelelse til opgradering:"
853
 
854
+ #: includes/class-fs-plugin-updater.php:1277
855
  msgid "Installing plugin: %s"
856
  msgstr "Installerer plugin: %s"
857
 
858
+ #: includes/class-fs-plugin-updater.php:1318
859
  msgid "Unable to connect to the filesystem. Please confirm your credentials."
860
+ msgstr "Unable to connect to the filesystem. Please confirm your credentials."
861
 
862
+ #: includes/class-fs-plugin-updater.php:1500
863
+ msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
864
+ msgstr "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
 
 
865
 
866
+ #: includes/fs-plugin-info-dialog.php:535
867
  msgid "Purchase More"
868
+ msgstr "Køb flere"
869
 
870
+ #: includes/fs-plugin-info-dialog.php536,
871
+ #: templates/account/partials/addon.php:385
872
  msgctxt "verb"
873
  msgid "Purchase"
874
  msgstr "Køb"
875
 
876
+ #: includes/fs-plugin-info-dialog.php:540
877
  msgid "Start my free %s"
878
  msgstr "Start min gratis %s"
879
 
880
+ #: includes/fs-plugin-info-dialog.php:738
881
  msgid "Install Free Version Update Now"
882
  msgstr "Installer opdatering til gratis version nu"
883
 
884
+ #: includes/fs-plugin-info-dialog.php739, templates/account.php:560
885
  msgid "Install Update Now"
886
  msgstr "Installer opdatering nu"
887
 
888
+ #: includes/fs-plugin-info-dialog.php:748
889
  msgid "Install Free Version Now"
890
  msgstr "Installer gratis version nu"
891
 
892
+ #: includes/fs-plugin-info-dialog.php749, templates/add-ons.php323,
893
  #: templates/auto-installation.php111,
894
+ #: templates/account/partials/addon.php365,
895
+ #: templates/account/partials/addon.php:418
896
  msgid "Install Now"
897
  msgstr "Installer nu"
898
 
899
+ #: includes/fs-plugin-info-dialog.php:765
900
  msgctxt "as download latest version"
901
  msgid "Download Latest Free Version"
902
  msgstr "Download seneste gratis version"
903
 
904
+ #: includes/fs-plugin-info-dialog.php766, templates/account.php91,
905
+ #: templates/add-ons.php37, templates/account/partials/addon.php:25
906
  msgctxt "as download latest version"
907
  msgid "Download Latest"
908
  msgstr "Download seneste"
909
 
910
+ #: includes/fs-plugin-info-dialog.php781, templates/add-ons.php329,
911
+ #: templates/account/partials/addon.php356,
912
+ #: templates/account/partials/addon.php:412
913
  msgid "Activate this add-on"
914
  msgstr "Aktiver denne tilføjelse"
915
 
916
+ #: includes/fs-plugin-info-dialog.php783, templates/connect.php:418
917
  msgid "Activate Free Version"
918
  msgstr "Aktiver gratis version"
919
 
920
+ #: includes/fs-plugin-info-dialog.php784, templates/account.php115,
921
+ #: templates/add-ons.php330, templates/account/partials/addon.php:48
922
  msgid "Activate"
923
  msgstr "Aktiver"
924
 
925
+ #: includes/fs-plugin-info-dialog.php:994
926
  msgctxt "Plugin installer section title"
927
  msgid "Description"
928
  msgstr "Beskrivelse"
929
 
930
+ #: includes/fs-plugin-info-dialog.php:995
931
  msgctxt "Plugin installer section title"
932
  msgid "Installation"
933
  msgstr "Installering"
934
 
935
+ #: includes/fs-plugin-info-dialog.php:996
936
  msgctxt "Plugin installer section title"
937
  msgid "FAQ"
938
  msgstr "FAQ"
939
 
940
+ #: includes/fs-plugin-info-dialog.php997,
941
  #: templates/plugin-info/description.php:55
942
  msgid "Screenshots"
943
  msgstr "Skærmbilleder"
944
 
945
+ #: includes/fs-plugin-info-dialog.php:998
946
  msgctxt "Plugin installer section title"
947
  msgid "Changelog"
948
  msgstr "Ændringslog"
949
 
950
+ #: includes/fs-plugin-info-dialog.php:999
951
  msgctxt "Plugin installer section title"
952
  msgid "Reviews"
953
  msgstr "Anmeldelser"
954
 
955
+ #: includes/fs-plugin-info-dialog.php:1000
956
  msgctxt "Plugin installer section title"
957
  msgid "Other Notes"
958
  msgstr "Andre noter"
959
 
960
+ #: includes/fs-plugin-info-dialog.php:1015
961
  msgctxt "Plugin installer section title"
962
  msgid "Features & Pricing"
963
  msgstr "Funktioner og priser"
964
 
965
+ #: includes/fs-plugin-info-dialog.php:1025
966
  msgid "Plugin Install"
967
  msgstr "Plugin-installering"
968
 
969
+ #: includes/fs-plugin-info-dialog.php:1097
970
  msgctxt "e.g. Professional Plan"
971
  msgid "%s Plan"
972
  msgstr "%s Plan"
973
 
974
+ #: includes/fs-plugin-info-dialog.php:1123
975
  msgctxt "e.g. the best product"
976
  msgid "Best"
977
  msgstr "Bedste"
978
 
979
+ #: includes/fs-plugin-info-dialog.php1129,
980
+ #: includes/fs-plugin-info-dialog.php:1149
981
  msgctxt "as every month"
982
  msgid "Monthly"
983
  msgstr "Månedligt"
984
 
985
+ #: includes/fs-plugin-info-dialog.php:1132
986
  msgctxt "as once a year"
987
  msgid "Annual"
988
  msgstr "Årligt"
989
 
990
+ #: includes/fs-plugin-info-dialog.php:1135
991
  msgid "Lifetime"
992
  msgstr "Livstid"
993
 
994
+ #: includes/fs-plugin-info-dialog.php1149,
995
+ #: includes/fs-plugin-info-dialog.php1151,
996
+ #: includes/fs-plugin-info-dialog.php:1153
997
  msgctxt "e.g. billed monthly"
998
  msgid "Billed %s"
999
  msgstr "Faktureret %s"
1000
 
1001
+ #: includes/fs-plugin-info-dialog.php:1151
1002
  msgctxt "as once a year"
1003
  msgid "Annually"
1004
  msgstr "Årligt"
1005
 
1006
+ #: includes/fs-plugin-info-dialog.php:1153
1007
  msgctxt "as once a year"
1008
  msgid "Once"
1009
  msgstr "Engangsbeløb"
1010
 
1011
+ #: includes/fs-plugin-info-dialog.php:1159
1012
  msgid "Single Site License"
1013
+ msgstr "Enkelt site licens"
1014
 
1015
+ #: includes/fs-plugin-info-dialog.php:1161
1016
  msgid "Unlimited Licenses"
1017
  msgstr "Ubegrænsede licenser"
1018
 
1019
+ #: includes/fs-plugin-info-dialog.php:1163
1020
  msgid "Up to %s Sites"
1021
  msgstr "Op til %s websteder"
1022
 
1023
+ #: includes/fs-plugin-info-dialog.php1173,
1024
  #: templates/plugin-info/features.php:82
1025
  msgctxt "as monthly period"
1026
  msgid "mo"
1027
  msgstr "md"
1028
 
1029
+ #: includes/fs-plugin-info-dialog.php1180,
1030
  #: templates/plugin-info/features.php:80
1031
  msgctxt "as annual period"
1032
  msgid "year"
1033
  msgstr "år"
1034
 
1035
+ #: includes/fs-plugin-info-dialog.php:1234
1036
  msgctxt "noun"
1037
  msgid "Price"
1038
  msgstr "Pris"
1039
 
1040
+ #: includes/fs-plugin-info-dialog.php:1282
1041
  msgid "Save %s"
1042
  msgstr "Spar %s"
1043
 
1044
+ #: includes/fs-plugin-info-dialog.php:1292
1045
  msgid "No commitment for %s - cancel anytime"
1046
  msgstr "Ingen bindinger ved %s - annuller når som helst"
1047
 
1048
+ #: includes/fs-plugin-info-dialog.php:1295
1049
  msgid "After your free %s, pay as little as %s"
1050
  msgstr "Efter din gratis %s er prisen kun %s"
1051
 
1052
+ #: includes/fs-plugin-info-dialog.php:1306
1053
  msgid "Details"
1054
  msgstr "Detaljer"
1055
 
1056
+ #: includes/fs-plugin-info-dialog.php1310, templates/account.php102,
1057
+ #: templates/debug.php203, templates/debug.php240, templates/debug.php457,
1058
  #: templates/account/partials/addon.php:36
1059
  msgctxt "product version"
1060
  msgid "Version"
1061
  msgstr "Version"
1062
 
1063
+ #: includes/fs-plugin-info-dialog.php:1317
1064
  msgctxt "as the plugin author"
1065
  msgid "Author"
1066
  msgstr "Forfatter"
1067
 
1068
+ #: includes/fs-plugin-info-dialog.php:1324
1069
  msgid "Last Updated"
1070
  msgstr "Senest opdateret"
1071
 
1072
+ #: includes/fs-plugin-info-dialog.php1329, templates/account.php:468
1073
  msgctxt "x-ago"
1074
  msgid "%s ago"
1075
  msgstr "%s siden"
1076
 
1077
+ #: includes/fs-plugin-info-dialog.php:1338
1078
  msgid "Requires WordPress Version"
1079
  msgstr "Kræver WordPress-version"
1080
 
1081
+ #: includes/fs-plugin-info-dialog.php:1339
1082
  msgid "%s or higher"
1083
  msgstr "%s eller højere"
1084
 
1085
+ #: includes/fs-plugin-info-dialog.php:1346
1086
  msgid "Compatible up to"
1087
  msgstr "Kompatibel op til"
1088
 
1089
+ #: includes/fs-plugin-info-dialog.php:1354
1090
  msgid "Downloaded"
1091
  msgstr "Downloadet"
1092
 
1093
+ #: includes/fs-plugin-info-dialog.php:1358
1094
  msgid "%s time"
1095
  msgstr "%s gang"
1096
 
1097
+ #: includes/fs-plugin-info-dialog.php:1360
1098
  msgid "%s times"
1099
  msgstr "%s gange"
1100
 
1101
+ #: includes/fs-plugin-info-dialog.php:1370
1102
  msgid "WordPress.org Plugin Page"
1103
  msgstr "WordPress.org Plugin-side"
1104
 
1105
+ #: includes/fs-plugin-info-dialog.php:1378
1106
  msgid "Plugin Homepage"
1107
  msgstr "Plugin-websted"
1108
 
1109
+ #: includes/fs-plugin-info-dialog.php1386,
1110
+ #: includes/fs-plugin-info-dialog.php:1468
1111
  msgid "Donate to this plugin"
1112
  msgstr "Donér til dette plugin"
1113
 
1114
+ #: includes/fs-plugin-info-dialog.php:1393
1115
  msgid "Average Rating"
1116
  msgstr "Gennemsnitlig vurdering"
1117
 
1118
+ #: includes/fs-plugin-info-dialog.php:1400
1119
  msgid "based on %s"
1120
  msgstr "baseret på %s"
1121
 
1122
+ #: includes/fs-plugin-info-dialog.php:1404
1123
  msgid "%s rating"
1124
  msgstr "%s vurdering"
1125
 
1126
+ #: includes/fs-plugin-info-dialog.php:1406
1127
  msgid "%s ratings"
1128
  msgstr "%s vurderinger"
1129
 
1130
+ #: includes/fs-plugin-info-dialog.php:1421
1131
  msgid "%s star"
1132
  msgstr "%s stjerne"
1133
 
1134
+ #: includes/fs-plugin-info-dialog.php:1423
1135
  msgid "%s stars"
1136
  msgstr "%s stjerner"
1137
 
1138
+ #: includes/fs-plugin-info-dialog.php:1434
1139
  msgid "Click to see reviews that provided a rating of %s"
1140
+ msgstr "Click to see reviews that provided a rating of %s"
1141
 
1142
+ #: includes/fs-plugin-info-dialog.php:1447
1143
  msgid "Contributors"
1144
  msgstr "Bidragsydere"
1145
 
1146
+ #: includes/fs-plugin-info-dialog.php1476,
1147
+ #: includes/fs-plugin-info-dialog.php:1478
1148
  msgid "Warning"
1149
  msgstr "Advarsel"
1150
 
1151
+ #: includes/fs-plugin-info-dialog.php:1476
1152
+ msgid "This plugin has not been tested with your current version of WordPress."
 
1153
  msgstr "Dette plugin er ikke blevet testet med din nuværende version af WordPress."
1154
 
1155
+ #: includes/fs-plugin-info-dialog.php:1478
1156
+ msgid "This plugin has not been marked as compatible with your version of WordPress."
1157
+ msgstr "Dette plugin er ikke markeret som kompatibel med din nuværende version af WordPress."
 
 
1158
 
1159
+ #: includes/fs-plugin-info-dialog.php:1497
1160
  msgid "Paid add-on must be deployed to Freemius."
1161
+ msgstr "Paid add-on must be deployed to Freemius."
1162
 
1163
+ #: includes/fs-plugin-info-dialog.php:1498
1164
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1165
+ msgstr "Add-on must be deployed to WordPress.org or Freemius."
1166
 
1167
+ #: includes/fs-plugin-info-dialog.php:1519
1168
  msgid "Newer Version (%s) Installed"
1169
  msgstr "Nyere version (%s) installeret"
1170
 
1171
+ #: includes/fs-plugin-info-dialog.php:1520
1172
  msgid "Newer Free Version (%s) Installed"
1173
  msgstr "Nyere gratis version (%s) installeret"
1174
 
1175
+ #: includes/fs-plugin-info-dialog.php:1527
1176
  msgid "Latest Version Installed"
1177
  msgstr "Seneste version installeret"
1178
 
1179
+ #: includes/fs-plugin-info-dialog.php:1528
1180
  msgid "Latest Free Version Installed"
1181
  msgstr "Seneste gratis version installeret"
1182
 
1183
+ #: templates/account.php92, templates/forms/subscription-cancellation.php96,
1184
  #: templates/account/partials/addon.php26,
1185
+ #: templates/account/partials/site.php:311
1186
  msgid "Downgrading your plan"
1187
+ msgstr "Nedgraderer din plan"
1188
 
1189
+ #: templates/account.php93, templates/forms/subscription-cancellation.php97,
1190
  #: templates/account/partials/addon.php27,
1191
+ #: templates/account/partials/site.php:312
1192
  msgid "Cancelling the subscription"
1193
+ msgstr "Annullerer abonnementet"
1194
 
1195
  #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
1196
  #. subscription'
1197
+ #: templates/account.php95, templates/forms/subscription-cancellation.php99,
1198
+ #: templates/account/partials/site.php:314
1199
+ msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1200
+ msgstr "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
 
1201
 
1202
+ #: templates/account.php96, templates/forms/subscription-cancellation.php100,
1203
  #: templates/account/partials/addon.php30,
1204
+ #: templates/account/partials/site.php:315
1205
+ msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1206
+ msgstr "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
 
 
 
 
1207
 
1208
+ #: templates/account.php97, templates/forms/subscription-cancellation.php106,
1209
  #: templates/account/partials/addon.php:31
1210
+ msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1211
+ msgstr "Cancelling the trial will immediately block access to all premium features. Are you sure?"
 
 
1212
 
1213
+ #: templates/account.php98, templates/forms/subscription-cancellation.php101,
1214
  #: templates/account/partials/addon.php32,
1215
+ #: templates/account/partials/site.php:316
1216
+ msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1217
+ msgstr "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
 
 
1218
 
1219
+ #: templates/account.php99, templates/forms/subscription-cancellation.php102,
1220
  #: templates/account/partials/addon.php33,
1221
+ #: templates/account/partials/site.php:317
1222
+ msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1223
+ msgstr "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
 
 
1224
 
1225
  #. translators: %s: Plan title (e.g. "Professional")
1226
+ #: templates/account.php101,
1227
  #: templates/account/partials/activate-license-button.php31,
1228
  #: templates/account/partials/addon.php:35
1229
  msgid "Activate %s Plan"
1230
  msgstr "Aktiver %s plan"
1231
 
1232
  #. translators: %s: Time period (e.g. Auto renews in "2 months")
1233
+ #: templates/account.php104, templates/account/partials/addon.php38,
1234
+ #: templates/account/partials/site.php:291
1235
  msgid "Auto renews in %s"
1236
  msgstr "Auto-fornyer om %s"
1237
 
1238
  #. translators: %s: Time period (e.g. Expires in "2 months")
1239
+ #: templates/account.php106, templates/account/partials/addon.php40,
1240
+ #: templates/account/partials/site.php:293
1241
  msgid "Expires in %s"
1242
  msgstr "Udløber om %s"
1243
 
1244
+ #: templates/account.php:107
1245
  msgctxt "as synchronize license"
1246
  msgid "Sync License"
1247
  msgstr "Synkroniser licens"
1248
 
1249
+ #: templates/account.php108, templates/account/partials/addon.php:41
1250
  msgid "Cancel Trial"
1251
  msgstr "Annuller prøveperiode"
1252
 
1253
+ #: templates/account.php109, templates/account/partials/addon.php:42
1254
  msgid "Change Plan"
1255
  msgstr "Skift plan"
1256
 
1257
+ #: templates/account.php110, templates/account/partials/addon.php:43
1258
  msgctxt "verb"
1259
  msgid "Upgrade"
1260
  msgstr "Opgrader"
1261
 
1262
+ #: templates/account.php112, templates/account/partials/addon.php45,
1263
+ #: templates/account/partials/site.php:318
1264
  msgctxt "verb"
1265
  msgid "Downgrade"
1266
  msgstr "Nedgrader"
1267
 
1268
+ #: templates/account.php114, templates/add-ons.php246,
1269
  #: templates/plugin-info/features.php72,
1270
+ #: templates/account/partials/addon.php47,
1271
+ #: templates/account/partials/site.php:33
1272
  msgid "Free"
1273
  msgstr "Gratis"
1274
 
1275
+ #: templates/account.php116, templates/debug.php373,
1276
+ #: includes/customizer/class-fs-customizer-upsell-control.php110,
1277
+ #: templates/account/partials/addon.php:49
1278
  msgctxt "as product pricing plan"
1279
  msgid "Plan"
1280
  msgstr "Plan"
1281
 
1282
+ #: templates/account.php:117
1283
  msgid "Bundle Plan"
1284
+ msgstr "Bundle Plan"
1285
 
1286
+ #: templates/account.php:191
1287
  msgid "Free Trial"
1288
  msgstr "Gratis prøveperiode"
1289
 
1290
+ #: templates/account.php:202
1291
  msgid "Account Details"
1292
  msgstr "Kontodetaljer"
1293
 
1294
+ #: templates/account.php209, templates/forms/data-debug-mode.php:33
1295
+ msgid "Start Debug"
1296
+ msgstr "Start Debug"
1297
+
1298
+ #: templates/account.php:211
1299
+ msgid "Stop Debug"
1300
+ msgstr "Stop Debug"
1301
+
1302
+ #: templates/account.php:218
1303
  msgid "Billing & Invoices"
1304
+ msgstr "Fakturering"
1305
 
1306
+ #: templates/account.php:229
1307
+ msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1308
+ msgstr "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
 
 
 
 
1309
 
1310
+ #: templates/account.php:231
1311
+ msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1312
+ msgstr "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
 
 
1313
 
1314
+ #: templates/account.php:234
1315
  msgid "Delete Account"
1316
  msgstr "Slet konto"
1317
 
1318
+ #: templates/account.php246, templates/account/partials/addon.php231,
1319
  #: templates/account/partials/deactivate-license-button.php:35
1320
  msgid "Deactivate License"
1321
  msgstr "Deaktiver licens"
1322
 
1323
+ #: templates/account.php269, templates/forms/subscription-cancellation.php:125
1324
  msgid "Are you sure you want to proceed?"
1325
  msgstr "Er du sikker på, du vil fortsætte?"
1326
 
1327
+ #: templates/account.php269, templates/account/partials/addon.php:255
1328
  msgid "Cancel Subscription"
1329
  msgstr "Annuller abonnement"
1330
 
1331
+ #: templates/account.php298, templates/account/partials/addon.php:340
1332
  msgctxt "as synchronize"
1333
  msgid "Sync"
1334
  msgstr "Synkroniser"
1335
 
1336
+ #: templates/account.php313, templates/debug.php:507
1337
  msgid "Name"
1338
  msgstr "Navn"
1339
 
1340
+ #: templates/account.php319, templates/debug.php:508
1341
  msgid "Email"
1342
  msgstr "E-mail"
1343
 
1344
+ #: templates/account.php326, templates/debug.php371, templates/debug.php:557
1345
  msgid "User ID"
1346
  msgstr "Bruger-ID"
1347
 
1348
+ #: templates/account.php344, templates/account.php637,
1349
+ #: templates/account.php682, templates/debug.php238, templates/debug.php365,
1350
+ #: templates/debug.php454, templates/debug.php506, templates/debug.php555,
1351
+ #: templates/debug.php632, templates/account/payments.php35,
1352
  #: templates/debug/logger.php:21
1353
  msgid "ID"
1354
  msgstr "ID"
1355
 
1356
+ #: templates/account.php:351
1357
  msgid "Site ID"
1358
  msgstr "Websteds-ID"
1359
 
1360
+ #: templates/account.php:354
1361
  msgid "No ID"
1362
  msgstr "Intet ID"
1363
 
1364
+ #: templates/account.php359, templates/debug.php245, templates/debug.php374,
1365
+ #: templates/debug.php458, templates/debug.php510,
1366
+ #: templates/account/partials/site.php:227
1367
  msgid "Public Key"
1368
  msgstr "Offentlig nøgle"
1369
 
1370
+ #: templates/account.php365, templates/debug.php375, templates/debug.php459,
1371
+ #: templates/debug.php511, templates/account/partials/site.php:239
1372
  msgid "Secret Key"
1373
  msgstr "Privat nøgle"
1374
 
1375
+ #: templates/account.php:368
1376
  msgctxt "as secret encryption key missing"
1377
  msgid "No Secret"
1378
  msgstr "Ingen privat nøgle"
1379
 
1380
+ #: templates/account.php395, templates/account/partials/site.php120,
1381
+ #: templates/account/partials/site.php:122
1382
  msgid "Trial"
1383
  msgstr "Prøveperiode"
1384
 
1385
+ #: templates/account.php422, templates/debug.php562,
1386
+ #: templates/account/partials/site.php:260
1387
  msgid "License Key"
1388
  msgstr "Licensnøgle"
1389
 
1390
+ #: templates/account.php:453
1391
  msgid "Join the Beta program"
1392
+ msgstr "Deltag i Beta-programmet"
1393
 
1394
+ #: templates/account.php:459
1395
  msgid "not verified"
1396
  msgstr "ikke verificeret"
1397
 
1398
+ #: templates/account.php468, templates/account/partials/addon.php:190
1399
  msgid "Expired"
1400
  msgstr "Udløbet"
1401
 
1402
+ #: templates/account.php:528
1403
  msgid "Premium version"
1404
  msgstr "Premium version"
1405
 
1406
+ #: templates/account.php:530
1407
  msgid "Free version"
1408
  msgstr "Gratis version"
1409
 
1410
+ #: templates/account.php:542
1411
  msgid "Verify Email"
1412
  msgstr "Verificer e-mail"
1413
 
1414
+ #: templates/account.php:553
1415
  msgid "Download %s Version"
1416
  msgstr "Download 1%s version"
1417
 
1418
+ #: templates/account.php568, templates/account.php820,
1419
+ #: templates/account/partials/site.php248,
1420
+ #: templates/account/partials/site.php:270
1421
  msgctxt "verb"
1422
  msgid "Show"
1423
  msgstr "Vis"
1424
 
1425
+ #: templates/account.php:583
1426
  msgid "What is your %s?"
1427
  msgstr "Angiv venligst %s?"
1428
 
1429
+ #: templates/account.php591, templates/account/billing.php:21
1430
  msgctxt "verb"
1431
  msgid "Edit"
1432
  msgstr "Rediger"
1433
 
1434
+ #: templates/account.php:616
1435
  msgid "Sites"
1436
  msgstr "Websteder"
1437
 
1438
+ #: templates/account.php:629
1439
  msgid "Search by address"
1440
  msgstr "Søg efter adresse"
1441
 
1442
+ #: templates/account.php638, templates/debug.php:368
1443
  msgid "Address"
1444
  msgstr "Adresse"
1445
 
1446
+ #: templates/account.php:639
1447
  msgid "License"
1448
  msgstr "Licens"
1449
 
1450
+ #: templates/account.php:640
1451
  msgid "Plan"
1452
  msgstr "Plan"
1453
 
1454
+ #: templates/account.php:685
1455
  msgctxt "as software license"
1456
  msgid "License"
1457
  msgstr "Licens"
1458
 
1459
+ #: templates/account.php:814
1460
  msgctxt "verb"
1461
  msgid "Hide"
1462
  msgstr "Skjul"
1463
 
1464
+ #: templates/account.php836, templates/forms/data-debug-mode.php:31
1465
  msgid "Processing"
1466
  msgstr "Arbejder"
1467
 
1468
+ #: templates/account.php:839
1469
  msgid "Get updates for bleeding edge Beta versions of %s."
1470
+ msgstr "Get updates for bleeding edge Beta versions of %s."
1471
 
1472
+ #: templates/account.php:897
1473
  msgid "Cancelling %s"
1474
+ msgstr "Annullerer %s"
1475
 
1476
+ #: templates/account.php897, templates/account.php914,
1477
  #: templates/forms/subscription-cancellation.php27,
1478
  #: templates/forms/deactivation/form.php:133
1479
  msgid "trial"
1480
+ msgstr "prøveperiode"
1481
 
1482
+ #: templates/account.php912, templates/forms/deactivation/form.php:150
1483
  msgid "Cancelling %s..."
1484
+ msgstr "Annullerer %s..."
1485
 
1486
+ #: templates/account.php915, templates/forms/subscription-cancellation.php28,
1487
  #: templates/forms/deactivation/form.php:134
1488
  msgid "subscription"
1489
+ msgstr "abonnement"
1490
 
1491
+ #: templates/account.php:929
1492
+ msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1493
+ msgstr "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
 
 
1494
 
1495
+ #: templates/add-ons.php:38
1496
  msgid "View details"
1497
  msgstr "Vis detaljer"
1498
 
1499
+ #: templates/add-ons.php:48
1500
  msgid "Add Ons for %s"
1501
  msgstr "Tilføjelser til %s"
1502
 
1503
+ #: templates/add-ons.php:58
1504
+ msgid "We couldn't load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1505
+ msgstr "We couldn't load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
 
 
1506
 
1507
+ #: templates/add-ons.php:229
1508
  msgctxt "active add-on"
1509
  msgid "Active"
1510
  msgstr "Aktiv"
1511
 
1512
+ #: templates/add-ons.php:230
1513
  msgctxt "installed add-on"
1514
  msgid "Installed"
1515
+ msgstr "Installeret"
1516
 
1517
+ #: templates/admin-notice.php13, templates/forms/license-activation.php207,
1518
  #: templates/forms/resend-key.php:77
1519
  msgctxt "as close a window"
1520
  msgid "Dismiss"
1529
  msgstr "Automatisk installering"
1530
 
1531
  #: templates/auto-installation.php:93
1532
+ msgid "An automated download and installation of %s (paid version) from %s will start in %s. If you would like to do it manually - click the cancellation button now."
1533
+ msgstr "An automated download and installation of %s (paid version) from %s will start in %s. If you would like to do it manually - click the cancellation button now."
 
 
 
1534
 
1535
  #: templates/auto-installation.php:104
1536
+ msgid "The installation process has started and may take a few minutes to complete. Please wait until it is done - do not refresh this page."
1537
+ msgstr "The installation process has started and may take a few minutes to complete. Please wait until it is done - do not refresh this page."
 
 
1538
 
1539
  #: templates/auto-installation.php:109
1540
  msgid "Cancel Installation"
1546
 
1547
  #: templates/checkout.php:180
1548
  msgid "PCI compliant"
1549
+ msgstr "PCI-kompatibel"
1550
 
1551
  #. translators: %s: name (e.g. Hey John,)
1552
  #: templates/connect.php:112
1566
  msgid "Thanks %s!"
1567
  msgstr "Tak %s!"
1568
 
1569
+ #: templates/connect.php172, templates/forms/license-activation.php:46
1570
  msgid "Agree & Activate License"
1571
  msgstr "Accepter & aktiver licens"
1572
 
1573
  #: templates/connect.php:181
1574
+ msgid "Thanks for purchasing %s! To get started, please enter your license key:"
 
1575
  msgstr "Tak for at købe %s! For at komme i gang, venligst indtast din licensnøgle:"
1576
 
1577
  #: templates/connect.php:188
1578
+ msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s."
1579
+ msgstr " aldrig glip af en vigtig opdatering - tilmeld dig vores sikkerheds- og funktionsopdateringsmeddelelser, uddannelsesindhold, tilbud og ikke-følsom diagnosesporing med %4$s. "
 
 
 
1580
 
1581
  #: templates/connect.php:189
1582
+ msgid "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
1583
+ msgstr " aldrig glip af en vigtig opdatering - tilmeld dig vores sikkerheds- og funktionsopdateringsmeddelelser, uddannelsesindhold, tilbud og ikke-følsom diagnosesporing med %%4$s."
 
 
1584
 
1585
  #: templates/connect.php:195
1586
+ msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
1587
+ msgstr " aldrig glip af en vigtig opdatering - tilmeld dig vores sikkerheds- og funktionsopdateringsmeddelelser, uddannelsesindhold, tilbud og ikke-følsom diagnosesporing med %4$s. Hvis du springer dette over, er det okay! %1$s fungerer stadig fint."
 
 
 
 
1588
 
1589
  #: templates/connect.php:196
1590
+ msgid "Never miss an important update - opt in to our security & feature updates notifications, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
1591
+ msgstr " aldrig glip af en vigtig opdatering - tilmeld dig vores sikkerheds- og funktionsopdateringsmeddelelser, uddannelsesindhold, tilbud og ikke-følsom diagnosesporing med %4$s. Hvis du springer dette over, er det okay! %1$s fungerer stadig fint."
 
 
 
1592
 
1593
  #: templates/connect.php:230
1594
  msgid "We're excited to introduce the Freemius network-level integration."
1595
+ msgstr "We're excited to introduce the Freemius network-level integration."
1596
 
1597
  #: templates/connect.php:233
1598
+ msgid "During the update process we detected %d site(s) that are still pending license activation."
1599
+ msgstr "During the update process we detected %d site(s) that are still pending license activation."
 
 
1600
 
1601
  #: templates/connect.php:235
1602
+ msgid "If you'd like to use the %s on those sites, please enter your license key below and click the activation button."
1603
+ msgstr "If you'd like to use the %s on those sites, please enter your license key below and click the activation button."
 
 
1604
 
1605
  #: templates/connect.php:237
1606
  msgid "%s's paid features"
1607
+ msgstr "%s's betalte features"
1608
 
1609
  #: templates/connect.php:242
1610
+ msgid "Alternatively, you can skip it for now and activate the license later, in your %s's network-level Account page."
1611
+ msgstr "Alternatively, you can skip it for now and activate the license later, in your %s's network-level Account page."
 
 
1612
 
1613
  #: templates/connect.php:244
1614
+ msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
1615
+ msgstr "During the update process we detected %s site(s) in the network that are still pending your attention."
 
 
1616
 
1617
+ #: templates/connect.php253, templates/forms/data-debug-mode.php35,
1618
+ #: templates/forms/license-activation.php:49
1619
  msgid "License key"
1620
  msgstr "Licensnøgle"
1621
 
1622
+ #: templates/connect.php256, templates/forms/license-activation.php:22
1623
  msgid "Can't find your license key?"
1624
  msgstr "Kan du ikke finde din licensnøgle?"
1625
 
1631
 
1632
  #: templates/connect.php:318
1633
  msgid "Delegate to Site Admins"
1634
+ msgstr "Uddeleger til webstedsadministratorer"
1635
 
1636
  #: templates/connect.php:318
1637
+ msgid "If you click it, this decision will be delegated to the sites administrators."
1638
+ msgstr "If you click it, this decision will be delegated to the sites administrators."
 
 
1639
 
1640
  #: templates/connect.php:346
1641
  msgid "Your Profile Overview"
1659
 
1660
  #: templates/connect.php359, templates/connect.php:375
1661
  msgid "Updates, announcements, marketing, no spam"
1662
+ msgstr "Opdateringer, annonceringer, marketing, ingen spam"
1663
 
1664
  #: templates/connect.php:364
1665
  msgid "Current %s Events"
1666
+ msgstr "Current %s Events"
1667
 
1668
  #: templates/connect.php:365
1669
  msgid "Activation, deactivation and uninstall"
1673
  msgid "Newsletter"
1674
  msgstr "Nyhedsbrev"
1675
 
1676
+ #: templates/connect.php391, templates/forms/license-activation.php:41
1677
+ msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
1678
+ msgstr "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
 
 
1679
 
1680
  #: templates/connect.php:396
1681
  msgid "What permissions are being granted?"
1695
 
1696
  #: templates/connect.php:430
1697
  msgid "License Agreement"
1698
+ msgstr "Licensaftale"
1699
 
1700
  #: templates/connect.php:430
1701
  msgid "Terms of Service"
1735
  msgstr "Fejlfinding"
1736
 
1737
  #: templates/debug.php54, templates/debug.php250, templates/debug.php376,
1738
+ #: templates/debug.php:512
1739
  msgid "Actions"
1740
  msgstr "Handlinger"
1741
 
1753
 
1754
  #: templates/debug.php:79
1755
  msgid "Clear Updates Transients"
1756
+ msgstr "Clear Updates Transients"
1757
 
1758
  #: templates/debug.php:86
1759
  msgid "Sync Data From Server"
1761
 
1762
  #: templates/debug.php:95
1763
  msgid "Migrate Options to Network"
1764
+ msgstr "Migrate Options to Network"
1765
 
1766
  #: templates/debug.php:100
1767
  msgid "Load DB Option"
1804
  msgid "Themes"
1805
  msgstr "Temaer"
1806
 
1807
+ #: templates/debug.php239, templates/debug.php370, templates/debug.php456,
1808
  #: templates/debug/scheduled-crons.php:80
1809
  msgid "Slug"
1810
  msgstr "Kortnavn"
1811
 
1812
+ #: templates/debug.php241, templates/debug.php:455
1813
  msgid "Title"
1814
  msgstr "Titel"
1815
 
1842
 
1843
  #: templates/debug.php:322
1844
  msgid "Simulate Trial Promotion"
1845
+ msgstr "Simulate Trial Promotion"
1846
 
1847
  #: templates/debug.php:334
1848
  msgid "Simulate Network Upgrade"
1849
  msgstr "Simuler netværksopgradering"
1850
 
1851
+ #: templates/debug.php:359
1852
  msgid "%s Installs"
1853
  msgstr "%s installeringer"
1854
 
1855
+ #: templates/debug.php:361
1856
  msgctxt "like websites"
1857
  msgid "Sites"
1858
  msgstr "Websteder"
1859
 
1860
+ #: templates/debug.php367, templates/account/partials/site.php:156
1861
  msgid "Blog ID"
1862
  msgstr "Blog-ID"
1863
 
1864
+ #: templates/debug.php:372
1865
+ msgid "License ID"
1866
+ msgstr "License ID"
1867
+
1868
+ #: templates/debug.php436, templates/debug.php535,
1869
+ #: templates/account/partials/addon.php:435
1870
  msgctxt "verb"
1871
  msgid "Delete"
1872
  msgstr "Slet"
1873
 
1874
+ #: templates/debug.php:450
1875
  msgid "Add Ons of module %s"
1876
  msgstr "Tilføjelser til modul %s"
1877
 
1878
+ #: templates/debug.php:502
1879
  msgid "Users"
1880
  msgstr "Brugere"
1881
 
1882
+ #: templates/debug.php:509
1883
  msgid "Verified"
1884
  msgstr "Verificeret"
1885
 
1886
+ #: templates/debug.php:551
1887
  msgid "%s Licenses"
1888
  msgstr "1%s licenser"
1889
 
1890
+ #: templates/debug.php:556
1891
  msgid "Plugin ID"
1892
  msgstr "Plugin-ID"
1893
 
1894
+ #: templates/debug.php:558
1895
  msgid "Plan ID"
1896
  msgstr "Plan-ID"
1897
 
1898
+ #: templates/debug.php:559
1899
  msgid "Quota"
1900
  msgstr "Kvote"
1901
 
1902
+ #: templates/debug.php:560
1903
  msgid "Activated"
1904
  msgstr "Aktiveret"
1905
 
1906
+ #: templates/debug.php:561
1907
  msgid "Blocking"
1908
  msgstr "Blokerer"
1909
 
1910
+ #: templates/debug.php:563
1911
  msgctxt "as expiration date"
1912
  msgid "Expiration"
1913
  msgstr "Udløber"
1914
 
1915
+ #: templates/debug.php:590
1916
  msgid "Debug Log"
1917
  msgstr "Fejlfindingslog"
1918
 
1919
+ #: templates/debug.php:594
1920
  msgid "All Types"
1921
  msgstr "Alle typer"
1922
 
1923
+ #: templates/debug.php:601
1924
  msgid "All Requests"
1925
  msgstr "Alle forespørgsler"
1926
 
1927
+ #: templates/debug.php606, templates/debug.php635,
1928
  #: templates/debug/logger.php:25
1929
  msgid "File"
1930
  msgstr "Fil"
1931
 
1932
+ #: templates/debug.php607, templates/debug.php633,
1933
  #: templates/debug/logger.php:23
1934
  msgid "Function"
1935
  msgstr "Funktion"
1936
 
1937
+ #: templates/debug.php:608
1938
  msgid "Process ID"
1939
  msgstr "Proces-ID"
1940
 
1941
+ #: templates/debug.php:609
1942
  msgid "Logger"
1943
  msgstr "Logger"
1944
 
1945
+ #: templates/debug.php610, templates/debug.php634,
1946
  #: templates/debug/logger.php:24
1947
  msgid "Message"
1948
  msgstr "Besked"
1949
 
1950
+ #: templates/debug.php:612
1951
  msgid "Filter"
1952
  msgstr "Filter"
1953
 
1954
+ #: templates/debug.php:620
1955
  msgid "Download"
1956
  msgstr "Download"
1957
 
1958
+ #: templates/debug.php631, templates/debug/logger.php:22
1959
  msgid "Type"
1960
  msgstr "Type"
1961
 
1962
+ #: templates/debug.php636, templates/debug/logger.php:26
1963
  msgid "Timestamp"
1964
  msgstr "Tidsstempel"
1965
 
1966
  #: templates/secure-https-header.php:28
1967
  msgid "Secure HTTPS %s page, running from an external domain"
1968
+ msgstr "Secure HTTPS %s page, running from an external domain"
1969
 
1970
  #: includes/customizer/class-fs-customizer-support-section.php55,
1971
  #: templates/plugin-info/features.php:43
1984
 
1985
  #: includes/debug/debug-bar-start.php:42
1986
  msgid "Requests"
1987
+ msgstr "Forespørgsler"
1988
 
1989
  #: templates/account/billing.php:22
1990
  msgctxt "verb"
2075
 
2076
  #: templates/debug/api-calls.php:73
2077
  msgid "Body"
2078
+ msgstr "Body"
2079
 
2080
  #: templates/debug/api-calls.php:75
2081
  msgid "Result"
2150
 
2151
  #: templates/forms/affiliation.php:85
2152
  msgid "Apply to become an affiliate"
2153
+ msgstr "Ansøg om at blive en affiliate"
2154
 
2155
  #: templates/forms/affiliation.php:104
2156
+ msgid "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
2157
+ msgstr "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
 
 
2158
 
2159
  #: templates/forms/affiliation.php:119
2160
+ msgid "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information."
2161
+ msgstr "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information."
 
 
2162
 
2163
  #: templates/forms/affiliation.php:122
2164
  msgid "Your affiliation account was temporarily suspended."
2165
+ msgstr "Your affiliation account was temporarily suspended."
2166
 
2167
  #: templates/forms/affiliation.php:125
2168
+ msgid "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days."
2169
+ msgstr "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days."
 
 
 
2170
 
2171
  #: templates/forms/affiliation.php:128
2172
+ msgid "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
2173
+ msgstr "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
 
 
2174
 
2175
  #: templates/forms/affiliation.php:141
2176
  msgid "Like the %s? Become our ambassador and earn cash ;-)"
2177
+ msgstr "Like the %s? Become our ambassador and earn cash ;-)"
2178
 
2179
  #: templates/forms/affiliation.php:142
2180
+ msgid "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
2181
+ msgstr "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
 
 
2182
 
2183
  #: templates/forms/affiliation.php:145
2184
  msgid "Program Summary"
2186
 
2187
  #: templates/forms/affiliation.php:147
2188
  msgid "%s commission when a customer purchases a new license."
2189
+ msgstr "%s commission when a customer purchases a new license."
2190
 
2191
  #: templates/forms/affiliation.php:149
2192
  msgid "Get commission for automated subscription renewals."
2193
+ msgstr "Get commission for automated subscription renewals."
2194
 
2195
  #: templates/forms/affiliation.php:152
2196
+ msgid "%s tracking cookie after the first visit to maximize earnings potential."
2197
+ msgstr "%s tracking cookie after the first visit to maximize earnings potential."
 
2198
 
2199
  #: templates/forms/affiliation.php:155
2200
  msgid "Unlimited commissions."
2201
+ msgstr "Ubegrænset provision."
2202
 
2203
  #: templates/forms/affiliation.php:157
2204
  msgid "%s minimum payout amount."
2205
+ msgstr "%s minimum payout amount."
2206
 
2207
  #: templates/forms/affiliation.php:158
2208
  msgid "Payouts are in USD and processed monthly via PayPal."
2209
+ msgstr "Udbetalinger er i USD og behandles hver måned via PayPal."
2210
 
2211
  #: templates/forms/affiliation.php:159
2212
+ msgid "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
2213
+ msgstr "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
 
 
2214
 
2215
  #: templates/forms/affiliation.php:162
2216
  msgid "Affiliate"
2233
  msgstr "Hvor vil du promovere %s?"
2234
 
2235
  #: templates/forms/affiliation.php:179
2236
+ msgid "Enter the domain of your website or other websites from where you plan to promote the %s."
2237
+ msgstr "Enter the domain of your website or other websites from where you plan to promote the %s."
 
 
2238
 
2239
  #: templates/forms/affiliation.php:181
2240
  msgid "Add another domain"
2265
  msgstr "Websted, e-mail, og statistikker for sociale medier (valgfrit)"
2266
 
2267
  #: templates/forms/affiliation.php:210
2268
+ msgid "Please feel free to provide any relevant website or social media statistics, e.g. monthly unique site visits, number of email subscribers, followers, etc. (we will keep this information confidential)."
2269
+ msgstr "Please feel free to provide any relevant website or social media statistics, e.g. monthly unique site visits, number of email subscribers, followers, etc. (we will keep this information confidential)."
 
 
 
2270
 
2271
  #: templates/forms/affiliation.php:214
2272
  msgid "How will you promote us?"
2273
  msgstr "Hvordan vil du promovere os?"
2274
 
2275
  #: templates/forms/affiliation.php:217
2276
+ msgid "Please provide details on how you intend to promote %s (please be as specific as possible)."
2277
+ msgstr "Please provide details on how you intend to promote %s (please be as specific as possible)."
 
 
2278
 
2279
  #: templates/forms/affiliation.php223, templates/forms/resend-key.php:22
2280
  msgid "Cancel"
2284
  msgid "Become an affiliate"
2285
  msgstr "Bliv en affiliate"
2286
 
2287
+ #: templates/forms/data-debug-mode.php:25
2288
+ msgid "Please enter the license key to enable the debug mode:"
2289
+ msgstr "Please enter the license key to enable the debug mode:"
2290
+
2291
+ #: templates/forms/data-debug-mode.php:27
2292
+ msgid "To enter the debug mode, please enter the secret key of the license owner (UserID = %d), which you can find in your \"My Profile\" section of your User Dashboard:"
2293
+ msgstr "To enter the debug mode, please enter the secret key of the license owner (UserID = %d), which you can find in your \"My Profile\" section of your User Dashboard:"
2294
+
2295
+ #: templates/forms/data-debug-mode.php:32
2296
+ msgid "Submit"
2297
+ msgstr "Submit"
2298
+
2299
+ #: templates/forms/data-debug-mode.php:36
2300
+ msgid "User key"
2301
+ msgstr "User key"
2302
+
2303
+ #: templates/forms/license-activation.php:23
2304
+ msgid "Please enter the license key that you received in the email right after the purchase:"
2305
  msgstr "Indtast licensnøglen, du modtog i e-mailen lige efter købet:"
2306
 
2307
+ #: templates/forms/license-activation.php:28
2308
  msgid "Update License"
2309
  msgstr "Opdater licens"
2310
 
2319
  msgstr "Tilmeld"
2320
 
2321
  #: templates/forms/optout.php:33
2322
+ msgid "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking."
2323
+ msgstr "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking."
 
 
 
2324
 
2325
  #: templates/forms/optout.php:35
2326
+ msgid "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
 
 
2327
  msgstr "Ved at klikke \"Frameld\" vil vi ikke længere sende data fra %s til %s."
2328
 
2329
  #: templates/forms/premium-versions-upgrade-handler.php:40
2332
 
2333
  #: templates/forms/premium-versions-upgrade-handler.php:41
2334
  msgid " %s to access version %s security & feature updates, and support."
2335
+ msgstr " %s to access version %s security & feature updates, and support."
2336
 
2337
  #: templates/forms/premium-versions-upgrade-handler.php:54
2338
  msgid "New Version Available"
2348
  msgstr "Send licensnøgle"
2349
 
2350
  #: templates/forms/resend-key.php:57
2351
+ msgid "Enter the email address you've used for the upgrade below and we will resend you the license key."
 
 
2352
  msgstr "Indtast e-mailadressen, som du benyttede ved opgraderingen, nedenfor og vi vil gensende licensnøglen til dig."
2353
 
2354
  #: templates/forms/subscription-cancellation.php:37
2355
+ msgid "Deactivating or uninstalling the %s will automatically disable the license, which you'll be able to use on another site."
2356
+ msgstr "Deactivating or uninstalling the %s will automatically disable the license, which you'll be able to use on another site."
 
 
2357
 
2358
  #: templates/forms/subscription-cancellation.php:47
2359
+ msgid "In case you are NOT planning on using this %s on this site (or any other site) - would you like to cancel the %s as well?"
2360
+ msgstr "In case you are NOT planning on using this %s on this site (or any other site) - would you like to cancel the %s as well?"
 
 
2361
 
2362
  #: templates/forms/subscription-cancellation.php:52
2363
  msgid "license"
2364
+ msgstr "licens"
2365
 
2366
  #: templates/forms/subscription-cancellation.php:57
2367
+ msgid "Cancel %s - I no longer need any security & feature updates, nor support for %s because I'm not planning to use the %s on this, or any other site."
2368
+ msgstr "Cancel %s - I no longer need any security & feature updates, nor support for %s because I'm not planning to use the %s on this, or any other site."
 
 
2369
 
2370
  #: templates/forms/subscription-cancellation.php:68
2371
+ msgid "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
2372
+ msgstr "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
 
 
 
 
 
 
 
 
 
 
 
 
2373
 
2374
  #: templates/forms/subscription-cancellation.php:103
2375
+ msgid "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
2376
+ msgstr "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
 
 
2377
 
2378
  #: templates/forms/subscription-cancellation.php:136
2379
  msgid "Cancel %s?"
2380
+ msgstr "Annuller %s?"
2381
 
2382
  #: templates/forms/subscription-cancellation.php:143
2383
  msgid "Proceed"
2384
+ msgstr "Fortsæt"
2385
 
2386
  #: templates/forms/subscription-cancellation.php191,
2387
  #: templates/forms/deactivation/form.php:171
2388
  msgid "Cancel %s & Proceed"
2389
+ msgstr "Annuller %s og fortsæt"
2390
 
2391
  #: templates/forms/trial-start.php:22
2392
+ msgid "You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
 
 
2393
  msgstr "Du er 1 klik fra at begynde din %1$s dages gratis prøveperiode af planen %2$s."
2394
 
2395
  #: templates/forms/trial-start.php:28
2396
+ msgid "For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt in with your user and non-sensitive site information, allowing the %s to periodically send data to %s to check for version updates and to validate your trial."
2397
+ msgstr "For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt in with your user and non-sensitive site information, allowing the %s to periodically send data to %s to check for version updates and to validate your trial."
 
 
 
 
2398
 
2399
  #: templates/js/style-premium-theme.php:39
2400
  msgid "Premium"
2402
 
2403
  #: templates/js/style-premium-theme.php:42
2404
  msgid "Beta"
2405
+ msgstr "Beta"
2406
 
2407
  #: templates/partials/network-activation.php:27
2408
  msgid "Activate license on all sites in the network."
2457
  msgid "Last license"
2458
  msgstr "Seneste license"
2459
 
2460
+ #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
2461
+ #. subscription'
2462
+ #: templates/account/partials/addon.php:29
2463
+ msgid "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2464
+ msgstr "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2465
+
2466
+ #: templates/account/partials/addon.php:185
2467
  msgid "Cancelled"
2468
  msgstr "Annulleret"
2469
 
2470
+ #: templates/account/partials/addon.php:195
2471
  msgid "No expiration"
2472
  msgstr "Udløber ikke"
2473
 
2474
+ #: templates/account/partials/site.php:189
2475
  msgid "Owner Name"
2476
  msgstr "Ejer-navn"
2477
 
2478
+ #: templates/account/partials/site.php:201
2479
  msgid "Owner Email"
2480
  msgstr "E-mailadresse for ejer"
2481
 
2482
+ #: templates/account/partials/site.php:213
2483
  msgid "Owner ID"
2484
  msgstr "Ejer-ID"
2485
 
2486
+ #: templates/account/partials/site.php:286
2487
  msgid "Subscription"
2488
  msgstr "Abonnement"
2489
 
2490
  #: templates/forms/deactivation/contact.php:19
2491
+ msgid "Sorry for the inconvenience and we are here to help if you give us a chance."
 
2492
  msgstr "Vi beklager ulejligheden, og vi er her for at hjælpe, hvis du giver os chancen."
2493
 
2494
  #: templates/forms/deactivation/contact.php:22
2509
 
2510
  #: templates/forms/deactivation/form.php:87
2511
  msgid "Quick Feedback"
2512
+ msgstr "Hurtig feedback"
2513
 
2514
  #: templates/forms/deactivation/form.php:91
2515
  msgid "If you have a moment, please let us know why you are %s"
2544
  msgstr "Klik her for at benytte pluginnet anonymt"
2545
 
2546
  #: templates/forms/deactivation/retry-skip.php:23
2547
+ msgid "You might have missed it, but you don't have to share any data and can just %s the opt-in."
 
 
2548
  msgstr "Du har måske overset det, men du behøver ikke at dele data og kan blot %s tilmeldingen."
vendor/freemius/wordpress-sdk/languages/freemius-en.mo CHANGED
Binary file
vendor/freemius/wordpress-sdk/languages/freemius-en.po CHANGED
@@ -19,1382 +19,1398 @@ msgstr ""
19
  "X-Poedit-SearchPathExcluded-0: *.js\n"
20
  "X-Poedit-SourceCharset: UTF-8\n"
21
 
22
- #: includes/class-freemius.php:1838, templates/account.php:769
23
  msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
24
  msgstr "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
25
 
26
- #: includes/class-freemius.php:1845
27
  msgid "Would you like to proceed with the update?"
28
  msgstr "Would you like to proceed with the update?"
29
 
30
- #: includes/class-freemius.php:2053
31
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
32
  msgstr "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
33
 
34
- #: includes/class-freemius.php:2055
35
  msgid "Error"
36
  msgstr "Error"
37
 
38
- #: includes/class-freemius.php:2445
39
  msgid "I found a better %s"
40
  msgstr "I found a better %s"
41
 
42
- #: includes/class-freemius.php:2447
43
  msgid "What's the %s's name?"
44
  msgstr "What's the %s's name?"
45
 
46
- #: includes/class-freemius.php:2453
47
  msgid "It's a temporary %s. I'm just debugging an issue."
48
  msgstr "It's a temporary %s. I'm just debugging an issue."
49
 
50
- #: includes/class-freemius.php:2455
51
  msgid "Deactivation"
52
  msgstr "Deactivation"
53
 
54
- #: includes/class-freemius.php:2456
55
  msgid "Theme Switch"
56
  msgstr "Theme Switch"
57
 
58
- #: includes/class-freemius.php:2465, templates/forms/resend-key.php:24
59
  msgid "Other"
60
  msgstr "Other"
61
 
62
- #: includes/class-freemius.php:2473
63
  msgid "I no longer need the %s"
64
  msgstr "I no longer need the %s"
65
 
66
- #: includes/class-freemius.php:2480
67
  msgid "I only needed the %s for a short period"
68
  msgstr "I only needed the %s for a short period"
69
 
70
- #: includes/class-freemius.php:2486
71
  msgid "The %s broke my site"
72
  msgstr "The %s broke my site"
73
 
74
- #: includes/class-freemius.php:2493
75
  msgid "The %s suddenly stopped working"
76
  msgstr "The %s suddenly stopped working"
77
 
78
- #: includes/class-freemius.php:2503
79
  msgid "I can't pay for it anymore"
80
  msgstr "I can't pay for it anymore"
81
 
82
- #: includes/class-freemius.php:2505
83
  msgid "What price would you feel comfortable paying?"
84
  msgstr "What price would you feel comfortable paying?"
85
 
86
- #: includes/class-freemius.php:2511
87
  msgid "I don't like to share my information with you"
88
  msgstr "I don't like to share my information with you"
89
 
90
- #: includes/class-freemius.php:2532
91
  msgid "The %s didn't work"
92
  msgstr "The %s didn't work"
93
 
94
- #: includes/class-freemius.php:2542
95
  msgid "I couldn't understand how to make it work"
96
  msgstr "I couldn't understand how to make it work"
97
 
98
- #: includes/class-freemius.php:2550
99
  msgid "The %s is great, but I need specific feature that you don't support"
100
  msgstr "The %s is great, but I need specific feature that you don't support"
101
 
102
- #: includes/class-freemius.php:2552
103
  msgid "What feature?"
104
  msgstr "What feature?"
105
 
106
- #: includes/class-freemius.php:2556
107
  msgid "The %s is not working"
108
  msgstr "The %s is not working"
109
 
110
- #: includes/class-freemius.php:2558
111
  msgid "Kindly share what didn't work so we can fix it for future users..."
112
  msgstr "Kindly share what didn't work so we can fix it for future users..."
113
 
114
- #: includes/class-freemius.php:2562
115
  msgid "It's not what I was looking for"
116
  msgstr "It's not what I was looking for"
117
 
118
- #: includes/class-freemius.php:2564
119
  msgid "What you've been looking for?"
120
  msgstr "What you've been looking for?"
121
 
122
- #: includes/class-freemius.php:2568
123
  msgid "The %s didn't work as expected"
124
  msgstr "The %s didn't work as expected"
125
 
126
- #: includes/class-freemius.php:2570
127
  msgid "What did you expect?"
128
  msgstr "What did you expect?"
129
 
130
- #: includes/class-freemius.php:3425, templates/debug.php:20
131
  msgid "Freemius Debug"
132
  msgstr "Freemius Debug"
133
 
134
- #: includes/class-freemius.php:4177
135
  msgid "I don't know what is cURL or how to install it, help me!"
136
  msgstr "I don't know what is cURL or how to install it, help me!"
137
 
138
- #: includes/class-freemius.php:4179
139
  msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
140
  msgstr "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
141
 
142
- #: includes/class-freemius.php:4186
143
  msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
144
  msgstr "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
145
 
146
- #: includes/class-freemius.php:4291
147
  msgid "Yes - do your thing"
148
  msgstr "Yes - do your thing"
149
 
150
- #: includes/class-freemius.php:4296
151
  msgid "No - just deactivate"
152
  msgstr "No - just deactivate"
153
 
154
- #: includes/class-freemius.php:4341, includes/class-freemius.php:4850, includes/class-freemius.php:5999, includes/class-freemius.php:12682, includes/class-freemius.php:16045, includes/class-freemius.php:16133, includes/class-freemius.php:16299, includes/class-freemius.php:18758, includes/class-freemius.php:18768, includes/class-freemius.php:19404, includes/class-freemius.php:20277, includes/class-freemius.php:20392, includes/class-freemius.php:20536, templates/add-ons.php:54
155
  msgctxt "exclamation"
156
  msgid "Oops"
157
  msgstr "Oops"
158
 
159
- #: includes/class-freemius.php:4410
160
  msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
161
  msgstr "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
162
 
163
- #: includes/class-freemius.php:4847
164
  msgctxt "addonX cannot run without pluginY"
165
  msgid "%s cannot run without %s."
166
  msgstr "%s cannot run without %s."
167
 
168
- #: includes/class-freemius.php:4848
169
  msgctxt "addonX cannot run..."
170
  msgid "%s cannot run without the plugin."
171
  msgstr "%s cannot run without the plugin."
172
 
173
- #: includes/class-freemius.php:5020, includes/class-freemius.php:5045, includes/class-freemius.php:19475
174
  msgid "Unexpected API error. Please contact the %s's author with the following error."
175
  msgstr "Unexpected API error. Please contact the %s's author with the following error."
176
 
177
- #: includes/class-freemius.php:5687
178
  msgid "Premium %s version was successfully activated."
179
  msgstr "Premium %s version was successfully activated."
180
 
181
- #: includes/class-freemius.php:5699, includes/class-freemius.php:7567
182
  msgctxt "Used to express elation, enthusiasm, or triumph (especially in electronic communication)."
183
  msgid "W00t"
184
  msgstr "W00t"
185
 
186
- #: includes/class-freemius.php:5714
187
  msgid "You have a %s license."
188
  msgstr "You have a %s license."
189
 
190
- #: includes/class-freemius.php:5718, includes/class-freemius.php:15466, includes/class-freemius.php:15477, includes/class-freemius.php:18669, includes/class-freemius.php:18999, includes/class-freemius.php:19065, includes/class-freemius.php:19229
191
  msgctxt "interjection expressing joy or exuberance"
192
  msgid "Yee-haw"
193
  msgstr "Yee-haw"
194
 
195
- #: includes/class-freemius.php:5982
196
  msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
197
  msgstr "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
198
 
199
- #: includes/class-freemius.php:5986
200
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
201
  msgstr "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
202
 
203
- #: includes/class-freemius.php:5995, templates/add-ons.php:130, templates/account/partials/addon.php:343
204
  msgid "More information about %s"
205
  msgstr "More information about %s"
206
 
207
- #: includes/class-freemius.php:5996
208
  msgid "Purchase License"
209
  msgstr "Purchase License"
210
 
211
- #: includes/class-freemius.php:6931, templates/connect.php:163
212
  msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
213
  msgstr "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
214
 
215
- #: includes/class-freemius.php:6935
216
  msgid "start the trial"
217
  msgstr "start the trial"
218
 
219
- #: includes/class-freemius.php:6936, templates/connect.php:167
220
  msgid "complete the install"
221
  msgstr "complete the install"
222
 
223
- #: includes/class-freemius.php:7049
224
  msgid "You are just one step away - %s"
225
  msgstr "You are just one step away - %s"
226
 
227
- #: includes/class-freemius.php:7052
228
  msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
229
  msgid "Complete \"%s\" Activation Now"
230
  msgstr "Complete \"%s\" Activation Now"
231
 
232
- #: includes/class-freemius.php:7130
233
  msgid "We made a few tweaks to the %s, %s"
234
  msgstr "We made a few tweaks to the %s, %s"
235
 
236
- #: includes/class-freemius.php:7134
237
  msgid "Opt in to make \"%s\" better!"
238
  msgstr "Opt in to make \"%s\" better!"
239
 
240
- #: includes/class-freemius.php:7566
241
  msgid "The upgrade of %s was successfully completed."
242
  msgstr "The upgrade of %s was successfully completed."
243
 
244
- #: includes/class-freemius.php:9728, includes/class-fs-plugin-updater.php:975, includes/class-fs-plugin-updater.php:1170, includes/class-fs-plugin-updater.php:1177, templates/auto-installation.php:32
245
  msgid "Add-On"
246
  msgstr "Add-On"
247
 
248
- #: includes/class-freemius.php:9730, templates/account.php:313, templates/account.php:321, templates/debug.php:361, templates/debug.php:522
249
  msgid "Plugin"
250
  msgstr "Plugin"
251
 
252
- #: includes/class-freemius.php:9731, templates/account.php:314, templates/account.php:322, templates/debug.php:361, templates/debug.php:522, templates/forms/deactivation/form.php:71
253
  msgid "Theme"
254
  msgstr "Theme"
255
 
256
- #: includes/class-freemius.php:12148
257
  msgid "An unknown error has occurred while trying to set the user's beta mode."
258
  msgstr "An unknown error has occurred while trying to set the user's beta mode."
259
 
260
- #: includes/class-freemius.php:12549
261
  msgid "Invalid site details collection."
262
  msgstr "Invalid site details collection."
263
 
264
- #: includes/class-freemius.php:12669
265
  msgid "We couldn't find your email address in the system, are you sure it's the right address?"
266
  msgstr "We couldn't find your email address in the system, are you sure it's the right address?"
267
 
268
- #: includes/class-freemius.php:12671
269
  msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
270
  msgstr "We can't see any active licenses associated with that email address, are you sure it's the right address?"
271
 
272
- #: includes/class-freemius.php:12945
273
  msgid "Account is pending activation."
274
  msgstr "Account is pending activation."
275
 
276
- #: includes/class-freemius.php:13057, templates/forms/premium-versions-upgrade-handler.php:47
277
  msgid "Buy a license now"
278
  msgstr "Buy a license now"
279
 
280
- #: includes/class-freemius.php:13069, templates/forms/premium-versions-upgrade-handler.php:46
281
  msgid "Renew your license now"
282
  msgstr "Renew your license now"
283
 
284
- #: includes/class-freemius.php:13073
285
  msgid "%s to access version %s security & feature updates, and support."
286
  msgstr "%s to access version %s security & feature updates, and support."
287
 
288
- #: includes/class-freemius.php:15448
289
  msgid "%s activation was successfully completed."
290
  msgstr "%s activation was successfully completed."
291
 
292
- #: includes/class-freemius.php:15462
293
  msgid "Your account was successfully activated with the %s plan."
294
  msgstr "Your account was successfully activated with the %s plan."
295
 
296
- #: includes/class-freemius.php:15473, includes/class-freemius.php:19061
297
  msgid "Your trial has been successfully started."
298
  msgstr "Your trial has been successfully started."
299
 
300
- #: includes/class-freemius.php:16043, includes/class-freemius.php:16131, includes/class-freemius.php:16297
301
  msgid "Couldn't activate %s."
302
  msgstr "Couldn't activate %s."
303
 
304
- #: includes/class-freemius.php:16044, includes/class-freemius.php:16132, includes/class-freemius.php:16298
305
  msgid "Please contact us with the following message:"
306
  msgstr "Please contact us with the following message:"
307
 
308
- #: includes/class-freemius.php:16128
309
  msgid "An unknown error has occurred."
310
  msgstr "An unknown error has occurred."
311
 
312
- #: includes/class-freemius.php:16655, includes/class-freemius.php:21409
313
  msgid "Upgrade"
314
  msgstr "Upgrade"
315
 
316
- #: includes/class-freemius.php:16661
317
  msgid "Start Trial"
318
  msgstr "Start Trial"
319
 
320
- #: includes/class-freemius.php:16663
321
  msgid "Pricing"
322
  msgstr "Pricing"
323
 
324
- #: includes/class-freemius.php:16742, includes/class-freemius.php:16744
325
  msgid "Affiliation"
326
  msgstr "Affiliation"
327
 
328
- #: includes/class-freemius.php:16772, includes/class-freemius.php:16774, templates/account.php:177, templates/debug.php:326
329
  msgid "Account"
330
  msgstr "Account"
331
 
332
- #: includes/class-freemius.php:16787, includes/class-freemius.php:16789, includes/customizer/class-fs-customizer-support-section.php:60
333
  msgid "Contact Us"
334
  msgstr "Contact Us"
335
 
336
- #: includes/class-freemius.php:16799, includes/class-freemius.php:16801, includes/class-freemius.php:21423, templates/account.php:105, templates/account/partials/addon.php:45
337
  msgid "Add-Ons"
338
  msgstr "Add-Ons"
339
 
340
- #: includes/class-freemius.php:16835
341
  msgctxt "ASCII arrow left icon"
342
  msgid "&#x2190;"
343
  msgstr "&#x2190;"
344
 
345
- #: includes/class-freemius.php:16835
346
  msgctxt "ASCII arrow right icon"
347
  msgid "&#x27a4;"
348
  msgstr "&#x27a4;"
349
 
350
- #: includes/class-freemius.php:16837, templates/pricing.php:102
351
  msgctxt "noun"
352
  msgid "Pricing"
353
  msgstr "Pricing"
354
 
355
- #: includes/class-freemius.php:17050, includes/customizer/class-fs-customizer-support-section.php:67
356
  msgid "Support Forum"
357
  msgstr "Support Forum"
358
 
359
- #: includes/class-freemius.php:17995
360
  msgid "Your email has been successfully verified - you are AWESOME!"
361
  msgstr "Your email has been successfully verified - you are AWESOME!"
362
 
363
- #: includes/class-freemius.php:17996
364
  msgctxt "a positive response"
365
  msgid "Right on"
366
  msgstr "Right on"
367
 
368
- #: includes/class-freemius.php:18660
 
 
 
 
 
 
 
 
369
  msgid "Your %s Add-on plan was successfully upgraded."
370
  msgstr "Your %s Add-on plan was successfully upgraded."
371
 
372
- #: includes/class-freemius.php:18662
373
  msgid "%s Add-on was successfully purchased."
374
  msgstr "%s Add-on was successfully purchased."
375
 
376
- #: includes/class-freemius.php:18665
377
  msgid "Download the latest version"
378
  msgstr "Download the latest version"
379
 
380
- #: includes/class-freemius.php:18751
381
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
382
  msgstr "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
383
 
384
- #: includes/class-freemius.php:18757, includes/class-freemius.php:19188, includes/class-freemius.php:19277
385
  msgid "Error received from the server:"
386
  msgstr "Error received from the server:"
387
 
388
- #: includes/class-freemius.php:18767
389
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
390
  msgstr "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
391
 
392
- #: includes/class-freemius.php:18961, includes/class-freemius.php:19193, includes/class-freemius.php:19248, includes/class-freemius.php:19351
393
  msgctxt "something somebody says when they are thinking about what you have just said."
394
  msgid "Hmm"
395
  msgstr "Hmm"
396
 
397
- #: includes/class-freemius.php:18974
398
  msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
399
  msgstr "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
400
 
401
- #: includes/class-freemius.php:18975, templates/account.php:107, templates/add-ons.php:191, templates/account/partials/addon.php:47
402
  msgctxt "trial period"
403
  msgid "Trial"
404
  msgstr "Trial"
405
 
406
- #: includes/class-freemius.php:18980
407
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
408
  msgstr "I have upgraded my account but when I try to Sync the License, the plan remains %s."
409
 
410
- #: includes/class-freemius.php:18984, includes/class-freemius.php:19043
411
  msgid "Please contact us here"
412
  msgstr "Please contact us here"
413
 
414
- #: includes/class-freemius.php:18995
415
  msgid "Your plan was successfully activated."
416
  msgstr "Your plan was successfully activated."
417
 
418
- #: includes/class-freemius.php:18996
419
  msgid "Your plan was successfully upgraded."
420
  msgstr "Your plan was successfully upgraded."
421
 
422
- #: includes/class-freemius.php:19013
423
  msgid "Your plan was successfully changed to %s."
424
  msgstr "Your plan was successfully changed to %s."
425
 
426
- #: includes/class-freemius.php:19029
427
  msgid "Your license has expired. You can still continue using the free %s forever."
428
  msgstr "Your license has expired. You can still continue using the free %s forever."
429
 
430
- #: includes/class-freemius.php:19031
431
  msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
432
  msgstr "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
433
 
434
- #: includes/class-freemius.php:19039
435
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
436
  msgstr "Your license has been cancelled. If you think it's a mistake, please contact support."
437
 
438
- #: includes/class-freemius.php:19052
439
  msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
440
  msgstr "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
441
 
442
- #: includes/class-freemius.php:19075
443
  msgid "Your free trial has expired. You can still continue using all our free features."
444
  msgstr "Your free trial has expired. You can still continue using all our free features."
445
 
446
- #: includes/class-freemius.php:19077
447
  msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
448
  msgstr "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
449
 
450
- #: includes/class-freemius.php:19184
451
  msgid "It looks like the license could not be activated."
452
  msgstr "It looks like the license could not be activated."
453
 
454
- #: includes/class-freemius.php:19226
455
  msgid "Your license was successfully activated."
456
  msgstr "Your license was successfully activated."
457
 
458
- #: includes/class-freemius.php:19252
459
  msgid "It looks like your site currently doesn't have an active license."
460
  msgstr "It looks like your site currently doesn't have an active license."
461
 
462
- #: includes/class-freemius.php:19276
463
  msgid "It looks like the license deactivation failed."
464
  msgstr "It looks like the license deactivation failed."
465
 
466
- #: includes/class-freemius.php:19304
467
  msgid "Your license was successfully deactivated, you are back to the %s plan."
468
  msgstr "Your license was successfully deactivated, you are back to the %s plan."
469
 
470
- #: includes/class-freemius.php:19305
471
  msgid "O.K"
472
  msgstr "O.K"
473
 
474
- #: includes/class-freemius.php:19358
475
  msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
476
  msgstr "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
477
 
478
- #: includes/class-freemius.php:19367
479
  msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
480
  msgstr "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
481
 
482
- #: includes/class-freemius.php:19409
483
  msgid "You are already running the %s in a trial mode."
484
  msgstr "You are already running the %s in a trial mode."
485
 
486
- #: includes/class-freemius.php:19420
487
  msgid "You already utilized a trial before."
488
  msgstr "You already utilized a trial before."
489
 
490
- #: includes/class-freemius.php:19434
491
  msgid "Plan %s do not exist, therefore, can't start a trial."
492
  msgstr "Plan %s do not exist, therefore, can't start a trial."
493
 
494
- #: includes/class-freemius.php:19445
495
  msgid "Plan %s does not support a trial period."
496
  msgstr "Plan %s does not support a trial period."
497
 
498
- #: includes/class-freemius.php:19456
499
  msgid "None of the %s's plans supports a trial period."
500
  msgstr "None of the %s's plans supports a trial period."
501
 
502
- #: includes/class-freemius.php:19506
503
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
504
  msgstr "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
505
 
506
- #: includes/class-freemius.php:19542
507
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
508
  msgstr "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
509
 
510
- #: includes/class-freemius.php:19561
511
  msgid "Your %s free trial was successfully cancelled."
512
  msgstr "Your %s free trial was successfully cancelled."
513
 
514
- #: includes/class-freemius.php:19877
515
  msgid "Version %s was released."
516
  msgstr "Version %s was released."
517
 
518
- #: includes/class-freemius.php:19877
519
  msgid "Please download %s."
520
  msgstr "Please download %s."
521
 
522
- #: includes/class-freemius.php:19884
523
  msgid "the latest %s version here"
524
  msgstr "the latest %s version here"
525
 
526
- #: includes/class-freemius.php:19889
527
  msgid "New"
528
  msgstr "New"
529
 
530
- #: includes/class-freemius.php:19894
531
  msgid "Seems like you got the latest release."
532
  msgstr "Seems like you got the latest release."
533
 
534
- #: includes/class-freemius.php:19895
535
  msgid "You are all good!"
536
  msgstr "You are all good!"
537
 
538
- #: includes/class-freemius.php:20165
539
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
540
  msgstr "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
541
 
542
- #: includes/class-freemius.php:20304
543
  msgid "Site successfully opted in."
544
  msgstr "Site successfully opted in."
545
 
546
- #: includes/class-freemius.php:20305, includes/class-freemius.php:21125
547
  msgid "Awesome"
548
  msgstr "Awesome"
549
 
550
- #: includes/class-freemius.php:20321, templates/forms/optout.php:32
551
  msgid "We appreciate your help in making the %s better by letting us track some usage data."
552
  msgstr "We appreciate your help in making the %s better by letting us track some usage data."
553
 
554
- #: includes/class-freemius.php:20322
555
  msgid "Thank you!"
556
  msgstr "Thank you!"
557
 
558
- #: includes/class-freemius.php:20329
559
  msgid "We will no longer be sending any usage data of %s on %s to %s."
560
  msgstr "We will no longer be sending any usage data of %s on %s to %s."
561
 
562
- #: includes/class-freemius.php:20458
563
  msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
564
  msgstr "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
565
 
566
- #: includes/class-freemius.php:20464
567
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
568
  msgstr "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
569
 
570
- #: includes/class-freemius.php:20469
571
  msgid "%s is the new owner of the account."
572
  msgstr "%s is the new owner of the account."
573
 
574
- #: includes/class-freemius.php:20471
575
  msgctxt "as congratulations"
576
  msgid "Congrats"
577
  msgstr "Congrats"
578
 
579
- #: includes/class-freemius.php:20491
580
  msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
581
  msgstr "Sorry, we could not complete the email update. Another user with the same email is already registered."
582
 
583
- #: includes/class-freemius.php:20492
584
  msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
585
  msgstr "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
586
 
587
- #: includes/class-freemius.php:20499
588
  msgid "Change Ownership"
589
  msgstr "Change Ownership"
590
 
591
- #: includes/class-freemius.php:20507
592
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
593
  msgstr "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
594
 
595
- #: includes/class-freemius.php:20519
596
  msgid "Please provide your full name."
597
  msgstr "Please provide your full name."
598
 
599
- #: includes/class-freemius.php:20524
600
  msgid "Your name was successfully updated."
601
  msgstr "Your name was successfully updated."
602
 
603
- #: includes/class-freemius.php:20585
604
  msgid "You have successfully updated your %s."
605
  msgstr "You have successfully updated your %s."
606
 
607
- #: includes/class-freemius.php:20725
608
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
609
  msgstr "Just letting you know that the add-ons information of %s is being pulled from an external server."
610
 
611
- #: includes/class-freemius.php:20726
612
  msgctxt "advance notice of something that will need attention."
613
  msgid "Heads up"
614
  msgstr "Heads up"
615
 
616
- #: includes/class-freemius.php:21165
617
  msgctxt "exclamation"
618
  msgid "Hey"
619
  msgstr "Hey"
620
 
621
- #: includes/class-freemius.php:21165
622
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
623
  msgstr "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
624
 
625
- #: includes/class-freemius.php:21173
626
  msgid "No commitment for %s days - cancel anytime!"
627
  msgstr "No commitment for %s days - cancel anytime!"
628
 
629
- #: includes/class-freemius.php:21174
630
  msgid "No credit card required"
631
  msgstr "No credit card required"
632
 
633
- #: includes/class-freemius.php:21181, templates/forms/trial-start.php:53
634
  msgctxt "call to action"
635
  msgid "Start free trial"
636
  msgstr "Start free trial"
637
 
638
- #: includes/class-freemius.php:21258
639
  msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
640
  msgstr "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
641
 
642
- #: includes/class-freemius.php:21267
643
  msgid "Learn more"
644
  msgstr "Learn more"
645
 
646
- #: includes/class-freemius.php:21447, templates/account.php:474, templates/account.php:595, templates/connect.php:171, templates/connect.php:421, templates/forms/license-activation.php:25, templates/account/partials/addon.php:287
647
  msgid "Activate License"
648
  msgstr "Activate License"
649
 
650
- #: includes/class-freemius.php:21448, templates/account.php:543, templates/account.php:594, templates/account/partials/site.php:256
651
  msgid "Change License"
652
  msgstr "Change License"
653
 
654
- #: includes/class-freemius.php:21539, templates/account/partials/site.php:161
655
  msgid "Opt Out"
656
  msgstr "Opt Out"
657
 
658
- #: includes/class-freemius.php:21541, includes/class-freemius.php:21547, templates/account/partials/site.php:43, templates/account/partials/site.php:161
659
  msgid "Opt In"
660
  msgstr "Opt In"
661
 
662
- #: includes/class-freemius.php:21775
663
  msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
664
  msgstr " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
665
 
666
- #: includes/class-freemius.php:21783
667
  msgid "Activate %s features"
668
  msgstr "Activate %s features"
669
 
670
- #: includes/class-freemius.php:21796
671
  msgid "Please follow these steps to complete the upgrade"
672
  msgstr "Please follow these steps to complete the upgrade"
673
 
674
- #: includes/class-freemius.php:21800
675
  msgid "Download the latest %s version"
676
  msgstr "Download the latest %s version"
677
 
678
- #: includes/class-freemius.php:21804
679
  msgid "Upload and activate the downloaded version"
680
  msgstr "Upload and activate the downloaded version"
681
 
682
- #: includes/class-freemius.php:21806
683
  msgid "How to upload and activate?"
684
  msgstr "How to upload and activate?"
685
 
686
- #: includes/class-freemius.php:21940
687
  msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
688
  msgstr "%sClick here%s to choose the sites where you'd like to activate the license on."
689
 
690
- #: includes/class-freemius.php:22101
691
  msgid "Auto installation only works for opted-in users."
692
  msgstr "Auto installation only works for opted-in users."
693
 
694
- #: includes/class-freemius.php:22111, includes/class-freemius.php:22144, includes/class-fs-plugin-updater.php:1149, includes/class-fs-plugin-updater.php:1163
695
  msgid "Invalid module ID."
696
  msgstr "Invalid module ID."
697
 
698
- #: includes/class-freemius.php:22120, includes/class-fs-plugin-updater.php:1185
699
  msgid "Premium version already active."
700
  msgstr "Premium version already active."
701
 
702
- #: includes/class-freemius.php:22127
703
  msgid "You do not have a valid license to access the premium version."
704
  msgstr "You do not have a valid license to access the premium version."
705
 
706
- #: includes/class-freemius.php:22134
707
  msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
708
  msgstr "Plugin is a \"Serviceware\" which means it does not have a premium code version."
709
 
710
- #: includes/class-freemius.php:22152, includes/class-fs-plugin-updater.php:1184
711
  msgid "Premium add-on version already installed."
712
  msgstr "Premium add-on version already installed."
713
 
714
- #: includes/class-freemius.php:22497
715
  msgid "View paid features"
716
  msgstr "View paid features"
717
 
718
- #: includes/class-freemius.php:22819
719
  msgid "Thank you so much for using %s and its add-ons!"
720
  msgstr "Thank you so much for using %s and its add-ons!"
721
 
722
- #: includes/class-freemius.php:22820
723
  msgid "Thank you so much for using %s!"
724
  msgstr "Thank you so much for using %s!"
725
 
726
- #: includes/class-freemius.php:22826
727
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
728
  msgstr "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
729
 
730
- #: includes/class-freemius.php:22830
731
  msgid "Thank you so much for using our products!"
732
  msgstr "Thank you so much for using our products!"
733
 
734
- #: includes/class-freemius.php:22831
735
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
736
  msgstr "You've already opted-in to our usage-tracking, which helps us keep improving them."
737
 
738
- #: includes/class-freemius.php:22850
739
  msgid "%s and its add-ons"
740
  msgstr "%s and its add-ons"
741
 
742
- #: includes/class-freemius.php:22859
743
  msgid "Products"
744
  msgstr "Products"
745
 
746
- #: includes/class-freemius.php:22866, templates/connect.php:272
747
  msgid "Yes"
748
  msgstr "Yes"
749
 
750
- #: includes/class-freemius.php:22867, templates/connect.php:273
751
  msgid "send me security & feature updates, educational content and offers."
752
  msgstr "send me security & feature updates, educational content and offers."
753
 
754
- #: includes/class-freemius.php:22868, templates/connect.php:278
755
  msgid "No"
756
  msgstr "No"
757
 
758
- #: includes/class-freemius.php:22870, templates/connect.php:280
759
  msgid "do %sNOT%s send me security & feature updates, educational content and offers."
760
  msgstr "do %sNOT%s send me security & feature updates, educational content and offers."
761
 
762
- #: includes/class-freemius.php:22880
763
  msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
764
  msgstr "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
765
 
766
- #: includes/class-freemius.php:22882, templates/connect.php:287
767
  msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
768
  msgstr "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
769
 
770
- #: includes/class-freemius.php:23164
771
  msgid "License key is empty."
772
  msgstr "License key is empty."
773
 
774
- #: includes/class-fs-plugin-updater.php:184, templates/forms/premium-versions-upgrade-handler.php:57
775
  msgid "Renew license"
776
  msgstr "Renew license"
777
 
778
- #: includes/class-fs-plugin-updater.php:189, templates/forms/premium-versions-upgrade-handler.php:58
779
  msgid "Buy license"
780
  msgstr "Buy license"
781
 
782
- #: includes/class-fs-plugin-updater.php:280, includes/class-fs-plugin-updater.php:313
783
  msgid "There is a %s of %s available."
784
  msgstr "There is a %s of %s available."
785
 
786
- #: includes/class-fs-plugin-updater.php:282, includes/class-fs-plugin-updater.php:318
787
  msgid "new Beta version"
788
  msgstr "new Beta version"
789
 
790
- #: includes/class-fs-plugin-updater.php:283, includes/class-fs-plugin-updater.php:319
791
  msgid "new version"
792
  msgstr "new version"
793
 
794
- #: includes/class-fs-plugin-updater.php:342
795
  msgid "Important Upgrade Notice:"
796
  msgstr "Important Upgrade Notice:"
797
 
798
- #: includes/class-fs-plugin-updater.php:1214
799
  msgid "Installing plugin: %s"
800
  msgstr "Installing plugin: %s"
801
 
802
- #: includes/class-fs-plugin-updater.php:1255
803
  msgid "Unable to connect to the filesystem. Please confirm your credentials."
804
  msgstr "Unable to connect to the filesystem. Please confirm your credentials."
805
 
806
- #: includes/class-fs-plugin-updater.php:1437
807
  msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
808
  msgstr "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
809
 
810
- #: includes/fs-plugin-info-dialog.php:509
811
  msgid "Purchase More"
812
  msgstr "Purchase More"
813
 
814
- #: includes/fs-plugin-info-dialog.php:510, templates/account/partials/addon.php:347
815
  msgctxt "verb"
816
  msgid "Purchase"
817
  msgstr "Purchase"
818
 
819
- #: includes/fs-plugin-info-dialog.php:514
820
  msgid "Start my free %s"
821
  msgstr "Start my free %s"
822
 
823
- #: includes/fs-plugin-info-dialog.php:712
824
  msgid "Install Free Version Update Now"
825
  msgstr "Install Free Version Update Now"
826
 
827
- #: includes/fs-plugin-info-dialog.php:713, templates/account.php:534
828
  msgid "Install Update Now"
829
  msgstr "Install Update Now"
830
 
831
- #: includes/fs-plugin-info-dialog.php:722
832
  msgid "Install Free Version Now"
833
  msgstr "Install Free Version Now"
834
 
835
- #: includes/fs-plugin-info-dialog.php:723, templates/add-ons.php:262, templates/auto-installation.php:111, templates/account/partials/addon.php:327, templates/account/partials/addon.php:379
836
  msgid "Install Now"
837
  msgstr "Install Now"
838
 
839
- #: includes/fs-plugin-info-dialog.php:739
840
  msgctxt "as download latest version"
841
  msgid "Download Latest Free Version"
842
  msgstr "Download Latest Free Version"
843
 
844
- #: includes/fs-plugin-info-dialog.php:740, templates/account.php:85, templates/add-ons.php:34, templates/account/partials/addon.php:25
845
  msgctxt "as download latest version"
846
  msgid "Download Latest"
847
  msgstr "Download Latest"
848
 
849
- #: includes/fs-plugin-info-dialog.php:755, templates/add-ons.php:268, templates/account/partials/addon.php:318, templates/account/partials/addon.php:373
850
  msgid "Activate this add-on"
851
  msgstr "Activate this add-on"
852
 
853
- #: includes/fs-plugin-info-dialog.php:757, templates/connect.php:418
854
  msgid "Activate Free Version"
855
  msgstr "Activate Free Version"
856
 
857
- #: includes/fs-plugin-info-dialog.php:758, templates/account.php:109, templates/add-ons.php:269, templates/account/partials/addon.php:49
858
  msgid "Activate"
859
  msgstr "Activate"
860
 
861
- #: includes/fs-plugin-info-dialog.php:968
862
  msgctxt "Plugin installer section title"
863
  msgid "Description"
864
  msgstr "Description"
865
 
866
- #: includes/fs-plugin-info-dialog.php:969
867
  msgctxt "Plugin installer section title"
868
  msgid "Installation"
869
  msgstr "Installation"
870
 
871
- #: includes/fs-plugin-info-dialog.php:970
872
  msgctxt "Plugin installer section title"
873
  msgid "FAQ"
874
  msgstr "FAQ"
875
 
876
- #: includes/fs-plugin-info-dialog.php:971, templates/plugin-info/description.php:55
877
  msgid "Screenshots"
878
  msgstr "Screenshots"
879
 
880
- #: includes/fs-plugin-info-dialog.php:972
881
  msgctxt "Plugin installer section title"
882
  msgid "Changelog"
883
  msgstr "Changelog"
884
 
885
- #: includes/fs-plugin-info-dialog.php:973
886
  msgctxt "Plugin installer section title"
887
  msgid "Reviews"
888
  msgstr "Reviews"
889
 
890
- #: includes/fs-plugin-info-dialog.php:974
891
  msgctxt "Plugin installer section title"
892
  msgid "Other Notes"
893
  msgstr "Other Notes"
894
 
895
- #: includes/fs-plugin-info-dialog.php:989
896
  msgctxt "Plugin installer section title"
897
  msgid "Features & Pricing"
898
  msgstr "Features & Pricing"
899
 
900
- #: includes/fs-plugin-info-dialog.php:999
901
  msgid "Plugin Install"
902
  msgstr "Plugin Install"
903
 
904
- #: includes/fs-plugin-info-dialog.php:1071
905
  msgctxt "e.g. Professional Plan"
906
  msgid "%s Plan"
907
  msgstr "%s Plan"
908
 
909
- #: includes/fs-plugin-info-dialog.php:1097
910
  msgctxt "e.g. the best product"
911
  msgid "Best"
912
  msgstr "Best"
913
 
914
- #: includes/fs-plugin-info-dialog.php:1103, includes/fs-plugin-info-dialog.php:1123
915
  msgctxt "as every month"
916
  msgid "Monthly"
917
  msgstr "Monthly"
918
 
919
- #: includes/fs-plugin-info-dialog.php:1106
920
  msgctxt "as once a year"
921
  msgid "Annual"
922
  msgstr "Annual"
923
 
924
- #: includes/fs-plugin-info-dialog.php:1109
925
  msgid "Lifetime"
926
  msgstr "Lifetime"
927
 
928
- #: includes/fs-plugin-info-dialog.php:1123, includes/fs-plugin-info-dialog.php:1125, includes/fs-plugin-info-dialog.php:1127
929
  msgctxt "e.g. billed monthly"
930
  msgid "Billed %s"
931
  msgstr "Billed %s"
932
 
933
- #: includes/fs-plugin-info-dialog.php:1125
934
  msgctxt "as once a year"
935
  msgid "Annually"
936
  msgstr "Annually"
937
 
938
- #: includes/fs-plugin-info-dialog.php:1127
939
  msgctxt "as once a year"
940
  msgid "Once"
941
  msgstr "Once"
942
 
943
- #: includes/fs-plugin-info-dialog.php:1133
944
  msgid "Single Site License"
945
  msgstr "Single Site License"
946
 
947
- #: includes/fs-plugin-info-dialog.php:1135
948
  msgid "Unlimited Licenses"
949
  msgstr "Unlimited Licenses"
950
 
951
- #: includes/fs-plugin-info-dialog.php:1137
952
  msgid "Up to %s Sites"
953
  msgstr "Up to %s Sites"
954
 
955
- #: includes/fs-plugin-info-dialog.php:1147, templates/plugin-info/features.php:82
956
  msgctxt "as monthly period"
957
  msgid "mo"
958
  msgstr "mo"
959
 
960
- #: includes/fs-plugin-info-dialog.php:1154, templates/plugin-info/features.php:80
961
  msgctxt "as annual period"
962
  msgid "year"
963
  msgstr "year"
964
 
965
- #: includes/fs-plugin-info-dialog.php:1208
966
  msgctxt "noun"
967
  msgid "Price"
968
  msgstr "Price"
969
 
970
- #: includes/fs-plugin-info-dialog.php:1256
971
  msgid "Save %s"
972
  msgstr "Save %s"
973
 
974
- #: includes/fs-plugin-info-dialog.php:1266
975
  msgid "No commitment for %s - cancel anytime"
976
  msgstr "No commitment for %s - cancel anytime"
977
 
978
- #: includes/fs-plugin-info-dialog.php:1269
979
  msgid "After your free %s, pay as little as %s"
980
  msgstr "After your free %s, pay as little as %s"
981
 
982
- #: includes/fs-plugin-info-dialog.php:1280
983
  msgid "Details"
984
  msgstr "Details"
985
 
986
- #: includes/fs-plugin-info-dialog.php:1284, templates/account.php:96, templates/debug.php:203, templates/debug.php:240, templates/debug.php:454, templates/account/partials/addon.php:36
987
  msgctxt "product version"
988
  msgid "Version"
989
  msgstr "Version"
990
 
991
- #: includes/fs-plugin-info-dialog.php:1291
992
  msgctxt "as the plugin author"
993
  msgid "Author"
994
  msgstr "Author"
995
 
996
- #: includes/fs-plugin-info-dialog.php:1298
997
  msgid "Last Updated"
998
  msgstr "Last Updated"
999
 
1000
- #: includes/fs-plugin-info-dialog.php:1303, templates/account.php:444
1001
  msgctxt "x-ago"
1002
  msgid "%s ago"
1003
  msgstr "%s ago"
1004
 
1005
- #: includes/fs-plugin-info-dialog.php:1312
1006
  msgid "Requires WordPress Version"
1007
  msgstr "Requires WordPress Version"
1008
 
1009
- #: includes/fs-plugin-info-dialog.php:1313
1010
  msgid "%s or higher"
1011
  msgstr "%s or higher"
1012
 
1013
- #: includes/fs-plugin-info-dialog.php:1320
1014
  msgid "Compatible up to"
1015
  msgstr "Compatible up to"
1016
 
1017
- #: includes/fs-plugin-info-dialog.php:1328
1018
  msgid "Downloaded"
1019
  msgstr "Downloaded"
1020
 
1021
- #: includes/fs-plugin-info-dialog.php:1332
1022
  msgid "%s time"
1023
  msgstr "%s time"
1024
 
1025
- #: includes/fs-plugin-info-dialog.php:1334
1026
  msgid "%s times"
1027
  msgstr "%s times"
1028
 
1029
- #: includes/fs-plugin-info-dialog.php:1344
1030
  msgid "WordPress.org Plugin Page"
1031
  msgstr "WordPress.org Plugin Page"
1032
 
1033
- #: includes/fs-plugin-info-dialog.php:1352
1034
  msgid "Plugin Homepage"
1035
  msgstr "Plugin Homepage"
1036
 
1037
- #: includes/fs-plugin-info-dialog.php:1360, includes/fs-plugin-info-dialog.php:1442
1038
  msgid "Donate to this plugin"
1039
  msgstr "Donate to this plugin"
1040
 
1041
- #: includes/fs-plugin-info-dialog.php:1367
1042
  msgid "Average Rating"
1043
  msgstr "Average Rating"
1044
 
1045
- #: includes/fs-plugin-info-dialog.php:1374
1046
  msgid "based on %s"
1047
  msgstr "based on %s"
1048
 
1049
- #: includes/fs-plugin-info-dialog.php:1378
1050
  msgid "%s rating"
1051
  msgstr "%s rating"
1052
 
1053
- #: includes/fs-plugin-info-dialog.php:1380
1054
  msgid "%s ratings"
1055
  msgstr "%s ratings"
1056
 
1057
- #: includes/fs-plugin-info-dialog.php:1395
1058
  msgid "%s star"
1059
  msgstr "%s star"
1060
 
1061
- #: includes/fs-plugin-info-dialog.php:1397
1062
  msgid "%s stars"
1063
  msgstr "%s stars"
1064
 
1065
- #: includes/fs-plugin-info-dialog.php:1408
1066
  msgid "Click to see reviews that provided a rating of %s"
1067
  msgstr "Click to see reviews that provided a rating of %s"
1068
 
1069
- #: includes/fs-plugin-info-dialog.php:1421
1070
  msgid "Contributors"
1071
  msgstr "Contributors"
1072
 
1073
- #: includes/fs-plugin-info-dialog.php:1450, includes/fs-plugin-info-dialog.php:1452
1074
  msgid "Warning"
1075
  msgstr "Warning"
1076
 
1077
- #: includes/fs-plugin-info-dialog.php:1450
1078
  msgid "This plugin has not been tested with your current version of WordPress."
1079
  msgstr "This plugin has not been tested with your current version of WordPress."
1080
 
1081
- #: includes/fs-plugin-info-dialog.php:1452
1082
  msgid "This plugin has not been marked as compatible with your version of WordPress."
1083
  msgstr "This plugin has not been marked as compatible with your version of WordPress."
1084
 
1085
- #: includes/fs-plugin-info-dialog.php:1471
1086
  msgid "Paid add-on must be deployed to Freemius."
1087
  msgstr "Paid add-on must be deployed to Freemius."
1088
 
1089
- #: includes/fs-plugin-info-dialog.php:1472
1090
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1091
  msgstr "Add-on must be deployed to WordPress.org or Freemius."
1092
 
1093
- #: includes/fs-plugin-info-dialog.php:1493
1094
  msgid "Newer Version (%s) Installed"
1095
  msgstr "Newer Version (%s) Installed"
1096
 
1097
- #: includes/fs-plugin-info-dialog.php:1494
1098
  msgid "Newer Free Version (%s) Installed"
1099
  msgstr "Newer Free Version (%s) Installed"
1100
 
1101
- #: includes/fs-plugin-info-dialog.php:1501
1102
  msgid "Latest Version Installed"
1103
  msgstr "Latest Version Installed"
1104
 
1105
- #: includes/fs-plugin-info-dialog.php:1502
1106
  msgid "Latest Free Version Installed"
1107
  msgstr "Latest Free Version Installed"
1108
 
1109
- #: templates/account.php:86, templates/forms/subscription-cancellation.php:96, templates/account/partials/addon.php:26, templates/account/partials/site.php:295
1110
  msgid "Downgrading your plan"
1111
  msgstr "Downgrading your plan"
1112
 
1113
- #: templates/account.php:87, templates/forms/subscription-cancellation.php:97, templates/account/partials/addon.php:27, templates/account/partials/site.php:296
1114
  msgid "Cancelling the subscription"
1115
  msgstr "Cancelling the subscription"
1116
 
1117
  #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
1118
- #: templates/account.php:89
1119
  msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1120
  msgstr "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1121
 
1122
- #: templates/account.php:90, templates/forms/subscription-cancellation.php:100, templates/account/partials/addon.php:30, templates/account/partials/site.php:299
1123
  msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1124
  msgstr "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1125
 
1126
- #: templates/account.php:91, templates/forms/subscription-cancellation.php:106, templates/account/partials/addon.php:31
1127
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1128
  msgstr "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1129
 
1130
- #: templates/account.php:92, templates/forms/subscription-cancellation.php:101, templates/account/partials/addon.php:32, templates/account/partials/site.php:300
1131
  msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1132
  msgstr "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1133
 
1134
- #: templates/account.php:93, templates/forms/subscription-cancellation.php:102, templates/account/partials/addon.php:33, templates/account/partials/site.php:301
1135
  msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1136
  msgstr "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1137
 
1138
  #. translators: %s: Plan title (e.g. "Professional")
1139
- #: templates/account.php:95, templates/account/partials/activate-license-button.php:31, templates/account/partials/addon.php:35
1140
  msgid "Activate %s Plan"
1141
  msgstr "Activate %s Plan"
1142
 
1143
  #. translators: %s: Time period (e.g. Auto renews in "2 months")
1144
- #: templates/account.php:98, templates/account/partials/addon.php:38, templates/account/partials/site.php:275
1145
  msgid "Auto renews in %s"
1146
  msgstr "Auto renews in %s"
1147
 
1148
  #. translators: %s: Time period (e.g. Expires in "2 months")
1149
- #: templates/account.php:100, templates/account/partials/addon.php:40, templates/account/partials/site.php:277
1150
  msgid "Expires in %s"
1151
  msgstr "Expires in %s"
1152
 
1153
- #: templates/account.php:101, templates/account/partials/addon.php:41
1154
  msgctxt "as synchronize license"
1155
  msgid "Sync License"
1156
  msgstr "Sync License"
1157
 
1158
- #: templates/account.php:102, templates/account/partials/addon.php:42
1159
  msgid "Cancel Trial"
1160
  msgstr "Cancel Trial"
1161
 
1162
- #: templates/account.php:103, templates/account/partials/addon.php:43
1163
  msgid "Change Plan"
1164
  msgstr "Change Plan"
1165
 
1166
- #: templates/account.php:104, templates/account/partials/addon.php:44
1167
  msgctxt "verb"
1168
  msgid "Upgrade"
1169
  msgstr "Upgrade"
1170
 
1171
- #: templates/account.php:106, templates/account/partials/addon.php:46, templates/account/partials/site.php:302
1172
  msgctxt "verb"
1173
  msgid "Downgrade"
1174
  msgstr "Downgrade"
1175
 
1176
- #: templates/account.php:108, templates/add-ons.php:187, templates/plugin-info/features.php:72, templates/account/partials/addon.php:48, templates/account/partials/site.php:31
1177
  msgid "Free"
1178
  msgstr "Free"
1179
 
1180
- #: templates/account.php:110, templates/debug.php:373, includes/customizer/class-fs-customizer-upsell-control.php:106, templates/account/partials/addon.php:50
1181
  msgctxt "as product pricing plan"
1182
  msgid "Plan"
1183
  msgstr "Plan"
1184
 
1185
- #: templates/account.php:111
1186
  msgid "Bundle Plan"
1187
  msgstr "Bundle Plan"
1188
 
1189
- #: templates/account.php:185
1190
  msgid "Free Trial"
1191
  msgstr "Free Trial"
1192
 
1193
- #: templates/account.php:196
1194
  msgid "Account Details"
1195
  msgstr "Account Details"
1196
 
1197
- #: templates/account.php:200
 
 
 
 
 
 
 
 
1198
  msgid "Billing & Invoices"
1199
  msgstr "Billing & Invoices"
1200
 
1201
- #: templates/account.php:210
1202
  msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1203
  msgstr "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1204
 
1205
- #: templates/account.php:212
1206
  msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1207
  msgstr "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1208
 
1209
- #: templates/account.php:215
1210
  msgid "Delete Account"
1211
  msgstr "Delete Account"
1212
 
1213
- #: templates/account.php:227, templates/account/partials/addon.php:211, templates/account/partials/deactivate-license-button.php:35
1214
  msgid "Deactivate License"
1215
  msgstr "Deactivate License"
1216
 
1217
- #: templates/account.php:250, templates/forms/subscription-cancellation.php:125
1218
  msgid "Are you sure you want to proceed?"
1219
  msgstr "Are you sure you want to proceed?"
1220
 
1221
- #: templates/account.php:250, templates/account/partials/addon.php:234
1222
  msgid "Cancel Subscription"
1223
  msgstr "Cancel Subscription"
1224
 
1225
- #: templates/account.php:278
1226
  msgctxt "as synchronize"
1227
  msgid "Sync"
1228
  msgstr "Sync"
1229
 
1230
- #: templates/account.php:292, templates/debug.php:489
1231
  msgid "Name"
1232
  msgstr "Name"
1233
 
1234
- #: templates/account.php:298, templates/debug.php:490
1235
  msgid "Email"
1236
  msgstr "Email"
1237
 
1238
- #: templates/account.php:305, templates/debug.php:372, templates/debug.php:528
1239
  msgid "User ID"
1240
  msgstr "User ID"
1241
 
1242
- #: templates/account.php:322, templates/account.php:608, templates/account.php:653, templates/debug.php:238, templates/debug.php:366, templates/debug.php:451, templates/debug.php:488, templates/debug.php:526, templates/debug.php:599, templates/account/payments.php:35, templates/debug/logger.php:21
1243
  msgid "ID"
1244
  msgstr "ID"
1245
 
1246
- #: templates/account.php:329
1247
  msgid "Site ID"
1248
  msgstr "Site ID"
1249
 
1250
- #: templates/account.php:332
1251
  msgid "No ID"
1252
  msgstr "No ID"
1253
 
1254
- #: templates/account.php:337, templates/debug.php:245, templates/debug.php:374, templates/debug.php:455, templates/debug.php:492, templates/account/partials/site.php:219
1255
  msgid "Public Key"
1256
  msgstr "Public Key"
1257
 
1258
- #: templates/account.php:343, templates/debug.php:375, templates/debug.php:456, templates/debug.php:493, templates/account/partials/site.php:231
1259
  msgid "Secret Key"
1260
  msgstr "Secret Key"
1261
 
1262
- #: templates/account.php:346
1263
  msgctxt "as secret encryption key missing"
1264
  msgid "No Secret"
1265
  msgstr "No Secret"
1266
 
1267
- #: templates/account.php:373, templates/account/partials/site.php:112, templates/account/partials/site.php:114
1268
  msgid "Trial"
1269
  msgstr "Trial"
1270
 
1271
- #: templates/account.php:400, templates/debug.php:533, templates/account/partials/site.php:248
1272
  msgid "License Key"
1273
  msgstr "License Key"
1274
 
1275
- #: templates/account.php:429
1276
  msgid "Join the Beta program"
1277
  msgstr "Join the Beta program"
1278
 
1279
- #: templates/account.php:435
1280
  msgid "not verified"
1281
  msgstr "not verified"
1282
 
1283
- #: templates/account.php:444, templates/account/partials/addon.php:172
1284
  msgid "Expired"
1285
  msgstr "Expired"
1286
 
1287
- #: templates/account.php:502
1288
  msgid "Premium version"
1289
  msgstr "Premium version"
1290
 
1291
- #: templates/account.php:504
1292
  msgid "Free version"
1293
  msgstr "Free version"
1294
 
1295
- #: templates/account.php:516
1296
  msgid "Verify Email"
1297
  msgstr "Verify Email"
1298
 
1299
- #: templates/account.php:527
1300
  msgid "Download %s Version"
1301
  msgstr "Download %s Version"
1302
 
1303
- #: templates/account.php:541, templates/account.php:749, templates/account/partials/site.php:237, templates/account/partials/site.php:255
1304
  msgctxt "verb"
1305
  msgid "Show"
1306
  msgstr "Show"
1307
 
1308
- #: templates/account.php:555
1309
  msgid "What is your %s?"
1310
  msgstr "What is your %s?"
1311
 
1312
- #: templates/account.php:563, templates/account/billing.php:21
1313
  msgctxt "verb"
1314
  msgid "Edit"
1315
  msgstr "Edit"
1316
 
1317
- #: templates/account.php:588
1318
  msgid "Sites"
1319
  msgstr "Sites"
1320
 
1321
- #: templates/account.php:599
1322
  msgid "Search by address"
1323
  msgstr "Search by address"
1324
 
1325
- #: templates/account.php:609, templates/debug.php:369
1326
  msgid "Address"
1327
  msgstr "Address"
1328
 
1329
- #: templates/account.php:610
1330
  msgid "License"
1331
  msgstr "License"
1332
 
1333
- #: templates/account.php:611
1334
  msgid "Plan"
1335
  msgstr "Plan"
1336
 
1337
- #: templates/account.php:656
1338
  msgctxt "as software license"
1339
  msgid "License"
1340
  msgstr "License"
1341
 
1342
- #: templates/account.php:743
1343
  msgctxt "verb"
1344
  msgid "Hide"
1345
  msgstr "Hide"
1346
 
1347
- #: templates/account.php:765
1348
  msgid "Processing"
1349
  msgstr "Processing"
1350
 
1351
- #: templates/account.php:768
1352
  msgid "Get updates for bleeding edge Beta versions of %s."
1353
  msgstr "Get updates for bleeding edge Beta versions of %s."
1354
 
1355
- #: templates/account.php:826
1356
  msgid "Cancelling %s"
1357
  msgstr "Cancelling %s"
1358
 
1359
- #: templates/account.php:826, templates/account.php:843, templates/forms/subscription-cancellation.php:27, templates/forms/deactivation/form.php:133
1360
  msgid "trial"
1361
  msgstr "trial"
1362
 
1363
- #: templates/account.php:841, templates/forms/deactivation/form.php:150
1364
  msgid "Cancelling %s..."
1365
  msgstr "Cancelling %s..."
1366
 
1367
- #: templates/account.php:844, templates/forms/subscription-cancellation.php:28, templates/forms/deactivation/form.php:134
1368
  msgid "subscription"
1369
  msgstr "subscription"
1370
 
1371
- #: templates/account.php:858
1372
  msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1373
  msgstr "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1374
 
1375
- #: templates/add-ons.php:35
1376
  msgid "View details"
1377
  msgstr "View details"
1378
 
1379
- #: templates/add-ons.php:45
1380
  msgid "Add Ons for %s"
1381
  msgstr "Add Ons for %s"
1382
 
1383
- #: templates/add-ons.php:55
1384
- msgid "We could'nt load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1385
- msgstr "We could'nt load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1386
 
1387
- #: templates/add-ons.php:173
1388
  msgctxt "active add-on"
1389
  msgid "Active"
1390
  msgstr "Active"
1391
 
1392
- #: templates/add-ons.php:174
1393
  msgctxt "installed add-on"
1394
  msgid "Installed"
1395
  msgstr "Installed"
1396
 
1397
- #: templates/admin-notice.php:13, templates/forms/license-activation.php:209, templates/forms/resend-key.php:77
1398
  msgctxt "as close a window"
1399
  msgid "Dismiss"
1400
  msgstr "Dismiss"
@@ -1445,7 +1461,7 @@ msgstr "Re-send activation email"
1445
  msgid "Thanks %s!"
1446
  msgstr "Thanks %s!"
1447
 
1448
- #: templates/connect.php:172, templates/forms/license-activation.php:44
1449
  msgid "Agree & Activate License"
1450
  msgstr "Agree & Activate License"
1451
 
@@ -1493,11 +1509,11 @@ msgstr "Alternatively, you can skip it for now and activate the license later, i
1493
  msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
1494
  msgstr "During the update process we detected %s site(s) in the network that are still pending your attention."
1495
 
1496
- #: templates/connect.php:253, templates/forms/license-activation.php:47
1497
  msgid "License key"
1498
  msgstr "License key"
1499
 
1500
- #: templates/connect.php:256, templates/forms/license-activation.php:20
1501
  msgid "Can't find your license key?"
1502
  msgstr "Can't find your license key?"
1503
 
@@ -1550,7 +1566,7 @@ msgstr "Activation, deactivation and uninstall"
1550
  msgid "Newsletter"
1551
  msgstr "Newsletter"
1552
 
1553
- #: templates/connect.php:391, templates/forms/license-activation.php:39
1554
  msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
1555
  msgstr "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
1556
 
@@ -1611,7 +1627,7 @@ msgctxt "as code debugging"
1611
  msgid "Debugging"
1612
  msgstr "Debugging"
1613
 
1614
- #: templates/debug.php:54, templates/debug.php:250, templates/debug.php:376, templates/debug.php:494
1615
  msgid "Actions"
1616
  msgstr "Actions"
1617
 
@@ -1680,11 +1696,11 @@ msgstr "Plugins"
1680
  msgid "Themes"
1681
  msgstr "Themes"
1682
 
1683
- #: templates/debug.php:239, templates/debug.php:371, templates/debug.php:453, templates/debug/scheduled-crons.php:80
1684
  msgid "Slug"
1685
  msgstr "Slug"
1686
 
1687
- #: templates/debug.php:241, templates/debug.php:452
1688
  msgid "Title"
1689
  msgstr "Title"
1690
 
@@ -1723,110 +1739,114 @@ msgstr "Simulate Trial Promotion"
1723
  msgid "Simulate Network Upgrade"
1724
  msgstr "Simulate Network Upgrade"
1725
 
1726
- #: templates/debug.php:360
1727
  msgid "%s Installs"
1728
  msgstr "%s Installs"
1729
 
1730
- #: templates/debug.php:362
1731
  msgctxt "like websites"
1732
  msgid "Sites"
1733
  msgstr "Sites"
1734
 
1735
- #: templates/debug.php:368, templates/account/partials/site.php:148
1736
  msgid "Blog ID"
1737
  msgstr "Blog ID"
1738
 
1739
- #: templates/debug.php:433, templates/debug.php:511, templates/account/partials/addon.php:396
 
 
 
 
1740
  msgctxt "verb"
1741
  msgid "Delete"
1742
  msgstr "Delete"
1743
 
1744
- #: templates/debug.php:447
1745
  msgid "Add Ons of module %s"
1746
  msgstr "Add Ons of module %s"
1747
 
1748
- #: templates/debug.php:484
1749
  msgid "Users"
1750
  msgstr "Users"
1751
 
1752
- #: templates/debug.php:491
1753
  msgid "Verified"
1754
  msgstr "Verified"
1755
 
1756
- #: templates/debug.php:522
1757
  msgid "%s Licenses"
1758
  msgstr "%s Licenses"
1759
 
1760
- #: templates/debug.php:527
1761
  msgid "Plugin ID"
1762
  msgstr "Plugin ID"
1763
 
1764
- #: templates/debug.php:529
1765
  msgid "Plan ID"
1766
  msgstr "Plan ID"
1767
 
1768
- #: templates/debug.php:530
1769
  msgid "Quota"
1770
  msgstr "Quota"
1771
 
1772
- #: templates/debug.php:531
1773
  msgid "Activated"
1774
  msgstr "Activated"
1775
 
1776
- #: templates/debug.php:532
1777
  msgid "Blocking"
1778
  msgstr "Blocking"
1779
 
1780
- #: templates/debug.php:534
1781
  msgctxt "as expiration date"
1782
  msgid "Expiration"
1783
  msgstr "Expiration"
1784
 
1785
- #: templates/debug.php:557
1786
  msgid "Debug Log"
1787
  msgstr "Debug Log"
1788
 
1789
- #: templates/debug.php:561
1790
  msgid "All Types"
1791
  msgstr "All Types"
1792
 
1793
- #: templates/debug.php:568
1794
  msgid "All Requests"
1795
  msgstr "All Requests"
1796
 
1797
- #: templates/debug.php:573, templates/debug.php:602, templates/debug/logger.php:25
1798
  msgid "File"
1799
  msgstr "File"
1800
 
1801
- #: templates/debug.php:574, templates/debug.php:600, templates/debug/logger.php:23
1802
  msgid "Function"
1803
  msgstr "Function"
1804
 
1805
- #: templates/debug.php:575
1806
  msgid "Process ID"
1807
  msgstr "Process ID"
1808
 
1809
- #: templates/debug.php:576
1810
  msgid "Logger"
1811
  msgstr "Logger"
1812
 
1813
- #: templates/debug.php:577, templates/debug.php:601, templates/debug/logger.php:24
1814
  msgid "Message"
1815
  msgstr "Message"
1816
 
1817
- #: templates/debug.php:579
1818
  msgid "Filter"
1819
  msgstr "Filter"
1820
 
1821
- #: templates/debug.php:587
1822
  msgid "Download"
1823
  msgstr "Download"
1824
 
1825
- #: templates/debug.php:598, templates/debug/logger.php:22
1826
  msgid "Type"
1827
  msgstr "Type"
1828
 
1829
- #: templates/debug.php:603, templates/debug/logger.php:26
1830
  msgid "Timestamp"
1831
  msgstr "Timestamp"
1832
 
@@ -2144,11 +2164,27 @@ msgstr "Cancel"
2144
  msgid "Become an affiliate"
2145
  msgstr "Become an affiliate"
2146
 
2147
- #: templates/forms/license-activation.php:21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2148
  msgid "Please enter the license key that you received in the email right after the purchase:"
2149
  msgstr "Please enter the license key that you received in the email right after the purchase:"
2150
 
2151
- #: templates/forms/license-activation.php:26
2152
  msgid "Update License"
2153
  msgstr "Update License"
2154
 
@@ -2215,11 +2251,6 @@ msgstr "Cancel %s - I no longer need any security & feature updates, nor support
2215
  msgid "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
2216
  msgstr "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
2217
 
2218
- #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
2219
- #: templates/forms/subscription-cancellation.php:99, templates/account/partials/addon.php:29, templates/account/partials/site.php:298
2220
- msgid "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2221
- msgstr "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2222
-
2223
  #: templates/forms/subscription-cancellation.php:103
2224
  msgid "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
2225
  msgstr "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
@@ -2301,27 +2332,32 @@ msgstr "%s left"
2301
  msgid "Last license"
2302
  msgstr "Last license"
2303
 
2304
- #: templates/account/partials/addon.php:167
 
 
 
 
 
2305
  msgid "Cancelled"
2306
  msgstr "Cancelled"
2307
 
2308
- #: templates/account/partials/addon.php:177
2309
  msgid "No expiration"
2310
  msgstr "No expiration"
2311
 
2312
- #: templates/account/partials/site.php:181
2313
  msgid "Owner Name"
2314
  msgstr "Owner Name"
2315
 
2316
- #: templates/account/partials/site.php:193
2317
  msgid "Owner Email"
2318
  msgstr "Owner Email"
2319
 
2320
- #: templates/account/partials/site.php:205
2321
  msgid "Owner ID"
2322
  msgstr "Owner ID"
2323
 
2324
- #: templates/account/partials/site.php:270
2325
  msgid "Subscription"
2326
  msgstr "Subscription"
2327
 
19
  "X-Poedit-SearchPathExcluded-0: *.js\n"
20
  "X-Poedit-SourceCharset: UTF-8\n"
21
 
22
+ #: includes/class-freemius.php:1880, templates/account.php:840
23
  msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
24
  msgstr "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
25
 
26
+ #: includes/class-freemius.php:1887
27
  msgid "Would you like to proceed with the update?"
28
  msgstr "Would you like to proceed with the update?"
29
 
30
+ #: includes/class-freemius.php:2095
31
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
32
  msgstr "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
33
 
34
+ #: includes/class-freemius.php:2097
35
  msgid "Error"
36
  msgstr "Error"
37
 
38
+ #: includes/class-freemius.php:2491
39
  msgid "I found a better %s"
40
  msgstr "I found a better %s"
41
 
42
+ #: includes/class-freemius.php:2493
43
  msgid "What's the %s's name?"
44
  msgstr "What's the %s's name?"
45
 
46
+ #: includes/class-freemius.php:2499
47
  msgid "It's a temporary %s. I'm just debugging an issue."
48
  msgstr "It's a temporary %s. I'm just debugging an issue."
49
 
50
+ #: includes/class-freemius.php:2501
51
  msgid "Deactivation"
52
  msgstr "Deactivation"
53
 
54
+ #: includes/class-freemius.php:2502
55
  msgid "Theme Switch"
56
  msgstr "Theme Switch"
57
 
58
+ #: includes/class-freemius.php:2511, templates/forms/resend-key.php:24
59
  msgid "Other"
60
  msgstr "Other"
61
 
62
+ #: includes/class-freemius.php:2519
63
  msgid "I no longer need the %s"
64
  msgstr "I no longer need the %s"
65
 
66
+ #: includes/class-freemius.php:2526
67
  msgid "I only needed the %s for a short period"
68
  msgstr "I only needed the %s for a short period"
69
 
70
+ #: includes/class-freemius.php:2532
71
  msgid "The %s broke my site"
72
  msgstr "The %s broke my site"
73
 
74
+ #: includes/class-freemius.php:2539
75
  msgid "The %s suddenly stopped working"
76
  msgstr "The %s suddenly stopped working"
77
 
78
+ #: includes/class-freemius.php:2549
79
  msgid "I can't pay for it anymore"
80
  msgstr "I can't pay for it anymore"
81
 
82
+ #: includes/class-freemius.php:2551
83
  msgid "What price would you feel comfortable paying?"
84
  msgstr "What price would you feel comfortable paying?"
85
 
86
+ #: includes/class-freemius.php:2557
87
  msgid "I don't like to share my information with you"
88
  msgstr "I don't like to share my information with you"
89
 
90
+ #: includes/class-freemius.php:2578
91
  msgid "The %s didn't work"
92
  msgstr "The %s didn't work"
93
 
94
+ #: includes/class-freemius.php:2588
95
  msgid "I couldn't understand how to make it work"
96
  msgstr "I couldn't understand how to make it work"
97
 
98
+ #: includes/class-freemius.php:2596
99
  msgid "The %s is great, but I need specific feature that you don't support"
100
  msgstr "The %s is great, but I need specific feature that you don't support"
101
 
102
+ #: includes/class-freemius.php:2598
103
  msgid "What feature?"
104
  msgstr "What feature?"
105
 
106
+ #: includes/class-freemius.php:2602
107
  msgid "The %s is not working"
108
  msgstr "The %s is not working"
109
 
110
+ #: includes/class-freemius.php:2604
111
  msgid "Kindly share what didn't work so we can fix it for future users..."
112
  msgstr "Kindly share what didn't work so we can fix it for future users..."
113
 
114
+ #: includes/class-freemius.php:2608
115
  msgid "It's not what I was looking for"
116
  msgstr "It's not what I was looking for"
117
 
118
+ #: includes/class-freemius.php:2610
119
  msgid "What you've been looking for?"
120
  msgstr "What you've been looking for?"
121
 
122
+ #: includes/class-freemius.php:2614
123
  msgid "The %s didn't work as expected"
124
  msgstr "The %s didn't work as expected"
125
 
126
+ #: includes/class-freemius.php:2616
127
  msgid "What did you expect?"
128
  msgstr "What did you expect?"
129
 
130
+ #: includes/class-freemius.php:3471, templates/debug.php:20
131
  msgid "Freemius Debug"
132
  msgstr "Freemius Debug"
133
 
134
+ #: includes/class-freemius.php:4223
135
  msgid "I don't know what is cURL or how to install it, help me!"
136
  msgstr "I don't know what is cURL or how to install it, help me!"
137
 
138
+ #: includes/class-freemius.php:4225
139
  msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
140
  msgstr "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
141
 
142
+ #: includes/class-freemius.php:4232
143
  msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
144
  msgstr "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
145
 
146
+ #: includes/class-freemius.php:4337
147
  msgid "Yes - do your thing"
148
  msgstr "Yes - do your thing"
149
 
150
+ #: includes/class-freemius.php:4342
151
  msgid "No - just deactivate"
152
  msgstr "No - just deactivate"
153
 
154
+ #: includes/class-freemius.php:4387, includes/class-freemius.php:4881, includes/class-freemius.php:6032, includes/class-freemius.php:13153, includes/class-freemius.php:16558, includes/class-freemius.php:16646, includes/class-freemius.php:16812, includes/class-freemius.php:19040, includes/class-freemius.php:19381, includes/class-freemius.php:19391, includes/class-freemius.php:20051, includes/class-freemius.php:20924, includes/class-freemius.php:21039, includes/class-freemius.php:21183, templates/add-ons.php:57
155
  msgctxt "exclamation"
156
  msgid "Oops"
157
  msgstr "Oops"
158
 
159
+ #: includes/class-freemius.php:4456
160
  msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
161
  msgstr "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
162
 
163
+ #: includes/class-freemius.php:4878
164
  msgctxt "addonX cannot run without pluginY"
165
  msgid "%s cannot run without %s."
166
  msgstr "%s cannot run without %s."
167
 
168
+ #: includes/class-freemius.php:4879
169
  msgctxt "addonX cannot run..."
170
  msgid "%s cannot run without the plugin."
171
  msgstr "%s cannot run without the plugin."
172
 
173
+ #: includes/class-freemius.php:5052, includes/class-freemius.php:5077, includes/class-freemius.php:20122
174
  msgid "Unexpected API error. Please contact the %s's author with the following error."
175
  msgstr "Unexpected API error. Please contact the %s's author with the following error."
176
 
177
+ #: includes/class-freemius.php:5720
178
  msgid "Premium %s version was successfully activated."
179
  msgstr "Premium %s version was successfully activated."
180
 
181
+ #: includes/class-freemius.php:5732, includes/class-freemius.php:7599
182
  msgctxt "Used to express elation, enthusiasm, or triumph (especially in electronic communication)."
183
  msgid "W00t"
184
  msgstr "W00t"
185
 
186
+ #: includes/class-freemius.php:5747
187
  msgid "You have a %s license."
188
  msgstr "You have a %s license."
189
 
190
+ #: includes/class-freemius.php:5751, includes/class-freemius.php:15975, includes/class-freemius.php:15986, includes/class-freemius.php:19292, includes/class-freemius.php:19642, includes/class-freemius.php:19711, includes/class-freemius.php:19876
191
  msgctxt "interjection expressing joy or exuberance"
192
  msgid "Yee-haw"
193
  msgstr "Yee-haw"
194
 
195
+ #: includes/class-freemius.php:6015
196
  msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
197
  msgstr "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
198
 
199
+ #: includes/class-freemius.php:6019
200
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
201
  msgstr "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
202
 
203
+ #: includes/class-freemius.php:6028, templates/add-ons.php:186, templates/account/partials/addon.php:381
204
  msgid "More information about %s"
205
  msgstr "More information about %s"
206
 
207
+ #: includes/class-freemius.php:6029
208
  msgid "Purchase License"
209
  msgstr "Purchase License"
210
 
211
+ #: includes/class-freemius.php:6964, templates/connect.php:163
212
  msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
213
  msgstr "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
214
 
215
+ #: includes/class-freemius.php:6968
216
  msgid "start the trial"
217
  msgstr "start the trial"
218
 
219
+ #: includes/class-freemius.php:6969, templates/connect.php:167
220
  msgid "complete the install"
221
  msgstr "complete the install"
222
 
223
+ #: includes/class-freemius.php:7081
224
  msgid "You are just one step away - %s"
225
  msgstr "You are just one step away - %s"
226
 
227
+ #: includes/class-freemius.php:7084
228
  msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
229
  msgid "Complete \"%s\" Activation Now"
230
  msgstr "Complete \"%s\" Activation Now"
231
 
232
+ #: includes/class-freemius.php:7162
233
  msgid "We made a few tweaks to the %s, %s"
234
  msgstr "We made a few tweaks to the %s, %s"
235
 
236
+ #: includes/class-freemius.php:7166
237
  msgid "Opt in to make \"%s\" better!"
238
  msgstr "Opt in to make \"%s\" better!"
239
 
240
+ #: includes/class-freemius.php:7598
241
  msgid "The upgrade of %s was successfully completed."
242
  msgstr "The upgrade of %s was successfully completed."
243
 
244
+ #: includes/class-freemius.php:9802, includes/class-fs-plugin-updater.php:1038, includes/class-fs-plugin-updater.php:1233, includes/class-fs-plugin-updater.php:1240, templates/auto-installation.php:32
245
  msgid "Add-On"
246
  msgstr "Add-On"
247
 
248
+ #: includes/class-freemius.php:9804, templates/account.php:335, templates/account.php:343, templates/debug.php:360, templates/debug.php:551
249
  msgid "Plugin"
250
  msgstr "Plugin"
251
 
252
+ #: includes/class-freemius.php:9805, templates/account.php:336, templates/account.php:344, templates/debug.php:360, templates/debug.php:551, templates/forms/deactivation/form.php:71
253
  msgid "Theme"
254
  msgstr "Theme"
255
 
256
+ #: includes/class-freemius.php:12596
257
  msgid "An unknown error has occurred while trying to set the user's beta mode."
258
  msgstr "An unknown error has occurred while trying to set the user's beta mode."
259
 
260
+ #: includes/class-freemius.php:13020
261
  msgid "Invalid site details collection."
262
  msgstr "Invalid site details collection."
263
 
264
+ #: includes/class-freemius.php:13140
265
  msgid "We couldn't find your email address in the system, are you sure it's the right address?"
266
  msgstr "We couldn't find your email address in the system, are you sure it's the right address?"
267
 
268
+ #: includes/class-freemius.php:13142
269
  msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
270
  msgstr "We can't see any active licenses associated with that email address, are you sure it's the right address?"
271
 
272
+ #: includes/class-freemius.php:13416
273
  msgid "Account is pending activation."
274
  msgstr "Account is pending activation."
275
 
276
+ #: includes/class-freemius.php:13528, templates/forms/premium-versions-upgrade-handler.php:47
277
  msgid "Buy a license now"
278
  msgstr "Buy a license now"
279
 
280
+ #: includes/class-freemius.php:13540, templates/forms/premium-versions-upgrade-handler.php:46
281
  msgid "Renew your license now"
282
  msgstr "Renew your license now"
283
 
284
+ #: includes/class-freemius.php:13544
285
  msgid "%s to access version %s security & feature updates, and support."
286
  msgstr "%s to access version %s security & feature updates, and support."
287
 
288
+ #: includes/class-freemius.php:15957
289
  msgid "%s activation was successfully completed."
290
  msgstr "%s activation was successfully completed."
291
 
292
+ #: includes/class-freemius.php:15971
293
  msgid "Your account was successfully activated with the %s plan."
294
  msgstr "Your account was successfully activated with the %s plan."
295
 
296
+ #: includes/class-freemius.php:15982, includes/class-freemius.php:19707
297
  msgid "Your trial has been successfully started."
298
  msgstr "Your trial has been successfully started."
299
 
300
+ #: includes/class-freemius.php:16556, includes/class-freemius.php:16644, includes/class-freemius.php:16810
301
  msgid "Couldn't activate %s."
302
  msgstr "Couldn't activate %s."
303
 
304
+ #: includes/class-freemius.php:16557, includes/class-freemius.php:16645, includes/class-freemius.php:16811
305
  msgid "Please contact us with the following message:"
306
  msgstr "Please contact us with the following message:"
307
 
308
+ #: includes/class-freemius.php:16641, templates/forms/data-debug-mode.php:162
309
  msgid "An unknown error has occurred."
310
  msgstr "An unknown error has occurred."
311
 
312
+ #: includes/class-freemius.php:17168, includes/class-freemius.php:22082
313
  msgid "Upgrade"
314
  msgstr "Upgrade"
315
 
316
+ #: includes/class-freemius.php:17174
317
  msgid "Start Trial"
318
  msgstr "Start Trial"
319
 
320
+ #: includes/class-freemius.php:17176
321
  msgid "Pricing"
322
  msgstr "Pricing"
323
 
324
+ #: includes/class-freemius.php:17256, includes/class-freemius.php:17258
325
  msgid "Affiliation"
326
  msgstr "Affiliation"
327
 
328
+ #: includes/class-freemius.php:17286, includes/class-freemius.php:17288, templates/account.php:183, templates/debug.php:326
329
  msgid "Account"
330
  msgstr "Account"
331
 
332
+ #: includes/class-freemius.php:17302, includes/class-freemius.php:17304, includes/customizer/class-fs-customizer-support-section.php:60
333
  msgid "Contact Us"
334
  msgstr "Contact Us"
335
 
336
+ #: includes/class-freemius.php:17315, includes/class-freemius.php:17317, includes/class-freemius.php:22096, templates/account.php:111, templates/account/partials/addon.php:44
337
  msgid "Add-Ons"
338
  msgstr "Add-Ons"
339
 
340
+ #: includes/class-freemius.php:17351
341
  msgctxt "ASCII arrow left icon"
342
  msgid "&#x2190;"
343
  msgstr "&#x2190;"
344
 
345
+ #: includes/class-freemius.php:17351
346
  msgctxt "ASCII arrow right icon"
347
  msgid "&#x27a4;"
348
  msgstr "&#x27a4;"
349
 
350
+ #: includes/class-freemius.php:17353, templates/pricing.php:103
351
  msgctxt "noun"
352
  msgid "Pricing"
353
  msgstr "Pricing"
354
 
355
+ #: includes/class-freemius.php:17566, includes/customizer/class-fs-customizer-support-section.php:67
356
  msgid "Support Forum"
357
  msgstr "Support Forum"
358
 
359
+ #: includes/class-freemius.php:18536
360
  msgid "Your email has been successfully verified - you are AWESOME!"
361
  msgstr "Your email has been successfully verified - you are AWESOME!"
362
 
363
+ #: includes/class-freemius.php:18537
364
  msgctxt "a positive response"
365
  msgid "Right on"
366
  msgstr "Right on"
367
 
368
+ #: includes/class-freemius.php:19041
369
+ msgid "seems like the key you entered doesn't match our records."
370
+ msgstr "seems like the key you entered doesn't match our records."
371
+
372
+ #: includes/class-freemius.php:19065
373
+ msgid "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
374
+ msgstr "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
375
+
376
+ #: includes/class-freemius.php:19283
377
  msgid "Your %s Add-on plan was successfully upgraded."
378
  msgstr "Your %s Add-on plan was successfully upgraded."
379
 
380
+ #: includes/class-freemius.php:19285
381
  msgid "%s Add-on was successfully purchased."
382
  msgstr "%s Add-on was successfully purchased."
383
 
384
+ #: includes/class-freemius.php:19288
385
  msgid "Download the latest version"
386
  msgstr "Download the latest version"
387
 
388
+ #: includes/class-freemius.php:19374
389
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
390
  msgstr "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
391
 
392
+ #: includes/class-freemius.php:19380, includes/class-freemius.php:19390, includes/class-freemius.php:19835, includes/class-freemius.php:19924
393
  msgid "Error received from the server:"
394
  msgstr "Error received from the server:"
395
 
396
+ #: includes/class-freemius.php:19390
397
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
398
  msgstr "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
399
 
400
+ #: includes/class-freemius.php:19604, includes/class-freemius.php:19840, includes/class-freemius.php:19895, includes/class-freemius.php:19998
401
  msgctxt "something somebody says when they are thinking about what you have just said."
402
  msgid "Hmm"
403
  msgstr "Hmm"
404
 
405
+ #: includes/class-freemius.php:19617
406
  msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
407
  msgstr "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
408
 
409
+ #: includes/class-freemius.php:19618, templates/account.php:113, templates/add-ons.php:250, templates/account/partials/addon.php:46
410
  msgctxt "trial period"
411
  msgid "Trial"
412
  msgstr "Trial"
413
 
414
+ #: includes/class-freemius.php:19623
415
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
416
  msgstr "I have upgraded my account but when I try to Sync the License, the plan remains %s."
417
 
418
+ #: includes/class-freemius.php:19627, includes/class-freemius.php:19686
419
  msgid "Please contact us here"
420
  msgstr "Please contact us here"
421
 
422
+ #: includes/class-freemius.php:19638
423
  msgid "Your plan was successfully activated."
424
  msgstr "Your plan was successfully activated."
425
 
426
+ #: includes/class-freemius.php:19639
427
  msgid "Your plan was successfully upgraded."
428
  msgstr "Your plan was successfully upgraded."
429
 
430
+ #: includes/class-freemius.php:19656
431
  msgid "Your plan was successfully changed to %s."
432
  msgstr "Your plan was successfully changed to %s."
433
 
434
+ #: includes/class-freemius.php:19672
435
  msgid "Your license has expired. You can still continue using the free %s forever."
436
  msgstr "Your license has expired. You can still continue using the free %s forever."
437
 
438
+ #: includes/class-freemius.php:19674
439
  msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
440
  msgstr "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
441
 
442
+ #: includes/class-freemius.php:19682
443
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
444
  msgstr "Your license has been cancelled. If you think it's a mistake, please contact support."
445
 
446
+ #: includes/class-freemius.php:19695
447
  msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
448
  msgstr "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
449
 
450
+ #: includes/class-freemius.php:19721
451
  msgid "Your free trial has expired. You can still continue using all our free features."
452
  msgstr "Your free trial has expired. You can still continue using all our free features."
453
 
454
+ #: includes/class-freemius.php:19723
455
  msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
456
  msgstr "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
457
 
458
+ #: includes/class-freemius.php:19831
459
  msgid "It looks like the license could not be activated."
460
  msgstr "It looks like the license could not be activated."
461
 
462
+ #: includes/class-freemius.php:19873
463
  msgid "Your license was successfully activated."
464
  msgstr "Your license was successfully activated."
465
 
466
+ #: includes/class-freemius.php:19899
467
  msgid "It looks like your site currently doesn't have an active license."
468
  msgstr "It looks like your site currently doesn't have an active license."
469
 
470
+ #: includes/class-freemius.php:19923
471
  msgid "It looks like the license deactivation failed."
472
  msgstr "It looks like the license deactivation failed."
473
 
474
+ #: includes/class-freemius.php:19951
475
  msgid "Your license was successfully deactivated, you are back to the %s plan."
476
  msgstr "Your license was successfully deactivated, you are back to the %s plan."
477
 
478
+ #: includes/class-freemius.php:19952
479
  msgid "O.K"
480
  msgstr "O.K"
481
 
482
+ #: includes/class-freemius.php:20005
483
  msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
484
  msgstr "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
485
 
486
+ #: includes/class-freemius.php:20014
487
  msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
488
  msgstr "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
489
 
490
+ #: includes/class-freemius.php:20056
491
  msgid "You are already running the %s in a trial mode."
492
  msgstr "You are already running the %s in a trial mode."
493
 
494
+ #: includes/class-freemius.php:20067
495
  msgid "You already utilized a trial before."
496
  msgstr "You already utilized a trial before."
497
 
498
+ #: includes/class-freemius.php:20081
499
  msgid "Plan %s do not exist, therefore, can't start a trial."
500
  msgstr "Plan %s do not exist, therefore, can't start a trial."
501
 
502
+ #: includes/class-freemius.php:20092
503
  msgid "Plan %s does not support a trial period."
504
  msgstr "Plan %s does not support a trial period."
505
 
506
+ #: includes/class-freemius.php:20103
507
  msgid "None of the %s's plans supports a trial period."
508
  msgstr "None of the %s's plans supports a trial period."
509
 
510
+ #: includes/class-freemius.php:20153
511
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
512
  msgstr "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
513
 
514
+ #: includes/class-freemius.php:20189
515
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
516
  msgstr "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
517
 
518
+ #: includes/class-freemius.php:20208
519
  msgid "Your %s free trial was successfully cancelled."
520
  msgstr "Your %s free trial was successfully cancelled."
521
 
522
+ #: includes/class-freemius.php:20524
523
  msgid "Version %s was released."
524
  msgstr "Version %s was released."
525
 
526
+ #: includes/class-freemius.php:20524
527
  msgid "Please download %s."
528
  msgstr "Please download %s."
529
 
530
+ #: includes/class-freemius.php:20531
531
  msgid "the latest %s version here"
532
  msgstr "the latest %s version here"
533
 
534
+ #: includes/class-freemius.php:20536
535
  msgid "New"
536
  msgstr "New"
537
 
538
+ #: includes/class-freemius.php:20541
539
  msgid "Seems like you got the latest release."
540
  msgstr "Seems like you got the latest release."
541
 
542
+ #: includes/class-freemius.php:20542
543
  msgid "You are all good!"
544
  msgstr "You are all good!"
545
 
546
+ #: includes/class-freemius.php:20812
547
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
548
  msgstr "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
549
 
550
+ #: includes/class-freemius.php:20951
551
  msgid "Site successfully opted in."
552
  msgstr "Site successfully opted in."
553
 
554
+ #: includes/class-freemius.php:20952, includes/class-freemius.php:21792
555
  msgid "Awesome"
556
  msgstr "Awesome"
557
 
558
+ #: includes/class-freemius.php:20968, templates/forms/optout.php:32
559
  msgid "We appreciate your help in making the %s better by letting us track some usage data."
560
  msgstr "We appreciate your help in making the %s better by letting us track some usage data."
561
 
562
+ #: includes/class-freemius.php:20969
563
  msgid "Thank you!"
564
  msgstr "Thank you!"
565
 
566
+ #: includes/class-freemius.php:20976
567
  msgid "We will no longer be sending any usage data of %s on %s to %s."
568
  msgstr "We will no longer be sending any usage data of %s on %s to %s."
569
 
570
+ #: includes/class-freemius.php:21105
571
  msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
572
  msgstr "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
573
 
574
+ #: includes/class-freemius.php:21111
575
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
576
  msgstr "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
577
 
578
+ #: includes/class-freemius.php:21116
579
  msgid "%s is the new owner of the account."
580
  msgstr "%s is the new owner of the account."
581
 
582
+ #: includes/class-freemius.php:21118
583
  msgctxt "as congratulations"
584
  msgid "Congrats"
585
  msgstr "Congrats"
586
 
587
+ #: includes/class-freemius.php:21138
588
  msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
589
  msgstr "Sorry, we could not complete the email update. Another user with the same email is already registered."
590
 
591
+ #: includes/class-freemius.php:21139
592
  msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
593
  msgstr "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
594
 
595
+ #: includes/class-freemius.php:21146
596
  msgid "Change Ownership"
597
  msgstr "Change Ownership"
598
 
599
+ #: includes/class-freemius.php:21154
600
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
601
  msgstr "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
602
 
603
+ #: includes/class-freemius.php:21166
604
  msgid "Please provide your full name."
605
  msgstr "Please provide your full name."
606
 
607
+ #: includes/class-freemius.php:21171
608
  msgid "Your name was successfully updated."
609
  msgstr "Your name was successfully updated."
610
 
611
+ #: includes/class-freemius.php:21232
612
  msgid "You have successfully updated your %s."
613
  msgstr "You have successfully updated your %s."
614
 
615
+ #: includes/class-freemius.php:21372
616
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
617
  msgstr "Just letting you know that the add-ons information of %s is being pulled from an external server."
618
 
619
+ #: includes/class-freemius.php:21373
620
  msgctxt "advance notice of something that will need attention."
621
  msgid "Heads up"
622
  msgstr "Heads up"
623
 
624
+ #: includes/class-freemius.php:21832
625
  msgctxt "exclamation"
626
  msgid "Hey"
627
  msgstr "Hey"
628
 
629
+ #: includes/class-freemius.php:21832
630
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
631
  msgstr "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
632
 
633
+ #: includes/class-freemius.php:21840
634
  msgid "No commitment for %s days - cancel anytime!"
635
  msgstr "No commitment for %s days - cancel anytime!"
636
 
637
+ #: includes/class-freemius.php:21841
638
  msgid "No credit card required"
639
  msgstr "No credit card required"
640
 
641
+ #: includes/class-freemius.php:21848, templates/forms/trial-start.php:53
642
  msgctxt "call to action"
643
  msgid "Start free trial"
644
  msgstr "Start free trial"
645
 
646
+ #: includes/class-freemius.php:21925
647
  msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
648
  msgstr "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
649
 
650
+ #: includes/class-freemius.php:21934
651
  msgid "Learn more"
652
  msgstr "Learn more"
653
 
654
+ #: includes/class-freemius.php:22120, templates/account.php:499, templates/account.php:624, templates/connect.php:171, templates/connect.php:421, templates/forms/license-activation.php:27, templates/account/partials/addon.php:321
655
  msgid "Activate License"
656
  msgstr "Activate License"
657
 
658
+ #: includes/class-freemius.php:22121, templates/account.php:571, templates/account.php:623, templates/account/partials/addon.php:322, templates/account/partials/site.php:271
659
  msgid "Change License"
660
  msgstr "Change License"
661
 
662
+ #: includes/class-freemius.php:22217, templates/account/partials/site.php:169
663
  msgid "Opt Out"
664
  msgstr "Opt Out"
665
 
666
+ #: includes/class-freemius.php:22219, includes/class-freemius.php:22225, templates/account/partials/site.php:49, templates/account/partials/site.php:169
667
  msgid "Opt In"
668
  msgstr "Opt In"
669
 
670
+ #: includes/class-freemius.php:22453
671
  msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
672
  msgstr " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
673
 
674
+ #: includes/class-freemius.php:22461
675
  msgid "Activate %s features"
676
  msgstr "Activate %s features"
677
 
678
+ #: includes/class-freemius.php:22474
679
  msgid "Please follow these steps to complete the upgrade"
680
  msgstr "Please follow these steps to complete the upgrade"
681
 
682
+ #: includes/class-freemius.php:22478
683
  msgid "Download the latest %s version"
684
  msgstr "Download the latest %s version"
685
 
686
+ #: includes/class-freemius.php:22482
687
  msgid "Upload and activate the downloaded version"
688
  msgstr "Upload and activate the downloaded version"
689
 
690
+ #: includes/class-freemius.php:22484
691
  msgid "How to upload and activate?"
692
  msgstr "How to upload and activate?"
693
 
694
+ #: includes/class-freemius.php:22618
695
  msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
696
  msgstr "%sClick here%s to choose the sites where you'd like to activate the license on."
697
 
698
+ #: includes/class-freemius.php:22779
699
  msgid "Auto installation only works for opted-in users."
700
  msgstr "Auto installation only works for opted-in users."
701
 
702
+ #: includes/class-freemius.php:22789, includes/class-freemius.php:22822, includes/class-fs-plugin-updater.php:1212, includes/class-fs-plugin-updater.php:1226
703
  msgid "Invalid module ID."
704
  msgstr "Invalid module ID."
705
 
706
+ #: includes/class-freemius.php:22798, includes/class-fs-plugin-updater.php:1248
707
  msgid "Premium version already active."
708
  msgstr "Premium version already active."
709
 
710
+ #: includes/class-freemius.php:22805
711
  msgid "You do not have a valid license to access the premium version."
712
  msgstr "You do not have a valid license to access the premium version."
713
 
714
+ #: includes/class-freemius.php:22812
715
  msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
716
  msgstr "Plugin is a \"Serviceware\" which means it does not have a premium code version."
717
 
718
+ #: includes/class-freemius.php:22830, includes/class-fs-plugin-updater.php:1247
719
  msgid "Premium add-on version already installed."
720
  msgstr "Premium add-on version already installed."
721
 
722
+ #: includes/class-freemius.php:23180
723
  msgid "View paid features"
724
  msgstr "View paid features"
725
 
726
+ #: includes/class-freemius.php:23502
727
  msgid "Thank you so much for using %s and its add-ons!"
728
  msgstr "Thank you so much for using %s and its add-ons!"
729
 
730
+ #: includes/class-freemius.php:23503
731
  msgid "Thank you so much for using %s!"
732
  msgstr "Thank you so much for using %s!"
733
 
734
+ #: includes/class-freemius.php:23509
735
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
736
  msgstr "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
737
 
738
+ #: includes/class-freemius.php:23513
739
  msgid "Thank you so much for using our products!"
740
  msgstr "Thank you so much for using our products!"
741
 
742
+ #: includes/class-freemius.php:23514
743
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
744
  msgstr "You've already opted-in to our usage-tracking, which helps us keep improving them."
745
 
746
+ #: includes/class-freemius.php:23533
747
  msgid "%s and its add-ons"
748
  msgstr "%s and its add-ons"
749
 
750
+ #: includes/class-freemius.php:23542
751
  msgid "Products"
752
  msgstr "Products"
753
 
754
+ #: includes/class-freemius.php:23549, templates/connect.php:272
755
  msgid "Yes"
756
  msgstr "Yes"
757
 
758
+ #: includes/class-freemius.php:23550, templates/connect.php:273
759
  msgid "send me security & feature updates, educational content and offers."
760
  msgstr "send me security & feature updates, educational content and offers."
761
 
762
+ #: includes/class-freemius.php:23551, templates/connect.php:278
763
  msgid "No"
764
  msgstr "No"
765
 
766
+ #: includes/class-freemius.php:23553, templates/connect.php:280
767
  msgid "do %sNOT%s send me security & feature updates, educational content and offers."
768
  msgstr "do %sNOT%s send me security & feature updates, educational content and offers."
769
 
770
+ #: includes/class-freemius.php:23563
771
  msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
772
  msgstr "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
773
 
774
+ #: includes/class-freemius.php:23565, templates/connect.php:287
775
  msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
776
  msgstr "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
777
 
778
+ #: includes/class-freemius.php:23847
779
  msgid "License key is empty."
780
  msgstr "License key is empty."
781
 
782
+ #: includes/class-fs-plugin-updater.php:206, templates/forms/premium-versions-upgrade-handler.php:57
783
  msgid "Renew license"
784
  msgstr "Renew license"
785
 
786
+ #: includes/class-fs-plugin-updater.php:211, templates/forms/premium-versions-upgrade-handler.php:58
787
  msgid "Buy license"
788
  msgstr "Buy license"
789
 
790
+ #: includes/class-fs-plugin-updater.php:321, includes/class-fs-plugin-updater.php:354
791
  msgid "There is a %s of %s available."
792
  msgstr "There is a %s of %s available."
793
 
794
+ #: includes/class-fs-plugin-updater.php:323, includes/class-fs-plugin-updater.php:359
795
  msgid "new Beta version"
796
  msgstr "new Beta version"
797
 
798
+ #: includes/class-fs-plugin-updater.php:324, includes/class-fs-plugin-updater.php:360
799
  msgid "new version"
800
  msgstr "new version"
801
 
802
+ #: includes/class-fs-plugin-updater.php:383
803
  msgid "Important Upgrade Notice:"
804
  msgstr "Important Upgrade Notice:"
805
 
806
+ #: includes/class-fs-plugin-updater.php:1277
807
  msgid "Installing plugin: %s"
808
  msgstr "Installing plugin: %s"
809
 
810
+ #: includes/class-fs-plugin-updater.php:1318
811
  msgid "Unable to connect to the filesystem. Please confirm your credentials."
812
  msgstr "Unable to connect to the filesystem. Please confirm your credentials."
813
 
814
+ #: includes/class-fs-plugin-updater.php:1500
815
  msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
816
  msgstr "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
817
 
818
+ #: includes/fs-plugin-info-dialog.php:535
819
  msgid "Purchase More"
820
  msgstr "Purchase More"
821
 
822
+ #: includes/fs-plugin-info-dialog.php:536, templates/account/partials/addon.php:385
823
  msgctxt "verb"
824
  msgid "Purchase"
825
  msgstr "Purchase"
826
 
827
+ #: includes/fs-plugin-info-dialog.php:540
828
  msgid "Start my free %s"
829
  msgstr "Start my free %s"
830
 
831
+ #: includes/fs-plugin-info-dialog.php:738
832
  msgid "Install Free Version Update Now"
833
  msgstr "Install Free Version Update Now"
834
 
835
+ #: includes/fs-plugin-info-dialog.php:739, templates/account.php:560
836
  msgid "Install Update Now"
837
  msgstr "Install Update Now"
838
 
839
+ #: includes/fs-plugin-info-dialog.php:748
840
  msgid "Install Free Version Now"
841
  msgstr "Install Free Version Now"
842
 
843
+ #: includes/fs-plugin-info-dialog.php:749, templates/add-ons.php:323, templates/auto-installation.php:111, templates/account/partials/addon.php:365, templates/account/partials/addon.php:418
844
  msgid "Install Now"
845
  msgstr "Install Now"
846
 
847
+ #: includes/fs-plugin-info-dialog.php:765
848
  msgctxt "as download latest version"
849
  msgid "Download Latest Free Version"
850
  msgstr "Download Latest Free Version"
851
 
852
+ #: includes/fs-plugin-info-dialog.php:766, templates/account.php:91, templates/add-ons.php:37, templates/account/partials/addon.php:25
853
  msgctxt "as download latest version"
854
  msgid "Download Latest"
855
  msgstr "Download Latest"
856
 
857
+ #: includes/fs-plugin-info-dialog.php:781, templates/add-ons.php:329, templates/account/partials/addon.php:356, templates/account/partials/addon.php:412
858
  msgid "Activate this add-on"
859
  msgstr "Activate this add-on"
860
 
861
+ #: includes/fs-plugin-info-dialog.php:783, templates/connect.php:418
862
  msgid "Activate Free Version"
863
  msgstr "Activate Free Version"
864
 
865
+ #: includes/fs-plugin-info-dialog.php:784, templates/account.php:115, templates/add-ons.php:330, templates/account/partials/addon.php:48
866
  msgid "Activate"
867
  msgstr "Activate"
868
 
869
+ #: includes/fs-plugin-info-dialog.php:994
870
  msgctxt "Plugin installer section title"
871
  msgid "Description"
872
  msgstr "Description"
873
 
874
+ #: includes/fs-plugin-info-dialog.php:995
875
  msgctxt "Plugin installer section title"
876
  msgid "Installation"
877
  msgstr "Installation"
878
 
879
+ #: includes/fs-plugin-info-dialog.php:996
880
  msgctxt "Plugin installer section title"
881
  msgid "FAQ"
882
  msgstr "FAQ"
883
 
884
+ #: includes/fs-plugin-info-dialog.php:997, templates/plugin-info/description.php:55
885
  msgid "Screenshots"
886
  msgstr "Screenshots"
887
 
888
+ #: includes/fs-plugin-info-dialog.php:998
889
  msgctxt "Plugin installer section title"
890
  msgid "Changelog"
891
  msgstr "Changelog"
892
 
893
+ #: includes/fs-plugin-info-dialog.php:999
894
  msgctxt "Plugin installer section title"
895
  msgid "Reviews"
896
  msgstr "Reviews"
897
 
898
+ #: includes/fs-plugin-info-dialog.php:1000
899
  msgctxt "Plugin installer section title"
900
  msgid "Other Notes"
901
  msgstr "Other Notes"
902
 
903
+ #: includes/fs-plugin-info-dialog.php:1015
904
  msgctxt "Plugin installer section title"
905
  msgid "Features & Pricing"
906
  msgstr "Features & Pricing"
907
 
908
+ #: includes/fs-plugin-info-dialog.php:1025
909
  msgid "Plugin Install"
910
  msgstr "Plugin Install"
911
 
912
+ #: includes/fs-plugin-info-dialog.php:1097
913
  msgctxt "e.g. Professional Plan"
914
  msgid "%s Plan"
915
  msgstr "%s Plan"
916
 
917
+ #: includes/fs-plugin-info-dialog.php:1123
918
  msgctxt "e.g. the best product"
919
  msgid "Best"
920
  msgstr "Best"
921
 
922
+ #: includes/fs-plugin-info-dialog.php:1129, includes/fs-plugin-info-dialog.php:1149
923
  msgctxt "as every month"
924
  msgid "Monthly"
925
  msgstr "Monthly"
926
 
927
+ #: includes/fs-plugin-info-dialog.php:1132
928
  msgctxt "as once a year"
929
  msgid "Annual"
930
  msgstr "Annual"
931
 
932
+ #: includes/fs-plugin-info-dialog.php:1135
933
  msgid "Lifetime"
934
  msgstr "Lifetime"
935
 
936
+ #: includes/fs-plugin-info-dialog.php:1149, includes/fs-plugin-info-dialog.php:1151, includes/fs-plugin-info-dialog.php:1153
937
  msgctxt "e.g. billed monthly"
938
  msgid "Billed %s"
939
  msgstr "Billed %s"
940
 
941
+ #: includes/fs-plugin-info-dialog.php:1151
942
  msgctxt "as once a year"
943
  msgid "Annually"
944
  msgstr "Annually"
945
 
946
+ #: includes/fs-plugin-info-dialog.php:1153
947
  msgctxt "as once a year"
948
  msgid "Once"
949
  msgstr "Once"
950
 
951
+ #: includes/fs-plugin-info-dialog.php:1159
952
  msgid "Single Site License"
953
  msgstr "Single Site License"
954
 
955
+ #: includes/fs-plugin-info-dialog.php:1161
956
  msgid "Unlimited Licenses"
957
  msgstr "Unlimited Licenses"
958
 
959
+ #: includes/fs-plugin-info-dialog.php:1163
960
  msgid "Up to %s Sites"
961
  msgstr "Up to %s Sites"
962
 
963
+ #: includes/fs-plugin-info-dialog.php:1173, templates/plugin-info/features.php:82
964
  msgctxt "as monthly period"
965
  msgid "mo"
966
  msgstr "mo"
967
 
968
+ #: includes/fs-plugin-info-dialog.php:1180, templates/plugin-info/features.php:80
969
  msgctxt "as annual period"
970
  msgid "year"
971
  msgstr "year"
972
 
973
+ #: includes/fs-plugin-info-dialog.php:1234
974
  msgctxt "noun"
975
  msgid "Price"
976
  msgstr "Price"
977
 
978
+ #: includes/fs-plugin-info-dialog.php:1282
979
  msgid "Save %s"
980
  msgstr "Save %s"
981
 
982
+ #: includes/fs-plugin-info-dialog.php:1292
983
  msgid "No commitment for %s - cancel anytime"
984
  msgstr "No commitment for %s - cancel anytime"
985
 
986
+ #: includes/fs-plugin-info-dialog.php:1295
987
  msgid "After your free %s, pay as little as %s"
988
  msgstr "After your free %s, pay as little as %s"
989
 
990
+ #: includes/fs-plugin-info-dialog.php:1306
991
  msgid "Details"
992
  msgstr "Details"
993
 
994
+ #: includes/fs-plugin-info-dialog.php:1310, templates/account.php:102, templates/debug.php:203, templates/debug.php:240, templates/debug.php:457, templates/account/partials/addon.php:36
995
  msgctxt "product version"
996
  msgid "Version"
997
  msgstr "Version"
998
 
999
+ #: includes/fs-plugin-info-dialog.php:1317
1000
  msgctxt "as the plugin author"
1001
  msgid "Author"
1002
  msgstr "Author"
1003
 
1004
+ #: includes/fs-plugin-info-dialog.php:1324
1005
  msgid "Last Updated"
1006
  msgstr "Last Updated"
1007
 
1008
+ #: includes/fs-plugin-info-dialog.php:1329, templates/account.php:468
1009
  msgctxt "x-ago"
1010
  msgid "%s ago"
1011
  msgstr "%s ago"
1012
 
1013
+ #: includes/fs-plugin-info-dialog.php:1338
1014
  msgid "Requires WordPress Version"
1015
  msgstr "Requires WordPress Version"
1016
 
1017
+ #: includes/fs-plugin-info-dialog.php:1339
1018
  msgid "%s or higher"
1019
  msgstr "%s or higher"
1020
 
1021
+ #: includes/fs-plugin-info-dialog.php:1346
1022
  msgid "Compatible up to"
1023
  msgstr "Compatible up to"
1024
 
1025
+ #: includes/fs-plugin-info-dialog.php:1354
1026
  msgid "Downloaded"
1027
  msgstr "Downloaded"
1028
 
1029
+ #: includes/fs-plugin-info-dialog.php:1358
1030
  msgid "%s time"
1031
  msgstr "%s time"
1032
 
1033
+ #: includes/fs-plugin-info-dialog.php:1360
1034
  msgid "%s times"
1035
  msgstr "%s times"
1036
 
1037
+ #: includes/fs-plugin-info-dialog.php:1370
1038
  msgid "WordPress.org Plugin Page"
1039
  msgstr "WordPress.org Plugin Page"
1040
 
1041
+ #: includes/fs-plugin-info-dialog.php:1378
1042
  msgid "Plugin Homepage"
1043
  msgstr "Plugin Homepage"
1044
 
1045
+ #: includes/fs-plugin-info-dialog.php:1386, includes/fs-plugin-info-dialog.php:1468
1046
  msgid "Donate to this plugin"
1047
  msgstr "Donate to this plugin"
1048
 
1049
+ #: includes/fs-plugin-info-dialog.php:1393
1050
  msgid "Average Rating"
1051
  msgstr "Average Rating"
1052
 
1053
+ #: includes/fs-plugin-info-dialog.php:1400
1054
  msgid "based on %s"
1055
  msgstr "based on %s"
1056
 
1057
+ #: includes/fs-plugin-info-dialog.php:1404
1058
  msgid "%s rating"
1059
  msgstr "%s rating"
1060
 
1061
+ #: includes/fs-plugin-info-dialog.php:1406
1062
  msgid "%s ratings"
1063
  msgstr "%s ratings"
1064
 
1065
+ #: includes/fs-plugin-info-dialog.php:1421
1066
  msgid "%s star"
1067
  msgstr "%s star"
1068
 
1069
+ #: includes/fs-plugin-info-dialog.php:1423
1070
  msgid "%s stars"
1071
  msgstr "%s stars"
1072
 
1073
+ #: includes/fs-plugin-info-dialog.php:1434
1074
  msgid "Click to see reviews that provided a rating of %s"
1075
  msgstr "Click to see reviews that provided a rating of %s"
1076
 
1077
+ #: includes/fs-plugin-info-dialog.php:1447
1078
  msgid "Contributors"
1079
  msgstr "Contributors"
1080
 
1081
+ #: includes/fs-plugin-info-dialog.php:1476, includes/fs-plugin-info-dialog.php:1478
1082
  msgid "Warning"
1083
  msgstr "Warning"
1084
 
1085
+ #: includes/fs-plugin-info-dialog.php:1476
1086
  msgid "This plugin has not been tested with your current version of WordPress."
1087
  msgstr "This plugin has not been tested with your current version of WordPress."
1088
 
1089
+ #: includes/fs-plugin-info-dialog.php:1478
1090
  msgid "This plugin has not been marked as compatible with your version of WordPress."
1091
  msgstr "This plugin has not been marked as compatible with your version of WordPress."
1092
 
1093
+ #: includes/fs-plugin-info-dialog.php:1497
1094
  msgid "Paid add-on must be deployed to Freemius."
1095
  msgstr "Paid add-on must be deployed to Freemius."
1096
 
1097
+ #: includes/fs-plugin-info-dialog.php:1498
1098
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1099
  msgstr "Add-on must be deployed to WordPress.org or Freemius."
1100
 
1101
+ #: includes/fs-plugin-info-dialog.php:1519
1102
  msgid "Newer Version (%s) Installed"
1103
  msgstr "Newer Version (%s) Installed"
1104
 
1105
+ #: includes/fs-plugin-info-dialog.php:1520
1106
  msgid "Newer Free Version (%s) Installed"
1107
  msgstr "Newer Free Version (%s) Installed"
1108
 
1109
+ #: includes/fs-plugin-info-dialog.php:1527
1110
  msgid "Latest Version Installed"
1111
  msgstr "Latest Version Installed"
1112
 
1113
+ #: includes/fs-plugin-info-dialog.php:1528
1114
  msgid "Latest Free Version Installed"
1115
  msgstr "Latest Free Version Installed"
1116
 
1117
+ #: templates/account.php:92, templates/forms/subscription-cancellation.php:96, templates/account/partials/addon.php:26, templates/account/partials/site.php:311
1118
  msgid "Downgrading your plan"
1119
  msgstr "Downgrading your plan"
1120
 
1121
+ #: templates/account.php:93, templates/forms/subscription-cancellation.php:97, templates/account/partials/addon.php:27, templates/account/partials/site.php:312
1122
  msgid "Cancelling the subscription"
1123
  msgstr "Cancelling the subscription"
1124
 
1125
  #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
1126
+ #: templates/account.php:95, templates/forms/subscription-cancellation.php:99, templates/account/partials/site.php:314
1127
  msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1128
  msgstr "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1129
 
1130
+ #: templates/account.php:96, templates/forms/subscription-cancellation.php:100, templates/account/partials/addon.php:30, templates/account/partials/site.php:315
1131
  msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1132
  msgstr "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1133
 
1134
+ #: templates/account.php:97, templates/forms/subscription-cancellation.php:106, templates/account/partials/addon.php:31
1135
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1136
  msgstr "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1137
 
1138
+ #: templates/account.php:98, templates/forms/subscription-cancellation.php:101, templates/account/partials/addon.php:32, templates/account/partials/site.php:316
1139
  msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1140
  msgstr "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1141
 
1142
+ #: templates/account.php:99, templates/forms/subscription-cancellation.php:102, templates/account/partials/addon.php:33, templates/account/partials/site.php:317
1143
  msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1144
  msgstr "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1145
 
1146
  #. translators: %s: Plan title (e.g. "Professional")
1147
+ #: templates/account.php:101, templates/account/partials/activate-license-button.php:31, templates/account/partials/addon.php:35
1148
  msgid "Activate %s Plan"
1149
  msgstr "Activate %s Plan"
1150
 
1151
  #. translators: %s: Time period (e.g. Auto renews in "2 months")
1152
+ #: templates/account.php:104, templates/account/partials/addon.php:38, templates/account/partials/site.php:291
1153
  msgid "Auto renews in %s"
1154
  msgstr "Auto renews in %s"
1155
 
1156
  #. translators: %s: Time period (e.g. Expires in "2 months")
1157
+ #: templates/account.php:106, templates/account/partials/addon.php:40, templates/account/partials/site.php:293
1158
  msgid "Expires in %s"
1159
  msgstr "Expires in %s"
1160
 
1161
+ #: templates/account.php:107
1162
  msgctxt "as synchronize license"
1163
  msgid "Sync License"
1164
  msgstr "Sync License"
1165
 
1166
+ #: templates/account.php:108, templates/account/partials/addon.php:41
1167
  msgid "Cancel Trial"
1168
  msgstr "Cancel Trial"
1169
 
1170
+ #: templates/account.php:109, templates/account/partials/addon.php:42
1171
  msgid "Change Plan"
1172
  msgstr "Change Plan"
1173
 
1174
+ #: templates/account.php:110, templates/account/partials/addon.php:43
1175
  msgctxt "verb"
1176
  msgid "Upgrade"
1177
  msgstr "Upgrade"
1178
 
1179
+ #: templates/account.php:112, templates/account/partials/addon.php:45, templates/account/partials/site.php:318
1180
  msgctxt "verb"
1181
  msgid "Downgrade"
1182
  msgstr "Downgrade"
1183
 
1184
+ #: templates/account.php:114, templates/add-ons.php:246, templates/plugin-info/features.php:72, templates/account/partials/addon.php:47, templates/account/partials/site.php:33
1185
  msgid "Free"
1186
  msgstr "Free"
1187
 
1188
+ #: templates/account.php:116, templates/debug.php:373, includes/customizer/class-fs-customizer-upsell-control.php:110, templates/account/partials/addon.php:49
1189
  msgctxt "as product pricing plan"
1190
  msgid "Plan"
1191
  msgstr "Plan"
1192
 
1193
+ #: templates/account.php:117
1194
  msgid "Bundle Plan"
1195
  msgstr "Bundle Plan"
1196
 
1197
+ #: templates/account.php:191
1198
  msgid "Free Trial"
1199
  msgstr "Free Trial"
1200
 
1201
+ #: templates/account.php:202
1202
  msgid "Account Details"
1203
  msgstr "Account Details"
1204
 
1205
+ #: templates/account.php:209, templates/forms/data-debug-mode.php:33
1206
+ msgid "Start Debug"
1207
+ msgstr "Start Debug"
1208
+
1209
+ #: templates/account.php:211
1210
+ msgid "Stop Debug"
1211
+ msgstr "Stop Debug"
1212
+
1213
+ #: templates/account.php:218
1214
  msgid "Billing & Invoices"
1215
  msgstr "Billing & Invoices"
1216
 
1217
+ #: templates/account.php:229
1218
  msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1219
  msgstr "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1220
 
1221
+ #: templates/account.php:231
1222
  msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1223
  msgstr "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1224
 
1225
+ #: templates/account.php:234
1226
  msgid "Delete Account"
1227
  msgstr "Delete Account"
1228
 
1229
+ #: templates/account.php:246, templates/account/partials/addon.php:231, templates/account/partials/deactivate-license-button.php:35
1230
  msgid "Deactivate License"
1231
  msgstr "Deactivate License"
1232
 
1233
+ #: templates/account.php:269, templates/forms/subscription-cancellation.php:125
1234
  msgid "Are you sure you want to proceed?"
1235
  msgstr "Are you sure you want to proceed?"
1236
 
1237
+ #: templates/account.php:269, templates/account/partials/addon.php:255
1238
  msgid "Cancel Subscription"
1239
  msgstr "Cancel Subscription"
1240
 
1241
+ #: templates/account.php:298, templates/account/partials/addon.php:340
1242
  msgctxt "as synchronize"
1243
  msgid "Sync"
1244
  msgstr "Sync"
1245
 
1246
+ #: templates/account.php:313, templates/debug.php:507
1247
  msgid "Name"
1248
  msgstr "Name"
1249
 
1250
+ #: templates/account.php:319, templates/debug.php:508
1251
  msgid "Email"
1252
  msgstr "Email"
1253
 
1254
+ #: templates/account.php:326, templates/debug.php:371, templates/debug.php:557
1255
  msgid "User ID"
1256
  msgstr "User ID"
1257
 
1258
+ #: templates/account.php:344, templates/account.php:637, templates/account.php:682, templates/debug.php:238, templates/debug.php:365, templates/debug.php:454, templates/debug.php:506, templates/debug.php:555, templates/debug.php:632, templates/account/payments.php:35, templates/debug/logger.php:21
1259
  msgid "ID"
1260
  msgstr "ID"
1261
 
1262
+ #: templates/account.php:351
1263
  msgid "Site ID"
1264
  msgstr "Site ID"
1265
 
1266
+ #: templates/account.php:354
1267
  msgid "No ID"
1268
  msgstr "No ID"
1269
 
1270
+ #: templates/account.php:359, templates/debug.php:245, templates/debug.php:374, templates/debug.php:458, templates/debug.php:510, templates/account/partials/site.php:227
1271
  msgid "Public Key"
1272
  msgstr "Public Key"
1273
 
1274
+ #: templates/account.php:365, templates/debug.php:375, templates/debug.php:459, templates/debug.php:511, templates/account/partials/site.php:239
1275
  msgid "Secret Key"
1276
  msgstr "Secret Key"
1277
 
1278
+ #: templates/account.php:368
1279
  msgctxt "as secret encryption key missing"
1280
  msgid "No Secret"
1281
  msgstr "No Secret"
1282
 
1283
+ #: templates/account.php:395, templates/account/partials/site.php:120, templates/account/partials/site.php:122
1284
  msgid "Trial"
1285
  msgstr "Trial"
1286
 
1287
+ #: templates/account.php:422, templates/debug.php:562, templates/account/partials/site.php:260
1288
  msgid "License Key"
1289
  msgstr "License Key"
1290
 
1291
+ #: templates/account.php:453
1292
  msgid "Join the Beta program"
1293
  msgstr "Join the Beta program"
1294
 
1295
+ #: templates/account.php:459
1296
  msgid "not verified"
1297
  msgstr "not verified"
1298
 
1299
+ #: templates/account.php:468, templates/account/partials/addon.php:190
1300
  msgid "Expired"
1301
  msgstr "Expired"
1302
 
1303
+ #: templates/account.php:528
1304
  msgid "Premium version"
1305
  msgstr "Premium version"
1306
 
1307
+ #: templates/account.php:530
1308
  msgid "Free version"
1309
  msgstr "Free version"
1310
 
1311
+ #: templates/account.php:542
1312
  msgid "Verify Email"
1313
  msgstr "Verify Email"
1314
 
1315
+ #: templates/account.php:553
1316
  msgid "Download %s Version"
1317
  msgstr "Download %s Version"
1318
 
1319
+ #: templates/account.php:568, templates/account.php:820, templates/account/partials/site.php:248, templates/account/partials/site.php:270
1320
  msgctxt "verb"
1321
  msgid "Show"
1322
  msgstr "Show"
1323
 
1324
+ #: templates/account.php:583
1325
  msgid "What is your %s?"
1326
  msgstr "What is your %s?"
1327
 
1328
+ #: templates/account.php:591, templates/account/billing.php:21
1329
  msgctxt "verb"
1330
  msgid "Edit"
1331
  msgstr "Edit"
1332
 
1333
+ #: templates/account.php:616
1334
  msgid "Sites"
1335
  msgstr "Sites"
1336
 
1337
+ #: templates/account.php:629
1338
  msgid "Search by address"
1339
  msgstr "Search by address"
1340
 
1341
+ #: templates/account.php:638, templates/debug.php:368
1342
  msgid "Address"
1343
  msgstr "Address"
1344
 
1345
+ #: templates/account.php:639
1346
  msgid "License"
1347
  msgstr "License"
1348
 
1349
+ #: templates/account.php:640
1350
  msgid "Plan"
1351
  msgstr "Plan"
1352
 
1353
+ #: templates/account.php:685
1354
  msgctxt "as software license"
1355
  msgid "License"
1356
  msgstr "License"
1357
 
1358
+ #: templates/account.php:814
1359
  msgctxt "verb"
1360
  msgid "Hide"
1361
  msgstr "Hide"
1362
 
1363
+ #: templates/account.php:836, templates/forms/data-debug-mode.php:31
1364
  msgid "Processing"
1365
  msgstr "Processing"
1366
 
1367
+ #: templates/account.php:839
1368
  msgid "Get updates for bleeding edge Beta versions of %s."
1369
  msgstr "Get updates for bleeding edge Beta versions of %s."
1370
 
1371
+ #: templates/account.php:897
1372
  msgid "Cancelling %s"
1373
  msgstr "Cancelling %s"
1374
 
1375
+ #: templates/account.php:897, templates/account.php:914, templates/forms/subscription-cancellation.php:27, templates/forms/deactivation/form.php:133
1376
  msgid "trial"
1377
  msgstr "trial"
1378
 
1379
+ #: templates/account.php:912, templates/forms/deactivation/form.php:150
1380
  msgid "Cancelling %s..."
1381
  msgstr "Cancelling %s..."
1382
 
1383
+ #: templates/account.php:915, templates/forms/subscription-cancellation.php:28, templates/forms/deactivation/form.php:134
1384
  msgid "subscription"
1385
  msgstr "subscription"
1386
 
1387
+ #: templates/account.php:929
1388
  msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1389
  msgstr "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1390
 
1391
+ #: templates/add-ons.php:38
1392
  msgid "View details"
1393
  msgstr "View details"
1394
 
1395
+ #: templates/add-ons.php:48
1396
  msgid "Add Ons for %s"
1397
  msgstr "Add Ons for %s"
1398
 
1399
+ #: templates/add-ons.php:58
1400
+ msgid "We couldn't load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1401
+ msgstr "We couldn't load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1402
 
1403
+ #: templates/add-ons.php:229
1404
  msgctxt "active add-on"
1405
  msgid "Active"
1406
  msgstr "Active"
1407
 
1408
+ #: templates/add-ons.php:230
1409
  msgctxt "installed add-on"
1410
  msgid "Installed"
1411
  msgstr "Installed"
1412
 
1413
+ #: templates/admin-notice.php:13, templates/forms/license-activation.php:207, templates/forms/resend-key.php:77
1414
  msgctxt "as close a window"
1415
  msgid "Dismiss"
1416
  msgstr "Dismiss"
1461
  msgid "Thanks %s!"
1462
  msgstr "Thanks %s!"
1463
 
1464
+ #: templates/connect.php:172, templates/forms/license-activation.php:46
1465
  msgid "Agree & Activate License"
1466
  msgstr "Agree & Activate License"
1467
 
1509
  msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
1510
  msgstr "During the update process we detected %s site(s) in the network that are still pending your attention."
1511
 
1512
+ #: templates/connect.php:253, templates/forms/data-debug-mode.php:35, templates/forms/license-activation.php:49
1513
  msgid "License key"
1514
  msgstr "License key"
1515
 
1516
+ #: templates/connect.php:256, templates/forms/license-activation.php:22
1517
  msgid "Can't find your license key?"
1518
  msgstr "Can't find your license key?"
1519
 
1566
  msgid "Newsletter"
1567
  msgstr "Newsletter"
1568
 
1569
+ #: templates/connect.php:391, templates/forms/license-activation.php:41
1570
  msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
1571
  msgstr "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
1572
 
1627
  msgid "Debugging"
1628
  msgstr "Debugging"
1629
 
1630
+ #: templates/debug.php:54, templates/debug.php:250, templates/debug.php:376, templates/debug.php:512
1631
  msgid "Actions"
1632
  msgstr "Actions"
1633
 
1696
  msgid "Themes"
1697
  msgstr "Themes"
1698
 
1699
+ #: templates/debug.php:239, templates/debug.php:370, templates/debug.php:456, templates/debug/scheduled-crons.php:80
1700
  msgid "Slug"
1701
  msgstr "Slug"
1702
 
1703
+ #: templates/debug.php:241, templates/debug.php:455
1704
  msgid "Title"
1705
  msgstr "Title"
1706
 
1739
  msgid "Simulate Network Upgrade"
1740
  msgstr "Simulate Network Upgrade"
1741
 
1742
+ #: templates/debug.php:359
1743
  msgid "%s Installs"
1744
  msgstr "%s Installs"
1745
 
1746
+ #: templates/debug.php:361
1747
  msgctxt "like websites"
1748
  msgid "Sites"
1749
  msgstr "Sites"
1750
 
1751
+ #: templates/debug.php:367, templates/account/partials/site.php:156
1752
  msgid "Blog ID"
1753
  msgstr "Blog ID"
1754
 
1755
+ #: templates/debug.php:372
1756
+ msgid "License ID"
1757
+ msgstr "License ID"
1758
+
1759
+ #: templates/debug.php:436, templates/debug.php:535, templates/account/partials/addon.php:435
1760
  msgctxt "verb"
1761
  msgid "Delete"
1762
  msgstr "Delete"
1763
 
1764
+ #: templates/debug.php:450
1765
  msgid "Add Ons of module %s"
1766
  msgstr "Add Ons of module %s"
1767
 
1768
+ #: templates/debug.php:502
1769
  msgid "Users"
1770
  msgstr "Users"
1771
 
1772
+ #: templates/debug.php:509
1773
  msgid "Verified"
1774
  msgstr "Verified"
1775
 
1776
+ #: templates/debug.php:551
1777
  msgid "%s Licenses"
1778
  msgstr "%s Licenses"
1779
 
1780
+ #: templates/debug.php:556
1781
  msgid "Plugin ID"
1782
  msgstr "Plugin ID"
1783
 
1784
+ #: templates/debug.php:558
1785
  msgid "Plan ID"
1786
  msgstr "Plan ID"
1787
 
1788
+ #: templates/debug.php:559
1789
  msgid "Quota"
1790
  msgstr "Quota"
1791
 
1792
+ #: templates/debug.php:560
1793
  msgid "Activated"
1794
  msgstr "Activated"
1795
 
1796
+ #: templates/debug.php:561
1797
  msgid "Blocking"
1798
  msgstr "Blocking"
1799
 
1800
+ #: templates/debug.php:563
1801
  msgctxt "as expiration date"
1802
  msgid "Expiration"
1803
  msgstr "Expiration"
1804
 
1805
+ #: templates/debug.php:590
1806
  msgid "Debug Log"
1807
  msgstr "Debug Log"
1808
 
1809
+ #: templates/debug.php:594
1810
  msgid "All Types"
1811
  msgstr "All Types"
1812
 
1813
+ #: templates/debug.php:601
1814
  msgid "All Requests"
1815
  msgstr "All Requests"
1816
 
1817
+ #: templates/debug.php:606, templates/debug.php:635, templates/debug/logger.php:25
1818
  msgid "File"
1819
  msgstr "File"
1820
 
1821
+ #: templates/debug.php:607, templates/debug.php:633, templates/debug/logger.php:23
1822
  msgid "Function"
1823
  msgstr "Function"
1824
 
1825
+ #: templates/debug.php:608
1826
  msgid "Process ID"
1827
  msgstr "Process ID"
1828
 
1829
+ #: templates/debug.php:609
1830
  msgid "Logger"
1831
  msgstr "Logger"
1832
 
1833
+ #: templates/debug.php:610, templates/debug.php:634, templates/debug/logger.php:24
1834
  msgid "Message"
1835
  msgstr "Message"
1836
 
1837
+ #: templates/debug.php:612
1838
  msgid "Filter"
1839
  msgstr "Filter"
1840
 
1841
+ #: templates/debug.php:620
1842
  msgid "Download"
1843
  msgstr "Download"
1844
 
1845
+ #: templates/debug.php:631, templates/debug/logger.php:22
1846
  msgid "Type"
1847
  msgstr "Type"
1848
 
1849
+ #: templates/debug.php:636, templates/debug/logger.php:26
1850
  msgid "Timestamp"
1851
  msgstr "Timestamp"
1852
 
2164
  msgid "Become an affiliate"
2165
  msgstr "Become an affiliate"
2166
 
2167
+ #: templates/forms/data-debug-mode.php:25
2168
+ msgid "Please enter the license key to enable the debug mode:"
2169
+ msgstr "Please enter the license key to enable the debug mode:"
2170
+
2171
+ #: templates/forms/data-debug-mode.php:27
2172
+ msgid "To enter the debug mode, please enter the secret key of the license owner (UserID = %d), which you can find in your \"My Profile\" section of your User Dashboard:"
2173
+ msgstr "To enter the debug mode, please enter the secret key of the license owner (UserID = %d), which you can find in your \"My Profile\" section of your User Dashboard:"
2174
+
2175
+ #: templates/forms/data-debug-mode.php:32
2176
+ msgid "Submit"
2177
+ msgstr "Submit"
2178
+
2179
+ #: templates/forms/data-debug-mode.php:36
2180
+ msgid "User key"
2181
+ msgstr "User key"
2182
+
2183
+ #: templates/forms/license-activation.php:23
2184
  msgid "Please enter the license key that you received in the email right after the purchase:"
2185
  msgstr "Please enter the license key that you received in the email right after the purchase:"
2186
 
2187
+ #: templates/forms/license-activation.php:28
2188
  msgid "Update License"
2189
  msgstr "Update License"
2190
 
2251
  msgid "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
2252
  msgstr "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
2253
 
 
 
 
 
 
2254
  #: templates/forms/subscription-cancellation.php:103
2255
  msgid "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
2256
  msgstr "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
2332
  msgid "Last license"
2333
  msgstr "Last license"
2334
 
2335
+ #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
2336
+ #: templates/account/partials/addon.php:29
2337
+ msgid "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2338
+ msgstr "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2339
+
2340
+ #: templates/account/partials/addon.php:185
2341
  msgid "Cancelled"
2342
  msgstr "Cancelled"
2343
 
2344
+ #: templates/account/partials/addon.php:195
2345
  msgid "No expiration"
2346
  msgstr "No expiration"
2347
 
2348
+ #: templates/account/partials/site.php:189
2349
  msgid "Owner Name"
2350
  msgstr "Owner Name"
2351
 
2352
+ #: templates/account/partials/site.php:201
2353
  msgid "Owner Email"
2354
  msgstr "Owner Email"
2355
 
2356
+ #: templates/account/partials/site.php:213
2357
  msgid "Owner ID"
2358
  msgstr "Owner ID"
2359
 
2360
+ #: templates/account/partials/site.php:286
2361
  msgid "Subscription"
2362
  msgstr "Subscription"
2363
 
vendor/freemius/wordpress-sdk/languages/freemius-es_ES.mo CHANGED
Binary file
vendor/freemius/wordpress-sdk/languages/freemius-es_ES.po CHANGED
@@ -1,13 +1,13 @@
1
  # Copyright (C) 2019 freemius
2
  # This file is distributed under the same license as the freemius package.
3
  # Translators:
4
- # Carlos Longarela <carlos@longarela.eu>, 2017-2018
5
  msgid ""
6
  msgstr ""
7
  "Project-Id-Version: WordPress SDK\n"
8
  "Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
9
  "POT-Creation-Date: \n"
10
- "PO-Revision-Date: 2019-06-05 13:40+0000\n"
11
  "Last-Translator: Carlos Longarela <carlos@longarela.eu>\n"
12
  "Language: es_ES\n"
13
  "Language-Team: Spanish (Spain) (http://www.transifex.com/freemius/wordpress-sdk/language/es_ES/)\n"
@@ -21,1479 +21,1498 @@ msgstr ""
21
  "X-Poedit-SearchPathExcluded-0: *.js\n"
22
  "X-Poedit-SourceCharset: UTF-8\n"
23
 
24
- #: includes/class-freemius.php1838, templates/account.php:769
25
  msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
26
- msgstr "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
27
 
28
- #: includes/class-freemius.php:1845
29
  msgid "Would you like to proceed with the update?"
30
- msgstr "Would you like to proceed with the update?"
31
 
32
- #: includes/class-freemius.php:2053
33
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
34
  msgstr "Freemius SDK no pudo encontrar el archivo principal del plugin. Por favor contacta a sdk@freemius.com con el error actual."
35
 
36
- #: includes/class-freemius.php:2055
37
  msgid "Error"
38
  msgstr "Error"
39
 
40
- #: includes/class-freemius.php:2445
41
  msgid "I found a better %s"
42
  msgstr "He encontrado un %s mejor"
43
 
44
- #: includes/class-freemius.php:2447
45
  msgid "What's the %s's name?"
46
  msgstr "¿Cuál es el nombre de %s?"
47
 
48
- #: includes/class-freemius.php:2453
49
  msgid "It's a temporary %s. I'm just debugging an issue."
50
  msgstr "Es una %stemporal . Sólo estoy depurando un problema"
51
 
52
- #: includes/class-freemius.php:2455
53
  msgid "Deactivation"
54
  msgstr "Desactivación"
55
 
56
- #: includes/class-freemius.php:2456
57
  msgid "Theme Switch"
58
  msgstr "Cambiar tema"
59
 
60
- #: includes/class-freemius.php2465, templates/forms/resend-key.php:24
61
  msgid "Other"
62
  msgstr "Otra"
63
 
64
- #: includes/class-freemius.php:2473
65
  msgid "I no longer need the %s"
66
  msgstr "Ya no necesito el %s"
67
 
68
- #: includes/class-freemius.php:2480
69
  msgid "I only needed the %s for a short period"
70
  msgstr "Sólo necesitaba la %s por un corto período"
71
 
72
- #: includes/class-freemius.php:2486
73
  msgid "The %s broke my site"
74
  msgstr "%s ha roto mi sitio"
75
 
76
- #: includes/class-freemius.php:2493
77
  msgid "The %s suddenly stopped working"
78
  msgstr "%s de repente ha dejado de funcionar"
79
 
80
- #: includes/class-freemius.php:2503
81
  msgid "I can't pay for it anymore"
82
  msgstr "No puedo pagarlo durante más tiempo"
83
 
84
- #: includes/class-freemius.php:2505
85
  msgid "What price would you feel comfortable paying?"
86
  msgstr "¿Con qué precio te sentirías cómodo pagando?"
87
 
88
- #: includes/class-freemius.php:2511
89
  msgid "I don't like to share my information with you"
90
  msgstr "No me gusta compartir mi información contigo"
91
 
92
- #: includes/class-freemius.php:2532
93
  msgid "The %s didn't work"
94
  msgstr "El %s no funcionaba"
95
 
96
- #: includes/class-freemius.php:2542
97
  msgid "I couldn't understand how to make it work"
98
  msgstr "No entiendo cómo hacerlo funcionar"
99
 
100
- #: includes/class-freemius.php:2550
101
  msgid "The %s is great, but I need specific feature that you don't support"
102
  msgstr "%s es genial, pero necesito una característica que no soportáis"
103
 
104
- #: includes/class-freemius.php:2552
105
  msgid "What feature?"
106
  msgstr "¿Qué característica?"
107
 
108
- #: includes/class-freemius.php:2556
109
  msgid "The %s is not working"
110
  msgstr " El %s no funciona"
111
 
112
- #: includes/class-freemius.php:2558
113
  msgid "Kindly share what didn't work so we can fix it for future users..."
114
  msgstr "Por favor, comparte lo que no funcionó para que podamos arreglarlo para los futuros usuarios..."
115
 
116
- #: includes/class-freemius.php:2562
117
  msgid "It's not what I was looking for"
118
  msgstr "No es lo que estaba buscando"
119
 
120
- #: includes/class-freemius.php:2564
121
  msgid "What you've been looking for?"
122
  msgstr "¿Que has estado buscando?"
123
 
124
- #: includes/class-freemius.php:2568
125
  msgid "The %s didn't work as expected"
126
  msgstr " El %s no funciona como esperaba"
127
 
128
- #: includes/class-freemius.php:2570
129
  msgid "What did you expect?"
130
  msgstr "¿Qué esperas?"
131
 
132
- #: includes/class-freemius.php3425, templates/debug.php:20
133
  msgid "Freemius Debug"
134
  msgstr "Debug Freemius"
135
 
136
- #: includes/class-freemius.php:4177
137
  msgid "I don't know what is cURL or how to install it, help me!"
138
  msgstr "No sé qué es cURL o cómo instalarlo, ¡ayúdame!"
139
 
140
- #: includes/class-freemius.php:4179
141
  msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
142
  msgstr "Nos aseguraremos de ponernos en contacto con tu empresa de alojamiento web y resolver el problema. Recibirás un correo electrónico de seguimiento a %s tan pronto tengamos una actualización."
143
 
144
- #: includes/class-freemius.php:4186
145
  msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
146
  msgstr "Genial, por favor instala cURL y habilítalo en el archivo php.ini. Además, busca la directiva 'disable_functions' en el archivo php.ini y quita cualquier método que comienza con 'curl_'. Para asegurarte de que se activó con éxito, utiliza 'phpinfo()'. Una vez activado, desactiva el %s y reactívalo de nuevo."
147
 
148
- #: includes/class-freemius.php:4291
149
  msgid "Yes - do your thing"
150
  msgstr "Vamos, adelante"
151
 
152
- #: includes/class-freemius.php:4296
153
  msgid "No - just deactivate"
154
  msgstr "No - sólo desactivar"
155
 
156
- #: includes/class-freemius.php4341, includes/class-freemius.php4850,
157
- #: includes/class-freemius.php5999, includes/class-freemius.php12682,
158
- #: includes/class-freemius.php16045, includes/class-freemius.php16133,
159
- #: includes/class-freemius.php16299, includes/class-freemius.php18758,
160
- #: includes/class-freemius.php18768, includes/class-freemius.php19404,
161
- #: includes/class-freemius.php20277, includes/class-freemius.php20392,
162
- #: includes/class-freemius.php20536, templates/add-ons.php:54
 
163
  msgctxt "exclamation"
164
  msgid "Oops"
165
  msgstr "Oops"
166
 
167
- #: includes/class-freemius.php:4410
168
  msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
169
  msgstr "¡Gracias por darnos la oportunidad de arreglarlo! Acabamos de enviar un mensaje a nuestro personal técnico. Nos pondremos en contacto contigo tan pronto como tengamos una actualización de %s. Apreciamos tu paciencia."
170
 
171
- #: includes/class-freemius.php:4847
172
  msgctxt "addonX cannot run without pluginY"
173
  msgid "%s cannot run without %s."
174
  msgstr "%s no se puede ejecutar sin %s."
175
 
176
- #: includes/class-freemius.php:4848
177
  msgctxt "addonX cannot run..."
178
  msgid "%s cannot run without the plugin."
179
  msgstr "%s no se puede ejecutar sin el plugin."
180
 
181
- #: includes/class-freemius.php5020, includes/class-freemius.php5045,
182
- #: includes/class-freemius.php:19475
183
  msgid "Unexpected API error. Please contact the %s's author with the following error."
184
  msgstr "Error inesperado del API. Pónte en contacto con el autor de %s indicándole el siguiente error."
185
 
186
- #: includes/class-freemius.php:5687
187
  msgid "Premium %s version was successfully activated."
188
  msgstr "La versión Premium %s ha sido activada con éxito."
189
 
190
- #: includes/class-freemius.php5699, includes/class-freemius.php:7567
191
  msgctxt ""
192
  msgid "W00t"
193
  msgstr "W00t"
194
 
195
- #: includes/class-freemius.php:5714
196
  msgid "You have a %s license."
197
  msgstr "Tienes una licencia %s."
198
 
199
- #: includes/class-freemius.php5718, includes/class-freemius.php15466,
200
- #: includes/class-freemius.php15477, includes/class-freemius.php18669,
201
- #: includes/class-freemius.php18999, includes/class-freemius.php19065,
202
- #: includes/class-freemius.php:19229
203
  msgctxt "interjection expressing joy or exuberance"
204
  msgid "Yee-haw"
205
  msgstr "Vaya"
206
 
207
- #: includes/class-freemius.php:5982
208
  msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
209
  msgstr "la prueba gratuita de %s fue cancelada con éxito. Puesto que el complemento es sólo premium se desactivó automáticamente. Si quieres utilizarlo en el futuro, deberás comprar una licencia."
210
 
211
- #: includes/class-freemius.php:5986
212
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
213
  msgstr "%s es un complemento único de premium. Tienes que comprar una licencia primero antes de activar el plugin."
214
 
215
- #: includes/class-freemius.php5995, templates/add-ons.php130,
216
- #: templates/account/partials/addon.php:343
217
  msgid "More information about %s"
218
  msgstr "Más información sobre %s"
219
 
220
- #: includes/class-freemius.php:5996
221
  msgid "Purchase License"
222
  msgstr "Comprar licencia"
223
 
224
- #: includes/class-freemius.php6931, templates/connect.php:163
225
  msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
226
  msgstr "Recibirás un correo de activación para %s en tu buzón en %s. Por favor, asegúrate de hacer clic en el botón de activación en ese correo electrónico para %s."
227
 
228
- #: includes/class-freemius.php:6935
229
  msgid "start the trial"
230
  msgstr "comenzar el período de prueba"
231
 
232
- #: includes/class-freemius.php6936, templates/connect.php:167
233
  msgid "complete the install"
234
  msgstr "completar la instalación"
235
 
236
- #: includes/class-freemius.php:7049
237
  msgid "You are just one step away - %s"
238
  msgstr "Estás a sólo un paso - %s"
239
 
240
- #: includes/class-freemius.php:7052
241
  msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
242
  msgid "Complete \"%s\" Activation Now"
243
  msgstr "Completar la activación de \"%s\" ahora"
244
 
245
- #: includes/class-freemius.php:7130
246
  msgid "We made a few tweaks to the %s, %s"
247
  msgstr "Hemos realizado algunas optimizaciones al %s, %s"
248
 
249
- #: includes/class-freemius.php:7134
250
  msgid "Opt in to make \"%s\" better!"
251
  msgstr "¡Inscríbite para hacer \"%s\" Mejor!"
252
 
253
- #: includes/class-freemius.php:7566
254
  msgid "The upgrade of %s was successfully completed."
255
  msgstr "La actualización de %s se completó con éxito."
256
 
257
- #: includes/class-freemius.php9728, includes/class-fs-plugin-updater.php975,
258
- #: includes/class-fs-plugin-updater.php1170,
259
- #: includes/class-fs-plugin-updater.php1177,
260
  #: templates/auto-installation.php:32
261
  msgid "Add-On"
262
  msgstr "Complemento"
263
 
264
- #: includes/class-freemius.php9730, templates/account.php313,
265
- #: templates/account.php321, templates/debug.php361, templates/debug.php:522
266
  msgid "Plugin"
267
  msgstr "Plugin"
268
 
269
- #: includes/class-freemius.php9731, templates/account.php314,
270
- #: templates/account.php322, templates/debug.php361, templates/debug.php522,
271
  #: templates/forms/deactivation/form.php:71
272
  msgid "Theme"
273
  msgstr "Tema"
274
 
275
- #: includes/class-freemius.php:12148
276
  msgid "An unknown error has occurred while trying to set the user's beta mode."
277
- msgstr "An unknown error has occurred while trying to set the user's beta mode."
278
 
279
- #: includes/class-freemius.php:12549
280
  msgid "Invalid site details collection."
281
  msgstr "Colección de detalles del sitio no válida."
282
 
283
- #: includes/class-freemius.php:12669
284
  msgid "We couldn't find your email address in the system, are you sure it's the right address?"
285
  msgstr "No podemos encontrar tu dirección de correo electrónico en el sistema, ¿estás seguro de que es la dirección de correo electrónico correcta?"
286
 
287
- #: includes/class-freemius.php:12671
288
  msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
289
  msgstr "No vemos ninguna licencia activa asociada a esa dirección de correo electrónico, ¿estás seguro de que es la dirección de correo electrónico correcta?"
290
 
291
- #: includes/class-freemius.php:12945
292
  msgid "Account is pending activation."
293
  msgstr "La cuenta está pendiente de activación"
294
 
295
- #: includes/class-freemius.php13057,
296
  #: templates/forms/premium-versions-upgrade-handler.php:47
297
  msgid "Buy a license now"
298
  msgstr "Compra una licencia ahora"
299
 
300
- #: includes/class-freemius.php13069,
301
  #: templates/forms/premium-versions-upgrade-handler.php:46
302
  msgid "Renew your license now"
303
  msgstr "Renueva tu licencia ahora"
304
 
305
- #: includes/class-freemius.php:13073
306
  msgid "%s to access version %s security & feature updates, and support."
307
  msgstr "%s para acceder a la versión %s de actualizaciones de funciones, seguridad y soporte."
308
 
309
- #: includes/class-freemius.php:15448
310
  msgid "%s activation was successfully completed."
311
  msgstr "%s activación se completó con éxito."
312
 
313
- #: includes/class-freemius.php:15462
314
  msgid "Your account was successfully activated with the %s plan."
315
  msgstr "Tu cuenta se ha activado correctamente con el plan %s."
316
 
317
- #: includes/class-freemius.php15473, includes/class-freemius.php:19061
318
  msgid "Your trial has been successfully started."
319
  msgstr "Tu versión de prueba se ha iniciado con éxito."
320
 
321
- #: includes/class-freemius.php16043, includes/class-freemius.php16131,
322
- #: includes/class-freemius.php:16297
323
  msgid "Couldn't activate %s."
324
  msgstr "No se puede activar %s."
325
 
326
- #: includes/class-freemius.php16044, includes/class-freemius.php16132,
327
- #: includes/class-freemius.php:16298
328
  msgid "Please contact us with the following message:"
329
  msgstr "Por favor contáctanos con el siguiente mensaje:"
330
 
331
- #: includes/class-freemius.php:16128
332
  msgid "An unknown error has occurred."
333
- msgstr "An unknown error has occurred."
334
 
335
- #: includes/class-freemius.php16655, includes/class-freemius.php:21409
336
  msgid "Upgrade"
337
  msgstr "Actualizar"
338
 
339
- #: includes/class-freemius.php:16661
340
  msgid "Start Trial"
341
  msgstr "Comenzar el período de prueba"
342
 
343
- #: includes/class-freemius.php:16663
344
  msgid "Pricing"
345
  msgstr "Precio"
346
 
347
- #: includes/class-freemius.php16742, includes/class-freemius.php:16744
348
  msgid "Affiliation"
349
  msgstr "Afiliación"
350
 
351
- #: includes/class-freemius.php16772, includes/class-freemius.php16774,
352
- #: templates/account.php177, templates/debug.php:326
353
  msgid "Account"
354
  msgstr "Cuenta"
355
 
356
- #: includes/class-freemius.php16787, includes/class-freemius.php16789,
357
  #: includes/customizer/class-fs-customizer-support-section.php:60
358
  msgid "Contact Us"
359
  msgstr "Contáctanos"
360
 
361
- #: includes/class-freemius.php16799, includes/class-freemius.php16801,
362
- #: includes/class-freemius.php21423, templates/account.php105,
363
- #: templates/account/partials/addon.php:45
364
  msgid "Add-Ons"
365
  msgstr "Complementos"
366
 
367
- #: includes/class-freemius.php:16835
368
  msgctxt "ASCII arrow left icon"
369
  msgid "&#x2190;"
370
  msgstr "&#x2190;"
371
 
372
- #: includes/class-freemius.php:16835
373
  msgctxt "ASCII arrow right icon"
374
  msgid "&#x27a4;"
375
  msgstr "&#x27a4;"
376
 
377
- #: includes/class-freemius.php16837, templates/pricing.php:102
378
  msgctxt "noun"
379
  msgid "Pricing"
380
  msgstr "Precio"
381
 
382
- #: includes/class-freemius.php17050,
383
  #: includes/customizer/class-fs-customizer-support-section.php:67
384
  msgid "Support Forum"
385
  msgstr "Foro de soporte"
386
 
387
- #: includes/class-freemius.php:17995
388
  msgid "Your email has been successfully verified - you are AWESOME!"
389
  msgstr "Tu email ha sido verificado correctamente - ¡Eres IMPRESIONANTE!"
390
 
391
- #: includes/class-freemius.php:17996
392
  msgctxt "a positive response"
393
  msgid "Right on"
394
  msgstr "Bien hecho"
395
 
396
- #: includes/class-freemius.php:18660
 
 
 
 
 
 
 
 
397
  msgid "Your %s Add-on plan was successfully upgraded."
398
  msgstr "Tu complemento %s del plan se actualizó con éxito."
399
 
400
- #: includes/class-freemius.php:18662
401
  msgid "%s Add-on was successfully purchased."
402
  msgstr "El complemento %s ha sido comprado correctamente."
403
 
404
- #: includes/class-freemius.php:18665
405
  msgid "Download the latest version"
406
  msgstr "Descargar la última versión"
407
 
408
- #: includes/class-freemius.php:18751
409
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
410
- msgstr "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
411
 
412
- #: includes/class-freemius.php18757, includes/class-freemius.php19188,
413
- #: includes/class-freemius.php:19277
414
  msgid "Error received from the server:"
415
  msgstr "Error recibido del servidor:"
416
 
417
- #: includes/class-freemius.php:18767
418
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
419
  msgstr "Parece que uno de los parámetros de autenticación es incorrecto. Actualiza tu clave pública, clave secreta e ID de usuario e inténtelo de nuevo."
420
 
421
- #: includes/class-freemius.php18961, includes/class-freemius.php19193,
422
- #: includes/class-freemius.php19248, includes/class-freemius.php:19351
423
  msgctxt ""
424
  msgid "Hmm"
425
  msgstr "Hmm"
426
 
427
- #: includes/class-freemius.php:18974
428
  msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
429
  msgstr "Parece que todavía estás en el plan %s. Si actualizaste o cambiaste tu plan, probablemente sea un problema de nuestra parte - lo sentimos."
430
 
431
- #: includes/class-freemius.php18975, templates/account.php107,
432
- #: templates/add-ons.php191, templates/account/partials/addon.php:47
433
  msgctxt "trial period"
434
  msgid "Trial"
435
  msgstr "Período de Prueba Gratuito"
436
 
437
- #: includes/class-freemius.php:18980
438
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
439
  msgstr "He actualizado mi cuenta, pero cuando intento sincronizar la licencia, el plan sigue siendo %s."
440
 
441
- #: includes/class-freemius.php18984, includes/class-freemius.php:19043
442
  msgid "Please contact us here"
443
  msgstr "Contacta aquí con nosotros"
444
 
445
- #: includes/class-freemius.php:18995
446
  msgid "Your plan was successfully activated."
447
- msgstr "Your plan was successfully activated."
448
 
449
- #: includes/class-freemius.php:18996
450
  msgid "Your plan was successfully upgraded."
451
  msgstr "Tu plan se actualizó con éxito."
452
 
453
- #: includes/class-freemius.php:19013
454
  msgid "Your plan was successfully changed to %s."
455
  msgstr "Tu plan se cambió correctamente a %s."
456
 
457
- #: includes/class-freemius.php:19029
458
  msgid "Your license has expired. You can still continue using the free %s forever."
459
  msgstr "Tu licencia ha caducado. Puedes seguir usando el plan gratuito %s para siempre."
460
 
461
- #: includes/class-freemius.php:19031
462
  msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
463
  msgstr "Tu licencia ha caducado. %1$sActualiza ahora %2$s para continuar usando el %3$s sin interrupciones."
464
 
465
- #: includes/class-freemius.php:19039
466
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
467
  msgstr "Tu licencia ha sido cancelada. Si crees que es un error, ponte en contacto con el servicio de asistencia."
468
 
469
- #: includes/class-freemius.php:19052
470
  msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
471
  msgstr "Tu licencia ha caducado. Todavía puedes seguir usando todas las funciones de %s, pero tendrás que renovar tu licencia para seguir recibiendo actualizaciones y soporte."
472
 
473
- #: includes/class-freemius.php:19075
474
  msgid "Your free trial has expired. You can still continue using all our free features."
475
  msgstr "Tu período de prueba ha caducado. Todavía puedes seguir usando todas nuestras funciones gratuitas."
476
 
477
- #: includes/class-freemius.php:19077
478
  msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
479
  msgstr "Tu período de prueba ha caducado. %1$sActualiza ahora %2$s para continuar usando el %3$s sin interrupciones."
480
 
481
- #: includes/class-freemius.php:19184
482
  msgid "It looks like the license could not be activated."
483
  msgstr "Parece que la licencia no se pudo activar."
484
 
485
- #: includes/class-freemius.php:19226
486
  msgid "Your license was successfully activated."
487
  msgstr "Tu licencia fue activada correctamente."
488
 
489
- #: includes/class-freemius.php:19252
490
  msgid "It looks like your site currently doesn't have an active license."
491
  msgstr "Parece que tu sitio actualmente no tiene una licencia activa."
492
 
493
- #: includes/class-freemius.php:19276
494
  msgid "It looks like the license deactivation failed."
495
  msgstr "Parece que la desactivación de licencia ha fallado."
496
 
497
- #: includes/class-freemius.php:19304
498
  msgid "Your license was successfully deactivated, you are back to the %s plan."
499
  msgstr "Tu licencia fue desactivada correctamente, has vuelto al plan %s."
500
 
501
- #: includes/class-freemius.php:19305
502
  msgid "O.K"
503
  msgstr "O.K"
504
 
505
- #: includes/class-freemius.php:19358
506
  msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
507
  msgstr "Parece que estamos teniendo algún problema temporal con tu cancelación de la suscripción. Vuelve a intentarlo en unos minutos."
508
 
509
- #: includes/class-freemius.php:19367
510
  msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
511
  msgstr "Tu suscripción ha sido cancelada correctamente. Tu %s licencia del plan caducará en %s."
512
 
513
- #: includes/class-freemius.php:19409
514
  msgid "You are already running the %s in a trial mode."
515
  msgstr "Estás ejecutando %s en modo de prueba."
516
 
517
- #: includes/class-freemius.php:19420
518
  msgid "You already utilized a trial before."
519
  msgstr "Ya utilizaste un período de prueba antes."
520
 
521
- #: includes/class-freemius.php:19434
522
  msgid "Plan %s do not exist, therefore, can't start a trial."
523
  msgstr "El plan %s no existe, por lo tanto, no puedes comenzar un período de prueba."
524
 
525
- #: includes/class-freemius.php:19445
526
  msgid "Plan %s does not support a trial period."
527
  msgstr "El plan %s no admite un período de prueba."
528
 
529
- #: includes/class-freemius.php:19456
530
  msgid "None of the %s's plans supports a trial period."
531
  msgstr "Ninguno de los planes de %s soportan un período de prueba."
532
 
533
- #: includes/class-freemius.php:19506
534
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
535
  msgstr "Parece que ya no estás en modo de prueba, así que no hay nada que cancelar :)"
536
 
537
- #: includes/class-freemius.php:19542
538
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
539
  msgstr "Parece que estamos teniendo algún problema temporal con tu cancelación de prueba. Vuelve a intentarlo en unos minutos."
540
 
541
- #: includes/class-freemius.php:19561
542
  msgid "Your %s free trial was successfully cancelled."
543
  msgstr "Tu prueba gratuita de %s fue cancelada con éxito."
544
 
545
- #: includes/class-freemius.php:19877
546
  msgid "Version %s was released."
547
  msgstr "La versión %s se ha lanzado."
548
 
549
- #: includes/class-freemius.php:19877
550
  msgid "Please download %s."
551
  msgstr "Por favor descarga %s."
552
 
553
- #: includes/class-freemius.php:19884
554
  msgid "the latest %s version here"
555
  msgstr "la última versión %s aquí"
556
 
557
- #: includes/class-freemius.php:19889
558
  msgid "New"
559
  msgstr "Nuevo"
560
 
561
- #: includes/class-freemius.php:19894
562
  msgid "Seems like you got the latest release."
563
  msgstr "Parece que tienes la última versión."
564
 
565
- #: includes/class-freemius.php:19895
566
  msgid "You are all good!"
567
  msgstr "¡Está todo listo!"
568
 
569
- #: includes/class-freemius.php:20165
570
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
571
  msgstr "El correo de verificación se acaba de enviar a %s. Si no puedes encontrarlo después de 5 min, comprueba tu carpeta de spam."
572
 
573
- #: includes/class-freemius.php:20304
574
  msgid "Site successfully opted in."
575
  msgstr "Sitio dado de alta correctamente."
576
 
577
- #: includes/class-freemius.php20305, includes/class-freemius.php:21125
578
  msgid "Awesome"
579
  msgstr "Increíble"
580
 
581
- #: includes/class-freemius.php20321, templates/forms/optout.php:32
582
  msgid "We appreciate your help in making the %s better by letting us track some usage data."
583
  msgstr "Agradecemos tu ayuda para mejorar %s y por permitirnos rastrear algunos datos de uso."
584
 
585
- #: includes/class-freemius.php:20322
586
  msgid "Thank you!"
587
  msgstr "¡Gracias!"
588
 
589
- #: includes/class-freemius.php:20329
590
  msgid "We will no longer be sending any usage data of %s on %s to %s."
591
  msgstr "No continuaremos enviando datos de uso de %s en %s a %s."
592
 
593
- #: includes/class-freemius.php:20458
594
  msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
595
  msgstr "Comprueba tu buzón de correo, debes recibir un correo electrónico a través de %s para confirmar el cambio de propiedad. Por razones de seguridad, debes confirmar el cambio dentro de los próximos 15 min. Si no puedes encontrar el correo electrónico, comprueba tu carpeta de correo no deseado."
596
 
597
- #: includes/class-freemius.php:20464
598
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
599
  msgstr "Gracias por confirmar el cambio de propiedad. Se envió un correo electrónico a %s para su aprobación final."
600
 
601
- #: includes/class-freemius.php:20469
602
  msgid "%s is the new owner of the account."
603
  msgstr "%s es el nuevo dueño de la cuenta."
604
 
605
- #: includes/class-freemius.php:20471
606
  msgctxt "as congratulations"
607
  msgid "Congrats"
608
  msgstr "Felicidades"
609
 
610
- #: includes/class-freemius.php:20491
611
  msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
612
  msgstr "Lo sentimos, no podemos completar la actualización de correo electrónico. Ya hay registrado otro usuario con esa dirección de correo electrónico."
613
 
614
- #: includes/class-freemius.php:20492
615
  msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
616
  msgstr "Si deseas renunciar a la titularidad de la cuenta de %s a %s haz clic en el botón de cambio de titularidad."
617
 
618
- #: includes/class-freemius.php:20499
619
  msgid "Change Ownership"
620
  msgstr "Cambiar propietario"
621
 
622
- #: includes/class-freemius.php:20507
623
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
624
  msgstr "Se actualizó correctamente tu correo electrónico. Recibirás un correo electrónico con las instrucciones de confirmación en unos momentos."
625
 
626
- #: includes/class-freemius.php:20519
627
  msgid "Please provide your full name."
628
  msgstr "Por favor, dinos tu nombre completo."
629
 
630
- #: includes/class-freemius.php:20524
631
  msgid "Your name was successfully updated."
632
  msgstr "Tu nombre fue actualizado correctamente."
633
 
634
- #: includes/class-freemius.php:20585
635
  msgid "You have successfully updated your %s."
636
  msgstr "Has actualizado correctamente tu %s."
637
 
638
- #: includes/class-freemius.php:20725
639
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
640
  msgstr "Sólo déjanos informarte que la información de complementos de %s se está extrayendo de un servidor externo."
641
 
642
- #: includes/class-freemius.php:20726
643
  msgctxt "advance notice of something that will need attention."
644
  msgid "Heads up"
645
  msgstr "Atención"
646
 
647
- #: includes/class-freemius.php:21165
648
  msgctxt "exclamation"
649
  msgid "Hey"
650
  msgstr "Hey"
651
 
652
- #: includes/class-freemius.php:21165
653
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
654
  msgstr "¿Qué te pareció %s hasta ahora? Prueba todas nuestras funciones premium de %s con una prueba gratuita de % d-días."
655
 
656
- #: includes/class-freemius.php:21173
657
  msgid "No commitment for %s days - cancel anytime!"
658
  msgstr "Sin compromiso por %s días - ¡cancelar en cualquier momento!"
659
 
660
- #: includes/class-freemius.php:21174
661
  msgid "No credit card required"
662
  msgstr "No se necesita tarjeta de crédito"
663
 
664
- #: includes/class-freemius.php21181, templates/forms/trial-start.php:53
665
  msgctxt "call to action"
666
  msgid "Start free trial"
667
  msgstr "Comenzar el período de prueba gratuito"
668
 
669
- #: includes/class-freemius.php:21258
670
  msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
671
  msgstr "Hey, ¿sabías que %s tiene un programa de afiliados? ¡Si te gusta %s puedes convertirte en nuestro embajador y ganar dinero!"
672
 
673
- #: includes/class-freemius.php:21267
674
  msgid "Learn more"
675
  msgstr "Saber más"
676
 
677
- #: includes/class-freemius.php21447, templates/account.php474,
678
- #: templates/account.php595, templates/connect.php171,
679
- #: templates/connect.php421, templates/forms/license-activation.php25,
680
- #: templates/account/partials/addon.php:287
681
  msgid "Activate License"
682
  msgstr "Activar licencia"
683
 
684
- #: includes/class-freemius.php21448, templates/account.php543,
685
- #: templates/account.php594, templates/account/partials/site.php:256
 
686
  msgid "Change License"
687
  msgstr "Cambiar licencia"
688
 
689
- #: includes/class-freemius.php21539, templates/account/partials/site.php:161
690
  msgid "Opt Out"
691
  msgstr "Darse de baja"
692
 
693
- #: includes/class-freemius.php21541, includes/class-freemius.php21547,
694
- #: templates/account/partials/site.php43,
695
- #: templates/account/partials/site.php:161
696
  msgid "Opt In"
697
  msgstr "Inscribirse"
698
 
699
- #: includes/class-freemius.php:21775
700
  msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
701
- msgstr " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
702
 
703
- #: includes/class-freemius.php:21783
704
  msgid "Activate %s features"
705
  msgstr "Activar características %s"
706
 
707
- #: includes/class-freemius.php:21796
708
  msgid "Please follow these steps to complete the upgrade"
709
  msgstr "Por favor, sigue estos pasos para completar la actualización"
710
 
711
- #: includes/class-freemius.php:21800
712
  msgid "Download the latest %s version"
713
  msgstr "Descargar la última versión %s"
714
 
715
- #: includes/class-freemius.php:21804
716
  msgid "Upload and activate the downloaded version"
717
  msgstr "Cargar y activar la versión descargada"
718
 
719
- #: includes/class-freemius.php:21806
720
  msgid "How to upload and activate?"
721
  msgstr "¿Cómo subirlo y activarlo?"
722
 
723
- #: includes/class-freemius.php:21940
724
  msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
725
  msgstr "%sClick aquí %s para elegir los sitios sobre los que te gustaría activar la licencia."
726
 
727
- #: includes/class-freemius.php:22101
728
  msgid "Auto installation only works for opted-in users."
729
  msgstr "La instalación automática sólo funciona para usuarios que aceptaron."
730
 
731
- #: includes/class-freemius.php22111, includes/class-freemius.php22144,
732
- #: includes/class-fs-plugin-updater.php1149,
733
- #: includes/class-fs-plugin-updater.php:1163
734
  msgid "Invalid module ID."
735
  msgstr "Id de módulo no válido."
736
 
737
- #: includes/class-freemius.php22120, includes/class-fs-plugin-updater.php:1185
738
  msgid "Premium version already active."
739
  msgstr "Versión premium ya activa."
740
 
741
- #: includes/class-freemius.php:22127
742
  msgid "You do not have a valid license to access the premium version."
743
  msgstr "No tienes una licencia válida para acceder a la versión premium."
744
 
745
- #: includes/class-freemius.php:22134
746
  msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
747
  msgstr "El plugin es un \"Serviceware\" lo que significa que no tiene una versión de código premium."
748
 
749
- #: includes/class-freemius.php22152, includes/class-fs-plugin-updater.php:1184
750
  msgid "Premium add-on version already installed."
751
  msgstr "Versión del complemento premium ya instalada."
752
 
753
- #: includes/class-freemius.php:22497
754
  msgid "View paid features"
755
  msgstr "Ver las funciones de pago"
756
 
757
- #: includes/class-freemius.php:22819
758
  msgid "Thank you so much for using %s and its add-ons!"
759
  msgstr "¡Muchas gracias por utilizar %s y sus complementos!"
760
 
761
- #: includes/class-freemius.php:22820
762
  msgid "Thank you so much for using %s!"
763
  msgstr "¡Muchas gracias por utilizar %s!"
764
 
765
- #: includes/class-freemius.php:22826
766
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
767
  msgstr "Ya has optado por nuestro seguimiento de uso, lo que nos ayuda a seguir mejorando %s."
768
 
769
- #: includes/class-freemius.php:22830
770
  msgid "Thank you so much for using our products!"
771
  msgstr "¡Muchas gracias por utilizar nuestros productos!"
772
 
773
- #: includes/class-freemius.php:22831
774
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
775
  msgstr "Ya has optado por nuestro seguimiento de uso, lo que nos ayuda a seguir mejorando."
776
 
777
- #: includes/class-freemius.php:22850
778
  msgid "%s and its add-ons"
779
  msgstr "%s y sus complementos"
780
 
781
- #: includes/class-freemius.php:22859
782
  msgid "Products"
783
  msgstr "Productos"
784
 
785
- #: includes/class-freemius.php22866, templates/connect.php:272
786
  msgid "Yes"
787
  msgstr "Si"
788
 
789
- #: includes/class-freemius.php22867, templates/connect.php:273
790
  msgid "send me security & feature updates, educational content and offers."
791
  msgstr "envíame actualizaciones de seguridad y nuevas funcionalidades, contenido educativo y ofertas."
792
 
793
- #: includes/class-freemius.php22868, templates/connect.php:278
794
  msgid "No"
795
  msgstr "No"
796
 
797
- #: includes/class-freemius.php22870, templates/connect.php:280
798
  msgid "do %sNOT%s send me security & feature updates, educational content and offers."
799
  msgstr "%sNO%s me envíes actualizaciones de seguridad y nuevas funcionalidades, contenido educativo y ofertas."
800
 
801
- #: includes/class-freemius.php:22880
802
  msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
803
- msgstr "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
804
 
805
- #: includes/class-freemius.php22882, templates/connect.php:287
806
  msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
807
  msgstr "Indica si deseas que te contactemos para actualizaciones de seguridad y nuevas funciones, contenido educativo y ofertas ocasionales:"
808
 
809
- #: includes/class-freemius.php:23164
810
  msgid "License key is empty."
811
  msgstr "La clave de licencia está vacía."
812
 
813
- #: includes/class-fs-plugin-updater.php184,
814
  #: templates/forms/premium-versions-upgrade-handler.php:57
815
  msgid "Renew license"
816
  msgstr "Renovar la licencia"
817
 
818
- #: includes/class-fs-plugin-updater.php189,
819
  #: templates/forms/premium-versions-upgrade-handler.php:58
820
  msgid "Buy license"
821
  msgstr "Comprar licencia"
822
 
823
- #: includes/class-fs-plugin-updater.php280,
824
- #: includes/class-fs-plugin-updater.php:313
825
  msgid "There is a %s of %s available."
826
  msgstr "Hay una %s de %s disponible."
827
 
828
- #: includes/class-fs-plugin-updater.php282,
829
- #: includes/class-fs-plugin-updater.php:318
830
  msgid "new Beta version"
831
- msgstr "new Beta version"
832
 
833
- #: includes/class-fs-plugin-updater.php283,
834
- #: includes/class-fs-plugin-updater.php:319
835
  msgid "new version"
836
  msgstr "nueva versión"
837
 
838
- #: includes/class-fs-plugin-updater.php:342
839
  msgid "Important Upgrade Notice:"
840
  msgstr "Aviso importante de actualización:"
841
 
842
- #: includes/class-fs-plugin-updater.php:1214
843
  msgid "Installing plugin: %s"
844
  msgstr "Instalando plugin: %s"
845
 
846
- #: includes/class-fs-plugin-updater.php:1255
847
  msgid "Unable to connect to the filesystem. Please confirm your credentials."
848
  msgstr "No es posible conectarse al sistema de archivos. Por favor, confirma tus credenciales."
849
 
850
- #: includes/class-fs-plugin-updater.php:1437
851
  msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
852
  msgstr "El paquete de plugin remoto no contiene una carpeta con el Slug deseado y el cambio de nombre no funcionó."
853
 
854
- #: includes/fs-plugin-info-dialog.php:509
855
  msgid "Purchase More"
856
- msgstr "Purchase More"
857
 
858
- #: includes/fs-plugin-info-dialog.php510,
859
- #: templates/account/partials/addon.php:347
860
  msgctxt "verb"
861
  msgid "Purchase"
862
  msgstr "Comprar"
863
 
864
- #: includes/fs-plugin-info-dialog.php:514
865
  msgid "Start my free %s"
866
  msgstr "Comenzar mi período gratuito de %s"
867
 
868
- #: includes/fs-plugin-info-dialog.php:712
869
  msgid "Install Free Version Update Now"
870
  msgstr "Instalar la actualización gratuita ahora"
871
 
872
- #: includes/fs-plugin-info-dialog.php713, templates/account.php:534
873
  msgid "Install Update Now"
874
  msgstr "Instalar actualización ahora"
875
 
876
- #: includes/fs-plugin-info-dialog.php:722
877
  msgid "Install Free Version Now"
878
  msgstr "Instalar la versión gratuita ahora"
879
 
880
- #: includes/fs-plugin-info-dialog.php723, templates/add-ons.php262,
881
  #: templates/auto-installation.php111,
882
- #: templates/account/partials/addon.php327,
883
- #: templates/account/partials/addon.php:379
884
  msgid "Install Now"
885
  msgstr "Instalar ahora"
886
 
887
- #: includes/fs-plugin-info-dialog.php:739
888
  msgctxt "as download latest version"
889
  msgid "Download Latest Free Version"
890
  msgstr "Descargar la última versión gratuita"
891
 
892
- #: includes/fs-plugin-info-dialog.php740, templates/account.php85,
893
- #: templates/add-ons.php34, templates/account/partials/addon.php:25
894
  msgctxt "as download latest version"
895
  msgid "Download Latest"
896
  msgstr "Descargar la última"
897
 
898
- #: includes/fs-plugin-info-dialog.php755, templates/add-ons.php268,
899
- #: templates/account/partials/addon.php318,
900
- #: templates/account/partials/addon.php:373
901
  msgid "Activate this add-on"
902
  msgstr "Activar este complemento"
903
 
904
- #: includes/fs-plugin-info-dialog.php757, templates/connect.php:418
905
  msgid "Activate Free Version"
906
  msgstr "Activar versión gratuita"
907
 
908
- #: includes/fs-plugin-info-dialog.php758, templates/account.php109,
909
- #: templates/add-ons.php269, templates/account/partials/addon.php:49
910
  msgid "Activate"
911
  msgstr "Activar"
912
 
913
- #: includes/fs-plugin-info-dialog.php:968
914
  msgctxt "Plugin installer section title"
915
  msgid "Description"
916
  msgstr "Descripción"
917
 
918
- #: includes/fs-plugin-info-dialog.php:969
919
  msgctxt "Plugin installer section title"
920
  msgid "Installation"
921
  msgstr "Instalación"
922
 
923
- #: includes/fs-plugin-info-dialog.php:970
924
  msgctxt "Plugin installer section title"
925
  msgid "FAQ"
926
  msgstr "FAQ"
927
 
928
- #: includes/fs-plugin-info-dialog.php971,
929
  #: templates/plugin-info/description.php:55
930
  msgid "Screenshots"
931
  msgstr "Capturas de pantalla"
932
 
933
- #: includes/fs-plugin-info-dialog.php:972
934
  msgctxt "Plugin installer section title"
935
  msgid "Changelog"
936
  msgstr "Registro de cambios"
937
 
938
- #: includes/fs-plugin-info-dialog.php:973
939
  msgctxt "Plugin installer section title"
940
  msgid "Reviews"
941
  msgstr "Valoraciones"
942
 
943
- #: includes/fs-plugin-info-dialog.php:974
944
  msgctxt "Plugin installer section title"
945
  msgid "Other Notes"
946
  msgstr "Otras notas"
947
 
948
- #: includes/fs-plugin-info-dialog.php:989
949
  msgctxt "Plugin installer section title"
950
  msgid "Features & Pricing"
951
  msgstr "Características y precios"
952
 
953
- #: includes/fs-plugin-info-dialog.php:999
954
  msgid "Plugin Install"
955
  msgstr "Instalar plugin"
956
 
957
- #: includes/fs-plugin-info-dialog.php:1071
958
  msgctxt "e.g. Professional Plan"
959
  msgid "%s Plan"
960
  msgstr "Plan %s"
961
 
962
- #: includes/fs-plugin-info-dialog.php:1097
963
  msgctxt "e.g. the best product"
964
  msgid "Best"
965
  msgstr "El mejor"
966
 
967
- #: includes/fs-plugin-info-dialog.php1103,
968
- #: includes/fs-plugin-info-dialog.php:1123
969
  msgctxt "as every month"
970
  msgid "Monthly"
971
  msgstr "Mensual"
972
 
973
- #: includes/fs-plugin-info-dialog.php:1106
974
  msgctxt "as once a year"
975
  msgid "Annual"
976
  msgstr "Anual"
977
 
978
- #: includes/fs-plugin-info-dialog.php:1109
979
  msgid "Lifetime"
980
  msgstr "Permanente"
981
 
982
- #: includes/fs-plugin-info-dialog.php1123,
983
- #: includes/fs-plugin-info-dialog.php1125,
984
- #: includes/fs-plugin-info-dialog.php:1127
985
  msgctxt "e.g. billed monthly"
986
  msgid "Billed %s"
987
  msgstr "Facturado %s"
988
 
989
- #: includes/fs-plugin-info-dialog.php:1125
990
  msgctxt "as once a year"
991
  msgid "Annually"
992
  msgstr "Anualmente"
993
 
994
- #: includes/fs-plugin-info-dialog.php:1127
995
  msgctxt "as once a year"
996
  msgid "Once"
997
  msgstr "Una vez"
998
 
999
- #: includes/fs-plugin-info-dialog.php:1133
1000
  msgid "Single Site License"
1001
  msgstr "Licencia para un único sitio"
1002
 
1003
- #: includes/fs-plugin-info-dialog.php:1135
1004
  msgid "Unlimited Licenses"
1005
  msgstr "Licencias ilimitadas"
1006
 
1007
- #: includes/fs-plugin-info-dialog.php:1137
1008
  msgid "Up to %s Sites"
1009
  msgstr "Hasta %s sitios"
1010
 
1011
- #: includes/fs-plugin-info-dialog.php1147,
1012
  #: templates/plugin-info/features.php:82
1013
  msgctxt "as monthly period"
1014
  msgid "mo"
1015
  msgstr "me"
1016
 
1017
- #: includes/fs-plugin-info-dialog.php1154,
1018
  #: templates/plugin-info/features.php:80
1019
  msgctxt "as annual period"
1020
  msgid "year"
1021
  msgstr "año"
1022
 
1023
- #: includes/fs-plugin-info-dialog.php:1208
1024
  msgctxt "noun"
1025
  msgid "Price"
1026
  msgstr "Precio"
1027
 
1028
- #: includes/fs-plugin-info-dialog.php:1256
1029
  msgid "Save %s"
1030
  msgstr "Guardar %s"
1031
 
1032
- #: includes/fs-plugin-info-dialog.php:1266
1033
  msgid "No commitment for %s - cancel anytime"
1034
  msgstr "Sin compromiso para %s - cancelar en cualquier momento"
1035
 
1036
- #: includes/fs-plugin-info-dialog.php:1269
1037
  msgid "After your free %s, pay as little as %s"
1038
  msgstr "Después de su período gratuito %s, pague sólo %s"
1039
 
1040
- #: includes/fs-plugin-info-dialog.php:1280
1041
  msgid "Details"
1042
  msgstr "Detalles"
1043
 
1044
- #: includes/fs-plugin-info-dialog.php1284, templates/account.php96,
1045
- #: templates/debug.php203, templates/debug.php240, templates/debug.php454,
1046
  #: templates/account/partials/addon.php:36
1047
  msgctxt "product version"
1048
  msgid "Version"
1049
  msgstr "Versión"
1050
 
1051
- #: includes/fs-plugin-info-dialog.php:1291
1052
  msgctxt "as the plugin author"
1053
  msgid "Author"
1054
  msgstr "Autor"
1055
 
1056
- #: includes/fs-plugin-info-dialog.php:1298
1057
  msgid "Last Updated"
1058
  msgstr "Última actualización"
1059
 
1060
- #: includes/fs-plugin-info-dialog.php1303, templates/account.php:444
1061
  msgctxt "x-ago"
1062
  msgid "%s ago"
1063
  msgstr "hace %s"
1064
 
1065
- #: includes/fs-plugin-info-dialog.php:1312
1066
  msgid "Requires WordPress Version"
1067
  msgstr "Necesita la versión de WordPress"
1068
 
1069
- #: includes/fs-plugin-info-dialog.php:1313
1070
  msgid "%s or higher"
1071
  msgstr "%s o mayor"
1072
 
1073
- #: includes/fs-plugin-info-dialog.php:1320
1074
  msgid "Compatible up to"
1075
  msgstr "Compatible hasta"
1076
 
1077
- #: includes/fs-plugin-info-dialog.php:1328
1078
  msgid "Downloaded"
1079
  msgstr "Descargado"
1080
 
1081
- #: includes/fs-plugin-info-dialog.php:1332
1082
  msgid "%s time"
1083
  msgstr "% vez"
1084
 
1085
- #: includes/fs-plugin-info-dialog.php:1334
1086
  msgid "%s times"
1087
  msgstr "%s veces"
1088
 
1089
- #: includes/fs-plugin-info-dialog.php:1344
1090
  msgid "WordPress.org Plugin Page"
1091
  msgstr "Página del plugin en WordPress.org"
1092
 
1093
- #: includes/fs-plugin-info-dialog.php:1352
1094
  msgid "Plugin Homepage"
1095
  msgstr "Página web del plugin"
1096
 
1097
- #: includes/fs-plugin-info-dialog.php1360,
1098
- #: includes/fs-plugin-info-dialog.php:1442
1099
  msgid "Donate to this plugin"
1100
  msgstr "Donar a este plugin"
1101
 
1102
- #: includes/fs-plugin-info-dialog.php:1367
1103
  msgid "Average Rating"
1104
  msgstr "Calificación media"
1105
 
1106
- #: includes/fs-plugin-info-dialog.php:1374
1107
  msgid "based on %s"
1108
  msgstr "basado en %s"
1109
 
1110
- #: includes/fs-plugin-info-dialog.php:1378
1111
  msgid "%s rating"
1112
  msgstr "%s calificación"
1113
 
1114
- #: includes/fs-plugin-info-dialog.php:1380
1115
  msgid "%s ratings"
1116
  msgstr "%s calificaciones"
1117
 
1118
- #: includes/fs-plugin-info-dialog.php:1395
1119
  msgid "%s star"
1120
  msgstr "%s estrella"
1121
 
1122
- #: includes/fs-plugin-info-dialog.php:1397
1123
  msgid "%s stars"
1124
  msgstr "%s estrellas"
1125
 
1126
- #: includes/fs-plugin-info-dialog.php:1408
1127
  msgid "Click to see reviews that provided a rating of %s"
1128
  msgstr "Haz clic para ver los comentarios con una valoración de %s"
1129
 
1130
- #: includes/fs-plugin-info-dialog.php:1421
1131
  msgid "Contributors"
1132
  msgstr "Colaboradores"
1133
 
1134
- #: includes/fs-plugin-info-dialog.php1450,
1135
- #: includes/fs-plugin-info-dialog.php:1452
1136
  msgid "Warning"
1137
  msgstr "Atencion"
1138
 
1139
- #: includes/fs-plugin-info-dialog.php:1450
1140
  msgid "This plugin has not been tested with your current version of WordPress."
1141
  msgstr "Este plugin no ha sido probado con tu versión actual de WordPress."
1142
 
1143
- #: includes/fs-plugin-info-dialog.php:1452
1144
  msgid "This plugin has not been marked as compatible with your version of WordPress."
1145
  msgstr "Este puglin no ha sido marcado como compatible con tu versión de WordPress."
1146
 
1147
- #: includes/fs-plugin-info-dialog.php:1471
1148
  msgid "Paid add-on must be deployed to Freemius."
1149
  msgstr "El complemento de pago se debe implementar en Freemius."
1150
 
1151
- #: includes/fs-plugin-info-dialog.php:1472
1152
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1153
  msgstr "El complemento debe implementarse en WordPress.org o en Freemius."
1154
 
1155
- #: includes/fs-plugin-info-dialog.php:1493
1156
  msgid "Newer Version (%s) Installed"
1157
  msgstr "Versión más reciente (%s) instalada"
1158
 
1159
- #: includes/fs-plugin-info-dialog.php:1494
1160
  msgid "Newer Free Version (%s) Installed"
1161
  msgstr "Versión gratuita más reciente (%s) instalada"
1162
 
1163
- #: includes/fs-plugin-info-dialog.php:1501
1164
  msgid "Latest Version Installed"
1165
  msgstr "Última versión instalada"
1166
 
1167
- #: includes/fs-plugin-info-dialog.php:1502
1168
  msgid "Latest Free Version Installed"
1169
  msgstr "Última versión gratuita instalada"
1170
 
1171
- #: templates/account.php86, templates/forms/subscription-cancellation.php96,
1172
  #: templates/account/partials/addon.php26,
1173
- #: templates/account/partials/site.php:295
1174
  msgid "Downgrading your plan"
1175
  msgstr "Bajando tu plan"
1176
 
1177
- #: templates/account.php87, templates/forms/subscription-cancellation.php97,
1178
  #: templates/account/partials/addon.php27,
1179
- #: templates/account/partials/site.php:296
1180
  msgid "Cancelling the subscription"
1181
  msgstr "Cancelando la suscripción"
1182
 
1183
  #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
1184
  #. subscription'
1185
- #: templates/account.php:89
 
1186
  msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1187
- msgstr "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1188
 
1189
- #: templates/account.php90, templates/forms/subscription-cancellation.php100,
1190
  #: templates/account/partials/addon.php30,
1191
- #: templates/account/partials/site.php:299
1192
  msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1193
  msgstr "Ten en cuenta que no podremos abaratar los precios desactualizados para renovaciones/nuevas suscripciones después de una cancelación. Si eliges renovar la suscripción manualmente en el futuro, después de un aumento de precio, que generalmente ocurre una vez al año, se te cobrará el precio actualizado."
1194
 
1195
- #: templates/account.php91, templates/forms/subscription-cancellation.php106,
1196
  #: templates/account/partials/addon.php:31
1197
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1198
  msgstr "La cancelación del período de prueba bloqueará inmediatamente el acceso a todas las funciones premium. ¿Estás seguro?"
1199
 
1200
- #: templates/account.php92, templates/forms/subscription-cancellation.php101,
1201
  #: templates/account/partials/addon.php32,
1202
- #: templates/account/partials/site.php:300
1203
  msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1204
  msgstr "Todavía puedes disfrutar de todas las funciones de %s pero no tendrás acceso a soporte y actualizaciones de %s."
1205
 
1206
- #: templates/account.php93, templates/forms/subscription-cancellation.php102,
1207
  #: templates/account/partials/addon.php33,
1208
- #: templates/account/partials/site.php:301
1209
  msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1210
  msgstr "Una vez que caduque tu licencia todavía puedes utilizar la versión gratuita pero NO tendrás acceso a las funciones de %s."
1211
 
1212
  #. translators: %s: Plan title (e.g. "Professional")
1213
- #: templates/account.php95,
1214
  #: templates/account/partials/activate-license-button.php31,
1215
  #: templates/account/partials/addon.php:35
1216
  msgid "Activate %s Plan"
1217
  msgstr "Activar plan %s"
1218
 
1219
  #. translators: %s: Time period (e.g. Auto renews in "2 months")
1220
- #: templates/account.php98, templates/account/partials/addon.php38,
1221
- #: templates/account/partials/site.php:275
1222
  msgid "Auto renews in %s"
1223
  msgstr "Auto renovaciones en %s"
1224
 
1225
  #. translators: %s: Time period (e.g. Expires in "2 months")
1226
- #: templates/account.php100, templates/account/partials/addon.php40,
1227
- #: templates/account/partials/site.php:277
1228
  msgid "Expires in %s"
1229
  msgstr "Caduca en %s"
1230
 
1231
- #: templates/account.php101, templates/account/partials/addon.php:41
1232
  msgctxt "as synchronize license"
1233
  msgid "Sync License"
1234
  msgstr "Sincronizar licencia"
1235
 
1236
- #: templates/account.php102, templates/account/partials/addon.php:42
1237
  msgid "Cancel Trial"
1238
  msgstr "Cancelar período de prueba"
1239
 
1240
- #: templates/account.php103, templates/account/partials/addon.php:43
1241
  msgid "Change Plan"
1242
  msgstr "Cambiar Plan"
1243
 
1244
- #: templates/account.php104, templates/account/partials/addon.php:44
1245
  msgctxt "verb"
1246
  msgid "Upgrade"
1247
  msgstr "Actualizar"
1248
 
1249
- #: templates/account.php106, templates/account/partials/addon.php46,
1250
- #: templates/account/partials/site.php:302
1251
  msgctxt "verb"
1252
  msgid "Downgrade"
1253
  msgstr "Degradar"
1254
 
1255
- #: templates/account.php108, templates/add-ons.php187,
1256
  #: templates/plugin-info/features.php72,
1257
- #: templates/account/partials/addon.php48,
1258
- #: templates/account/partials/site.php:31
1259
  msgid "Free"
1260
  msgstr "Gratis"
1261
 
1262
- #: templates/account.php110, templates/debug.php373,
1263
- #: includes/customizer/class-fs-customizer-upsell-control.php106,
1264
- #: templates/account/partials/addon.php:50
1265
  msgctxt "as product pricing plan"
1266
  msgid "Plan"
1267
  msgstr "Plan"
1268
 
1269
- #: templates/account.php:111
1270
  msgid "Bundle Plan"
1271
- msgstr "Bundle Plan"
1272
 
1273
- #: templates/account.php:185
1274
  msgid "Free Trial"
1275
  msgstr "Período de prueba gratuito"
1276
 
1277
- #: templates/account.php:196
1278
  msgid "Account Details"
1279
  msgstr "Detalles de la cuenta"
1280
 
1281
- #: templates/account.php:200
 
 
 
 
 
 
 
 
1282
  msgid "Billing & Invoices"
1283
- msgstr "Billing & Invoices"
1284
 
1285
- #: templates/account.php:210
1286
  msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1287
  msgstr "La eliminación de la cuenta desactivará automáticamente su licencia de plan %s para que pueda utilizarla en otros sitios. Si también desea cancelar los pagos periódicos, haga clic en el botón \"Cancelar\" y, en primer lugar, \"Degradar\" su cuenta. ¿Seguro que deseas continuar con la eliminación?"
1288
 
1289
- #: templates/account.php:212
1290
  msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1291
  msgstr "La eliminación no es temporal. Sólo elimínalo si ya no deseas utilizar este %s más. ¿Estás seguro que desea continuar con la eliminación?"
1292
 
1293
- #: templates/account.php:215
1294
  msgid "Delete Account"
1295
  msgstr "Borrar cuenta"
1296
 
1297
- #: templates/account.php227, templates/account/partials/addon.php211,
1298
  #: templates/account/partials/deactivate-license-button.php:35
1299
  msgid "Deactivate License"
1300
  msgstr "Desactivar licencia"
1301
 
1302
- #: templates/account.php250, templates/forms/subscription-cancellation.php:125
1303
  msgid "Are you sure you want to proceed?"
1304
  msgstr "¿Estás seguro que quieres proceder?"
1305
 
1306
- #: templates/account.php250, templates/account/partials/addon.php:234
1307
  msgid "Cancel Subscription"
1308
  msgstr "Cancelar suscripción"
1309
 
1310
- #: templates/account.php:278
1311
  msgctxt "as synchronize"
1312
  msgid "Sync"
1313
  msgstr "Sincronizar"
1314
 
1315
- #: templates/account.php292, templates/debug.php:489
1316
  msgid "Name"
1317
  msgstr "Nombre"
1318
 
1319
- #: templates/account.php298, templates/debug.php:490
1320
  msgid "Email"
1321
  msgstr "Correo electrónico"
1322
 
1323
- #: templates/account.php305, templates/debug.php372, templates/debug.php:528
1324
  msgid "User ID"
1325
  msgstr "ID de usuario"
1326
 
1327
- #: templates/account.php322, templates/account.php608,
1328
- #: templates/account.php653, templates/debug.php238, templates/debug.php366,
1329
- #: templates/debug.php451, templates/debug.php488, templates/debug.php526,
1330
- #: templates/debug.php599, templates/account/payments.php35,
1331
  #: templates/debug/logger.php:21
1332
  msgid "ID"
1333
  msgstr "ID"
1334
 
1335
- #: templates/account.php:329
1336
  msgid "Site ID"
1337
  msgstr "ID del sitio"
1338
 
1339
- #: templates/account.php:332
1340
  msgid "No ID"
1341
  msgstr "Sin ID"
1342
 
1343
- #: templates/account.php337, templates/debug.php245, templates/debug.php374,
1344
- #: templates/debug.php455, templates/debug.php492,
1345
- #: templates/account/partials/site.php:219
1346
  msgid "Public Key"
1347
  msgstr "Clave pública"
1348
 
1349
- #: templates/account.php343, templates/debug.php375, templates/debug.php456,
1350
- #: templates/debug.php493, templates/account/partials/site.php:231
1351
  msgid "Secret Key"
1352
  msgstr "Clave secreta"
1353
 
1354
- #: templates/account.php:346
1355
  msgctxt "as secret encryption key missing"
1356
  msgid "No Secret"
1357
  msgstr "Sin clave secreta"
1358
 
1359
- #: templates/account.php373, templates/account/partials/site.php112,
1360
- #: templates/account/partials/site.php:114
1361
  msgid "Trial"
1362
  msgstr "Período de prueba gratuito"
1363
 
1364
- #: templates/account.php400, templates/debug.php533,
1365
- #: templates/account/partials/site.php:248
1366
  msgid "License Key"
1367
  msgstr "Clave de licencia"
1368
 
1369
- #: templates/account.php:429
1370
  msgid "Join the Beta program"
1371
- msgstr "Join the Beta program"
1372
 
1373
- #: templates/account.php:435
1374
  msgid "not verified"
1375
  msgstr "no verificado"
1376
 
1377
- #: templates/account.php444, templates/account/partials/addon.php:172
1378
  msgid "Expired"
1379
  msgstr "Caducado"
1380
 
1381
- #: templates/account.php:502
1382
  msgid "Premium version"
1383
  msgstr "Versión premium"
1384
 
1385
- #: templates/account.php:504
1386
  msgid "Free version"
1387
  msgstr "Versión gratuita"
1388
 
1389
- #: templates/account.php:516
1390
  msgid "Verify Email"
1391
  msgstr "Verificar correo electrónico"
1392
 
1393
- #: templates/account.php:527
1394
  msgid "Download %s Version"
1395
  msgstr "Descargar versión %s"
1396
 
1397
- #: templates/account.php541, templates/account.php749,
1398
- #: templates/account/partials/site.php237,
1399
- #: templates/account/partials/site.php:255
1400
  msgctxt "verb"
1401
  msgid "Show"
1402
  msgstr "Mostrar"
1403
 
1404
- #: templates/account.php:555
1405
  msgid "What is your %s?"
1406
  msgstr "¿Cual es tú %s?"
1407
 
1408
- #: templates/account.php563, templates/account/billing.php:21
1409
  msgctxt "verb"
1410
  msgid "Edit"
1411
  msgstr "Editar"
1412
 
1413
- #: templates/account.php:588
1414
  msgid "Sites"
1415
  msgstr "Sitios"
1416
 
1417
- #: templates/account.php:599
1418
  msgid "Search by address"
1419
  msgstr "Buscar por dirección"
1420
 
1421
- #: templates/account.php609, templates/debug.php:369
1422
  msgid "Address"
1423
  msgstr "Dirección"
1424
 
1425
- #: templates/account.php:610
1426
  msgid "License"
1427
  msgstr "Licencia"
1428
 
1429
- #: templates/account.php:611
1430
  msgid "Plan"
1431
  msgstr "Plan"
1432
 
1433
- #: templates/account.php:656
1434
  msgctxt "as software license"
1435
  msgid "License"
1436
  msgstr "Licencia"
1437
 
1438
- #: templates/account.php:743
1439
  msgctxt "verb"
1440
  msgid "Hide"
1441
  msgstr "Ocultar"
1442
 
1443
- #: templates/account.php:765
1444
  msgid "Processing"
1445
  msgstr "Procesando"
1446
 
1447
- #: templates/account.php:768
1448
  msgid "Get updates for bleeding edge Beta versions of %s."
1449
- msgstr "Get updates for bleeding edge Beta versions of %s."
1450
 
1451
- #: templates/account.php:826
1452
  msgid "Cancelling %s"
1453
  msgstr "Cancelando %s"
1454
 
1455
- #: templates/account.php826, templates/account.php843,
1456
  #: templates/forms/subscription-cancellation.php27,
1457
  #: templates/forms/deactivation/form.php:133
1458
  msgid "trial"
1459
  msgstr "período de prueba"
1460
 
1461
- #: templates/account.php841, templates/forms/deactivation/form.php:150
1462
  msgid "Cancelling %s..."
1463
  msgstr "Cancelando %s..."
1464
 
1465
- #: templates/account.php844, templates/forms/subscription-cancellation.php28,
1466
  #: templates/forms/deactivation/form.php:134
1467
  msgid "subscription"
1468
  msgstr "suscripción"
1469
 
1470
- #: templates/account.php:858
1471
  msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1472
  msgstr "Al desactivar tu licencia todas las características premium se bloquearán, pero posibilitará poder activar tu licencia en otro sitio. ¿Estás seguro que quieres continuar?"
1473
 
1474
- #: templates/add-ons.php:35
1475
  msgid "View details"
1476
  msgstr "Ver detalles"
1477
 
1478
- #: templates/add-ons.php:45
1479
  msgid "Add Ons for %s"
1480
  msgstr "Complementos para %s"
1481
 
1482
- #: templates/add-ons.php:55
1483
- msgid "We could'nt load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1484
- msgstr "No podemos cargar la lista de complementos. Probablemente es un problema por nuestro parte, por favor inténtalo de nuevo en unos minutos."
1485
 
1486
- #: templates/add-ons.php:173
1487
  msgctxt "active add-on"
1488
  msgid "Active"
1489
  msgstr "Activo"
1490
 
1491
- #: templates/add-ons.php:174
1492
  msgctxt "installed add-on"
1493
  msgid "Installed"
1494
- msgstr "Installed"
1495
 
1496
- #: templates/admin-notice.php13, templates/forms/license-activation.php209,
1497
  #: templates/forms/resend-key.php:77
1498
  msgctxt "as close a window"
1499
  msgid "Dismiss"
@@ -1545,7 +1564,7 @@ msgstr "Reenviar correo electrónico de activación"
1545
  msgid "Thanks %s!"
1546
  msgstr "¡Gracias %s!"
1547
 
1548
- #: templates/connect.php172, templates/forms/license-activation.php:44
1549
  msgid "Agree & Activate License"
1550
  msgstr "De acuerdo y activar licencia"
1551
 
@@ -1593,11 +1612,12 @@ msgstr "Alternativamente, puedes saltarlo ahora y activar la licencia después,
1593
  msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
1594
  msgstr "Durante el proceso de actualización detectamos %s sitio(s) en la red que todavía están pendientes de tu atención."
1595
 
1596
- #: templates/connect.php253, templates/forms/license-activation.php:47
 
1597
  msgid "License key"
1598
  msgstr "Clave de licencia"
1599
 
1600
- #: templates/connect.php256, templates/forms/license-activation.php:20
1601
  msgid "Can't find your license key?"
1602
  msgstr "¿No puedes encontrar tu clave de licencia?"
1603
 
@@ -1651,7 +1671,7 @@ msgstr "Activación, desactivación y desinstalación"
1651
  msgid "Newsletter"
1652
  msgstr "Boletín"
1653
 
1654
- #: templates/connect.php391, templates/forms/license-activation.php:39
1655
  msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
1656
  msgstr "%1$s periódicamente enviará datos a %2$s para comprobar las actualizaciones de seguridad, nuevas funcionalidades y verificar la validez de tu licencia."
1657
 
@@ -1713,7 +1733,7 @@ msgid "Debugging"
1713
  msgstr "Depurando"
1714
 
1715
  #: templates/debug.php54, templates/debug.php250, templates/debug.php376,
1716
- #: templates/debug.php:494
1717
  msgid "Actions"
1718
  msgstr "Acciones"
1719
 
@@ -1782,12 +1802,12 @@ msgstr "Plugins"
1782
  msgid "Themes"
1783
  msgstr "Temas"
1784
 
1785
- #: templates/debug.php239, templates/debug.php371, templates/debug.php453,
1786
  #: templates/debug/scheduled-crons.php:80
1787
  msgid "Slug"
1788
  msgstr "Ruta"
1789
 
1790
- #: templates/debug.php241, templates/debug.php:452
1791
  msgid "Title"
1792
  msgstr "Título"
1793
 
@@ -1826,114 +1846,118 @@ msgstr "Simular período de prueba"
1826
  msgid "Simulate Network Upgrade"
1827
  msgstr "Simular actualización de red"
1828
 
1829
- #: templates/debug.php:360
1830
  msgid "%s Installs"
1831
  msgstr "%s Instalaciones"
1832
 
1833
- #: templates/debug.php:362
1834
  msgctxt "like websites"
1835
  msgid "Sites"
1836
  msgstr "Sitios"
1837
 
1838
- #: templates/debug.php368, templates/account/partials/site.php:148
1839
  msgid "Blog ID"
1840
  msgstr "ID del blog"
1841
 
1842
- #: templates/debug.php433, templates/debug.php511,
1843
- #: templates/account/partials/addon.php:396
 
 
 
 
1844
  msgctxt "verb"
1845
  msgid "Delete"
1846
  msgstr "Borrar"
1847
 
1848
- #: templates/debug.php:447
1849
  msgid "Add Ons of module %s"
1850
  msgstr "Complementos del módulo %s"
1851
 
1852
- #: templates/debug.php:484
1853
  msgid "Users"
1854
  msgstr "Usuarios"
1855
 
1856
- #: templates/debug.php:491
1857
  msgid "Verified"
1858
  msgstr "Verificado"
1859
 
1860
- #: templates/debug.php:522
1861
  msgid "%s Licenses"
1862
  msgstr "%s Licencias"
1863
 
1864
- #: templates/debug.php:527
1865
  msgid "Plugin ID"
1866
  msgstr "ID del plugin"
1867
 
1868
- #: templates/debug.php:529
1869
  msgid "Plan ID"
1870
  msgstr "ID del plan"
1871
 
1872
- #: templates/debug.php:530
1873
  msgid "Quota"
1874
  msgstr "Cuota"
1875
 
1876
- #: templates/debug.php:531
1877
  msgid "Activated"
1878
  msgstr "Activado"
1879
 
1880
- #: templates/debug.php:532
1881
  msgid "Blocking"
1882
  msgstr "Bloqueando"
1883
 
1884
- #: templates/debug.php:534
1885
  msgctxt "as expiration date"
1886
  msgid "Expiration"
1887
  msgstr "Caducidad"
1888
 
1889
- #: templates/debug.php:557
1890
  msgid "Debug Log"
1891
  msgstr "Log de Debug"
1892
 
1893
- #: templates/debug.php:561
1894
  msgid "All Types"
1895
  msgstr "Todos los Tipos"
1896
 
1897
- #: templates/debug.php:568
1898
  msgid "All Requests"
1899
  msgstr "Todas las peticiones"
1900
 
1901
- #: templates/debug.php573, templates/debug.php602,
1902
  #: templates/debug/logger.php:25
1903
  msgid "File"
1904
  msgstr "Archivo"
1905
 
1906
- #: templates/debug.php574, templates/debug.php600,
1907
  #: templates/debug/logger.php:23
1908
  msgid "Function"
1909
  msgstr "Función"
1910
 
1911
- #: templates/debug.php:575
1912
  msgid "Process ID"
1913
  msgstr "ID del proceso"
1914
 
1915
- #: templates/debug.php:576
1916
  msgid "Logger"
1917
  msgstr "Logger"
1918
 
1919
- #: templates/debug.php577, templates/debug.php601,
1920
  #: templates/debug/logger.php:24
1921
  msgid "Message"
1922
  msgstr "Mensaje"
1923
 
1924
- #: templates/debug.php:579
1925
  msgid "Filter"
1926
  msgstr "Filtro"
1927
 
1928
- #: templates/debug.php:587
1929
  msgid "Download"
1930
  msgstr "Descarga"
1931
 
1932
- #: templates/debug.php598, templates/debug/logger.php:22
1933
  msgid "Type"
1934
  msgstr "Tipo"
1935
 
1936
- #: templates/debug.php603, templates/debug/logger.php:26
1937
  msgid "Timestamp"
1938
  msgstr "Timestamp"
1939
 
@@ -2258,11 +2282,27 @@ msgstr "Cancelar"
2258
  msgid "Become an affiliate"
2259
  msgstr "Hacerse afiliado"
2260
 
2261
- #: templates/forms/license-activation.php:21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2262
  msgid "Please enter the license key that you received in the email right after the purchase:"
2263
  msgstr "Por favor, introduce la clave de licencia que recibiste en el correo electrónico al realizar la compra:"
2264
 
2265
- #: templates/forms/license-activation.php:26
2266
  msgid "Update License"
2267
  msgstr "Activar licencia"
2268
 
@@ -2329,14 +2369,6 @@ msgstr "Cancelar %s - No necesito más actualizaciones de características y seg
2329
  msgid "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
2330
  msgstr "No cancelar %s - Todavía estoy interesado en obtener actualizaciones de características y seguridad, así como poder contactar con soporte."
2331
 
2332
- #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
2333
- #. subscription'
2334
- #: templates/forms/subscription-cancellation.php99,
2335
- #: templates/account/partials/addon.php29,
2336
- #: templates/account/partials/site.php:298
2337
- msgid "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2338
- msgstr "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2339
-
2340
  #: templates/forms/subscription-cancellation.php:103
2341
  msgid "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
2342
  msgstr "Una vez que tu licencia caduque no podrás seguir utilizando %s, a no ser que lo actives de nuevo con una licencia premium válida."
@@ -2423,27 +2455,33 @@ msgstr "quedan %s"
2423
  msgid "Last license"
2424
  msgstr "Última licencia"
2425
 
2426
- #: templates/account/partials/addon.php:167
 
 
 
 
 
 
2427
  msgid "Cancelled"
2428
  msgstr "Cancelado"
2429
 
2430
- #: templates/account/partials/addon.php:177
2431
  msgid "No expiration"
2432
  msgstr "Sin caducidad"
2433
 
2434
- #: templates/account/partials/site.php:181
2435
  msgid "Owner Name"
2436
  msgstr "Nombre del propietario"
2437
 
2438
- #: templates/account/partials/site.php:193
2439
  msgid "Owner Email"
2440
  msgstr "Correo electrónico del propietario"
2441
 
2442
- #: templates/account/partials/site.php:205
2443
  msgid "Owner ID"
2444
  msgstr "ID del propietario"
2445
 
2446
- #: templates/account/partials/site.php:270
2447
  msgid "Subscription"
2448
  msgstr "Suscripción"
2449
 
1
  # Copyright (C) 2019 freemius
2
  # This file is distributed under the same license as the freemius package.
3
  # Translators:
4
+ # Carlos Longarela <carlos@longarela.eu>, 2017-2019
5
  msgid ""
6
  msgstr ""
7
  "Project-Id-Version: WordPress SDK\n"
8
  "Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
9
  "POT-Creation-Date: \n"
10
+ "PO-Revision-Date: 2019-11-10 01:59+0000\n"
11
  "Last-Translator: Carlos Longarela <carlos@longarela.eu>\n"
12
  "Language: es_ES\n"
13
  "Language-Team: Spanish (Spain) (http://www.transifex.com/freemius/wordpress-sdk/language/es_ES/)\n"
21
  "X-Poedit-SearchPathExcluded-0: *.js\n"
22
  "X-Poedit-SourceCharset: UTF-8\n"
23
 
24
+ #: includes/class-freemius.php1880, templates/account.php:840
25
  msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
26
+ msgstr "Una actualización a una versión Beta reemplazará tu versión instalada de %s con la última versión Beta - úsalo con precaución, y no en sitios de producción. Te hemos avisado."
27
 
28
+ #: includes/class-freemius.php:1887
29
  msgid "Would you like to proceed with the update?"
30
+ msgstr "¿Deseas continuar con la actualización?"
31
 
32
+ #: includes/class-freemius.php:2095
33
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
34
  msgstr "Freemius SDK no pudo encontrar el archivo principal del plugin. Por favor contacta a sdk@freemius.com con el error actual."
35
 
36
+ #: includes/class-freemius.php:2097
37
  msgid "Error"
38
  msgstr "Error"
39
 
40
+ #: includes/class-freemius.php:2491
41
  msgid "I found a better %s"
42
  msgstr "He encontrado un %s mejor"
43
 
44
+ #: includes/class-freemius.php:2493
45
  msgid "What's the %s's name?"
46
  msgstr "¿Cuál es el nombre de %s?"
47
 
48
+ #: includes/class-freemius.php:2499
49
  msgid "It's a temporary %s. I'm just debugging an issue."
50
  msgstr "Es una %stemporal . Sólo estoy depurando un problema"
51
 
52
+ #: includes/class-freemius.php:2501
53
  msgid "Deactivation"
54
  msgstr "Desactivación"
55
 
56
+ #: includes/class-freemius.php:2502
57
  msgid "Theme Switch"
58
  msgstr "Cambiar tema"
59
 
60
+ #: includes/class-freemius.php2511, templates/forms/resend-key.php:24
61
  msgid "Other"
62
  msgstr "Otra"
63
 
64
+ #: includes/class-freemius.php:2519
65
  msgid "I no longer need the %s"
66
  msgstr "Ya no necesito el %s"
67
 
68
+ #: includes/class-freemius.php:2526
69
  msgid "I only needed the %s for a short period"
70
  msgstr "Sólo necesitaba la %s por un corto período"
71
 
72
+ #: includes/class-freemius.php:2532
73
  msgid "The %s broke my site"
74
  msgstr "%s ha roto mi sitio"
75
 
76
+ #: includes/class-freemius.php:2539
77
  msgid "The %s suddenly stopped working"
78
  msgstr "%s de repente ha dejado de funcionar"
79
 
80
+ #: includes/class-freemius.php:2549
81
  msgid "I can't pay for it anymore"
82
  msgstr "No puedo pagarlo durante más tiempo"
83
 
84
+ #: includes/class-freemius.php:2551
85
  msgid "What price would you feel comfortable paying?"
86
  msgstr "¿Con qué precio te sentirías cómodo pagando?"
87
 
88
+ #: includes/class-freemius.php:2557
89
  msgid "I don't like to share my information with you"
90
  msgstr "No me gusta compartir mi información contigo"
91
 
92
+ #: includes/class-freemius.php:2578
93
  msgid "The %s didn't work"
94
  msgstr "El %s no funcionaba"
95
 
96
+ #: includes/class-freemius.php:2588
97
  msgid "I couldn't understand how to make it work"
98
  msgstr "No entiendo cómo hacerlo funcionar"
99
 
100
+ #: includes/class-freemius.php:2596
101
  msgid "The %s is great, but I need specific feature that you don't support"
102
  msgstr "%s es genial, pero necesito una característica que no soportáis"
103
 
104
+ #: includes/class-freemius.php:2598
105
  msgid "What feature?"
106
  msgstr "¿Qué característica?"
107
 
108
+ #: includes/class-freemius.php:2602
109
  msgid "The %s is not working"
110
  msgstr " El %s no funciona"
111
 
112
+ #: includes/class-freemius.php:2604
113
  msgid "Kindly share what didn't work so we can fix it for future users..."
114
  msgstr "Por favor, comparte lo que no funcionó para que podamos arreglarlo para los futuros usuarios..."
115
 
116
+ #: includes/class-freemius.php:2608
117
  msgid "It's not what I was looking for"
118
  msgstr "No es lo que estaba buscando"
119
 
120
+ #: includes/class-freemius.php:2610
121
  msgid "What you've been looking for?"
122
  msgstr "¿Que has estado buscando?"
123
 
124
+ #: includes/class-freemius.php:2614
125
  msgid "The %s didn't work as expected"
126
  msgstr " El %s no funciona como esperaba"
127
 
128
+ #: includes/class-freemius.php:2616
129
  msgid "What did you expect?"
130
  msgstr "¿Qué esperas?"
131
 
132
+ #: includes/class-freemius.php3471, templates/debug.php:20
133
  msgid "Freemius Debug"
134
  msgstr "Debug Freemius"
135
 
136
+ #: includes/class-freemius.php:4223
137
  msgid "I don't know what is cURL or how to install it, help me!"
138
  msgstr "No sé qué es cURL o cómo instalarlo, ¡ayúdame!"
139
 
140
+ #: includes/class-freemius.php:4225
141
  msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
142
  msgstr "Nos aseguraremos de ponernos en contacto con tu empresa de alojamiento web y resolver el problema. Recibirás un correo electrónico de seguimiento a %s tan pronto tengamos una actualización."
143
 
144
+ #: includes/class-freemius.php:4232
145
  msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
146
  msgstr "Genial, por favor instala cURL y habilítalo en el archivo php.ini. Además, busca la directiva 'disable_functions' en el archivo php.ini y quita cualquier método que comienza con 'curl_'. Para asegurarte de que se activó con éxito, utiliza 'phpinfo()'. Una vez activado, desactiva el %s y reactívalo de nuevo."
147
 
148
+ #: includes/class-freemius.php:4337
149
  msgid "Yes - do your thing"
150
  msgstr "Vamos, adelante"
151
 
152
+ #: includes/class-freemius.php:4342
153
  msgid "No - just deactivate"
154
  msgstr "No - sólo desactivar"
155
 
156
+ #: includes/class-freemius.php4387, includes/class-freemius.php4881,
157
+ #: includes/class-freemius.php6032, includes/class-freemius.php13153,
158
+ #: includes/class-freemius.php16558, includes/class-freemius.php16646,
159
+ #: includes/class-freemius.php16812, includes/class-freemius.php19040,
160
+ #: includes/class-freemius.php19381, includes/class-freemius.php19391,
161
+ #: includes/class-freemius.php20051, includes/class-freemius.php20924,
162
+ #: includes/class-freemius.php21039, includes/class-freemius.php21183,
163
+ #: templates/add-ons.php:57
164
  msgctxt "exclamation"
165
  msgid "Oops"
166
  msgstr "Oops"
167
 
168
+ #: includes/class-freemius.php:4456
169
  msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
170
  msgstr "¡Gracias por darnos la oportunidad de arreglarlo! Acabamos de enviar un mensaje a nuestro personal técnico. Nos pondremos en contacto contigo tan pronto como tengamos una actualización de %s. Apreciamos tu paciencia."
171
 
172
+ #: includes/class-freemius.php:4878
173
  msgctxt "addonX cannot run without pluginY"
174
  msgid "%s cannot run without %s."
175
  msgstr "%s no se puede ejecutar sin %s."
176
 
177
+ #: includes/class-freemius.php:4879
178
  msgctxt "addonX cannot run..."
179
  msgid "%s cannot run without the plugin."
180
  msgstr "%s no se puede ejecutar sin el plugin."
181
 
182
+ #: includes/class-freemius.php5052, includes/class-freemius.php5077,
183
+ #: includes/class-freemius.php:20122
184
  msgid "Unexpected API error. Please contact the %s's author with the following error."
185
  msgstr "Error inesperado del API. Pónte en contacto con el autor de %s indicándole el siguiente error."
186
 
187
+ #: includes/class-freemius.php:5720
188
  msgid "Premium %s version was successfully activated."
189
  msgstr "La versión Premium %s ha sido activada con éxito."
190
 
191
+ #: includes/class-freemius.php5732, includes/class-freemius.php:7599
192
  msgctxt ""
193
  msgid "W00t"
194
  msgstr "W00t"
195
 
196
+ #: includes/class-freemius.php:5747
197
  msgid "You have a %s license."
198
  msgstr "Tienes una licencia %s."
199
 
200
+ #: includes/class-freemius.php5751, includes/class-freemius.php15975,
201
+ #: includes/class-freemius.php15986, includes/class-freemius.php19292,
202
+ #: includes/class-freemius.php19642, includes/class-freemius.php19711,
203
+ #: includes/class-freemius.php:19876
204
  msgctxt "interjection expressing joy or exuberance"
205
  msgid "Yee-haw"
206
  msgstr "Vaya"
207
 
208
+ #: includes/class-freemius.php:6015
209
  msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
210
  msgstr "la prueba gratuita de %s fue cancelada con éxito. Puesto que el complemento es sólo premium se desactivó automáticamente. Si quieres utilizarlo en el futuro, deberás comprar una licencia."
211
 
212
+ #: includes/class-freemius.php:6019
213
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
214
  msgstr "%s es un complemento único de premium. Tienes que comprar una licencia primero antes de activar el plugin."
215
 
216
+ #: includes/class-freemius.php6028, templates/add-ons.php186,
217
+ #: templates/account/partials/addon.php:381
218
  msgid "More information about %s"
219
  msgstr "Más información sobre %s"
220
 
221
+ #: includes/class-freemius.php:6029
222
  msgid "Purchase License"
223
  msgstr "Comprar licencia"
224
 
225
+ #: includes/class-freemius.php6964, templates/connect.php:163
226
  msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
227
  msgstr "Recibirás un correo de activación para %s en tu buzón en %s. Por favor, asegúrate de hacer clic en el botón de activación en ese correo electrónico para %s."
228
 
229
+ #: includes/class-freemius.php:6968
230
  msgid "start the trial"
231
  msgstr "comenzar el período de prueba"
232
 
233
+ #: includes/class-freemius.php6969, templates/connect.php:167
234
  msgid "complete the install"
235
  msgstr "completar la instalación"
236
 
237
+ #: includes/class-freemius.php:7081
238
  msgid "You are just one step away - %s"
239
  msgstr "Estás a sólo un paso - %s"
240
 
241
+ #: includes/class-freemius.php:7084
242
  msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
243
  msgid "Complete \"%s\" Activation Now"
244
  msgstr "Completar la activación de \"%s\" ahora"
245
 
246
+ #: includes/class-freemius.php:7162
247
  msgid "We made a few tweaks to the %s, %s"
248
  msgstr "Hemos realizado algunas optimizaciones al %s, %s"
249
 
250
+ #: includes/class-freemius.php:7166
251
  msgid "Opt in to make \"%s\" better!"
252
  msgstr "¡Inscríbite para hacer \"%s\" Mejor!"
253
 
254
+ #: includes/class-freemius.php:7598
255
  msgid "The upgrade of %s was successfully completed."
256
  msgstr "La actualización de %s se completó con éxito."
257
 
258
+ #: includes/class-freemius.php9802, includes/class-fs-plugin-updater.php1038,
259
+ #: includes/class-fs-plugin-updater.php1233,
260
+ #: includes/class-fs-plugin-updater.php1240,
261
  #: templates/auto-installation.php:32
262
  msgid "Add-On"
263
  msgstr "Complemento"
264
 
265
+ #: includes/class-freemius.php9804, templates/account.php335,
266
+ #: templates/account.php343, templates/debug.php360, templates/debug.php:551
267
  msgid "Plugin"
268
  msgstr "Plugin"
269
 
270
+ #: includes/class-freemius.php9805, templates/account.php336,
271
+ #: templates/account.php344, templates/debug.php360, templates/debug.php551,
272
  #: templates/forms/deactivation/form.php:71
273
  msgid "Theme"
274
  msgstr "Tema"
275
 
276
+ #: includes/class-freemius.php:12596
277
  msgid "An unknown error has occurred while trying to set the user's beta mode."
278
+ msgstr "Se ha producido un error desconocido al intentar establecer el modo beta del usuario."
279
 
280
+ #: includes/class-freemius.php:13020
281
  msgid "Invalid site details collection."
282
  msgstr "Colección de detalles del sitio no válida."
283
 
284
+ #: includes/class-freemius.php:13140
285
  msgid "We couldn't find your email address in the system, are you sure it's the right address?"
286
  msgstr "No podemos encontrar tu dirección de correo electrónico en el sistema, ¿estás seguro de que es la dirección de correo electrónico correcta?"
287
 
288
+ #: includes/class-freemius.php:13142
289
  msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
290
  msgstr "No vemos ninguna licencia activa asociada a esa dirección de correo electrónico, ¿estás seguro de que es la dirección de correo electrónico correcta?"
291
 
292
+ #: includes/class-freemius.php:13416
293
  msgid "Account is pending activation."
294
  msgstr "La cuenta está pendiente de activación"
295
 
296
+ #: includes/class-freemius.php13528,
297
  #: templates/forms/premium-versions-upgrade-handler.php:47
298
  msgid "Buy a license now"
299
  msgstr "Compra una licencia ahora"
300
 
301
+ #: includes/class-freemius.php13540,
302
  #: templates/forms/premium-versions-upgrade-handler.php:46
303
  msgid "Renew your license now"
304
  msgstr "Renueva tu licencia ahora"
305
 
306
+ #: includes/class-freemius.php:13544
307
  msgid "%s to access version %s security & feature updates, and support."
308
  msgstr "%s para acceder a la versión %s de actualizaciones de funciones, seguridad y soporte."
309
 
310
+ #: includes/class-freemius.php:15957
311
  msgid "%s activation was successfully completed."
312
  msgstr "%s activación se completó con éxito."
313
 
314
+ #: includes/class-freemius.php:15971
315
  msgid "Your account was successfully activated with the %s plan."
316
  msgstr "Tu cuenta se ha activado correctamente con el plan %s."
317
 
318
+ #: includes/class-freemius.php15982, includes/class-freemius.php:19707
319
  msgid "Your trial has been successfully started."
320
  msgstr "Tu versión de prueba se ha iniciado con éxito."
321
 
322
+ #: includes/class-freemius.php16556, includes/class-freemius.php16644,
323
+ #: includes/class-freemius.php:16810
324
  msgid "Couldn't activate %s."
325
  msgstr "No se puede activar %s."
326
 
327
+ #: includes/class-freemius.php16557, includes/class-freemius.php16645,
328
+ #: includes/class-freemius.php:16811
329
  msgid "Please contact us with the following message:"
330
  msgstr "Por favor contáctanos con el siguiente mensaje:"
331
 
332
+ #: includes/class-freemius.php16641, templates/forms/data-debug-mode.php:162
333
  msgid "An unknown error has occurred."
334
+ msgstr "Se ha producido un error desconocido."
335
 
336
+ #: includes/class-freemius.php17168, includes/class-freemius.php:22082
337
  msgid "Upgrade"
338
  msgstr "Actualizar"
339
 
340
+ #: includes/class-freemius.php:17174
341
  msgid "Start Trial"
342
  msgstr "Comenzar el período de prueba"
343
 
344
+ #: includes/class-freemius.php:17176
345
  msgid "Pricing"
346
  msgstr "Precio"
347
 
348
+ #: includes/class-freemius.php17256, includes/class-freemius.php:17258
349
  msgid "Affiliation"
350
  msgstr "Afiliación"
351
 
352
+ #: includes/class-freemius.php17286, includes/class-freemius.php17288,
353
+ #: templates/account.php183, templates/debug.php:326
354
  msgid "Account"
355
  msgstr "Cuenta"
356
 
357
+ #: includes/class-freemius.php17302, includes/class-freemius.php17304,
358
  #: includes/customizer/class-fs-customizer-support-section.php:60
359
  msgid "Contact Us"
360
  msgstr "Contáctanos"
361
 
362
+ #: includes/class-freemius.php17315, includes/class-freemius.php17317,
363
+ #: includes/class-freemius.php22096, templates/account.php111,
364
+ #: templates/account/partials/addon.php:44
365
  msgid "Add-Ons"
366
  msgstr "Complementos"
367
 
368
+ #: includes/class-freemius.php:17351
369
  msgctxt "ASCII arrow left icon"
370
  msgid "&#x2190;"
371
  msgstr "&#x2190;"
372
 
373
+ #: includes/class-freemius.php:17351
374
  msgctxt "ASCII arrow right icon"
375
  msgid "&#x27a4;"
376
  msgstr "&#x27a4;"
377
 
378
+ #: includes/class-freemius.php17353, templates/pricing.php:103
379
  msgctxt "noun"
380
  msgid "Pricing"
381
  msgstr "Precio"
382
 
383
+ #: includes/class-freemius.php17566,
384
  #: includes/customizer/class-fs-customizer-support-section.php:67
385
  msgid "Support Forum"
386
  msgstr "Foro de soporte"
387
 
388
+ #: includes/class-freemius.php:18536
389
  msgid "Your email has been successfully verified - you are AWESOME!"
390
  msgstr "Tu email ha sido verificado correctamente - ¡Eres IMPRESIONANTE!"
391
 
392
+ #: includes/class-freemius.php:18537
393
  msgctxt "a positive response"
394
  msgid "Right on"
395
  msgstr "Bien hecho"
396
 
397
+ #: includes/class-freemius.php:19041
398
+ msgid "seems like the key you entered doesn't match our records."
399
+ msgstr "parece que la clave que has introducido no coincide con nuestros registros."
400
+
401
+ #: includes/class-freemius.php:19065
402
+ msgid "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
403
+ msgstr "El modo de depuración se ha activado con éxito y se desactivará automáticamente en 60 minutos. También puedes desactivarlo antes haciendo clic en el enlace \"Detener depuración\"."
404
+
405
+ #: includes/class-freemius.php:19283
406
  msgid "Your %s Add-on plan was successfully upgraded."
407
  msgstr "Tu complemento %s del plan se actualizó con éxito."
408
 
409
+ #: includes/class-freemius.php:19285
410
  msgid "%s Add-on was successfully purchased."
411
  msgstr "El complemento %s ha sido comprado correctamente."
412
 
413
+ #: includes/class-freemius.php:19288
414
  msgid "Download the latest version"
415
  msgstr "Descargar la última versión"
416
 
417
+ #: includes/class-freemius.php:19374
418
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
419
+ msgstr "Tu servidor está bloqueando el acceso al API de Freemius, que es crucial para sincronizar %1$s. Por favor, contacta a tu proveedor de hosting para permitir el acceso de %2$s"
420
 
421
+ #: includes/class-freemius.php19380, includes/class-freemius.php19390,
422
+ #: includes/class-freemius.php19835, includes/class-freemius.php:19924
423
  msgid "Error received from the server:"
424
  msgstr "Error recibido del servidor:"
425
 
426
+ #: includes/class-freemius.php:19390
427
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
428
  msgstr "Parece que uno de los parámetros de autenticación es incorrecto. Actualiza tu clave pública, clave secreta e ID de usuario e inténtelo de nuevo."
429
 
430
+ #: includes/class-freemius.php19604, includes/class-freemius.php19840,
431
+ #: includes/class-freemius.php19895, includes/class-freemius.php:19998
432
  msgctxt ""
433
  msgid "Hmm"
434
  msgstr "Hmm"
435
 
436
+ #: includes/class-freemius.php:19617
437
  msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
438
  msgstr "Parece que todavía estás en el plan %s. Si actualizaste o cambiaste tu plan, probablemente sea un problema de nuestra parte - lo sentimos."
439
 
440
+ #: includes/class-freemius.php19618, templates/account.php113,
441
+ #: templates/add-ons.php250, templates/account/partials/addon.php:46
442
  msgctxt "trial period"
443
  msgid "Trial"
444
  msgstr "Período de Prueba Gratuito"
445
 
446
+ #: includes/class-freemius.php:19623
447
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
448
  msgstr "He actualizado mi cuenta, pero cuando intento sincronizar la licencia, el plan sigue siendo %s."
449
 
450
+ #: includes/class-freemius.php19627, includes/class-freemius.php:19686
451
  msgid "Please contact us here"
452
  msgstr "Contacta aquí con nosotros"
453
 
454
+ #: includes/class-freemius.php:19638
455
  msgid "Your plan was successfully activated."
456
+ msgstr "Tu plan se activó con éxito."
457
 
458
+ #: includes/class-freemius.php:19639
459
  msgid "Your plan was successfully upgraded."
460
  msgstr "Tu plan se actualizó con éxito."
461
 
462
+ #: includes/class-freemius.php:19656
463
  msgid "Your plan was successfully changed to %s."
464
  msgstr "Tu plan se cambió correctamente a %s."
465
 
466
+ #: includes/class-freemius.php:19672
467
  msgid "Your license has expired. You can still continue using the free %s forever."
468
  msgstr "Tu licencia ha caducado. Puedes seguir usando el plan gratuito %s para siempre."
469
 
470
+ #: includes/class-freemius.php:19674
471
  msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
472
  msgstr "Tu licencia ha caducado. %1$sActualiza ahora %2$s para continuar usando el %3$s sin interrupciones."
473
 
474
+ #: includes/class-freemius.php:19682
475
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
476
  msgstr "Tu licencia ha sido cancelada. Si crees que es un error, ponte en contacto con el servicio de asistencia."
477
 
478
+ #: includes/class-freemius.php:19695
479
  msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
480
  msgstr "Tu licencia ha caducado. Todavía puedes seguir usando todas las funciones de %s, pero tendrás que renovar tu licencia para seguir recibiendo actualizaciones y soporte."
481
 
482
+ #: includes/class-freemius.php:19721
483
  msgid "Your free trial has expired. You can still continue using all our free features."
484
  msgstr "Tu período de prueba ha caducado. Todavía puedes seguir usando todas nuestras funciones gratuitas."
485
 
486
+ #: includes/class-freemius.php:19723
487
  msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
488
  msgstr "Tu período de prueba ha caducado. %1$sActualiza ahora %2$s para continuar usando el %3$s sin interrupciones."
489
 
490
+ #: includes/class-freemius.php:19831
491
  msgid "It looks like the license could not be activated."
492
  msgstr "Parece que la licencia no se pudo activar."
493
 
494
+ #: includes/class-freemius.php:19873
495
  msgid "Your license was successfully activated."
496
  msgstr "Tu licencia fue activada correctamente."
497
 
498
+ #: includes/class-freemius.php:19899
499
  msgid "It looks like your site currently doesn't have an active license."
500
  msgstr "Parece que tu sitio actualmente no tiene una licencia activa."
501
 
502
+ #: includes/class-freemius.php:19923
503
  msgid "It looks like the license deactivation failed."
504
  msgstr "Parece que la desactivación de licencia ha fallado."
505
 
506
+ #: includes/class-freemius.php:19951
507
  msgid "Your license was successfully deactivated, you are back to the %s plan."
508
  msgstr "Tu licencia fue desactivada correctamente, has vuelto al plan %s."
509
 
510
+ #: includes/class-freemius.php:19952
511
  msgid "O.K"
512
  msgstr "O.K"
513
 
514
+ #: includes/class-freemius.php:20005
515
  msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
516
  msgstr "Parece que estamos teniendo algún problema temporal con tu cancelación de la suscripción. Vuelve a intentarlo en unos minutos."
517
 
518
+ #: includes/class-freemius.php:20014
519
  msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
520
  msgstr "Tu suscripción ha sido cancelada correctamente. Tu %s licencia del plan caducará en %s."
521
 
522
+ #: includes/class-freemius.php:20056
523
  msgid "You are already running the %s in a trial mode."
524
  msgstr "Estás ejecutando %s en modo de prueba."
525
 
526
+ #: includes/class-freemius.php:20067
527
  msgid "You already utilized a trial before."
528
  msgstr "Ya utilizaste un período de prueba antes."
529
 
530
+ #: includes/class-freemius.php:20081
531
  msgid "Plan %s do not exist, therefore, can't start a trial."
532
  msgstr "El plan %s no existe, por lo tanto, no puedes comenzar un período de prueba."
533
 
534
+ #: includes/class-freemius.php:20092
535
  msgid "Plan %s does not support a trial period."
536
  msgstr "El plan %s no admite un período de prueba."
537
 
538
+ #: includes/class-freemius.php:20103
539
  msgid "None of the %s's plans supports a trial period."
540
  msgstr "Ninguno de los planes de %s soportan un período de prueba."
541
 
542
+ #: includes/class-freemius.php:20153
543
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
544
  msgstr "Parece que ya no estás en modo de prueba, así que no hay nada que cancelar :)"
545
 
546
+ #: includes/class-freemius.php:20189
547
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
548
  msgstr "Parece que estamos teniendo algún problema temporal con tu cancelación de prueba. Vuelve a intentarlo en unos minutos."
549
 
550
+ #: includes/class-freemius.php:20208
551
  msgid "Your %s free trial was successfully cancelled."
552
  msgstr "Tu prueba gratuita de %s fue cancelada con éxito."
553
 
554
+ #: includes/class-freemius.php:20524
555
  msgid "Version %s was released."
556
  msgstr "La versión %s se ha lanzado."
557
 
558
+ #: includes/class-freemius.php:20524
559
  msgid "Please download %s."
560
  msgstr "Por favor descarga %s."
561
 
562
+ #: includes/class-freemius.php:20531
563
  msgid "the latest %s version here"
564
  msgstr "la última versión %s aquí"
565
 
566
+ #: includes/class-freemius.php:20536
567
  msgid "New"
568
  msgstr "Nuevo"
569
 
570
+ #: includes/class-freemius.php:20541
571
  msgid "Seems like you got the latest release."
572
  msgstr "Parece que tienes la última versión."
573
 
574
+ #: includes/class-freemius.php:20542
575
  msgid "You are all good!"
576
  msgstr "¡Está todo listo!"
577
 
578
+ #: includes/class-freemius.php:20812
579
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
580
  msgstr "El correo de verificación se acaba de enviar a %s. Si no puedes encontrarlo después de 5 min, comprueba tu carpeta de spam."
581
 
582
+ #: includes/class-freemius.php:20951
583
  msgid "Site successfully opted in."
584
  msgstr "Sitio dado de alta correctamente."
585
 
586
+ #: includes/class-freemius.php20952, includes/class-freemius.php:21792
587
  msgid "Awesome"
588
  msgstr "Increíble"
589
 
590
+ #: includes/class-freemius.php20968, templates/forms/optout.php:32
591
  msgid "We appreciate your help in making the %s better by letting us track some usage data."
592
  msgstr "Agradecemos tu ayuda para mejorar %s y por permitirnos rastrear algunos datos de uso."
593
 
594
+ #: includes/class-freemius.php:20969
595
  msgid "Thank you!"
596
  msgstr "¡Gracias!"
597
 
598
+ #: includes/class-freemius.php:20976
599
  msgid "We will no longer be sending any usage data of %s on %s to %s."
600
  msgstr "No continuaremos enviando datos de uso de %s en %s a %s."
601
 
602
+ #: includes/class-freemius.php:21105
603
  msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
604
  msgstr "Comprueba tu buzón de correo, debes recibir un correo electrónico a través de %s para confirmar el cambio de propiedad. Por razones de seguridad, debes confirmar el cambio dentro de los próximos 15 min. Si no puedes encontrar el correo electrónico, comprueba tu carpeta de correo no deseado."
605
 
606
+ #: includes/class-freemius.php:21111
607
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
608
  msgstr "Gracias por confirmar el cambio de propiedad. Se envió un correo electrónico a %s para su aprobación final."
609
 
610
+ #: includes/class-freemius.php:21116
611
  msgid "%s is the new owner of the account."
612
  msgstr "%s es el nuevo dueño de la cuenta."
613
 
614
+ #: includes/class-freemius.php:21118
615
  msgctxt "as congratulations"
616
  msgid "Congrats"
617
  msgstr "Felicidades"
618
 
619
+ #: includes/class-freemius.php:21138
620
  msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
621
  msgstr "Lo sentimos, no podemos completar la actualización de correo electrónico. Ya hay registrado otro usuario con esa dirección de correo electrónico."
622
 
623
+ #: includes/class-freemius.php:21139
624
  msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
625
  msgstr "Si deseas renunciar a la titularidad de la cuenta de %s a %s haz clic en el botón de cambio de titularidad."
626
 
627
+ #: includes/class-freemius.php:21146
628
  msgid "Change Ownership"
629
  msgstr "Cambiar propietario"
630
 
631
+ #: includes/class-freemius.php:21154
632
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
633
  msgstr "Se actualizó correctamente tu correo electrónico. Recibirás un correo electrónico con las instrucciones de confirmación en unos momentos."
634
 
635
+ #: includes/class-freemius.php:21166
636
  msgid "Please provide your full name."
637
  msgstr "Por favor, dinos tu nombre completo."
638
 
639
+ #: includes/class-freemius.php:21171
640
  msgid "Your name was successfully updated."
641
  msgstr "Tu nombre fue actualizado correctamente."
642
 
643
+ #: includes/class-freemius.php:21232
644
  msgid "You have successfully updated your %s."
645
  msgstr "Has actualizado correctamente tu %s."
646
 
647
+ #: includes/class-freemius.php:21372
648
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
649
  msgstr "Sólo déjanos informarte que la información de complementos de %s se está extrayendo de un servidor externo."
650
 
651
+ #: includes/class-freemius.php:21373
652
  msgctxt "advance notice of something that will need attention."
653
  msgid "Heads up"
654
  msgstr "Atención"
655
 
656
+ #: includes/class-freemius.php:21832
657
  msgctxt "exclamation"
658
  msgid "Hey"
659
  msgstr "Hey"
660
 
661
+ #: includes/class-freemius.php:21832
662
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
663
  msgstr "¿Qué te pareció %s hasta ahora? Prueba todas nuestras funciones premium de %s con una prueba gratuita de % d-días."
664
 
665
+ #: includes/class-freemius.php:21840
666
  msgid "No commitment for %s days - cancel anytime!"
667
  msgstr "Sin compromiso por %s días - ¡cancelar en cualquier momento!"
668
 
669
+ #: includes/class-freemius.php:21841
670
  msgid "No credit card required"
671
  msgstr "No se necesita tarjeta de crédito"
672
 
673
+ #: includes/class-freemius.php21848, templates/forms/trial-start.php:53
674
  msgctxt "call to action"
675
  msgid "Start free trial"
676
  msgstr "Comenzar el período de prueba gratuito"
677
 
678
+ #: includes/class-freemius.php:21925
679
  msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
680
  msgstr "Hey, ¿sabías que %s tiene un programa de afiliados? ¡Si te gusta %s puedes convertirte en nuestro embajador y ganar dinero!"
681
 
682
+ #: includes/class-freemius.php:21934
683
  msgid "Learn more"
684
  msgstr "Saber más"
685
 
686
+ #: includes/class-freemius.php22120, templates/account.php499,
687
+ #: templates/account.php624, templates/connect.php171,
688
+ #: templates/connect.php421, templates/forms/license-activation.php27,
689
+ #: templates/account/partials/addon.php:321
690
  msgid "Activate License"
691
  msgstr "Activar licencia"
692
 
693
+ #: includes/class-freemius.php22121, templates/account.php571,
694
+ #: templates/account.php623, templates/account/partials/addon.php322,
695
+ #: templates/account/partials/site.php:271
696
  msgid "Change License"
697
  msgstr "Cambiar licencia"
698
 
699
+ #: includes/class-freemius.php22217, templates/account/partials/site.php:169
700
  msgid "Opt Out"
701
  msgstr "Darse de baja"
702
 
703
+ #: includes/class-freemius.php22219, includes/class-freemius.php22225,
704
+ #: templates/account/partials/site.php49,
705
+ #: templates/account/partials/site.php:169
706
  msgid "Opt In"
707
  msgstr "Inscribirse"
708
 
709
+ #: includes/class-freemius.php:22453
710
  msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
711
+ msgstr "La versión de pago de %1$s ya está instalada. Por favor, actívala para empezar a beneficiarte de las características de %2$s. %3$s"
712
 
713
+ #: includes/class-freemius.php:22461
714
  msgid "Activate %s features"
715
  msgstr "Activar características %s"
716
 
717
+ #: includes/class-freemius.php:22474
718
  msgid "Please follow these steps to complete the upgrade"
719
  msgstr "Por favor, sigue estos pasos para completar la actualización"
720
 
721
+ #: includes/class-freemius.php:22478
722
  msgid "Download the latest %s version"
723
  msgstr "Descargar la última versión %s"
724
 
725
+ #: includes/class-freemius.php:22482
726
  msgid "Upload and activate the downloaded version"
727
  msgstr "Cargar y activar la versión descargada"
728
 
729
+ #: includes/class-freemius.php:22484
730
  msgid "How to upload and activate?"
731
  msgstr "¿Cómo subirlo y activarlo?"
732
 
733
+ #: includes/class-freemius.php:22618
734
  msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
735
  msgstr "%sClick aquí %s para elegir los sitios sobre los que te gustaría activar la licencia."
736
 
737
+ #: includes/class-freemius.php:22779
738
  msgid "Auto installation only works for opted-in users."
739
  msgstr "La instalación automática sólo funciona para usuarios que aceptaron."
740
 
741
+ #: includes/class-freemius.php22789, includes/class-freemius.php22822,
742
+ #: includes/class-fs-plugin-updater.php1212,
743
+ #: includes/class-fs-plugin-updater.php:1226
744
  msgid "Invalid module ID."
745
  msgstr "Id de módulo no válido."
746
 
747
+ #: includes/class-freemius.php22798, includes/class-fs-plugin-updater.php:1248
748
  msgid "Premium version already active."
749
  msgstr "Versión premium ya activa."
750
 
751
+ #: includes/class-freemius.php:22805
752
  msgid "You do not have a valid license to access the premium version."
753
  msgstr "No tienes una licencia válida para acceder a la versión premium."
754
 
755
+ #: includes/class-freemius.php:22812
756
  msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
757
  msgstr "El plugin es un \"Serviceware\" lo que significa que no tiene una versión de código premium."
758
 
759
+ #: includes/class-freemius.php22830, includes/class-fs-plugin-updater.php:1247
760
  msgid "Premium add-on version already installed."
761
  msgstr "Versión del complemento premium ya instalada."
762
 
763
+ #: includes/class-freemius.php:23180
764
  msgid "View paid features"
765
  msgstr "Ver las funciones de pago"
766
 
767
+ #: includes/class-freemius.php:23502
768
  msgid "Thank you so much for using %s and its add-ons!"
769
  msgstr "¡Muchas gracias por utilizar %s y sus complementos!"
770
 
771
+ #: includes/class-freemius.php:23503
772
  msgid "Thank you so much for using %s!"
773
  msgstr "¡Muchas gracias por utilizar %s!"
774
 
775
+ #: includes/class-freemius.php:23509
776
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
777
  msgstr "Ya has optado por nuestro seguimiento de uso, lo que nos ayuda a seguir mejorando %s."
778
 
779
+ #: includes/class-freemius.php:23513
780
  msgid "Thank you so much for using our products!"
781
  msgstr "¡Muchas gracias por utilizar nuestros productos!"
782
 
783
+ #: includes/class-freemius.php:23514
784
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
785
  msgstr "Ya has optado por nuestro seguimiento de uso, lo que nos ayuda a seguir mejorando."
786
 
787
+ #: includes/class-freemius.php:23533
788
  msgid "%s and its add-ons"
789
  msgstr "%s y sus complementos"
790
 
791
+ #: includes/class-freemius.php:23542
792
  msgid "Products"
793
  msgstr "Productos"
794
 
795
+ #: includes/class-freemius.php23549, templates/connect.php:272
796
  msgid "Yes"
797
  msgstr "Si"
798
 
799
+ #: includes/class-freemius.php23550, templates/connect.php:273
800
  msgid "send me security & feature updates, educational content and offers."
801
  msgstr "envíame actualizaciones de seguridad y nuevas funcionalidades, contenido educativo y ofertas."
802
 
803
+ #: includes/class-freemius.php23551, templates/connect.php:278
804
  msgid "No"
805
  msgstr "No"
806
 
807
+ #: includes/class-freemius.php23553, templates/connect.php:280
808
  msgid "do %sNOT%s send me security & feature updates, educational content and offers."
809
  msgstr "%sNO%s me envíes actualizaciones de seguridad y nuevas funcionalidades, contenido educativo y ofertas."
810
 
811
+ #: includes/class-freemius.php:23563
812
  msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
813
+ msgstr "Debido al nuevo %sEU Reglamento General de Protección de Datos (RGPD)%s los requisitos de obligado cumplimiento requieren que proporciones tu consentimiento explícito, una vez más, confirmando que estás de acuerdo :-)"
814
 
815
+ #: includes/class-freemius.php23565, templates/connect.php:287
816
  msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
817
  msgstr "Indica si deseas que te contactemos para actualizaciones de seguridad y nuevas funciones, contenido educativo y ofertas ocasionales:"
818
 
819
+ #: includes/class-freemius.php:23847
820
  msgid "License key is empty."
821
  msgstr "La clave de licencia está vacía."
822
 
823
+ #: includes/class-fs-plugin-updater.php206,
824
  #: templates/forms/premium-versions-upgrade-handler.php:57
825
  msgid "Renew license"
826
  msgstr "Renovar la licencia"
827
 
828
+ #: includes/class-fs-plugin-updater.php211,
829
  #: templates/forms/premium-versions-upgrade-handler.php:58
830
  msgid "Buy license"
831
  msgstr "Comprar licencia"
832
 
833
+ #: includes/class-fs-plugin-updater.php321,
834
+ #: includes/class-fs-plugin-updater.php:354
835
  msgid "There is a %s of %s available."
836
  msgstr "Hay una %s de %s disponible."
837
 
838
+ #: includes/class-fs-plugin-updater.php323,
839
+ #: includes/class-fs-plugin-updater.php:359
840
  msgid "new Beta version"
841
+ msgstr "nueva versión Beta"
842
 
843
+ #: includes/class-fs-plugin-updater.php324,
844
+ #: includes/class-fs-plugin-updater.php:360
845
  msgid "new version"
846
  msgstr "nueva versión"
847
 
848
+ #: includes/class-fs-plugin-updater.php:383
849
  msgid "Important Upgrade Notice:"
850
  msgstr "Aviso importante de actualización:"
851
 
852
+ #: includes/class-fs-plugin-updater.php:1277
853
  msgid "Installing plugin: %s"
854
  msgstr "Instalando plugin: %s"
855
 
856
+ #: includes/class-fs-plugin-updater.php:1318
857
  msgid "Unable to connect to the filesystem. Please confirm your credentials."
858
  msgstr "No es posible conectarse al sistema de archivos. Por favor, confirma tus credenciales."
859
 
860
+ #: includes/class-fs-plugin-updater.php:1500
861
  msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
862
  msgstr "El paquete de plugin remoto no contiene una carpeta con el Slug deseado y el cambio de nombre no funcionó."
863
 
864
+ #: includes/fs-plugin-info-dialog.php:535
865
  msgid "Purchase More"
866
+ msgstr "Comprar más"
867
 
868
+ #: includes/fs-plugin-info-dialog.php536,
869
+ #: templates/account/partials/addon.php:385
870
  msgctxt "verb"
871
  msgid "Purchase"
872
  msgstr "Comprar"
873
 
874
+ #: includes/fs-plugin-info-dialog.php:540
875
  msgid "Start my free %s"
876
  msgstr "Comenzar mi período gratuito de %s"
877
 
878
+ #: includes/fs-plugin-info-dialog.php:738
879
  msgid "Install Free Version Update Now"
880
  msgstr "Instalar la actualización gratuita ahora"
881
 
882
+ #: includes/fs-plugin-info-dialog.php739, templates/account.php:560
883
  msgid "Install Update Now"
884
  msgstr "Instalar actualización ahora"
885
 
886
+ #: includes/fs-plugin-info-dialog.php:748
887
  msgid "Install Free Version Now"
888
  msgstr "Instalar la versión gratuita ahora"
889
 
890
+ #: includes/fs-plugin-info-dialog.php749, templates/add-ons.php323,
891
  #: templates/auto-installation.php111,
892
+ #: templates/account/partials/addon.php365,
893
+ #: templates/account/partials/addon.php:418
894
  msgid "Install Now"
895
  msgstr "Instalar ahora"
896
 
897
+ #: includes/fs-plugin-info-dialog.php:765
898
  msgctxt "as download latest version"
899
  msgid "Download Latest Free Version"
900
  msgstr "Descargar la última versión gratuita"
901
 
902
+ #: includes/fs-plugin-info-dialog.php766, templates/account.php91,
903
+ #: templates/add-ons.php37, templates/account/partials/addon.php:25
904
  msgctxt "as download latest version"
905
  msgid "Download Latest"
906
  msgstr "Descargar la última"
907
 
908
+ #: includes/fs-plugin-info-dialog.php781, templates/add-ons.php329,
909
+ #: templates/account/partials/addon.php356,
910
+ #: templates/account/partials/addon.php:412
911
  msgid "Activate this add-on"
912
  msgstr "Activar este complemento"
913
 
914
+ #: includes/fs-plugin-info-dialog.php783, templates/connect.php:418
915
  msgid "Activate Free Version"
916
  msgstr "Activar versión gratuita"
917
 
918
+ #: includes/fs-plugin-info-dialog.php784, templates/account.php115,
919
+ #: templates/add-ons.php330, templates/account/partials/addon.php:48
920
  msgid "Activate"
921
  msgstr "Activar"
922
 
923
+ #: includes/fs-plugin-info-dialog.php:994
924
  msgctxt "Plugin installer section title"
925
  msgid "Description"
926
  msgstr "Descripción"
927
 
928
+ #: includes/fs-plugin-info-dialog.php:995
929
  msgctxt "Plugin installer section title"
930
  msgid "Installation"
931
  msgstr "Instalación"
932
 
933
+ #: includes/fs-plugin-info-dialog.php:996
934
  msgctxt "Plugin installer section title"
935
  msgid "FAQ"
936
  msgstr "FAQ"
937
 
938
+ #: includes/fs-plugin-info-dialog.php997,
939
  #: templates/plugin-info/description.php:55
940
  msgid "Screenshots"
941
  msgstr "Capturas de pantalla"
942
 
943
+ #: includes/fs-plugin-info-dialog.php:998
944
  msgctxt "Plugin installer section title"
945
  msgid "Changelog"
946
  msgstr "Registro de cambios"
947
 
948
+ #: includes/fs-plugin-info-dialog.php:999
949
  msgctxt "Plugin installer section title"
950
  msgid "Reviews"
951
  msgstr "Valoraciones"
952
 
953
+ #: includes/fs-plugin-info-dialog.php:1000
954
  msgctxt "Plugin installer section title"
955
  msgid "Other Notes"
956
  msgstr "Otras notas"
957
 
958
+ #: includes/fs-plugin-info-dialog.php:1015
959
  msgctxt "Plugin installer section title"
960
  msgid "Features & Pricing"
961
  msgstr "Características y precios"
962
 
963
+ #: includes/fs-plugin-info-dialog.php:1025
964
  msgid "Plugin Install"
965
  msgstr "Instalar plugin"
966
 
967
+ #: includes/fs-plugin-info-dialog.php:1097
968
  msgctxt "e.g. Professional Plan"
969
  msgid "%s Plan"
970
  msgstr "Plan %s"
971
 
972
+ #: includes/fs-plugin-info-dialog.php:1123
973
  msgctxt "e.g. the best product"
974
  msgid "Best"
975
  msgstr "El mejor"
976
 
977
+ #: includes/fs-plugin-info-dialog.php1129,
978
+ #: includes/fs-plugin-info-dialog.php:1149
979
  msgctxt "as every month"
980
  msgid "Monthly"
981
  msgstr "Mensual"
982
 
983
+ #: includes/fs-plugin-info-dialog.php:1132
984
  msgctxt "as once a year"
985
  msgid "Annual"
986
  msgstr "Anual"
987
 
988
+ #: includes/fs-plugin-info-dialog.php:1135
989
  msgid "Lifetime"
990
  msgstr "Permanente"
991
 
992
+ #: includes/fs-plugin-info-dialog.php1149,
993
+ #: includes/fs-plugin-info-dialog.php1151,
994
+ #: includes/fs-plugin-info-dialog.php:1153
995
  msgctxt "e.g. billed monthly"
996
  msgid "Billed %s"
997
  msgstr "Facturado %s"
998
 
999
+ #: includes/fs-plugin-info-dialog.php:1151
1000
  msgctxt "as once a year"
1001
  msgid "Annually"
1002
  msgstr "Anualmente"
1003
 
1004
+ #: includes/fs-plugin-info-dialog.php:1153
1005
  msgctxt "as once a year"
1006
  msgid "Once"
1007
  msgstr "Una vez"
1008
 
1009
+ #: includes/fs-plugin-info-dialog.php:1159
1010
  msgid "Single Site License"
1011
  msgstr "Licencia para un único sitio"
1012
 
1013
+ #: includes/fs-plugin-info-dialog.php:1161
1014
  msgid "Unlimited Licenses"
1015
  msgstr "Licencias ilimitadas"
1016
 
1017
+ #: includes/fs-plugin-info-dialog.php:1163
1018
  msgid "Up to %s Sites"
1019
  msgstr "Hasta %s sitios"
1020
 
1021
+ #: includes/fs-plugin-info-dialog.php1173,
1022
  #: templates/plugin-info/features.php:82
1023
  msgctxt "as monthly period"
1024
  msgid "mo"
1025
  msgstr "me"
1026
 
1027
+ #: includes/fs-plugin-info-dialog.php1180,
1028
  #: templates/plugin-info/features.php:80
1029
  msgctxt "as annual period"
1030
  msgid "year"
1031
  msgstr "año"
1032
 
1033
+ #: includes/fs-plugin-info-dialog.php:1234
1034
  msgctxt "noun"
1035
  msgid "Price"
1036
  msgstr "Precio"
1037
 
1038
+ #: includes/fs-plugin-info-dialog.php:1282
1039
  msgid "Save %s"
1040
  msgstr "Guardar %s"
1041
 
1042
+ #: includes/fs-plugin-info-dialog.php:1292
1043
  msgid "No commitment for %s - cancel anytime"
1044
  msgstr "Sin compromiso para %s - cancelar en cualquier momento"
1045
 
1046
+ #: includes/fs-plugin-info-dialog.php:1295
1047
  msgid "After your free %s, pay as little as %s"
1048
  msgstr "Después de su período gratuito %s, pague sólo %s"
1049
 
1050
+ #: includes/fs-plugin-info-dialog.php:1306
1051
  msgid "Details"
1052
  msgstr "Detalles"
1053
 
1054
+ #: includes/fs-plugin-info-dialog.php1310, templates/account.php102,
1055
+ #: templates/debug.php203, templates/debug.php240, templates/debug.php457,
1056
  #: templates/account/partials/addon.php:36
1057
  msgctxt "product version"
1058
  msgid "Version"
1059
  msgstr "Versión"
1060
 
1061
+ #: includes/fs-plugin-info-dialog.php:1317
1062
  msgctxt "as the plugin author"
1063
  msgid "Author"
1064
  msgstr "Autor"
1065
 
1066
+ #: includes/fs-plugin-info-dialog.php:1324
1067
  msgid "Last Updated"
1068
  msgstr "Última actualización"
1069
 
1070
+ #: includes/fs-plugin-info-dialog.php1329, templates/account.php:468
1071
  msgctxt "x-ago"
1072
  msgid "%s ago"
1073
  msgstr "hace %s"
1074
 
1075
+ #: includes/fs-plugin-info-dialog.php:1338
1076
  msgid "Requires WordPress Version"
1077
  msgstr "Necesita la versión de WordPress"
1078
 
1079
+ #: includes/fs-plugin-info-dialog.php:1339
1080
  msgid "%s or higher"
1081
  msgstr "%s o mayor"
1082
 
1083
+ #: includes/fs-plugin-info-dialog.php:1346
1084
  msgid "Compatible up to"
1085
  msgstr "Compatible hasta"
1086
 
1087
+ #: includes/fs-plugin-info-dialog.php:1354
1088
  msgid "Downloaded"
1089
  msgstr "Descargado"
1090
 
1091
+ #: includes/fs-plugin-info-dialog.php:1358
1092
  msgid "%s time"
1093
  msgstr "% vez"
1094
 
1095
+ #: includes/fs-plugin-info-dialog.php:1360
1096
  msgid "%s times"
1097
  msgstr "%s veces"
1098
 
1099
+ #: includes/fs-plugin-info-dialog.php:1370
1100
  msgid "WordPress.org Plugin Page"
1101
  msgstr "Página del plugin en WordPress.org"
1102
 
1103
+ #: includes/fs-plugin-info-dialog.php:1378
1104
  msgid "Plugin Homepage"
1105
  msgstr "Página web del plugin"
1106
 
1107
+ #: includes/fs-plugin-info-dialog.php1386,
1108
+ #: includes/fs-plugin-info-dialog.php:1468
1109
  msgid "Donate to this plugin"
1110
  msgstr "Donar a este plugin"
1111
 
1112
+ #: includes/fs-plugin-info-dialog.php:1393
1113
  msgid "Average Rating"
1114
  msgstr "Calificación media"
1115
 
1116
+ #: includes/fs-plugin-info-dialog.php:1400
1117
  msgid "based on %s"
1118
  msgstr "basado en %s"
1119
 
1120
+ #: includes/fs-plugin-info-dialog.php:1404
1121
  msgid "%s rating"
1122
  msgstr "%s calificación"
1123
 
1124
+ #: includes/fs-plugin-info-dialog.php:1406
1125
  msgid "%s ratings"
1126
  msgstr "%s calificaciones"
1127
 
1128
+ #: includes/fs-plugin-info-dialog.php:1421
1129
  msgid "%s star"
1130
  msgstr "%s estrella"
1131
 
1132
+ #: includes/fs-plugin-info-dialog.php:1423
1133
  msgid "%s stars"
1134
  msgstr "%s estrellas"
1135
 
1136
+ #: includes/fs-plugin-info-dialog.php:1434
1137
  msgid "Click to see reviews that provided a rating of %s"
1138
  msgstr "Haz clic para ver los comentarios con una valoración de %s"
1139
 
1140
+ #: includes/fs-plugin-info-dialog.php:1447
1141
  msgid "Contributors"
1142
  msgstr "Colaboradores"
1143
 
1144
+ #: includes/fs-plugin-info-dialog.php1476,
1145
+ #: includes/fs-plugin-info-dialog.php:1478
1146
  msgid "Warning"
1147
  msgstr "Atencion"
1148
 
1149
+ #: includes/fs-plugin-info-dialog.php:1476
1150
  msgid "This plugin has not been tested with your current version of WordPress."
1151
  msgstr "Este plugin no ha sido probado con tu versión actual de WordPress."
1152
 
1153
+ #: includes/fs-plugin-info-dialog.php:1478
1154
  msgid "This plugin has not been marked as compatible with your version of WordPress."
1155
  msgstr "Este puglin no ha sido marcado como compatible con tu versión de WordPress."
1156
 
1157
+ #: includes/fs-plugin-info-dialog.php:1497
1158
  msgid "Paid add-on must be deployed to Freemius."
1159
  msgstr "El complemento de pago se debe implementar en Freemius."
1160
 
1161
+ #: includes/fs-plugin-info-dialog.php:1498
1162
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1163
  msgstr "El complemento debe implementarse en WordPress.org o en Freemius."
1164
 
1165
+ #: includes/fs-plugin-info-dialog.php:1519
1166
  msgid "Newer Version (%s) Installed"
1167
  msgstr "Versión más reciente (%s) instalada"
1168
 
1169
+ #: includes/fs-plugin-info-dialog.php:1520
1170
  msgid "Newer Free Version (%s) Installed"
1171
  msgstr "Versión gratuita más reciente (%s) instalada"
1172
 
1173
+ #: includes/fs-plugin-info-dialog.php:1527
1174
  msgid "Latest Version Installed"
1175
  msgstr "Última versión instalada"
1176
 
1177
+ #: includes/fs-plugin-info-dialog.php:1528
1178
  msgid "Latest Free Version Installed"
1179
  msgstr "Última versión gratuita instalada"
1180
 
1181
+ #: templates/account.php92, templates/forms/subscription-cancellation.php96,
1182
  #: templates/account/partials/addon.php26,
1183
+ #: templates/account/partials/site.php:311
1184
  msgid "Downgrading your plan"
1185
  msgstr "Bajando tu plan"
1186
 
1187
+ #: templates/account.php93, templates/forms/subscription-cancellation.php97,
1188
  #: templates/account/partials/addon.php27,
1189
+ #: templates/account/partials/site.php:312
1190
  msgid "Cancelling the subscription"
1191
  msgstr "Cancelando la suscripción"
1192
 
1193
  #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
1194
  #. subscription'
1195
+ #: templates/account.php95, templates/forms/subscription-cancellation.php99,
1196
+ #: templates/account/partials/site.php:314
1197
  msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1198
+ msgstr "%1$s detendrá inmediatamente todos los pagos recurrentes futuros y tu licencia del plan %2$s caducará en %3$s."
1199
 
1200
+ #: templates/account.php96, templates/forms/subscription-cancellation.php100,
1201
  #: templates/account/partials/addon.php30,
1202
+ #: templates/account/partials/site.php:315
1203
  msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1204
  msgstr "Ten en cuenta que no podremos abaratar los precios desactualizados para renovaciones/nuevas suscripciones después de una cancelación. Si eliges renovar la suscripción manualmente en el futuro, después de un aumento de precio, que generalmente ocurre una vez al año, se te cobrará el precio actualizado."
1205
 
1206
+ #: templates/account.php97, templates/forms/subscription-cancellation.php106,
1207
  #: templates/account/partials/addon.php:31
1208
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1209
  msgstr "La cancelación del período de prueba bloqueará inmediatamente el acceso a todas las funciones premium. ¿Estás seguro?"
1210
 
1211
+ #: templates/account.php98, templates/forms/subscription-cancellation.php101,
1212
  #: templates/account/partials/addon.php32,
1213
+ #: templates/account/partials/site.php:316
1214
  msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1215
  msgstr "Todavía puedes disfrutar de todas las funciones de %s pero no tendrás acceso a soporte y actualizaciones de %s."
1216
 
1217
+ #: templates/account.php99, templates/forms/subscription-cancellation.php102,
1218
  #: templates/account/partials/addon.php33,
1219
+ #: templates/account/partials/site.php:317
1220
  msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1221
  msgstr "Una vez que caduque tu licencia todavía puedes utilizar la versión gratuita pero NO tendrás acceso a las funciones de %s."
1222
 
1223
  #. translators: %s: Plan title (e.g. "Professional")
1224
+ #: templates/account.php101,
1225
  #: templates/account/partials/activate-license-button.php31,
1226
  #: templates/account/partials/addon.php:35
1227
  msgid "Activate %s Plan"
1228
  msgstr "Activar plan %s"
1229
 
1230
  #. translators: %s: Time period (e.g. Auto renews in "2 months")
1231
+ #: templates/account.php104, templates/account/partials/addon.php38,
1232
+ #: templates/account/partials/site.php:291
1233
  msgid "Auto renews in %s"
1234
  msgstr "Auto renovaciones en %s"
1235
 
1236
  #. translators: %s: Time period (e.g. Expires in "2 months")
1237
+ #: templates/account.php106, templates/account/partials/addon.php40,
1238
+ #: templates/account/partials/site.php:293
1239
  msgid "Expires in %s"
1240
  msgstr "Caduca en %s"
1241
 
1242
+ #: templates/account.php:107
1243
  msgctxt "as synchronize license"
1244
  msgid "Sync License"
1245
  msgstr "Sincronizar licencia"
1246
 
1247
+ #: templates/account.php108, templates/account/partials/addon.php:41
1248
  msgid "Cancel Trial"
1249
  msgstr "Cancelar período de prueba"
1250
 
1251
+ #: templates/account.php109, templates/account/partials/addon.php:42
1252
  msgid "Change Plan"
1253
  msgstr "Cambiar Plan"
1254
 
1255
+ #: templates/account.php110, templates/account/partials/addon.php:43
1256
  msgctxt "verb"
1257
  msgid "Upgrade"
1258
  msgstr "Actualizar"
1259
 
1260
+ #: templates/account.php112, templates/account/partials/addon.php45,
1261
+ #: templates/account/partials/site.php:318
1262
  msgctxt "verb"
1263
  msgid "Downgrade"
1264
  msgstr "Degradar"
1265
 
1266
+ #: templates/account.php114, templates/add-ons.php246,
1267
  #: templates/plugin-info/features.php72,
1268
+ #: templates/account/partials/addon.php47,
1269
+ #: templates/account/partials/site.php:33
1270
  msgid "Free"
1271
  msgstr "Gratis"
1272
 
1273
+ #: templates/account.php116, templates/debug.php373,
1274
+ #: includes/customizer/class-fs-customizer-upsell-control.php110,
1275
+ #: templates/account/partials/addon.php:49
1276
  msgctxt "as product pricing plan"
1277
  msgid "Plan"
1278
  msgstr "Plan"
1279
 
1280
+ #: templates/account.php:117
1281
  msgid "Bundle Plan"
1282
+ msgstr "Plan combinado"
1283
 
1284
+ #: templates/account.php:191
1285
  msgid "Free Trial"
1286
  msgstr "Período de prueba gratuito"
1287
 
1288
+ #: templates/account.php:202
1289
  msgid "Account Details"
1290
  msgstr "Detalles de la cuenta"
1291
 
1292
+ #: templates/account.php209, templates/forms/data-debug-mode.php:33
1293
+ msgid "Start Debug"
1294
+ msgstr "Iniciar Depuración"
1295
+
1296
+ #: templates/account.php:211
1297
+ msgid "Stop Debug"
1298
+ msgstr "Detener la depuración"
1299
+
1300
+ #: templates/account.php:218
1301
  msgid "Billing & Invoices"
1302
+ msgstr "Facturación y facturas"
1303
 
1304
+ #: templates/account.php:229
1305
  msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1306
  msgstr "La eliminación de la cuenta desactivará automáticamente su licencia de plan %s para que pueda utilizarla en otros sitios. Si también desea cancelar los pagos periódicos, haga clic en el botón \"Cancelar\" y, en primer lugar, \"Degradar\" su cuenta. ¿Seguro que deseas continuar con la eliminación?"
1307
 
1308
+ #: templates/account.php:231
1309
  msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1310
  msgstr "La eliminación no es temporal. Sólo elimínalo si ya no deseas utilizar este %s más. ¿Estás seguro que desea continuar con la eliminación?"
1311
 
1312
+ #: templates/account.php:234
1313
  msgid "Delete Account"
1314
  msgstr "Borrar cuenta"
1315
 
1316
+ #: templates/account.php246, templates/account/partials/addon.php231,
1317
  #: templates/account/partials/deactivate-license-button.php:35
1318
  msgid "Deactivate License"
1319
  msgstr "Desactivar licencia"
1320
 
1321
+ #: templates/account.php269, templates/forms/subscription-cancellation.php:125
1322
  msgid "Are you sure you want to proceed?"
1323
  msgstr "¿Estás seguro que quieres proceder?"
1324
 
1325
+ #: templates/account.php269, templates/account/partials/addon.php:255
1326
  msgid "Cancel Subscription"
1327
  msgstr "Cancelar suscripción"
1328
 
1329
+ #: templates/account.php298, templates/account/partials/addon.php:340
1330
  msgctxt "as synchronize"
1331
  msgid "Sync"
1332
  msgstr "Sincronizar"
1333
 
1334
+ #: templates/account.php313, templates/debug.php:507
1335
  msgid "Name"
1336
  msgstr "Nombre"
1337
 
1338
+ #: templates/account.php319, templates/debug.php:508
1339
  msgid "Email"
1340
  msgstr "Correo electrónico"
1341
 
1342
+ #: templates/account.php326, templates/debug.php371, templates/debug.php:557
1343
  msgid "User ID"
1344
  msgstr "ID de usuario"
1345
 
1346
+ #: templates/account.php344, templates/account.php637,
1347
+ #: templates/account.php682, templates/debug.php238, templates/debug.php365,
1348
+ #: templates/debug.php454, templates/debug.php506, templates/debug.php555,
1349
+ #: templates/debug.php632, templates/account/payments.php35,
1350
  #: templates/debug/logger.php:21
1351
  msgid "ID"
1352
  msgstr "ID"
1353
 
1354
+ #: templates/account.php:351
1355
  msgid "Site ID"
1356
  msgstr "ID del sitio"
1357
 
1358
+ #: templates/account.php:354
1359
  msgid "No ID"
1360
  msgstr "Sin ID"
1361
 
1362
+ #: templates/account.php359, templates/debug.php245, templates/debug.php374,
1363
+ #: templates/debug.php458, templates/debug.php510,
1364
+ #: templates/account/partials/site.php:227
1365
  msgid "Public Key"
1366
  msgstr "Clave pública"
1367
 
1368
+ #: templates/account.php365, templates/debug.php375, templates/debug.php459,
1369
+ #: templates/debug.php511, templates/account/partials/site.php:239
1370
  msgid "Secret Key"
1371
  msgstr "Clave secreta"
1372
 
1373
+ #: templates/account.php:368
1374
  msgctxt "as secret encryption key missing"
1375
  msgid "No Secret"
1376
  msgstr "Sin clave secreta"
1377
 
1378
+ #: templates/account.php395, templates/account/partials/site.php120,
1379
+ #: templates/account/partials/site.php:122
1380
  msgid "Trial"
1381
  msgstr "Período de prueba gratuito"
1382
 
1383
+ #: templates/account.php422, templates/debug.php562,
1384
+ #: templates/account/partials/site.php:260
1385
  msgid "License Key"
1386
  msgstr "Clave de licencia"
1387
 
1388
+ #: templates/account.php:453
1389
  msgid "Join the Beta program"
1390
+ msgstr "Únase al programa Beta"
1391
 
1392
+ #: templates/account.php:459
1393
  msgid "not verified"
1394
  msgstr "no verificado"
1395
 
1396
+ #: templates/account.php468, templates/account/partials/addon.php:190
1397
  msgid "Expired"
1398
  msgstr "Caducado"
1399
 
1400
+ #: templates/account.php:528
1401
  msgid "Premium version"
1402
  msgstr "Versión premium"
1403
 
1404
+ #: templates/account.php:530
1405
  msgid "Free version"
1406
  msgstr "Versión gratuita"
1407
 
1408
+ #: templates/account.php:542
1409
  msgid "Verify Email"
1410
  msgstr "Verificar correo electrónico"
1411
 
1412
+ #: templates/account.php:553
1413
  msgid "Download %s Version"
1414
  msgstr "Descargar versión %s"
1415
 
1416
+ #: templates/account.php568, templates/account.php820,
1417
+ #: templates/account/partials/site.php248,
1418
+ #: templates/account/partials/site.php:270
1419
  msgctxt "verb"
1420
  msgid "Show"
1421
  msgstr "Mostrar"
1422
 
1423
+ #: templates/account.php:583
1424
  msgid "What is your %s?"
1425
  msgstr "¿Cual es tú %s?"
1426
 
1427
+ #: templates/account.php591, templates/account/billing.php:21
1428
  msgctxt "verb"
1429
  msgid "Edit"
1430
  msgstr "Editar"
1431
 
1432
+ #: templates/account.php:616
1433
  msgid "Sites"
1434
  msgstr "Sitios"
1435
 
1436
+ #: templates/account.php:629
1437
  msgid "Search by address"
1438
  msgstr "Buscar por dirección"
1439
 
1440
+ #: templates/account.php638, templates/debug.php:368
1441
  msgid "Address"
1442
  msgstr "Dirección"
1443
 
1444
+ #: templates/account.php:639
1445
  msgid "License"
1446
  msgstr "Licencia"
1447
 
1448
+ #: templates/account.php:640
1449
  msgid "Plan"
1450
  msgstr "Plan"
1451
 
1452
+ #: templates/account.php:685
1453
  msgctxt "as software license"
1454
  msgid "License"
1455
  msgstr "Licencia"
1456
 
1457
+ #: templates/account.php:814
1458
  msgctxt "verb"
1459
  msgid "Hide"
1460
  msgstr "Ocultar"
1461
 
1462
+ #: templates/account.php836, templates/forms/data-debug-mode.php:31
1463
  msgid "Processing"
1464
  msgstr "Procesando"
1465
 
1466
+ #: templates/account.php:839
1467
  msgid "Get updates for bleeding edge Beta versions of %s."
1468
+ msgstr "Obten actualizaciones para las versiones Beta de vanguardia de %s."
1469
 
1470
+ #: templates/account.php:897
1471
  msgid "Cancelling %s"
1472
  msgstr "Cancelando %s"
1473
 
1474
+ #: templates/account.php897, templates/account.php914,
1475
  #: templates/forms/subscription-cancellation.php27,
1476
  #: templates/forms/deactivation/form.php:133
1477
  msgid "trial"
1478
  msgstr "período de prueba"
1479
 
1480
+ #: templates/account.php912, templates/forms/deactivation/form.php:150
1481
  msgid "Cancelling %s..."
1482
  msgstr "Cancelando %s..."
1483
 
1484
+ #: templates/account.php915, templates/forms/subscription-cancellation.php28,
1485
  #: templates/forms/deactivation/form.php:134
1486
  msgid "subscription"
1487
  msgstr "suscripción"
1488
 
1489
+ #: templates/account.php:929
1490
  msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1491
  msgstr "Al desactivar tu licencia todas las características premium se bloquearán, pero posibilitará poder activar tu licencia en otro sitio. ¿Estás seguro que quieres continuar?"
1492
 
1493
+ #: templates/add-ons.php:38
1494
  msgid "View details"
1495
  msgstr "Ver detalles"
1496
 
1497
+ #: templates/add-ons.php:48
1498
  msgid "Add Ons for %s"
1499
  msgstr "Complementos para %s"
1500
 
1501
+ #: templates/add-ons.php:58
1502
+ msgid "We couldn't load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1503
+ msgstr "No pudimos cargar la lista de complementos. Probablemente sea un problema por nuestra parte, por favor, inténtalo de nuevo en unos minutos."
1504
 
1505
+ #: templates/add-ons.php:229
1506
  msgctxt "active add-on"
1507
  msgid "Active"
1508
  msgstr "Activo"
1509
 
1510
+ #: templates/add-ons.php:230
1511
  msgctxt "installed add-on"
1512
  msgid "Installed"
1513
+ msgstr "Instalado"
1514
 
1515
+ #: templates/admin-notice.php13, templates/forms/license-activation.php207,
1516
  #: templates/forms/resend-key.php:77
1517
  msgctxt "as close a window"
1518
  msgid "Dismiss"
1564
  msgid "Thanks %s!"
1565
  msgstr "¡Gracias %s!"
1566
 
1567
+ #: templates/connect.php172, templates/forms/license-activation.php:46
1568
  msgid "Agree & Activate License"
1569
  msgstr "De acuerdo y activar licencia"
1570
 
1612
  msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
1613
  msgstr "Durante el proceso de actualización detectamos %s sitio(s) en la red que todavía están pendientes de tu atención."
1614
 
1615
+ #: templates/connect.php253, templates/forms/data-debug-mode.php35,
1616
+ #: templates/forms/license-activation.php:49
1617
  msgid "License key"
1618
  msgstr "Clave de licencia"
1619
 
1620
+ #: templates/connect.php256, templates/forms/license-activation.php:22
1621
  msgid "Can't find your license key?"
1622
  msgstr "¿No puedes encontrar tu clave de licencia?"
1623
 
1671
  msgid "Newsletter"
1672
  msgstr "Boletín"
1673
 
1674
+ #: templates/connect.php391, templates/forms/license-activation.php:41
1675
  msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
1676
  msgstr "%1$s periódicamente enviará datos a %2$s para comprobar las actualizaciones de seguridad, nuevas funcionalidades y verificar la validez de tu licencia."
1677
 
1733
  msgstr "Depurando"
1734
 
1735
  #: templates/debug.php54, templates/debug.php250, templates/debug.php376,
1736
+ #: templates/debug.php:512
1737
  msgid "Actions"
1738
  msgstr "Acciones"
1739
 
1802
  msgid "Themes"
1803
  msgstr "Temas"
1804
 
1805
+ #: templates/debug.php239, templates/debug.php370, templates/debug.php456,
1806
  #: templates/debug/scheduled-crons.php:80
1807
  msgid "Slug"
1808
  msgstr "Ruta"
1809
 
1810
+ #: templates/debug.php241, templates/debug.php:455
1811
  msgid "Title"
1812
  msgstr "Título"
1813
 
1846
  msgid "Simulate Network Upgrade"
1847
  msgstr "Simular actualización de red"
1848
 
1849
+ #: templates/debug.php:359
1850
  msgid "%s Installs"
1851
  msgstr "%s Instalaciones"
1852
 
1853
+ #: templates/debug.php:361
1854
  msgctxt "like websites"
1855
  msgid "Sites"
1856
  msgstr "Sitios"
1857
 
1858
+ #: templates/debug.php367, templates/account/partials/site.php:156
1859
  msgid "Blog ID"
1860
  msgstr "ID del blog"
1861
 
1862
+ #: templates/debug.php:372
1863
+ msgid "License ID"
1864
+ msgstr "ID de licencia"
1865
+
1866
+ #: templates/debug.php436, templates/debug.php535,
1867
+ #: templates/account/partials/addon.php:435
1868
  msgctxt "verb"
1869
  msgid "Delete"
1870
  msgstr "Borrar"
1871
 
1872
+ #: templates/debug.php:450
1873
  msgid "Add Ons of module %s"
1874
  msgstr "Complementos del módulo %s"
1875
 
1876
+ #: templates/debug.php:502
1877
  msgid "Users"
1878
  msgstr "Usuarios"
1879
 
1880
+ #: templates/debug.php:509
1881
  msgid "Verified"
1882
  msgstr "Verificado"
1883
 
1884
+ #: templates/debug.php:551
1885
  msgid "%s Licenses"
1886
  msgstr "%s Licencias"
1887
 
1888
+ #: templates/debug.php:556
1889
  msgid "Plugin ID"
1890
  msgstr "ID del plugin"
1891
 
1892
+ #: templates/debug.php:558
1893
  msgid "Plan ID"
1894
  msgstr "ID del plan"
1895
 
1896
+ #: templates/debug.php:559
1897
  msgid "Quota"
1898
  msgstr "Cuota"
1899
 
1900
+ #: templates/debug.php:560
1901
  msgid "Activated"
1902
  msgstr "Activado"
1903
 
1904
+ #: templates/debug.php:561
1905
  msgid "Blocking"
1906
  msgstr "Bloqueando"
1907
 
1908
+ #: templates/debug.php:563
1909
  msgctxt "as expiration date"
1910
  msgid "Expiration"
1911
  msgstr "Caducidad"
1912
 
1913
+ #: templates/debug.php:590
1914
  msgid "Debug Log"
1915
  msgstr "Log de Debug"
1916
 
1917
+ #: templates/debug.php:594
1918
  msgid "All Types"
1919
  msgstr "Todos los Tipos"
1920
 
1921
+ #: templates/debug.php:601
1922
  msgid "All Requests"
1923
  msgstr "Todas las peticiones"
1924
 
1925
+ #: templates/debug.php606, templates/debug.php635,
1926
  #: templates/debug/logger.php:25
1927
  msgid "File"
1928
  msgstr "Archivo"
1929
 
1930
+ #: templates/debug.php607, templates/debug.php633,
1931
  #: templates/debug/logger.php:23
1932
  msgid "Function"
1933
  msgstr "Función"
1934
 
1935
+ #: templates/debug.php:608
1936
  msgid "Process ID"
1937
  msgstr "ID del proceso"
1938
 
1939
+ #: templates/debug.php:609
1940
  msgid "Logger"
1941
  msgstr "Logger"
1942
 
1943
+ #: templates/debug.php610, templates/debug.php634,
1944
  #: templates/debug/logger.php:24
1945
  msgid "Message"
1946
  msgstr "Mensaje"
1947
 
1948
+ #: templates/debug.php:612
1949
  msgid "Filter"
1950
  msgstr "Filtro"
1951
 
1952
+ #: templates/debug.php:620
1953
  msgid "Download"
1954
  msgstr "Descarga"
1955
 
1956
+ #: templates/debug.php631, templates/debug/logger.php:22
1957
  msgid "Type"
1958
  msgstr "Tipo"
1959
 
1960
+ #: templates/debug.php636, templates/debug/logger.php:26
1961
  msgid "Timestamp"
1962
  msgstr "Timestamp"
1963
 
2282
  msgid "Become an affiliate"
2283
  msgstr "Hacerse afiliado"
2284
 
2285
+ #: templates/forms/data-debug-mode.php:25
2286
+ msgid "Please enter the license key to enable the debug mode:"
2287
+ msgstr "Por favor, introduce la clave de licencia para activar el modo de depuración:"
2288
+
2289
+ #: templates/forms/data-debug-mode.php:27
2290
+ msgid "To enter the debug mode, please enter the secret key of the license owner (UserID = %d), which you can find in your \"My Profile\" section of your User Dashboard:"
2291
+ msgstr "Para entrar en el modo de depuración, introduce la clave secreta del propietario de la licencia (UserID = %d), que puedes encontrar en la sección \"Mi perfil\" de tu panel de control de usuario:"
2292
+
2293
+ #: templates/forms/data-debug-mode.php:32
2294
+ msgid "Submit"
2295
+ msgstr "Enviar"
2296
+
2297
+ #: templates/forms/data-debug-mode.php:36
2298
+ msgid "User key"
2299
+ msgstr "Clave de usuario"
2300
+
2301
+ #: templates/forms/license-activation.php:23
2302
  msgid "Please enter the license key that you received in the email right after the purchase:"
2303
  msgstr "Por favor, introduce la clave de licencia que recibiste en el correo electrónico al realizar la compra:"
2304
 
2305
+ #: templates/forms/license-activation.php:28
2306
  msgid "Update License"
2307
  msgstr "Activar licencia"
2308
 
2369
  msgid "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
2370
  msgstr "No cancelar %s - Todavía estoy interesado en obtener actualizaciones de características y seguridad, así como poder contactar con soporte."
2371
 
 
 
 
 
 
 
 
 
2372
  #: templates/forms/subscription-cancellation.php:103
2373
  msgid "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
2374
  msgstr "Una vez que tu licencia caduque no podrás seguir utilizando %s, a no ser que lo actives de nuevo con una licencia premium válida."
2455
  msgid "Last license"
2456
  msgstr "Última licencia"
2457
 
2458
+ #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
2459
+ #. subscription'
2460
+ #: templates/account/partials/addon.php:29
2461
+ msgid "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2462
+ msgstr "%1$s detendrá inmediatamente todos los pagos recurrentes futuros y tu licencia del plan caducará en %s."
2463
+
2464
+ #: templates/account/partials/addon.php:185
2465
  msgid "Cancelled"
2466
  msgstr "Cancelado"
2467
 
2468
+ #: templates/account/partials/addon.php:195
2469
  msgid "No expiration"
2470
  msgstr "Sin caducidad"
2471
 
2472
+ #: templates/account/partials/site.php:189
2473
  msgid "Owner Name"
2474
  msgstr "Nombre del propietario"
2475
 
2476
+ #: templates/account/partials/site.php:201
2477
  msgid "Owner Email"
2478
  msgstr "Correo electrónico del propietario"
2479
 
2480
+ #: templates/account/partials/site.php:213
2481
  msgid "Owner ID"
2482
  msgstr "ID del propietario"
2483
 
2484
+ #: templates/account/partials/site.php:286
2485
  msgid "Subscription"
2486
  msgstr "Suscripción"
2487
 
vendor/freemius/wordpress-sdk/languages/freemius-fr_FR.mo CHANGED
Binary file
vendor/freemius/wordpress-sdk/languages/freemius-fr_FR.po CHANGED
@@ -7,8 +7,8 @@ msgstr ""
7
  "Project-Id-Version: WordPress SDK\n"
8
  "Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
9
  "POT-Creation-Date: \n"
10
- "PO-Revision-Date: 2019-06-05 13:40+0000\n"
11
- "Last-Translator: Boris Colombier <transifex.com@wba.fr>\n"
12
  "Language: fr_FR\n"
13
  "Language-Team: French (France) (http://www.transifex.com/freemius/wordpress-sdk/language/fr_FR/)\n"
14
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -21,1479 +21,1498 @@ msgstr ""
21
  "X-Poedit-SearchPathExcluded-0: *.js\n"
22
  "X-Poedit-SourceCharset: UTF-8\n"
23
 
24
- #: includes/class-freemius.php1838, templates/account.php:769
25
  msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
26
  msgstr "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
27
 
28
- #: includes/class-freemius.php:1845
29
  msgid "Would you like to proceed with the update?"
30
  msgstr "Would you like to proceed with the update?"
31
 
32
- #: includes/class-freemius.php:2053
33
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
34
  msgstr "Le SDK Freemius ne trouve pas le fichier principal du plugin. Merci de contacter sdk@freemius.com en indiquant l'erreur."
35
 
36
- #: includes/class-freemius.php:2055
37
  msgid "Error"
38
  msgstr "Erreur"
39
 
40
- #: includes/class-freemius.php:2445
41
  msgid "I found a better %s"
42
  msgstr "J'ai trouvé un meilleur %s"
43
 
44
- #: includes/class-freemius.php:2447
45
  msgid "What's the %s's name?"
46
  msgstr "Quel est le nom du %s ?"
47
 
48
- #: includes/class-freemius.php:2453
49
  msgid "It's a temporary %s. I'm just debugging an issue."
50
  msgstr "C'est une %s temporaire. Je corrige un problème."
51
 
52
- #: includes/class-freemius.php:2455
53
  msgid "Deactivation"
54
  msgstr "Désactivation"
55
 
56
- #: includes/class-freemius.php:2456
57
  msgid "Theme Switch"
58
  msgstr "Changement de Thème"
59
 
60
- #: includes/class-freemius.php2465, templates/forms/resend-key.php:24
61
  msgid "Other"
62
  msgstr "Autre"
63
 
64
- #: includes/class-freemius.php:2473
65
  msgid "I no longer need the %s"
66
  msgstr "Je n'ai plus besoin du %s"
67
 
68
- #: includes/class-freemius.php:2480
69
  msgid "I only needed the %s for a short period"
70
  msgstr "Je n'ai besoin de %s que pour une courte période"
71
 
72
- #: includes/class-freemius.php:2486
73
  msgid "The %s broke my site"
74
  msgstr "Le %s a cassé mon site"
75
 
76
- #: includes/class-freemius.php:2493
77
  msgid "The %s suddenly stopped working"
78
  msgstr "Le %s a soudainement arrêté de fonctionner"
79
 
80
- #: includes/class-freemius.php:2503
81
  msgid "I can't pay for it anymore"
82
  msgstr "Je ne peux plus payer pour ça"
83
 
84
- #: includes/class-freemius.php:2505
85
  msgid "What price would you feel comfortable paying?"
86
  msgstr "Quel prix seriez-vous prêt à payer ?"
87
 
88
- #: includes/class-freemius.php:2511
89
  msgid "I don't like to share my information with you"
90
  msgstr "Je ne veux pas partager mes informations avec vous"
91
 
92
- #: includes/class-freemius.php:2532
93
  msgid "The %s didn't work"
94
  msgstr "Le %s n'a pas fonctionné"
95
 
96
- #: includes/class-freemius.php:2542
97
  msgid "I couldn't understand how to make it work"
98
  msgstr "Je ne comprends pas comment le faire fonctionner"
99
 
100
- #: includes/class-freemius.php:2550
101
  msgid "The %s is great, but I need specific feature that you don't support"
102
  msgstr "Le %s est bien mais j'ai besoin de fonctionnalités spécifiques que vous ne proposez pas"
103
 
104
- #: includes/class-freemius.php:2552
105
  msgid "What feature?"
106
  msgstr "Quelle fonctionnalité ?"
107
 
108
- #: includes/class-freemius.php:2556
109
  msgid "The %s is not working"
110
  msgstr "Le %s ne fonctionne pas"
111
 
112
- #: includes/class-freemius.php:2558
113
  msgid "Kindly share what didn't work so we can fix it for future users..."
114
  msgstr "Merci de nous indiquer ce qui ne fonctionne pas afin que nous puissions le corriger pour les futurs utilisateurs..."
115
 
116
- #: includes/class-freemius.php:2562
117
  msgid "It's not what I was looking for"
118
  msgstr "Ce n'est pas ce que je recherche"
119
 
120
- #: includes/class-freemius.php:2564
121
  msgid "What you've been looking for?"
122
  msgstr "Que recherchez-vous ?"
123
 
124
- #: includes/class-freemius.php:2568
125
  msgid "The %s didn't work as expected"
126
  msgstr "Le %s n'a pas fonctionné comme prévu"
127
 
128
- #: includes/class-freemius.php:2570
129
  msgid "What did you expect?"
130
  msgstr "À quoi vous attendiez-vous ?"
131
 
132
- #: includes/class-freemius.php3425, templates/debug.php:20
133
  msgid "Freemius Debug"
134
  msgstr "Débuggage Freemius"
135
 
136
- #: includes/class-freemius.php:4177
137
  msgid "I don't know what is cURL or how to install it, help me!"
138
  msgstr "Je ne sais pas ce qu'est cURL ou comment l'installer, aidez moi !"
139
 
140
- #: includes/class-freemius.php:4179
141
  msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
142
  msgstr "Nous allons contacter votre hébergeur afin de résoudre le problème. Vous recevrez un email à propos de %s dès que nous aurons des nouvelles."
143
 
144
- #: includes/class-freemius.php:4186
145
  msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
146
  msgstr "Parfait, merci d'installer cURL et de l'activer dans votre fichier php.ini. De plus, recherchez l'instruction 'disable_functions' de votre fichier php.ini et désactivez les commandes commençant par 'curl_'. Pour vérifier la bonne activation, utilisez la fonction 'phpinfo()'. Une fois activé, désactivez le %s et réactivez le à nouveau."
147
 
148
- #: includes/class-freemius.php:4291
149
  msgid "Yes - do your thing"
150
  msgstr "Oui - allez-y"
151
 
152
- #: includes/class-freemius.php:4296
153
  msgid "No - just deactivate"
154
  msgstr "Non - désactivation seulement"
155
 
156
- #: includes/class-freemius.php4341, includes/class-freemius.php4850,
157
- #: includes/class-freemius.php5999, includes/class-freemius.php12682,
158
- #: includes/class-freemius.php16045, includes/class-freemius.php16133,
159
- #: includes/class-freemius.php16299, includes/class-freemius.php18758,
160
- #: includes/class-freemius.php18768, includes/class-freemius.php19404,
161
- #: includes/class-freemius.php20277, includes/class-freemius.php20392,
162
- #: includes/class-freemius.php20536, templates/add-ons.php:54
 
163
  msgctxt "exclamation"
164
  msgid "Oops"
165
  msgstr "Oups"
166
 
167
- #: includes/class-freemius.php:4410
168
  msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
169
  msgstr "Merci de nous permettre de corriger ça. Un message vient d'être envoyé à notre service technique. Nous reviendrons vers vous dès que nous aurons des nouvelles à propos de %s."
170
 
171
- #: includes/class-freemius.php:4847
172
  msgctxt "addonX cannot run without pluginY"
173
  msgid "%s cannot run without %s."
174
  msgstr "%s ne peut pas fonctionner sans %s."
175
 
176
- #: includes/class-freemius.php:4848
177
  msgctxt "addonX cannot run..."
178
  msgid "%s cannot run without the plugin."
179
  msgstr "%s ne peut pas fonctionner sans le plugin."
180
 
181
- #: includes/class-freemius.php5020, includes/class-freemius.php5045,
182
- #: includes/class-freemius.php:19475
183
  msgid "Unexpected API error. Please contact the %s's author with the following error."
184
  msgstr "Une erreur est survenue dans l'API. Merci de contacter l'auteur du %s en lui indiquant l'erreur."
185
 
186
- #: includes/class-freemius.php:5687
187
  msgid "Premium %s version was successfully activated."
188
  msgstr "La version premium de %s a été activée avec succès."
189
 
190
- #: includes/class-freemius.php5699, includes/class-freemius.php:7567
191
  msgctxt ""
192
  msgid "W00t"
193
  msgstr "Génial"
194
 
195
- #: includes/class-freemius.php:5714
196
  msgid "You have a %s license."
197
  msgstr "Vous avez une license pour %s."
198
 
199
- #: includes/class-freemius.php5718, includes/class-freemius.php15466,
200
- #: includes/class-freemius.php15477, includes/class-freemius.php18669,
201
- #: includes/class-freemius.php18999, includes/class-freemius.php19065,
202
- #: includes/class-freemius.php:19229
203
  msgctxt "interjection expressing joy or exuberance"
204
  msgid "Yee-haw"
205
  msgstr "Youpi"
206
 
207
- #: includes/class-freemius.php:5982
208
  msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
209
  msgstr "La période d'essai du %s a bien été annulé. L'add-on a été désactivé car il ne fonctionne qu'avec la version premium. Si vous souhaitez l'utiliser ultérieurement, vous devrez acheter une licence."
210
 
211
- #: includes/class-freemius.php:5986
212
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
213
  msgstr "%sest un add-on pour la version premium. Vous devez acheter une licence avant d'activer le plugin."
214
 
215
- #: includes/class-freemius.php5995, templates/add-ons.php130,
216
- #: templates/account/partials/addon.php:343
217
  msgid "More information about %s"
218
  msgstr "Plus d'informations à propos de %s"
219
 
220
- #: includes/class-freemius.php:5996
221
  msgid "Purchase License"
222
  msgstr "Acheter une licence"
223
 
224
- #: includes/class-freemius.php6931, templates/connect.php:163
225
  msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
226
  msgstr "Vous devriez recevoir un email d'activation pour %s sur votre boîte %s. Merci de cliquer sur le bouton d'activation dans l'email pour %s."
227
 
228
- #: includes/class-freemius.php:6935
229
  msgid "start the trial"
230
  msgstr "commencer la période d'essai"
231
 
232
- #: includes/class-freemius.php6936, templates/connect.php:167
233
  msgid "complete the install"
234
  msgstr "compléter l'installation"
235
 
236
- #: includes/class-freemius.php:7049
237
  msgid "You are just one step away - %s"
238
  msgstr "Il ne reste qu'une étape - %s"
239
 
240
- #: includes/class-freemius.php:7052
241
  msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
242
  msgid "Complete \"%s\" Activation Now"
243
  msgstr "Compléter \"%s\" Activer Maintenant"
244
 
245
- #: includes/class-freemius.php:7130
246
  msgid "We made a few tweaks to the %s, %s"
247
  msgstr "Nous avons fait quelques modifications au %s, %s"
248
 
249
- #: includes/class-freemius.php:7134
250
  msgid "Opt in to make \"%s\" better!"
251
  msgstr "Inscrivez-vous pour améliorer \"%s\" !"
252
 
253
- #: includes/class-freemius.php:7566
254
  msgid "The upgrade of %s was successfully completed."
255
  msgstr "La mise à jour du %s s'est terminée avec succès "
256
 
257
- #: includes/class-freemius.php9728, includes/class-fs-plugin-updater.php975,
258
- #: includes/class-fs-plugin-updater.php1170,
259
- #: includes/class-fs-plugin-updater.php1177,
260
  #: templates/auto-installation.php:32
261
  msgid "Add-On"
262
  msgstr "Add-On"
263
 
264
- #: includes/class-freemius.php9730, templates/account.php313,
265
- #: templates/account.php321, templates/debug.php361, templates/debug.php:522
266
  msgid "Plugin"
267
  msgstr "Plugin"
268
 
269
- #: includes/class-freemius.php9731, templates/account.php314,
270
- #: templates/account.php322, templates/debug.php361, templates/debug.php522,
271
  #: templates/forms/deactivation/form.php:71
272
  msgid "Theme"
273
  msgstr "Thème"
274
 
275
- #: includes/class-freemius.php:12148
276
  msgid "An unknown error has occurred while trying to set the user's beta mode."
277
  msgstr "An unknown error has occurred while trying to set the user's beta mode."
278
 
279
- #: includes/class-freemius.php:12549
280
  msgid "Invalid site details collection."
281
  msgstr "Récupération des détails du site non valide."
282
 
283
- #: includes/class-freemius.php:12669
284
  msgid "We couldn't find your email address in the system, are you sure it's the right address?"
285
  msgstr "Nous ne trouvons pas votre adresse mail dans notre système, êtes-vous qu'il s'agit de la bonne adresse ?"
286
 
287
- #: includes/class-freemius.php:12671
288
  msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
289
  msgstr "Nous ne trouvons aucune licence active associée avec cette adresse email, êtes-vous qu'il s'agit de la bonne adresse ?"
290
 
291
- #: includes/class-freemius.php:12945
292
  msgid "Account is pending activation."
293
  msgstr "Compte en cours d'activation."
294
 
295
- #: includes/class-freemius.php13057,
296
  #: templates/forms/premium-versions-upgrade-handler.php:47
297
  msgid "Buy a license now"
298
  msgstr "Acheter une licence maintenant"
299
 
300
- #: includes/class-freemius.php13069,
301
  #: templates/forms/premium-versions-upgrade-handler.php:46
302
  msgid "Renew your license now"
303
  msgstr "Renouvelez votre licence maintenant"
304
 
305
- #: includes/class-freemius.php:13073
306
  msgid "%s to access version %s security & feature updates, and support."
307
  msgstr "%s pour permettre les mises à jour de sécurité et de fonctionnalités de la version %s, et le support."
308
 
309
- #: includes/class-freemius.php:15448
310
  msgid "%s activation was successfully completed."
311
  msgstr "L'activation de %s s'est terminée avec succès."
312
 
313
- #: includes/class-freemius.php:15462
314
  msgid "Your account was successfully activated with the %s plan."
315
  msgstr "Votre compte a été activé avec succès avec la formule %s."
316
 
317
- #: includes/class-freemius.php15473, includes/class-freemius.php:19061
318
  msgid "Your trial has been successfully started."
319
  msgstr "Votre période d'essai a bien démarré."
320
 
321
- #: includes/class-freemius.php16043, includes/class-freemius.php16131,
322
- #: includes/class-freemius.php:16297
323
  msgid "Couldn't activate %s."
324
  msgstr "Impossible d'activer %s."
325
 
326
- #: includes/class-freemius.php16044, includes/class-freemius.php16132,
327
- #: includes/class-freemius.php:16298
328
  msgid "Please contact us with the following message:"
329
  msgstr "Merci de nous contacter avec le message suivant :"
330
 
331
- #: includes/class-freemius.php:16128
332
  msgid "An unknown error has occurred."
333
  msgstr "An unknown error has occurred."
334
 
335
- #: includes/class-freemius.php16655, includes/class-freemius.php:21409
336
  msgid "Upgrade"
337
  msgstr "Mise à jour"
338
 
339
- #: includes/class-freemius.php:16661
340
  msgid "Start Trial"
341
  msgstr "Essai gratuit"
342
 
343
- #: includes/class-freemius.php:16663
344
  msgid "Pricing"
345
  msgstr "Tarifs"
346
 
347
- #: includes/class-freemius.php16742, includes/class-freemius.php:16744
348
  msgid "Affiliation"
349
  msgstr "Affiliation"
350
 
351
- #: includes/class-freemius.php16772, includes/class-freemius.php16774,
352
- #: templates/account.php177, templates/debug.php:326
353
  msgid "Account"
354
  msgstr "Compte"
355
 
356
- #: includes/class-freemius.php16787, includes/class-freemius.php16789,
357
  #: includes/customizer/class-fs-customizer-support-section.php:60
358
  msgid "Contact Us"
359
  msgstr "Contactez Nous"
360
 
361
- #: includes/class-freemius.php16799, includes/class-freemius.php16801,
362
- #: includes/class-freemius.php21423, templates/account.php105,
363
- #: templates/account/partials/addon.php:45
364
  msgid "Add-Ons"
365
  msgstr "Add-Ons"
366
 
367
- #: includes/class-freemius.php:16835
368
  msgctxt "ASCII arrow left icon"
369
  msgid "&#x2190;"
370
  msgstr "&#x2190;"
371
 
372
- #: includes/class-freemius.php:16835
373
  msgctxt "ASCII arrow right icon"
374
  msgid "&#x27a4;"
375
  msgstr "&#x27a4;"
376
 
377
- #: includes/class-freemius.php16837, templates/pricing.php:102
378
  msgctxt "noun"
379
  msgid "Pricing"
380
  msgstr "Tarifs"
381
 
382
- #: includes/class-freemius.php17050,
383
  #: includes/customizer/class-fs-customizer-support-section.php:67
384
  msgid "Support Forum"
385
  msgstr "Forum de Support"
386
 
387
- #: includes/class-freemius.php:17995
388
  msgid "Your email has been successfully verified - you are AWESOME!"
389
  msgstr "Votre email a été vérifié avec succès - vous êtes FORMIDABLE !"
390
 
391
- #: includes/class-freemius.php:17996
392
  msgctxt "a positive response"
393
  msgid "Right on"
394
  msgstr "Directement"
395
 
396
- #: includes/class-freemius.php:18660
 
 
 
 
 
 
 
 
397
  msgid "Your %s Add-on plan was successfully upgraded."
398
  msgstr "Votre Add-on %s a bien été mis à jour."
399
 
400
- #: includes/class-freemius.php:18662
401
  msgid "%s Add-on was successfully purchased."
402
  msgstr "L'Add-on %s a bien été acheté."
403
 
404
- #: includes/class-freemius.php:18665
405
  msgid "Download the latest version"
406
  msgstr "Télécharger la dernière version"
407
 
408
- #: includes/class-freemius.php:18751
409
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
410
  msgstr "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
411
 
412
- #: includes/class-freemius.php18757, includes/class-freemius.php19188,
413
- #: includes/class-freemius.php:19277
414
  msgid "Error received from the server:"
415
  msgstr "Une erreur a été reçu depuis le serveur :"
416
 
417
- #: includes/class-freemius.php:18767
418
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
419
  msgstr "Il semble que l'un des paramètres d'authentification soit faux. Veuillez mettre à jour votre Public Key, votre Secret Key ainsi que vote User ID et essayez à nouveau."
420
 
421
- #: includes/class-freemius.php18961, includes/class-freemius.php19193,
422
- #: includes/class-freemius.php19248, includes/class-freemius.php:19351
423
  msgctxt ""
424
  msgid "Hmm"
425
  msgstr "Hmm"
426
 
427
- #: includes/class-freemius.php:18974
428
  msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
429
  msgstr "Il semble que vous soyez encore sur la formule %s. Si vous avez mis à jour ou changer votre formule, le problème est probablement de votre côté - désolé."
430
 
431
- #: includes/class-freemius.php18975, templates/account.php107,
432
- #: templates/add-ons.php191, templates/account/partials/addon.php:47
433
  msgctxt "trial period"
434
  msgid "Trial"
435
  msgstr "Période d'essai"
436
 
437
- #: includes/class-freemius.php:18980
438
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
439
  msgstr "J'ai mis à jour mon compte mais quand j'essaie de synchroniser la licence, la formule est toujours %s."
440
 
441
- #: includes/class-freemius.php18984, includes/class-freemius.php:19043
442
  msgid "Please contact us here"
443
  msgstr "Merci de nous contacter ici"
444
 
445
- #: includes/class-freemius.php:18995
446
  msgid "Your plan was successfully activated."
447
  msgstr "Your plan was successfully activated."
448
 
449
- #: includes/class-freemius.php:18996
450
  msgid "Your plan was successfully upgraded."
451
  msgstr "Votre formule a bien été mise à jour."
452
 
453
- #: includes/class-freemius.php:19013
454
  msgid "Your plan was successfully changed to %s."
455
  msgstr "Votre formule a bien été modifié vers %s. "
456
 
457
- #: includes/class-freemius.php:19029
458
  msgid "Your license has expired. You can still continue using the free %s forever."
459
  msgstr "Votre licence a expiré. Vous pouvez toujours utiliser la version gratuite indéfiniment."
460
 
461
- #: includes/class-freemius.php:19031
462
  msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
463
  msgstr "Votre licence a expiré.%1$sFaites la mise à jour maintenant%2$s pour continuer à utiliser le %3$s sans interruption."
464
 
465
- #: includes/class-freemius.php:19039
466
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
467
  msgstr "Votre licence a été annulé. Si vous pensez qu'il s'agit d'une erreur, merci de contacter le support."
468
 
469
- #: includes/class-freemius.php:19052
470
  msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
471
  msgstr "Votre licence a expiré. Vous pouvez toujours utiliser les fonctionnalités %s mais vous devrez renouveler votre licence pour recevoir les mises à jour et une assistance."
472
 
473
- #: includes/class-freemius.php:19075
474
  msgid "Your free trial has expired. You can still continue using all our free features."
475
  msgstr "Votre période d'essai gratuite est terminée. Vous pouvez continuer à utiliser toutes nos fonctionnalités gratuites."
476
 
477
- #: includes/class-freemius.php:19077
478
  msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
479
  msgstr "Votre période d'essai gratuite est terminée. %1$sFaites la mise à jour maintenant%2$s pour continuer à utiliser le %3$s sans interruption."
480
 
481
- #: includes/class-freemius.php:19184
482
  msgid "It looks like the license could not be activated."
483
  msgstr "Il semble que la licence ne puisse être activée."
484
 
485
- #: includes/class-freemius.php:19226
486
  msgid "Your license was successfully activated."
487
  msgstr "Votre licence a bien été activée."
488
 
489
- #: includes/class-freemius.php:19252
490
  msgid "It looks like your site currently doesn't have an active license."
491
  msgstr "Il semble que votre site n'ait pas de licence active."
492
 
493
- #: includes/class-freemius.php:19276
494
  msgid "It looks like the license deactivation failed."
495
  msgstr "Il semble que la désactivation de la licence a échoué."
496
 
497
- #: includes/class-freemius.php:19304
498
  msgid "Your license was successfully deactivated, you are back to the %s plan."
499
  msgstr "Votre licence a bien été désactivé, vous utilisez à présent la formule %s."
500
 
501
- #: includes/class-freemius.php:19305
502
  msgid "O.K"
503
  msgstr "O.K"
504
 
505
- #: includes/class-freemius.php:19358
506
  msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
507
  msgstr "Il semble que nous ayons un problème temporaire avec l'annulation de votre abonnement. Merci de réessayer dans quelques minutes."
508
 
509
- #: includes/class-freemius.php:19367
510
  msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
511
  msgstr "Votre abonnement a bien été annulé. Votre licence de la formule %s expirera dans %s."
512
 
513
- #: includes/class-freemius.php:19409
514
  msgid "You are already running the %s in a trial mode."
515
  msgstr "Vous utilisez déjà le %s en période d'essai. "
516
 
517
- #: includes/class-freemius.php:19420
518
  msgid "You already utilized a trial before."
519
  msgstr "Vous avez déjà utilisé la période d'essai."
520
 
521
- #: includes/class-freemius.php:19434
522
  msgid "Plan %s do not exist, therefore, can't start a trial."
523
  msgstr "La formule %s n'existe pas, il n'est pas possible de commencer une période d'essai."
524
 
525
- #: includes/class-freemius.php:19445
526
  msgid "Plan %s does not support a trial period."
527
  msgstr "La formule %s ne propose pas de période d'essai."
528
 
529
- #: includes/class-freemius.php:19456
530
  msgid "None of the %s's plans supports a trial period."
531
  msgstr "Aucune formule du %s ne propose de période d'essai."
532
 
533
- #: includes/class-freemius.php:19506
534
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
535
  msgstr "Il semble que vous ne soyez plus en période d'essai donc il n'y a rien à annuler :)"
536
 
537
- #: includes/class-freemius.php:19542
538
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
539
  msgstr "Il semble que nous ayons un problème temporaire pour annuler votre période d'essai. Merci de réessayer dans quelques minutes."
540
 
541
- #: includes/class-freemius.php:19561
542
  msgid "Your %s free trial was successfully cancelled."
543
  msgstr "Votre période d'essai %s a bien été annulé."
544
 
545
- #: includes/class-freemius.php:19877
546
  msgid "Version %s was released."
547
  msgstr "La version %s vient d'être publiée."
548
 
549
- #: includes/class-freemius.php:19877
550
  msgid "Please download %s."
551
  msgstr "Merci de télécharger %s."
552
 
553
- #: includes/class-freemius.php:19884
554
  msgid "the latest %s version here"
555
  msgstr "la dernière version de %s ici"
556
 
557
- #: includes/class-freemius.php:19889
558
  msgid "New"
559
  msgstr "Nouveau"
560
 
561
- #: includes/class-freemius.php:19894
562
  msgid "Seems like you got the latest release."
563
  msgstr "Il semble que vous ayez la dernière version."
564
 
565
- #: includes/class-freemius.php:19895
566
  msgid "You are all good!"
567
  msgstr "Vous êtes tout bon !"
568
 
569
- #: includes/class-freemius.php:20165
570
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
571
  msgstr "Un email de vérification vient d'être envoyé sur %s. Si vous ne le recevez pas d'ici 5 minutes, merci de vérifier dans vos spams."
572
 
573
- #: includes/class-freemius.php:20304
574
  msgid "Site successfully opted in."
575
  msgstr "Site ajouté avec succès."
576
 
577
- #: includes/class-freemius.php20305, includes/class-freemius.php:21125
578
  msgid "Awesome"
579
  msgstr "Formidable"
580
 
581
- #: includes/class-freemius.php20321, templates/forms/optout.php:32
582
  msgid "We appreciate your help in making the %s better by letting us track some usage data."
583
  msgstr "Nous vous remercions de votre aide pour améliorer le %s en nous permettant de recevoir des informations concernant son usage."
584
 
585
- #: includes/class-freemius.php:20322
586
  msgid "Thank you!"
587
  msgstr "Merci !"
588
 
589
- #: includes/class-freemius.php:20329
590
  msgid "We will no longer be sending any usage data of %s on %s to %s."
591
  msgstr "Nous n'enverrons plus d'information d'utilisation de %s sur %s à %s."
592
 
593
- #: includes/class-freemius.php:20458
594
  msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
595
  msgstr "Merci de vérifier votre messagerie, vous devriez recevoir un email via %s pour confirmer le changement de propriétaire. Pour des raisons de sécurité, vous devez confirmer le changement dans les prochaines 15 minutes. Vérifiez vos spams si vous ne recevez pas le message."
596
 
597
- #: includes/class-freemius.php:20464
598
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
599
  msgstr "Merci pour la confirmation du changement de propriétaire. Un email vient d'être envoyé à %s pour la validation finale."
600
 
601
- #: includes/class-freemius.php:20469
602
  msgid "%s is the new owner of the account."
603
  msgstr "%s est le nouveau propriétaire du compte."
604
 
605
- #: includes/class-freemius.php:20471
606
  msgctxt "as congratulations"
607
  msgid "Congrats"
608
  msgstr "Félicitations"
609
 
610
- #: includes/class-freemius.php:20491
611
  msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
612
  msgstr "Désolé, nous ne pouvons pas mettre à jour l'email. Il existe déjà un autre utilisateur avec cette adresse."
613
 
614
- #: includes/class-freemius.php:20492
615
  msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
616
  msgstr "Si vous voulez transférer la propriété du compte de %s à %s cliquez sur le bouton Changement De Propriétaire"
617
 
618
- #: includes/class-freemius.php:20499
619
  msgid "Change Ownership"
620
  msgstr "Changement De Propriétaire"
621
 
622
- #: includes/class-freemius.php:20507
623
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
624
  msgstr "Votre email a été mis à jour. Vous allez recevoir un message avec les instructions de confirmation."
625
 
626
- #: includes/class-freemius.php:20519
627
  msgid "Please provide your full name."
628
  msgstr "Merci d'indiquer vos prénom et nom."
629
 
630
- #: includes/class-freemius.php:20524
631
  msgid "Your name was successfully updated."
632
  msgstr "Votre nom a été mis à jour."
633
 
634
- #: includes/class-freemius.php:20585
635
  msgid "You have successfully updated your %s."
636
  msgstr "Votre %s a bien été mis à jour."
637
 
638
- #: includes/class-freemius.php:20725
639
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
640
  msgstr "Sachez que les informations de l'add-ons de %s sont issus d'un serveur externe."
641
 
642
- #: includes/class-freemius.php:20726
643
  msgctxt "advance notice of something that will need attention."
644
  msgid "Heads up"
645
  msgstr "Avertissement"
646
 
647
- #: includes/class-freemius.php:21165
648
  msgctxt "exclamation"
649
  msgid "Hey"
650
  msgstr "Hey"
651
 
652
- #: includes/class-freemius.php:21165
653
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
654
  msgstr "Que pensez-vous de %s ? Testez nos %s fonctionnalités premium avec %d jours d'essai gratuit."
655
 
656
- #: includes/class-freemius.php:21173
657
  msgid "No commitment for %s days - cancel anytime!"
658
  msgstr "Pas d'engagement durant %s jours - annuler quand vous voulez !"
659
 
660
- #: includes/class-freemius.php:21174
661
  msgid "No credit card required"
662
  msgstr "Pas besoin de carte bancaire"
663
 
664
- #: includes/class-freemius.php21181, templates/forms/trial-start.php:53
665
  msgctxt "call to action"
666
  msgid "Start free trial"
667
  msgstr "Commencer l'essai gratuit"
668
 
669
- #: includes/class-freemius.php:21258
670
  msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
671
  msgstr "Dites, savez-vous que %s propose un système de affiliation ? Si vous aimez le %s vous pouvez devenir notre ambassadeur et gagner de l'argent !"
672
 
673
- #: includes/class-freemius.php:21267
674
  msgid "Learn more"
675
  msgstr "En savoir plus"
676
 
677
- #: includes/class-freemius.php21447, templates/account.php474,
678
- #: templates/account.php595, templates/connect.php171,
679
- #: templates/connect.php421, templates/forms/license-activation.php25,
680
- #: templates/account/partials/addon.php:287
681
  msgid "Activate License"
682
  msgstr "Activer la licence"
683
 
684
- #: includes/class-freemius.php21448, templates/account.php543,
685
- #: templates/account.php594, templates/account/partials/site.php:256
 
686
  msgid "Change License"
687
  msgstr "Changer la licence"
688
 
689
- #: includes/class-freemius.php21539, templates/account/partials/site.php:161
690
  msgid "Opt Out"
691
  msgstr "Désinscription"
692
 
693
- #: includes/class-freemius.php21541, includes/class-freemius.php21547,
694
- #: templates/account/partials/site.php43,
695
- #: templates/account/partials/site.php:161
696
  msgid "Opt In"
697
  msgstr "Inscription"
698
 
699
- #: includes/class-freemius.php:21775
700
  msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
701
  msgstr " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
702
 
703
- #: includes/class-freemius.php:21783
704
  msgid "Activate %s features"
705
  msgstr "Activer les fonctionnalités %s"
706
 
707
- #: includes/class-freemius.php:21796
708
  msgid "Please follow these steps to complete the upgrade"
709
  msgstr "Merci de suivre ces étapes pour finaliser la mise à jour"
710
 
711
- #: includes/class-freemius.php:21800
712
  msgid "Download the latest %s version"
713
  msgstr "Télécharger la dernière version %s"
714
 
715
- #: includes/class-freemius.php:21804
716
  msgid "Upload and activate the downloaded version"
717
  msgstr "Téléverser et activer la version téléchargée"
718
 
719
- #: includes/class-freemius.php:21806
720
  msgid "How to upload and activate?"
721
  msgstr "Comment téléverser et activer ?"
722
 
723
- #: includes/class-freemius.php:21940
724
  msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
725
  msgstr "%sCliquez ici %s pour choisir les sites sur lesquels vous souhaitez activer la licence."
726
 
727
- #: includes/class-freemius.php:22101
728
  msgid "Auto installation only works for opted-in users."
729
  msgstr "L'installation automatique ne fonctionne que pour les utilisateurs qui se sont inscrits."
730
 
731
- #: includes/class-freemius.php22111, includes/class-freemius.php22144,
732
- #: includes/class-fs-plugin-updater.php1149,
733
- #: includes/class-fs-plugin-updater.php:1163
734
  msgid "Invalid module ID."
735
  msgstr "ID du module non valide."
736
 
737
- #: includes/class-freemius.php22120, includes/class-fs-plugin-updater.php:1185
738
  msgid "Premium version already active."
739
  msgstr "Version premium déjà active."
740
 
741
- #: includes/class-freemius.php:22127
742
  msgid "You do not have a valid license to access the premium version."
743
  msgstr "Vous n'avez pas de licence valide pour accéder à la version premium."
744
 
745
- #: includes/class-freemius.php:22134
746
  msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
747
  msgstr "Le plugin est un \"Serviceware\" ce qui veut dire qu'il n'a pas de version premium de code."
748
 
749
- #: includes/class-freemius.php22152, includes/class-fs-plugin-updater.php:1184
750
  msgid "Premium add-on version already installed."
751
  msgstr "La version premium de l'add-on est déjà installée."
752
 
753
- #: includes/class-freemius.php:22497
754
  msgid "View paid features"
755
  msgstr "Voir les fonctionnalités payantes"
756
 
757
- #: includes/class-freemius.php:22819
758
  msgid "Thank you so much for using %s and its add-ons!"
759
  msgstr "Merci beaucoup d'utiliser %s et ses add-ons !"
760
 
761
- #: includes/class-freemius.php:22820
762
  msgid "Thank you so much for using %s!"
763
  msgstr "Merci beaucoup d'utiliser %s !"
764
 
765
- #: includes/class-freemius.php:22826
766
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
767
  msgstr "Vous avez déjà validé notre suivi d'utilisation qui nous permet de continuer à améliorer le %s."
768
 
769
- #: includes/class-freemius.php:22830
770
  msgid "Thank you so much for using our products!"
771
  msgstr "Merci beaucoup d'utiliser nos produits !"
772
 
773
- #: includes/class-freemius.php:22831
774
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
775
  msgstr "Vous avez déjà validé notre suivi d'utilisation qui nous permet de continuer à les améliorer."
776
 
777
- #: includes/class-freemius.php:22850
778
  msgid "%s and its add-ons"
779
  msgstr "%s et ses add-ons"
780
 
781
- #: includes/class-freemius.php:22859
782
  msgid "Products"
783
  msgstr "Produits"
784
 
785
- #: includes/class-freemius.php22866, templates/connect.php:272
786
  msgid "Yes"
787
  msgstr "Oui"
788
 
789
- #: includes/class-freemius.php22867, templates/connect.php:273
790
  msgid "send me security & feature updates, educational content and offers."
791
  msgstr "envoyez moi des mises à jour de sécurité et des fonctionnalités, du contenu instructif et des offres."
792
 
793
- #: includes/class-freemius.php22868, templates/connect.php:278
794
  msgid "No"
795
  msgstr "Non"
796
 
797
- #: includes/class-freemius.php22870, templates/connect.php:280
798
  msgid "do %sNOT%s send me security & feature updates, educational content and offers."
799
  msgstr "ne %sPAS%s m'envoyer de mises à jour de sécurité ou de fonctionnalités, ni de contenu instructif, ni d'offre."
800
 
801
- #: includes/class-freemius.php:22880
802
  msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
803
  msgstr "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
804
 
805
- #: includes/class-freemius.php22882, templates/connect.php:287
806
  msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
807
  msgstr "Merci de nous indiquer si vous souhaitez que nous vous contactions pour les mises à jour de sécurité et de fonctionnalités, du contenu instructif et des offres spéciales :"
808
 
809
- #: includes/class-freemius.php:23164
810
  msgid "License key is empty."
811
  msgstr "La clé de licence est vide."
812
 
813
- #: includes/class-fs-plugin-updater.php184,
814
  #: templates/forms/premium-versions-upgrade-handler.php:57
815
  msgid "Renew license"
816
  msgstr "Renouvelez votre licence"
817
 
818
- #: includes/class-fs-plugin-updater.php189,
819
  #: templates/forms/premium-versions-upgrade-handler.php:58
820
  msgid "Buy license"
821
  msgstr "Acheter une licence"
822
 
823
- #: includes/class-fs-plugin-updater.php280,
824
- #: includes/class-fs-plugin-updater.php:313
825
  msgid "There is a %s of %s available."
826
  msgstr "Il y a une %s de %s disponible."
827
 
828
- #: includes/class-fs-plugin-updater.php282,
829
- #: includes/class-fs-plugin-updater.php:318
830
  msgid "new Beta version"
831
  msgstr "new Beta version"
832
 
833
- #: includes/class-fs-plugin-updater.php283,
834
- #: includes/class-fs-plugin-updater.php:319
835
  msgid "new version"
836
  msgstr "Nouvelle version"
837
 
838
- #: includes/class-fs-plugin-updater.php:342
839
  msgid "Important Upgrade Notice:"
840
  msgstr "Information importante de mise à jour :"
841
 
842
- #: includes/class-fs-plugin-updater.php:1214
843
  msgid "Installing plugin: %s"
844
  msgstr "Installation du plugin : %s"
845
 
846
- #: includes/class-fs-plugin-updater.php:1255
847
  msgid "Unable to connect to the filesystem. Please confirm your credentials."
848
  msgstr "Impossible de se connecter au système de fichiers. Merci de confirmer vos autorisations."
849
 
850
- #: includes/class-fs-plugin-updater.php:1437
851
  msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
852
  msgstr "Le package du plugin à télécharger ne contient pas de dossier avec le bon slug et iln'a pas été possible de le renommer."
853
 
854
- #: includes/fs-plugin-info-dialog.php:509
855
  msgid "Purchase More"
856
  msgstr "Purchase More"
857
 
858
- #: includes/fs-plugin-info-dialog.php510,
859
- #: templates/account/partials/addon.php:347
860
  msgctxt "verb"
861
  msgid "Purchase"
862
  msgstr "Acheter"
863
 
864
- #: includes/fs-plugin-info-dialog.php:514
865
  msgid "Start my free %s"
866
  msgstr "Commencer ma %s gratuite"
867
 
868
- #: includes/fs-plugin-info-dialog.php:712
869
  msgid "Install Free Version Update Now"
870
  msgstr "Installer la dernière mise à jour gratuite maintenant"
871
 
872
- #: includes/fs-plugin-info-dialog.php713, templates/account.php:534
873
  msgid "Install Update Now"
874
  msgstr "Installer la mise à jour maintenant"
875
 
876
- #: includes/fs-plugin-info-dialog.php:722
877
  msgid "Install Free Version Now"
878
  msgstr "Installer la version gratuite maintenant"
879
 
880
- #: includes/fs-plugin-info-dialog.php723, templates/add-ons.php262,
881
  #: templates/auto-installation.php111,
882
- #: templates/account/partials/addon.php327,
883
- #: templates/account/partials/addon.php:379
884
  msgid "Install Now"
885
  msgstr "Installer maintenant"
886
 
887
- #: includes/fs-plugin-info-dialog.php:739
888
  msgctxt "as download latest version"
889
  msgid "Download Latest Free Version"
890
  msgstr "Télécharger la dernière version gratuite"
891
 
892
- #: includes/fs-plugin-info-dialog.php740, templates/account.php85,
893
- #: templates/add-ons.php34, templates/account/partials/addon.php:25
894
  msgctxt "as download latest version"
895
  msgid "Download Latest"
896
  msgstr "Télécharger la dernière version"
897
 
898
- #: includes/fs-plugin-info-dialog.php755, templates/add-ons.php268,
899
- #: templates/account/partials/addon.php318,
900
- #: templates/account/partials/addon.php:373
901
  msgid "Activate this add-on"
902
  msgstr "Activer cet add-on"
903
 
904
- #: includes/fs-plugin-info-dialog.php757, templates/connect.php:418
905
  msgid "Activate Free Version"
906
  msgstr "Activez la version gratuite"
907
 
908
- #: includes/fs-plugin-info-dialog.php758, templates/account.php109,
909
- #: templates/add-ons.php269, templates/account/partials/addon.php:49
910
  msgid "Activate"
911
  msgstr "Activer"
912
 
913
- #: includes/fs-plugin-info-dialog.php:968
914
  msgctxt "Plugin installer section title"
915
  msgid "Description"
916
  msgstr "Description"
917
 
918
- #: includes/fs-plugin-info-dialog.php:969
919
  msgctxt "Plugin installer section title"
920
  msgid "Installation"
921
  msgstr "Installation"
922
 
923
- #: includes/fs-plugin-info-dialog.php:970
924
  msgctxt "Plugin installer section title"
925
  msgid "FAQ"
926
  msgstr "FAQ"
927
 
928
- #: includes/fs-plugin-info-dialog.php971,
929
  #: templates/plugin-info/description.php:55
930
  msgid "Screenshots"
931
  msgstr "Captures d'écran"
932
 
933
- #: includes/fs-plugin-info-dialog.php:972
934
  msgctxt "Plugin installer section title"
935
  msgid "Changelog"
936
  msgstr "Changelog"
937
 
938
- #: includes/fs-plugin-info-dialog.php:973
939
  msgctxt "Plugin installer section title"
940
  msgid "Reviews"
941
  msgstr "Commentaires"
942
 
943
- #: includes/fs-plugin-info-dialog.php:974
944
  msgctxt "Plugin installer section title"
945
  msgid "Other Notes"
946
  msgstr "Autres Informations"
947
 
948
- #: includes/fs-plugin-info-dialog.php:989
949
  msgctxt "Plugin installer section title"
950
  msgid "Features & Pricing"
951
  msgstr "Fonctionnalités & Tarifs"
952
 
953
- #: includes/fs-plugin-info-dialog.php:999
954
  msgid "Plugin Install"
955
  msgstr "Installation du Plugin"
956
 
957
- #: includes/fs-plugin-info-dialog.php:1071
958
  msgctxt "e.g. Professional Plan"
959
  msgid "%s Plan"
960
  msgstr "Formule %s"
961
 
962
- #: includes/fs-plugin-info-dialog.php:1097
963
  msgctxt "e.g. the best product"
964
  msgid "Best"
965
  msgstr "Best"
966
 
967
- #: includes/fs-plugin-info-dialog.php1103,
968
- #: includes/fs-plugin-info-dialog.php:1123
969
  msgctxt "as every month"
970
  msgid "Monthly"
971
  msgstr "Mensuel"
972
 
973
- #: includes/fs-plugin-info-dialog.php:1106
974
  msgctxt "as once a year"
975
  msgid "Annual"
976
  msgstr "Annuel"
977
 
978
- #: includes/fs-plugin-info-dialog.php:1109
979
  msgid "Lifetime"
980
  msgstr "À vie"
981
 
982
- #: includes/fs-plugin-info-dialog.php1123,
983
- #: includes/fs-plugin-info-dialog.php1125,
984
- #: includes/fs-plugin-info-dialog.php:1127
985
  msgctxt "e.g. billed monthly"
986
  msgid "Billed %s"
987
  msgstr "%s Facturé"
988
 
989
- #: includes/fs-plugin-info-dialog.php:1125
990
  msgctxt "as once a year"
991
  msgid "Annually"
992
  msgstr "Annuel"
993
 
994
- #: includes/fs-plugin-info-dialog.php:1127
995
  msgctxt "as once a year"
996
  msgid "Once"
997
  msgstr "Une fois"
998
 
999
- #: includes/fs-plugin-info-dialog.php:1133
1000
  msgid "Single Site License"
1001
  msgstr "Licence 1 site"
1002
 
1003
- #: includes/fs-plugin-info-dialog.php:1135
1004
  msgid "Unlimited Licenses"
1005
  msgstr "Licences sites illimités"
1006
 
1007
- #: includes/fs-plugin-info-dialog.php:1137
1008
  msgid "Up to %s Sites"
1009
  msgstr "Jusqu'à %s Sites"
1010
 
1011
- #: includes/fs-plugin-info-dialog.php1147,
1012
  #: templates/plugin-info/features.php:82
1013
  msgctxt "as monthly period"
1014
  msgid "mo"
1015
  msgstr "mois"
1016
 
1017
- #: includes/fs-plugin-info-dialog.php1154,
1018
  #: templates/plugin-info/features.php:80
1019
  msgctxt "as annual period"
1020
  msgid "year"
1021
  msgstr "année"
1022
 
1023
- #: includes/fs-plugin-info-dialog.php:1208
1024
  msgctxt "noun"
1025
  msgid "Price"
1026
  msgstr "Tarif"
1027
 
1028
- #: includes/fs-plugin-info-dialog.php:1256
1029
  msgid "Save %s"
1030
  msgstr "Économisez %s"
1031
 
1032
- #: includes/fs-plugin-info-dialog.php:1266
1033
  msgid "No commitment for %s - cancel anytime"
1034
  msgstr "Pas d'engagement durant %s - annuler quand vous voulez"
1035
 
1036
- #: includes/fs-plugin-info-dialog.php:1269
1037
  msgid "After your free %s, pay as little as %s"
1038
  msgstr "Après vos %s gratuits, payez seulement %s"
1039
 
1040
- #: includes/fs-plugin-info-dialog.php:1280
1041
  msgid "Details"
1042
  msgstr "Détails"
1043
 
1044
- #: includes/fs-plugin-info-dialog.php1284, templates/account.php96,
1045
- #: templates/debug.php203, templates/debug.php240, templates/debug.php454,
1046
  #: templates/account/partials/addon.php:36
1047
  msgctxt "product version"
1048
  msgid "Version"
1049
  msgstr "Version"
1050
 
1051
- #: includes/fs-plugin-info-dialog.php:1291
1052
  msgctxt "as the plugin author"
1053
  msgid "Author"
1054
  msgstr "Auteur"
1055
 
1056
- #: includes/fs-plugin-info-dialog.php:1298
1057
  msgid "Last Updated"
1058
  msgstr "Dernière mise à jour"
1059
 
1060
- #: includes/fs-plugin-info-dialog.php1303, templates/account.php:444
1061
  msgctxt "x-ago"
1062
  msgid "%s ago"
1063
  msgstr "Il y a %s"
1064
 
1065
- #: includes/fs-plugin-info-dialog.php:1312
1066
  msgid "Requires WordPress Version"
1067
  msgstr "Version de WordPress requise"
1068
 
1069
- #: includes/fs-plugin-info-dialog.php:1313
1070
  msgid "%s or higher"
1071
  msgstr "%s ou plus"
1072
 
1073
- #: includes/fs-plugin-info-dialog.php:1320
1074
  msgid "Compatible up to"
1075
  msgstr "Compatible jusqu'à"
1076
 
1077
- #: includes/fs-plugin-info-dialog.php:1328
1078
  msgid "Downloaded"
1079
  msgstr "Téléchargé"
1080
 
1081
- #: includes/fs-plugin-info-dialog.php:1332
1082
  msgid "%s time"
1083
  msgstr "%s fois"
1084
 
1085
- #: includes/fs-plugin-info-dialog.php:1334
1086
  msgid "%s times"
1087
  msgstr "%s fois"
1088
 
1089
- #: includes/fs-plugin-info-dialog.php:1344
1090
  msgid "WordPress.org Plugin Page"
1091
  msgstr "Page WordPress.org du plugin"
1092
 
1093
- #: includes/fs-plugin-info-dialog.php:1352
1094
  msgid "Plugin Homepage"
1095
  msgstr "Site Web du plugin"
1096
 
1097
- #: includes/fs-plugin-info-dialog.php1360,
1098
- #: includes/fs-plugin-info-dialog.php:1442
1099
  msgid "Donate to this plugin"
1100
  msgstr "Faire une donation pour ce plugin"
1101
 
1102
- #: includes/fs-plugin-info-dialog.php:1367
1103
  msgid "Average Rating"
1104
  msgstr "Note moyenne"
1105
 
1106
- #: includes/fs-plugin-info-dialog.php:1374
1107
  msgid "based on %s"
1108
  msgstr "Basé sur %s"
1109
 
1110
- #: includes/fs-plugin-info-dialog.php:1378
1111
  msgid "%s rating"
1112
  msgstr "%s notation"
1113
 
1114
- #: includes/fs-plugin-info-dialog.php:1380
1115
  msgid "%s ratings"
1116
  msgstr "%snotations "
1117
 
1118
- #: includes/fs-plugin-info-dialog.php:1395
1119
  msgid "%s star"
1120
  msgstr "%s étoile"
1121
 
1122
- #: includes/fs-plugin-info-dialog.php:1397
1123
  msgid "%s stars"
1124
  msgstr "%s étoiles"
1125
 
1126
- #: includes/fs-plugin-info-dialog.php:1408
1127
  msgid "Click to see reviews that provided a rating of %s"
1128
  msgstr "Cliquez pour voir les avis avec une notation de %s"
1129
 
1130
- #: includes/fs-plugin-info-dialog.php:1421
1131
  msgid "Contributors"
1132
  msgstr "Contributeurs"
1133
 
1134
- #: includes/fs-plugin-info-dialog.php1450,
1135
- #: includes/fs-plugin-info-dialog.php:1452
1136
  msgid "Warning"
1137
  msgstr "Attention"
1138
 
1139
- #: includes/fs-plugin-info-dialog.php:1450
1140
  msgid "This plugin has not been tested with your current version of WordPress."
1141
  msgstr "Ce plugin n'a pas été testé avec votre actuelle version de WordPress"
1142
 
1143
- #: includes/fs-plugin-info-dialog.php:1452
1144
  msgid "This plugin has not been marked as compatible with your version of WordPress."
1145
  msgstr "Ce plugin n'a pas été indiqué comme étant compatible avec votre version actuelle de WordPress"
1146
 
1147
- #: includes/fs-plugin-info-dialog.php:1471
1148
  msgid "Paid add-on must be deployed to Freemius."
1149
  msgstr "Les add-ons payant doivent être déposés sur Freemius"
1150
 
1151
- #: includes/fs-plugin-info-dialog.php:1472
1152
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1153
  msgstr "Les add-ons doivent être déposés sur WordPress.org ou Freemius."
1154
 
1155
- #: includes/fs-plugin-info-dialog.php:1493
1156
  msgid "Newer Version (%s) Installed"
1157
  msgstr "Nouvelle Version (%s) Installée"
1158
 
1159
- #: includes/fs-plugin-info-dialog.php:1494
1160
  msgid "Newer Free Version (%s) Installed"
1161
  msgstr "La nouvelle version gratuite ( %s ) a été installé"
1162
 
1163
- #: includes/fs-plugin-info-dialog.php:1501
1164
  msgid "Latest Version Installed"
1165
  msgstr "Dernière Version Installée"
1166
 
1167
- #: includes/fs-plugin-info-dialog.php:1502
1168
  msgid "Latest Free Version Installed"
1169
  msgstr "La dernière version gratuite a été installé"
1170
 
1171
- #: templates/account.php86, templates/forms/subscription-cancellation.php96,
1172
  #: templates/account/partials/addon.php26,
1173
- #: templates/account/partials/site.php:295
1174
  msgid "Downgrading your plan"
1175
  msgstr "Rétrograder votre formule"
1176
 
1177
- #: templates/account.php87, templates/forms/subscription-cancellation.php97,
1178
  #: templates/account/partials/addon.php27,
1179
- #: templates/account/partials/site.php:296
1180
  msgid "Cancelling the subscription"
1181
  msgstr "Annuler votre abonnement"
1182
 
1183
  #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
1184
  #. subscription'
1185
- #: templates/account.php:89
 
1186
  msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1187
  msgstr "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1188
 
1189
- #: templates/account.php90, templates/forms/subscription-cancellation.php100,
1190
  #: templates/account/partials/addon.php30,
1191
- #: templates/account/partials/site.php:299
1192
  msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1193
  msgstr "Veuillez noter que nous ne serons pas en mesure de garantir le maintien des prix actuels pour les renouvellements/nouveaux abonnements après une annulation. Si vous choisissez de renouveler l'abonnement manuellement à l'avenir, après une augmentation de prix, qui se produit généralement une fois par an, le prix mis à jour vous sera facturé."
1194
 
1195
- #: templates/account.php91, templates/forms/subscription-cancellation.php106,
1196
  #: templates/account/partials/addon.php:31
1197
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1198
  msgstr "Annuler la période d'essai va immédiatement bloquer les fonctionnalités premium. Souhaitez-vous continuer ?"
1199
 
1200
- #: templates/account.php92, templates/forms/subscription-cancellation.php101,
1201
  #: templates/account/partials/addon.php32,
1202
- #: templates/account/partials/site.php:300
1203
  msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1204
  msgstr "Vous pouvez toujours profiter de toutes les fonctionnalités de %s mais vous n'aurez plus accès aux mises à jour de sécurité ou de fonctionnalités de %s, ni au support."
1205
 
1206
- #: templates/account.php93, templates/forms/subscription-cancellation.php102,
1207
  #: templates/account/partials/addon.php33,
1208
- #: templates/account/partials/site.php:301
1209
  msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1210
  msgstr "Une fois la licence expirée vous pourrez toujours utiliser la version gratuite mais vous n'aurez PAS accès aux fonctionnalités de %s."
1211
 
1212
  #. translators: %s: Plan title (e.g. "Professional")
1213
- #: templates/account.php95,
1214
  #: templates/account/partials/activate-license-button.php31,
1215
  #: templates/account/partials/addon.php:35
1216
  msgid "Activate %s Plan"
1217
  msgstr "Activer la formule %s"
1218
 
1219
  #. translators: %s: Time period (e.g. Auto renews in "2 months")
1220
- #: templates/account.php98, templates/account/partials/addon.php38,
1221
- #: templates/account/partials/site.php:275
1222
  msgid "Auto renews in %s"
1223
  msgstr "Renouvellements automatique dans %s"
1224
 
1225
  #. translators: %s: Time period (e.g. Expires in "2 months")
1226
- #: templates/account.php100, templates/account/partials/addon.php40,
1227
- #: templates/account/partials/site.php:277
1228
  msgid "Expires in %s"
1229
  msgstr "Expire dans %s"
1230
 
1231
- #: templates/account.php101, templates/account/partials/addon.php:41
1232
  msgctxt "as synchronize license"
1233
  msgid "Sync License"
1234
  msgstr "Synchroniser la licence"
1235
 
1236
- #: templates/account.php102, templates/account/partials/addon.php:42
1237
  msgid "Cancel Trial"
1238
  msgstr "Annuler la période d'essai"
1239
 
1240
- #: templates/account.php103, templates/account/partials/addon.php:43
1241
  msgid "Change Plan"
1242
  msgstr "Changer de formule"
1243
 
1244
- #: templates/account.php104, templates/account/partials/addon.php:44
1245
  msgctxt "verb"
1246
  msgid "Upgrade"
1247
  msgstr "Mise à jour"
1248
 
1249
- #: templates/account.php106, templates/account/partials/addon.php46,
1250
- #: templates/account/partials/site.php:302
1251
  msgctxt "verb"
1252
  msgid "Downgrade"
1253
  msgstr "Rétrograder"
1254
 
1255
- #: templates/account.php108, templates/add-ons.php187,
1256
  #: templates/plugin-info/features.php72,
1257
- #: templates/account/partials/addon.php48,
1258
- #: templates/account/partials/site.php:31
1259
  msgid "Free"
1260
  msgstr "Gratuit"
1261
 
1262
- #: templates/account.php110, templates/debug.php373,
1263
- #: includes/customizer/class-fs-customizer-upsell-control.php106,
1264
- #: templates/account/partials/addon.php:50
1265
  msgctxt "as product pricing plan"
1266
  msgid "Plan"
1267
  msgstr "Formule"
1268
 
1269
- #: templates/account.php:111
1270
  msgid "Bundle Plan"
1271
  msgstr "Bundle Plan"
1272
 
1273
- #: templates/account.php:185
1274
  msgid "Free Trial"
1275
  msgstr "Essai gratuit"
1276
 
1277
- #: templates/account.php:196
1278
  msgid "Account Details"
1279
  msgstr "Détails du compte"
1280
 
1281
- #: templates/account.php:200
 
 
 
 
 
 
 
 
1282
  msgid "Billing & Invoices"
1283
  msgstr "Billing & Invoices"
1284
 
1285
- #: templates/account.php:210
1286
  msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1287
  msgstr "Supprimer le compte désactivera automatiquement la licence de votre formule %s afin que vous puissiez l'utiliser sur d'autres sites. Si vous voulez aussi annuler le paiement récurrent, cliquez sur le bouton \"Annuler\" et commencez par \"Rétrograder\" votre compte. Êtes-vous sûr de vouloir poursuivre la suppression ? "
1288
 
1289
- #: templates/account.php:212
1290
  msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1291
  msgstr "La suppression est permanente. Ne faites cette suppression que si vous ne souhaitez plus utiliser le %s. Êtes-vous sûr de vouloir poursuivre la suppression ?"
1292
 
1293
- #: templates/account.php:215
1294
  msgid "Delete Account"
1295
  msgstr "Supprimer le compte"
1296
 
1297
- #: templates/account.php227, templates/account/partials/addon.php211,
1298
  #: templates/account/partials/deactivate-license-button.php:35
1299
  msgid "Deactivate License"
1300
  msgstr "Désactiver la licence"
1301
 
1302
- #: templates/account.php250, templates/forms/subscription-cancellation.php:125
1303
  msgid "Are you sure you want to proceed?"
1304
  msgstr "Êtes-vous de vouloir continuer ?"
1305
 
1306
- #: templates/account.php250, templates/account/partials/addon.php:234
1307
  msgid "Cancel Subscription"
1308
  msgstr "Annuler l'abonnement"
1309
 
1310
- #: templates/account.php:278
1311
  msgctxt "as synchronize"
1312
  msgid "Sync"
1313
  msgstr "Synchroniser"
1314
 
1315
- #: templates/account.php292, templates/debug.php:489
1316
  msgid "Name"
1317
  msgstr "Nom"
1318
 
1319
- #: templates/account.php298, templates/debug.php:490
1320
  msgid "Email"
1321
  msgstr "Email"
1322
 
1323
- #: templates/account.php305, templates/debug.php372, templates/debug.php:528
1324
  msgid "User ID"
1325
  msgstr "User ID"
1326
 
1327
- #: templates/account.php322, templates/account.php608,
1328
- #: templates/account.php653, templates/debug.php238, templates/debug.php366,
1329
- #: templates/debug.php451, templates/debug.php488, templates/debug.php526,
1330
- #: templates/debug.php599, templates/account/payments.php35,
1331
  #: templates/debug/logger.php:21
1332
  msgid "ID"
1333
  msgstr "ID"
1334
 
1335
- #: templates/account.php:329
1336
  msgid "Site ID"
1337
  msgstr "Site ID"
1338
 
1339
- #: templates/account.php:332
1340
  msgid "No ID"
1341
  msgstr "ID manquant"
1342
 
1343
- #: templates/account.php337, templates/debug.php245, templates/debug.php374,
1344
- #: templates/debug.php455, templates/debug.php492,
1345
- #: templates/account/partials/site.php:219
1346
  msgid "Public Key"
1347
  msgstr "Clef publique"
1348
 
1349
- #: templates/account.php343, templates/debug.php375, templates/debug.php456,
1350
- #: templates/debug.php493, templates/account/partials/site.php:231
1351
  msgid "Secret Key"
1352
  msgstr "Clef secrête"
1353
 
1354
- #: templates/account.php:346
1355
  msgctxt "as secret encryption key missing"
1356
  msgid "No Secret"
1357
  msgstr "Clef secrète manquante"
1358
 
1359
- #: templates/account.php373, templates/account/partials/site.php112,
1360
- #: templates/account/partials/site.php:114
1361
  msgid "Trial"
1362
  msgstr "Période d'essai"
1363
 
1364
- #: templates/account.php400, templates/debug.php533,
1365
- #: templates/account/partials/site.php:248
1366
  msgid "License Key"
1367
  msgstr "Clef de licence"
1368
 
1369
- #: templates/account.php:429
1370
  msgid "Join the Beta program"
1371
  msgstr "Join the Beta program"
1372
 
1373
- #: templates/account.php:435
1374
  msgid "not verified"
1375
  msgstr "Non vérifié"
1376
 
1377
- #: templates/account.php444, templates/account/partials/addon.php:172
1378
  msgid "Expired"
1379
  msgstr "Expiré"
1380
 
1381
- #: templates/account.php:502
1382
  msgid "Premium version"
1383
  msgstr "Version premium"
1384
 
1385
- #: templates/account.php:504
1386
  msgid "Free version"
1387
  msgstr "Version gratuite"
1388
 
1389
- #: templates/account.php:516
1390
  msgid "Verify Email"
1391
  msgstr "Vérifier l'email"
1392
 
1393
- #: templates/account.php:527
1394
  msgid "Download %s Version"
1395
  msgstr "Télécharger la version %s"
1396
 
1397
- #: templates/account.php541, templates/account.php749,
1398
- #: templates/account/partials/site.php237,
1399
- #: templates/account/partials/site.php:255
1400
  msgctxt "verb"
1401
  msgid "Show"
1402
  msgstr "Afficher"
1403
 
1404
- #: templates/account.php:555
1405
  msgid "What is your %s?"
1406
  msgstr "Quel est votre %s ?"
1407
 
1408
- #: templates/account.php563, templates/account/billing.php:21
1409
  msgctxt "verb"
1410
  msgid "Edit"
1411
  msgstr "Éditer"
1412
 
1413
- #: templates/account.php:588
1414
  msgid "Sites"
1415
  msgstr "Sites"
1416
 
1417
- #: templates/account.php:599
1418
  msgid "Search by address"
1419
  msgstr "Recherche par adresse"
1420
 
1421
- #: templates/account.php609, templates/debug.php:369
1422
  msgid "Address"
1423
  msgstr "Adresse"
1424
 
1425
- #: templates/account.php:610
1426
  msgid "License"
1427
  msgstr "Licence"
1428
 
1429
- #: templates/account.php:611
1430
  msgid "Plan"
1431
  msgstr "Formule"
1432
 
1433
- #: templates/account.php:656
1434
  msgctxt "as software license"
1435
  msgid "License"
1436
  msgstr "Licence"
1437
 
1438
- #: templates/account.php:743
1439
  msgctxt "verb"
1440
  msgid "Hide"
1441
  msgstr "Cacher"
1442
 
1443
- #: templates/account.php:765
1444
  msgid "Processing"
1445
  msgstr "Traitement en cours"
1446
 
1447
- #: templates/account.php:768
1448
  msgid "Get updates for bleeding edge Beta versions of %s."
1449
  msgstr "Get updates for bleeding edge Beta versions of %s."
1450
 
1451
- #: templates/account.php:826
1452
  msgid "Cancelling %s"
1453
  msgstr "Annulation de %s"
1454
 
1455
- #: templates/account.php826, templates/account.php843,
1456
  #: templates/forms/subscription-cancellation.php27,
1457
  #: templates/forms/deactivation/form.php:133
1458
  msgid "trial"
1459
  msgstr "essai"
1460
 
1461
- #: templates/account.php841, templates/forms/deactivation/form.php:150
1462
  msgid "Cancelling %s..."
1463
  msgstr "Annulation de %s..."
1464
 
1465
- #: templates/account.php844, templates/forms/subscription-cancellation.php28,
1466
  #: templates/forms/deactivation/form.php:134
1467
  msgid "subscription"
1468
  msgstr "abonnement"
1469
 
1470
- #: templates/account.php:858
1471
  msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1472
  msgstr "Désactiver la licence bloquera toutes les fonctionnalités premium mais vous permettra d'activer la licence sur un autre site. Êtes-vous sûr de vouloir continuer ?"
1473
 
1474
- #: templates/add-ons.php:35
1475
  msgid "View details"
1476
  msgstr "Voir les détails"
1477
 
1478
- #: templates/add-ons.php:45
1479
  msgid "Add Ons for %s"
1480
  msgstr "Add Ons pour %s"
1481
 
1482
- #: templates/add-ons.php:55
1483
- msgid "We could'nt load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1484
- msgstr "Nous n'avons pas pu charger la liste des add-ons. C'est probablement une difficulté de notre côté, merci de d'essayer à nouveau dans quelques minutes."
1485
 
1486
- #: templates/add-ons.php:173
1487
  msgctxt "active add-on"
1488
  msgid "Active"
1489
  msgstr "Active"
1490
 
1491
- #: templates/add-ons.php:174
1492
  msgctxt "installed add-on"
1493
  msgid "Installed"
1494
  msgstr "Installed"
1495
 
1496
- #: templates/admin-notice.php13, templates/forms/license-activation.php209,
1497
  #: templates/forms/resend-key.php:77
1498
  msgctxt "as close a window"
1499
  msgid "Dismiss"
@@ -1545,7 +1564,7 @@ msgstr "Renvoyer l'email d'activation"
1545
  msgid "Thanks %s!"
1546
  msgstr "Merci %s !"
1547
 
1548
- #: templates/connect.php172, templates/forms/license-activation.php:44
1549
  msgid "Agree & Activate License"
1550
  msgstr "Valider & Activer la licence"
1551
 
@@ -1593,11 +1612,12 @@ msgstr "Éventuellement, vous pouvez l'ignorer pour l'instant et activer la lice
1593
  msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
1594
  msgstr "Durant le processus de mise à jour nous avons détecté %s site(s) dans le réseau que vous devez vérifier."
1595
 
1596
- #: templates/connect.php253, templates/forms/license-activation.php:47
 
1597
  msgid "License key"
1598
  msgstr "Clef de licence"
1599
 
1600
- #: templates/connect.php256, templates/forms/license-activation.php:20
1601
  msgid "Can't find your license key?"
1602
  msgstr "Vous ne trouvez pas votre clef de licence ?"
1603
 
@@ -1651,7 +1671,7 @@ msgstr "Activation, désactivation et désintallation"
1651
  msgid "Newsletter"
1652
  msgstr "Newsletter"
1653
 
1654
- #: templates/connect.php391, templates/forms/license-activation.php:39
1655
  msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
1656
  msgstr "Le %1$s va régulièrement envoyer des données à %2$s pour vérifier les mises à jour de sécurité et de fonctionnalités ainsi que pour vérifier la validité de votre licence."
1657
 
@@ -1713,7 +1733,7 @@ msgid "Debugging"
1713
  msgstr "Debuggage"
1714
 
1715
  #: templates/debug.php54, templates/debug.php250, templates/debug.php376,
1716
- #: templates/debug.php:494
1717
  msgid "Actions"
1718
  msgstr "Actions"
1719
 
@@ -1782,12 +1802,12 @@ msgstr "Plugins"
1782
  msgid "Themes"
1783
  msgstr "Thèmes"
1784
 
1785
- #: templates/debug.php239, templates/debug.php371, templates/debug.php453,
1786
  #: templates/debug/scheduled-crons.php:80
1787
  msgid "Slug"
1788
  msgstr "Slug"
1789
 
1790
- #: templates/debug.php241, templates/debug.php:452
1791
  msgid "Title"
1792
  msgstr "Titre"
1793
 
@@ -1826,114 +1846,118 @@ msgstr "Simuler la promotion d'essai"
1826
  msgid "Simulate Network Upgrade"
1827
  msgstr "Simuler la mise à jour du réseau"
1828
 
1829
- #: templates/debug.php:360
1830
  msgid "%s Installs"
1831
  msgstr "%s Installations"
1832
 
1833
- #: templates/debug.php:362
1834
  msgctxt "like websites"
1835
  msgid "Sites"
1836
  msgstr "Sites"
1837
 
1838
- #: templates/debug.php368, templates/account/partials/site.php:148
1839
  msgid "Blog ID"
1840
  msgstr "Blog ID"
1841
 
1842
- #: templates/debug.php433, templates/debug.php511,
1843
- #: templates/account/partials/addon.php:396
 
 
 
 
1844
  msgctxt "verb"
1845
  msgid "Delete"
1846
  msgstr "Supprimer"
1847
 
1848
- #: templates/debug.php:447
1849
  msgid "Add Ons of module %s"
1850
  msgstr "Add Ons du module %s"
1851
 
1852
- #: templates/debug.php:484
1853
  msgid "Users"
1854
  msgstr "Utilisateurs"
1855
 
1856
- #: templates/debug.php:491
1857
  msgid "Verified"
1858
  msgstr "Vérifié"
1859
 
1860
- #: templates/debug.php:522
1861
  msgid "%s Licenses"
1862
  msgstr "%s Licences"
1863
 
1864
- #: templates/debug.php:527
1865
  msgid "Plugin ID"
1866
  msgstr "ID du plugin"
1867
 
1868
- #: templates/debug.php:529
1869
  msgid "Plan ID"
1870
  msgstr "ID de la formule"
1871
 
1872
- #: templates/debug.php:530
1873
  msgid "Quota"
1874
  msgstr "Quota"
1875
 
1876
- #: templates/debug.php:531
1877
  msgid "Activated"
1878
  msgstr "Activé"
1879
 
1880
- #: templates/debug.php:532
1881
  msgid "Blocking"
1882
  msgstr "Bloquant"
1883
 
1884
- #: templates/debug.php:534
1885
  msgctxt "as expiration date"
1886
  msgid "Expiration"
1887
  msgstr "Expiration"
1888
 
1889
- #: templates/debug.php:557
1890
  msgid "Debug Log"
1891
  msgstr "Debug Log"
1892
 
1893
- #: templates/debug.php:561
1894
  msgid "All Types"
1895
  msgstr "Tous les types"
1896
 
1897
- #: templates/debug.php:568
1898
  msgid "All Requests"
1899
  msgstr "Toutes les demandes"
1900
 
1901
- #: templates/debug.php573, templates/debug.php602,
1902
  #: templates/debug/logger.php:25
1903
  msgid "File"
1904
  msgstr "Fichier"
1905
 
1906
- #: templates/debug.php574, templates/debug.php600,
1907
  #: templates/debug/logger.php:23
1908
  msgid "Function"
1909
  msgstr "Fonction"
1910
 
1911
- #: templates/debug.php:575
1912
  msgid "Process ID"
1913
  msgstr "ID du processus"
1914
 
1915
- #: templates/debug.php:576
1916
  msgid "Logger"
1917
  msgstr "Logger"
1918
 
1919
- #: templates/debug.php577, templates/debug.php601,
1920
  #: templates/debug/logger.php:24
1921
  msgid "Message"
1922
  msgstr "Message"
1923
 
1924
- #: templates/debug.php:579
1925
  msgid "Filter"
1926
  msgstr "Filter"
1927
 
1928
- #: templates/debug.php:587
1929
  msgid "Download"
1930
  msgstr "Téléchargement"
1931
 
1932
- #: templates/debug.php598, templates/debug/logger.php:22
1933
  msgid "Type"
1934
  msgstr "Type"
1935
 
1936
- #: templates/debug.php603, templates/debug/logger.php:26
1937
  msgid "Timestamp"
1938
  msgstr "Timestamp"
1939
 
@@ -2258,11 +2282,27 @@ msgstr "Annuler"
2258
  msgid "Become an affiliate"
2259
  msgstr "Devenir un affilié"
2260
 
2261
- #: templates/forms/license-activation.php:21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2262
  msgid "Please enter the license key that you received in the email right after the purchase:"
2263
  msgstr "Merci d'indiquer le code de licence que vous avez reçu par email juste après l'achat :"
2264
 
2265
- #: templates/forms/license-activation.php:26
2266
  msgid "Update License"
2267
  msgstr "Mettre à jour la licence"
2268
 
@@ -2329,14 +2369,6 @@ msgstr "Annuler %s - Je n'ai plus besoin de mises à jour de sécurité et de fo
2329
  msgid "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
2330
  msgstr "Ne pas annuler %s - Je veux toujours recevoir les mises à jour de sécurité et de fonctionnalités, ainsi que d'être en mesure de contacter le support."
2331
 
2332
- #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
2333
- #. subscription'
2334
- #: templates/forms/subscription-cancellation.php99,
2335
- #: templates/account/partials/addon.php29,
2336
- #: templates/account/partials/site.php:298
2337
- msgid "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2338
- msgstr "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2339
-
2340
  #: templates/forms/subscription-cancellation.php:103
2341
  msgid "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
2342
  msgstr "Une fois votre licence expirée, vous ne pourrez plus utiliser le %s, sauf si vous l'activez à nouveau avec une licence premium valide."
@@ -2423,27 +2455,33 @@ msgstr "%s restante(s)"
2423
  msgid "Last license"
2424
  msgstr "Dernière licence"
2425
 
2426
- #: templates/account/partials/addon.php:167
 
 
 
 
 
 
2427
  msgid "Cancelled"
2428
  msgstr "Annulé"
2429
 
2430
- #: templates/account/partials/addon.php:177
2431
  msgid "No expiration"
2432
  msgstr "Pas d'expiration"
2433
 
2434
- #: templates/account/partials/site.php:181
2435
  msgid "Owner Name"
2436
  msgstr "Nom du propriétaire"
2437
 
2438
- #: templates/account/partials/site.php:193
2439
  msgid "Owner Email"
2440
  msgstr "Email du propriétaire"
2441
 
2442
- #: templates/account/partials/site.php:205
2443
  msgid "Owner ID"
2444
  msgstr "ID du propriétaire"
2445
 
2446
- #: templates/account/partials/site.php:270
2447
  msgid "Subscription"
2448
  msgstr "Inscription"
2449
 
7
  "Project-Id-Version: WordPress SDK\n"
8
  "Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
9
  "POT-Creation-Date: \n"
10
+ "PO-Revision-Date: 2019-10-07 15:33+0000\n"
11
+ "Last-Translator: Vova Feldman <vova@freemius.com>\n"
12
  "Language: fr_FR\n"
13
  "Language-Team: French (France) (http://www.transifex.com/freemius/wordpress-sdk/language/fr_FR/)\n"
14
  "Content-Type: text/plain; charset=UTF-8\n"
21
  "X-Poedit-SearchPathExcluded-0: *.js\n"
22
  "X-Poedit-SourceCharset: UTF-8\n"
23
 
24
+ #: includes/class-freemius.php1880, templates/account.php:840
25
  msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
26
  msgstr "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
27
 
28
+ #: includes/class-freemius.php:1887
29
  msgid "Would you like to proceed with the update?"
30
  msgstr "Would you like to proceed with the update?"
31
 
32
+ #: includes/class-freemius.php:2095
33
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
34
  msgstr "Le SDK Freemius ne trouve pas le fichier principal du plugin. Merci de contacter sdk@freemius.com en indiquant l'erreur."
35
 
36
+ #: includes/class-freemius.php:2097
37
  msgid "Error"
38
  msgstr "Erreur"
39
 
40
+ #: includes/class-freemius.php:2491
41
  msgid "I found a better %s"
42
  msgstr "J'ai trouvé un meilleur %s"
43
 
44
+ #: includes/class-freemius.php:2493
45
  msgid "What's the %s's name?"
46
  msgstr "Quel est le nom du %s ?"
47
 
48
+ #: includes/class-freemius.php:2499
49
  msgid "It's a temporary %s. I'm just debugging an issue."
50
  msgstr "C'est une %s temporaire. Je corrige un problème."
51
 
52
+ #: includes/class-freemius.php:2501
53
  msgid "Deactivation"
54
  msgstr "Désactivation"
55
 
56
+ #: includes/class-freemius.php:2502
57
  msgid "Theme Switch"
58
  msgstr "Changement de Thème"
59
 
60
+ #: includes/class-freemius.php2511, templates/forms/resend-key.php:24
61
  msgid "Other"
62
  msgstr "Autre"
63
 
64
+ #: includes/class-freemius.php:2519
65
  msgid "I no longer need the %s"
66
  msgstr "Je n'ai plus besoin du %s"
67
 
68
+ #: includes/class-freemius.php:2526
69
  msgid "I only needed the %s for a short period"
70
  msgstr "Je n'ai besoin de %s que pour une courte période"
71
 
72
+ #: includes/class-freemius.php:2532
73
  msgid "The %s broke my site"
74
  msgstr "Le %s a cassé mon site"
75
 
76
+ #: includes/class-freemius.php:2539
77
  msgid "The %s suddenly stopped working"
78
  msgstr "Le %s a soudainement arrêté de fonctionner"
79
 
80
+ #: includes/class-freemius.php:2549
81
  msgid "I can't pay for it anymore"
82
  msgstr "Je ne peux plus payer pour ça"
83
 
84
+ #: includes/class-freemius.php:2551
85
  msgid "What price would you feel comfortable paying?"
86
  msgstr "Quel prix seriez-vous prêt à payer ?"
87
 
88
+ #: includes/class-freemius.php:2557
89
  msgid "I don't like to share my information with you"
90
  msgstr "Je ne veux pas partager mes informations avec vous"
91
 
92
+ #: includes/class-freemius.php:2578
93
  msgid "The %s didn't work"
94
  msgstr "Le %s n'a pas fonctionné"
95
 
96
+ #: includes/class-freemius.php:2588
97
  msgid "I couldn't understand how to make it work"
98
  msgstr "Je ne comprends pas comment le faire fonctionner"
99
 
100
+ #: includes/class-freemius.php:2596
101
  msgid "The %s is great, but I need specific feature that you don't support"
102
  msgstr "Le %s est bien mais j'ai besoin de fonctionnalités spécifiques que vous ne proposez pas"
103
 
104
+ #: includes/class-freemius.php:2598
105
  msgid "What feature?"
106
  msgstr "Quelle fonctionnalité ?"
107
 
108
+ #: includes/class-freemius.php:2602
109
  msgid "The %s is not working"
110
  msgstr "Le %s ne fonctionne pas"
111
 
112
+ #: includes/class-freemius.php:2604
113
  msgid "Kindly share what didn't work so we can fix it for future users..."
114
  msgstr "Merci de nous indiquer ce qui ne fonctionne pas afin que nous puissions le corriger pour les futurs utilisateurs..."
115
 
116
+ #: includes/class-freemius.php:2608
117
  msgid "It's not what I was looking for"
118
  msgstr "Ce n'est pas ce que je recherche"
119
 
120
+ #: includes/class-freemius.php:2610
121
  msgid "What you've been looking for?"
122
  msgstr "Que recherchez-vous ?"
123
 
124
+ #: includes/class-freemius.php:2614
125
  msgid "The %s didn't work as expected"
126
  msgstr "Le %s n'a pas fonctionné comme prévu"
127
 
128
+ #: includes/class-freemius.php:2616
129
  msgid "What did you expect?"
130
  msgstr "À quoi vous attendiez-vous ?"
131
 
132
+ #: includes/class-freemius.php3471, templates/debug.php:20
133
  msgid "Freemius Debug"
134
  msgstr "Débuggage Freemius"
135
 
136
+ #: includes/class-freemius.php:4223
137
  msgid "I don't know what is cURL or how to install it, help me!"
138
  msgstr "Je ne sais pas ce qu'est cURL ou comment l'installer, aidez moi !"
139
 
140
+ #: includes/class-freemius.php:4225
141
  msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
142
  msgstr "Nous allons contacter votre hébergeur afin de résoudre le problème. Vous recevrez un email à propos de %s dès que nous aurons des nouvelles."
143
 
144
+ #: includes/class-freemius.php:4232
145
  msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
146
  msgstr "Parfait, merci d'installer cURL et de l'activer dans votre fichier php.ini. De plus, recherchez l'instruction 'disable_functions' de votre fichier php.ini et désactivez les commandes commençant par 'curl_'. Pour vérifier la bonne activation, utilisez la fonction 'phpinfo()'. Une fois activé, désactivez le %s et réactivez le à nouveau."
147
 
148
+ #: includes/class-freemius.php:4337
149
  msgid "Yes - do your thing"
150
  msgstr "Oui - allez-y"
151
 
152
+ #: includes/class-freemius.php:4342
153
  msgid "No - just deactivate"
154
  msgstr "Non - désactivation seulement"
155
 
156
+ #: includes/class-freemius.php4387, includes/class-freemius.php4881,
157
+ #: includes/class-freemius.php6032, includes/class-freemius.php13153,
158
+ #: includes/class-freemius.php16558, includes/class-freemius.php16646,
159
+ #: includes/class-freemius.php16812, includes/class-freemius.php19040,
160
+ #: includes/class-freemius.php19381, includes/class-freemius.php19391,
161
+ #: includes/class-freemius.php20051, includes/class-freemius.php20924,
162
+ #: includes/class-freemius.php21039, includes/class-freemius.php21183,
163
+ #: templates/add-ons.php:57
164
  msgctxt "exclamation"
165
  msgid "Oops"
166
  msgstr "Oups"
167
 
168
+ #: includes/class-freemius.php:4456
169
  msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
170
  msgstr "Merci de nous permettre de corriger ça. Un message vient d'être envoyé à notre service technique. Nous reviendrons vers vous dès que nous aurons des nouvelles à propos de %s."
171
 
172
+ #: includes/class-freemius.php:4878
173
  msgctxt "addonX cannot run without pluginY"
174
  msgid "%s cannot run without %s."
175
  msgstr "%s ne peut pas fonctionner sans %s."
176
 
177
+ #: includes/class-freemius.php:4879
178
  msgctxt "addonX cannot run..."
179
  msgid "%s cannot run without the plugin."
180
  msgstr "%s ne peut pas fonctionner sans le plugin."
181
 
182
+ #: includes/class-freemius.php5052, includes/class-freemius.php5077,
183
+ #: includes/class-freemius.php:20122
184
  msgid "Unexpected API error. Please contact the %s's author with the following error."
185
  msgstr "Une erreur est survenue dans l'API. Merci de contacter l'auteur du %s en lui indiquant l'erreur."
186
 
187
+ #: includes/class-freemius.php:5720
188
  msgid "Premium %s version was successfully activated."
189
  msgstr "La version premium de %s a été activée avec succès."
190
 
191
+ #: includes/class-freemius.php5732, includes/class-freemius.php:7599
192
  msgctxt ""
193
  msgid "W00t"
194
  msgstr "Génial"
195
 
196
+ #: includes/class-freemius.php:5747
197
  msgid "You have a %s license."
198
  msgstr "Vous avez une license pour %s."
199
 
200
+ #: includes/class-freemius.php5751, includes/class-freemius.php15975,
201
+ #: includes/class-freemius.php15986, includes/class-freemius.php19292,
202
+ #: includes/class-freemius.php19642, includes/class-freemius.php19711,
203
+ #: includes/class-freemius.php:19876
204
  msgctxt "interjection expressing joy or exuberance"
205
  msgid "Yee-haw"
206
  msgstr "Youpi"
207
 
208
+ #: includes/class-freemius.php:6015
209
  msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
210
  msgstr "La période d'essai du %s a bien été annulé. L'add-on a été désactivé car il ne fonctionne qu'avec la version premium. Si vous souhaitez l'utiliser ultérieurement, vous devrez acheter une licence."
211
 
212
+ #: includes/class-freemius.php:6019
213
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
214
  msgstr "%sest un add-on pour la version premium. Vous devez acheter une licence avant d'activer le plugin."
215
 
216
+ #: includes/class-freemius.php6028, templates/add-ons.php186,
217
+ #: templates/account/partials/addon.php:381
218
  msgid "More information about %s"
219
  msgstr "Plus d'informations à propos de %s"
220
 
221
+ #: includes/class-freemius.php:6029
222
  msgid "Purchase License"
223
  msgstr "Acheter une licence"
224
 
225
+ #: includes/class-freemius.php6964, templates/connect.php:163
226
  msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
227
  msgstr "Vous devriez recevoir un email d'activation pour %s sur votre boîte %s. Merci de cliquer sur le bouton d'activation dans l'email pour %s."
228
 
229
+ #: includes/class-freemius.php:6968
230
  msgid "start the trial"
231
  msgstr "commencer la période d'essai"
232
 
233
+ #: includes/class-freemius.php6969, templates/connect.php:167
234
  msgid "complete the install"
235
  msgstr "compléter l'installation"
236
 
237
+ #: includes/class-freemius.php:7081
238
  msgid "You are just one step away - %s"
239
  msgstr "Il ne reste qu'une étape - %s"
240
 
241
+ #: includes/class-freemius.php:7084
242
  msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
243
  msgid "Complete \"%s\" Activation Now"
244
  msgstr "Compléter \"%s\" Activer Maintenant"
245
 
246
+ #: includes/class-freemius.php:7162
247
  msgid "We made a few tweaks to the %s, %s"
248
  msgstr "Nous avons fait quelques modifications au %s, %s"
249
 
250
+ #: includes/class-freemius.php:7166
251
  msgid "Opt in to make \"%s\" better!"
252
  msgstr "Inscrivez-vous pour améliorer \"%s\" !"
253
 
254
+ #: includes/class-freemius.php:7598
255
  msgid "The upgrade of %s was successfully completed."
256
  msgstr "La mise à jour du %s s'est terminée avec succès "
257
 
258
+ #: includes/class-freemius.php9802, includes/class-fs-plugin-updater.php1038,
259
+ #: includes/class-fs-plugin-updater.php1233,
260
+ #: includes/class-fs-plugin-updater.php1240,
261
  #: templates/auto-installation.php:32
262
  msgid "Add-On"
263
  msgstr "Add-On"
264
 
265
+ #: includes/class-freemius.php9804, templates/account.php335,
266
+ #: templates/account.php343, templates/debug.php360, templates/debug.php:551
267
  msgid "Plugin"
268
  msgstr "Plugin"
269
 
270
+ #: includes/class-freemius.php9805, templates/account.php336,
271
+ #: templates/account.php344, templates/debug.php360, templates/debug.php551,
272
  #: templates/forms/deactivation/form.php:71
273
  msgid "Theme"
274
  msgstr "Thème"
275
 
276
+ #: includes/class-freemius.php:12596
277
  msgid "An unknown error has occurred while trying to set the user's beta mode."
278
  msgstr "An unknown error has occurred while trying to set the user's beta mode."
279
 
280
+ #: includes/class-freemius.php:13020
281
  msgid "Invalid site details collection."
282
  msgstr "Récupération des détails du site non valide."
283
 
284
+ #: includes/class-freemius.php:13140
285
  msgid "We couldn't find your email address in the system, are you sure it's the right address?"
286
  msgstr "Nous ne trouvons pas votre adresse mail dans notre système, êtes-vous qu'il s'agit de la bonne adresse ?"
287
 
288
+ #: includes/class-freemius.php:13142
289
  msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
290
  msgstr "Nous ne trouvons aucune licence active associée avec cette adresse email, êtes-vous qu'il s'agit de la bonne adresse ?"
291
 
292
+ #: includes/class-freemius.php:13416
293
  msgid "Account is pending activation."
294
  msgstr "Compte en cours d'activation."
295
 
296
+ #: includes/class-freemius.php13528,
297
  #: templates/forms/premium-versions-upgrade-handler.php:47
298
  msgid "Buy a license now"
299
  msgstr "Acheter une licence maintenant"
300
 
301
+ #: includes/class-freemius.php13540,
302
  #: templates/forms/premium-versions-upgrade-handler.php:46
303
  msgid "Renew your license now"
304
  msgstr "Renouvelez votre licence maintenant"
305
 
306
+ #: includes/class-freemius.php:13544
307
  msgid "%s to access version %s security & feature updates, and support."
308
  msgstr "%s pour permettre les mises à jour de sécurité et de fonctionnalités de la version %s, et le support."
309
 
310
+ #: includes/class-freemius.php:15957
311
  msgid "%s activation was successfully completed."
312
  msgstr "L'activation de %s s'est terminée avec succès."
313
 
314
+ #: includes/class-freemius.php:15971
315
  msgid "Your account was successfully activated with the %s plan."
316
  msgstr "Votre compte a été activé avec succès avec la formule %s."
317
 
318
+ #: includes/class-freemius.php15982, includes/class-freemius.php:19707
319
  msgid "Your trial has been successfully started."
320
  msgstr "Votre période d'essai a bien démarré."
321
 
322
+ #: includes/class-freemius.php16556, includes/class-freemius.php16644,
323
+ #: includes/class-freemius.php:16810
324
  msgid "Couldn't activate %s."
325
  msgstr "Impossible d'activer %s."
326
 
327
+ #: includes/class-freemius.php16557, includes/class-freemius.php16645,
328
+ #: includes/class-freemius.php:16811
329
  msgid "Please contact us with the following message:"
330
  msgstr "Merci de nous contacter avec le message suivant :"
331
 
332
+ #: includes/class-freemius.php16641, templates/forms/data-debug-mode.php:162
333
  msgid "An unknown error has occurred."
334
  msgstr "An unknown error has occurred."
335
 
336
+ #: includes/class-freemius.php17168, includes/class-freemius.php:22082
337
  msgid "Upgrade"
338
  msgstr "Mise à jour"
339
 
340
+ #: includes/class-freemius.php:17174
341
  msgid "Start Trial"
342
  msgstr "Essai gratuit"
343
 
344
+ #: includes/class-freemius.php:17176
345
  msgid "Pricing"
346
  msgstr "Tarifs"
347
 
348
+ #: includes/class-freemius.php17256, includes/class-freemius.php:17258
349
  msgid "Affiliation"
350
  msgstr "Affiliation"
351
 
352
+ #: includes/class-freemius.php17286, includes/class-freemius.php17288,
353
+ #: templates/account.php183, templates/debug.php:326
354
  msgid "Account"
355
  msgstr "Compte"
356
 
357
+ #: includes/class-freemius.php17302, includes/class-freemius.php17304,
358
  #: includes/customizer/class-fs-customizer-support-section.php:60
359
  msgid "Contact Us"
360
  msgstr "Contactez Nous"
361
 
362
+ #: includes/class-freemius.php17315, includes/class-freemius.php17317,
363
+ #: includes/class-freemius.php22096, templates/account.php111,
364
+ #: templates/account/partials/addon.php:44
365
  msgid "Add-Ons"
366
  msgstr "Add-Ons"
367
 
368
+ #: includes/class-freemius.php:17351
369
  msgctxt "ASCII arrow left icon"
370
  msgid "&#x2190;"
371
  msgstr "&#x2190;"
372
 
373
+ #: includes/class-freemius.php:17351
374
  msgctxt "ASCII arrow right icon"
375
  msgid "&#x27a4;"
376
  msgstr "&#x27a4;"
377
 
378
+ #: includes/class-freemius.php17353, templates/pricing.php:103
379
  msgctxt "noun"
380
  msgid "Pricing"
381
  msgstr "Tarifs"
382
 
383
+ #: includes/class-freemius.php17566,
384
  #: includes/customizer/class-fs-customizer-support-section.php:67
385
  msgid "Support Forum"
386
  msgstr "Forum de Support"
387
 
388
+ #: includes/class-freemius.php:18536
389
  msgid "Your email has been successfully verified - you are AWESOME!"
390
  msgstr "Votre email a été vérifié avec succès - vous êtes FORMIDABLE !"
391
 
392
+ #: includes/class-freemius.php:18537
393
  msgctxt "a positive response"
394
  msgid "Right on"
395
  msgstr "Directement"
396
 
397
+ #: includes/class-freemius.php:19041
398
+ msgid "seems like the key you entered doesn't match our records."
399
+ msgstr "seems like the key you entered doesn't match our records."
400
+
401
+ #: includes/class-freemius.php:19065
402
+ msgid "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
403
+ msgstr "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
404
+
405
+ #: includes/class-freemius.php:19283
406
  msgid "Your %s Add-on plan was successfully upgraded."
407
  msgstr "Votre Add-on %s a bien été mis à jour."
408
 
409
+ #: includes/class-freemius.php:19285
410
  msgid "%s Add-on was successfully purchased."
411
  msgstr "L'Add-on %s a bien été acheté."
412
 
413
+ #: includes/class-freemius.php:19288
414
  msgid "Download the latest version"
415
  msgstr "Télécharger la dernière version"
416
 
417
+ #: includes/class-freemius.php:19374
418
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
419
  msgstr "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
420
 
421
+ #: includes/class-freemius.php19380, includes/class-freemius.php19390,
422
+ #: includes/class-freemius.php19835, includes/class-freemius.php:19924
423
  msgid "Error received from the server:"
424
  msgstr "Une erreur a été reçu depuis le serveur :"
425
 
426
+ #: includes/class-freemius.php:19390
427
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
428
  msgstr "Il semble que l'un des paramètres d'authentification soit faux. Veuillez mettre à jour votre Public Key, votre Secret Key ainsi que vote User ID et essayez à nouveau."
429
 
430
+ #: includes/class-freemius.php19604, includes/class-freemius.php19840,
431
+ #: includes/class-freemius.php19895, includes/class-freemius.php:19998
432
  msgctxt ""
433
  msgid "Hmm"
434
  msgstr "Hmm"
435
 
436
+ #: includes/class-freemius.php:19617
437
  msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
438
  msgstr "Il semble que vous soyez encore sur la formule %s. Si vous avez mis à jour ou changer votre formule, le problème est probablement de votre côté - désolé."
439
 
440
+ #: includes/class-freemius.php19618, templates/account.php113,
441
+ #: templates/add-ons.php250, templates/account/partials/addon.php:46
442
  msgctxt "trial period"
443
  msgid "Trial"
444
  msgstr "Période d'essai"
445
 
446
+ #: includes/class-freemius.php:19623
447
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
448
  msgstr "J'ai mis à jour mon compte mais quand j'essaie de synchroniser la licence, la formule est toujours %s."
449
 
450
+ #: includes/class-freemius.php19627, includes/class-freemius.php:19686
451
  msgid "Please contact us here"
452
  msgstr "Merci de nous contacter ici"
453
 
454
+ #: includes/class-freemius.php:19638
455
  msgid "Your plan was successfully activated."
456
  msgstr "Your plan was successfully activated."
457
 
458
+ #: includes/class-freemius.php:19639
459
  msgid "Your plan was successfully upgraded."
460
  msgstr "Votre formule a bien été mise à jour."
461
 
462
+ #: includes/class-freemius.php:19656
463
  msgid "Your plan was successfully changed to %s."
464
  msgstr "Votre formule a bien été modifié vers %s. "
465
 
466
+ #: includes/class-freemius.php:19672
467
  msgid "Your license has expired. You can still continue using the free %s forever."
468
  msgstr "Votre licence a expiré. Vous pouvez toujours utiliser la version gratuite indéfiniment."
469
 
470
+ #: includes/class-freemius.php:19674
471
  msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
472
  msgstr "Votre licence a expiré.%1$sFaites la mise à jour maintenant%2$s pour continuer à utiliser le %3$s sans interruption."
473
 
474
+ #: includes/class-freemius.php:19682
475
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
476
  msgstr "Votre licence a été annulé. Si vous pensez qu'il s'agit d'une erreur, merci de contacter le support."
477
 
478
+ #: includes/class-freemius.php:19695
479
  msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
480
  msgstr "Votre licence a expiré. Vous pouvez toujours utiliser les fonctionnalités %s mais vous devrez renouveler votre licence pour recevoir les mises à jour et une assistance."
481
 
482
+ #: includes/class-freemius.php:19721
483
  msgid "Your free trial has expired. You can still continue using all our free features."
484
  msgstr "Votre période d'essai gratuite est terminée. Vous pouvez continuer à utiliser toutes nos fonctionnalités gratuites."
485
 
486
+ #: includes/class-freemius.php:19723
487
  msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
488
  msgstr "Votre période d'essai gratuite est terminée. %1$sFaites la mise à jour maintenant%2$s pour continuer à utiliser le %3$s sans interruption."
489
 
490
+ #: includes/class-freemius.php:19831
491
  msgid "It looks like the license could not be activated."
492
  msgstr "Il semble que la licence ne puisse être activée."
493
 
494
+ #: includes/class-freemius.php:19873
495
  msgid "Your license was successfully activated."
496
  msgstr "Votre licence a bien été activée."
497
 
498
+ #: includes/class-freemius.php:19899
499
  msgid "It looks like your site currently doesn't have an active license."
500
  msgstr "Il semble que votre site n'ait pas de licence active."
501
 
502
+ #: includes/class-freemius.php:19923
503
  msgid "It looks like the license deactivation failed."
504
  msgstr "Il semble que la désactivation de la licence a échoué."
505
 
506
+ #: includes/class-freemius.php:19951
507
  msgid "Your license was successfully deactivated, you are back to the %s plan."
508
  msgstr "Votre licence a bien été désactivé, vous utilisez à présent la formule %s."
509
 
510
+ #: includes/class-freemius.php:19952
511
  msgid "O.K"
512
  msgstr "O.K"
513
 
514
+ #: includes/class-freemius.php:20005
515
  msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
516
  msgstr "Il semble que nous ayons un problème temporaire avec l'annulation de votre abonnement. Merci de réessayer dans quelques minutes."
517
 
518
+ #: includes/class-freemius.php:20014
519
  msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
520
  msgstr "Votre abonnement a bien été annulé. Votre licence de la formule %s expirera dans %s."
521
 
522
+ #: includes/class-freemius.php:20056
523
  msgid "You are already running the %s in a trial mode."
524
  msgstr "Vous utilisez déjà le %s en période d'essai. "
525
 
526
+ #: includes/class-freemius.php:20067
527
  msgid "You already utilized a trial before."
528
  msgstr "Vous avez déjà utilisé la période d'essai."
529
 
530
+ #: includes/class-freemius.php:20081
531
  msgid "Plan %s do not exist, therefore, can't start a trial."
532
  msgstr "La formule %s n'existe pas, il n'est pas possible de commencer une période d'essai."
533
 
534
+ #: includes/class-freemius.php:20092
535
  msgid "Plan %s does not support a trial period."
536
  msgstr "La formule %s ne propose pas de période d'essai."
537
 
538
+ #: includes/class-freemius.php:20103
539
  msgid "None of the %s's plans supports a trial period."
540
  msgstr "Aucune formule du %s ne propose de période d'essai."
541
 
542
+ #: includes/class-freemius.php:20153
543
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
544
  msgstr "Il semble que vous ne soyez plus en période d'essai donc il n'y a rien à annuler :)"
545
 
546
+ #: includes/class-freemius.php:20189
547
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
548
  msgstr "Il semble que nous ayons un problème temporaire pour annuler votre période d'essai. Merci de réessayer dans quelques minutes."
549
 
550
+ #: includes/class-freemius.php:20208
551
  msgid "Your %s free trial was successfully cancelled."
552
  msgstr "Votre période d'essai %s a bien été annulé."
553
 
554
+ #: includes/class-freemius.php:20524
555
  msgid "Version %s was released."
556
  msgstr "La version %s vient d'être publiée."
557
 
558
+ #: includes/class-freemius.php:20524
559
  msgid "Please download %s."
560
  msgstr "Merci de télécharger %s."
561
 
562
+ #: includes/class-freemius.php:20531
563
  msgid "the latest %s version here"
564
  msgstr "la dernière version de %s ici"
565
 
566
+ #: includes/class-freemius.php:20536
567
  msgid "New"
568
  msgstr "Nouveau"
569
 
570
+ #: includes/class-freemius.php:20541
571
  msgid "Seems like you got the latest release."
572
  msgstr "Il semble que vous ayez la dernière version."
573
 
574
+ #: includes/class-freemius.php:20542
575
  msgid "You are all good!"
576
  msgstr "Vous êtes tout bon !"
577
 
578
+ #: includes/class-freemius.php:20812
579
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
580
  msgstr "Un email de vérification vient d'être envoyé sur %s. Si vous ne le recevez pas d'ici 5 minutes, merci de vérifier dans vos spams."
581
 
582
+ #: includes/class-freemius.php:20951
583
  msgid "Site successfully opted in."
584
  msgstr "Site ajouté avec succès."
585
 
586
+ #: includes/class-freemius.php20952, includes/class-freemius.php:21792
587
  msgid "Awesome"
588
  msgstr "Formidable"
589
 
590
+ #: includes/class-freemius.php20968, templates/forms/optout.php:32
591
  msgid "We appreciate your help in making the %s better by letting us track some usage data."
592
  msgstr "Nous vous remercions de votre aide pour améliorer le %s en nous permettant de recevoir des informations concernant son usage."
593
 
594
+ #: includes/class-freemius.php:20969
595
  msgid "Thank you!"
596
  msgstr "Merci !"
597
 
598
+ #: includes/class-freemius.php:20976
599
  msgid "We will no longer be sending any usage data of %s on %s to %s."
600
  msgstr "Nous n'enverrons plus d'information d'utilisation de %s sur %s à %s."
601
 
602
+ #: includes/class-freemius.php:21105
603
  msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
604
  msgstr "Merci de vérifier votre messagerie, vous devriez recevoir un email via %s pour confirmer le changement de propriétaire. Pour des raisons de sécurité, vous devez confirmer le changement dans les prochaines 15 minutes. Vérifiez vos spams si vous ne recevez pas le message."
605
 
606
+ #: includes/class-freemius.php:21111
607
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
608
  msgstr "Merci pour la confirmation du changement de propriétaire. Un email vient d'être envoyé à %s pour la validation finale."
609
 
610
+ #: includes/class-freemius.php:21116
611
  msgid "%s is the new owner of the account."
612
  msgstr "%s est le nouveau propriétaire du compte."
613
 
614
+ #: includes/class-freemius.php:21118
615
  msgctxt "as congratulations"
616
  msgid "Congrats"
617
  msgstr "Félicitations"
618
 
619
+ #: includes/class-freemius.php:21138
620
  msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
621
  msgstr "Désolé, nous ne pouvons pas mettre à jour l'email. Il existe déjà un autre utilisateur avec cette adresse."
622
 
623
+ #: includes/class-freemius.php:21139
624
  msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
625
  msgstr "Si vous voulez transférer la propriété du compte de %s à %s cliquez sur le bouton Changement De Propriétaire"
626
 
627
+ #: includes/class-freemius.php:21146
628
  msgid "Change Ownership"
629
  msgstr "Changement De Propriétaire"
630
 
631
+ #: includes/class-freemius.php:21154
632
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
633
  msgstr "Votre email a été mis à jour. Vous allez recevoir un message avec les instructions de confirmation."
634
 
635
+ #: includes/class-freemius.php:21166
636
  msgid "Please provide your full name."
637
  msgstr "Merci d'indiquer vos prénom et nom."
638
 
639
+ #: includes/class-freemius.php:21171
640
  msgid "Your name was successfully updated."
641
  msgstr "Votre nom a été mis à jour."
642
 
643
+ #: includes/class-freemius.php:21232
644
  msgid "You have successfully updated your %s."
645
  msgstr "Votre %s a bien été mis à jour."
646
 
647
+ #: includes/class-freemius.php:21372
648
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
649
  msgstr "Sachez que les informations de l'add-ons de %s sont issus d'un serveur externe."
650
 
651
+ #: includes/class-freemius.php:21373
652
  msgctxt "advance notice of something that will need attention."
653
  msgid "Heads up"
654
  msgstr "Avertissement"
655
 
656
+ #: includes/class-freemius.php:21832
657
  msgctxt "exclamation"
658
  msgid "Hey"
659
  msgstr "Hey"
660
 
661
+ #: includes/class-freemius.php:21832
662
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
663
  msgstr "Que pensez-vous de %s ? Testez nos %s fonctionnalités premium avec %d jours d'essai gratuit."
664
 
665
+ #: includes/class-freemius.php:21840
666
  msgid "No commitment for %s days - cancel anytime!"
667
  msgstr "Pas d'engagement durant %s jours - annuler quand vous voulez !"
668
 
669
+ #: includes/class-freemius.php:21841
670
  msgid "No credit card required"
671
  msgstr "Pas besoin de carte bancaire"
672
 
673
+ #: includes/class-freemius.php21848, templates/forms/trial-start.php:53
674
  msgctxt "call to action"
675
  msgid "Start free trial"
676
  msgstr "Commencer l'essai gratuit"
677
 
678
+ #: includes/class-freemius.php:21925
679
  msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
680
  msgstr "Dites, savez-vous que %s propose un système de affiliation ? Si vous aimez le %s vous pouvez devenir notre ambassadeur et gagner de l'argent !"
681
 
682
+ #: includes/class-freemius.php:21934
683
  msgid "Learn more"
684
  msgstr "En savoir plus"
685
 
686
+ #: includes/class-freemius.php22120, templates/account.php499,
687
+ #: templates/account.php624, templates/connect.php171,
688
+ #: templates/connect.php421, templates/forms/license-activation.php27,
689
+ #: templates/account/partials/addon.php:321
690
  msgid "Activate License"
691
  msgstr "Activer la licence"
692
 
693
+ #: includes/class-freemius.php22121, templates/account.php571,
694
+ #: templates/account.php623, templates/account/partials/addon.php322,
695
+ #: templates/account/partials/site.php:271
696
  msgid "Change License"
697
  msgstr "Changer la licence"
698
 
699
+ #: includes/class-freemius.php22217, templates/account/partials/site.php:169
700
  msgid "Opt Out"
701
  msgstr "Désinscription"
702
 
703
+ #: includes/class-freemius.php22219, includes/class-freemius.php22225,
704
+ #: templates/account/partials/site.php49,
705
+ #: templates/account/partials/site.php:169
706
  msgid "Opt In"
707
  msgstr "Inscription"
708
 
709
+ #: includes/class-freemius.php:22453
710
  msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
711
  msgstr " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
712
 
713
+ #: includes/class-freemius.php:22461
714
  msgid "Activate %s features"
715
  msgstr "Activer les fonctionnalités %s"
716
 
717
+ #: includes/class-freemius.php:22474
718
  msgid "Please follow these steps to complete the upgrade"
719
  msgstr "Merci de suivre ces étapes pour finaliser la mise à jour"
720
 
721
+ #: includes/class-freemius.php:22478
722
  msgid "Download the latest %s version"
723
  msgstr "Télécharger la dernière version %s"
724
 
725
+ #: includes/class-freemius.php:22482
726
  msgid "Upload and activate the downloaded version"
727
  msgstr "Téléverser et activer la version téléchargée"
728
 
729
+ #: includes/class-freemius.php:22484
730
  msgid "How to upload and activate?"
731
  msgstr "Comment téléverser et activer ?"
732
 
733
+ #: includes/class-freemius.php:22618
734
  msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
735
  msgstr "%sCliquez ici %s pour choisir les sites sur lesquels vous souhaitez activer la licence."
736
 
737
+ #: includes/class-freemius.php:22779
738
  msgid "Auto installation only works for opted-in users."
739
  msgstr "L'installation automatique ne fonctionne que pour les utilisateurs qui se sont inscrits."
740
 
741
+ #: includes/class-freemius.php22789, includes/class-freemius.php22822,
742
+ #: includes/class-fs-plugin-updater.php1212,
743
+ #: includes/class-fs-plugin-updater.php:1226
744
  msgid "Invalid module ID."
745
  msgstr "ID du module non valide."
746
 
747
+ #: includes/class-freemius.php22798, includes/class-fs-plugin-updater.php:1248
748
  msgid "Premium version already active."
749
  msgstr "Version premium déjà active."
750
 
751
+ #: includes/class-freemius.php:22805
752
  msgid "You do not have a valid license to access the premium version."
753
  msgstr "Vous n'avez pas de licence valide pour accéder à la version premium."
754
 
755
+ #: includes/class-freemius.php:22812
756
  msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
757
  msgstr "Le plugin est un \"Serviceware\" ce qui veut dire qu'il n'a pas de version premium de code."
758
 
759
+ #: includes/class-freemius.php22830, includes/class-fs-plugin-updater.php:1247
760
  msgid "Premium add-on version already installed."
761
  msgstr "La version premium de l'add-on est déjà installée."
762
 
763
+ #: includes/class-freemius.php:23180
764
  msgid "View paid features"
765
  msgstr "Voir les fonctionnalités payantes"
766
 
767
+ #: includes/class-freemius.php:23502
768
  msgid "Thank you so much for using %s and its add-ons!"
769
  msgstr "Merci beaucoup d'utiliser %s et ses add-ons !"
770
 
771
+ #: includes/class-freemius.php:23503
772
  msgid "Thank you so much for using %s!"
773
  msgstr "Merci beaucoup d'utiliser %s !"
774
 
775
+ #: includes/class-freemius.php:23509
776
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
777
  msgstr "Vous avez déjà validé notre suivi d'utilisation qui nous permet de continuer à améliorer le %s."
778
 
779
+ #: includes/class-freemius.php:23513
780
  msgid "Thank you so much for using our products!"
781
  msgstr "Merci beaucoup d'utiliser nos produits !"
782
 
783
+ #: includes/class-freemius.php:23514
784
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
785
  msgstr "Vous avez déjà validé notre suivi d'utilisation qui nous permet de continuer à les améliorer."
786
 
787
+ #: includes/class-freemius.php:23533
788
  msgid "%s and its add-ons"
789
  msgstr "%s et ses add-ons"
790
 
791
+ #: includes/class-freemius.php:23542
792
  msgid "Products"
793
  msgstr "Produits"
794
 
795
+ #: includes/class-freemius.php23549, templates/connect.php:272
796
  msgid "Yes"
797
  msgstr "Oui"
798
 
799
+ #: includes/class-freemius.php23550, templates/connect.php:273
800
  msgid "send me security & feature updates, educational content and offers."
801
  msgstr "envoyez moi des mises à jour de sécurité et des fonctionnalités, du contenu instructif et des offres."
802
 
803
+ #: includes/class-freemius.php23551, templates/connect.php:278
804
  msgid "No"
805
  msgstr "Non"
806
 
807
+ #: includes/class-freemius.php23553, templates/connect.php:280
808
  msgid "do %sNOT%s send me security & feature updates, educational content and offers."
809
  msgstr "ne %sPAS%s m'envoyer de mises à jour de sécurité ou de fonctionnalités, ni de contenu instructif, ni d'offre."
810
 
811
+ #: includes/class-freemius.php:23563
812
  msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
813
  msgstr "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
814
 
815
+ #: includes/class-freemius.php23565, templates/connect.php:287
816
  msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
817
  msgstr "Merci de nous indiquer si vous souhaitez que nous vous contactions pour les mises à jour de sécurité et de fonctionnalités, du contenu instructif et des offres spéciales :"
818
 
819
+ #: includes/class-freemius.php:23847
820
  msgid "License key is empty."
821
  msgstr "La clé de licence est vide."
822
 
823
+ #: includes/class-fs-plugin-updater.php206,
824
  #: templates/forms/premium-versions-upgrade-handler.php:57
825
  msgid "Renew license"
826
  msgstr "Renouvelez votre licence"
827
 
828
+ #: includes/class-fs-plugin-updater.php211,
829
  #: templates/forms/premium-versions-upgrade-handler.php:58
830
  msgid "Buy license"
831
  msgstr "Acheter une licence"
832
 
833
+ #: includes/class-fs-plugin-updater.php321,
834
+ #: includes/class-fs-plugin-updater.php:354
835
  msgid "There is a %s of %s available."
836
  msgstr "Il y a une %s de %s disponible."
837
 
838
+ #: includes/class-fs-plugin-updater.php323,
839
+ #: includes/class-fs-plugin-updater.php:359
840
  msgid "new Beta version"
841
  msgstr "new Beta version"
842
 
843
+ #: includes/class-fs-plugin-updater.php324,
844
+ #: includes/class-fs-plugin-updater.php:360
845
  msgid "new version"
846
  msgstr "Nouvelle version"
847
 
848
+ #: includes/class-fs-plugin-updater.php:383
849
  msgid "Important Upgrade Notice:"
850
  msgstr "Information importante de mise à jour :"
851
 
852
+ #: includes/class-fs-plugin-updater.php:1277
853
  msgid "Installing plugin: %s"
854
  msgstr "Installation du plugin : %s"
855
 
856
+ #: includes/class-fs-plugin-updater.php:1318
857
  msgid "Unable to connect to the filesystem. Please confirm your credentials."
858
  msgstr "Impossible de se connecter au système de fichiers. Merci de confirmer vos autorisations."
859
 
860
+ #: includes/class-fs-plugin-updater.php:1500
861
  msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
862
  msgstr "Le package du plugin à télécharger ne contient pas de dossier avec le bon slug et iln'a pas été possible de le renommer."
863
 
864
+ #: includes/fs-plugin-info-dialog.php:535
865
  msgid "Purchase More"
866
  msgstr "Purchase More"
867
 
868
+ #: includes/fs-plugin-info-dialog.php536,
869
+ #: templates/account/partials/addon.php:385
870
  msgctxt "verb"
871
  msgid "Purchase"
872
  msgstr "Acheter"
873
 
874
+ #: includes/fs-plugin-info-dialog.php:540
875
  msgid "Start my free %s"
876
  msgstr "Commencer ma %s gratuite"
877
 
878
+ #: includes/fs-plugin-info-dialog.php:738
879
  msgid "Install Free Version Update Now"
880
  msgstr "Installer la dernière mise à jour gratuite maintenant"
881
 
882
+ #: includes/fs-plugin-info-dialog.php739, templates/account.php:560
883
  msgid "Install Update Now"
884
  msgstr "Installer la mise à jour maintenant"
885
 
886
+ #: includes/fs-plugin-info-dialog.php:748
887
  msgid "Install Free Version Now"
888
  msgstr "Installer la version gratuite maintenant"
889
 
890
+ #: includes/fs-plugin-info-dialog.php749, templates/add-ons.php323,
891
  #: templates/auto-installation.php111,
892
+ #: templates/account/partials/addon.php365,
893
+ #: templates/account/partials/addon.php:418
894
  msgid "Install Now"
895
  msgstr "Installer maintenant"
896
 
897
+ #: includes/fs-plugin-info-dialog.php:765
898
  msgctxt "as download latest version"
899
  msgid "Download Latest Free Version"
900
  msgstr "Télécharger la dernière version gratuite"
901
 
902
+ #: includes/fs-plugin-info-dialog.php766, templates/account.php91,
903
+ #: templates/add-ons.php37, templates/account/partials/addon.php:25
904
  msgctxt "as download latest version"
905
  msgid "Download Latest"
906
  msgstr "Télécharger la dernière version"
907
 
908
+ #: includes/fs-plugin-info-dialog.php781, templates/add-ons.php329,
909
+ #: templates/account/partials/addon.php356,
910
+ #: templates/account/partials/addon.php:412
911
  msgid "Activate this add-on"
912
  msgstr "Activer cet add-on"
913
 
914
+ #: includes/fs-plugin-info-dialog.php783, templates/connect.php:418
915
  msgid "Activate Free Version"
916
  msgstr "Activez la version gratuite"
917
 
918
+ #: includes/fs-plugin-info-dialog.php784, templates/account.php115,
919
+ #: templates/add-ons.php330, templates/account/partials/addon.php:48
920
  msgid "Activate"
921
  msgstr "Activer"
922
 
923
+ #: includes/fs-plugin-info-dialog.php:994
924
  msgctxt "Plugin installer section title"
925
  msgid "Description"
926
  msgstr "Description"
927
 
928
+ #: includes/fs-plugin-info-dialog.php:995
929
  msgctxt "Plugin installer section title"
930
  msgid "Installation"
931
  msgstr "Installation"
932
 
933
+ #: includes/fs-plugin-info-dialog.php:996
934
  msgctxt "Plugin installer section title"
935
  msgid "FAQ"
936
  msgstr "FAQ"
937
 
938
+ #: includes/fs-plugin-info-dialog.php997,
939
  #: templates/plugin-info/description.php:55
940
  msgid "Screenshots"
941
  msgstr "Captures d'écran"
942
 
943
+ #: includes/fs-plugin-info-dialog.php:998
944
  msgctxt "Plugin installer section title"
945
  msgid "Changelog"
946
  msgstr "Changelog"
947
 
948
+ #: includes/fs-plugin-info-dialog.php:999
949
  msgctxt "Plugin installer section title"
950
  msgid "Reviews"
951
  msgstr "Commentaires"
952
 
953
+ #: includes/fs-plugin-info-dialog.php:1000
954
  msgctxt "Plugin installer section title"
955
  msgid "Other Notes"
956
  msgstr "Autres Informations"
957
 
958
+ #: includes/fs-plugin-info-dialog.php:1015
959
  msgctxt "Plugin installer section title"
960
  msgid "Features & Pricing"
961
  msgstr "Fonctionnalités & Tarifs"
962
 
963
+ #: includes/fs-plugin-info-dialog.php:1025
964
  msgid "Plugin Install"
965
  msgstr "Installation du Plugin"
966
 
967
+ #: includes/fs-plugin-info-dialog.php:1097
968
  msgctxt "e.g. Professional Plan"
969
  msgid "%s Plan"
970
  msgstr "Formule %s"
971
 
972
+ #: includes/fs-plugin-info-dialog.php:1123
973
  msgctxt "e.g. the best product"
974
  msgid "Best"
975
  msgstr "Best"
976
 
977
+ #: includes/fs-plugin-info-dialog.php1129,
978
+ #: includes/fs-plugin-info-dialog.php:1149
979
  msgctxt "as every month"
980
  msgid "Monthly"
981
  msgstr "Mensuel"
982
 
983
+ #: includes/fs-plugin-info-dialog.php:1132
984
  msgctxt "as once a year"
985
  msgid "Annual"
986
  msgstr "Annuel"
987
 
988
+ #: includes/fs-plugin-info-dialog.php:1135
989
  msgid "Lifetime"
990
  msgstr "À vie"
991
 
992
+ #: includes/fs-plugin-info-dialog.php1149,
993
+ #: includes/fs-plugin-info-dialog.php1151,
994
+ #: includes/fs-plugin-info-dialog.php:1153
995
  msgctxt "e.g. billed monthly"
996
  msgid "Billed %s"
997
  msgstr "%s Facturé"
998
 
999
+ #: includes/fs-plugin-info-dialog.php:1151
1000
  msgctxt "as once a year"
1001
  msgid "Annually"
1002
  msgstr "Annuel"
1003
 
1004
+ #: includes/fs-plugin-info-dialog.php:1153
1005
  msgctxt "as once a year"
1006
  msgid "Once"
1007
  msgstr "Une fois"
1008
 
1009
+ #: includes/fs-plugin-info-dialog.php:1159
1010
  msgid "Single Site License"
1011
  msgstr "Licence 1 site"
1012
 
1013
+ #: includes/fs-plugin-info-dialog.php:1161
1014
  msgid "Unlimited Licenses"
1015
  msgstr "Licences sites illimités"
1016
 
1017
+ #: includes/fs-plugin-info-dialog.php:1163
1018
  msgid "Up to %s Sites"
1019
  msgstr "Jusqu'à %s Sites"
1020
 
1021
+ #: includes/fs-plugin-info-dialog.php1173,
1022
  #: templates/plugin-info/features.php:82
1023
  msgctxt "as monthly period"
1024
  msgid "mo"
1025
  msgstr "mois"
1026
 
1027
+ #: includes/fs-plugin-info-dialog.php1180,
1028
  #: templates/plugin-info/features.php:80
1029
  msgctxt "as annual period"
1030
  msgid "year"
1031
  msgstr "année"
1032
 
1033
+ #: includes/fs-plugin-info-dialog.php:1234
1034
  msgctxt "noun"
1035
  msgid "Price"
1036
  msgstr "Tarif"
1037
 
1038
+ #: includes/fs-plugin-info-dialog.php:1282
1039
  msgid "Save %s"
1040
  msgstr "Économisez %s"
1041
 
1042
+ #: includes/fs-plugin-info-dialog.php:1292
1043
  msgid "No commitment for %s - cancel anytime"
1044
  msgstr "Pas d'engagement durant %s - annuler quand vous voulez"
1045
 
1046
+ #: includes/fs-plugin-info-dialog.php:1295
1047
  msgid "After your free %s, pay as little as %s"
1048
  msgstr "Après vos %s gratuits, payez seulement %s"
1049
 
1050
+ #: includes/fs-plugin-info-dialog.php:1306
1051
  msgid "Details"
1052
  msgstr "Détails"
1053
 
1054
+ #: includes/fs-plugin-info-dialog.php1310, templates/account.php102,
1055
+ #: templates/debug.php203, templates/debug.php240, templates/debug.php457,
1056
  #: templates/account/partials/addon.php:36
1057
  msgctxt "product version"
1058
  msgid "Version"
1059
  msgstr "Version"
1060
 
1061
+ #: includes/fs-plugin-info-dialog.php:1317
1062
  msgctxt "as the plugin author"
1063
  msgid "Author"
1064
  msgstr "Auteur"
1065
 
1066
+ #: includes/fs-plugin-info-dialog.php:1324
1067
  msgid "Last Updated"
1068
  msgstr "Dernière mise à jour"
1069
 
1070
+ #: includes/fs-plugin-info-dialog.php1329, templates/account.php:468
1071
  msgctxt "x-ago"
1072
  msgid "%s ago"
1073
  msgstr "Il y a %s"
1074
 
1075
+ #: includes/fs-plugin-info-dialog.php:1338
1076
  msgid "Requires WordPress Version"
1077
  msgstr "Version de WordPress requise"
1078
 
1079
+ #: includes/fs-plugin-info-dialog.php:1339
1080
  msgid "%s or higher"
1081
  msgstr "%s ou plus"
1082
 
1083
+ #: includes/fs-plugin-info-dialog.php:1346
1084
  msgid "Compatible up to"
1085
  msgstr "Compatible jusqu'à"
1086
 
1087
+ #: includes/fs-plugin-info-dialog.php:1354
1088
  msgid "Downloaded"
1089
  msgstr "Téléchargé"
1090
 
1091
+ #: includes/fs-plugin-info-dialog.php:1358
1092
  msgid "%s time"
1093
  msgstr "%s fois"
1094
 
1095
+ #: includes/fs-plugin-info-dialog.php:1360
1096
  msgid "%s times"
1097
  msgstr "%s fois"
1098
 
1099
+ #: includes/fs-plugin-info-dialog.php:1370
1100
  msgid "WordPress.org Plugin Page"
1101
  msgstr "Page WordPress.org du plugin"
1102
 
1103
+ #: includes/fs-plugin-info-dialog.php:1378
1104
  msgid "Plugin Homepage"
1105
  msgstr "Site Web du plugin"
1106
 
1107
+ #: includes/fs-plugin-info-dialog.php1386,
1108
+ #: includes/fs-plugin-info-dialog.php:1468
1109
  msgid "Donate to this plugin"
1110
  msgstr "Faire une donation pour ce plugin"
1111
 
1112
+ #: includes/fs-plugin-info-dialog.php:1393
1113
  msgid "Average Rating"
1114
  msgstr "Note moyenne"
1115
 
1116
+ #: includes/fs-plugin-info-dialog.php:1400
1117
  msgid "based on %s"
1118
  msgstr "Basé sur %s"
1119
 
1120
+ #: includes/fs-plugin-info-dialog.php:1404
1121
  msgid "%s rating"
1122
  msgstr "%s notation"
1123
 
1124
+ #: includes/fs-plugin-info-dialog.php:1406
1125
  msgid "%s ratings"
1126
  msgstr "%snotations "
1127
 
1128
+ #: includes/fs-plugin-info-dialog.php:1421
1129
  msgid "%s star"
1130
  msgstr "%s étoile"
1131
 
1132
+ #: includes/fs-plugin-info-dialog.php:1423
1133
  msgid "%s stars"
1134
  msgstr "%s étoiles"
1135
 
1136
+ #: includes/fs-plugin-info-dialog.php:1434
1137
  msgid "Click to see reviews that provided a rating of %s"
1138
  msgstr "Cliquez pour voir les avis avec une notation de %s"
1139
 
1140
+ #: includes/fs-plugin-info-dialog.php:1447
1141
  msgid "Contributors"
1142
  msgstr "Contributeurs"
1143
 
1144
+ #: includes/fs-plugin-info-dialog.php1476,
1145
+ #: includes/fs-plugin-info-dialog.php:1478
1146
  msgid "Warning"
1147
  msgstr "Attention"
1148
 
1149
+ #: includes/fs-plugin-info-dialog.php:1476
1150
  msgid "This plugin has not been tested with your current version of WordPress."
1151
  msgstr "Ce plugin n'a pas été testé avec votre actuelle version de WordPress"
1152
 
1153
+ #: includes/fs-plugin-info-dialog.php:1478
1154
  msgid "This plugin has not been marked as compatible with your version of WordPress."
1155
  msgstr "Ce plugin n'a pas été indiqué comme étant compatible avec votre version actuelle de WordPress"
1156
 
1157
+ #: includes/fs-plugin-info-dialog.php:1497
1158
  msgid "Paid add-on must be deployed to Freemius."
1159
  msgstr "Les add-ons payant doivent être déposés sur Freemius"
1160
 
1161
+ #: includes/fs-plugin-info-dialog.php:1498
1162
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1163
  msgstr "Les add-ons doivent être déposés sur WordPress.org ou Freemius."
1164
 
1165
+ #: includes/fs-plugin-info-dialog.php:1519
1166
  msgid "Newer Version (%s) Installed"
1167
  msgstr "Nouvelle Version (%s) Installée"
1168
 
1169
+ #: includes/fs-plugin-info-dialog.php:1520
1170
  msgid "Newer Free Version (%s) Installed"
1171
  msgstr "La nouvelle version gratuite ( %s ) a été installé"
1172
 
1173
+ #: includes/fs-plugin-info-dialog.php:1527
1174
  msgid "Latest Version Installed"
1175
  msgstr "Dernière Version Installée"
1176
 
1177
+ #: includes/fs-plugin-info-dialog.php:1528
1178
  msgid "Latest Free Version Installed"
1179
  msgstr "La dernière version gratuite a été installé"
1180
 
1181
+ #: templates/account.php92, templates/forms/subscription-cancellation.php96,
1182
  #: templates/account/partials/addon.php26,
1183
+ #: templates/account/partials/site.php:311
1184
  msgid "Downgrading your plan"
1185
  msgstr "Rétrograder votre formule"
1186
 
1187
+ #: templates/account.php93, templates/forms/subscription-cancellation.php97,
1188
  #: templates/account/partials/addon.php27,
1189
+ #: templates/account/partials/site.php:312
1190
  msgid "Cancelling the subscription"
1191
  msgstr "Annuler votre abonnement"
1192
 
1193
  #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
1194
  #. subscription'
1195
+ #: templates/account.php95, templates/forms/subscription-cancellation.php99,
1196
+ #: templates/account/partials/site.php:314
1197
  msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1198
  msgstr "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1199
 
1200
+ #: templates/account.php96, templates/forms/subscription-cancellation.php100,
1201
  #: templates/account/partials/addon.php30,
1202
+ #: templates/account/partials/site.php:315
1203
  msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1204
  msgstr "Veuillez noter que nous ne serons pas en mesure de garantir le maintien des prix actuels pour les renouvellements/nouveaux abonnements après une annulation. Si vous choisissez de renouveler l'abonnement manuellement à l'avenir, après une augmentation de prix, qui se produit généralement une fois par an, le prix mis à jour vous sera facturé."
1205
 
1206
+ #: templates/account.php97, templates/forms/subscription-cancellation.php106,
1207
  #: templates/account/partials/addon.php:31
1208
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1209
  msgstr "Annuler la période d'essai va immédiatement bloquer les fonctionnalités premium. Souhaitez-vous continuer ?"
1210
 
1211
+ #: templates/account.php98, templates/forms/subscription-cancellation.php101,
1212
  #: templates/account/partials/addon.php32,
1213
+ #: templates/account/partials/site.php:316
1214
  msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1215
  msgstr "Vous pouvez toujours profiter de toutes les fonctionnalités de %s mais vous n'aurez plus accès aux mises à jour de sécurité ou de fonctionnalités de %s, ni au support."
1216
 
1217
+ #: templates/account.php99, templates/forms/subscription-cancellation.php102,
1218
  #: templates/account/partials/addon.php33,
1219
+ #: templates/account/partials/site.php:317
1220
  msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1221
  msgstr "Une fois la licence expirée vous pourrez toujours utiliser la version gratuite mais vous n'aurez PAS accès aux fonctionnalités de %s."
1222
 
1223
  #. translators: %s: Plan title (e.g. "Professional")
1224
+ #: templates/account.php101,
1225
  #: templates/account/partials/activate-license-button.php31,
1226
  #: templates/account/partials/addon.php:35
1227
  msgid "Activate %s Plan"
1228
  msgstr "Activer la formule %s"
1229
 
1230
  #. translators: %s: Time period (e.g. Auto renews in "2 months")
1231
+ #: templates/account.php104, templates/account/partials/addon.php38,
1232
+ #: templates/account/partials/site.php:291
1233
  msgid "Auto renews in %s"
1234
  msgstr "Renouvellements automatique dans %s"
1235
 
1236
  #. translators: %s: Time period (e.g. Expires in "2 months")
1237
+ #: templates/account.php106, templates/account/partials/addon.php40,
1238
+ #: templates/account/partials/site.php:293
1239
  msgid "Expires in %s"
1240
  msgstr "Expire dans %s"
1241
 
1242
+ #: templates/account.php:107
1243
  msgctxt "as synchronize license"
1244
  msgid "Sync License"
1245
  msgstr "Synchroniser la licence"
1246
 
1247
+ #: templates/account.php108, templates/account/partials/addon.php:41
1248
  msgid "Cancel Trial"
1249
  msgstr "Annuler la période d'essai"
1250
 
1251
+ #: templates/account.php109, templates/account/partials/addon.php:42
1252
  msgid "Change Plan"
1253
  msgstr "Changer de formule"
1254
 
1255
+ #: templates/account.php110, templates/account/partials/addon.php:43
1256
  msgctxt "verb"
1257
  msgid "Upgrade"
1258
  msgstr "Mise à jour"
1259
 
1260
+ #: templates/account.php112, templates/account/partials/addon.php45,
1261
+ #: templates/account/partials/site.php:318
1262
  msgctxt "verb"
1263
  msgid "Downgrade"
1264
  msgstr "Rétrograder"
1265
 
1266
+ #: templates/account.php114, templates/add-ons.php246,
1267
  #: templates/plugin-info/features.php72,
1268
+ #: templates/account/partials/addon.php47,
1269
+ #: templates/account/partials/site.php:33
1270
  msgid "Free"
1271
  msgstr "Gratuit"
1272
 
1273
+ #: templates/account.php116, templates/debug.php373,
1274
+ #: includes/customizer/class-fs-customizer-upsell-control.php110,
1275
+ #: templates/account/partials/addon.php:49
1276
  msgctxt "as product pricing plan"
1277
  msgid "Plan"
1278
  msgstr "Formule"
1279
 
1280
+ #: templates/account.php:117
1281
  msgid "Bundle Plan"
1282
  msgstr "Bundle Plan"
1283
 
1284
+ #: templates/account.php:191
1285
  msgid "Free Trial"
1286
  msgstr "Essai gratuit"
1287
 
1288
+ #: templates/account.php:202
1289
  msgid "Account Details"
1290
  msgstr "Détails du compte"
1291
 
1292
+ #: templates/account.php209, templates/forms/data-debug-mode.php:33
1293
+ msgid "Start Debug"
1294
+ msgstr "Start Debug"
1295
+
1296
+ #: templates/account.php:211
1297
+ msgid "Stop Debug"
1298
+ msgstr "Stop Debug"
1299
+
1300
+ #: templates/account.php:218
1301
  msgid "Billing & Invoices"
1302
  msgstr "Billing & Invoices"
1303
 
1304
+ #: templates/account.php:229
1305
  msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1306
  msgstr "Supprimer le compte désactivera automatiquement la licence de votre formule %s afin que vous puissiez l'utiliser sur d'autres sites. Si vous voulez aussi annuler le paiement récurrent, cliquez sur le bouton \"Annuler\" et commencez par \"Rétrograder\" votre compte. Êtes-vous sûr de vouloir poursuivre la suppression ? "
1307
 
1308
+ #: templates/account.php:231
1309
  msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1310
  msgstr "La suppression est permanente. Ne faites cette suppression que si vous ne souhaitez plus utiliser le %s. Êtes-vous sûr de vouloir poursuivre la suppression ?"
1311
 
1312
+ #: templates/account.php:234
1313
  msgid "Delete Account"
1314
  msgstr "Supprimer le compte"
1315
 
1316
+ #: templates/account.php246, templates/account/partials/addon.php231,
1317
  #: templates/account/partials/deactivate-license-button.php:35
1318
  msgid "Deactivate License"
1319
  msgstr "Désactiver la licence"
1320
 
1321
+ #: templates/account.php269, templates/forms/subscription-cancellation.php:125
1322
  msgid "Are you sure you want to proceed?"
1323
  msgstr "Êtes-vous de vouloir continuer ?"
1324
 
1325
+ #: templates/account.php269, templates/account/partials/addon.php:255
1326
  msgid "Cancel Subscription"
1327
  msgstr "Annuler l'abonnement"
1328
 
1329
+ #: templates/account.php298, templates/account/partials/addon.php:340
1330
  msgctxt "as synchronize"
1331
  msgid "Sync"
1332
  msgstr "Synchroniser"
1333
 
1334
+ #: templates/account.php313, templates/debug.php:507
1335
  msgid "Name"
1336
  msgstr "Nom"
1337
 
1338
+ #: templates/account.php319, templates/debug.php:508
1339
  msgid "Email"
1340
  msgstr "Email"
1341
 
1342
+ #: templates/account.php326, templates/debug.php371, templates/debug.php:557
1343
  msgid "User ID"
1344
  msgstr "User ID"
1345
 
1346
+ #: templates/account.php344, templates/account.php637,
1347
+ #: templates/account.php682, templates/debug.php238, templates/debug.php365,
1348
+ #: templates/debug.php454, templates/debug.php506, templates/debug.php555,
1349
+ #: templates/debug.php632, templates/account/payments.php35,
1350
  #: templates/debug/logger.php:21
1351
  msgid "ID"
1352
  msgstr "ID"
1353
 
1354
+ #: templates/account.php:351
1355
  msgid "Site ID"
1356
  msgstr "Site ID"
1357
 
1358
+ #: templates/account.php:354
1359
  msgid "No ID"
1360
  msgstr "ID manquant"
1361
 
1362
+ #: templates/account.php359, templates/debug.php245, templates/debug.php374,
1363
+ #: templates/debug.php458, templates/debug.php510,
1364
+ #: templates/account/partials/site.php:227
1365
  msgid "Public Key"
1366
  msgstr "Clef publique"
1367
 
1368
+ #: templates/account.php365, templates/debug.php375, templates/debug.php459,
1369
+ #: templates/debug.php511, templates/account/partials/site.php:239
1370
  msgid "Secret Key"
1371
  msgstr "Clef secrête"
1372
 
1373
+ #: templates/account.php:368
1374
  msgctxt "as secret encryption key missing"
1375
  msgid "No Secret"
1376
  msgstr "Clef secrète manquante"
1377
 
1378
+ #: templates/account.php395, templates/account/partials/site.php120,
1379
+ #: templates/account/partials/site.php:122
1380
  msgid "Trial"
1381
  msgstr "Période d'essai"
1382
 
1383
+ #: templates/account.php422, templates/debug.php562,
1384
+ #: templates/account/partials/site.php:260
1385
  msgid "License Key"
1386
  msgstr "Clef de licence"
1387
 
1388
+ #: templates/account.php:453
1389
  msgid "Join the Beta program"
1390
  msgstr "Join the Beta program"
1391
 
1392
+ #: templates/account.php:459
1393
  msgid "not verified"
1394
  msgstr "Non vérifié"
1395
 
1396
+ #: templates/account.php468, templates/account/partials/addon.php:190
1397
  msgid "Expired"
1398
  msgstr "Expiré"
1399
 
1400
+ #: templates/account.php:528
1401
  msgid "Premium version"
1402
  msgstr "Version premium"
1403
 
1404
+ #: templates/account.php:530
1405
  msgid "Free version"
1406
  msgstr "Version gratuite"
1407
 
1408
+ #: templates/account.php:542
1409
  msgid "Verify Email"
1410
  msgstr "Vérifier l'email"
1411
 
1412
+ #: templates/account.php:553
1413
  msgid "Download %s Version"
1414
  msgstr "Télécharger la version %s"
1415
 
1416
+ #: templates/account.php568, templates/account.php820,
1417
+ #: templates/account/partials/site.php248,
1418
+ #: templates/account/partials/site.php:270
1419
  msgctxt "verb"
1420
  msgid "Show"
1421
  msgstr "Afficher"
1422
 
1423
+ #: templates/account.php:583
1424
  msgid "What is your %s?"
1425
  msgstr "Quel est votre %s ?"
1426
 
1427
+ #: templates/account.php591, templates/account/billing.php:21
1428
  msgctxt "verb"
1429
  msgid "Edit"
1430
  msgstr "Éditer"
1431
 
1432
+ #: templates/account.php:616
1433
  msgid "Sites"
1434
  msgstr "Sites"
1435
 
1436
+ #: templates/account.php:629
1437
  msgid "Search by address"
1438
  msgstr "Recherche par adresse"
1439
 
1440
+ #: templates/account.php638, templates/debug.php:368
1441
  msgid "Address"
1442
  msgstr "Adresse"
1443
 
1444
+ #: templates/account.php:639
1445
  msgid "License"
1446
  msgstr "Licence"
1447
 
1448
+ #: templates/account.php:640
1449
  msgid "Plan"
1450
  msgstr "Formule"
1451
 
1452
+ #: templates/account.php:685
1453
  msgctxt "as software license"
1454
  msgid "License"
1455
  msgstr "Licence"
1456
 
1457
+ #: templates/account.php:814
1458
  msgctxt "verb"
1459
  msgid "Hide"
1460
  msgstr "Cacher"
1461
 
1462
+ #: templates/account.php836, templates/forms/data-debug-mode.php:31
1463
  msgid "Processing"
1464
  msgstr "Traitement en cours"
1465
 
1466
+ #: templates/account.php:839
1467
  msgid "Get updates for bleeding edge Beta versions of %s."
1468
  msgstr "Get updates for bleeding edge Beta versions of %s."
1469
 
1470
+ #: templates/account.php:897
1471
  msgid "Cancelling %s"
1472
  msgstr "Annulation de %s"
1473
 
1474
+ #: templates/account.php897, templates/account.php914,
1475
  #: templates/forms/subscription-cancellation.php27,
1476
  #: templates/forms/deactivation/form.php:133
1477
  msgid "trial"
1478
  msgstr "essai"
1479
 
1480
+ #: templates/account.php912, templates/forms/deactivation/form.php:150
1481
  msgid "Cancelling %s..."
1482
  msgstr "Annulation de %s..."
1483
 
1484
+ #: templates/account.php915, templates/forms/subscription-cancellation.php28,
1485
  #: templates/forms/deactivation/form.php:134
1486
  msgid "subscription"
1487
  msgstr "abonnement"
1488
 
1489
+ #: templates/account.php:929
1490
  msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1491
  msgstr "Désactiver la licence bloquera toutes les fonctionnalités premium mais vous permettra d'activer la licence sur un autre site. Êtes-vous sûr de vouloir continuer ?"
1492
 
1493
+ #: templates/add-ons.php:38
1494
  msgid "View details"
1495
  msgstr "Voir les détails"
1496
 
1497
+ #: templates/add-ons.php:48
1498
  msgid "Add Ons for %s"
1499
  msgstr "Add Ons pour %s"
1500
 
1501
+ #: templates/add-ons.php:58
1502
+ msgid "We couldn't load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1503
+ msgstr "We couldn't load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1504
 
1505
+ #: templates/add-ons.php:229
1506
  msgctxt "active add-on"
1507
  msgid "Active"
1508
  msgstr "Active"
1509
 
1510
+ #: templates/add-ons.php:230
1511
  msgctxt "installed add-on"
1512
  msgid "Installed"
1513
  msgstr "Installed"
1514
 
1515
+ #: templates/admin-notice.php13, templates/forms/license-activation.php207,
1516
  #: templates/forms/resend-key.php:77
1517
  msgctxt "as close a window"
1518
  msgid "Dismiss"
1564
  msgid "Thanks %s!"
1565
  msgstr "Merci %s !"
1566
 
1567
+ #: templates/connect.php172, templates/forms/license-activation.php:46
1568
  msgid "Agree & Activate License"
1569
  msgstr "Valider & Activer la licence"
1570
 
1612
  msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
1613
  msgstr "Durant le processus de mise à jour nous avons détecté %s site(s) dans le réseau que vous devez vérifier."
1614
 
1615
+ #: templates/connect.php253, templates/forms/data-debug-mode.php35,
1616
+ #: templates/forms/license-activation.php:49
1617
  msgid "License key"
1618
  msgstr "Clef de licence"
1619
 
1620
+ #: templates/connect.php256, templates/forms/license-activation.php:22
1621
  msgid "Can't find your license key?"
1622
  msgstr "Vous ne trouvez pas votre clef de licence ?"
1623
 
1671
  msgid "Newsletter"
1672
  msgstr "Newsletter"
1673
 
1674
+ #: templates/connect.php391, templates/forms/license-activation.php:41
1675
  msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
1676
  msgstr "Le %1$s va régulièrement envoyer des données à %2$s pour vérifier les mises à jour de sécurité et de fonctionnalités ainsi que pour vérifier la validité de votre licence."
1677
 
1733
  msgstr "Debuggage"
1734
 
1735
  #: templates/debug.php54, templates/debug.php250, templates/debug.php376,
1736
+ #: templates/debug.php:512
1737
  msgid "Actions"
1738
  msgstr "Actions"
1739
 
1802
  msgid "Themes"
1803
  msgstr "Thèmes"
1804
 
1805
+ #: templates/debug.php239, templates/debug.php370, templates/debug.php456,
1806
  #: templates/debug/scheduled-crons.php:80
1807
  msgid "Slug"
1808
  msgstr "Slug"
1809
 
1810
+ #: templates/debug.php241, templates/debug.php:455
1811
  msgid "Title"
1812
  msgstr "Titre"
1813
 
1846
  msgid "Simulate Network Upgrade"
1847
  msgstr "Simuler la mise à jour du réseau"
1848
 
1849
+ #: templates/debug.php:359
1850
  msgid "%s Installs"
1851
  msgstr "%s Installations"
1852
 
1853
+ #: templates/debug.php:361
1854
  msgctxt "like websites"
1855
  msgid "Sites"
1856
  msgstr "Sites"
1857
 
1858
+ #: templates/debug.php367, templates/account/partials/site.php:156
1859
  msgid "Blog ID"
1860
  msgstr "Blog ID"
1861
 
1862
+ #: templates/debug.php:372
1863
+ msgid "License ID"
1864
+ msgstr "License ID"
1865
+
1866
+ #: templates/debug.php436, templates/debug.php535,
1867
+ #: templates/account/partials/addon.php:435
1868
  msgctxt "verb"
1869
  msgid "Delete"
1870
  msgstr "Supprimer"
1871
 
1872
+ #: templates/debug.php:450
1873
  msgid "Add Ons of module %s"
1874
  msgstr "Add Ons du module %s"
1875
 
1876
+ #: templates/debug.php:502
1877
  msgid "Users"
1878
  msgstr "Utilisateurs"
1879
 
1880
+ #: templates/debug.php:509
1881
  msgid "Verified"
1882
  msgstr "Vérifié"
1883
 
1884
+ #: templates/debug.php:551
1885
  msgid "%s Licenses"
1886
  msgstr "%s Licences"
1887
 
1888
+ #: templates/debug.php:556
1889
  msgid "Plugin ID"
1890
  msgstr "ID du plugin"
1891
 
1892
+ #: templates/debug.php:558
1893
  msgid "Plan ID"
1894
  msgstr "ID de la formule"
1895
 
1896
+ #: templates/debug.php:559
1897
  msgid "Quota"
1898
  msgstr "Quota"
1899
 
1900
+ #: templates/debug.php:560
1901
  msgid "Activated"
1902
  msgstr "Activé"
1903
 
1904
+ #: templates/debug.php:561
1905
  msgid "Blocking"
1906
  msgstr "Bloquant"
1907
 
1908
+ #: templates/debug.php:563
1909
  msgctxt "as expiration date"
1910
  msgid "Expiration"
1911
  msgstr "Expiration"
1912
 
1913
+ #: templates/debug.php:590
1914
  msgid "Debug Log"
1915
  msgstr "Debug Log"
1916
 
1917
+ #: templates/debug.php:594
1918
  msgid "All Types"
1919
  msgstr "Tous les types"
1920
 
1921
+ #: templates/debug.php:601
1922
  msgid "All Requests"
1923
  msgstr "Toutes les demandes"
1924
 
1925
+ #: templates/debug.php606, templates/debug.php635,
1926
  #: templates/debug/logger.php:25
1927
  msgid "File"
1928
  msgstr "Fichier"
1929
 
1930
+ #: templates/debug.php607, templates/debug.php633,
1931
  #: templates/debug/logger.php:23
1932
  msgid "Function"
1933
  msgstr "Fonction"
1934
 
1935
+ #: templates/debug.php:608
1936
  msgid "Process ID"
1937
  msgstr "ID du processus"
1938
 
1939
+ #: templates/debug.php:609
1940
  msgid "Logger"
1941
  msgstr "Logger"
1942
 
1943
+ #: templates/debug.php610, templates/debug.php634,
1944
  #: templates/debug/logger.php:24
1945
  msgid "Message"
1946
  msgstr "Message"
1947
 
1948
+ #: templates/debug.php:612
1949
  msgid "Filter"
1950
  msgstr "Filter"
1951
 
1952
+ #: templates/debug.php:620
1953
  msgid "Download"
1954
  msgstr "Téléchargement"
1955
 
1956
+ #: templates/debug.php631, templates/debug/logger.php:22
1957
  msgid "Type"
1958
  msgstr "Type"
1959
 
1960
+ #: templates/debug.php636, templates/debug/logger.php:26
1961
  msgid "Timestamp"
1962
  msgstr "Timestamp"
1963
 
2282
  msgid "Become an affiliate"
2283
  msgstr "Devenir un affilié"
2284
 
2285
+ #: templates/forms/data-debug-mode.php:25
2286
+ msgid "Please enter the license key to enable the debug mode:"
2287
+ msgstr "Please enter the license key to enable the debug mode:"
2288
+
2289
+ #: templates/forms/data-debug-mode.php:27
2290
+ msgid "To enter the debug mode, please enter the secret key of the license owner (UserID = %d), which you can find in your \"My Profile\" section of your User Dashboard:"
2291
+ msgstr "To enter the debug mode, please enter the secret key of the license owner (UserID = %d), which you can find in your \"My Profile\" section of your User Dashboard:"
2292
+
2293
+ #: templates/forms/data-debug-mode.php:32
2294
+ msgid "Submit"
2295
+ msgstr "Submit"
2296
+
2297
+ #: templates/forms/data-debug-mode.php:36
2298
+ msgid "User key"
2299
+ msgstr "User key"
2300
+
2301
+ #: templates/forms/license-activation.php:23
2302
  msgid "Please enter the license key that you received in the email right after the purchase:"
2303
  msgstr "Merci d'indiquer le code de licence que vous avez reçu par email juste après l'achat :"
2304
 
2305
+ #: templates/forms/license-activation.php:28
2306
  msgid "Update License"
2307
  msgstr "Mettre à jour la licence"
2308
 
2369
  msgid "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
2370
  msgstr "Ne pas annuler %s - Je veux toujours recevoir les mises à jour de sécurité et de fonctionnalités, ainsi que d'être en mesure de contacter le support."
2371
 
 
 
 
 
 
 
 
 
2372
  #: templates/forms/subscription-cancellation.php:103
2373
  msgid "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
2374
  msgstr "Une fois votre licence expirée, vous ne pourrez plus utiliser le %s, sauf si vous l'activez à nouveau avec une licence premium valide."
2455
  msgid "Last license"
2456
  msgstr "Dernière licence"
2457
 
2458
+ #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
2459
+ #. subscription'
2460
+ #: templates/account/partials/addon.php:29
2461
+ msgid "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2462
+ msgstr "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2463
+
2464
+ #: templates/account/partials/addon.php:185
2465
  msgid "Cancelled"
2466
  msgstr "Annulé"
2467
 
2468
+ #: templates/account/partials/addon.php:195
2469
  msgid "No expiration"
2470
  msgstr "Pas d'expiration"
2471
 
2472
+ #: templates/account/partials/site.php:189
2473
  msgid "Owner Name"
2474
  msgstr "Nom du propriétaire"
2475
 
2476
+ #: templates/account/partials/site.php:201
2477
  msgid "Owner Email"
2478
  msgstr "Email du propriétaire"
2479
 
2480
+ #: templates/account/partials/site.php:213
2481
  msgid "Owner ID"
2482
  msgstr "ID du propriétaire"
2483
 
2484
+ #: templates/account/partials/site.php:286
2485
  msgid "Subscription"
2486
  msgstr "Inscription"
2487
 
vendor/freemius/wordpress-sdk/languages/freemius-he_IL.mo CHANGED
Binary file
vendor/freemius/wordpress-sdk/languages/freemius-he_IL.po CHANGED
@@ -8,7 +8,7 @@ msgstr ""
8
  "Project-Id-Version: WordPress SDK\n"
9
  "Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
10
  "POT-Creation-Date: \n"
11
- "PO-Revision-Date: 2019-06-05 13:40+0000\n"
12
  "Last-Translator: Vova Feldman <vova@freemius.com>\n"
13
  "Language: he_IL\n"
14
  "Language-Team: Hebrew (Israel) (http://www.transifex.com/freemius/wordpress-sdk/language/he_IL/)\n"
@@ -22,1479 +22,1498 @@ msgstr ""
22
  "X-Poedit-SearchPathExcluded-0: *.js\n"
23
  "X-Poedit-SourceCharset: UTF-8\n"
24
 
25
- #: includes/class-freemius.php1838, templates/account.php:769
26
  msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
27
  msgstr "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
28
 
29
- #: includes/class-freemius.php:1845
30
  msgid "Would you like to proceed with the update?"
31
  msgstr "Would you like to proceed with the update?"
32
 
33
- #: includes/class-freemius.php:2053
34
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
35
  msgstr "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
36
 
37
- #: includes/class-freemius.php:2055
38
  msgid "Error"
39
  msgstr "שגיאה"
40
 
41
- #: includes/class-freemius.php:2445
42
  msgid "I found a better %s"
43
  msgstr "מצאתי %s יותר טוב"
44
 
45
- #: includes/class-freemius.php:2447
46
  msgid "What's the %s's name?"
47
  msgstr "What's the %s's name?"
48
 
49
- #: includes/class-freemius.php:2453
50
  msgid "It's a temporary %s. I'm just debugging an issue."
51
  msgstr "It's a temporary %s. I'm just debugging an issue."
52
 
53
- #: includes/class-freemius.php:2455
54
  msgid "Deactivation"
55
  msgstr "דיאקטיבציה"
56
 
57
- #: includes/class-freemius.php:2456
58
  msgid "Theme Switch"
59
  msgstr "החלפת תֵמָה"
60
 
61
- #: includes/class-freemius.php2465, templates/forms/resend-key.php:24
62
  msgid "Other"
63
  msgstr "אחר"
64
 
65
- #: includes/class-freemius.php:2473
66
  msgid "I no longer need the %s"
67
  msgstr "I no longer need the %s"
68
 
69
- #: includes/class-freemius.php:2480
70
  msgid "I only needed the %s for a short period"
71
  msgstr "I only needed the %s for a short period"
72
 
73
- #: includes/class-freemius.php:2486
74
  msgid "The %s broke my site"
75
  msgstr "ה%s הרס לי את האתר"
76
 
77
- #: includes/class-freemius.php:2493
78
  msgid "The %s suddenly stopped working"
79
  msgstr "ה%s הפסיק פתאום לעבוד"
80
 
81
- #: includes/class-freemius.php:2503
82
  msgid "I can't pay for it anymore"
83
  msgstr "אני לא יכול/ה להמשיך לשלם על זה"
84
 
85
- #: includes/class-freemius.php:2505
86
  msgid "What price would you feel comfortable paying?"
87
  msgstr "מה המחיר שכן תרגיש\\י בנוח לשלם?"
88
 
89
- #: includes/class-freemius.php:2511
90
  msgid "I don't like to share my information with you"
91
  msgstr "אני לא אוהב את הרעיון של שיתוף מידע איתכם"
92
 
93
- #: includes/class-freemius.php:2532
94
  msgid "The %s didn't work"
95
  msgstr "ה%s לא עבד"
96
 
97
- #: includes/class-freemius.php:2542
98
  msgid "I couldn't understand how to make it work"
99
  msgstr "לא הצלחתי להבין איך לגרום לזה לעבוד"
100
 
101
- #: includes/class-freemius.php:2550
102
  msgid "The %s is great, but I need specific feature that you don't support"
103
  msgstr "The %s is great, but I need specific feature that you don't support"
104
 
105
- #: includes/class-freemius.php:2552
106
  msgid "What feature?"
107
  msgstr "איזה פיטצ'ר?"
108
 
109
- #: includes/class-freemius.php:2556
110
  msgid "The %s is not working"
111
  msgstr "ה%s לא עובד"
112
 
113
- #: includes/class-freemius.php:2558
114
  msgid "Kindly share what didn't work so we can fix it for future users..."
115
  msgstr "אנא שתפ\\י מה לא עבד כדי שנוכל לתקן זאת עבור משתמשים עתידיים..."
116
 
117
- #: includes/class-freemius.php:2562
118
  msgid "It's not what I was looking for"
119
  msgstr "חיפשתי משהו אחר"
120
 
121
- #: includes/class-freemius.php:2564
122
  msgid "What you've been looking for?"
123
  msgstr "מה חיפשת?"
124
 
125
- #: includes/class-freemius.php:2568
126
  msgid "The %s didn't work as expected"
127
  msgstr "ה%s לא עבד כמצופה"
128
 
129
- #: includes/class-freemius.php:2570
130
  msgid "What did you expect?"
131
  msgstr "למה ציפית?"
132
 
133
- #: includes/class-freemius.php3425, templates/debug.php:20
134
  msgid "Freemius Debug"
135
  msgstr "ניפוי תקלות פרימיוס"
136
 
137
- #: includes/class-freemius.php:4177
138
  msgid "I don't know what is cURL or how to install it, help me!"
139
  msgstr "אין לי מושג מה זה cURL או איך להתקין אותו - אשמח לעזרה!"
140
 
141
- #: includes/class-freemius.php:4179
142
  msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
143
  msgstr "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
144
 
145
- #: includes/class-freemius.php:4186
146
  msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
147
  msgstr "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
148
 
149
- #: includes/class-freemius.php:4291
150
  msgid "Yes - do your thing"
151
  msgstr "כן - בצעו את מה שצריך"
152
 
153
- #: includes/class-freemius.php:4296
154
  msgid "No - just deactivate"
155
  msgstr "לא - פשוט כבה"
156
 
157
- #: includes/class-freemius.php4341, includes/class-freemius.php4850,
158
- #: includes/class-freemius.php5999, includes/class-freemius.php12682,
159
- #: includes/class-freemius.php16045, includes/class-freemius.php16133,
160
- #: includes/class-freemius.php16299, includes/class-freemius.php18758,
161
- #: includes/class-freemius.php18768, includes/class-freemius.php19404,
162
- #: includes/class-freemius.php20277, includes/class-freemius.php20392,
163
- #: includes/class-freemius.php20536, templates/add-ons.php:54
 
164
  msgctxt "exclamation"
165
  msgid "Oops"
166
  msgstr "אופס"
167
 
168
- #: includes/class-freemius.php:4410
169
  msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
170
  msgstr "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
171
 
172
- #: includes/class-freemius.php:4847
173
  msgctxt "addonX cannot run without pluginY"
174
  msgid "%s cannot run without %s."
175
  msgstr "%s לא יכול לעבוד ללא %s."
176
 
177
- #: includes/class-freemius.php:4848
178
  msgctxt "addonX cannot run..."
179
  msgid "%s cannot run without the plugin."
180
  msgstr "ההרחבה %s אינה יכולה לפעול ללא התוסף."
181
 
182
- #: includes/class-freemius.php5020, includes/class-freemius.php5045,
183
- #: includes/class-freemius.php:19475
184
  msgid "Unexpected API error. Please contact the %s's author with the following error."
185
  msgstr "Unexpected API error. Please contact the %s's author with the following error."
186
 
187
- #: includes/class-freemius.php:5687
188
  msgid "Premium %s version was successfully activated."
189
  msgstr "Premium %s version was successfully activated."
190
 
191
- #: includes/class-freemius.php5699, includes/class-freemius.php:7567
192
  msgctxt ""
193
  msgid "W00t"
194
  msgstr "יש"
195
 
196
- #: includes/class-freemius.php:5714
197
  msgid "You have a %s license."
198
  msgstr "יש לך רישיון %s."
199
 
200
- #: includes/class-freemius.php5718, includes/class-freemius.php15466,
201
- #: includes/class-freemius.php15477, includes/class-freemius.php18669,
202
- #: includes/class-freemius.php18999, includes/class-freemius.php19065,
203
- #: includes/class-freemius.php:19229
204
  msgctxt "interjection expressing joy or exuberance"
205
  msgid "Yee-haw"
206
  msgstr "יששש"
207
 
208
- #: includes/class-freemius.php:5982
209
  msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
210
  msgstr "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
211
 
212
- #: includes/class-freemius.php:5986
213
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
214
  msgstr "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
215
 
216
- #: includes/class-freemius.php5995, templates/add-ons.php130,
217
- #: templates/account/partials/addon.php:343
218
  msgid "More information about %s"
219
  msgstr "מידע נוסף אודות %s"
220
 
221
- #: includes/class-freemius.php:5996
222
  msgid "Purchase License"
223
  msgstr "קניית רישיון"
224
 
225
- #: includes/class-freemius.php6931, templates/connect.php:163
226
  msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
227
  msgstr "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
228
 
229
- #: includes/class-freemius.php:6935
230
  msgid "start the trial"
231
  msgstr "התחל תקופת ניסיון"
232
 
233
- #: includes/class-freemius.php6936, templates/connect.php:167
234
  msgid "complete the install"
235
  msgstr "השלם התקנה"
236
 
237
- #: includes/class-freemius.php:7049
238
  msgid "You are just one step away - %s"
239
  msgstr "You are just one step away - %s"
240
 
241
- #: includes/class-freemius.php:7052
242
  msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
243
  msgid "Complete \"%s\" Activation Now"
244
  msgstr "השלם הפעלת \"%s\" עכשיו"
245
 
246
- #: includes/class-freemius.php:7130
247
  msgid "We made a few tweaks to the %s, %s"
248
  msgstr "We made a few tweaks to the %s, %s"
249
 
250
- #: includes/class-freemius.php:7134
251
  msgid "Opt in to make \"%s\" better!"
252
  msgstr "Opt in to make \"%s\" better!"
253
 
254
- #: includes/class-freemius.php:7566
255
  msgid "The upgrade of %s was successfully completed."
256
  msgstr "The upgrade of %s was successfully completed."
257
 
258
- #: includes/class-freemius.php9728, includes/class-fs-plugin-updater.php975,
259
- #: includes/class-fs-plugin-updater.php1170,
260
- #: includes/class-fs-plugin-updater.php1177,
261
  #: templates/auto-installation.php:32
262
  msgid "Add-On"
263
  msgstr "Add-On"
264
 
265
- #: includes/class-freemius.php9730, templates/account.php313,
266
- #: templates/account.php321, templates/debug.php361, templates/debug.php:522
267
  msgid "Plugin"
268
  msgstr "תוסף"
269
 
270
- #: includes/class-freemius.php9731, templates/account.php314,
271
- #: templates/account.php322, templates/debug.php361, templates/debug.php522,
272
  #: templates/forms/deactivation/form.php:71
273
  msgid "Theme"
274
  msgstr "תבנית"
275
 
276
- #: includes/class-freemius.php:12148
277
  msgid "An unknown error has occurred while trying to set the user's beta mode."
278
  msgstr "An unknown error has occurred while trying to set the user's beta mode."
279
 
280
- #: includes/class-freemius.php:12549
281
  msgid "Invalid site details collection."
282
  msgstr "Invalid site details collection."
283
 
284
- #: includes/class-freemius.php:12669
285
  msgid "We couldn't find your email address in the system, are you sure it's the right address?"
286
  msgstr "We couldn't find your email address in the system, are you sure it's the right address?"
287
 
288
- #: includes/class-freemius.php:12671
289
  msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
290
  msgstr "We can't see any active licenses associated with that email address, are you sure it's the right address?"
291
 
292
- #: includes/class-freemius.php:12945
293
  msgid "Account is pending activation."
294
  msgstr "Account is pending activation."
295
 
296
- #: includes/class-freemius.php13057,
297
  #: templates/forms/premium-versions-upgrade-handler.php:47
298
  msgid "Buy a license now"
299
  msgstr "Buy a license now"
300
 
301
- #: includes/class-freemius.php13069,
302
  #: templates/forms/premium-versions-upgrade-handler.php:46
303
  msgid "Renew your license now"
304
  msgstr "Renew your license now"
305
 
306
- #: includes/class-freemius.php:13073
307
  msgid "%s to access version %s security & feature updates, and support."
308
  msgstr "%s to access version %s security & feature updates, and support."
309
 
310
- #: includes/class-freemius.php:15448
311
  msgid "%s activation was successfully completed."
312
  msgstr "הפעלת %s הושלמה בהצלחה."
313
 
314
- #: includes/class-freemius.php:15462
315
  msgid "Your account was successfully activated with the %s plan."
316
  msgstr "חשבונך הופעל בהצלחה עם חבילת %s."
317
 
318
- #: includes/class-freemius.php15473, includes/class-freemius.php:19061
319
  msgid "Your trial has been successfully started."
320
  msgstr "הניסיון שלך הופעל בהצלחה."
321
 
322
- #: includes/class-freemius.php16043, includes/class-freemius.php16131,
323
- #: includes/class-freemius.php:16297
324
  msgid "Couldn't activate %s."
325
  msgstr "לא ניתן להפעיל את %s."
326
 
327
- #: includes/class-freemius.php16044, includes/class-freemius.php16132,
328
- #: includes/class-freemius.php:16298
329
  msgid "Please contact us with the following message:"
330
  msgstr "אנא צור איתנו קשר יחד עם ההודעה הבאה:"
331
 
332
- #: includes/class-freemius.php:16128
333
  msgid "An unknown error has occurred."
334
  msgstr "An unknown error has occurred."
335
 
336
- #: includes/class-freemius.php16655, includes/class-freemius.php:21409
337
  msgid "Upgrade"
338
  msgstr "שדרג"
339
 
340
- #: includes/class-freemius.php:16661
341
  msgid "Start Trial"
342
  msgstr "התחל תקופת ניסיון"
343
 
344
- #: includes/class-freemius.php:16663
345
  msgid "Pricing"
346
  msgstr "מחירון"
347
 
348
- #: includes/class-freemius.php16742, includes/class-freemius.php:16744
349
  msgid "Affiliation"
350
  msgstr "אפיליאציה"
351
 
352
- #: includes/class-freemius.php16772, includes/class-freemius.php16774,
353
- #: templates/account.php177, templates/debug.php:326
354
  msgid "Account"
355
  msgstr "חשבון"
356
 
357
- #: includes/class-freemius.php16787, includes/class-freemius.php16789,
358
  #: includes/customizer/class-fs-customizer-support-section.php:60
359
  msgid "Contact Us"
360
  msgstr "יצירת קשר"
361
 
362
- #: includes/class-freemius.php16799, includes/class-freemius.php16801,
363
- #: includes/class-freemius.php21423, templates/account.php105,
364
- #: templates/account/partials/addon.php:45
365
  msgid "Add-Ons"
366
  msgstr "Add-Ons"
367
 
368
- #: includes/class-freemius.php:16835
369
  msgctxt "ASCII arrow left icon"
370
  msgid "&#x2190;"
371
  msgstr "&#x2190;"
372
 
373
- #: includes/class-freemius.php:16835
374
  msgctxt "ASCII arrow right icon"
375
  msgid "&#x27a4;"
376
  msgstr "&#x27a4;"
377
 
378
- #: includes/class-freemius.php16837, templates/pricing.php:102
379
  msgctxt "noun"
380
  msgid "Pricing"
381
  msgstr "מחירון"
382
 
383
- #: includes/class-freemius.php17050,
384
  #: includes/customizer/class-fs-customizer-support-section.php:67
385
  msgid "Support Forum"
386
  msgstr "פורום תמיכה"
387
 
388
- #: includes/class-freemius.php:17995
389
  msgid "Your email has been successfully verified - you are AWESOME!"
390
  msgstr "Your email has been successfully verified - you are AWESOME!"
391
 
392
- #: includes/class-freemius.php:17996
393
  msgctxt "a positive response"
394
  msgid "Right on"
395
  msgstr "מעולה"
396
 
397
- #: includes/class-freemius.php:18660
 
 
 
 
 
 
 
 
398
  msgid "Your %s Add-on plan was successfully upgraded."
399
  msgstr "חבילת ההרחבה %s שודרגה בהצלחה."
400
 
401
- #: includes/class-freemius.php:18662
402
  msgid "%s Add-on was successfully purchased."
403
  msgstr "ההרחבה %s נרכשה בהצלחה."
404
 
405
- #: includes/class-freemius.php:18665
406
  msgid "Download the latest version"
407
  msgstr "הורד את הגרסה האחרונה"
408
 
409
- #: includes/class-freemius.php:18751
410
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
411
  msgstr "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
412
 
413
- #: includes/class-freemius.php18757, includes/class-freemius.php19188,
414
- #: includes/class-freemius.php:19277
415
  msgid "Error received from the server:"
416
  msgstr "הוחזרה שגיאה מהשרת:"
417
 
418
- #: includes/class-freemius.php:18767
419
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
420
  msgstr "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
421
 
422
- #: includes/class-freemius.php18961, includes/class-freemius.php19193,
423
- #: includes/class-freemius.php19248, includes/class-freemius.php:19351
424
  msgctxt ""
425
  msgid "Hmm"
426
  msgstr "אממ"
427
 
428
- #: includes/class-freemius.php:18974
429
  msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
430
  msgstr "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
431
 
432
- #: includes/class-freemius.php18975, templates/account.php107,
433
- #: templates/add-ons.php191, templates/account/partials/addon.php:47
434
  msgctxt "trial period"
435
  msgid "Trial"
436
  msgstr "ניסיון"
437
 
438
- #: includes/class-freemius.php:18980
439
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
440
  msgstr "שידרגתי את החשבון שלי אבל כשאני מנסה לבצע סנכרון לרישיון החבילה נשארת %s."
441
 
442
- #: includes/class-freemius.php18984, includes/class-freemius.php:19043
443
  msgid "Please contact us here"
444
  msgstr "אנא צור איתנו קשר כאן"
445
 
446
- #: includes/class-freemius.php:18995
447
  msgid "Your plan was successfully activated."
448
  msgstr "Your plan was successfully activated."
449
 
450
- #: includes/class-freemius.php:18996
451
  msgid "Your plan was successfully upgraded."
452
  msgstr "החבילה שודרגה בהצלחה."
453
 
454
- #: includes/class-freemius.php:19013
455
  msgid "Your plan was successfully changed to %s."
456
  msgstr "החבילה עודכנה בהצלחה אל %s."
457
 
458
- #: includes/class-freemius.php:19029
459
  msgid "Your license has expired. You can still continue using the free %s forever."
460
  msgstr "Your license has expired. You can still continue using the free %s forever."
461
 
462
- #: includes/class-freemius.php:19031
463
  msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
464
  msgstr "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
465
 
466
- #: includes/class-freemius.php:19039
467
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
468
  msgstr "רשיונך בוטל. אם לדעתך זו טעות, נא ליצור קשר עם התמיכה."
469
 
470
- #: includes/class-freemius.php:19052
471
  msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
472
  msgstr "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
473
 
474
- #: includes/class-freemius.php:19075
475
  msgid "Your free trial has expired. You can still continue using all our free features."
476
  msgstr "תקופת הניסיון שלך הסתיימה. הפיטצ'רים החינאמיים עדיין ניתנים לשימוש."
477
 
478
- #: includes/class-freemius.php:19077
479
  msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
480
  msgstr "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
481
 
482
- #: includes/class-freemius.php:19184
483
  msgid "It looks like the license could not be activated."
484
  msgstr "נראה שלא ניתן להפעיל את הרישיון."
485
 
486
- #: includes/class-freemius.php:19226
487
  msgid "Your license was successfully activated."
488
  msgstr "הרישיון הופעל בהצלחה."
489
 
490
- #: includes/class-freemius.php:19252
491
  msgid "It looks like your site currently doesn't have an active license."
492
  msgstr "נראה לאתר עדיין אין רישיון פעיל."
493
 
494
- #: includes/class-freemius.php:19276
495
  msgid "It looks like the license deactivation failed."
496
  msgstr "נראה שניתוק הרישיון נכשל."
497
 
498
- #: includes/class-freemius.php:19304
499
  msgid "Your license was successfully deactivated, you are back to the %s plan."
500
  msgstr "רישיונך נותק בהצלחה, חזרת לחבילת %s"
501
 
502
- #: includes/class-freemius.php:19305
503
  msgid "O.K"
504
  msgstr "אוקיי"
505
 
506
- #: includes/class-freemius.php:19358
507
  msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
508
  msgstr "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
509
 
510
- #: includes/class-freemius.php:19367
511
  msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
512
  msgstr "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
513
 
514
- #: includes/class-freemius.php:19409
515
  msgid "You are already running the %s in a trial mode."
516
  msgstr "You are already running the %s in a trial mode."
517
 
518
- #: includes/class-freemius.php:19420
519
  msgid "You already utilized a trial before."
520
  msgstr "הניסיון כבר נוצל בעבר."
521
 
522
- #: includes/class-freemius.php:19434
523
  msgid "Plan %s do not exist, therefore, can't start a trial."
524
  msgstr "החבילה %s אינה קיימת, לכן, לא ניתן להתחיל תקופת ניסיון."
525
 
526
- #: includes/class-freemius.php:19445
527
  msgid "Plan %s does not support a trial period."
528
  msgstr "תוכנית %s אינה תומכת בתקופת ניסיון."
529
 
530
- #: includes/class-freemius.php:19456
531
  msgid "None of the %s's plans supports a trial period."
532
  msgstr "None of the %s's plans supports a trial period."
533
 
534
- #: includes/class-freemius.php:19506
535
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
536
  msgstr "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
537
 
538
- #: includes/class-freemius.php:19542
539
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
540
  msgstr "נראה שיש תקלה זמנית המונעת את ביטול הניסיון. אנא נסו שוב בעוד כמה דקות."
541
 
542
- #: includes/class-freemius.php:19561
543
  msgid "Your %s free trial was successfully cancelled."
544
  msgstr "תקופת הניסיון החינמית של %s בוטלה בהצלחה."
545
 
546
- #: includes/class-freemius.php:19877
547
  msgid "Version %s was released."
548
  msgstr "גרסה %s הושקה."
549
 
550
- #: includes/class-freemius.php:19877
551
  msgid "Please download %s."
552
  msgstr "נא להוריד את %s."
553
 
554
- #: includes/class-freemius.php:19884
555
  msgid "the latest %s version here"
556
  msgstr "גרסת ה-%s האחרונה כאן"
557
 
558
- #: includes/class-freemius.php:19889
559
  msgid "New"
560
  msgstr "חדש"
561
 
562
- #: includes/class-freemius.php:19894
563
  msgid "Seems like you got the latest release."
564
  msgstr "נראה שיש לך את הגרסה האחרונה."
565
 
566
- #: includes/class-freemius.php:19895
567
  msgid "You are all good!"
568
  msgstr "את\\ה מסודר!"
569
 
570
- #: includes/class-freemius.php:20165
571
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
572
  msgstr "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
573
 
574
- #: includes/class-freemius.php:20304
575
  msgid "Site successfully opted in."
576
  msgstr "Site successfully opted in."
577
 
578
- #: includes/class-freemius.php20305, includes/class-freemius.php:21125
579
  msgid "Awesome"
580
  msgstr "אדיר"
581
 
582
- #: includes/class-freemius.php20321, templates/forms/optout.php:32
583
  msgid "We appreciate your help in making the %s better by letting us track some usage data."
584
  msgstr "We appreciate your help in making the %s better by letting us track some usage data."
585
 
586
- #: includes/class-freemius.php:20322
587
  msgid "Thank you!"
588
  msgstr "תודה רבה!"
589
 
590
- #: includes/class-freemius.php:20329
591
  msgid "We will no longer be sending any usage data of %s on %s to %s."
592
  msgstr "We will no longer be sending any usage data of %s on %s to %s."
593
 
594
- #: includes/class-freemius.php:20458
595
  msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
596
  msgstr "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
597
 
598
- #: includes/class-freemius.php:20464
599
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
600
  msgstr "תודה על אישור ביצוע החלפת הבעלות. הרגע נשלח מייל ל-%s כדי לקבל אישור סופי."
601
 
602
- #: includes/class-freemius.php:20469
603
  msgid "%s is the new owner of the account."
604
  msgstr "%s הינו הבעלים החד של חשבון זה."
605
 
606
- #: includes/class-freemius.php:20471
607
  msgctxt "as congratulations"
608
  msgid "Congrats"
609
  msgstr "מזל טוב"
610
 
611
- #: includes/class-freemius.php:20491
612
  msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
613
  msgstr "Sorry, we could not complete the email update. Another user with the same email is already registered."
614
 
615
- #: includes/class-freemius.php:20492
616
  msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
617
  msgstr "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
618
 
619
- #: includes/class-freemius.php:20499
620
  msgid "Change Ownership"
621
  msgstr "עדכון בעלות"
622
 
623
- #: includes/class-freemius.php:20507
624
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
625
  msgstr "כתובת הדואל שלך עודכנה בהצלחה. הודעת אישור אמורה להתקבל בדואל שלך ברגעים הקרובים."
626
 
627
- #: includes/class-freemius.php:20519
628
  msgid "Please provide your full name."
629
  msgstr "נא למלא את שמך המלא."
630
 
631
- #: includes/class-freemius.php:20524
632
  msgid "Your name was successfully updated."
633
  msgstr "שמך עודכן בהצלחה."
634
 
635
- #: includes/class-freemius.php:20585
636
  msgid "You have successfully updated your %s."
637
  msgstr "עידכנת בהצלחה את ה%s."
638
 
639
- #: includes/class-freemius.php:20725
640
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
641
  msgstr "Just letting you know that the add-ons information of %s is being pulled from an external server."
642
 
643
- #: includes/class-freemius.php:20726
644
  msgctxt "advance notice of something that will need attention."
645
  msgid "Heads up"
646
  msgstr "לתשמות לבך"
647
 
648
- #: includes/class-freemius.php:21165
649
  msgctxt "exclamation"
650
  msgid "Hey"
651
  msgstr "היי"
652
 
653
- #: includes/class-freemius.php:21165
654
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
655
  msgstr "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
656
 
657
- #: includes/class-freemius.php:21173
658
  msgid "No commitment for %s days - cancel anytime!"
659
  msgstr "ללא התחייבות ל-%s ימין - בטלו בכל רגע!"
660
 
661
- #: includes/class-freemius.php:21174
662
  msgid "No credit card required"
663
  msgstr "לא נדרש כרטיס אשראי"
664
 
665
- #: includes/class-freemius.php21181, templates/forms/trial-start.php:53
666
  msgctxt "call to action"
667
  msgid "Start free trial"
668
  msgstr "התחלת ניסיון חינם"
669
 
670
- #: includes/class-freemius.php:21258
671
  msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
672
  msgstr "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
673
 
674
- #: includes/class-freemius.php:21267
675
  msgid "Learn more"
676
  msgstr "Learn more"
677
 
678
- #: includes/class-freemius.php21447, templates/account.php474,
679
- #: templates/account.php595, templates/connect.php171,
680
- #: templates/connect.php421, templates/forms/license-activation.php25,
681
- #: templates/account/partials/addon.php:287
682
  msgid "Activate License"
683
  msgstr "הפעלת רישיון"
684
 
685
- #: includes/class-freemius.php21448, templates/account.php543,
686
- #: templates/account.php594, templates/account/partials/site.php:256
 
687
  msgid "Change License"
688
  msgstr "שינוי רישיון"
689
 
690
- #: includes/class-freemius.php21539, templates/account/partials/site.php:161
691
  msgid "Opt Out"
692
  msgstr "Opt Out"
693
 
694
- #: includes/class-freemius.php21541, includes/class-freemius.php21547,
695
- #: templates/account/partials/site.php43,
696
- #: templates/account/partials/site.php:161
697
  msgid "Opt In"
698
  msgstr "Opt In"
699
 
700
- #: includes/class-freemius.php:21775
701
  msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
702
  msgstr " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
703
 
704
- #: includes/class-freemius.php:21783
705
  msgid "Activate %s features"
706
  msgstr "Activate %s features"
707
 
708
- #: includes/class-freemius.php:21796
709
  msgid "Please follow these steps to complete the upgrade"
710
  msgstr "נא לבצע את הצעדים הבאים להשלמת השידרוג"
711
 
712
- #: includes/class-freemius.php:21800
713
  msgid "Download the latest %s version"
714
  msgstr "הורד\\י את גרסת ה-%s העדכנית"
715
 
716
- #: includes/class-freemius.php:21804
717
  msgid "Upload and activate the downloaded version"
718
  msgstr "העלה\\י והפעיל\\י את הגרסה שהורדת"
719
 
720
- #: includes/class-freemius.php:21806
721
  msgid "How to upload and activate?"
722
  msgstr "איך להעלות ולהפעיל?"
723
 
724
- #: includes/class-freemius.php:21940
725
  msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
726
  msgstr "%sClick here%s to choose the sites where you'd like to activate the license on."
727
 
728
- #: includes/class-freemius.php:22101
729
  msgid "Auto installation only works for opted-in users."
730
  msgstr "Auto installation only works for opted-in users."
731
 
732
- #: includes/class-freemius.php22111, includes/class-freemius.php22144,
733
- #: includes/class-fs-plugin-updater.php1149,
734
- #: includes/class-fs-plugin-updater.php:1163
735
  msgid "Invalid module ID."
736
  msgstr "מזהה המודול לא תקני."
737
 
738
- #: includes/class-freemius.php22120, includes/class-fs-plugin-updater.php:1185
739
  msgid "Premium version already active."
740
  msgstr "הגרסה בתשלום כבר פעילה."
741
 
742
- #: includes/class-freemius.php:22127
743
  msgid "You do not have a valid license to access the premium version."
744
  msgstr "אין ברשותך רישיון בר תוקף לשימוש בגרסת הפרימיום."
745
 
746
- #: includes/class-freemius.php:22134
747
  msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
748
  msgstr "Plugin is a \"Serviceware\" which means it does not have a premium code version."
749
 
750
- #: includes/class-freemius.php22152, includes/class-fs-plugin-updater.php:1184
751
  msgid "Premium add-on version already installed."
752
  msgstr "Premium add-on version already installed."
753
 
754
- #: includes/class-freemius.php:22497
755
  msgid "View paid features"
756
  msgstr "צפה בפיטצ'רים שבתשלום"
757
 
758
- #: includes/class-freemius.php:22819
759
  msgid "Thank you so much for using %s and its add-ons!"
760
  msgstr "Thank you so much for using %s and its add-ons!"
761
 
762
- #: includes/class-freemius.php:22820
763
  msgid "Thank you so much for using %s!"
764
  msgstr "אנו מודים לך על היותך כמשתמש של %s!"
765
 
766
- #: includes/class-freemius.php:22826
767
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
768
  msgstr "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
769
 
770
- #: includes/class-freemius.php:22830
771
  msgid "Thank you so much for using our products!"
772
  msgstr "אנו מודים לך על השימוש במוצרים שלנו!"
773
 
774
- #: includes/class-freemius.php:22831
775
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
776
  msgstr "You've already opted-in to our usage-tracking, which helps us keep improving them."
777
 
778
- #: includes/class-freemius.php:22850
779
  msgid "%s and its add-ons"
780
  msgstr "%s and its add-ons"
781
 
782
- #: includes/class-freemius.php:22859
783
  msgid "Products"
784
  msgstr "מוצרים"
785
 
786
- #: includes/class-freemius.php22866, templates/connect.php:272
787
  msgid "Yes"
788
  msgstr "כן"
789
 
790
- #: includes/class-freemius.php22867, templates/connect.php:273
791
  msgid "send me security & feature updates, educational content and offers."
792
  msgstr "תשלחו לי עדכוני אבטחה ופיטצ'רים, תוכן חינוכי, ומידע אודות מבצעים."
793
 
794
- #: includes/class-freemius.php22868, templates/connect.php:278
795
  msgid "No"
796
  msgstr "לא"
797
 
798
- #: includes/class-freemius.php22870, templates/connect.php:280
799
  msgid "do %sNOT%s send me security & feature updates, educational content and offers."
800
  msgstr "%sאל%2$s תשלחו לי עדכוני אבטחה, פיטצ'רים, תוכן חינוכי, ומידע על מבצעים."
801
 
802
- #: includes/class-freemius.php:22880
803
  msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
804
  msgstr "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
805
 
806
- #: includes/class-freemius.php22882, templates/connect.php:287
807
  msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
808
  msgstr "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
809
 
810
- #: includes/class-freemius.php:23164
811
  msgid "License key is empty."
812
  msgstr "מפתח הרישיון ריק."
813
 
814
- #: includes/class-fs-plugin-updater.php184,
815
  #: templates/forms/premium-versions-upgrade-handler.php:57
816
  msgid "Renew license"
817
  msgstr "חידוש רישיון"
818
 
819
- #: includes/class-fs-plugin-updater.php189,
820
  #: templates/forms/premium-versions-upgrade-handler.php:58
821
  msgid "Buy license"
822
  msgstr "Buy license"
823
 
824
- #: includes/class-fs-plugin-updater.php280,
825
- #: includes/class-fs-plugin-updater.php:313
826
  msgid "There is a %s of %s available."
827
  msgstr "There is a %s of %s available."
828
 
829
- #: includes/class-fs-plugin-updater.php282,
830
- #: includes/class-fs-plugin-updater.php:318
831
  msgid "new Beta version"
832
  msgstr "new Beta version"
833
 
834
- #: includes/class-fs-plugin-updater.php283,
835
- #: includes/class-fs-plugin-updater.php:319
836
  msgid "new version"
837
  msgstr "new version"
838
 
839
- #: includes/class-fs-plugin-updater.php:342
840
  msgid "Important Upgrade Notice:"
841
  msgstr "Important Upgrade Notice:"
842
 
843
- #: includes/class-fs-plugin-updater.php:1214
844
  msgid "Installing plugin: %s"
845
  msgstr "Installing plugin: %s"
846
 
847
- #: includes/class-fs-plugin-updater.php:1255
848
  msgid "Unable to connect to the filesystem. Please confirm your credentials."
849
  msgstr "Unable to connect to the filesystem. Please confirm your credentials."
850
 
851
- #: includes/class-fs-plugin-updater.php:1437
852
  msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
853
  msgstr "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
854
 
855
- #: includes/fs-plugin-info-dialog.php:509
856
  msgid "Purchase More"
857
  msgstr "Purchase More"
858
 
859
- #: includes/fs-plugin-info-dialog.php510,
860
- #: templates/account/partials/addon.php:347
861
  msgctxt "verb"
862
  msgid "Purchase"
863
  msgstr "רכישה"
864
 
865
- #: includes/fs-plugin-info-dialog.php:514
866
  msgid "Start my free %s"
867
  msgstr "התחל את %s הניסיון שלי"
868
 
869
- #: includes/fs-plugin-info-dialog.php:712
870
  msgid "Install Free Version Update Now"
871
  msgstr "התקן עדכון גרסה חינאמית עכשיו"
872
 
873
- #: includes/fs-plugin-info-dialog.php713, templates/account.php:534
874
  msgid "Install Update Now"
875
  msgstr "התקן עדכון במיידי"
876
 
877
- #: includes/fs-plugin-info-dialog.php:722
878
  msgid "Install Free Version Now"
879
  msgstr "התקן גרסה חינאמית עכשיו"
880
 
881
- #: includes/fs-plugin-info-dialog.php723, templates/add-ons.php262,
882
  #: templates/auto-installation.php111,
883
- #: templates/account/partials/addon.php327,
884
- #: templates/account/partials/addon.php:379
885
  msgid "Install Now"
886
  msgstr "התקן עכשיו"
887
 
888
- #: includes/fs-plugin-info-dialog.php:739
889
  msgctxt "as download latest version"
890
  msgid "Download Latest Free Version"
891
  msgstr "Download Latest Free Version"
892
 
893
- #: includes/fs-plugin-info-dialog.php740, templates/account.php85,
894
- #: templates/add-ons.php34, templates/account/partials/addon.php:25
895
  msgctxt "as download latest version"
896
  msgid "Download Latest"
897
  msgstr "הורד גרסה אחרונה"
898
 
899
- #: includes/fs-plugin-info-dialog.php755, templates/add-ons.php268,
900
- #: templates/account/partials/addon.php318,
901
- #: templates/account/partials/addon.php:373
902
  msgid "Activate this add-on"
903
  msgstr "הפעל את ההרחבה"
904
 
905
- #: includes/fs-plugin-info-dialog.php757, templates/connect.php:418
906
  msgid "Activate Free Version"
907
  msgstr "הפעלת גירסה חינאמית"
908
 
909
- #: includes/fs-plugin-info-dialog.php758, templates/account.php109,
910
- #: templates/add-ons.php269, templates/account/partials/addon.php:49
911
  msgid "Activate"
912
  msgstr "הפעלה"
913
 
914
- #: includes/fs-plugin-info-dialog.php:968
915
  msgctxt "Plugin installer section title"
916
  msgid "Description"
917
  msgstr "תיאור"
918
 
919
- #: includes/fs-plugin-info-dialog.php:969
920
  msgctxt "Plugin installer section title"
921
  msgid "Installation"
922
  msgstr "התקנה"
923
 
924
- #: includes/fs-plugin-info-dialog.php:970
925
  msgctxt "Plugin installer section title"
926
  msgid "FAQ"
927
  msgstr "שאלות נפוצות"
928
 
929
- #: includes/fs-plugin-info-dialog.php971,
930
  #: templates/plugin-info/description.php:55
931
  msgid "Screenshots"
932
  msgstr "צילומי מסך"
933
 
934
- #: includes/fs-plugin-info-dialog.php:972
935
  msgctxt "Plugin installer section title"
936
  msgid "Changelog"
937
  msgstr "לוג שינויים"
938
 
939
- #: includes/fs-plugin-info-dialog.php:973
940
  msgctxt "Plugin installer section title"
941
  msgid "Reviews"
942
  msgstr "ביקורות"
943
 
944
- #: includes/fs-plugin-info-dialog.php:974
945
  msgctxt "Plugin installer section title"
946
  msgid "Other Notes"
947
  msgstr "היערות נוספות"
948
 
949
- #: includes/fs-plugin-info-dialog.php:989
950
  msgctxt "Plugin installer section title"
951
  msgid "Features & Pricing"
952
  msgstr "פיטצ'רים ומחירים"
953
 
954
- #: includes/fs-plugin-info-dialog.php:999
955
  msgid "Plugin Install"
956
  msgstr "התקנת תוסף"
957
 
958
- #: includes/fs-plugin-info-dialog.php:1071
959
  msgctxt "e.g. Professional Plan"
960
  msgid "%s Plan"
961
  msgstr "חבילה %s"
962
 
963
- #: includes/fs-plugin-info-dialog.php:1097
964
  msgctxt "e.g. the best product"
965
  msgid "Best"
966
  msgstr "הכי טוב"
967
 
968
- #: includes/fs-plugin-info-dialog.php1103,
969
- #: includes/fs-plugin-info-dialog.php:1123
970
  msgctxt "as every month"
971
  msgid "Monthly"
972
  msgstr "חודשי"
973
 
974
- #: includes/fs-plugin-info-dialog.php:1106
975
  msgctxt "as once a year"
976
  msgid "Annual"
977
  msgstr "שנתי"
978
 
979
- #: includes/fs-plugin-info-dialog.php:1109
980
  msgid "Lifetime"
981
  msgstr "לכל החיים"
982
 
983
- #: includes/fs-plugin-info-dialog.php1123,
984
- #: includes/fs-plugin-info-dialog.php1125,
985
- #: includes/fs-plugin-info-dialog.php:1127
986
  msgctxt "e.g. billed monthly"
987
  msgid "Billed %s"
988
  msgstr "מחוייב על בסיס %s"
989
 
990
- #: includes/fs-plugin-info-dialog.php:1125
991
  msgctxt "as once a year"
992
  msgid "Annually"
993
  msgstr "שנתי"
994
 
995
- #: includes/fs-plugin-info-dialog.php:1127
996
  msgctxt "as once a year"
997
  msgid "Once"
998
  msgstr "פעם אחת"
999
 
1000
- #: includes/fs-plugin-info-dialog.php:1133
1001
  msgid "Single Site License"
1002
  msgstr "רשיון לאתר אחד"
1003
 
1004
- #: includes/fs-plugin-info-dialog.php:1135
1005
  msgid "Unlimited Licenses"
1006
  msgstr "רשיונות ללא הגבלה"
1007
 
1008
- #: includes/fs-plugin-info-dialog.php:1137
1009
  msgid "Up to %s Sites"
1010
  msgstr "עד %s אתרים"
1011
 
1012
- #: includes/fs-plugin-info-dialog.php1147,
1013
  #: templates/plugin-info/features.php:82
1014
  msgctxt "as monthly period"
1015
  msgid "mo"
1016
  msgstr "חודשים"
1017
 
1018
- #: includes/fs-plugin-info-dialog.php1154,
1019
  #: templates/plugin-info/features.php:80
1020
  msgctxt "as annual period"
1021
  msgid "year"
1022
  msgstr "שנה"
1023
 
1024
- #: includes/fs-plugin-info-dialog.php:1208
1025
  msgctxt "noun"
1026
  msgid "Price"
1027
  msgstr "מחיר"
1028
 
1029
- #: includes/fs-plugin-info-dialog.php:1256
1030
  msgid "Save %s"
1031
  msgstr "שמירת %s"
1032
 
1033
- #: includes/fs-plugin-info-dialog.php:1266
1034
  msgid "No commitment for %s - cancel anytime"
1035
  msgstr "No commitment for %s - cancel anytime"
1036
 
1037
- #: includes/fs-plugin-info-dialog.php:1269
1038
  msgid "After your free %s, pay as little as %s"
1039
  msgstr "After your free %s, pay as little as %s"
1040
 
1041
- #: includes/fs-plugin-info-dialog.php:1280
1042
  msgid "Details"
1043
  msgstr "פרטים"
1044
 
1045
- #: includes/fs-plugin-info-dialog.php1284, templates/account.php96,
1046
- #: templates/debug.php203, templates/debug.php240, templates/debug.php454,
1047
  #: templates/account/partials/addon.php:36
1048
  msgctxt "product version"
1049
  msgid "Version"
1050
  msgstr "גרסה"
1051
 
1052
- #: includes/fs-plugin-info-dialog.php:1291
1053
  msgctxt "as the plugin author"
1054
  msgid "Author"
1055
  msgstr "Author"
1056
 
1057
- #: includes/fs-plugin-info-dialog.php:1298
1058
  msgid "Last Updated"
1059
  msgstr "עודכן לאחרונה"
1060
 
1061
- #: includes/fs-plugin-info-dialog.php1303, templates/account.php:444
1062
  msgctxt "x-ago"
1063
  msgid "%s ago"
1064
  msgstr "לפני %s"
1065
 
1066
- #: includes/fs-plugin-info-dialog.php:1312
1067
  msgid "Requires WordPress Version"
1068
  msgstr "Requires WordPress Version"
1069
 
1070
- #: includes/fs-plugin-info-dialog.php:1313
1071
  msgid "%s or higher"
1072
  msgstr "%s ומעלה"
1073
 
1074
- #: includes/fs-plugin-info-dialog.php:1320
1075
  msgid "Compatible up to"
1076
  msgstr "Compatible up to"
1077
 
1078
- #: includes/fs-plugin-info-dialog.php:1328
1079
  msgid "Downloaded"
1080
  msgstr "Downloaded"
1081
 
1082
- #: includes/fs-plugin-info-dialog.php:1332
1083
  msgid "%s time"
1084
  msgstr "פעם %s"
1085
 
1086
- #: includes/fs-plugin-info-dialog.php:1334
1087
  msgid "%s times"
1088
  msgstr "%s פעמים"
1089
 
1090
- #: includes/fs-plugin-info-dialog.php:1344
1091
  msgid "WordPress.org Plugin Page"
1092
  msgstr "WordPress.org Plugin Page"
1093
 
1094
- #: includes/fs-plugin-info-dialog.php:1352
1095
  msgid "Plugin Homepage"
1096
  msgstr "עמוד התוסף"
1097
 
1098
- #: includes/fs-plugin-info-dialog.php1360,
1099
- #: includes/fs-plugin-info-dialog.php:1442
1100
  msgid "Donate to this plugin"
1101
  msgstr "תרום לתוסף"
1102
 
1103
- #: includes/fs-plugin-info-dialog.php:1367
1104
  msgid "Average Rating"
1105
  msgstr "דירוג ממוצע"
1106
 
1107
- #: includes/fs-plugin-info-dialog.php:1374
1108
  msgid "based on %s"
1109
  msgstr "מבוסס על %s"
1110
 
1111
- #: includes/fs-plugin-info-dialog.php:1378
1112
  msgid "%s rating"
1113
  msgstr "דרוג %s"
1114
 
1115
- #: includes/fs-plugin-info-dialog.php:1380
1116
  msgid "%s ratings"
1117
  msgstr "%s דרוגים"
1118
 
1119
- #: includes/fs-plugin-info-dialog.php:1395
1120
  msgid "%s star"
1121
  msgstr "כוכב %s"
1122
 
1123
- #: includes/fs-plugin-info-dialog.php:1397
1124
  msgid "%s stars"
1125
  msgstr "%s כוכבים"
1126
 
1127
- #: includes/fs-plugin-info-dialog.php:1408
1128
  msgid "Click to see reviews that provided a rating of %s"
1129
  msgstr "Click to see reviews that provided a rating of %s"
1130
 
1131
- #: includes/fs-plugin-info-dialog.php:1421
1132
  msgid "Contributors"
1133
  msgstr "תורמים"
1134
 
1135
- #: includes/fs-plugin-info-dialog.php1450,
1136
- #: includes/fs-plugin-info-dialog.php:1452
1137
  msgid "Warning"
1138
  msgstr "Warning"
1139
 
1140
- #: includes/fs-plugin-info-dialog.php:1450
1141
  msgid "This plugin has not been tested with your current version of WordPress."
1142
  msgstr "תוסף זה לא נבדק עם גרסת הוורדפרס שלך."
1143
 
1144
- #: includes/fs-plugin-info-dialog.php:1452
1145
  msgid "This plugin has not been marked as compatible with your version of WordPress."
1146
  msgstr "התוסף לא סומן כתואם לגרסת הוורדפרס שלך."
1147
 
1148
- #: includes/fs-plugin-info-dialog.php:1471
1149
  msgid "Paid add-on must be deployed to Freemius."
1150
  msgstr "Paid add-on must be deployed to Freemius."
1151
 
1152
- #: includes/fs-plugin-info-dialog.php:1472
1153
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1154
  msgstr "Add-on must be deployed to WordPress.org or Freemius."
1155
 
1156
- #: includes/fs-plugin-info-dialog.php:1493
1157
  msgid "Newer Version (%s) Installed"
1158
  msgstr "גרסה חדשה (%s) הותקנה"
1159
 
1160
- #: includes/fs-plugin-info-dialog.php:1494
1161
  msgid "Newer Free Version (%s) Installed"
1162
  msgstr "Newer Free Version (%s) Installed"
1163
 
1164
- #: includes/fs-plugin-info-dialog.php:1501
1165
  msgid "Latest Version Installed"
1166
  msgstr "הגרסה האחרונה הותקנה"
1167
 
1168
- #: includes/fs-plugin-info-dialog.php:1502
1169
  msgid "Latest Free Version Installed"
1170
  msgstr "גרסה חינאמית עדכנית הותקנה"
1171
 
1172
- #: templates/account.php86, templates/forms/subscription-cancellation.php96,
1173
  #: templates/account/partials/addon.php26,
1174
- #: templates/account/partials/site.php:295
1175
  msgid "Downgrading your plan"
1176
  msgstr "Downgrading your plan"
1177
 
1178
- #: templates/account.php87, templates/forms/subscription-cancellation.php97,
1179
  #: templates/account/partials/addon.php27,
1180
- #: templates/account/partials/site.php:296
1181
  msgid "Cancelling the subscription"
1182
  msgstr "Cancelling the subscription"
1183
 
1184
  #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
1185
  #. subscription'
1186
- #: templates/account.php:89
 
1187
  msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1188
  msgstr "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1189
 
1190
- #: templates/account.php90, templates/forms/subscription-cancellation.php100,
1191
  #: templates/account/partials/addon.php30,
1192
- #: templates/account/partials/site.php:299
1193
  msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1194
  msgstr "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1195
 
1196
- #: templates/account.php91, templates/forms/subscription-cancellation.php106,
1197
  #: templates/account/partials/addon.php:31
1198
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1199
  msgstr "ביטול הניסיון יחסום מייד את הפיטצ'רים שהינם בתשלום. האם ברצונך בכל זאת להמשיך?"
1200
 
1201
- #: templates/account.php92, templates/forms/subscription-cancellation.php101,
1202
  #: templates/account/partials/addon.php32,
1203
- #: templates/account/partials/site.php:300
1204
  msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1205
  msgstr "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1206
 
1207
- #: templates/account.php93, templates/forms/subscription-cancellation.php102,
1208
  #: templates/account/partials/addon.php33,
1209
- #: templates/account/partials/site.php:301
1210
  msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1211
  msgstr "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1212
 
1213
  #. translators: %s: Plan title (e.g. "Professional")
1214
- #: templates/account.php95,
1215
  #: templates/account/partials/activate-license-button.php31,
1216
  #: templates/account/partials/addon.php:35
1217
  msgid "Activate %s Plan"
1218
  msgstr "הפעל חבילה %s"
1219
 
1220
  #. translators: %s: Time period (e.g. Auto renews in "2 months")
1221
- #: templates/account.php98, templates/account/partials/addon.php38,
1222
- #: templates/account/partials/site.php:275
1223
  msgid "Auto renews in %s"
1224
  msgstr "עדכן אוטומטית בעוד %s"
1225
 
1226
  #. translators: %s: Time period (e.g. Expires in "2 months")
1227
- #: templates/account.php100, templates/account/partials/addon.php40,
1228
- #: templates/account/partials/site.php:277
1229
  msgid "Expires in %s"
1230
  msgstr "פג תוקף בעוד %s"
1231
 
1232
- #: templates/account.php101, templates/account/partials/addon.php:41
1233
  msgctxt "as synchronize license"
1234
  msgid "Sync License"
1235
  msgstr "סינכרן רישיון"
1236
 
1237
- #: templates/account.php102, templates/account/partials/addon.php:42
1238
  msgid "Cancel Trial"
1239
  msgstr "ביט"
1240
 
1241
- #: templates/account.php103, templates/account/partials/addon.php:43
1242
  msgid "Change Plan"
1243
  msgstr "שינוי חבילה"
1244
 
1245
- #: templates/account.php104, templates/account/partials/addon.php:44
1246
  msgctxt "verb"
1247
  msgid "Upgrade"
1248
  msgstr "שדרג"
1249
 
1250
- #: templates/account.php106, templates/account/partials/addon.php46,
1251
- #: templates/account/partials/site.php:302
1252
  msgctxt "verb"
1253
  msgid "Downgrade"
1254
  msgstr "שנמך"
1255
 
1256
- #: templates/account.php108, templates/add-ons.php187,
1257
  #: templates/plugin-info/features.php72,
1258
- #: templates/account/partials/addon.php48,
1259
- #: templates/account/partials/site.php:31
1260
  msgid "Free"
1261
  msgstr "חינם"
1262
 
1263
- #: templates/account.php110, templates/debug.php373,
1264
- #: includes/customizer/class-fs-customizer-upsell-control.php106,
1265
- #: templates/account/partials/addon.php:50
1266
  msgctxt "as product pricing plan"
1267
  msgid "Plan"
1268
  msgstr "חבילה"
1269
 
1270
- #: templates/account.php:111
1271
  msgid "Bundle Plan"
1272
  msgstr "Bundle Plan"
1273
 
1274
- #: templates/account.php:185
1275
  msgid "Free Trial"
1276
  msgstr "ניסיון חינם"
1277
 
1278
- #: templates/account.php:196
1279
  msgid "Account Details"
1280
  msgstr "פרטי חשבון"
1281
 
1282
- #: templates/account.php:200
 
 
 
 
 
 
 
 
1283
  msgid "Billing & Invoices"
1284
  msgstr "Billing & Invoices"
1285
 
1286
- #: templates/account.php:210
1287
  msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1288
  msgstr "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1289
 
1290
- #: templates/account.php:212
1291
  msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1292
  msgstr "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1293
 
1294
- #: templates/account.php:215
1295
  msgid "Delete Account"
1296
  msgstr "מחיקת חשבון"
1297
 
1298
- #: templates/account.php227, templates/account/partials/addon.php211,
1299
  #: templates/account/partials/deactivate-license-button.php:35
1300
  msgid "Deactivate License"
1301
  msgstr "שיחרור רישיון"
1302
 
1303
- #: templates/account.php250, templates/forms/subscription-cancellation.php:125
1304
  msgid "Are you sure you want to proceed?"
1305
  msgstr "האם את/ה בטוח רוצה להמשיך?"
1306
 
1307
- #: templates/account.php250, templates/account/partials/addon.php:234
1308
  msgid "Cancel Subscription"
1309
  msgstr "בטל מנוי"
1310
 
1311
- #: templates/account.php:278
1312
  msgctxt "as synchronize"
1313
  msgid "Sync"
1314
  msgstr "סינכרון"
1315
 
1316
- #: templates/account.php292, templates/debug.php:489
1317
  msgid "Name"
1318
  msgstr "שם"
1319
 
1320
- #: templates/account.php298, templates/debug.php:490
1321
  msgid "Email"
1322
  msgstr "דוא\"ל"
1323
 
1324
- #: templates/account.php305, templates/debug.php372, templates/debug.php:528
1325
  msgid "User ID"
1326
  msgstr "מזהה משתמש"
1327
 
1328
- #: templates/account.php322, templates/account.php608,
1329
- #: templates/account.php653, templates/debug.php238, templates/debug.php366,
1330
- #: templates/debug.php451, templates/debug.php488, templates/debug.php526,
1331
- #: templates/debug.php599, templates/account/payments.php35,
1332
  #: templates/debug/logger.php:21
1333
  msgid "ID"
1334
  msgstr "מזהה"
1335
 
1336
- #: templates/account.php:329
1337
  msgid "Site ID"
1338
  msgstr "מזהה אתר"
1339
 
1340
- #: templates/account.php:332
1341
  msgid "No ID"
1342
  msgstr "אין מזהה"
1343
 
1344
- #: templates/account.php337, templates/debug.php245, templates/debug.php374,
1345
- #: templates/debug.php455, templates/debug.php492,
1346
- #: templates/account/partials/site.php:219
1347
  msgid "Public Key"
1348
  msgstr "מפתח פומבי"
1349
 
1350
- #: templates/account.php343, templates/debug.php375, templates/debug.php456,
1351
- #: templates/debug.php493, templates/account/partials/site.php:231
1352
  msgid "Secret Key"
1353
  msgstr "מפתח סודי"
1354
 
1355
- #: templates/account.php:346
1356
  msgctxt "as secret encryption key missing"
1357
  msgid "No Secret"
1358
  msgstr "אין מפתח סודי"
1359
 
1360
- #: templates/account.php373, templates/account/partials/site.php112,
1361
- #: templates/account/partials/site.php:114
1362
  msgid "Trial"
1363
  msgstr "ניסיון"
1364
 
1365
- #: templates/account.php400, templates/debug.php533,
1366
- #: templates/account/partials/site.php:248
1367
  msgid "License Key"
1368
  msgstr "License Key"
1369
 
1370
- #: templates/account.php:429
1371
  msgid "Join the Beta program"
1372
  msgstr "Join the Beta program"
1373
 
1374
- #: templates/account.php:435
1375
  msgid "not verified"
1376
  msgstr "לא מאומת"
1377
 
1378
- #: templates/account.php444, templates/account/partials/addon.php:172
1379
  msgid "Expired"
1380
  msgstr "פג תוקף"
1381
 
1382
- #: templates/account.php:502
1383
  msgid "Premium version"
1384
  msgstr "גירסת פרימיום"
1385
 
1386
- #: templates/account.php:504
1387
  msgid "Free version"
1388
  msgstr "גירסה חינאמית"
1389
 
1390
- #: templates/account.php:516
1391
  msgid "Verify Email"
1392
  msgstr "אמת כתובת דוא\"ל"
1393
 
1394
- #: templates/account.php:527
1395
  msgid "Download %s Version"
1396
  msgstr "הורד גרסת %s"
1397
 
1398
- #: templates/account.php541, templates/account.php749,
1399
- #: templates/account/partials/site.php237,
1400
- #: templates/account/partials/site.php:255
1401
  msgctxt "verb"
1402
  msgid "Show"
1403
  msgstr "הצג"
1404
 
1405
- #: templates/account.php:555
1406
  msgid "What is your %s?"
1407
  msgstr "מה ה%s שלך?"
1408
 
1409
- #: templates/account.php563, templates/account/billing.php:21
1410
  msgctxt "verb"
1411
  msgid "Edit"
1412
  msgstr "ערוך"
1413
 
1414
- #: templates/account.php:588
1415
  msgid "Sites"
1416
  msgstr "אתרים"
1417
 
1418
- #: templates/account.php:599
1419
  msgid "Search by address"
1420
  msgstr "חפש לפי כתובת"
1421
 
1422
- #: templates/account.php609, templates/debug.php:369
1423
  msgid "Address"
1424
  msgstr "כתובת"
1425
 
1426
- #: templates/account.php:610
1427
  msgid "License"
1428
  msgstr "רישיון"
1429
 
1430
- #: templates/account.php:611
1431
  msgid "Plan"
1432
  msgstr "חבילה"
1433
 
1434
- #: templates/account.php:656
1435
  msgctxt "as software license"
1436
  msgid "License"
1437
  msgstr "רישיון"
1438
 
1439
- #: templates/account.php:743
1440
  msgctxt "verb"
1441
  msgid "Hide"
1442
  msgstr "הסתר"
1443
 
1444
- #: templates/account.php:765
1445
  msgid "Processing"
1446
  msgstr "Processing"
1447
 
1448
- #: templates/account.php:768
1449
  msgid "Get updates for bleeding edge Beta versions of %s."
1450
  msgstr "Get updates for bleeding edge Beta versions of %s."
1451
 
1452
- #: templates/account.php:826
1453
  msgid "Cancelling %s"
1454
  msgstr "Cancelling %s"
1455
 
1456
- #: templates/account.php826, templates/account.php843,
1457
  #: templates/forms/subscription-cancellation.php27,
1458
  #: templates/forms/deactivation/form.php:133
1459
  msgid "trial"
1460
  msgstr "trial"
1461
 
1462
- #: templates/account.php841, templates/forms/deactivation/form.php:150
1463
  msgid "Cancelling %s..."
1464
  msgstr "Cancelling %s..."
1465
 
1466
- #: templates/account.php844, templates/forms/subscription-cancellation.php28,
1467
  #: templates/forms/deactivation/form.php:134
1468
  msgid "subscription"
1469
  msgstr "subscription"
1470
 
1471
- #: templates/account.php:858
1472
  msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1473
  msgstr "ביטול הרישיון יחסום את כל הפיטצ'רים שבתשלום אך יאפשר להפעיל את הרישיון על אתר אחר. האם תרצו להמשיך בכל זאת?"
1474
 
1475
- #: templates/add-ons.php:35
1476
  msgid "View details"
1477
  msgstr "פרטים נוספים"
1478
 
1479
- #: templates/add-ons.php:45
1480
  msgid "Add Ons for %s"
1481
  msgstr "הרחבות עבור %s"
1482
 
1483
- #: templates/add-ons.php:55
1484
- msgid "We could'nt load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1485
- msgstr "We could'nt load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1486
 
1487
- #: templates/add-ons.php:173
1488
  msgctxt "active add-on"
1489
  msgid "Active"
1490
  msgstr "Active"
1491
 
1492
- #: templates/add-ons.php:174
1493
  msgctxt "installed add-on"
1494
  msgid "Installed"
1495
  msgstr "Installed"
1496
 
1497
- #: templates/admin-notice.php13, templates/forms/license-activation.php209,
1498
  #: templates/forms/resend-key.php:77
1499
  msgctxt "as close a window"
1500
  msgid "Dismiss"
@@ -1546,7 +1565,7 @@ msgstr "שליחה חוזרת של מייל האקטיבציה"
1546
  msgid "Thanks %s!"
1547
  msgstr "תודה %s!"
1548
 
1549
- #: templates/connect.php172, templates/forms/license-activation.php:44
1550
  msgid "Agree & Activate License"
1551
  msgstr "הסכמה והפעלת רישיון"
1552
 
@@ -1594,11 +1613,12 @@ msgstr "Alternatively, you can skip it for now and activate the license later, i
1594
  msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
1595
  msgstr "During the update process we detected %s site(s) in the network that are still pending your attention."
1596
 
1597
- #: templates/connect.php253, templates/forms/license-activation.php:47
 
1598
  msgid "License key"
1599
  msgstr "מפתח רישיון"
1600
 
1601
- #: templates/connect.php256, templates/forms/license-activation.php:20
1602
  msgid "Can't find your license key?"
1603
  msgstr "האם אינך מוצא את מפתח הרישיון?"
1604
 
@@ -1652,7 +1672,7 @@ msgstr "הפעלה, כיבוי והסרה"
1652
  msgid "Newsletter"
1653
  msgstr "ניוסלטר"
1654
 
1655
- #: templates/connect.php391, templates/forms/license-activation.php:39
1656
  msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
1657
  msgstr "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
1658
 
@@ -1714,7 +1734,7 @@ msgid "Debugging"
1714
  msgstr "דיבוג"
1715
 
1716
  #: templates/debug.php54, templates/debug.php250, templates/debug.php376,
1717
- #: templates/debug.php:494
1718
  msgid "Actions"
1719
  msgstr "פעולות"
1720
 
@@ -1783,12 +1803,12 @@ msgstr "תוספים"
1783
  msgid "Themes"
1784
  msgstr "תבניות"
1785
 
1786
- #: templates/debug.php239, templates/debug.php371, templates/debug.php453,
1787
  #: templates/debug/scheduled-crons.php:80
1788
  msgid "Slug"
1789
  msgstr "מזהה כתובת"
1790
 
1791
- #: templates/debug.php241, templates/debug.php:452
1792
  msgid "Title"
1793
  msgstr "כותרת"
1794
 
@@ -1827,114 +1847,118 @@ msgstr "Simulate Trial Promotion"
1827
  msgid "Simulate Network Upgrade"
1828
  msgstr "סמלוץ עדכון לרשת"
1829
 
1830
- #: templates/debug.php:360
1831
  msgid "%s Installs"
1832
  msgstr "%s התקנות"
1833
 
1834
- #: templates/debug.php:362
1835
  msgctxt "like websites"
1836
  msgid "Sites"
1837
  msgstr "אתרים"
1838
 
1839
- #: templates/debug.php368, templates/account/partials/site.php:148
1840
  msgid "Blog ID"
1841
  msgstr "מזהה בלוג"
1842
 
1843
- #: templates/debug.php433, templates/debug.php511,
1844
- #: templates/account/partials/addon.php:396
 
 
 
 
1845
  msgctxt "verb"
1846
  msgid "Delete"
1847
  msgstr "מחק"
1848
 
1849
- #: templates/debug.php:447
1850
  msgid "Add Ons of module %s"
1851
  msgstr "Add Ons of module %s"
1852
 
1853
- #: templates/debug.php:484
1854
  msgid "Users"
1855
  msgstr "משתמשים"
1856
 
1857
- #: templates/debug.php:491
1858
  msgid "Verified"
1859
  msgstr "מאומת"
1860
 
1861
- #: templates/debug.php:522
1862
  msgid "%s Licenses"
1863
  msgstr "%s Licenses"
1864
 
1865
- #: templates/debug.php:527
1866
  msgid "Plugin ID"
1867
  msgstr "Plugin ID"
1868
 
1869
- #: templates/debug.php:529
1870
  msgid "Plan ID"
1871
  msgstr "Plan ID"
1872
 
1873
- #: templates/debug.php:530
1874
  msgid "Quota"
1875
  msgstr "Quota"
1876
 
1877
- #: templates/debug.php:531
1878
  msgid "Activated"
1879
  msgstr "Activated"
1880
 
1881
- #: templates/debug.php:532
1882
  msgid "Blocking"
1883
  msgstr "Blocking"
1884
 
1885
- #: templates/debug.php:534
1886
  msgctxt "as expiration date"
1887
  msgid "Expiration"
1888
  msgstr "תפוגה"
1889
 
1890
- #: templates/debug.php:557
1891
  msgid "Debug Log"
1892
  msgstr "Debug Log"
1893
 
1894
- #: templates/debug.php:561
1895
  msgid "All Types"
1896
  msgstr "כל הסוגים"
1897
 
1898
- #: templates/debug.php:568
1899
  msgid "All Requests"
1900
  msgstr "כל הבקשות"
1901
 
1902
- #: templates/debug.php573, templates/debug.php602,
1903
  #: templates/debug/logger.php:25
1904
  msgid "File"
1905
  msgstr "קובץ"
1906
 
1907
- #: templates/debug.php574, templates/debug.php600,
1908
  #: templates/debug/logger.php:23
1909
  msgid "Function"
1910
  msgstr "פונקציה"
1911
 
1912
- #: templates/debug.php:575
1913
  msgid "Process ID"
1914
  msgstr "Process ID"
1915
 
1916
- #: templates/debug.php:576
1917
  msgid "Logger"
1918
  msgstr "Logger"
1919
 
1920
- #: templates/debug.php577, templates/debug.php601,
1921
  #: templates/debug/logger.php:24
1922
  msgid "Message"
1923
  msgstr "הודעה"
1924
 
1925
- #: templates/debug.php:579
1926
  msgid "Filter"
1927
  msgstr "פילטר"
1928
 
1929
- #: templates/debug.php:587
1930
  msgid "Download"
1931
  msgstr "הורדה"
1932
 
1933
- #: templates/debug.php598, templates/debug/logger.php:22
1934
  msgid "Type"
1935
  msgstr "סוג"
1936
 
1937
- #: templates/debug.php603, templates/debug/logger.php:26
1938
  msgid "Timestamp"
1939
  msgstr "Timestamp"
1940
 
@@ -2259,11 +2283,27 @@ msgstr "בטל"
2259
  msgid "Become an affiliate"
2260
  msgstr "Become an affiliate"
2261
 
2262
- #: templates/forms/license-activation.php:21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2263
  msgid "Please enter the license key that you received in the email right after the purchase:"
2264
  msgstr "אנא הזן את הרישיון שקיבלת לתיבת הדואל שלך לאחר השלמת הרכישה."
2265
 
2266
- #: templates/forms/license-activation.php:26
2267
  msgid "Update License"
2268
  msgstr "עדכון רישיון"
2269
 
@@ -2330,14 +2370,6 @@ msgstr "Cancel %s - I no longer need any security & feature updates, nor support
2330
  msgid "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
2331
  msgstr "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
2332
 
2333
- #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
2334
- #. subscription'
2335
- #: templates/forms/subscription-cancellation.php99,
2336
- #: templates/account/partials/addon.php29,
2337
- #: templates/account/partials/site.php:298
2338
- msgid "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2339
- msgstr "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2340
-
2341
  #: templates/forms/subscription-cancellation.php:103
2342
  msgid "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
2343
  msgstr "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
@@ -2424,27 +2456,33 @@ msgstr "נשארו %s"
2424
  msgid "Last license"
2425
  msgstr "רישיון אחרון"
2426
 
2427
- #: templates/account/partials/addon.php:167
 
 
 
 
 
 
2428
  msgid "Cancelled"
2429
  msgstr "בוטל"
2430
 
2431
- #: templates/account/partials/addon.php:177
2432
  msgid "No expiration"
2433
  msgstr "ללא תפוגה"
2434
 
2435
- #: templates/account/partials/site.php:181
2436
  msgid "Owner Name"
2437
  msgstr "שם הבעלים"
2438
 
2439
- #: templates/account/partials/site.php:193
2440
  msgid "Owner Email"
2441
  msgstr "מייל הבעלים"
2442
 
2443
- #: templates/account/partials/site.php:205
2444
  msgid "Owner ID"
2445
  msgstr "מזהה הבעלים"
2446
 
2447
- #: templates/account/partials/site.php:270
2448
  msgid "Subscription"
2449
  msgstr "מנוי"
2450
 
8
  "Project-Id-Version: WordPress SDK\n"
9
  "Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
10
  "POT-Creation-Date: \n"
11
+ "PO-Revision-Date: 2019-10-07 15:33+0000\n"
12
  "Last-Translator: Vova Feldman <vova@freemius.com>\n"
13
  "Language: he_IL\n"
14
  "Language-Team: Hebrew (Israel) (http://www.transifex.com/freemius/wordpress-sdk/language/he_IL/)\n"
22
  "X-Poedit-SearchPathExcluded-0: *.js\n"
23
  "X-Poedit-SourceCharset: UTF-8\n"
24
 
25
+ #: includes/class-freemius.php1880, templates/account.php:840
26
  msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
27
  msgstr "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
28
 
29
+ #: includes/class-freemius.php:1887
30
  msgid "Would you like to proceed with the update?"
31
  msgstr "Would you like to proceed with the update?"
32
 
33
+ #: includes/class-freemius.php:2095
34
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
35
  msgstr "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
36
 
37
+ #: includes/class-freemius.php:2097
38
  msgid "Error"
39
  msgstr "שגיאה"
40
 
41
+ #: includes/class-freemius.php:2491
42
  msgid "I found a better %s"
43
  msgstr "מצאתי %s יותר טוב"
44
 
45
+ #: includes/class-freemius.php:2493
46
  msgid "What's the %s's name?"
47
  msgstr "What's the %s's name?"
48
 
49
+ #: includes/class-freemius.php:2499
50
  msgid "It's a temporary %s. I'm just debugging an issue."
51
  msgstr "It's a temporary %s. I'm just debugging an issue."
52
 
53
+ #: includes/class-freemius.php:2501
54
  msgid "Deactivation"
55
  msgstr "דיאקטיבציה"
56
 
57
+ #: includes/class-freemius.php:2502
58
  msgid "Theme Switch"
59
  msgstr "החלפת תֵמָה"
60
 
61
+ #: includes/class-freemius.php2511, templates/forms/resend-key.php:24
62
  msgid "Other"
63
  msgstr "אחר"
64
 
65
+ #: includes/class-freemius.php:2519
66
  msgid "I no longer need the %s"
67
  msgstr "I no longer need the %s"
68
 
69
+ #: includes/class-freemius.php:2526
70
  msgid "I only needed the %s for a short period"
71
  msgstr "I only needed the %s for a short period"
72
 
73
+ #: includes/class-freemius.php:2532
74
  msgid "The %s broke my site"
75
  msgstr "ה%s הרס לי את האתר"
76
 
77
+ #: includes/class-freemius.php:2539
78
  msgid "The %s suddenly stopped working"
79
  msgstr "ה%s הפסיק פתאום לעבוד"
80
 
81
+ #: includes/class-freemius.php:2549
82
  msgid "I can't pay for it anymore"
83
  msgstr "אני לא יכול/ה להמשיך לשלם על זה"
84
 
85
+ #: includes/class-freemius.php:2551
86
  msgid "What price would you feel comfortable paying?"
87
  msgstr "מה המחיר שכן תרגיש\\י בנוח לשלם?"
88
 
89
+ #: includes/class-freemius.php:2557
90
  msgid "I don't like to share my information with you"
91
  msgstr "אני לא אוהב את הרעיון של שיתוף מידע איתכם"
92
 
93
+ #: includes/class-freemius.php:2578
94
  msgid "The %s didn't work"
95
  msgstr "ה%s לא עבד"
96
 
97
+ #: includes/class-freemius.php:2588
98
  msgid "I couldn't understand how to make it work"
99
  msgstr "לא הצלחתי להבין איך לגרום לזה לעבוד"
100
 
101
+ #: includes/class-freemius.php:2596
102
  msgid "The %s is great, but I need specific feature that you don't support"
103
  msgstr "The %s is great, but I need specific feature that you don't support"
104
 
105
+ #: includes/class-freemius.php:2598
106
  msgid "What feature?"
107
  msgstr "איזה פיטצ'ר?"
108
 
109
+ #: includes/class-freemius.php:2602
110
  msgid "The %s is not working"
111
  msgstr "ה%s לא עובד"
112
 
113
+ #: includes/class-freemius.php:2604
114
  msgid "Kindly share what didn't work so we can fix it for future users..."
115
  msgstr "אנא שתפ\\י מה לא עבד כדי שנוכל לתקן זאת עבור משתמשים עתידיים..."
116
 
117
+ #: includes/class-freemius.php:2608
118
  msgid "It's not what I was looking for"
119
  msgstr "חיפשתי משהו אחר"
120
 
121
+ #: includes/class-freemius.php:2610
122
  msgid "What you've been looking for?"
123
  msgstr "מה חיפשת?"
124
 
125
+ #: includes/class-freemius.php:2614
126
  msgid "The %s didn't work as expected"
127
  msgstr "ה%s לא עבד כמצופה"
128
 
129
+ #: includes/class-freemius.php:2616
130
  msgid "What did you expect?"
131
  msgstr "למה ציפית?"
132
 
133
+ #: includes/class-freemius.php3471, templates/debug.php:20
134
  msgid "Freemius Debug"
135
  msgstr "ניפוי תקלות פרימיוס"
136
 
137
+ #: includes/class-freemius.php:4223
138
  msgid "I don't know what is cURL or how to install it, help me!"
139
  msgstr "אין לי מושג מה זה cURL או איך להתקין אותו - אשמח לעזרה!"
140
 
141
+ #: includes/class-freemius.php:4225
142
  msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
143
  msgstr "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
144
 
145
+ #: includes/class-freemius.php:4232
146
  msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
147
  msgstr "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
148
 
149
+ #: includes/class-freemius.php:4337
150
  msgid "Yes - do your thing"
151
  msgstr "כן - בצעו את מה שצריך"
152
 
153
+ #: includes/class-freemius.php:4342
154
  msgid "No - just deactivate"
155
  msgstr "לא - פשוט כבה"
156
 
157
+ #: includes/class-freemius.php4387, includes/class-freemius.php4881,
158
+ #: includes/class-freemius.php6032, includes/class-freemius.php13153,
159
+ #: includes/class-freemius.php16558, includes/class-freemius.php16646,
160
+ #: includes/class-freemius.php16812, includes/class-freemius.php19040,
161
+ #: includes/class-freemius.php19381, includes/class-freemius.php19391,
162
+ #: includes/class-freemius.php20051, includes/class-freemius.php20924,
163
+ #: includes/class-freemius.php21039, includes/class-freemius.php21183,
164
+ #: templates/add-ons.php:57
165
  msgctxt "exclamation"
166
  msgid "Oops"
167
  msgstr "אופס"
168
 
169
+ #: includes/class-freemius.php:4456
170
  msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
171
  msgstr "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
172
 
173
+ #: includes/class-freemius.php:4878
174
  msgctxt "addonX cannot run without pluginY"
175
  msgid "%s cannot run without %s."
176
  msgstr "%s לא יכול לעבוד ללא %s."
177
 
178
+ #: includes/class-freemius.php:4879
179
  msgctxt "addonX cannot run..."
180
  msgid "%s cannot run without the plugin."
181
  msgstr "ההרחבה %s אינה יכולה לפעול ללא התוסף."
182
 
183
+ #: includes/class-freemius.php5052, includes/class-freemius.php5077,
184
+ #: includes/class-freemius.php:20122
185
  msgid "Unexpected API error. Please contact the %s's author with the following error."
186
  msgstr "Unexpected API error. Please contact the %s's author with the following error."
187
 
188
+ #: includes/class-freemius.php:5720
189
  msgid "Premium %s version was successfully activated."
190
  msgstr "Premium %s version was successfully activated."
191
 
192
+ #: includes/class-freemius.php5732, includes/class-freemius.php:7599
193
  msgctxt ""
194
  msgid "W00t"
195
  msgstr "יש"
196
 
197
+ #: includes/class-freemius.php:5747
198
  msgid "You have a %s license."
199
  msgstr "יש לך רישיון %s."
200
 
201
+ #: includes/class-freemius.php5751, includes/class-freemius.php15975,
202
+ #: includes/class-freemius.php15986, includes/class-freemius.php19292,
203
+ #: includes/class-freemius.php19642, includes/class-freemius.php19711,
204
+ #: includes/class-freemius.php:19876
205
  msgctxt "interjection expressing joy or exuberance"
206
  msgid "Yee-haw"
207
  msgstr "יששש"
208
 
209
+ #: includes/class-freemius.php:6015
210
  msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
211
  msgstr "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
212
 
213
+ #: includes/class-freemius.php:6019
214
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
215
  msgstr "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
216
 
217
+ #: includes/class-freemius.php6028, templates/add-ons.php186,
218
+ #: templates/account/partials/addon.php:381
219
  msgid "More information about %s"
220
  msgstr "מידע נוסף אודות %s"
221
 
222
+ #: includes/class-freemius.php:6029
223
  msgid "Purchase License"
224
  msgstr "קניית רישיון"
225
 
226
+ #: includes/class-freemius.php6964, templates/connect.php:163
227
  msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
228
  msgstr "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
229
 
230
+ #: includes/class-freemius.php:6968
231
  msgid "start the trial"
232
  msgstr "התחל תקופת ניסיון"
233
 
234
+ #: includes/class-freemius.php6969, templates/connect.php:167
235
  msgid "complete the install"
236
  msgstr "השלם התקנה"
237
 
238
+ #: includes/class-freemius.php:7081
239
  msgid "You are just one step away - %s"
240
  msgstr "You are just one step away - %s"
241
 
242
+ #: includes/class-freemius.php:7084
243
  msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
244
  msgid "Complete \"%s\" Activation Now"
245
  msgstr "השלם הפעלת \"%s\" עכשיו"
246
 
247
+ #: includes/class-freemius.php:7162
248
  msgid "We made a few tweaks to the %s, %s"
249
  msgstr "We made a few tweaks to the %s, %s"
250
 
251
+ #: includes/class-freemius.php:7166
252
  msgid "Opt in to make \"%s\" better!"
253
  msgstr "Opt in to make \"%s\" better!"
254
 
255
+ #: includes/class-freemius.php:7598
256
  msgid "The upgrade of %s was successfully completed."
257
  msgstr "The upgrade of %s was successfully completed."
258
 
259
+ #: includes/class-freemius.php9802, includes/class-fs-plugin-updater.php1038,
260
+ #: includes/class-fs-plugin-updater.php1233,
261
+ #: includes/class-fs-plugin-updater.php1240,
262
  #: templates/auto-installation.php:32
263
  msgid "Add-On"
264
  msgstr "Add-On"
265
 
266
+ #: includes/class-freemius.php9804, templates/account.php335,
267
+ #: templates/account.php343, templates/debug.php360, templates/debug.php:551
268
  msgid "Plugin"
269
  msgstr "תוסף"
270
 
271
+ #: includes/class-freemius.php9805, templates/account.php336,
272
+ #: templates/account.php344, templates/debug.php360, templates/debug.php551,
273
  #: templates/forms/deactivation/form.php:71
274
  msgid "Theme"
275
  msgstr "תבנית"
276
 
277
+ #: includes/class-freemius.php:12596
278
  msgid "An unknown error has occurred while trying to set the user's beta mode."
279
  msgstr "An unknown error has occurred while trying to set the user's beta mode."
280
 
281
+ #: includes/class-freemius.php:13020
282
  msgid "Invalid site details collection."
283
  msgstr "Invalid site details collection."
284
 
285
+ #: includes/class-freemius.php:13140
286
  msgid "We couldn't find your email address in the system, are you sure it's the right address?"
287
  msgstr "We couldn't find your email address in the system, are you sure it's the right address?"
288
 
289
+ #: includes/class-freemius.php:13142
290
  msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
291
  msgstr "We can't see any active licenses associated with that email address, are you sure it's the right address?"
292
 
293
+ #: includes/class-freemius.php:13416
294
  msgid "Account is pending activation."
295
  msgstr "Account is pending activation."
296
 
297
+ #: includes/class-freemius.php13528,
298
  #: templates/forms/premium-versions-upgrade-handler.php:47
299
  msgid "Buy a license now"
300
  msgstr "Buy a license now"
301
 
302
+ #: includes/class-freemius.php13540,
303
  #: templates/forms/premium-versions-upgrade-handler.php:46
304
  msgid "Renew your license now"
305
  msgstr "Renew your license now"
306
 
307
+ #: includes/class-freemius.php:13544
308
  msgid "%s to access version %s security & feature updates, and support."
309
  msgstr "%s to access version %s security & feature updates, and support."
310
 
311
+ #: includes/class-freemius.php:15957
312
  msgid "%s activation was successfully completed."
313
  msgstr "הפעלת %s הושלמה בהצלחה."
314
 
315
+ #: includes/class-freemius.php:15971
316
  msgid "Your account was successfully activated with the %s plan."
317
  msgstr "חשבונך הופעל בהצלחה עם חבילת %s."
318
 
319
+ #: includes/class-freemius.php15982, includes/class-freemius.php:19707
320
  msgid "Your trial has been successfully started."
321
  msgstr "הניסיון שלך הופעל בהצלחה."
322
 
323
+ #: includes/class-freemius.php16556, includes/class-freemius.php16644,
324
+ #: includes/class-freemius.php:16810
325
  msgid "Couldn't activate %s."
326
  msgstr "לא ניתן להפעיל את %s."
327
 
328
+ #: includes/class-freemius.php16557, includes/class-freemius.php16645,
329
+ #: includes/class-freemius.php:16811
330
  msgid "Please contact us with the following message:"
331
  msgstr "אנא צור איתנו קשר יחד עם ההודעה הבאה:"
332
 
333
+ #: includes/class-freemius.php16641, templates/forms/data-debug-mode.php:162
334
  msgid "An unknown error has occurred."
335
  msgstr "An unknown error has occurred."
336
 
337
+ #: includes/class-freemius.php17168, includes/class-freemius.php:22082
338
  msgid "Upgrade"
339
  msgstr "שדרג"
340
 
341
+ #: includes/class-freemius.php:17174
342
  msgid "Start Trial"
343
  msgstr "התחל תקופת ניסיון"
344
 
345
+ #: includes/class-freemius.php:17176
346
  msgid "Pricing"
347
  msgstr "מחירון"
348
 
349
+ #: includes/class-freemius.php17256, includes/class-freemius.php:17258
350
  msgid "Affiliation"
351
  msgstr "אפיליאציה"
352
 
353
+ #: includes/class-freemius.php17286, includes/class-freemius.php17288,
354
+ #: templates/account.php183, templates/debug.php:326
355
  msgid "Account"
356
  msgstr "חשבון"
357
 
358
+ #: includes/class-freemius.php17302, includes/class-freemius.php17304,
359
  #: includes/customizer/class-fs-customizer-support-section.php:60
360
  msgid "Contact Us"
361
  msgstr "יצירת קשר"
362
 
363
+ #: includes/class-freemius.php17315, includes/class-freemius.php17317,
364
+ #: includes/class-freemius.php22096, templates/account.php111,
365
+ #: templates/account/partials/addon.php:44
366
  msgid "Add-Ons"
367
  msgstr "Add-Ons"
368
 
369
+ #: includes/class-freemius.php:17351
370
  msgctxt "ASCII arrow left icon"
371
  msgid "&#x2190;"
372
  msgstr "&#x2190;"
373
 
374
+ #: includes/class-freemius.php:17351
375
  msgctxt "ASCII arrow right icon"
376
  msgid "&#x27a4;"
377
  msgstr "&#x27a4;"
378
 
379
+ #: includes/class-freemius.php17353, templates/pricing.php:103
380
  msgctxt "noun"
381
  msgid "Pricing"
382
  msgstr "מחירון"
383
 
384
+ #: includes/class-freemius.php17566,
385
  #: includes/customizer/class-fs-customizer-support-section.php:67
386
  msgid "Support Forum"
387
  msgstr "פורום תמיכה"
388
 
389
+ #: includes/class-freemius.php:18536
390
  msgid "Your email has been successfully verified - you are AWESOME!"
391
  msgstr "Your email has been successfully verified - you are AWESOME!"
392
 
393
+ #: includes/class-freemius.php:18537
394
  msgctxt "a positive response"
395
  msgid "Right on"
396
  msgstr "מעולה"
397
 
398
+ #: includes/class-freemius.php:19041
399
+ msgid "seems like the key you entered doesn't match our records."
400
+ msgstr "seems like the key you entered doesn't match our records."
401
+
402
+ #: includes/class-freemius.php:19065
403
+ msgid "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
404
+ msgstr "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
405
+
406
+ #: includes/class-freemius.php:19283
407
  msgid "Your %s Add-on plan was successfully upgraded."
408
  msgstr "חבילת ההרחבה %s שודרגה בהצלחה."
409
 
410
+ #: includes/class-freemius.php:19285
411
  msgid "%s Add-on was successfully purchased."
412
  msgstr "ההרחבה %s נרכשה בהצלחה."
413
 
414
+ #: includes/class-freemius.php:19288
415
  msgid "Download the latest version"
416
  msgstr "הורד את הגרסה האחרונה"
417
 
418
+ #: includes/class-freemius.php:19374
419
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
420
  msgstr "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
421
 
422
+ #: includes/class-freemius.php19380, includes/class-freemius.php19390,
423
+ #: includes/class-freemius.php19835, includes/class-freemius.php:19924
424
  msgid "Error received from the server:"
425
  msgstr "הוחזרה שגיאה מהשרת:"
426
 
427
+ #: includes/class-freemius.php:19390
428
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
429
  msgstr "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
430
 
431
+ #: includes/class-freemius.php19604, includes/class-freemius.php19840,
432
+ #: includes/class-freemius.php19895, includes/class-freemius.php:19998
433
  msgctxt ""
434
  msgid "Hmm"
435
  msgstr "אממ"
436
 
437
+ #: includes/class-freemius.php:19617
438
  msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
439
  msgstr "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
440
 
441
+ #: includes/class-freemius.php19618, templates/account.php113,
442
+ #: templates/add-ons.php250, templates/account/partials/addon.php:46
443
  msgctxt "trial period"
444
  msgid "Trial"
445
  msgstr "ניסיון"
446
 
447
+ #: includes/class-freemius.php:19623
448
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
449
  msgstr "שידרגתי את החשבון שלי אבל כשאני מנסה לבצע סנכרון לרישיון החבילה נשארת %s."
450
 
451
+ #: includes/class-freemius.php19627, includes/class-freemius.php:19686
452
  msgid "Please contact us here"
453
  msgstr "אנא צור איתנו קשר כאן"
454
 
455
+ #: includes/class-freemius.php:19638
456
  msgid "Your plan was successfully activated."
457
  msgstr "Your plan was successfully activated."
458
 
459
+ #: includes/class-freemius.php:19639
460
  msgid "Your plan was successfully upgraded."
461
  msgstr "החבילה שודרגה בהצלחה."
462
 
463
+ #: includes/class-freemius.php:19656
464
  msgid "Your plan was successfully changed to %s."
465
  msgstr "החבילה עודכנה בהצלחה אל %s."
466
 
467
+ #: includes/class-freemius.php:19672
468
  msgid "Your license has expired. You can still continue using the free %s forever."
469
  msgstr "Your license has expired. You can still continue using the free %s forever."
470
 
471
+ #: includes/class-freemius.php:19674
472
  msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
473
  msgstr "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
474
 
475
+ #: includes/class-freemius.php:19682
476
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
477
  msgstr "רשיונך בוטל. אם לדעתך זו טעות, נא ליצור קשר עם התמיכה."
478
 
479
+ #: includes/class-freemius.php:19695
480
  msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
481
  msgstr "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
482
 
483
+ #: includes/class-freemius.php:19721
484
  msgid "Your free trial has expired. You can still continue using all our free features."
485
  msgstr "תקופת הניסיון שלך הסתיימה. הפיטצ'רים החינאמיים עדיין ניתנים לשימוש."
486
 
487
+ #: includes/class-freemius.php:19723
488
  msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
489
  msgstr "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
490
 
491
+ #: includes/class-freemius.php:19831
492
  msgid "It looks like the license could not be activated."
493
  msgstr "נראה שלא ניתן להפעיל את הרישיון."
494
 
495
+ #: includes/class-freemius.php:19873
496
  msgid "Your license was successfully activated."
497
  msgstr "הרישיון הופעל בהצלחה."
498
 
499
+ #: includes/class-freemius.php:19899
500
  msgid "It looks like your site currently doesn't have an active license."
501
  msgstr "נראה לאתר עדיין אין רישיון פעיל."
502
 
503
+ #: includes/class-freemius.php:19923
504
  msgid "It looks like the license deactivation failed."
505
  msgstr "נראה שניתוק הרישיון נכשל."
506
 
507
+ #: includes/class-freemius.php:19951
508
  msgid "Your license was successfully deactivated, you are back to the %s plan."
509
  msgstr "רישיונך נותק בהצלחה, חזרת לחבילת %s"
510
 
511
+ #: includes/class-freemius.php:19952
512
  msgid "O.K"
513
  msgstr "אוקיי"
514
 
515
+ #: includes/class-freemius.php:20005
516
  msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
517
  msgstr "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
518
 
519
+ #: includes/class-freemius.php:20014
520
  msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
521
  msgstr "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
522
 
523
+ #: includes/class-freemius.php:20056
524
  msgid "You are already running the %s in a trial mode."
525
  msgstr "You are already running the %s in a trial mode."
526
 
527
+ #: includes/class-freemius.php:20067
528
  msgid "You already utilized a trial before."
529
  msgstr "הניסיון כבר נוצל בעבר."
530
 
531
+ #: includes/class-freemius.php:20081
532
  msgid "Plan %s do not exist, therefore, can't start a trial."
533
  msgstr "החבילה %s אינה קיימת, לכן, לא ניתן להתחיל תקופת ניסיון."
534
 
535
+ #: includes/class-freemius.php:20092
536
  msgid "Plan %s does not support a trial period."
537
  msgstr "תוכנית %s אינה תומכת בתקופת ניסיון."
538
 
539
+ #: includes/class-freemius.php:20103
540
  msgid "None of the %s's plans supports a trial period."
541
  msgstr "None of the %s's plans supports a trial period."
542
 
543
+ #: includes/class-freemius.php:20153
544
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
545
  msgstr "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
546
 
547
+ #: includes/class-freemius.php:20189
548
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
549
  msgstr "נראה שיש תקלה זמנית המונעת את ביטול הניסיון. אנא נסו שוב בעוד כמה דקות."
550
 
551
+ #: includes/class-freemius.php:20208
552
  msgid "Your %s free trial was successfully cancelled."
553
  msgstr "תקופת הניסיון החינמית של %s בוטלה בהצלחה."
554
 
555
+ #: includes/class-freemius.php:20524
556
  msgid "Version %s was released."
557
  msgstr "גרסה %s הושקה."
558
 
559
+ #: includes/class-freemius.php:20524
560
  msgid "Please download %s."
561
  msgstr "נא להוריד את %s."
562
 
563
+ #: includes/class-freemius.php:20531
564
  msgid "the latest %s version here"
565
  msgstr "גרסת ה-%s האחרונה כאן"
566
 
567
+ #: includes/class-freemius.php:20536
568
  msgid "New"
569
  msgstr "חדש"
570
 
571
+ #: includes/class-freemius.php:20541
572
  msgid "Seems like you got the latest release."
573
  msgstr "נראה שיש לך את הגרסה האחרונה."
574
 
575
+ #: includes/class-freemius.php:20542
576
  msgid "You are all good!"
577
  msgstr "את\\ה מסודר!"
578
 
579
+ #: includes/class-freemius.php:20812
580
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
581
  msgstr "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
582
 
583
+ #: includes/class-freemius.php:20951
584
  msgid "Site successfully opted in."
585
  msgstr "Site successfully opted in."
586
 
587
+ #: includes/class-freemius.php20952, includes/class-freemius.php:21792
588
  msgid "Awesome"
589
  msgstr "אדיר"
590
 
591
+ #: includes/class-freemius.php20968, templates/forms/optout.php:32
592
  msgid "We appreciate your help in making the %s better by letting us track some usage data."
593
  msgstr "We appreciate your help in making the %s better by letting us track some usage data."
594
 
595
+ #: includes/class-freemius.php:20969
596
  msgid "Thank you!"
597
  msgstr "תודה רבה!"
598
 
599
+ #: includes/class-freemius.php:20976
600
  msgid "We will no longer be sending any usage data of %s on %s to %s."
601
  msgstr "We will no longer be sending any usage data of %s on %s to %s."
602
 
603
+ #: includes/class-freemius.php:21105
604
  msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
605
  msgstr "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
606
 
607
+ #: includes/class-freemius.php:21111
608
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
609
  msgstr "תודה על אישור ביצוע החלפת הבעלות. הרגע נשלח מייל ל-%s כדי לקבל אישור סופי."
610
 
611
+ #: includes/class-freemius.php:21116
612
  msgid "%s is the new owner of the account."
613
  msgstr "%s הינו הבעלים החד של חשבון זה."
614
 
615
+ #: includes/class-freemius.php:21118
616
  msgctxt "as congratulations"
617
  msgid "Congrats"
618
  msgstr "מזל טוב"
619
 
620
+ #: includes/class-freemius.php:21138
621
  msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
622
  msgstr "Sorry, we could not complete the email update. Another user with the same email is already registered."
623
 
624
+ #: includes/class-freemius.php:21139
625
  msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
626
  msgstr "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
627
 
628
+ #: includes/class-freemius.php:21146
629
  msgid "Change Ownership"
630
  msgstr "עדכון בעלות"
631
 
632
+ #: includes/class-freemius.php:21154
633
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
634
  msgstr "כתובת הדואל שלך עודכנה בהצלחה. הודעת אישור אמורה להתקבל בדואל שלך ברגעים הקרובים."
635
 
636
+ #: includes/class-freemius.php:21166
637
  msgid "Please provide your full name."
638
  msgstr "נא למלא את שמך המלא."
639
 
640
+ #: includes/class-freemius.php:21171
641
  msgid "Your name was successfully updated."
642
  msgstr "שמך עודכן בהצלחה."
643
 
644
+ #: includes/class-freemius.php:21232
645
  msgid "You have successfully updated your %s."
646
  msgstr "עידכנת בהצלחה את ה%s."
647
 
648
+ #: includes/class-freemius.php:21372
649
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
650
  msgstr "Just letting you know that the add-ons information of %s is being pulled from an external server."
651
 
652
+ #: includes/class-freemius.php:21373
653
  msgctxt "advance notice of something that will need attention."
654
  msgid "Heads up"
655
  msgstr "לתשמות לבך"
656
 
657
+ #: includes/class-freemius.php:21832
658
  msgctxt "exclamation"
659
  msgid "Hey"
660
  msgstr "היי"
661
 
662
+ #: includes/class-freemius.php:21832
663
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
664
  msgstr "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
665
 
666
+ #: includes/class-freemius.php:21840
667
  msgid "No commitment for %s days - cancel anytime!"
668
  msgstr "ללא התחייבות ל-%s ימין - בטלו בכל רגע!"
669
 
670
+ #: includes/class-freemius.php:21841
671
  msgid "No credit card required"
672
  msgstr "לא נדרש כרטיס אשראי"
673
 
674
+ #: includes/class-freemius.php21848, templates/forms/trial-start.php:53
675
  msgctxt "call to action"
676
  msgid "Start free trial"
677
  msgstr "התחלת ניסיון חינם"
678
 
679
+ #: includes/class-freemius.php:21925
680
  msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
681
  msgstr "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
682
 
683
+ #: includes/class-freemius.php:21934
684
  msgid "Learn more"
685
  msgstr "Learn more"
686
 
687
+ #: includes/class-freemius.php22120, templates/account.php499,
688
+ #: templates/account.php624, templates/connect.php171,
689
+ #: templates/connect.php421, templates/forms/license-activation.php27,
690
+ #: templates/account/partials/addon.php:321
691
  msgid "Activate License"
692
  msgstr "הפעלת רישיון"
693
 
694
+ #: includes/class-freemius.php22121, templates/account.php571,
695
+ #: templates/account.php623, templates/account/partials/addon.php322,
696
+ #: templates/account/partials/site.php:271
697
  msgid "Change License"
698
  msgstr "שינוי רישיון"
699
 
700
+ #: includes/class-freemius.php22217, templates/account/partials/site.php:169
701
  msgid "Opt Out"
702
  msgstr "Opt Out"
703
 
704
+ #: includes/class-freemius.php22219, includes/class-freemius.php22225,
705
+ #: templates/account/partials/site.php49,
706
+ #: templates/account/partials/site.php:169
707
  msgid "Opt In"
708
  msgstr "Opt In"
709
 
710
+ #: includes/class-freemius.php:22453
711
  msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
712
  msgstr " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
713
 
714
+ #: includes/class-freemius.php:22461
715
  msgid "Activate %s features"
716
  msgstr "Activate %s features"
717
 
718
+ #: includes/class-freemius.php:22474
719
  msgid "Please follow these steps to complete the upgrade"
720
  msgstr "נא לבצע את הצעדים הבאים להשלמת השידרוג"
721
 
722
+ #: includes/class-freemius.php:22478
723
  msgid "Download the latest %s version"
724
  msgstr "הורד\\י את גרסת ה-%s העדכנית"
725
 
726
+ #: includes/class-freemius.php:22482
727
  msgid "Upload and activate the downloaded version"
728
  msgstr "העלה\\י והפעיל\\י את הגרסה שהורדת"
729
 
730
+ #: includes/class-freemius.php:22484
731
  msgid "How to upload and activate?"
732
  msgstr "איך להעלות ולהפעיל?"
733
 
734
+ #: includes/class-freemius.php:22618
735
  msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
736
  msgstr "%sClick here%s to choose the sites where you'd like to activate the license on."
737
 
738
+ #: includes/class-freemius.php:22779
739
  msgid "Auto installation only works for opted-in users."
740
  msgstr "Auto installation only works for opted-in users."
741
 
742
+ #: includes/class-freemius.php22789, includes/class-freemius.php22822,
743
+ #: includes/class-fs-plugin-updater.php1212,
744
+ #: includes/class-fs-plugin-updater.php:1226
745
  msgid "Invalid module ID."
746
  msgstr "מזהה המודול לא תקני."
747
 
748
+ #: includes/class-freemius.php22798, includes/class-fs-plugin-updater.php:1248
749
  msgid "Premium version already active."
750
  msgstr "הגרסה בתשלום כבר פעילה."
751
 
752
+ #: includes/class-freemius.php:22805
753
  msgid "You do not have a valid license to access the premium version."
754
  msgstr "אין ברשותך רישיון בר תוקף לשימוש בגרסת הפרימיום."
755
 
756
+ #: includes/class-freemius.php:22812
757
  msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
758
  msgstr "Plugin is a \"Serviceware\" which means it does not have a premium code version."
759
 
760
+ #: includes/class-freemius.php22830, includes/class-fs-plugin-updater.php:1247
761
  msgid "Premium add-on version already installed."
762
  msgstr "Premium add-on version already installed."
763
 
764
+ #: includes/class-freemius.php:23180
765
  msgid "View paid features"
766
  msgstr "צפה בפיטצ'רים שבתשלום"
767
 
768
+ #: includes/class-freemius.php:23502
769
  msgid "Thank you so much for using %s and its add-ons!"
770
  msgstr "Thank you so much for using %s and its add-ons!"
771
 
772
+ #: includes/class-freemius.php:23503
773
  msgid "Thank you so much for using %s!"
774
  msgstr "אנו מודים לך על היותך כמשתמש של %s!"
775
 
776
+ #: includes/class-freemius.php:23509
777
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
778
  msgstr "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
779
 
780
+ #: includes/class-freemius.php:23513
781
  msgid "Thank you so much for using our products!"
782
  msgstr "אנו מודים לך על השימוש במוצרים שלנו!"
783
 
784
+ #: includes/class-freemius.php:23514
785
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
786
  msgstr "You've already opted-in to our usage-tracking, which helps us keep improving them."
787
 
788
+ #: includes/class-freemius.php:23533
789
  msgid "%s and its add-ons"
790
  msgstr "%s and its add-ons"
791
 
792
+ #: includes/class-freemius.php:23542
793
  msgid "Products"
794
  msgstr "מוצרים"
795
 
796
+ #: includes/class-freemius.php23549, templates/connect.php:272
797
  msgid "Yes"
798
  msgstr "כן"
799
 
800
+ #: includes/class-freemius.php23550, templates/connect.php:273
801
  msgid "send me security & feature updates, educational content and offers."
802
  msgstr "תשלחו לי עדכוני אבטחה ופיטצ'רים, תוכן חינוכי, ומידע אודות מבצעים."
803
 
804
+ #: includes/class-freemius.php23551, templates/connect.php:278
805
  msgid "No"
806
  msgstr "לא"
807
 
808
+ #: includes/class-freemius.php23553, templates/connect.php:280
809
  msgid "do %sNOT%s send me security & feature updates, educational content and offers."
810
  msgstr "%sאל%2$s תשלחו לי עדכוני אבטחה, פיטצ'רים, תוכן חינוכי, ומידע על מבצעים."
811
 
812
+ #: includes/class-freemius.php:23563
813
  msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
814
  msgstr "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
815
 
816
+ #: includes/class-freemius.php23565, templates/connect.php:287
817
  msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
818
  msgstr "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
819
 
820
+ #: includes/class-freemius.php:23847
821
  msgid "License key is empty."
822
  msgstr "מפתח הרישיון ריק."
823
 
824
+ #: includes/class-fs-plugin-updater.php206,
825
  #: templates/forms/premium-versions-upgrade-handler.php:57
826
  msgid "Renew license"
827
  msgstr "חידוש רישיון"
828
 
829
+ #: includes/class-fs-plugin-updater.php211,
830
  #: templates/forms/premium-versions-upgrade-handler.php:58
831
  msgid "Buy license"
832
  msgstr "Buy license"
833
 
834
+ #: includes/class-fs-plugin-updater.php321,
835
+ #: includes/class-fs-plugin-updater.php:354
836
  msgid "There is a %s of %s available."
837
  msgstr "There is a %s of %s available."
838
 
839
+ #: includes/class-fs-plugin-updater.php323,
840
+ #: includes/class-fs-plugin-updater.php:359
841
  msgid "new Beta version"
842
  msgstr "new Beta version"
843
 
844
+ #: includes/class-fs-plugin-updater.php324,
845
+ #: includes/class-fs-plugin-updater.php:360
846
  msgid "new version"
847
  msgstr "new version"
848
 
849
+ #: includes/class-fs-plugin-updater.php:383
850
  msgid "Important Upgrade Notice:"
851
  msgstr "Important Upgrade Notice:"
852
 
853
+ #: includes/class-fs-plugin-updater.php:1277
854
  msgid "Installing plugin: %s"
855
  msgstr "Installing plugin: %s"
856
 
857
+ #: includes/class-fs-plugin-updater.php:1318
858
  msgid "Unable to connect to the filesystem. Please confirm your credentials."
859
  msgstr "Unable to connect to the filesystem. Please confirm your credentials."
860
 
861
+ #: includes/class-fs-plugin-updater.php:1500
862
  msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
863
  msgstr "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
864
 
865
+ #: includes/fs-plugin-info-dialog.php:535
866
  msgid "Purchase More"
867
  msgstr "Purchase More"
868
 
869
+ #: includes/fs-plugin-info-dialog.php536,
870
+ #: templates/account/partials/addon.php:385
871
  msgctxt "verb"
872
  msgid "Purchase"
873
  msgstr "רכישה"
874
 
875
+ #: includes/fs-plugin-info-dialog.php:540
876
  msgid "Start my free %s"
877
  msgstr "התחל את %s הניסיון שלי"
878
 
879
+ #: includes/fs-plugin-info-dialog.php:738
880
  msgid "Install Free Version Update Now"
881
  msgstr "התקן עדכון גרסה חינאמית עכשיו"
882
 
883
+ #: includes/fs-plugin-info-dialog.php739, templates/account.php:560
884
  msgid "Install Update Now"
885
  msgstr "התקן עדכון במיידי"
886
 
887
+ #: includes/fs-plugin-info-dialog.php:748
888
  msgid "Install Free Version Now"
889
  msgstr "התקן גרסה חינאמית עכשיו"
890
 
891
+ #: includes/fs-plugin-info-dialog.php749, templates/add-ons.php323,
892
  #: templates/auto-installation.php111,
893
+ #: templates/account/partials/addon.php365,
894
+ #: templates/account/partials/addon.php:418
895
  msgid "Install Now"
896
  msgstr "התקן עכשיו"
897
 
898
+ #: includes/fs-plugin-info-dialog.php:765
899
  msgctxt "as download latest version"
900
  msgid "Download Latest Free Version"
901
  msgstr "Download Latest Free Version"
902
 
903
+ #: includes/fs-plugin-info-dialog.php766, templates/account.php91,
904
+ #: templates/add-ons.php37, templates/account/partials/addon.php:25
905
  msgctxt "as download latest version"
906
  msgid "Download Latest"
907
  msgstr "הורד גרסה אחרונה"
908
 
909
+ #: includes/fs-plugin-info-dialog.php781, templates/add-ons.php329,
910
+ #: templates/account/partials/addon.php356,
911
+ #: templates/account/partials/addon.php:412
912
  msgid "Activate this add-on"
913
  msgstr "הפעל את ההרחבה"
914
 
915
+ #: includes/fs-plugin-info-dialog.php783, templates/connect.php:418
916
  msgid "Activate Free Version"
917
  msgstr "הפעלת גירסה חינאמית"
918
 
919
+ #: includes/fs-plugin-info-dialog.php784, templates/account.php115,
920
+ #: templates/add-ons.php330, templates/account/partials/addon.php:48
921
  msgid "Activate"
922
  msgstr "הפעלה"
923
 
924
+ #: includes/fs-plugin-info-dialog.php:994
925
  msgctxt "Plugin installer section title"
926
  msgid "Description"
927
  msgstr "תיאור"
928
 
929
+ #: includes/fs-plugin-info-dialog.php:995
930
  msgctxt "Plugin installer section title"
931
  msgid "Installation"
932
  msgstr "התקנה"
933
 
934
+ #: includes/fs-plugin-info-dialog.php:996
935
  msgctxt "Plugin installer section title"
936
  msgid "FAQ"
937
  msgstr "שאלות נפוצות"
938
 
939
+ #: includes/fs-plugin-info-dialog.php997,
940
  #: templates/plugin-info/description.php:55
941
  msgid "Screenshots"
942
  msgstr "צילומי מסך"
943
 
944
+ #: includes/fs-plugin-info-dialog.php:998
945
  msgctxt "Plugin installer section title"
946
  msgid "Changelog"
947
  msgstr "לוג שינויים"
948
 
949
+ #: includes/fs-plugin-info-dialog.php:999
950
  msgctxt "Plugin installer section title"
951
  msgid "Reviews"
952
  msgstr "ביקורות"
953
 
954
+ #: includes/fs-plugin-info-dialog.php:1000
955
  msgctxt "Plugin installer section title"
956
  msgid "Other Notes"
957
  msgstr "היערות נוספות"
958
 
959
+ #: includes/fs-plugin-info-dialog.php:1015
960
  msgctxt "Plugin installer section title"
961
  msgid "Features & Pricing"
962
  msgstr "פיטצ'רים ומחירים"
963
 
964
+ #: includes/fs-plugin-info-dialog.php:1025
965
  msgid "Plugin Install"
966
  msgstr "התקנת תוסף"
967
 
968
+ #: includes/fs-plugin-info-dialog.php:1097
969
  msgctxt "e.g. Professional Plan"
970
  msgid "%s Plan"
971
  msgstr "חבילה %s"
972
 
973
+ #: includes/fs-plugin-info-dialog.php:1123
974
  msgctxt "e.g. the best product"
975
  msgid "Best"
976
  msgstr "הכי טוב"
977
 
978
+ #: includes/fs-plugin-info-dialog.php1129,
979
+ #: includes/fs-plugin-info-dialog.php:1149
980
  msgctxt "as every month"
981
  msgid "Monthly"
982
  msgstr "חודשי"
983
 
984
+ #: includes/fs-plugin-info-dialog.php:1132
985
  msgctxt "as once a year"
986
  msgid "Annual"
987
  msgstr "שנתי"
988
 
989
+ #: includes/fs-plugin-info-dialog.php:1135
990
  msgid "Lifetime"
991
  msgstr "לכל החיים"
992
 
993
+ #: includes/fs-plugin-info-dialog.php1149,
994
+ #: includes/fs-plugin-info-dialog.php1151,
995
+ #: includes/fs-plugin-info-dialog.php:1153
996
  msgctxt "e.g. billed monthly"
997
  msgid "Billed %s"
998
  msgstr "מחוייב על בסיס %s"
999
 
1000
+ #: includes/fs-plugin-info-dialog.php:1151
1001
  msgctxt "as once a year"
1002
  msgid "Annually"
1003
  msgstr "שנתי"
1004
 
1005
+ #: includes/fs-plugin-info-dialog.php:1153
1006
  msgctxt "as once a year"
1007
  msgid "Once"
1008
  msgstr "פעם אחת"
1009
 
1010
+ #: includes/fs-plugin-info-dialog.php:1159
1011
  msgid "Single Site License"
1012
  msgstr "רשיון לאתר אחד"
1013
 
1014
+ #: includes/fs-plugin-info-dialog.php:1161
1015
  msgid "Unlimited Licenses"
1016
  msgstr "רשיונות ללא הגבלה"
1017
 
1018
+ #: includes/fs-plugin-info-dialog.php:1163
1019
  msgid "Up to %s Sites"
1020
  msgstr "עד %s אתרים"
1021
 
1022
+ #: includes/fs-plugin-info-dialog.php1173,
1023
  #: templates/plugin-info/features.php:82
1024
  msgctxt "as monthly period"
1025
  msgid "mo"
1026
  msgstr "חודשים"
1027
 
1028
+ #: includes/fs-plugin-info-dialog.php1180,
1029
  #: templates/plugin-info/features.php:80
1030
  msgctxt "as annual period"
1031
  msgid "year"
1032
  msgstr "שנה"
1033
 
1034
+ #: includes/fs-plugin-info-dialog.php:1234
1035
  msgctxt "noun"
1036
  msgid "Price"
1037
  msgstr "מחיר"
1038
 
1039
+ #: includes/fs-plugin-info-dialog.php:1282
1040
  msgid "Save %s"
1041
  msgstr "שמירת %s"
1042
 
1043
+ #: includes/fs-plugin-info-dialog.php:1292
1044
  msgid "No commitment for %s - cancel anytime"
1045
  msgstr "No commitment for %s - cancel anytime"
1046
 
1047
+ #: includes/fs-plugin-info-dialog.php:1295
1048
  msgid "After your free %s, pay as little as %s"
1049
  msgstr "After your free %s, pay as little as %s"
1050
 
1051
+ #: includes/fs-plugin-info-dialog.php:1306
1052
  msgid "Details"
1053
  msgstr "פרטים"
1054
 
1055
+ #: includes/fs-plugin-info-dialog.php1310, templates/account.php102,
1056
+ #: templates/debug.php203, templates/debug.php240, templates/debug.php457,
1057
  #: templates/account/partials/addon.php:36
1058
  msgctxt "product version"
1059
  msgid "Version"
1060
  msgstr "גרסה"
1061
 
1062
+ #: includes/fs-plugin-info-dialog.php:1317
1063
  msgctxt "as the plugin author"
1064
  msgid "Author"
1065
  msgstr "Author"
1066
 
1067
+ #: includes/fs-plugin-info-dialog.php:1324
1068
  msgid "Last Updated"
1069
  msgstr "עודכן לאחרונה"
1070
 
1071
+ #: includes/fs-plugin-info-dialog.php1329, templates/account.php:468
1072
  msgctxt "x-ago"
1073
  msgid "%s ago"
1074
  msgstr "לפני %s"
1075
 
1076
+ #: includes/fs-plugin-info-dialog.php:1338
1077
  msgid "Requires WordPress Version"
1078
  msgstr "Requires WordPress Version"
1079
 
1080
+ #: includes/fs-plugin-info-dialog.php:1339
1081
  msgid "%s or higher"
1082
  msgstr "%s ומעלה"
1083
 
1084
+ #: includes/fs-plugin-info-dialog.php:1346
1085
  msgid "Compatible up to"
1086
  msgstr "Compatible up to"
1087
 
1088
+ #: includes/fs-plugin-info-dialog.php:1354
1089
  msgid "Downloaded"
1090
  msgstr "Downloaded"
1091
 
1092
+ #: includes/fs-plugin-info-dialog.php:1358
1093
  msgid "%s time"
1094
  msgstr "פעם %s"
1095
 
1096
+ #: includes/fs-plugin-info-dialog.php:1360
1097
  msgid "%s times"
1098
  msgstr "%s פעמים"
1099
 
1100
+ #: includes/fs-plugin-info-dialog.php:1370
1101
  msgid "WordPress.org Plugin Page"
1102
  msgstr "WordPress.org Plugin Page"
1103
 
1104
+ #: includes/fs-plugin-info-dialog.php:1378
1105
  msgid "Plugin Homepage"
1106
  msgstr "עמוד התוסף"
1107
 
1108
+ #: includes/fs-plugin-info-dialog.php1386,
1109
+ #: includes/fs-plugin-info-dialog.php:1468
1110
  msgid "Donate to this plugin"
1111
  msgstr "תרום לתוסף"
1112
 
1113
+ #: includes/fs-plugin-info-dialog.php:1393
1114
  msgid "Average Rating"
1115
  msgstr "דירוג ממוצע"
1116
 
1117
+ #: includes/fs-plugin-info-dialog.php:1400
1118
  msgid "based on %s"
1119
  msgstr "מבוסס על %s"
1120
 
1121
+ #: includes/fs-plugin-info-dialog.php:1404
1122
  msgid "%s rating"
1123
  msgstr "דרוג %s"
1124
 
1125
+ #: includes/fs-plugin-info-dialog.php:1406
1126
  msgid "%s ratings"
1127
  msgstr "%s דרוגים"
1128
 
1129
+ #: includes/fs-plugin-info-dialog.php:1421
1130
  msgid "%s star"
1131
  msgstr "כוכב %s"
1132
 
1133
+ #: includes/fs-plugin-info-dialog.php:1423
1134
  msgid "%s stars"
1135
  msgstr "%s כוכבים"
1136
 
1137
+ #: includes/fs-plugin-info-dialog.php:1434
1138
  msgid "Click to see reviews that provided a rating of %s"
1139
  msgstr "Click to see reviews that provided a rating of %s"
1140
 
1141
+ #: includes/fs-plugin-info-dialog.php:1447
1142
  msgid "Contributors"
1143
  msgstr "תורמים"
1144
 
1145
+ #: includes/fs-plugin-info-dialog.php1476,
1146
+ #: includes/fs-plugin-info-dialog.php:1478
1147
  msgid "Warning"
1148
  msgstr "Warning"
1149
 
1150
+ #: includes/fs-plugin-info-dialog.php:1476
1151
  msgid "This plugin has not been tested with your current version of WordPress."
1152
  msgstr "תוסף זה לא נבדק עם גרסת הוורדפרס שלך."
1153
 
1154
+ #: includes/fs-plugin-info-dialog.php:1478
1155
  msgid "This plugin has not been marked as compatible with your version of WordPress."
1156
  msgstr "התוסף לא סומן כתואם לגרסת הוורדפרס שלך."
1157
 
1158
+ #: includes/fs-plugin-info-dialog.php:1497
1159
  msgid "Paid add-on must be deployed to Freemius."
1160
  msgstr "Paid add-on must be deployed to Freemius."
1161
 
1162
+ #: includes/fs-plugin-info-dialog.php:1498
1163
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1164
  msgstr "Add-on must be deployed to WordPress.org or Freemius."
1165
 
1166
+ #: includes/fs-plugin-info-dialog.php:1519
1167
  msgid "Newer Version (%s) Installed"
1168
  msgstr "גרסה חדשה (%s) הותקנה"
1169
 
1170
+ #: includes/fs-plugin-info-dialog.php:1520
1171
  msgid "Newer Free Version (%s) Installed"
1172
  msgstr "Newer Free Version (%s) Installed"
1173
 
1174
+ #: includes/fs-plugin-info-dialog.php:1527
1175
  msgid "Latest Version Installed"
1176
  msgstr "הגרסה האחרונה הותקנה"
1177
 
1178
+ #: includes/fs-plugin-info-dialog.php:1528
1179
  msgid "Latest Free Version Installed"
1180
  msgstr "גרסה חינאמית עדכנית הותקנה"
1181
 
1182
+ #: templates/account.php92, templates/forms/subscription-cancellation.php96,
1183
  #: templates/account/partials/addon.php26,
1184
+ #: templates/account/partials/site.php:311
1185
  msgid "Downgrading your plan"
1186
  msgstr "Downgrading your plan"
1187
 
1188
+ #: templates/account.php93, templates/forms/subscription-cancellation.php97,
1189
  #: templates/account/partials/addon.php27,
1190
+ #: templates/account/partials/site.php:312
1191
  msgid "Cancelling the subscription"
1192
  msgstr "Cancelling the subscription"
1193
 
1194
  #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
1195
  #. subscription'
1196
+ #: templates/account.php95, templates/forms/subscription-cancellation.php99,
1197
+ #: templates/account/partials/site.php:314
1198
  msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1199
  msgstr "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1200
 
1201
+ #: templates/account.php96, templates/forms/subscription-cancellation.php100,
1202
  #: templates/account/partials/addon.php30,
1203
+ #: templates/account/partials/site.php:315
1204
  msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1205
  msgstr "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1206
 
1207
+ #: templates/account.php97, templates/forms/subscription-cancellation.php106,
1208
  #: templates/account/partials/addon.php:31
1209
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1210
  msgstr "ביטול הניסיון יחסום מייד את הפיטצ'רים שהינם בתשלום. האם ברצונך בכל זאת להמשיך?"
1211
 
1212
+ #: templates/account.php98, templates/forms/subscription-cancellation.php101,
1213
  #: templates/account/partials/addon.php32,
1214
+ #: templates/account/partials/site.php:316
1215
  msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1216
  msgstr "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1217
 
1218
+ #: templates/account.php99, templates/forms/subscription-cancellation.php102,
1219
  #: templates/account/partials/addon.php33,
1220
+ #: templates/account/partials/site.php:317
1221
  msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1222
  msgstr "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1223
 
1224
  #. translators: %s: Plan title (e.g. "Professional")
1225
+ #: templates/account.php101,
1226
  #: templates/account/partials/activate-license-button.php31,
1227
  #: templates/account/partials/addon.php:35
1228
  msgid "Activate %s Plan"
1229
  msgstr "הפעל חבילה %s"
1230
 
1231
  #. translators: %s: Time period (e.g. Auto renews in "2 months")
1232
+ #: templates/account.php104, templates/account/partials/addon.php38,
1233
+ #: templates/account/partials/site.php:291
1234
  msgid "Auto renews in %s"
1235
  msgstr "עדכן אוטומטית בעוד %s"
1236
 
1237
  #. translators: %s: Time period (e.g. Expires in "2 months")
1238
+ #: templates/account.php106, templates/account/partials/addon.php40,
1239
+ #: templates/account/partials/site.php:293
1240
  msgid "Expires in %s"
1241
  msgstr "פג תוקף בעוד %s"
1242
 
1243
+ #: templates/account.php:107
1244
  msgctxt "as synchronize license"
1245
  msgid "Sync License"
1246
  msgstr "סינכרן רישיון"
1247
 
1248
+ #: templates/account.php108, templates/account/partials/addon.php:41
1249
  msgid "Cancel Trial"
1250
  msgstr "ביט"
1251
 
1252
+ #: templates/account.php109, templates/account/partials/addon.php:42
1253
  msgid "Change Plan"
1254
  msgstr "שינוי חבילה"
1255
 
1256
+ #: templates/account.php110, templates/account/partials/addon.php:43
1257
  msgctxt "verb"
1258
  msgid "Upgrade"
1259
  msgstr "שדרג"
1260
 
1261
+ #: templates/account.php112, templates/account/partials/addon.php45,
1262
+ #: templates/account/partials/site.php:318
1263
  msgctxt "verb"
1264
  msgid "Downgrade"
1265
  msgstr "שנמך"
1266
 
1267
+ #: templates/account.php114, templates/add-ons.php246,
1268
  #: templates/plugin-info/features.php72,
1269
+ #: templates/account/partials/addon.php47,
1270
+ #: templates/account/partials/site.php:33
1271
  msgid "Free"
1272
  msgstr "חינם"
1273
 
1274
+ #: templates/account.php116, templates/debug.php373,
1275
+ #: includes/customizer/class-fs-customizer-upsell-control.php110,
1276
+ #: templates/account/partials/addon.php:49
1277
  msgctxt "as product pricing plan"
1278
  msgid "Plan"
1279
  msgstr "חבילה"
1280
 
1281
+ #: templates/account.php:117
1282
  msgid "Bundle Plan"
1283
  msgstr "Bundle Plan"
1284
 
1285
+ #: templates/account.php:191
1286
  msgid "Free Trial"
1287
  msgstr "ניסיון חינם"
1288
 
1289
+ #: templates/account.php:202
1290
  msgid "Account Details"
1291
  msgstr "פרטי חשבון"
1292
 
1293
+ #: templates/account.php209, templates/forms/data-debug-mode.php:33
1294
+ msgid "Start Debug"
1295
+ msgstr "Start Debug"
1296
+
1297
+ #: templates/account.php:211
1298
+ msgid "Stop Debug"
1299
+ msgstr "Stop Debug"
1300
+
1301
+ #: templates/account.php:218
1302
  msgid "Billing & Invoices"
1303
  msgstr "Billing & Invoices"
1304
 
1305
+ #: templates/account.php:229
1306
  msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1307
  msgstr "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1308
 
1309
+ #: templates/account.php:231
1310
  msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1311
  msgstr "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1312
 
1313
+ #: templates/account.php:234
1314
  msgid "Delete Account"
1315
  msgstr "מחיקת חשבון"
1316
 
1317
+ #: templates/account.php246, templates/account/partials/addon.php231,
1318
  #: templates/account/partials/deactivate-license-button.php:35
1319
  msgid "Deactivate License"
1320
  msgstr "שיחרור רישיון"
1321
 
1322
+ #: templates/account.php269, templates/forms/subscription-cancellation.php:125
1323
  msgid "Are you sure you want to proceed?"
1324
  msgstr "האם את/ה בטוח רוצה להמשיך?"
1325
 
1326
+ #: templates/account.php269, templates/account/partials/addon.php:255
1327
  msgid "Cancel Subscription"
1328
  msgstr "בטל מנוי"
1329
 
1330
+ #: templates/account.php298, templates/account/partials/addon.php:340
1331
  msgctxt "as synchronize"
1332
  msgid "Sync"
1333
  msgstr "סינכרון"
1334
 
1335
+ #: templates/account.php313, templates/debug.php:507
1336
  msgid "Name"
1337
  msgstr "שם"
1338
 
1339
+ #: templates/account.php319, templates/debug.php:508
1340
  msgid "Email"
1341
  msgstr "דוא\"ל"
1342
 
1343
+ #: templates/account.php326, templates/debug.php371, templates/debug.php:557
1344
  msgid "User ID"
1345
  msgstr "מזהה משתמש"
1346
 
1347
+ #: templates/account.php344, templates/account.php637,
1348
+ #: templates/account.php682, templates/debug.php238, templates/debug.php365,
1349
+ #: templates/debug.php454, templates/debug.php506, templates/debug.php555,
1350
+ #: templates/debug.php632, templates/account/payments.php35,
1351
  #: templates/debug/logger.php:21
1352
  msgid "ID"
1353
  msgstr "מזהה"
1354
 
1355
+ #: templates/account.php:351
1356
  msgid "Site ID"
1357
  msgstr "מזהה אתר"
1358
 
1359
+ #: templates/account.php:354
1360
  msgid "No ID"
1361
  msgstr "אין מזהה"
1362
 
1363
+ #: templates/account.php359, templates/debug.php245, templates/debug.php374,
1364
+ #: templates/debug.php458, templates/debug.php510,
1365
+ #: templates/account/partials/site.php:227
1366
  msgid "Public Key"
1367
  msgstr "מפתח פומבי"
1368
 
1369
+ #: templates/account.php365, templates/debug.php375, templates/debug.php459,
1370
+ #: templates/debug.php511, templates/account/partials/site.php:239
1371
  msgid "Secret Key"
1372
  msgstr "מפתח סודי"
1373
 
1374
+ #: templates/account.php:368
1375
  msgctxt "as secret encryption key missing"
1376
  msgid "No Secret"
1377
  msgstr "אין מפתח סודי"
1378
 
1379
+ #: templates/account.php395, templates/account/partials/site.php120,
1380
+ #: templates/account/partials/site.php:122
1381
  msgid "Trial"
1382
  msgstr "ניסיון"
1383
 
1384
+ #: templates/account.php422, templates/debug.php562,
1385
+ #: templates/account/partials/site.php:260
1386
  msgid "License Key"
1387
  msgstr "License Key"
1388
 
1389
+ #: templates/account.php:453
1390
  msgid "Join the Beta program"
1391
  msgstr "Join the Beta program"
1392
 
1393
+ #: templates/account.php:459
1394
  msgid "not verified"
1395
  msgstr "לא מאומת"
1396
 
1397
+ #: templates/account.php468, templates/account/partials/addon.php:190
1398
  msgid "Expired"
1399
  msgstr "פג תוקף"
1400
 
1401
+ #: templates/account.php:528
1402
  msgid "Premium version"
1403
  msgstr "גירסת פרימיום"
1404
 
1405
+ #: templates/account.php:530
1406
  msgid "Free version"
1407
  msgstr "גירסה חינאמית"
1408
 
1409
+ #: templates/account.php:542
1410
  msgid "Verify Email"
1411
  msgstr "אמת כתובת דוא\"ל"
1412
 
1413
+ #: templates/account.php:553
1414
  msgid "Download %s Version"
1415
  msgstr "הורד גרסת %s"
1416
 
1417
+ #: templates/account.php568, templates/account.php820,
1418
+ #: templates/account/partials/site.php248,
1419
+ #: templates/account/partials/site.php:270
1420
  msgctxt "verb"
1421
  msgid "Show"
1422
  msgstr "הצג"
1423
 
1424
+ #: templates/account.php:583
1425
  msgid "What is your %s?"
1426
  msgstr "מה ה%s שלך?"
1427
 
1428
+ #: templates/account.php591, templates/account/billing.php:21
1429
  msgctxt "verb"
1430
  msgid "Edit"
1431
  msgstr "ערוך"
1432
 
1433
+ #: templates/account.php:616
1434
  msgid "Sites"
1435
  msgstr "אתרים"
1436
 
1437
+ #: templates/account.php:629
1438
  msgid "Search by address"
1439
  msgstr "חפש לפי כתובת"
1440
 
1441
+ #: templates/account.php638, templates/debug.php:368
1442
  msgid "Address"
1443
  msgstr "כתובת"
1444
 
1445
+ #: templates/account.php:639
1446
  msgid "License"
1447
  msgstr "רישיון"
1448
 
1449
+ #: templates/account.php:640
1450
  msgid "Plan"
1451
  msgstr "חבילה"
1452
 
1453
+ #: templates/account.php:685
1454
  msgctxt "as software license"
1455
  msgid "License"
1456
  msgstr "רישיון"
1457
 
1458
+ #: templates/account.php:814
1459
  msgctxt "verb"
1460
  msgid "Hide"
1461
  msgstr "הסתר"
1462
 
1463
+ #: templates/account.php836, templates/forms/data-debug-mode.php:31
1464
  msgid "Processing"
1465
  msgstr "Processing"
1466
 
1467
+ #: templates/account.php:839
1468
  msgid "Get updates for bleeding edge Beta versions of %s."
1469
  msgstr "Get updates for bleeding edge Beta versions of %s."
1470
 
1471
+ #: templates/account.php:897
1472
  msgid "Cancelling %s"
1473
  msgstr "Cancelling %s"
1474
 
1475
+ #: templates/account.php897, templates/account.php914,
1476
  #: templates/forms/subscription-cancellation.php27,
1477
  #: templates/forms/deactivation/form.php:133
1478
  msgid "trial"
1479
  msgstr "trial"
1480
 
1481
+ #: templates/account.php912, templates/forms/deactivation/form.php:150
1482
  msgid "Cancelling %s..."
1483
  msgstr "Cancelling %s..."
1484
 
1485
+ #: templates/account.php915, templates/forms/subscription-cancellation.php28,
1486
  #: templates/forms/deactivation/form.php:134
1487
  msgid "subscription"
1488
  msgstr "subscription"
1489
 
1490
+ #: templates/account.php:929
1491
  msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1492
  msgstr "ביטול הרישיון יחסום את כל הפיטצ'רים שבתשלום אך יאפשר להפעיל את הרישיון על אתר אחר. האם תרצו להמשיך בכל זאת?"
1493
 
1494
+ #: templates/add-ons.php:38
1495
  msgid "View details"
1496
  msgstr "פרטים נוספים"
1497
 
1498
+ #: templates/add-ons.php:48
1499
  msgid "Add Ons for %s"
1500
  msgstr "הרחבות עבור %s"
1501
 
1502
+ #: templates/add-ons.php:58
1503
+ msgid "We couldn't load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1504
+ msgstr "We couldn't load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
1505
 
1506
+ #: templates/add-ons.php:229
1507
  msgctxt "active add-on"
1508
  msgid "Active"
1509
  msgstr "Active"
1510
 
1511
+ #: templates/add-ons.php:230
1512
  msgctxt "installed add-on"
1513
  msgid "Installed"
1514
  msgstr "Installed"
1515
 
1516
+ #: templates/admin-notice.php13, templates/forms/license-activation.php207,
1517
  #: templates/forms/resend-key.php:77
1518
  msgctxt "as close a window"
1519
  msgid "Dismiss"
1565
  msgid "Thanks %s!"
1566
  msgstr "תודה %s!"
1567
 
1568
+ #: templates/connect.php172, templates/forms/license-activation.php:46
1569
  msgid "Agree & Activate License"
1570
  msgstr "הסכמה והפעלת רישיון"
1571
 
1613
  msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
1614
  msgstr "During the update process we detected %s site(s) in the network that are still pending your attention."
1615
 
1616
+ #: templates/connect.php253, templates/forms/data-debug-mode.php35,
1617
+ #: templates/forms/license-activation.php:49
1618
  msgid "License key"
1619
  msgstr "מפתח רישיון"
1620
 
1621
+ #: templates/connect.php256, templates/forms/license-activation.php:22
1622
  msgid "Can't find your license key?"
1623
  msgstr "האם אינך מוצא את מפתח הרישיון?"
1624
 
1672
  msgid "Newsletter"
1673
  msgstr "ניוסלטר"
1674
 
1675
+ #: templates/connect.php391, templates/forms/license-activation.php:41
1676
  msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
1677
  msgstr "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
1678
 
1734
  msgstr "דיבוג"
1735
 
1736
  #: templates/debug.php54, templates/debug.php250, templates/debug.php376,
1737
+ #: templates/debug.php:512
1738
  msgid "Actions"
1739
  msgstr "פעולות"
1740
 
1803
  msgid "Themes"
1804
  msgstr "תבניות"
1805
 
1806
+ #: templates/debug.php239, templates/debug.php370, templates/debug.php456,
1807
  #: templates/debug/scheduled-crons.php:80
1808
  msgid "Slug"
1809
  msgstr "מזהה כתובת"
1810
 
1811
+ #: templates/debug.php241, templates/debug.php:455
1812
  msgid "Title"
1813
  msgstr "כותרת"
1814
 
1847
  msgid "Simulate Network Upgrade"
1848
  msgstr "סמלוץ עדכון לרשת"
1849
 
1850
+ #: templates/debug.php:359
1851
  msgid "%s Installs"
1852
  msgstr "%s התקנות"
1853
 
1854
+ #: templates/debug.php:361
1855
  msgctxt "like websites"
1856
  msgid "Sites"
1857
  msgstr "אתרים"
1858
 
1859
+ #: templates/debug.php367, templates/account/partials/site.php:156
1860
  msgid "Blog ID"
1861
  msgstr "מזהה בלוג"
1862
 
1863
+ #: templates/debug.php:372
1864
+ msgid "License ID"
1865
+ msgstr "License ID"
1866
+
1867
+ #: templates/debug.php436, templates/debug.php535,
1868
+ #: templates/account/partials/addon.php:435
1869
  msgctxt "verb"
1870
  msgid "Delete"
1871
  msgstr "מחק"
1872
 
1873
+ #: templates/debug.php:450
1874
  msgid "Add Ons of module %s"
1875
  msgstr "Add Ons of module %s"
1876
 
1877
+ #: templates/debug.php:502
1878
  msgid "Users"
1879
  msgstr "משתמשים"
1880
 
1881
+ #: templates/debug.php:509
1882
  msgid "Verified"
1883
  msgstr "מאומת"
1884
 
1885
+ #: templates/debug.php:551
1886
  msgid "%s Licenses"
1887
  msgstr "%s Licenses"
1888
 
1889
+ #: templates/debug.php:556
1890
  msgid "Plugin ID"
1891
  msgstr "Plugin ID"
1892
 
1893
+ #: templates/debug.php:558
1894
  msgid "Plan ID"
1895
  msgstr "Plan ID"
1896
 
1897
+ #: templates/debug.php:559
1898
  msgid "Quota"
1899
  msgstr "Quota"
1900
 
1901
+ #: templates/debug.php:560
1902
  msgid "Activated"
1903
  msgstr "Activated"
1904
 
1905
+ #: templates/debug.php:561
1906
  msgid "Blocking"
1907
  msgstr "Blocking"
1908
 
1909
+ #: templates/debug.php:563
1910
  msgctxt "as expiration date"
1911
  msgid "Expiration"
1912
  msgstr "תפוגה"
1913
 
1914
+ #: templates/debug.php:590
1915
  msgid "Debug Log"
1916
  msgstr "Debug Log"
1917
 
1918
+ #: templates/debug.php:594
1919
  msgid "All Types"
1920
  msgstr "כל הסוגים"
1921
 
1922
+ #: templates/debug.php:601
1923
  msgid "All Requests"
1924
  msgstr "כל הבקשות"
1925
 
1926
+ #: templates/debug.php606, templates/debug.php635,
1927
  #: templates/debug/logger.php:25
1928
  msgid "File"
1929
  msgstr "קובץ"
1930
 
1931
+ #: templates/debug.php607, templates/debug.php633,
1932
  #: templates/debug/logger.php:23
1933
  msgid "Function"
1934
  msgstr "פונקציה"
1935
 
1936
+ #: templates/debug.php:608
1937
  msgid "Process ID"
1938
  msgstr "Process ID"
1939
 
1940
+ #: templates/debug.php:609
1941
  msgid "Logger"
1942
  msgstr "Logger"
1943
 
1944
+ #: templates/debug.php610, templates/debug.php634,
1945
  #: templates/debug/logger.php:24
1946
  msgid "Message"
1947
  msgstr "הודעה"
1948
 
1949
+ #: templates/debug.php:612
1950
  msgid "Filter"
1951
  msgstr "פילטר"
1952
 
1953
+ #: templates/debug.php:620
1954
  msgid "Download"
1955
  msgstr "הורדה"
1956
 
1957
+ #: templates/debug.php631, templates/debug/logger.php:22
1958
  msgid "Type"
1959
  msgstr "סוג"
1960
 
1961
+ #: templates/debug.php636, templates/debug/logger.php:26
1962
  msgid "Timestamp"
1963
  msgstr "Timestamp"
1964
 
2283
  msgid "Become an affiliate"
2284
  msgstr "Become an affiliate"
2285
 
2286
+ #: templates/forms/data-debug-mode.php:25
2287
+ msgid "Please enter the license key to enable the debug mode:"
2288
+ msgstr "Please enter the license key to enable the debug mode:"
2289
+
2290
+ #: templates/forms/data-debug-mode.php:27
2291
+ msgid "To enter the debug mode, please enter the secret key of the license owner (UserID = %d), which you can find in your \"My Profile\" section of your User Dashboard:"
2292
+ msgstr "To enter the debug mode, please enter the secret key of the license owner (UserID = %d), which you can find in your \"My Profile\" section of your User Dashboard:"
2293
+
2294
+ #: templates/forms/data-debug-mode.php:32
2295
+ msgid "Submit"
2296
+ msgstr "Submit"
2297
+
2298
+ #: templates/forms/data-debug-mode.php:36
2299
+ msgid "User key"
2300
+ msgstr "User key"
2301
+
2302
+ #: templates/forms/license-activation.php:23
2303
  msgid "Please enter the license key that you received in the email right after the purchase:"
2304
  msgstr "אנא הזן את הרישיון שקיבלת לתיבת הדואל שלך לאחר השלמת הרכישה."
2305
 
2306
+ #: templates/forms/license-activation.php:28
2307
  msgid "Update License"
2308
  msgstr "עדכון רישיון"
2309
 
2370
  msgid "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
2371
  msgstr "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
2372
 
 
 
 
 
 
 
 
 
2373
  #: templates/forms/subscription-cancellation.php:103
2374
  msgid "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
2375
  msgstr "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
2456
  msgid "Last license"
2457
  msgstr "רישיון אחרון"
2458
 
2459
+ #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the
2460
+ #. subscription'
2461
+ #: templates/account/partials/addon.php:29
2462
+ msgid "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2463
+ msgstr "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
2464
+
2465
+ #: templates/account/partials/addon.php:185
2466
  msgid "Cancelled"
2467
  msgstr "בוטל"
2468
 
2469
+ #: templates/account/partials/addon.php:195
2470
  msgid "No expiration"
2471
  msgstr "ללא תפוגה"
2472
 
2473
+ #: templates/account/partials/site.php:189
2474
  msgid "Owner Name"
2475
  msgstr "שם הבעלים"
2476
 
2477
+ #: templates/account/partials/site.php:201
2478
  msgid "Owner Email"
2479
  msgstr "מייל הבעלים"
2480
 
2481
+ #: templates/account/partials/site.php:213
2482
  msgid "Owner ID"
2483
  msgstr "מזהה הבעלים"
2484
 
2485
+ #: templates/account/partials/site.php:286
2486
  msgid "Subscription"
2487
  msgstr "מנוי"
2488
 
vendor/freemius/wordpress-sdk/languages/freemius-hu_HU.mo CHANGED
Binary file
vendor/freemius/wordpress-sdk/languages/freemius-hu_HU.po CHANGED
@@ -7,7 +7,7 @@ msgstr ""
7
  "Project-Id-Version: WordPress SDK\n"
8
  "Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
9
  "POT-Creation-Date: \n"
10
- "PO-Revision-Date: 2019-06-05 13:40+0000\n"
11
  "Last-Translator: Vova Feldman <vova@freemius.com>\n"
12
  "Language: hu_HU\n"
13
  "Language-Team: Hungarian (Hungary) (http://www.transifex.com/freemius/wordpress-sdk/language/hu_HU/)\n"
@@ -21,1479 +21,1498 @@ msgstr ""
21
  "X-Poedit-SearchPathExcluded-0: *.js\n"
22
  "X-Poedit-SourceCharset: UTF-8\n"
23
 
24
- #: includes/class-freemius.php1838, templates/account.php:769
25
  msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
26
  msgstr "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
27
 
28
- #: includes/class-freemius.php:1845
29
  msgid "Would you like to proceed with the update?"
30
  msgstr "Would you like to proceed with the update?"
31
 
32
- #: includes/class-freemius.php:2053
33
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
34
  msgstr "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current erro
7
  "Project-Id-Version: WordPress SDK\n"
8
  "Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
9
  "POT-Creation-Date: \n"
10
+ "PO-Revision-Date: 2019-10-07 15:33+0000\n"
11
  "Last-Translator: Vova Feldman <vova@freemius.com>\n"
12
  "Language: hu_HU\n"
13
  "Language-Team: Hungarian (Hungary) (http://www.transifex.com/freemius/wordpress-sdk/language/hu_HU/)\n"
21
  "X-Poedit-SearchPathExcluded-0: *.js\n"
22
  "X-Poedit-SourceCharset: UTF-8\n"
23
 
24
+ #: includes/class-freemius.php1880, templates/account.php:840
25
  msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
26
  msgstr "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
27
 
28
+ #: includes/class-freemius.php:1887
29
  msgid "Would you like to proceed with the update?"
30
  msgstr "Would you like to proceed with the update?"
31
 
32
+ #: includes/class-freemius.php:2095
33
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
34
  msgstr "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current erro