Stop User Enumeration - Version 1.3.15

Version Description

  • fix to ensure scripts not enqueued unless required
Download this release

Release Info

Developer fullworks
Plugin Icon 128x128 Stop User Enumeration
Version 1.3.15
Comparing to
See all releases

Code changes from version 1.3.14 to 1.3.15

Files changed (186) hide show
  1. admin/class-admin.php +60 -0
  2. admin/class-settings.php +19 -22
  3. bootstrap.php +6 -10
  4. frontend/class-frontend.php +5 -5
  5. frontend/js/frontend.js +4 -4
  6. includes/autoloader.php +3 -3
  7. includes/class-core.php +28 -16
  8. includes/class-i18n.php +0 -1
  9. includes/class-loader.php +9 -2
  10. includes/vendor/autoload.php +0 -7
  11. includes/vendor/cmb2-extensions/CHANGELOG.md +0 -5
  12. includes/vendor/cmb2-extensions/CONTRIBUTING.md +0 -46
  13. includes/vendor/cmb2-extensions/README.md +0 -60
  14. includes/vendor/cmb2-extensions/cmb2-tabs/cmb2-tabs.php +56 -54
  15. includes/vendor/cmb2-extensions/cmb2-tabs/css/tabs.css +2 -1
  16. includes/vendor/cmb2-extensions/cmb2-tabs/example-functions.php +26 -0
  17. includes/vendor/cmb2-extensions/cmb2-tabs/readme.txt +7 -8
  18. includes/vendor/cmb2-extensions/cmb2-tabs/screenshots/metabox-horizontal.PNG +0 -0
  19. includes/vendor/cmb2-extensions/cmb2-tabs/screenshots/metabox-mobile.PNG +0 -0
  20. includes/vendor/cmb2-extensions/cmb2-tabs/screenshots/metabox-vertical.PNG +0 -0
  21. includes/vendor/cmb2-extensions/composer.json +0 -35
  22. includes/vendor/cmb2/CONTRIBUTING.md +0 -52
  23. includes/vendor/cmb2/css/cmb2-display.css.map +0 -7
  24. includes/vendor/cmb2/css/cmb2-front.css.map +0 -7
  25. includes/vendor/cmb2/css/cmb2.css.map +0 -7
  26. includes/vendor/cmb2/css/sass/cmb2-display.scss +0 -5
  27. includes/vendor/cmb2/css/sass/cmb2-front.scss +0 -6
  28. includes/vendor/cmb2/css/sass/cmb2.scss +0 -15
  29. includes/vendor/cmb2/css/sass/index.php +0 -2
  30. includes/vendor/cmb2/css/sass/partials/_collapsible_ui.scss +0 -52
  31. includes/vendor/cmb2/css/sass/partials/_context_metaboxes.scss +0 -107
  32. includes/vendor/cmb2/css/sass/partials/_display.scss +0 -34
  33. includes/vendor/cmb2/css/sass/partials/_front.scss +0 -52
  34. includes/vendor/cmb2/css/sass/partials/_jquery_ui.scss +0 -457
  35. includes/vendor/cmb2/css/sass/partials/_main_wrap.scss +0 -518
  36. includes/vendor/cmb2/css/sass/partials/_mixins.scss +0 -51
  37. includes/vendor/cmb2/css/sass/partials/_options-page.scss +0 -70
  38. includes/vendor/cmb2/css/sass/partials/_post_metaboxes.scss +0 -82
  39. includes/vendor/cmb2/css/sass/partials/_sidebar_placements.scss +0 -146
  40. includes/vendor/cmb2/css/sass/partials/index.php +0 -2
  41. includes/vendor/cmb2/example-functions.php +45 -6
  42. includes/vendor/cmb2/images/ui-icons_888888_256x240.png +0 -0
  43. includes/vendor/cmb2/includes/CMB2.php +57 -15
  44. includes/vendor/cmb2/includes/CMB2_Ajax.php +3 -3
  45. includes/vendor/cmb2/includes/CMB2_Base.php +20 -4
  46. includes/vendor/cmb2/includes/CMB2_Field.php +165 -69
  47. includes/vendor/cmb2/includes/CMB2_JS.php +46 -9
  48. includes/vendor/cmb2/includes/CMB2_Options_Hookup.php +60 -7
  49. includes/vendor/cmb2/includes/CMB2_Sanitize.php +6 -2
  50. includes/vendor/cmb2/includes/CMB2_Utils.php +42 -20
  51. includes/vendor/cmb2/includes/helper-functions.php +15 -0
  52. includes/vendor/cmb2/includes/shim/WP_REST_Controller.php +2 -1
  53. includes/vendor/cmb2/includes/types/CMB2_Type_Checkbox.php +1 -1
  54. includes/vendor/cmb2/includes/types/CMB2_Type_Colorpicker.php +28 -7
  55. includes/vendor/cmb2/includes/types/CMB2_Type_File_List.php +1 -1
  56. includes/vendor/cmb2/includes/types/CMB2_Type_Multicheck.php +1 -1
  57. includes/vendor/cmb2/includes/types/CMB2_Type_Oembed.php +1 -1
  58. includes/vendor/cmb2/includes/types/CMB2_Type_Taxonomy_Multicheck.php +1 -2
  59. includes/vendor/cmb2/includes/types/CMB2_Type_Text_Date.php +1 -1
  60. includes/vendor/cmb2/includes/types/CMB2_Type_Text_Datetime_Timestamp.php +1 -1
  61. includes/vendor/cmb2/includes/types/CMB2_Type_Text_Datetime_Timestamp_Timezone.php +1 -1
  62. includes/vendor/cmb2/includes/types/CMB2_Type_Text_Time.php +1 -1
  63. includes/vendor/cmb2/includes/types/CMB2_Type_Textarea_Code.php +1 -1
  64. includes/vendor/cmb2/includes/types/CMB2_Type_Wysiwyg.php +1 -1
  65. includes/vendor/cmb2/init.php +10 -10
  66. includes/vendor/cmb2/js/cmb2-wysiwyg.js +14 -3
  67. includes/vendor/cmb2/js/cmb2.js +39 -11
  68. includes/vendor/cmb2/js/cmb2.min.js +1 -1
  69. includes/vendor/cmb2/js/wp-color-picker-alpha.js +496 -0
  70. includes/vendor/cmb2/js/wp-color-picker-alpha.min.js +11 -0
  71. includes/vendor/cmb2/languages/cmb2-az.mo +0 -0
  72. includes/vendor/cmb2/languages/cmb2-az.po +527 -0
  73. includes/vendor/cmb2/languages/cmb2-be.mo +0 -0
  74. includes/vendor/cmb2/languages/cmb2-be.po +527 -0
  75. includes/vendor/cmb2/languages/cmb2-bg.mo +0 -0
  76. includes/vendor/cmb2/languages/cmb2-bg.po +485 -0
  77. includes/vendor/cmb2/languages/cmb2-bg_BG.mo +0 -0
  78. includes/vendor/cmb2/languages/cmb2-bg_BG.po +527 -0
  79. includes/vendor/cmb2/languages/cmb2-bn_BD.mo +0 -0
  80. includes/vendor/cmb2/languages/cmb2-ca.mo +0 -0
  81. includes/vendor/cmb2/languages/cmb2-ca.po +3 -3
  82. includes/vendor/cmb2/languages/cmb2-es_CO.po +527 -0
  83. includes/vendor/cmb2/languages/cmb2-es_ES.mo +0 -0
  84. includes/vendor/cmb2/languages/cmb2-es_ES.po +530 -0
  85. includes/vendor/cmb2/languages/cmb2-es_MX.mo +0 -0
  86. includes/vendor/cmb2/languages/cmb2-fa_IR.mo +0 -0
  87. includes/vendor/cmb2/languages/cmb2-fa_IR.po +109 -100
  88. includes/vendor/cmb2/languages/cmb2-it_IT.mo +0 -0
  89. includes/vendor/cmb2/languages/cmb2-it_IT.po +204 -162
  90. includes/vendor/cmb2/languages/cmb2.pot +160 -151
  91. includes/vendor/cmb2/{CHANGELOG.md → readme.txt} +307 -128
  92. includes/vendor/composer/ClassLoader.php +0 -445
  93. includes/vendor/composer/LICENSE +0 -21
  94. includes/vendor/composer/autoload_classmap.php +0 -9
  95. includes/vendor/composer/autoload_namespaces.php +0 -10
  96. includes/vendor/composer/autoload_psr4.php +0 -9
  97. includes/vendor/composer/autoload_real.php +0 -52
  98. includes/vendor/composer/autoload_static.php +0 -26
  99. includes/vendor/composer/installed.json +0 -235
  100. includes/vendor/composer/installers/LICENSE +0 -19
  101. includes/vendor/composer/installers/README.md +0 -172
  102. includes/vendor/composer/installers/composer.json +0 -65
  103. includes/vendor/composer/installers/phpunit.xml.dist +0 -25
  104. includes/vendor/composer/installers/src/Composer/Installers/AglInstaller.php +0 -21
  105. includes/vendor/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php +0 -11
  106. includes/vendor/composer/installers/src/Composer/Installers/BaseInstaller.php +0 -130
  107. includes/vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php +0 -21
  108. includes/vendor/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php +0 -11
  109. includes/vendor/composer/installers/src/Composer/Installers/Concrete5Installer.php +0 -11
  110. includes/vendor/composer/installers/src/Composer/Installers/CraftInstaller.php +0 -9
  111. includes/vendor/composer/installers/src/Composer/Installers/CroogoInstaller.php +0 -21
  112. includes/vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php +0 -12
  113. includes/vendor/composer/installers/src/Composer/Installers/ElggInstaller.php +0 -9
  114. includes/vendor/composer/installers/src/Composer/Installers/FuelInstaller.php +0 -11
  115. includes/vendor/composer/installers/src/Composer/Installers/HuradInstaller.php +0 -21
  116. includes/vendor/composer/installers/src/Composer/Installers/Installer.php +0 -138
  117. includes/vendor/composer/installers/src/Composer/Installers/JoomlaInstaller.php +0 -15
  118. includes/vendor/composer/installers/src/Composer/Installers/KohanaInstaller.php +0 -9
  119. includes/vendor/composer/installers/src/Composer/Installers/LaravelInstaller.php +0 -9
  120. includes/vendor/composer/installers/src/Composer/Installers/LithiumInstaller.php +0 -10
  121. includes/vendor/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php +0 -9
  122. includes/vendor/composer/installers/src/Composer/Installers/MODXEvoInstaller.php +0 -16
  123. includes/vendor/composer/installers/src/Composer/Installers/MagentoInstaller.php +0 -11
  124. includes/vendor/composer/installers/src/Composer/Installers/MakoInstaller.php +0 -9
  125. includes/vendor/composer/installers/src/Composer/Installers/MediaWikiInstaller.php +0 -21
  126. includes/vendor/composer/installers/src/Composer/Installers/OxidInstaller.php +0 -9
  127. includes/vendor/composer/installers/src/Composer/Installers/PPIInstaller.php +0 -9
  128. includes/vendor/composer/installers/src/Composer/Installers/PhpBBInstaller.php +0 -11
  129. includes/vendor/composer/installers/src/Composer/Installers/PiwikInstaller.php +0 -32
  130. includes/vendor/composer/installers/src/Composer/Installers/ShopwareInstaller.php +0 -58
  131. includes/vendor/composer/installers/src/Composer/Installers/SilverStripeInstaller.php +0 -36
  132. includes/vendor/composer/installers/src/Composer/Installers/Symfony1Installer.php +0 -26
  133. includes/vendor/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php +0 -14
  134. includes/vendor/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php +0 -33
  135. includes/vendor/composer/installers/src/Composer/Installers/WolfCMSInstaller.php +0 -9
  136. includes/vendor/composer/installers/src/Composer/Installers/WordPressInstaller.php +0 -11
  137. includes/vendor/composer/installers/src/Composer/Installers/ZendInstaller.php +0 -11
  138. includes/vendor/composer/installers/src/Composer/Installers/ZikulaInstaller.php +0 -10
  139. includes/vendor/composer/installers/src/bootstrap.php +0 -13
  140. includes/vendor/composer/installers/tests/Composer/Installers/Test/CakePHPInstallerTest.php +0 -46
  141. includes/vendor/composer/installers/tests/Composer/Installers/Test/InstallerTest.php +0 -349
  142. includes/vendor/composer/installers/tests/Composer/Installers/Test/MediaWikiInstallerTest.php +0 -48
  143. includes/vendor/composer/installers/tests/Composer/Installers/Test/PiwikInstallerTest.php +0 -64
  144. includes/vendor/composer/installers/tests/Composer/Installers/Test/TestCase.php +0 -64
  145. includes/vendor/composer/installers/tests/bootstrap.php +0 -4
  146. includes/vendor/freemius/wordpress-sdk/README.md +0 -253
  147. includes/vendor/freemius/wordpress-sdk/assets/css/admin/affiliation.css +1 -0
  148. includes/vendor/freemius/wordpress-sdk/assets/css/admin/index.php +3 -0
  149. includes/vendor/freemius/wordpress-sdk/assets/css/index.php +3 -0
  150. includes/vendor/freemius/wordpress-sdk/assets/img/index.php +3 -0
  151. includes/vendor/freemius/wordpress-sdk/assets/js/index.php +3 -0
  152. includes/vendor/freemius/wordpress-sdk/assets/scss/_mixins.scss +0 -13
  153. includes/vendor/freemius/wordpress-sdk/assets/scss/_vars.scss +0 -6
  154. includes/vendor/freemius/wordpress-sdk/assets/scss/admin/affiliation.scss +97 -0
  155. includes/vendor/freemius/wordpress-sdk/assets/scss/admin/index.php +3 -0
  156. includes/vendor/freemius/wordpress-sdk/assets/scss/index.php +3 -0
  157. includes/vendor/freemius/wordpress-sdk/composer.json +0 -10
  158. includes/vendor/freemius/wordpress-sdk/config.php +4 -1
  159. includes/vendor/freemius/wordpress-sdk/gulpfile.js +0 -139
  160. includes/vendor/freemius/wordpress-sdk/includes/class-freemius.php +1023 -347
  161. includes/vendor/freemius/wordpress-sdk/includes/class-fs-plugin-updater.php +12 -14
  162. includes/vendor/freemius/wordpress-sdk/includes/customizer/class-fs-customizer-support-section.php +3 -3
  163. includes/vendor/freemius/wordpress-sdk/includes/customizer/class-fs-customizer-upsell-control.php +2 -2
  164. includes/vendor/freemius/wordpress-sdk/includes/customizer/index.php +3 -0
  165. includes/vendor/freemius/wordpress-sdk/includes/debug/class-fs-debug-bar-panel.php +1 -1
  166. includes/vendor/freemius/wordpress-sdk/includes/debug/debug-bar-start.php +2 -2
  167. includes/vendor/freemius/wordpress-sdk/includes/entities/class-fs-affiliate-terms.php +128 -0
  168. includes/vendor/freemius/wordpress-sdk/includes/entities/class-fs-affiliate.php +84 -0
  169. includes/vendor/freemius/wordpress-sdk/includes/entities/class-fs-entity.php +3 -3
  170. includes/vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin.php +21 -0
  171. includes/vendor/freemius/wordpress-sdk/includes/fs-core-functions.php +1118 -674
  172. includes/vendor/freemius/wordpress-sdk/includes/fs-essential-functions.php +3 -0
  173. includes/vendor/freemius/wordpress-sdk/includes/fs-plugin-info-dialog.php +98 -56
  174. includes/vendor/freemius/wordpress-sdk/includes/i18n.php +50 -2
  175. includes/vendor/freemius/wordpress-sdk/includes/l10n.php +0 -220
  176. includes/vendor/freemius/wordpress-sdk/includes/managers/class-fs-admin-menu-manager.php +6 -5
  177. includes/vendor/freemius/wordpress-sdk/includes/managers/class-fs-cache-manager.php +6 -5
  178. includes/vendor/freemius/wordpress-sdk/includes/managers/class-fs-option-manager.php +58 -7
  179. includes/vendor/freemius/wordpress-sdk/includes/sdk/FreemiusWordPress.php +26 -19
  180. includes/vendor/freemius/wordpress-sdk/languages/freemius-en.mo +0 -0
  181. includes/vendor/freemius/wordpress-sdk/languages/freemius-en.po +1520 -1368
  182. includes/vendor/freemius/wordpress-sdk/languages/freemius-es_ES.mo +0 -0
  183. includes/vendor/freemius/wordpress-sdk/languages/freemius-es_ES.po +2035 -0
  184. includes/vendor/freemius/wordpress-sdk/languages/freemius-he.mo +0 -0
  185. includes/vendor/freemius/wordpress-sdk/languages/freemius-he_IL.mo +0 -0
  186. includes/vendor/freemius/wordpress-sdk/languages/{freemius-he.po → freemius-he_IL.po} +1006 -795
admin/class-admin.php ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ /**
5
+ * The admin-specific functionality of the plugin.
6
+ *
7
+ * Defines the plugin name, version, and two examples hooks for how to
8
+ * enqueue the admin-specific stylesheet and JavaScript.
9
+ *
10
+ */
11
+
12
+ namespace Stop_User_Enumeration\Admin;
13
+
14
+
15
+ class Admin {
16
+
17
+ /**
18
+ * The ID of this plugin.
19
+ *
20
+ */
21
+ private $plugin_name;
22
+
23
+ /**
24
+ * The version of this plugin.
25
+ *
26
+ */
27
+ private $version;
28
+
29
+ /**
30
+ * Initialize the class and set its properties.
31
+ *
32
+ */
33
+ public function __construct( $plugin_name, $version ) {
34
+
35
+ $this->plugin_name = $plugin_name;
36
+ $this->version = $version;
37
+
38
+ }
39
+
40
+
41
+ public function connect_message(
42
+ $message,
43
+ $user_first_name,
44
+ $plugin_title,
45
+ $user_login,
46
+ $site_link,
47
+ $freemius_link
48
+ ) {
49
+ return sprintf(
50
+ __( 'Hi %1$s' ) . ',<br>' .
51
+ __( 'Never miss an important update -- opt-in to our security and feature updates notifications related to %2$s, and non-sensitive diagnostic tracking to help me improve %2$s sent via %5$s', 'plugin-name' ),
52
+ $user_first_name,
53
+ '<b>' . $plugin_title . '</b>',
54
+ '<b>' . $user_login . '</b>',
55
+ $site_link,
56
+ $freemius_link
57
+ );
58
+ }
59
+
60
+ }
admin/class-settings.php CHANGED
@@ -37,12 +37,11 @@ class Settings {
37
  */
38
 
39
 
40
-
41
  $options = array(
42
  'id' => 'stop-user-enumeration_option_metabox',
43
  'title' => esc_html__( 'Stop User Enumeration', 'stop-user-enumeration' ),
44
  'tabs' => array(
45
- 'info' => array(
46
  'label' => __( 'info', 'stop-user-enumeration' ),
47
  'icon' => 'dashicons-info',
48
  ),
@@ -83,58 +82,56 @@ class Settings {
83
 
84
  $cmb_options->add_field( array(
85
 
86
- 'before' => '<h2>Information</h2>',
87
- 'after_field' => __( '<p>Stop User Enumeration detects attempts by malicious scanners to identify your users</p>
88
  <p>If a bot or user is caught scanning for user names they are denied access and their IP is logged</p>
89
  <p>When you are viewing an admin page, the plugin does nothing, this is designed this way as it is assumed admin user have authority, bear this in mind when testing.</p><br>
90
  <p>This plugin is best used in conjunction with a blocking tool to exclude the IP for longer. If you are on a VPS or dedicated server where you have root access you can install and configure <a href="https://www.fail2ban.org" target="_blank">fail2ban</a> or if you are on a shared host you can install <a href="https://wordpress.org/plugins/fullworks-firewall/" target="_blank">Fullworks Firewall</a> which does a very similar job, but requires no configuration to work automatically with Stop User Enumeration</a></p>', 'stop-user-enumeration' ),
91
- 'id' => 'info_text',
92
- 'type' => 'title',
93
  'tab' => 'info',
94
  'render_row_cb' => array( 'CMB2_Tabs', 'tabs_render_row_cb' ),
95
  ) );
96
 
97
  $cmb_options->add_field( array(
98
- 'name' => esc_html__('Stop REST API User calls','stop-user-enumeration'),
99
- 'desc' => esc_html__('WordPress allows anyone to find users by API call, by checking this box the calls will be restricted to logged in users only. Only untick this box if you need to allow unfettered API access to users','stop-user-enumeration'),
100
  'id' => 'stop_rest_user',
101
  'type' => 'checkbox',
102
- 'default' => $this->set_default_checkbox(true),
103
  'tab' => 'settings',
104
  'render_row_cb' => array( 'CMB2_Tabs', 'tabs_render_row_cb' ),
105
  ) );
106
 
107
  $cmb_options->add_field( array(
108
- 'name' => esc_html__('log attempts to AUTH LOG','stop-user-enumeration'),
109
- 'desc' => sprintf(esc_html__('Leave this ticked if you are using %1$sFail2Ban%2$s on your VPS to block attempts at enumeration.%3$s If you are not running Fail2Ban or on a shared host this does not need to be ticked, however it normally will not cause a problem being ticked.'
110
- ,'stop-user-enumeration'),
111
- '<a href="http://www.fail2ban.org/wiki/index.php/Main_Page" target="_blank">','</a>','<br>'),
112
  'id' => 'log_auth',
113
  'type' => 'checkbox',
114
- 'default' => $this->set_default_checkbox(true),
115
  'tab' => 'settings',
116
  'render_row_cb' => array( 'CMB2_Tabs', 'tabs_render_row_cb' ),
117
  ) );
118
 
119
  $cmb_options->add_field( array(
120
- 'name' => esc_html__('Remove numbers from comment authors','stop-user-enumeration'),
121
- 'desc' => esc_html__('This plugin uses jQuery to remove any numbers from a comment author name, this is because numbers trigger enumeration checking. You can untick this if you do not use comments on your site or you use a different comment method than standard',
122
- 'stop-user-enumeration'),
123
  'id' => 'comment_jquery',
124
  'type' => 'checkbox',
125
- 'default' => $this->set_default_checkbox(true),
126
  'tab' => 'settings',
127
  'render_row_cb' => array( 'CMB2_Tabs', 'tabs_render_row_cb' ),
128
  ) );
129
 
130
  }
131
 
132
- private function set_default_checkbox($default) {
133
  // only return true if the option has never been set
134
- $x=get_option($this->options_key,false);
135
- return get_option($this->options_key,false)?'':( $default ? (string) $default : '' );
136
  }
137
 
138
 
139
-
140
  }
37
  */
38
 
39
 
 
40
  $options = array(
41
  'id' => 'stop-user-enumeration_option_metabox',
42
  'title' => esc_html__( 'Stop User Enumeration', 'stop-user-enumeration' ),
43
  'tabs' => array(
44
+ 'info' => array(
45
  'label' => __( 'info', 'stop-user-enumeration' ),
46
  'icon' => 'dashicons-info',
47
  ),
82
 
83
  $cmb_options->add_field( array(
84
 
85
+ 'before' => '<h2>Information</h2>',
86
+ 'after_field' => __( '<p>Stop User Enumeration detects attempts by malicious scanners to identify your users</p>
87
  <p>If a bot or user is caught scanning for user names they are denied access and their IP is logged</p>
88
  <p>When you are viewing an admin page, the plugin does nothing, this is designed this way as it is assumed admin user have authority, bear this in mind when testing.</p><br>
89
  <p>This plugin is best used in conjunction with a blocking tool to exclude the IP for longer. If you are on a VPS or dedicated server where you have root access you can install and configure <a href="https://www.fail2ban.org" target="_blank">fail2ban</a> or if you are on a shared host you can install <a href="https://wordpress.org/plugins/fullworks-firewall/" target="_blank">Fullworks Firewall</a> which does a very similar job, but requires no configuration to work automatically with Stop User Enumeration</a></p>', 'stop-user-enumeration' ),
90
+ 'id' => 'info_text',
91
+ 'type' => 'title',
92
  'tab' => 'info',
93
  'render_row_cb' => array( 'CMB2_Tabs', 'tabs_render_row_cb' ),
94
  ) );
95
 
96
  $cmb_options->add_field( array(
97
+ 'name' => esc_html__( 'Stop REST API User calls', 'stop-user-enumeration' ),
98
+ 'desc' => esc_html__( 'WordPress allows anyone to find users by API call, by checking this box the calls will be restricted to logged in users only. Only untick this box if you need to allow unfettered API access to users', 'stop-user-enumeration' ),
99
  'id' => 'stop_rest_user',
100
  'type' => 'checkbox',
101
+ 'default' => $this->set_default_checkbox( true ),
102
  'tab' => 'settings',
103
  'render_row_cb' => array( 'CMB2_Tabs', 'tabs_render_row_cb' ),
104
  ) );
105
 
106
  $cmb_options->add_field( array(
107
+ 'name' => esc_html__( 'log attempts to AUTH LOG', 'stop-user-enumeration' ),
108
+ 'desc' => sprintf( esc_html__( 'Leave this ticked if you are using %1$sFail2Ban%2$s on your VPS to block attempts at enumeration.%3$s If you are not running Fail2Ban or on a shared host this does not need to be ticked, however it normally will not cause a problem being ticked.'
109
+ , 'stop-user-enumeration' ),
110
+ '<a href="http://www.fail2ban.org/wiki/index.php/Main_Page" target="_blank">', '</a>', '<br>' ),
111
  'id' => 'log_auth',
112
  'type' => 'checkbox',
113
+ 'default' => $this->set_default_checkbox( true ),
114
  'tab' => 'settings',
115
  'render_row_cb' => array( 'CMB2_Tabs', 'tabs_render_row_cb' ),
116
  ) );
117
 
118
  $cmb_options->add_field( array(
119
+ 'name' => esc_html__( 'Remove numbers from comment authors', 'stop-user-enumeration' ),
120
+ 'desc' => esc_html__( 'This plugin uses jQuery to remove any numbers from a comment author name, this is because numbers trigger enumeration checking. You can untick this if you do not use comments on your site or you use a different comment method than standard',
121
+ 'stop-user-enumeration' ),
122
  'id' => 'comment_jquery',
123
  'type' => 'checkbox',
124
+ 'default' => $this->set_default_checkbox( true ),
125
  'tab' => 'settings',
126
  'render_row_cb' => array( 'CMB2_Tabs', 'tabs_render_row_cb' ),
127
  ) );
128
 
129
  }
130
 
131
+ private function set_default_checkbox( $default ) {
132
  // only return true if the option has never been set
133
+ return get_option( $this->options_key, false ) ? '' : ( $default ? (string) $default : '' );
 
134
  }
135
 
136
 
 
137
  }
bootstrap.php CHANGED
@@ -1,5 +1,6 @@
1
  <?php
2
 
 
3
  namespace Stop_User_Enumeration;
4
  // @TODO options for xforwarded
5
 
@@ -8,40 +9,35 @@ if ( ! defined( 'WPINC' ) ) {
8
  die;
9
  }
10
  define( 'STOP_USER_ENUMERATION_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
11
- define( 'STOP_USER_ENUMERATION_PLUGIN_VERSION', '1.3.13' );
12
 
13
  // Include the autoloader so we can dynamically include the classes.
14
  require_once( STOP_USER_ENUMERATION_PLUGIN_DIR . 'includes/autoloader.php' );
15
 
16
 
17
-
18
-
19
  function run_stop_user_enumeration() {
20
  /**
21
  * Load freemius SDK
22
  */
23
- $freemius = new \Stop_User_Enumeration\Includes\Freemius_Config();
24
  $freemiusSDK = $freemius->init();
25
  // Signal that SDK was initiated.
26
  do_action( 'sue_fs_loaded' );
27
 
28
 
29
- $freemiusSDK->add_action('after_uninstall', array( '\Stop_User_Enumeration\Includes\Uninstall', 'uninstall' ));
30
 
31
  /**
32
  * The core plugin class that is used to define internationalization,
33
  * admin-specific hooks, and public-facing site hooks.
34
  */
35
 
36
- $plugin = new \Stop_User_Enumeration\Includes\Core($freemiusSDK);
37
  $plugin->run();
38
 
39
  }
40
- run_stop_user_enumeration();
41
-
42
-
43
-
44
 
 
45
 
46
 
47
  ?>
1
  <?php
2
 
3
+
4
  namespace Stop_User_Enumeration;
5
  // @TODO options for xforwarded
6
 
9
  die;
10
  }
11
  define( 'STOP_USER_ENUMERATION_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
12
+ define( 'STOP_USER_ENUMERATION_PLUGIN_VERSION', '1.3.15' );
13
 
14
  // Include the autoloader so we can dynamically include the classes.
15
  require_once( STOP_USER_ENUMERATION_PLUGIN_DIR . 'includes/autoloader.php' );
16
 
17
 
 
 
18
  function run_stop_user_enumeration() {
19
  /**
20
  * Load freemius SDK
21
  */
22
+ $freemius = new \Stop_User_Enumeration\Includes\Freemius_Config();
23
  $freemiusSDK = $freemius->init();
24
  // Signal that SDK was initiated.
25
  do_action( 'sue_fs_loaded' );
26
 
27
 
28
+ $freemiusSDK->add_action( 'after_uninstall', array( '\Stop_User_Enumeration\Includes\Uninstall', 'uninstall' ) );
29
 
30
  /**
31
  * The core plugin class that is used to define internationalization,
32
  * admin-specific hooks, and public-facing site hooks.
33
  */
34
 
35
+ $plugin = new \Stop_User_Enumeration\Includes\Core( $freemiusSDK );
36
  $plugin->run();
37
 
38
  }
 
 
 
 
39
 
40
+ run_stop_user_enumeration();
41
 
42
 
43
  ?>
frontend/class-frontend.php CHANGED
@@ -37,7 +37,7 @@ class FrontEnd {
37
  public function __construct( $plugin_name, $version ) {
38
 
39
  $this->plugin_name = $plugin_name;
40
- $this->version = $version;
41
 
42
  }
43
 
@@ -66,7 +66,7 @@ class FrontEnd {
66
  }
67
 
68
  public function only_allow_logged_in_rest_access_to_users( $access ) {
69
- if ( Core::sue_get_option( 'stop_rest_user','on' ) == 'on' ) {
70
  if ( ( preg_match( '/users/', $_SERVER['REQUEST_URI'] ) !== 0 ) || ( isset( $_REQUEST['rest_route'] ) && ( preg_match( '/users/', $_REQUEST['rest_route'] ) !== 0 ) ) ) {
71
  if ( ! is_user_logged_in() ) {
72
  $this->sue_log();
@@ -84,11 +84,11 @@ class FrontEnd {
84
  }
85
 
86
  private function sue_log() {
87
- $ip=sanitize_text_field( $_SERVER['REMOTE_ADDR'] );
88
- if (is_plugin_active('fullworks-firewall/fullworks-firewall.php')){
89
  do_action( 'fullworks_security_block_ip', $ip, 1, 'stop-user-enumeration' );
90
  }
91
- if ( Core::sue_get_option( 'log_auth','on' ) == 'on' ) {
92
  openlog( 'wordpress(' . sanitize_text_field( $_SERVER['HTTP_HOST'] ) . ')', LOG_NDELAY | LOG_PID, LOG_AUTH );
93
  syslog( LOG_INFO, "Attempted user enumeration from " . $ip );
94
  closelog();
37
  public function __construct( $plugin_name, $version ) {
38
 
39
  $this->plugin_name = $plugin_name;
40
+ $this->version = $version;
41
 
42
  }
43
 
66
  }
67
 
68
  public function only_allow_logged_in_rest_access_to_users( $access ) {
69
+ if ( 'on' === Core::sue_get_option( 'stop_rest_user', 'off' ) ) {
70
  if ( ( preg_match( '/users/', $_SERVER['REQUEST_URI'] ) !== 0 ) || ( isset( $_REQUEST['rest_route'] ) && ( preg_match( '/users/', $_REQUEST['rest_route'] ) !== 0 ) ) ) {
71
  if ( ! is_user_logged_in() ) {
72
  $this->sue_log();
84
  }
85
 
86
  private function sue_log() {
87
+ $ip = sanitize_text_field( $_SERVER['REMOTE_ADDR'] );
88
+ if ( is_plugin_active( 'fullworks-firewall/fullworks-firewall.php' ) ) {
89
  do_action( 'fullworks_security_block_ip', $ip, 1, 'stop-user-enumeration' );
90
  }
91
+ if ( 'on' === Core::sue_get_option( 'log_auth', 'off' ) ) {
92
  openlog( 'wordpress(' . sanitize_text_field( $_SERVER['HTTP_HOST'] ) . ')', LOG_NDELAY | LOG_PID, LOG_AUTH );
93
  syslog( LOG_INFO, "Attempted user enumeration from " . $ip );
94
  closelog();
frontend/js/frontend.js CHANGED
@@ -1,10 +1,10 @@
1
- (function( $ ) {
2
  'use strict';
3
 
4
- $(document).ready(function($) {
5
- $(".comment-form input[name='author']").blur(function() {
6
  $(this).val($(this).val().replace(/\d+/g, ''));
7
  });
8
  });
9
 
10
- })( jQuery );
1
+ (function ($) {
2
  'use strict';
3
 
4
+ $(document).ready(function ($) {
5
+ $(".comment-form input[name='author']").blur(function () {
6
  $(this).val($(this).val().replace(/\d+/g, ''));
7
  });
8
  });
9
 
10
+ })(jQuery);
includes/autoloader.php CHANGED
@@ -19,7 +19,7 @@ function fullworks_Stop_User_Enumeration_autoload( $class_name ) {
19
 
20
  // Do a reverse loop through $file_parts to build the path to the file.
21
  $namespace = '';
22
- for ( $i = count( $file_parts ) - 1; $i > 0; $i-- ) {
23
 
24
  // Read the current component of the file part.
25
  $current = strtolower( $file_parts[ $i ] );
@@ -50,7 +50,7 @@ function fullworks_Stop_User_Enumeration_autoload( $class_name ) {
50
  }
51
 
52
  // Now build a path to the file using mapping to the file location.
53
- $filepath = trailingslashit( dirname( dirname( __FILE__ ) ) . $namespace );
54
  $filepath .= $file_name;
55
 
56
  // If the file exists in the specified path, then include it.
@@ -58,6 +58,6 @@ function fullworks_Stop_User_Enumeration_autoload( $class_name ) {
58
  include_once( $filepath );
59
  } else {
60
  // changed to be translatable
61
- wp_die(sprintf(__('The system file attempting to be loaded at %1$s does not exist.','fullworks-firewall'),esc_html($filepath)) );
62
  }
63
  }
19
 
20
  // Do a reverse loop through $file_parts to build the path to the file.
21
  $namespace = '';
22
+ for ( $i = count( $file_parts ) - 1; $i > 0; $i -- ) {
23
 
24
  // Read the current component of the file part.
25
  $current = strtolower( $file_parts[ $i ] );
50
  }
51
 
52
  // Now build a path to the file using mapping to the file location.
53
+ $filepath = trailingslashit( dirname( dirname( __FILE__ ) ) . $namespace );
54
  $filepath .= $file_name;
55
 
56
  // If the file exists in the specified path, then include it.
58
  include_once( $filepath );
59
  } else {
60
  // changed to be translatable
61
+ wp_die( sprintf( __( 'The system file attempting to be loaded at %1$s does not exist.', 'stop-user-enumeration' ), esc_html( $filepath ) ) );
62
  }
63
  }
includes/class-core.php CHANGED
@@ -51,23 +51,15 @@ class Core {
51
  * the public-facing side of the site.
52
  *
53
  */
54
- public function __construct( $freemiusSDK ) {
55
-
56
  $this->plugin_name = 'stop-user-enumeration';
57
-
58
- $this->version = STOP_USER_ENUMERATION_PLUGIN_VERSION;
59
-
60
- $this->freemiusSDK = $freemiusSDK;
61
-
62
- $this->load_dependencies();
63
- $this->set_locale();
64
- $this->settings_pages();
65
- $this->define_public_hooks();
66
 
67
  // convert settings from legacy settings
68
  if ( $opts = get_option( 'sue_settings_settings' ) ) {
69
  $newopts = array(
70
- 'stop_rest_user' => ( $opts['general_stop_rest_user'] == 1 ) ? 'on' : '',
71
  'log_auth' => ( $opts['general_log_auth'] == 1 ) ? 'on' : '',
72
  'comment_jquery' => ( $opts['general_comment_jquery'] == 1 ) ? 'on' : '',
73
  );
@@ -76,6 +68,13 @@ class Core {
76
  }
77
 
78
 
 
 
 
 
 
 
 
79
  }
80
 
81
  /**
@@ -130,12 +129,12 @@ class Core {
130
 
131
  /**
132
  * Register all of the hooks related to the admin area functionality
133
- * of the plugin.
134
  *
135
  */
136
 
137
  private function settings_pages() {
138
- $settings = new Settings( $this->get_plugin_name(), $this->get_version(), $this->freemiusSDK );
139
 
140
  $this->loader->add_action( 'cmb2_admin_init', $settings, 'register_settings' );
141
  }
@@ -175,7 +174,7 @@ class Core {
175
  * side of the site.
176
  */
177
  $plugin_public = new FrontEnd( $this->get_plugin_name(), $this->get_version() );
178
- if ( $this->sue_get_option( 'comment_jquery', 'on' ) == 'on' ) {
179
  $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
180
  }
181
 
@@ -185,10 +184,23 @@ class Core {
185
 
186
  }
187
 
 
 
 
 
 
 
 
 
 
 
 
 
 
188
  public static function sue_get_option( $key = '', $default = false ) {
189
  if ( function_exists( 'cmb2_get_option' ) ) {
190
  // Use cmb2_get_option as it passes through some key filters.
191
- return cmb2_get_option( 'myprefix_network_options', $key, $default );
192
  }
193
  // Fallback to get_site_option if CMB2 is not loaded yet.
194
  $opts = get_option( 'stop-user-enumeration', $default );
51
  * the public-facing side of the site.
52
  *
53
  */
54
+ public function __construct( $freemius ) {
 
55
  $this->plugin_name = 'stop-user-enumeration';
56
+ $this->version = STOP_USER_ENUMERATION_PLUGIN_VERSION;
57
+ $this->freemius = $freemius;
 
 
 
 
 
 
 
58
 
59
  // convert settings from legacy settings
60
  if ( $opts = get_option( 'sue_settings_settings' ) ) {
61
  $newopts = array(
62
+ 'stop_rest_user' => ( $opts['general_stop_rest_user'] == 1 ) ? 'on' : '',
63
  'log_auth' => ( $opts['general_log_auth'] == 1 ) ? 'on' : '',
64
  'comment_jquery' => ( $opts['general_comment_jquery'] == 1 ) ? 'on' : '',
65
  );
68
  }
69
 
70
 
71
+ $this->load_dependencies();
72
+ $this->set_locale();
73
+ $this->settings_pages();
74
+ $this->define_admin_hooks();
75
+ $this->define_public_hooks();
76
+
77
+
78
  }
79
 
80
  /**
129
 
130
  /**
131
  * Register all of the hooks related to the admin area functionality
132
+ * of the plugin./home/alan/Google/Projects/WordPressPlugins/get-directions-orig
133
  *
134
  */
135
 
136
  private function settings_pages() {
137
+ $settings = new Settings( $this->get_plugin_name(), $this->get_version(), $this->freemius );
138
 
139
  $this->loader->add_action( 'cmb2_admin_init', $settings, 'register_settings' );
140
  }
174
  * side of the site.
175
  */
176
  $plugin_public = new FrontEnd( $this->get_plugin_name(), $this->get_version() );
177
+ if ( 'on' === $this->sue_get_option( 'comment_jquery', 'off' ) ) {
178
  $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
179
  }
180
 
184
 
185
  }
186
 
187
+ private function define_admin_hooks() {
188
+
189
+ /**
190
+ * The class responsible for defining all actions that occur in the admin area.
191
+ */
192
+
193
+ $plugin_admin = new Admin( $this->get_plugin_name(), $this->get_version() );
194
+
195
+ $this->freemius->add_filter( 'connect_message_on_update', array( $plugin_admin, 'connect_message' ), 10, 6 );
196
+ $this->freemius->add_filter( 'connect_message', array( $plugin_admin, 'connect_message' ), 10, 6 );
197
+
198
+ }
199
+
200
  public static function sue_get_option( $key = '', $default = false ) {
201
  if ( function_exists( 'cmb2_get_option' ) ) {
202
  // Use cmb2_get_option as it passes through some key filters.
203
+ return cmb2_get_option( 'stop-user-enumeration', $key, $default );
204
  }
205
  // Fallback to get_site_option if CMB2 is not loaded yet.
206
  $opts = get_option( 'stop-user-enumeration', $default );
includes/class-i18n.php CHANGED
@@ -42,5 +42,4 @@ class i18n {
42
  }
43
 
44
 
45
-
46
  }
42
  }
43
 
44
 
 
45
  }
includes/class-loader.php CHANGED
@@ -9,6 +9,7 @@
9
  * run function to execute the list of actions and filters.
10
  *
11
  */
 
12
  namespace Stop_User_Enumeration\Includes;
13
 
14
  class Loader {
@@ -78,11 +79,17 @@ class Loader {
78
  public function run() {
79
 
80
  foreach ( $this->filters as $hook ) {
81
- add_filter( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] );
 
 
 
82
  }
83
 
84
  foreach ( $this->actions as $hook ) {
85
- add_action( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] );
 
 
 
86
  }
87
 
88
  }
9
  * run function to execute the list of actions and filters.
10
  *
11
  */
12
+
13
  namespace Stop_User_Enumeration\Includes;
14
 
15
  class Loader {
79
  public function run() {
80
 
81
  foreach ( $this->filters as $hook ) {
82
+ add_filter( $hook['hook'], array(
83
+ $hook['component'],
84
+ $hook['callback']
85
+ ), $hook['priority'], $hook['accepted_args'] );
86
  }
87
 
88
  foreach ( $this->actions as $hook ) {
89
+ add_action( $hook['hook'], array(
90
+ $hook['component'],
91
+ $hook['callback']
92
+ ), $hook['priority'], $hook['accepted_args'] );
93
  }
94
 
95
  }
includes/vendor/autoload.php DELETED
@@ -1,7 +0,0 @@
1
- <?php
2
-
3
- // autoload.php @generated by Composer
4
-
5
- require_once __DIR__ . '/composer/autoload_real.php';
6
-
7
- return ComposerAutoloaderInit7cea7511504eb01ba01aef4ad46e80c8::getLoader();
 
 
 
 
 
 
 
includes/vendor/cmb2-extensions/CHANGELOG.md DELETED
@@ -1,5 +0,0 @@
1
- # Changelog
2
- All notable changes to this project will be documented in this file.
3
-
4
- ## 1.0.4
5
- * Initial release with wordpress plugin and code clean up
 
 
 
 
 
includes/vendor/cmb2-extensions/CONTRIBUTING.md DELETED
@@ -1,46 +0,0 @@
1
- # Contributing to CMB2
2
-
3
- Thank you for your interest in contributing back to CMB2 Extensions. Please help us review your issues and/or merge your pull requests by following the below guidelines.
4
-
5
- #### NOTE: The issues section is for bug reports and feature requests only.
6
- _Support is not offered for this library, and the likelihood that the maintainers will respond is very low. If you need help, please use [stackoverflow](http://stackoverflow.com/search?q=cmb).
7
-
8
- Before reporting a bug
9
- ---
10
- 1. Please review the [documentation](https://github.com/stackadroit/cmb2-extensions/wiki).
11
- 2. Search [issues](https://github.com/stackadroit/cmb2-extensions/issues) to see if the issue has been previously reported.
12
- 3. Install the trunk version of CMB2 and test there.
13
-
14
-
15
- How to report a bug
16
- ---
17
- 1. Specify the version number for CMB2 Extensions.
18
- 3. Describe the problem in detail. Explain what happened, and what you expected would happen.
19
- 4. Provide a small test-case and a link to a [gist](https://gist.github.com/) containing your entire metabox registration code.
20
- 5. If helpful, include a screenshot. Annotate the screenshot for clarity.
21
-
22
-
23
- How to contribute to CMB2 Extensions
24
- ---
25
- All contributions welcome. If you would like to submit a pull request, please follow the steps below.
26
-
27
- 1. Make sure you have a GitHub account.
28
- 2. Fork the repository on GitHub.
29
- 3. **Check out the trunk version of CMB2 Extensions.** If you submit to the master branch, the PR will be closed with a link back to this document.
30
- 4. **Verify your issue still exists in the trunk branch.**
31
- 5. Make changes to your clone of the repository.
32
- 1. Please follow the [WordPress code standards](https://make.wordpress.org/core/handbook/coding-standards).
33
- 2. If possible, and if applicable, please also add/update unit tests for your changes.
34
- 3. Please add documentation to any new functions, methods, actions and filters.
35
- 4. When committing, reference your issue (if present) and include a note about the fix.
36
- 6. [Submit a pull request](https://help.github.com/articles/creating-a-pull-request/).
37
-
38
- **Note:** You may gain more ground and avoid unecessary effort if you first open an issue with the proposed changes, but this step is not necessary.
39
-
40
-
41
- Additional Resources
42
- ---
43
-
44
- * [General GitHub Documentation](http://help.github.com/)
45
- * [GitHub Pull Request documentation](http://help.github.com/send-pull-requests/)
46
- * [PHPUnit Tests Guide](http://phpunit.de/manual/current/en/writing-tests-for-phpunit.html)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/cmb2-extensions/README.md DELETED
@@ -1,60 +0,0 @@
1
- CMB2 Code Snippet Library
2
- ========================
3
-
4
- This is a CMB2 Extension repository which help modify the default behavior of [CMB2](https://github.com/WebDevStudios/CMB2/) and extends it's functionality.
5
-
6
- Extension are organized into categories (folders) and each Extension is placed in its own file with a name that describes what it does.
7
-
8
- ## Usage
9
- You can view wiki page to usage and setup guide:
10
- [Documentation](https://github.com/stackadroit/cmb2-extensions/wiki)
11
-
12
- ## CMB2 Tabs
13
- CMB2 Tabs is an extenstion for [CMB2](https://github.com/WebDevStudios/CMB2/) which allow you to oragnize fields into tabs.
14
-
15
- ![cmb2 tabs](https://github.com/stackadroit/cmb2-extensions/raw/master/cmb2-tabs/screenshots/metabox-horizontal.PNG)
16
-
17
- ### Known Issues
18
-
19
- * Tabs doesn’t work in group field.
20
-
21
- ### Example
22
- ```php
23
- // Classic CMB2 declaration
24
- $cmb = new_cmb2_box( array(
25
- 'id' => 'prefix-metabox-id',
26
- 'title' => __( 'Post Info' ),
27
- 'object_types' => array( 'post', ), // Post type
28
- 'tabs' => array(
29
- 'contact' => array(
30
- 'label' => __( 'Contact', 'cmb2' ),
31
- //'show_on_cb' => 'yourprefix_show_if_front_page',
32
- ),
33
- 'social' => array(
34
- 'label' => __( 'Social Media', 'cmb2' ),
35
- 'icon' => 'dashicons-share', // Dashicon
36
- ),
37
- ),
38
- 'tab_style' => 'default',
39
- ) );
40
-
41
- // Add new field
42
- $cmb_demo->add_field( array(
43
- 'name' => esc_html__( 'Test Text Medium', 'cmb2' ),
44
- 'desc' => esc_html__( 'field description (optional)', 'cmb2' ),
45
- 'id' => $prefix . 'textmedium',
46
- 'type' => 'text_medium',
47
- 'tab' => 'contact',
48
- 'render_row_cb' => array( 'CMB2_Tabs', 'tabs_render_row_cb' ),
49
- ) );
50
-
51
- // Add new field
52
- $cmb_demo->add_field( array(
53
- 'name' => esc_html__( 'Test Text Medium', 'cmb2' ),
54
- 'desc' => esc_html__( 'field description (optional)', 'cmb2' ),
55
- 'id' => $prefix . 'textmedium2',
56
- 'type' => 'text_medium',
57
- 'tab' => 'social',
58
- 'render_row_cb' => array( 'CMB2_Tabs', 'tabs_render_row_cb' ),
59
- ) );
60
- ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/cmb2-extensions/cmb2-tabs/cmb2-tabs.php CHANGED
@@ -3,25 +3,25 @@
3
  * CMB2 Tabs.
4
  *
5
  * @package WordPress\Plugins\CMB2 Tabs
6
- * @author Team StackStudio <stackstudio@stackadroit.com>
7
- * @link https://stackstudio.stackadroit.com
8
- * @version 1.0.4
9
  *
10
- * @copyright 2017 Team StackStudio
11
  * @license http://creativecommons.org/licenses/GPL/2.0/ GNU General Public License, version 3 or higher
12
  *
13
  * @wordpress-plugin
14
  * Plugin Name: CMB2 Tabs
15
  * Plugin URI: https://github.com/stackadroit/cmb2-extensions
16
- * Description: CMB2 Tabs is an extenstion for CMB2 which allow you to oragnize fields into tabs.
17
- * Author: Team StackStudio <stackstudio@stackadroit.com>
18
- * Author URI: https://stackstudio.stackadroit.com
19
  * Github Plugin URI: https://github.com/stackadroit/cmb2-extensions
20
  * Github Branch: master
21
- * Version: 1.0.4
22
  * License: GPL v3
23
  *
24
- * Copyright (C) 2017, Team StackStudio - stackstudio@stackadroit.com
25
  *
26
  * GNU General Public License, Free Software Foundation <http://creativecommons.org/licenses/GPL/3.0/>
27
  *
@@ -54,7 +54,7 @@ if (!class_exists('CMB2_Tabs', false)) {
54
  *
55
  * @category WordPress_Plugin
56
  * @package CMB2 Tabs
57
- * @author Team StackStudio
58
  * @license GPL-3.0+
59
  * @link https://stackadroit.com
60
  */
@@ -66,7 +66,7 @@ if (!class_exists('CMB2_Tabs', false)) {
66
  * @const int
67
  * @since 1.0.0
68
  */
69
- const PRIORITY = 99998;
70
 
71
  /**
72
  * Current version number
@@ -74,7 +74,7 @@ if (!class_exists('CMB2_Tabs', false)) {
74
  * @const string
75
  * @since 1.0.0
76
  */
77
- const VERSION = '1.0.4';
78
 
79
  /**
80
  * The url which is used to load local resources
@@ -90,7 +90,7 @@ if (!class_exists('CMB2_Tabs', false)) {
90
  * @var CMB2
91
  * @since 1.0.0
92
  */
93
- protected $cmb = '';
94
 
95
  /**
96
  * Indicate that the instance of the class is working on a meta box that has tabs or not
@@ -165,7 +165,11 @@ if (!class_exists('CMB2_Tabs', false)) {
165
  echo '<div class="'.$class.'">';
166
 
167
  // Current cmb2 instance
168
- $this->cmb = $cmb;
 
 
 
 
169
  // Set 'true' to let us know that we're working on a meta box that has tabs
170
  $this->active = true;
171
  //setup style and script for tabs
@@ -293,60 +297,58 @@ if (!class_exists('CMB2_Tabs', false)) {
293
  */
294
  public static function tabs_render_row_cb($field_args, $field)
295
  {
296
-
297
  // Ok, callback is good, let's run it and store the result.
298
  ob_start();
299
-
300
- // If field is requesting to not be shown on the front-end
301
- if (!is_admin() && !$this->args('on_front')) {
302
- return;
303
- }
304
-
305
- // If field is requesting to be conditionally shown
306
- if (!$field->should_show()) {
307
- return;
308
- }
309
-
310
- $field->peform_param_callback('before_row');
311
-
312
- printf("<div class=\"cmb-row %s\" data-fieldtype=\"%s\">\n", $field->row_classes(), $field->type());
313
-
314
- if (!$field->args('show_names')) {
315
- echo "\n\t<div class=\"cmb-td\">\n";
316
-
317
- $field->peform_param_callback('label_cb');
318
-
319
- } else {
320
-
321
- if ($field->get_param_callback_result('label_cb')) {
322
- echo '<div class="cmb-th">', $field->peform_param_callback('label_cb'), '</div>';
323
- }
324
-
325
- echo "\n\t<div class=\"cmb-td\">\n";
326
- }
327
-
328
- $field->peform_param_callback('before');
329
-
330
- $types = new CMB2_Types($field);
331
- $types->render();
332
 
333
- $field->peform_param_callback('after');
 
 
 
 
 
 
334
 
335
- echo "\n\t</div>\n</div>";
336
 
337
- $field->peform_param_callback('after_row');
 
 
 
 
 
 
338
 
 
 
 
 
 
 
 
 
339
 
340
  // Grab the result from the output buffer and store it.
341
  $echoed = ob_get_clean();
342
-
343
  $outer_html = $echoed ? $echoed : $returned;
344
-
345
- $outer_html = apply_filters('cmb_output_html_row', $outer_html, $field_args, $field);
346
 
347
  echo $outer_html;
 
 
348
  }
349
 
 
350
  /**
351
  * Display tab navigation for meta box
352
  * Note that: this public function is hooked to 'cmb2_after_form', when all fields are outputted
3
  * CMB2 Tabs.
4
  *
5
  * @package WordPress\Plugins\CMB2 Tabs
6
+ * @author Team StackAdroit <stackstudio@stackadroit.com>
7
+ * @link https://stackadroit.com
8
+ * @version 1.0.6
9
  *
10
+ * @copyright 2017 Team StackAdroit
11
  * @license http://creativecommons.org/licenses/GPL/2.0/ GNU General Public License, version 3 or higher
12
  *
13
  * @wordpress-plugin
14
  * Plugin Name: CMB2 Tabs
15
  * Plugin URI: https://github.com/stackadroit/cmb2-extensions
16
+ * Description: CMB2 Tabs is an extension for CMB2 which allow you to organize fields into tabs.
17
+ * Author: Team StackAdroit <stackstudio@stackadroit.com>
18
+ * Author URI: https://stackadroit.com
19
  * Github Plugin URI: https://github.com/stackadroit/cmb2-extensions
20
  * Github Branch: master
21
+ * Version: 1.0.6
22
  * License: GPL v3
23
  *
24
+ * Copyright (C) 2017, Team StackAdroit - stackstudio@stackadroit.com
25
  *
26
  * GNU General Public License, Free Software Foundation <http://creativecommons.org/licenses/GPL/3.0/>
27
  *
54
  *
55
  * @category WordPress_Plugin
56
  * @package CMB2 Tabs
57
+ * @author Team StackAdroit
58
  * @license GPL-3.0+
59
  * @link https://stackadroit.com
60
  */
66
  * @const int
67
  * @since 1.0.0
68
  */
69
+ const PRIORITY = 99996;
70
 
71
  /**
72
  * Current version number
74
  * @const string
75
  * @since 1.0.0
76
  */
77
+ const VERSION = '1.0.6';
78
 
79
  /**
80
  * The url which is used to load local resources
90
  * @var CMB2
91
  * @since 1.0.0
92
  */
93
+ protected static $cmb = '';
94
 
95
  /**
96
  * Indicate that the instance of the class is working on a meta box that has tabs or not
165
  echo '<div class="'.$class.'">';
166
 
167
  // Current cmb2 instance
168
+ CMB2_Tabs::$cmb = $cmb;
169
+
170
+ // Add cmb2_tabs custome render callback to instance
171
+ CMB2_Field::$callable_fields[] = 'cmb2_tabs_render_row_cb';
172
+
173
  // Set 'true' to let us know that we're working on a meta box that has tabs
174
  $this->active = true;
175
  //setup style and script for tabs
297
  */
298
  public static function tabs_render_row_cb($field_args, $field)
299
  {
300
+
301
  // Ok, callback is good, let's run it and store the result.
302
  ob_start();
303
+
304
+ if ( 'group' === $field_args['type'] ) {
305
+ self::tabs_render_group_row_cb($field_args, $field);
306
+ }else{
307
+ if ($field->args( 'cmb2_tabs_render_row_cb' )) {
308
+ CMB2_Tabs::$cmb->peform_param_callback( 'cmb2_tabs_render_row_cb' );
309
+ } else {
310
+ $field->render_field_callback();
311
+ }
312
+ }
313
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
314
 
315
+ // Grab the result from the output buffer and store it.
316
+ $echoed = ob_get_clean();
317
+ $outer_html = $echoed ? $echoed : $returned;
318
+ $outer_html = apply_filters('cmb_output_html_row', $outer_html, $field_args, $field);
319
+ echo $outer_html;
320
+ //return $field;
321
+ }
322
 
 
323
 
324
+ /**
325
+ * Modified CMB2 render row function to capture Group rows in a output string
326
+ *
327
+ * @since 1.0.5
328
+ */
329
+ public static function tabs_render_group_row_cb($field_args, $field_group)
330
+ {
331
 
332
+ // Ok, callback is good, let's run it and store the result.
333
+ ob_start();
334
+
335
+ if ($field_group->args( 'cmb2_tabs_render_row_cb' )) {
336
+ CMB2_Tabs::$cmb->render_group_callback( 'cmb2_tabs_render_row_cb' );
337
+ } else {
338
+ CMB2_Tabs::$cmb->render_group_callback($field_args, $field_group);
339
+ }
340
 
341
  // Grab the result from the output buffer and store it.
342
  $echoed = ob_get_clean();
 
343
  $outer_html = $echoed ? $echoed : $returned;
344
+ $outer_html = apply_filters('cmb_output_html_row', $outer_html, $field_args, $field_group);
 
345
 
346
  echo $outer_html;
347
+
348
+ //return $field_group;
349
  }
350
 
351
+
352
  /**
353
  * Display tab navigation for meta box
354
  * Note that: this public function is hooked to 'cmb2_after_form', when all fields are outputted
includes/vendor/cmb2-extensions/cmb2-tabs/css/tabs.css CHANGED
@@ -155,6 +155,7 @@ Helper
155
  }
156
  .cmb-tabs ul.cmb-tab-nav li a {
157
  color: #555;
 
158
  }
159
 
160
  .cmb-tabs ul.cmb-tab-nav li.cmb-tab-active a {
@@ -288,4 +289,4 @@ Helper
288
  .cmb-tabs .cmb-repeat-row .cmb-td {
289
  width: auto;
290
  }
291
- }
155
  }
156
  .cmb-tabs ul.cmb-tab-nav li a {
157
  color: #555;
158
+ border: 1px solid transparent;
159
  }
160
 
161
  .cmb-tabs ul.cmb-tab-nav li.cmb-tab-active a {
289
  .cmb-tabs .cmb-repeat-row .cmb-td {
290
  width: auto;
291
  }
292
+ }
includes/vendor/cmb2-extensions/cmb2-tabs/example-functions.php CHANGED
@@ -35,6 +35,7 @@ function cmb2_tabs_show_if_front_page($cmb) {
35
  return true;
36
  }
37
 
 
38
  add_action('cmb2_admin_init', 'cmb2_tabs_register_demo_metabox');
39
 
40
  /**
@@ -202,5 +203,30 @@ function cmb2_tabs_register_demo_metabox() {
202
  'render_row_cb' => array('CMB2_Tabs', 'tabs_render_row_cb'),
203
  ));
204
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
205
  }
206
 
35
  return true;
36
  }
37
 
38
+
39
  add_action('cmb2_admin_init', 'cmb2_tabs_register_demo_metabox');
40
 
41
  /**
203
  'render_row_cb' => array('CMB2_Tabs', 'tabs_render_row_cb'),
204
  ));
205
 
206
+ /*******************GROUPS**************************/
207
+ $group_field_id = $cmb_tabs_demo->add_field( array(
208
+ 'id' => 'wiki_test_repeat_group',
209
+ 'type' => 'group',
210
+ 'description' => __( 'Generates reusable form entries', 'cmb2_tabs' ),
211
+ 'tab' => 'note',
212
+ 'render_row_cb' => array('CMB2_Tabs', 'tabs_render_group_row_cb'),
213
+ // 'repeatable' => false, // use false if you want non-repeatable group
214
+ 'options' => array(
215
+ 'group_title' => __( 'Entry {#}', 'cmb2_tabs' ), // since version 1.1.4, {#} gets replaced by row number
216
+ 'add_button' => __( 'Add Another Entry', 'cmb2_tabs' ),
217
+ 'remove_button' => __( 'Remove Entry', 'cmb2_tabs' ),
218
+ 'sortable' => true, // beta
219
+ // 'closed' => true, // true to have the groups closed by default
220
+ ),
221
+ ) );
222
+
223
+ // Id's for group's fields only need to be unique for the group. Prefix is not needed.
224
+ $cmb_tabs_demo->add_group_field( $group_field_id, array(
225
+ 'name' => __( 'Entry Title', 'cmb2_tabs' ),
226
+ 'id' => 'title',
227
+ 'type' => 'text',
228
+ // 'repeatable' => true, // Repeatable fields are supported w/in repeatable groups (for most types)
229
+ ) );
230
+
231
  }
232
 
includes/vendor/cmb2-extensions/cmb2-tabs/readme.txt CHANGED
@@ -4,9 +4,9 @@ Donate link: http://stackadroit.com/
4
  Tags: metaboxes, fields, tabs
5
  Requires at least: 3.8.0
6
  Tested up to: 4.7.2
7
- Stable tag: 1.0.4
8
- License: GPLv2 or later
9
- License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
 
12
  CMB2 Tabs is an extenstion for CMB2 which allow you to oragnize fields into tabs.
@@ -44,11 +44,10 @@ Development occurs on Github, and all contributions welcome. [CONTRIBUT](https:/
44
 
45
  FAQ's usually end up in the [github wiki](https://github.com/stackadroit/cmb2-extensions/wiki).
46
 
47
- ### Known Issues
48
-
49
- * Tabs doesn’t work in group field.
50
-
51
  == Changelog ==
52
 
53
  = 1.0.2 beta 26.07.2017 =
54
- * Error fix on plugin activation.
 
 
 
4
  Tags: metaboxes, fields, tabs
5
  Requires at least: 3.8.0
6
  Tested up to: 4.7.2
7
+ Stable tag: 1.0.6
8
+ License: GPLv3
9
+ License URI: http://creativecommons.org/licenses/GPL/3.0/
10
 
11
 
12
  CMB2 Tabs is an extenstion for CMB2 which allow you to oragnize fields into tabs.
44
 
45
  FAQ's usually end up in the [github wiki](https://github.com/stackadroit/cmb2-extensions/wiki).
46
 
 
 
 
 
47
  == Changelog ==
48
 
49
  = 1.0.2 beta 26.07.2017 =
50
+ * Error fix on plugin activation.
51
+
52
+ = 1.0.6 beta 17.11.2017 =
53
+ * Fixed group field issues
includes/vendor/cmb2-extensions/cmb2-tabs/screenshots/metabox-horizontal.PNG DELETED
Binary file
includes/vendor/cmb2-extensions/cmb2-tabs/screenshots/metabox-mobile.PNG DELETED
Binary file
includes/vendor/cmb2-extensions/cmb2-tabs/screenshots/metabox-vertical.PNG DELETED
Binary file
includes/vendor/cmb2-extensions/composer.json DELETED
@@ -1,35 +0,0 @@
1
- {
2
- "name": "stackadroit/cmb2-extensions",
3
- "description": "This is a CMB2 Extension repository which help modify the default behavior of CMB2 and extends it's functionality.",
4
- "license": "GPL-3.0+",
5
- "authors": [
6
- {
7
- "name": "Praneeth Polu",
8
- "email": "contact@polupraneeth.me",
9
- "homepage": "https://github.com/polupraneeth/",
10
- "role": "Developer"
11
- },
12
- {
13
- "name": "Team StackThemes",
14
- "email": "stackthemes@stackadroit.com",
15
- "homepage": "https://github.com/stackadroit",
16
- "role": "Developer"
17
- }
18
- ],
19
- "keywords": ["wordpress", "plugin", "metabox", "cmb2"],
20
- "homepage": "https://github.com/stackadroit/cmb2-extensions",
21
- "type": "wordpress-plugin",
22
- "support": {
23
- "issues": "https://github.com/stackadroit/cmb2-extensions/issues",
24
- "source": "https://github.com/stackadroit/cmb2-extensions"
25
- },
26
- "require": {
27
- "php": ">5.2.4"
28
- },
29
- "suggest": {
30
- "composer/installers": "~1.0"
31
- },
32
- "require-dev": {
33
- "phpunit/phpunit": "3.7.*"
34
- }
35
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/cmb2/CONTRIBUTING.md DELETED
@@ -1,52 +0,0 @@
1
- # Contributing to CMB2
2
-
3
- Thank you for your interest in contributing back to CMB2. Please help us review your issues and/or merge your pull requests by following the below guidelines.
4
-
5
- #### NOTE: The issues section is for bug reports and feature requests only.
6
- _Support is not offered for this library, and the likelihood that the maintainers will respond is very low. If you need help, please use [stackoverflow](http://stackoverflow.com/search?q=cmb), or the [wordpress.org plugin forums](http://wordpress.org/support/plugin/cmb2)._
7
-
8
- Before reporting a bug
9
- ---
10
- 1. Please review the [documentation](https://github.com/CMB2/CMB2/wiki). Most questions revolve around the [field types](https://github.com/CMB2/CMB2/wiki/Field-Types), [field parameters](https://github.com/CMB2/CMB2/wiki/Field-Parameters), or are addressed in the [troubleshooting](https://github.com/CMB2/CMB2/wiki/Troubleshooting) section.
11
- 2. Search [issues](https://github.com/CMB2/CMB2/issues) to see if the issue has been previously reported.
12
- 3. Install the trunk version of CMB2 and test there.
13
-
14
-
15
- How to report a bug
16
- ---
17
- 1. Specify the version number for both WordPress and CMB2.
18
- 3. Describe the problem in detail. Explain what happened, and what you expected would happen.
19
- 4. Provide a small test-case and a link to a [gist](https://gist.github.com/) containing your entire metabox registration code.
20
- 5. If helpful, include a screenshot. Annotate the screenshot for clarity.
21
-
22
-
23
- How to contribute to CMB2
24
- ---
25
- All contributions welcome. If you would like to submit a pull request, please follow the steps below.
26
-
27
- 1. Make sure you have a GitHub account.
28
- 2. Fork the repository on GitHub.
29
- 3. **Check out the trunk version of CMB2.** If you submit to the master branch, the PR will be closed with a link back to this document.
30
- 4. **Verify your issue still exists in the trunk branch.**
31
- 5. Make changes to your clone of the repository.
32
- 1. Please follow the [WordPress code standards](https://make.wordpress.org/core/handbook/coding-standards).
33
- 2. If possible, and if applicable, please also add/update unit tests for your changes.
34
- 3. Please add documentation to any new functions, methods, actions and filters.
35
- 4. When committing, reference your issue (if present) and include a note about the fix.
36
- 6. [Submit a pull request](https://help.github.com/articles/creating-a-pull-request/).
37
-
38
- **Note:** You may gain more ground and avoid unecessary effort if you first open an issue with the proposed changes, but this step is not necessary.
39
-
40
- Translations
41
- ---
42
- If you are looking to provide language translation files, Please do so via [WP-Translations](http://wp-translations.org/project/cmb2/).
43
-
44
- Additional Resources
45
- ---
46
-
47
- * [CMB2 Documentation Wiki](https://github.com/CMB2/CMB2/wiki)
48
- * [CMB2 Snippet Library](https://github.com/CMB2/CMB2-Snippet-Library)
49
- * [CMB2 API Documentation](http://cmb2.io/api/)
50
- * [General GitHub Documentation](http://help.github.com/)
51
- * [GitHub Pull Request documentation](http://help.github.com/send-pull-requests/)
52
- * [PHPUnit Tests Guide](http://phpunit.de/manual/current/en/writing-tests-for-phpunit.html)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/cmb2/css/cmb2-display.css.map DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "mappings": "AAAA;;GAEG;ACFH;;GAEG;;AAGF,6BAAK;EACJ,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,GAAG;EACX,aAAa,EAAE,GAAG;EAClB,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,GAAG;EACf,YAAY,EAAE,GAAG;;;;AAInB,UAAW;EACV,QAAQ,EAAE,MAAM;;;;AAGjB,kBAAmB;EAClB,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,IAAI;;;;AAGb,0BAA2B;EAC1B,OAAO,EAAE,MAAM;EACf,MAAM,EAAE,aAAa;;;;AAGtB,cAAe;EACd,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,IAAI",
4
- "sources": ["sass/cmb2-display.scss","sass/partials/_display.scss"],
5
- "names": [],
6
- "file": "cmb2-display.css"
7
- }
 
 
 
 
 
 
 
includes/vendor/cmb2/css/cmb2-front.css.map DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "mappings": ";AAAA;;GAEG;ACFH;;gEAEgE;;AAEhE,UAAW;EACV,MAAM,EAAE,CAAC;;;AAET;mBACS;EACR,SAAS,ECEK,IAAI;EDDlB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,GAAG;;;AAMZ,uCAAc;EACb,KAAK,EAAE,IAAI;;;AAIb,mBAAS;EACR,KAAK,EAAE,KAAK;;;AAEZ,sCAAqB;EACpB,WAAW,EChBE,sCAAsC;EDiBnD,WAAW,EAAE,IAAI;;;AAMlB,kEACkB;EACjB,KAAK,EAAE,KAAK;;;AAIb,gCAAkB;EACjB,KAAK,EAAE,IAAI;;;AAIZ,iCAAmB;EAClB,KAAK,EAAE,KAAK;;;AAIb,iCAAmB;EAClB,KAAK,EAAE,GAAG;;;AAGX,0BAAY;EACX,OAAO,EAAE,OAAO;;;AAIhB;;8CAES;EACR,WAAW,EAAE,IAAI;;;AAKpB,aAAG;EACF,MAAM,EAAE,CAAC;;;AAGV,aAAG;EACF,SAAS,EC5DK,IAAI;ED6DlB,WAAW,EAAE,IAAI;EACjB,MAAM,EAAE,WAAW;;;AAQpB,iBAAO;EACN,SAAS,ECvEK,IAAI;EDwElB,UAAU,EAAE,GAAG;;;AAGhB;yBACe;EACd,UAAU,ECtEI,OAAO;;;ADyEtB,8BAAoB;EACnB,MAAM,EAAE,SAAS;EACjB,OAAO,EAAE,CAAC;;;AAGX,iCAAuB;EACtB,MAAM,EAAE,SAAS;EACjB,OAAO,EAAE,CAAC;;;AAGX;4BACkB;EACjB,WAAW,EAAE,MAAM;;;AAGpB,qBAAW;EACV,MAAM,EAAE,4BAAgC;;;AAGzC,8BAAoB;EACnB,UAAU,EAAE,IAAI;;;AAGjB,oBAAU;EACT,KAAK,EAAE,GAAG;;;AAEV,6BAAS;EACR,KAAK,EAAE,IAAI;;;AAKb;gCACsB;EACrB,cAAc,EAAE,MAAM;;;AAGvB;+BACqB;EACpB,MAAM,EAAE,UAAU;;;AAGnB,mBAAS;EACR,MAAM,EAAE,CAAC;;;AAET,yBAAQ;EACP,OAAO,EAAE,EAAE;EACX,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;;;AAGZ,wDAAuC;EACtC,WAAW,EAAE,CAAC;EACd,cAAc,EAAE,GAAG;;;;AAMtB,aAAc;EACb,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,CAAC;;;AAIR;;;gEACQ;EACP,MAAM,EAAE,CAAC;;;;AAKZ,YAAa;EACZ,MAAM,EAAE,SAAS;;;;AAGlB;;mCAEoC;EACnC,MAAM,EAAE,CAAC;;;;AAGV;;kCAEmC;EAClC,aAAa,EAAE,CAAC;;;;AAGjB,wBAAyB;EACxB,MAAM,EAAE,iBAAqB;EAC7B,OAAO,EAAE,KAAK;;;AAEd,gCAAU;EACT,MAAM,EAAE,SAAS;;;;AAOnB,OAAQ;EACP,KAAK,ECnLU,OAAO;EDoLtB,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,GAAG;EAChB,OAAO,EAAE,gBAAgB;EACzB,cAAc,EAAE,GAAG;EACnB,KAAK,EAAE,KAAK;;AAEZ,yBAAkC;;EATnC,OAAQ;IE3LP,SAAS,EAAE,KAAK;IAehB,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,IAAI;IACX,cAAc,EAAE,GAAG;IACnB,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;;;EAEX,aAAM;IACL,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,KAAK;;;;;AFiLtB,OAAQ;EACP,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,SAAS;EAClB,cAAc,EAAE,MAAM;;;;AAKtB,uBAAQ;EACP,OAAO,EAAE,CAAC;;;;AAIZ,aAAc;EACb,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,KAAK;;;;AAGf,iBAAkB;EACjB,KAAK,EAAE,IAAI;;;;AAGZ,eAAgB;EACf,cAAc,EAAE,GAAG;;;;AAGpB,eAAgB;EACf,UAAU,EAAE,KAAK;;;;AAGlB,iBAAkB;EACjB,OAAO,EAAE,IAAI;;;;AAId,iBAAkB;EACjB,gBAAgB,EAAE,OAAO;EACzB,MAAM,EAAE,iBAAiC;;;AAEzC,yCAAwB;EACvB,QAAQ,EAAE,QAAQ;EAClB,iBAAiB,EAAE,EAAE;EAErB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,mBAAmB;EAC5B,aAAa,EAAE,eAAe;;;AAE9B,2DAAoB;EACnB,UAAU,EAAE,iBAAqB;;;AAGlC,gDAAS;EACR,OAAO,EAAE,WAAW;EACpB,OAAO,EAAE,KAAK;EAEd,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,QAAQ;EAElB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,WAAW,EAAE,IAAI;EAEjB,KAAK,EC/PQ,OAAO;EDgQpB,UAAU,EAAE,MAAM;EAClB,YAAY,EAAE,iBAAqB;;;AAGpC,iDAAQ;EACP,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;;;AAKZ,gCAAe;EACd,MAAM,EAAE,CAAC;;;AAET,uCAAS;EACR,OAAO,EAAE,EAAE;EACX,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,KAAK;EACd,WAAW,EAAE,IAAI;EACjB,gBAAgB,EAAE,SAAuB;;;AAI3C,iCAAgB;EACf,GAAG,EAAE,GAAG;EACR,KAAK,EAAE,GAAG;EACV,QAAQ,EAAE,QAAQ;EAElB,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,CAAC;EACd,OAAO,EAAE,YAAY;EAErB,OAAO,EAAE,IAAI;;;AAEb,0DAAyB;EACxB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,OAAO;EAEpB,QAAQ,EAAE,MAAM;EAChB,QAAQ,EAAE,QAAQ;EAElB,MAAM,EAAE,IAAI;EACZ,WAAW,EAAE,CAAC;EACd,OAAO,EAAE,QAAQ;;;AAEjB,iEAAS;EE3RX,OAAO,EF4RsB,GAAO;EE3RpC,WAAW,EAAE,WAAW;EACxB,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,MAAM;EACnB,YAAY,EAAE,MAAM;EACpB,cAAc,EAAE,IAAI;EACpB,WAAW,EAAE,CAAC;EACd,sBAAsB,EAAE,WAAW;EACnC,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,CAAC;EACd,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,MAAM;;;AFkRlB,uDAAsC;EACrC,OAAO,EAAE,KAAK;;;;AAOf,6BAAQ;EACP,OAAO,EAAE,GAAG;;;AAGb,sCAAiB;EAChB,gBAAgB,EChUF,OAAO;EDiUrB,OAAO,EAAE,kBAAkB;EAC3B,MAAM,EAAE,MAAM;EACd,UAAU,EAAE,KAAK;EACjB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;;;AAEhB,yCAAG;EACF,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,CAAC;EACT,SAAS,EAAE,KAAK;EAChB,WAAW,EAAE,GAAG;EAChB,OAAO,EAAE,YAAY;;;AAGtB,8CAAQ;EACP,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;;;AAIb,oDAA+B;EEhW/B,SAAS,EAAE,KAAK;EAehB,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,cAAc,EAAE,GAAG;EACnB,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;;;AAEX,0DAAM;EACL,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,KAAK;;;AF4UrB,qCAAgB;EACf,SAAS,EAAE,GAAG;EACd,YAAY,EAAE,GAAG;EACjB,eAAe,EAAE,IAAI;;;AAErB,gDAAW;EACV,SAAS,EAAE,KAAK;EAChB,MAAM,EAAE,KAAK;EACb,WAAW,EAAE,KAAK;EAClB,KAAK,EAAE,GAAG;;;AAEV,0EAA4B;EAC3B,WAAW,EAAE,KAAK;;;AAMrB,yCAAoB;EACnB,KAAK,EAAE,KAAK;;;;AAKd,0BAA2B;EAC1B,KAAK,ECnXU,OAAO;EDoXtB,UAAU,EAAE,MAAM;EAClB,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,IAAI;;;;AAGlB,6BAA8B;EAC7B,KAAK,EC1XU,OAAO;ED2XtB,UAAU,EAAE,MAAM;;;;AAGnB,mBAAoB;EACnB,MAAM,EAAE,SAAS;EACjB,OAAO,EAAE,SAAS;EAClB,SAAS,EAAE,IAAI;;;;AAGhB,cAAe;EACd,OAAO,EAAE,SAAS;;;;AAGnB,cAAe;EACd,OAAO,EAAE,YAAY;EACrB,aAAa,EAAE,IAAI;;;;AAGpB,2BAA4B;EAC3B,MAAM,EAAE,CAAC;;;;AAKT,8BAAY;EACX,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,YAAY;EACrB,cAAc,EAAE,MAAM;EACtB,YAAY,EAAE,IAAI;EAClB,KAAK,EAAE,IAAI;;;AAEX,kCAAI;EACH,SAAS,EAAE,KAAK;EAChB,MAAM,EAAE,IAAI;;;AAId;gCACc;EACb,UAAU,EC9ZI,OAAO;ED+ZrB,MAAM,EAAE,iBAAqB;EAC7B,aAAa,EAAE,GAAG;EAClB,kBAAkB,EAAE,GAAG;EACtB,MAAM,EAAE,UAAU;EACnB,OAAO,EAAE,GAAG;;;AAGb,gCAAc;EACb,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,KAAK;;;AAGjB,gEAA2B;EAC1B,QAAQ,EAAE,QAAQ;;;AAElB,kHAAyB;EACxB,UAAU,EAAE,6BAA6B;EACzC,MAAM,EAAE,IAAI;EACZ,IAAI,EAAE,IAAI;EACV,QAAQ,EAAE,QAAQ;EAClB,WAAW,EAAE,OAAO;EACpB,GAAG,EAAE,IAAI;EACT,KAAK,EAAE,IAAI;;;AAOZ,uDAAyB;EACxB,GAAG,EAAE,IAAI;;;AAIX,0EAAqC;EACpC,MAAM,EAAE,OAAO;;;;AAKjB,kDAAmD;EAClD,KAAK,EAAE,IAAI;EACX,cAAc,EAAE,MAAM;EACtB,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,IAAI;EAClB,aAAa,EAAE,IAAI;EACnB,UAAU,EAAE,CAAC;;;;AAGd,mBAAoB;EACnB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,GAAG;EACf,aAAa,EAAE,IAAI;;;AAEnB,uBAAI;EACH,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,IAAI;;;;AAIpB,oBAAqB;EACpB,MAAM,EAAE,CAAC;;;;AAGV,mBAAoB;EACnB,UAAU,EAAE,IAAI;;;;AAGjB,wBAAyB;EACxB,YAAY,EAAE,KAAK;;;AAGpB,yBAAkC;;EACjC;;mBAEkB;IACjB,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;;;AGngBb;;gEAEgE;;AAChE,2BAA4B;EAC3B,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,IAAI;EAClB,UAAU,EAAE,KAAK;;;;AAGlB,uCAAwC;EACvC,YAAY,EAAE,KAAK;;;;AAKnB,oDAAW;EACV,MAAM,EAAE,CAAC;;;AAET,8GAA6B;EAC5B,OAAO,EAAE,OAAO;;;AAKhB,8GAAc;EACb,KAAK,EAAE,IAAI;;;AAKd,gDAAS;EACR,OAAO,EAAE,SAAS;EAClB,MAAM,EAAE,SAAS;;;AAEjB,sEAAW;EACV,KAAK,EAAE,IAAI;EACX,QAAQ,EAAE,QAAQ;;;AAIpB,gFAAyB;EACxB,OAAO,EAAE,KAAK;EACd,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,cAAc;;;AAG1B,gGAAiC;EAChC,cAAc,EAAE,CAAC;;;AAGlB,8CAAQ;EACP,KAAK,EAAE,GAAG;EACV,OAAO,EAAE,QAAQ;;;AAIlB,8CAAQ;EACP,aAAa,EAAE,CAAC;EAChB,OAAO,EAAE,CAAC;EACV,WAAW,EAAE,GAAG;;;AAGjB,kEAAkB;EACjB,KAAK,EAAE,GAAG;EACV,KAAK,EAAE,KAAK;;;AAGb;;wDACyC;EACxC,aAAa,EAAE,iBAAqB;;AAEpC,yBAAkC;;EAJnC;;0DACyC;IAIvC,aAAa,EAAE,CAAC;;;;AAIlB;;qCACsB;EACrB,WAAW,EAAE,KAAK;;;AC9EpB;;gEAEgE;AAEhE,uCAAuC;;AAIrC,sDAAS;EACR,OAAO,EAAE,OAAO;EAChB,OAAO,EAAE,YAAY;EACrB,IAAI,EAAE,uBAAuB;EAC7B,KAAK,EAAE,IAAI;EACX,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,eAAe,EAAE,eAAe;;;AAMhC,6DAAS;EACR,OAAO,EAAE,OAAO;;;;AAOpB,yBAA0B;EAEzB,aAAa,EAAE,IAAI;;;AAEnB,sDAA+B;EAC9B,UAAU,EAAE,IAAI;;;AAGjB,iDAA0B;EACzB,UAAU,EAAE,IAAI;;;AAGjB,kDAA2B;EAC1B,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,CAAC;;;AAGjB,8CAAuB;EAEtB,UAAU,EAAE,IAAI;;;AAEhB,qDAAO;EACN,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,QAAQ;EACjB,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,GAAG;;;AAIlB,gCAAO;EACN,MAAM,EAAE,IAAI;;;;AAId,kBAAmB;EAElB,UAAU,EAAE,IAAI;;;AAEhB,6CAA6B;EAC5B,YAAY,EAAE,KAAK;EACnB,KAAK,EAAE,IAAI;;;AAKX,2DAAc;EACb,OAAO,EAAE,IAAI;;;AAIf,0BAAQ;EACP,OAAO,EAAE,QAAQ;EACjB,KAAK,EAAE,GAAG;;;AAGX,0BAAQ;EACP,KAAK,EAAE,GAAG;EACV,OAAO,EAAE,CAAC;;;AAGX,2BAAS;EACR,aAAa,EAAE,IAAI;;;AAEnB,wCAAe;EACd,aAAa,EAAE,CAAC;;;AAMnB,8CAA8C;AAC9C,yCAA0C;;EAEzC,6CAA8C;IAC7C,YAAY,EAAE,CAAC;;;ACvGjB;;gEAEgE;;AAChE,kBAAmB;EAClB,SAAS,EAAE,MAAM;;;AAEjB,4BAAY;EACX,aAAa,EAAE,GAAG;;;AAGnB,2CAAyB;EACxB,OAAO,EAAE,GAAG;EACZ,UAAU,EAAE,IAAI;EAChB,UAAU,EJMI,OAAO;EILrB,MAAM,EAAE,iBAAqB;EAC7B,UAAU,EAAE,6BAA2B;;;AAEvC,qDAAU;EACT,OAAO,EAAE,CAAC;EACV,WAAW,EAAE,OAAO;;;AAGrB,+DAAoB;EACnB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,SAAS;EAClB,WAAW,EAAE,KAAK;;AAElB,yBAAkC;;EALnC,+DAAoB;IAMlB,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,CAAC;;;;AAMjB,6CAA2B;EAC1B,UAAU,EAAE,GAAG;EACf,OAAO,EAAE,SAAS;EAClB,gBAAgB,EAAE,OAAO;;;AAEzB,iEAAoB;EACnB,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,CAAC;EAChB,cAAc,EAAE,SAAS;;;AAG1B,uEAA0B;EACzB,WAAW,EAAE,MAAM;;;AAKpB,uEAA+B;EAC9B,OAAO,EAAE,WAAW;;;AAGrB,wDAAgB;EACf,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,CAAC;;;AAGjB,4EAAoC;EACnC,WAAW,EAAE,GAAG;EAChB,cAAc,EAAE,YAAY;;;ACjE/B;;gEAEgE;;AAEhE,mCAAoC;EACnC,MAAM,EAAE,CAAC;;;;AAMT;;kCAAoB;EACnB,SAAS,EAAE,KAAK;;;;AAKjB,0DAAa;EACZ,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,IAAI;;;;AAIf,YAAa;EACZ,OAAO,EAAE,IAAI;;;AACb,sBAAY;EACX,OAAO,EAAE,KAAK;;;AC1BhB;;gEAEgE;;AAO9D;uDAA6B;EAC5B,OAAO,EAAE,OAAO;;;AAKhB;iEAAqC;EACpC,KAAK,EAAE,IAAI;;;AAGZ;;yCAA0C;EACzC,WAAW,EAAE,CAAC;EACd,UAAU,EAAE,GAAG;EACf,OAAO,EAAE,KAAK;;;AAGf;gDAAkB;EACjB,SAAS,EAAE,GAAG;;;AACd;4EAA4B;EAC3B,OAAO,EAAE,KAAK;;;AAKjB;gCAAM;EACL,OAAO,EAAE,KAAK;EACd,WAAW,EAAE,GAAG;EAChB,OAAO,EAAE,OAAO;;;AAKlB;wBAAS;EACR,SAAS,EAAE,GAAG;;;AAGf;qCAAsB;EACrB,aAAa,EAAE,iBAAqB;;;AAGrC;iEAAkD;EACjD,aAAa,EAAE,CAAC;EAChB,aAAa,EAAE,MAAM;;;AAGtB;;;;;iCAEkB;EACjB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;;;AAGZ;+BAAgB;EACf,OAAO,EAAE,IAAI;;;AAGd;uBAAQ;EL9CR,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,cAAc,EAAE,GAAG;EACnB,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;EK4CV,YAAY,EAAE,CAAC;EACf,aAAa,EAAE,CAAC;;;AL3CjB;6BAAM;EACL,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,KAAK;;;AAhBrB;6BAAM;EACL,SAAS,EDHK,IAAI;ECIlB,WAAW,EAAE,KAAK;;;AK0DlB;8CAAQ;EACP,WAAW,EAAE,CAAC;;;AAEf;gEAA0B;EACzB,OAAO,EAAE,CAAC;;;AAMX;wCAAQ;EACP,OAAO,EAAE,CAAC;;;AAKX;mEAA2B;EAC1B,UAAU,EAAE,GAAG;;;AAQf;;;oDAAI;EACH,SAAS,EAAE,GAAG;EAEd,MAAM,EAAE,IAAI;;;AAKf;gCAAiB;EAChB,OAAO,EAAE,MAAM;EACf,WAAW,EAAE,MAAM;;;AAGpB;yCAA0B;EACzB,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,OAAO;;;AAKhB;;;4DAC0B;EACzB,WAAW,EAAE,MAAM;EACnB,OAAO,EAAE,MAAM;;;AAIjB;kDAAmC;EAClC,cAAc,EAAE,KAAK;;;AAGtB;mCAAoB;EACnB,SAAS,EAAE,KAAK;EAChB,UAAU,EAAE,MAAM;;;AAGnB;+BAAgB;EACf,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,CAAC;;;AAGlB;mCAAoB;EACnB,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,IAAI;;;;AC7IjB,wBAAW;EACV,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,KAAK;EACZ,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,OAAO;EACf,KAAK,EAAE,IAAI;EACX,QAAQ,EAAE,QAAQ;;;AAClB,+BAAS;EACR,OAAO,EAAE,OAAO;EAChB,KAAK,EAAE,IAAI;EACX,IAAI,EAAE,yBAAyB;EAC/B,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,QAAQ;EACjB,GAAG,EAAE,CAAC;EACN,QAAQ,EAAE,QAAQ;EAClB,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,eAAe,EAAE,eAAe;;;AAMhC,+CAAS;EACR,OAAO,EAAE,OAAO;;;AAKnB,2EAA8D;EAC7D,kBAAkB,EAAE,eAAe;EACnC,UAAU,EAAE,eAAe;EAC3B,MAAM,EAAE,eAAe;EACvB,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,CAAC;EACP,GAAG,EAAE,IAAI;EACT,WAAW,EAAE,GAAG;EAChB,OAAO,EAAE,WAAW;EACpB,OAAO,EAAE,EAAE;;;AACX,2FAAkB;EACjB,MAAM,EAAE,OAAO;EACf,KAAK,EPvBQ,IAAI;EOwBjB,OAAO,EAAE,CAAC;;;AACV,iGAAQ;EACP,KAAK,EP3BO,IAAI;;;AQpBpB;;;;;;;;;;;;GAYG;;AAEH,uCAAwC;EACvC,MAAM,EAAC,EAAE;;;;AAQV,yDAA0D;EACzD,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CAAC;EACT,qBAAqB,EAAE,CAAC;EACxB,kBAAkB,EAAE,CAAC;EACrB,aAAa,EAAE,CAAC;EAChB,gBAAgB,EAAE,IAAI;EACtB,MAAM,EAAE,iBAAiB;EACzB,UAAU,EAAE,IAAI;EAChB,kBAAkB,EAAE,8BAA8B;EAClD,UAAU,EAAE,8BAA8B;EAC1C,SAAS,EAAE,IAAI;EACf,KAAK,EAAE,IAAI;EA6KX,0BAA0B;;;AA3K1B,6DAAE;EACD,OAAO,EAAE,CAAC;EACV,WAAW,EAAE,uBAAuB;EACpC,qBAAqB,EAAE,CAAC;EACxB,kBAAkB,EAAE,CAAC;EACrB,aAAa,EAAE,CAAC;;;AAGjB,qEAAM;EACL,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,IAAI;EACZ,eAAe,EAAE,QAAQ;;;AAG1B;;kDACsB;EACrB,gBAAgB,EAAE,IAAI;EACtB,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,MAAM;;;AAGpB,qIAAsC;EACrC,UAAU,EAAE,WAAW;EACvB,YAAY,EAAE,WAAW;EACzB,MAAM,EAAE,OAAO;;;AAGhB,mGAAqB;EACpB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,MAAM;EACf,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,UAAU,EAAE,MAAM;;;AAElB,iHAAO;EACN,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,IAAI;;;AAIrB;;gDACoB;EACnB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;;;AAGZ;;+DACmC;EAClC,MAAM,EAAE,IAAI;;;AAGb;;sDAC0B;EACzB,IAAI,EAAE,CAAC;;;AAGR;;sDAC0B;EACzB,KAAK,EAAE,CAAC;;;AAGT;;qDACyB;EACxB,OAAO,EAAE,IAAI;;;AAGd,iGAAoB;EACnB,KAAK,EAAE,IAAI;;;AAGZ,iGAAoB;EACnB,KAAK,EAAE,KAAK;;;AAGb;;uDAC2B;EAC1B,IAAI,EAAE,4BAA4B;EAClC,YAAY,EAAE,GAAG;EACjB,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;;;AAGb,+GAA2B;EAC1B,OAAO,EAAE,OAAO;;;AAGjB,+GAA2B;EAC1B,OAAO,EAAE,OAAO;;;AAGjB;;6DACiC;EAChC,OAAO,EAAE,GAAG;;;AAGb;;sDAC0B;EACzB,KAAK,EAAE,GAAG;EACV,UAAU,EAAE,WAAW;EACvB,YAAY,EAAE,WAAW;EACzB,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;;;AACX;;6DAAO;EACN,KAAK,EAAE,IAAI;;;AAIb,qEAAM;EACL,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,GAAG;;;AAChB,2EAAG;EACF,WAAW,EAAE,MAAM;;;AAIrB,+DAAG;EACF,OAAO,EAAE,IAAI;;;AAGd,+DAAG;EACF,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,iBAAkB;;;AAG3B,mHAA6B;EAC5B,MAAM,EAAE,WAAW;;;AAGpB,6GAA0B;EACzB,gBAAgB,EA7JR,OAAO;EA8Jf,MAAM,EAAE,iBAAkB;;;AAC1B,qJAAsB;EACrB,kBAAkB,EAAE,wCAAwC;EAC5D,eAAe,EAAE,wCAAwC;EACzD,UAAU,EAAE,wCAAwC;;;AAItD,uGAAuB;EACtB,gBAAgB,EAAE,OAAO;;;AAG1B,mHAA6B;EAC5B,UAAU,EAAE,OAAO;;;AAGpB,mGAAqB;EACpB,UAAU,EAAE,WAAW;EACvB,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,MAAM;EAClB,eAAe,EAAE,IAAI;EACrB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,QAAQ;EACjB,WAAW,EAAE,MAAM;EACnB,KAAK,EAAE,IAAI;;;AAGZ,uIAAuC;EACtC,OAAO,EAAE,GAAG;;;AAIb;;kDACsB;EACrB,UAAU,EAhMA,OAAO;;;AAmMlB,qEAAM;EACL,UAAU,EAnMA,OAAO;;;AAsMlB,kMAAwC;EACvC,UAAU,EAtMI,OAAO;EAuMrB,KAAK,EAAE,IAAI;;;AAGZ,+FAAmB;EAClB,SAAS,EAAE,IAAI;;;AACf,qGAAG;EACF,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,MAAM;;;AACf,2GAAG;EACF,KAAK,EAAE,IAAI;EACX,KAAK,EAAC,IAAI;EACV,OAAO,EAAE,SAAS;;;AAEnB,2GAAG;EACF,MAAM,EAAE,eAAe;;;AACvB,yHAAO;EACN,KAAK,EAAE,IAAI;;;AAKd,uJAA4B;EAC3B,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,IAAI;;;AAEhB,oXAAmC;EAClC,OAAO,EAAE,UAAU;EACnB,qBAAqB,EAAE,GAAG;EAC1B,kBAAkB,EAAE,GAAG;EACvB,aAAa,EAAE,GAAG;EAClB,MAAM,EAAE,gBAAgB;;;;AAS1B;;qEACsB;EACrB,UAAU,EAlPD,OAAO;;;AAqPjB,2GAAM;EACL,UAAU,EArPD,OAAO;;;AAwPjB,qIAAmB;EAClB,UAAU,EAxPG,OAAO;EAyPpB,KAAK,EAAE,IAAI;;;;AAMZ;;oEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,yGAAM;EACL,UAAU,EAAE,OAAO;;;AAQnB,0QAAkC;EACjC,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;AAGZ,2IAAsB;EACrB,UAAU,EAAE,IAAI;;;;AAQlB;;sEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,6GAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,uIAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;yEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,mHAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,6IAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;wEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,iHAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,2IAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;qEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,2GAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,qIAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;;;uFAEsC;EACrC,UAAU,EAAE,OAAO;;;AAGpB,yGAAG;EACF,YAAY,EAAE,OAAO;EACrB,UAAU,EAAE,OAAO;;;AAGpB,yIAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;qEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB;;yEAC0B;EACzB,KAAK,EAAE,IAAI;;;AAGZ,2GAAM;EACL,UAAU,EAAE,IAAI;;;AAGjB;;;;;;0EAG2B;EAC1B,KAAK,EAAE,IAAI;;;AAIX,8QAAkC;EACjC,UAAU,EAAE,IAAI;;;AAGjB,6IAAsB;EACrB,UAAU,EAAE,IAAI;;;;AAOlB;;6EACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,2HAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,qJAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;wEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,iHAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,2IAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;ACncd;;GAEG;;ACJH,eAAgB;EACf,OAAO,EAAE,IAAI;;;;AAGd,wBAAyB;EACxB,QAAQ,EAAE,QAAQ;;;AAElB,yCAAiB;EAChB,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,IAAI;EAClB,UAAU,EAAE,KAAK;;;AAGlB,2BAAG;EACF,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,QAAQ;EACjB,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,GAAG;;;;AAOjB,iDAA8B;EAC7B,YAAY,EAAE,KAAK;;;AAGpB,qDAAkC;EACjC,YAAY,EAAE,IAAI;;;;AAKpB,mCAAoC;EACnC,KAAK,EAAE,CAAC;EACR,QAAQ,EAAE,QAAQ;;;;AAGnB,YAAa;EACZ,UAAU,EAAE,2CAA2C;EACvD,uBAAuB,EAAE,SAAS;EAClC,eAAe,EAAE,SAAS;EAC1B,OAAO,EAAE,IAAI;EACb,KAAK,EAAE,KAAK;EACZ,cAAc,EAAE,MAAM;EACtB,OAAO,EAAE,GAAG;EACZ,MAAM,EAAE,iBAAiB;EACzB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,UAAU",
4
- "sources": ["sass/cmb2.scss","sass/partials/_main_wrap.scss","sass/partials/_variables.scss","sass/partials/_mixins.scss","sass/partials/_post_metaboxes.scss","sass/partials/_context_metaboxes.scss","sass/partials/_options-page.scss","sass/partials/_misc.scss","sass/partials/_sidebar_placements.scss","sass/partials/_collapsible_ui.scss","sass/partials/_jquery_ui.scss","sass/cmb2-front.scss","sass/partials/_front.scss"],
5
- "names": [],
6
- "file": "cmb2-front.css"
7
- }
 
 
 
 
 
 
 
includes/vendor/cmb2/css/cmb2.css.map DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "mappings": ";AAAA;;GAEG;ACFH;;gEAEgE;;AAEhE,UAAW;EACV,MAAM,EAAE,CAAC;;;AAET;mBACS;EACR,SAAS,ECEK,IAAI;EDDlB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,GAAG;;;AAMZ,uCAAc;EACb,KAAK,EAAE,IAAI;;;AAIb,mBAAS;EACR,KAAK,EAAE,KAAK;;;AAEZ,sCAAqB;EACpB,WAAW,EChBE,sCAAsC;EDiBnD,WAAW,EAAE,IAAI;;;AAMlB,kEACkB;EACjB,KAAK,EAAE,KAAK;;;AAIb,gCAAkB;EACjB,KAAK,EAAE,IAAI;;;AAIZ,iCAAmB;EAClB,KAAK,EAAE,KAAK;;;AAIb,iCAAmB;EAClB,KAAK,EAAE,GAAG;;;AAGX,0BAAY;EACX,OAAO,EAAE,OAAO;;;AAIhB;;8CAES;EACR,WAAW,EAAE,IAAI;;;AAKpB,aAAG;EACF,MAAM,EAAE,CAAC;;;AAGV,aAAG;EACF,SAAS,EC5DK,IAAI;ED6DlB,WAAW,EAAE,IAAI;EACjB,MAAM,EAAE,WAAW;;;AAQpB,iBAAO;EACN,SAAS,ECvEK,IAAI;EDwElB,UAAU,EAAE,GAAG;;;AAGhB;yBACe;EACd,UAAU,ECtEI,OAAO;;;ADyEtB,8BAAoB;EACnB,MAAM,EAAE,SAAS;EACjB,OAAO,EAAE,CAAC;;;AAGX,iCAAuB;EACtB,MAAM,EAAE,SAAS;EACjB,OAAO,EAAE,CAAC;;;AAGX;4BACkB;EACjB,WAAW,EAAE,MAAM;;;AAGpB,qBAAW;EACV,MAAM,EAAE,4BAAgC;;;AAGzC,8BAAoB;EACnB,UAAU,EAAE,IAAI;;;AAGjB,oBAAU;EACT,KAAK,EAAE,GAAG;;;AAEV,6BAAS;EACR,KAAK,EAAE,IAAI;;;AAKb;gCACsB;EACrB,cAAc,EAAE,MAAM;;;AAGvB;+BACqB;EACpB,MAAM,EAAE,UAAU;;;AAGnB,mBAAS;EACR,MAAM,EAAE,CAAC;;;AAET,yBAAQ;EACP,OAAO,EAAE,EAAE;EACX,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;;;AAGZ,wDAAuC;EACtC,WAAW,EAAE,CAAC;EACd,cAAc,EAAE,GAAG;;;;AAMtB,aAAc;EACb,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,CAAC;;;AAIR;;;gEACQ;EACP,MAAM,EAAE,CAAC;;;;AAKZ,YAAa;EACZ,MAAM,EAAE,SAAS;;;;AAGlB;;mCAEoC;EACnC,MAAM,EAAE,CAAC;;;;AAGV;;kCAEmC;EAClC,aAAa,EAAE,CAAC;;;;AAGjB,wBAAyB;EACxB,MAAM,EAAE,iBAAqB;EAC7B,OAAO,EAAE,KAAK;;;AAEd,gCAAU;EACT,MAAM,EAAE,SAAS;;;;AAOnB,OAAQ;EACP,KAAK,ECnLU,OAAO;EDoLtB,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,GAAG;EAChB,OAAO,EAAE,gBAAgB;EACzB,cAAc,EAAE,GAAG;EACnB,KAAK,EAAE,KAAK;;AAEZ,yBAAkC;;EATnC,OAAQ;IE3LP,SAAS,EAAE,KAAK;IAehB,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,IAAI;IACX,cAAc,EAAE,GAAG;IACnB,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;;;EAEX,aAAM;IACL,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,KAAK;;;;;AFiLtB,OAAQ;EACP,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,SAAS;EAClB,cAAc,EAAE,MAAM;;;;AAKtB,uBAAQ;EACP,OAAO,EAAE,CAAC;;;;AAIZ,aAAc;EACb,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,KAAK;;;;AAGf,iBAAkB;EACjB,KAAK,EAAE,IAAI;;;;AAGZ,eAAgB;EACf,cAAc,EAAE,GAAG;;;;AAGpB,eAAgB;EACf,UAAU,EAAE,KAAK;;;;AAGlB,iBAAkB;EACjB,OAAO,EAAE,IAAI;;;;AAId,iBAAkB;EACjB,gBAAgB,EAAE,OAAO;EACzB,MAAM,EAAE,iBAAiC;;;AAEzC,yCAAwB;EACvB,QAAQ,EAAE,QAAQ;EAClB,iBAAiB,EAAE,EAAE;EAErB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,mBAAmB;EAC5B,aAAa,EAAE,eAAe;;;AAE9B,2DAAoB;EACnB,UAAU,EAAE,iBAAqB;;;AAGlC,gDAAS;EACR,OAAO,EAAE,WAAW;EACpB,OAAO,EAAE,KAAK;EAEd,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,QAAQ;EAElB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,WAAW,EAAE,IAAI;EAEjB,KAAK,EC/PQ,OAAO;EDgQpB,UAAU,EAAE,MAAM;EAClB,YAAY,EAAE,iBAAqB;;;AAGpC,iDAAQ;EACP,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;;;AAKZ,gCAAe;EACd,MAAM,EAAE,CAAC;;;AAET,uCAAS;EACR,OAAO,EAAE,EAAE;EACX,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,KAAK;EACd,WAAW,EAAE,IAAI;EACjB,gBAAgB,EAAE,SAAuB;;;AAI3C,iCAAgB;EACf,GAAG,EAAE,GAAG;EACR,KAAK,EAAE,GAAG;EACV,QAAQ,EAAE,QAAQ;EAElB,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,CAAC;EACd,OAAO,EAAE,YAAY;EAErB,OAAO,EAAE,IAAI;;;AAEb,0DAAyB;EACxB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,OAAO;EAEpB,QAAQ,EAAE,MAAM;EAChB,QAAQ,EAAE,QAAQ;EAElB,MAAM,EAAE,IAAI;EACZ,WAAW,EAAE,CAAC;EACd,OAAO,EAAE,QAAQ;;;AAEjB,iEAAS;EE3RX,OAAO,EF4RsB,GAAO;EE3RpC,WAAW,EAAE,WAAW;EACxB,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,MAAM;EACnB,YAAY,EAAE,MAAM;EACpB,cAAc,EAAE,IAAI;EACpB,WAAW,EAAE,CAAC;EACd,sBAAsB,EAAE,WAAW;EACnC,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,CAAC;EACd,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,MAAM;;;AFkRlB,uDAAsC;EACrC,OAAO,EAAE,KAAK;;;;AAOf,6BAAQ;EACP,OAAO,EAAE,GAAG;;;AAGb,sCAAiB;EAChB,gBAAgB,EChUF,OAAO;EDiUrB,OAAO,EAAE,kBAAkB;EAC3B,MAAM,EAAE,MAAM;EACd,UAAU,EAAE,KAAK;EACjB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;;;AAEhB,yCAAG;EACF,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,CAAC;EACT,SAAS,EAAE,KAAK;EAChB,WAAW,EAAE,GAAG;EAChB,OAAO,EAAE,YAAY;;;AAGtB,8CAAQ;EACP,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;;;AAIb,oDAA+B;EEhW/B,SAAS,EAAE,KAAK;EAehB,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,cAAc,EAAE,GAAG;EACnB,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;;;AAEX,0DAAM;EACL,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,KAAK;;;AF4UrB,qCAAgB;EACf,SAAS,EAAE,GAAG;EACd,YAAY,EAAE,GAAG;EACjB,eAAe,EAAE,IAAI;;;AAErB,gDAAW;EACV,SAAS,EAAE,KAAK;EAChB,MAAM,EAAE,KAAK;EACb,WAAW,EAAE,KAAK;EAClB,KAAK,EAAE,GAAG;;;AAEV,0EAA4B;EAC3B,WAAW,EAAE,KAAK;;;AAMrB,yCAAoB;EACnB,KAAK,EAAE,KAAK;;;;AAKd,0BAA2B;EAC1B,KAAK,ECnXU,OAAO;EDoXtB,UAAU,EAAE,MAAM;EAClB,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,IAAI;;;;AAGlB,6BAA8B;EAC7B,KAAK,EC1XU,OAAO;ED2XtB,UAAU,EAAE,MAAM;;;;AAGnB,mBAAoB;EACnB,MAAM,EAAE,SAAS;EACjB,OAAO,EAAE,SAAS;EAClB,SAAS,EAAE,IAAI;;;;AAGhB,cAAe;EACd,OAAO,EAAE,SAAS;;;;AAGnB,cAAe;EACd,OAAO,EAAE,YAAY;EACrB,aAAa,EAAE,IAAI;;;;AAGpB,2BAA4B;EAC3B,MAAM,EAAE,CAAC;;;;AAKT,8BAAY;EACX,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,YAAY;EACrB,cAAc,EAAE,MAAM;EACtB,YAAY,EAAE,IAAI;EAClB,KAAK,EAAE,IAAI;;;AAEX,kCAAI;EACH,SAAS,EAAE,KAAK;EAChB,MAAM,EAAE,IAAI;;;AAId;gCACc;EACb,UAAU,EC9ZI,OAAO;ED+ZrB,MAAM,EAAE,iBAAqB;EAC7B,aAAa,EAAE,GAAG;EAClB,kBAAkB,EAAE,GAAG;EACtB,MAAM,EAAE,UAAU;EACnB,OAAO,EAAE,GAAG;;;AAGb,gCAAc;EACb,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,KAAK;;;AAGjB,gEAA2B;EAC1B,QAAQ,EAAE,QAAQ;;;AAElB,kHAAyB;EACxB,UAAU,EAAE,6BAA6B;EACzC,MAAM,EAAE,IAAI;EACZ,IAAI,EAAE,IAAI;EACV,QAAQ,EAAE,QAAQ;EAClB,WAAW,EAAE,OAAO;EACpB,GAAG,EAAE,IAAI;EACT,KAAK,EAAE,IAAI;;;AAOZ,uDAAyB;EACxB,GAAG,EAAE,IAAI;;;AAIX,0EAAqC;EACpC,MAAM,EAAE,OAAO;;;;AAKjB,kDAAmD;EAClD,KAAK,EAAE,IAAI;EACX,cAAc,EAAE,MAAM;EACtB,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,IAAI;EAClB,aAAa,EAAE,IAAI;EACnB,UAAU,EAAE,CAAC;;;;AAGd,mBAAoB;EACnB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,GAAG;EACf,aAAa,EAAE,IAAI;;;AAEnB,uBAAI;EACH,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,IAAI;;;;AAIpB,oBAAqB;EACpB,MAAM,EAAE,CAAC;;;;AAGV,mBAAoB;EACnB,UAAU,EAAE,IAAI;;;;AAGjB,wBAAyB;EACxB,YAAY,EAAE,KAAK;;;AAGpB,yBAAkC;;EACjC;;mBAEkB;IACjB,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;;;AGngBb;;gEAEgE;;AAChE,2BAA4B;EAC3B,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,IAAI;EAClB,UAAU,EAAE,KAAK;;;;AAGlB,uCAAwC;EACvC,YAAY,EAAE,KAAK;;;;AAKnB,oDAAW;EACV,MAAM,EAAE,CAAC;;;AAET,8GAA6B;EAC5B,OAAO,EAAE,OAAO;;;AAKhB,8GAAc;EACb,KAAK,EAAE,IAAI;;;AAKd,gDAAS;EACR,OAAO,EAAE,SAAS;EAClB,MAAM,EAAE,SAAS;;;AAEjB,sEAAW;EACV,KAAK,EAAE,IAAI;EACX,QAAQ,EAAE,QAAQ;;;AAIpB,gFAAyB;EACxB,OAAO,EAAE,KAAK;EACd,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,cAAc;;;AAG1B,gGAAiC;EAChC,cAAc,EAAE,CAAC;;;AAGlB,8CAAQ;EACP,KAAK,EAAE,GAAG;EACV,OAAO,EAAE,QAAQ;;;AAIlB,8CAAQ;EACP,aAAa,EAAE,CAAC;EAChB,OAAO,EAAE,CAAC;EACV,WAAW,EAAE,GAAG;;;AAGjB,kEAAkB;EACjB,KAAK,EAAE,GAAG;EACV,KAAK,EAAE,KAAK;;;AAGb;;wDACyC;EACxC,aAAa,EAAE,iBAAqB;;AAEpC,yBAAkC;;EAJnC;;0DACyC;IAIvC,aAAa,EAAE,CAAC;;;;AAIlB;;qCACsB;EACrB,WAAW,EAAE,KAAK;;;AC9EpB;;gEAEgE;AAEhE,uCAAuC;;AAIrC,sDAAS;EACR,OAAO,EAAE,OAAO;EAChB,OAAO,EAAE,YAAY;EACrB,IAAI,EAAE,uBAAuB;EAC7B,KAAK,EAAE,IAAI;EACX,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,eAAe,EAAE,eAAe;;;AAMhC,6DAAS;EACR,OAAO,EAAE,OAAO;;;;AAOpB,yBAA0B;EAEzB,aAAa,EAAE,IAAI;;;AAEnB,sDAA+B;EAC9B,UAAU,EAAE,IAAI;;;AAGjB,iDAA0B;EACzB,UAAU,EAAE,IAAI;;;AAGjB,kDAA2B;EAC1B,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,CAAC;;;AAGjB,8CAAuB;EAEtB,UAAU,EAAE,IAAI;;;AAEhB,qDAAO;EACN,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,QAAQ;EACjB,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,GAAG;;;AAIlB,gCAAO;EACN,MAAM,EAAE,IAAI;;;;AAId,kBAAmB;EAElB,UAAU,EAAE,IAAI;;;AAEhB,6CAA6B;EAC5B,YAAY,EAAE,KAAK;EACnB,KAAK,EAAE,IAAI;;;AAKX,2DAAc;EACb,OAAO,EAAE,IAAI;;;AAIf,0BAAQ;EACP,OAAO,EAAE,QAAQ;EACjB,KAAK,EAAE,GAAG;;;AAGX,0BAAQ;EACP,KAAK,EAAE,GAAG;EACV,OAAO,EAAE,CAAC;;;AAGX,2BAAS;EACR,aAAa,EAAE,IAAI;;;AAEnB,wCAAe;EACd,aAAa,EAAE,CAAC;;;AAMnB,8CAA8C;AAC9C,yCAA0C;;EAEzC,6CAA8C;IAC7C,YAAY,EAAE,CAAC;;;ACvGjB;;gEAEgE;;AAChE,kBAAmB;EAClB,SAAS,EAAE,MAAM;;;AAEjB,4BAAY;EACX,aAAa,EAAE,GAAG;;;AAGnB,2CAAyB;EACxB,OAAO,EAAE,GAAG;EACZ,UAAU,EAAE,IAAI;EAChB,UAAU,EJMI,OAAO;EILrB,MAAM,EAAE,iBAAqB;EAC7B,UAAU,EAAE,6BAA2B;;;AAEvC,qDAAU;EACT,OAAO,EAAE,CAAC;EACV,WAAW,EAAE,OAAO;;;AAGrB,+DAAoB;EACnB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,SAAS;EAClB,WAAW,EAAE,KAAK;;AAElB,yBAAkC;;EALnC,+DAAoB;IAMlB,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,CAAC;;;;AAMjB,6CAA2B;EAC1B,UAAU,EAAE,GAAG;EACf,OAAO,EAAE,SAAS;EAClB,gBAAgB,EAAE,OAAO;;;AAEzB,iEAAoB;EACnB,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,CAAC;EAChB,cAAc,EAAE,SAAS;;;AAG1B,uEAA0B;EACzB,WAAW,EAAE,MAAM;;;AAKpB,uEAA+B;EAC9B,OAAO,EAAE,WAAW;;;AAGrB,wDAAgB;EACf,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,CAAC;;;AAGjB,4EAAoC;EACnC,WAAW,EAAE,GAAG;EAChB,cAAc,EAAE,YAAY;;;ACjE/B;;gEAEgE;;AAEhE,mCAAoC;EACnC,MAAM,EAAE,CAAC;;;;AAMT;;kCAAoB;EACnB,SAAS,EAAE,KAAK;;;;AAKjB,0DAAa;EACZ,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,IAAI;;;;AAIf,YAAa;EACZ,OAAO,EAAE,IAAI;;;AACb,sBAAY;EACX,OAAO,EAAE,KAAK;;;AC1BhB;;gEAEgE;;AAO9D;uDAA6B;EAC5B,OAAO,EAAE,OAAO;;;AAKhB;iEAAqC;EACpC,KAAK,EAAE,IAAI;;;AAGZ;;yCAA0C;EACzC,WAAW,EAAE,CAAC;EACd,UAAU,EAAE,GAAG;EACf,OAAO,EAAE,KAAK;;;AAGf;gDAAkB;EACjB,SAAS,EAAE,GAAG;;;AACd;4EAA4B;EAC3B,OAAO,EAAE,KAAK;;;AAKjB;gCAAM;EACL,OAAO,EAAE,KAAK;EACd,WAAW,EAAE,GAAG;EAChB,OAAO,EAAE,OAAO;;;AAKlB;wBAAS;EACR,SAAS,EAAE,GAAG;;;AAGf;qCAAsB;EACrB,aAAa,EAAE,iBAAqB;;;AAGrC;iEAAkD;EACjD,aAAa,EAAE,CAAC;EAChB,aAAa,EAAE,MAAM;;;AAGtB;;;;;iCAEkB;EACjB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;;;AAGZ;+BAAgB;EACf,OAAO,EAAE,IAAI;;;AAGd;uBAAQ;EL9CR,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,cAAc,EAAE,GAAG;EACnB,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;EK4CV,YAAY,EAAE,CAAC;EACf,aAAa,EAAE,CAAC;;;AL3CjB;6BAAM;EACL,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,KAAK;;;AAhBrB;6BAAM;EACL,SAAS,EDHK,IAAI;ECIlB,WAAW,EAAE,KAAK;;;AK0DlB;8CAAQ;EACP,WAAW,EAAE,CAAC;;;AAEf;gEAA0B;EACzB,OAAO,EAAE,CAAC;;;AAMX;wCAAQ;EACP,OAAO,EAAE,CAAC;;;AAKX;mEAA2B;EAC1B,UAAU,EAAE,GAAG;;;AAQf;;;oDAAI;EACH,SAAS,EAAE,GAAG;EAEd,MAAM,EAAE,IAAI;;;AAKf;gCAAiB;EAChB,OAAO,EAAE,MAAM;EACf,WAAW,EAAE,MAAM;;;AAGpB;yCAA0B;EACzB,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,OAAO;;;AAKhB;;;4DAC0B;EACzB,WAAW,EAAE,MAAM;EACnB,OAAO,EAAE,MAAM;;;AAIjB;kDAAmC;EAClC,cAAc,EAAE,KAAK;;;AAGtB;mCAAoB;EACnB,SAAS,EAAE,KAAK;EAChB,UAAU,EAAE,MAAM;;;AAGnB;+BAAgB;EACf,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,CAAC;;;AAGlB;mCAAoB;EACnB,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,IAAI;;;;AC7IjB,wBAAW;EACV,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,KAAK;EACZ,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,OAAO;EACf,KAAK,EAAE,IAAI;EACX,QAAQ,EAAE,QAAQ;;;AAClB,+BAAS;EACR,OAAO,EAAE,OAAO;EAChB,KAAK,EAAE,IAAI;EACX,IAAI,EAAE,yBAAyB;EAC/B,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,QAAQ;EACjB,GAAG,EAAE,CAAC;EACN,QAAQ,EAAE,QAAQ;EAClB,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,eAAe,EAAE,eAAe;;;AAMhC,+CAAS;EACR,OAAO,EAAE,OAAO;;;AAKnB,2EAA8D;EAC7D,kBAAkB,EAAE,eAAe;EACnC,UAAU,EAAE,eAAe;EAC3B,MAAM,EAAE,eAAe;EACvB,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,CAAC;EACP,GAAG,EAAE,IAAI;EACT,WAAW,EAAE,GAAG;EAChB,OAAO,EAAE,WAAW;EACpB,OAAO,EAAE,EAAE;;;AACX,2FAAkB;EACjB,MAAM,EAAE,OAAO;EACf,KAAK,EPvBQ,IAAI;EOwBjB,OAAO,EAAE,CAAC;;;AACV,iGAAQ;EACP,KAAK,EP3BO,IAAI;;;AQpBpB;;;;;;;;;;;;GAYG;;AAEH,uCAAwC;EACvC,MAAM,EAAC,EAAE;;;;AAQV,yDAA0D;EACzD,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CAAC;EACT,qBAAqB,EAAE,CAAC;EACxB,kBAAkB,EAAE,CAAC;EACrB,aAAa,EAAE,CAAC;EAChB,gBAAgB,EAAE,IAAI;EACtB,MAAM,EAAE,iBAAiB;EACzB,UAAU,EAAE,IAAI;EAChB,kBAAkB,EAAE,8BAA8B;EAClD,UAAU,EAAE,8BAA8B;EAC1C,SAAS,EAAE,IAAI;EACf,KAAK,EAAE,IAAI;EA6KX,0BAA0B;;;AA3K1B,6DAAE;EACD,OAAO,EAAE,CAAC;EACV,WAAW,EAAE,uBAAuB;EACpC,qBAAqB,EAAE,CAAC;EACxB,kBAAkB,EAAE,CAAC;EACrB,aAAa,EAAE,CAAC;;;AAGjB,qEAAM;EACL,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,IAAI;EACZ,eAAe,EAAE,QAAQ;;;AAG1B;;kDACsB;EACrB,gBAAgB,EAAE,IAAI;EACtB,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,MAAM;;;AAGpB,qIAAsC;EACrC,UAAU,EAAE,WAAW;EACvB,YAAY,EAAE,WAAW;EACzB,MAAM,EAAE,OAAO;;;AAGhB,mGAAqB;EACpB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,MAAM;EACf,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,UAAU,EAAE,MAAM;;;AAElB,iHAAO;EACN,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,IAAI;;;AAIrB;;gDACoB;EACnB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;;;AAGZ;;+DACmC;EAClC,MAAM,EAAE,IAAI;;;AAGb;;sDAC0B;EACzB,IAAI,EAAE,CAAC;;;AAGR;;sDAC0B;EACzB,KAAK,EAAE,CAAC;;;AAGT;;qDACyB;EACxB,OAAO,EAAE,IAAI;;;AAGd,iGAAoB;EACnB,KAAK,EAAE,IAAI;;;AAGZ,iGAAoB;EACnB,KAAK,EAAE,KAAK;;;AAGb;;uDAC2B;EAC1B,IAAI,EAAE,4BAA4B;EAClC,YAAY,EAAE,GAAG;EACjB,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;;;AAGb,+GAA2B;EAC1B,OAAO,EAAE,OAAO;;;AAGjB,+GAA2B;EAC1B,OAAO,EAAE,OAAO;;;AAGjB;;6DACiC;EAChC,OAAO,EAAE,GAAG;;;AAGb;;sDAC0B;EACzB,KAAK,EAAE,GAAG;EACV,UAAU,EAAE,WAAW;EACvB,YAAY,EAAE,WAAW;EACzB,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;;;AACX;;6DAAO;EACN,KAAK,EAAE,IAAI;;;AAIb,qEAAM;EACL,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,GAAG;;;AAChB,2EAAG;EACF,WAAW,EAAE,MAAM;;;AAIrB,+DAAG;EACF,OAAO,EAAE,IAAI;;;AAGd,+DAAG;EACF,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,iBAAkB;;;AAG3B,mHAA6B;EAC5B,MAAM,EAAE,WAAW;;;AAGpB,6GAA0B;EACzB,gBAAgB,EA7JR,OAAO;EA8Jf,MAAM,EAAE,iBAAkB;;;AAC1B,qJAAsB;EACrB,kBAAkB,EAAE,wCAAwC;EAC5D,eAAe,EAAE,wCAAwC;EACzD,UAAU,EAAE,wCAAwC;;;AAItD,uGAAuB;EACtB,gBAAgB,EAAE,OAAO;;;AAG1B,mHAA6B;EAC5B,UAAU,EAAE,OAAO;;;AAGpB,mGAAqB;EACpB,UAAU,EAAE,WAAW;EACvB,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,MAAM;EAClB,eAAe,EAAE,IAAI;EACrB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,QAAQ;EACjB,WAAW,EAAE,MAAM;EACnB,KAAK,EAAE,IAAI;;;AAGZ,uIAAuC;EACtC,OAAO,EAAE,GAAG;;;AAIb;;kDACsB;EACrB,UAAU,EAhMA,OAAO;;;AAmMlB,qEAAM;EACL,UAAU,EAnMA,OAAO;;;AAsMlB,kMAAwC;EACvC,UAAU,EAtMI,OAAO;EAuMrB,KAAK,EAAE,IAAI;;;AAGZ,+FAAmB;EAClB,SAAS,EAAE,IAAI;;;AACf,qGAAG;EACF,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,MAAM;;;AACf,2GAAG;EACF,KAAK,EAAE,IAAI;EACX,KAAK,EAAC,IAAI;EACV,OAAO,EAAE,SAAS;;;AAEnB,2GAAG;EACF,MAAM,EAAE,eAAe;;;AACvB,yHAAO;EACN,KAAK,EAAE,IAAI;;;AAKd,uJAA4B;EAC3B,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,IAAI;;;AAEhB,oXAAmC;EAClC,OAAO,EAAE,UAAU;EACnB,qBAAqB,EAAE,GAAG;EAC1B,kBAAkB,EAAE,GAAG;EACvB,aAAa,EAAE,GAAG;EAClB,MAAM,EAAE,gBAAgB;;;;AAS1B;;qEACsB;EACrB,UAAU,EAlPD,OAAO;;;AAqPjB,2GAAM;EACL,UAAU,EArPD,OAAO;;;AAwPjB,qIAAmB;EAClB,UAAU,EAxPG,OAAO;EAyPpB,KAAK,EAAE,IAAI;;;;AAMZ;;oEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,yGAAM;EACL,UAAU,EAAE,OAAO;;;AAQnB,0QAAkC;EACjC,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;AAGZ,2IAAsB;EACrB,UAAU,EAAE,IAAI;;;;AAQlB;;sEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,6GAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,uIAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;yEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,mHAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,6IAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;wEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,iHAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,2IAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;qEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,2GAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,qIAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;;;uFAEsC;EACrC,UAAU,EAAE,OAAO;;;AAGpB,yGAAG;EACF,YAAY,EAAE,OAAO;EACrB,UAAU,EAAE,OAAO;;;AAGpB,yIAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;qEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB;;yEAC0B;EACzB,KAAK,EAAE,IAAI;;;AAGZ,2GAAM;EACL,UAAU,EAAE,IAAI;;;AAGjB;;;;;;0EAG2B;EAC1B,KAAK,EAAE,IAAI;;;AAIX,8QAAkC;EACjC,UAAU,EAAE,IAAI;;;AAGjB,6IAAsB;EACrB,UAAU,EAAE,IAAI;;;;AAOlB;;6EACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,2HAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,qJAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;;;AAMZ;;wEACsB;EACrB,UAAU,EAAE,OAAO;;;AAGpB,iHAAM;EACL,UAAU,EAAE,OAAO;;;AAGpB,2IAAmB;EAClB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI",
4
- "sources": ["sass/cmb2.scss","sass/partials/_main_wrap.scss","sass/partials/_variables.scss","sass/partials/_mixins.scss","sass/partials/_post_metaboxes.scss","sass/partials/_context_metaboxes.scss","sass/partials/_options-page.scss","sass/partials/_misc.scss","sass/partials/_sidebar_placements.scss","sass/partials/_collapsible_ui.scss","sass/partials/_jquery_ui.scss"],
5
- "names": [],
6
- "file": "cmb2.css"
7
- }
 
 
 
 
 
 
 
includes/vendor/cmb2/css/sass/cmb2-display.scss DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * CMB2 Styling
3
- */
4
-
5
- @import "partials/display";
 
 
 
 
 
includes/vendor/cmb2/css/sass/cmb2-front.scss DELETED
@@ -1,6 +0,0 @@
1
- @import "cmb2.scss";
2
-
3
- /**
4
- * CMB2 Frontend
5
- */
6
- @import "partials/front";
 
 
 
 
 
 
includes/vendor/cmb2/css/sass/cmb2.scss DELETED
@@ -1,15 +0,0 @@
1
- /**
2
- * CMB2 Styling
3
- */
4
-
5
- @import "partials/variables";
6
- @import "partials/mixins";
7
-
8
- @import "partials/main_wrap";
9
- @import "partials/post_metaboxes";
10
- @import "partials/context_metaboxes";
11
- @import "partials/options-page";
12
- @import "partials/misc";
13
- @import "partials/sidebar_placements";
14
- @import "partials/collapsible_ui";
15
- @import "partials/jquery_ui";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/cmb2/css/sass/index.php DELETED
@@ -1,2 +0,0 @@
1
- <?php
2
- // Silence is golden
 
 
includes/vendor/cmb2/css/sass/partials/_collapsible_ui.scss DELETED
@@ -1,52 +0,0 @@
1
- .cmb2-metabox {
2
- .cmbhandle {
3
- color: #aaa;
4
- float: right;
5
- width: 27px;
6
- height: 30px;
7
- cursor: pointer;
8
- right: -1em;
9
- position: relative;
10
- &:before {
11
- content: '\f142';
12
- right: 12px;
13
- font: normal 20px/1 'dashicons';
14
- speak: none;
15
- display: inline-block;
16
- padding: 8px 10px;
17
- top: 0;
18
- position: relative;
19
- -webkit-font-smoothing: antialiased;
20
- -moz-osx-font-smoothing: grayscale;
21
- text-decoration: none !important;
22
- }
23
- }
24
-
25
- .postbox.closed {
26
- .cmbhandle {
27
- &:before {
28
- content: '\f140';
29
- }
30
- }
31
- }
32
-
33
- button.dashicons-before.dashicons-no-alt.cmb-remove-group-row {
34
- -webkit-appearance: none !important;
35
- background: none !important;
36
- border: none !important;
37
- position: absolute;
38
- left: 0;
39
- top: .5em;
40
- line-height: 1em;
41
- padding: 2px 6px 3px;
42
- opacity: .5;
43
- &:not([disabled]) {
44
- cursor: pointer;
45
- color: $dark-red;
46
- opacity: 1;
47
- &:hover {
48
- color: $red;
49
- }
50
- }
51
- }
52
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/cmb2/css/sass/partials/_context_metaboxes.scss DELETED
@@ -1,107 +0,0 @@
1
- /*--------------------------------------------------------------
2
- Context Metaboxes
3
- --------------------------------------------------------------*/
4
-
5
- /* Metabox collapse arrow indicators */
6
- .js .cmb2-postbox.context-box {
7
-
8
- .toggle-indicator {
9
- &:before {
10
- content: "\f142";
11
- display: inline-block;
12
- font: normal 20px/1 dashicons;
13
- speak: none;
14
- -webkit-font-smoothing: antialiased;
15
- -moz-osx-font-smoothing: grayscale;
16
- text-decoration: none !important;
17
- }
18
- }
19
-
20
- &.closed {
21
- .toggle-indicator {
22
- &:before {
23
- content: "\f140";
24
- }
25
- }
26
- }
27
-
28
- }
29
-
30
- .cmb2-postbox.context-box {
31
-
32
- margin-bottom: 10px;
33
-
34
- &.context-before_permalink-box {
35
- margin-top: 10px;
36
- }
37
-
38
- &.context-after_title-box {
39
- margin-top: 10px;
40
- }
41
-
42
- &.context-after_editor-box {
43
- margin-top: 20px;
44
- margin-bottom: 0;
45
- }
46
-
47
- &.context-form_top-box {
48
-
49
- margin-top: 10px;
50
-
51
- .hndle {
52
- font-size: 14px;
53
- padding: 8px 12px;
54
- margin: 0;
55
- line-height: 1.4;
56
- }
57
- }
58
-
59
- .hndle {
60
- cursor: auto;
61
- }
62
- }
63
-
64
- .cmb2-context-wrap {
65
-
66
- margin-top: 10px;
67
-
68
- &.cmb2-context-wrap-form_top {
69
- margin-right: 300px;
70
- width: auto;
71
- }
72
-
73
- &.cmb2-context-wrap-no-title {
74
-
75
- .cmb2-metabox {
76
- padding: 10px;
77
- }
78
- }
79
-
80
- .cmb-th {
81
- padding: 0 2% 0 0;
82
- width: 18%;
83
- }
84
-
85
- .cmb-td {
86
- width: 80%;
87
- padding: 0;
88
- }
89
-
90
- .cmb-row {
91
- margin-bottom: 10px;
92
-
93
- &:last-of-type {
94
- margin-bottom: 0;
95
- }
96
- }
97
-
98
- }
99
-
100
- /* one column on the post write/edit screen */
101
- @media only screen and (max-width: 850px) {
102
-
103
- .cmb2-context-wrap.cmb2-context-wrap-form_top {
104
- margin-right: 0;
105
- }
106
-
107
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/cmb2/css/sass/partials/_display.scss DELETED
@@ -1,34 +0,0 @@
1
- /**
2
- * CMB2 Styling
3
- */
4
-
5
- .cmb2-colorpicker-swatch {
6
- span {
7
- display: inline-block;
8
- width: 1em;
9
- height: 1em;
10
- border-radius: 1em;
11
- float: left;
12
- margin-top: 3px;
13
- margin-right: 2px;
14
- }
15
- }
16
-
17
- .cmb2-code {
18
- overflow: scroll;
19
- }
20
-
21
- .cmb-image-display {
22
- max-width: 100%;
23
- height: auto;
24
- }
25
-
26
- .cmb2-display-file-list li {
27
- display: inline;
28
- margin: 0 .5em .5em 0;
29
- }
30
-
31
- .cmb2-oembed * {
32
- max-width: 100%;
33
- height: auto;
34
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/cmb2/css/sass/partials/_front.scss DELETED
@@ -1,52 +0,0 @@
1
- .closed .inside {
2
- display: none;
3
- }
4
-
5
- .cmb-repeatable-grouping {
6
- position: relative;
7
-
8
- .cmb-group-title {
9
- margin-left: -1em;
10
- margin-right: -1em;
11
- min-height: 1.5em;
12
- }
13
-
14
- h3 {
15
- font-size: 14px;
16
- padding: 8px 12px;
17
- margin: 0;
18
- line-height: 1.4;
19
- }
20
-
21
- }
22
-
23
- .cmb-repeatable-group {
24
-
25
- &.repeatable .cmb-group-title {
26
- padding-left: 2.2em;
27
- }
28
-
29
- &.non-repeatable .cmb-group-title {
30
- padding-left: 12px;
31
- }
32
-
33
- }
34
-
35
- .cmb-type-group .cmb-row .cmbhandle {
36
- right: 0;
37
- position: absolute;
38
- }
39
-
40
- .cmb-spinner {
41
- background: url(/wp-admin/images/spinner.gif) no-repeat;
42
- -webkit-background-size: 20px 20px;
43
- background-size: 20px 20px;
44
- display: none;
45
- float: right;
46
- vertical-align: middle;
47
- opacity: 0.7;
48
- filter: alpha(opacity=70);
49
- width: 20px;
50
- height: 20px;
51
- margin: 4px 10px 0;
52
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/cmb2/css/sass/partials/_jquery_ui.scss DELETED
@@ -1,457 +0,0 @@
1
- /*
2
- * jQuery UI CSS Framework 1.8.16
3
- *
4
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
- * Dual licensed under the MIT or GPL Version 2 licenses.
6
- * http://jquery.org/license
7
- *
8
- * http://docs.jquery.com/UI/Theming/API
9
- *
10
- * WordPress Styles adopted from "jQuery UI Datepicker CSS for WordPress"
11
- * https://github.com/stuttter/wp-datepicker-styling
12
- *
13
- */
14
-
15
- * html .cmb2-element.ui-helper-clearfix {
16
- height:1%;
17
- }
18
-
19
- $weekend: #f4f4f4;
20
- $freshblue: #00a0d2;
21
- $freshdark: #32373c;
22
- $freshdarkblue: #0073aa;
23
-
24
- .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
25
- padding: 0;
26
- margin: 0;
27
- -webkit-border-radius: 0;
28
- -moz-border-radius: 0;
29
- border-radius: 0;
30
- background-color: #fff;
31
- border: 1px solid #dfdfdf;
32
- border-top: none;
33
- -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
34
- box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
35
- min-width: 17em;
36
- width: auto;
37
-
38
- * {
39
- padding: 0;
40
- font-family: "Open Sans", sans-serif;
41
- -webkit-border-radius: 0;
42
- -moz-border-radius: 0;
43
- border-radius: 0;
44
- }
45
-
46
- table {
47
- font-size: 13px;
48
- margin: 0;
49
- border: none;
50
- border-collapse: collapse;
51
- }
52
-
53
- .ui-widget-header,
54
- .ui-datepicker-header {
55
- background-image: none;
56
- border: none;
57
- color: #fff;
58
- font-weight: normal;
59
- }
60
-
61
- .ui-datepicker-header .ui-state-hover {
62
- background: transparent;
63
- border-color: transparent;
64
- cursor: pointer;
65
- }
66
-
67
- .ui-datepicker-title {
68
- margin: 0;
69
- padding: 10px 0;
70
- color: #fff;
71
- font-size: 14px;
72
- line-height: 14px;
73
- text-align: center;
74
-
75
- select {
76
- margin-top: -8px;
77
- margin-bottom: -8px;
78
- }
79
- }
80
-
81
- .ui-datepicker-prev,
82
- .ui-datepicker-next {
83
- position: relative;
84
- top: 0;
85
- height: 34px;
86
- width: 34px;
87
- }
88
-
89
- .ui-state-hover.ui-datepicker-prev,
90
- .ui-state-hover.ui-datepicker-next {
91
- border: none;
92
- }
93
-
94
- .ui-datepicker-prev,
95
- .ui-datepicker-prev-hover {
96
- left: 0;
97
- }
98
-
99
- .ui-datepicker-next,
100
- .ui-datepicker-next-hover {
101
- right: 0;
102
- }
103
-
104
- .ui-datepicker-next span,
105
- .ui-datepicker-prev span {
106
- display: none;
107
- }
108
-
109
- .ui-datepicker-prev {
110
- float: left;
111
- }
112
-
113
- .ui-datepicker-next {
114
- float: right;
115
- }
116
-
117
- .ui-datepicker-prev:before,
118
- .ui-datepicker-next:before {
119
- font: normal 20px/34px 'dashicons';
120
- padding-left: 7px;
121
- color: #fff;
122
- speak: none;
123
- -webkit-font-smoothing: antialiased;
124
- -moz-osx-font-smoothing: grayscale;
125
- width: 34px;
126
- height: 34px;
127
- }
128
-
129
- .ui-datepicker-prev:before {
130
- content: '\f341';
131
- }
132
-
133
- .ui-datepicker-next:before {
134
- content: '\f345';
135
- }
136
-
137
- .ui-datepicker-prev-hover:before,
138
- .ui-datepicker-next-hover:before {
139
- opacity: 0.7;
140
- }
141
-
142
- select.ui-datepicker-month,
143
- select.ui-datepicker-year {
144
- width: 33%;
145
- background: transparent;
146
- border-color: transparent;
147
- box-shadow: none;
148
- color: #fff;
149
- option {
150
- color: #333;
151
- }
152
- }
153
-
154
- thead {
155
- color: #fff;
156
- font-weight: 600;
157
- th {
158
- font-weight: normal;
159
- }
160
- }
161
-
162
- th {
163
- padding: 10px;
164
- }
165
-
166
- td {
167
- padding: 0;
168
- border: 1px solid $weekend;
169
- }
170
-
171
- td.ui-datepicker-other-month {
172
- border: transparent;
173
- }
174
-
175
- td.ui-datepicker-week-end {
176
- background-color: $weekend;
177
- border: 1px solid $weekend;
178
- &.ui-datepicker-today {
179
- -webkit-box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
180
- -moz-box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
181
- box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.1);
182
- }
183
- }
184
-
185
- td.ui-datepicker-today {
186
- background-color: #f0f0c0;
187
- }
188
-
189
- td.ui-datepicker-current-day {
190
- background: #bbdd88;
191
- }
192
-
193
- td .ui-state-default {
194
- background: transparent;
195
- border: none;
196
- text-align: center;
197
- text-decoration: none;
198
- width: auto;
199
- display: block;
200
- padding: 5px 10px;
201
- font-weight: normal;
202
- color: #444;
203
- }
204
-
205
- td.ui-state-disabled .ui-state-default {
206
- opacity: 0.5;
207
- }
208
-
209
- /* Default Color Scheme */
210
- .ui-widget-header,
211
- .ui-datepicker-header {
212
- background: $freshblue;
213
- }
214
-
215
- thead {
216
- background: $freshdark;
217
- }
218
-
219
- td .ui-state-hover, td .ui-state-active {
220
- background: $freshdarkblue;
221
- color: #fff;
222
- }
223
-
224
- .ui-timepicker-div {
225
- font-size: 14px;
226
- dl {
227
- text-align: left;
228
- padding: 0 .6em;
229
- dt {
230
- float: left;
231
- clear:left;
232
- padding: 0 0 0 5px;
233
- }
234
- dd {
235
- margin: 0 10px 10px 40%;
236
- select {
237
- width: 100%;
238
- }
239
- }
240
- }
241
-
242
- + .ui-datepicker-buttonpane {
243
- padding: .6em;
244
- text-align: left;
245
-
246
- .button-primary, .button-secondary {
247
- padding: 0 10px 1px;
248
- -webkit-border-radius: 3px;
249
- -moz-border-radius: 3px;
250
- border-radius: 3px;
251
- margin: 0 .6em .4em .4em;
252
- }
253
-
254
- }
255
- }
256
-
257
- }
258
- .admin-color-fresh {
259
- .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
260
- .ui-widget-header,
261
- .ui-datepicker-header {
262
- background: $freshblue;
263
- }
264
-
265
- thead {
266
- background: $freshdark;
267
- }
268
-
269
- td .ui-state-hover {
270
- background: $freshdarkblue;
271
- color: #fff;
272
- }
273
- }
274
- }
275
- .admin-color-blue {
276
- .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
277
- .ui-widget-header,
278
- .ui-datepicker-header {
279
- background: #52accc;
280
- }
281
-
282
- thead {
283
- background: #4796b3;
284
- }
285
-
286
- // td .ui-state-hover {
287
- // background: #096484;
288
- // }
289
-
290
- td {
291
- .ui-state-hover, .ui-state-active {
292
- background: #096484;
293
- color: #fff;
294
- }
295
-
296
- &.ui-datepicker-today {
297
- background: #eee;
298
- }
299
- }
300
-
301
- }
302
- }
303
- .admin-color-coffee {
304
- .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
305
- .ui-widget-header,
306
- .ui-datepicker-header {
307
- background: #59524c;
308
- }
309
-
310
- thead {
311
- background: #46403c;
312
- }
313
-
314
- td .ui-state-hover {
315
- background: #c7a589;
316
- color: #fff;
317
- }
318
- }
319
- }
320
- .admin-color-ectoplasm {
321
- .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
322
- .ui-widget-header,
323
- .ui-datepicker-header {
324
- background: #523f6d;
325
- }
326
-
327
- thead {
328
- background: #413256;
329
- }
330
-
331
- td .ui-state-hover {
332
- background: #a3b745;
333
- color: #fff;
334
- }
335
- }
336
- }
337
- .admin-color-midnight {
338
- .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
339
- .ui-widget-header,
340
- .ui-datepicker-header {
341
- background: #363b3f;
342
- }
343
-
344
- thead {
345
- background: #26292c;
346
- }
347
-
348
- td .ui-state-hover {
349
- background: #e14d43;
350
- color: #fff;
351
- }
352
- }
353
- }
354
- .admin-color-ocean {
355
- .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
356
- .ui-widget-header,
357
- .ui-datepicker-header {
358
- background: #738e96;
359
- }
360
-
361
- thead {
362
- background: #627c83;
363
- }
364
-
365
- td .ui-state-hover {
366
- background: #9ebaa0;
367
- color: #fff;
368
- }
369
- }
370
- }
371
- .admin-color-sunrise {
372
- .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
373
- .ui-widget-header,
374
- .ui-datepicker-header,
375
- .ui-datepicker-header .ui-state-hover {
376
- background: #cf4944;
377
- }
378
-
379
- th {
380
- border-color: #be3631;
381
- background: #be3631;
382
- }
383
-
384
- td .ui-state-hover {
385
- background: #dd823b;
386
- color: #fff;
387
- }
388
- }
389
- }
390
- .admin-color-light {
391
- .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
392
- .ui-widget-header,
393
- .ui-datepicker-header {
394
- background: #e5e5e5;
395
- }
396
-
397
- select.ui-datepicker-month,
398
- select.ui-datepicker-year {
399
- color: #555;
400
- }
401
-
402
- thead {
403
- background: #888;
404
- }
405
-
406
- .ui-datepicker-title,
407
- td .ui-state-default,
408
- .ui-datepicker-prev:before,
409
- .ui-datepicker-next:before {
410
- color: #555;
411
- }
412
-
413
- td {
414
- .ui-state-hover, .ui-state-active {
415
- background: #ccc;
416
- }
417
-
418
- &.ui-datepicker-today {
419
- background: #eee;
420
- }
421
- }
422
- }
423
- }
424
- .admin-color-bbp-evergreen {
425
- .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
426
- .ui-widget-header,
427
- .ui-datepicker-header {
428
- background: #56b274;
429
- }
430
-
431
- thead {
432
- background: #36533f;
433
- }
434
-
435
- td .ui-state-hover {
436
- background: #446950;
437
- color: #fff;
438
- }
439
- }
440
- }
441
- .admin-color-bbp-mint {
442
- .cmb2-element.ui-datepicker, .cmb2-element .ui-datepicker {
443
- .ui-widget-header,
444
- .ui-datepicker-header {
445
- background: #4ca26a;
446
- }
447
-
448
- thead {
449
- background: #4f6d59;
450
- }
451
-
452
- td .ui-state-hover {
453
- background: #5fb37c;
454
- color: #fff;
455
- }
456
- }
457
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/cmb2/css/sass/partials/_main_wrap.scss DELETED
@@ -1,518 +0,0 @@
1
- /*--------------------------------------------------------------
2
- Main Wrap
3
- --------------------------------------------------------------*/
4
-
5
- .cmb2-wrap {
6
- margin: 0;
7
-
8
- input,
9
- textarea {
10
- font-size: $font-size;
11
- max-width: 100%;
12
- padding: 5px;
13
-
14
- }
15
-
16
- input[type=text] {
17
-
18
- &.cmb2-oembed {
19
- width: 100%;
20
- }
21
- }
22
-
23
- textarea {
24
- width: 500px;
25
-
26
- &.cmb2-textarea-code {
27
- font-family: $font-mono;
28
- line-height: 16px;
29
- }
30
- }
31
-
32
- input {
33
-
34
- &.cmb2-text-small,
35
- &.cmb2-timepicker {
36
- width: 100px;
37
- // margin-right: 15px
38
- }
39
-
40
- &.cmb2-text-money {
41
- width: 90px;
42
- // margin-right: 15px
43
- }
44
-
45
- &.cmb2-text-medium {
46
- width: 230px;
47
- // margin-right: 15px
48
- }
49
-
50
- &.cmb2-upload-file {
51
- width: 65%;
52
- }
53
-
54
- &.ed_button {
55
- padding: 2px 4px;
56
- }
57
-
58
- &:not([type="hidden"]) {
59
- + input,
60
- + .button-secondary,
61
- + select {
62
- margin-left: 20px;
63
- }
64
- }
65
- }
66
-
67
- ul {
68
- margin: 0;
69
- }
70
-
71
- li {
72
- font-size: $font-size;
73
- line-height: 16px;
74
- margin: 1px 0 5px 0;
75
- }
76
-
77
- // .cmb-field-list .cmb-field-list {
78
- // padding-top:5px;
79
- // margin: 0;
80
- // }
81
-
82
- select {
83
- font-size: $font-size;
84
- margin-top: 3px;
85
- }
86
-
87
- input:focus,
88
- textarea:focus {
89
- background: $light-yellow;
90
- }
91
-
92
- input[type="radio"] {
93
- margin: 0 5px 0 0;
94
- padding: 0
95
- }
96
-
97
- input[type="checkbox"] {
98
- margin: 0 5px 0 0;
99
- padding: 0;
100
- }
101
-
102
- button,
103
- .button-secondary {
104
- white-space: nowrap;
105
- }
106
-
107
- .mceLayout {
108
- border: 1px solid $light-gray !important;
109
- }
110
-
111
- .mceIframeContainer {
112
- background: #fff;
113
- }
114
-
115
- .meta_mce {
116
- width: 97%;
117
-
118
- textarea {
119
- width: 100%;
120
- }
121
- }
122
-
123
- // Color picker
124
- .wp-color-result,
125
- .wp-picker-input-wrap {
126
- vertical-align: middle;
127
- }
128
-
129
- .wp-color-result,
130
- .wp-picker-container {
131
- margin: 0 10px 0 0;
132
- }
133
-
134
- .cmb-row {
135
- margin: 0;
136
-
137
- &:after {
138
- content: '';
139
- clear: both;
140
- display: block;
141
- width: 100%;
142
- }
143
-
144
- &.cmb-repeat .cmb2-metabox-description {
145
- padding-top: 0;
146
- padding-bottom: 1em;
147
- }
148
- }
149
-
150
- }
151
-
152
- .cmb2-metabox {
153
- clear: both;
154
- margin: 0;
155
-
156
- > .cmb-row:first-of-type >,
157
- .cmb-field-list > .cmb-row:first-of-type > {
158
- .cmb-td,
159
- .cmb-th {
160
- border: 0;
161
- }
162
- }
163
- }
164
-
165
- .cmb-add-row {
166
- margin: 1.8em 0 0;
167
- }
168
-
169
- .cmb-nested .cmb-td,
170
- .cmb-repeatable-group .cmb-th,
171
- .cmb-repeatable-group:first-of-type {
172
- border: 0;
173
- }
174
-
175
- .cmb-row:last-of-type,
176
- .cmb2-wrap .cmb-row:last-of-type,
177
- .cmb-repeatable-group:last-of-type {
178
- border-bottom: 0;
179
- }
180
-
181
- .cmb-repeatable-grouping {
182
- border: 1px solid $light-gray;
183
- padding: 0 1em;
184
-
185
- &.cmb-row {
186
- margin: 0 0 0.8em;
187
- }
188
-
189
- + .cmb-repeatable-grouping {
190
- }
191
- }
192
-
193
- .cmb-th {
194
- color: $dark-gray;
195
- float: left;
196
- font-weight: 600;
197
- line-height: 1.3;
198
- padding: 20px 10px 20px 0;
199
- vertical-align: top;
200
- width: 200px;
201
-
202
- @media (max-width: $mobile-break) {
203
- @include fullth;
204
- }
205
- }
206
-
207
- .cmb-td {
208
- line-height: 1.3;
209
- max-width: 100%;
210
- padding: 15px 10px;
211
- vertical-align: middle;
212
- }
213
-
214
- .cmb-type-title {
215
-
216
- .cmb-td {
217
- padding: 0;
218
- }
219
- }
220
-
221
- .cmb-th label {
222
- display: block;
223
- padding: 5px 0;
224
- }
225
-
226
- .cmb-th + .cmb-td {
227
- float: left;
228
- }
229
-
230
- .cmb-td .cmb-td {
231
- padding-bottom: 1em;
232
- }
233
-
234
- .cmb-remove-row {
235
- text-align: right;
236
- }
237
-
238
- .empty-row.hidden {
239
- display: none;
240
- }
241
-
242
- // Repeatable fields styles
243
- .cmb-repeat-table {
244
- background-color: #fafafa;
245
- border: 1px solid darken($light-gray, 3%);
246
-
247
- .cmb-row.cmb-repeat-row {
248
- position: relative;
249
- counter-increment: el;
250
-
251
- margin: 0;
252
- padding: 10px 10px 10px 50px;
253
- border-bottom: none !important; // Sometime, we need !important :).
254
-
255
- & + .cmb-repeat-row {
256
- border-top: solid 1px $light-gray;
257
- }
258
-
259
- &:before {
260
- content: counter(el);
261
- display: block;
262
-
263
- top: 0;
264
- left: 0;
265
- position: absolute;
266
-
267
- width: 35px;
268
- height: 100%;
269
- line-height: 35px;
270
-
271
- color: $gray;
272
- text-align: center;
273
- border-right: solid 1px $light-gray;
274
- }
275
-
276
- .cmb-td {
277
- margin: 0;
278
- padding: 0;
279
- }
280
-
281
- }
282
-
283
- + .cmb-add-row {
284
- margin: 0;
285
-
286
- &:before {
287
- content: '';
288
- width: 1px;
289
- height: 1.6em;
290
- display: block;
291
- margin-left: 17px;
292
- background-color: darken($light-gray, 5%);
293
- }
294
- }
295
-
296
- .cmb-remove-row {
297
- top: 7px;
298
- right: 7px;
299
- position: absolute;
300
-
301
- width: auto;
302
- margin-left: 0;
303
- padding: 0 !important; // Sometime, we need !important :).
304
-
305
- display: none;
306
-
307
- > .cmb-remove-row-button {
308
- font-size: 20px;
309
- text-indent: -1000px;
310
-
311
- overflow: hidden;
312
- position: relative;
313
-
314
- height: auto;
315
- line-height: 1;
316
- padding: 0 10px 0;
317
-
318
- &:before {
319
- @include pseudo-dashicons("\f335");
320
- }
321
- }
322
- }
323
-
324
- .cmb-repeat-row:hover .cmb-remove-row {
325
- display: block;
326
- }
327
-
328
- }
329
-
330
- .cmb-repeatable-group {
331
-
332
- .cmb-th {
333
- padding: 5px;
334
- }
335
-
336
- .cmb-group-title {
337
- background-color: $light-gray;
338
- padding: 8px 12px 8px 2.2em;
339
- margin: 0 -1em;
340
- min-height: 1.5em;
341
- font-size: 14px;
342
- line-height: 1.4;
343
-
344
- h4 {
345
- border: 0;
346
- margin: 0;
347
- font-size: 1.2em;
348
- font-weight: 500;
349
- padding: 0.5em 0.75em;
350
- }
351
-
352
- .cmb-th {
353
- display: block;
354
- width: 100%;
355
- }
356
- }
357
-
358
- .cmb-group-description .cmb-th {
359
- @include fullth;
360
- }
361
-
362
- .cmb-shift-rows {
363
- font-size: 1em;
364
- margin-right: 1em;
365
- text-decoration: none;
366
-
367
- .dashicons {
368
- font-size: 1.5em;
369
- height: 1.5em;
370
- line-height: 1.2em;
371
- width: 1em;
372
-
373
- &.dashicons-arrow-down-alt2 {
374
- line-height: 1.3em;
375
-
376
- }
377
- }
378
- }
379
-
380
- .cmb2-upload-button {
381
- float: right;
382
- }
383
-
384
- }
385
-
386
- p.cmb2-metabox-description {
387
- color: $gray;
388
- font-style: italic;
389
- margin: 0;
390
- padding-top: .5em;
391
- }
392
-
393
- span.cmb2-metabox-description {
394
- color: $gray;
395
- font-style: italic;
396
- }
397
-
398
- .cmb2-metabox-title {
399
- margin: 0 0 5px 0;
400
- padding: 5px 0 0 0;
401
- font-size: 14px;
402
- }
403
-
404
- .cmb-inline ul {
405
- padding: 4px 0 0 0;
406
- }
407
-
408
- .cmb-inline li {
409
- display: inline-block;
410
- padding-right: 18px;
411
- }
412
-
413
- .cmb-type-textarea-code pre {
414
- margin: 0;
415
- }
416
-
417
- .cmb2-media-status {
418
-
419
- .img-status {
420
- clear: none;
421
- display: inline-block;
422
- vertical-align: middle;
423
- margin-right: 10px;
424
- width: auto;
425
-
426
- img {
427
- max-width: 350px;
428
- height: auto;
429
- }
430
- }
431
-
432
- .img-status img,
433
- .embed-status {
434
- background: $white;
435
- border: 1px solid $light-gray;
436
- border-radius: 2px;
437
- -moz-border-radius: 2px;
438
- margin: 15px 0 0 0;
439
- padding: 5px;
440
- }
441
-
442
- .embed-status {
443
- float: left;
444
- max-width: 800px;
445
- }
446
-
447
- .img-status, .embed-status {
448
- position: relative;
449
-
450
- .cmb2-remove-file-button {
451
- background: url(../images/ico-delete.png);
452
- height: 16px;
453
- left: -5px;
454
- position: absolute;
455
- text-indent: -9999px;
456
- top: -5px;
457
- width: 16px;
458
- }
459
-
460
- }
461
-
462
- .img-status {
463
-
464
- .cmb2-remove-file-button {
465
- top: 10px;
466
- }
467
- }
468
-
469
- .img-status img, .file-status > span {
470
- cursor: pointer;
471
- }
472
-
473
- }
474
-
475
- .cmb-type-file-list .cmb2-media-status .img-status {
476
- clear: none;
477
- vertical-align: middle;
478
- width: auto;
479
- margin-right: 10px;
480
- margin-bottom: 10px;
481
- margin-top: 0;
482
- }
483
-
484
- .cmb-attach-list li {
485
- clear: both;
486
- display: inline-block;
487
- width: 100%;
488
- margin-top: 5px;
489
- margin-bottom: 10px;
490
-
491
- img {
492
- cursor: move;
493
- float: left;
494
- margin-right: 10px;
495
- }
496
- }
497
-
498
- .cmb2-remove-wrapper {
499
- margin: 0;
500
- }
501
-
502
- .child-cmb2 .cmb-th {
503
- text-align: left;
504
- }
505
-
506
- .cmb2-indented-hierarchy {
507
- padding-left: 1.5em;
508
- }
509
-
510
- @media (max-width: $mobile-break) {
511
- .cmb-th,
512
- .cmb-td,
513
- .cmb-th + .cmb-td {
514
- display: block;
515
- float: none;
516
- width: 100%;
517
- }
518
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/cmb2/css/sass/partials/_mixins.scss DELETED
@@ -1,51 +0,0 @@
1
- //--------------------------------------------------------------
2
- // Mixins
3
- //--------------------------------------------------------------
4
-
5
- @mixin fullth() {
6
- font-size: 1.2em;
7
- @include _fullth;
8
- }
9
-
10
- @mixin fullth_side() {
11
-
12
- @include _fullth;
13
-
14
- label {
15
- font-size: $font-size;
16
- line-height: 1.4em;
17
- }
18
- }
19
-
20
- @mixin _fullth() {
21
- display: block;
22
- float: none;
23
- padding-bottom: 1em;
24
- text-align: left;
25
- width: 100%;
26
-
27
- label {
28
- display: block;
29
- margin-top: 0;
30
- margin-bottom: 0.5em;
31
- }
32
- }
33
-
34
- @mixin pseudo-dashicons( $glyph: "\f333" ) {
35
- content: $glyph;
36
- font-family: 'Dashicons';
37
- speak: none;
38
- font-weight: normal;
39
- font-variant: normal;
40
- text-transform: none;
41
- line-height: 1;
42
- -webkit-font-smoothing: antialiased;
43
- margin: 0;
44
- text-indent: 0;
45
- position: absolute;
46
- top: 0;
47
- left: 0;
48
- width: 100%;
49
- height: 100%;
50
- text-align: center;
51
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/cmb2/css/sass/partials/_options-page.scss DELETED
@@ -1,70 +0,0 @@
1
- /*--------------------------------------------------------------
2
- Options page
3
- --------------------------------------------------------------*/
4
- .cmb2-options-page {
5
- max-width: 1200px;
6
-
7
- &.wrap > h2 {
8
- margin-bottom: 1em;
9
- }
10
-
11
- .cmb2-metabox > .cmb-row {
12
- padding: 1em;
13
- margin-top: -1px;
14
- background: $white;
15
- border: 1px solid $light-gray;
16
- box-shadow: 0 1px 1px rgba(black, 0.05);
17
-
18
- > .cmb-th {
19
- padding: 0;
20
- font-weight: initial;
21
- }
22
-
23
- > .cmb-th + .cmb-td {
24
- float: none;
25
- padding: 0 0 0 1em;
26
- margin-left: 200px;
27
-
28
- @media (max-width: $mobile-break) {
29
- padding: 0;
30
- margin-left: 0;
31
- }
32
- }
33
- }
34
-
35
- // Title field style.
36
- .cmb2-wrap .cmb-type-title {
37
- margin-top: 1em;
38
- padding: 0.6em 1em;
39
- background-color: #fafafa;
40
-
41
- .cmb2-metabox-title {
42
- font-size: 12px;
43
- margin-top: 0;
44
- margin-bottom: 0;
45
- text-transform: uppercase;
46
- }
47
-
48
- .cmb2-metabox-description {
49
- padding-top: 0.25em;
50
- }
51
- }
52
-
53
- .cmb-repeatable-group {
54
- .cmb-group-description .cmb-th {
55
- padding: 0 0 0.8em 0;
56
- }
57
-
58
- .cmb-group-name {
59
- font-size: 16px;
60
- margin-top: 0;
61
- margin-bottom: 0;
62
- }
63
-
64
- .cmb-th > .cmb2-metabox-description {
65
- font-weight: 400;
66
- padding-bottom: 0 !important;
67
- }
68
- }
69
-
70
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/cmb2/css/sass/partials/_post_metaboxes.scss DELETED
@@ -1,82 +0,0 @@
1
- /*--------------------------------------------------------------
2
- Post Metaboxes
3
- --------------------------------------------------------------*/
4
- #poststuff .cmb-group-title {
5
- margin-left: -1em;
6
- margin-right: -1em;
7
- min-height: 1.5em;
8
- }
9
-
10
- #poststuff .repeatable .cmb-group-title {
11
- padding-left: 2.2em;
12
- }
13
-
14
- .cmb2-postbox, .cmb-type-group {
15
-
16
- .cmb2-wrap {
17
- margin: 0;
18
-
19
- > .cmb-field-list > .cmb-row {
20
- padding: 1.8em 0;
21
- }
22
-
23
- input[type=text] {
24
-
25
- &.cmb2-oembed {
26
- width: 100%;
27
- }
28
- }
29
- }
30
-
31
- .cmb-row {
32
- padding: 0 0 1.8em;
33
- margin: 0 0 0.8em;
34
-
35
- .cmbhandle {
36
- right: -1em;
37
- position: relative;
38
- }
39
- }
40
-
41
- .cmb-repeatable-grouping {
42
- padding: 0 1em;
43
- max-width: 100%;
44
- min-width: 1px !important;
45
- }
46
-
47
- .cmb-repeatable-group > .cmb-row {
48
- padding-bottom: 0;
49
- }
50
-
51
- .cmb-th {
52
- width: 18%;
53
- padding: 0 2% 0 0;
54
- // text-align: right;
55
- }
56
-
57
- .cmb-td {
58
- margin-bottom: 0;
59
- padding: 0;
60
- line-height: 1.3;
61
- }
62
-
63
- .cmb-th + .cmb-td {
64
- width: 80%;
65
- float: right;
66
- }
67
-
68
- .cmb-row:not(:last-of-type),
69
- .cmb-repeatable-group:not(:last-of-type) {
70
- border-bottom: 1px solid $light-gray;
71
-
72
- @media (max-width: $mobile-break) {
73
- border-bottom: 0;
74
- }
75
- }
76
-
77
- .cmb-repeat-group-field,
78
- .cmb-remove-field-row {
79
- padding-top: 1.8em;
80
- }
81
-
82
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/cmb2/css/sass/partials/_sidebar_placements.scss DELETED
@@ -1,146 +0,0 @@
1
- /*--------------------------------------------------------------
2
- Sidebar Placement Adjustments
3
- --------------------------------------------------------------*/
4
-
5
- .inner-sidebar,
6
- #side-sortables {
7
-
8
- .cmb2-wrap {
9
-
10
- > .cmb-field-list > .cmb-row {
11
- padding: 1.4em 0;
12
- }
13
-
14
- input {
15
-
16
- &[type=text]:not( .wp-color-picker ) {
17
- width: 100%;
18
- }
19
-
20
- + input:not( .wp-picker-clear ), + select {
21
- margin-left: 0;
22
- margin-top: 1em;
23
- display: block;
24
- }
25
-
26
- &.cmb2-text-money {
27
- max-width: 70%;
28
- + .cmb2-metabox-description {
29
- display: block;
30
- }
31
- }
32
- }
33
-
34
- label {
35
- display: block;
36
- font-weight: 700;
37
- padding: 0 0 5px;
38
- }
39
-
40
- }
41
-
42
- textarea {
43
- max-width: 99%;
44
- }
45
-
46
- .cmb-repeatable-group {
47
- border-bottom: 1px solid $light-gray;
48
- }
49
-
50
- .cmb-type-group > .cmb-td > .cmb-repeatable-group {
51
- border-bottom: 0;
52
- margin-bottom: -1.4em;
53
- }
54
-
55
- .cmb-th,
56
- .cmb-td:not(.cmb-remove-row),
57
- .cmb-th + .cmb-td {
58
- width: 100%;
59
- display: block;
60
- float: none;
61
- }
62
-
63
- .closed .inside {
64
- display: none;
65
- }
66
-
67
- .cmb-th {
68
- @include fullth_side;
69
- padding-left: 0;
70
- padding-right: 0;
71
- }
72
-
73
- .cmb-group-description {
74
- .cmb-th {
75
- padding-top: 0;
76
- }
77
- .cmb2-metabox-description {
78
- padding: 0;
79
- }
80
- }
81
-
82
- .cmb-group-title {
83
- // padding-bottom: 0;
84
- .cmb-th {
85
- padding: 0;
86
- }
87
- }
88
-
89
- .cmb-repeatable-grouping {
90
- + .cmb-repeatable-grouping {
91
- margin-top: 1em;
92
- }
93
- }
94
- .cmb2-media-status {
95
-
96
- .img-status,
97
- .embed-status {
98
-
99
- img {
100
- max-width: 90%;
101
- // width: auto;
102
- height: auto;
103
- }
104
- }
105
- }
106
-
107
- .cmb2-list label {
108
- display: inline;
109
- font-weight: normal;
110
- }
111
-
112
- .cmb2-metabox-description {
113
- display: block;
114
- padding: 7px 0 0;
115
- }
116
-
117
- .cmb-type-checkbox {
118
-
119
- .cmb-td label,
120
- .cmb2-metabox-description {
121
- font-weight: normal;
122
- display: inline;
123
- }
124
- }
125
-
126
- .cmb-row .cmb2-metabox-description {
127
- padding-bottom: 1.8em;
128
- }
129
-
130
- .cmb2-metabox-title {
131
- font-size: 1.2em;
132
- font-style: italic;
133
- }
134
-
135
- .cmb-remove-row {
136
- clear: both;
137
- padding-top: 12px;
138
- padding-bottom: 0;
139
- }
140
-
141
- .cmb2-upload-button {
142
- clear: both;
143
- margin-top: 12px;
144
- }
145
-
146
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/cmb2/css/sass/partials/index.php DELETED
@@ -1,2 +0,0 @@
1
- <?php
2
- // Silence is golden
 
 
includes/vendor/cmb2/example-functions.php CHANGED
@@ -24,9 +24,9 @@ if ( file_exists( dirname( __FILE__ ) . '/cmb2/init.php' ) ) {
24
  /**
25
  * Conditionally displays a metabox when used as a callback in the 'show_on_cb' cmb2_box parameter
26
  *
27
- * @param CMB2 object $cmb CMB2 object.
28
  *
29
- * @return bool True if metabox should show
30
  */
31
  function yourprefix_show_if_front_page( $cmb ) {
32
  // Don't show this metabox if it's not the front page template.
@@ -39,9 +39,9 @@ function yourprefix_show_if_front_page( $cmb ) {
39
  /**
40
  * Conditionally displays a field when used as a callback in the 'show_on_cb' field parameter
41
  *
42
- * @param CMB2_Field object $field Field object.
43
  *
44
- * @return bool True if metabox should show
45
  */
46
  function yourprefix_hide_if_no_cats( $field ) {
47
  // Don't show this field if not in the cats category.
@@ -91,8 +91,8 @@ function yourprefix_display_text_small_column( $field_args, $field ) {
91
  /**
92
  * Conditionally displays a message if the $post_id is 2
93
  *
94
- * @param array $field_args Array of field parameters.
95
- * @param CMB2_Field object $field Field object.
96
  */
97
  function yourprefix_before_row_if_2( $field_args, $field ) {
98
  if ( 2 == $field->object_id ) {
@@ -260,6 +260,9 @@ function yourprefix_register_demo_metabox() {
260
  'id' => $prefix . 'colorpicker',
261
  'type' => 'colorpicker',
262
  'default' => '#ffffff',
 
 
 
263
  // 'attributes' => array(
264
  // 'data-colorpicker' => json_encode( array(
265
  // 'palettes' => array( '#3dd0cc', '#ff834c', '#4fa2c0', '#0bc991', ),
@@ -666,6 +669,7 @@ function yourprefix_register_theme_options_metabox() {
666
  // 'display_cb' => false, // Override the options-page form output (CMB2_Hookup::options_page_output()).
667
  // 'save_button' => esc_html__( 'Save Theme Options', 'cmb2' ), // The text for the options-page save button. Defaults to 'Save'.
668
  // 'disable_settings_errors' => true, // On settings pages (not options-general.php sub-pages), allows disabling.
 
669
  ) );
670
 
671
  /**
@@ -683,6 +687,41 @@ function yourprefix_register_theme_options_metabox() {
683
 
684
  }
685
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
686
  /**
687
  * Only show this box in the CMB2 REST API if the user is logged in.
688
  *
24
  /**
25
  * Conditionally displays a metabox when used as a callback in the 'show_on_cb' cmb2_box parameter
26
  *
27
+ * @param CMB2 $cmb CMB2 object.
28
  *
29
+ * @return bool True if metabox should show
30
  */
31
  function yourprefix_show_if_front_page( $cmb ) {
32
  // Don't show this metabox if it's not the front page template.
39
  /**
40
  * Conditionally displays a field when used as a callback in the 'show_on_cb' field parameter
41
  *
42
+ * @param CMB2_Field $field Field object.
43
  *
44
+ * @return bool True if metabox should show
45
  */
46
  function yourprefix_hide_if_no_cats( $field ) {
47
  // Don't show this field if not in the cats category.
91
  /**
92
  * Conditionally displays a message if the $post_id is 2
93
  *
94
+ * @param array $field_args Array of field parameters.
95
+ * @param CMB2_Field $field Field object.
96
  */
97
  function yourprefix_before_row_if_2( $field_args, $field ) {
98
  if ( 2 == $field->object_id ) {
260
  'id' => $prefix . 'colorpicker',
261
  'type' => 'colorpicker',
262
  'default' => '#ffffff',
263
+ // 'options' => array(
264
+ // 'alpha' => true, // Make this a rgba color picker.
265
+ // ),
266
  // 'attributes' => array(
267
  // 'data-colorpicker' => json_encode( array(
268
  // 'palettes' => array( '#3dd0cc', '#ff834c', '#4fa2c0', '#0bc991', ),
669
  // 'display_cb' => false, // Override the options-page form output (CMB2_Hookup::options_page_output()).
670
  // 'save_button' => esc_html__( 'Save Theme Options', 'cmb2' ), // The text for the options-page save button. Defaults to 'Save'.
671
  // 'disable_settings_errors' => true, // On settings pages (not options-general.php sub-pages), allows disabling.
672
+ // 'message_cb' => 'yourprefix_options_page_message_callback',
673
  ) );
674
 
675
  /**
687
 
688
  }
689
 
690
+ /**
691
+ * Callback to define the optionss-saved message.
692
+ *
693
+ * @param CMB2 $cmb The CMB2 object.
694
+ * @param array $args {
695
+ * An array of message arguments
696
+ *
697
+ * @type bool $is_options_page Whether current page is this options page.
698
+ * @type bool $should_notify Whether options were saved and we should be notified.
699
+ * @type bool $is_updated Whether options were updated with save (or stayed the same).
700
+ * @type string $setting For add_settings_error(), Slug title of the setting to which
701
+ * this error applies.
702
+ * @type string $code For add_settings_error(), Slug-name to identify the error.
703
+ * Used as part of 'id' attribute in HTML output.
704
+ * @type string $message For add_settings_error(), The formatted message text to display
705
+ * to the user (will be shown inside styled `<div>` and `<p>` tags).
706
+ * Will be 'Settings updated.' if $is_updated is true, else 'Nothing to update.'
707
+ * @type string $type For add_settings_error(), Message type, controls HTML class.
708
+ * Accepts 'error', 'updated', '', 'notice-warning', etc.
709
+ * Will be 'updated' if $is_updated is true, else 'notice-warning'.
710
+ * }
711
+ */
712
+ function yourprefix_options_page_message_callback( $cmb, $args ) {
713
+ if ( ! empty( $args['should_notify'] ) ) {
714
+
715
+ if ( $args['is_updated'] ) {
716
+
717
+ // Modify the updated message.
718
+ $args['message'] = sprintf( esc_html__( '%s &mdash; Updated!', 'cmb2' ), $cmb->prop( 'title' ) );
719
+ }
720
+
721
+ add_settings_error( $args['setting'], $args['code'], $args['message'], $args['type'] );
722
+ }
723
+ }
724
+
725
  /**
726
  * Only show this box in the CMB2 REST API if the user is logged in.
727
  *
includes/vendor/cmb2/images/ui-icons_888888_256x240.png ADDED
Binary file
includes/vendor/cmb2/includes/CMB2.php CHANGED
@@ -110,6 +110,7 @@ class CMB2 extends CMB2_Base {
110
  */
111
 
112
  // 'menu_title' => null, // Falls back to 'title' (above). Do not define here so we can set a fallback.
 
113
  'option_key' => '', // The actual option key and admin menu page slug.
114
  'parent_slug' => '', // Used as first param in add_submenu_page().
115
  'capability' => 'manage_options', // Cap required to view options-page.
@@ -428,31 +429,55 @@ class CMB2 extends CMB2_Base {
428
  }
429
 
430
  /**
431
- * Render a repeatable group.
432
  *
433
- * @param array $args Array of field arguments for a group field parent.
434
  * @return CMB2_Field|null Group field object.
435
  */
436
  public function render_group( $args ) {
 
437
 
438
- if ( ! isset( $args['id'], $args['fields'] ) || ! is_array( $args['fields'] ) ) {
 
 
 
 
 
 
439
  return;
440
  }
441
 
442
- $field_group = $this->get_field( $args );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
443
 
444
  // If field is requesting to be conditionally shown.
445
  if ( ! $field_group || ! $field_group->should_show() ) {
446
  return;
447
  }
448
 
449
- $desc = $field_group->args( 'description' );
450
- $label = $field_group->args( 'name' );
451
- $group_val = (array) $field_group->value();
452
  $field_group->index = 0;
453
 
454
  $field_group->peform_param_callback( 'before_group' );
455
 
 
 
 
 
456
  echo '<div class="cmb-row cmb-repeat-group-wrap ', esc_attr( $field_group->row_classes() ), '" data-fieldtype="group"><div class="cmb-td"><div data-groupid="', esc_attr( $field_group->id() ), '" id="', esc_attr( $field_group->id() ), '_repeat" ', $this->group_wrap_attributes( $field_group ), '>';
457
 
458
  if ( $desc || $label ) {
@@ -1270,11 +1295,14 @@ class CMB2 extends CMB2_Base {
1270
  * Get a field object
1271
  *
1272
  * @since 2.0.3
1273
- * @param string|array|CMB2_Field $field Metabox field id or field config array or CMB2_Field object.
1274
- * @param CMB2_Field|null $field_group (optional) CMB2_Field object (group parent).
 
 
 
1275
  * @return CMB2_Field|false CMB2_Field object (or false).
1276
  */
1277
- public function get_field( $field, $field_group = null ) {
1278
  if ( $field instanceof CMB2_Field ) {
1279
  return $field;
1280
  }
@@ -1291,7 +1319,8 @@ class CMB2 extends CMB2_Base {
1291
  list( $field_id, $sub_field_id ) = $ids;
1292
 
1293
  $index = implode( '', $ids ) . ( $field_group ? $field_group->index : '' );
1294
- if ( array_key_exists( $index, $this->fields ) ) {
 
1295
  return $this->fields[ $index ];
1296
  }
1297
 
@@ -1411,6 +1440,18 @@ class CMB2 extends CMB2_Base {
1411
  // Initiate oembed Ajax hooks.
1412
  cmb2_ajax();
1413
  break;
 
 
 
 
 
 
 
 
 
 
 
 
1414
  }
1415
 
1416
  if ( isset( $field['column'] ) && false !== $field['column'] ) {
@@ -1615,11 +1656,12 @@ class CMB2 extends CMB2_Base {
1615
  * Handles metabox property callbacks, and passes this $cmb object as property.
1616
  *
1617
  * @since 2.2.3
1618
- * @param callable $cb The callback method/function/closure.
1619
- * @return mixed Return of the callback function.
 
1620
  */
1621
- protected function do_callback( $cb ) {
1622
- return call_user_func( $cb, $this );
1623
  }
1624
 
1625
  /**
110
  */
111
 
112
  // 'menu_title' => null, // Falls back to 'title' (above). Do not define here so we can set a fallback.
113
+ 'message_cb' => '', // Optionally define the options-save message (via a callback).
114
  'option_key' => '', // The actual option key and admin menu page slug.
115
  'parent_slug' => '', // Used as first param in add_submenu_page().
116
  'capability' => 'manage_options', // Cap required to view options-page.
429
  }
430
 
431
  /**
432
+ * Render a group of fields.
433
  *
434
+ * @param array|CMB2_Field $args Array of field arguments for a group field parent or the group parent field.
435
  * @return CMB2_Field|null Group field object.
436
  */
437
  public function render_group( $args ) {
438
+ $field_group = false;
439
 
440
+ if ( $args instanceof CMB2_Field ) {
441
+ $field_group = 'group' === $args->type() ? $args : false;
442
+ } elseif ( isset( $args['id'], $args['fields'] ) && is_array( $args['fields'] ) ) {
443
+ $field_group = $this->get_field( $args );
444
+ }
445
+
446
+ if ( ! $field_group ) {
447
  return;
448
  }
449
 
450
+ $field_group->render_context = 'edit';
451
+ $field_group->peform_param_callback( 'render_row_cb' );
452
+
453
+ return $field_group;
454
+ }
455
+
456
+ /**
457
+ * The default callback to render a group of fields.
458
+ *
459
+ * @since 2.2.6
460
+ *
461
+ * @param array $field_args Array of field arguments for the group field parent.
462
+ * @param CMB2_Field $field_group The CMB2_Field group object.
463
+ *
464
+ * @return CMB2_Field|null Group field object.
465
+ */
466
+ public function render_group_callback( $field_args, $field_group ) {
467
 
468
  // If field is requesting to be conditionally shown.
469
  if ( ! $field_group || ! $field_group->should_show() ) {
470
  return;
471
  }
472
 
 
 
 
473
  $field_group->index = 0;
474
 
475
  $field_group->peform_param_callback( 'before_group' );
476
 
477
+ $desc = $field_group->args( 'description' );
478
+ $label = $field_group->args( 'name' );
479
+ $group_val = (array) $field_group->value();
480
+
481
  echo '<div class="cmb-row cmb-repeat-group-wrap ', esc_attr( $field_group->row_classes() ), '" data-fieldtype="group"><div class="cmb-td"><div data-groupid="', esc_attr( $field_group->id() ), '" id="', esc_attr( $field_group->id() ), '_repeat" ', $this->group_wrap_attributes( $field_group ), '>';
482
 
483
  if ( $desc || $label ) {
1295
  * Get a field object
1296
  *
1297
  * @since 2.0.3
1298
+ * @param string|array|CMB2_Field $field Metabox field id or field config array or CMB2_Field object.
1299
+ * @param CMB2_Field|null $field_group (optional) CMB2_Field object (group parent).
1300
+ * @param bool $reset_cached (optional) Reset the internal cache for this field object.
1301
+ * Use sparingly.
1302
+ *
1303
  * @return CMB2_Field|false CMB2_Field object (or false).
1304
  */
1305
+ public function get_field( $field, $field_group = null, $reset_cached = false ) {
1306
  if ( $field instanceof CMB2_Field ) {
1307
  return $field;
1308
  }
1319
  list( $field_id, $sub_field_id ) = $ids;
1320
 
1321
  $index = implode( '', $ids ) . ( $field_group ? $field_group->index : '' );
1322
+
1323
+ if ( array_key_exists( $index, $this->fields ) && ! $reset_cached ) {
1324
  return $this->fields[ $index ];
1325
  }
1326
 
1440
  // Initiate oembed Ajax hooks.
1441
  cmb2_ajax();
1442
  break;
1443
+
1444
+ case 'group':
1445
+ if ( empty( $field['render_row_cb'] ) ) {
1446
+ $field['render_row_cb'] = array( $this, 'render_group_callback' );
1447
+ }
1448
+ break;
1449
+ case 'colorpicker':
1450
+ // https://github.com/JayWood/CMB2_RGBa_Picker
1451
+ // Dequeue the rgba_colorpicker custom field script if it is used,
1452
+ // since we now enqueue our own more current version.
1453
+ add_action( 'admin_enqueue_scripts', array( 'CMB2_Type_Colorpicker', 'dequeue_rgba_colorpicker_script' ), 99 );
1454
+ break;
1455
  }
1456
 
1457
  if ( isset( $field['column'] ) && false !== $field['column'] ) {
1656
  * Handles metabox property callbacks, and passes this $cmb object as property.
1657
  *
1658
  * @since 2.2.3
1659
+ * @param callable $cb The callback method/function/closure
1660
+ * @param mixed $additional_params Any additoinal parameters which should be passed to the callback.
1661
+ * @return mixed Return of the callback function.
1662
  */
1663
+ public function do_callback( $cb, $additional_params = null ) {
1664
+ return call_user_func( $cb, $this, $additional_params );
1665
  }
1666
 
1667
  /**
includes/vendor/cmb2/includes/CMB2_Ajax.php CHANGED
@@ -117,14 +117,14 @@ class CMB2_Ajax {
117
 
118
  $args = wp_parse_args( $args, array(
119
  'object_type' => 'post',
120
- 'oembed_args' => $this->embed_args,
121
  'field_id' => false,
122
  'wp_error' => false,
123
  ) );
124
 
125
  $this->embed_args =& $args;
126
 
127
- /**
128
  * Set the post_ID so oEmbed won't fail
129
  * wp-includes/class-wp-embed.php, WP_Embed::shortcode()
130
  */
@@ -267,7 +267,7 @@ class CMB2_Ajax {
267
  } else {
268
 
269
  $args = array( $this->object_type, $this->object_id, $meta_key );
270
- $args[] = 'update' === $action ? $func_args : true;
271
 
272
  // Cache the result to our metadata
273
  $status = call_user_func_array( $action . '_metadata', $args );
117
 
118
  $args = wp_parse_args( $args, array(
119
  'object_type' => 'post',
120
+ 'oembed_args' => array(),
121
  'field_id' => false,
122
  'wp_error' => false,
123
  ) );
124
 
125
  $this->embed_args =& $args;
126
 
127
+ /*
128
  * Set the post_ID so oEmbed won't fail
129
  * wp-includes/class-wp-embed.php, WP_Embed::shortcode()
130
  */
267
  } else {
268
 
269
  $args = array( $this->object_type, $this->object_id, $meta_key );
270
+ $args[] = 'update' === $action ? $func_args[1] : true;
271
 
272
  // Cache the result to our metadata
273
  $status = call_user_func_array( $action . '_metadata', $args );
includes/vendor/cmb2/includes/CMB2_Base.php CHANGED
@@ -288,15 +288,31 @@ abstract class CMB2_Base {
288
  return $this->callback_results[ $param ];
289
  }
290
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
291
  /**
292
  * Handles the parameter callbacks, and passes this object as parameter.
293
  *
294
  * @since 2.2.3
295
- * @param callable $cb The callback method/function/closure
296
- * @return mixed Return of the callback function.
 
297
  */
298
- protected function do_callback( $cb ) {
299
- return call_user_func( $cb, $this->{$this->properties_name}, $this );
300
  }
301
 
302
  /**
288
  return $this->callback_results[ $param ];
289
  }
290
 
291
+ /**
292
+ * Unset the cached results of the param callback.
293
+ *
294
+ * @since 2.2.6
295
+ * @param string $param Field parameter
296
+ * @return CMB2_Base
297
+ */
298
+ public function unset_param_callback_cache( $param ) {
299
+ if ( isset( $this->callback_results[ $param ] ) ) {
300
+ unset( $this->callback_results[ $param ] );
301
+ }
302
+
303
+ return $this;
304
+ }
305
+
306
  /**
307
  * Handles the parameter callbacks, and passes this object as parameter.
308
  *
309
  * @since 2.2.3
310
+ * @param callable $cb The callback method/function/closure
311
+ * @param mixed $additional_params Any additoinal parameters which should be passed to the callback.
312
+ * @return mixed Return of the callback function.
313
  */
314
+ protected function do_callback( $cb, $additional_params = null ) {
315
+ return call_user_func( $cb, $this->{$this->properties_name}, $this, $additional_params );
316
  }
317
 
318
  /**
includes/vendor/cmb2/includes/CMB2_Field.php CHANGED
@@ -654,6 +654,42 @@ class CMB2_Field extends CMB2_Base {
654
  return isset( $all_fields[ $type ] );
655
  }
656
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
657
  /**
658
  * Escape the value before output. Defaults to 'esc_attr()'
659
  *
@@ -1100,63 +1136,31 @@ class CMB2_Field extends CMB2_Base {
1100
  * @return mixed Default field value
1101
  */
1102
  public function get_default() {
1103
- if ( null !== $this->args['default'] ) {
1104
- return $this->args['default'];
 
 
1105
  }
1106
 
1107
  $param = is_callable( $this->args['default_cb'] ) ? 'default_cb' : 'default';
1108
- $default = $this->get_param_callback_result( $param );
1109
-
1110
- // Allow a filter override of the default value
1111
- $this->args['default'] = apply_filters( 'cmb2_default_filter', $default, $this );
1112
 
1113
- return $this->args['default'];
 
1114
  }
1115
 
1116
  /**
1117
  * Fills in empty field parameters with defaults
1118
  *
1119
  * @since 1.1.0
1120
- * @param array $args Metabox field config array
1121
- * @param array Modified field config array.
 
1122
  */
1123
  public function _set_field_defaults( $args ) {
1124
 
1125
  // Set up blank or default values for empty ones
1126
- $args = wp_parse_args( $args, array(
1127
- 'type' => '',
1128
- 'name' => '',
1129
- 'desc' => '',
1130
- 'before' => '',
1131
- 'after' => '',
1132
- 'options' => array(),
1133
- 'options_cb' => '',
1134
- 'text' => array(),
1135
- 'text_cb' => '',
1136
- 'attributes' => array(),
1137
- 'protocols' => null,
1138
- 'default' => null,
1139
- 'default_cb' => '',
1140
- 'classes' => null,
1141
- 'classes_cb' => '',
1142
- 'select_all_button' => true,
1143
- 'multiple' => false,
1144
- 'repeatable' => isset( $args['type'] ) && 'group' == $args['type'],
1145
- 'inline' => false,
1146
- 'on_front' => true,
1147
- 'show_names' => true,
1148
- 'save_field' => true, // Will not save if false
1149
- 'date_format' => 'm\/d\/Y',
1150
- 'time_format' => 'h:i A',
1151
- 'description' => isset( $args['desc'] ) ? $args['desc'] : '',
1152
- 'preview_size' => 'file' == $args['type'] ? array( 350, 350 ) : array( 50, 50 ),
1153
- 'render_row_cb' => array( $this, 'render_field_callback' ),
1154
- 'display_cb' => array( $this, 'display_value_callback' ),
1155
- 'label_cb' => 'title' != $args['type'] ? array( $this, 'label' ) : '',
1156
- 'column' => false,
1157
- 'js_dependencies' => array(),
1158
- 'show_in_rest' => null,
1159
- ) );
1160
 
1161
  /*
1162
  * Deprecated usage:
@@ -1169,37 +1173,15 @@ class CMB2_Field extends CMB2_Base {
1169
 
1170
  $args['repeatable'] = $args['repeatable'] && ! $this->repeatable_exception( $args['type'] );
1171
  $args['inline'] = $args['inline'] || false !== stripos( $args['type'], '_inline' );
1172
-
1173
- $args['options'] = 'group' == $args['type'] ? wp_parse_args( $args['options'], array(
1174
- 'add_button' => esc_html__( 'Add Group', 'cmb2' ),
1175
- 'remove_button' => esc_html__( 'Remove Group', 'cmb2' ),
1176
- ) ) : $args['options'];
1177
-
1178
  $args['_id'] = $args['id'];
1179
  $args['_name'] = $args['id'];
1180
 
1181
- if ( $this->group ) {
1182
-
1183
- $args['id'] = $this->group->args( 'id' ) . '_' . $this->group->index . '_' . $args['id'];
1184
- $args['_name'] = $this->group->args( 'id' ) . '[' . $this->group->index . '][' . $args['_name'] . ']';
1185
- }
1186
-
1187
- if ( 'wysiwyg' == $args['type'] ) {
1188
- $args['id'] = strtolower( str_ireplace( '-', '_', $args['id'] ) );
1189
- $args['options']['textarea_name'] = $args['_name'];
1190
  }
1191
 
1192
- $option_types = apply_filters( 'cmb2_all_or_nothing_types', array( 'select', 'radio', 'radio_inline', 'taxonomy_select', 'taxonomy_radio', 'taxonomy_radio_inline', 'taxonomy_radio_hierarchical', ), $this );
1193
-
1194
- if ( in_array( $args['type'], $option_types, true ) ) {
1195
-
1196
- $args['show_option_none'] = isset( $args['show_option_none'] ) ? $args['show_option_none'] : null;
1197
- $args['show_option_none'] = true === $args['show_option_none'] ? esc_html__( 'None', 'cmb2' ) : $args['show_option_none'];
1198
-
1199
- if ( null === $args['show_option_none'] ) {
1200
- $off_by_default = in_array( $args['type'], array( 'select', 'radio', 'radio_inline' ), true );
1201
- $args['show_option_none'] = $off_by_default ? false : esc_html__( 'None', 'cmb2' );
1202
- }
1203
  }
1204
 
1205
  $args['has_supporting_data'] = in_array(
@@ -1216,6 +1198,120 @@ class CMB2_Field extends CMB2_Base {
1216
  return $args;
1217
  }
1218
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1219
  /**
1220
  * Get default field arguments specific to this CMB2 object.
1221
  *
654
  return isset( $all_fields[ $type ] );
655
  }
656
 
657
+ /**
658
+ * Determine if current type has its own defaults field-arguments method.
659
+ *
660
+ * @since 2.2.6
661
+ * @param string $type Field type to check
662
+ * @return bool True if has own method.
663
+ */
664
+ public function has_args_method( $type ) {
665
+
666
+ // These types have their own arguments parser.
667
+ $type_methods = array(
668
+ 'group' => 'set_field_defaults_group',
669
+ 'wysiwyg' => 'set_field_defaults_wysiwyg',
670
+ );
671
+
672
+ if ( isset( $type_methods[ $type ] ) ) {
673
+ return $type_methods[ $type ];
674
+ }
675
+
676
+ $all_or_nothing_types = array_flip( apply_filters( 'cmb2_all_or_nothing_types', array(
677
+ 'select',
678
+ 'radio',
679
+ 'radio_inline',
680
+ 'taxonomy_select',
681
+ 'taxonomy_radio',
682
+ 'taxonomy_radio_inline',
683
+ 'taxonomy_radio_hierarchical',
684
+ ), $this ) );
685
+
686
+ if ( isset( $all_or_nothing_types[ $type ] ) ) {
687
+ return 'set_field_defaults_all_or_nothing_types';
688
+ }
689
+
690
+ return false;
691
+ }
692
+
693
  /**
694
  * Escape the value before output. Defaults to 'esc_attr()'
695
  *
1136
  * @return mixed Default field value
1137
  */
1138
  public function get_default() {
1139
+ $default = $this->args['default'];
1140
+
1141
+ if ( null !== $default ) {
1142
+ return apply_filters( 'cmb2_default_filter', $default, $this );
1143
  }
1144
 
1145
  $param = is_callable( $this->args['default_cb'] ) ? 'default_cb' : 'default';
1146
+ $default = $this->args['default'] = $this->get_param_callback_result( $param );
 
 
 
1147
 
1148
+ // Allow a filter override of the default value.
1149
+ return apply_filters( 'cmb2_default_filter', $this->args['default'], $this );
1150
  }
1151
 
1152
  /**
1153
  * Fills in empty field parameters with defaults
1154
  *
1155
  * @since 1.1.0
1156
+ *
1157
+ * @param array $args Field config array.
1158
+ * @return array Modified field config array.
1159
  */
1160
  public function _set_field_defaults( $args ) {
1161
 
1162
  // Set up blank or default values for empty ones
1163
+ $args = wp_parse_args( $args, $this->get_default_field_args( $args ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1164
 
1165
  /*
1166
  * Deprecated usage:
1173
 
1174
  $args['repeatable'] = $args['repeatable'] && ! $this->repeatable_exception( $args['type'] );
1175
  $args['inline'] = $args['inline'] || false !== stripos( $args['type'], '_inline' );
 
 
 
 
 
 
1176
  $args['_id'] = $args['id'];
1177
  $args['_name'] = $args['id'];
1178
 
1179
+ if ( $method = $this->has_args_method( $args['type'] ) ) {
1180
+ $args = $this->{$method}( $args );
 
 
 
 
 
 
 
1181
  }
1182
 
1183
+ if ( $this->group ) {
1184
+ $args = $this->set_group_sub_field_defaults( $args );
 
 
 
 
 
 
 
 
 
1185
  }
1186
 
1187
  $args['has_supporting_data'] = in_array(
1198
  return $args;
1199
  }
1200
 
1201
+ /**
1202
+ * Sets default arguments for the group field types.
1203
+ *
1204
+ * @since 2.2.6
1205
+ *
1206
+ * @param array $args Field config array.
1207
+ * @return array Modified field config array.
1208
+ */
1209
+ protected function set_field_defaults_group( $args ) {
1210
+ $args['options'] = wp_parse_args( $args['options'], array(
1211
+ 'add_button' => esc_html__( 'Add Group', 'cmb2' ),
1212
+ 'remove_button' => esc_html__( 'Remove Group', 'cmb2' ),
1213
+ ) );
1214
+
1215
+ return $args;
1216
+ }
1217
+
1218
+ /**
1219
+ * Sets default arguments for the wysiwyg field types.
1220
+ *
1221
+ * @since 2.2.6
1222
+ *
1223
+ * @param array $args Field config array.
1224
+ * @return array Modified field config array.
1225
+ */
1226
+ protected function set_field_defaults_wysiwyg( $args ) {
1227
+ $args['id'] = strtolower( str_ireplace( '-', '_', $args['id'] ) );
1228
+ $args['options']['textarea_name'] = $args['_name'];
1229
+
1230
+ return $args;
1231
+ }
1232
+
1233
+ /**
1234
+ * Sets default arguments for the all-or-nothing field types.
1235
+ *
1236
+ * @since 2.2.6
1237
+ *
1238
+ * @param array $args Field config array.
1239
+ * @return array Modified field config array.
1240
+ */
1241
+ protected function set_field_defaults_all_or_nothing_types( $args ) {
1242
+ $args['show_option_none'] = isset( $args['show_option_none'] ) ? $args['show_option_none'] : null;
1243
+ $args['show_option_none'] = true === $args['show_option_none'] ? esc_html__( 'None', 'cmb2' ) : $args['show_option_none'];
1244
+
1245
+ if ( null === $args['show_option_none'] ) {
1246
+ $off_by_default = in_array( $args['type'], array( 'select', 'radio', 'radio_inline' ), true );
1247
+ $args['show_option_none'] = $off_by_default ? false : esc_html__( 'None', 'cmb2' );
1248
+ }
1249
+
1250
+ return $args;
1251
+ }
1252
+
1253
+ /**
1254
+ * Sets default arguments for group sub-fields.
1255
+ *
1256
+ * @since 2.2.6
1257
+ *
1258
+ * @param array $args Field config array.
1259
+ * @return array Modified field config array.
1260
+ */
1261
+ protected function set_group_sub_field_defaults( $args ) {
1262
+ $args['id'] = $this->group->args( 'id' ) . '_' . $this->group->index . '_' . $args['id'];
1263
+ $args['_name'] = $this->group->args( 'id' ) . '[' . $this->group->index . '][' . $args['_name'] . ']';
1264
+
1265
+ return $args;
1266
+ }
1267
+
1268
+ /**
1269
+ * Gets the default arguments for all fields.
1270
+ *
1271
+ * @since 2.2.6
1272
+ *
1273
+ * @param array $args Field config array.
1274
+ * @return array Field defaults.
1275
+ */
1276
+ protected function get_default_field_args( $args ) {
1277
+ $type = isset( $args['type'] ) ? $args['type'] : '';
1278
+
1279
+ return array(
1280
+ 'type' => $type,
1281
+ 'name' => '',
1282
+ 'desc' => '',
1283
+ 'before' => '',
1284
+ 'after' => '',
1285
+ 'options' => array(),
1286
+ 'options_cb' => '',
1287
+ 'text' => array(),
1288
+ 'text_cb' => '',
1289
+ 'attributes' => array(),
1290
+ 'protocols' => null,
1291
+ 'default' => null,
1292
+ 'default_cb' => '',
1293
+ 'classes' => null,
1294
+ 'classes_cb' => '',
1295
+ 'select_all_button' => true,
1296
+ 'multiple' => false,
1297
+ 'repeatable' => 'group' === $type,
1298
+ 'inline' => false,
1299
+ 'on_front' => true,
1300
+ 'show_names' => true,
1301
+ 'save_field' => true, // Will not save if false
1302
+ 'date_format' => 'm\/d\/Y',
1303
+ 'time_format' => 'h:i A',
1304
+ 'description' => isset( $args['desc'] ) ? $args['desc'] : '',
1305
+ 'preview_size' => 'file' === $type ? array( 350, 350 ) : array( 50, 50 ),
1306
+ 'render_row_cb' => array( $this, 'render_field_callback' ),
1307
+ 'display_cb' => array( $this, 'display_value_callback' ),
1308
+ 'label_cb' => 'title' !== $type ? array( $this, 'label' ) : '',
1309
+ 'column' => false,
1310
+ 'js_dependencies' => array(),
1311
+ 'show_in_rest' => null,
1312
+ );
1313
+ }
1314
+
1315
  /**
1316
  * Get default field arguments specific to this CMB2 object.
1317
  *
includes/vendor/cmb2/includes/CMB2_JS.php CHANGED
@@ -63,8 +63,14 @@ class CMB2_JS {
63
  $min = $debug ? '' : '.min';
64
 
65
  // if colorpicker
66
- if ( ! is_admin() && isset( $dependencies['wp-color-picker'] ) ) {
67
- self::colorpicker_frontend();
 
 
 
 
 
 
68
  }
69
 
70
  // if file/file_list
@@ -75,7 +81,7 @@ class CMB2_JS {
75
 
76
  // if timepicker
77
  if ( isset( $dependencies['jquery-ui-datetimepicker'] ) ) {
78
- wp_register_script( 'jquery-ui-datetimepicker', CMB2_Utils::url( 'js/jquery-ui-timepicker-addon.min.js' ), array( 'jquery-ui-slider' ), CMB2_VERSION );
79
  }
80
 
81
  // if cmb2-wysiwyg
@@ -95,6 +101,36 @@ class CMB2_JS {
95
  do_action( 'cmb2_footer_enqueue' );
96
  }
97
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98
  /**
99
  * We need to register colorpicker on the front-end
100
  *
@@ -124,12 +160,13 @@ class CMB2_JS {
124
 
125
  $localized = true;
126
  $l10n = array(
127
- 'ajax_nonce' => wp_create_nonce( 'ajax_nonce' ),
128
- 'ajaxurl' => admin_url( '/admin-ajax.php' ),
129
- 'script_debug' => $debug,
130
- 'up_arrow_class' => 'dashicons dashicons-arrow-up-alt2',
131
- 'down_arrow_class' => 'dashicons dashicons-arrow-down-alt2',
132
- 'defaults' => array(
 
133
  'color_picker' => false,
134
  'date_picker' => array(
135
  'changeMonth' => true,
63
  $min = $debug ? '' : '.min';
64
 
65
  // if colorpicker
66
+ if ( isset( $dependencies['wp-color-picker'] ) ) {
67
+ if ( ! is_admin() ) {
68
+ self::colorpicker_frontend();
69
+ }
70
+
71
+ if ( isset( $dependencies['wp-color-picker-alpha'] ) ) {
72
+ self::register_colorpicker_alpha();
73
+ }
74
  }
75
 
76
  // if file/file_list
81
 
82
  // if timepicker
83
  if ( isset( $dependencies['jquery-ui-datetimepicker'] ) ) {
84
+ self::register_datetimepicker();
85
  }
86
 
87
  // if cmb2-wysiwyg
101
  do_action( 'cmb2_footer_enqueue' );
102
  }
103
 
104
+ /**
105
+ * Register or enqueue the wp-color-picker-alpha script.
106
+ *
107
+ * @since 2.2.7
108
+ *
109
+ * @param boolean $enqueue
110
+ *
111
+ * @return void
112
+ */
113
+ public static function register_colorpicker_alpha( $enqueue = false ) {
114
+ // Only use minified files if SCRIPT_DEBUG is off
115
+ $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
116
+ $func = $enqueue ? 'wp_enqueue_script' : 'wp_register_script';
117
+ $func( 'wp-color-picker-alpha', CMB2_Utils::url( "js/wp-color-picker-alpha{$min}.js" ), array( 'wp-color-picker' ), '2.1.3' );
118
+ }
119
+
120
+ /**
121
+ * Register or enqueue the jquery-ui-datetimepicker script.
122
+ *
123
+ * @since 2.2.7
124
+ *
125
+ * @param boolean $enqueue
126
+ *
127
+ * @return void
128
+ */
129
+ public static function register_datetimepicker( $enqueue = false ) {
130
+ $func = $enqueue ? 'wp_enqueue_script' : 'wp_register_script';
131
+ $func( 'jquery-ui-datetimepicker', CMB2_Utils::url( 'js/jquery-ui-timepicker-addon.min.js' ), array( 'jquery-ui-slider' ), '1.5.0' );
132
+ }
133
+
134
  /**
135
  * We need to register colorpicker on the front-end
136
  *
160
 
161
  $localized = true;
162
  $l10n = array(
163
+ 'ajax_nonce' => wp_create_nonce( 'ajax_nonce' ),
164
+ 'ajaxurl' => admin_url( '/admin-ajax.php' ),
165
+ 'script_debug' => $debug,
166
+ 'up_arrow_class' => 'dashicons dashicons-arrow-up-alt2',
167
+ 'down_arrow_class' => 'dashicons dashicons-arrow-down-alt2',
168
+ 'user_can_richedit' => user_can_richedit(),
169
+ 'defaults' => array(
170
  'color_picker' => false,
171
  'date_picker' => array(
172
  'changeMonth' => true,
includes/vendor/cmb2/includes/CMB2_Options_Hookup.php CHANGED
@@ -106,12 +106,65 @@ class CMB2_Options_Hookup extends CMB2_hookup {
106
  add_action( "admin_print_styles-{$page_hook}", array( 'CMB2_hookup', 'enqueue_cmb_css' ) );
107
  }
108
 
109
- if ( ( ! empty( $_GET['settings-updated'] ) ) && ($this->option_key == $_GET['page'] ) ) {
110
- if ( 'true' === $_GET['settings-updated'] ) {
111
- add_settings_error( "{$this->option_key}-notices", '', __( 'Settings updated.', 'cmb2' ), 'updated' );
112
- } else {
113
- add_settings_error( "{$this->option_key}-notices", '', __( 'Nothing to update.', 'cmb2' ), 'notice-warning' );
114
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
  }
116
  }
117
 
@@ -154,7 +207,7 @@ class CMB2_Options_Hookup extends CMB2_hookup {
154
  global $parent_file;
155
 
156
  // The settings sub-pages will already have settings_errors() called in wp-admin/options-head.php
157
- if ( 'options-general.php' !== $parent_file && ! $this->cmb->prop( 'disable_settings_errors' ) ) {
158
  settings_errors( "{$this->option_key}-notices" );
159
  }
160
  }
106
  add_action( "admin_print_styles-{$page_hook}", array( 'CMB2_hookup', 'enqueue_cmb_css' ) );
107
  }
108
 
109
+ $this->maybe_register_message();
110
+ }
111
+
112
+ /**
113
+ * If there is a message callback, let it determine how to register the message,
114
+ * else add a settings message if on this settings page.
115
+ *
116
+ * @since 2.2.6
117
+ *
118
+ * @return void
119
+ */
120
+ public function maybe_register_message() {
121
+ $is_options_page = isset( $_GET['page'] ) && $this->option_key === $_GET['page'];
122
+ $should_notify = ! $this->cmb->prop( 'disable_settings_errors' ) && isset( $_GET['settings-updated'] ) && $is_options_page;
123
+ $is_updated = $should_notify && 'true' === $_GET['settings-updated'];
124
+ $setting = "{$this->option_key}-notices";
125
+ $code = '';
126
+ $message = __( 'Nothing to update.', 'cmb2' );
127
+ $type = 'notice-warning';
128
+
129
+ if ( $is_updated ) {
130
+ $message = __( 'Settings updated.', 'cmb2' );
131
+ $type = 'updated';
132
+ }
133
+
134
+ // Check if parameter has registered a callback.
135
+ if ( $cb = $this->cmb->maybe_callback( 'message_cb' ) ) {
136
+
137
+ /**
138
+ * The 'message_cb' callback will receive the following parameters.
139
+ * Unless there are other reasons for notifications, the callback should only
140
+ * `add_settings_error()` if `$args['should_notify']` is truthy.
141
+ *
142
+ * @param CMB2 $cmb The CMB2 object.
143
+ * @param array $args {
144
+ * An array of message arguments
145
+ *
146
+ * @type bool $is_options_page Whether current page is this options page.
147
+ * @type bool $should_notify Whether options were saved and we should be notified.
148
+ * @type bool $is_updated Whether options were updated with save (or stayed the same).
149
+ * @type string $setting For add_settings_error(), Slug title of the setting to which
150
+ * this error applies.
151
+ * @type string $code For add_settings_error(), Slug-name to identify the error.
152
+ * Used as part of 'id' attribute in HTML output.
153
+ * @type string $message For add_settings_error(), The formatted message text to display
154
+ * to the user (will be shown inside styled `<div>` and `<p>` tags).
155
+ * Will be 'Settings updated.' if $is_updated is true, else 'Nothing to update.'
156
+ * @type string $type For add_settings_error(), Message type, controls HTML class.
157
+ * Accepts 'error', 'updated', '', 'notice-warning', etc.
158
+ * Will be 'updated' if $is_updated is true, else 'notice-warning'.
159
+ * }
160
+ */
161
+ $args = compact( 'is_options_page', 'should_notify', 'is_updated', 'setting', 'code', 'message', 'type' );
162
+
163
+ $this->cmb->do_callback( $cb, $args );
164
+
165
+ } elseif ( $should_notify ) {
166
+
167
+ add_settings_error( $setting, $code, $message, $type );
168
  }
169
  }
170
 
207
  global $parent_file;
208
 
209
  // The settings sub-pages will already have settings_errors() called in wp-admin/options-head.php
210
+ if ( 'options-general.php' !== $parent_file ) {
211
  settings_errors( "{$this->option_key}-notices" );
212
  }
213
  }
includes/vendor/cmb2/includes/CMB2_Sanitize.php CHANGED
@@ -371,8 +371,8 @@ class CMB2_Sanitize {
371
  if ( ! is_object( $datetime ) ) {
372
  $this->value = $utc_stamp = '';
373
  } else {
374
- $timestamp = $datetime->setTimezone( new DateTimeZone( $tzstring ) )->getTimestamp();
375
- $utc_stamp = $timestamp - $offset;
376
  $this->value = serialize( $datetime );
377
  }
378
 
@@ -486,6 +486,10 @@ class CMB2_Sanitize {
486
  // If there is no ID saved yet, try to get it from the url
487
  if ( $this->value && ! $id_val ) {
488
  $id_val = CMB2_Utils::image_id_from_url( $this->value );
 
 
 
 
489
  }
490
 
491
  return $id_field->save_field( $id_val );
371
  if ( ! is_object( $datetime ) ) {
372
  $this->value = $utc_stamp = '';
373
  } else {
374
+ $datetime->setTimezone( new DateTimeZone( $tzstring ) );
375
+ $utc_stamp = date_timestamp_get( $datetime ) - $offset;
376
  $this->value = serialize( $datetime );
377
  }
378
 
486
  // If there is no ID saved yet, try to get it from the url
487
  if ( $this->value && ! $id_val ) {
488
  $id_val = CMB2_Utils::image_id_from_url( $this->value );
489
+
490
+ // If there is an ID but user emptied the input value, remove the ID.
491
+ } elseif ( ! $this->value && $id_val ) {
492
+ $id_val = null;
493
  }
494
 
495
  return $id_field->save_field( $id_val );
includes/vendor/cmb2/includes/CMB2_Utils.php CHANGED
@@ -384,7 +384,7 @@ class CMB2_Utils {
384
  }
385
 
386
  // Check to see if it's anywhere in the root directory
387
- $site_dir = self::normalize_path( self::$ABSPATH );
388
  $site_url = trailingslashit( is_multisite() ? network_site_url() : site_url() );
389
 
390
  $url = str_replace(
@@ -396,6 +396,17 @@ class CMB2_Utils {
396
  return set_url_scheme( $url );
397
  }
398
 
 
 
 
 
 
 
 
 
 
 
 
399
  /**
400
  * `wp_normalize_path` wrapper for back-compat. Normalize a filesystem path.
401
  *
@@ -441,7 +452,7 @@ class CMB2_Utils {
441
  * Takes a php date() format string and returns a string formatted to suit for the date/time pickers
442
  * It will work with only with the following subset ot date() options:
443
  *
444
- * d, j, z, m, n, y, and Y.
445
  *
446
  * A slight effort is made to deal with escaped characters.
447
  *
@@ -456,25 +467,27 @@ class CMB2_Utils {
456
 
457
  // order is relevant here, since the replacement will be done sequentially.
458
  $supported_options = array(
459
- 'd' => 'dd', // Day, leading 0
460
- 'j' => 'd', // Day, no 0
461
- 'z' => 'o', // Day of the year, no leading zeroes,
462
  // 'D' => 'D', // Day name short, not sure how it'll work with translations
463
- // 'l' => 'DD', // Day name full, idem before
464
- 'm' => 'mm', // Month of the year, leading 0
465
- 'n' => 'm', // Month of the year, no leading 0
 
466
  // 'M' => 'M', // Month, Short name
467
- // 'F' => 'MM', // Month, full name,
468
- 'y' => 'y', // Year, two digit
469
- 'Y' => 'yy', // Year, full
470
- 'H' => 'HH', // Hour with leading 0 (24 hour)
471
- 'G' => 'H', // Hour with no leading 0 (24 hour)
472
- 'h' => 'hh', // Hour with leading 0 (12 hour)
473
- 'g' => 'h', // Hour with no leading 0 (12 hour),
474
- 'i' => 'mm', // Minute with leading 0,
475
- 's' => 'ss', // Second with leading 0,
476
- 'a' => 'tt', // am/pm
477
- 'A' => 'TT',// AM/PM
 
478
  );
479
 
480
  foreach ( $supported_options as $php => $js ) {
@@ -482,13 +495,22 @@ class CMB2_Utils {
482
  $format = preg_replace( "~(?<!\\\\)$php~", $js, $format );
483
  }
484
 
 
 
 
 
 
 
 
 
 
485
  $format = preg_replace_callback( '~(?:\\\.)+~', array( __CLASS__, 'wrap_escaped_chars' ), $format );
486
 
487
  return $format;
488
  }
489
 
490
  /**
491
- * Helper function for CMB_Utils->php_to_js_dateformat, because php 5.2 was retarded.
492
  *
493
  * @since 2.2.0
494
  * @param $value Value to wrap/escape
384
  }
385
 
386
  // Check to see if it's anywhere in the root directory
387
+ $site_dir = self::get_normalized_abspath();
388
  $site_url = trailingslashit( is_multisite() ? network_site_url() : site_url() );
389
 
390
  $url = str_replace(
396
  return set_url_scheme( $url );
397
  }
398
 
399
+ /**
400
+ * Get the normalized absolute path defined by WordPress.
401
+ *
402
+ * @since 2.2.6
403
+ *
404
+ * @return string Normalized absolute path.
405
+ */
406
+ protected static function get_normalized_abspath() {
407
+ return self::normalize_path( self::$ABSPATH );
408
+ }
409
+
410
  /**
411
  * `wp_normalize_path` wrapper for back-compat. Normalize a filesystem path.
412
  *
452
  * Takes a php date() format string and returns a string formatted to suit for the date/time pickers
453
  * It will work with only with the following subset ot date() options:
454
  *
455
+ * d, l, j, z, m, F, n, y, and Y.
456
  *
457
  * A slight effort is made to deal with escaped characters.
458
  *
467
 
468
  // order is relevant here, since the replacement will be done sequentially.
469
  $supported_options = array(
470
+ 'd' => 'dd', // Day, leading 0
471
+ 'j' => 'd', // Day, no 0
472
+ 'z' => 'o', // Day of the year, no leading zeroes,
473
  // 'D' => 'D', // Day name short, not sure how it'll work with translations
474
+ 'l ' => 'DD ', // Day name full, idem before
475
+ 'l, ' => 'DD, ', // Day name full, idem before
476
+ 'm' => 'mm', // Month of the year, leading 0
477
+ 'n' => 'm', // Month of the year, no leading 0
478
  // 'M' => 'M', // Month, Short name
479
+ 'F ' => 'MM ', // Month, full name,
480
+ 'F, ' => 'MM, ', // Month, full name,
481
+ 'y' => 'y', // Year, two digit
482
+ 'Y' => 'yy', // Year, full
483
+ 'H' => 'HH', // Hour with leading 0 (24 hour)
484
+ 'G' => 'H', // Hour with no leading 0 (24 hour)
485
+ 'h' => 'hh', // Hour with leading 0 (12 hour)
486
+ 'g' => 'h', // Hour with no leading 0 (12 hour),
487
+ 'i' => 'mm', // Minute with leading 0,
488
+ 's' => 'ss', // Second with leading 0,
489
+ 'a' => 'tt', // am/pm
490
+ 'A' => 'TT',// AM/PM
491
  );
492
 
493
  foreach ( $supported_options as $php => $js ) {
495
  $format = preg_replace( "~(?<!\\\\)$php~", $js, $format );
496
  }
497
 
498
+ $supported_options = array(
499
+ 'l' => 'DD', // Day name full, idem before
500
+ 'F' => 'MM', // Month, full name,
501
+ );
502
+
503
+ if ( isset( $supported_options[ $format ] ) ) {
504
+ $format = $supported_options[ $format ];
505
+ }
506
+
507
  $format = preg_replace_callback( '~(?:\\\.)+~', array( __CLASS__, 'wrap_escaped_chars' ), $format );
508
 
509
  return $format;
510
  }
511
 
512
  /**
513
+ * Helper function for CMB_Utils::php_to_js_dateformat().
514
  *
515
  * @since 2.2.0
516
  * @param $value Value to wrap/escape
includes/vendor/cmb2/includes/helper-functions.php CHANGED
@@ -404,3 +404,18 @@ if ( ! function_exists( 'date_create_from_format' ) ) {
404
  return new DateTime( $ymd );
405
  }
406
  }// End if().
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
404
  return new DateTime( $ymd );
405
  }
406
  }// End if().
407
+
408
+ if ( ! function_exists( 'date_timestamp_get' ) ) {
409
+
410
+ /**
411
+ * Returns the Unix timestamp representing the date.
412
+ * Reimplementation of DateTime::getTimestamp for PHP < 5.3. :(
413
+ *
414
+ * @param DateTime
415
+ *
416
+ * @return int
417
+ */
418
+ function date_timestamp_get( DateTime $date ) {
419
+ return $date->format( 'U' );
420
+ }
421
+ }// End if().
includes/vendor/cmb2/includes/shim/WP_REST_Controller.php CHANGED
@@ -21,7 +21,8 @@ abstract class WP_REST_Controller {
21
  * Register the routes for the objects of the controller.
22
  */
23
  public function register_routes() {
24
- _doing_it_wrong( 'WP_REST_Controller::register_routes', __( 'The register_routes() method must be overridden' ), 'WPAPI-2.0' );
 
25
  }
26
 
27
  /**
21
  * Register the routes for the objects of the controller.
22
  */
23
  public function register_routes() {
24
+ /* translators: %s: register_routes() */
25
+ _doing_it_wrong( 'WP_REST_Controller::register_routes', sprintf( __( "Method '%s' must be overridden." ), __METHOD__ ), '4.7' );
26
  }
27
 
28
  /**
includes/vendor/cmb2/includes/types/CMB2_Type_Checkbox.php CHANGED
@@ -32,7 +32,7 @@ class CMB2_Type_Checkbox extends CMB2_Type_Text {
32
  $this->is_checked = $is_checked;
33
  }
34
 
35
- public function render() {
36
  $defaults = array(
37
  'type' => 'checkbox',
38
  'class' => 'cmb2-option cmb2-list',
32
  $this->is_checked = $is_checked;
33
  }
34
 
35
+ public function render( $args = array() ) {
36
  $defaults = array(
37
  'type' => 'checkbox',
38
  'class' => 'cmb2-option cmb2-list',
includes/vendor/cmb2/includes/types/CMB2_Type_Colorpicker.php CHANGED
@@ -32,27 +32,48 @@ class CMB2_Type_Colorpicker extends CMB2_Type_Text {
32
  $this->value = $value ? $value : $this->value;
33
  }
34
 
35
- public function render() {
36
  $meta_value = $this->value ? $this->value : $this->field->escaped_value();
37
 
38
  $hex_color = '(([a-fA-F0-9]){3}){1,2}$';
39
  if ( preg_match( '/^' . $hex_color . '/i', $meta_value ) ) {
40
  // Value is just 123abc, so prepend #
41
  $meta_value = '#' . $meta_value;
42
- } elseif ( ! preg_match( '/^#' . $hex_color . '/i', $meta_value ) ) {
43
- // Value doesn't match #123abc, so sanitize to just #
 
 
 
 
 
44
  $meta_value = '#';
45
  }
46
 
47
  wp_enqueue_style( 'wp-color-picker' );
48
 
49
- $args = wp_parse_args( $this->args, array(
50
- 'class' => 'cmb2-colorpicker cmb2-text-small',
51
- 'value' => $meta_value,
52
- 'js_dependencies' => 'wp-color-picker',
53
  ) );
54
 
 
 
 
 
 
 
 
 
 
 
 
55
  return parent::render( $args );
56
  }
57
 
 
 
 
 
 
 
 
58
  }
32
  $this->value = $value ? $value : $this->value;
33
  }
34
 
35
+ public function render( $args = array() ) {
36
  $meta_value = $this->value ? $this->value : $this->field->escaped_value();
37
 
38
  $hex_color = '(([a-fA-F0-9]){3}){1,2}$';
39
  if ( preg_match( '/^' . $hex_color . '/i', $meta_value ) ) {
40
  // Value is just 123abc, so prepend #
41
  $meta_value = '#' . $meta_value;
42
+ } elseif (
43
+ // If value doesn't match #123abc...
44
+ ! preg_match( '/^#' . $hex_color . '/i', $meta_value )
45
+ // And value doesn't match rgba()...
46
+ && 0 !== strpos( trim( $meta_value ), 'rgba' )
47
+ ) {
48
+ // Then sanitize to just #.
49
  $meta_value = '#';
50
  }
51
 
52
  wp_enqueue_style( 'wp-color-picker' );
53
 
54
+ $args = wp_parse_args( $args, array(
55
+ 'class' => 'cmb2-text-small',
 
 
56
  ) );
57
 
58
+ $args['class'] .= ' cmb2-colorpicker';
59
+ $args['value'] = $meta_value;
60
+ $args['js_dependencies'] = array( 'wp-color-picker' );
61
+
62
+ if ( $this->field->options( 'alpha' ) ) {
63
+ $args['js_dependencies'][] = 'wp-color-picker-alpha';
64
+ $args['data-alpha'] = 'true';
65
+ }
66
+
67
+ $args = wp_parse_args( $this->args, $args );
68
+
69
  return parent::render( $args );
70
  }
71
 
72
+ public static function dequeue_rgba_colorpicker_script() {
73
+ if ( wp_script_is( 'jw-cmb2-rgba-picker-js', 'enqueued' ) ) {
74
+ wp_dequeue_script( 'jw-cmb2-rgba-picker-js' );
75
+ CMB2_JS::register_colorpicker_alpha( true );
76
+ }
77
+ }
78
+
79
  }
includes/vendor/cmb2/includes/types/CMB2_Type_File_List.php CHANGED
@@ -12,7 +12,7 @@
12
  */
13
  class CMB2_Type_File_List extends CMB2_Type_File_Base {
14
 
15
- public function render() {
16
  $field = $this->field;
17
  $meta_value = $field->escaped_value();
18
  $name = $this->_name();
12
  */
13
  class CMB2_Type_File_List extends CMB2_Type_File_Base {
14
 
15
+ public function render( $args = array() ) {
16
  $field = $this->field;
17
  $meta_value = $field->escaped_value();
18
  $name = $this->_name();
includes/vendor/cmb2/includes/types/CMB2_Type_Multicheck.php CHANGED
@@ -19,7 +19,7 @@ class CMB2_Type_Multicheck extends CMB2_Type_Radio {
19
  */
20
  public $type = 'checkbox';
21
 
22
- public function render() {
23
  $classes = false === $this->field->args( 'select_all_button' )
24
  ? 'cmb2-checkbox-list no-select-all cmb2-list'
25
  : 'cmb2-checkbox-list cmb2-list';
19
  */
20
  public $type = 'checkbox';
21
 
22
+ public function render( $args = array() ) {
23
  $classes = false === $this->field->args( 'select_all_button' )
24
  ? 'cmb2-checkbox-list no-select-all cmb2-list'
25
  : 'cmb2-checkbox-list cmb2-list';
includes/vendor/cmb2/includes/types/CMB2_Type_Oembed.php CHANGED
@@ -12,7 +12,7 @@
12
  */
13
  class CMB2_Type_Oembed extends CMB2_Type_Text {
14
 
15
- public function render() {
16
  $field = $this->field;
17
 
18
  $meta_value = trim( $field->escaped_value() );
12
  */
13
  class CMB2_Type_Oembed extends CMB2_Type_Text {
14
 
15
+ public function render( $args = array() ) {
16
  $field = $this->field;
17
 
18
  $meta_value = trim( $field->escaped_value() );
includes/vendor/cmb2/includes/types/CMB2_Type_Taxonomy_Multicheck.php CHANGED
@@ -67,11 +67,10 @@ class CMB2_Type_Taxonomy_Multicheck extends CMB2_Type_Taxonomy_Base {
67
  protected function get_wrapper_classes() {
68
  $classes = 'cmb2-checkbox-list cmb2-list';
69
  if ( false === $this->field->args( 'select_all_button' ) ) {
70
- $classes .= 'no-select-all';
71
  }
72
 
73
  return $classes;
74
-
75
  }
76
 
77
  }
67
  protected function get_wrapper_classes() {
68
  $classes = 'cmb2-checkbox-list cmb2-list';
69
  if ( false === $this->field->args( 'select_all_button' ) ) {
70
+ $classes .= ' no-select-all';
71
  }
72
 
73
  return $classes;
 
74
  }
75
 
76
  }
includes/vendor/cmb2/includes/types/CMB2_Type_Text_Date.php CHANGED
@@ -12,7 +12,7 @@
12
  */
13
  class CMB2_Type_Text_Date extends CMB2_Type_Picker_Base {
14
 
15
- public function render() {
16
  $args = $this->parse_args( 'text_date', array(
17
  'class' => 'cmb2-text-small cmb2-datepicker',
18
  'value' => $this->field->get_timestamp_format(),
12
  */
13
  class CMB2_Type_Text_Date extends CMB2_Type_Picker_Base {
14
 
15
+ public function render( $args = array() ) {
16
  $args = $this->parse_args( 'text_date', array(
17
  'class' => 'cmb2-text-small cmb2-datepicker',
18
  'value' => $this->field->get_timestamp_format(),
includes/vendor/cmb2/includes/types/CMB2_Type_Text_Datetime_Timestamp.php CHANGED
@@ -12,7 +12,7 @@
12
  */
13
  class CMB2_Type_Text_Datetime_Timestamp extends CMB2_Type_Picker_Base {
14
 
15
- public function render() {
16
  $field = $this->field;
17
 
18
  $args = wp_parse_args( $this->args, array(
12
  */
13
  class CMB2_Type_Text_Datetime_Timestamp extends CMB2_Type_Picker_Base {
14
 
15
+ public function render( $args = array() ) {
16
  $field = $this->field;
17
 
18
  $args = wp_parse_args( $this->args, array(
includes/vendor/cmb2/includes/types/CMB2_Type_Text_Datetime_Timestamp_Timezone.php CHANGED
@@ -12,7 +12,7 @@
12
  */
13
  class CMB2_Type_Text_Datetime_Timestamp_Timezone extends CMB2_Type_Base {
14
 
15
- public function render() {
16
  $field = $this->field;
17
 
18
  $args = wp_parse_args( $this->args, array(
12
  */
13
  class CMB2_Type_Text_Datetime_Timestamp_Timezone extends CMB2_Type_Base {
14
 
15
+ public function render( $args = array() ) {
16
  $field = $this->field;
17
 
18
  $args = wp_parse_args( $this->args, array(
includes/vendor/cmb2/includes/types/CMB2_Type_Text_Time.php CHANGED
@@ -12,7 +12,7 @@
12
  */
13
  class CMB2_Type_Text_Time extends CMB2_Type_Text_Date {
14
 
15
- public function render() {
16
  $this->args = $this->parse_picker_options( 'time', wp_parse_args( $this->args, array(
17
  'class' => 'cmb2-timepicker text-time',
18
  'value' => $this->field->get_timestamp_format( 'time_format' ),
12
  */
13
  class CMB2_Type_Text_Time extends CMB2_Type_Text_Date {
14
 
15
+ public function render( $args = array() ) {
16
  $this->args = $this->parse_picker_options( 'time', wp_parse_args( $this->args, array(
17
  'class' => 'cmb2-timepicker text-time',
18
  'value' => $this->field->get_timestamp_format( 'time_format' ),
includes/vendor/cmb2/includes/types/CMB2_Type_Textarea_Code.php CHANGED
@@ -19,7 +19,7 @@ class CMB2_Type_Textarea_Code extends CMB2_Type_Textarea {
19
  * @param array $args Override arguments
20
  * @return string Form textarea element
21
  */
22
- public function render() {
23
  return $this->rendered(
24
  sprintf( '<pre>%s', parent::render( array(
25
  'class' => 'cmb2-textarea-code',
19
  * @param array $args Override arguments
20
  * @return string Form textarea element
21
  */
22
+ public function render( $args = array() ) {
23
  return $this->rendered(
24
  sprintf( '<pre>%s', parent::render( array(
25
  'class' => 'cmb2-textarea-code',
includes/vendor/cmb2/includes/types/CMB2_Type_Wysiwyg.php CHANGED
@@ -20,7 +20,7 @@ class CMB2_Type_Wysiwyg extends CMB2_Type_Textarea {
20
  * @since 1.1.0
21
  * @return string Form wysiwyg element
22
  */
23
- public function render() {
24
  $field = $this->field;
25
  $a = $this->parse_args( 'wysiwyg', array(
26
  'id' => $this->_id(),
20
  * @since 1.1.0
21
  * @return string Form wysiwyg element
22
  */
23
+ public function render( $args = array() ) {
24
  $field = $this->field;
25
  $a = $this->parse_args( 'wysiwyg', array(
26
  'id' => $this->_id(),
includes/vendor/cmb2/init.php CHANGED
@@ -21,7 +21,7 @@
21
  * Bill Erickson (@billerickson / billerickson.net)
22
  * Andrew Norcross (@norcross / andrewnorcross.com)
23
  *
24
- * Version: 2.2.5.3
25
  *
26
  * Text Domain: cmb2
27
  * Domain Path: languages
@@ -54,7 +54,7 @@
54
  * ***********************************************************************
55
  */
56
 
57
- if ( ! class_exists( 'CMB2_Bootstrap_2253', false ) ) {
58
 
59
  /**
60
  * Handles checking for and loading the newest version of CMB2
@@ -67,7 +67,7 @@ if ( ! class_exists( 'CMB2_Bootstrap_2253', false ) ) {
67
  * @license GPL-2.0+
68
  * @link https://cmb2.io
69
  */
70
- class CMB2_Bootstrap_2253 {
71
 
72
  /**
73
  * Current version number
@@ -75,7 +75,7 @@ if ( ! class_exists( 'CMB2_Bootstrap_2253', false ) ) {
75
  * @var string
76
  * @since 1.0.0
77
  */
78
- const VERSION = '2.2.5.3';
79
 
80
  /**
81
  * Current version hook priority.
@@ -84,20 +84,20 @@ if ( ! class_exists( 'CMB2_Bootstrap_2253', false ) ) {
84
  * @var int
85
  * @since 2.0.0
86
  */
87
- const PRIORITY = 9973;
88
 
89
  /**
90
- * Single instance of the CMB2_Bootstrap_2253 object
91
  *
92
- * @var CMB2_Bootstrap_2253
93
  */
94
  public static $single_instance = null;
95
 
96
  /**
97
- * Creates/returns the single instance CMB2_Bootstrap_2253 object
98
  *
99
  * @since 2.0.0
100
- * @return CMB2_Bootstrap_2253 Single instance object
101
  */
102
  public static function initiate() {
103
  if ( null === self::$single_instance ) {
@@ -189,6 +189,6 @@ if ( ! class_exists( 'CMB2_Bootstrap_2253', false ) ) {
189
  }
190
 
191
  // Make it so...
192
- CMB2_Bootstrap_2253::initiate();
193
 
194
  }// End if().
21
  * Bill Erickson (@billerickson / billerickson.net)
22
  * Andrew Norcross (@norcross / andrewnorcross.com)
23
  *
24
+ * Version: 2.3.0
25
  *
26
  * Text Domain: cmb2
27
  * Domain Path: languages
54
  * ***********************************************************************
55
  */
56
 
57
+ if ( ! class_exists( 'CMB2_Bootstrap_230', false ) ) {
58
 
59
  /**
60
  * Handles checking for and loading the newest version of CMB2
67
  * @license GPL-2.0+
68
  * @link https://cmb2.io
69
  */
70
+ class CMB2_Bootstrap_230 {
71
 
72
  /**
73
  * Current version number
75
  * @var string
76
  * @since 1.0.0
77
  */
78
+ const VERSION = '2.3.0';
79
 
80
  /**
81
  * Current version hook priority.
84
  * @var int
85
  * @since 2.0.0
86
  */
87
+ const PRIORITY = 9969;
88
 
89
  /**
90
+ * Single instance of the CMB2_Bootstrap_230 object
91
  *
92
+ * @var CMB2_Bootstrap_230
93
  */
94
  public static $single_instance = null;
95
 
96
  /**
97
+ * Creates/returns the single instance CMB2_Bootstrap_230 object
98
  *
99
  * @since 2.0.0
100
+ * @return CMB2_Bootstrap_230 Single instance object
101
  */
102
  public static function initiate() {
103
  if ( null === self::$single_instance ) {
189
  }
190
 
191
  // Make it so...
192
+ CMB2_Bootstrap_230::initiate();
193
 
194
  }// End if().
includes/vendor/cmb2/js/cmb2-wysiwyg.js CHANGED
@@ -275,18 +275,25 @@ window.CMB2.wysiwyg = window.CMB2.wysiwyg || {};
275
  return false;
276
  }
277
 
 
 
278
  $.extend( data, getGroupData( data ) );
279
 
280
  initOptions( data );
281
 
282
  $toReplace.replaceWith( data.template( data ) );
283
 
284
- window.tinyMCE.init( tinyMCEPreInit.mceInit[ data.id ] );
285
- if ( 'function' === typeof window.quicktags ) {
 
 
 
286
  window.quicktags( tinyMCEPreInit.qtInit[ data.id ] );
287
  }
288
 
289
- $( document.getElementById( data.id ) ).parents( '.wp-editor-wrap' ).removeClass( 'html-active' ).addClass( 'tmce-active' );
 
 
290
 
291
  if ( false !== buttonsInit && 'undefined' !== typeof window.QTags ) {
292
  window.QTags._buttonsInit();
@@ -304,6 +311,10 @@ window.CMB2.wysiwyg = window.CMB2.wysiwyg || {};
304
  * @return {void}
305
  */
306
  wysiwyg.destroy = function( id ) {
 
 
 
 
307
 
308
  // The editor might not be initialized yet. But we need to destroy it once it is.
309
  var editor = tinyMCE.get( id );
275
  return false;
276
  }
277
 
278
+ var mceActive = window.cmb2_l10.user_can_richedit && window.tinyMCE;
279
+ var qtActive = 'function' === typeof window.quicktags;
280
  $.extend( data, getGroupData( data ) );
281
 
282
  initOptions( data );
283
 
284
  $toReplace.replaceWith( data.template( data ) );
285
 
286
+ if ( mceActive ) {
287
+ window.tinyMCE.init( tinyMCEPreInit.mceInit[ data.id ] );
288
+ }
289
+
290
+ if ( qtActive ) {
291
  window.quicktags( tinyMCEPreInit.qtInit[ data.id ] );
292
  }
293
 
294
+ if ( mceActive ) {
295
+ $( document.getElementById( data.id ) ).parents( '.wp-editor-wrap' ).removeClass( 'html-active' ).addClass( 'tmce-active' );
296
+ }
297
 
298
  if ( false !== buttonsInit && 'undefined' !== typeof window.QTags ) {
299
  window.QTags._buttonsInit();
311
  * @return {void}
312
  */
313
  wysiwyg.destroy = function( id ) {
314
+ if ( ! window.cmb2_l10.user_can_richedit || ! window.tinyMCE ) {
315
+ // Nothing to see here.
316
+ return;
317
+ }
318
 
319
  // The editor might not be initialized yet. But we need to destroy it once it is.
320
  var editor = tinyMCE.get( id );
includes/vendor/cmb2/js/cmb2.js CHANGED
@@ -401,7 +401,7 @@ window.CMB2 = window.CMB2 || {};
401
  var $elements = $row.find( cmb.repeatUpdate );
402
  if ( group ) {
403
 
404
- var $other = $row.find( '[id]' ).not( cmb.repeatUpdate );
405
 
406
  // Remove extra ajaxed rows
407
  $row.find('.cmb-repeat-table .cmb-repeat-row:not(:first-child)').remove();
@@ -433,13 +433,13 @@ window.CMB2 = window.CMB2 || {};
433
  }
434
 
435
  $elements.each( function() {
436
- cmb.elReplacements( $( this ), prevNum );
437
  } );
438
 
439
  return cmb;
440
  };
441
 
442
- cmb.elReplacements = function( $newInput, prevNum ) {
443
  var oldFor = $newInput.attr( 'for' );
444
  var oldVal = $newInput.val();
445
  var type = $newInput.prop( 'type' );
@@ -451,14 +451,25 @@ window.CMB2 = window.CMB2 || {};
451
  attrs = { 'for' : oldFor.replace( '_'+ prevNum, '_'+ cmb.idNumber ) };
452
  } else {
453
  var oldName = $newInput.attr( 'name' );
454
- // Replace 'name' attribute key
455
- var newName = oldName ? oldName.replace( '['+ prevNum +']', '['+ cmb.idNumber +']' ) : '';
456
- oldID = $newInput.attr( 'id' );
457
- newID = oldID ? oldID.replace( '_'+ prevNum, '_'+ cmb.idNumber ) : '';
458
- attrs = {
 
 
 
 
 
 
 
 
 
 
 
 
459
  id: newID,
460
- name: newName,
461
- 'data-iterator': cmb.idNumber,
462
  };
463
 
464
  }
@@ -472,6 +483,10 @@ window.CMB2 = window.CMB2 || {};
472
  $newInput.removeAttr( 'checked' );
473
  }
474
 
 
 
 
 
475
  $newInput
476
  .removeClass( 'hasDatepicker' )
477
  .attr( attrs ).val( checkable ? checkable : '' );
@@ -791,7 +806,11 @@ window.CMB2 = window.CMB2 || {};
791
 
792
  options.onClose = function( dateText, inst ) {
793
  // Remove the class when we're done with it (and hide to remove FOUC).
794
- $id( 'ui-datepicker-div' ).removeClass( 'cmb2-element' ).hide();
 
 
 
 
795
 
796
  // Let's be sure to call onClose if it was added
797
  if ( 'function' === typeof existing.onClose ) {
@@ -1019,6 +1038,15 @@ window.CMB2 = window.CMB2 || {};
1019
  $el.trigger( evtName, args );
1020
  };
1021
 
 
 
 
 
 
 
 
 
 
1022
  $( cmb.init );
1023
 
1024
  })(window, document, jQuery, window.CMB2);
401
  var $elements = $row.find( cmb.repeatUpdate );
402
  if ( group ) {
403
 
404
+ var $other = $row.find( '[id]' ).not( cmb.repeatUpdate );
405
 
406
  // Remove extra ajaxed rows
407
  $row.find('.cmb-repeat-table .cmb-repeat-row:not(:first-child)').remove();
433
  }
434
 
435
  $elements.each( function() {
436
+ cmb.elReplacements( $( this ), prevNum, group );
437
  } );
438
 
439
  return cmb;
440
  };
441
 
442
+ cmb.elReplacements = function( $newInput, prevNum, group ) {
443
  var oldFor = $newInput.attr( 'for' );
444
  var oldVal = $newInput.val();
445
  var type = $newInput.prop( 'type' );
451
  attrs = { 'for' : oldFor.replace( '_'+ prevNum, '_'+ cmb.idNumber ) };
452
  } else {
453
  var oldName = $newInput.attr( 'name' );
454
+ var newName;
455
+ oldID = $newInput.attr( 'id' );
456
+
457
+ // Handle adding groups vs rows.
458
+ if ( group ) {
459
+ // Expect another bracket after group's index closing bracket.
460
+ newName = oldName ? oldName.replace( '['+ prevNum +'][', '['+ cmb.idNumber +'][' ) : '';
461
+ // Expect another underscore after group's index trailing underscore.
462
+ newID = oldID ? oldID.replace( '_' + prevNum + '_', '_' + cmb.idNumber + '_' ) : '';
463
+ }
464
+ else {
465
+ // Row indexes are at the very end of the string.
466
+ newName = oldName ? cmb.replaceLast( oldName, '[' + prevNum + ']', '[' + cmb.idNumber + ']' ) : '';
467
+ newID = oldID ? cmb.replaceLast( oldID, '_' + prevNum, '_' + cmb.idNumber ) : '';
468
+ }
469
+
470
+ attrs = {
471
  id: newID,
472
+ name: newName
 
473
  };
474
 
475
  }
483
  $newInput.removeAttr( 'checked' );
484
  }
485
 
486
+ if ( ! group && $newInput[0].hasAttribute( 'data-iterator' ) ) {
487
+ attrs['data-iterator'] = cmb.idNumber;
488
+ }
489
+
490
  $newInput
491
  .removeClass( 'hasDatepicker' )
492
  .attr( attrs ).val( checkable ? checkable : '' );
806
 
807
  options.onClose = function( dateText, inst ) {
808
  // Remove the class when we're done with it (and hide to remove FOUC).
809
+ var $picker = $id( 'ui-datepicker-div' ).removeClass( 'cmb2-element' ).hide();
810
+ if ( 'timepicker' === method && ! $( inst.input ).val() ) {
811
+ // Set the timepicker field value if it's empty.
812
+ inst.input.val( $picker.find( '.ui_tpicker_time' ).text() );
813
+ }
814
 
815
  // Let's be sure to call onClose if it was added
816
  if ( 'function' === typeof existing.onClose ) {
1038
  $el.trigger( evtName, args );
1039
  };
1040
 
1041
+ cmb.replaceLast = function( string, search, replace ) {
1042
+ // find the index of last time word was used
1043
+ var n = string.lastIndexOf( search );
1044
+
1045
+ // slice the string in 2, one from the start to the lastIndexOf
1046
+ // and then replace the word in the rest
1047
+ return string.slice( 0, n ) + string.slice( n ).replace( search, replace );
1048
+ };
1049
+
1050
  $( cmb.init );
1051
 
1052
  })(window, document, jQuery, window.CMB2);
includes/vendor/cmb2/js/cmb2.min.js CHANGED
@@ -1 +1 @@
1
- window.CMB2=window.CMB2||{},function(window,document,$,cmb,undefined){"use strict";var $document,l10n=window.cmb2_l10,setTimeout=window.setTimeout,$id=function(selector){return $(document.getElementById(selector))},defaults={idNumber:!1,repeatEls:'input:not([type="button"],[id^=filelist]),select,textarea,.cmb2-media-status',noEmpty:'input:not([type="button"]):not([type="radio"]):not([type="checkbox"]),textarea',repeatUpdate:'input:not([type="button"]),select,textarea,label',styleBreakPoint:450,mediaHandlers:{},defaults:{time_picker:l10n.defaults.time_picker,date_picker:l10n.defaults.date_picker,color_picker:l10n.defaults.color_picker||{}},media:{frames:{}}};cmb.metabox=function(){return cmb.$metabox?cmb.$metabox:(cmb.$metabox=$(".cmb2-wrap > .cmb2-metabox"),cmb.$metabox)},cmb.init=function(){$document=$(document),$.extend(cmb,defaults),cmb.trigger("cmb_pre_init");var $metabox=cmb.metabox(),$repeatGroup=$metabox.find(".cmb-repeatable-group");cmb.initPickers($metabox.find('input[type="text"].cmb2-timepicker'),$metabox.find('input[type="text"].cmb2-datepicker'),$metabox.find('input[type="text"].cmb2-colorpicker')),$('<p><span class="button-secondary cmb-multicheck-toggle">'+l10n.strings.check_toggle+"</span></p>").insertBefore(".cmb2-checkbox-list:not(.no-select-all)"),cmb.makeListSortable(),$metabox.on("change",".cmb2_upload_file",function(){cmb.media.field=$(this).attr("id"),$id(cmb.media.field+"_id").val("")}).on("click",".cmb-multicheck-toggle",cmb.toggleCheckBoxes).on("click",".cmb2-upload-button",cmb.handleMedia).on("click",".cmb-attach-list li, .cmb2-media-status .img-status img, .cmb2-media-status .file-status > span",cmb.handleFileClick).on("click",".cmb2-remove-file-button",cmb.handleRemoveMedia).on("click",".cmb-add-group-row",cmb.addGroupRow).on("click",".cmb-add-row-button",cmb.addAjaxRow).on("click",".cmb-remove-group-row",cmb.removeGroupRow).on("click",".cmb-remove-row-button",cmb.removeAjaxRow).on("keyup paste focusout",".cmb2-oembed",cmb.maybeOembed).on("cmb2_remove_row",".cmb-repeatable-group",cmb.resetTitlesAndIterator).on("click",".cmbhandle, .cmbhandle + .cmbhandle-title",cmb.toggleHandle),$repeatGroup.length&&$repeatGroup.on("cmb2_add_row",cmb.emptyValue).filter(".sortable").each(function(){$(this).find(".cmb-remove-group-row-button").before('<a class="button-secondary cmb-shift-rows move-up alignleft" href="#"><span class="'+l10n.up_arrow_class+'"></span></a> <a class="button-secondary cmb-shift-rows move-down alignleft" href="#"><span class="'+l10n.down_arrow_class+'"></span></a>')}).on("click",".cmb-shift-rows",cmb.shiftRows),setTimeout(cmb.resizeoEmbeds,500),$(window).on("resize",cmb.resizeoEmbeds),cmb.trigger("cmb_init")},cmb.resetTitlesAndIterator=function(evt){evt.group&&$(".cmb-repeatable-group.repeatable").each(function(){var $table=$(this),groupTitle=$table.find(".cmb-add-group-row").data("grouptitle");$table.find(".cmb-repeatable-grouping").each(function(rowindex){var $row=$(this),$rowTitle=$row.find("h3.cmb-group-title");$row.data("iterator",rowindex),$rowTitle.length&&$rowTitle.text(groupTitle.replace("{#}",rowindex+1))})})},cmb.toggleHandle=function(evt){evt.preventDefault(),cmb.trigger("postbox-toggled",$(this).parent(".postbox").toggleClass("closed"))},cmb.toggleCheckBoxes=function(evt){evt.preventDefault();var $this=$(this),$multicheck=$this.closest(".cmb-td").find("input[type=checkbox]:not([disabled])");$this.data("checked")?($multicheck.prop("checked",!1),$this.data("checked",!1)):($multicheck.prop("checked",!0),$this.data("checked",!0))},cmb.handleMedia=function(evt){evt.preventDefault();var $el=$(this);cmb.attach_id=$el.hasClass("cmb2-upload-list")?!1:$el.closest(".cmb-td").find(".cmb2-upload-file-id").val(),cmb.attach_id="0"!==cmb.attach_id?cmb.attach_id:!1,cmb._handleMedia($el.prev("input.cmb2-upload-file").attr("id"),$el.hasClass("cmb2-upload-list"))},cmb.handleFileClick=function(evt){evt.preventDefault();var $el=$(this),$td=$el.closest(".cmb-td"),isList=$td.find(".cmb2-upload-button").hasClass("cmb2-upload-list");cmb.attach_id=isList?$el.find('input[type="hidden"]').data("id"):$td.find(".cmb2-upload-file-id").val(),cmb.attach_id&&cmb._handleMedia($td.find("input.cmb2-upload-file").attr("id"),isList,cmb.attach_id)},cmb._handleMedia=function(id,isList){if(wp){var media,handlers;if(handlers=cmb.mediaHandlers,media=cmb.media,media.field=id,media.$field=$id(media.field),media.fieldData=media.$field.data(),media.previewSize=media.fieldData.previewsize,media.sizeName=media.fieldData.sizename,media.fieldName=media.$field.attr("name"),media.isList=isList,id in media.frames)return media.frames[id].open();media.frames[id]=wp.media({title:cmb.metabox().find('label[for="'+id+'"]').text(),library:media.fieldData.queryargs||{},button:{text:l10n.strings[isList?"upload_files":"upload_file"]},multiple:isList?"add":!1}),media.frames[id].states.first().set("filterable","all"),cmb.trigger("cmb_media_modal_init",media),handlers.list=function(selection,returnIt){var attachmentHtml,fileGroup=[];return handlers.list.templates||(handlers.list.templates={image:wp.template("cmb2-list-image"),file:wp.template("cmb2-list-file")}),selection.each(function(attachment){attachmentHtml=handlers.getAttachmentHtml(attachment,"list"),fileGroup.push(attachmentHtml)}),returnIt?fileGroup:void media.$field.siblings(".cmb2-media-status").append(fileGroup)},handlers.single=function(selection){handlers.single.templates||(handlers.single.templates={image:wp.template("cmb2-single-image"),file:wp.template("cmb2-single-file")});var attachment=selection.first();media.$field.val(attachment.get("url")),$id(media.field+"_id").val(attachment.get("id"));var attachmentHtml=handlers.getAttachmentHtml(attachment,"single");media.$field.siblings(".cmb2-media-status").slideDown().html(attachmentHtml)},handlers.getAttachmentHtml=function(attachment,templatesId){var isImage="image"===attachment.get("type"),data=handlers.prepareData(attachment,isImage);return handlers[templatesId].templates[isImage?"image":"file"](data)},handlers.prepareData=function(data,image){return image&&handlers.getImageData.call(data,50),data=data.toJSON(),data.mediaField=media.field,data.mediaFieldName=media.fieldName,data.stringRemoveImage=l10n.strings.remove_image,data.stringFile=l10n.strings.file,data.stringDownload=l10n.strings.download,data.stringRemoveFile=l10n.strings.remove_file,data},handlers.getImageData=function(fallbackSize){var previewW=media.previewSize[0]||fallbackSize,previewH=media.previewSize[1]||fallbackSize,url=this.get("url"),width=this.get("width"),height=this.get("height"),sizes=this.get("sizes");return sizes&&(sizes[media.sizeName]?(url=sizes[media.sizeName].url,width=sizes[media.sizeName].width,height=sizes[media.sizeName].height):sizes.large&&(url=sizes.large.url,width=sizes.large.width,height=sizes.large.height)),width>previewW&&(height=Math.floor(previewW*height/width),width=previewW),height>previewH&&(width=Math.floor(previewH*width/height),height=previewH),width||(width=previewW),height||(height="svg"===this.get("filename").split(".").pop()?"100%":previewH),this.set("sizeUrl",url),this.set("sizeWidth",width),this.set("sizeHeight",height),this},handlers.selectFile=function(){var selection=media.frames[id].state().get("selection"),type=isList?"list":"single";cmb.attach_id&&isList?$('[data-id="'+cmb.attach_id+'"]').parents("li").replaceWith(handlers.list(selection,!0)):handlers[type](selection),cmb.trigger("cmb_media_modal_select",selection,media)},handlers.openModal=function(){var attach,selection=media.frames[id].state().get("selection");cmb.attach_id?(attach=wp.media.attachment(cmb.attach_id),attach.fetch(),selection.set(attach?[attach]:[])):selection.reset(),cmb.trigger("cmb_media_modal_open",selection,media)},media.frames[id].on("select",handlers.selectFile).on("open",handlers.openModal),media.frames[id].open()}},cmb.handleRemoveMedia=function(evt){evt.preventDefault();var $this=$(this);return $this.is(".cmb-attach-list .cmb2-remove-file-button")?($this.parents(".cmb2-media-item").remove(),!1):(cmb.media.field=$this.attr("rel"),cmb.metabox().find(document.getElementById(cmb.media.field)).val(""),cmb.metabox().find(document.getElementById(cmb.media.field+"_id")).val(""),$this.parents(".cmb2-media-status").html(""),!1)},cmb.cleanRow=function($row,prevNum,group){var $elements=$row.find(cmb.repeatUpdate);if(group){var $other=$row.find("[id]").not(cmb.repeatUpdate);$row.find(".cmb-repeat-table .cmb-repeat-row:not(:first-child)").remove(),$other.length&&$other.each(function(){var $_this=$(this),oldID=$_this.attr("id"),newID=oldID.replace("_"+prevNum,"_"+cmb.idNumber),$buttons=$row.find('[data-selector="'+oldID+'"]');$_this.attr("id",newID),$buttons.length&&$buttons.attr("data-selector",newID).data("selector",newID)})}return $elements.filter(":checked").removeAttr("checked"),$elements.find(":checked").removeAttr("checked"),$elements.filter(":selected").removeAttr("selected"),$elements.find(":selected").removeAttr("selected",!1),$row.find("h3.cmb-group-title").length&&$row.find("h3.cmb-group-title").text($row.data("title").replace("{#}",cmb.idNumber+1)),$elements.each(function(){cmb.elReplacements($(this),prevNum)}),cmb},cmb.elReplacements=function($newInput,prevNum){var newID,oldID,oldFor=$newInput.attr("for"),oldVal=$newInput.val(),type=$newInput.prop("type"),checkable="radio"===type||"checkbox"===type?oldVal:!1,attrs={};if(oldFor)attrs={"for":oldFor.replace("_"+prevNum,"_"+cmb.idNumber)};else{var oldName=$newInput.attr("name"),newName=oldName?oldName.replace("["+prevNum+"]","["+cmb.idNumber+"]"):"";oldID=$newInput.attr("id"),newID=oldID?oldID.replace("_"+prevNum,"_"+cmb.idNumber):"",attrs={id:newID,name:newName,"data-iterator":cmb.idNumber}}return"TEXTAREA"===$newInput.prop("tagName")&&$newInput.html(""),checkable&&$newInput.removeAttr("checked"),$newInput.removeClass("hasDatepicker").attr(attrs).val(checkable?checkable:""),$newInput},cmb.newRowHousekeeping=function($row){var $colorPicker=$row.find(".wp-picker-container"),$list=$row.find(".cmb2-media-status");return $colorPicker.length&&$colorPicker.each(function(){var $td=$(this).parent();$td.html($td.find('input[type="text"].cmb2-colorpicker').attr("style",""))}),$list.length&&$list.empty(),cmb},cmb.afterRowInsert=function($row){cmb.initPickers($row.find('input[type="text"].cmb2-timepicker'),$row.find('input[type="text"].cmb2-datepicker'),$row.find('input[type="text"].cmb2-colorpicker'))},cmb.updateNameAttr=function(){var $this=$(this),name=$this.attr("name");if("undefined"!=typeof name){var prevNum=parseInt($this.parents(".cmb-repeatable-grouping").data("iterator"),10),newNum=prevNum-1,$newName=name.replace("["+prevNum+"]","["+newNum+"]");$this.attr("name",$newName)}},cmb.emptyValue=function(evt,row){$(cmb.noEmpty,row).val("")},cmb.addGroupRow=function(evt){evt.preventDefault();var $this=$(this);cmb.triggerElement($this,"cmb2_add_group_row_start",$this);var $table=$id($this.data("selector")),$oldRow=$table.find(".cmb-repeatable-grouping").last(),prevNum=parseInt($oldRow.data("iterator"),10);cmb.idNumber=parseInt(prevNum,10)+1;for(var $row=$oldRow.clone();$table.find('.cmb-repeatable-grouping[data-iterator="'+cmb.idNumber+'"]').length>0;)cmb.idNumber++;cmb.newRowHousekeeping($row.data("title",$this.data("grouptitle"))).cleanRow($row,prevNum,!0),$row.find(".cmb-add-row-button").prop("disabled",!1);var $newRow=$('<div class="postbox cmb-row cmb-repeatable-grouping" data-iterator="'+cmb.idNumber+'">'+$row.html()+"</div>");$oldRow.after($newRow),cmb.afterRowInsert($newRow),cmb.triggerElement($table,{type:"cmb2_add_row",group:!0},$newRow)},cmb.addAjaxRow=function(evt){evt.preventDefault();var $this=$(this),$table=$id($this.data("selector")),$emptyrow=$table.find(".empty-row"),prevNum=parseInt($emptyrow.find("[data-iterator]").data("iterator"),10);cmb.idNumber=parseInt(prevNum,10)+1;var $row=$emptyrow.clone();cmb.newRowHousekeeping($row).cleanRow($row,prevNum),$emptyrow.removeClass("empty-row hidden").addClass("cmb-repeat-row"),$emptyrow.after($row),cmb.afterRowInsert($row),cmb.triggerElement($table,{type:"cmb2_add_row",group:!1},$row)},cmb.removeGroupRow=function(evt){evt.preventDefault();var $this=$(this),$table=$id($this.data("selector")),$parent=$this.parents(".cmb-repeatable-grouping"),number=$table.find(".cmb-repeatable-grouping").length;return 2>number?cmb.resetRow($parent.parents(".cmb-repeatable-group").find(".cmb-add-group-row"),$this):(cmb.triggerElement($table,"cmb2_remove_group_row_start",$this),$parent.nextAll(".cmb-repeatable-grouping").find(cmb.repeatEls).each(cmb.updateNameAttr),$parent.remove(),void cmb.triggerElement($table,{type:"cmb2_remove_row",group:!0}))},cmb.removeAjaxRow=function(evt){evt.preventDefault();var $this=$(this);if(!$this.hasClass("button-disabled")){var $parent=$this.parents(".cmb-row"),$table=$this.parents(".cmb-repeat-table"),number=$table.find(".cmb-row").length;if(2>=number)return cmb.resetRow($parent.find(".cmb-add-row-button"),$this);$parent.hasClass("empty-row")&&$parent.prev().addClass("empty-row").removeClass("cmb-repeat-row"),$this.parents(".cmb-repeat-table .cmb-row").remove(),cmb.triggerElement($table,{type:"cmb2_remove_row",group:!1})}},cmb.resetRow=function($addNewBtn,$removeBtn){$addNewBtn.trigger("click"),$removeBtn.trigger("click")},cmb.shiftRows=function(evt){evt.preventDefault();var $this=$(this),$from=$this.parents(".cmb-repeatable-grouping"),$goto=$this.hasClass("move-up")?$from.prev(".cmb-repeatable-grouping"):$from.next(".cmb-repeatable-grouping");if(cmb.triggerElement($this,"cmb2_shift_rows_enter",$this,$from,$goto),$goto.length){cmb.triggerElement($this,"cmb2_shift_rows_start",$this,$from,$goto);var inputVals=[];$from.find(cmb.repeatEls).each(function(){var val,$element=$(this),elType=$element.attr("type");val=$element.hasClass("cmb2-media-status")?$element.html():"checkbox"===elType||"radio"===elType?$element.is(":checked"):"select"===$element.prop("tagName")?$element.is(":selected"):$element.val(),inputVals.push({val:val,$:$element})}),$goto.find(cmb.repeatEls).each(function(index){var val,$element=$(this),elType=$element.attr("type");if($element.hasClass("cmb2-media-status")){var toRowId=$element.closest(".cmb-repeatable-grouping").attr("data-iterator"),fromRowId=inputVals[index].$.closest(".cmb-repeatable-grouping").attr("data-iterator");val=$element.html(),$element.html(inputVals[index].val),inputVals[index].$.html(val),inputVals[index].$.find("input").each(function(){var name=$(this).attr("name");name=name.replace("["+toRowId+"]","["+fromRowId+"]"),$(this).attr("name",name)}),$element.find("input").each(function(){var name=$(this).attr("name");name=name.replace("["+fromRowId+"]","["+toRowId+"]"),$(this).attr("name",name)})}else"checkbox"===elType?(inputVals[index].$.prop("checked",$element.is(":checked")),$element.prop("checked",inputVals[index].val)):"radio"===elType?($element.is(":checked")&&inputVals[index].$.attr("data-checked","true"),inputVals[index].$.is(":checked")&&$element.attr("data-checked","true")):"select"===$element.prop("tagName")?(inputVals[index].$.prop("selected",$element.is(":selected")),$element.prop("selected",inputVals[index].val)):(inputVals[index].$.val($element.val()),$element.val(inputVals[index].val))}),$from.find("input[data-checked=true]").prop("checked",!0).removeAttr("data-checked"),$goto.find("input[data-checked=true]").prop("checked",!0).removeAttr("data-checked"),$from.find('input[type="text"].cmb2-colorpicker').trigger("change"),$goto.find('input[type="text"].cmb2-colorpicker').trigger("change"),cmb.triggerElement($this,"cmb2_shift_rows_complete",$this,$from,$goto)}},cmb.initPickers=function($timePickers,$datePickers,$colorPickers){cmb.initDateTimePickers($timePickers,"timepicker","time_picker"),cmb.initDateTimePickers($datePickers,"datepicker","date_picker"),cmb.initColorPickers($colorPickers)},cmb.initDateTimePickers=function($selector,method,defaultKey){$selector.length&&$selector[method]("destroy").each(function(){var $this=$(this),fieldOpts=$this.data(method)||{},options=$.extend({},cmb.defaults[defaultKey],fieldOpts);$this[method](cmb.datePickerSetupOpts(fieldOpts,options,method))})},cmb.datePickerSetupOpts=function(fieldOpts,options,method){var existing=$.extend({},options);return options.beforeShow=function(input,inst){"timepicker"===method&&cmb.addTimePickerClasses(inst.dpDiv),$id("ui-datepicker-div").addClass("cmb2-element"),"function"==typeof existing.beforeShow&&existing.beforeShow(input,inst)},"timepicker"===method&&(options.onChangeMonthYear=function(year,month,inst,picker){cmb.addTimePickerClasses(inst.dpDiv),"function"==typeof existing.onChangeMonthYear&&existing.onChangeMonthYear(year,month,inst,picker)}),options.onClose=function(dateText,inst){$id("ui-datepicker-div").removeClass("cmb2-element").hide(),"function"==typeof existing.onClose&&existing.onClose(dateText,inst)},options},cmb.addTimePickerClasses=function($picker){var func=cmb.addTimePickerClasses;func.count=func.count||0,setTimeout(function(){$picker.find(".ui-priority-secondary").length?($picker.find(".ui-priority-secondary").addClass("button-secondary"),$picker.find(".ui-priority-primary").addClass("button-primary"),func.count=0):func.count<5&&(func.count++,func($picker))},10)},cmb.initColorPickers=function($selector){$selector.length&&("object"==typeof jQuery.wp&&"function"==typeof jQuery.wp.wpColorPicker?$selector.each(function(){var $this=$(this),fieldOpts=$this.data("colorpicker")||{};$this.wpColorPicker($.extend({},cmb.defaults.color_picker,fieldOpts))}):$selector.each(function(i){$(this).after('<div id="picker-'+i+'" style="z-index: 1000; background: #EEE; border: 1px solid #CCC; position: absolute; display: block;"></div>'),$id("picker-"+i).hide().farbtastic($(this))}).focus(function(){$(this).next().show()}).blur(function(){$(this).next().hide()}))},cmb.makeListSortable=function(){var $filelist=cmb.metabox().find(".cmb2-media-status.cmb-attach-list");$filelist.length&&$filelist.sortable({cursor:"move"}).disableSelection()},cmb.maybeOembed=function(evt){var $this=$(this),m={focusout:function(){setTimeout(function(){cmb.spinner(".cmb2-metabox",!0)},2e3)},keyup:function(){var betw=function(min,max){return evt.which<=max&&evt.which>=min};(betw(48,90)||betw(96,111)||betw(8,9)||187===evt.which||190===evt.which)&&cmb.doAjax($this,evt)},paste:function(){setTimeout(function(){cmb.doAjax($this)},100)}};m[evt.type]()},cmb.resizeoEmbeds=function(){cmb.metabox().each(function(){var $this=$(this),$tableWrap=$this.parents(".inside"),isSide=$this.parents(".inner-sidebar").length||$this.parents("#side-sortables").length,isSmall=isSide,isSmallest=!1;if(!$tableWrap.length)return!0;var tableW=$tableWrap.width();cmb.styleBreakPoint>tableW&&(isSmall=!0,isSmallest=cmb.styleBreakPoint-62>tableW),tableW=isSmall?tableW:Math.round(.82*$tableWrap.width()*.97);var newWidth=tableW-30;if(!isSmall||isSide||isSmallest||(newWidth-=75),newWidth>639)return!0;var $embeds=$this.find(".cmb-type-oembed .embed-status"),$children=$embeds.children().not(".cmb2-remove-wrapper");return $children.length?void $children.each(function(){var $this=$(this),iwidth=$this.width(),iheight=$this.height(),_newWidth=newWidth;$this.parents(".cmb-repeat-row").length&&!isSmall&&(_newWidth=newWidth-91,_newWidth=785>tableW?_newWidth-15:_newWidth);var newHeight=Math.round(_newWidth*iheight/iwidth);$this.width(_newWidth).height(newHeight)}):!0})},cmb.log=function(){l10n.script_debug&&console&&"function"==typeof console.log&&console.log.apply(console,arguments)},cmb.spinner=function($context,hide){var m=hide?"removeClass":"addClass";$(".cmb-spinner",$context)[m]("is-active")},cmb.doAjax=function($obj){var oembed_url=$obj.val();if(!(oembed_url.length<6)){var field_id=$obj.attr("id"),$context=$obj.closest(".cmb-td"),$embed_container=$context.find(".embed-status"),$embed_wrap=$context.find(".embed_wrap"),$child_el=$embed_container.find(":first-child"),oembed_width=$embed_container.length&&$child_el.length?$child_el.width():$obj.width();cmb.log("oembed_url",oembed_url,field_id),cmb.spinner($context),$embed_wrap.html(""),setTimeout(function(){$(".cmb2-oembed:focus").val()===oembed_url&&$.ajax({type:"post",dataType:"json",url:l10n.ajaxurl,data:{action:"cmb2_oembed_handler",oembed_url:oembed_url,oembed_width:oembed_width>300?oembed_width:300,field_id:field_id,object_id:$obj.data("objectid"),object_type:$obj.data("objecttype"),cmb2_ajax_nonce:l10n.ajax_nonce},success:function(response){cmb.log(response),cmb.spinner($context,!0),$embed_wrap.html(response.data)}})},500)}},cmb.trigger=function(evtName){var args=Array.prototype.slice.call(arguments,1);args.push(cmb),$document.trigger(evtName,args)},cmb.triggerElement=function($el,evtName){var args=Array.prototype.slice.call(arguments,2);args.push(cmb),$el.trigger(evtName,args)},$(cmb.init)}(window,document,jQuery,window.CMB2),window.CMB2=window.CMB2||{},window.CMB2.wysiwyg=window.CMB2.wysiwyg||{},function(window,document,$,wysiwyg,undefined){"use strict";function delayedInit(){0===toBeDestroyed.length?toBeInitialized.forEach(function(toInit){toBeInitialized.splice(toBeInitialized.indexOf(toInit),1),wysiwyg.init.apply(wysiwyg,toInit)}):window.setTimeout(delayedInit,100)}function delayedDestroy(){toBeDestroyed.forEach(function(id){toBeDestroyed.splice(toBeDestroyed.indexOf(id),1),wysiwyg.destroy(id)})}function getGroupData(data){var groupid=data.groupid,fieldid=data.fieldid;return all[groupid]&&all[groupid][fieldid]||(all[groupid]=all[groupid]||{},all[groupid][fieldid]={template:wp.template("cmb2-wysiwyg-"+groupid+"-"+fieldid),defaults:{mce:$.extend({},tinyMCEPreInit.mceInit["cmb2_i_"+groupid+fieldid]),qt:$.extend({},tinyMCEPreInit.qtInit["cmb2_i_"+groupid+fieldid])}},delete tinyMCEPreInit.mceInit["cmb2_i_"+groupid+fieldid],delete tinyMCEPreInit.qtInit["cmb2_i_"+groupid+fieldid]),all[groupid][fieldid]}function initOptions(options){var prop,newSettings,newQTS,nameRegex=new RegExp("cmb2_n_"+options.groupid+options.fieldid,"g"),idRegex=new RegExp("cmb2_i_"+options.groupid+options.fieldid,"g");if("undefined"==typeof tinyMCEPreInit.mceInit[options.id]){newSettings=$.extend({},options.defaults.mce);for(prop in newSettings)"string"==typeof newSettings[prop]&&(newSettings[prop]=newSettings[prop].replace(idRegex,options.id).replace(nameRegex,options.name));tinyMCEPreInit.mceInit[options.id]=newSettings}if("undefined"==typeof tinyMCEPreInit.qtInit[options.id]){newQTS=$.extend({},options.defaults.qt);for(prop in newQTS)"string"==typeof newQTS[prop]&&(newQTS[prop]=newQTS[prop].replace(idRegex,options.id).replace(nameRegex,options.name));tinyMCEPreInit.qtInit[options.id]=newQTS}}var toBeDestroyed=[],toBeInitialized=[],all=wysiwyg.all={};wysiwyg.initAll=function(){var $this,data,initiated;$(".cmb2-wysiwyg-placeholder").each(function(){$this=$(this),data=$this.data(),data.groupid&&(data.id=$this.attr("id"),data.name=$this.attr("name"),data.value=$this.val(),wysiwyg.init($this,data,!1),initiated=!0)}),!0===initiated&&("undefined"!=typeof window.QTags&&window.QTags._buttonsInit(),$(document).on("cmb2_add_row",wysiwyg.addRow).on("cmb2_remove_group_row_start",wysiwyg.destroyRowEditors).on("cmb2_shift_rows_start",wysiwyg.shiftStart).on("cmb2_shift_rows_complete",wysiwyg.shiftComplete))},wysiwyg.addRow=function(evt,$row){wysiwyg.initRow($row)},wysiwyg.destroyRowEditors=function(evt,$btn){wysiwyg.destroy($btn.parents(".cmb-repeatable-grouping").find(".wp-editor-area").attr("id"))},wysiwyg.shiftStart=function(evt,$btn,$from,$to){$from.add($to).find(".wp-editor-wrap textarea").each(function(){wysiwyg.destroy($(this).attr("id"))})},wysiwyg.shiftComplete=function(evt,$btn,$from,$to){$from.add($to).each(function(){wysiwyg.initRow($(this))})},wysiwyg.initRow=function($row){var $toReplace,data;$row.find(".cmb2-wysiwyg-inner-wrap").each(function(){$toReplace=$(this),data=$toReplace.data(),data.iterator=$row.data("iterator"),data.fieldid=data.id,data.id=data.groupid+"_"+data.iterator+"_"+data.fieldid,data.name=data.groupid+"["+data.iterator+"]["+data.fieldid+"]",data.value=$toReplace.find(".wp-editor-area").length?$toReplace.find(".wp-editor-area").val():"",0===toBeDestroyed.length?wysiwyg.init($toReplace,data):(toBeInitialized.push([$toReplace,data]),window.setTimeout(delayedInit,100))})},wysiwyg.init=function($toReplace,data,buttonsInit){return data.groupid?($.extend(data,getGroupData(data)),initOptions(data),$toReplace.replaceWith(data.template(data)),window.tinyMCE.init(tinyMCEPreInit.mceInit[data.id]),"function"==typeof window.quicktags&&window.quicktags(tinyMCEPreInit.qtInit[data.id]),$(document.getElementById(data.id)).parents(".wp-editor-wrap").removeClass("html-active").addClass("tmce-active"),void(!1!==buttonsInit&&"undefined"!=typeof window.QTags&&window.QTags._buttonsInit())):!1},wysiwyg.destroy=function(id){var editor=tinyMCE.get(id);null!==editor&&"undefined"!=typeof editor?(editor.destroy(),"undefined"==typeof tinyMCEPreInit.mceInit[id]&&delete tinyMCEPreInit.mceInit[id],"undefined"==typeof tinyMCEPreInit.qtInit[id]&&delete tinyMCEPreInit.qtInit[id]):-1===toBeDestroyed.indexOf(id)&&(toBeDestroyed.push(id),window.setTimeout(delayedDestroy,100))},$(document).on("cmb_init",wysiwyg.initAll)}(window,document,jQuery,window.CMB2.wysiwyg);
1
+ window.CMB2=window.CMB2||{},function(window,document,$,cmb,undefined){"use strict";var $document,l10n=window.cmb2_l10,setTimeout=window.setTimeout,$id=function(selector){return $(document.getElementById(selector))},defaults={idNumber:!1,repeatEls:'input:not([type="button"],[id^=filelist]),select,textarea,.cmb2-media-status',noEmpty:'input:not([type="button"]):not([type="radio"]):not([type="checkbox"]),textarea',repeatUpdate:'input:not([type="button"]),select,textarea,label',styleBreakPoint:450,mediaHandlers:{},defaults:{time_picker:l10n.defaults.time_picker,date_picker:l10n.defaults.date_picker,color_picker:l10n.defaults.color_picker||{}},media:{frames:{}}};cmb.metabox=function(){return cmb.$metabox?cmb.$metabox:(cmb.$metabox=$(".cmb2-wrap > .cmb2-metabox"),cmb.$metabox)},cmb.init=function(){$document=$(document),$.extend(cmb,defaults),cmb.trigger("cmb_pre_init");var $metabox=cmb.metabox(),$repeatGroup=$metabox.find(".cmb-repeatable-group");cmb.initPickers($metabox.find('input[type="text"].cmb2-timepicker'),$metabox.find('input[type="text"].cmb2-datepicker'),$metabox.find('input[type="text"].cmb2-colorpicker')),$('<p><span class="button-secondary cmb-multicheck-toggle">'+l10n.strings.check_toggle+"</span></p>").insertBefore(".cmb2-checkbox-list:not(.no-select-all)"),cmb.makeListSortable(),$metabox.on("change",".cmb2_upload_file",function(){cmb.media.field=$(this).attr("id"),$id(cmb.media.field+"_id").val("")}).on("click",".cmb-multicheck-toggle",cmb.toggleCheckBoxes).on("click",".cmb2-upload-button",cmb.handleMedia).on("click",".cmb-attach-list li, .cmb2-media-status .img-status img, .cmb2-media-status .file-status > span",cmb.handleFileClick).on("click",".cmb2-remove-file-button",cmb.handleRemoveMedia).on("click",".cmb-add-group-row",cmb.addGroupRow).on("click",".cmb-add-row-button",cmb.addAjaxRow).on("click",".cmb-remove-group-row",cmb.removeGroupRow).on("click",".cmb-remove-row-button",cmb.removeAjaxRow).on("keyup paste focusout",".cmb2-oembed",cmb.maybeOembed).on("cmb2_remove_row",".cmb-repeatable-group",cmb.resetTitlesAndIterator).on("click",".cmbhandle, .cmbhandle + .cmbhandle-title",cmb.toggleHandle),$repeatGroup.length&&$repeatGroup.on("cmb2_add_row",cmb.emptyValue).filter(".sortable").each(function(){$(this).find(".cmb-remove-group-row-button").before('<a class="button-secondary cmb-shift-rows move-up alignleft" href="#"><span class="'+l10n.up_arrow_class+'"></span></a> <a class="button-secondary cmb-shift-rows move-down alignleft" href="#"><span class="'+l10n.down_arrow_class+'"></span></a>')}).on("click",".cmb-shift-rows",cmb.shiftRows),setTimeout(cmb.resizeoEmbeds,500),$(window).on("resize",cmb.resizeoEmbeds),cmb.trigger("cmb_init")},cmb.resetTitlesAndIterator=function(evt){evt.group&&$(".cmb-repeatable-group.repeatable").each(function(){var $table=$(this),groupTitle=$table.find(".cmb-add-group-row").data("grouptitle");$table.find(".cmb-repeatable-grouping").each(function(rowindex){var $row=$(this),$rowTitle=$row.find("h3.cmb-group-title");$row.data("iterator",rowindex),$rowTitle.length&&$rowTitle.text(groupTitle.replace("{#}",rowindex+1))})})},cmb.toggleHandle=function(evt){evt.preventDefault(),cmb.trigger("postbox-toggled",$(this).parent(".postbox").toggleClass("closed"))},cmb.toggleCheckBoxes=function(evt){evt.preventDefault();var $this=$(this),$multicheck=$this.closest(".cmb-td").find("input[type=checkbox]:not([disabled])");$this.data("checked")?($multicheck.prop("checked",!1),$this.data("checked",!1)):($multicheck.prop("checked",!0),$this.data("checked",!0))},cmb.handleMedia=function(evt){evt.preventDefault();var $el=$(this);cmb.attach_id=$el.hasClass("cmb2-upload-list")?!1:$el.closest(".cmb-td").find(".cmb2-upload-file-id").val(),cmb.attach_id="0"!==cmb.attach_id?cmb.attach_id:!1,cmb._handleMedia($el.prev("input.cmb2-upload-file").attr("id"),$el.hasClass("cmb2-upload-list"))},cmb.handleFileClick=function(evt){evt.preventDefault();var $el=$(this),$td=$el.closest(".cmb-td"),isList=$td.find(".cmb2-upload-button").hasClass("cmb2-upload-list");cmb.attach_id=isList?$el.find('input[type="hidden"]').data("id"):$td.find(".cmb2-upload-file-id").val(),cmb.attach_id&&cmb._handleMedia($td.find("input.cmb2-upload-file").attr("id"),isList,cmb.attach_id)},cmb._handleMedia=function(id,isList){if(wp){var media,handlers;if(handlers=cmb.mediaHandlers,media=cmb.media,media.field=id,media.$field=$id(media.field),media.fieldData=media.$field.data(),media.previewSize=media.fieldData.previewsize,media.sizeName=media.fieldData.sizename,media.fieldName=media.$field.attr("name"),media.isList=isList,id in media.frames)return media.frames[id].open();media.frames[id]=wp.media({title:cmb.metabox().find('label[for="'+id+'"]').text(),library:media.fieldData.queryargs||{},button:{text:l10n.strings[isList?"upload_files":"upload_file"]},multiple:isList?"add":!1}),media.frames[id].states.first().set("filterable","all"),cmb.trigger("cmb_media_modal_init",media),handlers.list=function(selection,returnIt){var attachmentHtml,fileGroup=[];return handlers.list.templates||(handlers.list.templates={image:wp.template("cmb2-list-image"),file:wp.template("cmb2-list-file")}),selection.each(function(attachment){attachmentHtml=handlers.getAttachmentHtml(attachment,"list"),fileGroup.push(attachmentHtml)}),returnIt?fileGroup:void media.$field.siblings(".cmb2-media-status").append(fileGroup)},handlers.single=function(selection){handlers.single.templates||(handlers.single.templates={image:wp.template("cmb2-single-image"),file:wp.template("cmb2-single-file")});var attachment=selection.first();media.$field.val(attachment.get("url")),$id(media.field+"_id").val(attachment.get("id"));var attachmentHtml=handlers.getAttachmentHtml(attachment,"single");media.$field.siblings(".cmb2-media-status").slideDown().html(attachmentHtml)},handlers.getAttachmentHtml=function(attachment,templatesId){var isImage="image"===attachment.get("type"),data=handlers.prepareData(attachment,isImage);return handlers[templatesId].templates[isImage?"image":"file"](data)},handlers.prepareData=function(data,image){return image&&handlers.getImageData.call(data,50),data=data.toJSON(),data.mediaField=media.field,data.mediaFieldName=media.fieldName,data.stringRemoveImage=l10n.strings.remove_image,data.stringFile=l10n.strings.file,data.stringDownload=l10n.strings.download,data.stringRemoveFile=l10n.strings.remove_file,data},handlers.getImageData=function(fallbackSize){var previewW=media.previewSize[0]||fallbackSize,previewH=media.previewSize[1]||fallbackSize,url=this.get("url"),width=this.get("width"),height=this.get("height"),sizes=this.get("sizes");return sizes&&(sizes[media.sizeName]?(url=sizes[media.sizeName].url,width=sizes[media.sizeName].width,height=sizes[media.sizeName].height):sizes.large&&(url=sizes.large.url,width=sizes.large.width,height=sizes.large.height)),width>previewW&&(height=Math.floor(previewW*height/width),width=previewW),height>previewH&&(width=Math.floor(previewH*width/height),height=previewH),width||(width=previewW),height||(height="svg"===this.get("filename").split(".").pop()?"100%":previewH),this.set("sizeUrl",url),this.set("sizeWidth",width),this.set("sizeHeight",height),this},handlers.selectFile=function(){var selection=media.frames[id].state().get("selection"),type=isList?"list":"single";cmb.attach_id&&isList?$('[data-id="'+cmb.attach_id+'"]').parents("li").replaceWith(handlers.list(selection,!0)):handlers[type](selection),cmb.trigger("cmb_media_modal_select",selection,media)},handlers.openModal=function(){var attach,selection=media.frames[id].state().get("selection");cmb.attach_id?(attach=wp.media.attachment(cmb.attach_id),attach.fetch(),selection.set(attach?[attach]:[])):selection.reset(),cmb.trigger("cmb_media_modal_open",selection,media)},media.frames[id].on("select",handlers.selectFile).on("open",handlers.openModal),media.frames[id].open()}},cmb.handleRemoveMedia=function(evt){evt.preventDefault();var $this=$(this);return $this.is(".cmb-attach-list .cmb2-remove-file-button")?($this.parents(".cmb2-media-item").remove(),!1):(cmb.media.field=$this.attr("rel"),cmb.metabox().find(document.getElementById(cmb.media.field)).val(""),cmb.metabox().find(document.getElementById(cmb.media.field+"_id")).val(""),$this.parents(".cmb2-media-status").html(""),!1)},cmb.cleanRow=function($row,prevNum,group){var $elements=$row.find(cmb.repeatUpdate);if(group){var $other=$row.find("[id]").not(cmb.repeatUpdate);$row.find(".cmb-repeat-table .cmb-repeat-row:not(:first-child)").remove(),$other.length&&$other.each(function(){var $_this=$(this),oldID=$_this.attr("id"),newID=oldID.replace("_"+prevNum,"_"+cmb.idNumber),$buttons=$row.find('[data-selector="'+oldID+'"]');$_this.attr("id",newID),$buttons.length&&$buttons.attr("data-selector",newID).data("selector",newID)})}return $elements.filter(":checked").removeAttr("checked"),$elements.find(":checked").removeAttr("checked"),$elements.filter(":selected").removeAttr("selected"),$elements.find(":selected").removeAttr("selected",!1),$row.find("h3.cmb-group-title").length&&$row.find("h3.cmb-group-title").text($row.data("title").replace("{#}",cmb.idNumber+1)),$elements.each(function(){cmb.elReplacements($(this),prevNum,group)}),cmb},cmb.elReplacements=function($newInput,prevNum,group){var newID,oldID,oldFor=$newInput.attr("for"),oldVal=$newInput.val(),type=$newInput.prop("type"),checkable="radio"===type||"checkbox"===type?oldVal:!1,attrs={};if(oldFor)attrs={"for":oldFor.replace("_"+prevNum,"_"+cmb.idNumber)};else{var newName,oldName=$newInput.attr("name");oldID=$newInput.attr("id"),group?(newName=oldName?oldName.replace("["+prevNum+"][","["+cmb.idNumber+"]["):"",newID=oldID?oldID.replace("_"+prevNum+"_","_"+cmb.idNumber+"_"):""):(newName=oldName?cmb.replaceLast(oldName,"["+prevNum+"]","["+cmb.idNumber+"]"):"",newID=oldID?cmb.replaceLast(oldID,"_"+prevNum,"_"+cmb.idNumber):""),attrs={id:newID,name:newName}}return"TEXTAREA"===$newInput.prop("tagName")&&$newInput.html(""),checkable&&$newInput.removeAttr("checked"),!group&&$newInput[0].hasAttribute("data-iterator")&&(attrs["data-iterator"]=cmb.idNumber),$newInput.removeClass("hasDatepicker").attr(attrs).val(checkable?checkable:""),$newInput},cmb.newRowHousekeeping=function($row){var $colorPicker=$row.find(".wp-picker-container"),$list=$row.find(".cmb2-media-status");return $colorPicker.length&&$colorPicker.each(function(){var $td=$(this).parent();$td.html($td.find('input[type="text"].cmb2-colorpicker').attr("style",""))}),$list.length&&$list.empty(),cmb},cmb.afterRowInsert=function($row){cmb.initPickers($row.find('input[type="text"].cmb2-timepicker'),$row.find('input[type="text"].cmb2-datepicker'),$row.find('input[type="text"].cmb2-colorpicker'))},cmb.updateNameAttr=function(){var $this=$(this),name=$this.attr("name");if("undefined"!=typeof name){var prevNum=parseInt($this.parents(".cmb-repeatable-grouping").data("iterator"),10),newNum=prevNum-1,$newName=name.replace("["+prevNum+"]","["+newNum+"]");$this.attr("name",$newName)}},cmb.emptyValue=function(evt,row){$(cmb.noEmpty,row).val("")},cmb.addGroupRow=function(evt){evt.preventDefault();var $this=$(this);cmb.triggerElement($this,"cmb2_add_group_row_start",$this);var $table=$id($this.data("selector")),$oldRow=$table.find(".cmb-repeatable-grouping").last(),prevNum=parseInt($oldRow.data("iterator"),10);cmb.idNumber=parseInt(prevNum,10)+1;for(var $row=$oldRow.clone();$table.find('.cmb-repeatable-grouping[data-iterator="'+cmb.idNumber+'"]').length>0;)cmb.idNumber++;cmb.newRowHousekeeping($row.data("title",$this.data("grouptitle"))).cleanRow($row,prevNum,!0),$row.find(".cmb-add-row-button").prop("disabled",!1);var $newRow=$('<div class="postbox cmb-row cmb-repeatable-grouping" data-iterator="'+cmb.idNumber+'">'+$row.html()+"</div>");$oldRow.after($newRow),cmb.afterRowInsert($newRow),cmb.triggerElement($table,{type:"cmb2_add_row",group:!0},$newRow)},cmb.addAjaxRow=function(evt){evt.preventDefault();var $this=$(this),$table=$id($this.data("selector")),$emptyrow=$table.find(".empty-row"),prevNum=parseInt($emptyrow.find("[data-iterator]").data("iterator"),10);cmb.idNumber=parseInt(prevNum,10)+1;var $row=$emptyrow.clone();cmb.newRowHousekeeping($row).cleanRow($row,prevNum),$emptyrow.removeClass("empty-row hidden").addClass("cmb-repeat-row"),$emptyrow.after($row),cmb.afterRowInsert($row),cmb.triggerElement($table,{type:"cmb2_add_row",group:!1},$row)},cmb.removeGroupRow=function(evt){evt.preventDefault();var $this=$(this),$table=$id($this.data("selector")),$parent=$this.parents(".cmb-repeatable-grouping"),number=$table.find(".cmb-repeatable-grouping").length;return 2>number?cmb.resetRow($parent.parents(".cmb-repeatable-group").find(".cmb-add-group-row"),$this):(cmb.triggerElement($table,"cmb2_remove_group_row_start",$this),$parent.nextAll(".cmb-repeatable-grouping").find(cmb.repeatEls).each(cmb.updateNameAttr),$parent.remove(),void cmb.triggerElement($table,{type:"cmb2_remove_row",group:!0}))},cmb.removeAjaxRow=function(evt){evt.preventDefault();var $this=$(this);if(!$this.hasClass("button-disabled")){var $parent=$this.parents(".cmb-row"),$table=$this.parents(".cmb-repeat-table"),number=$table.find(".cmb-row").length;if(2>=number)return cmb.resetRow($parent.find(".cmb-add-row-button"),$this);$parent.hasClass("empty-row")&&$parent.prev().addClass("empty-row").removeClass("cmb-repeat-row"),$this.parents(".cmb-repeat-table .cmb-row").remove(),cmb.triggerElement($table,{type:"cmb2_remove_row",group:!1})}},cmb.resetRow=function($addNewBtn,$removeBtn){$addNewBtn.trigger("click"),$removeBtn.trigger("click")},cmb.shiftRows=function(evt){evt.preventDefault();var $this=$(this),$from=$this.parents(".cmb-repeatable-grouping"),$goto=$this.hasClass("move-up")?$from.prev(".cmb-repeatable-grouping"):$from.next(".cmb-repeatable-grouping");if(cmb.triggerElement($this,"cmb2_shift_rows_enter",$this,$from,$goto),$goto.length){cmb.triggerElement($this,"cmb2_shift_rows_start",$this,$from,$goto);var inputVals=[];$from.find(cmb.repeatEls).each(function(){var val,$element=$(this),elType=$element.attr("type");val=$element.hasClass("cmb2-media-status")?$element.html():"checkbox"===elType||"radio"===elType?$element.is(":checked"):"select"===$element.prop("tagName")?$element.is(":selected"):$element.val(),inputVals.push({val:val,$:$element})}),$goto.find(cmb.repeatEls).each(function(index){var val,$element=$(this),elType=$element.attr("type");if($element.hasClass("cmb2-media-status")){var toRowId=$element.closest(".cmb-repeatable-grouping").attr("data-iterator"),fromRowId=inputVals[index].$.closest(".cmb-repeatable-grouping").attr("data-iterator");val=$element.html(),$element.html(inputVals[index].val),inputVals[index].$.html(val),inputVals[index].$.find("input").each(function(){var name=$(this).attr("name");name=name.replace("["+toRowId+"]","["+fromRowId+"]"),$(this).attr("name",name)}),$element.find("input").each(function(){var name=$(this).attr("name");name=name.replace("["+fromRowId+"]","["+toRowId+"]"),$(this).attr("name",name)})}else"checkbox"===elType?(inputVals[index].$.prop("checked",$element.is(":checked")),$element.prop("checked",inputVals[index].val)):"radio"===elType?($element.is(":checked")&&inputVals[index].$.attr("data-checked","true"),inputVals[index].$.is(":checked")&&$element.attr("data-checked","true")):"select"===$element.prop("tagName")?(inputVals[index].$.prop("selected",$element.is(":selected")),$element.prop("selected",inputVals[index].val)):(inputVals[index].$.val($element.val()),$element.val(inputVals[index].val))}),$from.find("input[data-checked=true]").prop("checked",!0).removeAttr("data-checked"),$goto.find("input[data-checked=true]").prop("checked",!0).removeAttr("data-checked"),$from.find('input[type="text"].cmb2-colorpicker').trigger("change"),$goto.find('input[type="text"].cmb2-colorpicker').trigger("change"),cmb.triggerElement($this,"cmb2_shift_rows_complete",$this,$from,$goto)}},cmb.initPickers=function($timePickers,$datePickers,$colorPickers){cmb.initDateTimePickers($timePickers,"timepicker","time_picker"),cmb.initDateTimePickers($datePickers,"datepicker","date_picker"),cmb.initColorPickers($colorPickers)},cmb.initDateTimePickers=function($selector,method,defaultKey){$selector.length&&$selector[method]("destroy").each(function(){var $this=$(this),fieldOpts=$this.data(method)||{},options=$.extend({},cmb.defaults[defaultKey],fieldOpts);$this[method](cmb.datePickerSetupOpts(fieldOpts,options,method))})},cmb.datePickerSetupOpts=function(fieldOpts,options,method){var existing=$.extend({},options);return options.beforeShow=function(input,inst){"timepicker"===method&&cmb.addTimePickerClasses(inst.dpDiv),$id("ui-datepicker-div").addClass("cmb2-element"),"function"==typeof existing.beforeShow&&existing.beforeShow(input,inst)},"timepicker"===method&&(options.onChangeMonthYear=function(year,month,inst,picker){cmb.addTimePickerClasses(inst.dpDiv),"function"==typeof existing.onChangeMonthYear&&existing.onChangeMonthYear(year,month,inst,picker)}),options.onClose=function(dateText,inst){var $picker=$id("ui-datepicker-div").removeClass("cmb2-element").hide();"timepicker"!==method||$(inst.input).val()||inst.input.val($picker.find(".ui_tpicker_time").text()),"function"==typeof existing.onClose&&existing.onClose(dateText,inst)},options},cmb.addTimePickerClasses=function($picker){var func=cmb.addTimePickerClasses;func.count=func.count||0,setTimeout(function(){$picker.find(".ui-priority-secondary").length?($picker.find(".ui-priority-secondary").addClass("button-secondary"),$picker.find(".ui-priority-primary").addClass("button-primary"),func.count=0):func.count<5&&(func.count++,func($picker))},10)},cmb.initColorPickers=function($selector){$selector.length&&("object"==typeof jQuery.wp&&"function"==typeof jQuery.wp.wpColorPicker?$selector.each(function(){var $this=$(this),fieldOpts=$this.data("colorpicker")||{};$this.wpColorPicker($.extend({},cmb.defaults.color_picker,fieldOpts))}):$selector.each(function(i){$(this).after('<div id="picker-'+i+'" style="z-index: 1000; background: #EEE; border: 1px solid #CCC; position: absolute; display: block;"></div>'),$id("picker-"+i).hide().farbtastic($(this))}).focus(function(){$(this).next().show()}).blur(function(){$(this).next().hide()}))},cmb.makeListSortable=function(){var $filelist=cmb.metabox().find(".cmb2-media-status.cmb-attach-list");$filelist.length&&$filelist.sortable({cursor:"move"}).disableSelection()},cmb.maybeOembed=function(evt){var $this=$(this),m={focusout:function(){setTimeout(function(){cmb.spinner(".cmb2-metabox",!0)},2e3)},keyup:function(){var betw=function(min,max){return evt.which<=max&&evt.which>=min};(betw(48,90)||betw(96,111)||betw(8,9)||187===evt.which||190===evt.which)&&cmb.doAjax($this,evt)},paste:function(){setTimeout(function(){cmb.doAjax($this)},100)}};m[evt.type]()},cmb.resizeoEmbeds=function(){cmb.metabox().each(function(){var $this=$(this),$tableWrap=$this.parents(".inside"),isSide=$this.parents(".inner-sidebar").length||$this.parents("#side-sortables").length,isSmall=isSide,isSmallest=!1;if(!$tableWrap.length)return!0;var tableW=$tableWrap.width();cmb.styleBreakPoint>tableW&&(isSmall=!0,isSmallest=cmb.styleBreakPoint-62>tableW),tableW=isSmall?tableW:Math.round(.82*$tableWrap.width()*.97);var newWidth=tableW-30;if(!isSmall||isSide||isSmallest||(newWidth-=75),newWidth>639)return!0;var $embeds=$this.find(".cmb-type-oembed .embed-status"),$children=$embeds.children().not(".cmb2-remove-wrapper");return $children.length?void $children.each(function(){var $this=$(this),iwidth=$this.width(),iheight=$this.height(),_newWidth=newWidth;$this.parents(".cmb-repeat-row").length&&!isSmall&&(_newWidth=newWidth-91,_newWidth=785>tableW?_newWidth-15:_newWidth);var newHeight=Math.round(_newWidth*iheight/iwidth);$this.width(_newWidth).height(newHeight)}):!0})},cmb.log=function(){l10n.script_debug&&console&&"function"==typeof console.log&&console.log.apply(console,arguments)},cmb.spinner=function($context,hide){var m=hide?"removeClass":"addClass";$(".cmb-spinner",$context)[m]("is-active")},cmb.doAjax=function($obj){var oembed_url=$obj.val();if(!(oembed_url.length<6)){var field_id=$obj.attr("id"),$context=$obj.closest(".cmb-td"),$embed_container=$context.find(".embed-status"),$embed_wrap=$context.find(".embed_wrap"),$child_el=$embed_container.find(":first-child"),oembed_width=$embed_container.length&&$child_el.length?$child_el.width():$obj.width();cmb.log("oembed_url",oembed_url,field_id),cmb.spinner($context),$embed_wrap.html(""),setTimeout(function(){$(".cmb2-oembed:focus").val()===oembed_url&&$.ajax({type:"post",dataType:"json",url:l10n.ajaxurl,data:{action:"cmb2_oembed_handler",oembed_url:oembed_url,oembed_width:oembed_width>300?oembed_width:300,field_id:field_id,object_id:$obj.data("objectid"),object_type:$obj.data("objecttype"),cmb2_ajax_nonce:l10n.ajax_nonce},success:function(response){cmb.log(response),cmb.spinner($context,!0),$embed_wrap.html(response.data)}})},500)}},cmb.trigger=function(evtName){var args=Array.prototype.slice.call(arguments,1);args.push(cmb),$document.trigger(evtName,args)},cmb.triggerElement=function($el,evtName){var args=Array.prototype.slice.call(arguments,2);args.push(cmb),$el.trigger(evtName,args)},cmb.replaceLast=function(string,search,replace){var n=string.lastIndexOf(search);return string.slice(0,n)+string.slice(n).replace(search,replace)},$(cmb.init)}(window,document,jQuery,window.CMB2),window.CMB2=window.CMB2||{},window.CMB2.wysiwyg=window.CMB2.wysiwyg||{},function(window,document,$,wysiwyg,undefined){"use strict";function delayedInit(){0===toBeDestroyed.length?toBeInitialized.forEach(function(toInit){toBeInitialized.splice(toBeInitialized.indexOf(toInit),1),wysiwyg.init.apply(wysiwyg,toInit)}):window.setTimeout(delayedInit,100)}function delayedDestroy(){toBeDestroyed.forEach(function(id){toBeDestroyed.splice(toBeDestroyed.indexOf(id),1),wysiwyg.destroy(id)})}function getGroupData(data){var groupid=data.groupid,fieldid=data.fieldid;return all[groupid]&&all[groupid][fieldid]||(all[groupid]=all[groupid]||{},all[groupid][fieldid]={template:wp.template("cmb2-wysiwyg-"+groupid+"-"+fieldid),defaults:{mce:$.extend({},tinyMCEPreInit.mceInit["cmb2_i_"+groupid+fieldid]),qt:$.extend({},tinyMCEPreInit.qtInit["cmb2_i_"+groupid+fieldid])}},delete tinyMCEPreInit.mceInit["cmb2_i_"+groupid+fieldid],delete tinyMCEPreInit.qtInit["cmb2_i_"+groupid+fieldid]),all[groupid][fieldid]}function initOptions(options){var prop,newSettings,newQTS,nameRegex=new RegExp("cmb2_n_"+options.groupid+options.fieldid,"g"),idRegex=new RegExp("cmb2_i_"+options.groupid+options.fieldid,"g");if("undefined"==typeof tinyMCEPreInit.mceInit[options.id]){newSettings=$.extend({},options.defaults.mce);for(prop in newSettings)"string"==typeof newSettings[prop]&&(newSettings[prop]=newSettings[prop].replace(idRegex,options.id).replace(nameRegex,options.name));tinyMCEPreInit.mceInit[options.id]=newSettings}if("undefined"==typeof tinyMCEPreInit.qtInit[options.id]){newQTS=$.extend({},options.defaults.qt);for(prop in newQTS)"string"==typeof newQTS[prop]&&(newQTS[prop]=newQTS[prop].replace(idRegex,options.id).replace(nameRegex,options.name));tinyMCEPreInit.qtInit[options.id]=newQTS}}var toBeDestroyed=[],toBeInitialized=[],all=wysiwyg.all={};wysiwyg.initAll=function(){var $this,data,initiated;$(".cmb2-wysiwyg-placeholder").each(function(){$this=$(this),data=$this.data(),data.groupid&&(data.id=$this.attr("id"),data.name=$this.attr("name"),data.value=$this.val(),wysiwyg.init($this,data,!1),initiated=!0)}),!0===initiated&&("undefined"!=typeof window.QTags&&window.QTags._buttonsInit(),$(document).on("cmb2_add_row",wysiwyg.addRow).on("cmb2_remove_group_row_start",wysiwyg.destroyRowEditors).on("cmb2_shift_rows_start",wysiwyg.shiftStart).on("cmb2_shift_rows_complete",wysiwyg.shiftComplete))},wysiwyg.addRow=function(evt,$row){wysiwyg.initRow($row)},wysiwyg.destroyRowEditors=function(evt,$btn){wysiwyg.destroy($btn.parents(".cmb-repeatable-grouping").find(".wp-editor-area").attr("id"))},wysiwyg.shiftStart=function(evt,$btn,$from,$to){$from.add($to).find(".wp-editor-wrap textarea").each(function(){wysiwyg.destroy($(this).attr("id"))})},wysiwyg.shiftComplete=function(evt,$btn,$from,$to){$from.add($to).each(function(){wysiwyg.initRow($(this))})},wysiwyg.initRow=function($row){var $toReplace,data;$row.find(".cmb2-wysiwyg-inner-wrap").each(function(){$toReplace=$(this),data=$toReplace.data(),data.iterator=$row.data("iterator"),data.fieldid=data.id,data.id=data.groupid+"_"+data.iterator+"_"+data.fieldid,data.name=data.groupid+"["+data.iterator+"]["+data.fieldid+"]",data.value=$toReplace.find(".wp-editor-area").length?$toReplace.find(".wp-editor-area").val():"",0===toBeDestroyed.length?wysiwyg.init($toReplace,data):(toBeInitialized.push([$toReplace,data]),window.setTimeout(delayedInit,100))})},wysiwyg.init=function($toReplace,data,buttonsInit){if(!data.groupid)return!1;var mceActive=window.cmb2_l10.user_can_richedit&&window.tinyMCE,qtActive="function"==typeof window.quicktags;$.extend(data,getGroupData(data)),initOptions(data),$toReplace.replaceWith(data.template(data)),mceActive&&window.tinyMCE.init(tinyMCEPreInit.mceInit[data.id]),qtActive&&window.quicktags(tinyMCEPreInit.qtInit[data.id]),mceActive&&$(document.getElementById(data.id)).parents(".wp-editor-wrap").removeClass("html-active").addClass("tmce-active"),!1!==buttonsInit&&"undefined"!=typeof window.QTags&&window.QTags._buttonsInit()},wysiwyg.destroy=function(id){if(window.cmb2_l10.user_can_richedit&&window.tinyMCE){var editor=tinyMCE.get(id);null!==editor&&"undefined"!=typeof editor?(editor.destroy(),"undefined"==typeof tinyMCEPreInit.mceInit[id]&&delete tinyMCEPreInit.mceInit[id],"undefined"==typeof tinyMCEPreInit.qtInit[id]&&delete tinyMCEPreInit.qtInit[id]):-1===toBeDestroyed.indexOf(id)&&(toBeDestroyed.push(id),window.setTimeout(delayedDestroy,100))}},$(document).on("cmb_init",wysiwyg.initAll)}(window,document,jQuery,window.CMB2.wysiwyg);
includes/vendor/cmb2/js/wp-color-picker-alpha.js ADDED
@@ -0,0 +1,496 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**!
2
+ * wp-color-picker-alpha
3
+ *
4
+ * Overwrite Automattic Iris for enabled Alpha Channel in wpColorPicker
5
+ * Only run in input and is defined data alpha in true
6
+ *
7
+ * Version: 2.1.3
8
+ * https://github.com/kallookoo/wp-color-picker-alpha
9
+ * Licensed under the GPLv2 license.
10
+ */
11
+ ( function( $ ) {
12
+ // Prevent double-init.
13
+ if ( $.wp.wpColorPicker.prototype._hasAlpha ) {
14
+ return;
15
+ }
16
+
17
+ // Variable for some backgrounds ( grid )
18
+ var image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==',
19
+ // html stuff for wpColorPicker copy of the original color-picker.js
20
+ _after = '<div class="wp-picker-holder" />',
21
+ _wrap = '<div class="wp-picker-container" />',
22
+ _button = '<input type="button" class="button button-small" />',
23
+ // Prevent CSS issues in < WordPress 4.9
24
+ _deprecated = ( wpColorPickerL10n.current !== undefined );
25
+ // Declare some global variables when is deprecated or not
26
+ if ( _deprecated ) {
27
+ var _before = '<a tabindex="0" class="wp-color-result" />';
28
+ } else {
29
+ var _before = '<button type="button" class="button wp-color-result" aria-expanded="false"><span class="wp-color-result-text"></span></button>',
30
+ _wrappingLabel = '<label></label>',
31
+ _wrappingLabelText = '<span class="screen-reader-text"></span>';
32
+ }
33
+ /**
34
+ * Overwrite Color
35
+ * for enable support rbga
36
+ */
37
+ Color.fn.toString = function() {
38
+ if ( this._alpha < 1 )
39
+ return this.toCSS( 'rgba', this._alpha ).replace( /\s+/g, '' );
40
+
41
+ var hex = parseInt( this._color, 10 ).toString( 16 );
42
+
43
+ if ( this.error )
44
+ return '';
45
+
46
+ if ( hex.length < 6 )
47
+ hex = ( '00000' + hex ).substr( -6 );
48
+
49
+ return '#' + hex;
50
+ };
51
+
52
+ /**
53
+ * Overwrite wpColorPicker
54
+ */
55
+ $.widget( 'wp.wpColorPicker', $.wp.wpColorPicker, {
56
+ _hasAlpha: true,
57
+ /**
58
+ * @summary Creates the color picker.
59
+ *
60
+ * Creates the color picker, sets default values, css classes and wraps it all in HTML.
61
+ *
62
+ * @since 3.5.0
63
+ *
64
+ * @access private
65
+ *
66
+ * @returns {void}
67
+ */
68
+ _create: function() {
69
+ // Return early if Iris support is missing.
70
+ if ( ! $.support.iris ) {
71
+ return;
72
+ }
73
+
74
+ var self = this,
75
+ el = self.element;
76
+
77
+ // Override default options with options bound to the element.
78
+ $.extend( self.options, el.data() );
79
+
80
+ // Create a color picker which only allows adjustments to the hue.
81
+ if ( self.options.type === 'hue' ) {
82
+ return self._createHueOnly();
83
+ }
84
+
85
+ // Bind the close event.
86
+ self.close = $.proxy( self.close, self );
87
+
88
+ self.initialValue = el.val();
89
+
90
+ // Add a CSS class to the input field.
91
+ el.addClass( 'wp-color-picker' );
92
+
93
+ if ( _deprecated ) {
94
+ el.hide().wrap( _wrap );
95
+ self.wrap = el.parent();
96
+ self.toggler = $( _before )
97
+ .insertBefore( el )
98
+ .css( { backgroundColor : self.initialValue } )
99
+ .attr( 'title', wpColorPickerL10n.pick )
100
+ .attr( 'data-current', wpColorPickerL10n.current );
101
+ self.pickerContainer = $( _after ).insertAfter( el );
102
+ self.button = $( _button ).addClass('hidden');
103
+ } else {
104
+ /*
105
+ * Check if there's already a wrapping label, e.g. in the Customizer.
106
+ * If there's no label, add a default one to match the Customizer template.
107
+ */
108
+ if ( ! el.parent( 'label' ).length ) {
109
+ // Wrap the input field in the default label.
110
+ el.wrap( _wrappingLabel );
111
+ // Insert the default label text.
112
+ self.wrappingLabelText = $( _wrappingLabelText )
113
+ .insertBefore( el )
114
+ .text( wpColorPickerL10n.defaultLabel );
115
+ }
116
+
117
+ /*
118
+ * At this point, either it's the standalone version or the Customizer
119
+ * one, we have a wrapping label to use as hook in the DOM, let's store it.
120
+ */
121
+ self.wrappingLabel = el.parent();
122
+
123
+ // Wrap the label in the main wrapper.
124
+ self.wrappingLabel.wrap( _wrap );
125
+ // Store a reference to the main wrapper.
126
+ self.wrap = self.wrappingLabel.parent();
127
+ // Set up the toggle button and insert it before the wrapping label.
128
+ self.toggler = $( _before )
129
+ .insertBefore( self.wrappingLabel )
130
+ .css( { backgroundColor: self.initialValue } );
131
+ // Set the toggle button span element text.
132
+ self.toggler.find( '.wp-color-result-text' ).text( wpColorPickerL10n.pick );
133
+ // Set up the Iris container and insert it after the wrapping label.
134
+ self.pickerContainer = $( _after ).insertAfter( self.wrappingLabel );
135
+ // Store a reference to the Clear/Default button.
136
+ self.button = $( _button );
137
+ }
138
+
139
+ // Set up the Clear/Default button.
140
+ if ( self.options.defaultColor ) {
141
+ self.button.addClass( 'wp-picker-default' ).val( wpColorPickerL10n.defaultString );
142
+ if ( ! _deprecated ) {
143
+ self.button.attr( 'aria-label', wpColorPickerL10n.defaultAriaLabel );
144
+ }
145
+ } else {
146
+ self.button.addClass( 'wp-picker-clear' ).val( wpColorPickerL10n.clear );
147
+ if ( ! _deprecated ) {
148
+ self.button.attr( 'aria-label', wpColorPickerL10n.clearAriaLabel );
149
+ }
150
+ }
151
+
152
+ if ( _deprecated ) {
153
+ el.wrap( '<span class="wp-picker-input-wrap" />' ).after( self.button );
154
+ } else {
155
+ // Wrap the wrapping label in its wrapper and append the Clear/Default button.
156
+ self.wrappingLabel
157
+ .wrap( '<span class="wp-picker-input-wrap hidden" />' )
158
+ .after( self.button );
159
+
160
+ /*
161
+ * The input wrapper now contains the label+input+Clear/Default button.
162
+ * Store a reference to the input wrapper: we'll use this to toggle
163
+ * the controls visibility.
164
+ */
165
+ self.inputWrapper = el.closest( '.wp-picker-input-wrap' );
166
+ }
167
+
168
+ el.iris( {
169
+ target: self.pickerContainer,
170
+ hide: self.options.hide,
171
+ width: self.options.width,
172
+ mode: self.options.mode,
173
+ palettes: self.options.palettes,
174
+ /**
175
+ * @summary Handles the onChange event if one has been defined in the options.
176
+ *
177
+ * Handles the onChange event if one has been defined in the options and additionally
178
+ * sets the background color for the toggler element.
179
+ *
180
+ * @since 3.5.0
181
+ *
182
+ * @param {Event} event The event that's being called.
183
+ * @param {HTMLElement} ui The HTMLElement containing the color picker.
184
+ *
185
+ * @returns {void}
186
+ */
187
+ change: function( event, ui ) {
188
+ if ( self.options.alpha ) {
189
+ self.toggler.css( { 'background-image' : 'url(' + image + ')' } );
190
+ if ( _deprecated ) {
191
+ self.toggler.html( '<span class="color-alpha" />' );
192
+ } else {
193
+ self.toggler.css( {
194
+ 'position' : 'relative'
195
+ } );
196
+ if ( self.toggler.find('span.color-alpha').length == 0 ) {
197
+ self.toggler.append('<span class="color-alpha" />');
198
+ }
199
+ }
200
+
201
+ self.toggler.find( 'span.color-alpha' ).css( {
202
+ 'width' : '30px',
203
+ 'height' : '24px',
204
+ 'position' : 'absolute',
205
+ 'top' : 0,
206
+ 'left' : 0,
207
+ 'border-top-left-radius' : '2px',
208
+ 'border-bottom-left-radius' : '2px',
209
+ 'background' : ui.color.toString()
210
+ } );
211
+ } else {
212
+ self.toggler.css( { backgroundColor : ui.color.toString() } );
213
+ }
214
+
215
+ if ( $.isFunction( self.options.change ) ) {
216
+ self.options.change.call( this, event, ui );
217
+ }
218
+ }
219
+ } );
220
+
221
+ el.val( self.initialValue );
222
+ self._addListeners();
223
+
224
+ // Force the color picker to always be closed on initial load.
225
+ if ( ! self.options.hide ) {
226
+ self.toggler.click();
227
+ }
228
+ },
229
+ /**
230
+ * @summary Binds event listeners to the color picker.
231
+ *
232
+ * @since 3.5.0
233
+ *
234
+ * @access private
235
+ *
236
+ * @returns {void}
237
+ */
238
+ _addListeners: function() {
239
+ var self = this;
240
+
241
+ /**
242
+ * @summary Prevent any clicks inside this widget from leaking to the top and closing it.
243
+ *
244
+ * @since 3.5.0
245
+ *
246
+ * @param {Event} event The event that's being called.
247
+ *
248
+ * @returs {void}
249
+ */
250
+ self.wrap.on( 'click.wpcolorpicker', function( event ) {
251
+ event.stopPropagation();
252
+ });
253
+
254
+ /**
255
+ * @summary Open or close the color picker depending on the class.
256
+ *
257
+ * @since 3.5
258
+ */
259
+ self.toggler.click( function(){
260
+ if ( self.toggler.hasClass( 'wp-picker-open' ) ) {
261
+ self.close();
262
+ } else {
263
+ self.open();
264
+ }
265
+ });
266
+
267
+ /**
268
+ * @summary Checks if value is empty when changing the color in the color picker.
269
+ *
270
+ * Checks if value is empty when changing the color in the color picker.
271
+ * If so, the background color is cleared.
272
+ *
273
+ * @since 3.5.0
274
+ *
275
+ * @param {Event} event The event that's being called.
276
+ *
277
+ * @returns {void}
278
+ */
279
+ self.element.on( 'change', function( event ) {
280
+ // Empty or Error = clear
281
+ if ( $( this ).val() === '' || self.element.hasClass( 'iris-error' ) ) {
282
+ if ( self.options.alpha ) {
283
+ if ( _deprecated ) {
284
+ self.toggler.removeAttr( 'style' );
285
+ }
286
+ self.toggler.find( 'span.color-alpha' ).css( 'backgroundColor', '' );
287
+ } else {
288
+ self.toggler.css( 'backgroundColor', '' );
289
+ }
290
+
291
+ // fire clear callback if we have one
292
+ if ( $.isFunction( self.options.clear ) )
293
+ self.options.clear.call( this, event );
294
+ }
295
+ } );
296
+
297
+ /**
298
+ * @summary Enables the user to clear or revert the color in the color picker.
299
+ *
300
+ * Enables the user to either clear the color in the color picker or revert back to the default color.
301
+ *
302
+ * @since 3.5.0
303
+ *
304
+ * @param {Event} event The event that's being called.
305
+ *
306
+ * @returns {void}
307
+ */
308
+ self.button.on( 'click', function( event ) {
309
+ if ( $( this ).hasClass( 'wp-picker-clear' ) ) {
310
+ self.element.val( '' );
311
+ if ( self.options.alpha ) {
312
+ if ( _deprecated ) {
313
+ self.toggler.removeAttr( 'style' );
314
+ }
315
+ self.toggler.find( 'span.color-alpha' ).css( 'backgroundColor', '' );
316
+ } else {
317
+ self.toggler.css( 'backgroundColor', '' );
318
+ }
319
+
320
+ if ( $.isFunction( self.options.clear ) )
321
+ self.options.clear.call( this, event );
322
+
323
+ } else if ( $( this ).hasClass( 'wp-picker-default' ) ) {
324
+ self.element.val( self.options.defaultColor ).change();
325
+ }
326
+ });
327
+ },
328
+ });
329
+
330
+ /**
331
+ * Overwrite iris
332
+ */
333
+ $.widget( 'a8c.iris', $.a8c.iris, {
334
+ _create: function() {
335
+ this._super();
336
+
337
+ // Global option for check is mode rbga is enabled
338
+ this.options.alpha = this.element.data( 'alpha' ) || false;
339
+
340
+ // Is not input disabled
341
+ if ( ! this.element.is( ':input' ) )
342
+ this.options.alpha = false;
343
+
344
+ if ( typeof this.options.alpha !== 'undefined' && this.options.alpha ) {
345
+ var self = this,
346
+ el = self.element,
347
+ _html = '<div class="iris-strip iris-slider iris-alpha-slider"><div class="iris-slider-offset iris-slider-offset-alpha"></div></div>',
348
+ aContainer = $( _html ).appendTo( self.picker.find( '.iris-picker-inner' ) ),
349
+ aSlider = aContainer.find( '.iris-slider-offset-alpha' ),
350
+ controls = {
351
+ aContainer : aContainer,
352
+ aSlider : aSlider
353
+ };
354
+
355
+ if ( typeof el.data( 'custom-width' ) !== 'undefined' ) {
356
+ self.options.customWidth = parseInt( el.data( 'custom-width' ) ) || 0;
357
+ } else {
358
+ self.options.customWidth = 100;
359
+ }
360
+
361
+ // Set default width for input reset
362
+ self.options.defaultWidth = el.width();
363
+
364
+ // Update width for input
365
+ if ( self._color._alpha < 1 || self._color.toString().indexOf('rgb') != -1 )
366
+ el.width( parseInt( self.options.defaultWidth + self.options.customWidth ) );
367
+
368
+ // Push new controls
369
+ $.each( controls, function( k, v ) {
370
+ self.controls[k] = v;
371
+ } );
372
+
373
+ // Change size strip and add margin for sliders
374
+ self.controls.square.css( { 'margin-right': '0' } );
375
+ var emptyWidth = ( self.picker.width() - self.controls.square.width() - 20 ),
376
+ stripsMargin = ( emptyWidth / 6 ),
377
+ stripsWidth = ( ( emptyWidth / 2 ) - stripsMargin );
378
+
379
+ $.each( [ 'aContainer', 'strip' ], function( k, v ) {
380
+ self.controls[v].width( stripsWidth ).css( { 'margin-left' : stripsMargin + 'px' } );
381
+ } );
382
+
383
+ // Add new slider
384
+ self._initControls();
385
+
386
+ // For updated widget
387
+ self._change();
388
+ }
389
+ },
390
+ _initControls: function() {
391
+ this._super();
392
+
393
+ if ( this.options.alpha ) {
394
+ var self = this,
395
+ controls = self.controls;
396
+
397
+ controls.aSlider.slider({
398
+ orientation : 'vertical',
399
+ min : 0,
400
+ max : 100,
401
+ step : 1,
402
+ value : parseInt( self._color._alpha * 100 ),
403
+ slide : function( event, ui ) {
404
+ // Update alpha value
405
+ self._color._alpha = parseFloat( ui.value / 100 );
406
+ self._change.apply( self, arguments );
407
+ }
408
+ });
409
+ }
410
+ },
411
+ _change: function() {
412
+ this._super();
413
+
414
+ var self = this,
415
+ el = self.element;
416
+
417
+ if ( this.options.alpha ) {
418
+ var controls = self.controls,
419
+ alpha = parseInt( self._color._alpha * 100 ),
420
+ color = self._color.toRgb(),
421
+ gradient = [
422
+ 'rgb(' + color.r + ',' + color.g + ',' + color.b + ') 0%',
423
+ 'rgba(' + color.r + ',' + color.g + ',' + color.b + ', 0) 100%'
424
+ ],
425
+ defaultWidth = self.options.defaultWidth,
426
+ customWidth = self.options.customWidth,
427
+ target = self.picker.closest( '.wp-picker-container' ).find( '.wp-color-result' );
428
+
429
+ // Generate background slider alpha, only for CSS3 old browser fuck!! :)
430
+ controls.aContainer.css( { 'background' : 'linear-gradient(to bottom, ' + gradient.join( ', ' ) + '), url(' + image + ')' } );
431
+
432
+ if ( target.hasClass( 'wp-picker-open' ) ) {
433
+ // Update alpha value
434
+ controls.aSlider.slider( 'value', alpha );
435
+
436
+ /**
437
+ * Disabled change opacity in default slider Saturation ( only is alpha enabled )
438
+ * and change input width for view all value
439
+ */
440
+ if ( self._color._alpha < 1 ) {
441
+ controls.strip.attr( 'style', controls.strip.attr( 'style' ).replace( /rgba\(([0-9]+,)(\s+)?([0-9]+,)(\s+)?([0-9]+)(,(\s+)?[0-9\.]+)\)/g, 'rgb($1$3$5)' ) );
442
+ el.width( parseInt( defaultWidth + customWidth ) );
443
+ } else {
444
+ el.width( defaultWidth );
445
+ }
446
+ }
447
+ }
448
+
449
+ var reset = el.data( 'reset-alpha' ) || false;
450
+
451
+ if ( reset ) {
452
+ self.picker.find( '.iris-palette-container' ).on( 'click.palette', '.iris-palette', function() {
453
+ self._color._alpha = 1;
454
+ self.active = 'external';
455
+ self._change();
456
+ } );
457
+ }
458
+ },
459
+ _addInputListeners: function( input ) {
460
+ var self = this,
461
+ debounceTimeout = 100,
462
+ callback = function( event ) {
463
+ var color = new Color( input.val() ),
464
+ val = input.val();
465
+
466
+ input.removeClass( 'iris-error' );
467
+ // we gave a bad color
468
+ if ( color.error ) {
469
+ // don't error on an empty input
470
+ if ( val !== '' )
471
+ input.addClass( 'iris-error' );
472
+ } else {
473
+ if ( color.toString() !== self._color.toString() ) {
474
+ // let's not do this on keyup for hex shortcodes
475
+ if ( ! ( event.type === 'keyup' && val.match( /^[0-9a-fA-F]{3}$/ ) ) )
476
+ self._setOption( 'color', color.toString() );
477
+ }
478
+ }
479
+ };
480
+
481
+ input.on( 'change', callback ).on( 'keyup', self._debounce( callback, debounceTimeout ) );
482
+
483
+ // If we initialized hidden, show on first focus. The rest is up to you.
484
+ if ( self.options.hide ) {
485
+ input.on( 'focus', function() {
486
+ self.show();
487
+ } );
488
+ }
489
+ }
490
+ } );
491
+ }( jQuery ) );
492
+
493
+ // Auto Call plugin is class is color-picker
494
+ jQuery( document ).ready( function( $ ) {
495
+ $( '.color-picker' ).wpColorPicker();
496
+ } );
includes/vendor/cmb2/js/wp-color-picker-alpha.min.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ /**!
2
+ * wp-color-picker-alpha
3
+ *
4
+ * Overwrite Automattic Iris for enabled Alpha Channel in wpColorPicker
5
+ * Only run in input and is defined data alpha in true
6
+ *
7
+ * Version: 2.1.3
8
+ * https://github.com/kallookoo/wp-color-picker-alpha
9
+ * Licensed under the GPLv2 license.
10
+ */
11
+ !function(a){if(!a.wp.wpColorPicker.prototype._hasAlpha){var b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==",c='<div class="wp-picker-holder" />',d='<div class="wp-picker-container" />',e='<input type="button" class="button button-small" />',f=void 0!==wpColorPickerL10n.current;if(f)var g='<a tabindex="0" class="wp-color-result" />';else var g='<button type="button" class="button wp-color-result" aria-expanded="false"><span class="wp-color-result-text"></span></button>',h="<label></label>",i='<span class="screen-reader-text"></span>';Color.fn.toString=function(){if(this._alpha<1)return this.toCSS("rgba",this._alpha).replace(/\s+/g,"");var a=parseInt(this._color,10).toString(16);return this.error?"":(a.length<6&&(a=("00000"+a).substr(-6)),"#"+a)},a.widget("wp.wpColorPicker",a.wp.wpColorPicker,{_hasAlpha:!0,_create:function(){if(a.support.iris){var j=this,k=j.element;if(a.extend(j.options,k.data()),"hue"===j.options.type)return j._createHueOnly();j.close=a.proxy(j.close,j),j.initialValue=k.val(),k.addClass("wp-color-picker"),f?(k.hide().wrap(d),j.wrap=k.parent(),j.toggler=a(g).insertBefore(k).css({backgroundColor:j.initialValue}).attr("title",wpColorPickerL10n.pick).attr("data-current",wpColorPickerL10n.current),j.pickerContainer=a(c).insertAfter(k),j.button=a(e).addClass("hidden")):(k.parent("label").length||(k.wrap(h),j.wrappingLabelText=a(i).insertBefore(k).text(wpColorPickerL10n.defaultLabel)),j.wrappingLabel=k.parent(),j.wrappingLabel.wrap(d),j.wrap=j.wrappingLabel.parent(),j.toggler=a(g).insertBefore(j.wrappingLabel).css({backgroundColor:j.initialValue}),j.toggler.find(".wp-color-result-text").text(wpColorPickerL10n.pick),j.pickerContainer=a(c).insertAfter(j.wrappingLabel),j.button=a(e)),j.options.defaultColor?(j.button.addClass("wp-picker-default").val(wpColorPickerL10n.defaultString),f||j.button.attr("aria-label",wpColorPickerL10n.defaultAriaLabel)):(j.button.addClass("wp-picker-clear").val(wpColorPickerL10n.clear),f||j.button.attr("aria-label",wpColorPickerL10n.clearAriaLabel)),f?k.wrap('<span class="wp-picker-input-wrap" />').after(j.button):(j.wrappingLabel.wrap('<span class="wp-picker-input-wrap hidden" />').after(j.button),j.inputWrapper=k.closest(".wp-picker-input-wrap")),k.iris({target:j.pickerContainer,hide:j.options.hide,width:j.options.width,mode:j.options.mode,palettes:j.options.palettes,change:function(c,d){j.options.alpha?(j.toggler.css({"background-image":"url("+b+")"}),f?j.toggler.html('<span class="color-alpha" />'):(j.toggler.css({position:"relative"}),0==j.toggler.find("span.color-alpha").length&&j.toggler.append('<span class="color-alpha" />')),j.toggler.find("span.color-alpha").css({width:"30px",height:"24px",position:"absolute",top:0,left:0,"border-top-left-radius":"2px","border-bottom-left-radius":"2px",background:d.color.toString()})):j.toggler.css({backgroundColor:d.color.toString()}),a.isFunction(j.options.change)&&j.options.change.call(this,c,d)}}),k.val(j.initialValue),j._addListeners(),j.options.hide||j.toggler.click()}},_addListeners:function(){var b=this;b.wrap.on("click.wpcolorpicker",function(a){a.stopPropagation()}),b.toggler.click(function(){b.toggler.hasClass("wp-picker-open")?b.close():b.open()}),b.element.on("change",function(c){(""===a(this).val()||b.element.hasClass("iris-error"))&&(b.options.alpha?(f&&b.toggler.removeAttr("style"),b.toggler.find("span.color-alpha").css("backgroundColor","")):b.toggler.css("backgroundColor",""),a.isFunction(b.options.clear)&&b.options.clear.call(this,c))}),b.button.on("click",function(c){a(this).hasClass("wp-picker-clear")?(b.element.val(""),b.options.alpha?(f&&b.toggler.removeAttr("style"),b.toggler.find("span.color-alpha").css("backgroundColor","")):b.toggler.css("backgroundColor",""),a.isFunction(b.options.clear)&&b.options.clear.call(this,c)):a(this).hasClass("wp-picker-default")&&b.element.val(b.options.defaultColor).change()})}}),a.widget("a8c.iris",a.a8c.iris,{_create:function(){if(this._super(),this.options.alpha=this.element.data("alpha")||!1,this.element.is(":input")||(this.options.alpha=!1),"undefined"!=typeof this.options.alpha&&this.options.alpha){var b=this,c=b.element,d='<div class="iris-strip iris-slider iris-alpha-slider"><div class="iris-slider-offset iris-slider-offset-alpha"></div></div>',e=a(d).appendTo(b.picker.find(".iris-picker-inner")),f=e.find(".iris-slider-offset-alpha"),g={aContainer:e,aSlider:f};"undefined"!=typeof c.data("custom-width")?b.options.customWidth=parseInt(c.data("custom-width"))||0:b.options.customWidth=100,b.options.defaultWidth=c.width(),(b._color._alpha<1||-1!=b._color.toString().indexOf("rgb"))&&c.width(parseInt(b.options.defaultWidth+b.options.customWidth)),a.each(g,function(a,c){b.controls[a]=c}),b.controls.square.css({"margin-right":"0"});var h=b.picker.width()-b.controls.square.width()-20,i=h/6,j=h/2-i;a.each(["aContainer","strip"],function(a,c){b.controls[c].width(j).css({"margin-left":i+"px"})}),b._initControls(),b._change()}},_initControls:function(){if(this._super(),this.options.alpha){var a=this,b=a.controls;b.aSlider.slider({orientation:"vertical",min:0,max:100,step:1,value:parseInt(100*a._color._alpha),slide:function(b,c){a._color._alpha=parseFloat(c.value/100),a._change.apply(a,arguments)}})}},_change:function(){this._super();var a=this,c=a.element;if(this.options.alpha){var d=a.controls,e=parseInt(100*a._color._alpha),f=a._color.toRgb(),g=["rgb("+f.r+","+f.g+","+f.b+") 0%","rgba("+f.r+","+f.g+","+f.b+", 0) 100%"],h=a.options.defaultWidth,i=a.options.customWidth,j=a.picker.closest(".wp-picker-container").find(".wp-color-result");d.aContainer.css({background:"linear-gradient(to bottom, "+g.join(", ")+"), url("+b+")"}),j.hasClass("wp-picker-open")&&(d.aSlider.slider("value",e),a._color._alpha<1?(d.strip.attr("style",d.strip.attr("style").replace(/rgba\(([0-9]+,)(\s+)?([0-9]+,)(\s+)?([0-9]+)(,(\s+)?[0-9\.]+)\)/g,"rgb($1$3$5)")),c.width(parseInt(h+i))):c.width(h))}var k=c.data("reset-alpha")||!1;k&&a.picker.find(".iris-palette-container").on("click.palette",".iris-palette",function(){a._color._alpha=1,a.active="external",a._change()})},_addInputListeners:function(a){var b=this,c=100,d=function(c){var d=new Color(a.val()),e=a.val();a.removeClass("iris-error"),d.error?""!==e&&a.addClass("iris-error"):d.toString()!==b._color.toString()&&("keyup"===c.type&&e.match(/^[0-9a-fA-F]{3}$/)||b._setOption("color",d.toString()))};a.on("change",d).on("keyup",b._debounce(d,c)),b.options.hide&&a.on("focus",function(){b.show()})}})}}(jQuery),jQuery(document).ready(function(a){a(".color-picker").wpColorPicker()});
includes/vendor/cmb2/languages/cmb2-az.mo ADDED
Binary file
includes/vendor/cmb2/languages/cmb2-az.po ADDED
@@ -0,0 +1,527 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2016 WebDevStudios
2
+ # This file is distributed under the same license as the CMB2 package.
3
+ # Translators:
4
+ msgid ""
5
+ msgstr ""
6
+ "Project-Id-Version: CMB2\n"
7
+ "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
8
+ "POT-Creation-Date: 2016-06-27 17:01:22+00:00\n"
9
+ "PO-Revision-Date: 2016-06-27 17:01+0000\n"
10
+ "Last-Translator: Justin Sternberg <me@jtsternberg.com>\n"
11
+ "Language-Team: Azerbaijani (http://www.transifex.com/wp-translations/cmb2/language/az/)\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "Language: az\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+ "X-Generator: grunt-wp-i18n 0.4.9\n"
18
+ "X-Poedit-Basepath: ../\n"
19
+ "X-Poedit-Bookmarks: \n"
20
+ "X-Poedit-Country: United States\n"
21
+ "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
22
+ "X-Poedit-SearchPath-0: .\n"
23
+ "X-Poedit-SourceCharset: UTF-8\n"
24
+ "X-Textdomain-Support: yes\n"
25
+
26
+ #: example-functions.php:117 tests/test-cmb-field.php:255
27
+ msgid "Test Metabox"
28
+ msgstr ""
29
+
30
+ #: example-functions.php:130 example-functions.php:436
31
+ msgid "Test Text"
32
+ msgstr ""
33
+
34
+ #: example-functions.php:131 example-functions.php:144
35
+ #: example-functions.php:157 example-functions.php:165
36
+ #: example-functions.php:173 example-functions.php:182
37
+ #: example-functions.php:190 example-functions.php:205
38
+ #: example-functions.php:213 example-functions.php:221
39
+ #: example-functions.php:238 example-functions.php:247
40
+ #: example-functions.php:260 example-functions.php:267
41
+ #: example-functions.php:274 example-functions.php:288
42
+ #: example-functions.php:301 example-functions.php:314
43
+ #: example-functions.php:326 example-functions.php:335
44
+ #: example-functions.php:343 example-functions.php:352
45
+ #: example-functions.php:359 example-functions.php:373
46
+ #: example-functions.php:437 example-functions.php:528
47
+ #: example-functions.php:536 example-functions.php:543
48
+ #: example-functions.php:550 example-functions.php:557
49
+ #: example-functions.php:564 example-functions.php:571
50
+ #: example-functions.php:598 example-functions.php:606
51
+ #: example-functions.php:613 example-functions.php:650
52
+ #: tests/test-cmb-field.php:267
53
+ msgid "field description (optional)"
54
+ msgstr ""
55
+
56
+ #: example-functions.php:143
57
+ msgid "Test Text Small"
58
+ msgstr ""
59
+
60
+ #: example-functions.php:156
61
+ msgid "Test Text Medium"
62
+ msgstr ""
63
+
64
+ #: example-functions.php:164
65
+ msgid "Custom Rendered Field"
66
+ msgstr ""
67
+
68
+ #: example-functions.php:172
69
+ msgid "Website URL"
70
+ msgstr ""
71
+
72
+ #: example-functions.php:181
73
+ msgid "Test Text Email"
74
+ msgstr ""
75
+
76
+ #: example-functions.php:189
77
+ msgid "Test Time"
78
+ msgstr ""
79
+
80
+ #: example-functions.php:197 example-functions.php:198
81
+ msgid "Time zone"
82
+ msgstr ""
83
+
84
+ #: example-functions.php:204
85
+ msgid "Test Date Picker"
86
+ msgstr ""
87
+
88
+ #: example-functions.php:212
89
+ msgid "Test Date Picker (UNIX timestamp)"
90
+ msgstr ""
91
+
92
+ #: example-functions.php:220
93
+ msgid "Test Date/Time Picker Combo (UNIX timestamp)"
94
+ msgstr ""
95
+
96
+ #: example-functions.php:237
97
+ msgid "Test Money"
98
+ msgstr ""
99
+
100
+ #: example-functions.php:246
101
+ msgid "Test Color Picker"
102
+ msgstr ""
103
+
104
+ #: example-functions.php:259
105
+ msgid "Test Text Area"
106
+ msgstr ""
107
+
108
+ #: example-functions.php:266
109
+ msgid "Test Text Area Small"
110
+ msgstr ""
111
+
112
+ #: example-functions.php:273
113
+ msgid "Test Text Area for Code"
114
+ msgstr ""
115
+
116
+ #: example-functions.php:280
117
+ msgid "Test Title Weeeee"
118
+ msgstr ""
119
+
120
+ #: example-functions.php:281
121
+ msgid "This is a title description"
122
+ msgstr ""
123
+
124
+ #: example-functions.php:287
125
+ msgid "Test Select"
126
+ msgstr ""
127
+
128
+ #: example-functions.php:293 example-functions.php:306
129
+ #: example-functions.php:318
130
+ msgid "Option One"
131
+ msgstr ""
132
+
133
+ #: example-functions.php:294 example-functions.php:307
134
+ #: example-functions.php:319
135
+ msgid "Option Two"
136
+ msgstr ""
137
+
138
+ #: example-functions.php:295 example-functions.php:308
139
+ #: example-functions.php:320
140
+ msgid "Option Three"
141
+ msgstr ""
142
+
143
+ #: example-functions.php:300
144
+ msgid "Test Radio inline"
145
+ msgstr ""
146
+
147
+ #: example-functions.php:313
148
+ msgid "Test Radio"
149
+ msgstr ""
150
+
151
+ #: example-functions.php:325
152
+ msgid "Test Taxonomy Radio"
153
+ msgstr ""
154
+
155
+ #: example-functions.php:334
156
+ msgid "Test Taxonomy Select"
157
+ msgstr ""
158
+
159
+ #: example-functions.php:342
160
+ msgid "Test Taxonomy Multi Checkbox"
161
+ msgstr ""
162
+
163
+ #: example-functions.php:351
164
+ msgid "Test Checkbox"
165
+ msgstr ""
166
+
167
+ #: example-functions.php:358 tests/test-cmb-field.php:266
168
+ msgid "Test Multi Checkbox"
169
+ msgstr ""
170
+
171
+ #: example-functions.php:364 tests/test-cmb-field.php:272
172
+ msgid "Check One"
173
+ msgstr ""
174
+
175
+ #: example-functions.php:365 tests/test-cmb-field.php:273
176
+ msgid "Check Two"
177
+ msgstr ""
178
+
179
+ #: example-functions.php:366 tests/test-cmb-field.php:274
180
+ msgid "Check Three"
181
+ msgstr ""
182
+
183
+ #: example-functions.php:372
184
+ msgid "Test wysiwyg"
185
+ msgstr ""
186
+
187
+ #: example-functions.php:380
188
+ msgid "Test Image"
189
+ msgstr ""
190
+
191
+ #: example-functions.php:381
192
+ msgid "Upload an image or enter a URL."
193
+ msgstr ""
194
+
195
+ #: example-functions.php:387
196
+ msgid "Multiple Files"
197
+ msgstr ""
198
+
199
+ #: example-functions.php:388
200
+ msgid "Upload or add multiple images/attachments."
201
+ msgstr ""
202
+
203
+ #: example-functions.php:395
204
+ msgid "oEmbed"
205
+ msgstr ""
206
+
207
+ #: example-functions.php:396
208
+ msgid ""
209
+ "Enter a youtube, twitter, or instagram URL. Supports services listed at <a "
210
+ "href=\"http://codex.wordpress.org/Embeds\">http://codex.wordpress.org/Embeds</a>."
211
+ msgstr ""
212
+
213
+ #: example-functions.php:427
214
+ msgid "About Page Metabox"
215
+ msgstr ""
216
+
217
+ #: example-functions.php:456
218
+ msgid "Repeating Field Group"
219
+ msgstr ""
220
+
221
+ #: example-functions.php:464
222
+ msgid "Generates reusable form entries"
223
+ msgstr ""
224
+
225
+ #: example-functions.php:466
226
+ msgid "Entry {#}"
227
+ msgstr ""
228
+
229
+ #: example-functions.php:467
230
+ msgid "Add Another Entry"
231
+ msgstr ""
232
+
233
+ #: example-functions.php:468
234
+ msgid "Remove Entry"
235
+ msgstr ""
236
+
237
+ #: example-functions.php:481
238
+ msgid "Entry Title"
239
+ msgstr ""
240
+
241
+ #: example-functions.php:488
242
+ msgid "Description"
243
+ msgstr "آنلاتما"
244
+
245
+ #: example-functions.php:489
246
+ msgid "Write a short description for this entry"
247
+ msgstr ""
248
+
249
+ #: example-functions.php:495
250
+ msgid "Entry Image"
251
+ msgstr ""
252
+
253
+ #: example-functions.php:501
254
+ msgid "Image Caption"
255
+ msgstr "Təsvir Altyazısı"
256
+
257
+ #: example-functions.php:520
258
+ msgid "User Profile Metabox"
259
+ msgstr ""
260
+
261
+ #: example-functions.php:527 example-functions.php:597
262
+ msgid "Extra Info"
263
+ msgstr ""
264
+
265
+ #: example-functions.php:535
266
+ msgid "Avatar"
267
+ msgstr ""
268
+
269
+ #: example-functions.php:542
270
+ msgid "Facebook URL"
271
+ msgstr ""
272
+
273
+ #: example-functions.php:549
274
+ msgid "Twitter URL"
275
+ msgstr ""
276
+
277
+ #: example-functions.php:556
278
+ msgid "Google+ URL"
279
+ msgstr ""
280
+
281
+ #: example-functions.php:563
282
+ msgid "Linkedin URL"
283
+ msgstr ""
284
+
285
+ #: example-functions.php:570
286
+ msgid "User Field"
287
+ msgstr ""
288
+
289
+ #: example-functions.php:590
290
+ msgid "Category Metabox"
291
+ msgstr ""
292
+
293
+ #: example-functions.php:605
294
+ msgid "Term Image"
295
+ msgstr ""
296
+
297
+ #: example-functions.php:612
298
+ msgid "Arbitrary Term Field"
299
+ msgstr ""
300
+
301
+ #: example-functions.php:634
302
+ msgid "Theme Options Metabox"
303
+ msgstr ""
304
+
305
+ #: example-functions.php:649
306
+ msgid "Site Background Color"
307
+ msgstr ""
308
+
309
+ #: includes/CMB2.php:129
310
+ msgid "Metabox configuration is required to have an ID parameter"
311
+ msgstr ""
312
+
313
+ #: includes/CMB2.php:418
314
+ msgid "Click to toggle"
315
+ msgstr "Açmaq/bağlamaq üçün tıklayın"
316
+
317
+ #: includes/CMB2_Ajax.php:71
318
+ msgid "Please Try Again"
319
+ msgstr ""
320
+
321
+ #: includes/CMB2_Ajax.php:173 tests/cmb-tests-base.php:59
322
+ msgid "Remove Embed"
323
+ msgstr ""
324
+
325
+ #: includes/CMB2_Ajax.php:177 tests/cmb-tests-base.php:64
326
+ msgid "No oEmbed Results Found for %s. View more info at"
327
+ msgstr ""
328
+
329
+ #: includes/CMB2_Field.php:1186
330
+ msgid "Add Group"
331
+ msgstr ""
332
+
333
+ #: includes/CMB2_Field.php:1187
334
+ msgid "Remove Group"
335
+ msgstr ""
336
+
337
+ #: includes/CMB2_Field.php:1209 includes/CMB2_Field.php:1213
338
+ #: tests/test-cmb-field.php:229
339
+ msgid "None"
340
+ msgstr "هئچ بيري"
341
+
342
+ #: includes/CMB2_Field.php:1269
343
+ msgid "Sorry, this field does not have a cmb_id specified."
344
+ msgstr ""
345
+
346
+ #: includes/CMB2_Field_Display.php:408 includes/CMB2_JS.php:139
347
+ #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
348
+ #: tests/test-cmb-types.php:701
349
+ msgid "File:"
350
+ msgstr ""
351
+
352
+ #: includes/CMB2_JS.php:86 includes/CMB2_JS.php:119
353
+ msgid "Clear"
354
+ msgstr "Təmizlə"
355
+
356
+ #: includes/CMB2_JS.php:87
357
+ msgid "Default"
358
+ msgstr "Mövcud"
359
+
360
+ #: includes/CMB2_JS.php:88
361
+ msgid "Select Color"
362
+ msgstr "Rəng seç"
363
+
364
+ #: includes/CMB2_JS.php:89
365
+ msgid "Current Color"
366
+ msgstr "Hazırkı rəng"
367
+
368
+ #: includes/CMB2_JS.php:110
369
+ msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
370
+ msgstr ""
371
+
372
+ #: includes/CMB2_JS.php:111
373
+ msgid "Su, Mo, Tu, We, Th, Fr, Sa"
374
+ msgstr ""
375
+
376
+ #: includes/CMB2_JS.php:112
377
+ msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
378
+ msgstr ""
379
+
380
+ #: includes/CMB2_JS.php:113
381
+ msgid ""
382
+ "January, February, March, April, May, June, July, August, September, "
383
+ "October, November, December"
384
+ msgstr ""
385
+
386
+ #: includes/CMB2_JS.php:114
387
+ msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
388
+ msgstr ""
389
+
390
+ #: includes/CMB2_JS.php:115
391
+ msgid "Next"
392
+ msgstr "ايلري"
393
+
394
+ #: includes/CMB2_JS.php:116
395
+ msgid "Prev"
396
+ msgstr "Öncəki"
397
+
398
+ #: includes/CMB2_JS.php:117
399
+ msgid "Today"
400
+ msgstr "Bu gün"
401
+
402
+ #: includes/CMB2_JS.php:118 includes/CMB2_JS.php:128
403
+ msgid "Done"
404
+ msgstr "Tamamdır"
405
+
406
+ #: includes/CMB2_JS.php:122
407
+ msgid "Choose Time"
408
+ msgstr ""
409
+
410
+ #: includes/CMB2_JS.php:123
411
+ msgid "Time"
412
+ msgstr ""
413
+
414
+ #: includes/CMB2_JS.php:124
415
+ msgid "Hour"
416
+ msgstr "Saat"
417
+
418
+ #: includes/CMB2_JS.php:125
419
+ msgid "Minute"
420
+ msgstr "Dəqiqə"
421
+
422
+ #: includes/CMB2_JS.php:126
423
+ msgid "Second"
424
+ msgstr ""
425
+
426
+ #: includes/CMB2_JS.php:127
427
+ msgid "Now"
428
+ msgstr ""
429
+
430
+ #: includes/CMB2_JS.php:135
431
+ msgid "Use this file"
432
+ msgstr ""
433
+
434
+ #: includes/CMB2_JS.php:136
435
+ msgid "Use these files"
436
+ msgstr ""
437
+
438
+ #: includes/CMB2_JS.php:137 includes/types/CMB2_Type_File_Base.php:61
439
+ msgid "Remove Image"
440
+ msgstr "دورقون گؤرونتونو سیل"
441
+
442
+ #: includes/CMB2_JS.php:138 includes/CMB2_Types.php:257
443
+ #: includes/types/CMB2_Type_File_Base.php:80 tests/test-cmb-types-base.php:143
444
+ #: tests/test-cmb-types.php:47 tests/test-cmb-types.php:55
445
+ #: tests/test-cmb-types.php:701
446
+ msgid "Remove"
447
+ msgstr "Sil"
448
+
449
+ #: includes/CMB2_JS.php:140 includes/types/CMB2_Type_File_Base.php:78
450
+ #: tests/test-cmb-types-base.php:143 tests/test-cmb-types.php:701
451
+ msgid "Download"
452
+ msgstr "Endir"
453
+
454
+ #: includes/CMB2_JS.php:141
455
+ msgid "Select / Deselect All"
456
+ msgstr ""
457
+
458
+ #: includes/CMB2_Types.php:194
459
+ msgid "Add Row"
460
+ msgstr ""
461
+
462
+ #: includes/CMB2_hookup.php:145
463
+ msgid ""
464
+ "Term Metadata is a WordPress > 4.4 feature. Please upgrade your WordPress "
465
+ "install."
466
+ msgstr ""
467
+
468
+ #: includes/CMB2_hookup.php:149
469
+ msgid "Term metaboxes configuration requires a 'taxonomies' parameter"
470
+ msgstr ""
471
+
472
+ #: includes/helper-functions.php:93
473
+ msgid "No oEmbed Results Found for %s. View more info at %s"
474
+ msgstr ""
475
+
476
+ #: includes/helper-functions.php:279
477
+ msgid "Save"
478
+ msgstr "ساخلا"
479
+
480
+ #: includes/types/CMB2_Type_File.php:36 tests/test-cmb-types.php:683
481
+ #: tests/test-cmb-types.php:701
482
+ msgid "Add or Upload File"
483
+ msgstr ""
484
+
485
+ #: includes/types/CMB2_Type_File_List.php:36 tests/test-cmb-types.php:639
486
+ #: tests/test-cmb-types.php:663
487
+ msgid "Add or Upload Files"
488
+ msgstr ""
489
+
490
+ #: includes/types/CMB2_Type_Taxonomy_Multicheck.php:27
491
+ #: includes/types/CMB2_Type_Taxonomy_Radio.php:25
492
+ msgid "No terms"
493
+ msgstr ""
494
+
495
+ #. Plugin Name of the plugin/theme
496
+ msgid "CMB2"
497
+ msgstr ""
498
+
499
+ #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
+ msgstr ""
502
+
503
+ #. Description of the plugin/theme
504
+ msgid ""
505
+ "CMB2 will create metaboxes and forms with custom fields that will blow your "
506
+ "mind."
507
+ msgstr ""
508
+
509
+ #. Author of the plugin/theme
510
+ msgid "WebDevStudios"
511
+ msgstr ""
512
+
513
+ #. Author URI of the plugin/theme
514
+ msgid "http://webdevstudios.com"
515
+ msgstr ""
516
+
517
+ #: includes/CMB2_JS.php:109
518
+ msgctxt "Valid formatDate string for jquery-ui datepicker"
519
+ msgid "mm/dd/yy"
520
+ msgstr ""
521
+
522
+ #: includes/CMB2_JS.php:129
523
+ msgctxt ""
524
+ "Valid formatting string, as per "
525
+ "http://trentrichardson.com/examples/timepicker/"
526
+ msgid "hh:mm TT"
527
+ msgstr ""
includes/vendor/cmb2/languages/cmb2-be.mo ADDED
Binary file
includes/vendor/cmb2/languages/cmb2-be.po ADDED
@@ -0,0 +1,527 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2016 WebDevStudios
2
+ # This file is distributed under the same license as the CMB2 package.
3
+ # Translators:
4
+ msgid ""
5
+ msgstr ""
6
+ "Project-Id-Version: CMB2\n"
7
+ "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
8
+ "POT-Creation-Date: 2016-06-27 17:01:22+00:00\n"
9
+ "PO-Revision-Date: 2016-06-27 17:01+0000\n"
10
+ "Last-Translator: Justin Sternberg <me@jtsternberg.com>\n"
11
+ "Language-Team: Belarusian (http://www.transifex.com/wp-translations/cmb2/language/be/)\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "Language: be\n"
16
+ "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
17
+ "X-Generator: grunt-wp-i18n 0.4.9\n"
18
+ "X-Poedit-Basepath: ../\n"
19
+ "X-Poedit-Bookmarks: \n"
20
+ "X-Poedit-Country: United States\n"
21
+ "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
22
+ "X-Poedit-SearchPath-0: .\n"
23
+ "X-Poedit-SourceCharset: UTF-8\n"
24
+ "X-Textdomain-Support: yes\n"
25
+
26
+ #: example-functions.php:117 tests/test-cmb-field.php:255
27
+ msgid "Test Metabox"
28
+ msgstr ""
29
+
30
+ #: example-functions.php:130 example-functions.php:436
31
+ msgid "Test Text"
32
+ msgstr ""
33
+
34
+ #: example-functions.php:131 example-functions.php:144
35
+ #: example-functions.php:157 example-functions.php:165
36
+ #: example-functions.php:173 example-functions.php:182
37
+ #: example-functions.php:190 example-functions.php:205
38
+ #: example-functions.php:213 example-functions.php:221
39
+ #: example-functions.php:238 example-functions.php:247
40
+ #: example-functions.php:260 example-functions.php:267
41
+ #: example-functions.php:274 example-functions.php:288
42
+ #: example-functions.php:301 example-functions.php:314
43
+ #: example-functions.php:326 example-functions.php:335
44
+ #: example-functions.php:343 example-functions.php:352
45
+ #: example-functions.php:359 example-functions.php:373
46
+ #: example-functions.php:437 example-functions.php:528
47
+ #: example-functions.php:536 example-functions.php:543
48
+ #: example-functions.php:550 example-functions.php:557
49
+ #: example-functions.php:564 example-functions.php:571
50
+ #: example-functions.php:598 example-functions.php:606
51
+ #: example-functions.php:613 example-functions.php:650
52
+ #: tests/test-cmb-field.php:267
53
+ msgid "field description (optional)"
54
+ msgstr ""
55
+
56
+ #: example-functions.php:143
57
+ msgid "Test Text Small"
58
+ msgstr ""
59
+
60
+ #: example-functions.php:156
61
+ msgid "Test Text Medium"
62
+ msgstr ""
63
+
64
+ #: example-functions.php:164
65
+ msgid "Custom Rendered Field"
66
+ msgstr ""
67
+
68
+ #: example-functions.php:172
69
+ msgid "Website URL"
70
+ msgstr ""
71
+
72
+ #: example-functions.php:181
73
+ msgid "Test Text Email"
74
+ msgstr ""
75
+
76
+ #: example-functions.php:189
77
+ msgid "Test Time"
78
+ msgstr ""
79
+
80
+ #: example-functions.php:197 example-functions.php:198
81
+ msgid "Time zone"
82
+ msgstr ""
83
+
84
+ #: example-functions.php:204
85
+ msgid "Test Date Picker"
86
+ msgstr ""
87
+
88
+ #: example-functions.php:212
89
+ msgid "Test Date Picker (UNIX timestamp)"
90
+ msgstr ""
91
+
92
+ #: example-functions.php:220
93
+ msgid "Test Date/Time Picker Combo (UNIX timestamp)"
94
+ msgstr ""
95
+
96
+ #: example-functions.php:237
97
+ msgid "Test Money"
98
+ msgstr ""
99
+
100
+ #: example-functions.php:246
101
+ msgid "Test Color Picker"
102
+ msgstr ""
103
+
104
+ #: example-functions.php:259
105
+ msgid "Test Text Area"
106
+ msgstr ""
107
+
108
+ #: example-functions.php:266
109
+ msgid "Test Text Area Small"
110
+ msgstr ""
111
+
112
+ #: example-functions.php:273
113
+ msgid "Test Text Area for Code"
114
+ msgstr ""
115
+
116
+ #: example-functions.php:280
117
+ msgid "Test Title Weeeee"
118
+ msgstr ""
119
+
120
+ #: example-functions.php:281
121
+ msgid "This is a title description"
122
+ msgstr ""
123
+
124
+ #: example-functions.php:287
125
+ msgid "Test Select"
126
+ msgstr ""
127
+
128
+ #: example-functions.php:293 example-functions.php:306
129
+ #: example-functions.php:318
130
+ msgid "Option One"
131
+ msgstr ""
132
+
133
+ #: example-functions.php:294 example-functions.php:307
134
+ #: example-functions.php:319
135
+ msgid "Option Two"
136
+ msgstr ""
137
+
138
+ #: example-functions.php:295 example-functions.php:308
139
+ #: example-functions.php:320
140
+ msgid "Option Three"
141
+ msgstr ""
142
+
143
+ #: example-functions.php:300
144
+ msgid "Test Radio inline"
145
+ msgstr ""
146
+
147
+ #: example-functions.php:313
148
+ msgid "Test Radio"
149
+ msgstr ""
150
+
151
+ #: example-functions.php:325
152
+ msgid "Test Taxonomy Radio"
153
+ msgstr ""
154
+
155
+ #: example-functions.php:334
156
+ msgid "Test Taxonomy Select"
157
+ msgstr ""
158
+
159
+ #: example-functions.php:342
160
+ msgid "Test Taxonomy Multi Checkbox"
161
+ msgstr ""
162
+
163
+ #: example-functions.php:351
164
+ msgid "Test Checkbox"
165
+ msgstr ""
166
+
167
+ #: example-functions.php:358 tests/test-cmb-field.php:266
168
+ msgid "Test Multi Checkbox"
169
+ msgstr ""
170
+
171
+ #: example-functions.php:364 tests/test-cmb-field.php:272
172
+ msgid "Check One"
173
+ msgstr ""
174
+
175
+ #: example-functions.php:365 tests/test-cmb-field.php:273
176
+ msgid "Check Two"
177
+ msgstr ""
178
+
179
+ #: example-functions.php:366 tests/test-cmb-field.php:274
180
+ msgid "Check Three"
181
+ msgstr ""
182
+
183
+ #: example-functions.php:372
184
+ msgid "Test wysiwyg"
185
+ msgstr ""
186
+
187
+ #: example-functions.php:380
188
+ msgid "Test Image"
189
+ msgstr ""
190
+
191
+ #: example-functions.php:381
192
+ msgid "Upload an image or enter a URL."
193
+ msgstr ""
194
+
195
+ #: example-functions.php:387
196
+ msgid "Multiple Files"
197
+ msgstr ""
198
+
199
+ #: example-functions.php:388
200
+ msgid "Upload or add multiple images/attachments."
201
+ msgstr ""
202
+
203
+ #: example-functions.php:395
204
+ msgid "oEmbed"
205
+ msgstr ""
206
+
207
+ #: example-functions.php:396
208
+ msgid ""
209
+ "Enter a youtube, twitter, or instagram URL. Supports services listed at <a "
210
+ "href=\"http://codex.wordpress.org/Embeds\">http://codex.wordpress.org/Embeds</a>."
211
+ msgstr ""
212
+
213
+ #: example-functions.php:427
214
+ msgid "About Page Metabox"
215
+ msgstr ""
216
+
217
+ #: example-functions.php:456
218
+ msgid "Repeating Field Group"
219
+ msgstr ""
220
+
221
+ #: example-functions.php:464
222
+ msgid "Generates reusable form entries"
223
+ msgstr ""
224
+
225
+ #: example-functions.php:466
226
+ msgid "Entry {#}"
227
+ msgstr ""
228
+
229
+ #: example-functions.php:467
230
+ msgid "Add Another Entry"
231
+ msgstr ""
232
+
233
+ #: example-functions.php:468
234
+ msgid "Remove Entry"
235
+ msgstr ""
236
+
237
+ #: example-functions.php:481
238
+ msgid "Entry Title"
239
+ msgstr ""
240
+
241
+ #: example-functions.php:488
242
+ msgid "Description"
243
+ msgstr "Апісанне"
244
+
245
+ #: example-functions.php:489
246
+ msgid "Write a short description for this entry"
247
+ msgstr ""
248
+
249
+ #: example-functions.php:495
250
+ msgid "Entry Image"
251
+ msgstr ""
252
+
253
+ #: example-functions.php:501
254
+ msgid "Image Caption"
255
+ msgstr ""
256
+
257
+ #: example-functions.php:520
258
+ msgid "User Profile Metabox"
259
+ msgstr ""
260
+
261
+ #: example-functions.php:527 example-functions.php:597
262
+ msgid "Extra Info"
263
+ msgstr ""
264
+
265
+ #: example-functions.php:535
266
+ msgid "Avatar"
267
+ msgstr ""
268
+
269
+ #: example-functions.php:542
270
+ msgid "Facebook URL"
271
+ msgstr ""
272
+
273
+ #: example-functions.php:549
274
+ msgid "Twitter URL"
275
+ msgstr ""
276
+
277
+ #: example-functions.php:556
278
+ msgid "Google+ URL"
279
+ msgstr ""
280
+
281
+ #: example-functions.php:563
282
+ msgid "Linkedin URL"
283
+ msgstr ""
284
+
285
+ #: example-functions.php:570
286
+ msgid "User Field"
287
+ msgstr ""
288
+
289
+ #: example-functions.php:590
290
+ msgid "Category Metabox"
291
+ msgstr ""
292
+
293
+ #: example-functions.php:605
294
+ msgid "Term Image"
295
+ msgstr ""
296
+
297
+ #: example-functions.php:612
298
+ msgid "Arbitrary Term Field"
299
+ msgstr ""
300
+
301
+ #: example-functions.php:634
302
+ msgid "Theme Options Metabox"
303
+ msgstr ""
304
+
305
+ #: example-functions.php:649
306
+ msgid "Site Background Color"
307
+ msgstr ""
308
+
309
+ #: includes/CMB2.php:129
310
+ msgid "Metabox configuration is required to have an ID parameter"
311
+ msgstr ""
312
+
313
+ #: includes/CMB2.php:418
314
+ msgid "Click to toggle"
315
+ msgstr ""
316
+
317
+ #: includes/CMB2_Ajax.php:71
318
+ msgid "Please Try Again"
319
+ msgstr ""
320
+
321
+ #: includes/CMB2_Ajax.php:173 tests/cmb-tests-base.php:59
322
+ msgid "Remove Embed"
323
+ msgstr ""
324
+
325
+ #: includes/CMB2_Ajax.php:177 tests/cmb-tests-base.php:64
326
+ msgid "No oEmbed Results Found for %s. View more info at"
327
+ msgstr ""
328
+
329
+ #: includes/CMB2_Field.php:1186
330
+ msgid "Add Group"
331
+ msgstr ""
332
+
333
+ #: includes/CMB2_Field.php:1187
334
+ msgid "Remove Group"
335
+ msgstr ""
336
+
337
+ #: includes/CMB2_Field.php:1209 includes/CMB2_Field.php:1213
338
+ #: tests/test-cmb-field.php:229
339
+ msgid "None"
340
+ msgstr "Няма"
341
+
342
+ #: includes/CMB2_Field.php:1269
343
+ msgid "Sorry, this field does not have a cmb_id specified."
344
+ msgstr ""
345
+
346
+ #: includes/CMB2_Field_Display.php:408 includes/CMB2_JS.php:139
347
+ #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
348
+ #: tests/test-cmb-types.php:701
349
+ msgid "File:"
350
+ msgstr ""
351
+
352
+ #: includes/CMB2_JS.php:86 includes/CMB2_JS.php:119
353
+ msgid "Clear"
354
+ msgstr "Ачысціць"
355
+
356
+ #: includes/CMB2_JS.php:87
357
+ msgid "Default"
358
+ msgstr "Па змаўчанні"
359
+
360
+ #: includes/CMB2_JS.php:88
361
+ msgid "Select Color"
362
+ msgstr "Абраць колер"
363
+
364
+ #: includes/CMB2_JS.php:89
365
+ msgid "Current Color"
366
+ msgstr "Бягучы колер"
367
+
368
+ #: includes/CMB2_JS.php:110
369
+ msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
370
+ msgstr ""
371
+
372
+ #: includes/CMB2_JS.php:111
373
+ msgid "Su, Mo, Tu, We, Th, Fr, Sa"
374
+ msgstr ""
375
+
376
+ #: includes/CMB2_JS.php:112
377
+ msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
378
+ msgstr ""
379
+
380
+ #: includes/CMB2_JS.php:113
381
+ msgid ""
382
+ "January, February, March, April, May, June, July, August, September, "
383
+ "October, November, December"
384
+ msgstr ""
385
+
386
+ #: includes/CMB2_JS.php:114
387
+ msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
388
+ msgstr ""
389
+
390
+ #: includes/CMB2_JS.php:115
391
+ msgid "Next"
392
+ msgstr "Наступнае"
393
+
394
+ #: includes/CMB2_JS.php:116
395
+ msgid "Prev"
396
+ msgstr "Папярэдняе"
397
+
398
+ #: includes/CMB2_JS.php:117
399
+ msgid "Today"
400
+ msgstr ""
401
+
402
+ #: includes/CMB2_JS.php:118 includes/CMB2_JS.php:128
403
+ msgid "Done"
404
+ msgstr "Гатова"
405
+
406
+ #: includes/CMB2_JS.php:122
407
+ msgid "Choose Time"
408
+ msgstr ""
409
+
410
+ #: includes/CMB2_JS.php:123
411
+ msgid "Time"
412
+ msgstr ""
413
+
414
+ #: includes/CMB2_JS.php:124
415
+ msgid "Hour"
416
+ msgstr ""
417
+
418
+ #: includes/CMB2_JS.php:125
419
+ msgid "Minute"
420
+ msgstr ""
421
+
422
+ #: includes/CMB2_JS.php:126
423
+ msgid "Second"
424
+ msgstr ""
425
+
426
+ #: includes/CMB2_JS.php:127
427
+ msgid "Now"
428
+ msgstr ""
429
+
430
+ #: includes/CMB2_JS.php:135
431
+ msgid "Use this file"
432
+ msgstr ""
433
+
434
+ #: includes/CMB2_JS.php:136
435
+ msgid "Use these files"
436
+ msgstr ""
437
+
438
+ #: includes/CMB2_JS.php:137 includes/types/CMB2_Type_File_Base.php:61
439
+ msgid "Remove Image"
440
+ msgstr ""
441
+
442
+ #: includes/CMB2_JS.php:138 includes/CMB2_Types.php:257
443
+ #: includes/types/CMB2_Type_File_Base.php:80 tests/test-cmb-types-base.php:143
444
+ #: tests/test-cmb-types.php:47 tests/test-cmb-types.php:55
445
+ #: tests/test-cmb-types.php:701
446
+ msgid "Remove"
447
+ msgstr "Выдаліць"
448
+
449
+ #: includes/CMB2_JS.php:140 includes/types/CMB2_Type_File_Base.php:78
450
+ #: tests/test-cmb-types-base.php:143 tests/test-cmb-types.php:701
451
+ msgid "Download"
452
+ msgstr ""
453
+
454
+ #: includes/CMB2_JS.php:141
455
+ msgid "Select / Deselect All"
456
+ msgstr ""
457
+
458
+ #: includes/CMB2_Types.php:194
459
+ msgid "Add Row"
460
+ msgstr ""
461
+
462
+ #: includes/CMB2_hookup.php:145
463
+ msgid ""
464
+ "Term Metadata is a WordPress > 4.4 feature. Please upgrade your WordPress "
465
+ "install."
466
+ msgstr ""
467
+
468
+ #: includes/CMB2_hookup.php:149
469
+ msgid "Term metaboxes configuration requires a 'taxonomies' parameter"
470
+ msgstr ""
471
+
472
+ #: includes/helper-functions.php:93
473
+ msgid "No oEmbed Results Found for %s. View more info at %s"
474
+ msgstr ""
475
+
476
+ #: includes/helper-functions.php:279
477
+ msgid "Save"
478
+ msgstr "Захаваць"
479
+
480
+ #: includes/types/CMB2_Type_File.php:36 tests/test-cmb-types.php:683
481
+ #: tests/test-cmb-types.php:701
482
+ msgid "Add or Upload File"
483
+ msgstr ""
484
+
485
+ #: includes/types/CMB2_Type_File_List.php:36 tests/test-cmb-types.php:639
486
+ #: tests/test-cmb-types.php:663
487
+ msgid "Add or Upload Files"
488
+ msgstr ""
489
+
490
+ #: includes/types/CMB2_Type_Taxonomy_Multicheck.php:27
491
+ #: includes/types/CMB2_Type_Taxonomy_Radio.php:25
492
+ msgid "No terms"
493
+ msgstr ""
494
+
495
+ #. Plugin Name of the plugin/theme
496
+ msgid "CMB2"
497
+ msgstr ""
498
+
499
+ #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
+ msgstr ""
502
+
503
+ #. Description of the plugin/theme
504
+ msgid ""
505
+ "CMB2 will create metaboxes and forms with custom fields that will blow your "
506
+ "mind."
507
+ msgstr ""
508
+
509
+ #. Author of the plugin/theme
510
+ msgid "WebDevStudios"
511
+ msgstr ""
512
+
513
+ #. Author URI of the plugin/theme
514
+ msgid "http://webdevstudios.com"
515
+ msgstr ""
516
+
517
+ #: includes/CMB2_JS.php:109
518
+ msgctxt "Valid formatDate string for jquery-ui datepicker"
519
+ msgid "mm/dd/yy"
520
+ msgstr ""
521
+
522
+ #: includes/CMB2_JS.php:129
523
+ msgctxt ""
524
+ "Valid formatting string, as per "
525
+ "http://trentrichardson.com/examples/timepicker/"
526
+ msgid "hh:mm TT"
527
+ msgstr ""
includes/vendor/cmb2/languages/cmb2-bg.mo ADDED
Binary file
includes/vendor/cmb2/languages/cmb2-bg.po ADDED
@@ -0,0 +1,485 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2015 WebDevStudios
2
+ # This file is distributed under the same license as the CMB2 package.
3
+ # Translators:
4
+ msgid ""
5
+ msgstr ""
6
+ "Project-Id-Version: CMB2\n"
7
+ "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
8
+ "POT-Creation-Date: 2015-06-02 16:12:19+00:00\n"
9
+ "PO-Revision-Date: 2015-06-02 15:55+0000\n"
10
+ "Last-Translator: FxB <fxb@wp-translations.org>\n"
11
+ "Language-Team: Bulgarian (http://www.transifex.com/projects/p/cmb2/language/bg/)\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "Language: bg\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+ "X-Generator: grunt-wp-i18n 0.4.9\n"
18
+ "X-Poedit-Basepath: ../\n"
19
+ "X-Poedit-Bookmarks: \n"
20
+ "X-Poedit-Country: United States\n"
21
+ "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
22
+ "X-Poedit-SearchPath-0: .\n"
23
+ "X-Poedit-SourceCharset: UTF-8\n"
24
+ "X-Textdomain-Support: yes\n"
25
+
26
+ #: example-functions.php:82 tests/test-cmb-field.php:206
27
+ msgid "Test Metabox"
28
+ msgstr ""
29
+
30
+ #: example-functions.php:93 example-functions.php:380
31
+ msgid "Test Text"
32
+ msgstr ""
33
+
34
+ #: example-functions.php:94 example-functions.php:106
35
+ #: example-functions.php:114 example-functions.php:122
36
+ #: example-functions.php:131 example-functions.php:139
37
+ #: example-functions.php:153 example-functions.php:160
38
+ #: example-functions.php:168 example-functions.php:185
39
+ #: example-functions.php:194 example-functions.php:202
40
+ #: example-functions.php:209 example-functions.php:216
41
+ #: example-functions.php:230 example-functions.php:243
42
+ #: example-functions.php:256 example-functions.php:268
43
+ #: example-functions.php:277 example-functions.php:285
44
+ #: example-functions.php:294 example-functions.php:301
45
+ #: example-functions.php:315 example-functions.php:381
46
+ #: example-functions.php:475 example-functions.php:483
47
+ #: example-functions.php:490 example-functions.php:497
48
+ #: example-functions.php:504 example-functions.php:511
49
+ #: example-functions.php:518 example-functions.php:556
50
+ #: tests/test-cmb-field.php:218
51
+ msgid "field description (optional)"
52
+ msgstr ""
53
+
54
+ #: example-functions.php:105
55
+ msgid "Test Text Small"
56
+ msgstr ""
57
+
58
+ #: example-functions.php:113
59
+ msgid "Test Text Medium"
60
+ msgstr ""
61
+
62
+ #: example-functions.php:121
63
+ msgid "Website URL"
64
+ msgstr ""
65
+
66
+ #: example-functions.php:130
67
+ msgid "Test Text Email"
68
+ msgstr ""
69
+
70
+ #: example-functions.php:138
71
+ msgid "Test Time"
72
+ msgstr ""
73
+
74
+ #: example-functions.php:145 example-functions.php:146
75
+ msgid "Time zone"
76
+ msgstr ""
77
+
78
+ #: example-functions.php:152
79
+ msgid "Test Date Picker"
80
+ msgstr ""
81
+
82
+ #: example-functions.php:159
83
+ msgid "Test Date Picker (UNIX timestamp)"
84
+ msgstr ""
85
+
86
+ #: example-functions.php:167
87
+ msgid "Test Date/Time Picker Combo (UNIX timestamp)"
88
+ msgstr ""
89
+
90
+ #: example-functions.php:184
91
+ msgid "Test Money"
92
+ msgstr ""
93
+
94
+ #: example-functions.php:193
95
+ msgid "Test Color Picker"
96
+ msgstr ""
97
+
98
+ #: example-functions.php:201
99
+ msgid "Test Text Area"
100
+ msgstr ""
101
+
102
+ #: example-functions.php:208
103
+ msgid "Test Text Area Small"
104
+ msgstr ""
105
+
106
+ #: example-functions.php:215
107
+ msgid "Test Text Area for Code"
108
+ msgstr ""
109
+
110
+ #: example-functions.php:222
111
+ msgid "Test Title Weeeee"
112
+ msgstr ""
113
+
114
+ #: example-functions.php:223
115
+ msgid "This is a title description"
116
+ msgstr ""
117
+
118
+ #: example-functions.php:229
119
+ msgid "Test Select"
120
+ msgstr ""
121
+
122
+ #: example-functions.php:235 example-functions.php:248
123
+ #: example-functions.php:260
124
+ msgid "Option One"
125
+ msgstr ""
126
+
127
+ #: example-functions.php:236 example-functions.php:249
128
+ #: example-functions.php:261
129
+ msgid "Option Two"
130
+ msgstr ""
131
+
132
+ #: example-functions.php:237 example-functions.php:250
133
+ #: example-functions.php:262
134
+ msgid "Option Three"
135
+ msgstr ""
136
+
137
+ #: example-functions.php:242
138
+ msgid "Test Radio inline"
139
+ msgstr ""
140
+
141
+ #: example-functions.php:255
142
+ msgid "Test Radio"
143
+ msgstr ""
144
+
145
+ #: example-functions.php:267
146
+ msgid "Test Taxonomy Radio"
147
+ msgstr ""
148
+
149
+ #: example-functions.php:276
150
+ msgid "Test Taxonomy Select"
151
+ msgstr ""
152
+
153
+ #: example-functions.php:284
154
+ msgid "Test Taxonomy Multi Checkbox"
155
+ msgstr ""
156
+
157
+ #: example-functions.php:293
158
+ msgid "Test Checkbox"
159
+ msgstr ""
160
+
161
+ #: example-functions.php:300 tests/test-cmb-field.php:217
162
+ msgid "Test Multi Checkbox"
163
+ msgstr ""
164
+
165
+ #: example-functions.php:306 tests/test-cmb-field.php:223
166
+ msgid "Check One"
167
+ msgstr ""
168
+
169
+ #: example-functions.php:307 tests/test-cmb-field.php:224
170
+ msgid "Check Two"
171
+ msgstr ""
172
+
173
+ #: example-functions.php:308 tests/test-cmb-field.php:225
174
+ msgid "Check Three"
175
+ msgstr ""
176
+
177
+ #: example-functions.php:314
178
+ msgid "Test wysiwyg"
179
+ msgstr ""
180
+
181
+ #: example-functions.php:322
182
+ msgid "Test Image"
183
+ msgstr ""
184
+
185
+ #: example-functions.php:323
186
+ msgid "Upload an image or enter a URL."
187
+ msgstr ""
188
+
189
+ #: example-functions.php:329
190
+ msgid "Multiple Files"
191
+ msgstr ""
192
+
193
+ #: example-functions.php:330
194
+ msgid "Upload or add multiple images/attachments."
195
+ msgstr ""
196
+
197
+ #: example-functions.php:337
198
+ msgid "oEmbed"
199
+ msgstr ""
200
+
201
+ #: example-functions.php:338
202
+ msgid ""
203
+ "Enter a youtube, twitter, or instagram URL. Supports services listed at <a "
204
+ "href=\"http://codex.wordpress.org/Embeds\">http://codex.wordpress.org/Embeds</a>."
205
+ msgstr ""
206
+
207
+ #: example-functions.php:371
208
+ msgid "About Page Metabox"
209
+ msgstr ""
210
+
211
+ #: example-functions.php:402
212
+ msgid "Repeating Field Group"
213
+ msgstr ""
214
+
215
+ #: example-functions.php:410
216
+ msgid "Generates reusable form entries"
217
+ msgstr ""
218
+
219
+ #: example-functions.php:412
220
+ msgid "Entry {#}"
221
+ msgstr ""
222
+
223
+ #: example-functions.php:413
224
+ msgid "Add Another Entry"
225
+ msgstr ""
226
+
227
+ #: example-functions.php:414
228
+ msgid "Remove Entry"
229
+ msgstr ""
230
+
231
+ #: example-functions.php:426
232
+ msgid "Entry Title"
233
+ msgstr ""
234
+
235
+ #: example-functions.php:433
236
+ msgid "Description"
237
+ msgstr ""
238
+
239
+ #: example-functions.php:434
240
+ msgid "Write a short description for this entry"
241
+ msgstr ""
242
+
243
+ #: example-functions.php:440
244
+ msgid "Entry Image"
245
+ msgstr ""
246
+
247
+ #: example-functions.php:446
248
+ msgid "Image Caption"
249
+ msgstr ""
250
+
251
+ #: example-functions.php:467
252
+ msgid "User Profile Metabox"
253
+ msgstr ""
254
+
255
+ #: example-functions.php:474
256
+ msgid "Extra Info"
257
+ msgstr ""
258
+
259
+ #: example-functions.php:482
260
+ msgid "Avatar"
261
+ msgstr ""
262
+
263
+ #: example-functions.php:489
264
+ msgid "Facebook URL"
265
+ msgstr ""
266
+
267
+ #: example-functions.php:496
268
+ msgid "Twitter URL"
269
+ msgstr ""
270
+
271
+ #: example-functions.php:503
272
+ msgid "Google+ URL"
273
+ msgstr ""
274
+
275
+ #: example-functions.php:510
276
+ msgid "Linkedin URL"
277
+ msgstr ""
278
+
279
+ #: example-functions.php:517
280
+ msgid "User Field"
281
+ msgstr ""
282
+
283
+ #: example-functions.php:540
284
+ msgid "Theme Options Metabox"
285
+ msgstr ""
286
+
287
+ #: example-functions.php:555
288
+ msgid "Site Background Color"
289
+ msgstr ""
290
+
291
+ #: includes/CMB2.php:120
292
+ msgid "Metabox configuration is required to have an ID parameter"
293
+ msgstr ""
294
+
295
+ #: includes/CMB2.php:326
296
+ msgid "Click to toggle"
297
+ msgstr ""
298
+
299
+ #: includes/CMB2_Ajax.php:40
300
+ msgid "Please Try Again"
301
+ msgstr ""
302
+
303
+ #: includes/CMB2_Ajax.php:135 tests/test-cmb-types.php:786
304
+ msgid "Remove Embed"
305
+ msgstr ""
306
+
307
+ #: includes/CMB2_Ajax.php:139 tests/test-cmb-types.php:787
308
+ msgid "No oEmbed Results Found for %s. View more info at"
309
+ msgstr ""
310
+
311
+ #: includes/CMB2_Field.php:891
312
+ msgid "Add Group"
313
+ msgstr ""
314
+
315
+ #: includes/CMB2_Field.php:892
316
+ msgid "Remove Group"
317
+ msgstr ""
318
+
319
+ #: includes/CMB2_Field.php:914 includes/CMB2_Field.php:918
320
+ #: tests/test-cmb-field.php:178
321
+ msgid "None"
322
+ msgstr ""
323
+
324
+ #: includes/CMB2_JS.php:86 includes/CMB2_JS.php:119
325
+ msgid "Clear"
326
+ msgstr ""
327
+
328
+ #: includes/CMB2_JS.php:87
329
+ msgid "Default"
330
+ msgstr "По подразбиране"
331
+
332
+ #: includes/CMB2_JS.php:88
333
+ msgid "Select Color"
334
+ msgstr ""
335
+
336
+ #: includes/CMB2_JS.php:89
337
+ msgid "Current Color"
338
+ msgstr ""
339
+
340
+ #: includes/CMB2_JS.php:110
341
+ msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
342
+ msgstr ""
343
+
344
+ #: includes/CMB2_JS.php:111
345
+ msgid "Su, Mo, Tu, We, Th, Fr, Sa"
346
+ msgstr ""
347
+
348
+ #: includes/CMB2_JS.php:112
349
+ msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
350
+ msgstr ""
351
+
352
+ #: includes/CMB2_JS.php:113
353
+ msgid ""
354
+ "January, February, March, April, May, June, July, August, September, "
355
+ "October, November, December"
356
+ msgstr ""
357
+
358
+ #: includes/CMB2_JS.php:114
359
+ msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
360
+ msgstr ""
361
+
362
+ #: includes/CMB2_JS.php:115
363
+ msgid "Next"
364
+ msgstr "Следваща"
365
+
366
+ #: includes/CMB2_JS.php:116
367
+ msgid "Prev"
368
+ msgstr ""
369
+
370
+ #: includes/CMB2_JS.php:117
371
+ msgid "Today"
372
+ msgstr ""
373
+
374
+ #: includes/CMB2_JS.php:118 includes/CMB2_JS.php:128
375
+ msgid "Done"
376
+ msgstr ""
377
+
378
+ #: includes/CMB2_JS.php:122
379
+ msgid "Choose Time"
380
+ msgstr ""
381
+
382
+ #: includes/CMB2_JS.php:123
383
+ msgid "Time"
384
+ msgstr ""
385
+
386
+ #: includes/CMB2_JS.php:124
387
+ msgid "Hour"
388
+ msgstr ""
389
+
390
+ #: includes/CMB2_JS.php:125
391
+ msgid "Minute"
392
+ msgstr ""
393
+
394
+ #: includes/CMB2_JS.php:126
395
+ msgid "Second"
396
+ msgstr ""
397
+
398
+ #: includes/CMB2_JS.php:127
399
+ msgid "Now"
400
+ msgstr ""
401
+
402
+ #: includes/CMB2_JS.php:135
403
+ msgid "Use this file"
404
+ msgstr ""
405
+
406
+ #: includes/CMB2_JS.php:136 includes/CMB2_Types.php:983
407
+ msgid "Remove Image"
408
+ msgstr ""
409
+
410
+ #: includes/CMB2_JS.php:137 includes/CMB2_Types.php:356
411
+ #: includes/CMB2_Types.php:1002 tests/test-cmb-types.php:155
412
+ #: tests/test-cmb-types.php:163 tests/test-cmb-types.php:735
413
+ #: tests/test-cmb-types.php:760
414
+ msgid "Remove"
415
+ msgstr ""
416
+
417
+ #: includes/CMB2_JS.php:138 includes/CMB2_Types.php:997
418
+ #: tests/test-cmb-types.php:736 tests/test-cmb-types.php:761
419
+ msgid "File:"
420
+ msgstr ""
421
+
422
+ #: includes/CMB2_JS.php:139 includes/CMB2_Types.php:1000
423
+ #: tests/test-cmb-types.php:734 tests/test-cmb-types.php:759
424
+ msgid "Download"
425
+ msgstr ""
426
+
427
+ #: includes/CMB2_JS.php:140
428
+ msgid "Select / Deselect All"
429
+ msgstr ""
430
+
431
+ #: includes/CMB2_Types.php:297
432
+ msgid "Add Row"
433
+ msgstr ""
434
+
435
+ #: includes/CMB2_Types.php:734 includes/CMB2_Types.php:782
436
+ msgid "No terms"
437
+ msgstr ""
438
+
439
+ #: includes/CMB2_Types.php:847 tests/test-cmb-types.php:711
440
+ #: tests/test-cmb-types.php:737
441
+ msgid "Add or Upload Files"
442
+ msgstr ""
443
+
444
+ #: includes/CMB2_Types.php:907 tests/test-cmb-types.php:747
445
+ #: tests/test-cmb-types.php:762
446
+ msgid "Add or Upload File"
447
+ msgstr ""
448
+
449
+ #: includes/helper-functions.php:249
450
+ msgid "Save"
451
+ msgstr ""
452
+
453
+ #. Plugin Name of the plugin/theme
454
+ msgid "CMB2"
455
+ msgstr ""
456
+
457
+ #. Plugin URI of the plugin/theme
458
+ msgid "https://github.com/CMB2/CMB2"
459
+ msgstr ""
460
+
461
+ #. Description of the plugin/theme
462
+ msgid ""
463
+ "CMB2 will create metaboxes and forms with custom fields that will blow your "
464
+ "mind."
465
+ msgstr ""
466
+
467
+ #. Author of the plugin/theme
468
+ msgid "WebDevStudios"
469
+ msgstr ""
470
+
471
+ #. Author URI of the plugin/theme
472
+ msgid "http://webdevstudios.com"
473
+ msgstr ""
474
+
475
+ #: includes/CMB2_JS.php:109
476
+ msgctxt "Valid formatDate string for jquery-ui datepicker"
477
+ msgid "mm/dd/yy"
478
+ msgstr ""
479
+
480
+ #: includes/CMB2_JS.php:129
481
+ msgctxt ""
482
+ "Valid formatting string, as per "
483
+ "http://trentrichardson.com/examples/timepicker/"
484
+ msgid "hh:mm TT"
485
+ msgstr ""
includes/vendor/cmb2/languages/cmb2-bg_BG.mo ADDED
Binary file
includes/vendor/cmb2/languages/cmb2-bg_BG.po ADDED
@@ -0,0 +1,527 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2016 WebDevStudios
2
+ # This file is distributed under the same license as the CMB2 package.
3
+ # Translators:
4
+ msgid ""
5
+ msgstr ""
6
+ "Project-Id-Version: CMB2\n"
7
+ "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
8
+ "POT-Creation-Date: 2016-06-27 17:01:22+00:00\n"
9
+ "PO-Revision-Date: 2016-06-27 17:01+0000\n"
10
+ "Last-Translator: Justin Sternberg <me@jtsternberg.com>\n"
11
+ "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/wp-translations/cmb2/language/bg_BG/)\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "Language: bg_BG\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+ "X-Generator: grunt-wp-i18n 0.4.9\n"
18
+ "X-Poedit-Basepath: ../\n"
19
+ "X-Poedit-Bookmarks: \n"
20
+ "X-Poedit-Country: United States\n"
21
+ "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
22
+ "X-Poedit-SearchPath-0: .\n"
23
+ "X-Poedit-SourceCharset: UTF-8\n"
24
+ "X-Textdomain-Support: yes\n"
25
+
26
+ #: example-functions.php:117 tests/test-cmb-field.php:255
27
+ msgid "Test Metabox"
28
+ msgstr ""
29
+
30
+ #: example-functions.php:130 example-functions.php:436
31
+ msgid "Test Text"
32
+ msgstr ""
33
+
34
+ #: example-functions.php:131 example-functions.php:144
35
+ #: example-functions.php:157 example-functions.php:165
36
+ #: example-functions.php:173 example-functions.php:182
37
+ #: example-functions.php:190 example-functions.php:205
38
+ #: example-functions.php:213 example-functions.php:221
39
+ #: example-functions.php:238 example-functions.php:247
40
+ #: example-functions.php:260 example-functions.php:267
41
+ #: example-functions.php:274 example-functions.php:288
42
+ #: example-functions.php:301 example-functions.php:314
43
+ #: example-functions.php:326 example-functions.php:335
44
+ #: example-functions.php:343 example-functions.php:352
45
+ #: example-functions.php:359 example-functions.php:373
46
+ #: example-functions.php:437 example-functions.php:528
47
+ #: example-functions.php:536 example-functions.php:543
48
+ #: example-functions.php:550 example-functions.php:557
49
+ #: example-functions.php:564 example-functions.php:571
50
+ #: example-functions.php:598 example-functions.php:606
51
+ #: example-functions.php:613 example-functions.php:650
52
+ #: tests/test-cmb-field.php:267
53
+ msgid "field description (optional)"
54
+ msgstr ""
55
+
56
+ #: example-functions.php:143
57
+ msgid "Test Text Small"
58
+ msgstr ""
59
+
60
+ #: example-functions.php:156
61
+ msgid "Test Text Medium"
62
+ msgstr ""
63
+
64
+ #: example-functions.php:164
65
+ msgid "Custom Rendered Field"
66
+ msgstr ""
67
+
68
+ #: example-functions.php:172
69
+ msgid "Website URL"
70
+ msgstr ""
71
+
72
+ #: example-functions.php:181
73
+ msgid "Test Text Email"
74
+ msgstr ""
75
+
76
+ #: example-functions.php:189
77
+ msgid "Test Time"
78
+ msgstr ""
79
+
80
+ #: example-functions.php:197 example-functions.php:198
81
+ msgid "Time zone"
82
+ msgstr ""
83
+
84
+ #: example-functions.php:204
85
+ msgid "Test Date Picker"
86
+ msgstr ""
87
+
88
+ #: example-functions.php:212
89
+ msgid "Test Date Picker (UNIX timestamp)"
90
+ msgstr ""
91
+
92
+ #: example-functions.php:220
93
+ msgid "Test Date/Time Picker Combo (UNIX timestamp)"
94
+ msgstr ""
95
+
96
+ #: example-functions.php:237
97
+ msgid "Test Money"
98
+ msgstr ""
99
+
100
+ #: example-functions.php:246
101
+ msgid "Test Color Picker"
102
+ msgstr ""
103
+
104
+ #: example-functions.php:259
105
+ msgid "Test Text Area"
106
+ msgstr ""
107
+
108
+ #: example-functions.php:266
109
+ msgid "Test Text Area Small"
110
+ msgstr ""
111
+
112
+ #: example-functions.php:273
113
+ msgid "Test Text Area for Code"
114
+ msgstr ""
115
+
116
+ #: example-functions.php:280
117
+ msgid "Test Title Weeeee"
118
+ msgstr ""
119
+
120
+ #: example-functions.php:281
121
+ msgid "This is a title description"
122
+ msgstr ""
123
+
124
+ #: example-functions.php:287
125
+ msgid "Test Select"
126
+ msgstr ""
127
+
128
+ #: example-functions.php:293 example-functions.php:306
129
+ #: example-functions.php:318
130
+ msgid "Option One"
131
+ msgstr ""
132
+
133
+ #: example-functions.php:294 example-functions.php:307
134
+ #: example-functions.php:319
135
+ msgid "Option Two"
136
+ msgstr ""
137
+
138
+ #: example-functions.php:295 example-functions.php:308
139
+ #: example-functions.php:320
140
+ msgid "Option Three"
141
+ msgstr ""
142
+
143
+ #: example-functions.php:300
144
+ msgid "Test Radio inline"
145
+ msgstr ""
146
+
147
+ #: example-functions.php:313
148
+ msgid "Test Radio"
149
+ msgstr ""
150
+
151
+ #: example-functions.php:325
152
+ msgid "Test Taxonomy Radio"
153
+ msgstr ""
154
+
155
+ #: example-functions.php:334
156
+ msgid "Test Taxonomy Select"
157
+ msgstr ""
158
+
159
+ #: example-functions.php:342
160
+ msgid "Test Taxonomy Multi Checkbox"
161
+ msgstr ""
162
+
163
+ #: example-functions.php:351
164
+ msgid "Test Checkbox"
165
+ msgstr ""
166
+
167
+ #: example-functions.php:358 tests/test-cmb-field.php:266
168
+ msgid "Test Multi Checkbox"
169
+ msgstr ""
170
+
171
+ #: example-functions.php:364 tests/test-cmb-field.php:272
172
+ msgid "Check One"
173
+ msgstr ""
174
+
175
+ #: example-functions.php:365 tests/test-cmb-field.php:273
176
+ msgid "Check Two"
177
+ msgstr ""
178
+
179
+ #: example-functions.php:366 tests/test-cmb-field.php:274
180
+ msgid "Check Three"
181
+ msgstr ""
182
+
183
+ #: example-functions.php:372
184
+ msgid "Test wysiwyg"
185
+ msgstr ""
186
+
187
+ #: example-functions.php:380
188
+ msgid "Test Image"
189
+ msgstr ""
190
+
191
+ #: example-functions.php:381
192
+ msgid "Upload an image or enter a URL."
193
+ msgstr ""
194
+
195
+ #: example-functions.php:387
196
+ msgid "Multiple Files"
197
+ msgstr ""
198
+
199
+ #: example-functions.php:388
200
+ msgid "Upload or add multiple images/attachments."
201
+ msgstr ""
202
+
203
+ #: example-functions.php:395
204
+ msgid "oEmbed"
205
+ msgstr ""
206
+
207
+ #: example-functions.php:396
208
+ msgid ""
209
+ "Enter a youtube, twitter, or instagram URL. Supports services listed at <a "
210
+ "href=\"http://codex.wordpress.org/Embeds\">http://codex.wordpress.org/Embeds</a>."
211
+ msgstr ""
212
+
213
+ #: example-functions.php:427
214
+ msgid "About Page Metabox"
215
+ msgstr ""
216
+
217
+ #: example-functions.php:456
218
+ msgid "Repeating Field Group"
219
+ msgstr ""
220
+
221
+ #: example-functions.php:464
222
+ msgid "Generates reusable form entries"
223
+ msgstr ""
224
+
225
+ #: example-functions.php:466
226
+ msgid "Entry {#}"
227
+ msgstr ""
228
+
229
+ #: example-functions.php:467
230
+ msgid "Add Another Entry"
231
+ msgstr ""
232
+
233
+ #: example-functions.php:468
234
+ msgid "Remove Entry"
235
+ msgstr ""
236
+
237
+ #: example-functions.php:481
238
+ msgid "Entry Title"
239
+ msgstr ""
240
+
241
+ #: example-functions.php:488
242
+ msgid "Description"
243
+ msgstr "Описание"
244
+
245
+ #: example-functions.php:489
246
+ msgid "Write a short description for this entry"
247
+ msgstr ""
248
+
249
+ #: example-functions.php:495
250
+ msgid "Entry Image"
251
+ msgstr ""
252
+
253
+ #: example-functions.php:501
254
+ msgid "Image Caption"
255
+ msgstr "Кратко описание"
256
+
257
+ #: example-functions.php:520
258
+ msgid "User Profile Metabox"
259
+ msgstr ""
260
+
261
+ #: example-functions.php:527 example-functions.php:597
262
+ msgid "Extra Info"
263
+ msgstr ""
264
+
265
+ #: example-functions.php:535
266
+ msgid "Avatar"
267
+ msgstr ""
268
+
269
+ #: example-functions.php:542
270
+ msgid "Facebook URL"
271
+ msgstr ""
272
+
273
+ #: example-functions.php:549
274
+ msgid "Twitter URL"
275
+ msgstr ""
276
+
277
+ #: example-functions.php:556
278
+ msgid "Google+ URL"
279
+ msgstr ""
280
+
281
+ #: example-functions.php:563
282
+ msgid "Linkedin URL"
283
+ msgstr ""
284
+
285
+ #: example-functions.php:570
286
+ msgid "User Field"
287
+ msgstr ""
288
+
289
+ #: example-functions.php:590
290
+ msgid "Category Metabox"
291
+ msgstr ""
292
+
293
+ #: example-functions.php:605
294
+ msgid "Term Image"
295
+ msgstr ""
296
+
297
+ #: example-functions.php:612
298
+ msgid "Arbitrary Term Field"
299
+ msgstr ""
300
+
301
+ #: example-functions.php:634
302
+ msgid "Theme Options Metabox"
303
+ msgstr ""
304
+
305
+ #: example-functions.php:649
306
+ msgid "Site Background Color"
307
+ msgstr ""
308
+
309
+ #: includes/CMB2.php:129
310
+ msgid "Metabox configuration is required to have an ID parameter"
311
+ msgstr ""
312
+
313
+ #: includes/CMB2.php:418
314
+ msgid "Click to toggle"
315
+ msgstr "Натиснете за промяна"
316
+
317
+ #: includes/CMB2_Ajax.php:71
318
+ msgid "Please Try Again"
319
+ msgstr ""
320
+
321
+ #: includes/CMB2_Ajax.php:173 tests/cmb-tests-base.php:59
322
+ msgid "Remove Embed"
323
+ msgstr ""
324
+
325
+ #: includes/CMB2_Ajax.php:177 tests/cmb-tests-base.php:64
326
+ msgid "No oEmbed Results Found for %s. View more info at"
327
+ msgstr ""
328
+
329
+ #: includes/CMB2_Field.php:1186
330
+ msgid "Add Group"
331
+ msgstr ""
332
+
333
+ #: includes/CMB2_Field.php:1187
334
+ msgid "Remove Group"
335
+ msgstr ""
336
+
337
+ #: includes/CMB2_Field.php:1209 includes/CMB2_Field.php:1213
338
+ #: tests/test-cmb-field.php:229
339
+ msgid "None"
340
+ msgstr "Без"
341
+
342
+ #: includes/CMB2_Field.php:1269
343
+ msgid "Sorry, this field does not have a cmb_id specified."
344
+ msgstr ""
345
+
346
+ #: includes/CMB2_Field_Display.php:408 includes/CMB2_JS.php:139
347
+ #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
348
+ #: tests/test-cmb-types.php:701
349
+ msgid "File:"
350
+ msgstr ""
351
+
352
+ #: includes/CMB2_JS.php:86 includes/CMB2_JS.php:119
353
+ msgid "Clear"
354
+ msgstr "Изчистване"
355
+
356
+ #: includes/CMB2_JS.php:87
357
+ msgid "Default"
358
+ msgstr "Основна"
359
+
360
+ #: includes/CMB2_JS.php:88
361
+ msgid "Select Color"
362
+ msgstr "Избор на цвят"
363
+
364
+ #: includes/CMB2_JS.php:89
365
+ msgid "Current Color"
366
+ msgstr "Текущ цвят"
367
+
368
+ #: includes/CMB2_JS.php:110
369
+ msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
370
+ msgstr ""
371
+
372
+ #: includes/CMB2_JS.php:111
373
+ msgid "Su, Mo, Tu, We, Th, Fr, Sa"
374
+ msgstr ""
375
+
376
+ #: includes/CMB2_JS.php:112
377
+ msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
378
+ msgstr ""
379
+
380
+ #: includes/CMB2_JS.php:113
381
+ msgid ""
382
+ "January, February, March, April, May, June, July, August, September, "
383
+ "October, November, December"
384
+ msgstr ""
385
+
386
+ #: includes/CMB2_JS.php:114
387
+ msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
388
+ msgstr ""
389
+
390
+ #: includes/CMB2_JS.php:115
391
+ msgid "Next"
392
+ msgstr "Следваща"
393
+
394
+ #: includes/CMB2_JS.php:116
395
+ msgid "Prev"
396
+ msgstr "Предишен"
397
+
398
+ #: includes/CMB2_JS.php:117
399
+ msgid "Today"
400
+ msgstr "Днес"
401
+
402
+ #: includes/CMB2_JS.php:118 includes/CMB2_JS.php:128
403
+ msgid "Done"
404
+ msgstr "Готово"
405
+
406
+ #: includes/CMB2_JS.php:122
407
+ msgid "Choose Time"
408
+ msgstr ""
409
+
410
+ #: includes/CMB2_JS.php:123
411
+ msgid "Time"
412
+ msgstr ""
413
+
414
+ #: includes/CMB2_JS.php:124
415
+ msgid "Hour"
416
+ msgstr "Час"
417
+
418
+ #: includes/CMB2_JS.php:125
419
+ msgid "Minute"
420
+ msgstr "Минута"
421
+
422
+ #: includes/CMB2_JS.php:126
423
+ msgid "Second"
424
+ msgstr ""
425
+
426
+ #: includes/CMB2_JS.php:127
427
+ msgid "Now"
428
+ msgstr ""
429
+
430
+ #: includes/CMB2_JS.php:135
431
+ msgid "Use this file"
432
+ msgstr ""
433
+
434
+ #: includes/CMB2_JS.php:136
435
+ msgid "Use these files"
436
+ msgstr ""
437
+
438
+ #: includes/CMB2_JS.php:137 includes/types/CMB2_Type_File_Base.php:61
439
+ msgid "Remove Image"
440
+ msgstr "Премахване на изображението"
441
+
442
+ #: includes/CMB2_JS.php:138 includes/CMB2_Types.php:257
443
+ #: includes/types/CMB2_Type_File_Base.php:80 tests/test-cmb-types-base.php:143
444
+ #: tests/test-cmb-types.php:47 tests/test-cmb-types.php:55
445
+ #: tests/test-cmb-types.php:701
446
+ msgid "Remove"
447
+ msgstr "Изтриване"
448
+
449
+ #: includes/CMB2_JS.php:140 includes/types/CMB2_Type_File_Base.php:78
450
+ #: tests/test-cmb-types-base.php:143 tests/test-cmb-types.php:701
451
+ msgid "Download"
452
+ msgstr "Свали"
453
+
454
+ #: includes/CMB2_JS.php:141
455
+ msgid "Select / Deselect All"
456
+ msgstr ""
457
+
458
+ #: includes/CMB2_Types.php:194
459
+ msgid "Add Row"
460
+ msgstr ""
461
+
462
+ #: includes/CMB2_hookup.php:145
463
+ msgid ""
464
+ "Term Metadata is a WordPress > 4.4 feature. Please upgrade your WordPress "
465
+ "install."
466
+ msgstr ""
467
+
468
+ #: includes/CMB2_hookup.php:149
469
+ msgid "Term metaboxes configuration requires a 'taxonomies' parameter"
470
+ msgstr ""
471
+
472
+ #: includes/helper-functions.php:93
473
+ msgid "No oEmbed Results Found for %s. View more info at %s"
474
+ msgstr ""
475
+
476
+ #: includes/helper-functions.php:279
477
+ msgid "Save"
478
+ msgstr "Запис"
479
+
480
+ #: includes/types/CMB2_Type_File.php:36 tests/test-cmb-types.php:683
481
+ #: tests/test-cmb-types.php:701
482
+ msgid "Add or Upload File"
483
+ msgstr ""
484
+
485
+ #: includes/types/CMB2_Type_File_List.php:36 tests/test-cmb-types.php:639
486
+ #: tests/test-cmb-types.php:663
487
+ msgid "Add or Upload Files"
488
+ msgstr ""
489
+
490
+ #: includes/types/CMB2_Type_Taxonomy_Multicheck.php:27
491
+ #: includes/types/CMB2_Type_Taxonomy_Radio.php:25
492
+ msgid "No terms"
493
+ msgstr ""
494
+
495
+ #. Plugin Name of the plugin/theme
496
+ msgid "CMB2"
497
+ msgstr ""
498
+
499
+ #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
+ msgstr ""
502
+
503
+ #. Description of the plugin/theme
504
+ msgid ""
505
+ "CMB2 will create metaboxes and forms with custom fields that will blow your "
506
+ "mind."
507
+ msgstr ""
508
+
509
+ #. Author of the plugin/theme
510
+ msgid "WebDevStudios"
511
+ msgstr ""
512
+
513
+ #. Author URI of the plugin/theme
514
+ msgid "http://webdevstudios.com"
515
+ msgstr ""
516
+
517
+ #: includes/CMB2_JS.php:109
518
+ msgctxt "Valid formatDate string for jquery-ui datepicker"
519
+ msgid "mm/dd/yy"
520
+ msgstr ""
521
+
522
+ #: includes/CMB2_JS.php:129
523
+ msgctxt ""
524
+ "Valid formatting string, as per "
525
+ "http://trentrichardson.com/examples/timepicker/"
526
+ msgid "hh:mm TT"
527
+ msgstr ""
includes/vendor/cmb2/languages/cmb2-bn_BD.mo ADDED
Binary file
includes/vendor/cmb2/languages/cmb2-ca.mo CHANGED
Binary file
includes/vendor/cmb2/languages/cmb2-ca.po CHANGED
@@ -347,7 +347,7 @@ msgstr ""
347
  #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
348
  #: tests/test-cmb-types.php:701
349
  msgid "File:"
350
- msgstr ""
351
 
352
  #: includes/CMB2_JS.php:86 includes/CMB2_JS.php:119
353
  msgid "Clear"
@@ -449,7 +449,7 @@ msgstr "Suprimeix"
449
  #: includes/CMB2_JS.php:140 includes/types/CMB2_Type_File_Base.php:78
450
  #: tests/test-cmb-types-base.php:143 tests/test-cmb-types.php:701
451
  msgid "Download"
452
- msgstr ""
453
 
454
  #: includes/CMB2_JS.php:141
455
  msgid "Select / Deselect All"
@@ -457,7 +457,7 @@ msgstr ""
457
 
458
  #: includes/CMB2_Types.php:194
459
  msgid "Add Row"
460
- msgstr ""
461
 
462
  #: includes/CMB2_hookup.php:145
463
  msgid ""
347
  #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
348
  #: tests/test-cmb-types.php:701
349
  msgid "File:"
350
+ msgstr "Arxiu:"
351
 
352
  #: includes/CMB2_JS.php:86 includes/CMB2_JS.php:119
353
  msgid "Clear"
449
  #: includes/CMB2_JS.php:140 includes/types/CMB2_Type_File_Base.php:78
450
  #: tests/test-cmb-types-base.php:143 tests/test-cmb-types.php:701
451
  msgid "Download"
452
+ msgstr "Descarregar"
453
 
454
  #: includes/CMB2_JS.php:141
455
  msgid "Select / Deselect All"
457
 
458
  #: includes/CMB2_Types.php:194
459
  msgid "Add Row"
460
+ msgstr "Afegeix fila"
461
 
462
  #: includes/CMB2_hookup.php:145
463
  msgid ""
includes/vendor/cmb2/languages/cmb2-es_CO.po ADDED
@@ -0,0 +1,527 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2016 WebDevStudios
2
+ # This file is distributed under the same license as the CMB2 package.
3
+ # Translators:
4
+ msgid ""
5
+ msgstr ""
6
+ "Project-Id-Version: CMB2\n"
7
+ "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
8
+ "POT-Creation-Date: 2016-06-27 17:01:22+00:00\n"
9
+ "PO-Revision-Date: 2016-06-27 17:01+0000\n"
10
+ "Last-Translator: Justin Sternberg <me@jtsternberg.com>\n"
11
+ "Language-Team: Spanish (Colombia) (http://www.transifex.com/wp-translations/cmb2/language/es_CO/)\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "Language: es_CO\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+ "X-Generator: grunt-wp-i18n 0.4.9\n"
18
+ "X-Poedit-Basepath: ../\n"
19
+ "X-Poedit-Bookmarks: \n"
20
+ "X-Poedit-Country: United States\n"
21
+ "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
22
+ "X-Poedit-SearchPath-0: .\n"
23
+ "X-Poedit-SourceCharset: UTF-8\n"
24
+ "X-Textdomain-Support: yes\n"
25
+
26
+ #: example-functions.php:117 tests/test-cmb-field.php:255
27
+ msgid "Test Metabox"
28
+ msgstr ""
29
+
30
+ #: example-functions.php:130 example-functions.php:436
31
+ msgid "Test Text"
32
+ msgstr ""
33
+
34
+ #: example-functions.php:131 example-functions.php:144
35
+ #: example-functions.php:157 example-functions.php:165
36
+ #: example-functions.php:173 example-functions.php:182
37
+ #: example-functions.php:190 example-functions.php:205
38
+ #: example-functions.php:213 example-functions.php:221
39
+ #: example-functions.php:238 example-functions.php:247
40
+ #: example-functions.php:260 example-functions.php:267
41
+ #: example-functions.php:274 example-functions.php:288
42
+ #: example-functions.php:301 example-functions.php:314
43
+ #: example-functions.php:326 example-functions.php:335
44
+ #: example-functions.php:343 example-functions.php:352
45
+ #: example-functions.php:359 example-functions.php:373
46
+ #: example-functions.php:437 example-functions.php:528
47
+ #: example-functions.php:536 example-functions.php:543
48
+ #: example-functions.php:550 example-functions.php:557
49
+ #: example-functions.php:564 example-functions.php:571
50
+ #: example-functions.php:598 example-functions.php:606
51
+ #: example-functions.php:613 example-functions.php:650
52
+ #: tests/test-cmb-field.php:267
53
+ msgid "field description (optional)"
54
+ msgstr ""
55
+
56
+ #: example-functions.php:143
57
+ msgid "Test Text Small"
58
+ msgstr ""
59
+
60
+ #: example-functions.php:156
61
+ msgid "Test Text Medium"
62
+ msgstr ""
63
+
64
+ #: example-functions.php:164
65
+ msgid "Custom Rendered Field"
66
+ msgstr ""
67
+
68
+ #: example-functions.php:172
69
+ msgid "Website URL"
70
+ msgstr ""
71
+
72
+ #: example-functions.php:181
73
+ msgid "Test Text Email"
74
+ msgstr ""
75
+
76
+ #: example-functions.php:189
77
+ msgid "Test Time"
78
+ msgstr ""
79
+
80
+ #: example-functions.php:197 example-functions.php:198
81
+ msgid "Time zone"
82
+ msgstr ""
83
+
84
+ #: example-functions.php:204
85
+ msgid "Test Date Picker"
86
+ msgstr ""
87
+
88
+ #: example-functions.php:212
89
+ msgid "Test Date Picker (UNIX timestamp)"
90
+ msgstr ""
91
+
92
+ #: example-functions.php:220
93
+ msgid "Test Date/Time Picker Combo (UNIX timestamp)"
94
+ msgstr ""
95
+
96
+ #: example-functions.php:237
97
+ msgid "Test Money"
98
+ msgstr ""
99
+
100
+ #: example-functions.php:246
101
+ msgid "Test Color Picker"
102
+ msgstr ""
103
+
104
+ #: example-functions.php:259
105
+ msgid "Test Text Area"
106
+ msgstr ""
107
+
108
+ #: example-functions.php:266
109
+ msgid "Test Text Area Small"
110
+ msgstr ""
111
+
112
+ #: example-functions.php:273
113
+ msgid "Test Text Area for Code"
114
+ msgstr ""
115
+
116
+ #: example-functions.php:280
117
+ msgid "Test Title Weeeee"
118
+ msgstr ""
119
+
120
+ #: example-functions.php:281
121
+ msgid "This is a title description"
122
+ msgstr ""
123
+
124
+ #: example-functions.php:287
125
+ msgid "Test Select"
126
+ msgstr ""
127
+
128
+ #: example-functions.php:293 example-functions.php:306
129
+ #: example-functions.php:318
130
+ msgid "Option One"
131
+ msgstr ""
132
+
133
+ #: example-functions.php:294 example-functions.php:307
134
+ #: example-functions.php:319
135
+ msgid "Option Two"
136
+ msgstr ""
137
+
138
+ #: example-functions.php:295 example-functions.php:308
139
+ #: example-functions.php:320
140
+ msgid "Option Three"
141
+ msgstr ""
142
+
143
+ #: example-functions.php:300
144
+ msgid "Test Radio inline"
145
+ msgstr ""
146
+
147
+ #: example-functions.php:313
148
+ msgid "Test Radio"
149
+ msgstr ""
150
+
151
+ #: example-functions.php:325
152
+ msgid "Test Taxonomy Radio"
153
+ msgstr ""
154
+
155
+ #: example-functions.php:334
156
+ msgid "Test Taxonomy Select"
157
+ msgstr ""
158
+
159
+ #: example-functions.php:342
160
+ msgid "Test Taxonomy Multi Checkbox"
161
+ msgstr ""
162
+
163
+ #: example-functions.php:351
164
+ msgid "Test Checkbox"
165
+ msgstr ""
166
+
167
+ #: example-functions.php:358 tests/test-cmb-field.php:266
168
+ msgid "Test Multi Checkbox"
169
+ msgstr ""
170
+
171
+ #: example-functions.php:364 tests/test-cmb-field.php:272
172
+ msgid "Check One"
173
+ msgstr ""
174
+
175
+ #: example-functions.php:365 tests/test-cmb-field.php:273
176
+ msgid "Check Two"
177
+ msgstr ""
178
+
179
+ #: example-functions.php:366 tests/test-cmb-field.php:274
180
+ msgid "Check Three"
181
+ msgstr ""
182
+
183
+ #: example-functions.php:372
184
+ msgid "Test wysiwyg"
185
+ msgstr ""
186
+
187
+ #: example-functions.php:380
188
+ msgid "Test Image"
189
+ msgstr ""
190
+
191
+ #: example-functions.php:381
192
+ msgid "Upload an image or enter a URL."
193
+ msgstr ""
194
+
195
+ #: example-functions.php:387
196
+ msgid "Multiple Files"
197
+ msgstr ""
198
+
199
+ #: example-functions.php:388
200
+ msgid "Upload or add multiple images/attachments."
201
+ msgstr ""
202
+
203
+ #: example-functions.php:395
204
+ msgid "oEmbed"
205
+ msgstr ""
206
+
207
+ #: example-functions.php:396
208
+ msgid ""
209
+ "Enter a youtube, twitter, or instagram URL. Supports services listed at <a "
210
+ "href=\"http://codex.wordpress.org/Embeds\">http://codex.wordpress.org/Embeds</a>."
211
+ msgstr ""
212
+
213
+ #: example-functions.php:427
214
+ msgid "About Page Metabox"
215
+ msgstr ""
216
+
217
+ #: example-functions.php:456
218
+ msgid "Repeating Field Group"
219
+ msgstr ""
220
+
221
+ #: example-functions.php:464
222
+ msgid "Generates reusable form entries"
223
+ msgstr ""
224
+
225
+ #: example-functions.php:466
226
+ msgid "Entry {#}"
227
+ msgstr ""
228
+
229
+ #: example-functions.php:467
230
+ msgid "Add Another Entry"
231
+ msgstr ""
232
+
233
+ #: example-functions.php:468
234
+ msgid "Remove Entry"
235
+ msgstr ""
236
+
237
+ #: example-functions.php:481
238
+ msgid "Entry Title"
239
+ msgstr ""
240
+
241
+ #: example-functions.php:488
242
+ msgid "Description"
243
+ msgstr ""
244
+
245
+ #: example-functions.php:489
246
+ msgid "Write a short description for this entry"
247
+ msgstr ""
248
+
249
+ #: example-functions.php:495
250
+ msgid "Entry Image"
251
+ msgstr ""
252
+
253
+ #: example-functions.php:501
254
+ msgid "Image Caption"
255
+ msgstr ""
256
+
257
+ #: example-functions.php:520
258
+ msgid "User Profile Metabox"
259
+ msgstr ""
260
+
261
+ #: example-functions.php:527 example-functions.php:597
262
+ msgid "Extra Info"
263
+ msgstr ""
264
+
265
+ #: example-functions.php:535
266
+ msgid "Avatar"
267
+ msgstr ""
268
+
269
+ #: example-functions.php:542
270
+ msgid "Facebook URL"
271
+ msgstr ""
272
+
273
+ #: example-functions.php:549
274
+ msgid "Twitter URL"
275
+ msgstr ""
276
+
277
+ #: example-functions.php:556
278
+ msgid "Google+ URL"
279
+ msgstr ""
280
+
281
+ #: example-functions.php:563
282
+ msgid "Linkedin URL"
283
+ msgstr ""
284
+
285
+ #: example-functions.php:570
286
+ msgid "User Field"
287
+ msgstr ""
288
+
289
+ #: example-functions.php:590
290
+ msgid "Category Metabox"
291
+ msgstr ""
292
+
293
+ #: example-functions.php:605
294
+ msgid "Term Image"
295
+ msgstr ""
296
+
297
+ #: example-functions.php:612
298
+ msgid "Arbitrary Term Field"
299
+ msgstr ""
300
+
301
+ #: example-functions.php:634
302
+ msgid "Theme Options Metabox"
303
+ msgstr ""
304
+
305
+ #: example-functions.php:649
306
+ msgid "Site Background Color"
307
+ msgstr ""
308
+
309
+ #: includes/CMB2.php:129
310
+ msgid "Metabox configuration is required to have an ID parameter"
311
+ msgstr ""
312
+
313
+ #: includes/CMB2.php:418
314
+ msgid "Click to toggle"
315
+ msgstr ""
316
+
317
+ #: includes/CMB2_Ajax.php:71
318
+ msgid "Please Try Again"
319
+ msgstr ""
320
+
321
+ #: includes/CMB2_Ajax.php:173 tests/cmb-tests-base.php:59
322
+ msgid "Remove Embed"
323
+ msgstr ""
324
+
325
+ #: includes/CMB2_Ajax.php:177 tests/cmb-tests-base.php:64
326
+ msgid "No oEmbed Results Found for %s. View more info at"
327
+ msgstr ""
328
+
329
+ #: includes/CMB2_Field.php:1186
330
+ msgid "Add Group"
331
+ msgstr ""
332
+
333
+ #: includes/CMB2_Field.php:1187
334
+ msgid "Remove Group"
335
+ msgstr ""
336
+
337
+ #: includes/CMB2_Field.php:1209 includes/CMB2_Field.php:1213
338
+ #: tests/test-cmb-field.php:229
339
+ msgid "None"
340
+ msgstr ""
341
+
342
+ #: includes/CMB2_Field.php:1269
343
+ msgid "Sorry, this field does not have a cmb_id specified."
344
+ msgstr ""
345
+
346
+ #: includes/CMB2_Field_Display.php:408 includes/CMB2_JS.php:139
347
+ #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
348
+ #: tests/test-cmb-types.php:701
349
+ msgid "File:"
350
+ msgstr ""
351
+
352
+ #: includes/CMB2_JS.php:86 includes/CMB2_JS.php:119
353
+ msgid "Clear"
354
+ msgstr ""
355
+
356
+ #: includes/CMB2_JS.php:87
357
+ msgid "Default"
358
+ msgstr ""
359
+
360
+ #: includes/CMB2_JS.php:88
361
+ msgid "Select Color"
362
+ msgstr ""
363
+
364
+ #: includes/CMB2_JS.php:89
365
+ msgid "Current Color"
366
+ msgstr ""
367
+
368
+ #: includes/CMB2_JS.php:110
369
+ msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
370
+ msgstr ""
371
+
372
+ #: includes/CMB2_JS.php:111
373
+ msgid "Su, Mo, Tu, We, Th, Fr, Sa"
374
+ msgstr ""
375
+
376
+ #: includes/CMB2_JS.php:112
377
+ msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
378
+ msgstr ""
379
+
380
+ #: includes/CMB2_JS.php:113
381
+ msgid ""
382
+ "January, February, March, April, May, June, July, August, September, "
383
+ "October, November, December"
384
+ msgstr ""
385
+
386
+ #: includes/CMB2_JS.php:114
387
+ msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
388
+ msgstr ""
389
+
390
+ #: includes/CMB2_JS.php:115
391
+ msgid "Next"
392
+ msgstr ""
393
+
394
+ #: includes/CMB2_JS.php:116
395
+ msgid "Prev"
396
+ msgstr ""
397
+
398
+ #: includes/CMB2_JS.php:117
399
+ msgid "Today"
400
+ msgstr ""
401
+
402
+ #: includes/CMB2_JS.php:118 includes/CMB2_JS.php:128
403
+ msgid "Done"
404
+ msgstr ""
405
+
406
+ #: includes/CMB2_JS.php:122
407
+ msgid "Choose Time"
408
+ msgstr ""
409
+
410
+ #: includes/CMB2_JS.php:123
411
+ msgid "Time"
412
+ msgstr ""
413
+
414
+ #: includes/CMB2_JS.php:124
415
+ msgid "Hour"
416
+ msgstr ""
417
+
418
+ #: includes/CMB2_JS.php:125
419
+ msgid "Minute"
420
+ msgstr ""
421
+
422
+ #: includes/CMB2_JS.php:126
423
+ msgid "Second"
424
+ msgstr ""
425
+
426
+ #: includes/CMB2_JS.php:127
427
+ msgid "Now"
428
+ msgstr ""
429
+
430
+ #: includes/CMB2_JS.php:135
431
+ msgid "Use this file"
432
+ msgstr ""
433
+
434
+ #: includes/CMB2_JS.php:136
435
+ msgid "Use these files"
436
+ msgstr ""
437
+
438
+ #: includes/CMB2_JS.php:137 includes/types/CMB2_Type_File_Base.php:61
439
+ msgid "Remove Image"
440
+ msgstr ""
441
+
442
+ #: includes/CMB2_JS.php:138 includes/CMB2_Types.php:257
443
+ #: includes/types/CMB2_Type_File_Base.php:80 tests/test-cmb-types-base.php:143
444
+ #: tests/test-cmb-types.php:47 tests/test-cmb-types.php:55
445
+ #: tests/test-cmb-types.php:701
446
+ msgid "Remove"
447
+ msgstr ""
448
+
449
+ #: includes/CMB2_JS.php:140 includes/types/CMB2_Type_File_Base.php:78
450
+ #: tests/test-cmb-types-base.php:143 tests/test-cmb-types.php:701
451
+ msgid "Download"
452
+ msgstr ""
453
+
454
+ #: includes/CMB2_JS.php:141
455
+ msgid "Select / Deselect All"
456
+ msgstr ""
457
+
458
+ #: includes/CMB2_Types.php:194
459
+ msgid "Add Row"
460
+ msgstr ""
461
+
462
+ #: includes/CMB2_hookup.php:145
463
+ msgid ""
464
+ "Term Metadata is a WordPress > 4.4 feature. Please upgrade your WordPress "
465
+ "install."
466
+ msgstr ""
467
+
468
+ #: includes/CMB2_hookup.php:149
469
+ msgid "Term metaboxes configuration requires a 'taxonomies' parameter"
470
+ msgstr ""
471
+
472
+ #: includes/helper-functions.php:93
473
+ msgid "No oEmbed Results Found for %s. View more info at %s"
474
+ msgstr ""
475
+
476
+ #: includes/helper-functions.php:279
477
+ msgid "Save"
478
+ msgstr ""
479
+
480
+ #: includes/types/CMB2_Type_File.php:36 tests/test-cmb-types.php:683
481
+ #: tests/test-cmb-types.php:701
482
+ msgid "Add or Upload File"
483
+ msgstr ""
484
+
485
+ #: includes/types/CMB2_Type_File_List.php:36 tests/test-cmb-types.php:639
486
+ #: tests/test-cmb-types.php:663
487
+ msgid "Add or Upload Files"
488
+ msgstr ""
489
+
490
+ #: includes/types/CMB2_Type_Taxonomy_Multicheck.php:27
491
+ #: includes/types/CMB2_Type_Taxonomy_Radio.php:25
492
+ msgid "No terms"
493
+ msgstr ""
494
+
495
+ #. Plugin Name of the plugin/theme
496
+ msgid "CMB2"
497
+ msgstr ""
498
+
499
+ #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
+ msgstr ""
502
+
503
+ #. Description of the plugin/theme
504
+ msgid ""
505
+ "CMB2 will create metaboxes and forms with custom fields that will blow your "
506
+ "mind."
507
+ msgstr ""
508
+
509
+ #. Author of the plugin/theme
510
+ msgid "WebDevStudios"
511
+ msgstr ""
512
+
513
+ #. Author URI of the plugin/theme
514
+ msgid "http://webdevstudios.com"
515
+ msgstr ""
516
+
517
+ #: includes/CMB2_JS.php:109
518
+ msgctxt "Valid formatDate string for jquery-ui datepicker"
519
+ msgid "mm/dd/yy"
520
+ msgstr ""
521
+
522
+ #: includes/CMB2_JS.php:129
523
+ msgctxt ""
524
+ "Valid formatting string, as per "
525
+ "http://trentrichardson.com/examples/timepicker/"
526
+ msgid "hh:mm TT"
527
+ msgstr ""
includes/vendor/cmb2/languages/cmb2-es_ES.mo ADDED
Binary file
includes/vendor/cmb2/languages/cmb2-es_ES.po ADDED
@@ -0,0 +1,530 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2016 WebDevStudios
2
+ # This file is distributed under the same license as the CMB2 package.
3
+ # Translators:
4
+ # JSLirola, 2015
5
+ # Juan Javier M Restituto <jjmrestituto@gmail.com>, 2015
6
+ # Justin Sternberg <me@jtsternberg.com>, 2014
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: CMB2\n"
10
+ "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
11
+ "POT-Creation-Date: 2016-06-27 17:01:22+00:00\n"
12
+ "PO-Revision-Date: 2016-07-25 17:16+0000\n"
13
+ "Last-Translator: Justin Sternberg <me@jtsternberg.com>\n"
14
+ "Language-Team: Spanish (Spain) (http://www.transifex.com/wp-translations/cmb2/language/es_ES/)\n"
15
+ "MIME-Version: 1.0\n"
16
+ "Content-Type: text/plain; charset=UTF-8\n"
17
+ "Content-Transfer-Encoding: 8bit\n"
18
+ "Language: es_ES\n"
19
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
+ "X-Generator: grunt-wp-i18n 0.4.9\n"
21
+ "X-Poedit-Basepath: ../\n"
22
+ "X-Poedit-Bookmarks: \n"
23
+ "X-Poedit-Country: United States\n"
24
+ "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
25
+ "X-Poedit-SearchPath-0: .\n"
26
+ "X-Poedit-SourceCharset: UTF-8\n"
27
+ "X-Textdomain-Support: yes\n"
28
+
29
+ #: example-functions.php:117 tests/test-cmb-field.php:255
30
+ msgid "Test Metabox"
31
+ msgstr "Prueba Metabox"
32
+
33
+ #: example-functions.php:130 example-functions.php:436
34
+ msgid "Test Text"
35
+ msgstr "Texto de prueba"
36
+
37
+ #: example-functions.php:131 example-functions.php:144
38
+ #: example-functions.php:157 example-functions.php:165
39
+ #: example-functions.php:173 example-functions.php:182
40
+ #: example-functions.php:190 example-functions.php:205
41
+ #: example-functions.php:213 example-functions.php:221
42
+ #: example-functions.php:238 example-functions.php:247
43
+ #: example-functions.php:260 example-functions.php:267
44
+ #: example-functions.php:274 example-functions.php:288
45
+ #: example-functions.php:301 example-functions.php:314
46
+ #: example-functions.php:326 example-functions.php:335
47
+ #: example-functions.php:343 example-functions.php:352
48
+ #: example-functions.php:359 example-functions.php:373
49
+ #: example-functions.php:437 example-functions.php:528
50
+ #: example-functions.php:536 example-functions.php:543
51
+ #: example-functions.php:550 example-functions.php:557
52
+ #: example-functions.php:564 example-functions.php:571
53
+ #: example-functions.php:598 example-functions.php:606
54
+ #: example-functions.php:613 example-functions.php:650
55
+ #: tests/test-cmb-field.php:267
56
+ msgid "field description (optional)"
57
+ msgstr "campo de descripción (opcional)"
58
+
59
+ #: example-functions.php:143
60
+ msgid "Test Text Small"
61
+ msgstr "Test Texto Pequeño"
62
+
63
+ #: example-functions.php:156
64
+ msgid "Test Text Medium"
65
+ msgstr "Prueba de texto mediano"
66
+
67
+ #: example-functions.php:164
68
+ msgid "Custom Rendered Field"
69
+ msgstr ""
70
+
71
+ #: example-functions.php:172
72
+ msgid "Website URL"
73
+ msgstr "URL del sitio web"
74
+
75
+ #: example-functions.php:181
76
+ msgid "Test Text Email"
77
+ msgstr "Prueba de texto Enviar"
78
+
79
+ #: example-functions.php:189
80
+ msgid "Test Time"
81
+ msgstr "El tiempo de prueba"
82
+
83
+ #: example-functions.php:197 example-functions.php:198
84
+ msgid "Time zone"
85
+ msgstr "Zona horaria"
86
+
87
+ #: example-functions.php:204
88
+ msgid "Test Date Picker"
89
+ msgstr "Prueba Selector de fecha"
90
+
91
+ #: example-functions.php:212
92
+ msgid "Test Date Picker (UNIX timestamp)"
93
+ msgstr "Prueba Selector de fecha (UNIX timestamp)"
94
+
95
+ #: example-functions.php:220
96
+ msgid "Test Date/Time Picker Combo (UNIX timestamp)"
97
+ msgstr "Fecha de Prueba / Hora Picker Combo (UNIX timestamp)"
98
+
99
+ #: example-functions.php:237
100
+ msgid "Test Money"
101
+ msgstr "Prueba de dinero"
102
+
103
+ #: example-functions.php:246
104
+ msgid "Test Color Picker"
105
+ msgstr "Selector de color de prueba"
106
+
107
+ #: example-functions.php:259
108
+ msgid "Test Text Area"
109
+ msgstr "Área de texto de prueba"
110
+
111
+ #: example-functions.php:266
112
+ msgid "Test Text Area Small"
113
+ msgstr "Prueba de Texto Área Pequeño"
114
+
115
+ #: example-functions.php:273
116
+ msgid "Test Text Area for Code"
117
+ msgstr "Área de texto de prueba para el código"
118
+
119
+ #: example-functions.php:280
120
+ msgid "Test Title Weeeee"
121
+ msgstr "Test Título Weeeee"
122
+
123
+ #: example-functions.php:281
124
+ msgid "This is a title description"
125
+ msgstr "Esta es una descripción del título"
126
+
127
+ #: example-functions.php:287
128
+ msgid "Test Select"
129
+ msgstr "Test Seleccione"
130
+
131
+ #: example-functions.php:293 example-functions.php:306
132
+ #: example-functions.php:318
133
+ msgid "Option One"
134
+ msgstr "Una Opción"
135
+
136
+ #: example-functions.php:294 example-functions.php:307
137
+ #: example-functions.php:319
138
+ msgid "Option Two"
139
+ msgstr "Opción dos"
140
+
141
+ #: example-functions.php:295 example-functions.php:308
142
+ #: example-functions.php:320
143
+ msgid "Option Three"
144
+ msgstr "Opción Tres"
145
+
146
+ #: example-functions.php:300
147
+ msgid "Test Radio inline"
148
+ msgstr "Radio de prueba en línea"
149
+
150
+ #: example-functions.php:313
151
+ msgid "Test Radio"
152
+ msgstr "Prueba de Radio"
153
+
154
+ #: example-functions.php:325
155
+ msgid "Test Taxonomy Radio"
156
+ msgstr "Prueba de Taxonomía de Radio"
157
+
158
+ #: example-functions.php:334
159
+ msgid "Test Taxonomy Select"
160
+ msgstr "Prueba fields Seleccionar"
161
+
162
+ #: example-functions.php:342
163
+ msgid "Test Taxonomy Multi Checkbox"
164
+ msgstr "Prueba Taxonomía Multi Casilla de verificación"
165
+
166
+ #: example-functions.php:351
167
+ msgid "Test Checkbox"
168
+ msgstr "Prueba de Casilla de verificación"
169
+
170
+ #: example-functions.php:358 tests/test-cmb-field.php:266
171
+ msgid "Test Multi Checkbox"
172
+ msgstr "Test Multi Casilla de verificación"
173
+
174
+ #: example-functions.php:364 tests/test-cmb-field.php:272
175
+ msgid "Check One"
176
+ msgstr "Marque una"
177
+
178
+ #: example-functions.php:365 tests/test-cmb-field.php:273
179
+ msgid "Check Two"
180
+ msgstr "Comprobar Dos"
181
+
182
+ #: example-functions.php:366 tests/test-cmb-field.php:274
183
+ msgid "Check Three"
184
+ msgstr "Comprobar Tres"
185
+
186
+ #: example-functions.php:372
187
+ msgid "Test wysiwyg"
188
+ msgstr "wysiwyg Test"
189
+
190
+ #: example-functions.php:380
191
+ msgid "Test Image"
192
+ msgstr "Prueba de imagen"
193
+
194
+ #: example-functions.php:381
195
+ msgid "Upload an image or enter a URL."
196
+ msgstr "Cargar una imagen o introducir una URL."
197
+
198
+ #: example-functions.php:387
199
+ msgid "Multiple Files"
200
+ msgstr "varios archivos"
201
+
202
+ #: example-functions.php:388
203
+ msgid "Upload or add multiple images/attachments."
204
+ msgstr "Subir o añadir varias imágenes / archivos adjuntos."
205
+
206
+ #: example-functions.php:395
207
+ msgid "oEmbed"
208
+ msgstr "oEmbed"
209
+
210
+ #: example-functions.php:396
211
+ msgid ""
212
+ "Enter a youtube, twitter, or instagram URL. Supports services listed at <a "
213
+ "href=\"http://codex.wordpress.org/Embeds\">http://codex.wordpress.org/Embeds</a>."
214
+ msgstr "Introduzca un YouTube, Twitter, Instagram o URL. Es compatible con los servicios enumerados en el <a href=\"http://codex.wordpress.org/Embeds\">http://codex.wordpress.org/Embeds</a>."
215
+
216
+ #: example-functions.php:427
217
+ msgid "About Page Metabox"
218
+ msgstr "Acerca de Página Metabox"
219
+
220
+ #: example-functions.php:456
221
+ msgid "Repeating Field Group"
222
+ msgstr "Repetir Grupo Campo"
223
+
224
+ #: example-functions.php:464
225
+ msgid "Generates reusable form entries"
226
+ msgstr "Genera entradas de formulario reutilizables"
227
+
228
+ #: example-functions.php:466
229
+ msgid "Entry {#}"
230
+ msgstr "Entrada {#}"
231
+
232
+ #: example-functions.php:467
233
+ msgid "Add Another Entry"
234
+ msgstr "Añadir otra entrada"
235
+
236
+ #: example-functions.php:468
237
+ msgid "Remove Entry"
238
+ msgstr "Eliminar entrada"
239
+
240
+ #: example-functions.php:481
241
+ msgid "Entry Title"
242
+ msgstr "Título de la entrada"
243
+
244
+ #: example-functions.php:488
245
+ msgid "Description"
246
+ msgstr "Descripción"
247
+
248
+ #: example-functions.php:489
249
+ msgid "Write a short description for this entry"
250
+ msgstr "Escriba una descripción corta para esta entrada"
251
+
252
+ #: example-functions.php:495
253
+ msgid "Entry Image"
254
+ msgstr "Imagen de la entrada"
255
+
256
+ #: example-functions.php:501
257
+ msgid "Image Caption"
258
+ msgstr "Leyenda de la imagen"
259
+
260
+ #: example-functions.php:520
261
+ msgid "User Profile Metabox"
262
+ msgstr "Perfil de Usuario Metabox"
263
+
264
+ #: example-functions.php:527 example-functions.php:597
265
+ msgid "Extra Info"
266
+ msgstr "Perfil de Usuario Metabox"
267
+
268
+ #: example-functions.php:535
269
+ msgid "Avatar"
270
+ msgstr "Avatar"
271
+
272
+ #: example-functions.php:542
273
+ msgid "Facebook URL"
274
+ msgstr "URL de Facebook"
275
+
276
+ #: example-functions.php:549
277
+ msgid "Twitter URL"
278
+ msgstr "URL de Twitter"
279
+
280
+ #: example-functions.php:556
281
+ msgid "Google+ URL"
282
+ msgstr "Google+ URL"
283
+
284
+ #: example-functions.php:563
285
+ msgid "Linkedin URL"
286
+ msgstr "Linkedin URL"
287
+
288
+ #: example-functions.php:570
289
+ msgid "User Field"
290
+ msgstr "El campo de usuario"
291
+
292
+ #: example-functions.php:590
293
+ msgid "Category Metabox"
294
+ msgstr ""
295
+
296
+ #: example-functions.php:605
297
+ msgid "Term Image"
298
+ msgstr ""
299
+
300
+ #: example-functions.php:612
301
+ msgid "Arbitrary Term Field"
302
+ msgstr ""
303
+
304
+ #: example-functions.php:634
305
+ msgid "Theme Options Metabox"
306
+ msgstr "Tema Opciones Metabox"
307
+
308
+ #: example-functions.php:649
309
+ msgid "Site Background Color"
310
+ msgstr "Antecedentes del sitio de color"
311
+
312
+ #: includes/CMB2.php:129
313
+ msgid "Metabox configuration is required to have an ID parameter"
314
+ msgstr "Se requiere de configuración Metabox tener un parámetro de identificación"
315
+
316
+ #: includes/CMB2.php:418
317
+ msgid "Click to toggle"
318
+ msgstr "Haga clic para alternar"
319
+
320
+ #: includes/CMB2_Ajax.php:71
321
+ msgid "Please Try Again"
322
+ msgstr "Vuelva a intentarlo"
323
+
324
+ #: includes/CMB2_Ajax.php:173 tests/cmb-tests-base.php:59
325
+ msgid "Remove Embed"
326
+ msgstr "Eliminar Insertar"
327
+
328
+ #: includes/CMB2_Ajax.php:177 tests/cmb-tests-base.php:64
329
+ msgid "No oEmbed Results Found for %s. View more info at"
330
+ msgstr "No oEmbed resultados encontrados por% s. Ver más información en "
331
+
332
+ #: includes/CMB2_Field.php:1186
333
+ msgid "Add Group"
334
+ msgstr "Agregar grupo"
335
+
336
+ #: includes/CMB2_Field.php:1187
337
+ msgid "Remove Group"
338
+ msgstr "Eliminar grupo"
339
+
340
+ #: includes/CMB2_Field.php:1209 includes/CMB2_Field.php:1213
341
+ #: tests/test-cmb-field.php:229
342
+ msgid "None"
343
+ msgstr "Ninguno"
344
+
345
+ #: includes/CMB2_Field.php:1269
346
+ msgid "Sorry, this field does not have a cmb_id specified."
347
+ msgstr ""
348
+
349
+ #: includes/CMB2_Field_Display.php:408 includes/CMB2_JS.php:139
350
+ #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
351
+ #: tests/test-cmb-types.php:701
352
+ msgid "File:"
353
+ msgstr "Archivo:"
354
+
355
+ #: includes/CMB2_JS.php:86 includes/CMB2_JS.php:119
356
+ msgid "Clear"
357
+ msgstr "Borrar"
358
+
359
+ #: includes/CMB2_JS.php:87
360
+ msgid "Default"
361
+ msgstr "Por defecto"
362
+
363
+ #: includes/CMB2_JS.php:88
364
+ msgid "Select Color"
365
+ msgstr "Seleccionar color"
366
+
367
+ #: includes/CMB2_JS.php:89
368
+ msgid "Current Color"
369
+ msgstr "Seleccionar color"
370
+
371
+ #: includes/CMB2_JS.php:110
372
+ msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
373
+ msgstr "El domingo, lunes, martes, miércoles, jueves, viernes, sábado"
374
+
375
+ #: includes/CMB2_JS.php:111
376
+ msgid "Su, Mo, Tu, We, Th, Fr, Sa"
377
+ msgstr "Do, Lu, Ma, Mi, Ju, Vi, Sa"
378
+
379
+ #: includes/CMB2_JS.php:112
380
+ msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
381
+ msgstr "Sun, L, M, X, J, V, S"
382
+
383
+ #: includes/CMB2_JS.php:113
384
+ msgid ""
385
+ "January, February, March, April, May, June, July, August, September, "
386
+ "October, November, December"
387
+ msgstr "Enero, febrero, marzo, abril, mayo, junio, julio, agosto, septiembre, Octubre, Noviembre, Diciembre"
388
+
389
+ #: includes/CMB2_JS.php:114
390
+ msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
391
+ msgstr "Enero, febrero, marzo, abril, mayo, junio, julio, agosto, septiembre, octubre, noviembre, diciembre"
392
+
393
+ #: includes/CMB2_JS.php:115
394
+ msgid "Next"
395
+ msgstr "Siguiente"
396
+
397
+ #: includes/CMB2_JS.php:116
398
+ msgid "Prev"
399
+ msgstr "Anterior"
400
+
401
+ #: includes/CMB2_JS.php:117
402
+ msgid "Today"
403
+ msgstr "Hoy"
404
+
405
+ #: includes/CMB2_JS.php:118 includes/CMB2_JS.php:128
406
+ msgid "Done"
407
+ msgstr "Hecho"
408
+
409
+ #: includes/CMB2_JS.php:122
410
+ msgid "Choose Time"
411
+ msgstr "Elegir Hora"
412
+
413
+ #: includes/CMB2_JS.php:123
414
+ msgid "Time"
415
+ msgstr "Hora"
416
+
417
+ #: includes/CMB2_JS.php:124
418
+ msgid "Hour"
419
+ msgstr "Hora"
420
+
421
+ #: includes/CMB2_JS.php:125
422
+ msgid "Minute"
423
+ msgstr "Minuto"
424
+
425
+ #: includes/CMB2_JS.php:126
426
+ msgid "Second"
427
+ msgstr "Segundos"
428
+
429
+ #: includes/CMB2_JS.php:127
430
+ msgid "Now"
431
+ msgstr "Ahora"
432
+
433
+ #: includes/CMB2_JS.php:135
434
+ msgid "Use this file"
435
+ msgstr "Usar este archivo"
436
+
437
+ #: includes/CMB2_JS.php:136
438
+ msgid "Use these files"
439
+ msgstr "Usar estos archivos"
440
+
441
+ #: includes/CMB2_JS.php:137 includes/types/CMB2_Type_File_Base.php:61
442
+ msgid "Remove Image"
443
+ msgstr "Eliminar imagen"
444
+
445
+ #: includes/CMB2_JS.php:138 includes/CMB2_Types.php:257
446
+ #: includes/types/CMB2_Type_File_Base.php:80 tests/test-cmb-types-base.php:143
447
+ #: tests/test-cmb-types.php:47 tests/test-cmb-types.php:55
448
+ #: tests/test-cmb-types.php:701
449
+ msgid "Remove"
450
+ msgstr "Eliminar"
451
+
452
+ #: includes/CMB2_JS.php:140 includes/types/CMB2_Type_File_Base.php:78
453
+ #: tests/test-cmb-types-base.php:143 tests/test-cmb-types.php:701
454
+ msgid "Download"
455
+ msgstr "Descargar"
456
+
457
+ #: includes/CMB2_JS.php:141
458
+ msgid "Select / Deselect All"
459
+ msgstr "Seleccionar / Deseleccionar todo"
460
+
461
+ #: includes/CMB2_Types.php:194
462
+ msgid "Add Row"
463
+ msgstr "Añadir fila"
464
+
465
+ #: includes/CMB2_hookup.php:145
466
+ msgid ""
467
+ "Term Metadata is a WordPress > 4.4 feature. Please upgrade your WordPress "
468
+ "install."
469
+ msgstr ""
470
+
471
+ #: includes/CMB2_hookup.php:149
472
+ msgid "Term metaboxes configuration requires a 'taxonomies' parameter"
473
+ msgstr ""
474
+
475
+ #: includes/helper-functions.php:93
476
+ msgid "No oEmbed Results Found for %s. View more info at %s"
477
+ msgstr ""
478
+
479
+ #: includes/helper-functions.php:279
480
+ msgid "Save"
481
+ msgstr "Guardar"
482
+
483
+ #: includes/types/CMB2_Type_File.php:36 tests/test-cmb-types.php:683
484
+ #: tests/test-cmb-types.php:701
485
+ msgid "Add or Upload File"
486
+ msgstr "Añadir o Cargar archivo"
487
+
488
+ #: includes/types/CMB2_Type_File_List.php:36 tests/test-cmb-types.php:639
489
+ #: tests/test-cmb-types.php:663
490
+ msgid "Add or Upload Files"
491
+ msgstr "Añadir o Subir archivos"
492
+
493
+ #: includes/types/CMB2_Type_Taxonomy_Multicheck.php:27
494
+ #: includes/types/CMB2_Type_Taxonomy_Radio.php:25
495
+ msgid "No terms"
496
+ msgstr "No hay términos"
497
+
498
+ #. Plugin Name of the plugin/theme
499
+ msgid "CMB2"
500
+ msgstr "CMB2"
501
+
502
+ #. Plugin URI of the plugin/theme
503
+ msgid "https://github.com/CMB2/CMB2"
504
+ msgstr "https://github.com/CMB2/CMB2"
505
+
506
+ #. Description of the plugin/theme
507
+ msgid ""
508
+ "CMB2 will create metaboxes and forms with custom fields that will blow your "
509
+ "mind."
510
+ msgstr "CMB2 creará metaboxes y formularios con campos personalizados que harán volar tu Mente."
511
+
512
+ #. Author of the plugin/theme
513
+ msgid "WebDevStudios"
514
+ msgstr "WebDevStudios"
515
+
516
+ #. Author URI of the plugin/theme
517
+ msgid "http://webdevstudios.com"
518
+ msgstr "http://webdevstudios.com"
519
+
520
+ #: includes/CMB2_JS.php:109
521
+ msgctxt "Valid formatDate string for jquery-ui datepicker"
522
+ msgid "mm/dd/yy"
523
+ msgstr "dd/mm/yy"
524
+
525
+ #: includes/CMB2_JS.php:129
526
+ msgctxt ""
527
+ "Valid formatting string, as per "
528
+ "http://trentrichardson.com/examples/timepicker/"
529
+ msgid "hh:mm TT"
530
+ msgstr "hh:mm TT"
includes/vendor/cmb2/languages/cmb2-es_MX.mo ADDED
Binary file
includes/vendor/cmb2/languages/cmb2-fa_IR.mo CHANGED
Binary file
includes/vendor/cmb2/languages/cmb2-fa_IR.po CHANGED
@@ -7,30 +7,31 @@ msgstr ""
7
  "Project-Id-Version: CMB2\n"
8
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
9
  "POT-Creation-Date: 2016-06-27 17:01:22+00:00\n"
10
- "PO-Revision-Date: 2016-06-27 17:01+0000\n"
11
  "Last-Translator: Justin Sternberg <me@jtsternberg.com>\n"
12
- "Language-Team: Persian (Iran) (http://www.transifex.com/wp-translations/cmb2/language/fa_IR/)\n"
 
13
  "MIME-Version: 1.0\n"
14
  "Content-Type: text/plain; charset=UTF-8\n"
15
  "Content-Transfer-Encoding: 8bit\n"
16
  "Language: fa_IR\n"
17
  "Plural-Forms: nplurals=1; plural=0;\n"
18
- "X-Generator: grunt-wp-i18n 0.4.9\n"
19
- "X-Poedit-Basepath: ../\n"
20
- "X-Poedit-Bookmarks: \n"
21
- "X-Poedit-Country: United States\n"
22
- "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
23
- "X-Poedit-SearchPath-0: .\n"
24
  "X-Poedit-SourceCharset: UTF-8\n"
25
  "X-Textdomain-Support: yes\n"
 
26
 
27
  #: example-functions.php:117 tests/test-cmb-field.php:255
28
  msgid "Test Metabox"
29
- msgstr ""
30
 
31
  #: example-functions.php:130 example-functions.php:436
32
  msgid "Test Text"
33
- msgstr ""
34
 
35
  #: example-functions.php:131 example-functions.php:144
36
  #: example-functions.php:157 example-functions.php:165
@@ -52,19 +53,19 @@ msgstr ""
52
  #: example-functions.php:613 example-functions.php:650
53
  #: tests/test-cmb-field.php:267
54
  msgid "field description (optional)"
55
- msgstr ""
56
 
57
  #: example-functions.php:143
58
  msgid "Test Text Small"
59
- msgstr ""
60
 
61
  #: example-functions.php:156
62
  msgid "Test Text Medium"
63
- msgstr ""
64
 
65
  #: example-functions.php:164
66
  msgid "Custom Rendered Field"
67
- msgstr ""
68
 
69
  #: example-functions.php:172
70
  msgid "Website URL"
@@ -72,11 +73,11 @@ msgstr "آدرس وب سایت"
72
 
73
  #: example-functions.php:181
74
  msgid "Test Text Email"
75
- msgstr ""
76
 
77
  #: example-functions.php:189
78
  msgid "Test Time"
79
- msgstr ""
80
 
81
  #: example-functions.php:197 example-functions.php:198
82
  msgid "Time zone"
@@ -84,110 +85,110 @@ msgstr "زمان محلی"
84
 
85
  #: example-functions.php:204
86
  msgid "Test Date Picker"
87
- msgstr ""
88
 
89
  #: example-functions.php:212
90
  msgid "Test Date Picker (UNIX timestamp)"
91
- msgstr ""
92
 
93
  #: example-functions.php:220
94
  msgid "Test Date/Time Picker Combo (UNIX timestamp)"
95
- msgstr ""
96
 
97
  #: example-functions.php:237
98
  msgid "Test Money"
99
- msgstr ""
100
 
101
  #: example-functions.php:246
102
  msgid "Test Color Picker"
103
- msgstr ""
104
 
105
  #: example-functions.php:259
106
  msgid "Test Text Area"
107
- msgstr ""
108
 
109
  #: example-functions.php:266
110
  msgid "Test Text Area Small"
111
- msgstr ""
112
 
113
  #: example-functions.php:273
114
  msgid "Test Text Area for Code"
115
- msgstr ""
116
 
117
  #: example-functions.php:280
118
  msgid "Test Title Weeeee"
119
- msgstr ""
120
 
121
  #: example-functions.php:281
122
  msgid "This is a title description"
123
- msgstr ""
124
 
125
  #: example-functions.php:287
126
  msgid "Test Select"
127
- msgstr ""
128
 
129
  #: example-functions.php:293 example-functions.php:306
130
  #: example-functions.php:318
131
  msgid "Option One"
132
- msgstr ""
133
 
134
  #: example-functions.php:294 example-functions.php:307
135
  #: example-functions.php:319
136
  msgid "Option Two"
137
- msgstr ""
138
 
139
  #: example-functions.php:295 example-functions.php:308
140
  #: example-functions.php:320
141
  msgid "Option Three"
142
- msgstr ""
143
 
144
  #: example-functions.php:300
145
  msgid "Test Radio inline"
146
- msgstr ""
147
 
148
  #: example-functions.php:313
149
  msgid "Test Radio"
150
- msgstr ""
151
 
152
  #: example-functions.php:325
153
  msgid "Test Taxonomy Radio"
154
- msgstr ""
155
 
156
  #: example-functions.php:334
157
  msgid "Test Taxonomy Select"
158
- msgstr ""
159
 
160
  #: example-functions.php:342
161
  msgid "Test Taxonomy Multi Checkbox"
162
- msgstr ""
163
 
164
  #: example-functions.php:351
165
  msgid "Test Checkbox"
166
- msgstr ""
167
 
168
  #: example-functions.php:358 tests/test-cmb-field.php:266
169
  msgid "Test Multi Checkbox"
170
- msgstr ""
171
 
172
  #: example-functions.php:364 tests/test-cmb-field.php:272
173
  msgid "Check One"
174
- msgstr ""
175
 
176
  #: example-functions.php:365 tests/test-cmb-field.php:273
177
  msgid "Check Two"
178
- msgstr ""
179
 
180
  #: example-functions.php:366 tests/test-cmb-field.php:274
181
  msgid "Check Three"
182
- msgstr ""
183
 
184
  #: example-functions.php:372
185
  msgid "Test wysiwyg"
186
- msgstr ""
187
 
188
  #: example-functions.php:380
189
  msgid "Test Image"
190
- msgstr ""
191
 
192
  #: example-functions.php:381
193
  msgid "Upload an image or enter a URL."
@@ -195,49 +196,53 @@ msgstr "فایل آپلود کنید یا URL را وارد کنید."
195
 
196
  #: example-functions.php:387
197
  msgid "Multiple Files"
198
- msgstr ""
199
 
200
  #: example-functions.php:388
201
  msgid "Upload or add multiple images/attachments."
202
- msgstr ""
203
 
204
  #: example-functions.php:395
205
  msgid "oEmbed"
206
- msgstr ""
207
 
208
  #: example-functions.php:396
209
  msgid ""
210
  "Enter a youtube, twitter, or instagram URL. Supports services listed at <a "
211
- "href=\"http://codex.wordpress.org/Embeds\">http://codex.wordpress.org/Embeds</a>."
 
212
  msgstr ""
 
 
 
213
 
214
  #: example-functions.php:427
215
  msgid "About Page Metabox"
216
- msgstr ""
217
 
218
  #: example-functions.php:456
219
  msgid "Repeating Field Group"
220
- msgstr ""
221
 
222
  #: example-functions.php:464
223
  msgid "Generates reusable form entries"
224
- msgstr ""
225
 
226
  #: example-functions.php:466
227
  msgid "Entry {#}"
228
- msgstr ""
229
 
230
  #: example-functions.php:467
231
  msgid "Add Another Entry"
232
- msgstr ""
233
 
234
  #: example-functions.php:468
235
  msgid "Remove Entry"
236
- msgstr ""
237
 
238
  #: example-functions.php:481
239
  msgid "Entry Title"
240
- msgstr ""
241
 
242
  #: example-functions.php:488
243
  msgid "Description"
@@ -245,11 +250,11 @@ msgstr "توضیح"
245
 
246
  #: example-functions.php:489
247
  msgid "Write a short description for this entry"
248
- msgstr ""
249
 
250
  #: example-functions.php:495
251
  msgid "Entry Image"
252
- msgstr ""
253
 
254
  #: example-functions.php:501
255
  msgid "Image Caption"
@@ -257,15 +262,15 @@ msgstr "توضیح تصویر"
257
 
258
  #: example-functions.php:520
259
  msgid "User Profile Metabox"
260
- msgstr ""
261
 
262
  #: example-functions.php:527 example-functions.php:597
263
  msgid "Extra Info"
264
- msgstr ""
265
 
266
  #: example-functions.php:535
267
  msgid "Avatar"
268
- msgstr "چهرک"
269
 
270
  #: example-functions.php:542
271
  msgid "Facebook URL"
@@ -273,43 +278,43 @@ msgstr "نشانی صفحه فیس بوک"
273
 
274
  #: example-functions.php:549
275
  msgid "Twitter URL"
276
- msgstr ""
277
 
278
  #: example-functions.php:556
279
  msgid "Google+ URL"
280
- msgstr ""
281
 
282
  #: example-functions.php:563
283
  msgid "Linkedin URL"
284
- msgstr ""
285
 
286
  #: example-functions.php:570
287
  msgid "User Field"
288
- msgstr ""
289
 
290
  #: example-functions.php:590
291
  msgid "Category Metabox"
292
- msgstr ""
293
 
294
  #: example-functions.php:605
295
  msgid "Term Image"
296
- msgstr ""
297
 
298
  #: example-functions.php:612
299
  msgid "Arbitrary Term Field"
300
- msgstr ""
301
 
302
  #: example-functions.php:634
303
  msgid "Theme Options Metabox"
304
- msgstr ""
305
 
306
  #: example-functions.php:649
307
  msgid "Site Background Color"
308
- msgstr ""
309
 
310
  #: includes/CMB2.php:129
311
  msgid "Metabox configuration is required to have an ID parameter"
312
- msgstr ""
313
 
314
  #: includes/CMB2.php:418
315
  msgid "Click to toggle"
@@ -317,23 +322,23 @@ msgstr "برای جانشینی کلیک کنید"
317
 
318
  #: includes/CMB2_Ajax.php:71
319
  msgid "Please Try Again"
320
- msgstr ""
321
 
322
  #: includes/CMB2_Ajax.php:173 tests/cmb-tests-base.php:59
323
  msgid "Remove Embed"
324
- msgstr ""
325
 
326
  #: includes/CMB2_Ajax.php:177 tests/cmb-tests-base.php:64
327
  msgid "No oEmbed Results Found for %s. View more info at"
328
- msgstr ""
329
 
330
  #: includes/CMB2_Field.php:1186
331
  msgid "Add Group"
332
- msgstr ""
333
 
334
  #: includes/CMB2_Field.php:1187
335
  msgid "Remove Group"
336
- msgstr ""
337
 
338
  #: includes/CMB2_Field.php:1209 includes/CMB2_Field.php:1213
339
  #: tests/test-cmb-field.php:229
@@ -342,13 +347,13 @@ msgstr "هیچ‌یک"
342
 
343
  #: includes/CMB2_Field.php:1269
344
  msgid "Sorry, this field does not have a cmb_id specified."
345
- msgstr ""
346
 
347
  #: includes/CMB2_Field_Display.php:408 includes/CMB2_JS.php:139
348
  #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
349
  #: tests/test-cmb-types.php:701
350
  msgid "File:"
351
- msgstr ""
352
 
353
  #: includes/CMB2_JS.php:86 includes/CMB2_JS.php:119
354
  msgid "Clear"
@@ -368,25 +373,27 @@ msgstr "رنگ فعلی"
368
 
369
  #: includes/CMB2_JS.php:110
370
  msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
371
- msgstr ""
372
 
373
  #: includes/CMB2_JS.php:111
374
  msgid "Su, Mo, Tu, We, Th, Fr, Sa"
375
- msgstr ""
376
 
377
  #: includes/CMB2_JS.php:112
378
  msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
379
- msgstr ""
380
 
381
  #: includes/CMB2_JS.php:113
382
  msgid ""
383
  "January, February, March, April, May, June, July, August, September, "
384
  "October, November, December"
385
  msgstr ""
 
 
386
 
387
  #: includes/CMB2_JS.php:114
388
  msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
389
- msgstr ""
390
 
391
  #: includes/CMB2_JS.php:115
392
  msgid "Next"
@@ -406,7 +413,7 @@ msgstr "انجام شد"
406
 
407
  #: includes/CMB2_JS.php:122
408
  msgid "Choose Time"
409
- msgstr ""
410
 
411
  #: includes/CMB2_JS.php:123
412
  msgid "Time"
@@ -422,19 +429,19 @@ msgstr "دقیقه"
422
 
423
  #: includes/CMB2_JS.php:126
424
  msgid "Second"
425
- msgstr ""
426
 
427
  #: includes/CMB2_JS.php:127
428
  msgid "Now"
429
- msgstr ""
430
 
431
  #: includes/CMB2_JS.php:135
432
  msgid "Use this file"
433
- msgstr ""
434
 
435
  #: includes/CMB2_JS.php:136
436
  msgid "Use these files"
437
- msgstr ""
438
 
439
  #: includes/CMB2_JS.php:137 includes/types/CMB2_Type_File_Base.php:61
440
  msgid "Remove Image"
@@ -454,25 +461,27 @@ msgstr "دانلود"
454
 
455
  #: includes/CMB2_JS.php:141
456
  msgid "Select / Deselect All"
457
- msgstr ""
458
 
459
  #: includes/CMB2_Types.php:194
460
  msgid "Add Row"
461
- msgstr ""
462
 
463
  #: includes/CMB2_hookup.php:145
464
  msgid ""
465
  "Term Metadata is a WordPress > 4.4 feature. Please upgrade your WordPress "
466
  "install."
467
  msgstr ""
 
 
468
 
469
  #: includes/CMB2_hookup.php:149
470
  msgid "Term metaboxes configuration requires a 'taxonomies' parameter"
471
- msgstr ""
472
 
473
  #: includes/helper-functions.php:93
474
  msgid "No oEmbed Results Found for %s. View more info at %s"
475
- msgstr ""
476
 
477
  #: includes/helper-functions.php:279
478
  msgid "Save"
@@ -481,48 +490,48 @@ msgstr "ذخیره"
481
  #: includes/types/CMB2_Type_File.php:36 tests/test-cmb-types.php:683
482
  #: tests/test-cmb-types.php:701
483
  msgid "Add or Upload File"
484
- msgstr ""
485
 
486
  #: includes/types/CMB2_Type_File_List.php:36 tests/test-cmb-types.php:639
487
  #: tests/test-cmb-types.php:663
488
  msgid "Add or Upload Files"
489
- msgstr ""
490
 
491
  #: includes/types/CMB2_Type_Taxonomy_Multicheck.php:27
492
  #: includes/types/CMB2_Type_Taxonomy_Radio.php:25
493
  msgid "No terms"
494
- msgstr ""
495
 
496
  #. Plugin Name of the plugin/theme
497
  msgid "CMB2"
498
- msgstr ""
499
 
500
  #. Plugin URI of the plugin/theme
501
  msgid "https://github.com/CMB2/CMB2"
502
- msgstr ""
503
 
504
  #. Description of the plugin/theme
505
  msgid ""
506
  "CMB2 will create metaboxes and forms with custom fields that will blow your "
507
  "mind."
508
- msgstr ""
509
 
510
  #. Author of the plugin/theme
511
  msgid "WebDevStudios"
512
- msgstr ""
513
 
514
  #. Author URI of the plugin/theme
515
  msgid "http://webdevstudios.com"
516
- msgstr ""
517
 
518
  #: includes/CMB2_JS.php:109
519
  msgctxt "Valid formatDate string for jquery-ui datepicker"
520
  msgid "mm/dd/yy"
521
- msgstr ""
522
 
523
  #: includes/CMB2_JS.php:129
524
  msgctxt ""
525
- "Valid formatting string, as per "
526
- "http://trentrichardson.com/examples/timepicker/"
527
  msgid "hh:mm TT"
528
- msgstr ""
7
  "Project-Id-Version: CMB2\n"
8
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
9
  "POT-Creation-Date: 2016-06-27 17:01:22+00:00\n"
10
+ "PO-Revision-Date: 2017-11-05 17:11+0330\n"
11
  "Last-Translator: Justin Sternberg <me@jtsternberg.com>\n"
12
+ "Language-Team: Persian (Iran) (http://www.transifex.com/wp-translations/"
13
+ "cmb2/language/fa_IR/)\n"
14
  "MIME-Version: 1.0\n"
15
  "Content-Type: text/plain; charset=UTF-8\n"
16
  "Content-Transfer-Encoding: 8bit\n"
17
  "Language: fa_IR\n"
18
  "Plural-Forms: nplurals=1; plural=0;\n"
19
+ "X-Generator: Poedit 1.8.7.1\n"
20
+ "X-Poedit-Basepath: ..\n"
21
+ "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
22
+ "_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
23
+ "esc_html_x:1,2c\n"
 
24
  "X-Poedit-SourceCharset: UTF-8\n"
25
  "X-Textdomain-Support: yes\n"
26
+ "X-Poedit-SearchPath-0: .\n"
27
 
28
  #: example-functions.php:117 tests/test-cmb-field.php:255
29
  msgid "Test Metabox"
30
+ msgstr " آزمایش متاباکس"
31
 
32
  #: example-functions.php:130 example-functions.php:436
33
  msgid "Test Text"
34
+ msgstr "متن آزمایشی"
35
 
36
  #: example-functions.php:131 example-functions.php:144
37
  #: example-functions.php:157 example-functions.php:165
53
  #: example-functions.php:613 example-functions.php:650
54
  #: tests/test-cmb-field.php:267
55
  msgid "field description (optional)"
56
+ msgstr "توضیحات فیلد (اختیاری)"
57
 
58
  #: example-functions.php:143
59
  msgid "Test Text Small"
60
+ msgstr "کادر متن کوچک آزمایشی"
61
 
62
  #: example-functions.php:156
63
  msgid "Test Text Medium"
64
+ msgstr "کادر متن متوسط آزمایشی"
65
 
66
  #: example-functions.php:164
67
  msgid "Custom Rendered Field"
68
+ msgstr "فیلد شخصی سازی شده"
69
 
70
  #: example-functions.php:172
71
  msgid "Website URL"
73
 
74
  #: example-functions.php:181
75
  msgid "Test Text Email"
76
+ msgstr "کادر متنی ایمیل"
77
 
78
  #: example-functions.php:189
79
  msgid "Test Time"
80
+ msgstr "زمان آزمایشی"
81
 
82
  #: example-functions.php:197 example-functions.php:198
83
  msgid "Time zone"
85
 
86
  #: example-functions.php:204
87
  msgid "Test Date Picker"
88
+ msgstr "انتخاب کننده تاریخ آزمایشی"
89
 
90
  #: example-functions.php:212
91
  msgid "Test Date Picker (UNIX timestamp)"
92
+ msgstr "انتخاب کننده تاریخ آزمایشی (unix timestamp)"
93
 
94
  #: example-functions.php:220
95
  msgid "Test Date/Time Picker Combo (UNIX timestamp)"
96
+ msgstr "انتخاب کننده تاریخ آزمایشی (unix timestamp)"
97
 
98
  #: example-functions.php:237
99
  msgid "Test Money"
100
+ msgstr "پول آزمایشی"
101
 
102
  #: example-functions.php:246
103
  msgid "Test Color Picker"
104
+ msgstr "آزمایش انتخاب کننده رنگ"
105
 
106
  #: example-functions.php:259
107
  msgid "Test Text Area"
108
+ msgstr "آزمایش Text Area"
109
 
110
  #: example-functions.php:266
111
  msgid "Test Text Area Small"
112
+ msgstr "آزمایش Text Area کوچک"
113
 
114
  #: example-functions.php:273
115
  msgid "Test Text Area for Code"
116
+ msgstr "آزمایش Text Area برای کد"
117
 
118
  #: example-functions.php:280
119
  msgid "Test Title Weeeee"
120
+ msgstr "Test Title Weeeee"
121
 
122
  #: example-functions.php:281
123
  msgid "This is a title description"
124
+ msgstr "این یک توضیح برای عنوان است"
125
 
126
  #: example-functions.php:287
127
  msgid "Test Select"
128
+ msgstr "آزمایش Select"
129
 
130
  #: example-functions.php:293 example-functions.php:306
131
  #: example-functions.php:318
132
  msgid "Option One"
133
+ msgstr "گزینه اول"
134
 
135
  #: example-functions.php:294 example-functions.php:307
136
  #: example-functions.php:319
137
  msgid "Option Two"
138
+ msgstr "گزینه دوم"
139
 
140
  #: example-functions.php:295 example-functions.php:308
141
  #: example-functions.php:320
142
  msgid "Option Three"
143
+ msgstr "گزینه سوم"
144
 
145
  #: example-functions.php:300
146
  msgid "Test Radio inline"
147
+ msgstr "آزمایش Radio درون خطی"
148
 
149
  #: example-functions.php:313
150
  msgid "Test Radio"
151
+ msgstr "آزمایش Radio "
152
 
153
  #: example-functions.php:325
154
  msgid "Test Taxonomy Radio"
155
+ msgstr "آزمایش Taxonomy radio"
156
 
157
  #: example-functions.php:334
158
  msgid "Test Taxonomy Select"
159
+ msgstr "آزمایش Taxonomy Select"
160
 
161
  #: example-functions.php:342
162
  msgid "Test Taxonomy Multi Checkbox"
163
+ msgstr "آزمایش Taxonomy Multi Checkbox"
164
 
165
  #: example-functions.php:351
166
  msgid "Test Checkbox"
167
+ msgstr "آزمایش Checkbox"
168
 
169
  #: example-functions.php:358 tests/test-cmb-field.php:266
170
  msgid "Test Multi Checkbox"
171
+ msgstr "آزمایش Multi Checkbox"
172
 
173
  #: example-functions.php:364 tests/test-cmb-field.php:272
174
  msgid "Check One"
175
+ msgstr "گزینه اول"
176
 
177
  #: example-functions.php:365 tests/test-cmb-field.php:273
178
  msgid "Check Two"
179
+ msgstr "گزینه دوم"
180
 
181
  #: example-functions.php:366 tests/test-cmb-field.php:274
182
  msgid "Check Three"
183
+ msgstr "گزینه سوم"
184
 
185
  #: example-functions.php:372
186
  msgid "Test wysiwyg"
187
+ msgstr "آزمایش wysiwyg"
188
 
189
  #: example-functions.php:380
190
  msgid "Test Image"
191
+ msgstr "آزمایش Image"
192
 
193
  #: example-functions.php:381
194
  msgid "Upload an image or enter a URL."
196
 
197
  #: example-functions.php:387
198
  msgid "Multiple Files"
199
+ msgstr "چند فایل"
200
 
201
  #: example-functions.php:388
202
  msgid "Upload or add multiple images/attachments."
203
+ msgstr "آپلود فایل ها"
204
 
205
  #: example-functions.php:395
206
  msgid "oEmbed"
207
+ msgstr "oEmbed"
208
 
209
  #: example-functions.php:396
210
  msgid ""
211
  "Enter a youtube, twitter, or instagram URL. Supports services listed at <a "
212
+ "href=\"http://codex.wordpress.org/Embeds\">http://codex.wordpress.org/"
213
+ "Embeds</a>."
214
  msgstr ""
215
+ "آدرس URL یوتیوب، تویتر یا ایستاگرام را وارد کنید. سرویس های پشتیبانی شده در "
216
+ "<a href=\"http://codex.wordpress.org/Embeds\">http://codex.wordpress.org/"
217
+ "Embeds</a> موجود هستند."
218
 
219
  #: example-functions.php:427
220
  msgid "About Page Metabox"
221
+ msgstr "درباره متاباکس صفحه"
222
 
223
  #: example-functions.php:456
224
  msgid "Repeating Field Group"
225
+ msgstr "Field Group تکرار شونده"
226
 
227
  #: example-functions.php:464
228
  msgid "Generates reusable form entries"
229
+ msgstr "آیتم های فرم با قابلیت استفاده مجدد میسازد"
230
 
231
  #: example-functions.php:466
232
  msgid "Entry {#}"
233
+ msgstr "آیتم {#}"
234
 
235
  #: example-functions.php:467
236
  msgid "Add Another Entry"
237
+ msgstr "افزودن آیتم دیگر"
238
 
239
  #: example-functions.php:468
240
  msgid "Remove Entry"
241
+ msgstr "حذف آیتم"
242
 
243
  #: example-functions.php:481
244
  msgid "Entry Title"
245
+ msgstr "عنوان"
246
 
247
  #: example-functions.php:488
248
  msgid "Description"
250
 
251
  #: example-functions.php:489
252
  msgid "Write a short description for this entry"
253
+ msgstr "توضیح کوتاهی برای این آیتم بنویسید"
254
 
255
  #: example-functions.php:495
256
  msgid "Entry Image"
257
+ msgstr "تصویر آیتم"
258
 
259
  #: example-functions.php:501
260
  msgid "Image Caption"
262
 
263
  #: example-functions.php:520
264
  msgid "User Profile Metabox"
265
+ msgstr "متاباکس پروفایل"
266
 
267
  #: example-functions.php:527 example-functions.php:597
268
  msgid "Extra Info"
269
+ msgstr "اطلاعات بیشتر"
270
 
271
  #: example-functions.php:535
272
  msgid "Avatar"
273
+ msgstr "آواتار"
274
 
275
  #: example-functions.php:542
276
  msgid "Facebook URL"
278
 
279
  #: example-functions.php:549
280
  msgid "Twitter URL"
281
+ msgstr "آدرس Twitter"
282
 
283
  #: example-functions.php:556
284
  msgid "Google+ URL"
285
+ msgstr "آدرس Google+"
286
 
287
  #: example-functions.php:563
288
  msgid "Linkedin URL"
289
+ msgstr "آدرس Linkedin"
290
 
291
  #: example-functions.php:570
292
  msgid "User Field"
293
+ msgstr "فیلد کاربر"
294
 
295
  #: example-functions.php:590
296
  msgid "Category Metabox"
297
+ msgstr "متاباکس دسته بندی"
298
 
299
  #: example-functions.php:605
300
  msgid "Term Image"
301
+ msgstr "Term Image"
302
 
303
  #: example-functions.php:612
304
  msgid "Arbitrary Term Field"
305
+ msgstr "زمینه ترتیب دلخواه"
306
 
307
  #: example-functions.php:634
308
  msgid "Theme Options Metabox"
309
+ msgstr "گزینه های پوسته متاباکس"
310
 
311
  #: example-functions.php:649
312
  msgid "Site Background Color"
313
+ msgstr "پس زمینه سایت"
314
 
315
  #: includes/CMB2.php:129
316
  msgid "Metabox configuration is required to have an ID parameter"
317
+ msgstr "تنظیمات متاباکس نیاز به پارامتر ID دارد"
318
 
319
  #: includes/CMB2.php:418
320
  msgid "Click to toggle"
322
 
323
  #: includes/CMB2_Ajax.php:71
324
  msgid "Please Try Again"
325
+ msgstr "لطفا دوباره تلاش کنید"
326
 
327
  #: includes/CMB2_Ajax.php:173 tests/cmb-tests-base.php:59
328
  msgid "Remove Embed"
329
+ msgstr "حذف Embed"
330
 
331
  #: includes/CMB2_Ajax.php:177 tests/cmb-tests-base.php:64
332
  msgid "No oEmbed Results Found for %s. View more info at"
333
+ msgstr "هیچ نتیجه ای برای %s پیدا نشد. نمایش جزئیات بیشتر در "
334
 
335
  #: includes/CMB2_Field.php:1186
336
  msgid "Add Group"
337
+ msgstr "افزودن گروه"
338
 
339
  #: includes/CMB2_Field.php:1187
340
  msgid "Remove Group"
341
+ msgstr "حذف گروه"
342
 
343
  #: includes/CMB2_Field.php:1209 includes/CMB2_Field.php:1213
344
  #: tests/test-cmb-field.php:229
347
 
348
  #: includes/CMB2_Field.php:1269
349
  msgid "Sorry, this field does not have a cmb_id specified."
350
+ msgstr "برای این فیلد cmb_id مشخص نشده است"
351
 
352
  #: includes/CMB2_Field_Display.php:408 includes/CMB2_JS.php:139
353
  #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
354
  #: tests/test-cmb-types.php:701
355
  msgid "File:"
356
+ msgstr "فایل:"
357
 
358
  #: includes/CMB2_JS.php:86 includes/CMB2_JS.php:119
359
  msgid "Clear"
373
 
374
  #: includes/CMB2_JS.php:110
375
  msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
376
+ msgstr "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
377
 
378
  #: includes/CMB2_JS.php:111
379
  msgid "Su, Mo, Tu, We, Th, Fr, Sa"
380
+ msgstr "Su, Mo, Tu, We, Th, Fr, Sa"
381
 
382
  #: includes/CMB2_JS.php:112
383
  msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
384
+ msgstr "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
385
 
386
  #: includes/CMB2_JS.php:113
387
  msgid ""
388
  "January, February, March, April, May, June, July, August, September, "
389
  "October, November, December"
390
  msgstr ""
391
+ "January, February, March, April, May, June, July, August, September, "
392
+ "October, November, December"
393
 
394
  #: includes/CMB2_JS.php:114
395
  msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
396
+ msgstr "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
397
 
398
  #: includes/CMB2_JS.php:115
399
  msgid "Next"
413
 
414
  #: includes/CMB2_JS.php:122
415
  msgid "Choose Time"
416
+ msgstr "انتخاب زمان"
417
 
418
  #: includes/CMB2_JS.php:123
419
  msgid "Time"
429
 
430
  #: includes/CMB2_JS.php:126
431
  msgid "Second"
432
+ msgstr "ثانیه"
433
 
434
  #: includes/CMB2_JS.php:127
435
  msgid "Now"
436
+ msgstr "حالا"
437
 
438
  #: includes/CMB2_JS.php:135
439
  msgid "Use this file"
440
+ msgstr "استفاده از این فایل"
441
 
442
  #: includes/CMB2_JS.php:136
443
  msgid "Use these files"
444
+ msgstr "استفاده از این فایل ها"
445
 
446
  #: includes/CMB2_JS.php:137 includes/types/CMB2_Type_File_Base.php:61
447
  msgid "Remove Image"
461
 
462
  #: includes/CMB2_JS.php:141
463
  msgid "Select / Deselect All"
464
+ msgstr "انتخاب/ لغو انتخاب همه"
465
 
466
  #: includes/CMB2_Types.php:194
467
  msgid "Add Row"
468
+ msgstr "افزودن ردیف"
469
 
470
  #: includes/CMB2_hookup.php:145
471
  msgid ""
472
  "Term Metadata is a WordPress > 4.4 feature. Please upgrade your WordPress "
473
  "install."
474
  msgstr ""
475
+ "Term Metadata is a WordPress > 4.4 feature. Please upgrade your WordPress "
476
+ "install."
477
 
478
  #: includes/CMB2_hookup.php:149
479
  msgid "Term metaboxes configuration requires a 'taxonomies' parameter"
480
+ msgstr "تنظیمات متاباکس نیاز به پارامتر taxonomies دارد"
481
 
482
  #: includes/helper-functions.php:93
483
  msgid "No oEmbed Results Found for %s. View more info at %s"
484
+ msgstr "هیچ نتیجه ای برای %s پیدا نشد. نمایش جزئیات بیشتر در %s"
485
 
486
  #: includes/helper-functions.php:279
487
  msgid "Save"
490
  #: includes/types/CMB2_Type_File.php:36 tests/test-cmb-types.php:683
491
  #: tests/test-cmb-types.php:701
492
  msgid "Add or Upload File"
493
+ msgstr "آپلود فایل"
494
 
495
  #: includes/types/CMB2_Type_File_List.php:36 tests/test-cmb-types.php:639
496
  #: tests/test-cmb-types.php:663
497
  msgid "Add or Upload Files"
498
+ msgstr "انتخاب یا آپلود فایل"
499
 
500
  #: includes/types/CMB2_Type_Taxonomy_Multicheck.php:27
501
  #: includes/types/CMB2_Type_Taxonomy_Radio.php:25
502
  msgid "No terms"
503
+ msgstr "بدون کلمه"
504
 
505
  #. Plugin Name of the plugin/theme
506
  msgid "CMB2"
507
+ msgstr "CMB2"
508
 
509
  #. Plugin URI of the plugin/theme
510
  msgid "https://github.com/CMB2/CMB2"
511
+ msgstr "https://github.com/CMB2/CMB2"
512
 
513
  #. Description of the plugin/theme
514
  msgid ""
515
  "CMB2 will create metaboxes and forms with custom fields that will blow your "
516
  "mind."
517
+ msgstr "CMB2 برای شما متاباکس و فرم با فیلدهای سفارشی میسازد"
518
 
519
  #. Author of the plugin/theme
520
  msgid "WebDevStudios"
521
+ msgstr "WebDevStudios"
522
 
523
  #. Author URI of the plugin/theme
524
  msgid "http://webdevstudios.com"
525
+ msgstr "http://webdevstudios.com"
526
 
527
  #: includes/CMB2_JS.php:109
528
  msgctxt "Valid formatDate string for jquery-ui datepicker"
529
  msgid "mm/dd/yy"
530
+ msgstr "mm/dd/yy"
531
 
532
  #: includes/CMB2_JS.php:129
533
  msgctxt ""
534
+ "Valid formatting string, as per http://trentrichardson.com/examples/"
535
+ "timepicker/"
536
  msgid "hh:mm TT"
537
+ msgstr "hh:mm TT"
includes/vendor/cmb2/languages/cmb2-it_IT.mo CHANGED
Binary file
includes/vendor/cmb2/languages/cmb2-it_IT.po CHANGED
@@ -1,59 +1,60 @@
1
- # Copyright (C) 2016 WebDevStudios
2
  # This file is distributed under the same license as the CMB2 package.
3
  # Translators:
4
  # Alessandro Curci <hantarex@gmail.com>, 2015
5
  # Andrea Brandi, 2015
6
- # Daniele Scasciafratte Mte90 <mte90net@gmail.com>, 2015
7
- # Emanuele <realbarnux@gmail.com>, 2015
8
  msgid ""
9
  msgstr ""
10
  "Project-Id-Version: CMB2\n"
11
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
12
- "POT-Creation-Date: 2016-06-27 17:01:22+00:00\n"
13
- "PO-Revision-Date: 2016-06-27 17:01+0000\n"
14
- "Last-Translator: Justin Sternberg <me@jtsternberg.com>\n"
15
- "Language-Team: Italian (Italy) (http://www.transifex.com/wp-translations/cmb2/language/it_IT/)\n"
 
16
  "MIME-Version: 1.0\n"
17
  "Content-Type: text/plain; charset=UTF-8\n"
18
  "Content-Transfer-Encoding: 8bit\n"
19
  "Language: it_IT\n"
20
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
21
- "X-Generator: grunt-wp-i18n 0.4.9\n"
22
- "X-Poedit-Basepath: ../\n"
23
- "X-Poedit-Bookmarks: \n"
24
- "X-Poedit-Country: United States\n"
25
- "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
26
- "X-Poedit-SearchPath-0: .\n"
27
  "X-Poedit-SourceCharset: UTF-8\n"
28
  "X-Textdomain-Support: yes\n"
 
29
 
30
  #: example-functions.php:117 tests/test-cmb-field.php:255
31
  msgid "Test Metabox"
32
  msgstr "Test Metabox"
33
 
34
- #: example-functions.php:130 example-functions.php:436
35
  msgid "Test Text"
36
  msgstr "Test Testo"
37
 
38
  #: example-functions.php:131 example-functions.php:144
39
- #: example-functions.php:157 example-functions.php:165
40
- #: example-functions.php:173 example-functions.php:182
41
- #: example-functions.php:190 example-functions.php:205
42
- #: example-functions.php:213 example-functions.php:221
43
- #: example-functions.php:238 example-functions.php:247
44
- #: example-functions.php:260 example-functions.php:267
45
- #: example-functions.php:274 example-functions.php:288
46
- #: example-functions.php:301 example-functions.php:314
47
- #: example-functions.php:326 example-functions.php:335
48
- #: example-functions.php:343 example-functions.php:352
49
- #: example-functions.php:359 example-functions.php:373
50
- #: example-functions.php:437 example-functions.php:528
51
- #: example-functions.php:536 example-functions.php:543
52
- #: example-functions.php:550 example-functions.php:557
53
- #: example-functions.php:564 example-functions.php:571
54
- #: example-functions.php:598 example-functions.php:606
55
- #: example-functions.php:613 example-functions.php:650
56
- #: tests/test-cmb-field.php:267
57
  msgid "field description (optional)"
58
  msgstr "descrizione campo (opzionale)"
59
 
@@ -65,256 +66,266 @@ msgstr "Test Testo Piccolo"
65
  msgid "Test Text Medium"
66
  msgstr "Test Testo Medio"
67
 
68
- #: example-functions.php:164
 
 
 
 
 
 
 
 
69
  msgid "Custom Rendered Field"
70
- msgstr ""
71
 
72
- #: example-functions.php:172
73
  msgid "Website URL"
74
  msgstr "URL Sito"
75
 
76
- #: example-functions.php:181
77
  msgid "Test Text Email"
78
  msgstr "Test Testo Email"
79
 
80
- #: example-functions.php:189
81
  msgid "Test Time"
82
  msgstr "Test Orario"
83
 
84
- #: example-functions.php:197 example-functions.php:198
85
  msgid "Time zone"
86
  msgstr "Time zone"
87
 
88
- #: example-functions.php:204
89
  msgid "Test Date Picker"
90
  msgstr "Test Date Picker"
91
 
92
- #: example-functions.php:212
93
  msgid "Test Date Picker (UNIX timestamp)"
94
  msgstr "Test Data Picker (UNIX timestamp)"
95
 
96
- #: example-functions.php:220
97
  msgid "Test Date/Time Picker Combo (UNIX timestamp)"
98
  msgstr "Test Data/Orario Picker Combo (UNIX timestamp)"
99
 
100
- #: example-functions.php:237
101
  msgid "Test Money"
102
  msgstr "Test Money"
103
 
104
- #: example-functions.php:246
105
  msgid "Test Color Picker"
106
  msgstr "Test Color Picker"
107
 
108
- #: example-functions.php:259
109
  msgid "Test Text Area"
110
  msgstr "Test Text Area"
111
 
112
- #: example-functions.php:266
113
  msgid "Test Text Area Small"
114
  msgstr "Test Text Area Piccola"
115
 
116
- #: example-functions.php:273
117
  msgid "Test Text Area for Code"
118
  msgstr "Test Text Area per Codice"
119
 
120
- #: example-functions.php:280
121
  msgid "Test Title Weeeee"
122
  msgstr "Test Titolo Weeeee"
123
 
124
- #: example-functions.php:281
125
  msgid "This is a title description"
126
  msgstr "Questa è una descrizione del titolo"
127
 
128
- #: example-functions.php:287
129
  msgid "Test Select"
130
  msgstr "Test Select"
131
 
132
- #: example-functions.php:293 example-functions.php:306
133
- #: example-functions.php:318
134
  msgid "Option One"
135
  msgstr "Opzione uno"
136
 
137
- #: example-functions.php:294 example-functions.php:307
138
- #: example-functions.php:319
139
  msgid "Option Two"
140
  msgstr "Opzione Due"
141
 
142
- #: example-functions.php:295 example-functions.php:308
143
- #: example-functions.php:320
144
  msgid "Option Three"
145
  msgstr "Opzione Tre"
146
 
147
- #: example-functions.php:300
148
  msgid "Test Radio inline"
149
  msgstr "Test Radio inline"
150
 
151
- #: example-functions.php:313
152
  msgid "Test Radio"
153
  msgstr "Test Radio"
154
 
155
- #: example-functions.php:325
156
  msgid "Test Taxonomy Radio"
157
  msgstr "Test Tassonomia Radio"
158
 
159
- #: example-functions.php:334
160
  msgid "Test Taxonomy Select"
161
  msgstr "Test Seleziona Tassonomia"
162
 
163
- #: example-functions.php:342
164
  msgid "Test Taxonomy Multi Checkbox"
165
  msgstr "Test Tassonomia Multi Checkbox"
166
 
167
- #: example-functions.php:351
168
  msgid "Test Checkbox"
169
  msgstr "Test Checkbox"
170
 
171
- #: example-functions.php:358 tests/test-cmb-field.php:266
172
  msgid "Test Multi Checkbox"
173
  msgstr "Test Multi Checkbox"
174
 
175
- #: example-functions.php:364 tests/test-cmb-field.php:272
176
  msgid "Check One"
177
  msgstr "Check Uno"
178
 
179
- #: example-functions.php:365 tests/test-cmb-field.php:273
180
  msgid "Check Two"
181
  msgstr "Check Due"
182
 
183
- #: example-functions.php:366 tests/test-cmb-field.php:274
184
  msgid "Check Three"
185
  msgstr "Check Tre"
186
 
187
- #: example-functions.php:372
188
  msgid "Test wysiwyg"
189
  msgstr "Test wysiwyg"
190
 
191
- #: example-functions.php:380
192
  msgid "Test Image"
193
  msgstr "Test Immagine"
194
 
195
- #: example-functions.php:381
196
  msgid "Upload an image or enter a URL."
197
  msgstr "Carica una immagine o inserisci una URL"
198
 
199
- #: example-functions.php:387
200
  msgid "Multiple Files"
201
  msgstr "File Multipli"
202
 
203
- #: example-functions.php:388
204
  msgid "Upload or add multiple images/attachments."
205
  msgstr "Carica o aggiungi immagini/allegati multipli"
206
 
207
- #: example-functions.php:395
208
  msgid "oEmbed"
209
  msgstr "oEmbed"
210
 
211
- #: example-functions.php:396
 
212
  msgid ""
213
- "Enter a youtube, twitter, or instagram URL. Supports services listed at <a "
214
- "href=\"http://codex.wordpress.org/Embeds\">http://codex.wordpress.org/Embeds</a>."
215
- msgstr "Inserisci una URL di youtube, twitter, o instagram. I servizi supportati si trovano su <a href=\"http://codex.wordpress.org/Embeds\">http://codex.wordpress.org/Embeds</a>."
 
216
 
217
- #: example-functions.php:427
218
  msgid "About Page Metabox"
219
  msgstr "About Page Metabox"
220
 
221
- #: example-functions.php:456
222
  msgid "Repeating Field Group"
223
  msgstr "Gruppo Campi Ripetuto"
224
 
225
- #: example-functions.php:464
226
  msgid "Generates reusable form entries"
227
  msgstr "Genera elementi del form riusabili"
228
 
229
- #: example-functions.php:466
230
  msgid "Entry {#}"
231
  msgstr "Instanza {#}"
232
 
233
- #: example-functions.php:467
234
  msgid "Add Another Entry"
235
  msgstr "Aggiungi una nuova instanza"
236
 
237
- #: example-functions.php:468
238
  msgid "Remove Entry"
239
  msgstr "Rimuovi instanza"
240
 
241
- #: example-functions.php:481
242
  msgid "Entry Title"
243
  msgstr "Inserisci Titolo"
244
 
245
- #: example-functions.php:488
246
  msgid "Description"
247
  msgstr "Descrizione"
248
 
249
- #: example-functions.php:489
250
  msgid "Write a short description for this entry"
251
  msgstr "Scrivi una breve descrizione per questo elemento"
252
 
253
- #: example-functions.php:495
254
  msgid "Entry Image"
255
  msgstr "Inserisci Immagine"
256
 
257
- #: example-functions.php:501
258
  msgid "Image Caption"
259
  msgstr "Didascalia immagine"
260
 
261
- #: example-functions.php:520
262
  msgid "User Profile Metabox"
263
  msgstr "Profilo Utente Metabox"
264
 
265
- #: example-functions.php:527 example-functions.php:597
266
  msgid "Extra Info"
267
  msgstr "Informazioni extra"
268
 
269
- #: example-functions.php:535
270
  msgid "Avatar"
271
  msgstr "Avatar"
272
 
273
- #: example-functions.php:542
274
  msgid "Facebook URL"
275
  msgstr "URL Facebook"
276
 
277
- #: example-functions.php:549
278
  msgid "Twitter URL"
279
  msgstr "URL Twitter"
280
 
281
- #: example-functions.php:556
282
  msgid "Google+ URL"
283
  msgstr "URL Google+"
284
 
285
- #: example-functions.php:563
286
  msgid "Linkedin URL"
287
  msgstr "URL LinkedIn"
288
 
289
- #: example-functions.php:570
290
  msgid "User Field"
291
  msgstr "Campo utente"
292
 
293
- #: example-functions.php:590
294
  msgid "Category Metabox"
295
- msgstr ""
296
 
297
- #: example-functions.php:605
298
  msgid "Term Image"
299
- msgstr ""
300
 
301
- #: example-functions.php:612
302
  msgid "Arbitrary Term Field"
303
- msgstr ""
304
 
305
- #: example-functions.php:634
306
  msgid "Theme Options Metabox"
307
  msgstr "Opzioni Tema Metabox"
308
 
309
- #: example-functions.php:649
310
  msgid "Site Background Color"
311
  msgstr "Colore di sfondo del sito"
312
 
313
- #: includes/CMB2.php:129
314
- msgid "Metabox configuration is required to have an ID parameter"
315
- msgstr "La configurazione del Metabox richiede un parametro ID"
316
 
317
- #: includes/CMB2.php:418
318
  msgid "Click to toggle"
319
  msgstr "Clicca per commutare"
320
 
@@ -326,158 +337,187 @@ msgstr "Prova Ancora"
326
  msgid "Remove Embed"
327
  msgstr "Rimuovi Embed"
328
 
329
- #: includes/CMB2_Ajax.php:177 tests/cmb-tests-base.php:64
330
- msgid "No oEmbed Results Found for %s. View more info at"
331
- msgstr "Nessun Risultato oEmbed trovato per %s. Trova altre informazioni su"
 
 
 
332
 
333
- #: includes/CMB2_Field.php:1186
334
  msgid "Add Group"
335
  msgstr "Aggiungi gruppo"
336
 
337
- #: includes/CMB2_Field.php:1187
338
  msgid "Remove Group"
339
  msgstr "Rimuovi gruppo"
340
 
341
- #: includes/CMB2_Field.php:1209 includes/CMB2_Field.php:1213
342
  #: tests/test-cmb-field.php:229
343
  msgid "None"
344
  msgstr "Nessuno"
345
 
346
- #: includes/CMB2_Field.php:1269
347
  msgid "Sorry, this field does not have a cmb_id specified."
348
- msgstr ""
349
 
350
- #: includes/CMB2_Field_Display.php:408 includes/CMB2_JS.php:139
351
  #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
352
  #: tests/test-cmb-types.php:701
353
  msgid "File:"
354
  msgstr "File:"
355
 
356
- #: includes/CMB2_JS.php:86 includes/CMB2_JS.php:119
357
  msgid "Clear"
358
  msgstr "Pulisci"
359
 
360
- #: includes/CMB2_JS.php:87
361
  msgid "Default"
362
  msgstr "Predefinito"
363
 
364
- #: includes/CMB2_JS.php:88
365
  msgid "Select Color"
366
  msgstr "Seleziona colore"
367
 
368
- #: includes/CMB2_JS.php:89
369
  msgid "Current Color"
370
  msgstr "Colore attuale"
371
 
372
- #: includes/CMB2_JS.php:110
373
  msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
374
  msgstr "Domenica, Lunedi, Martedì, Mercoledì, Giovedi, Venerdì, Sabato"
375
 
376
- #: includes/CMB2_JS.php:111
377
  msgid "Su, Mo, Tu, We, Th, Fr, Sa"
378
  msgstr "Do, Lu, Ma, Me, Gi, Ve, Sa"
379
 
380
- #: includes/CMB2_JS.php:112
381
  msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
382
  msgstr "Dom, Lun, Mar, Mer, Gio, Ven, Sab"
383
 
384
- #: includes/CMB2_JS.php:113
385
  msgid ""
386
  "January, February, March, April, May, June, July, August, September, "
387
  "October, November, December"
388
- msgstr "Gennaio, Febbraio, Marzo, Aprile, Maggio, Giugno, Luglio, Agosto, Settembre, Ottobre, Novembre, Dicembre"
 
 
389
 
390
- #: includes/CMB2_JS.php:114
391
  msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
392
  msgstr "Gen, Feb, Mar, Apr, Mag, Giu, Lug, Ago, Set, Ott, Nov, Dic"
393
 
394
- #: includes/CMB2_JS.php:115
395
  msgid "Next"
396
  msgstr "Successivo"
397
 
398
- #: includes/CMB2_JS.php:116
399
  msgid "Prev"
400
  msgstr "Precedente"
401
 
402
- #: includes/CMB2_JS.php:117
403
  msgid "Today"
404
  msgstr "Oggi"
405
 
406
- #: includes/CMB2_JS.php:118 includes/CMB2_JS.php:128
407
  msgid "Done"
408
  msgstr "Finito"
409
 
410
- #: includes/CMB2_JS.php:122
411
  msgid "Choose Time"
412
  msgstr "Scegli la data"
413
 
414
- #: includes/CMB2_JS.php:123
415
  msgid "Time"
416
  msgstr "Data"
417
 
418
- #: includes/CMB2_JS.php:124
419
  msgid "Hour"
420
  msgstr "Ora"
421
 
422
- #: includes/CMB2_JS.php:125
423
  msgid "Minute"
424
  msgstr "Minuto"
425
 
426
- #: includes/CMB2_JS.php:126
427
  msgid "Second"
428
  msgstr "Secondi"
429
 
430
- #: includes/CMB2_JS.php:127
431
  msgid "Now"
432
  msgstr "Ora"
433
 
434
- #: includes/CMB2_JS.php:135
435
  msgid "Use this file"
436
  msgstr "Usa questo file"
437
 
438
- #: includes/CMB2_JS.php:136
439
  msgid "Use these files"
440
  msgstr "Usa questi file"
441
 
442
- #: includes/CMB2_JS.php:137 includes/types/CMB2_Type_File_Base.php:61
443
  msgid "Remove Image"
444
  msgstr "Rimuovi immagine"
445
 
446
- #: includes/CMB2_JS.php:138 includes/CMB2_Types.php:257
447
  #: includes/types/CMB2_Type_File_Base.php:80 tests/test-cmb-types-base.php:143
448
  #: tests/test-cmb-types.php:47 tests/test-cmb-types.php:55
449
  #: tests/test-cmb-types.php:701
450
  msgid "Remove"
451
  msgstr "Rimuovi"
452
 
453
- #: includes/CMB2_JS.php:140 includes/types/CMB2_Type_File_Base.php:78
454
  #: tests/test-cmb-types-base.php:143 tests/test-cmb-types.php:701
455
  msgid "Download"
456
  msgstr "Download"
457
 
458
- #: includes/CMB2_JS.php:141
459
  msgid "Select / Deselect All"
460
  msgstr "Seleziona / Deseleziona tutto"
461
 
462
- #: includes/CMB2_Types.php:194
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
463
  msgid "Add Row"
464
  msgstr "Aggiungi Riga"
465
 
466
- #: includes/CMB2_hookup.php:145
467
  msgid ""
468
- "Term Metadata is a WordPress > 4.4 feature. Please upgrade your WordPress "
469
  "install."
470
  msgstr ""
 
 
471
 
472
- #: includes/CMB2_hookup.php:149
473
- msgid "Term metaboxes configuration requires a 'taxonomies' parameter"
474
  msgstr ""
 
 
475
 
476
- #: includes/helper-functions.php:93
477
- msgid "No oEmbed Results Found for %s. View more info at %s"
478
- msgstr ""
479
-
480
- #: includes/helper-functions.php:279
481
  msgid "Save"
482
  msgstr "Salva"
483
 
@@ -497,6 +537,10 @@ msgid "No terms"
497
  msgstr "Nessun termine"
498
 
499
  #. Plugin Name of the plugin/theme
 
 
 
 
500
  msgid "CMB2"
501
  msgstr "CMB2"
502
 
@@ -508,24 +552,22 @@ msgstr "https://github.com/CMB2/CMB2"
508
  msgid ""
509
  "CMB2 will create metaboxes and forms with custom fields that will blow your "
510
  "mind."
511
- msgstr "CMB2 crea metabox e form con campi personalizzati che ti faranno esplodere la testa."
512
-
513
- #. Author of the plugin/theme
514
- msgid "WebDevStudios"
515
- msgstr "WebDevStudios"
516
 
517
  #. Author URI of the plugin/theme
518
- msgid "http://webdevstudios.com"
519
- msgstr "http://webdevstudios.com"
520
 
521
- #: includes/CMB2_JS.php:109
522
  msgctxt "Valid formatDate string for jquery-ui datepicker"
523
  msgid "mm/dd/yy"
524
  msgstr "mm/dd/yy"
525
 
526
- #: includes/CMB2_JS.php:129
527
  msgctxt ""
528
- "Valid formatting string, as per "
529
- "http://trentrichardson.com/examples/timepicker/"
530
  msgid "hh:mm TT"
531
  msgstr "hh:mm TT"
1
+ # Copyright (C) 2017 CMB2 team
2
  # This file is distributed under the same license as the CMB2 package.
3
  # Translators:
4
  # Alessandro Curci <hantarex@gmail.com>, 2015
5
  # Andrea Brandi, 2015
6
+ # Daniele Scasciafratte Mte90 <mte90net@gmail.com>, 2015,2017
7
+ # Emanuele <e@emanuelebartolomucci.com>, 2015
8
  msgid ""
9
  msgstr ""
10
  "Project-Id-Version: CMB2\n"
11
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
12
+ "POT-Creation-Date: 2016-08-17 14:25:09+00:00\n"
13
+ "PO-Revision-Date: 2017-11-30 14:22-0500\n"
14
+ "Last-Translator: Justin Sternberg <justin@dsgnwrks.pro>\n"
15
+ "Language-Team: Italian (Italy) (http://www.transifex.com/wp-translations/"
16
+ "cmb2/language/it_IT/)\n"
17
  "MIME-Version: 1.0\n"
18
  "Content-Type: text/plain; charset=UTF-8\n"
19
  "Content-Transfer-Encoding: 8bit\n"
20
  "Language: it_IT\n"
21
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
22
+ "X-Generator: Poedit 1.8.7\n"
23
+ "X-Poedit-Basepath: ..\n"
24
+ "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
25
+ "_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
26
+ "esc_html_x:1,2c\n"
 
27
  "X-Poedit-SourceCharset: UTF-8\n"
28
  "X-Textdomain-Support: yes\n"
29
+ "X-Poedit-SearchPath-0: .\n"
30
 
31
  #: example-functions.php:117 tests/test-cmb-field.php:255
32
  msgid "Test Metabox"
33
  msgstr "Test Metabox"
34
 
35
+ #: example-functions.php:130 example-functions.php:452
36
  msgid "Test Text"
37
  msgstr "Test Testo"
38
 
39
  #: example-functions.php:131 example-functions.php:144
40
+ #: example-functions.php:157 example-functions.php:164
41
+ #: example-functions.php:177 example-functions.php:185
42
+ #: example-functions.php:194 example-functions.php:202
43
+ #: example-functions.php:217 example-functions.php:225
44
+ #: example-functions.php:233 example-functions.php:250
45
+ #: example-functions.php:259 example-functions.php:272
46
+ #: example-functions.php:279 example-functions.php:286
47
+ #: example-functions.php:300 example-functions.php:313
48
+ #: example-functions.php:326 example-functions.php:338
49
+ #: example-functions.php:347 example-functions.php:355
50
+ #: example-functions.php:364 example-functions.php:371
51
+ #: example-functions.php:385 example-functions.php:453
52
+ #: example-functions.php:544 example-functions.php:552
53
+ #: example-functions.php:559 example-functions.php:566
54
+ #: example-functions.php:573 example-functions.php:580
55
+ #: example-functions.php:587 example-functions.php:614
56
+ #: example-functions.php:622 example-functions.php:629
57
+ #: example-functions.php:666 tests/test-cmb-field.php:267
58
  msgid "field description (optional)"
59
  msgstr "descrizione campo (opzionale)"
60
 
66
  msgid "Test Text Medium"
67
  msgstr "Test Testo Medio"
68
 
69
+ #: example-functions.php:163
70
+ msgid "Read-only Disabled Field"
71
+ msgstr "Disabilita campo in sola lettura"
72
+
73
+ #: example-functions.php:167
74
+ msgid "Hey there, I'm a read-only field"
75
+ msgstr "Ciao, Io sono un campo di sola lettura"
76
+
77
+ #: example-functions.php:176
78
  msgid "Custom Rendered Field"
79
+ msgstr "Campo personalizzato renderizzato"
80
 
81
+ #: example-functions.php:184
82
  msgid "Website URL"
83
  msgstr "URL Sito"
84
 
85
+ #: example-functions.php:193
86
  msgid "Test Text Email"
87
  msgstr "Test Testo Email"
88
 
89
+ #: example-functions.php:201
90
  msgid "Test Time"
91
  msgstr "Test Orario"
92
 
93
+ #: example-functions.php:209 example-functions.php:210
94
  msgid "Time zone"
95
  msgstr "Time zone"
96
 
97
+ #: example-functions.php:216
98
  msgid "Test Date Picker"
99
  msgstr "Test Date Picker"
100
 
101
+ #: example-functions.php:224
102
  msgid "Test Date Picker (UNIX timestamp)"
103
  msgstr "Test Data Picker (UNIX timestamp)"
104
 
105
+ #: example-functions.php:232
106
  msgid "Test Date/Time Picker Combo (UNIX timestamp)"
107
  msgstr "Test Data/Orario Picker Combo (UNIX timestamp)"
108
 
109
+ #: example-functions.php:249
110
  msgid "Test Money"
111
  msgstr "Test Money"
112
 
113
+ #: example-functions.php:258
114
  msgid "Test Color Picker"
115
  msgstr "Test Color Picker"
116
 
117
+ #: example-functions.php:271
118
  msgid "Test Text Area"
119
  msgstr "Test Text Area"
120
 
121
+ #: example-functions.php:278
122
  msgid "Test Text Area Small"
123
  msgstr "Test Text Area Piccola"
124
 
125
+ #: example-functions.php:285
126
  msgid "Test Text Area for Code"
127
  msgstr "Test Text Area per Codice"
128
 
129
+ #: example-functions.php:292
130
  msgid "Test Title Weeeee"
131
  msgstr "Test Titolo Weeeee"
132
 
133
+ #: example-functions.php:293
134
  msgid "This is a title description"
135
  msgstr "Questa è una descrizione del titolo"
136
 
137
+ #: example-functions.php:299
138
  msgid "Test Select"
139
  msgstr "Test Select"
140
 
141
+ #: example-functions.php:305 example-functions.php:318
142
+ #: example-functions.php:330
143
  msgid "Option One"
144
  msgstr "Opzione uno"
145
 
146
+ #: example-functions.php:306 example-functions.php:319
147
+ #: example-functions.php:331
148
  msgid "Option Two"
149
  msgstr "Opzione Due"
150
 
151
+ #: example-functions.php:307 example-functions.php:320
152
+ #: example-functions.php:332
153
  msgid "Option Three"
154
  msgstr "Opzione Tre"
155
 
156
+ #: example-functions.php:312
157
  msgid "Test Radio inline"
158
  msgstr "Test Radio inline"
159
 
160
+ #: example-functions.php:325
161
  msgid "Test Radio"
162
  msgstr "Test Radio"
163
 
164
+ #: example-functions.php:337
165
  msgid "Test Taxonomy Radio"
166
  msgstr "Test Tassonomia Radio"
167
 
168
+ #: example-functions.php:346
169
  msgid "Test Taxonomy Select"
170
  msgstr "Test Seleziona Tassonomia"
171
 
172
+ #: example-functions.php:354
173
  msgid "Test Taxonomy Multi Checkbox"
174
  msgstr "Test Tassonomia Multi Checkbox"
175
 
176
+ #: example-functions.php:363
177
  msgid "Test Checkbox"
178
  msgstr "Test Checkbox"
179
 
180
+ #: example-functions.php:370 tests/test-cmb-field.php:266
181
  msgid "Test Multi Checkbox"
182
  msgstr "Test Multi Checkbox"
183
 
184
+ #: example-functions.php:376 tests/test-cmb-field.php:272
185
  msgid "Check One"
186
  msgstr "Check Uno"
187
 
188
+ #: example-functions.php:377 tests/test-cmb-field.php:273
189
  msgid "Check Two"
190
  msgstr "Check Due"
191
 
192
+ #: example-functions.php:378 tests/test-cmb-field.php:274
193
  msgid "Check Three"
194
  msgstr "Check Tre"
195
 
196
+ #: example-functions.php:384
197
  msgid "Test wysiwyg"
198
  msgstr "Test wysiwyg"
199
 
200
+ #: example-functions.php:392
201
  msgid "Test Image"
202
  msgstr "Test Immagine"
203
 
204
+ #: example-functions.php:393
205
  msgid "Upload an image or enter a URL."
206
  msgstr "Carica una immagine o inserisci una URL"
207
 
208
+ #: example-functions.php:399
209
  msgid "Multiple Files"
210
  msgstr "File Multipli"
211
 
212
+ #: example-functions.php:400
213
  msgid "Upload or add multiple images/attachments."
214
  msgstr "Carica o aggiungi immagini/allegati multipli"
215
 
216
+ #: example-functions.php:407
217
  msgid "oEmbed"
218
  msgstr "oEmbed"
219
 
220
+ #. translators: %s: link to codex.wordpress.org/Embeds
221
+ #: example-functions.php:410
222
  msgid ""
223
+ "Enter a youtube, twitter, or instagram URL. Supports services listed at %s."
224
+ msgstr ""
225
+ "Inserisci una URL di youtube, twitter o instagram. Servizi supportato sono "
226
+ "elencati su %s."
227
 
228
+ #: example-functions.php:443
229
  msgid "About Page Metabox"
230
  msgstr "About Page Metabox"
231
 
232
+ #: example-functions.php:472
233
  msgid "Repeating Field Group"
234
  msgstr "Gruppo Campi Ripetuto"
235
 
236
+ #: example-functions.php:480
237
  msgid "Generates reusable form entries"
238
  msgstr "Genera elementi del form riusabili"
239
 
240
+ #: example-functions.php:482
241
  msgid "Entry {#}"
242
  msgstr "Instanza {#}"
243
 
244
+ #: example-functions.php:483
245
  msgid "Add Another Entry"
246
  msgstr "Aggiungi una nuova instanza"
247
 
248
+ #: example-functions.php:484
249
  msgid "Remove Entry"
250
  msgstr "Rimuovi instanza"
251
 
252
+ #: example-functions.php:497
253
  msgid "Entry Title"
254
  msgstr "Inserisci Titolo"
255
 
256
+ #: example-functions.php:504
257
  msgid "Description"
258
  msgstr "Descrizione"
259
 
260
+ #: example-functions.php:505
261
  msgid "Write a short description for this entry"
262
  msgstr "Scrivi una breve descrizione per questo elemento"
263
 
264
+ #: example-functions.php:511
265
  msgid "Entry Image"
266
  msgstr "Inserisci Immagine"
267
 
268
+ #: example-functions.php:517
269
  msgid "Image Caption"
270
  msgstr "Didascalia immagine"
271
 
272
+ #: example-functions.php:536
273
  msgid "User Profile Metabox"
274
  msgstr "Profilo Utente Metabox"
275
 
276
+ #: example-functions.php:543 example-functions.php:613
277
  msgid "Extra Info"
278
  msgstr "Informazioni extra"
279
 
280
+ #: example-functions.php:551
281
  msgid "Avatar"
282
  msgstr "Avatar"
283
 
284
+ #: example-functions.php:558
285
  msgid "Facebook URL"
286
  msgstr "URL Facebook"
287
 
288
+ #: example-functions.php:565
289
  msgid "Twitter URL"
290
  msgstr "URL Twitter"
291
 
292
+ #: example-functions.php:572
293
  msgid "Google+ URL"
294
  msgstr "URL Google+"
295
 
296
+ #: example-functions.php:579
297
  msgid "Linkedin URL"
298
  msgstr "URL LinkedIn"
299
 
300
+ #: example-functions.php:586
301
  msgid "User Field"
302
  msgstr "Campo utente"
303
 
304
+ #: example-functions.php:606
305
  msgid "Category Metabox"
306
+ msgstr "Metabox categoria"
307
 
308
+ #: example-functions.php:621
309
  msgid "Term Image"
310
+ msgstr "Immagine della tassonomia"
311
 
312
+ #: example-functions.php:628
313
  msgid "Arbitrary Term Field"
314
+ msgstr "Campo Arbitrary Term"
315
 
316
+ #: example-functions.php:650
317
  msgid "Theme Options Metabox"
318
  msgstr "Opzioni Tema Metabox"
319
 
320
+ #: example-functions.php:665
321
  msgid "Site Background Color"
322
  msgstr "Colore di sfondo del sito"
323
 
324
+ #: includes/CMB2.php:117
325
+ msgid "Metabox configuration is required to have an ID parameter."
326
+ msgstr "La configurazione del metabox richiede un parametro ID."
327
 
328
+ #: includes/CMB2.php:432
329
  msgid "Click to toggle"
330
  msgstr "Clicca per commutare"
331
 
337
  msgid "Remove Embed"
338
  msgstr "Rimuovi Embed"
339
 
340
+ #. translators: 1: results for. 2: link to codex.wordpress.org/Embeds
341
+ #: includes/CMB2_Ajax.php:181 includes/helper-functions.php:95
342
+ #: tests/cmb-tests-base.php:68
343
+ msgid "No oEmbed Results Found for %1$s. View more info at %2$s."
344
+ msgstr ""
345
+ "Nessun risultato OEmbed trovato per %1$s. Per altre informazioni vedi su%2$s."
346
 
347
+ #: includes/CMB2_Field.php:1144
348
  msgid "Add Group"
349
  msgstr "Aggiungi gruppo"
350
 
351
+ #: includes/CMB2_Field.php:1145
352
  msgid "Remove Group"
353
  msgstr "Rimuovi gruppo"
354
 
355
+ #: includes/CMB2_Field.php:1167 includes/CMB2_Field.php:1171
356
  #: tests/test-cmb-field.php:229
357
  msgid "None"
358
  msgstr "Nessuno"
359
 
360
+ #: includes/CMB2_Field.php:1232
361
  msgid "Sorry, this field does not have a cmb_id specified."
362
+ msgstr "Spiacenti, questo campo non ha il valore cmb_id specificato."
363
 
364
+ #: includes/CMB2_Field_Display.php:408 includes/CMB2_JS.php:155
365
  #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
366
  #: tests/test-cmb-types.php:701
367
  msgid "File:"
368
  msgstr "File:"
369
 
370
+ #: includes/CMB2_JS.php:96 includes/CMB2_JS.php:135
371
  msgid "Clear"
372
  msgstr "Pulisci"
373
 
374
+ #: includes/CMB2_JS.php:97
375
  msgid "Default"
376
  msgstr "Predefinito"
377
 
378
+ #: includes/CMB2_JS.php:98
379
  msgid "Select Color"
380
  msgstr "Seleziona colore"
381
 
382
+ #: includes/CMB2_JS.php:99
383
  msgid "Current Color"
384
  msgstr "Colore attuale"
385
 
386
+ #: includes/CMB2_JS.php:126
387
  msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
388
  msgstr "Domenica, Lunedi, Martedì, Mercoledì, Giovedi, Venerdì, Sabato"
389
 
390
+ #: includes/CMB2_JS.php:127
391
  msgid "Su, Mo, Tu, We, Th, Fr, Sa"
392
  msgstr "Do, Lu, Ma, Me, Gi, Ve, Sa"
393
 
394
+ #: includes/CMB2_JS.php:128
395
  msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
396
  msgstr "Dom, Lun, Mar, Mer, Gio, Ven, Sab"
397
 
398
+ #: includes/CMB2_JS.php:129
399
  msgid ""
400
  "January, February, March, April, May, June, July, August, September, "
401
  "October, November, December"
402
+ msgstr ""
403
+ "Gennaio, Febbraio, Marzo, Aprile, Maggio, Giugno, Luglio, Agosto, Settembre, "
404
+ "Ottobre, Novembre, Dicembre"
405
 
406
+ #: includes/CMB2_JS.php:130
407
  msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
408
  msgstr "Gen, Feb, Mar, Apr, Mag, Giu, Lug, Ago, Set, Ott, Nov, Dic"
409
 
410
+ #: includes/CMB2_JS.php:131
411
  msgid "Next"
412
  msgstr "Successivo"
413
 
414
+ #: includes/CMB2_JS.php:132
415
  msgid "Prev"
416
  msgstr "Precedente"
417
 
418
+ #: includes/CMB2_JS.php:133
419
  msgid "Today"
420
  msgstr "Oggi"
421
 
422
+ #: includes/CMB2_JS.php:134 includes/CMB2_JS.php:144
423
  msgid "Done"
424
  msgstr "Finito"
425
 
426
+ #: includes/CMB2_JS.php:138
427
  msgid "Choose Time"
428
  msgstr "Scegli la data"
429
 
430
+ #: includes/CMB2_JS.php:139
431
  msgid "Time"
432
  msgstr "Data"
433
 
434
+ #: includes/CMB2_JS.php:140
435
  msgid "Hour"
436
  msgstr "Ora"
437
 
438
+ #: includes/CMB2_JS.php:141
439
  msgid "Minute"
440
  msgstr "Minuto"
441
 
442
+ #: includes/CMB2_JS.php:142
443
  msgid "Second"
444
  msgstr "Secondi"
445
 
446
+ #: includes/CMB2_JS.php:143
447
  msgid "Now"
448
  msgstr "Ora"
449
 
450
+ #: includes/CMB2_JS.php:151
451
  msgid "Use this file"
452
  msgstr "Usa questo file"
453
 
454
+ #: includes/CMB2_JS.php:152
455
  msgid "Use these files"
456
  msgstr "Usa questi file"
457
 
458
+ #: includes/CMB2_JS.php:153 includes/types/CMB2_Type_File_Base.php:61
459
  msgid "Remove Image"
460
  msgstr "Rimuovi immagine"
461
 
462
+ #: includes/CMB2_JS.php:154 includes/CMB2_Types.php:303
463
  #: includes/types/CMB2_Type_File_Base.php:80 tests/test-cmb-types-base.php:143
464
  #: tests/test-cmb-types.php:47 tests/test-cmb-types.php:55
465
  #: tests/test-cmb-types.php:701
466
  msgid "Remove"
467
  msgstr "Rimuovi"
468
 
469
+ #: includes/CMB2_JS.php:156 includes/types/CMB2_Type_File_Base.php:78
470
  #: tests/test-cmb-types-base.php:143 tests/test-cmb-types.php:701
471
  msgid "Download"
472
  msgstr "Download"
473
 
474
+ #: includes/CMB2_JS.php:157
475
  msgid "Select / Deselect All"
476
  msgstr "Seleziona / Deseleziona tutto"
477
 
478
+ #: includes/CMB2_Types.php:171
479
+ msgid ""
480
+ "Custom field types require a Type object instantiation to use this method. "
481
+ "This method was called by the '%s' field type."
482
+ msgstr ""
483
+ "I campi personalizzati richiedono una instanziazione dell'oggetto Type per "
484
+ "usare questo metodo. Questo metodo è stato chiamato dal tipo di campo '%s'."
485
+
486
+ #: includes/CMB2_Types.php:174
487
+ msgid "That field type may not work as expected."
488
+ msgstr "Questo campo potrebbe non funzionare come previsto."
489
+
490
+ #: includes/CMB2_Types.php:175
491
+ msgid "That field type will not work as expected."
492
+ msgstr "Questo campo potrebbe non funzionare in modo corretto."
493
+
494
+ #: includes/CMB2_Types.php:177
495
+ msgid ""
496
+ "For more information about this change see: https://github.com/mustardBees/"
497
+ "cmb-field-select2/pull/34w"
498
+ msgstr ""
499
+ "Per altre informazioni riguardo questo cambiamento: https://github.com/"
500
+ "mustardBees/cmb-field-select2/pull/34w"
501
+
502
+ #: includes/CMB2_Types.php:240
503
  msgid "Add Row"
504
  msgstr "Aggiungi Riga"
505
 
506
+ #: includes/CMB2_hookup.php:128
507
  msgid ""
508
+ "Term Metadata is a WordPress 4.4+ feature. Please upgrade your WordPress "
509
  "install."
510
  msgstr ""
511
+ "Il supporto ai Term Metadata sono una funzionalità per WordPress 4.4. "
512
+ "Aggiorna la tua installazione di WordPress."
513
 
514
+ #: includes/CMB2_hookup.php:132
515
+ msgid "Term metaboxes configuration requires a \"taxonomies\" parameter."
516
  msgstr ""
517
+ "I metabox delle configurazioni per le tassonomie richiede il parametro "
518
+ "\"taxonomies\"."
519
 
520
+ #: includes/helper-functions.php:284
 
 
 
 
521
  msgid "Save"
522
  msgstr "Salva"
523
 
537
  msgstr "Nessun termine"
538
 
539
  #. Plugin Name of the plugin/theme
540
+ msgid "CMB2 team"
541
+ msgstr "CMB2 team"
542
+
543
+ #. Author of the plugin/theme
544
  msgid "CMB2"
545
  msgstr "CMB2"
546
 
552
  msgid ""
553
  "CMB2 will create metaboxes and forms with custom fields that will blow your "
554
  "mind."
555
+ msgstr ""
556
+ "CMB2 crea metabox e form con campi personalizzati che ti faranno esplodere "
557
+ "la testa."
 
 
558
 
559
  #. Author URI of the plugin/theme
560
+ msgid "https://cmb2.io"
561
+ msgstr "https://cmb2.io"
562
 
563
+ #: includes/CMB2_JS.php:125
564
  msgctxt "Valid formatDate string for jquery-ui datepicker"
565
  msgid "mm/dd/yy"
566
  msgstr "mm/dd/yy"
567
 
568
+ #: includes/CMB2_JS.php:145
569
  msgctxt ""
570
+ "Valid formatting string, as per http://trentrichardson.com/examples/"
571
+ "timepicker/"
572
  msgid "hh:mm TT"
573
  msgstr "hh:mm TT"
includes/vendor/cmb2/languages/cmb2.pot CHANGED
@@ -2,13 +2,13 @@
2
  # This file is distributed under the same license as the CMB2 package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: CMB2 2.2.5.3\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
7
- "POT-Creation-Date: 2017-08-08 14:41:40+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2017-8-8 14:41+240\n"
12
  "Last-Translator: CMB2 Team hello@cmb2.io\n"
13
  "Language-Team: CMB2 Team hello@cmb2.io\n"
14
  "X-Generator: grunt-wp-i18n 0.4.9\n"
@@ -28,7 +28,7 @@ msgstr ""
28
  msgid "Test Metabox"
29
  msgstr ""
30
 
31
- #: example-functions.php:130 example-functions.php:456
32
  msgid "Test Text"
33
  msgstr ""
34
 
@@ -38,19 +38,19 @@ msgstr ""
38
  #: example-functions.php:194 example-functions.php:202
39
  #: example-functions.php:217 example-functions.php:225
40
  #: example-functions.php:233 example-functions.php:250
41
- #: example-functions.php:259 example-functions.php:272
42
- #: example-functions.php:279 example-functions.php:286
43
- #: example-functions.php:300 example-functions.php:313
44
- #: example-functions.php:326 example-functions.php:338
45
- #: example-functions.php:347 example-functions.php:355
46
- #: example-functions.php:364 example-functions.php:371
47
- #: example-functions.php:385 example-functions.php:457
48
- #: example-functions.php:548 example-functions.php:556
49
- #: example-functions.php:563 example-functions.php:570
50
- #: example-functions.php:577 example-functions.php:584
51
- #: example-functions.php:591 example-functions.php:618
52
- #: example-functions.php:626 example-functions.php:633
53
- #: example-functions.php:677 tests/test-cmb-field.php:275
54
  msgid "field description (optional)"
55
  msgstr ""
56
 
@@ -110,235 +110,239 @@ msgstr ""
110
  msgid "Test Color Picker"
111
  msgstr ""
112
 
113
- #: example-functions.php:271
114
  msgid "Test Text Area"
115
  msgstr ""
116
 
117
- #: example-functions.php:278
118
  msgid "Test Text Area Small"
119
  msgstr ""
120
 
121
- #: example-functions.php:285
122
  msgid "Test Text Area for Code"
123
  msgstr ""
124
 
125
- #: example-functions.php:292
126
  msgid "Test Title Weeeee"
127
  msgstr ""
128
 
129
- #: example-functions.php:293
130
  msgid "This is a title description"
131
  msgstr ""
132
 
133
- #: example-functions.php:299
134
  msgid "Test Select"
135
  msgstr ""
136
 
137
- #: example-functions.php:305 example-functions.php:318
138
- #: example-functions.php:330
139
  msgid "Option One"
140
  msgstr ""
141
 
142
- #: example-functions.php:306 example-functions.php:319
143
- #: example-functions.php:331
144
  msgid "Option Two"
145
  msgstr ""
146
 
147
- #: example-functions.php:307 example-functions.php:320
148
- #: example-functions.php:332
149
  msgid "Option Three"
150
  msgstr ""
151
 
152
- #: example-functions.php:312
153
  msgid "Test Radio inline"
154
  msgstr ""
155
 
156
- #: example-functions.php:325
157
  msgid "Test Radio"
158
  msgstr ""
159
 
160
- #: example-functions.php:337
161
  msgid "Test Taxonomy Radio"
162
  msgstr ""
163
 
164
- #: example-functions.php:346
165
  msgid "Test Taxonomy Select"
166
  msgstr ""
167
 
168
- #: example-functions.php:354
169
  msgid "Test Taxonomy Multi Checkbox"
170
  msgstr ""
171
 
172
- #: example-functions.php:363
173
  msgid "Test Checkbox"
174
  msgstr ""
175
 
176
- #: example-functions.php:370 tests/test-cmb-field.php:274
177
  msgid "Test Multi Checkbox"
178
  msgstr ""
179
 
180
- #: example-functions.php:376 tests/test-cmb-field.php:280
181
  msgid "Check One"
182
  msgstr ""
183
 
184
- #: example-functions.php:377 tests/test-cmb-field.php:281
185
  msgid "Check Two"
186
  msgstr ""
187
 
188
- #: example-functions.php:378 tests/test-cmb-field.php:282
189
  msgid "Check Three"
190
  msgstr ""
191
 
192
- #: example-functions.php:384
193
  msgid "Test wysiwyg"
194
  msgstr ""
195
 
196
- #: example-functions.php:394
197
  msgid "Test Image"
198
  msgstr ""
199
 
200
- #: example-functions.php:395
201
  msgid "Upload an image or enter a URL."
202
  msgstr ""
203
 
204
- #: example-functions.php:401
205
  msgid "Multiple Files"
206
  msgstr ""
207
 
208
- #: example-functions.php:402
209
  msgid "Upload or add multiple images/attachments."
210
  msgstr ""
211
 
212
- #: example-functions.php:409
213
  msgid "oEmbed"
214
  msgstr ""
215
 
216
- #: example-functions.php:412
217
  #. translators: %s: link to codex.wordpress.org/Embeds
218
  msgid "Enter a youtube, twitter, or instagram URL. Supports services listed at %s."
219
  msgstr ""
220
 
221
- #: example-functions.php:445
222
  msgid "About Page Metabox"
223
  msgstr ""
224
 
225
- #: example-functions.php:476
226
  msgid "Repeating Field Group"
227
  msgstr ""
228
 
229
- #: example-functions.php:484
230
  msgid "Generates reusable form entries"
231
  msgstr ""
232
 
233
- #: example-functions.php:486
234
  msgid "Entry {#}"
235
  msgstr ""
236
 
237
- #: example-functions.php:487
238
  msgid "Add Another Entry"
239
  msgstr ""
240
 
241
- #: example-functions.php:488
242
  msgid "Remove Entry"
243
  msgstr ""
244
 
245
- #: example-functions.php:501
246
  msgid "Entry Title"
247
  msgstr ""
248
 
249
- #: example-functions.php:508
250
  msgid "Description"
251
  msgstr ""
252
 
253
- #: example-functions.php:509
254
  msgid "Write a short description for this entry"
255
  msgstr ""
256
 
257
- #: example-functions.php:515
258
  msgid "Entry Image"
259
  msgstr ""
260
 
261
- #: example-functions.php:521
262
  msgid "Image Caption"
263
  msgstr ""
264
 
265
- #: example-functions.php:540
266
  msgid "User Profile Metabox"
267
  msgstr ""
268
 
269
- #: example-functions.php:547 example-functions.php:617
270
  msgid "Extra Info"
271
  msgstr ""
272
 
273
- #: example-functions.php:555
274
  msgid "Avatar"
275
  msgstr ""
276
 
277
- #: example-functions.php:562
278
  msgid "Facebook URL"
279
  msgstr ""
280
 
281
- #: example-functions.php:569
282
  msgid "Twitter URL"
283
  msgstr ""
284
 
285
- #: example-functions.php:576
286
  msgid "Google+ URL"
287
  msgstr ""
288
 
289
- #: example-functions.php:583
290
  msgid "Linkedin URL"
291
  msgstr ""
292
 
293
- #: example-functions.php:590
294
  msgid "User Field"
295
  msgstr ""
296
 
297
- #: example-functions.php:610
298
  msgid "Category Metabox"
299
  msgstr ""
300
 
301
- #: example-functions.php:625
302
  msgid "Term Image"
303
  msgstr ""
304
 
305
- #: example-functions.php:632
306
  msgid "Arbitrary Term Field"
307
  msgstr ""
308
 
309
- #: example-functions.php:651
310
  msgid "Theme Options"
311
  msgstr ""
312
 
313
- #: example-functions.php:676
314
  msgid "Site Background Color"
315
  msgstr ""
316
 
317
- #: example-functions.php:712
 
 
 
 
318
  msgid "REST Test Box"
319
  msgstr ""
320
 
321
- #: example-functions.php:721
322
  msgid "REST Test Text"
323
  msgstr ""
324
 
325
- #: example-functions.php:722
326
  msgid "Will show in the REST API for this box and for pages."
327
  msgstr ""
328
 
329
- #: example-functions.php:728
330
  msgid "REST Editable Test Text"
331
  msgstr ""
332
 
333
- #: example-functions.php:729
334
  msgid "Will show in REST API \"editable\" contexts only (`POST` requests)."
335
  msgstr ""
336
 
337
- #: includes/CMB2.php:174
338
  msgid "Metabox configuration is required to have an ID parameter."
339
  msgstr ""
340
 
341
- #: includes/CMB2.php:546
342
  msgid "Click to toggle"
343
  msgstr ""
344
 
@@ -346,184 +350,188 @@ msgstr ""
346
  msgid "Please Try Again"
347
  msgstr ""
348
 
349
- #: includes/CMB2_Ajax.php:181 tests/cmb-tests-base.php:59
350
  msgid "Remove Embed"
351
  msgstr ""
352
 
353
  #: includes/CMB2_Ajax.php:189 includes/helper-functions.php:105
354
- #: tests/cmb-tests-base.php:68 tests/test-cmb-types-display.php:192
355
  #. translators: 1: results for. 2: link to codex.wordpress.org/Embeds
356
  msgid "No oEmbed Results Found for %1$s. View more info at %2$s."
357
  msgstr ""
358
 
359
- #: includes/CMB2_Base.php:406
360
  msgid ""
361
  "The \"%1$s\" field parameter has been deprecated in favor of the \"%1$s\" "
362
  "parameter."
363
  msgstr ""
364
 
365
- #: includes/CMB2_Base.php:410
366
  msgid ""
367
  "Using the \"%1$s\" field parameter as a callback has been deprecated in "
368
  "favor of the \"%1$s\" parameter."
369
  msgstr ""
370
 
371
- #: includes/CMB2_Base.php:440
372
  msgid ""
373
  "%1$s was called with a parameter that is <strong>deprecated</strong> since "
374
  "version %2$s! %3$s"
375
  msgstr ""
376
 
377
- #: includes/CMB2_Base.php:442
378
  msgid ""
379
  "%1$s was called with a parameter that is <strong>deprecated</strong> since "
380
  "version %2$s with no alternative available."
381
  msgstr ""
382
 
383
- #: includes/CMB2_Base.php:475 includes/CMB2_Hookup_Base.php:87
384
- #: includes/types/CMB2_Type_Base.php:149
385
  msgid "Invalid %1$s property: %2$s"
386
  msgstr ""
387
 
388
- #: includes/CMB2_Base.php:490 includes/types/CMB2_Type_Base.php:133
389
  msgid "Invalid %1$s method: %2$s"
390
  msgstr ""
391
 
392
- #: includes/CMB2_Field.php:1174
393
  msgid "Add Group"
394
  msgstr ""
395
 
396
- #: includes/CMB2_Field.php:1175
397
  msgid "Remove Group"
398
  msgstr ""
399
 
400
- #: includes/CMB2_Field.php:1197 includes/CMB2_Field.php:1201
401
  #: tests/test-cmb-field.php:237
402
  msgid "None"
403
  msgstr ""
404
 
405
- #: includes/CMB2_Field.php:1262
406
  msgid "Sorry, this field does not have a cmb_id specified."
407
  msgstr ""
408
 
409
- #: includes/CMB2_Field_Display.php:432 includes/CMB2_JS.php:167
410
  #: includes/types/CMB2_Type_File_Base.php:78 tests/test-cmb-types-base.php:149
411
- #: tests/test-cmb-types.php:727
412
  msgid "File:"
413
  msgstr ""
414
 
415
- #: includes/CMB2_JS.php:107 includes/CMB2_JS.php:147
 
 
 
 
416
  msgid "Clear"
417
  msgstr ""
418
 
419
- #: includes/CMB2_JS.php:108
420
  msgid "Default"
421
  msgstr ""
422
 
423
- #: includes/CMB2_JS.php:109
424
  msgid "Select Color"
425
  msgstr ""
426
 
427
- #: includes/CMB2_JS.php:110
428
  msgid "Current Color"
429
  msgstr ""
430
 
431
- #: includes/CMB2_JS.php:138
432
  msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
433
  msgstr ""
434
 
435
- #: includes/CMB2_JS.php:139
436
  msgid "Su, Mo, Tu, We, Th, Fr, Sa"
437
  msgstr ""
438
 
439
- #: includes/CMB2_JS.php:140
440
  msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
441
  msgstr ""
442
 
443
- #: includes/CMB2_JS.php:141
444
  msgid ""
445
  "January, February, March, April, May, June, July, August, September, "
446
  "October, November, December"
447
  msgstr ""
448
 
449
- #: includes/CMB2_JS.php:142
450
  msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
451
  msgstr ""
452
 
453
- #: includes/CMB2_JS.php:143
454
  msgid "Next"
455
  msgstr ""
456
 
457
- #: includes/CMB2_JS.php:144
458
  msgid "Prev"
459
  msgstr ""
460
 
461
- #: includes/CMB2_JS.php:145
462
  msgid "Today"
463
  msgstr ""
464
 
465
- #: includes/CMB2_JS.php:146 includes/CMB2_JS.php:156
466
  msgid "Done"
467
  msgstr ""
468
 
469
- #: includes/CMB2_JS.php:150
470
  msgid "Choose Time"
471
  msgstr ""
472
 
473
- #: includes/CMB2_JS.php:151
474
  msgid "Time"
475
  msgstr ""
476
 
477
- #: includes/CMB2_JS.php:152
478
  msgid "Hour"
479
  msgstr ""
480
 
481
- #: includes/CMB2_JS.php:153
482
  msgid "Minute"
483
  msgstr ""
484
 
485
- #: includes/CMB2_JS.php:154
486
  msgid "Second"
487
  msgstr ""
488
 
489
- #: includes/CMB2_JS.php:155
490
  msgid "Now"
491
  msgstr ""
492
 
493
- #: includes/CMB2_JS.php:163
494
  msgid "Use this file"
495
  msgstr ""
496
 
497
- #: includes/CMB2_JS.php:164
498
  msgid "Use these files"
499
  msgstr ""
500
 
501
- #: includes/CMB2_JS.php:165 includes/types/CMB2_Type_File_Base.php:63
502
  msgid "Remove Image"
503
  msgstr ""
504
 
505
- #: includes/CMB2_JS.php:166 includes/CMB2_Types.php:412
506
  #: includes/types/CMB2_Type_File_Base.php:83 tests/test-cmb-types-base.php:149
507
  #: tests/test-cmb-types.php:47 tests/test-cmb-types.php:55
508
- #: tests/test-cmb-types.php:727
509
  msgid "Remove"
510
  msgstr ""
511
 
512
- #: includes/CMB2_JS.php:168 includes/types/CMB2_Type_File_Base.php:81
513
- #: tests/test-cmb-types-base.php:149 tests/test-cmb-types.php:727
514
  msgid "Download"
515
  msgstr ""
516
 
517
- #: includes/CMB2_JS.php:169
518
  msgid "Select / Deselect All"
519
  msgstr ""
520
 
521
- #: includes/CMB2_Options_Hookup.php:111
522
- msgid "Settings updated."
523
  msgstr ""
524
 
525
- #: includes/CMB2_Options_Hookup.php:113
526
- msgid "Nothing to update."
527
  msgstr ""
528
 
529
  #: includes/CMB2_Types.php:231
@@ -539,17 +547,17 @@ msgstr ""
539
  msgid "Remove Row"
540
  msgstr ""
541
 
542
- #: includes/CMB2_hookup.php:163
543
  msgid ""
544
  "Term Metadata is a WordPress 4.4+ feature. Please upgrade your WordPress "
545
  "install."
546
  msgstr ""
547
 
548
- #: includes/CMB2_hookup.php:167
549
  msgid "Term metaboxes configuration requires a \"taxonomies\" parameter."
550
  msgstr ""
551
 
552
- #: includes/CMB2_hookup.php:437
553
  msgid "Toggle panel: %s"
554
  msgstr ""
555
 
@@ -638,50 +646,51 @@ msgstr ""
638
  msgid "Value Error for %s"
639
  msgstr ""
640
 
641
- #: includes/shim/WP_REST_Controller.php:24
642
- msgid "The register_routes() method must be overriden"
 
643
  msgstr ""
644
 
645
- #: includes/shim/WP_REST_Controller.php:34
646
- #: includes/shim/WP_REST_Controller.php:46
647
- #: includes/shim/WP_REST_Controller.php:58
648
- #: includes/shim/WP_REST_Controller.php:70
649
- #: includes/shim/WP_REST_Controller.php:82
650
- #: includes/shim/WP_REST_Controller.php:94
651
- #: includes/shim/WP_REST_Controller.php:106
652
- #: includes/shim/WP_REST_Controller.php:118
653
- #: includes/shim/WP_REST_Controller.php:130
654
- #: includes/shim/WP_REST_Controller.php:142
655
- #: includes/shim/WP_REST_Controller.php:154
656
- #: includes/shim/WP_REST_Controller.php:167
657
- msgid "Method '%s' not implemented. Must be over-ridden in subclass."
658
  msgstr ""
659
 
660
- #: includes/shim/WP_REST_Controller.php:272
661
  msgid "Current page of the collection."
662
  msgstr ""
663
 
664
- #: includes/shim/WP_REST_Controller.php:280
665
  msgid "Maximum number of items to be returned in result set."
666
  msgstr ""
667
 
668
- #: includes/shim/WP_REST_Controller.php:289
669
  msgid "Limit results to those matching a string."
670
  msgstr ""
671
 
672
- #: includes/shim/WP_REST_Controller.php:307
673
  msgid ""
674
  "Scope under which the request is made; determines fields present in "
675
  "response."
676
  msgstr ""
677
 
678
- #: includes/types/CMB2_Type_File.php:76 tests/test-cmb-types.php:703
679
- #: tests/test-cmb-types.php:727
680
  msgid "Add or Upload File"
681
  msgstr ""
682
 
683
- #: includes/types/CMB2_Type_File_List.php:41 tests/test-cmb-types.php:652
684
- #: tests/test-cmb-types.php:683
685
  msgid "Add or Upload Files"
686
  msgstr ""
687
 
@@ -711,12 +720,12 @@ msgstr ""
711
  msgid "https://cmb2.io"
712
  msgstr ""
713
 
714
- #: includes/CMB2_JS.php:137
715
  msgctxt "Valid formatDate string for jquery-ui datepicker"
716
  msgid "mm/dd/yy"
717
  msgstr ""
718
 
719
- #: includes/CMB2_JS.php:157
720
  msgctxt ""
721
  "Valid formatting string, as per "
722
  "http://trentrichardson.com/examples/timepicker/"
2
  # This file is distributed under the same license as the CMB2 package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: CMB2 2.3.0\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
7
+ "POT-Creation-Date: 2017-11-27 20:48:19+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2017-11-27 20:48+300\n"
12
  "Last-Translator: CMB2 Team hello@cmb2.io\n"
13
  "Language-Team: CMB2 Team hello@cmb2.io\n"
14
  "X-Generator: grunt-wp-i18n 0.4.9\n"
28
  msgid "Test Metabox"
29
  msgstr ""
30
 
31
+ #: example-functions.php:130 example-functions.php:459
32
  msgid "Test Text"
33
  msgstr ""
34
 
38
  #: example-functions.php:194 example-functions.php:202
39
  #: example-functions.php:217 example-functions.php:225
40
  #: example-functions.php:233 example-functions.php:250
41
+ #: example-functions.php:259 example-functions.php:275
42
+ #: example-functions.php:282 example-functions.php:289
43
+ #: example-functions.php:303 example-functions.php:316
44
+ #: example-functions.php:329 example-functions.php:341
45
+ #: example-functions.php:350 example-functions.php:358
46
+ #: example-functions.php:367 example-functions.php:374
47
+ #: example-functions.php:388 example-functions.php:460
48
+ #: example-functions.php:551 example-functions.php:559
49
+ #: example-functions.php:566 example-functions.php:573
50
+ #: example-functions.php:580 example-functions.php:587
51
+ #: example-functions.php:594 example-functions.php:621
52
+ #: example-functions.php:629 example-functions.php:636
53
+ #: example-functions.php:682 tests/test-cmb-field.php:275
54
  msgid "field description (optional)"
55
  msgstr ""
56
 
110
  msgid "Test Color Picker"
111
  msgstr ""
112
 
113
+ #: example-functions.php:274
114
  msgid "Test Text Area"
115
  msgstr ""
116
 
117
+ #: example-functions.php:281
118
  msgid "Test Text Area Small"
119
  msgstr ""
120
 
121
+ #: example-functions.php:288
122
  msgid "Test Text Area for Code"
123
  msgstr ""
124
 
125
+ #: example-functions.php:295
126
  msgid "Test Title Weeeee"
127
  msgstr ""
128
 
129
+ #: example-functions.php:296
130
  msgid "This is a title description"
131
  msgstr ""
132
 
133
+ #: example-functions.php:302
134
  msgid "Test Select"
135
  msgstr ""
136
 
137
+ #: example-functions.php:308 example-functions.php:321
138
+ #: example-functions.php:333
139
  msgid "Option One"
140
  msgstr ""
141
 
142
+ #: example-functions.php:309 example-functions.php:322
143
+ #: example-functions.php:334
144
  msgid "Option Two"
145
  msgstr ""
146
 
147
+ #: example-functions.php:310 example-functions.php:323
148
+ #: example-functions.php:335
149
  msgid "Option Three"
150
  msgstr ""
151
 
152
+ #: example-functions.php:315
153
  msgid "Test Radio inline"
154
  msgstr ""
155
 
156
+ #: example-functions.php:328
157
  msgid "Test Radio"
158
  msgstr ""
159
 
160
+ #: example-functions.php:340
161
  msgid "Test Taxonomy Radio"
162
  msgstr ""
163
 
164
+ #: example-functions.php:349
165
  msgid "Test Taxonomy Select"
166
  msgstr ""
167
 
168
+ #: example-functions.php:357
169
  msgid "Test Taxonomy Multi Checkbox"
170
  msgstr ""
171
 
172
+ #: example-functions.php:366
173
  msgid "Test Checkbox"
174
  msgstr ""
175
 
176
+ #: example-functions.php:373 tests/test-cmb-field.php:274
177
  msgid "Test Multi Checkbox"
178
  msgstr ""
179
 
180
+ #: example-functions.php:379 tests/test-cmb-field.php:280
181
  msgid "Check One"
182
  msgstr ""
183
 
184
+ #: example-functions.php:380 tests/test-cmb-field.php:281
185
  msgid "Check Two"
186
  msgstr ""
187
 
188
+ #: example-functions.php:381 tests/test-cmb-field.php:282
189
  msgid "Check Three"
190
  msgstr ""
191
 
192
+ #: example-functions.php:387
193
  msgid "Test wysiwyg"
194
  msgstr ""
195
 
196
+ #: example-functions.php:397
197
  msgid "Test Image"
198
  msgstr ""
199
 
200
+ #: example-functions.php:398
201
  msgid "Upload an image or enter a URL."
202
  msgstr ""
203
 
204
+ #: example-functions.php:404
205
  msgid "Multiple Files"
206
  msgstr ""
207
 
208
+ #: example-functions.php:405
209
  msgid "Upload or add multiple images/attachments."
210
  msgstr ""
211
 
212
+ #: example-functions.php:412
213
  msgid "oEmbed"
214
  msgstr ""
215
 
216
+ #: example-functions.php:415
217
  #. translators: %s: link to codex.wordpress.org/Embeds
218
  msgid "Enter a youtube, twitter, or instagram URL. Supports services listed at %s."
219
  msgstr ""
220
 
221
+ #: example-functions.php:448
222
  msgid "About Page Metabox"
223
  msgstr ""
224
 
225
+ #: example-functions.php:479
226
  msgid "Repeating Field Group"
227
  msgstr ""
228
 
229
+ #: example-functions.php:487
230
  msgid "Generates reusable form entries"
231
  msgstr ""
232
 
233
+ #: example-functions.php:489
234
  msgid "Entry {#}"
235
  msgstr ""
236
 
237
+ #: example-functions.php:490
238
  msgid "Add Another Entry"
239
  msgstr ""
240
 
241
+ #: example-functions.php:491
242
  msgid "Remove Entry"
243
  msgstr ""
244
 
245
+ #: example-functions.php:504
246
  msgid "Entry Title"
247
  msgstr ""
248
 
249
+ #: example-functions.php:511
250
  msgid "Description"
251
  msgstr ""
252
 
253
+ #: example-functions.php:512
254
  msgid "Write a short description for this entry"
255
  msgstr ""
256
 
257
+ #: example-functions.php:518
258
  msgid "Entry Image"
259
  msgstr ""
260
 
261
+ #: example-functions.php:524
262
  msgid "Image Caption"
263
  msgstr ""
264
 
265
+ #: example-functions.php:543
266
  msgid "User Profile Metabox"
267
  msgstr ""
268
 
269
+ #: example-functions.php:550 example-functions.php:620
270
  msgid "Extra Info"
271
  msgstr ""
272
 
273
+ #: example-functions.php:558
274
  msgid "Avatar"
275
  msgstr ""
276
 
277
+ #: example-functions.php:565
278
  msgid "Facebook URL"
279
  msgstr ""
280
 
281
+ #: example-functions.php:572
282
  msgid "Twitter URL"
283
  msgstr ""
284
 
285
+ #: example-functions.php:579
286
  msgid "Google+ URL"
287
  msgstr ""
288
 
289
+ #: example-functions.php:586
290
  msgid "Linkedin URL"
291
  msgstr ""
292
 
293
+ #: example-functions.php:593
294
  msgid "User Field"
295
  msgstr ""
296
 
297
+ #: example-functions.php:613
298
  msgid "Category Metabox"
299
  msgstr ""
300
 
301
+ #: example-functions.php:628
302
  msgid "Term Image"
303
  msgstr ""
304
 
305
+ #: example-functions.php:635
306
  msgid "Arbitrary Term Field"
307
  msgstr ""
308
 
309
+ #: example-functions.php:654
310
  msgid "Theme Options"
311
  msgstr ""
312
 
313
+ #: example-functions.php:681
314
  msgid "Site Background Color"
315
  msgstr ""
316
 
317
+ #: example-functions.php:718
318
+ msgid "%s &mdash; Updated!"
319
+ msgstr ""
320
+
321
+ #: example-functions.php:752
322
  msgid "REST Test Box"
323
  msgstr ""
324
 
325
+ #: example-functions.php:761
326
  msgid "REST Test Text"
327
  msgstr ""
328
 
329
+ #: example-functions.php:762
330
  msgid "Will show in the REST API for this box and for pages."
331
  msgstr ""
332
 
333
+ #: example-functions.php:768
334
  msgid "REST Editable Test Text"
335
  msgstr ""
336
 
337
+ #: example-functions.php:769
338
  msgid "Will show in REST API \"editable\" contexts only (`POST` requests)."
339
  msgstr ""
340
 
341
+ #: includes/CMB2.php:176
342
  msgid "Metabox configuration is required to have an ID parameter."
343
  msgstr ""
344
 
345
+ #: includes/CMB2.php:578
346
  msgid "Click to toggle"
347
  msgstr ""
348
 
350
  msgid "Please Try Again"
351
  msgstr ""
352
 
353
+ #: includes/CMB2_Ajax.php:181 tests/cmb-tests-base.php:50
354
  msgid "Remove Embed"
355
  msgstr ""
356
 
357
  #: includes/CMB2_Ajax.php:189 includes/helper-functions.php:105
358
+ #: tests/cmb-tests-base.php:68 tests/test-cmb-types-display.php:208
359
  #. translators: 1: results for. 2: link to codex.wordpress.org/Embeds
360
  msgid "No oEmbed Results Found for %1$s. View more info at %2$s."
361
  msgstr ""
362
 
363
+ #: includes/CMB2_Base.php:422
364
  msgid ""
365
  "The \"%1$s\" field parameter has been deprecated in favor of the \"%1$s\" "
366
  "parameter."
367
  msgstr ""
368
 
369
+ #: includes/CMB2_Base.php:426
370
  msgid ""
371
  "Using the \"%1$s\" field parameter as a callback has been deprecated in "
372
  "favor of the \"%1$s\" parameter."
373
  msgstr ""
374
 
375
+ #: includes/CMB2_Base.php:456
376
  msgid ""
377
  "%1$s was called with a parameter that is <strong>deprecated</strong> since "
378
  "version %2$s! %3$s"
379
  msgstr ""
380
 
381
+ #: includes/CMB2_Base.php:458
382
  msgid ""
383
  "%1$s was called with a parameter that is <strong>deprecated</strong> since "
384
  "version %2$s with no alternative available."
385
  msgstr ""
386
 
387
+ #: includes/CMB2_Base.php:491 includes/CMB2_Hookup_Base.php:100
388
+ #: includes/CMB2_Options_Hookup.php:286 includes/types/CMB2_Type_Base.php:149
389
  msgid "Invalid %1$s property: %2$s"
390
  msgstr ""
391
 
392
+ #: includes/CMB2_Base.php:506 includes/types/CMB2_Type_Base.php:133
393
  msgid "Invalid %1$s method: %2$s"
394
  msgstr ""
395
 
396
+ #: includes/CMB2_Field.php:1211
397
  msgid "Add Group"
398
  msgstr ""
399
 
400
+ #: includes/CMB2_Field.php:1212
401
  msgid "Remove Group"
402
  msgstr ""
403
 
404
+ #: includes/CMB2_Field.php:1243 includes/CMB2_Field.php:1247
405
  #: tests/test-cmb-field.php:237
406
  msgid "None"
407
  msgstr ""
408
 
409
+ #: includes/CMB2_Field.php:1358
410
  msgid "Sorry, this field does not have a cmb_id specified."
411
  msgstr ""
412
 
413
+ #: includes/CMB2_Field_Display.php:432 includes/CMB2_JS.php:204
414
  #: includes/types/CMB2_Type_File_Base.php:78 tests/test-cmb-types-base.php:149
415
+ #: tests/test-cmb-types.php:884
416
  msgid "File:"
417
  msgstr ""
418
 
419
+ #: includes/CMB2_Hookup_Base.php:42
420
+ msgid "%1$s should be implemented by the extended class."
421
+ msgstr ""
422
+
423
+ #: includes/CMB2_JS.php:143 includes/CMB2_JS.php:184
424
  msgid "Clear"
425
  msgstr ""
426
 
427
+ #: includes/CMB2_JS.php:144
428
  msgid "Default"
429
  msgstr ""
430
 
431
+ #: includes/CMB2_JS.php:145
432
  msgid "Select Color"
433
  msgstr ""
434
 
435
+ #: includes/CMB2_JS.php:146
436
  msgid "Current Color"
437
  msgstr ""
438
 
439
+ #: includes/CMB2_JS.php:175
440
  msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
441
  msgstr ""
442
 
443
+ #: includes/CMB2_JS.php:176
444
  msgid "Su, Mo, Tu, We, Th, Fr, Sa"
445
  msgstr ""
446
 
447
+ #: includes/CMB2_JS.php:177
448
  msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
449
  msgstr ""
450
 
451
+ #: includes/CMB2_JS.php:178
452
  msgid ""
453
  "January, February, March, April, May, June, July, August, September, "
454
  "October, November, December"
455
  msgstr ""
456
 
457
+ #: includes/CMB2_JS.php:179
458
  msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
459
  msgstr ""
460
 
461
+ #: includes/CMB2_JS.php:180
462
  msgid "Next"
463
  msgstr ""
464
 
465
+ #: includes/CMB2_JS.php:181
466
  msgid "Prev"
467
  msgstr ""
468
 
469
+ #: includes/CMB2_JS.php:182
470
  msgid "Today"
471
  msgstr ""
472
 
473
+ #: includes/CMB2_JS.php:183 includes/CMB2_JS.php:193
474
  msgid "Done"
475
  msgstr ""
476
 
477
+ #: includes/CMB2_JS.php:187
478
  msgid "Choose Time"
479
  msgstr ""
480
 
481
+ #: includes/CMB2_JS.php:188
482
  msgid "Time"
483
  msgstr ""
484
 
485
+ #: includes/CMB2_JS.php:189
486
  msgid "Hour"
487
  msgstr ""
488
 
489
+ #: includes/CMB2_JS.php:190
490
  msgid "Minute"
491
  msgstr ""
492
 
493
+ #: includes/CMB2_JS.php:191
494
  msgid "Second"
495
  msgstr ""
496
 
497
+ #: includes/CMB2_JS.php:192
498
  msgid "Now"
499
  msgstr ""
500
 
501
+ #: includes/CMB2_JS.php:200
502
  msgid "Use this file"
503
  msgstr ""
504
 
505
+ #: includes/CMB2_JS.php:201
506
  msgid "Use these files"
507
  msgstr ""
508
 
509
+ #: includes/CMB2_JS.php:202 includes/types/CMB2_Type_File_Base.php:63
510
  msgid "Remove Image"
511
  msgstr ""
512
 
513
+ #: includes/CMB2_JS.php:203 includes/CMB2_Types.php:412
514
  #: includes/types/CMB2_Type_File_Base.php:83 tests/test-cmb-types-base.php:149
515
  #: tests/test-cmb-types.php:47 tests/test-cmb-types.php:55
516
+ #: tests/test-cmb-types.php:884
517
  msgid "Remove"
518
  msgstr ""
519
 
520
+ #: includes/CMB2_JS.php:205 includes/types/CMB2_Type_File_Base.php:81
521
+ #: tests/test-cmb-types-base.php:149 tests/test-cmb-types.php:884
522
  msgid "Download"
523
  msgstr ""
524
 
525
+ #: includes/CMB2_JS.php:206
526
  msgid "Select / Deselect All"
527
  msgstr ""
528
 
529
+ #: includes/CMB2_Options_Hookup.php:126
530
+ msgid "Nothing to update."
531
  msgstr ""
532
 
533
+ #: includes/CMB2_Options_Hookup.php:130
534
+ msgid "Settings updated."
535
  msgstr ""
536
 
537
  #: includes/CMB2_Types.php:231
547
  msgid "Remove Row"
548
  msgstr ""
549
 
550
+ #: includes/CMB2_hookup.php:181
551
  msgid ""
552
  "Term Metadata is a WordPress 4.4+ feature. Please upgrade your WordPress "
553
  "install."
554
  msgstr ""
555
 
556
+ #: includes/CMB2_hookup.php:185
557
  msgid "Term metaboxes configuration requires a \"taxonomies\" parameter."
558
  msgstr ""
559
 
560
+ #: includes/CMB2_hookup.php:458
561
  msgid "Toggle panel: %s"
562
  msgstr ""
563
 
646
  msgid "Value Error for %s"
647
  msgstr ""
648
 
649
+ #: includes/shim/WP_REST_Controller.php:25
650
+ #. translators: %s: register_routes()
651
+ msgid "Method '%s' must be overridden."
652
  msgstr ""
653
 
654
+ #: includes/shim/WP_REST_Controller.php:35
655
+ #: includes/shim/WP_REST_Controller.php:47
656
+ #: includes/shim/WP_REST_Controller.php:59
657
+ #: includes/shim/WP_REST_Controller.php:71
658
+ #: includes/shim/WP_REST_Controller.php:83
659
+ #: includes/shim/WP_REST_Controller.php:95
660
+ #: includes/shim/WP_REST_Controller.php:107
661
+ #: includes/shim/WP_REST_Controller.php:119
662
+ #: includes/shim/WP_REST_Controller.php:131
663
+ #: includes/shim/WP_REST_Controller.php:143
664
+ #: includes/shim/WP_REST_Controller.php:155
665
+ #: includes/shim/WP_REST_Controller.php:168
666
+ msgid "Method '%s' not implemented. Must be overridden in subclass."
667
  msgstr ""
668
 
669
+ #: includes/shim/WP_REST_Controller.php:273
670
  msgid "Current page of the collection."
671
  msgstr ""
672
 
673
+ #: includes/shim/WP_REST_Controller.php:281
674
  msgid "Maximum number of items to be returned in result set."
675
  msgstr ""
676
 
677
+ #: includes/shim/WP_REST_Controller.php:290
678
  msgid "Limit results to those matching a string."
679
  msgstr ""
680
 
681
+ #: includes/shim/WP_REST_Controller.php:308
682
  msgid ""
683
  "Scope under which the request is made; determines fields present in "
684
  "response."
685
  msgstr ""
686
 
687
+ #: includes/types/CMB2_Type_File.php:76 tests/test-cmb-types.php:860
688
+ #: tests/test-cmb-types.php:884
689
  msgid "Add or Upload File"
690
  msgstr ""
691
 
692
+ #: includes/types/CMB2_Type_File_List.php:41 tests/test-cmb-types.php:809
693
+ #: tests/test-cmb-types.php:840
694
  msgid "Add or Upload Files"
695
  msgstr ""
696
 
720
  msgid "https://cmb2.io"
721
  msgstr ""
722
 
723
+ #: includes/CMB2_JS.php:174
724
  msgctxt "Valid formatDate string for jquery-ui datepicker"
725
  msgid "mm/dd/yy"
726
  msgstr ""
727
 
728
+ #: includes/CMB2_JS.php:194
729
  msgctxt ""
730
  "Valid formatting string, as per "
731
  "http://trentrichardson.com/examples/timepicker/"
includes/vendor/cmb2/{CHANGELOG.md → readme.txt} RENAMED
@@ -1,15 +1,183 @@
1
- # Changelog
2
- All notable changes to this project will be documented in this file.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
- ## Unreleased
5
 
6
- ## [2.2.5.3 - 2017-08-22][https://github.com/CMB2/CMB2/releases/tag/v2.2.5.3]
7
 
8
- ### Enhancements
 
 
 
 
 
 
 
 
 
9
 
10
- * Update to instead initate CMB2 hookup via "cmb2_init_hookup_{$cmb_id}" hook. Allows plugins to unhook/rehook/etc.
 
11
 
12
- ### Bug Fixes
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
  * Spelling/Grammar fixes. Props [@garrett-eclipse](https://github.com/garrett-eclipse) ([#1012](https://github.com/CMB2/CMB2/pull/1012)).
15
  * Fix "PHP Strict Standards: Static function should not be abstract" notice.
@@ -19,27 +187,27 @@ All notable changes to this project will be documented in this file.
19
  * Change the updated-settings notice query variable so that WordPress does not auto-add settings notices on top of ours.
20
  * For settings pages, only output settings errors if WordPress does not do it by default (for sub-pages of `options-general.php`), and if the errors are not disabled via the `'disable_settings_errors'` box property.
21
 
22
- ## [2.2.5.2 - 2017-08-08][https://github.com/CMB2/CMB2/releases/tag/v2.2.5.2]
23
 
24
- ### Bug Fixes
25
 
26
- * Fix issue in 2.2.5 with non-sortable repeatable groups not having new groups values be emptied on creation/clone. [Support thread](https://wordpress.org/support/topic/the-default-parameter-dont-work-in-group-fields/page/2/)
27
- * Fix issue in 2.2.5 with options pages not saving when `'parent_slug'` box property was used. Fixes [#1008](https://github.com/CMB2/CMB2/issues/1008).
28
 
29
- ## [2.2.5.1 - 2017-08-07][https://github.com/CMB2/CMB2/releases/tag/v2.2.5.1]
30
 
31
- ### Bug Fixes
32
 
33
- * Fix issue in 2.2.5 which caused empty repeatable groups having the buttons set to have a disabled "Remove Group" button. [Support thread](https://wordpress.org/support/topic/the-default-parameter-dont-work-in-group-fields/)
34
 
35
- ## [2.2.5 - 2017-08-07][https://github.com/CMB2/CMB2/releases/tag/v2.2.5]
36
 
37
- ### Enhancements
38
 
39
  * Options pages are now first-class CMB2 citizens, and registering a box to show on an options page will automatically register the menu page and output the form on the page. [See example](https://github.com/CMB2/CMB2/blob/v2.2.5/example-functions.php#L640-L683). (The [snippets](https://github.com/CMB2/CMB2-Snippet-Library/tree/master/options-and-settings-pages) in the snippet library will be updated to reflect this change)
40
  * Improved Options Page styling. Props [@anhskohbo](https://github.com/anhskohbo) ([#1006](https://github.com/CMB2/CMB2/pull/1006)).
41
  * Improved cohesive styles for repeatable fields. Props [@anhskohbo](https://github.com/anhskohbo) ([#819](https://github.com/CMB2/CMB2/pull/819)).
42
- * New field types, `'taxonomy_radio_hierarchical'`, and `'taxonomy_multicheck_hierarchical'`, for displaying taxonomy options in a hierarchial layout. Props to [eriktelepovsky](https://github.com/eriktelepovsky) for the [working code](https://github.com/CMB2/CMB2/issues/640#issuecomment-246938690). ([#640](https://github.com/CMB2/CMB2/issues/640))
43
  * Removing last repeat item row (and repeat group row) is now somewhat allowed in that the "remove" button simply resets the last item to empty. Fixes [#312](https://github.com/CMB2/CMB2/issues/312).
44
  * Enable the additional media library modal filters. Fixes [#873](https://github.com/CMB2/CMB2/issues/873).
45
  * Sanitize the attributes added via the `cmb2_group_wrap_attributes` filter.
@@ -52,7 +220,7 @@ All notable changes to this project will be documented in this file.
52
  * Break `CMB2_Field:options()` method apart to allow re-setting options from field params. Related: [reaktivstudios/cmb2-flexible-content/pull/8](https://github.com/reaktivstudios/cmb2-flexible-content/pull/8).
53
  * New `CMB2:box_types()` method for getting the array of registered `'object_types'` for a box. Ensures the return is an array.
54
  * Improved inline hooks documentation.
55
- * Updated several CMB2 methods to return the CMB2 object (for method chaining). Methods include:
56
  * `CMB2::show_form()`
57
  * `CMB2::render_form_open()`
58
  * `CMB2::render_form_close()`
@@ -65,7 +233,7 @@ All notable changes to this project will be documented in this file.
65
  * `CMB2::after_save()`
66
  * `CMB2::add_fields()`
67
 
68
- ### Bug Fixes
69
 
70
  * Update for `file`/`file_list` fields to properly show a preview for SVG images. Fixes [#874](https://github.com/CMB2/CMB2/pull/874).
71
  * Fix and standardize inconsistent button classes. Update all buttons to use the `.button-secondary` class instead of the `.button` class. This alleviates some front-end issues for themes which target the `.button` class. _This is a backwards-compatibility break._ If your theme or plugin targets the `.button` class within CMB2, you will need to update to use `.button-secondary`.
@@ -77,9 +245,9 @@ All notable changes to this project will be documented in this file.
77
  * Fix jQuery Migrate's `jQuery.fn.attr('value', val) no longer sets properties` warning.
78
  * Fix issue with CMB2 being too aggressive with stripping slashes from values. Fixes [#981](https://github.com/CMB2/CMB2/issues/981).
79
 
80
- ## [2.2.4 - 2017-02-27](https://github.com/CMB2/CMB2/releases/tag/v2.2.4)
81
 
82
- ### Enhancements
83
 
84
  * Modify `'taxonomy_*'` fields to return stored terms for non-post objects.
85
  * Modify `CMB2::get_sanitized_values()` to return the sanitized `'taxonomy_*'` field values. Also added `"cmb2_return_taxonomy_values_{$cmb_id}"` filter to modify if `'taxonomy_*'` field values are returned. Fixes [#538](https://github.com/CMB2/CMB2/issues/538).
@@ -100,13 +268,13 @@ All notable changes to this project will be documented in this file.
100
 
101
  Props [@norcross](https://github.com/norcross) ([#836](https://github.com/CMB2/CMB2/pull/836)).
102
  * New field parameter, `'render_class'`, allowing you to override the default `'CMB2_Type_Base'` class that is used when rendering the field. This provides interesting object-oriented ways to override default CMB2 behavior by subclassing the default class and overriding methods. The render class can also be overridden with the `"cmb2_render_class_{$fieldtype}"` filter, which is passed the default render class name as well as the `CMB2_Types` object, but this should be used sparingly, and within the context of your project's boxes/fields or you could break other plugins'/themes' CMB2 fields.
103
- * Improvements to the `file`/`file_list` fields javascript APIs, including using undersore templates.
104
  * Small improvements to the styling for the `file_list` field type.
105
  * New action hook, `cmb2_footer_enqueue`, which occurs after CMB2 enqueues its assets.
106
  * Example functions clean up. Props [@PavelK27](https://github.com/PavelK27) ([#866](https://github.com/CMB2/CMB2/pull/866)).
107
- * New `CMB2_Utils` methods, `get_available_image_sizes()` and `get_named_size()`. Props [@Cai333](https://github.com/Cai333).
108
 
109
- ### Bug Fixes
110
 
111
  * Fix datepicker month/year dropdown text color. On windows, the option text was showing as white (invisible). Fixes [#770](https://github.com/CMB2/CMB2/issues/770).
112
  * Repeatable WYSIWYG no longer breaks if `'quicktags'` param is set to false. Props [@timburden](https://github.com/timburden) ([#797](https://github.com/CMB2/CMB2/pull/797), [#796](https://github.com/CMB2/CMB2/issues/796)).
@@ -121,21 +289,21 @@ All notable changes to this project will be documented in this file.
121
  * Do not silence notices/errors in `CMB2_Utils::get_file_ext()`.
122
  * If `title` field type has no name value, then only output a span element (instead of a header element).
123
 
124
- ## [2.2.3.1 - 2016-11-08](https://github.com/CMB2/CMB2/releases/tag/v2.2.3.1)
125
 
126
- ### Enhancements
127
 
128
  * Better styling for disabled group "X" buttons, and add title attr. Fixes [#773](https://github.com/CMB2/CMB2/issues/773).
129
 
130
- ### Bug Fixes
131
 
132
  * Use quotes for `label[for=""]` selector. Fixed `Syntax error, unrecognized expression`. Props [@anhskohbo](https://github.com/anhskohbo) ([#789](https://github.com/CMB2/CMB2/pull/789)).
133
  * Fix `ReferenceError: tinyMCE is not defined` javascript errors (happening when trying to remove a repeatable field/group). Fixes [#790](https://github.com/CMB2/CMB2/issues/790), and [#730](https://github.com/CMB2/CMB2/issues/730).
134
  * Fix REST API `'show_in_rest'` examples in `example-functions.php`. Any REST API boxes/fields must use the `'cmb2_init'` hook (as opposed to the `'cmb2_admin_init'` hook).
135
 
136
- ## [2.2.3 - 2016-10-25](https://github.com/CMB2/CMB2/releases/tag/v2.2.3)
137
 
138
- ### Enhancements
139
 
140
  * CMB2 REST API! CMB2 now has WP REST API endpoints for displaying your boxes and fields data, as well as registers rest fields in the existing post, user, term, and comment endpoints (in the cmb2 namespace). Enabling the REST API for your boxes/fields is opt-in, meaning it will not be automatically enabled. For more info, [check out the wiki](https://github.com/CMB2/CMB2/wiki/REST-API).
141
  * Small string improvement, move a period inside the translatable string. Props [@pedro-mendonca](https://github.com/pedro-mendonca) ([#672](https://github.com/CMB2/CMB2/pull/672)).
@@ -146,7 +314,7 @@ All notable changes to this project will be documented in this file.
146
  * CMB2 JS object is now instantiated without stomping existing object, to enable extending.
147
  * New field parameter for taxonomy fields, `'remove_default'` which allows disabling the default taxonomy metabox. Props [@c3mdigital](https://github.com/c3mdigital) ([#593](https://github.com/CMB2/CMB2/pull/593)).
148
  * Change `'row_classes'` to just `'classes'`, to mirror the metabox `'classes'` property. Also now accepts a `'classes_cb'` parameter for specifying a callback which returns a string or array. The callback will receive `$field_args` as the first argument, and the CMB2_Field `$field` object as the second argument. (`'row_classes'` will continue to work, but is deprecated)
149
- * Make wysiwyg editors work in the repeatable groups context. A standard repeatable (non-group) wysiwyg field is not supported (but will possibly be included in a future update). Props [@johnsonpaul1014](https://github.com/johnsonpaul1014) ([#26](https://github.com/CMB2/CMB2/pull/26), [#99](https://github.com/CMB2/CMB2/pull/99), [#260](https://github.com/CMB2/CMB2/pull/260), [#264](https://github.com/CMB2/CMB2/pull/264), [#356](https://github.com/CMB2/CMB2/pull/356), [#431](https://github.com/CMB2/CMB2/pull/431), [#462](https://github.com/CMB2/CMB2/pull/462), [#657](https://github.com/CMB2/CMB2/pull/657), [#693](https://github.com/CMB2/CMB2/pull/693)).
150
  * Add an id to the heading tag in the title field. This allows linking to a particular title using the id.
151
  * Internationalization improvements. Props [ramiy](https://github.com/ramiy) ([#696](https://github.com/CMB2/CMB2/pull/696)).
152
  * Ensure that saving does not happen during a switch-to-blog session, as data would be saved to the wrong object. [See more](https://wordpress.org/support/topic/bug-in-lastest-version?replies=2).
@@ -164,23 +332,23 @@ All notable changes to this project will be documented in this file.
164
  ...
165
  ```
166
 
167
- ### Bug Fixes
168
 
169
  * If custom field types use a method and the Type object has not been instantiated, Try to guess the Type object and instantiate.
170
  * Normalize WordPress root path (`ABSPATH`) and theme rooth path (`get_theme_root()`). Props [@rianbotha](https://github.com/rianbotha) ([#677](https://github.com/CMB2/CMB2/pull/677), [#676](https://github.com/CMB2/CMB2/pull/676)).
171
  * Fix issue with `'cmb2_remove_row'` Javascript callback for non-group row removal. Fixes [#729](https://github.com/CMB2/CMB2/pull/729)).
172
  * Fix issue with missing assignment of variable (undefined variable). Props [@anhskohbo](https://github.com/anhskohbo) ([#779](https://github.com/CMB2/CMB2/pull/779)).
173
 
174
- ## 2.2.2.1 - 2016-06-27
175
 
176
- ### Bug Fixes
177
 
178
  * Fix issue that kept CMB2 stylesheet from being enqueued when using the [options-page snippets](https://github.com/CMB2/CMB2-Snippet-Library/tree/master/options-and-settings-pages).
179
  * Fix issue which caused the CMB2 column display styles to be enqueued in the wrong pages. Now only enqueues on admin pages with columns.
180
 
181
- ## 2.2.2 - 2016-06-27
182
 
183
- ### Enhancements
184
 
185
  * You can now set admin post-listing columns with an extra field parameter, `'column' => true,`. If you want to dictate what position the column is, use `'column' => array( 'position' => 2 ),`. If you want to dictate the column title (instead of using the field `'name'` value), use `'column' => array( 'name' => 'My Column' ),`. If you need to specify the column display callback, set the `'display_cb'` parameter to [a callback function](https://github.com/CMB2/CMB2/wiki/Field-Parameters#render_row_cb). Columns work for post (all post-types), comment, user, and term object types.
186
  * Updated Datepicker styles using JJJ's "jQuery UI Datepicker CSS for WordPress", so props Props [@stuttter](https://github.com/stuttter), [@johnjamesjacoby](https://github.com/johnjamesjacoby). Also cleaned up the timepicker styles (specifically the buttons) to more closely align with the datepicker and WordPress styles.
@@ -198,7 +366,7 @@ All notable changes to this project will be documented in this file.
198
  * New `CMB2_Utils` public methods, `get_url_from_dir()`, `get_file_ext()`, `get_file_name_from_path()`, and `wp_at_least()`.
199
  * Add a `cmb_pre_init` Javascript event to allow overriding CMB2 defaults via JS.
200
 
201
- ### Bug Fixes
202
  * Fix issue with 'default' callback not being applied in all instances. Introduced new `CMB2_Field::get_default()` method, and `'default_cb'` field parameter. Using the `'default'` field parameter with a callback will be deprecated in the next few releases. ([#572](https://github.com/CMB2/CMB2/issues/572)).
203
  * Be sure to call `CMB2_Field::row_classes()` for group field rows. Also, update CSS to use the "cmb-type-group" classname instead of "cmb-repeat-group-wrap".
204
  * Introduce new `'text'` and `'text_cb'` field parameters for overriding CMB2 text strings instead of using the `'options'` array. ([#630](https://github.com/CMB2/CMB2/pull/630))
@@ -207,15 +375,15 @@ All notable changes to this project will be documented in this file.
207
  * Allow for optional/empty money field. Props [@jrfnl](https://github.com/jrfnl) ([#577](https://github.com/CMB2/CMB2/pull/577)).
208
  * The `CMB2::$updated` parameter (which contains field ids for all fields updated during a save) now also correctly adds group field ids to the array.
209
 
210
- ## 2.2.1 - 2016-02-29
211
 
212
- ### Bug Fixes
213
 
214
  * Fixes back-compatibility issue which could allow multiple CMB2 instances to load (causing fatal errors). ([#520](https://github.com/CMB2/CMB2/pull/520))
215
 
216
- ## 2.2.0 - 2016-02-27
217
 
218
- ### Enhancements
219
 
220
  * Term Meta! As of WordPress 4.4, [WordPress will have the ability to use term metadata](https://make.wordpress.org/core/2015/10/23/4-4-taxonomy-roundup/). CMB2 will work with term meta out of the box. To do so, see the example cmb registration in the `yourprefix_register_taxonomy_metabox` function in [example-functions.php](https://github.com/CMB2/CMB2/blob/master/example-functions.php).
221
  * New hooks which hook in after save field action: `'cmb2_save_field'` and `"cmb2_save_field_{$field_id}"`. Props [wpsmith](https://github.com/wpsmith) ([#475](https://github.com/CMB2/CMB2/pull/475)).
@@ -227,7 +395,8 @@ All notable changes to this project will be documented in this file.
227
  * Fix some inline documentation issues. Props [@jrfnl](https://github.com/jrfnl) ([#579](https://github.com/CMB2/CMB2/pull/579)).
228
  * Include `.gitattributes` file for excluding development resources when using Composer. Props [@benoitchantre](https://github.com/benoitchantre) ([#575](https://github.com/CMB2/CMB2/pull/575), [#53](https://github.com/CMB2/CMB2/pull/53)).
229
 
230
- ### Bug Fixes
 
231
 
232
  * Fixed issue with `'taxonomy_select'` field type where a term which evaluated falsey would not be displayed properly. Props [adamcapriola](https://github.com/adamcapriola) ([#477](https://github.com/CMB2/CMB2/pull/477)).
233
  * Fix issue with colorpickers not changing when sorting groups.
@@ -237,15 +406,15 @@ All notable changes to this project will be documented in this file.
237
  * Fix issue with oembed fields not working correctly on options pages. ([#542](https://github.com/CMB2/CMB2/pull/542)).
238
  * Fix issue with repeatable field <button> elements stealing focus from "submit" button.
239
 
240
- ## 2.1.2 - 2015-10-01
241
 
242
- ### Bug Fixes
243
 
244
  * Fixes back-compatibility issue when adding fields array to the metabox registration. ([#472](https://github.com/CMB2/CMB2/pull/472))
245
 
246
- ## 2.1.1 - 2015-09-30
247
 
248
- ### Enhancements
249
 
250
  * Make all CMB2::save_fields arguments optional to fall-back to `$_POST` data. Props [JPry](https://github.com/JPry).
251
  * New filter, `cmb2_non_repeatable_fields` for adding additional fields to the blacklist of repeatable field-types. Props [JPry](https://github.com/JPry) ([#430](https://github.com/CMB2/CMB2/pull/430)).
@@ -257,7 +426,7 @@ All notable changes to this project will be documented in this file.
257
  * Update `CMB2_Utils::image_id_from_url` to be more reliable. Props [wpscholar](https://github.com/wpscholar), ([#453](https://github.com/CMB2/CMB2/pull/453)).
258
  * `cmb2_get_option` now takes a default fallback value as a third parameter.
259
 
260
- ### Bug Fixes
261
 
262
  * Address issue where `'file'` and `'file_list'` field results were getting mixed. Props [augustuswm](https://github.com/augustuswm) ([#382](https://github.com/CMB2/CMB2/pull/382), [#250](https://github.com/CMB2/CMB2/pull/250), [#296](https://github.com/CMB2/CMB2/pull/296)).
263
  * Fix long-standing issues with radio and multicheck fields in repeatable groups losing their values when new rows are added. ([#341](https://github.com/CMB2/CMB2/pull/341), [#304](https://github.com/CMB2/CMB2/pull/304), [#263](https://github.com/CMB2/CMB2/pull/263), [#246](https://github.com/CMB2/CMB2/pull/246), [#150](https://github.com/CMB2/CMB2/pull/150))
@@ -267,24 +436,15 @@ All notable changes to this project will be documented in this file.
267
  * Fixes issue with `'file_list'` fields not saving properly when in repeatable groups display. Props [jamiechong](https://github.com/jamiechong) ([#433](https://github.com/CMB2/CMB2/pull/433),[#187](https://github.com/CMB2/CMB2/pull/187)).
268
  * Update `'taxonomy_radio_inline'` and `'taxonomy_multicheck_inline'` fields sanitization method to use the same method as the non-inline versions. Props [superfreund](https://github.com/superfreund) ([#454](https://github.com/CMB2/CMB2/pull/454)).
269
 
270
- ## 2.1.0 - 2015-08-05
271
 
272
- ### Bug Fixes
273
 
274
  * Fix user fields not saving. Props [achavez](https://github.com/achavez), ([#417](https://github.com/CMB2/CMB2/pull/417)).
275
 
276
- ## 2.0.9 - 2015-07-28
277
-
278
- ### Enhancements
279
 
280
- * Updated/Added many translations. Props [fxbenard](https://github.com/fxbenard), ([#203](https://github.com/CMB2/CMB2/pull/344)) and [Mte90](https://github.com/Mte90) for the Italian translation.
281
- * Updated `'file_list'` field type to have a more intuitive selection in the media library, and updated the 'Use file' text in the button. Props [SteveHoneyNZ](https://github.com/SteveHoneyNZ) ([#357](https://github.com/CMB2/CMB2/pull/357), [#358](https://github.com/CMB2/CMB2/pull/358)).
282
- * `'closed'` group field option parameter introduced in order to set the groups as collapsed by default. Requested in [#391](https://github.com/CMB2/CMB2/issues/391).
283
- * Added `"cmb2_{$object_type}_process_fields_{$cmb_id}"` hook for hooking in and modifying the metabox or fields before the fields are processed/sanitized for saving.
284
- * Added Comment Metabox support. Props [GregLancaster71](https://github.com/GregLancaster71) ([#238](https://github.com/CMB2/CMB2/pull/238), [#244](https://github.com/CMB2/CMB2/pull/244)).
285
- * New `"cmb2_{$field_id}_is_valid_img_ext"`` filter for determining if a field value has a valid image file-type extension.
286
-
287
- ### Bug Fixes
288
 
289
  * `'multicheck_inline'`, `'taxonomy_radio_inline'`, and `'taxonomy_multicheck_inline'` field types were not outputting anything since it's value was not being returned. Props [ediamin](https://github.com/ediamin), ([#367](https://github.com/CMB2/CMB2/pull/367), ([#405](https://github.com/CMB2/CMB2/pull/405)).
290
  * `'hidden'` type fields were not honoring the `'show_on_cb'` callback. Props [JPry](https://github.com/JPry), ([commits](https://github.com/CMB2/CMB2/compare/5a4146eec546089fbe1a1c859d680dfda3a86ee2...1ef5ef1e3b2260ab381090c4abe9dc7234cfa0a6)).
@@ -294,33 +454,41 @@ All notable changes to this project will be documented in this file.
294
  * Ensure value passed to `strtotime` in `make_valid_time_stamp` is cast to a string. Props [vajrasar](https://github.com/vajrasar) ([#389](https://github.com/CMB2/CMB2/pull/389)).
295
  * Fixed issue with Windows IIS and bundling CMB2 in the theme. Props [DevinWalker](https://github.com/DevinWalker), ([#400](https://github.com/CMB2/CMB2/pull/400), [#401](https://github.com/CMB2/CMB2/pull/401))
296
 
297
- ## 2.0.8 - 2015-06-01
 
 
 
 
 
 
 
 
 
298
 
299
- ### Bug Fixes
300
 
301
  * Fix color-picker field not enqueueing the colorpicker script. ([#333](https://github.com/CMB2/CMB2/issues/333))
302
 
303
- ## 2.0.7 - 2015-05-28
304
 
305
- ### Enhancements
306
 
307
  * Ability to use non-repeatable group fields by setting the `'repeatable'` field param to `false` when registering a group field type. Props [marcusbattle](https://github.com/marcusbattle), ([#159](https://github.com/CMB2/CMB2/pull/159)).
308
  * Add and enqeueue a front-end specific CSS file which adds additional styles which are typically covered by wp-admin css. ([#311](https://github.com/CMB2/CMB2/issues/311))
309
  * Better handling of the CMB2 javascript (and CSS) required dependencies array. Dependencies are now only added conditionally based on the field types that are actually visible. ([#136](https://github.com/CMB2/CMB2/issues/136))
310
- * **THIS IS A BREAKING CHANGE:** The `group` field type's `'show_on_cb'` parameter now receives the `CMB2_Field` object instance as an argument instead of the `CMB2` instance. If you're using the `'show_on_cb'` parameter for a `group` field, please adjust accordingly. _note: you can still retrieve the `CMB2` instance via the `cmb2_get_metabox` helper function._
311
  * New dynamic hook, `"cmb2_save_{$object_type}_fields_{$this->cmb_id}"`, to complement the existing `"cmb2_save_{$object_type}_fields"` hook.
312
- * New CMB2 parameter, `enqueue_js`, to disable the enqueueing of the CMB2 Javascript.
313
  * German translation provided by Friedhelm Jost.
314
 
315
- ### Bug Fixes
316
 
317
  * Fix incorrect repeatable group title number. ([#310](https://github.com/CMB2/CMB2/pull/310))
318
  * Fix obscure bug which prevented group field arguments from being passed to the sub-fields (like `show_names` and `context`).
319
  * Fixed occasional issue when adding a group row, the previous row's content would be cloned. ([#257](https://github.com/CMB2/CMB2/pull/257))
320
 
321
- ## 2.0.6 - 2015-04-30
322
 
323
- ### Enhancements
324
 
325
  * New metabox/form parameter, `show_on_cb`, allows you to conditionally display a cmb metabox/form via a callback. The `$cmb` object gets passed as a parameter to the callback. This complements the `'show_on_cb'` parameter that already exists for individual fields. Using this callback is similar to using the `'cmb2_show_on'` filter, but only applies to that specific metabox and it is recommended to use this callback instead as it minimizes th risk that your filter will affect other metaboxes.
326
  * Taxonomy types no longer save a value. The value getting saved was causing confusion and is not meant to be used. To use the saved taxonomy data, you need to use the WordPress term api, `get_the_terms `, `get_the_term_list`, etc.
@@ -335,7 +503,7 @@ All notable changes to this project will be documented in this file.
335
  * an `'object_type'` parameter to explictly set that in the `$cmb` object.
336
  * an `'enqueue_js'` parameter to explicitly disable the CMB JS enqueue. This is handy if you're not planning on using any of the fields which require JS (like color/date pickers, wysiwyg, file, etc).
337
 
338
- ### Bug Fixes
339
 
340
  * Fix issue with oembed fields in repeatable groups where changing video changed it for all fields in a group.
341
  * Fix empty arrays (like in the group field) saving as a value.
@@ -346,27 +514,26 @@ All notable changes to this project will be documented in this file.
346
  * @type bool $repeat Whether current field is repeatable
347
  * @type bool $single Whether current field is a single database row
348
 
 
349
 
350
- ## 2.0.5 - 2015-03-17
351
-
352
- ### Bug Fixes
353
 
354
  * Fix grouped fields display (first field was being repeated), broken in 2.0.3.
355
 
356
- ## 2.0.4 - 2015-03-16
357
 
358
- ### Enhancements
359
 
360
  * `select`, `radio`, `radio_inline` field types now all accept the `'show_option_none'` field parameter. This parameter allows you to set the text to display for showing a 'no selection' option. Default will be `false`, which means a 'none' option will not be added. Set to `true` to use the default text, 'None', or specify another value, i.e. 'No selection'.
361
 
362
- ### Bug Fixes
363
 
364
  * Fix back-compatibility when adding group field sub-fields via old array method (vs using the `CMB2:add_group_field()` method). Thanks to [norcross](https://github.com/norcross) for reporting.
365
  * Fix occasional jQuery issues with group-field indexes.
366
 
367
- ## 2.0.3 - 2015-03-15
368
 
369
- ### Enhancements
370
 
371
  * New constant, `CMB2_DIR`, which stores the file-path to the CMB2 directory.
372
  * `text_date`, `text_time`, `text_date_timestamp`, `text_datetime_timestamp`, and ` text_datetime_timestamp_timezone` field types now take an arguments array so they can be extended by custom field types.
@@ -375,17 +542,17 @@ All notable changes to this project will be documented in this file.
375
  * Added a callback option for the field default value. The callback gets passed an array of all the field parameters as the first argument, and the field object as the second argument. (which means you can get the post id using `$field->object_id`). ([#233](https://github.com/CMB2/CMB2/issues/233)).
376
  * New `CMB2::get_field()` method and `cmb2_get_field` helper function for retrieving a `CMB2_Field` object from the array of registered fields for a metabox.
377
  * New `CMB2::get_sanitized_values()` method and `cmb2_get_metabox_sanitized_values` helper function for retrieving sanitized values from an array of values (usually `$_POST` data).
378
- * New `'save_fields'` metabox parameter that can be used to disable (by setting `'save_fields' => false`) the automatic saving of the fields when the form is submitted. These can be useful when you want to handle the saving of the fields yourself, or want to use submitted data for other purposes like generating new posts, or sending emails, etc.
379
 
380
- ### Bug Fixes
381
 
382
  * Fix commented out text_datetime_timestamp_timezone field registration example in `example-functions.php`. Props [cliffordp](https://github.com/cliffordp), ([#203](https://github.com/CMB2/CMB2/pull/203)).
383
  * Fix sidebar styling for money fields and fields with textareas. ([#234](https://github.com/CMB2/CMB2/issues/234))
384
  * Fix `CMB2_Sanitize` class to properly use the stripslashed value (which was added in [#162](https://github.com/CMB2/CMB2/pull/162) but never used). Props [dustyf](https://github.com/dustyf), ([#241](https://github.com/CMB2/CMB2/pull/241)).
385
 
386
- ## 2.0.2 - 2015-02-15
387
 
388
- ### Enhancements
389
 
390
  * Use the more appropriate `add_meta_boxes` hook for hooking in metaboxes to post-edit screen. Thanks [@inspiraaz](https://github.com/inspiraaz) for reporting. ([#161](https://github.com/CMB2/CMB2/issues/161))
391
  * Add a `row_classes` field param which allows you to add additional classes to the cmb-row wrap. This parameter can take a string, or array, or can take a callback that returns a string or array. The callback will receive `$field_args` as the first argument, and the CMB2_Field `$field` object as the second argument. Reported/requested in [#68](https://github.com/CMB2/CMB2/issues/68).
@@ -396,21 +563,20 @@ All notable changes to this project will be documented in this file.
396
  * New CMB2_Boxes method, [`CMB2_Boxes::remove()`](https://github.com/CMB2/CMB2-Snippet-Library/blob/master/filters-and-actions/cmb2_init_before_hookup-remove-cmb2-metabox.php).
397
  * When clicking on a file/image in the `file`, or `file_list` type, the media modal will open with that image selected. Props [johnsonpaul1014](https://github.com/johnsonpaul1014), ([#120](https://github.com/CMB2/CMB2/pull/120)).
398
 
399
-
400
- ## 2.0.1 - 2015-02-02
401
 
402
  2.0.1 is the official version after beta, and includes all the changes from 2.0.0 (beta).
403
 
404
- ## 2.0.0(beta) - 2014-08-16
405
 
406
  2.0.0 is the official version number for the transition to CMB2, and 2.0.1 is the official version after beta. It is a complete rewrite. Improvements and fixes are listed below. __Note: This release requires WordPress 3.8+__
407
-
408
- ### Enhancements
409
 
410
  * Converted `<table>` markup to more generic `<div>` markup to be more extensible and allow easier styling.
411
  * Much better handling and display of repeatable groups.
412
  * Entirely translation-ready [with full translations](http://wp-translations.org/project/cmb2/) in Spanish, French (Props [@fredserva](https://github.com/fredserva) - [#127](https://github.com/CMB2/CMB2/pull/127)), Finnish (Props [@onnimonni](https://github.com/onnimonni) - [#108](https://github.com/CMB2/CMB2/pull/108)), Swedish (Props [@EyesX](https://github.com/EyesX) - [#141](https://github.com/CMB2/CMB2/pull/141)), and English.
413
- * Add cmb fields to new user page. Props [GioSensation](https://github.com/GioSensation), ([#645](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/645)).
414
  * Improved and additional [helper-functions](https://github.com/CMB2/CMB2/blob/master/includes/helper-functions.php).
415
  * Added new features and translation for datepicker. Props [kalicki](https://github.com/kalicki), ([#657](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/657)).
416
  * General code standards cleanup. Props [gregrickaby](https://github.com/gregrickaby), ([#17](https://github.com/CMB2/CMB2/pull/17) & others).
@@ -428,11 +594,11 @@ All notable changes to this project will be documented in this file.
428
  * [New before/after dynamic form hooks](https://github.com/CMB2/CMB2/wiki/Tips-&-Tricks#using-the-dynamic-beforeafter-form-hooks).
429
  * Larger unit test coverage. Props to [@pmgarman](https://github.com/pmgarman) for assistance. ([#90](https://github.com/CMB2/CMB2/pull/90) and [#91](https://github.com/CMB2/CMB2/pull/91))
430
  * Added helper function to update an option. Props [mAAdhaTTah](https://github.com/mAAdhaTTah), ([#110](https://github.com/CMB2/CMB2/pull/110)).
431
- * More JS hooks during repeat group shifting. Props [AlchemyUnited](https://github.com/AlchemyUnited), ([#125](https://github.com/CMB2/CMB2/pull/125)).
432
  * [New metabox config option for defaulting to closed](https://github.com/CMB2/CMB2/wiki/Tips-&-Tricks#setting-a-metabox-to-closed-by-default).
433
  * New hooks, [`cmb2_init`](https://github.com/CMB2/CMB2/wiki/Tips-&-Tricks#using-cmb2-helper-functions-and-cmb2_init) and `cmb2_init_{$cmb_id}`.
434
 
435
- ### Bug Fixes
436
 
437
  * New mechanism to ensure CMB2 only loads the most recent version of CMB2 in your system. This fixes the issue where another bundled version could conflict or take precendent over your up-to-date version.
438
  * Fix issue with field labels being hidden. Props [mustardBees](https://github.com/mustardBees), ([#48](https://github.com/CMB2/CMB2/pull/48)).
@@ -444,23 +610,23 @@ All notable changes to this project will be documented in this file.
444
  * Fix metabox form not being returned to caller. Props [akshayagarwal](https://github.com/akshayagarwal), ([#145](https://github.com/CMB2/CMB2/pull/145)).
445
  * Run stripslashes before saving data, since WordPress forces magic quotes. Props [clifgriffin](https://github.com/clifgriffin), ([#162](https://github.com/CMB2/CMB2/pull/162)).
446
 
447
- ## 1.3.0 - (never released, merged into CMB2)
 
 
448
 
449
- ### Enhancements
450
-
451
  * Localize Date, Time, and Color picker defaults so that they can be overridden via the `cmb_localized_data` filter. ([#528](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/issues/528))
452
  * Change third parameter for 'cmb_metabox_form' to be an args array. Optional arguments include `echo`, `form_format`, and `save_button`.
453
  * Add support for `show_option_none` argument for `taxonomy_select` and `taxonomy_radio` field types. Also adds the following filters: `cmb_all_or_nothing_types`, `cmb_taxonomy_select_default_value`, `cmb_taxonomy_select_{$this->_id()}_default_value`, `cmb_taxonomy_radio_{$this->_id()}_default_value`, `cmb_taxonomy_radio_default_value`. Props [@pmgarman](https://github.com/pmgarman), ([#569](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/569)).
454
  * Make the list items in the `file_list` field type drag & drop sortable. Props [twoelevenjay](https://github.com/twoelevenjay), ([#603](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/603)).
455
 
456
- ### Bug Fixes
457
 
458
  * Fixed typo in closing `</th>` tag. Props [@CivicImages](https://github.com/CivicImages). ([#616](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/issues/616))
459
 
460
- ## 1.2.0 - 2014-05-03
 
 
461
 
462
- ### Enhancements
463
-
464
  * Add support for custom date/time formats. Props [@Scrent](https://github.com/Scrent). ([#506](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/506))
465
  * Simplify `wysiwyg` escaping and allow it to be overridden via the `escape_cb` parameter. ([#491](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/491))
466
  * Add a 'Select/Deselect all' button for the `multicheck` field type.
@@ -468,7 +634,7 @@ All notable changes to this project will be documented in this file.
468
  * New field parameter, `show_on_cb`, allows you to conditionally display a field via a callback. ([#47](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/issues/47))
469
  * Unit testing (the beginning). Props [@brichards](https://github.com/brichards) and [@camdensegal](https://github.com/camdensegal).
470
 
471
- ### Bug Fixes
472
 
473
  * Fixed issue where remove file button wouldn't clear the url field. ([#514](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/issues/514))
474
  * `wysiwyg` fields now allow underscores. Fixes some wysiwyg display issues in WordPress 3.8. Props [@lswilson](https://github.com/lswilson). ([#491](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/issues/491))
@@ -479,33 +645,33 @@ All notable changes to this project will be documented in this file.
479
 
480
 
481
 
482
- ## 1.1.3 - 2014-04-07
483
 
484
- ### Bug Fixes
485
 
486
  * Update `cmb_get_field_value` function as it was passing the parameters to `cmb_get_field` in the wrong order.
487
  * Fix repeating fields not working correctly if meta key or prefix contained an integer. ([#503](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/issues/503))
488
 
489
- ## 1.1.2 - 2014-04-05
490
 
491
- ### Bug Fixes
492
 
493
  * Fix issue with `cmb_Meta_Box_types.php` calling a missing method, `image_id_from_url`. ([#502](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/502))
494
 
495
 
496
- ## 1.1.1 - 2014-04-03
497
 
498
- ### Bug Fixes
499
 
500
  * Radio button values were not showing saved value. ([#500](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/issues/500))
501
 
502
- ## 1.1.0 - 2014-04-02
503
 
504
- ### Enhancements
505
 
506
  * [Repeatable groups](https://github.com/CMB2/CMB2/wiki/Field-Types#group)
507
  * Support for more fields to be repeatable, including oEmbed field, and date, time, and color picker fields, etc.
508
- * Codebase has been revamped to be more modular and object-oriented.
509
  * New filter, `"cmb_{$element}_attributes" ` for modifying an element's attributes.
510
  * Every field now supports an `attributes` parameter that takes an array of attributes. [Read more](https://github.com/CMB2/CMB2/wiki/Field-Types#attributes).
511
  * Removed `cmb_std_filter` in favor of `cmb_default_filter`. **THIS IS A BREAKING CHANGE**
@@ -515,13 +681,13 @@ All notable changes to this project will be documented in this file.
515
  * New JavaScript events, `cmb_add_row` and `cmb_remove_row` for hooking in and manipulating the new row's data.
516
  * New filter, `cmb_localized_data`, for modifiying localized data passed to the CMB JS.
517
 
518
- ### Bug Fixes
519
- * Resolved occasional issue where only the first character of the label/value was diplayed. props [@mustardBees](https://github.com/mustardBees), ([#486](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/486))
520
 
521
 
522
- ## 1.0.2 - 2014-03-03
523
 
524
- ### Enhancements
525
 
526
  * Change the way the `'cmb_validate_{$field['type']}'` filter works.
527
  It is now passed a null value vs saved value. If null is returned, default sanitization will follow. **THIS IS A BREAKING CHANGE**. If you're already using this filter, take note.
@@ -531,7 +697,7 @@ It is now passed a null value vs saved value. If null is returned, default sanit
531
  * Updated `file_list` images to be displayed horizontally instead of vertically. props [@IgorCode](https://github.com/IgorCode), ([#467](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/467))
532
  * Use `get_the_terms` where possible since the data is cached.
533
 
534
- ### Bug Fixes
535
 
536
  * Fixed wysiwyg escaping slashes. props [@gregrickaby](https://github.com/gregrickaby), ([#465](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/465))
537
  * Replaced `__DIR__`, as `dirname( __FILE__ )` is easier to maintain back-compatibility.
@@ -539,11 +705,11 @@ It is now passed a null value vs saved value. If null is returned, default sanit
539
  * Fix undeclared JS variable. [@veelen](https://github.com/veelen), ([#451](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/451))
540
  * Fix `file_list` errors when removing all files and saving.
541
  * Set correct `object_id` to be used later in `cmb_show_on` filter. [@lauravaq](https://github.com/lauravaq), ([#445](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/445))
542
- * Fix sanitization recursion memeory issues.
543
 
544
- ## 1.0.1 - 2014-01-24
545
 
546
- ### Enhancements
547
 
548
  * Now works with option pages and site settings. ([view example in wiki](https://github.com/CMB2/CMB2/wiki/Using-CMB-to-create-an-Admin-Theme-Options-Page))
549
  * two filters to override the setting and getting of options, `cmb_override_option_get_$option_key` and `cmb_override_option_save_$option_key` respectively. Handy for using plugins like [WP Large Options](https://github.com/voceconnect/wp-large-options/) ([also here](http://vip.wordpress.com/plugins/wp-large-options/)).
@@ -551,9 +717,9 @@ It is now passed a null value vs saved value. If null is returned, default sanit
551
  * New sanitization class to sanitize data when saved.
552
  * New callback field parameter, `sanitization_cb`, for performing your own sanitization.
553
  * new `cmb_Meta_Box_types::esc()` method that handles escaping data for display.
554
- * New callback field parameter, `escape_cb`, for performing your own data escaping, as well as a new filter, `'cmb_types_esc_'. $field['type']`.
555
 
556
- ### Bug Fixes
557
 
558
  * Fixed wysiwyg editor button padding. props [@corvannoorloos](https://github.com/corvannoorloos), ([#391](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/391))
559
  * A few php < 5.3 errors were addressed.
@@ -562,7 +728,7 @@ It is now passed a null value vs saved value. If null is returned, default sanit
562
  * Occasionally fields wouldn't save because of the admin show_on filter.
563
  * Smaller images loaded to the file field type will no longer be blown up larger than their dimensions.
564
 
565
- ## 1.0.0 - 2013-11-30
566
 
567
  * Added `text_datetime_timestamp_timezone` type, a datetime combo field with an additional timezone drop down, props [@dessibelle](https://github.com/dessibelle)
568
  * Added `select_timezone` type, a standalone time zone select dropdown. The time zone select can be used with standalone `text_datetime_timestamp` if desired. Props [@dessibelle](https://github.com/dessibelle)
@@ -574,7 +740,7 @@ It is now passed a null value vs saved value. If null is returned, default sanit
574
  * `text`, `text_small`, `text_medium`, `text_url`, `text_email`, & `text_money` fields now all have the option to be repeatable. Props [@jtsternberg](https://github.com/jtsternberg)
575
  * Custom metaboxes can now be added for user meta. Add them on the user add/edit screen, or in a custom user profile edit page on the front-end. Props [@tw2113](https://github.com/tw2113), [@jtsternberg](https://github.com/jtsternberg)
576
 
577
- ## 0.9.4
578
 
579
  * Added field "before" and "after" options for each field. Solves issue with '$' not being the desired text_money monetary symbol, props [@GaryJones](https://github.com/GaryJones)
580
  * Added filter for 'std' default fallback value, props [@messenlehner](https://github.com/messenlehner)
@@ -583,16 +749,16 @@ It is now passed a null value vs saved value. If null is returned, default sanit
583
  * Better file-extension check for images, props [@GhostToast](https://github.com/GhostToast)
584
  * New filter, `cmb_valid_img_types`, for whitelisted image file-extensions, props [@jtsternberg](https://github.com/jtsternberg)
585
 
586
- ## 0.9.3
587
  * Added field type and field id classes to each cmb table row, props [@jtsternberg](https://github.com/jtsternberg)
588
 
589
- ## 0.9.2
590
  * Added post type comparison to prevent storing null values for taxonomy selectors, props [@norcross](https://github.com/norcross)
591
 
592
- ## 0.9.1
593
  * Added `oEmbed` field type with ajax display, props [@jtsternberg](https://github.com/jtsternberg)
594
 
595
- ## 0.9
596
  * __Note: This release requires WordPress 3.3+__
597
  * Cleaned up scripts being queued, props [@jaredatch](https://github.com/jaredatch)
598
  * Cleaned up and reorganized jQuery, props [@GaryJones](https://github.com/GaryJones)
@@ -609,25 +775,25 @@ It is now passed a null value vs saved value. If null is returned, default sanit
609
  * Added color picker, props [@jaredatch](https://github.com/jaredatch)
610
  * Added readme.md markdown file, props [@jaredatch](https://github.com/jaredatch)
611
 
612
- ## 0.8 - 2012-01-19
613
  * Added jQuery timepicker, props [@norcross](https://github.com/norcross)
614
  * Added 'raw' textarea to convert special HTML entities back to characters, props [@norcross](https://github.com/norcross)
615
  * Added missing examples on example-functions.php, props [@norcross](https://github.com/norcross)
616
 
617
- ## 0.7
618
  * Added the new wp_editor() function for the WYSIWYG dialog box, props [@jcpry](https://github.com/jcpry)
619
  * Created 'cmb_show_on' filter to define your own Show On Filters, props [@billerickson](https://github.com/billerickson)
620
  * Added page template show_on filter, props [@billerickson](https://github.com/billerickson)
621
  * Improvements to the 'file' field type, props [@randyhoyt](https://github.com/randyhoyt)
622
  * Allow for default values on 'radio' and 'radio_inline' field types, props [@billerickson](https://github.com/billerickson)
623
 
624
- ## 0.6.1
625
  * Enabled the ability to define your own custom field types (issue #28). props [@randyhoyt](https://github.com/randyhoyt)
626
 
627
- ## 0.6
628
  * Added the ability to limit metaboxes to certain posts by id. props [@billerickson](https://github.com/billerickson)
629
 
630
- ## 0.5
631
  * Fixed define to prevent notices. props [@destos](https://github.com/destos)
632
  * Added text_date_timestap option. props [@andrewyno](https://github.com/andrewyno)
633
  * Fixed WYSIWYG paragraph breaking/spacing bug. props [@wpsmith](https://github.com/wpsmith)
@@ -635,5 +801,18 @@ It is now passed a null value vs saved value. If null is returned, default sanit
635
  * Fixed script causing the dashboard widgets to not be collapsible.
636
  * Fixed various spacing and whitespace inconsistencies
637
 
638
- ## 0.4
639
  * Think we have a release that is mostly working. We'll say the initial release :)
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === CMB2 ===
2
+ Contributors: jtsternberg, webdevstudios, zao, tw2113
3
+ Donate link: https://cmb2.io
4
+ Tags: metaboxes, forms, fields, options, settings
5
+ Requires at least: 3.8.0
6
+ Tested up to: 4.9.1
7
+ Stable tag: 2.3.0
8
+ License: GPLv2 or later
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
+
11
+ CMB2 is a metabox, custom fields, and forms library for WordPress that will blow your mind.
12
+
13
+ == Description ==
14
+
15
+ CMB2 is a developer's toolkit for building metaboxes, custom fields, and forms for WordPress that will blow your mind. Easily manage meta for posts, terms, users, comments, or create custom option pages.
16
+
17
+ CMB2 is a complete rewrite of Custom Metaboxes and Fields for WordPress. To get started, please follow the examples in the included `example-functions.php` file and have a look at the [basic usage instructions](https://github.com/CMB2/CMB2/wiki/Basic-Usage).
18
+
19
+ You can see a list of available field types [here](https://github.com/CMB2/CMB2/wiki/Field-Types#types).
20
+
21
+ ### Contribution
22
+ Development occurs on Github, and all contributions welcome. Please read the [CONTRIBUTING](https://github.com/CMB2/CMB2/blob/master/CONTRIBUTING.md) doc for more details.
23
 
24
+ A complete list of all our awesome contributors found here: [github.com/CMB2/CMB2/graphs/contributors](https://github.com/CMB2/CMB2/graphs/contributors)
25
 
26
+ ### Features:
27
 
28
+ * Create metaboxes to be used on post edit screens.
29
+ * [Create forms to be used on an options pages](https://github.com/CMB2/CMB2/wiki/Using-CMB-to-create-an-Admin-Theme-Options-Page).
30
+ * Create forms to handle user meta and display them on user profile add/edit pages.
31
+ * Create forms to handle term meta and display wherever your taxonomies are used.
32
+ * [Flexible API that allows you to use CMB forms almost anywhere, even on the front-end](https://github.com/CMB2/CMB2/wiki/Bringing-Metaboxes-to-the-Front-end).
33
+ * [Several field types are included](https://github.com/CMB2/CMB2/wiki/Field-Types).
34
+ * [Custom API hook that allows you to create your own field types](https://github.com/CMB2/CMB2/wiki/Adding-your-own-field-types).
35
+ * There are numerous hooks and filters, allowing you to modify many aspects of the library (without editing it directly).
36
+ * Repeatable fields for most field types are supported, as well as repeatable field groups.
37
+ * CMB2 is safe to bundle with any project. It will only load the newest version in the system.
38
 
39
+ ### Translation
40
+ * Thanks to many in the CMB2 community and to our friends at [wp-translations.org](http://wp-translations.org/project/cmb2/), we have a good start on several translations for CMB2. Please feel free to [work with wp-translations.org](http://wp-translations.org/project/cmb2/) to provide even more!
41
 
42
+ ### Documentation
43
+ * CMB2 documentation can be found at [the CMB2 wiki](https://github.com/CMB2/CMB2/wiki) on github. Also, If you're into reading code and inline documentation, we tried to keep all functions and methods fully inline-documented.
44
+
45
+ ### 3rd Party Resources
46
+
47
+ ##### Custom Field Types
48
+ * [CMB2 Field Type: CMB Attached Posts Field](https://github.com/coreymcollins/cmb-attached-posts) from [coreymcollins](https://github.com/coreymcollins): `custom_attached_posts`, for attaching posts to a page.
49
+ * [CMB2 Field Type: Post Search Ajax](https://github.com/alexis-magina/cmb2-field-post-search-ajax) by [alexis-magina](https://github.com/alexis-magina): `post_search_ajax` Attach posts to each other. Same approach as [CMB2 Attached Posts Field](https://github.com/coreymcollins/cmb-attached-posts) but with Ajax request, multiple/single option, and different UI.
50
+ * [CMB2 Field Type: CMB2 Post Search field](https://github.com/CMB2/CMB2-Post-Search-field): `post_search_text` adds a post-search dialog for searching/attaching other post IDs.
51
+ * [CMB2 Field Type: CMB2 User Search field](https://github.com/Mte90/CMB2-User-Search-field) from [Mte90](https://github.com/Mte90): `user_search_text` adds a user-search dialog for searching/attaching other User IDs.
52
+ * [CMB2 Field Type: Google Maps](https://github.com/mustardBees/cmb_field_map) from [mustardBees](https://github.com/mustardBees): Custom field type for Google Maps.
53
+ > The `pw_map` field stores the latitude/longitude values which you can then use to display a map in your theme.
54
+
55
+ * [CMB2 Field Type: Select2](https://github.com/mustardBees/cmb-field-select2) from [mustardBees](https://github.com/mustardBees): Custom field types which use the [Select2](http://ivaynberg.github.io/select2/) script:
56
+
57
+ > 1. The `pw_select field` acts much like the default select field. However, it adds typeahead-style search allowing you to quickly make a selection from a large list
58
+ > 2. The `pw_multiselect` field allows you to select multiple values with typeahead-style search. The values can be dragged and dropped to reorder
59
+
60
+ * [CMB Field Type: Slider](https://github.com/qmatt/cmb2-field-slider) from [mattkrupnik](https://github.com/mattkrupnik/): Adds a jQuery UI Slider field.
61
+ * [WDS CMB2 Date Range Field](https://github.com/CMB2/CMB2-Date-Range-Field) from [dustyf](https://github.com/dustyf) of [WebDevStudios](https://github.com/WebDevStudios): Adds a date range field.
62
+ * [CMB2 Remote Image Select](https://github.com/CMB2/CMB2-Remote-Image-Select-Field) from [JayWood](https://github.com/JayWood) of [WebDevStudios](https://github.com/WebDevStudios): Allows users to enter a URL in a text field and select a single image for use in post meta. Similar to Facebook's featured image selector.
63
+ * [CMB Field Type: Sorter](https://wordpress.org/plugins/cmb-field-type-sorter/): This plugin gives you two CMB field types based on the Sorter script.
64
+ * [CMB Field Type: Tags](https://github.com/florianbeck/cmb2-field-type-tags): WordPress-Tags-like field type for CMB2. _note: this does not set the post tags, but simply provides a unique text input_
65
+ * [CMB Field Type: Link Picker](https://wordpress.org/plugins/link-picker-for-cmb2/): Using the Link Picker for CMB2 control, you can choose a link from your WordPress site, or manually enter a link. You can also identify if the link should open in a new window, or not.
66
+ * [CMB Field Type: MultidatesPicker](https://github.com/origgami/cmb2-multidates-picker): Creates a CMB2 field type that enables a multiple date calendar. It uses a plugin called [MultiDatesPicker v1.6.3 for jQuery UI](http://multidatespickr.sourceforge.net/).
67
+ * [CMB Field Type: CMB2-radio-image](https://github.com/satwinderrathore/CMB2-radio-image): Image as radio buttons.
68
+ * [CMB2 Term Select](https://github.com/florianbeck/cmb2-field-type-tags): Special CMB2 Field that allows users to define an autocomplete text field for terms. _Note: this will set the taxonomy terms, but has the option (`'apply_term' => false`) to disable and save the term ids as data instead (like for options pages, etc)._
69
+ * [CMB2 Related Links](https://github.com/jtsternberg/CMB2-Related-Links): Allows users to add a related links via a repeating field group. Field inputs are powered by the [CMB2 Field Type: CMB2 Post Search field](https://github.com/CMB2/CMB2-Post-Search-field) documented above, and so each link can be populated with existing WordPress content by clicking on the search button. _Note: this is not a standard field type, but instead a function you use in combination with CMB2::add_field()._
70
+ * [CMB2 Field Type: Order](https://github.com/rubengc/cmb2-field-order) by [rubengc](https://github.com/rubengc): Allows users to define custom order of predefined options.
71
+ * [CMB2 Field Type: Animation](https://github.com/rubengc/cmb2-field-animation) by [rubengc](https://github.com/rubengc): Allows users to pickup an animation from [Animate.css](https://github.com/daneden/animate.css) (includes preview of chosen animation).
72
+ * [CMB2 Field Type: Ajax Search](https://github.com/rubengc/cmb2-field-ajax-search) by [rubengc](https://github.com/rubengc): Based on [CMB2 Field Type: Post Search Ajax](https://github.com/alexis-magina/cmb2-field-post-search-ajax), adds the ability to attach posts/users/terms, and the ability to limit the maximum number of attached objects.
73
+ * [CMB2 Field Type: Visual Style Editor](https://github.com/rubengc/cmb2-field-visual-style-editor) by [rubengc](https://github.com/rubengc): Custom field for CMB2 which allows customizing style from a small set of controls.
74
+ * [CMB2 Field Type: CMB2 Roadway Segments](https://github.com/pixelwatt/cmb2-roadway-segments) by [pixelwatt](https://github.com/pixelwatt): This plugin adds a new CMB2 fieldtype for drawing roadway segments onto a map and provides a shortcode for display.
75
+
76
+ ##### Other Helpful Resources
77
+ * [WordPress Shortcode Button](https://github.com/jtsternberg/Shortcode_Button): Uses CMB2 fields to generate fields for shortcode input modals.
78
+ * [WDS-Simple-Page-Builder](https://github.com/WebDevStudios/WDS-Simple-Page-Builder): Uses existing template parts in the currently-active theme to build a customized page with rearrangeable elements. Built with CMB2.
79
+ * [CMB2 Example Theme](https://github.com/CMB2/CMB2-Example-Theme): Demonstrate how to include CMB2 in your theme, as well as some cool tips and tricks.
80
+ * [facetwp-cmb2](https://github.com/FacetWP/facetwp-cmb2): FacetWP integration with CMB2.
81
+ * [CMB2-grid](https://github.com/origgami/CMB2-grid) from [origgami](https://github.com/origgami/): A grid system for WordPress CMB2 library that allows the creation of columns for a better layout in the admin.
82
+ * [CMB2 Metatabs Options](https://github.com/rogerlos/cmb2-metatabs-options) from [rogerlos](https://github.com/rogerlos/): CMO makes it easy to create options pages with multiple metaboxes--and optional WordPress admin tabs.
83
+ * [CMB2 Conditionals](https://github.com/jcchavezs/cmb2-conditionals) from [jcchavezs](https://github.com/jcchavezs/): Allows developers to relate fields so the display of one is conditional on the value of another.
84
+ * [CMB2 Metabox Code Generator](http://willthemoor.github.io/cmb2-metabox-generator/) from [willthemoor](https://github.com/willthemoor/): Skip the boring bits. Use this generator to create fully functional CMB2 metaboxes easily. Now with bulk entry!
85
+ * [Caldera Metaplate](https://wordpress.org/plugins/caldera-metaplate/) by [CalderaWP](https://calderawp.com/): Not specific to CMB2, but allows creating templates for outputting your custom fields.
86
+ * [Yoast CMB2 Field Analysis WP Plugin](https://github.com/alexis-magina/yoast-cmb2-field-analysis) by [alexis-magina](https://github.com/alexis-magina): This plugin adds in a js based method of recalculating Yoast SEO's content scores when updating page content, specifically custom meta fields added via the CMB2 library.
87
+
88
+ ### Links
89
+ * [Project Homepage](http://cmb2.io)
90
+ * [Github project page](https://github.com/CMB2/CMB2)
91
+ * [Documentation (GitHub wiki)](https://github.com/CMB2/CMB2/wiki)
92
+ * [Snippet Library](https://github.com/CMB2/CMB2-Snippet-Library/)
93
+
94
+ **[View CHANGELOG](https://github.com/CMB2/CMB2/blob/master/CHANGELOG.md)**
95
+
96
+ ### Known Issues
97
+
98
+ * Metabox containing WYSIWYG editor cannot be moved or used in a repeatable way at this time (this is a TinyMCE issue).
99
+ * Not all fields work well in a repeatable group.
100
+
101
+ == Installation ==
102
+
103
+ If installing the plugin from wordpress.org:
104
+
105
+ 1. Upload the entire `/CMB2` directory to the `/wp-content/plugins/` directory.
106
+ 2. Activate CMB2 through the 'Plugins' menu in WordPress.
107
+ 2. Copy (and rename if desired) `example-functions.php` into to your theme or plugin's directory.
108
+ 2. Edit to only include the fields you need and rename the functions.
109
+ 4. Profit.
110
+
111
+ If including the library in your plugin or theme:
112
+
113
+ 1. Place the CMB directory inside of your theme or plugin.
114
+ 2. Copy (and rename if desired) `example-functions.php` into a folder *above* the CMB directory OR copy the entirety of its contents to your theme's `functions.php` file.
115
+ 2. Edit to only include the fields you need and rename the functions (CMB directory should be left unedited in order to easily update the library).
116
+ 4. Profit.
117
+
118
+ == Frequently Asked Questions ==
119
+
120
+ FAQ's usually end up in the [github wiki](https://github.com/CMB2/CMB2/wiki).
121
+
122
+ == Changelog ==
123
+
124
+ ### 2.3.0
125
+
126
+ #### Enhancements
127
+
128
+ * Updated Italian translation. Props [@Mte90](https://github.com/Mte90) ([#1067](https://github.com/CMB2/CMB2/issues/1067)).
129
+ * Starting with this release, we are fully switching to the more communicative and standard [Semantic Versioning](https://semver.org/). ([#1061](https://github.com/CMB2/CMB2/issues/1061)).
130
+
131
+ #### Bug Fixes
132
+
133
+ * Update for compatibility with PHP 7.2 (e.g. fixes `Fatal error: Declaration of CMB2_Type_Colorpicker::render() must be compatible with CMB2_Type_Text::render($args = Array)...`). ([#1070](https://github.com/CMB2/CMB2/issues/1070), [#1074](https://github.com/CMB2/CMB2/issues/1074), [#1075](https://github.com/CMB2/CMB2/issues/1075)).
134
+
135
+ ### 2.2.6.2
136
+
137
+ #### Bug Fixes
138
+
139
+ * Fix another issue (introduced in 2.2.6) with repeatable fields not being able to save additional fields. Props [@anhskohbo](https://github.com/anhskohbo) ([#1059](https://github.com/CMB2/CMB2/pull/1059), [#1058](https://github.com/CMB2/CMB2/issues/1058)).
140
+ * Only dequeue `jw-cmb2-rgba-picker-js` script (and enqueue our `wp-color-picker-alpha`) if it is actually found.
141
+
142
+ ### 2.2.6.1
143
+
144
+ #### Enhancements
145
+ * Merge in the [CMB2 RGBa Colorpicker](https://github.com/JayWood/CMB2_RGBa_Picker) field type functionality to the CMB2 colopicker field type. Adds the ability to add an alpha (transparency) slider to the colorpicker by adding the `'alpha'` option [to the field options array](https://github.com/CMB2/CMB2/blob/6fce2e7ba8f41345a23bc2064e30433bdb11c16c/example-functions.php#L263-L265). Thank you to [JayWood](https://github.com/JayWood) for his work on his custom field type.
146
+
147
+ #### Bug Fixes
148
+
149
+ * Fix issue (introduced in 2.2.6) with complex fields set as repeatable not being able to save additional fields. Fixes [#1054](https://github.com/CMB2/CMB2/issues/1054).
150
+
151
+ ### 2.2.6
152
+
153
+ #### Enhancements
154
+
155
+ * Move the fetching of group label and description to _after_ calling `'before_group'` parameter.
156
+ * Allow using the `'render_row_cb'` param for group fields. Fixes [#1041](https://github.com/CMB2/CMB2/issues/1041).
157
+ * Allow resetting cached CMB2 field objects (new 3rd parameter to `CMB2::get_field()`).
158
+ * Allow resetting cached callback results (`CMB2_Base::unset_param_callback_cache()`).
159
+ * Persian translation provided by [@reza-irdev](https://github.com/reza-irdev) ([#1046](https://github.com/CMB2/CMB2/issues/1046)).
160
+ * Added a `'message_cb'` box property, which allows defining a custom callback for adding options-save messages on `options-page` boxes.
161
+ * Updated many the oembed-related unit tests to more reliably test the relevant parts, and not so much the actual success of the WordPress functions.
162
+ * Updated travis config to Install PHP5.2/5.3 on trusty for unit tests. Stolen from [gutenberg/pull/2049](https://github.com/WordPress/gutenberg/pull/2049). Intended to compensate for Travis removing support for PHP 5.2/5.3.
163
+
164
+ #### Bug Fixes
165
+
166
+ * Ensure `'file'` field type ID is removed from the database if the `'file'` field type's value is empty ([Support thread](https://wordpress.org/support/topic/bug-field-of-type-file-does-not-delete-postmeta-properly/)).
167
+ * Fix JS errors when `user_can_richedit()` is false ("Disable the visual editor when writing" user option is checked, or various unsupported browsers). See [#1031](https://github.com/CMB2/CMB2/pull/1031).
168
+ * Fix issue where some European date formats (e.g. `F j, Y`) would not properly translate into jQuery UI date formats. [Support thread](https://wordpress.org/support/topic/using-wordpresss-date-time-format-settings)
169
+ * Fix repeating fields within repeating groups having the values/indexes incorrectly associated. Props [@daggerhart](https://github.com/daggerhart) ([#1047](https://github.com/CMB2/CMB2/pull/1047)). Fixes [#1035](https://github.com/CMB2/CMB2/issues/1035), [#348](https://github.com/CMB2/CMB2/issues/348).
170
+ * Fixed multiple update messages on settings pages when CMB2 option pages were registered ([#1049](https://github.com/CMB2/CMB2/issues/1049)).
171
+ * Fix issue where using multiple oembed fields could cause incorrectly cached arguments to be used.
172
+ * Fix bug where `'select_all_button' => false` was not working for `'taxonomy_multicheck'` field type ([#1005](https://github.com/CMB2/CMB2/issues/1005)).
173
+
174
+ ### 2.2.5.3
175
+
176
+ #### Enhancements
177
+
178
+ * Update to instead initate CMB2 hookup via `"cmb2_init_hookup_{$cmb_id}"` hook. Allows plugins to unhook/rehook/etc.
179
+
180
+ #### Bug Fixes
181
 
182
  * Spelling/Grammar fixes. Props [@garrett-eclipse](https://github.com/garrett-eclipse) ([#1012](https://github.com/CMB2/CMB2/pull/1012)).
183
  * Fix "PHP Strict Standards: Static function should not be abstract" notice.
187
  * Change the updated-settings notice query variable so that WordPress does not auto-add settings notices on top of ours.
188
  * For settings pages, only output settings errors if WordPress does not do it by default (for sub-pages of `options-general.php`), and if the errors are not disabled via the `'disable_settings_errors'` box property.
189
 
190
+ ### 2.2.5.2
191
 
192
+ #### Bug Fixes
193
 
194
+ * Fix issue in 2.2.5 with non-sortable repeatable groups not having new groups values be emptied on creation/clone.
195
+ * Fix issue in 2.2.5 with options pages not saving when parent_slug was used. Fixes [#1008](https://github.com/CMB2/CMB2/issues/1008).
196
 
197
+ ### 2.2.5.1
198
 
199
+ #### Bug Fixes
200
 
201
+ * Fix issue in 2.2.5 which caused empty repeatable groups having the buttons set to have a disabled "Remove Group" button.
202
 
203
+ ### 2.2.5 - 2017-08-07
204
 
205
+ #### Enhancements
206
 
207
  * Options pages are now first-class CMB2 citizens, and registering a box to show on an options page will automatically register the menu page and output the form on the page. [See example](https://github.com/CMB2/CMB2/blob/v2.2.5/example-functions.php#L640-L683). (The [snippets](https://github.com/CMB2/CMB2-Snippet-Library/tree/master/options-and-settings-pages) in the snippet library will be updated to reflect this change)
208
  * Improved Options Page styling. Props [@anhskohbo](https://github.com/anhskohbo) ([#1006](https://github.com/CMB2/CMB2/pull/1006)).
209
  * Improved cohesive styles for repeatable fields. Props [@anhskohbo](https://github.com/anhskohbo) ([#819](https://github.com/CMB2/CMB2/pull/819)).
210
+ * New field types, `'taxonomy_radio_hierarchical'`, and `'taxonomy_multicheck_hierarchical'`, for displaying taxonomy options in a hierarchical layout. Props to [eriktelepovsky](https://github.com/eriktelepovsky) for the [working code](https://github.com/CMB2/CMB2/issues/640#issuecomment-246938690). ([#640](https://github.com/CMB2/CMB2/issues/640))
211
  * Removing last repeat item row (and repeat group row) is now somewhat allowed in that the "remove" button simply resets the last item to empty. Fixes [#312](https://github.com/CMB2/CMB2/issues/312).
212
  * Enable the additional media library modal filters. Fixes [#873](https://github.com/CMB2/CMB2/issues/873).
213
  * Sanitize the attributes added via the `cmb2_group_wrap_attributes` filter.
220
  * Break `CMB2_Field:options()` method apart to allow re-setting options from field params. Related: [reaktivstudios/cmb2-flexible-content/pull/8](https://github.com/reaktivstudios/cmb2-flexible-content/pull/8).
221
  * New `CMB2:box_types()` method for getting the array of registered `'object_types'` for a box. Ensures the return is an array.
222
  * Improved inline hooks documentation.
223
+ * Updated several CMB2 methods to return the CMB2 object (for method chaining). Methods include:
224
  * `CMB2::show_form()`
225
  * `CMB2::render_form_open()`
226
  * `CMB2::render_form_close()`
233
  * `CMB2::after_save()`
234
  * `CMB2::add_fields()`
235
 
236
+ #### Bug Fixes
237
 
238
  * Update for `file`/`file_list` fields to properly show a preview for SVG images. Fixes [#874](https://github.com/CMB2/CMB2/pull/874).
239
  * Fix and standardize inconsistent button classes. Update all buttons to use the `.button-secondary` class instead of the `.button` class. This alleviates some front-end issues for themes which target the `.button` class. _This is a backwards-compatibility break._ If your theme or plugin targets the `.button` class within CMB2, you will need to update to use `.button-secondary`.
245
  * Fix jQuery Migrate's `jQuery.fn.attr('value', val) no longer sets properties` warning.
246
  * Fix issue with CMB2 being too aggressive with stripping slashes from values. Fixes [#981](https://github.com/CMB2/CMB2/issues/981).
247
 
248
+ ### 2.2.4 - 2017-02-27
249
 
250
+ #### Enhancements
251
 
252
  * Modify `'taxonomy_*'` fields to return stored terms for non-post objects.
253
  * Modify `CMB2::get_sanitized_values()` to return the sanitized `'taxonomy_*'` field values. Also added `"cmb2_return_taxonomy_values_{$cmb_id}"` filter to modify if `'taxonomy_*'` field values are returned. Fixes [#538](https://github.com/CMB2/CMB2/issues/538).
268
 
269
  Props [@norcross](https://github.com/norcross) ([#836](https://github.com/CMB2/CMB2/pull/836)).
270
  * New field parameter, `'render_class'`, allowing you to override the default `'CMB2_Type_Base'` class that is used when rendering the field. This provides interesting object-oriented ways to override default CMB2 behavior by subclassing the default class and overriding methods. The render class can also be overridden with the `"cmb2_render_class_{$fieldtype}"` filter, which is passed the default render class name as well as the `CMB2_Types` object, but this should be used sparingly, and within the context of your project's boxes/fields or you could break other plugins'/themes' CMB2 fields.
271
+ * Improvements to the `file`/`file_list` fields javascript APIs, including using undersore templates.
272
  * Small improvements to the styling for the `file_list` field type.
273
  * New action hook, `cmb2_footer_enqueue`, which occurs after CMB2 enqueues its assets.
274
  * Example functions clean up. Props [@PavelK27](https://github.com/PavelK27) ([#866](https://github.com/CMB2/CMB2/pull/866)).
275
+ * New `CMB2_Utils` methods, `get_available_image_sizes()` and `get_named_size()`. Props [@Cai333](https://github.com/Cai333).
276
 
277
+ #### Bug Fixes
278
 
279
  * Fix datepicker month/year dropdown text color. On windows, the option text was showing as white (invisible). Fixes [#770](https://github.com/CMB2/CMB2/issues/770).
280
  * Repeatable WYSIWYG no longer breaks if `'quicktags'` param is set to false. Props [@timburden](https://github.com/timburden) ([#797](https://github.com/CMB2/CMB2/pull/797), [#796](https://github.com/CMB2/CMB2/issues/796)).
289
  * Do not silence notices/errors in `CMB2_Utils::get_file_ext()`.
290
  * If `title` field type has no name value, then only output a span element (instead of a header element).
291
 
292
+ ### 2.2.3.1 - 2016-11-08
293
 
294
+ #### Enhancements
295
 
296
  * Better styling for disabled group "X" buttons, and add title attr. Fixes [#773](https://github.com/CMB2/CMB2/issues/773).
297
 
298
+ #### Bug Fixes
299
 
300
  * Use quotes for `label[for=""]` selector. Fixed `Syntax error, unrecognized expression`. Props [@anhskohbo](https://github.com/anhskohbo) ([#789](https://github.com/CMB2/CMB2/pull/789)).
301
  * Fix `ReferenceError: tinyMCE is not defined` javascript errors (happening when trying to remove a repeatable field/group). Fixes [#790](https://github.com/CMB2/CMB2/issues/790), and [#730](https://github.com/CMB2/CMB2/issues/730).
302
  * Fix REST API `'show_in_rest'` examples in `example-functions.php`. Any REST API boxes/fields must use the `'cmb2_init'` hook (as opposed to the `'cmb2_admin_init'` hook).
303
 
304
+ ### 2.2.3 - 2016-10-25
305
 
306
+ #### Enhancements
307
 
308
  * CMB2 REST API! CMB2 now has WP REST API endpoints for displaying your boxes and fields data, as well as registers rest fields in the existing post, user, term, and comment endpoints (in the cmb2 namespace). Enabling the REST API for your boxes/fields is opt-in, meaning it will not be automatically enabled. For more info, [check out the wiki](https://github.com/CMB2/CMB2/wiki/REST-API).
309
  * Small string improvement, move a period inside the translatable string. Props [@pedro-mendonca](https://github.com/pedro-mendonca) ([#672](https://github.com/CMB2/CMB2/pull/672)).
314
  * CMB2 JS object is now instantiated without stomping existing object, to enable extending.
315
  * New field parameter for taxonomy fields, `'remove_default'` which allows disabling the default taxonomy metabox. Props [@c3mdigital](https://github.com/c3mdigital) ([#593](https://github.com/CMB2/CMB2/pull/593)).
316
  * Change `'row_classes'` to just `'classes'`, to mirror the metabox `'classes'` property. Also now accepts a `'classes_cb'` parameter for specifying a callback which returns a string or array. The callback will receive `$field_args` as the first argument, and the CMB2_Field `$field` object as the second argument. (`'row_classes'` will continue to work, but is deprecated)
317
+ * Make wysiwyg editors work in the repeatable groups context. A standard repeatable (non-group) wysiwyg field is not supported (but will possibly be included in a future update). Props [@johnsonpaul1014](https://github.com/johnsonpaul1014) ([#26](https://github.com/CMB2/CMB2/pull/26), [#99](https://github.com/CMB2/CMB2/pull/99), [#260](https://github.com/CMB2/CMB2/pull/260), [#264](https://github.com/CMB2/CMB2/pull/264), [#356](https://github.com/CMB2/CMB2/pull/356), [#431](https://github.com/CMB2/CMB2/pull/431), [#462](https://github.com/CMB2/CMB2/pull/462), [#657](https://github.com/CMB2/CMB2/pull/657), [#693](https://github.com/CMB2/CMB2/pull/693)).
318
  * Add an id to the heading tag in the title field. This allows linking to a particular title using the id.
319
  * Internationalization improvements. Props [ramiy](https://github.com/ramiy) ([#696](https://github.com/CMB2/CMB2/pull/696)).
320
  * Ensure that saving does not happen during a switch-to-blog session, as data would be saved to the wrong object. [See more](https://wordpress.org/support/topic/bug-in-lastest-version?replies=2).
332
  ...
333
  ```
334
 
335
+ #### Bug Fixes
336
 
337
  * If custom field types use a method and the Type object has not been instantiated, Try to guess the Type object and instantiate.
338
  * Normalize WordPress root path (`ABSPATH`) and theme rooth path (`get_theme_root()`). Props [@rianbotha](https://github.com/rianbotha) ([#677](https://github.com/CMB2/CMB2/pull/677), [#676](https://github.com/CMB2/CMB2/pull/676)).
339
  * Fix issue with `'cmb2_remove_row'` Javascript callback for non-group row removal. Fixes [#729](https://github.com/CMB2/CMB2/pull/729)).
340
  * Fix issue with missing assignment of variable (undefined variable). Props [@anhskohbo](https://github.com/anhskohbo) ([#779](https://github.com/CMB2/CMB2/pull/779)).
341
 
342
+ ### 2.2.2.1 - 2016-06-27
343
 
344
+ #### Bug Fixes
345
 
346
  * Fix issue that kept CMB2 stylesheet from being enqueued when using the [options-page snippets](https://github.com/CMB2/CMB2-Snippet-Library/tree/master/options-and-settings-pages).
347
  * Fix issue which caused the CMB2 column display styles to be enqueued in the wrong pages. Now only enqueues on admin pages with columns.
348
 
349
+ ### 2.2.2 - 2016-06-27
350
 
351
+ #### Enhancements
352
 
353
  * You can now set admin post-listing columns with an extra field parameter, `'column' => true,`. If you want to dictate what position the column is, use `'column' => array( 'position' => 2 ),`. If you want to dictate the column title (instead of using the field `'name'` value), use `'column' => array( 'name' => 'My Column' ),`. If you need to specify the column display callback, set the `'display_cb'` parameter to [a callback function](https://github.com/CMB2/CMB2/wiki/Field-Parameters#render_row_cb). Columns work for post (all post-types), comment, user, and term object types.
354
  * Updated Datepicker styles using JJJ's "jQuery UI Datepicker CSS for WordPress", so props Props [@stuttter](https://github.com/stuttter), [@johnjamesjacoby](https://github.com/johnjamesjacoby). Also cleaned up the timepicker styles (specifically the buttons) to more closely align with the datepicker and WordPress styles.
366
  * New `CMB2_Utils` public methods, `get_url_from_dir()`, `get_file_ext()`, `get_file_name_from_path()`, and `wp_at_least()`.
367
  * Add a `cmb_pre_init` Javascript event to allow overriding CMB2 defaults via JS.
368
 
369
+ #### Bug Fixes
370
  * Fix issue with 'default' callback not being applied in all instances. Introduced new `CMB2_Field::get_default()` method, and `'default_cb'` field parameter. Using the `'default'` field parameter with a callback will be deprecated in the next few releases. ([#572](https://github.com/CMB2/CMB2/issues/572)).
371
  * Be sure to call `CMB2_Field::row_classes()` for group field rows. Also, update CSS to use the "cmb-type-group" classname instead of "cmb-repeat-group-wrap".
372
  * Introduce new `'text'` and `'text_cb'` field parameters for overriding CMB2 text strings instead of using the `'options'` array. ([#630](https://github.com/CMB2/CMB2/pull/630))
375
  * Allow for optional/empty money field. Props [@jrfnl](https://github.com/jrfnl) ([#577](https://github.com/CMB2/CMB2/pull/577)).
376
  * The `CMB2::$updated` parameter (which contains field ids for all fields updated during a save) now also correctly adds group field ids to the array.
377
 
378
+ ### 2.2.1
379
 
380
+ #### Bug Fixes
381
 
382
  * Fixes back-compatibility issue which could allow multiple CMB2 instances to load (causing fatal errors). ([#520](https://github.com/CMB2/CMB2/pull/520))
383
 
384
+ ### 2.2.0 - 2016-02-27
385
 
386
+ #### Enhancements
387
 
388
  * Term Meta! As of WordPress 4.4, [WordPress will have the ability to use term metadata](https://make.wordpress.org/core/2015/10/23/4-4-taxonomy-roundup/). CMB2 will work with term meta out of the box. To do so, see the example cmb registration in the `yourprefix_register_taxonomy_metabox` function in [example-functions.php](https://github.com/CMB2/CMB2/blob/master/example-functions.php).
389
  * New hooks which hook in after save field action: `'cmb2_save_field'` and `"cmb2_save_field_{$field_id}"`. Props [wpsmith](https://github.com/wpsmith) ([#475](https://github.com/CMB2/CMB2/pull/475)).
395
  * Fix some inline documentation issues. Props [@jrfnl](https://github.com/jrfnl) ([#579](https://github.com/CMB2/CMB2/pull/579)).
396
  * Include `.gitattributes` file for excluding development resources when using Composer. Props [@benoitchantre](https://github.com/benoitchantre) ([#575](https://github.com/CMB2/CMB2/pull/575), [#53](https://github.com/CMB2/CMB2/pull/53)).
397
 
398
+
399
+ #### Bug Fixes
400
 
401
  * Fixed issue with `'taxonomy_select'` field type where a term which evaluated falsey would not be displayed properly. Props [adamcapriola](https://github.com/adamcapriola) ([#477](https://github.com/CMB2/CMB2/pull/477)).
402
  * Fix issue with colorpickers not changing when sorting groups.
406
  * Fix issue with oembed fields not working correctly on options pages. ([#542](https://github.com/CMB2/CMB2/pull/542)).
407
  * Fix issue with repeatable field <button> elements stealing focus from "submit" button.
408
 
409
+ ### 2.1.2 - 2015-10-01
410
 
411
+ #### Bug Fixes
412
 
413
  * Fixes back-compatibility issue when adding fields array to the metabox registration. ([#472](https://github.com/CMB2/CMB2/pull/472))
414
 
415
+ ### 2.1.1 - 2015-09-30
416
 
417
+ #### Enhancements
418
 
419
  * Make all CMB2::save_fields arguments optional to fall-back to `$_POST` data. Props [JPry](https://github.com/JPry).
420
  * New filter, `cmb2_non_repeatable_fields` for adding additional fields to the blacklist of repeatable field-types. Props [JPry](https://github.com/JPry) ([#430](https://github.com/CMB2/CMB2/pull/430)).
426
  * Update `CMB2_Utils::image_id_from_url` to be more reliable. Props [wpscholar](https://github.com/wpscholar), ([#453](https://github.com/CMB2/CMB2/pull/453)).
427
  * `cmb2_get_option` now takes a default fallback value as a third parameter.
428
 
429
+ #### Bug Fixes
430
 
431
  * Address issue where `'file'` and `'file_list'` field results were getting mixed. Props [augustuswm](https://github.com/augustuswm) ([#382](https://github.com/CMB2/CMB2/pull/382), [#250](https://github.com/CMB2/CMB2/pull/250), [#296](https://github.com/CMB2/CMB2/pull/296)).
432
  * Fix long-standing issues with radio and multicheck fields in repeatable groups losing their values when new rows are added. ([#341](https://github.com/CMB2/CMB2/pull/341), [#304](https://github.com/CMB2/CMB2/pull/304), [#263](https://github.com/CMB2/CMB2/pull/263), [#246](https://github.com/CMB2/CMB2/pull/246), [#150](https://github.com/CMB2/CMB2/pull/150))
436
  * Fixes issue with `'file_list'` fields not saving properly when in repeatable groups display. Props [jamiechong](https://github.com/jamiechong) ([#433](https://github.com/CMB2/CMB2/pull/433),[#187](https://github.com/CMB2/CMB2/pull/187)).
437
  * Update `'taxonomy_radio_inline'` and `'taxonomy_multicheck_inline'` fields sanitization method to use the same method as the non-inline versions. Props [superfreund](https://github.com/superfreund) ([#454](https://github.com/CMB2/CMB2/pull/454)).
438
 
439
+ ### 2.1.0 - 2015-08-05
440
 
441
+ #### Bug Fixes
442
 
443
  * Fix user fields not saving. Props [achavez](https://github.com/achavez), ([#417](https://github.com/CMB2/CMB2/pull/417)).
444
 
445
+ ### 2.0.9 - 2015-07-28
 
 
446
 
447
+ #### Bug Fixes
 
 
 
 
 
 
 
448
 
449
  * `'multicheck_inline'`, `'taxonomy_radio_inline'`, and `'taxonomy_multicheck_inline'` field types were not outputting anything since it's value was not being returned. Props [ediamin](https://github.com/ediamin), ([#367](https://github.com/CMB2/CMB2/pull/367), ([#405](https://github.com/CMB2/CMB2/pull/405)).
450
  * `'hidden'` type fields were not honoring the `'show_on_cb'` callback. Props [JPry](https://github.com/JPry), ([commits](https://github.com/CMB2/CMB2/compare/5a4146eec546089fbe1a1c859d680dfda3a86ee2...1ef5ef1e3b2260ab381090c4abe9dc7234cfa0a6)).
454
  * Ensure value passed to `strtotime` in `make_valid_time_stamp` is cast to a string. Props [vajrasar](https://github.com/vajrasar) ([#389](https://github.com/CMB2/CMB2/pull/389)).
455
  * Fixed issue with Windows IIS and bundling CMB2 in the theme. Props [DevinWalker](https://github.com/DevinWalker), ([#400](https://github.com/CMB2/CMB2/pull/400), [#401](https://github.com/CMB2/CMB2/pull/401))
456
 
457
+ #### Enhancements
458
+
459
+ * Updated/Added many translations. Props [fxbenard](https://github.com/fxbenard), ([#203](https://github.com/CMB2/CMB2/pull/344)) and [Mte90](https://github.com/Mte90) for the Italian translation.
460
+ * Updated `'file_list'` field type to have a more intuitive selection in the media library, and updated the 'Use file' text in the button. Props [SteveHoneyNZ](https://github.com/SteveHoneyNZ) ([#357](https://github.com/CMB2/CMB2/pull/357), [#358](https://github.com/CMB2/CMB2/pull/358)).
461
+ * `'closed'` group field option parameter introduced in order to set the groups as collapsed by default. Requested in [#391](https://github.com/CMB2/CMB2/issues/391).
462
+ * Added `"cmb2_{$object_type}_process_fields_{$cmb_id}"` hook for hooking in and modifying the metabox or fields before the fields are processed/sanitized for saving.
463
+ * Added Comment Metabox support. Props [GregLancaster71](https://github.com/GregLancaster71) ([#238](https://github.com/CMB2/CMB2/pull/238), [#244](https://github.com/CMB2/CMB2/pull/244)).
464
+ * New "cmb2_{$field_id}_is_valid_img_ext" filter for determining if a field value has a valid image file-type extension.
465
+
466
+ ### 2.0.8 - 2015-06-01
467
 
468
+ #### Bug Fixes
469
 
470
  * Fix color-picker field not enqueueing the colorpicker script. ([#333](https://github.com/CMB2/CMB2/issues/333))
471
 
472
+ ### 2.0.7 - 2015-05-28
473
 
474
+ #### Enhancements
475
 
476
  * Ability to use non-repeatable group fields by setting the `'repeatable'` field param to `false` when registering a group field type. Props [marcusbattle](https://github.com/marcusbattle), ([#159](https://github.com/CMB2/CMB2/pull/159)).
477
  * Add and enqeueue a front-end specific CSS file which adds additional styles which are typically covered by wp-admin css. ([#311](https://github.com/CMB2/CMB2/issues/311))
478
  * Better handling of the CMB2 javascript (and CSS) required dependencies array. Dependencies are now only added conditionally based on the field types that are actually visible. ([#136](https://github.com/CMB2/CMB2/issues/136))
479
+ * **THIS IS A BREAKING CHANGE:** The `group` field type's `'show_on_cb'` property now receives the `CMB2_Field` object instance as an argument instead of the `CMB2` instance. If you're using the `'show_on_cb'` property for a `group` field, please adjust accordingly. _note: you can still retrieve the `CMB2` instance via the `cmb2_get_metabox` helper function._
480
  * New dynamic hook, `"cmb2_save_{$object_type}_fields_{$this->cmb_id}"`, to complement the existing `"cmb2_save_{$object_type}_fields"` hook.
 
481
  * German translation provided by Friedhelm Jost.
482
 
483
+ #### Bug Fixes
484
 
485
  * Fix incorrect repeatable group title number. ([#310](https://github.com/CMB2/CMB2/pull/310))
486
  * Fix obscure bug which prevented group field arguments from being passed to the sub-fields (like `show_names` and `context`).
487
  * Fixed occasional issue when adding a group row, the previous row's content would be cloned. ([#257](https://github.com/CMB2/CMB2/pull/257))
488
 
489
+ ### 2.0.6 - 2015-04-30
490
 
491
+ #### Enhancements
492
 
493
  * New metabox/form parameter, `show_on_cb`, allows you to conditionally display a cmb metabox/form via a callback. The `$cmb` object gets passed as a parameter to the callback. This complements the `'show_on_cb'` parameter that already exists for individual fields. Using this callback is similar to using the `'cmb2_show_on'` filter, but only applies to that specific metabox and it is recommended to use this callback instead as it minimizes th risk that your filter will affect other metaboxes.
494
  * Taxonomy types no longer save a value. The value getting saved was causing confusion and is not meant to be used. To use the saved taxonomy data, you need to use the WordPress term api, `get_the_terms `, `get_the_term_list`, etc.
503
  * an `'object_type'` parameter to explictly set that in the `$cmb` object.
504
  * an `'enqueue_js'` parameter to explicitly disable the CMB JS enqueue. This is handy if you're not planning on using any of the fields which require JS (like color/date pickers, wysiwyg, file, etc).
505
 
506
+ #### Bug Fixes
507
 
508
  * Fix issue with oembed fields in repeatable groups where changing video changed it for all fields in a group.
509
  * Fix empty arrays (like in the group field) saving as a value.
514
  * @type bool $repeat Whether current field is repeatable
515
  * @type bool $single Whether current field is a single database row
516
 
517
+ ### 2.0.5 - 2015-03-17
518
 
519
+ #### Bug Fixes
 
 
520
 
521
  * Fix grouped fields display (first field was being repeated), broken in 2.0.3.
522
 
523
+ ### 2.0.4 - 2015-03-16
524
 
525
+ #### Enhancements
526
 
527
  * `select`, `radio`, `radio_inline` field types now all accept the `'show_option_none'` field parameter. This parameter allows you to set the text to display for showing a 'no selection' option. Default will be `false`, which means a 'none' option will not be added. Set to `true` to use the default text, 'None', or specify another value, i.e. 'No selection'.
528
 
529
+ #### Bug Fixes
530
 
531
  * Fix back-compatibility when adding group field sub-fields via old array method (vs using the `CMB2:add_group_field()` method). Thanks to [norcross](https://github.com/norcross) for reporting.
532
  * Fix occasional jQuery issues with group-field indexes.
533
 
534
+ ### 2.0.3 - 2015-03-15
535
 
536
+ ##### Enhancements
537
 
538
  * New constant, `CMB2_DIR`, which stores the file-path to the CMB2 directory.
539
  * `text_date`, `text_time`, `text_date_timestamp`, `text_datetime_timestamp`, and ` text_datetime_timestamp_timezone` field types now take an arguments array so they can be extended by custom field types.
542
  * Added a callback option for the field default value. The callback gets passed an array of all the field parameters as the first argument, and the field object as the second argument. (which means you can get the post id using `$field->object_id`). ([#233](https://github.com/CMB2/CMB2/issues/233)).
543
  * New `CMB2::get_field()` method and `cmb2_get_field` helper function for retrieving a `CMB2_Field` object from the array of registered fields for a metabox.
544
  * New `CMB2::get_sanitized_values()` method and `cmb2_get_metabox_sanitized_values` helper function for retrieving sanitized values from an array of values (usually `$_POST` data).
545
+ * New `'save_fields'` metabox property that can be used to disable (by setting `'save_fields' => false`) the automatic saving of the fields when the form is submitted. These can be useful when you want to handle the saving of the fields yourself, or want to use submitted data for other purposes like generating new posts, or sending emails, etc.
546
 
547
+ ##### Bug Fixes
548
 
549
  * Fix commented out text_datetime_timestamp_timezone field registration example in `example-functions.php`. Props [cliffordp](https://github.com/cliffordp), ([#203](https://github.com/CMB2/CMB2/pull/203)).
550
  * Fix sidebar styling for money fields and fields with textareas. ([#234](https://github.com/CMB2/CMB2/issues/234))
551
  * Fix `CMB2_Sanitize` class to properly use the stripslashed value (which was added in [#162](https://github.com/CMB2/CMB2/pull/162) but never used). Props [dustyf](https://github.com/dustyf), ([#241](https://github.com/CMB2/CMB2/pull/241)).
552
 
553
+ ### 2.0.2 - 2015-02-15
554
 
555
+ ##### Enhancements
556
 
557
  * Use the more appropriate `add_meta_boxes` hook for hooking in metaboxes to post-edit screen. Thanks [@inspiraaz](https://github.com/inspiraaz) for reporting. ([#161](https://github.com/CMB2/CMB2/issues/161))
558
  * Add a `row_classes` field param which allows you to add additional classes to the cmb-row wrap. This parameter can take a string, or array, or can take a callback that returns a string or array. The callback will receive `$field_args` as the first argument, and the CMB2_Field `$field` object as the second argument. Reported/requested in [#68](https://github.com/CMB2/CMB2/issues/68).
563
  * New CMB2_Boxes method, [`CMB2_Boxes::remove()`](https://github.com/CMB2/CMB2-Snippet-Library/blob/master/filters-and-actions/cmb2_init_before_hookup-remove-cmb2-metabox.php).
564
  * When clicking on a file/image in the `file`, or `file_list` type, the media modal will open with that image selected. Props [johnsonpaul1014](https://github.com/johnsonpaul1014), ([#120](https://github.com/CMB2/CMB2/pull/120)).
565
 
566
+ ### 2.0.1 - 2015-02-02
 
567
 
568
  2.0.1 is the official version after beta, and includes all the changes from 2.0.0 (beta).
569
 
570
+ ### 2.0.0(beta) - 2014-08-16
571
 
572
  2.0.0 is the official version number for the transition to CMB2, and 2.0.1 is the official version after beta. It is a complete rewrite. Improvements and fixes are listed below. __Note: This release requires WordPress 3.8+__
573
+
574
+ ##### Enhancements
575
 
576
  * Converted `<table>` markup to more generic `<div>` markup to be more extensible and allow easier styling.
577
  * Much better handling and display of repeatable groups.
578
  * Entirely translation-ready [with full translations](http://wp-translations.org/project/cmb2/) in Spanish, French (Props [@fredserva](https://github.com/fredserva) - [#127](https://github.com/CMB2/CMB2/pull/127)), Finnish (Props [@onnimonni](https://github.com/onnimonni) - [#108](https://github.com/CMB2/CMB2/pull/108)), Swedish (Props [@EyesX](https://github.com/EyesX) - [#141](https://github.com/CMB2/CMB2/pull/141)), and English.
579
+ * Add cmb fields to new user page. Props [GioSensation](https://github.com/GioSensation), ([#616](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/616)).
580
  * Improved and additional [helper-functions](https://github.com/CMB2/CMB2/blob/master/includes/helper-functions.php).
581
  * Added new features and translation for datepicker. Props [kalicki](https://github.com/kalicki), ([#657](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/657)).
582
  * General code standards cleanup. Props [gregrickaby](https://github.com/gregrickaby), ([#17](https://github.com/CMB2/CMB2/pull/17) & others).
594
  * [New before/after dynamic form hooks](https://github.com/CMB2/CMB2/wiki/Tips-&-Tricks#using-the-dynamic-beforeafter-form-hooks).
595
  * Larger unit test coverage. Props to [@pmgarman](https://github.com/pmgarman) for assistance. ([#90](https://github.com/CMB2/CMB2/pull/90) and [#91](https://github.com/CMB2/CMB2/pull/91))
596
  * Added helper function to update an option. Props [mAAdhaTTah](https://github.com/mAAdhaTTah), ([#110](https://github.com/CMB2/CMB2/pull/110)).
597
+ * More JS hooks during repeat group shifting. Props [AlchemyUnited](https://github.com/AlchemyUnited), ([#125](https://github.com/CMB2/CMB2/pull/125)).
598
  * [New metabox config option for defaulting to closed](https://github.com/CMB2/CMB2/wiki/Tips-&-Tricks#setting-a-metabox-to-closed-by-default).
599
  * New hooks, [`cmb2_init`](https://github.com/CMB2/CMB2/wiki/Tips-&-Tricks#using-cmb2-helper-functions-and-cmb2_init) and `cmb2_init_{$cmb_id}`.
600
 
601
+ ##### Bug Fixes
602
 
603
  * New mechanism to ensure CMB2 only loads the most recent version of CMB2 in your system. This fixes the issue where another bundled version could conflict or take precendent over your up-to-date version.
604
  * Fix issue with field labels being hidden. Props [mustardBees](https://github.com/mustardBees), ([#48](https://github.com/CMB2/CMB2/pull/48)).
610
  * Fix metabox form not being returned to caller. Props [akshayagarwal](https://github.com/akshayagarwal), ([#145](https://github.com/CMB2/CMB2/pull/145)).
611
  * Run stripslashes before saving data, since WordPress forces magic quotes. Props [clifgriffin](https://github.com/clifgriffin), ([#162](https://github.com/CMB2/CMB2/pull/162)).
612
 
613
+ ### 1.3.0 - (never released, merged into CMB2)
614
+
615
+ ##### Enhancements
616
 
 
 
617
  * Localize Date, Time, and Color picker defaults so that they can be overridden via the `cmb_localized_data` filter. ([#528](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/issues/528))
618
  * Change third parameter for 'cmb_metabox_form' to be an args array. Optional arguments include `echo`, `form_format`, and `save_button`.
619
  * Add support for `show_option_none` argument for `taxonomy_select` and `taxonomy_radio` field types. Also adds the following filters: `cmb_all_or_nothing_types`, `cmb_taxonomy_select_default_value`, `cmb_taxonomy_select_{$this->_id()}_default_value`, `cmb_taxonomy_radio_{$this->_id()}_default_value`, `cmb_taxonomy_radio_default_value`. Props [@pmgarman](https://github.com/pmgarman), ([#569](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/569)).
620
  * Make the list items in the `file_list` field type drag & drop sortable. Props [twoelevenjay](https://github.com/twoelevenjay), ([#603](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/603)).
621
 
622
+ ##### Bug Fixes
623
 
624
  * Fixed typo in closing `</th>` tag. Props [@CivicImages](https://github.com/CivicImages). ([#616](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/issues/616))
625
 
626
+ ### 1.2.0 - 2014-05-03
627
+
628
+ ##### Enhancements
629
 
 
 
630
  * Add support for custom date/time formats. Props [@Scrent](https://github.com/Scrent). ([#506](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/506))
631
  * Simplify `wysiwyg` escaping and allow it to be overridden via the `escape_cb` parameter. ([#491](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/491))
632
  * Add a 'Select/Deselect all' button for the `multicheck` field type.
634
  * New field parameter, `show_on_cb`, allows you to conditionally display a field via a callback. ([#47](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/issues/47))
635
  * Unit testing (the beginning). Props [@brichards](https://github.com/brichards) and [@camdensegal](https://github.com/camdensegal).
636
 
637
+ ##### Bug Fixes
638
 
639
  * Fixed issue where remove file button wouldn't clear the url field. ([#514](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/issues/514))
640
  * `wysiwyg` fields now allow underscores. Fixes some wysiwyg display issues in WordPress 3.8. Props [@lswilson](https://github.com/lswilson). ([#491](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/issues/491))
645
 
646
 
647
 
648
+ ### 1.1.3 - 2014-04-07
649
 
650
+ ##### Bug Fixes
651
 
652
  * Update `cmb_get_field_value` function as it was passing the parameters to `cmb_get_field` in the wrong order.
653
  * Fix repeating fields not working correctly if meta key or prefix contained an integer. ([#503](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/issues/503))
654
 
655
+ ### 1.1.2 - 2014-04-05
656
 
657
+ ##### Bug Fixes
658
 
659
  * Fix issue with `cmb_Meta_Box_types.php` calling a missing method, `image_id_from_url`. ([#502](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/502))
660
 
661
 
662
+ ### 1.1.1 - 2014-04-03
663
 
664
+ ##### Bug Fixes
665
 
666
  * Radio button values were not showing saved value. ([#500](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/issues/500))
667
 
668
+ ### 1.1.0 - 2014-04-02
669
 
670
+ ##### Enhancements
671
 
672
  * [Repeatable groups](https://github.com/CMB2/CMB2/wiki/Field-Types#group)
673
  * Support for more fields to be repeatable, including oEmbed field, and date, time, and color picker fields, etc.
674
+ * Codebase has been revamped to be more modular and object-oriented.
675
  * New filter, `"cmb_{$element}_attributes" ` for modifying an element's attributes.
676
  * Every field now supports an `attributes` parameter that takes an array of attributes. [Read more](https://github.com/CMB2/CMB2/wiki/Field-Types#attributes).
677
  * Removed `cmb_std_filter` in favor of `cmb_default_filter`. **THIS IS A BREAKING CHANGE**
681
  * New JavaScript events, `cmb_add_row` and `cmb_remove_row` for hooking in and manipulating the new row's data.
682
  * New filter, `cmb_localized_data`, for modifiying localized data passed to the CMB JS.
683
 
684
+ ##### Bug Fixes
685
+ * Resolved occasional issue where only the first character of the label/value was displayed. props [@mustardBees](https://github.com/mustardBees), ([#486](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/486))
686
 
687
 
688
+ ### 1.0.2 - 2014-03-03
689
 
690
+ ##### Enhancements
691
 
692
  * Change the way the `'cmb_validate_{$field['type']}'` filter works.
693
  It is now passed a null value vs saved value. If null is returned, default sanitization will follow. **THIS IS A BREAKING CHANGE**. If you're already using this filter, take note.
697
  * Updated `file_list` images to be displayed horizontally instead of vertically. props [@IgorCode](https://github.com/IgorCode), ([#467](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/467))
698
  * Use `get_the_terms` where possible since the data is cached.
699
 
700
+ ##### Bug Fixes
701
 
702
  * Fixed wysiwyg escaping slashes. props [@gregrickaby](https://github.com/gregrickaby), ([#465](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/465))
703
  * Replaced `__DIR__`, as `dirname( __FILE__ )` is easier to maintain back-compatibility.
705
  * Fix undeclared JS variable. [@veelen](https://github.com/veelen), ([#451](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/451))
706
  * Fix `file_list` errors when removing all files and saving.
707
  * Set correct `object_id` to be used later in `cmb_show_on` filter. [@lauravaq](https://github.com/lauravaq), ([#445](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/445))
708
+ * Fix sanitization recursion memory issues.
709
 
710
+ ### 1.0.1 - 2014-01-24
711
 
712
+ ##### Enhancements
713
 
714
  * Now works with option pages and site settings. ([view example in wiki](https://github.com/CMB2/CMB2/wiki/Using-CMB-to-create-an-Admin-Theme-Options-Page))
715
  * two filters to override the setting and getting of options, `cmb_override_option_get_$option_key` and `cmb_override_option_save_$option_key` respectively. Handy for using plugins like [WP Large Options](https://github.com/voceconnect/wp-large-options/) ([also here](http://vip.wordpress.com/plugins/wp-large-options/)).
717
  * New sanitization class to sanitize data when saved.
718
  * New callback field parameter, `sanitization_cb`, for performing your own sanitization.
719
  * new `cmb_Meta_Box_types::esc()` method that handles escaping data for display.
720
+ * New callback field parameter, `escape_cb`, for performing your own data escaping, as well as a new filter, `"cmb_types_esc_{$field_type}"`.
721
 
722
+ ##### Bug Fixes
723
 
724
  * Fixed wysiwyg editor button padding. props [@corvannoorloos](https://github.com/corvannoorloos), ([#391](https://github.com/WebDevStudios/Custom-Metaboxes-and-Fields-for-WordPress/pull/391))
725
  * A few php < 5.3 errors were addressed.
728
  * Occasionally fields wouldn't save because of the admin show_on filter.
729
  * Smaller images loaded to the file field type will no longer be blown up larger than their dimensions.
730
 
731
+ ### 1.0.0 - 2013-11-30
732
 
733
  * Added `text_datetime_timestamp_timezone` type, a datetime combo field with an additional timezone drop down, props [@dessibelle](https://github.com/dessibelle)
734
  * Added `select_timezone` type, a standalone time zone select dropdown. The time zone select can be used with standalone `text_datetime_timestamp` if desired. Props [@dessibelle](https://github.com/dessibelle)
740
  * `text`, `text_small`, `text_medium`, `text_url`, `text_email`, & `text_money` fields now all have the option to be repeatable. Props [@jtsternberg](https://github.com/jtsternberg)
741
  * Custom metaboxes can now be added for user meta. Add them on the user add/edit screen, or in a custom user profile edit page on the front-end. Props [@tw2113](https://github.com/tw2113), [@jtsternberg](https://github.com/jtsternberg)
742
 
743
+ ### 0.9.4
744
 
745
  * Added field "before" and "after" options for each field. Solves issue with '$' not being the desired text_money monetary symbol, props [@GaryJones](https://github.com/GaryJones)
746
  * Added filter for 'std' default fallback value, props [@messenlehner](https://github.com/messenlehner)
749
  * Better file-extension check for images, props [@GhostToast](https://github.com/GhostToast)
750
  * New filter, `cmb_valid_img_types`, for whitelisted image file-extensions, props [@jtsternberg](https://github.com/jtsternberg)
751
 
752
+ ### 0.9.3
753
  * Added field type and field id classes to each cmb table row, props [@jtsternberg](https://github.com/jtsternberg)
754
 
755
+ ### 0.9.2
756
  * Added post type comparison to prevent storing null values for taxonomy selectors, props [@norcross](https://github.com/norcross)
757
 
758
+ ### 0.9.1
759
  * Added `oEmbed` field type with ajax display, props [@jtsternberg](https://github.com/jtsternberg)
760
 
761
+ ### 0.9
762
  * __Note: This release requires WordPress 3.3+__
763
  * Cleaned up scripts being queued, props [@jaredatch](https://github.com/jaredatch)
764
  * Cleaned up and reorganized jQuery, props [@GaryJones](https://github.com/GaryJones)
775
  * Added color picker, props [@jaredatch](https://github.com/jaredatch)
776
  * Added readme.md markdown file, props [@jaredatch](https://github.com/jaredatch)
777
 
778
+ ### 0.8 - 2012-01-19
779
  * Added jQuery timepicker, props [@norcross](https://github.com/norcross)
780
  * Added 'raw' textarea to convert special HTML entities back to characters, props [@norcross](https://github.com/norcross)
781
  * Added missing examples on example-functions.php, props [@norcross](https://github.com/norcross)
782
 
783
+ ### 0.7
784
  * Added the new wp_editor() function for the WYSIWYG dialog box, props [@jcpry](https://github.com/jcpry)
785
  * Created 'cmb_show_on' filter to define your own Show On Filters, props [@billerickson](https://github.com/billerickson)
786
  * Added page template show_on filter, props [@billerickson](https://github.com/billerickson)
787
  * Improvements to the 'file' field type, props [@randyhoyt](https://github.com/randyhoyt)
788
  * Allow for default values on 'radio' and 'radio_inline' field types, props [@billerickson](https://github.com/billerickson)
789
 
790
+ ### 0.6.1
791
  * Enabled the ability to define your own custom field types (issue #28). props [@randyhoyt](https://github.com/randyhoyt)
792
 
793
+ ### 0.6
794
  * Added the ability to limit metaboxes to certain posts by id. props [@billerickson](https://github.com/billerickson)
795
 
796
+ ### 0.5
797
  * Fixed define to prevent notices. props [@destos](https://github.com/destos)
798
  * Added text_date_timestap option. props [@andrewyno](https://github.com/andrewyno)
799
  * Fixed WYSIWYG paragraph breaking/spacing bug. props [@wpsmith](https://github.com/wpsmith)
801
  * Fixed script causing the dashboard widgets to not be collapsible.
802
  * Fixed various spacing and whitespace inconsistencies
803
 
804
+ ### 0.4
805
  * Think we have a release that is mostly working. We'll say the initial release :)
806
+
807
+ == Upgrade Notice ==
808
+
809
+ ### 2.3.0
810
+
811
+ #### Enhancements
812
+
813
+ * Updated Italian translation. Props [@Mte90](https://github.com/Mte90) ([#1067](https://github.com/CMB2/CMB2/issues/1067)).
814
+ * Starting with this release, we are fully switching to the more communicative and standard [Semantic Versioning](https://semver.org/). ([#1061](https://github.com/CMB2/CMB2/issues/1061)).
815
+
816
+ #### Bug Fixes
817
+
818
+ * Update for compatibility with PHP 7.2 (e.g. fixes `Fatal error: Declaration of CMB2_Type_Colorpicker::render() must be compatible with CMB2_Type_Text::render($args = Array)...`). ([#1070](https://github.com/CMB2/CMB2/issues/1070), [#1074](https://github.com/CMB2/CMB2/issues/1074), [#1075](https://github.com/CMB2/CMB2/issues/1075)).
includes/vendor/composer/ClassLoader.php DELETED
@@ -1,445 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Composer.
5
- *
6
- * (c) Nils Adermann <naderman@naderman.de>
7
- * Jordi Boggiano <j.boggiano@seld.be>
8
- *
9
- * For the full copyright and license information, please view the LICENSE
10
- * file that was distributed with this source code.
11
- */
12
-
13
- namespace Composer\Autoload;
14
-
15
- /**
16
- * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
17
- *
18
- * $loader = new \Composer\Autoload\ClassLoader();
19
- *
20
- * // register classes with namespaces
21
- * $loader->add('Symfony\Component', __DIR__.'/component');
22
- * $loader->add('Symfony', __DIR__.'/framework');
23
- *
24
- * // activate the autoloader
25
- * $loader->register();
26
- *
27
- * // to enable searching the include path (eg. for PEAR packages)
28
- * $loader->setUseIncludePath(true);
29
- *
30
- * In this example, if you try to use a class in the Symfony\Component
31
- * namespace or one of its children (Symfony\Component\Console for instance),
32
- * the autoloader will first look for the class under the component/
33
- * directory, and it will then fallback to the framework/ directory if not
34
- * found before giving up.
35
- *
36
- * This class is loosely based on the Symfony UniversalClassLoader.
37
- *
38
- * @author Fabien Potencier <fabien@symfony.com>
39
- * @author Jordi Boggiano <j.boggiano@seld.be>
40
- * @see http://www.php-fig.org/psr/psr-0/
41
- * @see http://www.php-fig.org/psr/psr-4/
42
- */
43
- class ClassLoader
44
- {
45
- // PSR-4
46
- private $prefixLengthsPsr4 = array();
47
- private $prefixDirsPsr4 = array();
48
- private $fallbackDirsPsr4 = array();
49
-
50
- // PSR-0
51
- private $prefixesPsr0 = array();
52
- private $fallbackDirsPsr0 = array();
53
-
54
- private $useIncludePath = false;
55
- private $classMap = array();
56
- private $classMapAuthoritative = false;
57
- private $missingClasses = array();
58
- private $apcuPrefix;
59
-
60
- public function getPrefixes()
61
- {
62
- if (!empty($this->prefixesPsr0)) {
63
- return call_user_func_array('array_merge', $this->prefixesPsr0);
64
- }
65
-
66
- return array();
67
- }
68
-
69
- public function getPrefixesPsr4()
70
- {
71
- return $this->prefixDirsPsr4;
72
- }
73
-
74
- public function getFallbackDirs()
75
- {
76
- return $this->fallbackDirsPsr0;
77
- }
78
-
79
- public function getFallbackDirsPsr4()
80
- {
81
- return $this->fallbackDirsPsr4;
82
- }
83
-
84
- public function getClassMap()
85
- {
86
- return $this->classMap;
87
- }
88
-
89
- /**
90
- * @param array $classMap Class to filename map
91
- */
92
- public function addClassMap(array $classMap)
93
- {
94
- if ($this->classMap) {
95
- $this->classMap = array_merge($this->classMap, $classMap);
96
- } else {
97
- $this->classMap = $classMap;
98
- }
99
- }
100
-
101
- /**
102
- * Registers a set of PSR-0 directories for a given prefix, either
103
- * appending or prepending to the ones previously set for this prefix.
104
- *
105
- * @param string $prefix The prefix
106
- * @param array|string $paths The PSR-0 root directories
107
- * @param bool $prepend Whether to prepend the directories
108
- */
109
- public function add($prefix, $paths, $prepend = false)
110
- {
111
- if (!$prefix) {
112
- if ($prepend) {
113
- $this->fallbackDirsPsr0 = array_merge(
114
- (array) $paths,
115
- $this->fallbackDirsPsr0
116
- );
117
- } else {
118
- $this->fallbackDirsPsr0 = array_merge(
119
- $this->fallbackDirsPsr0,
120
- (array) $paths
121
- );
122
- }
123
-
124
- return;
125
- }
126
-
127
- $first = $prefix[0];
128
- if (!isset($this->prefixesPsr0[$first][$prefix])) {
129
- $this->prefixesPsr0[$first][$prefix] = (array) $paths;
130
-
131
- return;
132
- }
133
- if ($prepend) {
134
- $this->prefixesPsr0[$first][$prefix] = array_merge(
135
- (array) $paths,
136
- $this->prefixesPsr0[$first][$prefix]
137
- );
138
- } else {
139
- $this->prefixesPsr0[$first][$prefix] = array_merge(
140
- $this->prefixesPsr0[$first][$prefix],
141
- (array) $paths
142
- );
143
- }
144
- }
145
-
146
- /**
147
- * Registers a set of PSR-4 directories for a given namespace, either
148
- * appending or prepending to the ones previously set for this namespace.
149
- *
150
- * @param string $prefix The prefix/namespace, with trailing '\\'
151
- * @param array|string $paths The PSR-4 base directories
152
- * @param bool $prepend Whether to prepend the directories
153
- *
154
- * @throws \InvalidArgumentException
155
- */
156
- public function addPsr4($prefix, $paths, $prepend = false)
157
- {
158
- if (!$prefix) {
159
- // Register directories for the root namespace.
160
- if ($prepend) {
161
- $this->fallbackDirsPsr4 = array_merge(
162
- (array) $paths,
163
- $this->fallbackDirsPsr4
164
- );
165
- } else {
166
- $this->fallbackDirsPsr4 = array_merge(
167
- $this->fallbackDirsPsr4,
168
- (array) $paths
169
- );
170
- }
171
- } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
172
- // Register directories for a new namespace.
173
- $length = strlen($prefix);
174
- if ('\\' !== $prefix[$length - 1]) {
175
- throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
176
- }
177
- $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
178
- $this->prefixDirsPsr4[$prefix] = (array) $paths;
179
- } elseif ($prepend) {
180
- // Prepend directories for an already registered namespace.
181
- $this->prefixDirsPsr4[$prefix] = array_merge(
182
- (array) $paths,
183
- $this->prefixDirsPsr4[$prefix]
184
- );
185
- } else {
186
- // Append directories for an already registered namespace.
187
- $this->prefixDirsPsr4[$prefix] = array_merge(
188
- $this->prefixDirsPsr4[$prefix],
189
- (array) $paths
190
- );
191
- }
192
- }
193
-
194
- /**
195
- * Registers a set of PSR-0 directories for a given prefix,
196
- * replacing any others previously set for this prefix.
197
- *
198
- * @param string $prefix The prefix
199
- * @param array|string $paths The PSR-0 base directories
200
- */
201
- public function set($prefix, $paths)
202
- {
203
- if (!$prefix) {
204
- $this->fallbackDirsPsr0 = (array) $paths;
205
- } else {
206
- $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
207
- }
208
- }
209
-
210
- /**
211
- * Registers a set of PSR-4 directories for a given namespace,
212
- * replacing any others previously set for this namespace.
213
- *
214
- * @param string $prefix The prefix/namespace, with trailing '\\'
215
- * @param array|string $paths The PSR-4 base directories
216
- *
217
- * @throws \InvalidArgumentException
218
- */
219
- public function setPsr4($prefix, $paths)
220
- {
221
- if (!$prefix) {
222
- $this->fallbackDirsPsr4 = (array) $paths;
223
- } else {
224
- $length = strlen($prefix);
225
- if ('\\' !== $prefix[$length - 1]) {
226
- throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
227
- }
228
- $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
229
- $this->prefixDirsPsr4[$prefix] = (array) $paths;
230
- }
231
- }
232
-
233
- /**
234
- * Turns on searching the include path for class files.
235
- *
236
- * @param bool $useIncludePath
237
- */
238
- public function setUseIncludePath($useIncludePath)
239
- {
240
- $this->useIncludePath = $useIncludePath;
241
- }
242
-
243
- /**
244
- * Can be used to check if the autoloader uses the include path to check
245
- * for classes.
246
- *
247
- * @return bool
248
- */
249
- public function getUseIncludePath()
250
- {
251
- return $this->useIncludePath;
252
- }
253
-
254
- /**
255
- * Turns off searching the prefix and fallback directories for classes
256
- * that have not been registered with the class map.
257
- *
258
- * @param bool $classMapAuthoritative
259
- */
260
- public function setClassMapAuthoritative($classMapAuthoritative)
261
- {
262
- $this->classMapAuthoritative = $classMapAuthoritative;
263
- }
264
-
265
- /**
266
- * Should class lookup fail if not found in the current class map?
267
- *
268
- * @return bool
269
- */
270
- public function isClassMapAuthoritative()
271
- {
272
- return $this->classMapAuthoritative;
273
- }
274
-
275
- /**
276
- * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
277
- *
278
- * @param string|null $apcuPrefix
279
- */
280
- public function setApcuPrefix($apcuPrefix)
281
- {
282
- $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
283
- }
284
-
285
- /**
286
- * The APCu prefix in use, or null if APCu caching is not enabled.
287
- *
288
- * @return string|null
289
- */
290
- public function getApcuPrefix()
291
- {
292
- return $this->apcuPrefix;
293
- }
294
-
295
- /**
296
- * Registers this instance as an autoloader.
297
- *
298
- * @param bool $prepend Whether to prepend the autoloader or not
299
- */
300
- public function register($prepend = false)
301
- {
302
- spl_autoload_register(array($this, 'loadClass'), true, $prepend);
303
- }
304
-
305
- /**
306
- * Unregisters this instance as an autoloader.
307
- */
308
- public function unregister()
309
- {
310
- spl_autoload_unregister(array($this, 'loadClass'));
311
- }
312
-
313
- /**
314
- * Loads the given class or interface.
315
- *
316
- * @param string $class The name of the class
317
- * @return bool|null True if loaded, null otherwise
318
- */
319
- public function loadClass($class)
320
- {
321
- if ($file = $this->findFile($class)) {
322
- includeFile($file);
323
-
324
- return true;
325
- }
326
- }
327
-
328
- /**
329
- * Finds the path to the file where the class is defined.
330
- *
331
- * @param string $class The name of the class
332
- *
333
- * @return string|false The path if found, false otherwise
334
- */
335
- public function findFile($class)
336
- {
337
- // class map lookup
338
- if (isset($this->classMap[$class])) {
339
- return $this->classMap[$class];
340
- }
341
- if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
342
- return false;
343
- }
344
- if (null !== $this->apcuPrefix) {
345
- $file = apcu_fetch($this->apcuPrefix.$class, $hit);
346
- if ($hit) {
347
- return $file;
348
- }
349
- }
350
-
351
- $file = $this->findFileWithExtension($class, '.php');
352
-
353
- // Search for Hack files if we are running on HHVM
354
- if (false === $file && defined('HHVM_VERSION')) {
355
- $file = $this->findFileWithExtension($class, '.hh');
356
- }
357
-
358
- if (null !== $this->apcuPrefix) {
359
- apcu_add($this->apcuPrefix.$class, $file);
360
- }
361
-
362
- if (false === $file) {
363
- // Remember that this class does not exist.
364
- $this->missingClasses[$class] = true;
365
- }
366
-
367
- return $file;
368
- }
369
-
370
- private function findFileWithExtension($class, $ext)
371
- {
372
- // PSR-4 lookup
373
- $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
374
-
375
- $first = $class[0];
376
- if (isset($this->prefixLengthsPsr4[$first])) {
377
- $subPath = $class;
378
- while (false !== $lastPos = strrpos($subPath, '\\')) {
379
- $subPath = substr($subPath, 0, $lastPos);
380
- $search = $subPath.'\\';
381
- if (isset($this->prefixDirsPsr4[$search])) {
382
- foreach ($this->prefixDirsPsr4[$search] as $dir) {
383
- $length = $this->prefixLengthsPsr4[$first][$search];
384
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
385
- return $file;
386
- }
387
- }
388
- }
389
- }
390
- }
391
-
392
- // PSR-4 fallback dirs
393
- foreach ($this->fallbackDirsPsr4 as $dir) {
394
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
395
- return $file;
396
- }
397
- }
398
-
399
- // PSR-0 lookup
400
- if (false !== $pos = strrpos($class, '\\')) {
401
- // namespaced class name
402
- $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
403
- . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
404
- } else {
405
- // PEAR-like class name
406
- $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
407
- }
408
-
409
- if (isset($this->prefixesPsr0[$first])) {
410
- foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
411
- if (0 === strpos($class, $prefix)) {
412
- foreach ($dirs as $dir) {
413
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
414
- return $file;
415
- }
416
- }
417
- }
418
- }
419
- }
420
-
421
- // PSR-0 fallback dirs
422
- foreach ($this->fallbackDirsPsr0 as $dir) {
423
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
424
- return $file;
425
- }
426
- }
427
-
428
- // PSR-0 include paths.
429
- if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
430
- return $file;
431
- }
432
-
433
- return false;
434
- }
435
- }
436
-
437
- /**
438
- * Scope isolated include.
439
- *
440
- * Prevents access to $this/self from included files.
441
- */
442
- function includeFile($file)
443
- {
444
- include $file;
445
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/LICENSE DELETED
@@ -1,21 +0,0 @@
1
-
2
- Copyright (c) Nils Adermann, Jordi Boggiano
3
-
4
- Permission is hereby granted, free of charge, to any person obtaining a copy
5
- of this software and associated documentation files (the "Software"), to deal
6
- in the Software without restriction, including without limitation the rights
7
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- copies of the Software, and to permit persons to whom the Software is furnished
9
- to do so, subject to the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be included in all
12
- copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- THE SOFTWARE.
21
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/autoload_classmap.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
-
3
- // autoload_classmap.php @generated by Composer
4
-
5
- $vendorDir = dirname(dirname(__FILE__));
6
- $baseDir = dirname(dirname($vendorDir));
7
-
8
- return array(
9
- );
 
 
 
 
 
 
 
 
 
includes/vendor/composer/autoload_namespaces.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
-
3
- // autoload_namespaces.php @generated by Composer
4
-
5
- $vendorDir = dirname(dirname(__FILE__));
6
- $baseDir = dirname(dirname($vendorDir));
7
-
8
- return array(
9
- 'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src'),
10
- );
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/autoload_psr4.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
-
3
- // autoload_psr4.php @generated by Composer
4
-
5
- $vendorDir = dirname(dirname(__FILE__));
6
- $baseDir = dirname(dirname($vendorDir));
7
-
8
- return array(
9
- );
 
 
 
 
 
 
 
 
 
includes/vendor/composer/autoload_real.php DELETED
@@ -1,52 +0,0 @@
1
- <?php
2
-
3
- // autoload_real.php @generated by Composer
4
-
5
- class ComposerAutoloaderInit7cea7511504eb01ba01aef4ad46e80c8
6
- {
7
- private static $loader;
8
-
9
- public static function loadClassLoader($class)
10
- {
11
- if ('Composer\Autoload\ClassLoader' === $class) {
12
- require __DIR__ . '/ClassLoader.php';
13
- }
14
- }
15
-
16
- public static function getLoader()
17
- {
18
- if (null !== self::$loader) {
19
- return self::$loader;
20
- }
21
-
22
- spl_autoload_register(array('ComposerAutoloaderInit7cea7511504eb01ba01aef4ad46e80c8', 'loadClassLoader'), true, true);
23
- self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit7cea7511504eb01ba01aef4ad46e80c8', 'loadClassLoader'));
25
-
26
- $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
- if ($useStaticLoader) {
28
- require_once __DIR__ . '/autoload_static.php';
29
-
30
- call_user_func(\Composer\Autoload\ComposerStaticInit7cea7511504eb01ba01aef4ad46e80c8::getInitializer($loader));
31
- } else {
32
- $map = require __DIR__ . '/autoload_namespaces.php';
33
- foreach ($map as $namespace => $path) {
34
- $loader->set($namespace, $path);
35
- }
36
-
37
- $map = require __DIR__ . '/autoload_psr4.php';
38
- foreach ($map as $namespace => $path) {
39
- $loader->setPsr4($namespace, $path);
40
- }
41
-
42
- $classMap = require __DIR__ . '/autoload_classmap.php';
43
- if ($classMap) {
44
- $loader->addClassMap($classMap);
45
- }
46
- }
47
-
48
- $loader->register(true);
49
-
50
- return $loader;
51
- }
52
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/autoload_static.php DELETED
@@ -1,26 +0,0 @@
1
- <?php
2
-
3
- // autoload_static.php @generated by Composer
4
-
5
- namespace Composer\Autoload;
6
-
7
- class ComposerStaticInit7cea7511504eb01ba01aef4ad46e80c8
8
- {
9
- public static $prefixesPsr0 = array (
10
- 'C' =>
11
- array (
12
- 'Composer\\Installers\\' =>
13
- array (
14
- 0 => __DIR__ . '/..' . '/composer/installers/src',
15
- ),
16
- ),
17
- );
18
-
19
- public static function getInitializer(ClassLoader $loader)
20
- {
21
- return \Closure::bind(function () use ($loader) {
22
- $loader->prefixesPsr0 = ComposerStaticInit7cea7511504eb01ba01aef4ad46e80c8::$prefixesPsr0;
23
-
24
- }, null, ClassLoader::class);
25
- }
26
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installed.json DELETED
@@ -1,235 +0,0 @@
1
- [
2
- {
3
- "name": "composer/installers",
4
- "version": "v1.0.12",
5
- "version_normalized": "1.0.12.0",
6
- "source": {
7
- "type": "git",
8
- "url": "https://github.com/composer/installers.git",
9
- "reference": "4127333b03e8b4c08d081958548aae5419d1a2fa"
10
- },
11
- "dist": {
12
- "type": "zip",
13
- "url": "https://api.github.com/repos/composer/installers/zipball/4127333b03e8b4c08d081958548aae5419d1a2fa",
14
- "reference": "4127333b03e8b4c08d081958548aae5419d1a2fa",
15
- "shasum": ""
16
- },
17
- "replace": {
18
- "shama/baton": "*"
19
- },
20
- "require-dev": {
21
- "composer/composer": "1.0.*@dev",
22
- "phpunit/phpunit": "3.7.*"
23
- },
24
- "time": "2014-02-24T04:21:34+00:00",
25
- "type": "composer-installer",
26
- "extra": {
27
- "class": "Composer\\Installers\\Installer",
28
- "branch-alias": {
29
- "dev-master": "1.0-dev"
30
- }
31
- },
32
- "installation-source": "dist",
33
- "autoload": {
34
- "psr-0": {
35
- "Composer\\Installers\\": "src/"
36
- }
37
- },
38
- "notification-url": "https://packagist.org/downloads/",
39
- "license": [
40
- "MIT"
41
- ],
42
- "authors": [
43
- {
44
- "name": "Kyle Robinson Young",
45
- "email": "kyle@dontkry.com",
46
- "homepage": "https://github.com/shama",
47
- "role": "Developer"
48
- }
49
- ],
50
- "description": "A multi-framework Composer library installer",
51
- "homepage": "http://composer.github.com/installers/",
52
- "keywords": [
53
- "Craft",
54
- "Hurad",
55
- "MODX Evo",
56
- "OXID",
57
- "WolfCMS",
58
- "agl",
59
- "annotatecms",
60
- "cakephp",
61
- "codeigniter",
62
- "concrete5",
63
- "croogo",
64
- "drupal",
65
- "elgg",
66
- "fuelphp",
67
- "installer",
68
- "joomla",
69
- "kohana",
70
- "laravel",
71
- "lithium",
72
- "magento",
73
- "mako",
74
- "mediawiki",
75
- "modulework",
76
- "phpbb",
77
- "piwik",
78
- "ppi",
79
- "shopware",
80
- "silverstripe",
81
- "symfony",
82
- "typo3",
83
- "wordpress",
84
- "zend",
85
- "zikula"
86
- ]
87
- },
88
- {
89
- "name": "stackadroit/cmb2-extensions",
90
- "version": "dev-master",
91
- "version_normalized": "9999999-dev",
92
- "source": {
93
- "type": "git",
94
- "url": "https://github.com/stackadroit/cmb2-extensions.git",
95
- "reference": "8b713418fd46ec016ea1680599231c6a06c745af"
96
- },
97
- "dist": {
98
- "type": "zip",
99
- "url": "https://api.github.com/repos/stackadroit/cmb2-extensions/zipball/8b713418fd46ec016ea1680599231c6a06c745af",
100
- "reference": "8b713418fd46ec016ea1680599231c6a06c745af",
101
- "shasum": ""
102
- },
103
- "require": {
104
- "php": ">5.2.4"
105
- },
106
- "require-dev": {
107
- "phpunit/phpunit": "3.7.*"
108
- },
109
- "suggest": {
110
- "composer/installers": "~1.0"
111
- },
112
- "time": "2017-10-21T20:55:08+00:00",
113
- "type": "wordpress-plugin",
114
- "installation-source": "source",
115
- "notification-url": "https://packagist.org/downloads/",
116
- "license": [
117
- "GPL-3.0+"
118
- ],
119
- "authors": [
120
- {
121
- "name": "Praneeth Polu",
122
- "email": "contact@polupraneeth.me",
123
- "homepage": "https://github.com/polupraneeth/",
124
- "role": "Developer"
125
- },
126
- {
127
- "name": "Team StackThemes",
128
- "email": "stackthemes@stackadroit.com",
129
- "homepage": "https://github.com/stackadroit",
130
- "role": "Developer"
131
- }
132
- ],
133
- "description": "This is a CMB2 Extension repository which help modify the default behavior of CMB2 and extends it's functionality.",
134
- "homepage": "https://github.com/stackadroit/cmb2-extensions",
135
- "keywords": [
136
- "CMB2",
137
- "metabox",
138
- "plugin",
139
- "wordpress"
140
- ]
141
- },
142
- {
143
- "name": "webdevstudios/cmb2",
144
- "version": "v2.2.5.3",
145
- "version_normalized": "2.2.5.3",
146
- "source": {
147
- "type": "git",
148
- "url": "https://github.com/CMB2/CMB2.git",
149
- "reference": "5c9bdb6e99e17e4dad71ebbc68dab5def3c64e12"
150
- },
151
- "dist": {
152
- "type": "zip",
153
- "url": "https://api.github.com/repos/CMB2/CMB2/zipball/5c9bdb6e99e17e4dad71ebbc68dab5def3c64e12",
154
- "reference": "5c9bdb6e99e17e4dad71ebbc68dab5def3c64e12",
155
- "shasum": ""
156
- },
157
- "require": {
158
- "php": ">5.2.4"
159
- },
160
- "require-dev": {
161
- "phpunit/phpunit": "3.7.*"
162
- },
163
- "suggest": {
164
- "composer/installers": "~1.0"
165
- },
166
- "time": "2017-08-22T18:14:34+00:00",
167
- "type": "wordpress-plugin",
168
- "installation-source": "dist",
169
- "notification-url": "https://packagist.org/downloads/",
170
- "license": [
171
- "GPL-2.0+"
172
- ],
173
- "authors": [
174
- {
175
- "name": "WebDevStudios",
176
- "email": "contact@webdevstudios.com",
177
- "homepage": "https://github.com/WebDevStudios",
178
- "role": "Developer"
179
- },
180
- {
181
- "name": "Justin Sternberg",
182
- "email": "justin@dsgnwrks.pro",
183
- "homepage": "https://dsgnwrks.pro",
184
- "role": "Developer"
185
- },
186
- {
187
- "name": "Zao",
188
- "email": "office@zao.com",
189
- "homepage": "http://zao.is",
190
- "role": "Developer"
191
- }
192
- ],
193
- "description": "CMB2 is a metabox, custom fields, and forms library for WordPress that will blow your mind.",
194
- "homepage": "https://github.com/CMB2/CMB2",
195
- "keywords": [
196
- "metabox",
197
- "plugin",
198
- "wordpress"
199
- ]
200
- },
201
- {
202
- "name": "freemius/wordpress-sdk",
203
- "version": "dev-master",
204
- "version_normalized": "9999999-dev",
205
- "source": {
206
- "type": "git",
207
- "url": "https://github.com/Freemius/wordpress-sdk.git",
208
- "reference": "1992b7ffd07d5a6c169a4fa587aa335a6ef78021"
209
- },
210
- "dist": {
211
- "type": "zip",
212
- "url": "https://api.github.com/repos/Freemius/wordpress-sdk/zipball/1992b7ffd07d5a6c169a4fa587aa335a6ef78021",
213
- "reference": "1992b7ffd07d5a6c169a4fa587aa335a6ef78021",
214
- "shasum": ""
215
- },
216
- "require": {
217
- "php": ">=5.2"
218
- },
219
- "time": "2017-08-31T07:35:00+00:00",
220
- "type": "library",
221
- "installation-source": "source",
222
- "notification-url": "https://packagist.org/downloads/",
223
- "license": [
224
- "GPL-2.0+"
225
- ],
226
- "description": "Freemius WordPress SDK",
227
- "homepage": "https://freemius.com",
228
- "keywords": [
229
- "freemius",
230
- "plugin",
231
- "sdk",
232
- "wordpress"
233
- ]
234
- }
235
- ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/LICENSE DELETED
@@ -1,19 +0,0 @@
1
- Copyright (c) 2012 Kyle Robinson Young
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining a copy
4
- of this software and associated documentation files (the "Software"), to deal
5
- in the Software without restriction, including without limitation the rights
6
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- copies of the Software, and to permit persons to whom the Software is furnished
8
- to do so, subject to the following conditions:
9
-
10
- The above copyright notice and this permission notice shall be included in all
11
- copies or substantial portions of the Software.
12
-
13
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- THE SOFTWARE.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/README.md DELETED
@@ -1,172 +0,0 @@
1
- # A Multi-Framework [Composer](http://getcomposer.org) Library Installer
2
-
3
- [![Build Status](https://secure.travis-ci.org/composer/installers.png)](http://travis-ci.org/composer/installers)
4
-
5
- This is for PHP package authors to require in their `composer.json`. It will
6
- install their package to the correct location based on the specified package
7
- type.
8
-
9
- The goal of `installers` is to be a simple package type to install path map.
10
- Users can also customize the install path per package and package authors can
11
- modify the package name upon installing.
12
-
13
- `installers` isn't intended on replacing all custom installers. If your
14
- package requires special installation handling then by all means, create a
15
- custom installer to handle it.
16
-
17
- **Natively Supported Frameworks**:
18
-
19
- The following frameworks natively work with Composer and will be
20
- installed to the default `vendor` directory. `composer/installers`
21
- is not needed to install packages with these frameworks:
22
-
23
- * Aura
24
- * Symfony2
25
- * Yii
26
- * Yii2
27
-
28
- **Current Supported Package Types**:
29
-
30
- > Stable types are marked as **bold**, this means that installation paths
31
- > for those type will not be changed. Any adjustment for those types would
32
- > require creation of brand new type that will cover required changes.
33
-
34
- | Framework | Types
35
- | --------- | -----
36
- | AGL | `agl-module`
37
- | AnnotateCms | `annotatecms-module`<br>`annotatecms-component`<br>`annotatecms-service`
38
- | CakePHP 2+ | **`cakephp-plugin`**
39
- | CodeIgniter | `codeigniter-library`<br>`codeigniter-third-party`<br>`codeigniter-module`
40
- | concrete5 | `concrete5-block`<br>`concrete5-package`<br>`concrete5-theme`
41
- | Craft | `craft-plugin`
42
- | Croogo | `croogo-plugin`<br>`croogo-theme`
43
- | Drupal | <b>`drupal-module`<br>`drupal-theme`</b><br>`drupal-profile`<br>`drupal-drush`
44
- | Elgg | `elgg-plugin`
45
- | FuelPHP v1.x | `fuel-module`<br>`fuel-package`<br/>`fuel-theme`
46
- | Hurad | `hurad-plugin`<br>`hurad-theme`
47
- | Joomla | `joomla-component`<br>`joomla-module`<br>`joomla-template`<br>`joomla-plugin`<br>`joomla-library`
48
- | Kohana | **`kohana-module`**
49
- | Laravel | `laravel-library`
50
- | Lithium | **`lithium-library`<br>`lithium-source`**
51
- | Magento | `magento-library`<br>`magento-skin`<br>`magento-theme`
52
- | Mako | `mako-package`
53
- | MODX Evo | `modxevo-snippet`<br>`modxevo-plugin`<br>`modxevo-module`<br>`modxevo-template`<br>`modxevo-lib`
54
- | MediaWiki | `mediawiki-extension`
55
- | OXID | `oxid-module`
56
- | MODULEWork | `modulework-module`
57
- | Piwik | `piwik-plugin`
58
- | phpBB | `phpbb-extension`<br>`phpbb-style`<br>`phpbb-language`
59
- | PPI | **`ppi-module`**
60
- | shopware | `shopware-backend-plugin`<br/>`shopware-core-plugin`<br/>`shopware-frontend-plugin`<br/>`shopware-theme`
61
- | SilverStripe | `silverstripe-module`<br>`silverstripe-theme`
62
- | symfony1 | **`symfony1-plugin`**
63
- | TYPO3 Flow | `typo3-flow-package`<br>`typo3-flow-framework`<br>`typo3-flow-plugin`<br>`typo3-flow-site`<br>`typo3-flow-boilerplate`<br>`typo3-flow-build`
64
- | TYPO3 CMS | `typo3-cms-extension`
65
- | Wolf CMS | `wolfcms-plugin`
66
- | WordPress | <b>`wordpress-plugin`<br>`wordpress-theme`</b><br>`wordpress-muplugin`
67
- | Zend | `zend-library`<br>`zend-extra`<br>`zend-module`
68
- | Zikula | `zikula-module`<br>`zikula-theme`
69
-
70
- ## Example `composer.json` File
71
-
72
- This is an example for a CakePHP plugin. The only important parts to set in your
73
- composer.json file are `"type": "cakephp-plugin"` which describes what your
74
- package is and `"require": { "composer/installers": "~1.0" }` which tells composer
75
- to load the custom installers.
76
-
77
- ```json
78
- {
79
- "name": "you/ftp",
80
- "type": "cakephp-plugin",
81
- "require": {
82
- "composer/installers": "~1.0"
83
- }
84
- }
85
- ```
86
-
87
- This would install your package to the `Plugin/Ftp/` folder of a CakePHP app
88
- when a user runs `php composer.phar install`.
89
-
90
- So submit your packages to [packagist.org](http://packagist.org)!
91
-
92
- ## Custom Install Paths
93
-
94
- If you are consuming a package that uses the `composer/installers` you can
95
- override the install path with the following extra in your `composer.json`:
96
-
97
- ```json
98
- {
99
- "extra": {
100
- "installer-paths": {
101
- "your/custom/path/{$name}/": ["shama/ftp", "vendor/package"]
102
- }
103
- }
104
- }
105
- ```
106
-
107
- A package type can have a custom installation path with a `type:` prefix.
108
-
109
- ``` json
110
- {
111
- "extra": {
112
- "installer-paths": {
113
- "your/custom/path/{$name}/": ["type:wordpress-plugin"]
114
- }
115
- }
116
- }
117
- ```
118
-
119
- This would use your custom path for each of the listed packages. The available
120
- variables to use in your paths are: `{$name}`, `{$vendor}`, `{$type}`.
121
-
122
- ## Custom Install Names
123
-
124
- If you're a package author and need your package to be named differently when
125
- installed consider using the `installer-name` extra.
126
-
127
- For example you have a package named `shama/cakephp-ftp` with the type
128
- `cakephp-plugin`. Installing with `composer/installers` would install to the
129
- path `Plugin/CakephpFtp`. Due to the strict naming conventions, you as a
130
- package author actually need the package to be named and installed to
131
- `Plugin/Ftp`. Using the following config within your **package** `composer.json`
132
- will allow this:
133
-
134
- ```json
135
- {
136
- "name": "shama/cakephp-ftp",
137
- "type": "cakephp-plugin",
138
- "extra": {
139
- "installer-name": "Ftp"
140
- }
141
- }
142
- ```
143
-
144
- Please note the name entered into `installer-name` will be the final and will
145
- not be inflected.
146
-
147
- ## Contribute!
148
-
149
- * [Fork and clone](https://help.github.com/articles/fork-a-repo).
150
- * Run the command `php composer.phar install --dev` to install the dev
151
- dependencies. See [Composer](https://github.com/composer/composer#installation--usage).
152
- * Use the command `phpunit` to run the tests. See [PHPUnit](http://phpunit.de).
153
- * Create a branch, commit, push and send us a
154
- [pull request](https://help.github.com/articles/using-pull-requests).
155
-
156
- To ensure a consistent code base, you should make sure the code follows the
157
- [Coding Standards](http://symfony.com/doc/2.0/contributing/code/standards.html)
158
- which we borrowed from Symfony.
159
-
160
- If you would like to help, please take a look at the list of
161
- [issues](https://github.com/composer/installers/issues).
162
-
163
- ### Should we allow dynamic package types or paths? No.
164
- What are they? The ability for a package author to determine where a package
165
- will be installed either through setting the path directly in their
166
- `composer.json` or through a dynamic package type: `"type":
167
- "framework-install-here"`.
168
-
169
- It has been proposed many times. Even implemented once early on and then
170
- removed. `installers` won't do this because it would allow a single package
171
- author to wipe out entire folders without the user's consent. That user would
172
- then come here to yell at us.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/composer.json DELETED
@@ -1,65 +0,0 @@
1
- {
2
- "name": "composer/installers",
3
- "type": "composer-installer",
4
- "license": "MIT",
5
- "description": "A multi-framework Composer library installer",
6
- "keywords": [
7
- "installer",
8
- "AGL",
9
- "AnnotateCms",
10
- "CakePHP",
11
- "CodeIgniter",
12
- "concrete5",
13
- "Craft",
14
- "Croogo",
15
- "Drupal",
16
- "Elgg",
17
- "FuelPHP",
18
- "Hurad",
19
- "Joomla",
20
- "Kohana",
21
- "Laravel",
22
- "Lithium",
23
- "Magento",
24
- "Mako",
25
- "MODX Evo",
26
- "MediaWiki",
27
- "OXID",
28
- "MODULEWork",
29
- "Piwik",
30
- "phpBB",
31
- "PPI",
32
- "shopware",
33
- "SilverStripe",
34
- "symfony",
35
- "TYPO3",
36
- "WolfCMS",
37
- "WordPress",
38
- "Zend",
39
- "Zikula"
40
- ],
41
- "homepage": "http://composer.github.com/installers/",
42
- "authors": [
43
- {
44
- "name": "Kyle Robinson Young",
45
- "email": "kyle@dontkry.com",
46
- "homepage": "https://github.com/shama"
47
- }
48
- ],
49
- "autoload": {
50
- "psr-0": { "Composer\\Installers\\": "src/" }
51
- },
52
- "extra": {
53
- "class": "Composer\\Installers\\Installer",
54
- "branch-alias": {
55
- "dev-master": "1.0-dev"
56
- }
57
- },
58
- "replace": {
59
- "shama/baton": "*"
60
- },
61
- "require-dev": {
62
- "composer/composer": "1.0.*@dev",
63
- "phpunit/phpunit": "3.7.*"
64
- }
65
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/phpunit.xml.dist DELETED
@@ -1,25 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
-
3
- <phpunit backupGlobals="false"
4
- backupStaticAttributes="false"
5
- colors="true"
6
- convertErrorsToExceptions="true"
7
- convertNoticesToExceptions="true"
8
- convertWarningsToExceptions="true"
9
- processIsolation="false"
10
- stopOnFailure="false"
11
- syntaxCheck="false"
12
- bootstrap="tests/bootstrap.php"
13
- >
14
- <testsuites>
15
- <testsuite name="Installers Test Suite">
16
- <directory>tests/Composer/Installers</directory>
17
- </testsuite>
18
- </testsuites>
19
-
20
- <filter>
21
- <whitelist>
22
- <directory>src/Composer/Installers</directory>
23
- </whitelist>
24
- </filter>
25
- </phpunit>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/AglInstaller.php DELETED
@@ -1,21 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class AglInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'More/{$name}/',
8
- );
9
-
10
- /**
11
- * Format package name to CamelCase
12
- */
13
- public function inflectPackageVars($vars)
14
- {
15
- $vars['name'] = preg_replace_callback('/(?:^|_|-)(.?)/', function($matches) {
16
- return strtoupper($matches[1]);
17
- }, $vars['name']);
18
-
19
- return $vars;
20
- }
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class AnnotateCmsInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'addons/modules/{$name}/',
8
- 'component' => 'addons/components/{$name}/',
9
- 'service' => 'addons/services/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/BaseInstaller.php DELETED
@@ -1,130 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- use Composer\Composer;
5
- use Composer\Package\PackageInterface;
6
-
7
- abstract class BaseInstaller
8
- {
9
- protected $locations = array();
10
- protected $composer;
11
- protected $package;
12
-
13
- /**
14
- * Initializes base installer.
15
- *
16
- * @param PackageInterface $package
17
- * @param Composer $composer
18
- */
19
- public function __construct(PackageInterface $package = null, Composer $composer = null)
20
- {
21
- $this->composer = $composer;
22
- $this->package = $package;
23
- }
24
-
25
- /**
26
- * Return the install path based on package type.
27
- *
28
- * @param PackageInterface $package
29
- * @param string $frameworkType
30
- * @return string
31
- */
32
- public function getInstallPath(PackageInterface $package, $frameworkType = '')
33
- {
34
- $type = $this->package->getType();
35
-
36
- $prettyName = $this->package->getPrettyName();
37
- if (strpos($prettyName, '/') !== false) {
38
- list($vendor, $name) = explode('/', $prettyName);
39
- } else {
40
- $vendor = '';
41
- $name = $prettyName;
42
- }
43
-
44
- $availableVars = $this->inflectPackageVars(compact('name', 'vendor', 'type'));
45
-
46
- $extra = $package->getExtra();
47
- if (!empty($extra['installer-name'])) {
48
- $availableVars['name'] = $extra['installer-name'];
49
- }
50
-
51
- if ($this->composer->getPackage()) {
52
- $extra = $this->composer->getPackage()->getExtra();
53
- if (!empty($extra['installer-paths'])) {
54
- $customPath = $this->mapCustomInstallPaths($extra['installer-paths'], $prettyName, $type);
55
- if ($customPath !== false) {
56
- return $this->templatePath($customPath, $availableVars);
57
- }
58
- }
59
- }
60
-
61
- $packageType = substr($type, strlen($frameworkType) + 1);
62
- if (!isset($this->locations[$packageType])) {
63
- throw new \InvalidArgumentException(sprintf('Package type "%s" is not supported', $type));
64
- }
65
-
66
- return $this->templatePath($this->locations[$packageType], $availableVars);
67
- }
68
-
69
- /**
70
- * For an installer to override to modify the vars per installer.
71
- *
72
- * @param array $vars
73
- * @return array
74
- */
75
- public function inflectPackageVars($vars)
76
- {
77
- return $vars;
78
- }
79
-
80
- /**
81
- * Gets the installer's locations
82
- *
83
- * @return array
84
- */
85
- public function getLocations()
86
- {
87
- return $this->locations;
88
- }
89
-
90
- /**
91
- * Replace vars in a path
92
- *
93
- * @param string $path
94
- * @param array $vars
95
- * @return string
96
- */
97
- protected function templatePath($path, array $vars = array())
98
- {
99
- if (strpos($path, '{') !== false) {
100
- extract($vars);
101
- preg_match_all('@\{\$([A-Za-z0-9_]*)\}@i', $path, $matches);
102
- if (!empty($matches[1])) {
103
- foreach ($matches[1] as $var) {
104
- $path = str_replace('{$' . $var . '}', $$var, $path);
105
- }
106
- }
107
- }
108
-
109
- return $path;
110
- }
111
-
112
- /**
113
- * Search through a passed paths array for a custom install path.
114
- *
115
- * @param array $paths
116
- * @param string $name
117
- * @param string $type
118
- * @return string
119
- */
120
- protected function mapCustomInstallPaths(array $paths, $name, $type)
121
- {
122
- foreach ($paths as $path => $names) {
123
- if (in_array($name, $names) || in_array('type:' . $type, $names)) {
124
- return $path;
125
- }
126
- }
127
-
128
- return false;
129
- }
130
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php DELETED
@@ -1,21 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class CakePHPInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'Plugin/{$name}/',
8
- );
9
-
10
- /**
11
- * Format package name to CamelCase
12
- */
13
- public function inflectPackageVars($vars)
14
- {
15
- $vars['name'] = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name']));
16
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
17
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
18
-
19
- return $vars;
20
- }
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class CodeIgniterInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'library' => 'application/libraries/{$name}/',
8
- 'third-party' => 'application/third_party/{$name}/',
9
- 'module' => 'application/modules/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/Concrete5Installer.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class Concrete5Installer extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'block' => 'blocks/{$name}/',
8
- 'package' => 'packages/{$name}/',
9
- 'theme' => 'themes/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/CraftInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class CraftInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'craft/plugins/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/CroogoInstaller.php DELETED
@@ -1,21 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class CroogoInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'Plugin/{$name}/',
8
- 'theme' => 'View/Themed/{$name}/',
9
- );
10
-
11
- /**
12
- * Format package name to CamelCase
13
- */
14
- public function inflectPackageVars($vars)
15
- {
16
- $vars['name'] = strtolower(str_replace(array('-', '_'), ' ', $vars['name']));
17
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
18
-
19
- return $vars;
20
- }
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php DELETED
@@ -1,12 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class DrupalInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- 'theme' => 'themes/{$name}/',
9
- 'profile' => 'profiles/{$name}/',
10
- 'drush' => 'drush/{$name}/',
11
- );
12
- }
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/ElggInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ElggInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'mod/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/FuelInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class FuelInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'fuel/app/modules/{$name}/',
8
- 'package' => 'fuel/packages/{$name}/',
9
- 'theme' => 'fuel/themes/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/HuradInstaller.php DELETED
@@ -1,21 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class HuradInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'Plugin/{$name}/',
8
- 'theme' => 'View/Themed/{$name}/',
9
- );
10
-
11
- /**
12
- * Format package name to CamelCase
13
- */
14
- public function inflectPackageVars($vars)
15
- {
16
- $vars['name'] = strtolower(str_replace(array('-', '_'), ' ', $vars['name']));
17
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
18
-
19
- return $vars;
20
- }
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/Installer.php DELETED
@@ -1,138 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- use Composer\Installer\LibraryInstaller;
5
- use Composer\Package\PackageInterface;
6
- use Composer\Repository\InstalledRepositoryInterface;
7
-
8
- class Installer extends LibraryInstaller
9
- {
10
- /**
11
- * Package types to installer class map
12
- *
13
- * @var array
14
- */
15
- private $supportedTypes = array(
16
- 'agl' => 'AglInstaller',
17
- 'annotatecms' => 'AnnotateCmsInstaller',
18
- 'cakephp' => 'CakePHPInstaller',
19
- 'codeigniter' => 'CodeIgniterInstaller',
20
- 'concrete5' => 'Concrete5Installer',
21
- 'craft' => 'CraftInstaller',
22
- 'croogo' => 'CroogoInstaller',
23
- 'drupal' => 'DrupalInstaller',
24
- 'elgg' => 'ElggInstaller',
25
- 'piwik' => 'PiwikInstaller',
26
- 'fuel' => 'FuelInstaller',
27
- 'hurad' => 'HuradInstaller',
28
- 'joomla' => 'JoomlaInstaller',
29
- 'kohana' => 'KohanaInstaller',
30
- 'laravel' => 'LaravelInstaller',
31
- 'lithium' => 'LithiumInstaller',
32
- 'magento' => 'MagentoInstaller',
33
- 'mako' => 'MakoInstaller',
34
- 'modxevo' => 'MODXEvoInstaller',
35
- 'mediawiki' => 'MediaWikiInstaller',
36
- 'modulework' => 'MODULEWorkInstaller',
37
- 'oxid' => 'OxidInstaller',
38
- 'phpbb' => 'PhpBBInstaller',
39
- 'piwik' => 'PiwikInstaller',
40
- 'ppi' => 'PPIInstaller',
41
- 'shopware' => 'ShopwareInstaller',
42
- 'silverstripe' => 'SilverStripeInstaller',
43
- 'symfony1' => 'Symfony1Installer',
44
- 'wolfcms' => 'WolfCMSInstaller',
45
- 'wordpress' => 'WordPressInstaller',
46
- 'zend' => 'ZendInstaller',
47
- 'zikula' => 'ZikulaInstaller',
48
- 'typo3-flow' => 'TYPO3FlowInstaller',
49
- 'typo3-cms' => 'TYPO3CmsInstaller',
50
- );
51
-
52
- /**
53
- * {@inheritDoc}
54
- */
55
- public function getInstallPath(PackageInterface $package)
56
- {
57
- $type = $package->getType();
58
- $frameworkType = $this->findFrameworkType($type);
59
-
60
- if ($frameworkType === false) {
61
- throw new \InvalidArgumentException(
62
- 'Sorry the package type of this package is not yet supported.'
63
- );
64
- }
65
-
66
- $class = 'Composer\\Installers\\' . $this->supportedTypes[$frameworkType];
67
- $installer = new $class($package, $this->composer);
68
-
69
- return $installer->getInstallPath($package, $frameworkType);
70
- }
71
-
72
- public function uninstall(InstalledRepositoryInterface $repo, PackageInterface $package)
73
- {
74
- if (!$repo->hasPackage($package)) {
75
- throw new \InvalidArgumentException('Package is not installed: '.$package);
76
- }
77
-
78
- $repo->removePackage($package);
79
-
80
- $installPath = $this->getInstallPath($package);
81
- $this->io->write(sprintf('Deleting %s - %s', $installPath, $this->filesystem->removeDirectory($installPath) ? '<comment>deleted</comment>' : '<error>not deleted</error>'));
82
- }
83
-
84
- /**
85
- * {@inheritDoc}
86
- */
87
- public function supports($packageType)
88
- {
89
- $frameworkType = $this->findFrameworkType($packageType);
90
-
91
- if ($frameworkType === false) {
92
- return false;
93
- }
94
-
95
- $locationPattern = $this->getLocationPattern($frameworkType);
96
- return preg_match('#' . $frameworkType . '-' . $locationPattern . '#', $packageType, $matches) === 1;
97
- }
98
-
99
- /**
100
- * Finds a supported framework type if it exists and returns it
101
- *
102
- * @param string $type
103
- * @return string
104
- */
105
- protected function findFrameworkType($type)
106
- {
107
- $frameworkType = false;
108
-
109
- foreach ($this->supportedTypes as $key => $val) {
110
- if ($key === substr($type, 0, strlen($key))) {
111
- $frameworkType = substr($type, 0, strlen($key));
112
- break;
113
- }
114
- }
115
-
116
- return $frameworkType;
117
- }
118
-
119
- /**
120
- * Get the second part of the regular expression to check for support of a
121
- * package type
122
- *
123
- * @param string $frameworkType
124
- * @return string
125
- */
126
- protected function getLocationPattern($frameworkType)
127
- {
128
- $pattern = false;
129
- if (!empty($this->supportedTypes[$frameworkType])) {
130
- $frameworkClass = 'Composer\\Installers\\' . $this->supportedTypes[$frameworkType];
131
- /** @var BaseInstaller $framework */
132
- $framework = new $frameworkClass;
133
- $locations = array_keys($framework->getLocations());
134
- $pattern = $locations ? '(' . implode('|', $locations) . ')' : false;
135
- }
136
- return $pattern ? : '(\w+)';
137
- }
138
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/JoomlaInstaller.php DELETED
@@ -1,15 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class JoomlaInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'component' => 'components/{$name}/',
8
- 'module' => 'modules/{$name}/',
9
- 'template' => 'templates/{$name}/',
10
- 'plugin' => 'plugins/{$name}/',
11
- 'library' => 'libraries/{$name}/',
12
- );
13
-
14
- // TODO: Add inflector for mod_ and com_ names
15
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/KohanaInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class KohanaInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/LaravelInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class LaravelInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'library' => 'libraries/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/LithiumInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class LithiumInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'library' => 'libraries/{$name}/',
8
- 'source' => 'libraries/_source/{$name}/',
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MODULEWorkInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/MODXEvoInstaller.php DELETED
@@ -1,16 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * An installer to handle MODX Evolution specifics when installing packages.
6
- */
7
- class MODXEvoInstaller extends BaseInstaller
8
- {
9
- protected $locations = array(
10
- 'snippet' => 'assets/snippets/{$name}/',
11
- 'plugin' => 'assets/plugins/{$name}/',
12
- 'module' => 'assets/modules/{$name}/',
13
- 'template' => 'assets/templates/{$name}/',
14
- 'lib' => 'assets/lib/{$name}/'
15
- );
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/MagentoInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MagentoInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'theme' => 'app/design/frontend/{$name}/',
8
- 'skin' => 'skin/frontend/default/{$name}/',
9
- 'library' => 'lib/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/MakoInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MakoInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'package' => 'app/packages/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/MediaWikiInstaller.php DELETED
@@ -1,21 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class MediaWikiInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'extension' => 'extensions/{$name}/',
8
- );
9
-
10
- /**
11
- * Format package name to CamelCase keeping existing uppercase chars.
12
- */
13
- public function inflectPackageVars($vars)
14
- {
15
- $vars['name'] = str_replace('-', ' ', $vars['name']);
16
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
17
-
18
- return $vars;
19
- }
20
-
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/OxidInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class OxidInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/PPIInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PPIInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/PhpBBInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class PhpBBInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'extension' => 'ext/{$vendor}/{$name}/',
8
- 'language' => 'language/{$name}/',
9
- 'style' => 'styles/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/PiwikInstaller.php DELETED
@@ -1,32 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Class PiwikInstaller
6
- *
7
- * @package Composer\Installers
8
- */
9
- class PiwikInstaller extends BaseInstaller
10
- {
11
- /**
12
- * @var array
13
- */
14
- protected $locations = array(
15
- 'plugin' => 'plugins/{$name}/',
16
- );
17
-
18
- /**
19
- * Format package name to CamelCase
20
- * @param array $vars
21
- *
22
- * @return array
23
- */
24
- public function inflectPackageVars($vars)
25
- {
26
- $vars['name'] = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name']));
27
- $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']);
28
- $vars['name'] = str_replace(' ', '', ucwords($vars['name']));
29
-
30
- return $vars;
31
- }
32
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/ShopwareInstaller.php DELETED
@@ -1,58 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Plugin/theme installer for shopware
6
- * @author Benjamin Boit
7
- */
8
- class ShopwareInstaller extends BaseInstaller
9
- {
10
- protected $locations = array(
11
- 'backend-plugin' => 'engine/Shopware/Plugins/Local/Backend/{$name}/',
12
- 'core-plugin' => 'engine/Shopware/Plugins/Local/Core/{$name}/',
13
- 'frontend-plugin' => 'engine/Shopware/Plugins/Local/Frontend/{$name}/',
14
- 'theme' => 'templates/{$name}/'
15
- );
16
-
17
- /**
18
- * Transforms the names
19
- * @param array $vars
20
- * @return array
21
- */
22
- public function inflectPackageVars($vars)
23
- {
24
- if($vars['type'] === 'shopware-theme') {
25
- return $this->correctThemeName($vars);
26
- } else {
27
- return $this->correctPluginName($vars);
28
- }
29
- }
30
-
31
- /**
32
- * Changes the name to a camelcased combination of vendor and name
33
- * @param array $vars
34
- * @return array
35
- */
36
- private function correctPluginName($vars)
37
- {
38
- $camelCasedName = preg_replace_callback('/(-[a-z])/', function ($matches) {
39
- return strtoupper($matches[0][1]);
40
- }, $vars['name']);
41
-
42
- $vars['name'] = ucfirst($vars['vendor']) . ucfirst($camelCasedName);
43
-
44
- return $vars;
45
- }
46
-
47
- /**
48
- * Changes the name to a underscore separated name
49
- * @param array $vars
50
- * @return array
51
- */
52
- private function correctThemeName($vars)
53
- {
54
- $vars['name'] = str_replace('-', '_', $vars['name']);
55
-
56
- return $vars;
57
- }
58
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/SilverStripeInstaller.php DELETED
@@ -1,36 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- use Composer\Package\PackageInterface;
5
-
6
- class SilverStripeInstaller extends BaseInstaller
7
- {
8
- protected $locations = array(
9
- 'module' => '{$name}/',
10
- 'theme' => 'themes/{$name}/',
11
- );
12
-
13
- /**
14
- * Return the install path based on package type.
15
- *
16
- * Relies on built-in BaseInstaller behaviour with one exception: silverstripe/framework
17
- * must be installed to 'sapphire' and not 'framework' if the version is <3.0.0
18
- *
19
- * @param PackageInterface $package
20
- * @param string $frameworkType
21
- * @return string
22
- */
23
- public function getInstallPath(PackageInterface $package, $frameworkType = '')
24
- {
25
- if (
26
- $package->getName() == 'silverstripe/framework'
27
- && preg_match('/^\d+\.\d+\.\d+/', $package->getVersion())
28
- && version_compare($package->getVersion(), '2.999.999') < 0
29
- ) {
30
- return $this->templatePath($this->locations['module'], array('name' => 'sapphire'));
31
- } else {
32
- return parent::getInstallPath($package, $frameworkType);
33
- }
34
-
35
- }
36
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/Symfony1Installer.php DELETED
@@ -1,26 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Plugin installer for symfony 1.x
6
- *
7
- * @author Jérôme Tamarelle <jerome@tamarelle.net>
8
- */
9
- class Symfony1Installer extends BaseInstaller
10
- {
11
- protected $locations = array(
12
- 'plugin' => 'plugins/{$name}/',
13
- );
14
-
15
- /**
16
- * Format package name to CamelCase
17
- */
18
- public function inflectPackageVars($vars)
19
- {
20
- $vars['name'] = preg_replace_callback('/(-[a-z])/', function ($matches) {
21
- return strtoupper($matches[0][1]);
22
- }, $vars['name']);
23
-
24
- return $vars;
25
- }
26
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php DELETED
@@ -1,14 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * Extension installer for TYPO3 CMS
6
- *
7
- * @author Sascha Egerer <sascha.egerer@dkd.de>
8
- */
9
- class TYPO3CmsInstaller extends BaseInstaller
10
- {
11
- protected $locations = array(
12
- 'extension' => 'typo3conf/ext/{$name}/',
13
- );
14
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php DELETED
@@ -1,33 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- /**
5
- * An installer to handle TYPO3 Flow specifics when installing packages.
6
- */
7
- class TYPO3FlowInstaller extends BaseInstaller
8
- {
9
- protected $locations = array(
10
- 'package' => 'Packages/Application/{$name}/',
11
- 'framework' => 'Packages/Framework/{$name}/',
12
- 'plugin' => 'Packages/Plugins/{$name}/',
13
- 'site' => 'Packages/Sites/{$name}/',
14
- 'boilerplate' => 'Packages/Boilerplates/{$name}/',
15
- 'build' => 'Build/{$name}/',
16
- );
17
-
18
- /**
19
- * Modify the package name to be a TYPO3 Flow style key.
20
- *
21
- * @param array $vars
22
- * @return array
23
- */
24
- public function inflectPackageVars($vars)
25
- {
26
- $autoload = $this->package->getAutoload();
27
- if (isset($autoload['psr-0']) && is_array($autoload['psr-0'])) {
28
- $namespace = key($autoload['psr-0']);
29
- $vars['name'] = str_replace('\\', '.', $namespace);
30
- }
31
- return $vars;
32
- }
33
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/WolfCMSInstaller.php DELETED
@@ -1,9 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class WolfCMSInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'wolf/plugins/{$name}/',
8
- );
9
- }
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/WordPressInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class WordPressInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'plugin' => 'wp-content/plugins/{$name}/',
8
- 'theme' => 'wp-content/themes/{$name}/',
9
- 'muplugin' => 'wp-content/mu-plugins/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/ZendInstaller.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ZendInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'library' => 'library/{$name}/',
8
- 'extra' => 'extras/library/{$name}/',
9
- 'module' => 'module/{$name}/',
10
- );
11
- }
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/Composer/Installers/ZikulaInstaller.php DELETED
@@ -1,10 +0,0 @@
1
- <?php
2
- namespace Composer\Installers;
3
-
4
- class ZikulaInstaller extends BaseInstaller
5
- {
6
- protected $locations = array(
7
- 'module' => 'modules/{$vendor}-{$name}/',
8
- 'theme' => 'themes/{$vendor}-{$name}/'
9
- );
10
- }
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/src/bootstrap.php DELETED
@@ -1,13 +0,0 @@
1
- <?php
2
- function includeIfExists($file)
3
- {
4
- if (file_exists($file)) {
5
- return include $file;
6
- }
7
- }
8
- if ((!$loader = includeIfExists(__DIR__ . '/../vendor/autoload.php')) && (!$loader = includeIfExists(__DIR__ . '/../../../autoload.php'))) {
9
- die('You must set up the project dependencies, run the following commands:'.PHP_EOL.
10
- 'curl -s http://getcomposer.org/installer | php'.PHP_EOL.
11
- 'php composer.phar install'.PHP_EOL);
12
- }
13
- return $loader;
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/tests/Composer/Installers/Test/CakePHPInstallerTest.php DELETED
@@ -1,46 +0,0 @@
1
- <?php
2
- namespace Composer\Installers\Test;
3
-
4
- use Composer\Installers\CakePHPInstaller;
5
- use Composer\Package\Package;
6
- use Composer\Composer;
7
- use Composer\Config;
8
-
9
- class CakePHPInstallerTest extends TestCase
10
- {
11
- private $composer;
12
- private $io;
13
-
14
- /**
15
- * setUp
16
- *
17
- * @return void
18
- */
19
- public function setUp()
20
- {
21
- $this->package = new Package('CamelCased', '1.0', '1.0');
22
- $this->io = $this->getMock('Composer\IO\PackageInterface');
23
- $this->composer = new Composer();
24
- }
25
-
26
- /**
27
- * testInflectPackageVars
28
- *
29
- * @return void
30
- */
31
- public function testInflectPackageVars()
32
- {
33
- $installer = new CakePHPInstaller($this->package, $this->composer);
34
- $result = $installer->inflectPackageVars(array('name' => 'CamelCased'));
35
- $this->assertEquals($result, array('name' => 'CamelCased'));
36
-
37
- $installer = new CakePHPInstaller($this->package, $this->composer);
38
- $result = $installer->inflectPackageVars(array('name' => 'with-dash'));
39
- $this->assertEquals($result, array('name' => 'WithDash'));
40
-
41
- $installer = new CakePHPInstaller($this->package, $this->composer);
42
- $result = $installer->inflectPackageVars(array('name' => 'with_underscore'));
43
- $this->assertEquals($result, array('name' => 'WithUnderscore'));
44
- }
45
-
46
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/tests/Composer/Installers/Test/InstallerTest.php DELETED
@@ -1,349 +0,0 @@
1
- <?php
2
- namespace Composer\Installers\Test;
3
-
4
- use Composer\Installers\Installer;
5
- use Composer\Util\Filesystem;
6
- use Composer\Package\Package;
7
- use Composer\Package\RootPackage;
8
- use Composer\Composer;
9
- use Composer\Config;
10
-
11
- class InstallerTest extends TestCase
12
- {
13
- private $composer;
14
- private $config;
15
- private $vendorDir;
16
- private $binDir;
17
- private $dm;
18
- private $repository;
19
- private $io;
20
- private $fs;
21
-
22
- /**
23
- * setUp
24
- *
25
- * @return void
26
- */
27
- public function setUp()
28
- {
29
- $this->fs = new Filesystem;
30
-
31
- $this->composer = new Composer();
32
- $this->config = new Config();
33
- $this->composer->setConfig($this->config);
34
-
35
- $this->vendorDir = realpath(sys_get_temp_dir()) . DIRECTORY_SEPARATOR . 'baton-test-vendor';
36
- $this->ensureDirectoryExistsAndClear($this->vendorDir);
37
-
38
- $this->binDir = realpath(sys_get_temp_dir()) . DIRECTORY_SEPARATOR . 'baton-test-bin';
39
- $this->ensureDirectoryExistsAndClear($this->binDir);
40
-
41
- $this->config->merge(array(
42
- 'config' => array(
43
- 'vendor-dir' => $this->vendorDir,
44
- 'bin-dir' => $this->binDir,
45
- ),
46
- ));
47
-
48
- $this->dm = $this->getMockBuilder('Composer\Downloader\DownloadManager')
49
- ->disableOriginalConstructor()
50
- ->getMock();
51
- $this->composer->setDownloadManager($this->dm);
52
-
53
- $this->repository = $this->getMock('Composer\Repository\InstalledRepositoryInterface');
54
- $this->io = $this->getMock('Composer\IO\IOInterface');
55
- }
56
-
57
- /**
58
- * tearDown
59
- *
60
- * @return void
61
- */
62
- public function tearDown()
63
- {
64
- $this->fs->removeDirectory($this->vendorDir);
65
- $this->fs->removeDirectory($this->binDir);
66
- }
67
-
68
- /**
69
- * testSupports
70
- *
71
- * @return void
72
- *
73
- * @dataProvider dataForTestSupport
74
- */
75
- public function testSupports($type, $expected)
76
- {
77
- $installer = new Installer($this->io, $this->composer);
78
- $this->assertSame($expected, $installer->supports($type), sprintf('Failed to show support for %s', $type));
79
- }
80
-
81
- /**
82
- * dataForTestSupport
83
- */
84
- public function dataForTestSupport()
85
- {
86
- return array(
87
- array('agl-module', true),
88
- array('annotatecms-module', true),
89
- array('annotatecms-component', true),
90
- array('annotatecms-service', true),
91
- array('cakephp', false),
92
- array('cakephp-', false),
93
- array('cakephp-app', false),
94
- array('cakephp-plugin', true),
95
- array('codeigniter-app', false),
96
- array('codeigniter-library', true),
97
- array('codeigniter-third-party', true),
98
- array('codeigniter-module', true),
99
- array('concrete5-block', true),
100
- array('concrete5-package', true),
101
- array('concrete5-theme', true),
102
- array('craft-plugin', true),
103
- array('croogo-plugin', true),
104
- array('croogo-theme', true),
105
- array('drupal-module', true),
106
- array('elgg-plugin', true),
107
- array('fuel-module', true),
108
- array('fuel-package', true),
109
- array('hurad-plugin', true),
110
- array('hurad-theme', true),
111
- array('joomla-library', true),
112
- array('kohana-module', true),
113
- array('laravel-library', true),
114
- array('lithium-library', true),
115
- array('magento-library', true),
116
- array('mako-package', true),
117
- array('modxevo-snippet', true),
118
- array('modxevo-plugin', true),
119
- array('modxevo-module', true),
120
- array('modxevo-template', true),
121
- array('modxevo-lib', true),
122
- array('mediawiki-extension', true),
123
- array('modulework-module', true),
124
- array('piwik-plugin', true),
125
- array('phpbb-extension', true),
126
- array('ppi-module', true),
127
- array('shopware-backend-plugin', true),
128
- array('shopware-core-plugin', true),
129
- array('shopware-frontend-plugin', true),
130
- array('shopware-theme', true),
131
- array('silverstripe-module', true),
132
- array('silverstripe-theme', true),
133
- array('symfony1-plugin', true),
134
- array('typo3-flow-plugin', true),
135
- array('typo3-cms-extension', true),
136
- array('wolfcms-plugin', true),
137
- array('wordpress-plugin', true),
138
- array('wordpress-core', false),
139
- array('zend-library', true),
140
- array('zikula-module', true),
141
- array('zikula-theme', true),
142
- );
143
- }
144
-
145
- /**
146
- * testInstallPath
147
- *
148
- * @dataProvider dataForTestInstallPath
149
- */
150
- public function testInstallPath($type, $path, $name, $version = '1.0.0')
151
- {
152
- $installer = new Installer($this->io, $this->composer);
153
- $package = new Package($name, $version, $version);
154
-
155
- $package->setType($type);
156
- $result = $installer->getInstallPath($package);
157
- $this->assertEquals($path, $result);
158
- }
159
-
160
- /**
161
- * dataFormTestInstallPath
162
- */
163
- public function dataForTestInstallPath()
164
- {
165
- return array(
166
- array('agl-module', 'More/MyTestPackage/', 'agl/my_test-package'),
167
- array('annotatecms-module', 'addons/modules/my_module/', 'vysinsky/my_module'),
168
- array('annotatecms-component', 'addons/components/my_component/', 'vysinsky/my_component'),
169
- array('annotatecms-service', 'addons/services/my_service/', 'vysinsky/my_service'),
170
- array('cakephp-plugin', 'Plugin/Ftp/', 'shama/ftp'),
171
- array('codeigniter-library', 'application/libraries/my_package/', 'shama/my_package'),
172
- array('codeigniter-module', 'application/modules/my_package/', 'shama/my_package'),
173
- array('concrete5-block', 'blocks/concrete5_block/', 'remo/concrete5_block'),
174
- array('concrete5-package', 'packages/concrete5_package/', 'remo/concrete5_package'),
175
- array('concrete5-theme', 'themes/concrete5_theme/', 'remo/concrete5_theme'),
176
- array('craft-plugin', 'craft/plugins/my_plugin/', 'mdcpepper/my_plugin'),
177
- array('croogo-plugin', 'Plugin/Sitemaps/', 'fahad19/sitemaps'),
178
- array('croogo-theme', 'View/Themed/Readable/', 'rchavik/readable'),
179
- array('drupal-module', 'modules/my_module/', 'shama/my_module'),
180
- array('drupal-theme', 'themes/my_module/', 'shama/my_module'),
181
- array('drupal-profile', 'profiles/my_module/', 'shama/my_module'),
182
- array('drupal-drush', 'drush/my_module/', 'shama/my_module'),
183
- array('elgg-plugin', 'mod/sample_plugin/', 'test/sample_plugin'),
184
- array('fuel-module', 'fuel/app/modules/module/', 'fuel/module'),
185
- array('fuel-package', 'fuel/packages/orm/', 'fuel/orm'),
186
- array('hurad-plugin', 'Plugin/Akismet/', 'atkrad/akismet'),
187
- array('hurad-theme', 'View/Themed/Hurad2013/', 'atkrad/Hurad2013'),
188
- array('joomla-plugin', 'plugins/my_plugin/', 'shama/my_plugin'),
189
- array('kohana-module', 'modules/my_package/', 'shama/my_package'),
190
- array('laravel-library', 'libraries/my_package/', 'shama/my_package'),
191
- array('lithium-library', 'libraries/li3_test/', 'user/li3_test'),
192
- array('magento-library', 'lib/foo/', 'test/foo'),
193
- array('modxevo-snippet', 'assets/snippets/my_snippet/', 'shama/my_snippet'),
194
- array('modxevo-plugin', 'assets/plugins/my_plugin/', 'shama/my_plugin'),
195
- array('modxevo-module', 'assets/modules/my_module/', 'shama/my_module'),
196
- array('modxevo-template', 'assets/templates/my_template/', 'shama/my_template'),
197
- array('modxevo-lib', 'assets/lib/my_lib/', 'shama/my_lib'),
198
- array('mako-package', 'app/packages/my_package/', 'shama/my_package'),
199
- array('mediawiki-extension', 'extensions/APC/', 'author/APC' ),
200
- array('mediawiki-extension', 'extensions/UploadWizard/', 'author/upload-wizard' ),
201
- array('mediawiki-extension', 'extensions/SyntaxHighlight_GeSHi/', 'author/syntax-highlight_GeSHi' ),
202
- array('modulework-module', 'modules/my_package/', 'shama/my_package'),
203
- array('piwik-plugin', 'plugins/VisitSummary/', 'shama/visit-summary'),
204
- array('phpbb-extension', 'ext/test/foo/', 'test/foo'),
205
- array('phpbb-style', 'styles/foo/', 'test/foo'),
206
- array('phpbb-language', 'language/foo/', 'test/foo'),
207
- array('ppi-module', 'modules/foo/', 'test/foo'),
208
- array('shopware-backend-plugin', 'engine/Shopware/Plugins/Local/Backend/ShamaMyBackendPlugin/', 'shama/my-backend-plugin'),
209
- array('shopware-core-plugin', 'engine/Shopware/Plugins/Local/Core/ShamaMyCorePlugin/', 'shama/my-core-plugin'),
210
- array('shopware-frontend-plugin', 'engine/Shopware/Plugins/Local/Frontend/ShamaMyFrontendPlugin/', 'shama/my-frontend-plugin'),
211
- array('shopware-theme', 'templates/my_theme/', 'shama/my-theme'),
212
- array('silverstripe-module', 'my_module/', 'shama/my_module'),
213
- array('silverstripe-module', 'sapphire/', 'silverstripe/framework', '2.4.0'),
214
- array('silverstripe-module', 'framework/', 'silverstripe/framework', '3.0.0'),
215
- array('silverstripe-module', 'framework/', 'silverstripe/framework', '3.0.0-rc1'),
216
- array('silverstripe-module', 'framework/', 'silverstripe/framework', 'my/branch'),
217
- array('silverstripe-theme', 'themes/my_theme/', 'shama/my_theme'),
218
- array('symfony1-plugin', 'plugins/sfShamaPlugin/', 'shama/sfShamaPlugin'),
219
- array('symfony1-plugin', 'plugins/sfShamaPlugin/', 'shama/sf-shama-plugin'),
220
- array('typo3-flow-package', 'Packages/Application/my_package/', 'shama/my_package'),
221
- array('typo3-flow-build', 'Build/my_package/', 'shama/my_package'),
222
- array('typo3-cms-extension', 'typo3conf/ext/my_extension/', 'shama/my_extension'),
223
- array('wolfcms-plugin', 'wolf/plugins/my_plugin/', 'shama/my_plugin'),
224
- array('wordpress-plugin', 'wp-content/plugins/my_plugin/', 'shama/my_plugin'),
225
- array('wordpress-muplugin', 'wp-content/mu-plugins/my_plugin/', 'shama/my_plugin'),
226
- array('zend-extra', 'extras/library/zend_test/', 'shama/zend_test'),
227
- array('zikula-module', 'modules/my-test_module/', 'my/test_module'),
228
- array('zikula-theme', 'themes/my-test_theme/', 'my/test_theme'),
229
- );
230
- }
231
-
232
- /**
233
- * testGetCakePHPInstallPathException
234
- *
235
- * @return void
236
- *
237
- * @expectedException \InvalidArgumentException
238
- */
239
- public function testGetCakePHPInstallPathException()
240
- {
241
- $installer = new Installer($this->io, $this->composer);
242
- $package = new Package('shama/ftp', '1.0.0', '1.0.0');
243
-
244
- $package->setType('cakephp-whoops');
245
- $result = $installer->getInstallPath($package);
246
- }
247
-
248
- /**
249
- * testCustomInstallPath
250
- */
251
- public function testCustomInstallPath()
252
- {
253
- $installer = new Installer($this->io, $this->composer);
254
- $package = new Package('shama/ftp', '1.0.0', '1.0.0');
255
- $package->setType('cakephp-plugin');
256
- $consumerPackage = new RootPackage('foo/bar', '1.0.0', '1.0.0');
257
- $this->composer->setPackage($consumerPackage);
258
- $consumerPackage->setExtra(array(
259
- 'installer-paths' => array(
260
- 'my/custom/path/{$name}/' => array(
261
- 'shama/ftp',
262
- 'foo/bar',
263
- ),
264
- ),
265
- ));
266
- $result = $installer->getInstallPath($package);
267
- $this->assertEquals('my/custom/path/Ftp/', $result);
268
- }
269
-
270
- /**
271
- * testCustomInstallerName
272
- */
273
- public function testCustomInstallerName() {
274
- $installer = new Installer($this->io, $this->composer);
275
- $package = new Package('shama/cakephp-ftp-plugin', '1.0.0', '1.0.0');
276
- $package->setType('cakephp-plugin');
277
- $package->setExtra(array(
278
- 'installer-name' => 'FTP',
279
- ));
280
- $result = $installer->getInstallPath($package);
281
- $this->assertEquals('Plugin/FTP/', $result);
282
- }
283
-
284
- /**
285
- * testCustomTypePath
286
- */
287
- public function testCustomTypePath() {
288
- $installer = new Installer($this->io, $this->composer);
289
- $package = new Package('slbmeh/my_plugin', '1.0.0', '1.0.0');
290
- $package->setType('wordpress-plugin');
291
- $consumerPackage = new RootPackage('foo/bar', '1.0.0', '1.0.0');
292
- $this->composer->setPackage($consumerPackage);
293
- $consumerPackage->setExtra(array(
294
- 'installer-paths' => array(
295
- 'my/custom/path/{$name}/' => array(
296
- 'type:wordpress-plugin'
297
- ),
298
- ),
299
- ));
300
- $result = $installer->getInstallPath($package);
301
- $this->assertEquals('my/custom/path/my_plugin/', $result);
302
- }
303
-
304
- /**
305
- * testNoVendorName
306
- */
307
- public function testNoVendorName()
308
- {
309
- $installer = new Installer($this->io, $this->composer);
310
- $package = new Package('sfPhpunitPlugin', '1.0.0', '1.0.0');
311
-
312
- $package->setType('symfony1-plugin');
313
- $result = $installer->getInstallPath($package);
314
- $this->assertEquals('plugins/sfPhpunitPlugin/', $result);
315
- }
316
-
317
- /**
318
- * testTypo3Inflection
319
- */
320
- public function testTypo3Inflection()
321
- {
322
- $installer = new Installer($this->io, $this->composer);
323
- $package = new Package('typo3/fluid', '1.0.0', '1.0.0');
324
-
325
- $package->setAutoload(array(
326
- 'psr-0' => array(
327
- 'TYPO3\\Fluid' => 'Classes',
328
- ),
329
- ));
330
-
331
- $package->setType('typo3-flow-package');
332
- $result = $installer->getInstallPath($package);
333
- $this->assertEquals('Packages/Application/TYPO3.Fluid/', $result);
334
- }
335
-
336
- public function testUninstallAndDeletePackageFromLocalRepo()
337
- {
338
- $package = new Package('foo', '1.0.0', '1.0.0');
339
-
340
- $installer = $this->getMock('Composer\Installers\Installer', array('getInstallPath'), array($this->io, $this->composer));
341
- $installer->expects($this->once())->method('getInstallPath')->with($package)->will($this->returnValue(sys_get_temp_dir().'/foo'));
342
-
343
- $repo = $this->getMock('Composer\Repository\InstalledRepositoryInterface');
344
- $repo->expects($this->once())->method('hasPackage')->with($package)->will($this->returnValue(true));
345
- $repo->expects($this->once())->method('removePackage')->with($package);
346
-
347
- $installer->uninstall($repo, $package);
348
- }
349
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/tests/Composer/Installers/Test/MediaWikiInstallerTest.php DELETED
@@ -1,48 +0,0 @@
1
- <?php
2
- namespace Composer\Installers\Test;
3
-
4
- use Composer\Installers\MediaWikiInstaller;
5
- use Composer\Package\Package;
6
- use Composer\Composer;
7
- use Composer\Config;
8
-
9
- class MediaWikiInstallerTest extends \PHPUnit_Framework_TestCase
10
- {
11
- /**
12
- * @var MediaWikiInstaller
13
- */
14
- private $installer;
15
-
16
- public function setUp()
17
- {
18
- $this->installer = new MediaWikiInstaller(
19
- new Package('NyanCat', '4.2', '4.2'),
20
- new Composer()
21
- );
22
- }
23
-
24
- /**
25
- * @dataProvider packageNameInflectionProvider
26
- */
27
- public function testInflectPackageVars($input, $expected)
28
- {
29
- $this->assertEquals(
30
- $this->installer->inflectPackageVars(array('name' => $input)),
31
- array('name' => $expected)
32
- );
33
- }
34
-
35
- public function packageNameInflectionProvider()
36
- {
37
- return array(
38
- array(
39
- 'sub-page-list',
40
- 'SubPageList',
41
- ),
42
- array(
43
- 'semantic-mediawiki',
44
- 'SemanticMediawiki',
45
- )
46
- );
47
- }
48
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/tests/Composer/Installers/Test/PiwikInstallerTest.php DELETED
@@ -1,64 +0,0 @@
1
- <?php
2
- namespace Composer\Installers\Test;
3
-
4
- use Composer\Composer;
5
- use Composer\Config;
6
- use Composer\Installers\PiwikInstaller;
7
- use Composer\Package\Package;
8
- use Composer\Package\PackageInterface;
9
-
10
- /**
11
- * Class PiwikInstallerTest
12
- *
13
- * @package Composer\Installers\Test
14
- */
15
- class PiwikInstallerTest extends TestCase
16
- {
17
- /**
18
- * @varComposer
19
- */
20
- private $composer;
21
-
22
- /**
23
- * @var PackageInterface
24
- */
25
- private $io;
26
-
27
- /**
28
- * @var Package
29
- */
30
- private $package;
31
-
32
- /**
33
- * setUp
34
- *
35
- * @return void
36
- */
37
- public function setUp()
38
- {
39
- $this->package = new Package('VisitSummary', '1.0', '1.0');
40
- $this->io = $this->getMock('Composer\IO\PackageInterface');
41
- $this->composer = new Composer();
42
- }
43
-
44
- /**
45
- * testInflectPackageVars
46
- *
47
- * @return void
48
- */
49
- public function testInflectPackageVars()
50
- {
51
- $installer = new PiwikInstaller($this->package, $this->composer);
52
- $result = $installer->inflectPackageVars(array('name' => 'VisitSummary'));
53
- $this->assertEquals($result, array('name' => 'VisitSummary'));
54
-
55
- $installer = new PiwikInstaller($this->package, $this->composer);
56
- $result = $installer->inflectPackageVars(array('name' => 'visit-summary'));
57
- $this->assertEquals($result, array('name' => 'VisitSummary'));
58
-
59
- $installer = new PiwikInstaller($this->package, $this->composer);
60
- $result = $installer->inflectPackageVars(array('name' => 'visit_summary'));
61
- $this->assertEquals($result, array('name' => 'VisitSummary'));
62
- }
63
-
64
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/tests/Composer/Installers/Test/TestCase.php DELETED
@@ -1,64 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Composer.
5
- *
6
- * (c) Nils Adermann <naderman@naderman.de>
7
- * Jordi Boggiano <j.boggiano@seld.be>
8
- *
9
- * For the full copyright and license information, please view the LICENSE
10
- * file that was distributed with this source code.
11
- */
12
-
13
- namespace Composer\Installers\Test;
14
-
15
- use Composer\Package\Version\VersionParser;
16
- use Composer\Package\Package;
17
- use Composer\Package\AliasPackage;
18
- use Composer\Package\LinkConstraint\VersionConstraint;
19
- use Composer\Util\Filesystem;
20
-
21
- abstract class TestCase extends \PHPUnit_Framework_TestCase
22
- {
23
- private static $parser;
24
-
25
- protected static function getVersionParser()
26
- {
27
- if (!self::$parser) {
28
- self::$parser = new VersionParser();
29
- }
30
-
31
- return self::$parser;
32
- }
33
-
34
- protected function getVersionConstraint($operator, $version)
35
- {
36
- return new VersionConstraint(
37
- $operator,
38
- self::getVersionParser()->normalize($version)
39
- );
40
- }
41
-
42
- protected function getPackage($name, $version)
43
- {
44
- $normVersion = self::getVersionParser()->normalize($version);
45
-
46
- return new Package($name, $normVersion, $version);
47
- }
48
-
49
- protected function getAliasPackage($package, $version)
50
- {
51
- $normVersion = self::getVersionParser()->normalize($version);
52
-
53
- return new AliasPackage($package, $normVersion, $version);
54
- }
55
-
56
- protected function ensureDirectoryExistsAndClear($directory)
57
- {
58
- $fs = new Filesystem();
59
- if (is_dir($directory)) {
60
- $fs->removeDirectory($directory);
61
- }
62
- mkdir($directory, 0777, true);
63
- }
64
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/composer/installers/tests/bootstrap.php DELETED
@@ -1,4 +0,0 @@
1
- <?php
2
-
3
- $loader = require __DIR__ . '/../src/bootstrap.php';
4
- $loader->add('Composer\Installers\Test', __DIR__);
 
 
 
 
includes/vendor/freemius/wordpress-sdk/README.md DELETED
@@ -1,253 +0,0 @@
1
- Freemius WordPress SDK
2
- ======================
3
-
4
- [Monetization](https://freemius.com/wordpress/), [analytics](https://freemius.com/wordpress/insights/), and marketing automation platform for plugin & theme developers. Freemius empower developers to create prosperous subscription based businesses.
5
-
6
- You can see some of the WordPress.org plugins & themes that are utilizing the power of Freemius here:
7
-
8
- https://includewp.com/freemius/#focus
9
-
10
- If you are a WordPress plugin or theme developer and you are interested to monetize with Freemius you can [sign-up here for free](https://dashboard.freemius.com/register/):
11
-
12
- https://dashboard.freemius.com/register/
13
-
14
- **Below you'll find the integration instructions for our WordPress SDK.**
15
-
16
- ## Code Documentation
17
-
18
- You can find the SDK's PHP-Doc documentation here:
19
- https://codedoc.pub/freemius/wordpress-sdk/master/
20
-
21
- ## Initializing the SDK
22
-
23
- Copy the code below and paste it into the top of your main plugin's PHP file, right after the plugin's header comment:
24
-
25
- ```php
26
- <?php
27
- // Create a helper function for easy SDK access.
28
- function my_prefix_fs() {
29
- global $my_prefix_fs;
30
- if ( ! isset( $my_prefix_fs ) ) {
31
- // Include Freemius SDK.
32
- require_once dirname(__FILE__) . '/freemius/start.php';
33
-
34
- $my_prefix_fs = fs_dynamic_init( array(
35
- 'id' => '1234',
36
- 'slug' => 'my-plugin-slug',
37
- 'menu_slug' => 'my_menu_slug', // You can also use __FILE__
38
- 'public_key' => 'pk_MY_PUBLIC_KEY',
39
- 'is_live' => true,
40
- 'is_premium' => true,
41
- 'has_addons' => false,
42
- 'has_paid_plans' => false,
43
- // Set the SDK to work in a sandbox mode (for development & testing).
44
- // IMPORTANT: MAKE SURE TO REMOVE SECRET KEY BEFORE DEPLOYMENT.
45
- 'secret_key' => 'sk_MY_SECRET_KEY',
46
- ) );
47
- }
48
-
49
- return $my_prefix_fs;
50
- }
51
-
52
- // Init Freemius.
53
- my_prefix_fs();
54
- ?>
55
- ```
56
-
57
- - **1234** - Replace with your plugin's ID.
58
- - **pk_MY_PUBLIC_KEY** - Replace with your plugin's public key.
59
- - **sk_MY_SECRET_KEY** - Replace with your plugin's secret key.
60
- - **my-plugin-slug** - Replace with your plugin's WordPress.org slug.
61
- - **my_menu_slug** - Replace with your admin dashboard settings menu slug.
62
-
63
-
64
- ## Usage example
65
-
66
- You can call the SDK by using the shortcode function:
67
-
68
- ```php
69
- <?php my_prefix_fs()->get_upgrade_url(); ?>
70
- ```
71
-
72
- Or when calling Freemius multiple times in a scope, it's recommended to use it with the global variable:
73
-
74
- ```php
75
- <?php
76
- global $my_prefix_fs;
77
- $my_prefix_fs->get_account_url();
78
- ?>
79
- ```
80
-
81
- ## Adding license based logic examples
82
-
83
- Add marketing content to encourage your users to upgrade for your paid version:
84
-
85
- ```php
86
- <?php
87
- if ( my_prefix_fs()->is_not_paying() ) {
88
- echo '<section><h1>' . esc_html__('Awesome Premium Features', 'my-plugin-slug') . '</h1>';
89
- echo '<a href="' . my_prefix_fs()->get_upgrade_url() . '">' .
90
- esc_html__('Upgrade Now!', 'my-plugin-slug') .
91
- '</a>';
92
- echo '</section>';
93
- }
94
- ?>
95
- ```
96
-
97
- Add logic which will only be available in your premium plugin version:
98
-
99
- ```php
100
- <?php
101
- // This "if" block will be auto removed from the Free version.
102
- if ( my_prefix_fs()->is__premium_only() ) {
103
-
104
- // ... premium only logic ...
105
-
106
- }
107
- ?>
108
- ```
109
-
110
- To add a function which will only be available in your premium plugin version, simply add __premium_only as the suffix of the function name. Just make sure that all lines that call that method directly or by hooks, are also wrapped in premium only logic:
111
-
112
- ```php
113
- <?php
114
- class My_Plugin {
115
- function init() {
116
- ...
117
-
118
- // This "if" block will be auto removed from the free version.
119
- if ( my_prefix_fs()->is__premium_only() ) {
120
- // Init premium version.
121
- $this->admin_init__premium_only();
122
-
123
- add_action( 'admin_init', array( &$this, 'admin_init_hook__premium_only' );
124
- }
125
-
126
- ...
127
- }
128
-
129
- // This method will be only included in the premium version.
130
- function admin_init__premium_only() {
131
- ...
132
- }
133
-
134
- // This method will be only included in the premium version.
135
- function admin_init_hook__premium_only() {
136
- ...
137
- }
138
- }
139
- ?>
140
- ```
141
-
142
- Add logic which will only be executed for customers in your 'professional' plan:
143
-
144
- ```php
145
- <?php
146
- if ( my_prefix_fs()->is_plan('professional', true) ) {
147
- // .. logic related to Professional plan only ...
148
- }
149
- ?>
150
- ```
151
-
152
- Add logic which will only be executed for customers in your 'professional' plan or higher plans:
153
-
154
- ```php
155
- <?php
156
- if ( my_prefix_fs()->is_plan('professional') ) {
157
- // ... logic related to Professional plan and higher plans ...
158
- }
159
- ?>
160
- ```
161
-
162
- Add logic which will only be available in your premium plugin version AND will only be executed for customers in your 'professional' plan (and higher plans):
163
-
164
- ```php
165
- <?php
166
- // This "if" block will be auto removed from the Free version.
167
- if ( my_prefix_fs()->is_plan__premium_only('professional') ) {
168
- // ... logic related to Professional plan and higher plans ...
169
- }
170
- ?>
171
- ```
172
-
173
- Add logic only for users in trial:
174
-
175
- ```php
176
- <?php
177
- if ( my_prefix_fs()->is_trial() ) {
178
- // ... logic for users in trial ...
179
- }
180
- ?>
181
- ```
182
-
183
- Add logic for specified paid plan:
184
-
185
- ```php
186
- <?php
187
- // This "if" block will be auto removed from the Free version.
188
- if ( my_prefix_fs()->is__premium_only() ) {
189
- if ( my_prefix_fs()->is_plan( 'professional', true ) ) {
190
-
191
- // ... logic related to Professional plan only ...
192
-
193
- } else if ( my_prefix_fs()->is_plan( 'business' ) ) {
194
-
195
- // ... logic related to Business plan and higher plans ...
196
-
197
- }
198
- }
199
- ?>
200
- ```
201
-
202
- ## Excluding files and folders from the free plugin version
203
- There are two ways to exclude files from your free version.
204
-
205
- 1. Add `__premium_only` just before the file extension. For example, functions__premium_only.php will be only included in the premium plugin version. This works for all type of files, not only PHP.
206
- 2. Add `@fs_premium_only` a sepcial meta tag to the plugin's main PHP file header. Example:
207
- ```php
208
- <?php
209
- /**
210
- * Plugin Name: My Very Awesome Plugin
211
- * Plugin URI: http://my-awesome-plugin.com
212
- * Description: Create and manage Awesomeness right in WordPress.
213
- * Version: 1.0.0
214
- * Author: Awesomattic
215
- * Author URI: http://my-awesome-plugin.com/me/
216
- * License: GPLv2
217
- * Text Domain: myplugin
218
- * Domain Path: /langs
219
- *
220
- * @fs_premium_only /lib/functions.php, /premium-files/
221
- */
222
-
223
- if ( ! defined( 'ABSPATH' ) ) {
224
- exit;
225
- }
226
-
227
- // ... my code ...
228
- ?>
229
- ```
230
- The file `/lib/functions.php` and the directory `/premium-files/` will be removed from the free plugin version.
231
-
232
- # WordPress.org Compliance
233
- Based on [WordPress.org Guidelines](https://wordpress.org/plugins/about/guidelines/) you are not allowed to submit a plugin that has premium code in it:
234
- > All code hosted by WordPress.org servers must be free and fully-functional. If you want to sell advanced features for a plugin (such as a "pro" version), then you must sell and serve that code from your own site, we will not host it on our servers.
235
-
236
- Therefore, if you want to deploy your free plugin's version to WordPress.org, make sure you wrap all your premium code with `if ( my_prefix_fs()->{{ method }}__premium_only() )` or the other methods provided to exclude premium features & files from the free version.
237
-
238
- ## Deployment
239
- Zip your plugin's root folder and upload it in the Deployment section in the *Freemius Developer's Dashboard*.
240
- The plugin will be scanned and processed by a custom developed *PHP Processor* which will auto-generate two versions of your plugin:
241
-
242
- 1. **Premium version**: Identical to your uploaded version, including all code (except your `secret_key`). Will be enabled for download ONLY for your paying or in trial customers.
243
- 2. **Free version**: The code stripped from all your paid features (based on the logic added wrapped in `{ method }__premium_only()`).
244
-
245
- The free version is the one that you should give your users to download. Therefore, download the free generated version and upload to your site. Or, if your plugin was WordPress.org complaint and you made sure to exclude all your premium code with the different provided techniques, you can deploy the downloaded free version to the .org repo.
246
-
247
- ## Reporting Bugs
248
- Email dev [at] freemius [dot] com
249
-
250
- ## FAQ
251
-
252
- ## Copyright
253
- Freemius, Inc.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/freemius/wordpress-sdk/assets/css/admin/affiliation.css ADDED
@@ -0,0 +1 @@
 
1
+ @charset "UTF-8";#fs_affiliation_content_wrapper #messages{margin-top:25px}#fs_affiliation_content_wrapper h3{font-size:24px;padding:0;margin-left:0}#fs_affiliation_content_wrapper ul li{box-sizing:border-box;list-style-type:none}#fs_affiliation_content_wrapper ul li:before{content:'✓';margin-right:10px;font-weight:bold}#fs_affiliation_content_wrapper p:not(.description),#fs_affiliation_content_wrapper li,#fs_affiliation_content_wrapper label{font-size:16px !important;line-height:26px !important}#fs_affiliation_content_wrapper .button{margin-top:20px;margin-bottom:7px;line-height:35px;height:40px;font-size:16px}#fs_affiliation_content_wrapper .button#cancel_button{margin-right:5px}#fs_affiliation_content_wrapper form .input-container{margin-bottom:15px}#fs_affiliation_content_wrapper form .input-container .input-label{font-weight:bold;display:block;width:100%}#fs_affiliation_content_wrapper form .input-container.input-container-text label,#fs_affiliation_content_wrapper form .input-container.input-container-text input,#fs_affiliation_content_wrapper form .input-container.input-container-text textarea{display:block}#fs_affiliation_content_wrapper form .input-container #add_domain,#fs_affiliation_content_wrapper form .input-container .remove-domain{text-decoration:none;display:inline-block;margin-top:3px}#fs_affiliation_content_wrapper form .input-container #add_domain:focus,#fs_affiliation_content_wrapper form .input-container .remove-domain:focus{box-shadow:none}#fs_affiliation_content_wrapper form .input-container #add_domain.disabled,#fs_affiliation_content_wrapper form .input-container .remove-domain.disabled{color:#aaa;cursor:default}#fs_affiliation_content_wrapper form #extra_domains_container .description{margin-top:0;position:relative;top:-4px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container{margin-bottom:15px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container .domain{display:inline-block;margin-right:5px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container .domain:last-of-type{margin-bottom:0}
includes/vendor/freemius/wordpress-sdk/assets/css/admin/index.php ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <?php
2
+ // Silence is golden.
3
+ // Hide file structure from users on unprotected servers.
includes/vendor/freemius/wordpress-sdk/assets/css/index.php ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <?php
2
+ // Silence is golden.
3
+ // Hide file structure from users on unprotected servers.
includes/vendor/freemius/wordpress-sdk/assets/img/index.php ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <?php
2
+ // Silence is golden.
3
+ // Hide file structure from users on unprotected servers.
includes/vendor/freemius/wordpress-sdk/assets/js/index.php ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <?php
2
+ // Silence is golden.
3
+ // Hide file structure from users on unprotected servers.
includes/vendor/freemius/wordpress-sdk/assets/scss/_mixins.scss CHANGED
@@ -132,19 +132,6 @@ $useIEFilters: 0;
132
  }
133
  }
134
 
135
- /*@mixin rgba-bg ($hex, $alpha, $ie: $useIEFilters) {
136
- @if $ie == 1 {
137
- background-color: none;
138
- $hexopac: ie-hex-str(rgba($hex, $alpha));
139
- filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#{$hexopac}',EndColorStr='#{$hexopac}}');
140
- -ms-filter: quote(progid:DXImageTransform.Microsoft.gradient(startColorStr='#{$hexopac}',EndColorStr='#{$hexopac}'));
141
- }
142
- @else {
143
- background-color: $hex;
144
- background-color: rgba($hex, $alpha);
145
- }
146
- }*/
147
-
148
  @mixin perspective($perspective) {
149
  -moz-perspective: $perspective;
150
  -ms-perspective: $perspective;
132
  }
133
  }
134
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135
  @mixin perspective($perspective) {
136
  -moz-perspective: $perspective;
137
  -ms-perspective: $perspective;
includes/vendor/freemius/wordpress-sdk/assets/scss/_vars.scss DELETED
@@ -1,6 +0,0 @@
1
- $is_production: true;
2
-
3
- $img_common: if($is_production == true, '//img.freemius.com', 'http://img.freemius:8080');
4
-
5
- $layout_width: 960px;
6
- $admin_mobile_max_width: 782px;
 
 
 
 
 
 
includes/vendor/freemius/wordpress-sdk/assets/scss/admin/affiliation.scss ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import "../start";
2
+
3
+ #fs_affiliation_content_wrapper {
4
+ #messages {
5
+ margin-top: 25px;
6
+ }
7
+
8
+ h3 {
9
+ font-size: 24px;
10
+ padding: 0;
11
+ margin-left: 0;
12
+ }
13
+
14
+ ul {
15
+ li {
16
+ @include box-sizing(border-box);
17
+ list-style-type: none;
18
+
19
+ &:before {
20
+ content: '✓';
21
+ margin-right: 10px;
22
+ font-weight: bold;
23
+ }
24
+ }
25
+ }
26
+
27
+ p:not(.description), li, label {
28
+ font-size: 16px !important;
29
+ line-height: 26px !important;
30
+ }
31
+
32
+ .button {
33
+ margin-top: 20px;
34
+ margin-bottom: 7px;
35
+ line-height: 35px;
36
+ height: 40px;
37
+ font-size: 16px;
38
+
39
+ &#cancel_button {
40
+ margin-right: 5px;
41
+ }
42
+ }
43
+
44
+ form {
45
+ .input-container {
46
+ .input-label {
47
+ font-weight: bold;
48
+ display: block;
49
+ width: 100%;
50
+ }
51
+
52
+ &.input-container-text {
53
+ label, input, textarea {
54
+ display: block;
55
+ }
56
+ }
57
+
58
+ margin-bottom: 15px;
59
+
60
+ #add_domain, .remove-domain {
61
+ text-decoration: none;
62
+ display: inline-block;
63
+ margin-top: 3px;
64
+
65
+ &:focus {
66
+ box-shadow: none;
67
+ }
68
+
69
+ &.disabled {
70
+ color: #aaa;
71
+ cursor: default;
72
+ }
73
+ }
74
+ }
75
+
76
+ #extra_domains_container {
77
+ .description {
78
+ margin-top: 0;
79
+ position: relative;
80
+ top: -4px;
81
+ }
82
+
83
+ .extra-domain-input-container {
84
+ margin-bottom: 15px;
85
+
86
+ .domain {
87
+ display: inline-block;
88
+ margin-right: 5px;
89
+
90
+ &:last-of-type {
91
+ margin-bottom: 0;
92
+ }
93
+ }
94
+ }
95
+ }
96
+ }
97
+ }
includes/vendor/freemius/wordpress-sdk/assets/scss/admin/index.php ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <?php
2
+ // Silence is golden.
3
+ // Hide file structure from users on unprotected servers.
includes/vendor/freemius/wordpress-sdk/assets/scss/index.php ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <?php
2
+ // Silence is golden.
3
+ // Hide file structure from users on unprotected servers.
includes/vendor/freemius/wordpress-sdk/composer.json DELETED
@@ -1,10 +0,0 @@
1
- {
2
- "name": "freemius/wordpress-sdk",
3
- "description": "Freemius WordPress SDK",
4
- "keywords": ["freemius", "wordpress", "plugin", "sdk"],
5
- "homepage": "https://freemius.com",
6
- "license": "GPL-2.0+",
7
- "require": {
8
- "php": ">=5.2"
9
- }
10
- }
 
 
 
 
 
 
 
 
 
 
includes/vendor/freemius/wordpress-sdk/config.php CHANGED
@@ -231,7 +231,7 @@
231
  }
232
 
233
  if ( ! defined( 'FS_CHECKOUT__ADDRESS_LOCALHOST' ) ) {
234
- define( 'FS_CHECKOUT__ADDRESS_LOCALHOST', 'http://checkout.freemius:8080' );
235
  }
236
 
237
  if ( ! defined( 'FS_CHECKOUT__ADDRESS' ) ) {
@@ -285,6 +285,9 @@
285
  if ( ! defined( 'WP_FS__TIME_24_HOURS_IN_SEC' ) ) {
286
  define( 'WP_FS__TIME_24_HOURS_IN_SEC', 86400 );
287
  }
 
 
 
288
 
289
  #--------------------------------------------------------------------------------
290
  #region Debugging
231
  }
232
 
233
  if ( ! defined( 'FS_CHECKOUT__ADDRESS_LOCALHOST' ) ) {
234
+ define( 'FS_CHECKOUT__ADDRESS_LOCALHOST', 'http://checkout.freemius-local.com:8080' );
235
  }
236
 
237
  if ( ! defined( 'FS_CHECKOUT__ADDRESS' ) ) {
285
  if ( ! defined( 'WP_FS__TIME_24_HOURS_IN_SEC' ) ) {
286
  define( 'WP_FS__TIME_24_HOURS_IN_SEC', 86400 );
287
  }
288
+ if ( ! defined( 'WP_FS__TIME_WEEK_IN_SEC' ) ) {
289
+ define( 'WP_FS__TIME_WEEK_IN_SEC', 7 * WP_FS__TIME_24_HOURS_IN_SEC );
290
+ }
291
 
292
  #--------------------------------------------------------------------------------
293
  #region Debugging
includes/vendor/freemius/wordpress-sdk/gulpfile.js DELETED
@@ -1,139 +0,0 @@
1
- var gulp = require('gulp');
2
- var path = require('path');
3
- var filesystem = require('fs');
4
- var wpPot = require('gulp-wp-pot');
5
- var gettext = require('gulp-gettext');
6
- var sort = require('gulp-sort');
7
- var pofill = require('gulp-pofill');
8
- var rename = require('gulp-rename');
9
- var clean = require('gulp-clean');
10
-
11
- var languagesFolder = './languages/';
12
-
13
- var options = require('./transifex-config.json')
14
-
15
- function getFolders(dir) {
16
- return filesystem.readdirSync(dir)
17
- .filter(function (file) {
18
- return filesystem.statSync(path.join(dir, file)).isDirectory();
19
- });
20
- }
21
-
22
- var transifex = require('gulp-transifex').createClient(options);
23
-
24
- // Create POT out of i18n.php.
25
- gulp.task('prepare-source', function () {
26
- gulp.src('includes/i18n.php')
27
- .pipe(sort())
28
- .pipe(wpPot({
29
- destFile : 'freemius.pot',
30
- package : 'freemius',
31
- bugReport : 'https://github.com/Freemius/wordpress-sdk/issues',
32
- lastTranslator : 'Vova Feldman <vova@freemius.com>',
33
- team : 'Freemius Team <admin@freemius.com>',
34
- gettextFunctions: [
35
- {name: '_fs_text'},
36
- {name: '_fs_echo'},
37
- {name: '_fs_esc_attr'},
38
- {name: '_fs_esc_attr_echo'},
39
- {name: '_fs_esc_html'},
40
- {name: '_fs_esc_html_echo'},
41
- {name: '_fs_x', context: 2},
42
- {name: '_fs_ex', context: 2},
43
- {name: '_fs_esc_attr_x', context: 2},
44
- {name: '_fs_esc_html_x', context: 2},
45
- {name: '_fs_n', plural: 2},
46
- {name: '_fs_n_noop', plural: 2},
47
- {name: '_fs_nx', plural: 2, context: 4},
48
- {name: '_fs_nx_noop', plural: 2, context: 3}
49
- ]
50
- }))
51
- .pipe(gulp.dest(languagesFolder + 'freemius.pot'));
52
-
53
- // Create English PO out of the POT.
54
- return gulp.src(languagesFolder + 'freemius.pot')
55
- .pipe(pofill({
56
- items: function (item) {
57
- // If msgstr is empty, use identity translation
58
- if (!item.msgstr.length) {
59
- item.msgstr = [''];
60
- }
61
- if (!item.msgstr[0]) {
62
- item.msgstr[0] = item.msgid;
63
- }
64
- return item;
65
- }
66
- }))
67
- .pipe(rename('freemius-en.po'))
68
- .pipe(gulp.dest(languagesFolder));
69
- });
70
-
71
- // Push updated po resource to transifex.
72
- gulp.task('update-transifex', ['prepare-source'], function () {
73
- return gulp.src(languagesFolder + 'freemius-en.po')
74
- .pipe(transifex.pushResource());
75
- });
76
-
77
- // Download latest *.po translations.
78
- gulp.task('download-translations', ['update-transifex'], function () {
79
- return gulp.src(languagesFolder + 'freemius-en.po')
80
- .pipe(transifex.pullResource());
81
- });
82
-
83
- // Move translations to languages root.
84
- gulp.task('prepare-translations', ['download-translations'], function () {
85
- var folders = getFolders(languagesFolder);
86
-
87
- return folders.map(function (folder) {
88
- return gulp.src(path.join(languagesFolder, folder, 'freemius-en.po'))
89
- .pipe(rename('freemius-' + folder + '.po'))
90
- .pipe(gulp.dest(languagesFolder));
91
- });
92
- });
93
-
94
- // Feel up empty translations with English.
95
- gulp.task('translations-feelup', ['prepare-translations'], function () {
96
- return gulp.src(languagesFolder + '*.po')
97
- .pipe(pofill({
98
- items: function (item) {
99
- // If msgstr is empty, use identity translation
100
- if (0 == item.msgstr.length) {
101
- item.msgstr = [''];
102
- }
103
- if (0 == item.msgstr[0].length) {
104
- // item.msgid[0] = item.msgid;
105
- item.msgstr[0] = item.msgid;
106
- }
107
- return item;
108
- }
109
- }))
110
- .pipe(gulp.dest(languagesFolder));
111
- });
112
-
113
- // Cleanup temporary translation folders.
114
- gulp.task('cleanup', ['prepare-translations'], function () {
115
- var folders = getFolders(languagesFolder);
116
-
117
- return folders.map(function (folder) {
118
- return gulp.src(path.join(languagesFolder, folder), {read: false})
119
- .pipe(clean());
120
- });
121
- });
122
-
123
- // Compile *.po to *.mo binaries for usage.
124
- gulp.task('compile-translations', ['translations-feelup'], function () {
125
- // Compile POs to MOs.
126
- return gulp.src(languagesFolder + '*.po')
127
- .pipe(gettext())
128
- .pipe(gulp.dest(languagesFolder))
129
- });
130
-
131
- gulp.task('default', [], function () {
132
- gulp.run('prepare-source');
133
- gulp.run('update-transifex');
134
- gulp.run('download-translations');
135
- gulp.run('prepare-translations');
136
- gulp.run('translations-feelup');
137
- gulp.run('cleanup');
138
- gulp.run('compile-translations');
139
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/freemius/wordpress-sdk/includes/class-freemius.php CHANGED
@@ -271,6 +271,33 @@
271
  */
272
  private static $_instances = array();
273
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
274
  #region Uninstall Reasons IDs
275
 
276
  const REASON_NO_LONGER_NEEDED = 1;
@@ -528,6 +555,18 @@
528
  return;
529
  }
530
 
 
 
 
 
 
 
 
 
 
 
 
 
531
  if ( version_compare( $sdk_prev_version, '1.1.5', '<' ) &&
532
  version_compare( $sdk_version, '1.1.5', '>=' )
533
  ) {
@@ -551,6 +590,46 @@
551
  }
552
  }
553
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
554
  /**
555
  * @author Vova Feldman (@svovaf)
556
  * @since 1.2.2.7
@@ -732,6 +811,8 @@
732
  '_install_premium_version_ajax_action'
733
  ) );
734
 
 
 
735
  $this->add_action( 'after_plans_sync', array( &$this, '_check_for_trial_plans' ) );
736
 
737
  $this->add_action( 'sdk_version_update', array( &$this, '_data_migration' ), WP_FS__DEFAULT_PRIORITY, 2 );
@@ -739,6 +820,7 @@
739
  $this->add_filter( 'after_code_type_change', array( &$this, '_after_code_type_change' ) );
740
 
741
  add_action( 'admin_init', array( &$this, '_add_trial_notice' ) );
 
742
  add_action( 'admin_init', array( &$this, '_enqueue_common_css' ) );
743
 
744
  /**
@@ -844,8 +926,11 @@
844
  // Try to load the cached value of the file path.
845
  if ( isset( $this->_storage->plugin_main_file ) ) {
846
  $plugin_main_file = $this->_storage->plugin_main_file;
847
- if ( isset( $plugin_main_file->path ) && file_exists( $plugin_main_file->path ) ) {
848
- return $plugin_main_file->path;
 
 
 
849
  }
850
  }
851
 
@@ -864,15 +949,16 @@
864
  if ( isset( $this->_storage->plugin_main_file ) &&
865
  isset( $this->_storage->plugin_main_file->prev_path )
866
  ) {
867
- if ( file_exists( $this->_storage->plugin_main_file->prev_path ) ) {
868
- return $this->_storage->plugin_main_file->prev_path;
 
869
  }
870
  }
871
 
872
  wp_die(
873
- $this->get_text( 'failed-finding-main-path' ) .
874
  " Module: {$this->_slug}; SDK: " . WP_FS__SDK_VERSION . ";",
875
- $this->get_text( 'error' ),
876
  array( 'back_link' => true )
877
  );
878
  }
@@ -888,8 +974,61 @@
888
  'path' => $id_slug_type_path_map[ $this->_module_id ]['path'],
889
  );
890
 
891
- return $id_slug_type_path_map[ $this->_module_id ]['path'];
892
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
893
 
894
  /**
895
  * @author Leo Fajardo (@leorw)
@@ -912,7 +1051,19 @@
912
  $store_option = true;
913
  }
914
 
915
- if ( ! isset( $id_slug_type_path_map[ $module_id ]['path'] ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
916
  $caller_main_file_and_type = $this->get_caller_main_file_and_type();
917
 
918
  $id_slug_type_path_map[ $module_id ]['type'] = $caller_main_file_and_type->module_type;
@@ -1002,8 +1153,18 @@
1002
  */
1003
 
1004
  if ( $caller_file_path == fs_normalize_path( realpath( trailingslashit( $themes_dir ) . basename( dirname( $caller_file_path ) ) . '/' . basename( $caller_file_path ) ) ) ) {
1005
- $module_type = WP_FS__MODULE_TYPE_THEME;
1006
- $caller_file_candidate = $caller_file_path;
 
 
 
 
 
 
 
 
 
 
1007
  continue;
1008
  }
1009
  }
@@ -1021,7 +1182,7 @@
1021
 
1022
  if ( isset( $caller_map[ $caller_file_hash ] ) ) {
1023
  $module_type = WP_FS__MODULE_TYPE_PLUGIN;
1024
- $caller_file_candidate = $caller_map[ $caller_file_hash ];
1025
  }
1026
  }
1027
 
@@ -1113,18 +1274,18 @@
1113
 
1114
  $reason_found_better_plugin = array(
1115
  'id' => self::REASON_FOUND_A_BETTER_PLUGIN,
1116
- 'text' => sprintf( $this->get_text( 'reason-found-a-better-plugin' ), $module_type ),
1117
  'input_type' => 'textfield',
1118
- 'input_placeholder' => sprintf( $this->get_text( 'placeholder-plugin-name' ), $module_type ),
1119
  );
1120
 
1121
  $reason_temporary_deactivation = array(
1122
  'id' => self::REASON_TEMPORARY_DEACTIVATION,
1123
  'text' => sprintf(
1124
- $this->get_text( 'reason-temporary-x' ),
1125
  strtolower( $this->is_plugin() ?
1126
- $this->get_text( 'deactivation' ) :
1127
- $this->get_text( 'theme-switch' )
1128
  )
1129
  ),
1130
  'input_type' => '',
@@ -1133,7 +1294,7 @@
1133
 
1134
  $reason_other = array(
1135
  'id' => self::REASON_OTHER,
1136
- 'text' => $this->get_text( 'reason-other' ),
1137
  'input_type' => 'textfield',
1138
  'input_placeholder' => ''
1139
  );
@@ -1141,27 +1302,27 @@
1141
  $long_term_user_reasons = array(
1142
  array(
1143
  'id' => self::REASON_NO_LONGER_NEEDED,
1144
- 'text' => sprintf( $this->get_text( 'reason-no-longer-needed' ), $module_type ),
1145
  'input_type' => '',
1146
  'input_placeholder' => ''
1147
  ),
1148
  $reason_found_better_plugin,
1149
  array(
1150
  'id' => self::REASON_NEEDED_FOR_A_SHORT_PERIOD,
1151
- 'text' => sprintf( $this->get_text( 'reason-needed-for-a-short-period' ), $module_type ),
1152
  'input_type' => '',
1153
  'input_placeholder' => ''
1154
  ),
1155
  array(
1156
  'id' => self::REASON_BROKE_MY_SITE,
1157
- 'text' => sprintf( $this->get_text( 'reason-broke-my-site' ), $module_type ),
1158
  'input_type' => '',
1159
  'input_placeholder' => '',
1160
  'internal_message' => $contact_support_template
1161
  ),
1162
  array(
1163
  'id' => self::REASON_SUDDENLY_STOPPED_WORKING,
1164
- 'text' => sprintf( $this->get_text( 'reason-suddenly-stopped-working' ), $module_type ),
1165
  'input_type' => '',
1166
  'input_placeholder' => '',
1167
  'internal_message' => $contact_support_template
@@ -1171,15 +1332,15 @@
1171
  if ( $this->is_paying() ) {
1172
  $long_term_user_reasons[] = array(
1173
  'id' => self::REASON_CANT_PAY_ANYMORE,
1174
- 'text' => $this->get_text( 'reason-cant-pay-anymore' ),
1175
  'input_type' => 'textfield',
1176
- 'input_placeholder' => $this->get_text( 'placeholder-comfortable-price' )
1177
  );
1178
  }
1179
 
1180
  $reason_dont_share_info = array(
1181
  'id' => self::REASON_DONT_LIKE_TO_SHARE_MY_INFORMATION,
1182
- 'text' => $this->get_text( 'reason-dont-like-to-share-my-information' ),
1183
  'input_type' => '',
1184
  'input_placeholder' => ''
1185
  );
@@ -1200,7 +1361,7 @@
1200
  'non-registered-and-non-anonymous-short-term' => array(
1201
  array(
1202
  'id' => self::REASON_DIDNT_WORK,
1203
- 'text' => sprintf( $this->get_text( 'reason-didnt-work' ), $module_type ),
1204
  'input_type' => '',
1205
  'input_placeholder' => ''
1206
  ),
@@ -1210,7 +1371,7 @@
1210
  'short-term' => array(
1211
  array(
1212
  'id' => self::REASON_COULDNT_MAKE_IT_WORK,
1213
- 'text' => $this->get_text( 'reason-couldnt-make-it-work' ),
1214
  'input_type' => '',
1215
  'input_placeholder' => '',
1216
  'internal_message' => $contact_support_template
@@ -1218,27 +1379,27 @@
1218
  $reason_found_better_plugin,
1219
  array(
1220
  'id' => self::REASON_GREAT_BUT_NEED_SPECIFIC_FEATURE,
1221
- 'text' => sprintf( $this->get_text( 'reason-great-but-need-specific-feature' ), $module_type ),
1222
  'input_type' => 'textarea',
1223
- 'input_placeholder' => $this->get_text( 'placeholder-feature' )
1224
  ),
1225
  array(
1226
  'id' => self::REASON_NOT_WORKING,
1227
- 'text' => sprintf( $this->get_text( 'reason-not-working' ), $module_type ),
1228
  'input_type' => 'textarea',
1229
- 'input_placeholder' => $this->get_text( 'placeholder-share-what-didnt-work' )
1230
  ),
1231
  array(
1232
  'id' => self::REASON_NOT_WHAT_I_WAS_LOOKING_FOR,
1233
- 'text' => $this->get_text( 'reason-not-what-i-was-looking-for' ),
1234
  'input_type' => 'textarea',
1235
- 'input_placeholder' => $this->get_text( 'placeholder-what-youve-been-looking-for' )
1236
  ),
1237
  array(
1238
  'id' => self::REASON_DIDNT_WORK_AS_EXPECTED,
1239
- 'text' => sprintf( $this->get_text( 'reason-didnt-work-as-expected' ), $module_type ),
1240
  'input_type' => 'textarea',
1241
- 'input_placeholder' => $this->get_text( 'placeholder-what-did-you-expect' )
1242
  )
1243
  )
1244
  );
@@ -1774,7 +1935,7 @@
1774
 
1775
  self::$_static_logger->entrance();
1776
 
1777
- $title = sprintf( '%s [v.%s]', fs_text( 'freemius-debug' ), WP_FS__SDK_VERSION );
1778
 
1779
  if ( WP_FS__DEV_MODE ) {
1780
  // Add top-level debug menu item.
@@ -2181,29 +2342,36 @@
2181
  *
2182
  * @return string
2183
  */
2184
- function get_anonymous_id() {
2185
- $unique_id = self::$_accounts->get_option( 'unique_id' );
2186
 
2187
- if ( empty( $unique_id ) || ! is_string( $unique_id ) ) {
2188
- $key = get_site_url();
2189
 
2190
- // If localhost, assign microtime instead of domain.
2191
- if ( WP_FS__IS_LOCALHOST ||
2192
- false !== strpos( $key, 'localhost' ) ||
2193
- false === strpos( $key, '.' )
2194
- ) {
2195
- $key = microtime();
2196
- }
2197
 
2198
- $unique_id = md5( $key );
 
 
 
 
 
 
 
2199
 
2200
- self::$_accounts->set_option( 'unique_id', $unique_id, true );
2201
- }
2202
 
2203
- $this->_logger->departure( $unique_id );
2204
 
2205
- return $unique_id;
2206
- }
2207
 
2208
  /**
2209
  * @author Vova Feldman (@svovaf)
@@ -2283,6 +2451,18 @@
2283
  // $admin_email = get_option( 'admin_email' );
2284
  $admin_email = $current_user->user_email;
2285
 
 
 
 
 
 
 
 
 
 
 
 
 
2286
  $message = false;
2287
  if ( is_object( $api_result ) &&
2288
  isset( $api_result->error ) &&
@@ -2309,15 +2489,15 @@
2309
  if ( ! empty( $missing_methods ) ) {
2310
  $missing_methods = sprintf(
2311
  '<br><br><b>%s</b> %s',
2312
- $this->get_text( 'curl-disabled-methods' ),
2313
  $missing_methods
2314
  );
2315
  }
2316
  }
2317
 
2318
  $message = sprintf(
2319
- $this->get_text( 'x-requires-access-to-api' ) . ' ' .
2320
- $this->get_text( 'curl-missing-message' ) . ' ' .
2321
  $missing_methods .
2322
  ' %s',
2323
  '<b>' . $this->get_plugin_name() . '</b>',
@@ -2325,95 +2505,95 @@
2325
  '<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>',
2326
  sprintf(
2327
  '<a class="fs-resolve" data-type="curl" href="#"><b>%s</b></a>%s',
2328
- $this->get_text( 'curl-missing-no-clue-title' ),
2329
  ' - ' . sprintf(
2330
- $this->get_text( 'curl-missing-no-clue-desc' ),
2331
  '<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
2332
  )
2333
  ),
2334
  sprintf(
2335
  '<b>%s</b> - %s',
2336
- $this->get_text( 'sysadmin-title' ),
2337
- sprintf( $this->get_text( 'curl-missing-sysadmin-desc' ), $this->_module_type )
2338
  ),
2339
  sprintf(
2340
- '<a href="%s"><b>%s</b></a>%s',
2341
- wp_nonce_url( 'plugins.php?action=deactivate&amp;plugin=' . $this->_plugin_basename . '&amp;plugin_status=' . 'all' . '&amp;paged=' . '1' . '&amp;s=' . '', 'deactivate-plugin_' . $this->_plugin_basename ),
2342
- $this->get_text( 'deactivate-plugin-title' ),
2343
- ' - ' . $this->get_text( 'deactivate-plugin-desc' )
2344
  )
2345
  )
2346
  );
2347
  break;
2348
  case 'cloudflare_ddos_protection':
2349
  $message = sprintf(
2350
- $this->get_text( 'x-requires-access-to-api' ) . ' ' .
2351
- $this->get_text( 'cloudflare-blocks-connection-message' ) . ' ' .
2352
- $this->get_text( 'happy-to-resolve-issue-asap' ) .
2353
  ' %s',
2354
  '<b>' . $this->get_plugin_name() . '</b>',
2355
  sprintf(
2356
  '<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>',
2357
  sprintf(
2358
  '<a class="fs-resolve" data-type="cloudflare" href="#"><b>%s</b></a>%s',
2359
- $this->get_text( 'fix-issue-title' ),
2360
  ' - ' . sprintf(
2361
- $this->get_text( 'fix-issue-desc' ),
2362
  '<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
2363
  )
2364
  ),
2365
  sprintf(
2366
- '<a href="%s" target="_blank"><b>%s</b></a>%s',
2367
  sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ),
2368
- $this->get_text( 'install-previous-title' ),
2369
- ' - ' . $this->get_text( 'install-previous-desc' )
2370
  ),
2371
  sprintf(
2372
- '<a href="%s"><b>%s</b></a>%s',
2373
- wp_nonce_url( 'plugins.php?action=deactivate&amp;plugin=' . $this->_plugin_basename . '&amp;plugin_status=' . 'all' . '&amp;paged=' . '1' . '&amp;s=' . '', 'deactivate-plugin_' . $this->_plugin_basename ),
2374
- $this->get_text( 'deactivate-plugin-title' ),
2375
- ' - ' . $this->get_text( 'deactivate-plugin-desc' )
2376
  )
2377
  )
2378
  );
2379
  break;
2380
  case 'squid_cache_block':
2381
  $message = sprintf(
2382
- $this->get_text( 'x-requires-access-to-api' ) . ' ' .
2383
- $this->get_text( 'squid-blocks-connection-message' ) .
2384
  ' %s',
2385
  '<b>' . $this->get_plugin_name() . '</b>',
2386
  sprintf(
2387
  '<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>',
2388
  sprintf(
2389
- '<a class="fs-resolve" data-type="squid" href="#"><b>%s</b></a>%s',
2390
- $this->get_text( 'squid-no-clue-title' ),
2391
- ' - ' . sprintf(
2392
- $this->get_text( 'squid-no-clue-desc' ),
2393
  '<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
2394
  )
2395
  ),
2396
  sprintf(
2397
  '<b>%s</b> - %s',
2398
- $this->get_text( 'sysadmin-title' ),
2399
  sprintf(
2400
- $this->get_text( 'squid-sysadmin-desc' ),
2401
  // We use a filter since the plugin might require additional API connectivity.
2402
  '<b>' . implode( ', ', $this->apply_filters( 'api_domains', array( 'api.freemius.com', 'wp.freemius.com' ) ) ) . '</b>',
2403
  $this->_module_type
2404
  )
2405
  ),
2406
  sprintf(
2407
- '<a href="%s"><b>%s</b></a>%s',
2408
- wp_nonce_url( 'plugins.php?action=deactivate&amp;plugin=' . $this->_plugin_basename . '&amp;plugin_status=' . 'all' . '&amp;paged=' . '1' . '&amp;s=' . '', 'deactivate-plugin_' . $this->_plugin_basename ),
2409
- $this->get_text( 'deactivate-plugin-title' ),
2410
- ' - ' . $this->get_text( 'deactivate-plugin-desc' )
2411
  )
2412
  )
2413
  );
2414
  break;
2415
  // default:
2416
- // $message = $this->get_text( 'connectivity-test-fails-message' );
2417
  // break;
2418
  }
2419
  }
@@ -2421,25 +2601,27 @@
2421
  $message_id = 'failed_connect_api';
2422
  $type = 'error';
2423
 
 
 
2424
  if ( false === $message ) {
2425
  if ( $is_first_failure ) {
2426
  // First attempt failed.
2427
  $message = sprintf(
2428
- $this->get_text( 'x-requires-access-to-api' ) . ' ' .
2429
- $this->get_text( 'connectivity-test-fails-message' ) . ' ' .
2430
- $this->get_text( 'connectivity-test-maybe-temporary' ) . '<br><br>' .
2431
  '%s',
2432
  '<b>' . $this->get_plugin_name() . '</b>',
2433
  sprintf(
2434
  '<div id="fs_firewall_issue_options">%s %s</div>',
2435
  sprintf(
2436
  '<a class="button button-primary fs-resolve" data-type="retry_ping" href="#">%s</a>',
2437
- $this->get_text( 'yes-do-your-thing' )
2438
  ),
2439
  sprintf(
2440
  '<a href="%s" class="button">%s</a>',
2441
- wp_nonce_url( 'plugins.php?action=deactivate&amp;plugin=' . $this->_plugin_basename . '&amp;plugin_status=' . 'all' . '&amp;paged=' . '1' . '&amp;s=' . '', 'deactivate-plugin_' . $this->_plugin_basename ),
2442
- $this->get_text( 'no-deactivate' )
2443
  )
2444
  )
2445
  );
@@ -2449,32 +2631,32 @@
2449
  } else {
2450
  // Second connectivity attempt failed.
2451
  $message = sprintf(
2452
- $this->get_text( 'x-requires-access-to-api' ) . ' ' .
2453
- $this->get_text( 'connectivity-test-fails-message' ) . ' ' .
2454
- $this->get_text( 'happy-to-resolve-issue-asap' ) .
2455
  ' %s',
2456
  '<b>' . $this->get_plugin_name() . '</b>',
2457
  sprintf(
2458
  '<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>',
2459
  sprintf(
2460
  '<a class="fs-resolve" data-type="general" href="#"><b>%s</b></a>%s',
2461
- $this->get_text( 'fix-issue-title' ),
2462
  ' - ' . sprintf(
2463
- $this->get_text( 'fix-issue-desc' ),
2464
  '<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
2465
  )
2466
  ),
2467
  sprintf(
2468
- '<a href="%s" target="_blank"><b>%s</b></a>%s',
2469
  sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ),
2470
- $this->get_text( 'install-previous-title' ),
2471
- ' - ' . $this->get_text( 'install-previous-desc' )
2472
  ),
2473
  sprintf(
2474
- '<a href="%s"><b>%s</b></a>%s',
2475
- wp_nonce_url( 'plugins.php?action=deactivate&amp;plugin=' . $this->_plugin_basename . '&amp;plugin_status=' . 'all' . '&amp;paged=' . '1' . '&amp;s=' . '', 'deactivate-plugin_' . $this->_plugin_basename ),
2476
- $this->get_text( 'deactivate-plugin-title' ),
2477
- ' - ' . $this->get_text( 'deactivate-plugin-desc' )
2478
  )
2479
  )
2480
  );
@@ -2484,7 +2666,7 @@
2484
  $this->_admin_notices->add_sticky(
2485
  $message,
2486
  $message_id,
2487
- $this->get_text( 'oops' ) . '...',
2488
  $type
2489
  );
2490
  }
@@ -2551,7 +2733,7 @@
2551
 
2552
  $this->_admin_notices->add_sticky(
2553
  sprintf(
2554
- $this->get_text( 'fix-request-sent-message' ),
2555
  '<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
2556
  ),
2557
  'server_details_sent'
@@ -2942,10 +3124,10 @@
2942
 
2943
  $this->_admin_notices->add(
2944
  ( ! empty( $parent_name ) ?
2945
- sprintf( $this->get_text( 'addon-x-cannot-run-without-y' ), $this->get_plugin_name(), $parent_name ) :
2946
- sprintf( $this->get_text( 'addon-x-cannot-run-without-parent' ), $this->get_plugin_name() )
2947
  ),
2948
- $this->get_text( 'oops' ) . '...',
2949
  'error'
2950
  );
2951
 
@@ -3064,7 +3246,7 @@
3064
  $this->_logger->api_error( $result );
3065
 
3066
  self::shoot_ajax_failure(
3067
- $this->get_text( 'unexpected-api-error' ) .
3068
  ( $this->is_api_error( $result ) && isset( $result->error ) ?
3069
  $result->error->message :
3070
  var_export( $result, true ) )
@@ -3089,7 +3271,7 @@
3089
  $this->_logger->api_error( $result );
3090
 
3091
  self::shoot_ajax_failure(
3092
- $this->get_text( 'unexpected-api-error' ) .
3093
  ( $this->is_api_error( $result ) && isset( $result->error ) ?
3094
  $result->error->message :
3095
  var_export( $result, true ) )
@@ -3276,17 +3458,17 @@
3276
  new FS_Plugin();
3277
 
3278
  $plugin->update( array(
3279
- 'id' => $id,
3280
- 'public_key' => $public_key,
3281
- 'slug' => $this->_slug,
3282
- 'parent_plugin_id' => $parent_id,
3283
- 'version' => $this->get_plugin_version(),
3284
- 'title' => $this->get_plugin_name(),
3285
- 'file' => $this->_plugin_basename,
3286
- 'is_premium' => $this->get_bool_option( $plugin_info, 'is_premium', true ),
3287
- 'is_live' => $this->get_bool_option( $plugin_info, 'is_live', true ),
3288
- 'type' => $this->_module_type,
3289
- // 'secret_key' => $secret_key,
3290
  ) );
3291
 
3292
  if ( $plugin->is_updated() ) {
@@ -3495,11 +3677,14 @@
3495
  'license_activated',
3496
  ) );
3497
 
3498
- $this->_admin_notices->add_sticky(
3499
- sprintf( $this->get_text( 'premium-activated-message' ), $this->_module_type ),
3500
- 'premium_activated',
3501
- $this->get_text( 'woot' ) . '!'
3502
- );
 
 
 
3503
  } else {
3504
  // Remove sticky message related to premium code activation.
3505
  $this->_admin_notices->remove_sticky( 'premium_activated' );
@@ -3510,11 +3695,12 @@
3510
  if ( $this->is_paying() && ! $this->is_premium() ) {
3511
  $this->_admin_notices->add_sticky(
3512
  sprintf(
3513
- $this->get_text( 'you-have-x-license' ),
 
3514
  $this->_site->plan->title
3515
  ) . $this->get_complete_upgrade_instructions(),
3516
  'plan_upgraded',
3517
- $this->get_text( 'yee-haw' ) . '!'
3518
  );
3519
  }
3520
  }
@@ -3777,19 +3963,25 @@
3777
 
3778
  $this->_parent->_admin_notices->add_sticky(
3779
  sprintf(
3780
- $this->_parent->get_text( $is_after_trial_cancel ?
3781
- 'addon-trial-cancelled-message' :
3782
- 'addon-no-license-message'
 
 
 
 
 
 
3783
  ),
3784
  '<b>' . $this->_plugin->title . '</b>'
3785
  ) . ' ' . sprintf(
3786
  '<a href="%s" aria-label="%s" class="button button-primary" style="margin-left: 10px; vertical-align: middle;">%s &nbsp;&#10140;</a>',
3787
  $this->_parent->addon_url( $this->_slug ),
3788
- esc_attr( sprintf( $this->_parent->get_text( 'more-information-about-x' ), $this->_plugin->title ) ),
3789
- $this->_parent->get_text( 'purchase-license' )
3790
  ),
3791
  'no_addon_license_' . $this->_slug,
3792
- ( $is_after_trial_cancel ? '' : $this->_parent->get_text( 'oops' ) . '...' ),
3793
  ( $is_after_trial_cancel ? 'success' : 'error' )
3794
  );
3795
 
@@ -4223,10 +4415,12 @@
4223
 
4224
  $this->_admin_notices->add_sticky(
4225
  sprintf(
4226
- $this->get_text( 'pending-activation-message' ),
4227
  '<b>' . $this->get_plugin_name() . '</b>',
4228
  '<b>' . $email . '</b>',
4229
- $this->get_text( $is_pending_trial ? 'start-the-trial' : 'complete-the-install' )
 
 
4230
  ),
4231
  'activation_pending',
4232
  'Thanks!'
@@ -4305,10 +4499,11 @@
4305
  // Show notice for new plugin installations.
4306
  $this->_admin_notices->add(
4307
  sprintf(
4308
- $this->get_text( 'you-are-step-away' ),
4309
  sprintf( '<b><a href="%s">%s</a></b>',
4310
  $this->get_activation_url(),
4311
- sprintf( $this->get_text( 'activate-x-now' ), $this->get_plugin_name() )
 
4312
  )
4313
  ),
4314
  '',
@@ -4321,11 +4516,11 @@
4321
  // Show notice for new plugin installations.
4322
  $this->_admin_notices->add_sticky(
4323
  sprintf(
4324
- $this->get_text( 'few-plugin-tweaks' ),
4325
  $this->_module_type,
4326
  sprintf( '<b><a href="%s">%s</a></b>',
4327
  $this->get_activation_url(),
4328
- sprintf( $this->get_text( 'optin-x-now' ), $this->get_plugin_name() )
4329
  )
4330
  ),
4331
  'connect_account',
@@ -4710,8 +4905,9 @@
4710
  // If activating the premium module version, add an admin notice to congratulate for an upgrade completion.
4711
  if ( $is_premium_version_activation ) {
4712
  $this->_admin_notices->add(
4713
- sprintf( $this->get_text( 'successful-version-upgrade-message' ), sprintf( '<b>%s</b>', $this->_plugin->title ) ),
4714
- $this->get_text( 'woot' ) . '!'
 
4715
  );
4716
  }
4717
  } else if ( $this->is_anonymous() ) {
@@ -5794,13 +5990,13 @@
5794
  */
5795
  function get_module_label( $lowercase = false ) {
5796
  $label = $this->is_addon() ?
5797
- $this->get_text( 'addon' ) :
5798
  ( $this->is_plugin() ?
5799
- $this->get_text( 'plugin' ) :
5800
- $this->get_text( 'theme' ) );
5801
 
5802
  if ( $lowercase ) {
5803
- $label = strtolower( $lowercase );
5804
  }
5805
 
5806
  return $label;
@@ -6921,13 +7117,13 @@
6921
  if ( isset( $install->error ) ) {
6922
  $error = $install->error->message;
6923
  } else {
6924
- $parent_fs = $fs->is_addon() ?
6925
- $fs->get_parent_instance() :
6926
- $fs;
6927
 
6928
- $next_page = $parent_fs->_get_sync_license_url( $fs->get_id(), true );
 
 
6929
 
6930
- $fs->reconnect_locally();
6931
  }
6932
  } else {
6933
  $next_page = $fs->opt_in( false, false, false, $license_key );
@@ -7054,9 +7250,9 @@
7054
  $error = $result->error;
7055
 
7056
  if ( in_array( $error->code, array( 'invalid_email', 'no_user' ) ) ) {
7057
- $error = $this->get_text( 'email-not-found' );
7058
  } else if ( 'no_license' === $error->code ) {
7059
- $error = $this->get_text( 'no-active-licenses' );
7060
  } else {
7061
  $error = $error->message;
7062
  }
@@ -7067,7 +7263,7 @@
7067
  );
7068
 
7069
  if ( false !== $error ) {
7070
- $licenses['error'] = sprintf( '%s... %s', $this->get_text( 'oops' ), strtolower( $error ) );
7071
  }
7072
 
7073
  echo json_encode( $licenses );
@@ -7100,7 +7296,7 @@
7100
  if ( self::is_ajax() &&
7101
  'admin-ajax.php' === $pagenow
7102
  ) {
7103
- $referer = wp_get_raw_referer();
7104
 
7105
  if ( is_string( $referer ) ) {
7106
  $parts = explode( '?', $referer );
@@ -7137,6 +7333,222 @@
7137
  return ( 'themes.php' === self::get_current_page() );
7138
  }
7139
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7140
  #----------------------------------------------------------------------------------
7141
  #region URL Generators
7142
  #----------------------------------------------------------------------------------
@@ -7586,7 +7998,10 @@
7586
  ) ), admin_url( 'admin.php', 'admin' ) );
7587
  } else {
7588
  // Plugin without a settings page.
7589
- return admin_url( 'plugins.php' );
 
 
 
7590
  }
7591
  }
7592
  }
@@ -8007,8 +8422,19 @@
8007
  $this->_site = clone $site;
8008
  $this->_site->plan = self::decrypt_entity( $this->_site->plan );
8009
 
 
 
 
 
 
 
 
 
 
 
 
8010
  // Load relevant user.
8011
- $this->_user = clone $users[ $this->_site->user_id ];
8012
 
8013
  // Load plans.
8014
  $this->_plans = $plans[ $this->_slug ];
@@ -8156,6 +8582,7 @@
8156
  * In this case, the user and site info will be sent to the server but no
8157
  * data will be saved to the WP installation's database.
8158
  * @param number|bool $trial_plan_id
 
8159
  *
8160
  * @return string|object
8161
  * @use WP_Error
@@ -8166,7 +8593,8 @@
8166
  $last = false,
8167
  $license_key = false,
8168
  $is_uninstall = false,
8169
- $trial_plan_id = false
 
8170
  ) {
8171
  $this->_logger->entrance();
8172
 
@@ -8219,7 +8647,28 @@
8219
  );
8220
  }
8221
 
8222
- $params['format'] = 'json';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8223
 
8224
  $url = WP_FS__ADDRESS . '/action/service/user/install/';
8225
  if ( isset( $_COOKIE['XDEBUG_SESSION'] ) ) {
@@ -8276,7 +8725,19 @@
8276
  return true;
8277
  }
8278
 
8279
- $decoded = @json_decode( $response['body'] );
 
 
 
 
 
 
 
 
 
 
 
 
8280
 
8281
  if ( empty( $decoded ) ) {
8282
  return false;
@@ -8294,7 +8755,9 @@
8294
  } else if ( isset( $decoded->pending_activation ) && $decoded->pending_activation ) {
8295
  // Pending activation, add message.
8296
  return $this->set_pending_confirmation(
8297
- true,
 
 
8298
  false,
8299
  $filtered_license_key,
8300
  ! empty( $params['trial_plan_id'] )
@@ -8360,7 +8823,7 @@
8360
 
8361
  $this->_admin_notices->remove_sticky( 'connect_account' );
8362
 
8363
- if ( $this->is_pending_activation() ) {
8364
  // Remove pending activation sticky notice (if still exist).
8365
  $this->_admin_notices->remove_sticky( 'activation_pending' );
8366
 
@@ -8369,31 +8832,32 @@
8369
 
8370
  if ( ! $this->is_paying_or_trial() ) {
8371
  $this->_admin_notices->add_sticky(
8372
- sprintf( $this->get_text( 'plugin-x-activation-message' ), '<b>' . $this->get_plugin_name() . '</b>' ),
 
8373
  'activation_complete'
8374
  );
8375
  }
8376
  }
8377
 
8378
  if ( $this->is_paying_or_trial() ) {
8379
- if ( ! $this->is_premium() || ! $this->has_premium_version() ) {
8380
  if ( $this->is_paying() ) {
8381
  $this->_admin_notices->add_sticky(
8382
  sprintf(
8383
- $this->get_text( 'activation-with-plan-x-message' ),
8384
  $this->_site->plan->title
8385
  ) . $this->get_complete_upgrade_instructions(),
8386
  'plan_upgraded',
8387
- $this->get_text( 'yee-haw' ) . '!'
8388
  );
8389
  } else {
8390
  $this->_admin_notices->add_sticky(
8391
  sprintf(
8392
- $this->get_text( 'trial-started-message' ),
8393
  '<i>' . $this->get_plugin_name() . '</i>'
8394
  ) . $this->get_complete_upgrade_instructions( $this->_storage->trial_plan->title ),
8395
  'trial_started',
8396
- $this->get_text( 'yee-haw' ) . '!'
8397
  );
8398
  }
8399
  }
@@ -8678,14 +9142,26 @@
8678
  $install = $this->apply_filters( 'after_install_failure', $install, $args );
8679
 
8680
  $this->_admin_notices->add(
8681
- sprintf( $this->get_text( 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
8682
- $this->get_text( 'contact-us-with-error-message' ) . ' ' . '<b>' . $install->error->message . '</b>',
8683
- $this->get_text( 'oops' ) . '...',
8684
  'error'
8685
  );
8686
 
8687
  if ( $redirect ) {
8688
- fs_redirect( $this->get_activation_url( array( 'error' => $install->error->message ) ) );
 
 
 
 
 
 
 
 
 
 
 
 
8689
  }
8690
 
8691
  return $install;
@@ -8722,9 +9198,9 @@
8722
 
8723
  if ( isset( $addon_install->error ) ) {
8724
  $this->_admin_notices->add(
8725
- sprintf( $this->get_text( 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
8726
- $this->get_text( 'contact-us-with-error-message' ) . ' ' . '<b>' . $addon_install->error->message . '</b>',
8727
- $this->get_text( 'oops' ) . '...',
8728
  'error'
8729
  );
8730
 
@@ -8783,15 +9259,23 @@
8783
 
8784
  if ( isset( $parent_install->error ) ) {
8785
  $this->_admin_notices->add(
8786
- sprintf( $this->get_text( 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
8787
- $this->get_text( 'contact-us-with-error-message' ) . ' ' . '<b>' . $parent_install->error->message . '</b>',
8788
- $this->get_text( 'oops' ) . '...',
8789
  'error'
8790
  );
8791
 
8792
  return;
8793
  }
8794
 
 
 
 
 
 
 
 
 
8795
  // First of all, set site info - otherwise we won't
8796
  // be able to invoke API calls.
8797
  $parent_fs->_site = new FS_Site( $parent_install );
@@ -8984,9 +9468,9 @@
8984
 
8985
  if ( false !== $hook ) {
8986
  if ( fs_request_is_action( $this->get_unique_affix() . '_activate_existing' ) ) {
8987
- add_action( "load-$hook", array( &$this, '_install_with_current_user' ) );
8988
  } else if ( fs_request_is_action( $this->get_unique_affix() . '_activate_new' ) ) {
8989
- add_action( "load-$hook", array( &$this, '_install_with_new_user' ) );
8990
  }
8991
  }
8992
  }
@@ -9034,15 +9518,15 @@
9034
  * @return string
9035
  */
9036
  function get_pricing_cta_label() {
9037
- $label = 'upgrade';
9038
 
9039
  if ( $this->is_in_trial_promotion() &&
9040
  ! $this->is_paying_or_trial()
9041
  ) {
9042
  // If running a trial promotion, modify the pricing to load the trial.
9043
- $label = 'start-trial';
9044
  } else if ( $this->is_paying() ) {
9045
- $label = 'pricing';
9046
  }
9047
 
9048
  return $label;
@@ -9079,6 +9563,20 @@
9079
  * @since 1.2.2.7 Also add submenu items when running in a free .org theme so the tabs will be visible.
9080
  */
9081
  if ( ! $this->is_activation_mode() || $this->is_free_wp_org_theme() ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9082
  if ( $this->is_registered() ) {
9083
  $show_account = (
9084
  $this->is_submenu_item_visible( 'account' ) &&
@@ -9090,9 +9588,9 @@
9090
 
9091
  // Add user account page.
9092
  $this->add_submenu_item(
9093
- $this->get_text( 'account' ),
9094
  array( &$this, '_account_page_render' ),
9095
- $this->get_plugin_name() . ' &ndash; ' . $this->get_text( 'account' ),
9096
  'manage_options',
9097
  'account',
9098
  array( &$this, '_account_page_load' ),
@@ -9103,9 +9601,9 @@
9103
 
9104
  // Add contact page.
9105
  $this->add_submenu_item(
9106
- $this->get_text( 'contact-us' ),
9107
  array( &$this, '_contact_page_render' ),
9108
- $this->get_plugin_name() . ' &ndash; ' . $this->get_text( 'contact-us' ),
9109
  'manage_options',
9110
  'contact',
9111
  'Freemius::_clean_admin_content_section',
@@ -9115,9 +9613,9 @@
9115
 
9116
  if ( $this->has_addons() ) {
9117
  $this->add_submenu_item(
9118
- $this->get_text( 'add-ons' ),
9119
  array( &$this, '_addons_page_render' ),
9120
- $this->get_plugin_name() . ' &ndash; ' . $this->get_text( 'add-ons' ),
9121
  'manage_options',
9122
  'addons',
9123
  array( &$this, '_addons_page_load' ),
@@ -9131,7 +9629,7 @@
9131
  $this->is_pricing_page_visible()
9132
  );
9133
 
9134
- $pricing_cta_slug = $this->get_pricing_cta_label();
9135
  $pricing_class = 'upgrade-mode';
9136
  if ( $show_pricing ) {
9137
  if ( $this->is_in_trial_promotion() &&
@@ -9146,9 +9644,9 @@
9146
 
9147
  // Add upgrade/pricing page.
9148
  $this->add_submenu_item(
9149
- $this->get_text( $pricing_cta_slug ) . '&nbsp;&nbsp;' . ( is_rtl() ? '&#x2190;' : '&#x27a4;' ),
9150
  array( &$this, '_pricing_page_render' ),
9151
- $this->get_plugin_name() . ' &ndash; ' . $this->get_text( 'pricing' ),
9152
  'manage_options',
9153
  'pricing',
9154
  'Freemius::_clean_admin_content_section',
@@ -9328,7 +9826,7 @@
9328
 
9329
  if ( ! $this->is_activation_mode() ) {
9330
  $this->add_submenu_link_item(
9331
- $this->apply_filters( 'support_forum_submenu', $this->get_text( 'support-forum' ) ),
9332
  $this->get_support_forum_url(),
9333
  'wp-support-forum',
9334
  null,
@@ -9840,7 +10338,23 @@
9840
  $encrypted_site = clone $this->_site;
9841
  $encrypted_site->plan = self::_encrypt_entity( $this->_site->plan );
9842
 
9843
- $sites = self::get_all_sites( $this->_module_type );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9844
  $sites[ $this->_slug ] = $encrypted_site;
9845
 
9846
  $this->set_account_option( 'sites', $sites, $store );
@@ -10052,8 +10566,8 @@
10052
  $this->do_action( 'account_email_verified', $user->email );
10053
 
10054
  $this->_admin_notices->add(
10055
- $this->get_text( 'email-verified-message' ),
10056
- $this->get_text( 'right-on' ) . '!',
10057
  'success',
10058
  // Make admin sticky if account menu item is invisible,
10059
  // since the page will be auto redirected to the plugin's
@@ -10185,21 +10699,24 @@
10185
  * @return FS_Plugin_Plan[]|object
10186
  */
10187
  private function _fetch_plugin_plans() {
10188
- $this->_logger->entrance();
10189
- $api = $this->get_api_site_scope();
10190
 
10191
- $result = $api->get( '/plans.json', true );
 
 
 
10192
 
10193
- if ( $this->is_api_result_object( $result, 'plans' ) && is_array( $result->plans ) ) {
10194
- for ( $i = 0, $len = count( $result->plans ); $i < $len; $i ++ ) {
10195
- $result->plans[ $i ] = new FS_Plugin_Plan( $result->plans[ $i ] );
10196
- }
10197
 
10198
- $result = $result->plans;
10199
- }
10200
 
10201
- return $result;
10202
- }
10203
 
10204
  /**
10205
  * @author Vova Feldman (@svovaf)
@@ -10584,24 +11101,18 @@
10584
  }
10585
 
10586
  $this->_admin_notices->add_sticky(
10587
- FS_Plan_Manager::instance()->has_free_plan( $plans ) ?
10588
- sprintf(
10589
- $this->get_text( 'addon-successfully-upgraded-message' ),
10590
- $addon->title
10591
- ) . ' ' . $this->get_latest_download_link(
10592
- $this->get_text( 'download-latest-version' ),
10593
- $addon_id
10594
- )
10595
- :
10596
- sprintf(
10597
- $this->get_text( 'addon-successfully-purchased-message' ),
10598
- $addon->title
10599
- ) . ' ' . $this->get_latest_download_link(
10600
- $this->get_text( 'download-latest-version' ),
10601
- $addon_id
10602
- ),
10603
  'addon_plan_upgraded_' . $addon->slug,
10604
- $this->get_text( 'yee-haw' ) . '!'
10605
  );
10606
  }
10607
  }
@@ -10646,11 +11157,11 @@
10646
  if ( ! self::$_global_admin_notices->has_sticky( 'api_blocked' ) ) {
10647
  self::$_global_admin_notices->add(
10648
  sprintf(
10649
- $this->get_text( 'server-blocking-access' ),
10650
  $this->get_plugin_name(),
10651
  '<a href="' . $api->get_url() . '" target="_blank">' . $api->get_url() . '</a>'
10652
- ) . '<br> ' . $this->get_text( 'server-error-message' ) . var_export( $site->error, true ),
10653
- $this->get_text( 'oops' ) . '...',
10654
  'error',
10655
  $background,
10656
  false,
@@ -10660,8 +11171,8 @@
10660
  } else {
10661
  // Authentication params are broken.
10662
  $this->_admin_notices->add(
10663
- $this->get_text( 'wrong-authentication-param-message' ),
10664
- $this->get_text( 'oops' ) . '...',
10665
  'error'
10666
  );
10667
  }
@@ -10777,6 +11288,8 @@
10777
  }
10778
  }
10779
 
 
 
10780
  if ( $this->has_paid_plan() ) {
10781
  switch ( $plan_change ) {
10782
  case 'none':
@@ -10788,19 +11301,19 @@
10788
  if ( $plan->is_free() ) {
10789
  $this->_admin_notices->add(
10790
  sprintf(
10791
- $this->get_text( 'plan-did-not-change-message' ),
10792
- '<i><b>' . $plan->title . ( $this->is_trial() ? ' ' . $this->get_text( 'trial' ) : '' ) . '</b></i>'
10793
  ) . ' ' . sprintf(
10794
  '<a href="%s">%s</a>',
10795
  $this->contact_url(
10796
  'bug',
10797
- sprintf( $this->get_text( 'plan-did-not-change-email-message' ),
10798
  strtoupper( $plan->name )
10799
  )
10800
  ),
10801
- $this->get_text( 'contact-us-here' )
10802
  ),
10803
- $this->get_text( 'hmm' ) . '...'
10804
  );
10805
  }
10806
  }
@@ -10808,11 +11321,11 @@
10808
  case 'upgraded':
10809
  $this->_admin_notices->add_sticky(
10810
  sprintf(
10811
- $this->get_text( 'plan-upgraded-message' ),
10812
  '<i>' . $this->get_plugin_name() . '</i>'
10813
  ) . $this->get_complete_upgrade_instructions(),
10814
  'plan_upgraded',
10815
- $this->get_text( 'yee-haw' ) . '!'
10816
  );
10817
 
10818
  $this->_admin_notices->remove_sticky( array(
@@ -10825,7 +11338,7 @@
10825
  case 'changed':
10826
  $this->_admin_notices->add_sticky(
10827
  sprintf(
10828
- $this->get_text( 'plan-changed-to-x-message' ),
10829
  $this->_site->plan->title
10830
  ),
10831
  'plan_changed'
@@ -10840,41 +11353,41 @@
10840
  break;
10841
  case 'downgraded':
10842
  $this->_admin_notices->add_sticky(
10843
- sprintf( $this->get_text( 'license-expired-blocking-message' ), $this->_module_type ),
10844
  'license_expired',
10845
- $this->get_text( 'hmm' ) . '...'
10846
  );
10847
  $this->_admin_notices->remove_sticky( 'plan_upgraded' );
10848
  break;
10849
  case 'cancelled':
10850
  $this->_admin_notices->add(
10851
- $this->get_text( 'license-cancelled' ) . ' ' .
10852
  sprintf(
10853
  '<a href="%s">%s</a>',
10854
  $this->contact_url( 'bug' ),
10855
- $this->get_text( 'contact-us-here' )
10856
  ),
10857
- $this->get_text( 'hmm' ) . '...',
10858
  'error'
10859
  );
10860
  $this->_admin_notices->remove_sticky( 'plan_upgraded' );
10861
  break;
10862
  case 'expired':
10863
  $this->_admin_notices->add_sticky(
10864
- sprintf( $this->get_text( 'license-expired-non-blocking-message' ), $this->_site->plan->title ),
10865
  'license_expired',
10866
- $this->get_text( 'hmm' ) . '...'
10867
  );
10868
  $this->_admin_notices->remove_sticky( 'plan_upgraded' );
10869
  break;
10870
  case 'trial_started':
10871
  $this->_admin_notices->add_sticky(
10872
  sprintf(
10873
- $this->get_text( 'trial-started-message' ),
10874
  '<i>' . $this->get_plugin_name() . '</i>'
10875
  ) . $this->get_complete_upgrade_instructions( $this->_storage->trial_plan->title ),
10876
  'trial_started',
10877
- $this->get_text( 'yee-haw' ) . '!'
10878
  );
10879
 
10880
  $this->_admin_notices->remove_sticky( array(
@@ -10883,9 +11396,9 @@
10883
  break;
10884
  case 'trial_expired':
10885
  $this->_admin_notices->add_sticky(
10886
- $this->get_text( 'trial-expired-message' ),
10887
  'trial_expired',
10888
- $this->get_text( 'hmm' ) . '...'
10889
  );
10890
  $this->_admin_notices->remove_sticky( array(
10891
  'trial_started',
@@ -10953,23 +11466,22 @@
10953
  if ( ! $background ) {
10954
  $this->_admin_notices->add( sprintf(
10955
  '%s %s',
10956
- $this->get_text( 'license-activation-failed-message' ),
10957
  ( is_object( $license ) && isset( $license->error ) ?
10958
  $license->error->message :
10959
  sprintf( '%s<br><code>%s</code>',
10960
- $this->get_text( 'server-error-message' ),
10961
  var_export( $license, true )
10962
  )
10963
  )
10964
  ),
10965
- $this->get_text( 'hmm' ) . '...',
10966
  'error'
10967
  );
10968
  }
10969
 
10970
  return;
10971
  }
10972
-
10973
  $premium_license = new FS_Plugin_License( $license );
10974
 
10975
  // Updated site plan.
@@ -10984,10 +11496,10 @@
10984
 
10985
  if ( ! $background ) {
10986
  $this->_admin_notices->add_sticky(
10987
- $this->get_text( 'license-activated-message' ) .
10988
  $this->get_complete_upgrade_instructions(),
10989
  'license_activated',
10990
- $this->get_text( 'yee-haw' ) . '!'
10991
  );
10992
  }
10993
 
@@ -11006,10 +11518,12 @@
11006
  protected function _deactivate_license( $show_notice = true ) {
11007
  $this->_logger->entrance();
11008
 
 
 
11009
  if ( ! is_object( $this->_license ) ) {
11010
  $this->_admin_notices->add(
11011
- sprintf( $this->get_text( 'no-active-license-message' ), $this->_site->plan->title ),
11012
- $this->get_text( 'hmm' ) . '...'
11013
  );
11014
 
11015
  return;
@@ -11020,9 +11534,9 @@
11020
 
11021
  if ( isset( $license->error ) ) {
11022
  $this->_admin_notices->add(
11023
- $this->get_text( 'license-deactivation-failed-message' ) . '<br> ' .
11024
- $this->get_text( 'server-error-message' ) . ' ' . var_export( $license->error, true ),
11025
- $this->get_text( 'hmm' ) . '...',
11026
  'error'
11027
  );
11028
 
@@ -11047,8 +11561,8 @@
11047
 
11048
  if ( $show_notice ) {
11049
  $this->_admin_notices->add(
11050
- sprintf( $this->get_text( 'license-deactivation-message' ), $this->_site->plan->title ),
11051
- $this->get_text( 'ok' )
11052
  );
11053
  }
11054
 
@@ -11096,7 +11610,7 @@
11096
  $this->_admin_notices->remove_sticky( 'plan_upgraded' );
11097
 
11098
  $this->_admin_notices->add(
11099
- sprintf( $this->get_text( 'plan-x-downgraded-message' ),
11100
  $plan->title,
11101
  human_time_diff( time(), strtotime( $this->_license->expiration ) )
11102
  )
@@ -11106,8 +11620,8 @@
11106
  $this->_store_site();
11107
  } else {
11108
  $this->_admin_notices->add(
11109
- $this->get_text( 'plan-downgraded-failure-message' ),
11110
- $this->get_text( 'oops' ) . '...',
11111
  'error'
11112
  );
11113
  }
@@ -11124,11 +11638,14 @@
11124
  function start_trial( $plan_name = false ) {
11125
  $this->_logger->entrance();
11126
 
 
 
 
11127
  if ( $this->is_trial() ) {
11128
  // Already in trial mode.
11129
  $this->_admin_notices->add(
11130
- sprintf( $this->get_text( 'in-trial-mode' ), $this->_module_type ),
11131
- $this->get_text( 'oops' ) . '...',
11132
  'error'
11133
  );
11134
 
@@ -11138,8 +11655,8 @@
11138
  if ( $this->_site->is_trial_utilized() ) {
11139
  // Trial was already utilized.
11140
  $this->_admin_notices->add(
11141
- $this->get_text( 'trial-utilized' ),
11142
- $this->get_text( 'oops' ) . '...',
11143
  'error'
11144
  );
11145
 
@@ -11152,8 +11669,8 @@
11152
  if ( false === $plan ) {
11153
  // Plan doesn't exist.
11154
  $this->_admin_notices->add(
11155
- sprintf( $this->get_text( 'trial-plan-x-not-exist' ), $plan_name ),
11156
- $this->get_text( 'oops' ) . '...',
11157
  'error'
11158
  );
11159
 
@@ -11163,8 +11680,8 @@
11163
  if ( ! $plan->has_trial() ) {
11164
  // Plan doesn't exist.
11165
  $this->_admin_notices->add(
11166
- sprintf( $this->get_text( 'plan-x-no-trial' ), $plan_name ),
11167
- $this->get_text( 'oops' ) . '...',
11168
  'error'
11169
  );
11170
 
@@ -11174,8 +11691,8 @@
11174
  if ( ! $this->has_trial_plan() ) {
11175
  // None of the plans have a trial.
11176
  $this->_admin_notices->add(
11177
- sprintf( $this->get_text( 'no-trials' ), $this->_module_type ),
11178
- $this->get_text( 'oops' ) . '...',
11179
  'error'
11180
  );
11181
 
@@ -11193,9 +11710,9 @@
11193
  if ( ! $this->is_api_result_entity( $plan ) ) {
11194
  // Some API error while trying to start the trial.
11195
  $this->_admin_notices->add(
11196
- sprintf( $this->get_text( 'unexpected-api-error' ), $this->_module_type )
11197
  . ' ' . var_export( $plan, true ),
11198
- $this->get_text( 'oops' ) . '...',
11199
  'error'
11200
  );
11201
 
@@ -11219,10 +11736,13 @@
11219
  private function _cancel_trial() {
11220
  $this->_logger->entrance();
11221
 
 
 
 
11222
  if ( ! $this->is_trial() ) {
11223
  $this->_admin_notices->add(
11224
- $this->get_text( 'trial-cancel-no-trial-message' ),
11225
- $this->get_text( 'oops' ) . '...',
11226
  'error'
11227
  );
11228
 
@@ -11272,7 +11792,7 @@
11272
  ! $this->deactivate_premium_only_addon_without_license( true )
11273
  ) {
11274
  $this->_admin_notices->add(
11275
- sprintf( $this->get_text( 'trial-cancel-message' ), $this->_storage->trial_plan->title )
11276
  );
11277
  }
11278
 
@@ -11280,8 +11800,8 @@
11280
  unset( $this->_storage->trial_plan );
11281
  } else {
11282
  $this->_admin_notices->add(
11283
- $this->get_text( 'trial-cancel-failure-message' ),
11284
- $this->get_text( 'oops' ) . '...',
11285
  'error'
11286
  );
11287
  }
@@ -11518,21 +12038,26 @@
11518
  if ( ! $background ) {
11519
  $this->_admin_notices->add(
11520
  sprintf(
11521
- $this->get_text( 'version-x-released' ) . ' ' . $this->get_text( 'please-download-x' ),
 
11522
  $update->version,
11523
  sprintf(
11524
  '<a href="%s" target="_blank">%s</a>',
11525
  $this->get_account_url( 'download_latest' ),
11526
- sprintf( $this->get_text( 'latest-x-version' ), $this->_site->plan->title )
 
 
 
 
11527
  )
11528
  ),
11529
- $this->get_text( 'new' ) . '!'
11530
  );
11531
  }
11532
  } else if ( false === $new_version && ! $background ) {
11533
  $this->_admin_notices->add(
11534
- $this->get_text( 'you-have-latest' ),
11535
- $this->get_text( 'you-are-good' )
11536
  );
11537
  }
11538
 
@@ -11798,7 +12323,7 @@
11798
 
11799
  if ( ! isset( $result->error ) ) {
11800
  $this->_admin_notices->add( sprintf(
11801
- $this->get_text( 'verification-email-sent-message' ),
11802
  sprintf( '<a href="mailto:%1s">%2s</a>', esc_url( $this->_user->email ), $this->_user->email )
11803
  ) );
11804
  } else {
@@ -11886,6 +12411,9 @@
11886
  $plugin_id = fs_request_get( 'plugin_id', $this->get_id() );
11887
  $action = fs_get_action();
11888
 
 
 
 
11889
  switch ( $action ) {
11890
  case 'delete_account':
11891
  check_admin_referer( $action );
@@ -11940,6 +12468,14 @@
11940
 
11941
  if ( $plugin_id == $this->get_id() ) {
11942
  $this->_deactivate_license();
 
 
 
 
 
 
 
 
11943
  } else {
11944
  if ( $this->is_addon_activated( $plugin_id ) ) {
11945
  $fs_addon = self::get_instance_by_id( $plugin_id );
@@ -11962,20 +12498,20 @@
11962
  $candidate_email = fs_request_get( 'candidate_email', '' );
11963
 
11964
  if ( $this->init_change_owner( $candidate_email ) ) {
11965
- $this->_admin_notices->add( sprintf( $this->get_text( 'change-owner-request-sent-x' ), '<b>' . $this->_user->email . '</b>' ) );
11966
  }
11967
  break;
11968
  case 'owner_confirmed':
11969
  $candidate_email = fs_request_get( 'candidate_email', '' );
11970
 
11971
- $this->_admin_notices->add( sprintf( $this->get_text( 'change-owner-request_owner-confirmed' ), '<b>' . $candidate_email . '</b>' ) );
11972
  break;
11973
  case 'candidate_confirmed':
11974
  if ( $this->complete_change_owner() ) {
11975
  $this->_admin_notices->add_sticky(
11976
- sprintf( $this->get_text( 'change-owner-request_candidate-confirmed' ), '<b>' . $this->_user->email . '</b>' ),
11977
  'ownership_changed',
11978
- $this->get_text( 'congrats' ) . '!'
11979
  );
11980
  } else {
11981
  // @todo Handle failed ownership change message.
@@ -11995,23 +12531,23 @@
11995
  switch ( $result->error->code ) {
11996
  case 'user_exist':
11997
  $this->_admin_notices->add(
11998
- $this->get_text( 'user-exist-message' ) . ' ' .
11999
- sprintf( $this->get_text( 'user-exist-message_ownership' ), $this->_module_type, '<b>' . $new_email . '</b>' ) .
12000
  sprintf(
12001
  '<a style="margin-left: 10px;" href="%s"><button class="button button-primary">%s &nbsp;&#10140;</button></a>',
12002
  $this->get_account_url( 'change_owner', array(
12003
  'state' => 'init',
12004
  'candidate_email' => $new_email
12005
  ) ),
12006
- $this->get_text( 'change-ownership' )
12007
  ),
12008
- $this->get_text( 'oops' ) . '...',
12009
  'error'
12010
  );
12011
  break;
12012
  }
12013
  } else {
12014
- $this->_admin_notices->add( $this->get_text( 'email-updated-message' ) );
12015
  }
12016
 
12017
  return;
@@ -12023,12 +12559,12 @@
12023
 
12024
  if ( isset( $result->error ) ) {
12025
  $this->_admin_notices->add(
12026
- $this->get_text( 'name-update-failed-message' ),
12027
- $this->get_text( 'oops' ) . '...',
12028
  'error'
12029
  );
12030
  } else {
12031
- $this->_admin_notices->add( $this->get_text( 'name-updated-message' ) );
12032
  }
12033
 
12034
  return;
@@ -12088,8 +12624,10 @@
12088
  $this->do_action( 'account_property_edit', 'site', $site_property, $site_property_value );
12089
 
12090
  $this->_admin_notices->add( sprintf(
12091
- $this->get_text( 'x-updated' ),
12092
- '<b>' . str_replace( '_', ' ', $p ) . '</b>' ) );
 
 
12093
 
12094
  return;
12095
  }
@@ -12142,6 +12680,24 @@
12142
  $this->do_action( 'account_page_load_before_departure' );
12143
  }
12144
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12145
  /**
12146
  * Render account page.
12147
  *
@@ -12152,11 +12708,7 @@
12152
  $this->_logger->entrance();
12153
 
12154
  $template = 'account.php';
12155
- if ( 'billing' === fs_request_get( 'tab' ) ) {
12156
- $template = 'billing.php';
12157
- }
12158
-
12159
- $vars = array( 'id' => $this->_module_id );
12160
 
12161
  /**
12162
  * Added filter to the template to allow developers wrapping the template
@@ -12213,8 +12765,8 @@
12213
 
12214
  if ( ! $this->is_registered() && $this->is_org_repo_compliant() ) {
12215
  $this->_admin_notices->add(
12216
- sprintf( $this->get_text( 'addons-info-external-message' ), '<b>' . $this->get_plugin_name() . '</b>' ),
12217
- $this->get_text( 'heads-up' ),
12218
  'update-nag'
12219
  );
12220
  }
@@ -12532,7 +13084,7 @@
12532
  $trial_period = $this->_trial_days;
12533
  $require_payment = $this->_is_trial_require_payment;
12534
  $trial_url = $this->get_trial_url();
12535
- $plans_string = strtolower( $this->get_text( 'awesome' ) );
12536
 
12537
  if ( $this->is_registered() ) {
12538
  // If opted-in, override trial with up to date data from API.
@@ -12572,7 +13124,7 @@
12572
  }
12573
 
12574
  $message = sprintf(
12575
- $this->get_text( 'hey' ) . '! ' . $this->get_text( 'trial-x-promotion-message' ),
12576
  sprintf( '<b>%s</b>', $this->get_plugin_name() ),
12577
  $plans_string,
12578
  $trial_period
@@ -12580,15 +13132,15 @@
12580
 
12581
  // "No Credit-Card Required" or "No Commitment for N Days".
12582
  $cc_string = $require_payment ?
12583
- sprintf( $this->get_text( 'no-commitment-for-x-days' ), $trial_period ) :
12584
- $this->get_text( 'no-cc-required' ) . '!';
12585
 
12586
 
12587
  // Start trial button.
12588
  $button = ' ' . sprintf(
12589
  '<a style="margin-left: 10px; vertical-align: super;" href="%s"><button class="button button-primary">%s &nbsp;&#10140;</button></a>',
12590
  $trial_url,
12591
- $this->get_text( 'start-free-trial' )
12592
  );
12593
 
12594
  $this->_admin_notices->add_sticky(
@@ -12603,6 +13155,90 @@
12603
  return true;
12604
  }
12605
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12606
  /**
12607
  * @author Vova Feldman (@svovaf)
12608
  * @since 1.2.1.5
@@ -12705,7 +13341,7 @@
12705
  if ( $this->is_registered() ) {
12706
  if ( ! $this->is_paying() && $this->has_paid_plan() ) {
12707
  $this->add_plugin_action_link(
12708
- $this->get_text( 'upgrade' ),
12709
  $this->get_upgrade_url(),
12710
  false,
12711
  7,
@@ -12715,7 +13351,7 @@
12715
 
12716
  if ( $this->has_addons() ) {
12717
  $this->add_plugin_action_link(
12718
- $this->get_text( 'add-ons' ),
12719
  $this->_get_admin_page_url( 'addons' ),
12720
  false,
12721
  9,
@@ -12743,11 +13379,9 @@
12743
  add_action( 'admin_footer', array( &$this, '_add_license_activation_dialog_box' ) );
12744
  }
12745
 
12746
- $link_text = $this->get_text(
12747
- $this->is_free_plan() ?
12748
- 'activate-license' :
12749
- 'change-license'
12750
- );
12751
 
12752
  $this->add_plugin_action_link(
12753
  $link_text,
@@ -12808,14 +13442,14 @@
12808
 
12809
  if ( $this->is_registered() ) {
12810
  if ( $this->is_tracking_allowed() ) {
12811
- $link_text_id = 'opt-out';
12812
  } else {
12813
- $link_text_id = 'opt-in';
12814
  }
12815
 
12816
  add_action( 'admin_footer', array( &$this, '_add_optout_dialog' ) );
12817
  } else {
12818
- $link_text_id = 'opt-in';
12819
 
12820
  $params = ! $this->is_anonymous() ?
12821
  array() :
@@ -12829,7 +13463,7 @@
12829
 
12830
  if ( $this->is_plugin() && self::is_plugins_page() ) {
12831
  $this->add_plugin_action_link(
12832
- $this->get_text( $link_text_id ),
12833
  $url,
12834
  false,
12835
  13,
@@ -12998,20 +13632,21 @@
12998
 
12999
  // @since 1.2.1.5 The free version is auto deactivated.
13000
  $deactivation_step = version_compare( $this->version, '1.2.1.5', '<' ) ?
13001
- ( '<li>' . $this->get_text( 'deactivate-free-version' ) . '.</li>' ) :
13002
  '';
13003
 
13004
  return sprintf(
13005
  ' %s: <ol><li>%s.</li>%s<li>%s (<a href="%s" target="_blank">%s</a>).</li></ol>',
13006
- $this->get_text( 'follow-steps-to-complete-upgrade' ),
13007
  $this->get_latest_download_link( sprintf(
13008
- $this->get_text( 'download-latest-x-version' ),
 
13009
  $plan_title
13010
  ) ),
13011
  $deactivation_step,
13012
- $this->get_text( 'upload-and-activate' ),
13013
  '//bit.ly/upload-wp-' . $this->_module_type . 's',
13014
- $this->get_text( 'howto-upload-activate' )
13015
  );
13016
  }
13017
 
@@ -13027,6 +13662,46 @@
13027
  return fs_text( $key, $this->_slug );
13028
  }
13029
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13030
  #----------------------------------------------------------------------------------
13031
  #region Versioning
13032
  #----------------------------------------------------------------------------------
@@ -13130,17 +13805,17 @@
13130
  if ( ! $this->is_registered() ) {
13131
  // Not registered.
13132
  self::shoot_ajax_failure( array(
13133
- 'message' => $this->get_text( 'auto-install-error-not-opted-in' ),
13134
  'code' => 'premium_installed',
13135
  ) );
13136
  }
13137
 
13138
- $plugin_id = fs_request_get( 'module_id', $this->get_id() );
13139
 
13140
  if ( ! FS_Plugin::is_valid_id( $plugin_id ) ) {
13141
  // Invalid ID.
13142
  self::shoot_ajax_failure( array(
13143
- 'message' => $this->get_text( 'auto-install-error-invalid-id' ),
13144
  'code' => 'invalid_module_id',
13145
  ) );
13146
  }
@@ -13149,21 +13824,21 @@
13149
  if ( $this->is_premium() ) {
13150
  // Already using the premium code version.
13151
  self::shoot_ajax_failure( array(
13152
- 'message' => $this->get_text( 'auto-install-error-premium-activated' ),
13153
  'code' => 'premium_installed',
13154
  ) );
13155
  }
13156
  if ( ! $this->can_use_premium_code() ) {
13157
  // Don't have access to the premium code.
13158
  self::shoot_ajax_failure( array(
13159
- 'message' => $this->get_text( 'auto-install-error-invalid-license' ),
13160
  'code' => 'invalid_license',
13161
  ) );
13162
  }
13163
  if ( ! $this->has_release_on_freemius() ) {
13164
  // Plugin is a serviceware, no premium code version.
13165
  self::shoot_ajax_failure( array(
13166
- 'message' => $this->get_text( 'auto-install-error-serviceware' ),
13167
  'code' => 'premium_version_missing',
13168
  ) );
13169
  }
@@ -13173,7 +13848,7 @@
13173
  if ( ! is_object( $addon ) ) {
13174
  // Invalid add-on ID.
13175
  self::shoot_ajax_failure( array(
13176
- 'message' => $this->get_text( 'auto-install-error-invalid-id' ),
13177
  'code' => 'invalid_module_id',
13178
  ) );
13179
  }
@@ -13181,7 +13856,7 @@
13181
  if ( $this->is_addon_activated( $plugin_id, true ) ) {
13182
  // Premium add-on version is already activated.
13183
  self::shoot_ajax_failure( array(
13184
- 'message' => $this->get_text( 'auto-install-error-premium-addon-activated' ),
13185
  'code' => 'premium_installed',
13186
  ) );
13187
  }
@@ -13253,10 +13928,11 @@
13253
  }
13254
  }
13255
 
13256
- $vars = array(
13257
- 'id' => $plugin_id,
13258
- 'slug' => $this->_slug,
13259
- );
 
13260
 
13261
  fs_require_template( 'auto-installation.php', $vars );
13262
  }
@@ -13526,7 +14202,7 @@
13526
  require_once WP_FS__DIR_INCLUDES . '/customizer/class-fs-customizer-upsell-control.php';
13527
 
13528
  $customizer->add_section( 'freemius_upsell', array(
13529
- 'title' => '&#9733; ' . $this->get_text( 'view-paid-features' ),
13530
  'priority' => 1,
13531
  ) );
13532
  $customizer->add_setting( 'freemius_upsell', array(
@@ -13644,4 +14320,4 @@
13644
  }
13645
 
13646
  #endregion
13647
- }
271
  */
272
  private static $_instances = array();
273
 
274
+ /**
275
+ * @author Leo Fajardo (@leorw)
276
+ *
277
+ * @since 1.2.3
278
+ *
279
+ * @var FS_Affiliate
280
+ */
281
+ private $affiliate = null;
282
+
283
+ /**
284
+ * @author Leo Fajardo (@leorw)
285
+ *
286
+ * @since 1.2.3
287
+ *
288
+ * @var FS_AffiliateTerms
289
+ */
290
+ private $plugin_affiliate_terms = null;
291
+
292
+ /**
293
+ * @author Leo Fajardo (@leorw)
294
+ *
295
+ * @since 1.2.3
296
+ *
297
+ * @var FS_AffiliateTerms
298
+ */
299
+ private $custom_affiliate_terms = null;
300
+
301
  #region Uninstall Reasons IDs
302
 
303
  const REASON_NO_LONGER_NEEDED = 1;
555
  return;
556
  }
557
 
558
+ if ( version_compare( $sdk_prev_version, '1.2.3', '<' ) &&
559
+ version_compare( $sdk_version, '1.2.3', '>=' )
560
+ ) {
561
+ /**
562
+ * Starting from version 1.2.3, paths are stored as relative paths and not absolute paths; so when
563
+ * upgrading to 1.2.3, make paths relative.
564
+ *
565
+ * @author Leo Fajardo (@leorw)
566
+ */
567
+ $this->make_paths_relative();
568
+ }
569
+
570
  if ( version_compare( $sdk_prev_version, '1.1.5', '<' ) &&
571
  version_compare( $sdk_version, '1.1.5', '>=' )
572
  ) {
590
  }
591
  }
592
 
593
+ /**
594
+ * Makes paths relative.
595
+ *
596
+ * @author Leo Fajardo
597
+ * @since 1.2.3
598
+ */
599
+ private function make_paths_relative() {
600
+ $id_slug_type_path_map = self::$_accounts->get_option( 'id_slug_type_path_map', array() );
601
+
602
+ if ( isset( $id_slug_type_path_map[ $this->_module_id ]['path'] ) ) {
603
+ $id_slug_type_path_map[ $this->_module_id ]['path'] = $this->get_relative_path( $id_slug_type_path_map[ $this->_module_id ]['path'] );
604
+
605
+ self::$_accounts->set_option( 'id_slug_type_path_map', $id_slug_type_path_map, true );
606
+ }
607
+
608
+ if ( isset( $this->_storage->plugin_main_file ) ) {
609
+ $plugin_main_file = $this->_storage->plugin_main_file;
610
+
611
+ if ( isset( $plugin_main_file->path ) ) {
612
+ $this->_storage->plugin_main_file->path = $this->get_relative_path( $this->_storage->plugin_main_file->path );
613
+ } else if ( isset( $plugin_main_file->prev_path ) ) {
614
+ $this->_storage->plugin_main_file->prev_path = $this->get_relative_path( $this->_storage->plugin_main_file->prev_path );
615
+ }
616
+ }
617
+
618
+ // Remove invalid path that is still associated with the current slug if there's any.
619
+ $file_slug_map = self::$_accounts->get_option( 'file_slug_map', array() );
620
+ foreach ( $file_slug_map as $plugin_basename => $slug ) {
621
+ if ( $slug === $this->_slug &&
622
+ $plugin_basename !== $this->_plugin_basename &&
623
+ ! file_exists( $this->get_absolute_path( $plugin_basename ) )
624
+ ) {
625
+ unset( $file_slug_map[ $plugin_basename ] );
626
+ self::$_accounts->set_option( 'file_slug_map', $file_slug_map, true );
627
+
628
+ break;
629
+ }
630
+ }
631
+ }
632
+
633
  /**
634
  * @author Vova Feldman (@svovaf)
635
  * @since 1.2.2.7
811
  '_install_premium_version_ajax_action'
812
  ) );
813
 
814
+ $this->add_ajax_action( 'submit_affiliate_application', array( &$this, '_submit_affiliate_application' ) );
815
+
816
  $this->add_action( 'after_plans_sync', array( &$this, '_check_for_trial_plans' ) );
817
 
818
  $this->add_action( 'sdk_version_update', array( &$this, '_data_migration' ), WP_FS__DEFAULT_PRIORITY, 2 );
820
  $this->add_filter( 'after_code_type_change', array( &$this, '_after_code_type_change' ) );
821
 
822
  add_action( 'admin_init', array( &$this, '_add_trial_notice' ) );
823
+ add_action( 'admin_init', array( &$this, '_add_affiliate_program_notice' ) );
824
  add_action( 'admin_init', array( &$this, '_enqueue_common_css' ) );
825
 
826
  /**
926
  // Try to load the cached value of the file path.
927
  if ( isset( $this->_storage->plugin_main_file ) ) {
928
  $plugin_main_file = $this->_storage->plugin_main_file;
929
+ if ( isset( $plugin_main_file->path ) ) {
930
+ $absolute_path = $this->get_absolute_path( $plugin_main_file->path );
931
+ if ( file_exists( $absolute_path ) ) {
932
+ return $absolute_path;
933
+ }
934
  }
935
  }
936
 
949
  if ( isset( $this->_storage->plugin_main_file ) &&
950
  isset( $this->_storage->plugin_main_file->prev_path )
951
  ) {
952
+ $absolute_path = $this->get_absolute_path( $this->_storage->plugin_main_file->prev_path );
953
+ if ( file_exists( $absolute_path ) ) {
954
+ return $absolute_path;
955
  }
956
  }
957
 
958
  wp_die(
959
+ $this->get_text_inline( 'Freemius SDK couldn\'t find the plugin\'s main file. Please contact sdk@freemius.com with the current error.', 'failed-finding-main-path' ) .
960
  " Module: {$this->_slug}; SDK: " . WP_FS__SDK_VERSION . ";",
961
+ $this->get_text_inline( 'Error', 'error' ),
962
  array( 'back_link' => true )
963
  );
964
  }
974
  'path' => $id_slug_type_path_map[ $this->_module_id ]['path'],
975
  );
976
 
977
+ return $this->get_absolute_path( $id_slug_type_path_map[ $this->_module_id ]['path'] );
978
+ }
979
+
980
+ /**
981
+ * @author Leo Fajardo (@leorw)
982
+ * @since 1.2.3
983
+ *
984
+ * @param string $path
985
+ *
986
+ * @return string
987
+ */
988
+ private function get_relative_path( $path ) {
989
+ $module_root_dir = $this->get_module_root_dir_path();
990
+ if ( 0 === strpos( $path, $module_root_dir ) ) {
991
+ $path = substr( $path, strlen( $module_root_dir ) );
992
+ }
993
+
994
+ return $path;
995
+ }
996
+
997
+ /**
998
+ * @author Leo Fajardo (@leorw)
999
+ * @since 1.2.3
1000
+ *
1001
+ * @param string $path
1002
+ * @param string|bool $module_type
1003
+ *
1004
+ * @return string
1005
+ */
1006
+ private function get_absolute_path( $path, $module_type = false ) {
1007
+ $module_root_dir = $this->get_module_root_dir_path( $module_type );
1008
+ if ( 0 !== strpos( $path, $module_root_dir ) ) {
1009
+ $path = fs_normalize_path( $module_root_dir . $path );
1010
+ }
1011
+
1012
+ return $path;
1013
+ }
1014
+
1015
+ /**
1016
+ * @author Leo Fajardo (@leorw)
1017
+ * @since 1.2.3
1018
+ *
1019
+ * @param string|bool $module_type
1020
+ *
1021
+ * @return string
1022
+ */
1023
+ private function get_module_root_dir_path( $module_type = false ) {
1024
+ $is_plugin = empty( $module_type ) ?
1025
+ $this->is_plugin() :
1026
+ ( WP_FS__MODULE_TYPE_PLUGIN === $module_type );
1027
+
1028
+ return fs_normalize_path( trailingslashit( $is_plugin ?
1029
+ WP_PLUGIN_DIR :
1030
+ get_theme_root() ) );
1031
+ }
1032
 
1033
  /**
1034
  * @author Leo Fajardo (@leorw)
1051
  $store_option = true;
1052
  }
1053
 
1054
+ if ( ! isset( $id_slug_type_path_map[ $module_id ]['path'] ) ||
1055
+ /**
1056
+ * This verification is for cases when suddenly the same module
1057
+ * is installed but with a different folder name.
1058
+ *
1059
+ * @author Vova Feldman (@svovaf)
1060
+ * @since 1.2.3
1061
+ */
1062
+ ! file_exists( $this->get_absolute_path(
1063
+ $id_slug_type_path_map[ $module_id ]['path'],
1064
+ $id_slug_type_path_map[ $module_id ]['type']
1065
+ ) )
1066
+ ) {
1067
  $caller_main_file_and_type = $this->get_caller_main_file_and_type();
1068
 
1069
  $id_slug_type_path_map[ $module_id ]['type'] = $caller_main_file_and_type->module_type;
1153
  */
1154
 
1155
  if ( $caller_file_path == fs_normalize_path( realpath( trailingslashit( $themes_dir ) . basename( dirname( $caller_file_path ) ) . '/' . basename( $caller_file_path ) ) ) ) {
1156
+ $module_type = WP_FS__MODULE_TYPE_THEME;
1157
+
1158
+ /**
1159
+ * Relative path of the theme, e.g.:
1160
+ * `my-theme/functions.php`
1161
+ *
1162
+ * @author Leo Fajardo (@leorw)
1163
+ */
1164
+ $caller_file_candidate = basename( dirname( $caller_file_path ) ) .
1165
+ '/' .
1166
+ basename( $caller_file_path );
1167
+
1168
  continue;
1169
  }
1170
  }
1182
 
1183
  if ( isset( $caller_map[ $caller_file_hash ] ) ) {
1184
  $module_type = WP_FS__MODULE_TYPE_PLUGIN;
1185
+ $caller_file_candidate = plugin_basename( $caller_map[ $caller_file_hash ] );
1186
  }
1187
  }
1188
 
1274
 
1275
  $reason_found_better_plugin = array(
1276
  'id' => self::REASON_FOUND_A_BETTER_PLUGIN,
1277
+ 'text' => sprintf( $this->get_text_inline( 'I found a better %s', 'reason-found-a-better-plugin' ), $module_type ),
1278
  'input_type' => 'textfield',
1279
+ 'input_placeholder' => sprintf( $this->get_text_inline( "What's the %s's name?", 'placeholder-plugin-name' ), $module_type ),
1280
  );
1281
 
1282
  $reason_temporary_deactivation = array(
1283
  'id' => self::REASON_TEMPORARY_DEACTIVATION,
1284
  'text' => sprintf(
1285
+ $this->get_text_inline( "It's a temporary %s. I'm just debugging an issue.", 'reason-temporary-x' ),
1286
  strtolower( $this->is_plugin() ?
1287
+ $this->get_text_inline( 'Deactivation', 'deactivation' ) :
1288
+ $this->get_text_inline( 'Theme Switch', 'theme-switch' )
1289
  )
1290
  ),
1291
  'input_type' => '',
1294
 
1295
  $reason_other = array(
1296
  'id' => self::REASON_OTHER,
1297
+ 'text' => $this->get_text_inline( 'Other', 'reason-other' ),
1298
  'input_type' => 'textfield',
1299
  'input_placeholder' => ''
1300
  );
1302
  $long_term_user_reasons = array(
1303
  array(
1304
  'id' => self::REASON_NO_LONGER_NEEDED,
1305
+ 'text' => sprintf( $this->get_text_inline( 'I no longer need the %s', 'reason-no-longer-needed' ), $module_type ),
1306
  'input_type' => '',
1307
  'input_placeholder' => ''
1308
  ),
1309
  $reason_found_better_plugin,
1310
  array(
1311
  'id' => self::REASON_NEEDED_FOR_A_SHORT_PERIOD,
1312
+ 'text' => sprintf( $this->get_text_inline( 'I only needed the %s for a short period', 'reason-needed-for-a-short-period' ), $module_type ),
1313
  'input_type' => '',
1314
  'input_placeholder' => ''
1315
  ),
1316
  array(
1317
  'id' => self::REASON_BROKE_MY_SITE,
1318
+ 'text' => sprintf( $this->get_text_inline( 'The %s broke my site', 'reason-broke-my-site' ), $module_type ),
1319
  'input_type' => '',
1320
  'input_placeholder' => '',
1321
  'internal_message' => $contact_support_template
1322
  ),
1323
  array(
1324
  'id' => self::REASON_SUDDENLY_STOPPED_WORKING,
1325
+ 'text' => sprintf( $this->get_text_inline( 'The %s suddenly stopped working', 'reason-suddenly-stopped-working' ), $module_type ),
1326
  'input_type' => '',
1327
  'input_placeholder' => '',
1328
  'internal_message' => $contact_support_template
1332
  if ( $this->is_paying() ) {
1333
  $long_term_user_reasons[] = array(
1334
  'id' => self::REASON_CANT_PAY_ANYMORE,
1335
+ 'text' => $this->get_text_inline( "I can't pay for it anymore", 'reason-cant-pay-anymore' ),
1336
  'input_type' => 'textfield',
1337
+ 'input_placeholder' => $this->get_text_inline( 'What price would you feel comfortable paying?', 'placeholder-comfortable-price' )
1338
  );
1339
  }
1340
 
1341
  $reason_dont_share_info = array(
1342
  'id' => self::REASON_DONT_LIKE_TO_SHARE_MY_INFORMATION,
1343
+ 'text' => $this->get_text_inline( "I don't like to share my information with you", 'reason-dont-like-to-share-my-information' ),
1344
  'input_type' => '',
1345
  'input_placeholder' => ''
1346
  );
1361
  'non-registered-and-non-anonymous-short-term' => array(
1362
  array(
1363
  'id' => self::REASON_DIDNT_WORK,
1364
+ 'text' => sprintf( $this->get_text_inline( "The %s didn't work", 'reason-didnt-work' ), $module_type ),
1365
  'input_type' => '',
1366
  'input_placeholder' => ''
1367
  ),
1371
  'short-term' => array(
1372
  array(
1373
  'id' => self::REASON_COULDNT_MAKE_IT_WORK,
1374
+ 'text' => $this->get_text_inline( "I couldn't understand how to make it work", 'reason-couldnt-make-it-work' ),
1375
  'input_type' => '',
1376
  'input_placeholder' => '',
1377
  'internal_message' => $contact_support_template
1379
  $reason_found_better_plugin,
1380
  array(
1381
  'id' => self::REASON_GREAT_BUT_NEED_SPECIFIC_FEATURE,
1382
+ 'text' => sprintf( $this->get_text_inline( "The %s is great, but I need specific feature that you don't support", 'reason-great-but-need-specific-feature' ), $module_type ),
1383
  'input_type' => 'textarea',
1384
+ 'input_placeholder' => $this->get_text_inline( 'What feature?', 'placeholder-feature' )
1385
  ),
1386
  array(
1387
  'id' => self::REASON_NOT_WORKING,
1388
+ 'text' => sprintf( $this->get_text_inline( 'The %s is not working', 'reason-not-working' ), $module_type ),
1389
  'input_type' => 'textarea',
1390
+ 'input_placeholder' => $this->get_text_inline( "Kindly share what didn't work so we can fix it for future users...", 'placeholder-share-what-didnt-work' )
1391
  ),
1392
  array(
1393
  'id' => self::REASON_NOT_WHAT_I_WAS_LOOKING_FOR,
1394
+ 'text' => $this->get_text_inline( "It's not what I was looking for", 'reason-not-what-i-was-looking-for' ),
1395
  'input_type' => 'textarea',
1396
+ 'input_placeholder' => $this->get_text_inline( "What you've been looking for?", 'placeholder-what-youve-been-looking-for' )
1397
  ),
1398
  array(
1399
  'id' => self::REASON_DIDNT_WORK_AS_EXPECTED,
1400
+ 'text' => sprintf( $this->get_text_inline( "The %s didn't work as expected", 'reason-didnt-work-as-expected' ), $module_type ),
1401
  'input_type' => 'textarea',
1402
+ 'input_placeholder' => $this->get_text_inline( 'What did you expect?', 'placeholder-what-did-you-expect' )
1403
  )
1404
  )
1405
  );
1935
 
1936
  self::$_static_logger->entrance();
1937
 
1938
+ $title = sprintf( '%s [v.%s]', fs_text_inline( 'Freemius Debug' ), WP_FS__SDK_VERSION );
1939
 
1940
  if ( WP_FS__DEV_MODE ) {
1941
  // Add top-level debug menu item.
2342
  *
2343
  * @return string
2344
  */
2345
+ function get_anonymous_id() {
2346
+ $unique_id = self::$_accounts->get_option( 'unique_id' );
2347
 
2348
+ if ( empty( $unique_id ) || ! is_string( $unique_id ) ) {
2349
+ $key = get_site_url();
2350
 
2351
+ // If localhost, assign microtime instead of domain.
2352
+ if ( WP_FS__IS_LOCALHOST ||
2353
+ false !== strpos( $key, 'localhost' ) ||
2354
+ false === strpos( $key, '.' )
2355
+ ) {
2356
+ $key = microtime();
2357
+ }
2358
 
2359
+ /**
2360
+ * Base the unique identifier on the WP secure authentication key. Which
2361
+ * turns the key into a secret anonymous identifier.
2362
+ *
2363
+ * @author Vova Feldman (@svovaf)
2364
+ * @since 1.2.3
2365
+ */
2366
+ $unique_id = md5( $key . SECURE_AUTH_KEY );
2367
 
2368
+ self::$_accounts->set_option( 'unique_id', $unique_id, true );
2369
+ }
2370
 
2371
+ $this->_logger->departure( $unique_id );
2372
 
2373
+ return $unique_id;
2374
+ }
2375
 
2376
  /**
2377
  * @author Vova Feldman (@svovaf)
2451
  // $admin_email = get_option( 'admin_email' );
2452
  $admin_email = $current_user->user_email;
2453
 
2454
+ // Aliases.
2455
+ $deactivate_plugin_title = $this->esc_html_inline( 'That\'s exhausting, please deactivate', 'deactivate-plugin-title' );
2456
+ $deactivate_plugin_desc = $this->esc_html_inline( 'We feel your frustration and sincerely apologize for the inconvenience. Hope to see you again in the future.', 'deactivate-plugin-desc' );
2457
+ $install_previous_title = $this->esc_html_inline( 'Let\'s try your previous version', 'install-previous-title' );
2458
+ $install_previous_desc = $this->esc_html_inline( 'Uninstall this version and install the previous one.', 'install-previous-desc' );
2459
+ $fix_issue_title = $this->esc_html_inline( 'Yes - I\'m giving you a chance to fix it', 'fix-issue-title' );
2460
+ $fix_issue_desc = $this->esc_html_inline( 'We will do our best to whitelist your server and resolve this issue ASAP. You will get a follow-up email to %s once we have an update.', 'fix-issue-desc' );
2461
+ /* translators: %s: product title (e.g. "Awesome Plugin" requires an access to...) */
2462
+ $x_requires_access_to_api = $this->esc_html_inline( '%s requires an access to our API.', 'x-requires-access-to-api' );
2463
+ $sysadmin_title = $this->esc_html_inline( 'I\'m a system administrator', 'sysadmin-title' );
2464
+ $happy_to_resolve_issue_asap = $this->esc_html_inline( 'We are sure it\'s an issue on our side and more than happy to resolve it for you ASAP if you give us a chance.', 'happy-to-resolve-issue-asap' );
2465
+
2466
  $message = false;
2467
  if ( is_object( $api_result ) &&
2468
  isset( $api_result->error ) &&
2489
  if ( ! empty( $missing_methods ) ) {
2490
  $missing_methods = sprintf(
2491
  '<br><br><b>%s</b> %s',
2492
+ $this->esc_html_inline( 'Disabled method(s):', 'curl-disabled-methods' ),
2493
  $missing_methods
2494
  );
2495
  }
2496
  }
2497
 
2498
  $message = sprintf(
2499
+ $x_requires_access_to_api . ' ' .
2500
+ $this->esc_html_inline( 'We use PHP cURL library for the API calls, which is a very common library and usually installed and activated out of the box. Unfortunately, cURL is not activated (or disabled) on your server.', 'curl-missing-message' ) . ' ' .
2501
  $missing_methods .
2502
  ' %s',
2503
  '<b>' . $this->get_plugin_name() . '</b>',
2505
  '<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>',
2506
  sprintf(
2507
  '<a class="fs-resolve" data-type="curl" href="#"><b>%s</b></a>%s',
2508
+ $this->get_text_inline( 'I don\'t know what is cURL or how to install it, help me!', 'curl-missing-no-clue-title' ),
2509
  ' - ' . sprintf(
2510
+ $this->get_text_inline( '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.', 'curl-missing-no-clue-desc' ),
2511
  '<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
2512
  )
2513
  ),
2514
  sprintf(
2515
  '<b>%s</b> - %s',
2516
+ $sysadmin_title,
2517
+ esc_html( sprintf( $this->get_text_inline( '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.', 'curl-missing-sysadmin-desc' ), $this->get_module_label( true ) ) )
2518
  ),
2519
  sprintf(
2520
+ '<a href="%s"><b>%s</b></a> - %s',
2521
+ wp_nonce_url( 'plugins.php?action=deactivate&amp;plugin=' . $this->_plugin_basename . '&amp;plugin_status=all&amp;paged=1&amp;s=', 'deactivate-plugin_' . $this->_plugin_basename ),
2522
+ $deactivate_plugin_title,
2523
+ $deactivate_plugin_desc
2524
  )
2525
  )
2526
  );
2527
  break;
2528
  case 'cloudflare_ddos_protection':
2529
  $message = sprintf(
2530
+ $x_requires_access_to_api . ' ' .
2531
+ $this->esc_html_inline( 'From unknown reason, CloudFlare, the firewall we use, blocks the connection.', 'cloudflare-blocks-connection-message' ) . ' ' .
2532
+ $happy_to_resolve_issue_asap .
2533
  ' %s',
2534
  '<b>' . $this->get_plugin_name() . '</b>',
2535
  sprintf(
2536
  '<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>',
2537
  sprintf(
2538
  '<a class="fs-resolve" data-type="cloudflare" href="#"><b>%s</b></a>%s',
2539
+ $fix_issue_title,
2540
  ' - ' . sprintf(
2541
+ $fix_issue_desc,
2542
  '<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
2543
  )
2544
  ),
2545
  sprintf(
2546
+ '<a href="%s" target="_blank"><b>%s</b></a> - %s',
2547
  sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ),
2548
+ $install_previous_title,
2549
+ $install_previous_desc
2550
  ),
2551
  sprintf(
2552
+ '<a href="%s"><b>%s</b></a> - %s',
2553
+ wp_nonce_url( 'plugins.php?action=deactivate&amp;plugin=' . $this->_plugin_basename . '&amp;plugin_status=all&amp;paged=1&amp;s=' . '', 'deactivate-plugin_' . $this->_plugin_basename ),
2554
+ $deactivate_plugin_title,
2555
+ $deactivate_plugin_desc
2556
  )
2557
  )
2558
  );
2559
  break;
2560
  case 'squid_cache_block':
2561
  $message = sprintf(
2562
+ $x_requires_access_to_api . ' ' .
2563
+ $this->esc_html_inline( 'It looks like your server is using Squid ACL (access control lists), which blocks the connection.', 'squid-blocks-connection-message' ) .
2564
  ' %s',
2565
  '<b>' . $this->get_plugin_name() . '</b>',
2566
  sprintf(
2567
  '<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>',
2568
  sprintf(
2569
+ '<a class="fs-resolve" data-type="squid" href="#"><b>%s</b></a> - %s',
2570
+ $this->esc_html_inline( 'I don\'t know what is Squid or ACL, help me!', 'squid-no-clue-title' ),
2571
+ sprintf(
2572
+ $this->esc_html_inline( '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.', 'squid-no-clue-desc' ),
2573
  '<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
2574
  )
2575
  ),
2576
  sprintf(
2577
  '<b>%s</b> - %s',
2578
+ $sysadmin_title,
2579
  sprintf(
2580
+ $this->esc_html_inline( 'Great, please whitelist the following domains: %s. Once you are done, deactivate the %s and activate it again.', 'squid-sysadmin-desc' ),
2581
  // We use a filter since the plugin might require additional API connectivity.
2582
  '<b>' . implode( ', ', $this->apply_filters( 'api_domains', array( 'api.freemius.com', 'wp.freemius.com' ) ) ) . '</b>',
2583
  $this->_module_type
2584
  )
2585
  ),
2586
  sprintf(
2587
+ '<a href="%s"><b>%s</b></a> - %s',
2588
+ wp_nonce_url( 'plugins.php?action=deactivate&amp;plugin=' . $this->_plugin_basename . '&amp;plugin_status=all&amp;paged=1&amp;s=', 'deactivate-plugin_' . $this->_plugin_basename ),
2589
+ $deactivate_plugin_title,
2590
+ $deactivate_plugin_desc
2591
  )
2592
  )
2593
  );
2594
  break;
2595
  // default:
2596
+ // $message = $this->get_text_inline( 'connectivity-test-fails-message' );
2597
  // break;
2598
  }
2599
  }
2601
  $message_id = 'failed_connect_api';
2602
  $type = 'error';
2603
 
2604
+ $connectivity_test_fails_message = $this->esc_html_inline( 'From unknown reason, the API connectivity test failed.', 'connectivity-test-fails-message' );
2605
+
2606
  if ( false === $message ) {
2607
  if ( $is_first_failure ) {
2608
  // First attempt failed.
2609
  $message = sprintf(
2610
+ $x_requires_access_to_api . ' ' .
2611
+ $connectivity_test_fails_message . ' ' .
2612
+ $this->esc_html_inline( 'It\'s probably a temporary issue on our end. Just to be sure, with your permission, would it be o.k to run another connectivity test?', 'connectivity-test-maybe-temporary' ) . '<br><br>' .
2613
  '%s',
2614
  '<b>' . $this->get_plugin_name() . '</b>',
2615
  sprintf(
2616
  '<div id="fs_firewall_issue_options">%s %s</div>',
2617
  sprintf(
2618
  '<a class="button button-primary fs-resolve" data-type="retry_ping" href="#">%s</a>',
2619
+ $this->get_text_inline( 'Yes - do your thing', 'yes-do-your-thing' )
2620
  ),
2621
  sprintf(
2622
  '<a href="%s" class="button">%s</a>',
2623
+ wp_nonce_url( 'plugins.php?action=deactivate&amp;plugin=' . $this->_plugin_basename . '&amp;plugin_status=all&amp;paged=1&amp;s=', 'deactivate-plugin_' . $this->_plugin_basename ),
2624
+ $this->get_text_inline( 'No - just deactivate', 'no-deactivate' )
2625
  )
2626
  )
2627
  );
2631
  } else {
2632
  // Second connectivity attempt failed.
2633
  $message = sprintf(
2634
+ $x_requires_access_to_api . ' ' .
2635
+ $connectivity_test_fails_message . ' ' .
2636
+ $happy_to_resolve_issue_asap .
2637
  ' %s',
2638
  '<b>' . $this->get_plugin_name() . '</b>',
2639
  sprintf(
2640
  '<ol id="fs_firewall_issue_options"><li>%s</li><li>%s</li><li>%s</li></ol>',
2641
  sprintf(
2642
  '<a class="fs-resolve" data-type="general" href="#"><b>%s</b></a>%s',
2643
+ $fix_issue_title,
2644
  ' - ' . sprintf(
2645
+ $fix_issue_desc,
2646
  '<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
2647
  )
2648
  ),
2649
  sprintf(
2650
+ '<a href="%s" target="_blank"><b>%s</b></a> - %s',
2651
  sprintf( 'https://wordpress.org/plugins/%s/download/', $this->_slug ),
2652
+ $install_previous_title,
2653
+ $install_previous_desc
2654
  ),
2655
  sprintf(
2656
+ '<a href="%s"><b>%s</b></a> - %s',
2657
+ wp_nonce_url( 'plugins.php?action=deactivate&amp;plugin=' . $this->_plugin_basename . '&amp;plugin_status=all&amp;paged=1&amp;s=', 'deactivate-plugin_' . $this->_plugin_basename ),
2658
+ $deactivate_plugin_title,
2659
+ $deactivate_plugin_desc
2660
  )
2661
  )
2662
  );
2666
  $this->_admin_notices->add_sticky(
2667
  $message,
2668
  $message_id,
2669
+ $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
2670
  $type
2671
  );
2672
  }
2733
 
2734
  $this->_admin_notices->add_sticky(
2735
  sprintf(
2736
+ $this->get_text_inline( '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.', 'fix-request-sent-message' ),
2737
  '<a href="mailto:' . $admin_email . '">' . $admin_email . '</a>'
2738
  ),
2739
  'server_details_sent'
3124
 
3125
  $this->_admin_notices->add(
3126
  ( ! empty( $parent_name ) ?
3127
+ sprintf( $this->get_text_x_inline( '%s cannot run without %s.', 'addonX cannot run without pluginY', 'addon-x-cannot-run-without-y' ), $this->get_plugin_name(), $parent_name ) :
3128
+ sprintf( $this->get_text_x_inline( '%s cannot run without the plugin.', 'addonX cannot run...', 'addon-x-cannot-run-without-parent' ), $this->get_plugin_name() )
3129
  ),
3130
+ $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
3131
  'error'
3132
  );
3133
 
3246
  $this->_logger->api_error( $result );
3247
 
3248
  self::shoot_ajax_failure(
3249
+ sprintf( $this->get_text_inline( 'Unexpected API error. Please contact the %s\'s author with the following error.', 'unexpected-api-error' ), $this->_module_type ) .
3250
  ( $this->is_api_error( $result ) && isset( $result->error ) ?
3251
  $result->error->message :
3252
  var_export( $result, true ) )
3271
  $this->_logger->api_error( $result );
3272
 
3273
  self::shoot_ajax_failure(
3274
+ sprintf( $this->get_text_inline( 'Unexpected API error. Please contact the %s\'s author with the following error.', 'unexpected-api-error' ), $this->_module_type ) .
3275
  ( $this->is_api_error( $result ) && isset( $result->error ) ?
3276
  $result->error->message :
3277
  var_export( $result, true ) )
3458
  new FS_Plugin();
3459
 
3460
  $plugin->update( array(
3461
+ 'id' => $id,
3462
+ 'type' => $this->get_option( $plugin_info, 'type', $this->_module_type),
3463
+ 'public_key' => $public_key,
3464
+ 'slug' => $this->_slug,
3465
+ 'parent_plugin_id' => $parent_id,
3466
+ 'version' => $this->get_plugin_version(),
3467
+ 'title' => $this->get_plugin_name(),
3468
+ 'file' => $this->_plugin_basename,
3469
+ 'is_premium' => $this->get_bool_option( $plugin_info, 'is_premium', true ),
3470
+ 'is_live' => $this->get_bool_option( $plugin_info, 'is_live', true ),
3471
+ 'affiliate_moderation' => $this->get_option( $plugin_info, 'has_affiliation' ),
3472
  ) );
3473
 
3474
  if ( $plugin->is_updated() ) {
3677
  'license_activated',
3678
  ) );
3679
 
3680
+ if ( ! $this->is_only_premium() ) {
3681
+ $this->_admin_notices->add_sticky(
3682
+ sprintf( $this->get_text_inline( 'Premium %s version was successfully activated.', 'premium-activated-message' ), $this->_module_type ),
3683
+ 'premium_activated',
3684
+ $this->get_text_x_inline( 'W00t',
3685
+ 'Used to express elation, enthusiasm, or triumph (especially in electronic communication).', 'woot' ) . '!'
3686
+ );
3687
+ }
3688
  } else {
3689
  // Remove sticky message related to premium code activation.
3690
  $this->_admin_notices->remove_sticky( 'premium_activated' );
3695
  if ( $this->is_paying() && ! $this->is_premium() ) {
3696
  $this->_admin_notices->add_sticky(
3697
  sprintf(
3698
+ /* translators: %s: License type (e.g. you have a professional license) */
3699
+ $this->get_text_inline( 'You have a %s license.', 'you-have-x-license' ),
3700
  $this->_site->plan->title
3701
  ) . $this->get_complete_upgrade_instructions(),
3702
  'plan_upgraded',
3703
+ $this->get_text_x_inline( 'Yee-haw', 'interjection expressing joy or exuberance', 'yee-haw' ) . '!'
3704
  );
3705
  }
3706
  }
3963
 
3964
  $this->_parent->_admin_notices->add_sticky(
3965
  sprintf(
3966
+ ($is_after_trial_cancel ?
3967
+ $this->_parent->get_text_inline(
3968
+ '%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.',
3969
+ 'addon-trial-cancelled-message'
3970
+ ) :
3971
+ $this->_parent->get_text_inline(
3972
+ '%s is a premium only add-on. You have to purchase a license first before activating the plugin.',
3973
+ 'addon-no-license-message'
3974
+ )
3975
  ),
3976
  '<b>' . $this->_plugin->title . '</b>'
3977
  ) . ' ' . sprintf(
3978
  '<a href="%s" aria-label="%s" class="button button-primary" style="margin-left: 10px; vertical-align: middle;">%s &nbsp;&#10140;</a>',
3979
  $this->_parent->addon_url( $this->_slug ),
3980
+ esc_attr( sprintf( $this->_parent->get_text_inline( 'More information about %s', 'more-information-about-x' ), $this->_plugin->title ) ),
3981
+ $this->_parent->get_text_inline( 'Purchase License', 'purchase-license' )
3982
  ),
3983
  'no_addon_license_' . $this->_slug,
3984
+ ( $is_after_trial_cancel ? '' : $this->_parent->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...' ),
3985
  ( $is_after_trial_cancel ? 'success' : 'error' )
3986
  );
3987
 
4415
 
4416
  $this->_admin_notices->add_sticky(
4417
  sprintf(
4418
+ $this->get_text_inline( '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.', 'pending-activation-message' ),
4419
  '<b>' . $this->get_plugin_name() . '</b>',
4420
  '<b>' . $email . '</b>',
4421
+ ( $is_pending_trial ?
4422
+ $this->get_text_inline( 'start the trial', 'start-the-trial' ) :
4423
+ $this->get_text_inline( 'complete the install', 'complete-the-install' ) )
4424
  ),
4425
  'activation_pending',
4426
  'Thanks!'
4499
  // Show notice for new plugin installations.
4500
  $this->_admin_notices->add(
4501
  sprintf(
4502
+ $this->get_text_inline( 'You are just one step away - %s', 'you-are-step-away' ),
4503
  sprintf( '<b><a href="%s">%s</a></b>',
4504
  $this->get_activation_url(),
4505
+ sprintf( $this->get_text_x_inline( 'Complete "%s" Activation Now',
4506
+ '%s - plugin name. As complete "PluginX" activation now', 'activate-x-now' ), $this->get_plugin_name() )
4507
  )
4508
  ),
4509
  '',
4516
  // Show notice for new plugin installations.
4517
  $this->_admin_notices->add_sticky(
4518
  sprintf(
4519
+ $this->get_text_inline( 'We made a few tweaks to the %s, %s', 'few-plugin-tweaks' ),
4520
  $this->_module_type,
4521
  sprintf( '<b><a href="%s">%s</a></b>',
4522
  $this->get_activation_url(),
4523
+ sprintf( $this->get_text_inline( 'Opt in to make "%s" Better!', 'optin-x-now' ), $this->get_plugin_name() )
4524
  )
4525
  ),
4526
  'connect_account',
4905
  // If activating the premium module version, add an admin notice to congratulate for an upgrade completion.
4906
  if ( $is_premium_version_activation ) {
4907
  $this->_admin_notices->add(
4908
+ sprintf( $this->get_text_inline( 'The upgrade of %s was successfully completed.', 'successful-version-upgrade-message' ), sprintf( '<b>%s</b>', $this->_plugin->title ) ),
4909
+ $this->get_text_x_inline( 'W00t',
4910
+ 'Used to express elation, enthusiasm, or triumph (especially in electronic communication).', 'woot' ) . '!'
4911
  );
4912
  }
4913
  } else if ( $this->is_anonymous() ) {
5990
  */
5991
  function get_module_label( $lowercase = false ) {
5992
  $label = $this->is_addon() ?
5993
+ $this->get_text_inline( 'Add-On', 'addon' ) :
5994
  ( $this->is_plugin() ?
5995
+ $this->get_text_inline( 'Plugin', 'plugin' ) :
5996
+ $this->get_text_inline( 'Theme', 'theme' ) );
5997
 
5998
  if ( $lowercase ) {
5999
+ $label = strtolower( $label );
6000
  }
6001
 
6002
  return $label;
7117
  if ( isset( $install->error ) ) {
7118
  $error = $install->error->message;
7119
  } else {
7120
+ $fs->_sync_license( true );
 
 
7121
 
7122
+ $next_page = $fs->is_addon() ?
7123
+ $fs->get_parent_instance()->get_account_url() :
7124
+ $fs->get_account_url();
7125
 
7126
+ $fs->reconnect_locally();
7127
  }
7128
  } else {
7129
  $next_page = $fs->opt_in( false, false, false, $license_key );
7250
  $error = $result->error;
7251
 
7252
  if ( in_array( $error->code, array( 'invalid_email', 'no_user' ) ) ) {
7253
+ $error = $this->get_text_inline( "We couldn't find your email address in the system, are you sure it's the right address?", 'email-not-found' );
7254
  } else if ( 'no_license' === $error->code ) {
7255
+ $error = $this->get_text_inline( "We can't see any active licenses associated with that email address, are you sure it's the right address?", 'no-active-licenses' );
7256
  } else {
7257
  $error = $error->message;
7258
  }
7263
  );
7264
 
7265
  if ( false !== $error ) {
7266
+ $licenses['error'] = sprintf( '%s... %s', $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ), strtolower( $error ) );
7267
  }
7268
 
7269
  echo json_encode( $licenses );
7296
  if ( self::is_ajax() &&
7297
  'admin-ajax.php' === $pagenow
7298
  ) {
7299
+ $referer = fs_get_raw_referer();
7300
 
7301
  if ( is_string( $referer ) ) {
7302
  $parts = explode( '?', $referer );
7333
  return ( 'themes.php' === self::get_current_page() );
7334
  }
7335
 
7336
+ #----------------------------------------------------------------------------------
7337
+ #region Affiliation
7338
+ #----------------------------------------------------------------------------------
7339
+
7340
+ /**
7341
+ * @author Leo Fajardo
7342
+ * @since 1.2.3
7343
+ *
7344
+ * @return bool
7345
+ */
7346
+ function has_affiliate_program() {
7347
+ if ( ! is_object( $this->_plugin ) ) {
7348
+ return false;
7349
+ }
7350
+
7351
+ return $this->_plugin->has_affiliate_program();
7352
+ }
7353
+
7354
+ /**
7355
+ * @author Leo Fajardo (@leorw)
7356
+ * @since 1.2.4
7357
+ */
7358
+ private function fetch_affiliate_terms() {
7359
+ if ( ! is_object( $this->plugin_affiliate_terms ) ) {
7360
+ $plugins_api = $this->get_api_plugin_scope();
7361
+ $affiliate_terms = $plugins_api->get( '/aff.json?type=affiliation', false, WP_FS__TIME_WEEK_IN_SEC );
7362
+
7363
+ if ( ! $this->is_api_result_entity( $affiliate_terms ) ) {
7364
+ return;
7365
+ }
7366
+
7367
+ $this->plugin_affiliate_terms = new FS_AffiliateTerms( $affiliate_terms );
7368
+ }
7369
+ }
7370
+
7371
+ /**
7372
+ * @author Leo Fajardo (@leorw)
7373
+ * @since 1.2.4
7374
+ */
7375
+ private function fetch_affiliate_and_custom_terms() {
7376
+ if ( ! empty( $this->_storage->affiliate_application_data ) ) {
7377
+ $application_data = $this->_storage->affiliate_application_data;
7378
+ $flush = ( ! isset( $application_data['status'] ) || 'pending' === $application_data['status'] );
7379
+
7380
+ $users_api = $this->get_api_user_scope();
7381
+ $result = $users_api->get( "/plugins/{$this->_plugin->id}/aff/{$this->plugin_affiliate_terms->id}/affiliates.json", $flush, WP_FS__TIME_WEEK_IN_SEC );
7382
+ if ( $this->is_api_result_object( $result, 'affiliates' ) ) {
7383
+ if ( ! empty( $result->affiliates ) ) {
7384
+ $affiliate = new FS_Affiliate( $result->affiliates[0] );
7385
+
7386
+ if ( ! isset( $application_data['status'] ) || $application_data['status'] !== $affiliate->status ) {
7387
+ $application_data['status'] = $affiliate->status;
7388
+ $this->_storage->affiliate_application_data = $application_data;
7389
+ }
7390
+
7391
+ if ( $affiliate->is_using_custom_terms ) {
7392
+ $affiliate_terms = $users_api->get( "/plugins/{$this->_plugin->id}/affiliates/{$affiliate->id}/aff/{$affiliate->custom_affiliate_terms_id}.json", $flush, WP_FS__TIME_WEEK_IN_SEC );
7393
+ if ( $this->is_api_result_entity( $affiliate_terms ) ) {
7394
+ $this->custom_affiliate_terms = new FS_AffiliateTerms( $affiliate_terms );
7395
+ }
7396
+ }
7397
+
7398
+ $this->affiliate = $affiliate;
7399
+ }
7400
+ }
7401
+ }
7402
+ }
7403
+
7404
+ /**
7405
+ * @author Leo Fajardo (@leorw)
7406
+ * @since 1.2.3
7407
+ */
7408
+ private function fetch_affiliate_and_terms() {
7409
+ $this->_logger->entrance();
7410
+
7411
+ $this->fetch_affiliate_terms();
7412
+ $this->fetch_affiliate_and_custom_terms();
7413
+ }
7414
+
7415
+ /**
7416
+ * @author Leo Fajardo
7417
+ * @since 1.2.3
7418
+ *
7419
+ * @return FS_Affiliate
7420
+ */
7421
+ function get_affiliate() {
7422
+ return $this->affiliate;
7423
+ }
7424
+
7425
+
7426
+ /**
7427
+ * @author Leo Fajardo
7428
+ * @since 1.2.3
7429
+ *
7430
+ * @return FS_AffiliateTerms
7431
+ */
7432
+ function get_affiliate_terms() {
7433
+ return is_object( $this->custom_affiliate_terms ) ?
7434
+ $this->custom_affiliate_terms :
7435
+ $this->plugin_affiliate_terms;
7436
+ }
7437
+
7438
+ /**
7439
+ * @author Leo Fajardo
7440
+ * @since 1.2.3
7441
+ *
7442
+ * @return FS_Affiliate|null
7443
+ */
7444
+ function _submit_affiliate_application() {
7445
+ $this->_logger->entrance();
7446
+
7447
+ $this->check_ajax_referer( 'submit_affiliate_application' );
7448
+
7449
+ if ( ! $this->is_user_admin() ) {
7450
+ // Only for admins.
7451
+ self::shoot_ajax_failure();
7452
+ }
7453
+
7454
+ $affiliate = fs_request_get( 'affiliate' );
7455
+
7456
+ if ( empty( $affiliate['promotion_methods'] ) ) {
7457
+ unset( $affiliate['promotion_methods'] );
7458
+ }
7459
+
7460
+ if ( ! empty( $affiliate['additional_domains'] ) ) {
7461
+ $affiliate['additional_domains'] = array_unique( $affiliate['additional_domains'] );
7462
+ }
7463
+
7464
+ if ( ! $this->is_registered() ) {
7465
+ // Opt in but don't track usage.
7466
+ $next_page = $this->opt_in(
7467
+ false,
7468
+ false,
7469
+ false,
7470
+ false,
7471
+ false,
7472
+ false,
7473
+ true
7474
+ );
7475
+
7476
+ if ( is_object( $next_page ) && $this->is_api_error( $next_page ) ) {
7477
+ self::shoot_ajax_failure(
7478
+ isset( $next_page->error ) ?
7479
+ $next_page->error->message :
7480
+ var_export( $next_page, true )
7481
+ );
7482
+ } else if ( $this->is_pending_activation() ) {
7483
+ self::shoot_ajax_failure( $this->get_text_inline( 'Account is pending activation.', 'account-is-pending-activation' ) );
7484
+ }
7485
+ }
7486
+
7487
+ $this->fetch_affiliate_terms();
7488
+
7489
+ $api = $this->get_api_user_scope();
7490
+ $result = $api->call(
7491
+ ( "/plugins/{$this->_plugin->id}/aff/{$this->plugin_affiliate_terms->id}/affiliates.json" ),
7492
+ 'post',
7493
+ $affiliate
7494
+ );
7495
+
7496
+ if ( $this->is_api_error( $result ) ) {
7497
+ self::shoot_ajax_failure(
7498
+ isset( $result->error ) ?
7499
+ $result->error->message :
7500
+ var_export( $result, true )
7501
+ );
7502
+ }
7503
+ else
7504
+ {
7505
+ if ( $this->_admin_notices->has_sticky( 'affiliate_program' ) ) {
7506
+ $this->_admin_notices->remove_sticky( 'affiliate_program' );
7507
+ }
7508
+
7509
+ $affiliate_application_data = array(
7510
+ 'status' => 'pending',
7511
+ 'stats_description' => $affiliate['stats_description'],
7512
+ 'promotion_method_description' => $affiliate['promotion_method_description'],
7513
+ );
7514
+
7515
+ if ( ! empty( $affiliate['promotion_methods'] ) ) {
7516
+ $affiliate_application_data['promotion_methods'] = $affiliate['promotion_methods'];
7517
+ }
7518
+
7519
+ if ( ! empty( $affiliate['domain'] ) ) {
7520
+ $affiliate_application_data['domain'] = $affiliate['domain'];
7521
+ }
7522
+
7523
+ if ( ! empty( $affiliate['additional_domains'] ) ) {
7524
+ $affiliate_application_data['additional_domains'] = $affiliate['additional_domains'];
7525
+ }
7526
+
7527
+ $this->_storage->affiliate_application_data = $affiliate_application_data;
7528
+ }
7529
+
7530
+ // Purge cached affiliate.
7531
+ $api->purge_cache( 'affiliate.json' );
7532
+
7533
+ self::shoot_ajax_success( $result );
7534
+ }
7535
+
7536
+ /**
7537
+ * @author Leo Fajardo
7538
+ * @since 1.2.3
7539
+ *
7540
+ * @return array|null
7541
+ */
7542
+ function get_affiliate_application_data() {
7543
+ if ( empty( $this->_storage->affiliate_application_data ) ) {
7544
+ return null;
7545
+ }
7546
+
7547
+ return $this->_storage->affiliate_application_data;
7548
+ }
7549
+
7550
+ #endregion Affiliation ------------------------------------------------------------
7551
+
7552
  #----------------------------------------------------------------------------------
7553
  #region URL Generators
7554
  #----------------------------------------------------------------------------------
7998
  ) ), admin_url( 'admin.php', 'admin' ) );
7999
  } else {
8000
  // Plugin without a settings page.
8001
+ return add_query_arg(
8002
+ $params,
8003
+ admin_url( 'plugins.php' )
8004
+ );
8005
  }
8006
  }
8007
  }
8422
  $this->_site = clone $site;
8423
  $this->_site->plan = self::decrypt_entity( $this->_site->plan );
8424
 
8425
+ /**
8426
+ * If the install owner's details are not stored locally, use the previous user's details if available.
8427
+ *
8428
+ * @author Leo Fajardo (@leorw)
8429
+ */
8430
+ if ( ! isset( $users[ $this->_site->user_id ] ) && FS_User::is_valid_id( $this->_storage->prev_user_id ) ) {
8431
+ $user_id = $this->_storage->prev_user_id;
8432
+ } else {
8433
+ $user_id = $this->_site->user_id;
8434
+ }
8435
+
8436
  // Load relevant user.
8437
+ $this->_user = clone $users[ $user_id ];
8438
 
8439
  // Load plans.
8440
  $this->_plans = $plans[ $this->_slug ];
8582
  * In this case, the user and site info will be sent to the server but no
8583
  * data will be saved to the WP installation's database.
8584
  * @param number|bool $trial_plan_id
8585
+ * @param bool $is_disconnected Whether or not to opt in without tracking.
8586
  *
8587
  * @return string|object
8588
  * @use WP_Error
8593
  $last = false,
8594
  $license_key = false,
8595
  $is_uninstall = false,
8596
+ $trial_plan_id = false,
8597
+ $is_disconnected = false
8598
  ) {
8599
  $this->_logger->entrance();
8600
 
8647
  );
8648
  }
8649
 
8650
+ if ( isset( $params['license_key'] ) ) {
8651
+ $fs_user = Freemius::_get_user_by_email( $email );
8652
+
8653
+ if ( is_object( $fs_user ) ) {
8654
+ /**
8655
+ * If opting in with a context license and the context WP Admin user already opted in
8656
+ * before from the current site, add the user context security params to avoid the
8657
+ * unnecessry email activation when the context license is owned by the same context user.
8658
+ *
8659
+ * @author Leo Fajardo (@leorw)
8660
+ * @since 1.2.3
8661
+ */
8662
+ $params = array_merge( $params, FS_Security::instance()->get_context_params(
8663
+ $fs_user,
8664
+ false,
8665
+ 'install_with_existing_user'
8666
+ ) );
8667
+ }
8668
+ }
8669
+
8670
+ $params['is_disconnected'] = $is_disconnected;
8671
+ $params['format'] = 'json';
8672
 
8673
  $url = WP_FS__ADDRESS . '/action/service/user/install/';
8674
  if ( isset( $_COOKIE['XDEBUG_SESSION'] ) ) {
8725
  return true;
8726
  }
8727
 
8728
+ /**
8729
+ * When json_decode() executed on PHP 5.2 with an invalid JSON, it will throw a PHP warning. Unfortunately, the new Theme Check doesn't allow PHP silencing and the theme review team isn't open to change that, therefore, instead of using `@json_decode()` we had to use the method without the `@` directive.
8730
+ *
8731
+ * @author Vova Feldman (@svovaf)
8732
+ * @since 1.2.3
8733
+ * @link https://themes.trac.wordpress.org/ticket/46134#comment:5
8734
+ * @link https://themes.trac.wordpress.org/ticket/46134#comment:9
8735
+ * @link https://themes.trac.wordpress.org/ticket/46134#comment:12
8736
+ * @link https://themes.trac.wordpress.org/ticket/46134#comment:14
8737
+ */
8738
+ $decoded = is_string( $response['body'] ) ?
8739
+ json_decode( $response['body'] ) :
8740
+ null;
8741
 
8742
  if ( empty( $decoded ) ) {
8743
  return false;
8755
  } else if ( isset( $decoded->pending_activation ) && $decoded->pending_activation ) {
8756
  // Pending activation, add message.
8757
  return $this->set_pending_confirmation(
8758
+ ( isset( $decoded->email ) ?
8759
+ $decoded->email :
8760
+ true ),
8761
  false,
8762
  $filtered_license_key,
8763
  ! empty( $params['trial_plan_id'] )
8823
 
8824
  $this->_admin_notices->remove_sticky( 'connect_account' );
8825
 
8826
+ if ( $this->is_pending_activation() || ! $this->has_settings_menu() ) {
8827
  // Remove pending activation sticky notice (if still exist).
8828
  $this->_admin_notices->remove_sticky( 'activation_pending' );
8829
 
8832
 
8833
  if ( ! $this->is_paying_or_trial() ) {
8834
  $this->_admin_notices->add_sticky(
8835
+ sprintf( $this->get_text_x_inline( '%s activation was successfully completed.',
8836
+ 'pluginX activation was successfully...', 'plugin-x-activation-message' ), '<b>' . $this->get_plugin_name() . '</b>' ),
8837
  'activation_complete'
8838
  );
8839
  }
8840
  }
8841
 
8842
  if ( $this->is_paying_or_trial() ) {
8843
+ if ( ! $this->is_premium() || ! $this->has_premium_version() || ! $this->has_settings_menu() ) {
8844
  if ( $this->is_paying() ) {
8845
  $this->_admin_notices->add_sticky(
8846
  sprintf(
8847
+ $this->get_text_inline( 'Your account was successfully activated with the %s plan.', 'activation-with-plan-x-message' ),
8848
  $this->_site->plan->title
8849
  ) . $this->get_complete_upgrade_instructions(),
8850
  'plan_upgraded',
8851
+ $this->get_text_x_inline( 'Yee-haw', 'interjection expressing joy or exuberance', 'yee-haw' ) . '!'
8852
  );
8853
  } else {
8854
  $this->_admin_notices->add_sticky(
8855
  sprintf(
8856
+ $this->get_text_inline( 'Your trial has been successfully started.', 'trial-started-message' ),
8857
  '<i>' . $this->get_plugin_name() . '</i>'
8858
  ) . $this->get_complete_upgrade_instructions( $this->_storage->trial_plan->title ),
8859
  'trial_started',
8860
+ $this->get_text_x_inline( 'Yee-haw', 'interjection expressing joy or exuberance', 'yee-haw' ) . '!'
8861
  );
8862
  }
8863
  }
9142
  $install = $this->apply_filters( 'after_install_failure', $install, $args );
9143
 
9144
  $this->_admin_notices->add(
9145
+ sprintf( $this->get_text_inline( 'Couldn\'t activate %s.', 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
9146
+ $this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . $install->error->message . '</b>',
9147
+ $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
9148
  'error'
9149
  );
9150
 
9151
  if ( $redirect ) {
9152
+ /**
9153
+ * We set the user before getting the user scope API handler, so the user became temporarily
9154
+ * registered (`is_registered() = true`). Since the API returned an error and we will redirect,
9155
+ * we have to set the user to `null`, otherwise, the user will be redirected to the wrong
9156
+ * activation page based on the return value of `is_registered()`. In addition, in case the
9157
+ * context plugin doesn't have a settings menu and the default page is the `Plugins` page,
9158
+ * misleading plugin activation errors will be shown on the `Plugins` page.
9159
+ *
9160
+ * @author Leo Fajardo (@leorw)
9161
+ */
9162
+ $this->_user = null;
9163
+
9164
+ fs_redirect( $this->get_activation_url( array( 'error' => $install->error->message ) ) );
9165
  }
9166
 
9167
  return $install;
9198
 
9199
  if ( isset( $addon_install->error ) ) {
9200
  $this->_admin_notices->add(
9201
+ sprintf( $this->get_text_inline( 'Couldn\'t activate %s.', 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
9202
+ $this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . $addon_install->error->message . '</b>',
9203
+ $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
9204
  'error'
9205
  );
9206
 
9259
 
9260
  if ( isset( $parent_install->error ) ) {
9261
  $this->_admin_notices->add(
9262
+ sprintf( $this->get_text_inline( 'Couldn\'t activate %s.', 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
9263
+ $this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . $parent_install->error->message . '</b>',
9264
+ $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
9265
  'error'
9266
  );
9267
 
9268
  return;
9269
  }
9270
 
9271
+ $parent_fs->_admin_notices->remove_sticky( 'connect_account' );
9272
+
9273
+ if ( $parent_fs->is_pending_activation() ) {
9274
+ $parent_fs->_admin_notices->remove_sticky( 'activation_pending' );
9275
+
9276
+ unset( $parent_fs->_storage->is_pending_activation );
9277
+ }
9278
+
9279
  // First of all, set site info - otherwise we won't
9280
  // be able to invoke API calls.
9281
  $parent_fs->_site = new FS_Site( $parent_install );
9468
 
9469
  if ( false !== $hook ) {
9470
  if ( fs_request_is_action( $this->get_unique_affix() . '_activate_existing' ) ) {
9471
+ $this->_install_with_current_user();
9472
  } else if ( fs_request_is_action( $this->get_unique_affix() . '_activate_new' ) ) {
9473
+ $this->_install_with_new_user();
9474
  }
9475
  }
9476
  }
9518
  * @return string
9519
  */
9520
  function get_pricing_cta_label() {
9521
+ $label = $this->get_text_inline( 'Upgrade', 'upgrade' );
9522
 
9523
  if ( $this->is_in_trial_promotion() &&
9524
  ! $this->is_paying_or_trial()
9525
  ) {
9526
  // If running a trial promotion, modify the pricing to load the trial.
9527
+ $label = $this->get_text_inline( 'Start Trial', 'start-trial' );
9528
  } else if ( $this->is_paying() ) {
9529
+ $label = $this->get_text_inline( 'Pricing', 'pricing' );
9530
  }
9531
 
9532
  return $label;
9563
  * @since 1.2.2.7 Also add submenu items when running in a free .org theme so the tabs will be visible.
9564
  */
9565
  if ( ! $this->is_activation_mode() || $this->is_free_wp_org_theme() ) {
9566
+ if ( $this->has_affiliate_program() ) {
9567
+ // Add affiliation page.
9568
+ $this->add_submenu_item(
9569
+ $this->get_text_inline( 'Affiliation', 'affiliation' ),
9570
+ array( &$this, '_affiliation_page_render' ),
9571
+ $this->get_plugin_name() . ' &ndash; ' . $this->get_text_inline( 'Affiliation', 'affiliation' ),
9572
+ 'manage_options',
9573
+ 'affiliation',
9574
+ 'Freemius::_clean_admin_content_section',
9575
+ WP_FS__DEFAULT_PRIORITY,
9576
+ $this->is_submenu_item_visible( 'affiliation' )
9577
+ );
9578
+ }
9579
+
9580
  if ( $this->is_registered() ) {
9581
  $show_account = (
9582
  $this->is_submenu_item_visible( 'account' ) &&
9588
 
9589
  // Add user account page.
9590
  $this->add_submenu_item(
9591
+ $this->get_text_inline( 'Account', 'account' ),
9592
  array( &$this, '_account_page_render' ),
9593
+ $this->get_plugin_name() . ' &ndash; ' . $this->get_text_inline( 'Account', 'account' ),
9594
  'manage_options',
9595
  'account',
9596
  array( &$this, '_account_page_load' ),
9601
 
9602
  // Add contact page.
9603
  $this->add_submenu_item(
9604
+ $this->get_text_inline( 'Contact Us', 'contact-us' ),
9605
  array( &$this, '_contact_page_render' ),
9606
+ $this->get_plugin_name() . ' &ndash; ' . $this->get_text_inline( 'Contact Us', 'contact-us' ),
9607
  'manage_options',
9608
  'contact',
9609
  'Freemius::_clean_admin_content_section',
9613
 
9614
  if ( $this->has_addons() ) {
9615
  $this->add_submenu_item(
9616
+ $this->get_text_inline( 'Add-Ons', 'add-ons' ),
9617
  array( &$this, '_addons_page_render' ),
9618
+ $this->get_plugin_name() . ' &ndash; ' . $this->get_text_inline( 'Add-Ons', 'add-ons' ),
9619
  'manage_options',
9620
  'addons',
9621
  array( &$this, '_addons_page_load' ),
9629
  $this->is_pricing_page_visible()
9630
  );
9631
 
9632
+ $pricing_cta_text = $this->get_pricing_cta_label();
9633
  $pricing_class = 'upgrade-mode';
9634
  if ( $show_pricing ) {
9635
  if ( $this->is_in_trial_promotion() &&
9644
 
9645
  // Add upgrade/pricing page.
9646
  $this->add_submenu_item(
9647
+ $pricing_cta_text . '&nbsp;&nbsp;' . ( is_rtl() ? '&#x2190;' : '&#x27a4;' ),
9648
  array( &$this, '_pricing_page_render' ),
9649
+ $this->get_plugin_name() . ' &ndash; ' . $this->get_text_x_inline( 'Pricing', 'noun', 'pricing' ),
9650
  'manage_options',
9651
  'pricing',
9652
  'Freemius::_clean_admin_content_section',
9826
 
9827
  if ( ! $this->is_activation_mode() ) {
9828
  $this->add_submenu_link_item(
9829
+ $this->apply_filters( 'support_forum_submenu', $this->get_text_inline( 'Support Forum', 'support-forum' ) ),
9830
  $this->get_support_forum_url(),
9831
  'wp-support-forum',
9832
  null,
10338
  $encrypted_site = clone $this->_site;
10339
  $encrypted_site->plan = self::_encrypt_entity( $this->_site->plan );
10340
 
10341
+ $sites = self::get_all_sites( $this->_module_type );
10342
+
10343
+ if ( empty( $this->_storage->prev_user_id ) && $this->_user->id != $this->_site->user_id ) {
10344
+ /**
10345
+ * Store the current user ID as the previous user ID so that the previous user can be used
10346
+ * as the install's owner while the new owner's details are not yet available.
10347
+ *
10348
+ * This will be executed only in the `replica` site. For example, there are 2 sites, namely `original`
10349
+ * and `replica`, then an ownership change was initiated and completed in the `original`, the `replica`
10350
+ * will be using the previous user until it is updated again (e.g.: until the next clone of `original`
10351
+ * into `replica`.
10352
+ *
10353
+ * @author Leo Fajardo (@leorw)
10354
+ */
10355
+ $this->_storage->prev_user_id = $sites[ $this->_slug ]->user_id;
10356
+ }
10357
+
10358
  $sites[ $this->_slug ] = $encrypted_site;
10359
 
10360
  $this->set_account_option( 'sites', $sites, $store );
10566
  $this->do_action( 'account_email_verified', $user->email );
10567
 
10568
  $this->_admin_notices->add(
10569
+ $this->get_text_inline( 'Your email has been successfully verified - you are AWESOME!', 'email-verified-message' ),
10570
+ $this->get_text_x_inline( 'Right on', 'a positive response', 'right-on' ) . '!',
10571
  'success',
10572
  // Make admin sticky if account menu item is invisible,
10573
  // since the page will be auto redirected to the plugin's
10699
  * @return FS_Plugin_Plan[]|object
10700
  */
10701
  private function _fetch_plugin_plans() {
10702
+ $this->_logger->entrance();
10703
+ $api = $this->get_api_site_scope();
10704
 
10705
+ /**
10706
+ * @since 1.2.3 When running in DEV mode, retrieve pending plans as well.
10707
+ */
10708
+ $result = $api->get( '/plans.json?show_pending=' . ( $this->has_secret_key() ? 'true' : 'false' ), true );
10709
 
10710
+ if ( $this->is_api_result_object( $result, 'plans' ) && is_array( $result->plans ) ) {
10711
+ for ( $i = 0, $len = count( $result->plans ); $i < $len; $i ++ ) {
10712
+ $result->plans[ $i ] = new FS_Plugin_Plan( $result->plans[ $i ] );
10713
+ }
10714
 
10715
+ $result = $result->plans;
10716
+ }
10717
 
10718
+ return $result;
10719
+ }
10720
 
10721
  /**
10722
  * @author Vova Feldman (@svovaf)
11101
  }
11102
 
11103
  $this->_admin_notices->add_sticky(
11104
+ sprintf(
11105
+ ( FS_Plan_Manager::instance()->has_free_plan( $plans ) ?
11106
+ $this->get_text_inline( 'Your %s Add-on plan was successfully upgraded.', 'addon-successfully-upgraded-message' ) :
11107
+ /* translators: %s:product name, e.g. Facebook add-on was successfully... */
11108
+ $this->get_text_inline( '%s Add-on was successfully purchased.', 'addon-successfully-purchased-message' ) ),
11109
+ $addon->title
11110
+ ) . ' ' . $this->get_latest_download_link(
11111
+ $this->get_text_inline( 'Download the latest version', 'download-latest-version' ),
11112
+ $addon_id
11113
+ ),
 
 
 
 
 
 
11114
  'addon_plan_upgraded_' . $addon->slug,
11115
+ $this->get_text_x_inline( 'Yee-haw', 'interjection expressing joy or exuberance', 'yee-haw' ) . '!'
11116
  );
11117
  }
11118
  }
11157
  if ( ! self::$_global_admin_notices->has_sticky( 'api_blocked' ) ) {
11158
  self::$_global_admin_notices->add(
11159
  sprintf(
11160
+ $this->get_text_x_inline( 'Your server is blocking the access to Freemius\' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s', '%1s - plugin title, %2s - API domain', 'server-blocking-access' ),
11161
  $this->get_plugin_name(),
11162
  '<a href="' . $api->get_url() . '" target="_blank">' . $api->get_url() . '</a>'
11163
+ ) . '<br> ' . $this->get_text_inline( 'Error received from the server:', 'server-error-message' ) . var_export( $site->error, true ),
11164
+ $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
11165
  'error',
11166
  $background,
11167
  false,
11171
  } else {
11172
  // Authentication params are broken.
11173
  $this->_admin_notices->add(
11174
+ $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' ),
11175
+ $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
11176
  'error'
11177
  );
11178
  }
11288
  }
11289
  }
11290
 
11291
+ $hmm_text = $this->get_text_x_inline( 'Hmm', 'something somebody says when they are thinking about what you have just said.', 'hmm' ) . '...';
11292
+
11293
  if ( $this->has_paid_plan() ) {
11294
  switch ( $plan_change ) {
11295
  case 'none':
11301
  if ( $plan->is_free() ) {
11302
  $this->_admin_notices->add(
11303
  sprintf(
11304
+ $this->get_text_inline( '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.', 'plan-did-not-change-message' ),
11305
+ '<i><b>' . $plan->title . ( $this->is_trial() ? ' ' . $this->get_text_x_inline( 'Trial', 'trial period', 'trial' ) : '' ) . '</b></i>'
11306
  ) . ' ' . sprintf(
11307
  '<a href="%s">%s</a>',
11308
  $this->contact_url(
11309
  'bug',
11310
+ sprintf( $this->get_text_inline( 'I have upgraded my account but when I try to Sync the License, the plan remains %s.', 'plan-did-not-change-email-message' ),
11311
  strtoupper( $plan->name )
11312
  )
11313
  ),
11314
+ $this->get_text_inline( 'Please contact us here', 'contact-us-here' )
11315
  ),
11316
+ $hmm_text
11317
  );
11318
  }
11319
  }
11321
  case 'upgraded':
11322
  $this->_admin_notices->add_sticky(
11323
  sprintf(
11324
+ $this->get_text_inline( 'Your plan was successfully upgraded.', 'plan-upgraded-message' ),
11325
  '<i>' . $this->get_plugin_name() . '</i>'
11326
  ) . $this->get_complete_upgrade_instructions(),
11327
  'plan_upgraded',
11328
+ $this->get_text_x_inline( 'Yee-haw', 'interjection expressing joy or exuberance', 'yee-haw' ) . '!'
11329
  );
11330
 
11331
  $this->_admin_notices->remove_sticky( array(
11338
  case 'changed':
11339
  $this->_admin_notices->add_sticky(
11340
  sprintf(
11341
+ $this->get_text_inline( 'Your plan was successfully changed to %s.', 'plan-changed-to-x-message' ),
11342
  $this->_site->plan->title
11343
  ),
11344
  'plan_changed'
11353
  break;
11354
  case 'downgraded':
11355
  $this->_admin_notices->add_sticky(
11356
+ sprintf( $this->get_text_inline( 'Your license has expired. You can still continue using the free %s forever.', 'license-expired-blocking-message' ), $this->_module_type ),
11357
  'license_expired',
11358
+ $hmm_text
11359
  );
11360
  $this->_admin_notices->remove_sticky( 'plan_upgraded' );
11361
  break;
11362
  case 'cancelled':
11363
  $this->_admin_notices->add(
11364
+ $this->get_text_inline( 'Your license has been cancelled. If you think it\'s a mistake, please contact support.', 'license-cancelled' ) . ' ' .
11365
  sprintf(
11366
  '<a href="%s">%s</a>',
11367
  $this->contact_url( 'bug' ),
11368
+ $this->get_text_inline( 'Please contact us here', 'contact-us-here' )
11369
  ),
11370
+ $hmm_text,
11371
  'error'
11372
  );
11373
  $this->_admin_notices->remove_sticky( 'plan_upgraded' );
11374
  break;
11375
  case 'expired':
11376
  $this->_admin_notices->add_sticky(
11377
+ sprintf( $this->get_text_inline( '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.', 'license-expired-non-blocking-message' ), $this->_site->plan->title ),
11378
  'license_expired',
11379
+ $hmm_text
11380
  );
11381
  $this->_admin_notices->remove_sticky( 'plan_upgraded' );
11382
  break;
11383
  case 'trial_started':
11384
  $this->_admin_notices->add_sticky(
11385
  sprintf(
11386
+ $this->get_text_inline( 'Your trial has been successfully started.', 'trial-started-message' ),
11387
  '<i>' . $this->get_plugin_name() . '</i>'
11388
  ) . $this->get_complete_upgrade_instructions( $this->_storage->trial_plan->title ),
11389
  'trial_started',
11390
+ $this->get_text_x_inline( 'Yee-haw', 'interjection expressing joy or exuberance', 'yee-haw' ) . '!'
11391
  );
11392
 
11393
  $this->_admin_notices->remove_sticky( array(
11396
  break;
11397
  case 'trial_expired':
11398
  $this->_admin_notices->add_sticky(
11399
+ $this->get_text_inline( 'Your trial has expired. You can still continue using all our free features.', 'trial-expired-message' ),
11400
  'trial_expired',
11401
+ $hmm_text
11402
  );
11403
  $this->_admin_notices->remove_sticky( array(
11404
  'trial_started',
11466
  if ( ! $background ) {
11467
  $this->_admin_notices->add( sprintf(
11468
  '%s %s',
11469
+ $this->get_text_inline( 'It looks like the license could not be activated.', 'license-activation-failed-message' ),
11470
  ( is_object( $license ) && isset( $license->error ) ?
11471
  $license->error->message :
11472
  sprintf( '%s<br><code>%s</code>',
11473
+ $this->get_text_inline( 'Error received from the server:', 'server-error-message' ),
11474
  var_export( $license, true )
11475
  )
11476
  )
11477
  ),
11478
+ $this->get_text_x_inline( 'Hmm', 'something somebody says when they are thinking about what you have just said.', 'hmm' ) . '...',
11479
  'error'
11480
  );
11481
  }
11482
 
11483
  return;
11484
  }
 
11485
  $premium_license = new FS_Plugin_License( $license );
11486
 
11487
  // Updated site plan.
11496
 
11497
  if ( ! $background ) {
11498
  $this->_admin_notices->add_sticky(
11499
+ $this->get_text_inline( 'Your license was successfully activated.', 'license-activated-message' ) .
11500
  $this->get_complete_upgrade_instructions(),
11501
  'license_activated',
11502
+ $this->get_text_x_inline( 'Yee-haw', 'interjection expressing joy or exuberance', 'yee-haw' ) . '!'
11503
  );
11504
  }
11505
 
11518
  protected function _deactivate_license( $show_notice = true ) {
11519
  $this->_logger->entrance();
11520
 
11521
+ $hmm_text = $this->get_text_x_inline( 'Hmm', 'something somebody says when they are thinking about what you have just said.', 'hmm' ) . '...';
11522
+
11523
  if ( ! is_object( $this->_license ) ) {
11524
  $this->_admin_notices->add(
11525
+ sprintf( $this->get_text_inline( 'It looks like your site currently doesn\'t have an active license.', 'no-active-license-message' ), $this->_site->plan->title ),
11526
+ $hmm_text
11527
  );
11528
 
11529
  return;
11534
 
11535
  if ( isset( $license->error ) ) {
11536
  $this->_admin_notices->add(
11537
+ $this->get_text_inline( 'It looks like the license deactivation failed.', 'license-deactivation-failed-message' ) . '<br> ' .
11538
+ $this->get_text_inline( 'Error received from the server:', 'server-error-message' ) . ' ' . var_export( $license->error, true ),
11539
+ $hmm_text,
11540
  'error'
11541
  );
11542
 
11561
 
11562
  if ( $show_notice ) {
11563
  $this->_admin_notices->add(
11564
+ sprintf( $this->get_text_inline( 'Your license was successfully deactivated, you are back to the %s plan.', 'license-deactivation-message' ), $this->_site->plan->title ),
11565
+ $this->get_text_inline( 'O.K', 'ok' )
11566
  );
11567
  }
11568
 
11610
  $this->_admin_notices->remove_sticky( 'plan_upgraded' );
11611
 
11612
  $this->_admin_notices->add(
11613
+ sprintf( $this->get_text_inline( 'Your plan was successfully downgraded. Your %s plan license will expire in %s.', 'plan-x-downgraded-message' ),
11614
  $plan->title,
11615
  human_time_diff( time(), strtotime( $this->_license->expiration ) )
11616
  )
11620
  $this->_store_site();
11621
  } else {
11622
  $this->_admin_notices->add(
11623
+ $this->get_text_inline( 'Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes.', 'plan-downgraded-failure-message' ),
11624
+ $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
11625
  'error'
11626
  );
11627
  }
11638
  function start_trial( $plan_name = false ) {
11639
  $this->_logger->entrance();
11640
 
11641
+ // Alias.
11642
+ $oops_text = $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...';
11643
+
11644
  if ( $this->is_trial() ) {
11645
  // Already in trial mode.
11646
  $this->_admin_notices->add(
11647
+ sprintf( $this->get_text_inline( 'You are already running the %s in a trial mode.', 'in-trial-mode' ), $this->_module_type ),
11648
+ $oops_text,
11649
  'error'
11650
  );
11651
 
11655
  if ( $this->_site->is_trial_utilized() ) {
11656
  // Trial was already utilized.
11657
  $this->_admin_notices->add(
11658
+ $this->get_text_inline( 'You already utilized a trial before.', 'trial-utilized' ),
11659
+ $oops_text,
11660
  'error'
11661
  );
11662
 
11669
  if ( false === $plan ) {
11670
  // Plan doesn't exist.
11671
  $this->_admin_notices->add(
11672
+ sprintf( $this->get_text_inline( 'Plan %s do not exist, therefore, can\'t start a trial.', 'trial-plan-x-not-exist' ), $plan_name ),
11673
+ $oops_text,
11674
  'error'
11675
  );
11676
 
11680
  if ( ! $plan->has_trial() ) {
11681
  // Plan doesn't exist.
11682
  $this->_admin_notices->add(
11683
+ sprintf( $this->get_text_inline( 'Plan %s does not support a trial period.', 'plan-x-no-trial' ), $plan_name ),
11684
+ $oops_text,
11685
  'error'
11686
  );
11687
 
11691
  if ( ! $this->has_trial_plan() ) {
11692
  // None of the plans have a trial.
11693
  $this->_admin_notices->add(
11694
+ sprintf( $this->get_text_inline( 'None of the %s\'s plans supports a trial period.', 'no-trials' ), $this->_module_type ),
11695
+ $oops_text,
11696
  'error'
11697
  );
11698
 
11710
  if ( ! $this->is_api_result_entity( $plan ) ) {
11711
  // Some API error while trying to start the trial.
11712
  $this->_admin_notices->add(
11713
+ sprintf( $this->get_text_inline( 'Unexpected API error. Please contact the %s\'s author with the following error.', 'unexpected-api-error' ), $this->_module_type )
11714
  . ' ' . var_export( $plan, true ),
11715
+ $oops_text,
11716
  'error'
11717
  );
11718
 
11736
  private function _cancel_trial() {
11737
  $this->_logger->entrance();
11738
 
11739
+ // Alias.
11740
+ $oops_text = $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...';
11741
+
11742
  if ( ! $this->is_trial() ) {
11743
  $this->_admin_notices->add(
11744
+ $this->get_text_inline( 'It looks like you are not in trial mode anymore so there\'s nothing to cancel :)', 'trial-cancel-no-trial-message' ),
11745
+ $oops_text,
11746
  'error'
11747
  );
11748
 
11792
  ! $this->deactivate_premium_only_addon_without_license( true )
11793
  ) {
11794
  $this->_admin_notices->add(
11795
+ sprintf( $this->get_text_inline( 'Your %s free trial was successfully cancelled.', 'trial-cancel-message' ), $this->_storage->trial_plan->title )
11796
  );
11797
  }
11798
 
11800
  unset( $this->_storage->trial_plan );
11801
  } else {
11802
  $this->_admin_notices->add(
11803
+ $this->get_text_inline( 'Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes.', 'trial-cancel-failure-message' ),
11804
+ $oops_text,
11805
  'error'
11806
  );
11807
  }
12038
  if ( ! $background ) {
12039
  $this->_admin_notices->add(
12040
  sprintf(
12041
+ /* translators: %s: Numeric version number (e.g. '2.1.9' */
12042
+ $this->get_text_inline( 'Version %s was released.', 'version-x-released' ) . ' ' . $this->get_text_inline( 'Please download %s.', 'please-download-x' ),
12043
  $update->version,
12044
  sprintf(
12045
  '<a href="%s" target="_blank">%s</a>',
12046
  $this->get_account_url( 'download_latest' ),
12047
+ sprintf(
12048
+ /* translators: %s: plan name (e.g. latest "Professional" version) */
12049
+ $this->get_text_inline( 'the latest %s version here', 'latest-x-version' ),
12050
+ $this->_site->plan->title
12051
+ )
12052
  )
12053
  ),
12054
+ $this->get_text_inline( 'New', 'new' ) . '!'
12055
  );
12056
  }
12057
  } else if ( false === $new_version && ! $background ) {
12058
  $this->_admin_notices->add(
12059
+ $this->get_text_inline( 'Seems like you got the latest release.', 'you-have-latest' ),
12060
+ $this->get_text_inline( 'You are all good!', 'you-are-good' )
12061
  );
12062
  }
12063
 
12323
 
12324
  if ( ! isset( $result->error ) ) {
12325
  $this->_admin_notices->add( sprintf(
12326
+ $this->get_text_inline( 'Verification mail was just sent to %s. If you can\'t find it after 5 min, please check your spam box.', 'verification-email-sent-message' ),
12327
  sprintf( '<a href="mailto:%1s">%2s</a>', esc_url( $this->_user->email ), $this->_user->email )
12328
  ) );
12329
  } else {
12411
  $plugin_id = fs_request_get( 'plugin_id', $this->get_id() );
12412
  $action = fs_get_action();
12413
 
12414
+ // Alias.
12415
+ $oops_text = $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...';
12416
+
12417
  switch ( $action ) {
12418
  case 'delete_account':
12419
  check_admin_referer( $action );
12468
 
12469
  if ( $plugin_id == $this->get_id() ) {
12470
  $this->_deactivate_license();
12471
+
12472
+ if ( $this->is_only_premium() ) {
12473
+ // Clear user and site.
12474
+ $this->_site = null;
12475
+ $this->_user = null;
12476
+
12477
+ fs_redirect( $this->get_activation_url() );
12478
+ }
12479
  } else {
12480
  if ( $this->is_addon_activated( $plugin_id ) ) {
12481
  $fs_addon = self::get_instance_by_id( $plugin_id );
12498
  $candidate_email = fs_request_get( 'candidate_email', '' );
12499
 
12500
  if ( $this->init_change_owner( $candidate_email ) ) {
12501
+ $this->_admin_notices->add( sprintf( $this->get_text_inline( '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.', 'change-owner-request-sent-x' ), '<b>' . $this->_user->email . '</b>' ) );
12502
  }
12503
  break;
12504
  case 'owner_confirmed':
12505
  $candidate_email = fs_request_get( 'candidate_email', '' );
12506
 
12507
+ $this->_admin_notices->add( sprintf( $this->get_text_inline( 'Thanks for confirming the ownership change. An email was just sent to %s for final approval.', 'change-owner-request_owner-confirmed' ), '<b>' . $candidate_email . '</b>' ) );
12508
  break;
12509
  case 'candidate_confirmed':
12510
  if ( $this->complete_change_owner() ) {
12511
  $this->_admin_notices->add_sticky(
12512
+ sprintf( $this->get_text_inline( '%s is the new owner of the account.', 'change-owner-request_candidate-confirmed' ), '<b>' . $this->_user->email . '</b>' ),
12513
  'ownership_changed',
12514
+ $this->get_text_x_inline( 'Congrats', 'as congratulations', 'congrats' ) . '!'
12515
  );
12516
  } else {
12517
  // @todo Handle failed ownership change message.
12531
  switch ( $result->error->code ) {
12532
  case 'user_exist':
12533
  $this->_admin_notices->add(
12534
+ $this->get_text_inline( 'Sorry, we could not complete the email update. Another user with the same email is already registered.', 'user-exist-message' ) . ' ' .
12535
+ 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 . '</b>' ) .
12536
  sprintf(
12537
  '<a style="margin-left: 10px;" href="%s"><button class="button button-primary">%s &nbsp;&#10140;</button></a>',
12538
  $this->get_account_url( 'change_owner', array(
12539
  'state' => 'init',
12540
  'candidate_email' => $new_email
12541
  ) ),
12542
+ $this->get_text_inline( 'Change Ownership', 'change-ownership' )
12543
  ),
12544
+ $oops_text,
12545
  'error'
12546
  );
12547
  break;
12548
  }
12549
  } else {
12550
+ $this->_admin_notices->add( $this->get_text_inline( 'Your email was successfully updated. You should receive an email with confirmation instructions in few moments.', 'email-updated-message' ) );
12551
  }
12552
 
12553
  return;
12559
 
12560
  if ( isset( $result->error ) ) {
12561
  $this->_admin_notices->add(
12562
+ $this->get_text_inline( 'Please provide your full name.', 'name-update-failed-message' ),
12563
+ $oops_text,
12564
  'error'
12565
  );
12566
  } else {
12567
+ $this->_admin_notices->add( $this->get_text_inline( 'Your name was successfully updated.', 'name-updated-message' ) );
12568
  }
12569
 
12570
  return;
12624
  $this->do_action( 'account_property_edit', 'site', $site_property, $site_property_value );
12625
 
12626
  $this->_admin_notices->add( sprintf(
12627
+ /* translators: %s: User's account property (e.g. email address, name) */
12628
+ $this->get_text_inline( 'You have successfully updated your %s.', 'x-updated' ),
12629
+ '<b>' . str_replace( '_', ' ', $p ) . '</b>'
12630
+ ) );
12631
 
12632
  return;
12633
  }
12680
  $this->do_action( 'account_page_load_before_departure' );
12681
  }
12682
 
12683
+ /**
12684
+ * Renders the "Affiliation" page.
12685
+ *
12686
+ * @author Leo Fajardo (@leorw)
12687
+ * @since 1.2.3
12688
+ */
12689
+ function _affiliation_page_render() {
12690
+ $this->_logger->entrance();
12691
+
12692
+ $this->fetch_affiliate_and_terms();
12693
+
12694
+ fs_enqueue_local_style( 'fs_affiliation', '/admin/affiliation.css' );
12695
+
12696
+ $vars = array( 'id' => $this->_module_id );
12697
+ echo $this->apply_filters( "/forms/affiliation.php", fs_get_template( '/forms/affiliation.php', $vars ) );
12698
+ }
12699
+
12700
+
12701
  /**
12702
  * Render account page.
12703
  *
12708
  $this->_logger->entrance();
12709
 
12710
  $template = 'account.php';
12711
+ $vars = array( 'id' => $this->_module_id );
 
 
 
 
12712
 
12713
  /**
12714
  * Added filter to the template to allow developers wrapping the template
12765
 
12766
  if ( ! $this->is_registered() && $this->is_org_repo_compliant() ) {
12767
  $this->_admin_notices->add(
12768
+ sprintf( $this->get_text_inline( 'Just letting you know that the add-ons information of %s is being pulled from an external server.', 'addons-info-external-message' ), '<b>' . $this->get_plugin_name() . '</b>' ),
12769
+ $this->get_text_x_inline( 'Heads up', 'advance notice of something that will need attention.', 'heads-up' ),
12770
  'update-nag'
12771
  );
12772
  }
13084
  $trial_period = $this->_trial_days;
13085
  $require_payment = $this->_is_trial_require_payment;
13086
  $trial_url = $this->get_trial_url();
13087
+ $plans_string = strtolower( $this->get_text_inline( 'Awesome', 'awesome' ) );
13088
 
13089
  if ( $this->is_registered() ) {
13090
  // If opted-in, override trial with up to date data from API.
13124
  }
13125
 
13126
  $message = sprintf(
13127
+ $this->get_text_x_inline( 'Hey', 'exclamation', 'hey' ) . '! ' . $this->get_text_inline( 'How do you like %s so far? Test all our %s premium features with a %d-day free trial.', 'trial-x-promotion-message' ),
13128
  sprintf( '<b>%s</b>', $this->get_plugin_name() ),
13129
  $plans_string,
13130
  $trial_period
13132
 
13133
  // "No Credit-Card Required" or "No Commitment for N Days".
13134
  $cc_string = $require_payment ?
13135
+ sprintf( $this->get_text_inline( 'No commitment for %s days - cancel anytime!', 'no-commitment-for-x-days' ), $trial_period ) :
13136
+ $this->get_text_inline( 'No credit card required', 'no-cc-required' ) . '!';
13137
 
13138
 
13139
  // Start trial button.
13140
  $button = ' ' . sprintf(
13141
  '<a style="margin-left: 10px; vertical-align: super;" href="%s"><button class="button button-primary">%s &nbsp;&#10140;</button></a>',
13142
  $trial_url,
13143
+ $this->get_text_x_inline( 'Start free trial', 'call to action', 'start-free-trial' )
13144
  );
13145
 
13146
  $this->_admin_notices->add_sticky(
13155
  return true;
13156
  }
13157
 
13158
+ /**
13159
+ * Lets users/customers know that the product has an affiliate program.
13160
+ *
13161
+ * @author Leo Fajardo (@leorw)
13162
+ * @since 1.2.2.11
13163
+ *
13164
+ * @return bool Returns true if the notice has been added.
13165
+ */
13166
+ function _add_affiliate_program_notice() {
13167
+ if ( ! $this->is_user_admin() ) {
13168
+ return false;
13169
+ }
13170
+
13171
+ if ( ! $this->is_user_in_admin() ) {
13172
+ return false;
13173
+ }
13174
+
13175
+ // Check if the notice is already shown.
13176
+ if ( $this->_admin_notices->has_sticky( 'affiliate_program' ) ) {
13177
+ return false;
13178
+ }
13179
+
13180
+ if (
13181
+ // Product has no affiliate program.
13182
+ ! $this->has_affiliate_program() ||
13183
+ // User has applied for an affiliate account.
13184
+ ! empty( $this->_storage->affiliate_application_data ) ) {
13185
+ return false;
13186
+ }
13187
+
13188
+ if ( ! $this->apply_filters( 'show_affiliate_program_notice', true ) ) {
13189
+ // Developer explicitly asked not to show the notice about the affiliate program.
13190
+ return false;
13191
+ }
13192
+
13193
+ if ( $this->is_activation_mode() || $this->is_pending_activation() ) {
13194
+ // If not yet opted in/skipped, or pending activation, don't show the notice.
13195
+ return false;
13196
+ }
13197
+
13198
+ $last_time_notice_was_shown = $this->_storage->get( 'affiliate_program_notice_shown', false );
13199
+ $was_notice_shown_before = ( false !== $last_time_notice_was_shown );
13200
+
13201
+ /**
13202
+ * Do not show the notice if it was already shown before or less than 30 days have passed since the initial
13203
+ * activation with FS.
13204
+ */
13205
+ if ( $was_notice_shown_before ||
13206
+ $this->_storage->install_timestamp > ( time() - ( WP_FS__TIME_24_HOURS_IN_SEC * 30 ) )
13207
+ ) {
13208
+ return false;
13209
+ }
13210
+
13211
+ if ( ! $this->is_paying() &&
13212
+ FS_Plugin::AFFILIATE_MODERATION_CUSTOMERS == $this->_plugin->affiliate_moderation ) {
13213
+ // If the user is not a customer and the affiliate program is only for customers, don't show the notice.
13214
+ return false;
13215
+ }
13216
+
13217
+ $message = sprintf(
13218
+ $this->get_text_inline( '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!', 'become-an-ambassador-admin-notice' ),
13219
+ sprintf( '<strong>%s</strong>', $this->get_plugin_name() ),
13220
+ $this->get_module_label( true )
13221
+ );
13222
+
13223
+ // HTML code for the "Learn more..." button.
13224
+ $button = ' ' . sprintf(
13225
+ '<a style="display: block; margin-top: 10px;" href="%s"><button class="button button-primary">%s &nbsp;&#10140;</button></a>',
13226
+ $this->_get_admin_page_url( 'affiliation' ),
13227
+ $this->get_text_inline( 'Learn more', 'learn-more' ) . '...'
13228
+ );
13229
+
13230
+ $this->_admin_notices->add_sticky(
13231
+ $this->apply_filters( 'affiliate_program_notice', "{$message} {$button}" ),
13232
+ 'affiliate_program',
13233
+ '',
13234
+ 'promotion'
13235
+ );
13236
+
13237
+ $this->_storage->affiliate_program_notice_shown = WP_FS__SCRIPT_START_TIME;
13238
+
13239
+ return true;
13240
+ }
13241
+
13242
  /**
13243
  * @author Vova Feldman (@svovaf)
13244
  * @since 1.2.1.5
13341
  if ( $this->is_registered() ) {
13342
  if ( ! $this->is_paying() && $this->has_paid_plan() ) {
13343
  $this->add_plugin_action_link(
13344
+ $this->get_text_inline( 'Upgrade', 'upgrade' ),
13345
  $this->get_upgrade_url(),
13346
  false,
13347
  7,
13351
 
13352
  if ( $this->has_addons() ) {
13353
  $this->add_plugin_action_link(
13354
+ $this->get_text_inline( 'Add-Ons', 'add-ons' ),
13355
  $this->_get_admin_page_url( 'addons' ),
13356
  false,
13357
  9,
13379
  add_action( 'admin_footer', array( &$this, '_add_license_activation_dialog_box' ) );
13380
  }
13381
 
13382
+ $link_text = $this->is_free_plan() ?
13383
+ $this->get_text_inline( 'Activate License', 'activate-license' ) :
13384
+ $this->get_text_inline( 'Change License', 'change-license' );
 
 
13385
 
13386
  $this->add_plugin_action_link(
13387
  $link_text,
13442
 
13443
  if ( $this->is_registered() ) {
13444
  if ( $this->is_tracking_allowed() ) {
13445
+ $link_text_id = $this->get_text_inline( 'Opt Out', 'opt-out' );
13446
  } else {
13447
+ $link_text_id = $this->get_text_inline( 'Opt In', 'opt-in' );
13448
  }
13449
 
13450
  add_action( 'admin_footer', array( &$this, '_add_optout_dialog' ) );
13451
  } else {
13452
+ $link_text_id = $this->get_text_inline( 'Opt In', 'opt-in' );
13453
 
13454
  $params = ! $this->is_anonymous() ?
13455
  array() :
13463
 
13464
  if ( $this->is_plugin() && self::is_plugins_page() ) {
13465
  $this->add_plugin_action_link(
13466
+ $link_text_id,
13467
  $url,
13468
  false,
13469
  13,
13632
 
13633
  // @since 1.2.1.5 The free version is auto deactivated.
13634
  $deactivation_step = version_compare( $this->version, '1.2.1.5', '<' ) ?
13635
+ ( '<li>' . $this->esc_html_inline( 'Deactivate the free version', 'deactivate-free-version' ) . '.</li>' ) :
13636
  '';
13637
 
13638
  return sprintf(
13639
  ' %s: <ol><li>%s.</li>%s<li>%s (<a href="%s" target="_blank">%s</a>).</li></ol>',
13640
+ $this->get_text_inline( 'Please follow these steps to complete the upgrade', 'follow-steps-to-complete-upgrade' ),
13641
  $this->get_latest_download_link( sprintf(
13642
+ /* translators: %s: Plan title */
13643
+ $this->get_text_inline( 'Download the latest %s version', 'download-latest-x-version' ),
13644
  $plan_title
13645
  ) ),
13646
  $deactivation_step,
13647
+ $this->get_text_inline( 'Upload and activate the downloaded version', 'upload-and-activate' ),
13648
  '//bit.ly/upload-wp-' . $this->_module_type . 's',
13649
+ $this->get_text_inline( 'How to upload and activate?', 'howto-upload-activate' )
13650
  );
13651
  }
13652
 
13662
  return fs_text( $key, $this->_slug );
13663
  }
13664
 
13665
+ /**
13666
+ * @author Vova Feldman (@svovaf)
13667
+ * @since 1.2.3
13668
+ *
13669
+ * @param string $text Translatable string.
13670
+ * @param string $key String key for overrides.
13671
+ *
13672
+ * @return string
13673
+ */
13674
+ function get_text_inline( $text, $key = '' ) {
13675
+ return _fs_text_inline( $text, $key, $this->_slug );
13676
+ }
13677
+
13678
+ /**
13679
+ * @author Vova Feldman (@svovaf)
13680
+ * @since 1.2.3
13681
+ *
13682
+ * @param string $text Translatable string.
13683
+ * @param string $context Context information for the translators.
13684
+ * @param string $key String key for overrides.
13685
+ *
13686
+ * @return string
13687
+ */
13688
+ function get_text_x_inline( $text, $context, $key ) {
13689
+ return _fs_text_x_inline( $text, $context, $key, $this->_slug );
13690
+ }
13691
+
13692
+ /**
13693
+ * @author Vova Feldman (@svovaf)
13694
+ * @since 1.2.3
13695
+ *
13696
+ * @param string $text Translatable string.
13697
+ * @param string $key String key for overrides.
13698
+ *
13699
+ * @return string
13700
+ */
13701
+ function esc_html_inline( $text, $key ) {
13702
+ return esc_html( _fs_text_inline( $text, $key, $this->_slug ) );
13703
+ }
13704
+
13705
  #----------------------------------------------------------------------------------
13706
  #region Versioning
13707
  #----------------------------------------------------------------------------------
13805
  if ( ! $this->is_registered() ) {
13806
  // Not registered.
13807
  self::shoot_ajax_failure( array(
13808
+ 'message' => $this->get_text_inline( 'Auto installation only works for opted-in users.', 'auto-install-error-not-opted-in' ),
13809
  'code' => 'premium_installed',
13810
  ) );
13811
  }
13812
 
13813
+ $plugin_id = fs_request_get( 'target_module_id', $this->get_id() );
13814
 
13815
  if ( ! FS_Plugin::is_valid_id( $plugin_id ) ) {
13816
  // Invalid ID.
13817
  self::shoot_ajax_failure( array(
13818
+ 'message' => $this->get_text_inline( 'Invalid module ID.', 'auto-install-error-invalid-id' ),
13819
  'code' => 'invalid_module_id',
13820
  ) );
13821
  }
13824
  if ( $this->is_premium() ) {
13825
  // Already using the premium code version.
13826
  self::shoot_ajax_failure( array(
13827
+ 'message' => $this->get_text_inline( 'Premium version already active.', 'auto-install-error-premium-activated' ),
13828
  'code' => 'premium_installed',
13829
  ) );
13830
  }
13831
  if ( ! $this->can_use_premium_code() ) {
13832
  // Don't have access to the premium code.
13833
  self::shoot_ajax_failure( array(
13834
+ 'message' => $this->get_text_inline( 'You do not have a valid license to access the premium version.', 'auto-install-error-invalid-license' ),
13835
  'code' => 'invalid_license',
13836
  ) );
13837
  }
13838
  if ( ! $this->has_release_on_freemius() ) {
13839
  // Plugin is a serviceware, no premium code version.
13840
  self::shoot_ajax_failure( array(
13841
+ 'message' => $this->get_text_inline( 'Plugin is a "Serviceware" which means it does not have a premium code version.', 'auto-install-error-serviceware' ),
13842
  'code' => 'premium_version_missing',
13843
  ) );
13844
  }
13848
  if ( ! is_object( $addon ) ) {
13849
  // Invalid add-on ID.
13850
  self::shoot_ajax_failure( array(
13851
+ 'message' => $this->get_text_inline( 'Invalid module ID.', 'auto-install-error-invalid-id' ),
13852
  'code' => 'invalid_module_id',
13853
  ) );
13854
  }
13856
  if ( $this->is_addon_activated( $plugin_id, true ) ) {
13857
  // Premium add-on version is already activated.
13858
  self::shoot_ajax_failure( array(
13859
+ 'message' => $this->get_text_inline( 'Premium add-on version already installed.', 'auto-install-error-premium-addon-activated' ),
13860
  'code' => 'premium_installed',
13861
  ) );
13862
  }
13928
  }
13929
  }
13930
 
13931
+ $vars = array(
13932
+ 'id' => $this->_module_id,
13933
+ 'target_module_id' => $plugin_id,
13934
+ 'slug' => $this->_slug,
13935
+ );
13936
 
13937
  fs_require_template( 'auto-installation.php', $vars );
13938
  }
14202
  require_once WP_FS__DIR_INCLUDES . '/customizer/class-fs-customizer-upsell-control.php';
14203
 
14204
  $customizer->add_section( 'freemius_upsell', array(
14205
+ 'title' => '&#9733; ' . $this->get_text_inline( 'View paid features', 'view-paid-features' ),
14206
  'priority' => 1,
14207
  ) );
14208
  $customizer->add_setting( 'freemius_upsell', array(
14320
  }
14321
 
14322
  #endregion
14323
+ }
includes/vendor/freemius/wordpress-sdk/includes/class-fs-plugin-updater.php CHANGED
@@ -128,7 +128,7 @@
128
  $plugin_update_row = preg_replace(
129
  '/(\<div.+>)(.+)(\<a.+\<a.+)\<\/div\>/is',
130
  '$1 $2 ' . sprintf(
131
- $this->_fs->get_text( 'renew-license-now' ),
132
  '<a href="' . $this->_fs->pricing_url() . '">', '</a>',
133
  $r->new_version ) .
134
  '$4',
@@ -355,7 +355,7 @@ if ( !isset($info->error) ) {
355
  $data->version = $this->_fs->get_plugin_version();
356
  } else {
357
  if ( $is_addon ) {
358
- $data->name = $addon->title . ' ' . $this->_fs->get_text( 'addon' );
359
  $data->slug = $addon->slug;
360
  $data->url = WP_FS__ADDRESS;
361
  $data->package = $new_version->url;
@@ -487,7 +487,7 @@ if ( !isset($info->error) ) {
487
  if ( ! empty( $plugin_id ) && ! FS_Plugin::is_valid_id( $plugin_id ) ) {
488
  // Invalid plugin ID.
489
  return array(
490
- 'message' => $this->_fs->get_text( 'auto-install-error-invalid-id' ),
491
  'code' => 'invalid_module_id',
492
  );
493
  }
@@ -501,29 +501,27 @@ if ( !isset($info->error) ) {
501
  if ( ! is_object( $addon ) ) {
502
  // Invalid add-on ID.
503
  return array(
504
- 'message' => $this->_fs->get_text( 'auto-install-error-invalid-id' ),
505
  'code' => 'invalid_module_id',
506
  );
507
  }
508
 
509
  $slug = $addon->slug;
510
- $title = $addon->title . ' ' . $this->_fs->get_text( 'addon' );
511
 
512
  $is_addon = true;
513
  } else {
514
  $slug = $this->_fs->get_slug();
515
  $title = $this->_fs->get_plugin_title() .
516
- ( $this->_fs->is_addon() ? ' ' . $this->_fs->get_text( 'addon' ) : '' );
517
  }
518
 
519
  if ( $this->is_premium_plugin_active( $plugin_id ) ) {
520
  // Premium version already activated.
521
  return array(
522
- 'message' => $this->_fs->get_text(
523
- $is_addon ?
524
- 'auto-install-error-premium-addon-activated' :
525
- 'auto-install-error-premium-activated'
526
- ),
527
  'code' => 'premium_installed',
528
  );
529
  }
@@ -552,7 +550,7 @@ if ( !isset($info->error) ) {
552
 
553
  $skin_args = array(
554
  'type' => 'web',
555
- 'title' => sprintf( $this->_fs->get_text( 'installing-plugin-x' ), $title ),
556
  'url' => esc_url_raw( $install_url ),
557
  'nonce' => 'install-plugin_' . $slug,
558
  'plugin' => '',
@@ -593,7 +591,7 @@ if ( !isset($info->error) ) {
593
  global $wp_filesystem;
594
 
595
  $error_code = 'unable_to_connect_to_filesystem';
596
- $error_message = $this->_fs->get_text( 'Unable to connect to the filesystem. Please confirm your credentials.' );
597
 
598
  // Pass through the error from WP_Filesystem if one was raised.
599
  if ( $wp_filesystem instanceof WP_Filesystem_Base &&
@@ -699,7 +697,7 @@ if ( !isset($info->error) ) {
699
  } else {
700
  return new WP_Error(
701
  'rename_failed',
702
- $this->_fs->get_text( 'module-package-rename-failure' ),
703
  array(
704
  'found' => $subdir_name,
705
  'expected' => $desired_slug
128
  $plugin_update_row = preg_replace(
129
  '/(\<div.+>)(.+)(\<a.+\<a.+)\<\/div\>/is',
130
  '$1 $2 ' . sprintf(
131
+ $this->_fs->get_text_inline( '%sRenew your license now%s to access version %s features and support.', 'renew-license-now' ),
132
  '<a href="' . $this->_fs->pricing_url() . '">', '</a>',
133
  $r->new_version ) .
134
  '$4',
355
  $data->version = $this->_fs->get_plugin_version();
356
  } else {
357
  if ( $is_addon ) {
358
+ $data->name = $addon->title . ' ' . $this->_fs->get_text_inline( 'Add-On', 'addon' );
359
  $data->slug = $addon->slug;
360
  $data->url = WP_FS__ADDRESS;
361
  $data->package = $new_version->url;
487
  if ( ! empty( $plugin_id ) && ! FS_Plugin::is_valid_id( $plugin_id ) ) {
488
  // Invalid plugin ID.
489
  return array(
490
+ 'message' => $this->_fs->get_text_inline( 'Invalid module ID.', 'auto-install-error-invalid-id' ),
491
  'code' => 'invalid_module_id',
492
  );
493
  }
501
  if ( ! is_object( $addon ) ) {
502
  // Invalid add-on ID.
503
  return array(
504
+ 'message' => $this->_fs->get_text_inline( 'Invalid module ID.', 'auto-install-error-invalid-id' ),
505
  'code' => 'invalid_module_id',
506
  );
507
  }
508
 
509
  $slug = $addon->slug;
510
+ $title = $addon->title . ' ' . $this->_fs->get_text_inline( 'Add-On', 'addon' );
511
 
512
  $is_addon = true;
513
  } else {
514
  $slug = $this->_fs->get_slug();
515
  $title = $this->_fs->get_plugin_title() .
516
+ ( $this->_fs->is_addon() ? ' ' . $this->_fs->get_text_inline( 'Add-On', 'addon' ) : '' );
517
  }
518
 
519
  if ( $this->is_premium_plugin_active( $plugin_id ) ) {
520
  // Premium version already activated.
521
  return array(
522
+ 'message' => $is_addon ?
523
+ $this->_fs->get_text_inline( 'Premium add-on version already installed.', 'auto-install-error-premium-addon-activated' ) :
524
+ $this->_fs->get_text_inline( 'Premium version already active.', 'auto-install-error-premium-activated' ),
 
 
525
  'code' => 'premium_installed',
526
  );
527
  }
550
 
551
  $skin_args = array(
552
  'type' => 'web',
553
+ 'title' => sprintf( $this->_fs->get_text_inline( 'Installing plugin: %s', 'installing-plugin-x' ), $title ),
554
  'url' => esc_url_raw( $install_url ),
555
  'nonce' => 'install-plugin_' . $slug,
556
  'plugin' => '',
591
  global $wp_filesystem;
592
 
593
  $error_code = 'unable_to_connect_to_filesystem';
594
+ $error_message = $this->_fs->get_text_inline( 'Unable to connect to the filesystem. Please confirm your credentials.' );
595
 
596
  // Pass through the error from WP_Filesystem if one was raised.
597
  if ( $wp_filesystem instanceof WP_Filesystem_Base &&
697
  } else {
698
  return new WP_Error(
699
  'rename_failed',
700
+ $this->_fs->get_text_inline( 'The remote plugin package does not contain a folder with the desired slug and renaming did not work.', 'module-package-rename-failure' ),
701
  array(
702
  'found' => $subdir_name,
703
  'expected' => $desired_slug
includes/vendor/freemius/wordpress-sdk/includes/customizer/class-fs-customizer-support-section.php CHANGED
@@ -52,19 +52,19 @@
52
  $json['theme_title'] = $this->fs->get_plugin_name();
53
 
54
  if ( $is_contact_visible && $is_support_visible ) {
55
- $json['theme_title'] .= ' ' . $this->fs->get_text( 'support' );
56
  }
57
 
58
  if ( $is_contact_visible ) {
59
  $json['contact'] = array(
60
- 'label' => $this->fs->get_text( 'contact-us' ),
61
  'url' => $this->fs->contact_url(),
62
  );
63
  }
64
 
65
  if ( $is_support_visible ) {
66
  $json['support'] = array(
67
- 'label' => $this->fs->get_text( 'support-forum' ),
68
  'url' => $this->fs->get_support_forum_url()
69
  );
70
  }
52
  $json['theme_title'] = $this->fs->get_plugin_name();
53
 
54
  if ( $is_contact_visible && $is_support_visible ) {
55
+ $json['theme_title'] .= ' ' . $this->fs->get_text_inline( 'Support', 'support' );
56
  }
57
 
58
  if ( $is_contact_visible ) {
59
  $json['contact'] = array(
60
+ 'label' => $this->fs->get_text_inline( 'Contact Us', 'contact-us' ),
61
  'url' => $this->fs->contact_url(),
62
  );
63
  }
64
 
65
  if ( $is_support_visible ) {
66
  $json['support'] = array(
67
+ 'label' => $this->fs->get_text_inline( 'Support Forum', 'support-forum' ),
68
  'url' => $this->fs->get_support_forum_url()
69
  );
70
  }
includes/vendor/freemius/wordpress-sdk/includes/customizer/class-fs-customizer-upsell-control.php CHANGED
@@ -49,7 +49,7 @@
49
  * Json conversion
50
  */
51
  public function to_json() {
52
- $pricing_cta = esc_html( $this->fs->get_text( $this->fs->get_pricing_cta_label() ) ) . '&nbsp;&nbsp;' . ( is_rtl() ? '&#x2190;' : '&#x27a4;' );
53
 
54
  parent::to_json();
55
 
@@ -103,7 +103,7 @@
103
  $this->json['plans'] = $pricing->plans;
104
 
105
  $this->json['strings'] = array(
106
- 'plan' => $this->fs->get_text( 'plan' ),
107
  );
108
  }
109
 
49
  * Json conversion
50
  */
51
  public function to_json() {
52
+ $pricing_cta = esc_html( $this->fs->get_pricing_cta_label() ) . '&nbsp;&nbsp;' . ( is_rtl() ? '&#x2190;' : '&#x27a4;' );
53
 
54
  parent::to_json();
55
 
103
  $this->json['plans'] = $pricing->plans;
104
 
105
  $this->json['strings'] = array(
106
+ 'plan' => $this->fs->get_text_x_inline( 'Plan', 'as product pricing plan', 'plan' ),
107
  );
108
  }
109
 
includes/vendor/freemius/wordpress-sdk/includes/customizer/index.php ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <?php
2
+ // Silence is golden.
3
+ // Hide file structure from users on unprotected servers.
includes/vendor/freemius/wordpress-sdk/includes/debug/class-fs-debug-bar-panel.php CHANGED
@@ -45,7 +45,7 @@
45
  $total_time += $l['total'];
46
  }
47
 
48
- return number_format( 100 * $total_time, 2 ) . ' ' . fs_text( 'ms' );
49
  }
50
 
51
  function render() {
45
  $total_time += $l['total'];
46
  }
47
 
48
+ return number_format( 100 * $total_time, 2 ) . ' ' . fs_text_x_inline( 'ms', 'milliseconds' );
49
  }
50
 
51
  function render() {
includes/vendor/freemius/wordpress-sdk/includes/debug/debug-bar-start.php CHANGED
@@ -38,8 +38,8 @@
38
  require_once dirname( __FILE__ ) . '/class-fs-debug-bar-panel.php';
39
  $statuses[] = array(
40
  'fs_api_requests',
41
- fs_text( 'Freemius API' ),
42
- Freemius_Debug_Bar_Panel::requests_count() . ' ' . fs_text( 'Requests' ) .
43
  ' (' . Freemius_Debug_Bar_Panel::total_time() . ')'
44
  );
45
  }
38
  require_once dirname( __FILE__ ) . '/class-fs-debug-bar-panel.php';
39
  $statuses[] = array(
40
  'fs_api_requests',
41
+ fs_text_inline( 'Freemius API' ),
42
+ Freemius_Debug_Bar_Panel::requests_count() . ' ' . fs_text_inline( 'Requests' ) .
43
  ' (' . Freemius_Debug_Bar_Panel::total_time() . ')'
44
  );
45
  }
includes/vendor/freemius/wordpress-sdk/includes/entities/class-fs-affiliate-terms.php ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.2.3
7
+ */
8
+
9
+ if ( ! defined( 'ABSPATH' ) ) {
10
+ exit;
11
+ }
12
+
13
+ class FS_AffiliateTerms extends FS_Scope_Entity {
14
+
15
+ #region Properties
16
+
17
+ /**
18
+ * @var bool
19
+ */
20
+ public $is_active;
21
+ /**
22
+ * @var string Enum: `affiliation` or `rewards`. Defaults to `affiliation`.
23
+ */
24
+ public $type;
25
+ /**
26
+ * @var string Enum: `payout` or `credit`. Defaults to `payout`.
27
+ */
28
+ public $reward_type;
29
+ /**
30
+ * If `first`, the referral will be attributed to the first visited source containing the affiliation link that
31
+ * was clicked.
32
+ *
33
+ * @var string Enum: `first` or `last`. Defaults to `first`.
34
+ */
35
+ public $referral_attribution;
36
+ /**
37
+ * @var int Defaults to `30`, `0` for session cookie, and `null` for endless cookie (until cookies are cleaned).
38
+ */
39
+ public $cookie_days;
40
+ /**
41
+ * @var int
42
+ */
43
+ public $commission;
44
+ /**
45
+ * @var string Enum: `percentage` or `dollar`. Defaults to `percentage`.
46
+ */
47
+ public $commission_type;
48
+ /**
49
+ * @var null|int Defaults to `0` (affiliate only on first payment). `null` for commission for all renewals. If
50
+ * greater than `0`, affiliate will get paid for all renewals for `commission_renewals_days` days after
51
+ * the initial upgrade/purchase.
52
+ */
53
+ public $commission_renewals_days;
54
+ /**
55
+ * @var int Only cents and no percentage. In US cents, e.g.: 100 = $1.00. Defaults to `null`.
56
+ */
57
+ public $install_commission;
58
+ /**
59
+ * @var string Required default target link, e.g.: pricing page.
60
+ */
61
+ public $default_url;
62
+ /**
63
+ * @var string One of the following: 'all', 'new_customer', 'new_user'.
64
+ * If 'all' - reward for any user type.
65
+ * If 'new_customer' - reward only for new customers.
66
+ * If 'new_user' - reward only for new users.
67
+ */
68
+ public $reward_customer_type;
69
+ /**
70
+ * @var int Defaults to `0` (affiliate only on directly affiliated links). `null` if an affiliate will get
71
+ * paid for all customers' lifetime payments. If greater than `0`, an affiliate will get paid for all
72
+ * customer payments for `future_payments_days` days after the initial payment.
73
+ */
74
+ public $future_payments_days;
75
+ /**
76
+ * @var bool If `true`, allow referrals from social sites.
77
+ */
78
+ public $is_social_allowed;
79
+ /**
80
+ * @var bool If `true`, allow conversions without HTTP referrer header at all.
81
+ */
82
+ public $is_app_allowed;
83
+ /**
84
+ * @var bool If `true`, allow referrals from any site.
85
+ */
86
+ public $is_any_site_allowed;
87
+
88
+ #endregion Properties
89
+
90
+ /**
91
+ * @author Leo Fajardo (@leorw)
92
+ *
93
+ * @return string
94
+ */
95
+ function get_formatted_commission()
96
+ {
97
+ return ( 'dollar' === $this->commission_type ) ?
98
+ ( '$' . $this->commission ) :
99
+ ( $this->commission . '%' );
100
+ }
101
+
102
+ /**
103
+ * @author Leo Fajardo (@leorw)
104
+ *
105
+ * @return bool
106
+ */
107
+ function has_lifetime_commission() {
108
+ return ( 0 !== $this->future_payments_days );
109
+ }
110
+
111
+ /**
112
+ * @author Leo Fajardo (@leorw)
113
+ *
114
+ * @return bool
115
+ */
116
+ function is_session_cookie() {
117
+ return ( 0 == $this->cookie_days );
118
+ }
119
+
120
+ /**
121
+ * @author Leo Fajardo (@leorw)
122
+ *
123
+ * @return bool
124
+ */
125
+ function has_renewals_commission() {
126
+ return ( is_null( $this->commission_renewals_days ) || $this->commission_renewals_days > 0 );
127
+ }
128
+ }
includes/vendor/freemius/wordpress-sdk/includes/entities/class-fs-affiliate.php ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.2.3
7
+ */
8
+
9
+ if ( ! defined( 'ABSPATH' ) ) {
10
+ exit;
11
+ }
12
+
13
+ class FS_Affiliate extends FS_Scope_Entity {
14
+
15
+ #region Properties
16
+
17
+ /**
18
+ * @var string
19
+ */
20
+ public $paypal_email;
21
+ /**
22
+ * @var number
23
+ */
24
+ public $custom_affiliate_terms_id;
25
+ /**
26
+ * @var boolean
27
+ */
28
+ public $is_using_custom_terms;
29
+ /**
30
+ * @var string status Enum: `pending`, `rejected`, `suspended`, or `active`. Defaults to `pending`.
31
+ */
32
+ public $status;
33
+ /**
34
+ * @var string
35
+ */
36
+ public $domain;
37
+
38
+ #endregion Properties
39
+
40
+ /**
41
+ * @author Leo Fajardo
42
+ *
43
+ * @return bool
44
+ */
45
+ function is_active() {
46
+ return ( 'active' === $this->status );
47
+ }
48
+
49
+ /**
50
+ * @author Leo Fajardo
51
+ *
52
+ * @return bool
53
+ */
54
+ function is_pending() {
55
+ return ( 'pending' === $this->status );
56
+ }
57
+
58
+ /**
59
+ * @author Leo Fajardo
60
+ *
61
+ * @return bool
62
+ */
63
+ function is_suspended() {
64
+ return ( 'suspended' === $this->status );
65
+ }
66
+
67
+ /**
68
+ * @author Leo Fajardo
69
+ *
70
+ * @return bool
71
+ */
72
+ function is_rejected() {
73
+ return ( 'rejected' === $this->status );
74
+ }
75
+
76
+ /**
77
+ * @author Leo Fajardo
78
+ *
79
+ * @return bool
80
+ */
81
+ function is_blocked() {
82
+ return ( 'blocked' === $this->status );
83
+ }
84
+ }
includes/vendor/freemius/wordpress-sdk/includes/entities/class-fs-entity.php CHANGED
@@ -42,9 +42,9 @@
42
  * @param bool|object $entity
43
  */
44
  function __construct( $entity = false ) {
45
- if ( ! ( $entity instanceof stdClass ) ) {
46
- return;
47
- }
48
 
49
  $props = fs_get_object_public_vars( $this );
50
 
42
  * @param bool|object $entity
43
  */
44
  function __construct( $entity = false ) {
45
+ if ( ! ( $entity instanceof stdClass ) && ! ( $entity instanceof FS_Entity ) ) {
46
+ return;
47
+ }
48
 
49
  $props = fs_get_object_public_vars( $this );
50
 
includes/vendor/freemius/wordpress-sdk/includes/entities/class-fs-plugin.php CHANGED
@@ -61,6 +61,17 @@
61
  * @var bool
62
  */
63
  public $is_live;
 
 
 
 
 
 
 
 
 
 
 
64
 
65
  #endregion Install Specific Properties
66
 
@@ -90,6 +101,16 @@
90
  return isset( $this->parent_plugin_id ) && is_numeric( $this->parent_plugin_id );
91
  }
92
 
 
 
 
 
 
 
 
 
 
 
93
  static function get_type() {
94
  return 'plugin';
95
  }
61
  * @var bool
62
  */
63
  public $is_live;
64
+ /**
65
+ * @author Leo Fajardo (@leorw)
66
+ *
67
+ * @since 1.2.3
68
+ *
69
+ * @var string|false false if the module doesn't have an affiliate program or one of the following:
70
+ * 'selected', 'customers', or 'all'.
71
+ */
72
+ public $affiliate_moderation;
73
+
74
+ const AFFILIATE_MODERATION_CUSTOMERS = 'customers';
75
 
76
  #endregion Install Specific Properties
77
 
101
  return isset( $this->parent_plugin_id ) && is_numeric( $this->parent_plugin_id );
102
  }
103
 
104
+ /**
105
+ * @author Leo Fajardo (@leorw)
106
+ * @since 1.2.3
107
+ *
108
+ * @return bool
109
+ */
110
+ function has_affiliate_program() {
111
+ return ( ! empty( $this->affiliate_moderation ) );
112
+ }
113
+
114
  static function get_type() {
115
  return 'plugin';
116
  }
includes/vendor/freemius/wordpress-sdk/includes/fs-core-functions.php CHANGED
@@ -1,674 +1,1118 @@
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.3
7
- */
8
-
9
- if ( ! defined( 'ABSPATH' ) ) {
10
- exit;
11
- }
12
-
13
- if ( ! function_exists( 'fs_dummy' ) ) {
14
- function fs_dummy() {
15
- }
16
- }
17
-
18
- /* Url.
19
- --------------------------------------------------------------------------------------------*/
20
- function fs_get_url_daily_cache_killer() {
21
- return date( '\YY\Mm\Dd' );
22
- }
23
-
24
- /* Templates / Views.
25
- --------------------------------------------------------------------------------------------*/
26
- if ( ! function_exists( 'fs_get_template_path' ) ) {
27
- function fs_get_template_path( $path ) {
28
- return WP_FS__DIR_TEMPLATES . '/' . trim( $path, '/' );
29
- }
30
-
31
- function fs_include_template( $path, &$params = null ) {
32
- $VARS = &$params;
33
- include fs_get_template_path( $path );
34
- }
35
-
36
- function fs_include_once_template( $path, &$params = null ) {
37
- $VARS = &$params;
38
- include_once fs_get_template_path( $path );
39
- }
40
-
41
- function fs_require_template( $path, &$params = null ) {
42
- $VARS = &$params;
43
- require fs_get_template_path( $path );
44
- }
45
-
46
- function fs_require_once_template( $path, &$params = null ) {
47
- $VARS = &$params;
48
- require_once fs_get_template_path( $path );
49
- }
50
-
51
- function fs_get_template( $path, &$params = null ) {
52
- ob_start();
53
-
54
- $VARS = &$params;
55
- require fs_get_template_path( $path );
56
-
57
- return ob_get_clean();
58
- }
59
- }
60
-
61
- /* Scripts and styles including.
62
- --------------------------------------------------------------------------------------------*/
63
-
64
- /**
65
- * Generates an absolute URL to the given path. This function ensures that the URL will be correct whether the asset
66
- * is inside a plugin's folder or a theme's folder.
67
- *
68
- * Examples:
69
- * 1. "themes" folder
70
- * Path: C:/xampp/htdocs/fswp/wp-content/themes/twentytwelve/freemius/assets/css/admin/common.css
71
- * URL: http://fswp:8080/wp-content/themes/twentytwelve/freemius/assets/css/admin/common.css
72
- *
73
- * 2. "plugins" folder
74
- * Path: C:/xampp/htdocs/fswp/wp-content/plugins/rating-widget-premium/freemius/assets/css/admin/common.css
75
- * URL: http://fswp:8080/wp-content/plugins/rating-widget-premium/freemius/assets/css/admin/common.css
76
- *
77
- * @author Leo Fajardo (@leorw)
78
- * @since 1.2.2
79
- *
80
- * @param string $asset_abs_path Asset's absolute path.
81
- *
82
- * @return string Asset's URL.
83
- */
84
- function fs_asset_url( $asset_abs_path ) {
85
- $wp_content_dir = fs_normalize_path( WP_CONTENT_DIR );
86
- $asset_abs_path = fs_normalize_path( $asset_abs_path );
87
- $asset_rel_path = str_replace( $wp_content_dir, '', $asset_abs_path );
88
-
89
- $asset_url = content_url( fs_normalize_path( $asset_rel_path ) );
90
-
91
- return $asset_url;
92
- }
93
-
94
- function fs_enqueue_local_style( $handle, $path, $deps = array(), $ver = false, $media = 'all' ) {
95
- wp_enqueue_style( $handle, fs_asset_url( WP_FS__DIR_CSS . '/' . trim( $path, '/' ) ), $deps, $ver, $media );
96
- }
97
-
98
- function fs_enqueue_local_script( $handle, $path, $deps = array(), $ver = false, $in_footer = 'all' ) {
99
- wp_enqueue_script( $handle, fs_asset_url( WP_FS__DIR_JS . '/' . trim( $path, '/' ) ), $deps, $ver, $in_footer );
100
- }
101
-
102
- function fs_img_url( $path, $img_dir = WP_FS__DIR_IMG ) {
103
- return ( fs_asset_url( $img_dir . '/' . trim( $path, '/' ) ) );
104
- }
105
-
106
- /* Request handlers.
107
- --------------------------------------------------------------------------------------------*/
108
- /**
109
- * @param string $key
110
- * @param mixed $def
111
- * @param string|bool $type Since 1.2.1.7 - when set to 'get' will look for the value passed via querystring, when
112
- * set to 'post' will look for the value passed via the POST request's body, otherwise,
113
- * will check if the parameter was passed in any of the two.
114
- *
115
- * @return mixed
116
- */
117
- function fs_request_get( $key, $def = false, $type = false ) {
118
- if ( is_string( $type ) ) {
119
- $type = strtolower( $type );
120
- }
121
-
122
- switch ( $type ) {
123
- case 'post':
124
- $value = isset( $_POST[ $key ] ) ? $_POST[ $key ] : $def;
125
- break;
126
- case 'get':
127
- $value = isset( $_GET[ $key ] ) ? $_GET[ $key ] : $def;
128
- break;
129
- default:
130
- $value = isset( $_REQUEST[ $key ] ) ? $_REQUEST[ $key ] : $def;
131
- break;
132
- }
133
-
134
- return $value;
135
- }
136
-
137
- function fs_request_has( $key ) {
138
- return isset( $_REQUEST[ $key ] );
139
- }
140
-
141
- function fs_request_get_bool( $key, $def = false ) {
142
- if ( ! isset( $_REQUEST[ $key ] ) ) {
143
- return $def;
144
- }
145
-
146
- if ( 1 == $_REQUEST[ $key ] || 'true' === strtolower( $_REQUEST[ $key ] ) ) {
147
- return true;
148
- }
149
-
150
- if ( 0 == $_REQUEST[ $key ] || 'false' === strtolower( $_REQUEST[ $key ] ) ) {
151
- return false;
152
- }
153
-
154
- return $def;
155
- }
156
-
157
- function fs_request_is_post() {
158
- return ( 'post' === strtolower( $_SERVER['REQUEST_METHOD'] ) );
159
- }
160
-
161
- function fs_request_is_get() {
162
- return ( 'get' === strtolower( $_SERVER['REQUEST_METHOD'] ) );
163
- }
164
-
165
- function fs_get_action( $action_key = 'action' ) {
166
- if ( ! empty( $_REQUEST[ $action_key ] ) ) {
167
- return strtolower( $_REQUEST[ $action_key ] );
168
- }
169
-
170
- if ( 'action' == $action_key ) {
171
- $action_key = 'fs_action';
172
-
173
- if ( ! empty( $_REQUEST[ $action_key ] ) ) {
174
- return strtolower( $_REQUEST[ $action_key ] );
175
- }
176
- }
177
-
178
- return false;
179
- }
180
-
181
- function fs_request_is_action( $action, $action_key = 'action' ) {
182
- return ( strtolower( $action ) === fs_get_action( $action_key ) );
183
- }
184
-
185
- /**
186
- * @author Vova Feldman (@svovaf)
187
- * @since 1.0.0
188
- *
189
- * @since 1.2.1.5 Allow nonce verification.
190
- *
191
- * @param string $action
192
- * @param string $action_key
193
- * @param string $nonce_key
194
- *
195
- * @return bool
196
- */
197
- function fs_request_is_action_secure(
198
- $action,
199
- $action_key = 'action',
200
- $nonce_key = 'nonce'
201
- ) {
202
- if ( strtolower( $action ) !== fs_get_action( $action_key ) ) {
203
- return false;
204
- }
205
-
206
- $nonce = ! empty( $_REQUEST[ $nonce_key ] ) ?
207
- $_REQUEST[ $nonce_key ] :
208
- '';
209
-
210
- if ( empty( $nonce ) ||
211
- ( false === wp_verify_nonce( $nonce, $action ) )
212
- ) {
213
- return false;
214
- }
215
-
216
- return true;
217
- }
218
-
219
- function fs_is_plugin_page( $page_slug ) {
220
- return ( is_admin() && $page_slug === fs_request_get( 'page' ) );
221
- }
222
-
223
- /* Core UI.
224
- --------------------------------------------------------------------------------------------*/
225
- /**
226
- * @param number $module_id
227
- * @param string $page
228
- * @param string $action
229
- * @param string $title
230
- * @param array $params
231
- * @param bool $is_primary
232
- * @param string|bool $icon_class Optional class for an icon (since 1.1.7).
233
- * @param string|bool $confirmation Optional confirmation message before submit (since 1.1.7).
234
- * @param string $method Since 1.1.7
235
- *
236
- * @uses fs_ui_get_action_button()
237
- */
238
- function fs_ui_action_button(
239
- $module_id,
240
- $page,
241
- $action,
242
- $title,
243
- $params = array(),
244
- $is_primary = true,
245
- $icon_class = false,
246
- $confirmation = false,
247
- $method = 'GET'
248
- ) {
249
- echo fs_ui_get_action_button(
250
- $module_id,
251
- $page,
252
- $action,
253
- $title,
254
- $params,
255
- $is_primary,
256
- $icon_class,
257
- $confirmation,
258
- $method
259
- );
260
- }
261
-
262
- /**
263
- * @author Vova Feldman (@svovaf)
264
- * @since 1.1.7
265
- *
266
- * @param number $module_id
267
- * @param string $page
268
- * @param string $action
269
- * @param string $title
270
- * @param array $params
271
- * @param bool $is_primary
272
- * @param string|bool $icon_class Optional class for an icon.
273
- * @param string|bool $confirmation Optional confirmation message before submit.
274
- * @param string $method
275
- *
276
- * @return string
277
- */
278
- function fs_ui_get_action_button(
279
- $module_id,
280
- $page,
281
- $action,
282
- $title,
283
- $params = array(),
284
- $is_primary = true,
285
- $icon_class = false,
286
- $confirmation = false,
287
- $method = 'GET'
288
- ) {
289
- // Prepend icon (if set).
290
- $title = ( is_string( $icon_class ) ? '<i class="' . $icon_class . '"></i> ' : '' ) . $title;
291
-
292
- if ( is_string( $confirmation ) ) {
293
- 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>',
294
- freemius( $module_id )->_get_admin_page_url( $page, $params ),
295
- $method,
296
- $action,
297
- wp_nonce_field( $action, '_wpnonce', true, false ),
298
- 'button' . ( $is_primary ? ' button-primary' : '' ),
299
- $confirmation,
300
- $title
301
- );
302
- } else if ( 'GET' !== strtoupper( $method ) ) {
303
- 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>',
304
- freemius( $module_id )->_get_admin_page_url( $page, $params ),
305
- $method,
306
- $action,
307
- wp_nonce_field( $action, '_wpnonce', true, false ),
308
- 'button' . ( $is_primary ? ' button-primary' : '' ),
309
- $title
310
- );
311
- } else {
312
- return sprintf( '<a href="%s" class="%s">%s</a></form>',
313
- wp_nonce_url( freemius( $module_id )->_get_admin_page_url( $page, array_merge( $params, array( 'fs_action' => $action ) ) ), $action ),
314
- 'button' . ( $is_primary ? ' button-primary' : '' ),
315
- $title
316
- );
317
- }
318
- }
319
-
320
- function fs_ui_action_link( $module_id, $page, $action, $title, $params = array() ) {
321
- ?><a class=""
322
- 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
323
- }
324
-
325
- /*function fs_error_handler($errno, $errstr, $errfile, $errline)
326
- {
327
- if (false === strpos($errfile, 'freemius/'))
328
- {
329
- // @todo Dump Freemius errors to local log.
330
- }
331
-
332
- // switch ($errno) {
333
- // case E_USER_ERROR:
334
- // break;
335
- // case E_WARNING:
336
- // case E_USER_WARNING:
337
- // break;
338
- // case E_NOTICE:
339
- // case E_USER_NOTICE:
340
- // break;
341
- // default:
342
- // break;
343
- // }
344
- }
345
-
346
- set_error_handler('fs_error_handler');*/
347
-
348
- if ( ! function_exists( 'fs_nonce_url' ) ) {
349
- /**
350
- * Retrieve URL with nonce added to URL query.
351
- *
352
- * Originally was using `wp_nonce_url()` but the new version
353
- * changed the return value to escaped URL, that's not the expected
354
- * behaviour.
355
- *
356
- * @author Vova Feldman (@svovaf)
357
- * @since ~1.1.3
358
- *
359
- * @param string $actionurl URL to add nonce action.
360
- * @param int|string $action Optional. Nonce action name. Default -1.
361
- * @param string $name Optional. Nonce name. Default '_wpnonce'.
362
- *
363
- * @return string Escaped URL with nonce action added.
364
- */
365
- function fs_nonce_url( $actionurl, $action = - 1, $name = '_wpnonce' ) {
366
- return add_query_arg( $name, wp_create_nonce( $action ), $actionurl );
367
- }
368
- }
369
-
370
- if ( ! function_exists( 'fs_starts_with' ) ) {
371
- /**
372
- * Check if string starts with.
373
- *
374
- * @author Vova Feldman (@svovaf)
375
- * @since 1.1.3
376
- *
377
- * @param string $haystack
378
- * @param string $needle
379
- *
380
- * @return bool
381
- */
382
- function fs_starts_with( $haystack, $needle ) {
383
- $length = strlen( $needle );
384
-
385
- return ( substr( $haystack, 0, $length ) === $needle );
386
- }
387
- }
388
-
389
- #region Url Canonization ------------------------------------------------------------------
390
-
391
- if ( ! function_exists( 'fs_canonize_url' ) ) {
392
- /**
393
- * @author Vova Feldman (@svovaf)
394
- * @since 1.1.3
395
- *
396
- * @param string $url
397
- * @param bool $omit_host
398
- * @param array $ignore_params
399
- *
400
- * @return string
401
- */
402
- function fs_canonize_url( $url, $omit_host = false, $ignore_params = array() ) {
403
- $parsed_url = parse_url( strtolower( $url ) );
404
-
405
- // if ( ! isset( $parsed_url['host'] ) ) {
406
- // return $url;
407
- // }
408
-
409
- $canonical = ( ( $omit_host || ! isset( $parsed_url['host'] ) ) ? '' : $parsed_url['host'] ) . $parsed_url['path'];
410
-
411
- if ( isset( $parsed_url['query'] ) ) {
412
- parse_str( $parsed_url['query'], $queryString );
413
- $canonical .= '?' . fs_canonize_query_string( $queryString, $ignore_params );
414
- }
415
-
416
- return $canonical;
417
- }
418
- }
419
-
420
- if ( ! function_exists( 'fs_canonize_query_string' ) ) {
421
- /**
422
- * @author Vova Feldman (@svovaf)
423
- * @since 1.1.3
424
- *
425
- * @param array $params
426
- * @param array $ignore_params
427
- * @param bool $params_prefix
428
- *
429
- * @return string
430
- */
431
- function fs_canonize_query_string( array $params, array &$ignore_params, $params_prefix = false ) {
432
- if ( ! is_array( $params ) || 0 === count( $params ) ) {
433
- return '';
434
- }
435
-
436
- // Url encode both keys and values
437
- $keys = fs_urlencode_rfc3986( array_keys( $params ) );
438
- $values = fs_urlencode_rfc3986( array_values( $params ) );
439
- $params = array_combine( $keys, $values );
440
-
441
- // Parameters are sorted by name, using lexicographical byte value ordering.
442
- // Ref: Spec: 9.1.1 (1)
443
- uksort( $params, 'strcmp' );
444
-
445
- $pairs = array();
446
- foreach ( $params as $parameter => $value ) {
447
- $lower_param = strtolower( $parameter );
448
-
449
- // Skip ignore params.
450
- if ( in_array( $lower_param, $ignore_params ) ||
451
- ( false !== $params_prefix && fs_starts_with( $lower_param, $params_prefix ) )
452
- ) {
453
- continue;
454
- }
455
-
456
- if ( is_array( $value ) ) {
457
- // If two or more parameters share the same name, they are sorted by their value
458
- // Ref: Spec: 9.1.1 (1)
459
- natsort( $value );
460
- foreach ( $value as $duplicate_value ) {
461
- $pairs[] = $lower_param . '=' . $duplicate_value;
462
- }
463
- } else {
464
- $pairs[] = $lower_param . '=' . $value;
465
- }
466
- }
467
-
468
- if ( 0 === count( $pairs ) ) {
469
- return '';
470
- }
471
-
472
- return implode( "&", $pairs );
473
- }
474
- }
475
-
476
- if ( ! function_exists( 'fs_urlencode_rfc3986' ) ) {
477
- /**
478
- * @author Vova Feldman (@svovaf)
479
- * @since 1.1.3
480
- *
481
- * @param string|string[] $input
482
- *
483
- * @return array|mixed|string
484
- */
485
- function fs_urlencode_rfc3986( $input ) {
486
- if ( is_array( $input ) ) {
487
- return array_map( 'fs_urlencode_rfc3986', $input );
488
- } else if ( is_scalar( $input ) ) {
489
- return str_replace( '+', ' ', str_replace( '%7E', '~', rawurlencode( $input ) ) );
490
- }
491
-
492
- return '';
493
- }
494
- }
495
-
496
- #endregion Url Canonization ------------------------------------------------------------------
497
-
498
- /**
499
- * @author Vova Feldman (@svovaf)
500
- *
501
- * @since 1.2.2 Changed to usage of WP_Filesystem_Direct.
502
- *
503
- * @param string $from URL
504
- * @param string $to File path.
505
- */
506
- function fs_download_image( $from, $to ) {
507
- $dir = dirname( $to );
508
-
509
- if ( 'direct' !== get_filesystem_method( array(), $dir ) ) {
510
- return;
511
- }
512
-
513
- if ( ! class_exists( 'WP_Filesystem_Direct' ) ) {
514
- require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
515
- require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
516
- }
517
-
518
- $fs = new WP_Filesystem_Direct( '' );
519
- $tmpfile = download_url( $from );
520
- $fs->copy( $tmpfile, $to );
521
- $fs->delete( $tmpfile );
522
- }
523
-
524
- /* General Utilities
525
- --------------------------------------------------------------------------------------------*/
526
-
527
- /**
528
- * Sorts an array by the value of the priority key.
529
- *
530
- * @author Daniel Iser (@danieliser)
531
- * @since 1.1.7
532
- *
533
- * @param $a
534
- * @param $b
535
- *
536
- * @return int
537
- */
538
- function fs_sort_by_priority( $a, $b ) {
539
-
540
- // If b has a priority and a does not, b wins.
541
- if ( ! isset( $a['priority'] ) && isset( $b['priority'] ) ) {
542
- return 1;
543
- } // If b has a priority and a does not, b wins.
544
- elseif ( isset( $a['priority'] ) && ! isset( $b['priority'] ) ) {
545
- return - 1;
546
- } // If neither has a priority or both priorities are equal its a tie.
547
- elseif ( ( ! isset( $a['priority'] ) && ! isset( $b['priority'] ) ) || $a['priority'] === $b['priority'] ) {
548
- return 0;
549
- }
550
-
551
- // If both have priority return the winner.
552
- return ( $a['priority'] < $b['priority'] ) ? - 1 : 1;
553
- }
554
-
555
- #--------------------------------------------------------------------------------
556
- #region Localization
557
- #--------------------------------------------------------------------------------
558
-
559
- if ( ! function_exists( 'fs_text' ) ) {
560
- /**
561
- * Retrieve a translated text by key.
562
- *
563
- * @author Vova Feldman (@svovaf)
564
- * @since 1.2.1.7
565
- *
566
- * @param string $key
567
- * @param string $slug
568
- *
569
- * @return string
570
- *
571
- * @global $fs_text, $fs_text_overrides
572
- */
573
- function fs_text( $key, $slug = 'freemius' ) {
574
- return __fs( $key, $slug );
575
- }
576
-
577
- /**
578
- * Output a translated text by key.
579
- *
580
- * @author Vova Feldman (@svovaf)
581
- * @since 1.2.1.7
582
- *
583
- * @param string $key
584
- * @param string $slug
585
- */
586
- function fs_echo( $key, $slug = 'freemius' ) {
587
- echo fs_text( $key, $slug );
588
- }
589
- }
590
-
591
- /**
592
- * @author Vova Feldman
593
- * @since 1.2.1.6
594
- *
595
- * @param string $key
596
- * @param string $slug
597
- *
598
- * @return string
599
- */
600
- function fs_esc_attr( $key, $slug ) {
601
- return esc_attr( fs_text( $key, $slug ) );
602
- }
603
-
604
- /**
605
- * @author Vova Feldman
606
- * @since 1.2.1.6
607
- *
608
- * @param string $key
609
- * @param string $slug
610
- */
611
- function fs_esc_attr_echo( $key, $slug ) {
612
- echo esc_attr( fs_text( $key, $slug ) );
613
- }
614
-
615
- /**
616
- * @author Vova Feldman
617
- * @since 1.2.1.6
618
- *
619
- * @param string $key
620
- * @param string $slug
621
- *
622
- * @return string
623
- */
624
- function fs_esc_js( $key, $slug ) {
625
- return esc_js( fs_text( $key, $slug ) );
626
- }
627
-
628
- /**
629
- * @author Vova Feldman
630
- * @since 1.2.1.6
631
- *
632
- * @param string $key
633
- * @param string $slug
634
- */
635
- function fs_esc_js_echo( $key, $slug ) {
636
- echo esc_js( fs_text( $key, $slug ) );
637
- }
638
-
639
- /**
640
- * @author Vova Feldman
641
- * @since 1.2.1.6
642
- *
643
- * @param string $key
644
- * @param string $slug
645
- */
646
- function fs_json_encode_echo( $key, $slug ) {
647
- echo json_encode( fs_text( $key, $slug ) );
648
- }
649
-
650
- /**
651
- * @author Vova Feldman
652
- * @since 1.2.1.6
653
- *
654
- * @param string $key
655
- * @param string $slug
656
- *
657
- * @return string
658
- */
659
- function fs_esc_html( $key, $slug ) {
660
- return esc_html( fs_text( $key, $slug ) );
661
- }
662
-
663
- /**
664
- * @author Vova Feldman
665
- * @since 1.2.1.6
666
- *
667
- * @param string $key
668
- * @param string $slug
669
- */
670
- function fs_esc_html_echo( $key, $slug ) {
671
- echo esc_html( fs_text( $key, $slug ) );
672
- }
673
-
674
- #endregion
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.3
7
+ */
8
+
9
+ if ( ! defined( 'ABSPATH' ) ) {
10
+ exit;
11
+ }
12
+
13
+ if ( ! function_exists( 'fs_dummy' ) ) {
14
+ function fs_dummy() {
15
+ }
16
+ }
17
+
18
+ /* Url.
19
+ --------------------------------------------------------------------------------------------*/
20
+ if ( ! function_exists( 'fs_get_url_daily_cache_killer' ) ) {
21
+ function fs_get_url_daily_cache_killer() {
22
+ return date( '\YY\Mm\Dd' );
23
+ }
24
+ }
25
+
26
+ /* Templates / Views.
27
+ --------------------------------------------------------------------------------------------*/
28
+ if ( ! function_exists( 'fs_get_template_path' ) ) {
29
+ function fs_get_template_path( $path ) {
30
+ return WP_FS__DIR_TEMPLATES . '/' . trim( $path, '/' );
31
+ }
32
+
33
+ function fs_include_template( $path, &$params = null ) {
34
+ $VARS = &$params;
35
+ include fs_get_template_path( $path );
36
+ }
37
+
38
+ function fs_include_once_template( $path, &$params = null ) {
39
+ $VARS = &$params;
40
+ include_once fs_get_template_path( $path );
41
+ }
42
+
43
+ function fs_require_template( $path, &$params = null ) {
44
+ $VARS = &$params;
45
+ require fs_get_template_path( $path );
46
+ }
47
+
48
+ function fs_require_once_template( $path, &$params = null ) {
49
+ $VARS = &$params;
50
+ require_once fs_get_template_path( $path );
51
+ }
52
+
53
+ function fs_get_template( $path, &$params = null ) {
54
+ ob_start();
55
+
56
+ $VARS = &$params;
57
+ require fs_get_template_path( $path );
58
+
59
+ return ob_get_clean();
60
+ }
61
+ }
62
+
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
+ $asset_rel_path = str_replace( $wp_content_dir, '', $asset_abs_path );
90
+
91
+ $asset_url = content_url( fs_normalize_path( $asset_rel_path ) );
92
+
93
+ return $asset_url;
94
+ }
95
+
96
+ function fs_enqueue_local_style( $handle, $path, $deps = array(), $ver = false, $media = 'all' ) {
97
+ wp_enqueue_style( $handle, fs_asset_url( WP_FS__DIR_CSS . '/' . trim( $path, '/' ) ), $deps, $ver, $media );
98
+ }
99
+
100
+ function fs_enqueue_local_script( $handle, $path, $deps = array(), $ver = false, $in_footer = 'all' ) {
101
+ wp_enqueue_script( $handle, fs_asset_url( WP_FS__DIR_JS . '/' . trim( $path, '/' ) ), $deps, $ver, $in_footer );
102
+ }
103
+
104
+ function fs_img_url( $path, $img_dir = WP_FS__DIR_IMG ) {
105
+ return ( fs_asset_url( $img_dir . '/' . trim( $path, '/' ) ) );
106
+ }
107
+
108
+ #--------------------------------------------------------------------------------
109
+ #region Request handlers.
110
+ #--------------------------------------------------------------------------------
111
+
112
+ if ( ! function_exists( 'fs_request_get' ) ) {
113
+ /**
114
+ * @param string $key
115
+ * @param mixed $def
116
+ * @param string|bool $type Since 1.2.1.7 - when set to 'get' will look for the value passed via querystring, when
117
+ * set to 'post' will look for the value passed via the POST request's body, otherwise,
118
+ * will check if the parameter was passed in any of the two.
119
+ *
120
+ * @return mixed
121
+ */
122
+ function fs_request_get( $key, $def = false, $type = false ) {
123
+ if ( is_string( $type ) ) {
124
+ $type = strtolower( $type );
125
+ }
126
+
127
+ switch ( $type ) {
128
+ case 'post':
129
+ $value = isset( $_POST[ $key ] ) ? $_POST[ $key ] : $def;
130
+ break;
131
+ case 'get':
132
+ $value = isset( $_GET[ $key ] ) ? $_GET[ $key ] : $def;
133
+ break;
134
+ default:
135
+ $value = isset( $_REQUEST[ $key ] ) ? $_REQUEST[ $key ] : $def;
136
+ break;
137
+ }
138
+
139
+ return $value;
140
+ }
141
+ }
142
+
143
+ if ( ! function_exists( 'fs_request_has' ) ) {
144
+ function fs_request_has( $key ) {
145
+ return isset( $_REQUEST[ $key ] );
146
+ }
147
+ }
148
+
149
+ if ( ! function_exists( 'fs_request_get_bool' ) ) {
150
+ function fs_request_get_bool( $key, $def = false ) {
151
+ if ( ! isset( $_REQUEST[ $key ] ) ) {
152
+ return $def;
153
+ }
154
+
155
+ if ( 1 == $_REQUEST[ $key ] || 'true' === strtolower( $_REQUEST[ $key ] ) ) {
156
+ return true;
157
+ }
158
+
159
+ if ( 0 == $_REQUEST[ $key ] || 'false' === strtolower( $_REQUEST[ $key ] ) ) {
160
+ return false;
161
+ }
162
+
163
+ return $def;
164
+ }
165
+ }
166
+
167
+ if ( ! function_exists( 'fs_request_is_post' ) ) {
168
+ function fs_request_is_post() {
169
+ return ( 'post' === strtolower( $_SERVER['REQUEST_METHOD'] ) );
170
+ }
171
+ }
172
+
173
+ if ( ! function_exists( 'fs_request_is_get' ) ) {
174
+ function fs_request_is_get() {
175
+ return ( 'get' === strtolower( $_SERVER['REQUEST_METHOD'] ) );
176
+ }
177
+ }
178
+
179
+ if ( ! function_exists( 'fs_get_action' ) ) {
180
+ function fs_get_action( $action_key = 'action' ) {
181
+ if ( ! empty( $_REQUEST[ $action_key ] ) && is_string( $_REQUEST[ $action_key ] ) ) {
182
+ return strtolower( $_REQUEST[ $action_key ] );
183
+ }
184
+
185
+ if ( 'action' == $action_key ) {
186
+ $action_key = 'fs_action';
187
+
188
+ if ( ! empty( $_REQUEST[ $action_key ] ) && is_string( $_REQUEST[ $action_key ] ) ) {
189
+ return strtolower( $_REQUEST[ $action_key ] );
190
+ }
191
+ }
192
+
193
+ return false;
194
+ }
195
+ }
196
+
197
+ if ( ! function_exists( 'fs_request_is_action' ) ) {
198
+ function fs_request_is_action( $action, $action_key = 'action' ) {
199
+ return ( strtolower( $action ) === fs_get_action( $action_key ) );
200
+ }
201
+ }
202
+
203
+ if ( ! function_exists( 'fs_request_is_action_secure' ) ) {
204
+ /**
205
+ * @author Vova Feldman (@svovaf)
206
+ * @since 1.0.0
207
+ *
208
+ * @since 1.2.1.5 Allow nonce verification.
209
+ *
210
+ * @param string $action
211
+ * @param string $action_key
212
+ * @param string $nonce_key
213
+ *
214
+ * @return bool
215
+ */
216
+ function fs_request_is_action_secure(
217
+ $action,
218
+ $action_key = 'action',
219
+ $nonce_key = 'nonce'
220
+ ) {
221
+ if ( strtolower( $action ) !== fs_get_action( $action_key ) ) {
222
+ return false;
223
+ }
224
+
225
+ $nonce = ! empty( $_REQUEST[ $nonce_key ] ) ?
226
+ $_REQUEST[ $nonce_key ] :
227
+ '';
228
+
229
+ if ( empty( $nonce ) ||
230
+ ( false === wp_verify_nonce( $nonce, $action ) )
231
+ ) {
232
+ return false;
233
+ }
234
+
235
+ return true;
236
+ }
237
+ }
238
+
239
+ #endregion
240
+
241
+ if ( ! function_exists( 'fs_is_plugin_page' ) ) {
242
+ function fs_is_plugin_page( $page_slug ) {
243
+ return ( is_admin() && $page_slug === fs_request_get( 'page' ) );
244
+ }
245
+ }
246
+
247
+ if ( ! function_exists( 'fs_get_raw_referer' ) ) {
248
+ /**
249
+ * Retrieves unvalidated referer from '_wp_http_referer' or HTTP referer.
250
+ *
251
+ * Do not use for redirects, use {@see wp_get_referer()} instead.
252
+ *
253
+ * @since 1.2.3
254
+ *
255
+ * @return string|false Referer URL on success, false on failure.
256
+ */
257
+ function fs_get_raw_referer() {
258
+ if ( function_exists( 'wp_get_raw_referer' ) ) {
259
+ return wp_get_raw_referer();
260
+ }
261
+ if ( ! empty( $_REQUEST['_wp_http_referer'] ) ) {
262
+ return wp_unslash( $_REQUEST['_wp_http_referer'] );
263
+ } else if ( ! empty( $_SERVER['HTTP_REFERER'] ) ) {
264
+ return wp_unslash( $_SERVER['HTTP_REFERER'] );
265
+ }
266
+
267
+ return false;
268
+ }
269
+ }
270
+
271
+ /* Core UI.
272
+ --------------------------------------------------------------------------------------------*/
273
+ /**
274
+ * @param number $module_id
275
+ * @param string $page
276
+ * @param string $action
277
+ * @param string $title
278
+ * @param array $params
279
+ * @param bool $is_primary
280
+ * @param string|bool $icon_class Optional class for an icon (since 1.1.7).
281
+ * @param string|bool $confirmation Optional confirmation message before submit (since 1.1.7).
282
+ * @param string $method Since 1.1.7
283
+ *
284
+ * @uses fs_ui_get_action_button()
285
+ */
286
+ function fs_ui_action_button(
287
+ $module_id,
288
+ $page,
289
+ $action,
290
+ $title,
291
+ $params = array(),
292
+ $is_primary = true,
293
+ $icon_class = false,
294
+ $confirmation = false,
295
+ $method = 'GET'
296
+ ) {
297
+ echo fs_ui_get_action_button(
298
+ $module_id,
299
+ $page,
300
+ $action,
301
+ $title,
302
+ $params,
303
+ $is_primary,
304
+ $icon_class,
305
+ $confirmation,
306
+ $method
307
+ );
308
+ }
309
+
310
+ /**
311
+ * @author Vova Feldman (@svovaf)
312
+ * @since 1.1.7
313
+ *
314
+ * @param number $module_id
315
+ * @param string $page
316
+ * @param string $action
317
+ * @param string $title
318
+ * @param array $params
319
+ * @param bool $is_primary
320
+ * @param string|bool $icon_class Optional class for an icon.
321
+ * @param string|bool $confirmation Optional confirmation message before submit.
322
+ * @param string $method
323
+ *
324
+ * @return string
325
+ */
326
+ function fs_ui_get_action_button(
327
+ $module_id,
328
+ $page,
329
+ $action,
330
+ $title,
331
+ $params = array(),
332
+ $is_primary = true,
333
+ $icon_class = false,
334
+ $confirmation = false,
335
+ $method = 'GET'
336
+ ) {
337
+ // Prepend icon (if set).
338
+ $title = ( is_string( $icon_class ) ? '<i class="' . $icon_class . '"></i> ' : '' ) . $title;
339
+
340
+ if ( is_string( $confirmation ) ) {
341
+ 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>',
342
+ freemius( $module_id )->_get_admin_page_url( $page, $params ),
343
+ $method,
344
+ $action,
345
+ wp_nonce_field( $action, '_wpnonce', true, false ),
346
+ 'button' . ( $is_primary ? ' button-primary' : '' ),
347
+ $confirmation,
348
+ $title
349
+ );
350
+ } else if ( 'GET' !== strtoupper( $method ) ) {
351
+ 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>',
352
+ freemius( $module_id )->_get_admin_page_url( $page, $params ),
353
+ $method,
354
+ $action,
355
+ wp_nonce_field( $action, '_wpnonce', true, false ),
356
+ 'button' . ( $is_primary ? ' button-primary' : '' ),
357
+ $title
358
+ );
359
+ } else {
360
+ return sprintf( '<a href="%s" class="%s">%s</a></form>',
361
+ wp_nonce_url( freemius( $module_id )->_get_admin_page_url( $page, array_merge( $params, array( 'fs_action' => $action ) ) ), $action ),
362
+ 'button' . ( $is_primary ? ' button-primary' : '' ),
363
+ $title
364
+ );
365
+ }
366
+ }
367
+
368
+ function fs_ui_action_link( $module_id, $page, $action, $title, $params = array() ) {
369
+ ?><a class=""
370
+ 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
371
+ }
372
+
373
+ /*function fs_error_handler($errno, $errstr, $errfile, $errline)
374
+ {
375
+ if (false === strpos($errfile, 'freemius/'))
376
+ {
377
+ // @todo Dump Freemius errors to local log.
378
+ }
379
+
380
+ // switch ($errno) {
381
+ // case E_USER_ERROR:
382
+ // break;
383
+ // case E_WARNING:
384
+ // case E_USER_WARNING:
385
+ // break;
386
+ // case E_NOTICE:
387
+ // case E_USER_NOTICE:
388
+ // break;
389
+ // default:
390
+ // break;
391
+ // }
392
+ }
393
+
394
+ set_error_handler('fs_error_handler');*/
395
+
396
+ if ( ! function_exists( 'fs_nonce_url' ) ) {
397
+ /**
398
+ * Retrieve URL with nonce added to URL query.
399
+ *
400
+ * Originally was using `wp_nonce_url()` but the new version
401
+ * changed the return value to escaped URL, that's not the expected
402
+ * behaviour.
403
+ *
404
+ * @author Vova Feldman (@svovaf)
405
+ * @since ~1.1.3
406
+ *
407
+ * @param string $actionurl URL to add nonce action.
408
+ * @param int|string $action Optional. Nonce action name. Default -1.
409
+ * @param string $name Optional. Nonce name. Default '_wpnonce'.
410
+ *
411
+ * @return string Escaped URL with nonce action added.
412
+ */
413
+ function fs_nonce_url( $actionurl, $action = - 1, $name = '_wpnonce' ) {
414
+ return add_query_arg( $name, wp_create_nonce( $action ), $actionurl );
415
+ }
416
+ }
417
+
418
+ if ( ! function_exists( 'fs_starts_with' ) ) {
419
+ /**
420
+ * Check if string starts with.
421
+ *
422
+ * @author Vova Feldman (@svovaf)
423
+ * @since 1.1.3
424
+ *
425
+ * @param string $haystack
426
+ * @param string $needle
427
+ *
428
+ * @return bool
429
+ */
430
+ function fs_starts_with( $haystack, $needle ) {
431
+ $length = strlen( $needle );
432
+
433
+ return ( substr( $haystack, 0, $length ) === $needle );
434
+ }
435
+ }
436
+
437
+ #region Url Canonization ------------------------------------------------------------------
438
+
439
+ if ( ! function_exists( 'fs_canonize_url' ) ) {
440
+ /**
441
+ * @author Vova Feldman (@svovaf)
442
+ * @since 1.1.3
443
+ *
444
+ * @param string $url
445
+ * @param bool $omit_host
446
+ * @param array $ignore_params
447
+ *
448
+ * @return string
449
+ */
450
+ function fs_canonize_url( $url, $omit_host = false, $ignore_params = array() ) {
451
+ $parsed_url = parse_url( strtolower( $url ) );
452
+
453
+ // if ( ! isset( $parsed_url['host'] ) ) {
454
+ // return $url;
455
+ // }
456
+
457
+ $canonical = ( ( $omit_host || ! isset( $parsed_url['host'] ) ) ? '' : $parsed_url['host'] ) . $parsed_url['path'];
458
+
459
+ if ( isset( $parsed_url['query'] ) ) {
460
+ parse_str( $parsed_url['query'], $queryString );
461
+ $canonical .= '?' . fs_canonize_query_string( $queryString, $ignore_params );
462
+ }
463
+
464
+ return $canonical;
465
+ }
466
+ }
467
+
468
+ if ( ! function_exists( 'fs_canonize_query_string' ) ) {
469
+ /**
470
+ * @author Vova Feldman (@svovaf)
471
+ * @since 1.1.3
472
+ *
473
+ * @param array $params
474
+ * @param array $ignore_params
475
+ * @param bool $params_prefix
476
+ *
477
+ * @return string
478
+ */
479
+ function fs_canonize_query_string( array $params, array &$ignore_params, $params_prefix = false ) {
480
+ if ( ! is_array( $params ) || 0 === count( $params ) ) {
481
+ return '';
482
+ }
483
+
484
+ // Url encode both keys and values
485
+ $keys = fs_urlencode_rfc3986( array_keys( $params ) );
486
+ $values = fs_urlencode_rfc3986( array_values( $params ) );
487
+ $params = array_combine( $keys, $values );
488
+
489
+ // Parameters are sorted by name, using lexicographical byte value ordering.
490
+ // Ref: Spec: 9.1.1 (1)
491
+ uksort( $params, 'strcmp' );
492
+
493
+ $pairs = array();
494
+ foreach ( $params as $parameter => $value ) {
495
+ $lower_param = strtolower( $parameter );
496
+
497
+ // Skip ignore params.
498
+ if ( in_array( $lower_param, $ignore_params ) ||
499
+ ( false !== $params_prefix && fs_starts_with( $lower_param, $params_prefix ) )
500
+ ) {
501
+ continue;
502
+ }
503
+
504
+ if ( is_array( $value ) ) {
505
+ // If two or more parameters share the same name, they are sorted by their value
506
+ // Ref: Spec: 9.1.1 (1)
507
+ natsort( $value );
508
+ foreach ( $value as $duplicate_value ) {
509
+ $pairs[] = $lower_param . '=' . $duplicate_value;
510
+ }
511
+ } else {
512
+ $pairs[] = $lower_param . '=' . $value;
513
+ }
514
+ }
515
+
516
+ if ( 0 === count( $pairs ) ) {
517
+ return '';
518
+ }
519
+
520
+ return implode( "&", $pairs );
521
+ }
522
+ }
523
+
524
+ if ( ! function_exists( 'fs_urlencode_rfc3986' ) ) {
525
+ /**
526
+ * @author Vova Feldman (@svovaf)
527
+ * @since 1.1.3
528
+ *
529
+ * @param string|string[] $input
530
+ *
531
+ * @return array|mixed|string
532
+ */
533
+ function fs_urlencode_rfc3986( $input ) {
534
+ if ( is_array( $input ) ) {
535
+ return array_map( 'fs_urlencode_rfc3986', $input );
536
+ } else if ( is_scalar( $input ) ) {
537
+ return str_replace( '+', ' ', str_replace( '%7E', '~', rawurlencode( $input ) ) );
538
+ }
539
+
540
+ return '';
541
+ }
542
+ }
543
+
544
+ #endregion Url Canonization ------------------------------------------------------------------
545
+
546
+ /**
547
+ * @author Vova Feldman (@svovaf)
548
+ *
549
+ * @since 1.2.2 Changed to usage of WP_Filesystem_Direct.
550
+ *
551
+ * @param string $from URL
552
+ * @param string $to File path.
553
+ *
554
+ * @return bool Is successfully downloaded.
555
+ */
556
+ function fs_download_image( $from, $to ) {
557
+ $dir = dirname( $to );
558
+
559
+ if ( 'direct' !== get_filesystem_method( array(), $dir ) ) {
560
+ return false;
561
+ }
562
+
563
+ if ( ! class_exists( 'WP_Filesystem_Direct' ) ) {
564
+ require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-base.php';
565
+ require_once ABSPATH . 'wp-admin/includes/class-wp-filesystem-direct.php';
566
+ }
567
+
568
+ $fs = new WP_Filesystem_Direct( '' );
569
+ $tmpfile = download_url( $from );
570
+
571
+ if ( $tmpfile instanceof WP_Error ) {
572
+ // Issue downloading the file.
573
+ return false;
574
+ }
575
+
576
+ $fs->copy( $tmpfile, $to );
577
+ $fs->delete( $tmpfile );
578
+
579
+ return true;
580
+ }
581
+
582
+ /* General Utilities
583
+ --------------------------------------------------------------------------------------------*/
584
+
585
+ /**
586
+ * Sorts an array by the value of the priority key.
587
+ *
588
+ * @author Daniel Iser (@danieliser)
589
+ * @since 1.1.7
590
+ *
591
+ * @param $a
592
+ * @param $b
593
+ *
594
+ * @return int
595
+ */
596
+ function fs_sort_by_priority( $a, $b ) {
597
+
598
+ // If b has a priority and a does not, b wins.
599
+ if ( ! isset( $a['priority'] ) && isset( $b['priority'] ) ) {
600
+ return 1;
601
+ } // If b has a priority and a does not, b wins.
602
+ elseif ( isset( $a['priority'] ) && ! isset( $b['priority'] ) ) {
603
+ return - 1;
604
+ } // If neither has a priority or both priorities are equal its a tie.
605
+ elseif ( ( ! isset( $a['priority'] ) && ! isset( $b['priority'] ) ) || $a['priority'] === $b['priority'] ) {
606
+ return 0;
607
+ }
608
+
609
+ // If both have priority return the winner.
610
+ return ( $a['priority'] < $b['priority'] ) ? - 1 : 1;
611
+ }
612
+
613
+ #--------------------------------------------------------------------------------
614
+ #region Localization
615
+ #--------------------------------------------------------------------------------
616
+
617
+ if ( ! function_exists( 'fs_text' ) ) {
618
+ /**
619
+ * Retrieve a translated text by key.
620
+ *
621
+ * @author Vova Feldman (@svovaf)
622
+ * @since 1.2.1.7
623
+ *
624
+ * @param string $key
625
+ * @param string $slug
626
+ *
627
+ * @return string
628
+ *
629
+ * @global $fs_text , $fs_text_overrides
630
+ */
631
+ function fs_text( $key, $slug = 'freemius' ) {
632
+ return __fs( $key, $slug );
633
+ }
634
+
635
+ /**
636
+ * Get a translatable text override if exists, or `false`.
637
+ *
638
+ * @author Vova Feldman (@svovaf)
639
+ * @since 1.2.1.7
640
+ *
641
+ * @param string $text Translatable string.
642
+ * @param string $key String key for overrides.
643
+ * @param string $slug Module slug for overrides.
644
+ *
645
+ * @return string|false
646
+ */
647
+ function fs_text_override( $text, $key, $slug ) {
648
+ global $fs_text_overrides;
649
+
650
+ /**
651
+ * Check if string is overridden.
652
+ */
653
+ if ( ! isset( $fs_text_overrides[ $slug ] ) ) {
654
+ return false;
655
+ }
656
+
657
+ if ( empty( $key ) ) {
658
+ $key = strtolower( str_replace( ' ', '-', $text ) );
659
+ }
660
+
661
+ if ( isset( $fs_text_overrides[ $slug ][ $key ] ) ) {
662
+ return $fs_text_overrides[ $slug ][ $key ];
663
+ }
664
+
665
+ $lower_key = strtolower( $key );
666
+ if ( isset( $fs_text_overrides[ $slug ][ $lower_key ] ) ) {
667
+ return $fs_text_overrides[ $slug ][ $lower_key ];
668
+ }
669
+
670
+ return false;
671
+ }
672
+
673
+ /**
674
+ * Get a translatable text and its text domain.
675
+ *
676
+ * When the text is overridden by the module, returns the overridden text and the text domain of the module. Otherwise, returns the original text and 'freemius' as the text domain.
677
+ *
678
+ * @author Vova Feldman (@svovaf)
679
+ * @since 1.2.1.7
680
+ *
681
+ * @param string $text Translatable string.
682
+ * @param string $key String key for overrides.
683
+ * @param string $slug Module slug for overrides.
684
+ *
685
+ * @return string[]
686
+ */
687
+ function fs_text_and_domain( $text, $key, $slug ) {
688
+ $override = fs_text_override( $text, $key, $slug );
689
+
690
+ if ( false === $override ) {
691
+ // No override, use FS text domain.
692
+ $text_domain = 'freemius';
693
+ } else {
694
+ // Found an override.
695
+ $text = $override;
696
+ // Use the module's text domain.
697
+ $text_domain = $slug;
698
+ }
699
+
700
+ return array( $text, $text_domain );
701
+ }
702
+
703
+ #region Private
704
+
705
+ /**
706
+ * Retrieve an inline translated text by key.
707
+ *
708
+ * @author Vova Feldman (@svovaf)
709
+ * @since 1.2.3
710
+ *
711
+ * @param string $text Translatable string.
712
+ * @param string $key String key for overrides.
713
+ * @param string $slug Module slug for overrides.
714
+ *
715
+ * @return string
716
+ *
717
+ * @global $fs_text_overrides
718
+ */
719
+ function _fs_text_inline( $text, $key = '', $slug = 'freemius' ) {
720
+ list( $text, $text_domain ) = fs_text_and_domain( $text, $key, $slug );
721
+
722
+ // Avoid misleading Theme Check warning.
723
+ $fn = 'translate';
724
+
725
+ return $fn( $text, $text_domain );
726
+ }
727
+
728
+ /**
729
+ * Retrieve an inline translated text by key with a context.
730
+ *
731
+ * @author Vova Feldman (@svovaf)
732
+ * @since 1.2.3
733
+ *
734
+ * @param string $text Translatable string.
735
+ * @param string $context Context information for the translators.
736
+ * @param string $key String key for overrides.
737
+ * @param string $slug Module slug for overrides.
738
+ *
739
+ * @return string
740
+ *
741
+ * @global $fs_text_overrides
742
+ */
743
+ function _fs_text_x_inline( $text, $context, $key = '', $slug = 'freemius' ) {
744
+ list( $text, $text_domain ) = fs_text_and_domain( $text, $key, $slug );
745
+
746
+ // Avoid misleading Theme Check warning.
747
+ $fn = 'translate_with_gettext_context';
748
+
749
+ return $fn( $text, $context, $text_domain );
750
+ }
751
+
752
+ #endregion
753
+
754
+ /**
755
+ * Retrieve an inline translated text by key.
756
+ *
757
+ * @author Vova Feldman (@svovaf)
758
+ * @since 1.2.3
759
+ *
760
+ * @param string $text Translatable string.
761
+ * @param string $key String key for overrides.
762
+ * @param string $slug Module slug for overrides.
763
+ *
764
+ * @return string
765
+ *
766
+ * @global $fs_text_overrides
767
+ */
768
+ function fs_text_inline( $text, $key = '', $slug = 'freemius' ) {
769
+ return _fs_text_inline( $text, $key, $slug );
770
+ }
771
+
772
+ /**
773
+ * Retrieve an inline translated text by key with a context.
774
+ *
775
+ * @author Vova Feldman (@svovaf)
776
+ * @since 1.2.3
777
+ *
778
+ * @param string $text Translatable string.
779
+ * @param string $context Context information for the translators.
780
+ * @param string $key String key for overrides.
781
+ * @param string $slug Module slug for overrides.
782
+ *
783
+ * @return string
784
+ *
785
+ * @global $fs_text_overrides
786
+ */
787
+ function fs_text_x_inline( $text, $context, $key = '', $slug = 'freemius' ) {
788
+ return _fs_text_x_inline( $text, $context, $key, $slug );
789
+ }
790
+
791
+ /**
792
+ * Output a translated text by key.
793
+ *
794
+ * @author Vova Feldman (@svovaf)
795
+ * @since 1.2.1.7
796
+ *
797
+ * @param string $key
798
+ * @param string $slug
799
+ */
800
+ function fs_echo( $key, $slug = 'freemius' ) {
801
+ echo fs_text( $key, $slug );
802
+ }
803
+
804
+ /**
805
+ * Output an inline translated text.
806
+ *
807
+ * @author Vova Feldman (@svovaf)
808
+ * @since 1.2.3
809
+ *
810
+ * @param string $text Translatable string.
811
+ * @param string $key String key for overrides.
812
+ * @param string $slug Module slug for overrides.
813
+ */
814
+ function fs_echo_inline( $text, $key = '', $slug = 'freemius' ) {
815
+ echo _fs_text_inline( $text, $key, $slug );
816
+ }
817
+
818
+ /**
819
+ * Output an inline translated text with a context.
820
+ *
821
+ * @author Vova Feldman (@svovaf)
822
+ * @since 1.2.3
823
+ *
824
+ * @param string $text Translatable string.
825
+ * @param string $context Context information for the translators.
826
+ * @param string $key String key for overrides.
827
+ * @param string $slug Module slug for overrides.
828
+ */
829
+ function fs_echo_x_inline( $text, $context, $key = '', $slug = 'freemius' ) {
830
+ echo _fs_text_x_inline( $text, $context, $key, $slug );
831
+ }
832
+ }
833
+
834
+ if ( ! function_exists( 'fs_esc_attr' ) ) {
835
+ /**
836
+ * @author Vova Feldman
837
+ * @since 1.2.1.6
838
+ *
839
+ * @param string $key
840
+ * @param string $slug
841
+ *
842
+ * @return string
843
+ */
844
+ function fs_esc_attr( $key, $slug ) {
845
+ return esc_attr( fs_text( $key, $slug ) );
846
+ }
847
+ }
848
+
849
+ if ( ! function_exists( 'fs_esc_attr_inline' ) ) {
850
+ /**
851
+ * @author Vova Feldman (@svovaf)
852
+ * @since 1.2.3
853
+ *
854
+ * @param string $text Translatable string.
855
+ * @param string $key String key for overrides.
856
+ * @param string $slug Module slug for overrides.
857
+ *
858
+ * @return string
859
+ */
860
+ function fs_esc_attr_inline( $text, $key = '', $slug = 'freemius' ) {
861
+ return esc_attr( _fs_text_inline( $text, $key, $slug ) );
862
+ }
863
+ }
864
+
865
+ if ( ! function_exists( 'fs_esc_attr_x_inline' ) ) {
866
+ /**
867
+ * @author Vova Feldman (@svovaf)
868
+ * @since 1.2.3
869
+ *
870
+ * @param string $text Translatable string.
871
+ * @param string $context Context information for the translators.
872
+ * @param string $key String key for overrides.
873
+ * @param string $slug Module slug for overrides.
874
+ *
875
+ * @return string
876
+ */
877
+ function fs_esc_attr_x_inline( $text, $context, $key = '', $slug = 'freemius' ) {
878
+ return esc_attr( _fs_text_x_inline( $text, $context, $key, $slug ) );
879
+ }
880
+ }
881
+
882
+ if ( ! function_exists( 'fs_esc_attr_echo' ) ) {
883
+ /**
884
+ * @author Vova Feldman
885
+ * @since 1.2.1.6
886
+ *
887
+ * @param string $key
888
+ * @param string $slug
889
+ */
890
+ function fs_esc_attr_echo( $key, $slug ) {
891
+ echo esc_attr( fs_text( $key, $slug ) );
892
+ }
893
+ }
894
+
895
+ if ( ! function_exists( 'fs_esc_attr_echo_inline' ) ) {
896
+ /**
897
+ * @author Vova Feldman (@svovaf)
898
+ * @since 1.2.3
899
+ *
900
+ * @param string $text Translatable string.
901
+ * @param string $key String key for overrides.
902
+ * @param string $slug Module slug for overrides.
903
+ */
904
+ function fs_esc_attr_echo_inline( $text, $key = '', $slug = 'freemius' ) {
905
+ echo esc_attr( _fs_text_inline( $text, $key, $slug ) );
906
+ }
907
+ }
908
+
909
+ if ( ! function_exists( 'fs_esc_js' ) ) {
910
+ /**
911
+ * @author Vova Feldman
912
+ * @since 1.2.1.6
913
+ *
914
+ * @param string $key
915
+ * @param string $slug
916
+ *
917
+ * @return string
918
+ */
919
+ function fs_esc_js( $key, $slug ) {
920
+ return esc_js( fs_text( $key, $slug ) );
921
+ }
922
+ }
923
+
924
+ if ( ! function_exists( 'fs_esc_js_inline' ) ) {
925
+ /**
926
+ * @author Vova Feldman (@svovaf)
927
+ * @since 1.2.3
928
+ *
929
+ * @param string $text Translatable string.
930
+ * @param string $key String key for overrides.
931
+ * @param string $slug Module slug for overrides.
932
+ *
933
+ * @return string
934
+ */
935
+ function fs_esc_js_inline( $text, $key = '', $slug = 'freemius' ) {
936
+ return esc_js( _fs_text_inline( $text, $key, $slug ) );
937
+ }
938
+ }
939
+
940
+ if ( ! function_exists( 'fs_esc_js_x_inline' ) ) {
941
+ /**
942
+ * @author Vova Feldman (@svovaf)
943
+ * @since 1.2.3
944
+ *
945
+ * @param string $text Translatable string.
946
+ * @param string $context Context information for the translators.
947
+ * @param string $key String key for overrides.
948
+ * @param string $slug Module slug for overrides.
949
+ *
950
+ * @return string
951
+ */
952
+ function fs_esc_js_x_inline( $text, $context, $key = '', $slug = 'freemius' ) {
953
+ return esc_js( _fs_text_x_inline( $text, $context, $key, $slug ) );
954
+ }
955
+ }
956
+
957
+ if ( ! function_exists( 'fs_esc_js_echo_x_inline' ) ) {
958
+ /**
959
+ * @author Vova Feldman (@svovaf)
960
+ * @since 1.2.3
961
+ *
962
+ * @param string $text Translatable string.
963
+ * @param string $context Context information for the translators.
964
+ * @param string $key String key for overrides.
965
+ * @param string $slug Module slug for overrides.
966
+ *
967
+ * @return string
968
+ */
969
+ function fs_esc_js_echo_x_inline( $text, $context, $key = '', $slug = 'freemius' ) {
970
+ echo esc_js( _fs_text_x_inline( $text, $context, $key, $slug ) );
971
+ }
972
+ }
973
+
974
+ if ( ! function_exists( 'fs_esc_js_echo' ) ) {
975
+ /**
976
+ * @author Vova Feldman
977
+ * @since 1.2.1.6
978
+ *
979
+ * @param string $key
980
+ * @param string $slug
981
+ */
982
+ function fs_esc_js_echo( $key, $slug ) {
983
+ echo esc_js( fs_text( $key, $slug ) );
984
+ }
985
+ }
986
+
987
+ if ( ! function_exists( 'fs_esc_js_echo_inline' ) ) {
988
+ /**
989
+ * @author Vova Feldman (@svovaf)
990
+ * @since 1.2.3
991
+ *
992
+ * @param string $text Translatable string.
993
+ * @param string $key String key for overrides.
994
+ * @param string $slug Module slug for overrides.
995
+ */
996
+ function fs_esc_js_echo_inline( $text, $key = '', $slug = 'freemius' ) {
997
+ echo esc_js( _fs_text_inline( $text, $key, $slug ) );
998
+ }
999
+ }
1000
+
1001
+ if ( ! function_exists( 'fs_json_encode_echo' ) ) {
1002
+ /**
1003
+ * @author Vova Feldman
1004
+ * @since 1.2.1.6
1005
+ *
1006
+ * @param string $key
1007
+ * @param string $slug
1008
+ */
1009
+ function fs_json_encode_echo( $key, $slug ) {
1010
+ echo json_encode( fs_text( $key, $slug ) );
1011
+ }
1012
+ }
1013
+
1014
+ if ( ! function_exists( 'fs_json_encode_echo_inline' ) ) {
1015
+ /**
1016
+ * @author Vova Feldman (@svovaf)
1017
+ * @since 1.2.3
1018
+ *
1019
+ * @param string $text Translatable string.
1020
+ * @param string $key String key for overrides.
1021
+ * @param string $slug Module slug for overrides.
1022
+ */
1023
+ function fs_json_encode_echo_inline( $text, $key = '', $slug = 'freemius' ) {
1024
+ echo json_encode( _fs_text_inline( $text, $key, $slug ) );
1025
+ }
1026
+ }
1027
+
1028
+ if ( ! function_exists( 'fs_esc_html' ) ) {
1029
+ /**
1030
+ * @author Vova Feldman
1031
+ * @since 1.2.1.6
1032
+ *
1033
+ * @param string $key
1034
+ * @param string $slug
1035
+ *
1036
+ * @return string
1037
+ */
1038
+ function fs_esc_html( $key, $slug ) {
1039
+ return esc_html( fs_text( $key, $slug ) );
1040
+ }
1041
+ }
1042
+
1043
+ if ( ! function_exists( 'fs_esc_html_inline' ) ) {
1044
+ /**
1045
+ * @author Vova Feldman (@svovaf)
1046
+ * @since 1.2.3
1047
+ *
1048
+ * @param string $text Translatable string.
1049
+ * @param string $key String key for overrides.
1050
+ * @param string $slug Module slug for overrides.
1051
+ *
1052
+ * @return string
1053
+ */
1054
+ function fs_esc_html_inline( $text, $key = '', $slug = 'freemius' ) {
1055
+ return esc_html( _fs_text_inline( $text, $key, $slug ) );
1056
+ }
1057
+ }
1058
+
1059
+ if ( ! function_exists( 'fs_esc_html_x_inline' ) ) {
1060
+ /**
1061
+ * @author Vova Feldman (@svovaf)
1062
+ * @since 1.2.3
1063
+ *
1064
+ * @param string $text Translatable string.
1065
+ * @param string $context Context information for the translators.
1066
+ * @param string $key String key for overrides.
1067
+ * @param string $slug Module slug for overrides.
1068
+ *
1069
+ * @return string
1070
+ */
1071
+ function fs_esc_html_x_inline( $text, $context, $key = '', $slug = 'freemius' ) {
1072
+ return esc_html( _fs_text_x_inline( $text, $context, $key, $slug ) );
1073
+ }
1074
+ }
1075
+
1076
+ if ( ! function_exists( 'fs_esc_html_echo_x_inline' ) ) {
1077
+ /**
1078
+ * @author Vova Feldman (@svovaf)
1079
+ * @since 1.2.3
1080
+ *
1081
+ * @param string $text Translatable string.
1082
+ * @param string $context Context information for the translators.
1083
+ * @param string $key String key for overrides.
1084
+ * @param string $slug Module slug for overrides.
1085
+ */
1086
+ function fs_esc_html_echo_x_inline( $text, $context, $key = '', $slug = 'freemius' ) {
1087
+ echo esc_html( _fs_text_x_inline( $text, $context, $key, $slug ) );
1088
+ }
1089
+ }
1090
+
1091
+ if ( ! function_exists( 'fs_esc_html_echo' ) ) {
1092
+ /**
1093
+ * @author Vova Feldman
1094
+ * @since 1.2.1.6
1095
+ *
1096
+ * @param string $key
1097
+ * @param string $slug
1098
+ */
1099
+ function fs_esc_html_echo( $key, $slug ) {
1100
+ echo esc_html( fs_text( $key, $slug ) );
1101
+ }
1102
+ }
1103
+
1104
+ if ( ! function_exists( 'fs_esc_html_echo_inline' ) ) {
1105
+ /**
1106
+ * @author Vova Feldman (@svovaf)
1107
+ * @since 1.2.3
1108
+ *
1109
+ * @param string $text Translatable string.
1110
+ * @param string $key String key for overrides.
1111
+ * @param string $slug Module slug for overrides.
1112
+ */
1113
+ function fs_esc_html_echo_inline( $text, $key = '', $slug = 'freemius' ) {
1114
+ echo esc_html( _fs_text_inline( $text, $key, $slug ) );
1115
+ }
1116
+ }
1117
+
1118
+ #endregion
includes/vendor/freemius/wordpress-sdk/includes/fs-essential-functions.php CHANGED
@@ -158,6 +158,7 @@
158
  * Retrieve a translated text by key.
159
  *
160
  * @deprecated Use `fs_text()` instead since methods starting with `__` trigger warnings in Php 7.
 
161
  *
162
  * @author Vova Feldman (@svovaf)
163
  * @since 1.1.4
@@ -209,6 +210,8 @@
209
  *
210
  * @deprecated Use `fs_echo()` instead for consistency with `fs_text()`.
211
  *
 
 
212
  * @author Vova Feldman (@svovaf)
213
  * @since 1.1.4
214
  *
158
  * Retrieve a translated text by key.
159
  *
160
  * @deprecated Use `fs_text()` instead since methods starting with `__` trigger warnings in Php 7.
161
+ * @todo Remove this method in the future.
162
  *
163
  * @author Vova Feldman (@svovaf)
164
  * @since 1.1.4
210
  *
211
  * @deprecated Use `fs_echo()` instead for consistency with `fs_text()`.
212
  *
213
+ * @todo Remove this method in the future.
214
+ *
215
  * @author Vova Feldman (@svovaf)
216
  * @since 1.1.4
217
  *
includes/vendor/freemius/wordpress-sdk/includes/fs-plugin-info-dialog.php CHANGED
@@ -325,8 +325,12 @@
325
  $plan->has_trial()
326
  ) . '" target="_parent">' .
327
  ( ! $plan->has_trial() ?
328
- fs_text( 'purchase', $api->slug ) :
329
- sprintf( fs_text( 'start-free-x', $api->slug ), $this->get_trial_period( $plan ) )
 
 
 
 
330
  ) .
331
  '</a>';
332
 
@@ -348,23 +352,23 @@
348
  * plugin is wordpress.org compliant. Therefore, require a download
349
  * since installing external plugins is not allowed by the wp.org guidelines.
350
  */
351
- return ' <a class="button button-primary right" href="' . esc_url( $api->download_link ) . '" target="_blank">' . fs_text( 'download-latest', $api->slug ) . '</a>';
352
  } else {
353
  if ( $status['url'] ) {
354
- return '<a class="button button-primary right" href="' . $status['url'] . '" target="_parent">' . fs_text( 'install-now', $api->slug ) . '</a>';
355
  }
356
  }
357
  break;
358
  case 'update_available':
359
  if ( $status['url'] ) {
360
- return '<a class="button button-primary right" href="' . $status['url'] . '" target="_parent">' . fs_text( 'install-update-now', $api->slug ) . '</a>';
361
  }
362
  break;
363
  case 'newer_installed':
364
- return '<a class="button button-primary right disabled">' . sprintf( fs_text( 'newer-installed', $api->slug ), $status['version'] ) . '</a>';
365
  break;
366
  case 'latest_installed':
367
- return '<a class="button button-primary right disabled">' . fs_text( 'latest-installed', $api->slug ) . '</a>';
368
  break;
369
  }
370
 
@@ -477,13 +481,13 @@
477
  );
478
 
479
  $plugins_section_titles = array(
480
- 'description' => fs_text( 'description', $api->slug ),
481
- 'installation' => fs_text( 'installation', $api->slug ),
482
- 'faq' => fs_text( 'faq', $api->slug ),
483
- 'screenshots' => fs_text( 'screenshots', $api->slug ),
484
- 'changelog' => fs_text( 'changelog', $api->slug ),
485
- 'reviews' => fs_text( 'reviews', $api->slug ),
486
- 'other_notes' => fs_text( 'other_notes', $api->slug ),
487
  );
488
 
489
  // Sanitize HTML
@@ -498,7 +502,7 @@
498
  }
499
 
500
  // Add after $api->slug is ready.
501
- $plugins_section_titles['features'] = fs_text( 'features-and-pricing', $api->slug );
502
 
503
  $_tab = esc_attr( $tab );
504
 
@@ -508,7 +512,7 @@
508
  $section = array_shift( $section_titles );
509
  }
510
 
511
- iframe_header( fs_text( 'plugin-install', $api->slug ) );
512
 
513
  $_with_banner = '';
514
 
@@ -580,7 +584,7 @@
580
  <div class="fs-plan<?php if ( ! $is_multi_cycle ) {
581
  echo ' fs-single-cycle';
582
  } ?>" data-plan-id="<?php echo $plan->id ?>">
583
- <h3 data-plan="<?php echo $plan->id ?>"><?php printf( fs_text( 'x-plan', $api->slug ), $plan->title ) ?></h3>
584
  <?php $has_annual = $first_pricing->has_annual() ?>
585
  <?php $has_monthly = $first_pricing->has_monthly() ?>
586
  <div class="nav-tab-wrapper">
@@ -605,9 +609,22 @@
605
  <a class="nav-tab" data-billing-cycle="<?php echo $cycle ?>"
606
  data-pricing="<?php echo esc_attr( json_encode( $prices ) ) ?>">
607
  <?php if ( $is_featured ) : ?>
608
- <label>&#9733; <?php fs_echo( 'best', $api->slug ) ?> &#9733;</label>
609
  <?php endif ?>
610
- <?php fs_echo( $cycle, $api->slug ) ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
611
  </a>
612
  <?php endif ?>
613
  <?php $i ++; endforeach ?>
@@ -618,21 +635,21 @@
618
  _formatBillingFrequency = function (cycle) {
619
  switch (cycle) {
620
  case 'monthly':
621
- return '<?php printf(fs_text('billed-x', $api->slug), fs_text('monthly', $api->slug)) ?>';
622
  case 'annual':
623
- return '<?php printf(fs_text('billed-x', $api->slug), fs_text('annually', $api->slug)) ?>';
624
  case 'lifetime':
625
- return '<?php printf(fs_text('billed-x', $api->slug), fs_text('once', $api->slug)) ?>';
626
  }
627
  },
628
  _formatLicensesTitle = function (pricing) {
629
  switch (pricing.licenses) {
630
  case 1:
631
- return '<?php fs_echo( 'license-single-site', $api->slug ) ?>';
632
  case null:
633
- return '<?php fs_echo( 'license-unlimited', $api->slug ) ?>';
634
  default:
635
- return '<?php fs_echo( 'license-x-sites', $api->slug ) ?>'.replace('%s', pricing.licenses);
636
  }
637
  },
638
  _formatPrice = function (pricing, cycle, multipleLicenses) {
@@ -642,14 +659,14 @@
642
  var priceCycle;
643
  switch (cycle) {
644
  case 'monthly':
645
- priceCycle = ' / <?php fs_echo('mo', $api->slug) ?>';
646
  break;
647
  case 'lifetime':
648
  priceCycle = '';
649
  break;
650
  case 'annual':
651
  default:
652
- priceCycle = ' / <?php fs_echo('year', $api->slug) ?>';
653
  break;
654
  }
655
 
@@ -701,7 +718,7 @@
701
 
702
  // Render licenses prices.
703
  if (1 == pricing.length) {
704
- html = '<li><label><?php fs_echo( 'price', $api->slug ) ?>: ' + _formatPrice(pricing[0], billingCycle, false) + '</label></li>';
705
  } else {
706
  for (var i = 0; i < pricing.length; i++) {
707
  html += '<li><label><input name="pricing-<?php echo $plan->id ?>" type="radio" value="' + pricing[i].id + '">' + _formatPrice(pricing[i], billingCycle) + '</label></li>';
@@ -747,7 +764,7 @@
747
  <?php $annual_discount = ( $has_annual && $has_monthly ) ? $plan->pricing[0]->annual_discount_percentage() : 0 ?>
748
  <?php if ( $annual_discount > 0 ) : ?>
749
  <span
750
- class="fs-annual-discount"><?php printf( fs_text( 'save-x', $api->slug ), $annual_discount . '%' ) ?></span>
751
  <?php endif ?>
752
  <ul class="fs-licenses">
753
  </ul>
@@ -757,10 +774,10 @@
757
  <?php $trial_period = $this->get_trial_period( $plan ) ?>
758
  <ul class="fs-trial-terms">
759
  <li>
760
- <i class="dashicons dashicons-yes"></i><?php printf( fs_text( 'no-commitment-x', $api->slug ), $trial_period ) ?>
761
  </li>
762
  <li>
763
- <i class="dashicons dashicons-yes"></i><?php printf( fs_text( 'after-x-pay-as-little-y', $api->slug ), $trial_period, '<var class="fs-price">' . $this->get_price_tag( $plan, $plan->pricing[0] ) . '</var>' ) ?>
764
  </li>
765
  </ul>
766
  <?php endif ?>
@@ -771,85 +788,99 @@
771
  <?php endif ?>
772
  <?php endif ?>
773
  <div>
774
- <h3><?php fs_echo( 'details', $api->slug ) ?></h3>
775
  <ul>
776
  <?php if ( ! empty( $api->version ) ) { ?>
777
- <li><strong><?php fs_echo( 'version', $api->slug ); ?>:</strong> <?php echo $api->version; ?></li>
778
  <?php
779
  }
780
  if ( ! empty( $api->author ) ) {
781
  ?>
782
  <li>
783
- <strong><?php fs_echo( 'author:', $api->slug ); ?></strong> <?php echo links_add_target( $api->author, '_blank' ); ?>
784
  </li>
785
  <?php
786
  }
787
  if ( ! empty( $api->last_updated ) ) {
788
  ?>
789
- <li><strong><?php fs_echo( 'last-updated:', $api->slug ); ?></strong> <span
790
  title="<?php echo $api->last_updated; ?>">
791
- <?php printf( fs_text( 'x-ago', $api->slug ), human_time_diff( strtotime( $api->last_updated ) ) ); ?>
 
 
 
 
792
  </span></li>
793
  <?php
794
  }
795
  if ( ! empty( $api->requires ) ) {
796
  ?>
797
  <li>
798
- <strong><?php fs_echo( 'requires-wordpress-version:', $api->slug ); ?></strong> <?php printf( fs_text( 'x-or-higher', $api->slug ), $api->requires ); ?>
799
  </li>
800
  <?php
801
  }
802
  if ( ! empty( $api->tested ) ) {
803
  ?>
804
- <li><strong><?php fs_echo( 'compatible-up-to:', $api->slug ); ?></strong> <?php echo $api->tested; ?>
805
  </li>
806
  <?php
807
  }
808
  if ( ! empty( $api->downloaded ) ) {
809
  ?>
810
  <li>
811
- <strong><?php fs_echo( 'downloaded:', $api->slug ); ?></strong> <?php printf(
812
- fs_text( ( 1 == $api->downloaded ) ? 'x-time' : 'x-times', $api->slug ),
 
 
 
 
 
813
  number_format_i18n( $api->downloaded )
814
- ); ?>
815
  </li>
816
  <?php
817
  }
818
  if ( ! empty( $api->slug ) && empty( $api->external ) ) {
819
  ?>
820
  <li><a target="_blank"
821
- href="https://wordpress.org/plugins/<?php echo $api->slug; ?>/"><?php fs_echo( 'wp-org-plugin-page', $api->slug ); ?> &#187;</a>
822
  </li>
823
  <?php
824
  }
825
  if ( ! empty( $api->homepage ) ) {
826
  ?>
827
  <li><a target="_blank"
828
- href="<?php echo esc_url( $api->homepage ); ?>"><?php fs_echo( 'plugin-homepage', $api->slug ); ?> &#187;</a>
829
  </li>
830
  <?php
831
  }
832
  if ( ! empty( $api->donate_link ) && empty( $api->contributors ) ) {
833
  ?>
834
  <li><a target="_blank"
835
- href="<?php echo esc_url( $api->donate_link ); ?>"><?php fs_echo( 'donate-to-plugin', $api->slug ); ?> &#187;</a>
836
  </li>
837
  <?php } ?>
838
  </ul>
839
  </div>
840
  <?php if ( ! empty( $api->rating ) ) { ?>
841
- <h3><?php fs_echo( 'average-rating', $api->slug ); ?></h3>
842
  <?php wp_star_rating( array(
843
  'rating' => $api->rating,
844
  'type' => 'percent',
845
  'number' => $api->num_ratings
846
  ) ); ?>
847
- <small>(<?php printf(
848
- fs_text( 'based-on-x', $api->slug ),
849
  sprintf(
850
- fs_text( ( 1 == $api->num_ratings ) ? 'x-rating' : 'x-ratings', $api->slug ),
 
 
 
 
 
851
  number_format_i18n( $api->num_ratings )
852
- ) ); ?>)</small>
853
  <?php
854
  }
855
 
@@ -858,7 +889,12 @@
858
  // Avoid div-by-zero.
859
  $_rating = $api->num_ratings ? ( $ratecount / $api->num_ratings ) : 0;
860
  $stars_label = sprintf(
861
- fs_text( ( 1 == $key ) ? 'x-star' : 'x-stars', $api->slug ),
 
 
 
 
 
862
  number_format_i18n( $key )
863
  );
864
  ?>
@@ -866,7 +902,11 @@
866
  <span class="counter-label"><a
867
  href="https://wordpress.org/support/view/plugin-reviews/<?php echo $api->slug; ?>?filter=<?php echo $key; ?>"
868
  target="_blank"
869
- title="<?php echo esc_attr( sprintf( fs_text('click-to-reviews', $api->slug), $stars_label) ) ?>"><?php echo $stars_label ?></a></span>
 
 
 
 
870
  <span class="counter-back">
871
  <span class="counter-bar" style="width: <?php echo 92 * $_rating; ?>px;"></span>
872
  </span>
@@ -877,7 +917,7 @@
877
  }
878
  if ( ! empty( $api->contributors ) ) {
879
  ?>
880
- <h3><?php fs_echo( 'contributors', $api->slug ); ?></h3>
881
  <ul class="contributors">
882
  <?php
883
  foreach ( (array) $api->contributors as $contrib_username => $contrib_profile ) {
@@ -898,16 +938,16 @@
898
  </ul>
899
  <?php if ( ! empty( $api->donate_link ) ) { ?>
900
  <a target="_blank"
901
- href="<?php echo esc_url( $api->donate_link ); ?>"><?php fs_echo( 'donate-to-plugin', $api->slug ) ?> &#187;</a>
902
  <?php } ?>
903
  <?php } ?>
904
  </div>
905
  <div id="section-holder" class="wrap">
906
  <?php
907
  if ( ! empty( $api->tested ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->tested ) ), $api->tested, '>' ) ) {
908
- echo '<div class="notice notice-warning"><p>' . '<strong>' . fs_text( 'warning:', $api->slug ) . '</strong> ' . fs_text( 'not-tested-warning', $api->slug ) . '</p></div>';
909
  } else if ( ! empty( $api->requires ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->requires ) ), $api->requires, '<' ) ) {
910
- echo '<div class="notice notice-warning"><p>' . '<strong>' . fs_text( 'warning:', $api->slug ) . '</strong> ' . fs_text( 'not-compatible-warning', $api->slug ) . '</p></div>';
911
  }
912
 
913
  foreach ( (array) $api->sections as $section_name => $content ) {
@@ -925,7 +965,9 @@
925
  $missing_notice = array(
926
  'type' => 'error',
927
  'id' => md5( microtime() ),
928
- 'message' => fs_text( ( $api->is_paid ? 'paid-addon-not-deployed' : 'free-addon-not-deployed' ), $api->slug ),
 
 
929
  );
930
  fs_require_template( 'admin-notice.php', $missing_notice );
931
  }
325
  $plan->has_trial()
326
  ) . '" target="_parent">' .
327
  ( ! $plan->has_trial() ?
328
+ fs_text_x_inline( 'Purchase', 'verb', 'purchase', $api->slug ) :
329
+ sprintf(
330
+ /* translators: %s: N-days trial */
331
+ fs_text_inline( 'Start my free %s', 'start-free-x', $api->slug ),
332
+ $this->get_trial_period( $plan )
333
+ )
334
  ) .
335
  '</a>';
336
 
352
  * plugin is wordpress.org compliant. Therefore, require a download
353
  * since installing external plugins is not allowed by the wp.org guidelines.
354
  */
355
+ return ' <a class="button button-primary right" href="' . esc_url( $api->download_link ) . '" target="_blank">' . fs_esc_html_x_inline( 'Download Latest', 'as download latest version', 'download-latest', $api->slug ) . '</a>';
356
  } else {
357
  if ( $status['url'] ) {
358
+ return '<a class="button button-primary right" href="' . $status['url'] . '" target="_parent">' . fs_esc_html_inline( 'Install Now', 'install-now', $api->slug ) . '</a>';
359
  }
360
  }
361
  break;
362
  case 'update_available':
363
  if ( $status['url'] ) {
364
+ return '<a class="button button-primary right" href="' . $status['url'] . '" target="_parent">' . fs_text_inline( 'Install Update Now', 'install-update-now', $api->slug ) . '</a>';
365
  }
366
  break;
367
  case 'newer_installed':
368
+ return '<a class="button button-primary right disabled">' . sprintf( fs_text_inline( 'Newer Version (%s) Installed', 'newer-installed', $api->slug ), $status['version'] ) . '</a>';
369
  break;
370
  case 'latest_installed':
371
+ return '<a class="button button-primary right disabled">' . fs_text_inline( 'Latest Version Installed', 'latest-installed', $api->slug ) . '</a>';
372
  break;
373
  }
374
 
481
  );
482
 
483
  $plugins_section_titles = array(
484
+ 'description' => fs_text_x_inline( 'Description', 'Plugin installer section title', 'description', $api->slug ),
485
+ 'installation' => fs_text_x_inline( 'Installation', 'Plugin installer section title', 'installation', $api->slug ),
486
+ 'faq' => fs_text_x_inline( 'FAQ', 'Plugin installer section title', 'faq', $api->slug ),
487
+ 'screenshots' => fs_text_inline( 'Screenshots', 'screenshots', $api->slug ),
488
+ 'changelog' => fs_text_x_inline( 'Changelog', 'Plugin installer section title', 'changelog', $api->slug ),
489
+ 'reviews' => fs_text_x_inline( 'Reviews', 'Plugin installer section title', 'reviews', $api->slug ),
490
+ 'other_notes' => fs_text_x_inline( 'Other Notes', 'Plugin installer section title', 'other-notes', $api->slug ),
491
  );
492
 
493
  // Sanitize HTML
502
  }
503
 
504
  // Add after $api->slug is ready.
505
+ $plugins_section_titles['features'] = fs_text_x_inline( 'Features & Pricing', 'Plugin installer section title', 'features-and-pricing', $api->slug );
506
 
507
  $_tab = esc_attr( $tab );
508
 
512
  $section = array_shift( $section_titles );
513
  }
514
 
515
+ iframe_header( fs_text_inline( 'Plugin Install', 'plugin-install', $api->slug ) );
516
 
517
  $_with_banner = '';
518
 
584
  <div class="fs-plan<?php if ( ! $is_multi_cycle ) {
585
  echo ' fs-single-cycle';
586
  } ?>" data-plan-id="<?php echo $plan->id ?>">
587
+ <h3 data-plan="<?php echo $plan->id ?>"><?php echo esc_html( sprintf( fs_text_x_inline( '%s Plan', 'e.g. Professional Plan', 'x-plan', $api->slug ), $plan->title ) ) ?></h3>
588
  <?php $has_annual = $first_pricing->has_annual() ?>
589
  <?php $has_monthly = $first_pricing->has_monthly() ?>
590
  <div class="nav-tab-wrapper">
609
  <a class="nav-tab" data-billing-cycle="<?php echo $cycle ?>"
610
  data-pricing="<?php echo esc_attr( json_encode( $prices ) ) ?>">
611
  <?php if ( $is_featured ) : ?>
612
+ <label>&#9733; <?php fs_esc_html_echo_x_inline( 'Best', 'e.g. the best product', 'best', $api->slug ) ?> &#9733;</label>
613
  <?php endif ?>
614
+ <?php
615
+ switch ($cycle)
616
+ {
617
+ case 'monthly':
618
+ fs_esc_html_echo_x_inline( 'Monthly', 'as every month', 'monthly', $api->slug );
619
+ break;
620
+ case 'annual':
621
+ fs_esc_html_echo_x_inline( 'Annual', 'as once a year', 'annual', $api->slug );
622
+ break;
623
+ case 'lifetime':
624
+ fs_esc_html_echo_inline( 'Lifetime', 'lifetime', $api->slug );
625
+ break;
626
+ }
627
+ ?>
628
  </a>
629
  <?php endif ?>
630
  <?php $i ++; endforeach ?>
635
  _formatBillingFrequency = function (cycle) {
636
  switch (cycle) {
637
  case 'monthly':
638
+ return '<?php printf( fs_text_x_inline( 'Billed %s', 'e.g. billed monthly', 'billed-x', $api->slug), fs_text_x_inline( 'Monthly', 'as every month', 'monthly', $api->slug ) ) ?>';
639
  case 'annual':
640
+ return '<?php printf( fs_text_x_inline( 'Billed %s', 'e.g. billed monthly', 'billed-x', $api->slug), fs_text_x_inline( 'Annually', 'as once a year', 'annually', $api->slug ) ) ?>';
641
  case 'lifetime':
642
+ return '<?php printf( fs_text_x_inline( 'Billed %s', 'e.g. billed monthly', 'billed-x', $api->slug), fs_text_x_inline( 'Once', 'as once a year', 'once', $api->slug ) ) ?>';
643
  }
644
  },
645
  _formatLicensesTitle = function (pricing) {
646
  switch (pricing.licenses) {
647
  case 1:
648
+ return '<?php fs_esc_attr_echo_inline( 'Single Site License', 'license-single-site', $api->slug ) ?>';
649
  case null:
650
+ return '<?php fs_esc_attr_echo_inline( 'Unlimited Licenses', 'license-unlimited', $api->slug ) ?>';
651
  default:
652
+ return '<?php fs_esc_attr_echo_inline( 'Up to %s Sites', 'license-x-sites', $api->slug ) ?>'.replace('%s', pricing.licenses);
653
  }
654
  },
655
  _formatPrice = function (pricing, cycle, multipleLicenses) {
659
  var priceCycle;
660
  switch (cycle) {
661
  case 'monthly':
662
+ priceCycle = ' / <?php fs_echo_x_inline( 'mo', 'as monthly period', 'mo', $api->slug ) ?>';
663
  break;
664
  case 'lifetime':
665
  priceCycle = '';
666
  break;
667
  case 'annual':
668
  default:
669
+ priceCycle = ' / <?php fs_echo_x_inline('year', 'as annual period', 'year', $api->slug) ?>';
670
  break;
671
  }
672
 
718
 
719
  // Render licenses prices.
720
  if (1 == pricing.length) {
721
+ html = '<li><label><?php echo fs_esc_attr_x_inline( 'Price', 'noun', 'price', $api->slug ) ?>: ' + _formatPrice(pricing[0], billingCycle, false) + '</label></li>';
722
  } else {
723
  for (var i = 0; i < pricing.length; i++) {
724
  html += '<li><label><input name="pricing-<?php echo $plan->id ?>" type="radio" value="' + pricing[i].id + '">' + _formatPrice(pricing[i], billingCycle) + '</label></li>';
764
  <?php $annual_discount = ( $has_annual && $has_monthly ) ? $plan->pricing[0]->annual_discount_percentage() : 0 ?>
765
  <?php if ( $annual_discount > 0 ) : ?>
766
  <span
767
+ class="fs-annual-discount"><?php printf( fs_esc_html_x_inline( 'Save %s', 'as a discount of $5 or 10%', 'save-x', $api->slug ), $annual_discount . '%' ) ?></span>
768
  <?php endif ?>
769
  <ul class="fs-licenses">
770
  </ul>
774
  <?php $trial_period = $this->get_trial_period( $plan ) ?>
775
  <ul class="fs-trial-terms">
776
  <li>
777
+ <i class="dashicons dashicons-yes"></i><?php echo esc_html( sprintf( fs_text_inline( 'No commitment for %s - cancel anytime', 'no-commitment-x', $api->slug ), $trial_period ) ) ?>
778
  </li>
779
  <li>
780
+ <i class="dashicons dashicons-yes"></i><?php printf( esc_html( fs_text_inline( 'After your free %s, pay as little as %s', 'after-x-pay-as-little-y', $api->slug ) ), $trial_period, '<var class="fs-price">' . $this->get_price_tag( $plan, $plan->pricing[0] ) . '</var>' ) ?>
781
  </li>
782
  </ul>
783
  <?php endif ?>
788
  <?php endif ?>
789
  <?php endif ?>
790
  <div>
791
+ <h3><?php fs_echo_inline( 'Details', 'details', $api->slug ) ?></h3>
792
  <ul>
793
  <?php if ( ! empty( $api->version ) ) { ?>
794
+ <li><strong><?php fs_esc_html_echo_x_inline( 'Version', 'product version', 'version', $api->slug ); ?>:</strong> <?php echo $api->version; ?></li>
795
  <?php
796
  }
797
  if ( ! empty( $api->author ) ) {
798
  ?>
799
  <li>
800
+ <strong><?php fs_echo_x_inline( 'Author', 'as the plugin author', 'author', $api->slug ); ?>:</strong> <?php echo links_add_target( $api->author, '_blank' ); ?>
801
  </li>
802
  <?php
803
  }
804
  if ( ! empty( $api->last_updated ) ) {
805
  ?>
806
+ <li><strong><?php fs_echo_inline( 'Last Updated', 'last-updated', $api->slug ); ?>:</strong> <span
807
  title="<?php echo $api->last_updated; ?>">
808
+ <?php echo esc_html( sprintf(
809
+ /* translators: %s: time period (e.g. "2 hours" ago) */
810
+ fs_text_x_inline( '%s ago', 'x-ago', $api->slug ),
811
+ human_time_diff( strtotime( $api->last_updated ) )
812
+ ) ) ?>
813
  </span></li>
814
  <?php
815
  }
816
  if ( ! empty( $api->requires ) ) {
817
  ?>
818
  <li>
819
+ <strong><?php fs_esc_html_echo_inline( 'Requires WordPress Version', 'requires-wordpress-version', $api->slug ) ?>:</strong> <?php echo esc_html( sprintf( fs_text_inline( '%s or higher', 'x-or-higher', $api->slug ), $api->requires ) ) ?>
820
  </li>
821
  <?php
822
  }
823
  if ( ! empty( $api->tested ) ) {
824
  ?>
825
+ <li><strong><?php fs_esc_html_echo_inline( 'Compatible up to', 'compatible-up-to', $api->slug ); ?>:</strong> <?php echo $api->tested; ?>
826
  </li>
827
  <?php
828
  }
829
  if ( ! empty( $api->downloaded ) ) {
830
  ?>
831
  <li>
832
+ <strong><?php fs_esc_html_echo_inline( 'Downloaded', 'downloaded', $api->slug ) ?>:</strong> <?php echo esc_html( sprintf(
833
+ ( ( 1 == $api->downloaded ) ?
834
+ /* translators: %s: 1 or One (Number of times downloaded) */
835
+ fs_text_inline( '%s time', 'x-time', $api->slug ) :
836
+ /* translators: %s: Number of times downloaded */
837
+ fs_text_inline( '%s times', 'x-times', $api->slug )
838
+ ),
839
  number_format_i18n( $api->downloaded )
840
+ ) ); ?>
841
  </li>
842
  <?php
843
  }
844
  if ( ! empty( $api->slug ) && empty( $api->external ) ) {
845
  ?>
846
  <li><a target="_blank"
847
+ href="https://wordpress.org/plugins/<?php echo $api->slug; ?>/"><?php fs_esc_html_echo_inline( 'WordPress.org Plugin Page', 'wp-org-plugin-page', $api->slug ) ?> &#187;</a>
848
  </li>
849
  <?php
850
  }
851
  if ( ! empty( $api->homepage ) ) {
852
  ?>
853
  <li><a target="_blank"
854
+ href="<?php echo esc_url( $api->homepage ); ?>"><?php fs_esc_html_echo_inline( 'Plugin Homepage', 'plugin-homepage', $api->slug ) ?> &#187;</a>
855
  </li>
856
  <?php
857
  }
858
  if ( ! empty( $api->donate_link ) && empty( $api->contributors ) ) {
859
  ?>
860
  <li><a target="_blank"
861
+ href="<?php echo esc_url( $api->donate_link ); ?>"><?php fs_esc_html_echo_inline( 'Donate to this plugin', 'donate-to-plugin', $api->slug ) ?> &#187;</a>
862
  </li>
863
  <?php } ?>
864
  </ul>
865
  </div>
866
  <?php if ( ! empty( $api->rating ) ) { ?>
867
+ <h3><?php fs_echo_inline( 'Average Rating', 'average-rating', $api->slug ); ?></h3>
868
  <?php wp_star_rating( array(
869
  'rating' => $api->rating,
870
  'type' => 'percent',
871
  'number' => $api->num_ratings
872
  ) ); ?>
873
+ <small>(<?php echo esc_html( sprintf(
874
+ fs_text_inline( 'based on %s', 'based-on-x', $api->slug ),
875
  sprintf(
876
+ ( ( 1 == $api->num_ratings ) ?
877
+ /* translators: %s: 1 or One */
878
+ fs_text_inline( '%s rating', 'x-rating', $api->slug ) :
879
+ /* translators: %s: Number larger than 1 */
880
+ fs_text_inline( '%s ratings', 'x-ratings', $api->slug )
881
+ ),
882
  number_format_i18n( $api->num_ratings )
883
+ ) ) ) ?>)</small>
884
  <?php
885
  }
886
 
889
  // Avoid div-by-zero.
890
  $_rating = $api->num_ratings ? ( $ratecount / $api->num_ratings ) : 0;
891
  $stars_label = sprintf(
892
+ ( ( 1 == $key ) ?
893
+ /* translators: %s: 1 or One */
894
+ fs_text_inline( '%s star', 'x-star', $api->slug ) :
895
+ /* translators: %s: Number larger than 1 */
896
+ fs_text_inline( '%s stars', 'x-stars', $api->slug )
897
+ ),
898
  number_format_i18n( $key )
899
  );
900
  ?>
902
  <span class="counter-label"><a
903
  href="https://wordpress.org/support/view/plugin-reviews/<?php echo $api->slug; ?>?filter=<?php echo $key; ?>"
904
  target="_blank"
905
+ title="<?php echo esc_attr( sprintf(
906
+ /* translators: %s: # of stars (e.g. 5 stars) */
907
+ fs_text_inline( 'Click to see reviews that provided a rating of %s', 'click-to-reviews', $api->slug ),
908
+ $stars_label
909
+ ) ) ?>"><?php echo $stars_label ?></a></span>
910
  <span class="counter-back">
911
  <span class="counter-bar" style="width: <?php echo 92 * $_rating; ?>px;"></span>
912
  </span>
917
  }
918
  if ( ! empty( $api->contributors ) ) {
919
  ?>
920
+ <h3><?php fs_echo_inline( 'Contributors', 'contributors', $api->slug ); ?></h3>
921
  <ul class="contributors">
922
  <?php
923
  foreach ( (array) $api->contributors as $contrib_username => $contrib_profile ) {
938
  </ul>
939
  <?php if ( ! empty( $api->donate_link ) ) { ?>
940
  <a target="_blank"
941
+ href="<?php echo esc_url( $api->donate_link ); ?>"><?php fs_echo_inline( 'Donate to this plugin', 'donate-to-plugin', $api->slug ) ?> &#187;</a>
942
  <?php } ?>
943
  <?php } ?>
944
  </div>
945
  <div id="section-holder" class="wrap">
946
  <?php
947
  if ( ! empty( $api->tested ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->tested ) ), $api->tested, '>' ) ) {
948
+ echo '<div class="notice notice-warning"><p>' . '<strong>' . fs_text_inline( 'Warning', 'warning', $api->slug ) . ':</strong> ' . fs_text_inline( 'This plugin has not been tested with your current version of WordPress.', 'not-tested-warning', $api->slug ) . '</p></div>';
949
  } else if ( ! empty( $api->requires ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->requires ) ), $api->requires, '<' ) ) {
950
+ echo '<div class="notice notice-warning"><p>' . '<strong>' . fs_text_inline( 'Warning', 'warning', $api->slug ) . ':</strong> ' . fs_text_inline( 'This plugin has not been marked as compatible with your version of WordPress.', 'not-compatible-warning', $api->slug ) . '</p></div>';
951
  }
952
 
953
  foreach ( (array) $api->sections as $section_name => $content ) {
965
  $missing_notice = array(
966
  'type' => 'error',
967
  'id' => md5( microtime() ),
968
+ 'message' => $api->is_paid ?
969
+ fs_text_inline( 'Paid add-on must be deployed to Freemius.', 'paid-addon-not-deployed', $api->slug ) :
970
+ fs_text_inline( 'Add-on must be deployed to WordPress.org or Freemius.', 'free-addon-not-deployed', $api->slug ),
971
  );
972
  fs_require_template( 'admin-notice.php', $missing_notice );
973
  }
includes/vendor/freemius/wordpress-sdk/includes/i18n.php CHANGED
@@ -4,6 +4,8 @@
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.1.4
 
 
7
  */
8
 
9
  if ( ! defined( 'ABSPATH' ) ) {
@@ -29,7 +31,7 @@
29
  * my_freemius->override_i18n( array(
30
  * 'opt-in-connect' => __( "Yes - I'm in!", '{your-text_domain}' ),
31
  * 'skip' => __( 'Not today', '{your-text_domain}' ),
32
- * );
33
  */
34
  global $fs_text;
35
 
@@ -95,8 +97,54 @@
95
  'optin-x-now' => _fs_text( 'Opt in to make "%s" Better!' ),
96
  'error' => _fs_text( 'Error' ),
97
  'failed-finding-main-path' => _fs_text( 'Freemius SDK couldn\'t find the plugin\'s main file. Please contact sdk@freemius.com with the current error.' ),
98
- #region Account
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
 
 
100
  'expiration' => _fs_x( 'Expiration', 'as expiration date' ),
101
  'license' => _fs_x( 'License', 'as software license' ),
102
  'not-verified' => _fs_text( 'not verified' ),
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.1.4
7
+ *
8
+ * @deprecated This file is no longer in use. It's still in the project for backward compatibility.
9
  */
10
 
11
  if ( ! defined( 'ABSPATH' ) ) {
31
  * my_freemius->override_i18n( array(
32
  * 'opt-in-connect' => __( "Yes - I'm in!", '{your-text_domain}' ),
33
  * 'skip' => __( 'Not today', '{your-text_domain}' ),
34
+ * ) );
35
  */
36
  global $fs_text;
37
 
97
  'optin-x-now' => _fs_text( 'Opt in to make "%s" Better!' ),
98
  'error' => _fs_text( 'Error' ),
99
  'failed-finding-main-path' => _fs_text( 'Freemius SDK couldn\'t find the plugin\'s main file. Please contact sdk@freemius.com with the current error.' ),
100
+ 'learn-more' => _fs_text( 'Learn more' ),
101
+
102
+ #region Affiliation
103
+ 'affiliation' => _fs_text( 'Affiliation' ),
104
+ 'affiliate' => _fs_text( 'Affiliate' ),
105
+ 'affiliate-tracking' => _fs_text( '%s tracking cookie after the first visit to maximize earnings potential.' ),
106
+ 'renewals-commission' => _fs_text( 'Get commission for automated subscription renewals.' ),
107
+ 'affiliate-application-accepted' => _fs_text( "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s." ),
108
+ 'affiliate-application-thank-you' => _fs_text( "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." ),
109
+ 'affiliate-application-rejected' => _fs_text( "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." ),
110
+ 'affiliate-account-suspended' => _fs_text( 'Your affiliation account was temporarily suspended.' ),
111
+ 'affiliate-account-blocked' => _fs_text( 'Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support.' ),
112
+ 'become-an-ambassador' => _fs_text( 'Like the %s? Become our ambassador and earn cash ;-)' ),
113
+ 'become-an-ambassador-admin-notice' => _fs_text( '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!' ),
114
+ 'refer-new-customers' => _fs_text( 'Refer new customers to our %s and earn %s commission on each successful sale you refer!' ),
115
+ 'program-summary' => _fs_text( 'Program Summary' ),
116
+ 'commission-on-new-license-purchase' => _fs_text( '%s commission when a customer purchases a new license.' ),
117
+ 'unlimited-commissions' => _fs_text( 'Unlimited commissions.' ),
118
+ 'minimum-payout-amount' => _fs_text( '%s minimum payout amount.' ),
119
+ 'payouts-unit-and-processing' => _fs_text( 'Payouts are in USD and processed monthly via PayPal.' ),
120
+ 'commission-payment' => _fs_text( 'As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days.' ),
121
+ 'become-an-affiliate' => _fs_text( 'Become an affiliate' ),
122
+ 'apply-to-become-an-affiliate' => _fs_text( 'Apply to become an affiliate' ),
123
+ 'full-name' => _fs_text( 'Full name' ),
124
+ 'paypal-account-email-address' => _fs_text( 'PayPal account email address' ),
125
+ 'promotion-methods' => _fs_text( 'Promotion methods' ),
126
+ 'social-media' => _fs_text( 'Social media (Facebook, Twitter, etc.)' ),
127
+ 'mobile-apps' => _fs_text( 'Mobile apps' ),
128
+ 'statistics-information-field-label' => _fs_text( 'Website, email, and social media statistics (optional)' ),
129
+ 'statistics-information-field-desc' => _fs_text( '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).' ),
130
+ 'promotion-method-desc-field-label' => _fs_text( 'How will you promote us?' ),
131
+ 'promotion-method-desc-field-desc' => _fs_text( 'Please provide details on how you intend to promote %s (please be as specific as possible).' ),
132
+ 'domain-field-label' => _fs_text( 'Where are you going to promote the %s?' ),
133
+ 'domain-field-desc' => _fs_text( 'Enter the domain of your website or other websites from where you plan to promote the %s.' ),
134
+ 'extra-domain-fields-label' => _fs_text( 'Extra Domains' ),
135
+ 'extra-domain-fields-desc' => _fs_text( 'Extra domains where you will be marketing the product from.' ),
136
+ 'add-another-domain' => _fs_text( 'Add another domain' ),
137
+ 'remove' => _fs_x( 'Remove', 'Remove domain' ),
138
+ 'email-address-is-required' => _fs_text( 'Email address is required.' ),
139
+ 'domain-is-required' => _fs_text( 'Domain is required.' ),
140
+ 'invalid-domain' => _fs_text( 'Invalid domain' ),
141
+ 'paypal-email-address-is-required' => _fs_text( 'PayPal email address is required.' ),
142
+ 'processing' => _fs_text( 'Processing...' ),
143
+ 'non-expiring' => _fs_text( 'Non-expiring' ),
144
+ 'account-is-pending-activation' => _fs_text( 'Account is pending activation.' ),
145
+ #endregion Affiliation
146
 
147
+ #region Account
148
  'expiration' => _fs_x( 'Expiration', 'as expiration date' ),
149
  'license' => _fs_x( 'License', 'as software license' ),
150
  'not-verified' => _fs_text( 'not verified' ),
includes/vendor/freemius/wordpress-sdk/includes/l10n.php CHANGED
@@ -25,75 +25,6 @@
25
  return $fn( $text, 'freemius' );
26
  }
27
 
28
- /**
29
- * Retrieve the translation of $text and escapes it for safe use in an attribute.
30
- *
31
- * @since 1.2.1.6
32
- *
33
- * @param string $text
34
- *
35
- * @return string
36
- */
37
- function _fs_esc_attr( $text ) {
38
- // Avoid misleading Theme Check warning.
39
- $fn = 'translate';
40
- return esc_attr( $fn( $text, 'freemius' ) );
41
- }
42
-
43
- /**
44
- * Retrieve the translation of $text and escapes it for safe use in HTML output.
45
- *
46
- * @since 1.2.1.6
47
- *
48
- * @param string $text
49
- *
50
- * @return string
51
- */
52
- function _fs_esc_html( $text ) {
53
- // Avoid misleading Theme Check warning.
54
- $fn = 'translate';
55
- return esc_html( $fn( $text, 'freemius' ) );
56
- }
57
-
58
- /**
59
- * Display translated text.
60
- *
61
- * @since 1.2.0
62
- *
63
- * @param string $text
64
- */
65
- function _fs_echo( $text ) {
66
- // Avoid misleading Theme Check warning.
67
- $fn = 'translate';
68
- echo $fn( $text, 'freemius' );
69
- }
70
-
71
- /**
72
- * Display translated text that has been escaped for safe use in an attribute.
73
- *
74
- * @since 1.2.1.6
75
- *
76
- * @param string $text
77
- */
78
- function _fs_esc_attr_echo( $text ) {
79
- // Avoid misleading Theme Check warning.
80
- $fn = 'translate';
81
- echo esc_attr( $fn( $text, 'freemius' ) );
82
- }
83
-
84
- /**
85
- * Display translated text that has been escaped for safe use in HTML output.
86
- *
87
- * @since 1.2.1.6
88
- *
89
- * @param string $text
90
- */
91
- function _fs_esc_html_echo( $text ) {
92
- // Avoid misleading Theme Check warning.
93
- $fn = 'translate';
94
- echo esc_html( $fn( $text, 'freemius' ) );
95
- }
96
-
97
  /**
98
  * Retrieve translated string with gettext context.
99
  *
@@ -115,154 +46,3 @@
115
  $fn = 'translate_with_gettext_context';
116
  return $fn( $text, $context, 'freemius' );
117
  }
118
-
119
- /**
120
- * Display translated string with gettext context.
121
- *
122
- * @since 1.2.1.6
123
- *
124
- * @param string $text
125
- * @param string $context
126
- */
127
- function _fs_ex( $text, $context ) {
128
- // Avoid misleading Theme Check warning.
129
- $fn = '_x';
130
- echo $fn( $text, $context, 'freemius' );
131
- }
132
-
133
- /**
134
- * Translate string with gettext context, and escapes it for safe use in an attribute.
135
- *
136
- * @since 1.2.1.6
137
- *
138
- * @param string $text
139
- * @param string $context
140
- *
141
- * @return string
142
- */
143
- function _fs_esc_attr_x( $text, $context ) {
144
- // Avoid misleading Theme Check warning.
145
- $fn = 'translate_with_gettext_context';
146
- return esc_attr( $fn( $text, $context, 'freemius' ) );
147
- }
148
-
149
- /**
150
- * Translate string with gettext context, and escapes it for safe use in HTML output.
151
- *
152
- * @since 2.9.0
153
- *
154
- * @param string $text
155
- * @param string $context
156
- *
157
- * @return string
158
- */
159
- function _fs_esc_html_x( $text, $context ) {
160
- // Avoid misleading Theme Check warning.
161
- $fn = 'translate_with_gettext_context';
162
- return esc_html( $fn( $text, $context, 'freemius' ) );
163
- }
164
-
165
- /**
166
- * Translates and retrieves the singular or plural form based on the supplied number.
167
- *
168
- * @since 1.2.1.6
169
- *
170
- * @param string $single
171
- * @param string $plural
172
- * @param int $number
173
- *
174
- * @return string
175
- */
176
- function _fs_n( $single, $plural, $number ) {
177
- $translations = get_translations_for_domain( 'freemius' );
178
- $translation = $translations->translate_plural( $single, $plural, $number );
179
-
180
- /**
181
- * Filters the singular or plural form of a string.
182
- *
183
- * @since WP 2.2.0
184
- *
185
- * @param string $translation
186
- * @param string $single
187
- * @param string $plural
188
- * @param string $number
189
- * @param string $domain
190
- */
191
- return apply_filters( 'ngettext', $translation, $single, $plural, $number, 'freemius' );
192
- }
193
-
194
- /**
195
- * Translates and retrieves the singular or plural form based on the supplied number, with gettext context.
196
- *
197
- * @since 1.2.1.6
198
- *
199
- * @param string $single
200
- * @param string $plural
201
- * @param int $number
202
- * @param string $context
203
- *
204
- * @return string
205
- */
206
- function _fs_nx($single, $plural, $number, $context ) {
207
- $translations = get_translations_for_domain( 'freemius' );
208
- $translation = $translations->translate_plural( $single, $plural, $number, $context );
209
-
210
- /**
211
- * Filters the singular or plural form of a string with gettext context.
212
- *
213
- * @since WP 3.0
214
- *
215
- * @param string $translation
216
- * @param string $single
217
- * @param string $plural
218
- * @param string $number
219
- * @param string $context
220
- * @param string $domain
221
- */
222
- return apply_filters( 'ngettext_with_context', $translation, $single, $plural, $number, $context, 'freemius' );
223
- }
224
-
225
- /**
226
- * Registers plural strings in POT file, but does not translate them.
227
- *
228
- * Used when you want to keep structures with translatable plural
229
- * strings and use them later when the number is known.
230
- *
231
- * @since 1.2.1.6
232
- *
233
- * @param string $singular
234
- * @param string $plural
235
- *
236
- * @return array
237
- */
238
- function _fs_n_noop( $singular, $plural ) {
239
- return array(
240
- 'singular' => $singular,
241
- 'plural' => $plural,
242
- 'context' => null,
243
- 'domain' => 'freemius'
244
- );
245
- }
246
-
247
- /**
248
- * Registers plural strings with gettext context in POT file, but does not translate them.
249
- *
250
- * Used when you want to keep structures with translatable plural
251
- * strings and use them later when the number is known.
252
- *
253
- * @since 1.2.1.6
254
- *
255
- * @param string $singular
256
- * @param string $plural
257
- * @param string $context
258
- *
259
- * @return array
260
- */
261
- function _fs_nx_noop( $singular, $plural, $context ) {
262
- return array(
263
- 'singular' => $singular,
264
- 'plural' => $plural,
265
- 'context' => $context,
266
- 'domain' => 'freemius'
267
- );
268
- }
25
  return $fn( $text, 'freemius' );
26
  }
27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  /**
29
  * Retrieve translated string with gettext context.
30
  *
46
  $fn = 'translate_with_gettext_context';
47
  return $fn( $text, $context, 'freemius' );
48
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/vendor/freemius/wordpress-sdk/includes/managers/class-fs-admin-menu-manager.php CHANGED
@@ -163,11 +163,12 @@
163
 
164
  if ( ! $is_addon && isset( $menu ) ) {
165
  $this->_default_submenu_items = array(
166
- 'contact' => $this->get_bool_option( $menu, 'contact', true ),
167
- 'support' => $this->get_bool_option( $menu, 'support', true ),
168
- 'account' => $this->get_bool_option( $menu, 'account', true ),
169
- 'pricing' => $this->get_bool_option( $menu, 'pricing', true ),
170
- 'addons' => $this->get_bool_option( $menu, 'addons', true ),
 
171
  );
172
 
173
  // @deprecated
163
 
164
  if ( ! $is_addon && isset( $menu ) ) {
165
  $this->_default_submenu_items = array(
166
+ 'contact' => $this->get_bool_option( $menu, 'contact', true ),
167
+ 'support' => $this->get_bool_option( $menu, 'support', true ),
168
+ 'affiliation' => $this->get_bool_option( $menu, 'affiliation', true ),
169
+ 'account' => $this->get_bool_option( $menu, 'account', true ),
170
+ 'pricing' => $this->get_bool_option( $menu, 'pricing', true ),
171
+ 'addons' => $this->get_bool_option( $menu, 'addons', true ),
172
  );
173
 
174
  // @deprecated
includes/vendor/freemius/wordpress-sdk/includes/managers/class-fs-cache-manager.php CHANGED
@@ -166,10 +166,10 @@
166
  isset( $cache_entry->timestamp ) &&
167
  is_numeric( $cache_entry->timestamp )
168
  ) {
169
- return $cache_entry->result;
170
- }
171
 
172
- return $default;
173
  }
174
 
175
  /**
@@ -194,7 +194,7 @@
194
  return $cache_entry->result;
195
  }
196
 
197
- return $default;
198
  }
199
 
200
  /**
@@ -208,7 +208,8 @@
208
  function set( $key, $value, $expiration = WP_FS__TIME_24_HOURS_IN_SEC ) {
209
  $this->_logger->entrance( 'key = ' . $key );
210
 
211
- $cache_entry = new stdClass();
 
212
  $cache_entry->result = $value;
213
  $cache_entry->created = WP_FS__SCRIPT_START_TIME;
214
  $cache_entry->timestamp = WP_FS__SCRIPT_START_TIME + $expiration;
166
  isset( $cache_entry->timestamp ) &&
167
  is_numeric( $cache_entry->timestamp )
168
  ) {
169
+ return $cache_entry->result;
170
+ }
171
 
172
+ return is_object($default) ? clone $default : $default;
173
  }
174
 
175
  /**
194
  return $cache_entry->result;
195
  }
196
 
197
+ return is_object($default) ? clone $default : $default;
198
  }
199
 
200
  /**
208
  function set( $key, $value, $expiration = WP_FS__TIME_24_HOURS_IN_SEC ) {
209
  $this->_logger->entrance( 'key = ' . $key );
210
 
211
+ $cache_entry = new stdClass();
212
+
213
  $cache_entry->result = $value;
214
  $cache_entry->created = WP_FS__SCRIPT_START_TIME;
215
  $cache_entry->timestamp = WP_FS__SCRIPT_START_TIME + $expiration;
includes/vendor/freemius/wordpress-sdk/includes/managers/class-fs-option-manager.php CHANGED
@@ -211,12 +211,39 @@
211
  $this->_logger->entrance( 'option = ' . $option );
212
 
213
  if ( is_array( $this->_options ) ) {
214
- return isset( $this->_options[ $option ] ) ? $this->_options[ $option ] : $default;
 
 
215
  } else if ( is_object( $this->_options ) ) {
216
- return isset( $this->_options->{$option} ) ? $this->_options->{$option} : $default;
217
- }
218
-
219
- return $default;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
  }
221
 
222
  /**
@@ -234,10 +261,34 @@
234
  $this->clear();
235
  }
236
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
237
  if ( is_array( $this->_options ) ) {
238
- $this->_options[ $option ] = $value;
239
  } else if ( is_object( $this->_options ) ) {
240
- $this->_options->{$option} = $value;
241
  }
242
 
243
  if ( $flush ) {
211
  $this->_logger->entrance( 'option = ' . $option );
212
 
213
  if ( is_array( $this->_options ) ) {
214
+ $value = isset( $this->_options[ $option ] ) ?
215
+ $this->_options[ $option ] :
216
+ $default;
217
  } else if ( is_object( $this->_options ) ) {
218
+ $value = isset( $this->_options->{$option} ) ?
219
+ $this->_options->{$option} :
220
+ $default;
221
+ } else {
222
+ $value = $default;
223
+ }
224
+
225
+ /**
226
+ * If it's an object, return a clone of the object, otherwise,
227
+ * external changes of the object will actually change the value
228
+ * of the object in the options manager which may lead to an unexpected
229
+ * behaviour and data integrity when a store() call is triggered.
230
+ *
231
+ * Example:
232
+ * $object1 = $options->get_option( 'object1' );
233
+ * $object1->x = 123;
234
+ *
235
+ * $object2 = $options->get_option( 'object2' );
236
+ * $object2->y = 'dummy';
237
+ *
238
+ * $options->set_option( 'object2', $object2, true );
239
+ *
240
+ * If we don't return a clone of option 'object1', setting 'object2'
241
+ * will also store the updated value of 'object1' which is quite not
242
+ * an expected behaviour.
243
+ *
244
+ * @author Vova Feldman
245
+ */
246
+ return is_object($value) ? clone $value : $value;
247
  }
248
 
249
  /**
261
  $this->clear();
262
  }
263
 
264
+ /**
265
+ * If it's an object, store a clone of the object, otherwise,
266
+ * external changes of the object will actually change the value
267
+ * of the object in the options manager which may lead to an unexpected
268
+ * behaviour and data integrity when a store() call is triggered.
269
+ *
270
+ * Example:
271
+ * $object1 = new stdClass();
272
+ * $object1->x = 123;
273
+ *
274
+ * $options->set_option( 'object1', $object1 );
275
+ *
276
+ * $object1->x = 456;
277
+ *
278
+ * $options->set_option( 'object2', $object2, true );
279
+ *
280
+ * If we don't set the option as a clone of option 'object1', setting 'object2'
281
+ * will also store the updated value of 'object1' ($object1->x = 456 instead of
282
+ * $object1->x = 123) which is quite not an expected behaviour.
283
+ *
284
+ * @author Vova Feldman
285
+ */
286
+ $copy = is_object($value) ? clone $value : $value;
287
+
288
  if ( is_array( $this->_options ) ) {
289
+ $this->_options[ $option ] = $copy;
290
  } else if ( is_object( $this->_options ) ) {
291
+ $this->_options->{$option} = $copy;
292
  }
293
 
294
  if ( $flush ) {
includes/vendor/freemius/wordpress-sdk/includes/sdk/FreemiusWordPress.php CHANGED
@@ -263,6 +263,8 @@
263
 
264
  /**
265
  * Get API request URL signed via query string.
 
 
266
  *
267
  * @param string $pPath
268
  *
@@ -270,20 +272,19 @@
270
  *
271
  * @return string
272
  */
273
- function GetSignedUrl( $pPath ) {
274
- $resource = explode( '?', $this->CanonizePath( $pPath ) );
275
- $pResourceUrl = $resource[0];
276
-
277
- $auth = $this->GenerateAuthorizationParams( $pResourceUrl );
278
-
279
- return Freemius_Api_WordPress::GetUrl(
280
- $pResourceUrl . '?' .
281
- ( 1 < count( $resource ) && ! empty( $resource[1] ) ? $resource[1] . '&' : '' ) .
282
- http_build_query( array(
283
- 'auth_date' => $auth['date'],
284
- 'authorization' => $auth['authorization']
285
- ) ), $this->_isSandbox );
286
- }
287
 
288
  /**
289
  * @author Vova Feldman
@@ -420,13 +421,19 @@
420
  $matches = array();
421
  $regex = '/Failed to connect to ([^:].*): Network is unreachable/';
422
  if ( preg_match( $regex, $result->get_error_message( 'http_request_failed' ), $matches ) ) {
423
- if ( strlen( @inet_pton( $matches[1] ) ) === 16 ) {
 
 
 
 
 
424
  // error_log('Invalid IPv6 configuration on server, Please disable or get native IPv6 on your server.');
425
- // Hook to an action triggered just before cURL is executed to resolve the IP version to v4.
426
- add_action( 'http_api_curl', 'Freemius_Api_WordPress::CurlResolveToIPv4', 10, 1 );
427
 
428
- // Re-run request.
429
- $result = self::ExecuteRequest( $request_url, $pWPRemoteArgs );
 
430
  }
431
  }
432
  }
263
 
264
  /**
265
  * Get API request URL signed via query string.
266
+ *
267
+ * @since 1.2.3 Stopped using http_build_query(). Instead, use urlencode(). In some environments the encoding of http_build_query() can generate a URL that once used with a redirect, the `&` querystring separator is escaped to `&amp;` which breaks the URL (Added by @svovaf).
268
  *
269
  * @param string $pPath
270
  *
272
  *
273
  * @return string
274
  */
275
+ function GetSignedUrl( $pPath ) {
276
+ $resource = explode( '?', $this->CanonizePath( $pPath ) );
277
+ $pResourceUrl = $resource[0];
278
+
279
+ $auth = $this->GenerateAuthorizationParams( $pResourceUrl );
280
+
281
+ return Freemius_Api_WordPress::GetUrl(
282
+ $pResourceUrl . '?' .
283
+ ( 1 < count( $resource ) && ! empty( $resource[1] ) ? $resource[1] . '&' : '' ) .
284
+ 'authorization=' . urlencode( $auth['authorization'] ) .
285
+ '&auth_date=' . urlencode( $auth['date'] )
286
+ , $this->_isSandbox );
287
+ }
 
288
 
289
  /**
290
  * @author Vova Feldman
421
  $matches = array();
422
  $regex = '/Failed to connect to ([^:].*): Network is unreachable/';
423
  if ( preg_match( $regex, $result->get_error_message( 'http_request_failed' ), $matches ) ) {
424
+ /**
425
+ * Validate IP before calling `inet_pton()` to avoid PHP un-catchable warning.
426
+ * @author Vova Feldman (@svovaf)
427
+ */
428
+ if ( filter_var( $matches[1], FILTER_VALIDATE_IP ) ) {
429
+ if ( strlen( inet_pton( $matches[1] ) ) === 16 ) {
430
  // error_log('Invalid IPv6 configuration on server, Please disable or get native IPv6 on your server.');
431
+ // Hook to an action triggered just before cURL is executed to resolve the IP version to v4.
432
+ add_action( 'http_api_curl', 'Freemius_Api_WordPress::CurlResolveToIPv4', 10, 1 );
433
 
434
+ // Re-run request.
435
+ $result = self::ExecuteRequest( $request_url, $pWPRemoteArgs );
436
+ }
437
  }
438
  }
439
  }
includes/vendor/freemius/wordpress-sdk/languages/freemius-en.mo CHANGED
Binary file
includes/vendor/freemius/wordpress-sdk/languages/freemius-en.po CHANGED
@@ -14,1811 +14,1963 @@ msgstr ""
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
  "MIME-Version: 1.0\n"
16
  "X-Poedit-Basepath: ..\n"
17
- "X-Poedit-KeywordsList: _fs_text;_fs_echo;_fs_esc_attr;_fs_esc_attr_echo;_fs_esc_html;_fs_esc_html_echo;_fs_x:1,2c;_fs_ex:1,2c;_fs_esc_attr_x:1,2c;_fs_esc_html_x:1,2c;_fs_n:1,2;_fs_n_noop:1,2;_fs_nx:1,2,4c;_fs_nx_noop:1,2,3c\n"
18
  "X-Poedit-SearchPath-0: .\n"
19
  "X-Poedit-SearchPathExcluded-0: *.js\n"
20
  "X-Poedit-SourceCharset: UTF-8\n"
21
 
22
- #: includes/i18n.php:37
23
- msgid "Account"
24
- msgstr "Account"
25
-
26
- #: includes/i18n.php:38
27
- msgid "Add-On"
28
- msgstr "Add-On"
29
 
30
- #: includes/i18n.php:39
31
- msgid "Contact Us"
32
- msgstr "Contact Us"
33
 
34
- #: includes/i18n.php:40
35
- msgid "Contact Support"
36
- msgstr "Contact Support"
37
 
38
- #: includes/i18n.php:41
39
- msgid "Change Ownership"
40
- msgstr "Change Ownership"
41
 
42
- #: includes/i18n.php:42
43
- msgid "Support"
44
- msgstr "Support"
45
 
46
- #: includes/i18n.php:43
47
- msgid "Support Forum"
48
- msgstr "Support Forum"
49
 
50
- #: includes/i18n.php:44
51
- msgid "Add-Ons"
52
- msgstr "Add-Ons"
53
 
54
- #: includes/i18n.php:45
55
- msgctxt "verb"
56
- msgid "Upgrade"
57
- msgstr "Upgrade"
58
 
59
- #: includes/i18n.php:46
60
- msgid "Awesome"
61
- msgstr "Awesome"
62
 
63
- #: includes/i18n.php:47
64
- msgctxt "noun"
65
- msgid "Pricing"
66
- msgstr "Pricing"
67
 
68
- #: includes/i18n.php:48
69
- msgctxt "noun"
70
- msgid "Price"
71
- msgstr "Price"
72
 
73
- #: includes/i18n.php:49
74
- msgid "Unlimited Updates"
75
- msgstr "Unlimited Updates"
76
 
77
- #: includes/i18n.php:50
78
- msgctxt "verb"
79
- msgid "Downgrade"
80
- msgstr "Downgrade"
81
 
82
- #: includes/i18n.php:51
83
- msgctxt "verb"
84
- msgid "Cancel Subscription"
85
- msgstr "Cancel Subscription"
86
 
87
- #: includes/i18n.php:52
88
- msgid "Cancel Trial"
89
- msgstr "Cancel Trial"
90
 
91
- #: includes/i18n.php:53
92
- msgid "Free Trial"
93
- msgstr "Free Trial"
94
 
95
- #: includes/i18n.php:54
96
- msgid "Start my free %s"
97
- msgstr "Start my free %s"
98
 
99
- #: includes/i18n.php:55
100
- msgid "No commitment for %s - cancel anytime"
101
- msgstr "No commitment for %s - cancel anytime"
102
 
103
- #: includes/i18n.php:56
104
- msgid "After your free %s, pay as little as %s"
105
- msgstr "After your free %s, pay as little as %s"
106
 
107
- #: includes/i18n.php:57
108
- msgid "Details"
109
- msgstr "Details"
110
 
111
- #: includes/i18n.php:58
112
- msgid "Account Details"
113
- msgstr "Account Details"
114
 
115
- #: includes/i18n.php:59
116
- msgctxt "verb"
117
- msgid "Delete"
118
- msgstr "Delete"
119
 
120
- #: includes/i18n.php:60
121
- msgctxt "verb"
122
- msgid "Show"
123
- msgstr "Show"
124
 
125
- #: includes/i18n.php:61
126
- msgctxt "verb"
127
- msgid "Hide"
128
- msgstr "Hide"
129
 
130
- #: includes/i18n.php:62
131
- msgctxt "verb"
132
- msgid "Edit"
133
- msgstr "Edit"
134
 
135
- #: includes/i18n.php:63
136
- msgctxt "verb"
137
- msgid "Update"
138
- msgstr "Update"
139
 
140
- #: includes/i18n.php:64
141
- msgid "Date"
142
- msgstr "Date"
143
 
144
- #: includes/i18n.php:65
145
- msgid "Amount"
146
- msgstr "Amount"
147
 
148
- #: includes/i18n.php:66
149
- msgid "Invoice"
150
- msgstr "Invoice"
151
 
152
- #: includes/i18n.php:67
153
- msgid "Billing"
154
- msgstr "Billing"
155
 
156
- #: includes/i18n.php:68
157
- msgid "Payments"
158
- msgstr "Payments"
159
 
160
- #: includes/i18n.php:69
161
- msgid "Delete Account"
162
- msgstr "Delete Account"
 
163
 
164
- #: includes/i18n.php:70
165
- msgctxt "as close a window"
166
- msgid "Dismiss"
167
- msgstr "Dismiss"
168
 
169
- #: includes/i18n.php:71
170
- msgctxt "as product pricing plan"
171
- msgid "Plan"
172
- msgstr "Plan"
173
 
174
- #: includes/i18n.php:72
175
- msgid "Change Plan"
176
- msgstr "Change Plan"
 
177
 
178
- #: includes/i18n.php:73
179
- msgctxt "as download professional version"
180
- msgid "Download %s Version"
181
- msgstr "Download %s Version"
182
 
183
- #: includes/i18n.php:74
184
- msgctxt "as download professional version now"
185
- msgid "Download %s version now"
186
- msgstr "Download %s version now"
187
 
188
- #: includes/i18n.php:75
189
- msgctxt "as download latest version"
190
- msgid "Download Latest"
191
- msgstr "Download Latest"
192
 
193
- #: includes/i18n.php:76
194
- msgctxt "E.g. you have a professional license."
195
  msgid "You have a %s license."
196
  msgstr "You have a %s license."
197
 
198
- #: includes/i18n.php:77
199
- msgid "New"
200
- msgstr "New"
201
-
202
- #: includes/i18n.php:78
203
- msgid "Free"
204
- msgstr "Free"
205
 
206
- #: includes/i18n.php:79
207
- msgctxt "as trial plan"
208
- msgid "Trial"
209
- msgstr "Trial"
210
 
211
- #: includes/i18n.php:80
212
- msgctxt "as starting a trial plan"
213
- msgid "Start Trial"
214
- msgstr "Start Trial"
215
 
216
- #: includes/i18n.php:81
217
- msgctxt "verb"
218
- msgid "Purchase"
219
- msgstr "Purchase"
220
 
221
- #: includes/i18n.php:82
222
  msgid "Purchase License"
223
  msgstr "Purchase License"
224
 
225
- #: includes/i18n.php:83
226
- msgctxt "verb"
227
- msgid "Buy"
228
- msgstr "Buy"
229
-
230
- #: includes/i18n.php:84
231
- msgid "Buy License"
232
- msgstr "Buy License"
233
-
234
- #: includes/i18n.php:85
235
- msgid "Single Site License"
236
- msgstr "Single Site License"
237
-
238
- #: includes/i18n.php:86
239
- msgid "Unlimited Licenses"
240
- msgstr "Unlimited Licenses"
241
-
242
- #: includes/i18n.php:87
243
- msgid "Up to %s Sites"
244
- msgstr "Up to %s Sites"
245
-
246
- #: includes/i18n.php:88
247
- msgid "%sRenew your license now%s to access version %s features and support."
248
- msgstr "%sRenew your license now%s to access version %s features and support."
249
 
250
- #: includes/i18n.php:89
251
- msgid "Enter the email address you've used for the upgrade below and we will resend you the license key."
252
- msgstr "Enter the email address you've used for the upgrade below and we will resend you the license key."
253
 
254
- #: includes/i18n.php:90
255
- msgctxt "e.g. Professional Plan"
256
- msgid "%s Plan"
257
- msgstr "%s Plan"
258
 
259
- #: includes/i18n.php:91
260
  msgid "You are just one step away - %s"
261
  msgstr "You are just one step away - %s"
262
 
263
- #: includes/i18n.php:92
264
- msgctxt "%s - plugin name. As complete \"Jetpack\" activation now"
265
  msgid "Complete \"%s\" Activation Now"
266
  msgstr "Complete \"%s\" Activation Now"
267
 
268
- #: includes/i18n.php:94
269
  msgid "We made a few tweaks to the %s, %s"
270
  msgstr "We made a few tweaks to the %s, %s"
271
 
272
- #: includes/i18n.php:95
273
- msgid "Opt-in to make \"%s\" Better!"
274
- msgstr "Opt-in to make \"%s\" Better!"
275
 
276
- #: includes/i18n.php:96
277
- msgid "Error"
278
- msgstr "Error"
279
 
280
- #: includes/i18n.php:97
281
- msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
282
- msgstr "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
283
 
284
- #: includes/i18n.php:100
285
- msgctxt "as expiration date"
286
- msgid "Expiration"
287
- msgstr "Expiration"
288
 
289
- #: includes/i18n.php:101
290
- msgctxt "as software license"
291
- msgid "License"
292
- msgstr "License"
293
 
294
- #: includes/i18n.php:102
295
- msgid "not verified"
296
- msgstr "not verified"
297
 
298
- #: includes/i18n.php:103
299
- msgid "Verify Email"
300
- msgstr "Verify Email"
301
 
302
- #: includes/i18n.php:104
303
- msgctxt "e.g. expires in 2 months"
304
- msgid "Expires in %s"
305
- msgstr "Expires in %s"
306
 
307
- #: includes/i18n.php:105
308
- msgctxt "e.g. auto renews in 2 months"
309
- msgid "Auto renews in %s"
310
- msgstr "Auto renews in %s"
311
 
312
- #: includes/i18n.php:106
313
- msgid "No expiration"
314
- msgstr "No expiration"
315
 
316
- #: includes/i18n.php:107
317
- msgid "Expired"
318
- msgstr "Expired"
319
 
320
- #: includes/i18n.php:108
321
- msgid "Cancelled"
322
- msgstr "Cancelled"
323
 
324
- #: includes/i18n.php:109
325
- msgctxt "e.g. In 2 hours"
326
- msgid "In %s"
327
- msgstr "In %s"
328
 
329
- #: includes/i18n.php:110
330
- msgctxt "e.g. 2 min ago"
331
- msgid "%s ago"
332
- msgstr "%s ago"
333
 
334
- #: includes/i18n.php:112
335
- msgid "%s or higher"
336
- msgstr "%s or higher"
337
 
338
- #: includes/i18n.php:113
339
- msgctxt "as plugin version"
340
- msgid "Version"
341
- msgstr "Version"
342
 
343
- #: includes/i18n.php:114
344
- msgid "Name"
345
- msgstr "Name"
346
 
347
- #: includes/i18n.php:115
348
- msgid "Email"
349
- msgstr "Email"
350
 
351
- #: includes/i18n.php:116
352
- msgid "Email address"
353
- msgstr "Email address"
354
 
355
- #: includes/i18n.php:117
356
- msgid "Verified"
357
- msgstr "Verified"
358
 
359
- #: includes/i18n.php:118
360
- msgid "Module"
361
- msgstr "Module"
 
362
 
363
- #: includes/i18n.php:119
364
- msgid "Module Type"
365
- msgstr "Module Type"
366
 
367
- #: includes/i18n.php:120
368
- msgid "Plugin"
369
- msgstr "Plugin"
370
 
371
- #: includes/i18n.php:121
372
- msgid "Plugins"
373
- msgstr "Plugins"
 
374
 
375
- #: includes/i18n.php:122
376
- msgid "Theme"
377
- msgstr "Theme"
378
 
379
- #: includes/i18n.php:123
380
- msgid "Themes"
381
- msgstr "Themes"
382
 
383
- #: includes/i18n.php:124
384
- msgctxt "as file/folder path"
385
- msgid "Path"
386
- msgstr "Path"
387
 
388
- #: includes/i18n.php:125
389
- msgid "Title"
390
- msgstr "Title"
 
391
 
392
- #: includes/i18n.php:126
393
- msgid "Free version"
394
- msgstr "Free version"
395
 
396
- #: includes/i18n.php:127
397
- msgid "Premium version"
398
- msgstr "Premium version"
399
 
400
- #: includes/i18n.php:128
401
- msgctxt "as WP plugin slug"
402
- msgid "Slug"
403
- msgstr "Slug"
404
 
405
- #: includes/i18n.php:129
406
- msgid "ID"
407
- msgstr "ID"
408
 
409
- #: includes/i18n.php:130
410
- msgid "Users"
411
- msgstr "Users"
 
412
 
413
- #: includes/i18n.php:131
414
- msgid "%s Installs"
415
- msgstr "%s Installs"
416
 
417
- #: includes/i18n.php:132
418
- msgctxt "like websites"
419
- msgid "Sites"
420
- msgstr "Sites"
421
 
422
- #: includes/i18n.php:133
423
- msgid "User ID"
424
- msgstr "User ID"
425
 
426
- #: includes/i18n.php:134
427
- msgid "Site ID"
428
- msgstr "Site ID"
429
 
430
- #: includes/i18n.php:135
431
- msgid "Public Key"
432
- msgstr "Public Key"
433
 
434
- #: includes/i18n.php:136
435
- msgid "Secret Key"
436
- msgstr "Secret Key"
437
 
438
- #: includes/i18n.php:137
439
- msgctxt "as secret encryption key missing"
440
- msgid "No Secret"
441
- msgstr "No Secret"
442
 
443
- #: includes/i18n.php:138
444
- msgid "No ID"
445
- msgstr "No ID"
446
 
447
- #: includes/i18n.php:139
448
- msgctxt "as synchronize license"
449
- msgid "Sync License"
450
- msgstr "Sync License"
451
 
452
- #: includes/i18n.php:140
453
- msgctxt "as synchronize"
454
- msgid "Sync"
455
- msgstr "Sync"
456
 
457
- #: includes/i18n.php:141
458
- msgid "Activate License"
459
- msgstr "Activate License"
460
 
461
- #: includes/i18n.php:142
462
- msgid "Activate Free Version"
463
- msgstr "Activate Free Version"
464
 
465
- #: includes/i18n.php:143
466
- msgid "Please enter the license key that you received in the email right after the purchase:"
467
- msgstr "Please enter the license key that you received in the email right after the purchase:"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
468
 
469
- #: includes/i18n.php:144
470
- msgid "Activating license..."
471
- msgstr "Activating license..."
472
 
473
- #: includes/i18n.php:145
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
474
  msgid "Change License"
475
  msgstr "Change License"
476
 
477
- #: includes/i18n.php:146
478
- msgid "Update License"
479
- msgstr "Update License"
480
 
481
- #: includes/i18n.php:147
482
- msgid "Deactivate License"
483
- msgstr "Deactivate License"
484
 
485
- #: includes/i18n.php:148
486
- msgid "Activate"
487
- msgstr "Activate"
488
 
489
- #: includes/i18n.php:149
490
- msgid "Deactivate"
491
- msgstr "Deactivate"
492
 
493
- #: includes/i18n.php:150
494
- msgid "Skip & Deactivate"
495
- msgstr "Skip & Deactivate"
496
 
497
- #: includes/i18n.php:151
498
- msgid "Skip & %s"
499
- msgstr "Skip & %s"
500
 
501
- #: includes/i18n.php:152
502
- msgid "No - just deactivate"
503
- msgstr "No - just deactivate"
504
 
505
- #: includes/i18n.php:153
506
- msgid "Yes - do your thing"
507
- msgstr "Yes - do your thing"
508
 
509
- #: includes/i18n.php:154
510
- msgctxt "active mode"
511
- msgid "Active"
512
- msgstr "Active"
513
 
514
- #: includes/i18n.php:155
515
- msgctxt "is active mode?"
516
- msgid "Is Active"
517
- msgstr "Is Active"
518
 
519
- #: includes/i18n.php:156
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
520
  msgid "Install Now"
521
  msgstr "Install Now"
522
 
523
- #: includes/i18n.php:157
524
  msgid "Install Update Now"
525
  msgstr "Install Update Now"
526
 
527
- #: includes/i18n.php:158
528
- msgid "More information about %s"
529
- msgstr "More information about %s"
530
 
531
- #: includes/i18n.php:159
532
- msgid "Localhost"
533
- msgstr "Localhost"
534
 
535
- #: includes/i18n.php:160
536
- msgctxt "as activate Professional plan"
537
- msgid "Activate %s Plan"
538
- msgstr "Activate %s Plan"
539
 
540
- #: includes/i18n.php:161
541
- msgctxt "as 5 licenses left"
542
- msgid "%s left"
543
- msgstr "%s left"
544
 
545
- #: includes/i18n.php:162
546
- msgid "Last license"
547
- msgstr "Last license"
 
548
 
549
- #: includes/i18n.php:163
550
- msgid "What is your %s?"
551
- msgstr "What is your %s?"
552
 
553
- #: includes/i18n.php:164
554
- msgid "Activate this add-on"
555
- msgstr "Activate this add-on"
 
556
 
557
- #: includes/i18n.php:165
558
- msgid "Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?"
559
- msgstr "Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?"
 
560
 
561
- #: includes/i18n.php:166
562
- 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?"
563
- 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?"
 
564
 
565
- #: includes/i18n.php:167
566
- 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?"
567
- 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?"
 
568
 
569
- #: includes/i18n.php:168
570
- msgid "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
571
- msgstr "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
572
 
573
- #: includes/i18n.php:169
574
- msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
575
- msgstr "Cancelling the trial will immediately block access to all premium features. Are you sure?"
 
576
 
577
- #: includes/i18n.php:170
578
- msgid "You can still enjoy all %s features but you will not have access to %s updates and support."
579
- msgstr "You can still enjoy all %s features but you will not have access to %s updates and support."
 
580
 
581
- #: includes/i18n.php:171
582
- msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
583
- msgstr "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
 
584
 
585
- #: includes/i18n.php:172
586
- msgid "Are you sure you want to proceed?"
587
- msgstr "Are you sure you want to proceed?"
 
588
 
589
- #: includes/i18n.php:175
590
- msgid "Add Ons for %s"
591
- msgstr "Add Ons for %s"
592
 
593
- #: includes/i18n.php:176
594
- 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."
595
- 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."
 
596
 
597
- #: includes/i18n.php:178
598
- msgid "Anonymous feedback"
599
- msgstr "Anonymous feedback"
 
600
 
601
- #: includes/i18n.php:179
602
- msgid "Quick feedback"
603
- msgstr "Quick feedback"
 
604
 
605
- #: includes/i18n.php:180
606
- msgid "If you have a moment, please let us know why you are %s"
607
- msgstr "If you have a moment, please let us know why you are %s"
608
 
609
- #: includes/i18n.php:181
610
- msgid "deactivating"
611
- msgstr "deactivating"
612
 
613
- #: includes/i18n.php:182
614
- msgid "Deactivation"
615
- msgstr "Deactivation"
616
 
617
- #: includes/i18n.php:183
618
- msgid "Theme Switch"
619
- msgstr "Theme Switch"
 
620
 
621
- #: includes/i18n.php:184
622
- msgid "switching"
623
- msgstr "switching"
 
624
 
625
- #: includes/i18n.php:185
626
- msgid "Switch"
627
- msgstr "Switch"
 
628
 
629
- #: includes/i18n.php:186
630
- msgid "Activate %s"
631
- msgstr "Activate %s"
 
632
 
633
- #: includes/i18n.php:187
634
- msgid "Yes - %s"
635
- msgstr "Yes - %s"
636
 
637
- #: includes/i18n.php:188
638
- msgid "Submit & %s"
639
- msgstr "Submit & %s"
640
 
641
- #: includes/i18n.php:189
642
- msgid "Cancel"
643
- msgstr "Cancel"
644
 
645
- #: includes/i18n.php:190
646
- msgid "I no longer need the %s"
647
- msgstr "I no longer need the %s"
 
648
 
649
- #: includes/i18n.php:191
650
- msgid "I found a better %s"
651
- msgstr "I found a better %s"
 
652
 
653
- #: includes/i18n.php:192
654
- msgid "I only needed the %s for a short period"
655
- msgstr "I only needed the %s for a short period"
656
 
657
- #: includes/i18n.php:193
658
- msgid "The %s broke my site"
659
- msgstr "The %s broke my site"
 
660
 
661
- #: includes/i18n.php:194
662
- msgid "The %s suddenly stopped working"
663
- msgstr "The %s suddenly stopped working"
664
 
665
- #: includes/i18n.php:195
666
- msgid "I can't pay for it anymore"
667
- msgstr "I can't pay for it anymore"
668
 
669
- #: includes/i18n.php:196
670
- msgid "It's a temporary deactivation. I'm just debugging an issue."
671
- msgstr "It's a temporary deactivation. I'm just debugging an issue."
672
 
673
- #: includes/i18n.php:197
674
- msgid "It's a temporary %s. I'm just debugging an issue."
675
- msgstr "It's a temporary %s. I'm just debugging an issue."
676
 
677
- #: includes/i18n.php:198
678
- msgctxt "the text of the \"other\" reason for deactivating the module that is shown in the modal box."
679
- msgid "Other"
680
- msgstr "Other"
681
 
682
- #: includes/i18n.php:200
683
- msgid "Kindly tell us the reason so we can improve."
684
- msgstr "Kindly tell us the reason so we can improve."
685
 
686
- #: includes/i18n.php:201
687
- msgid "What's the %s's name?"
688
- msgstr "What's the %s's name?"
689
 
690
- #: includes/i18n.php:202
691
- msgid "What price would you feel comfortable paying?"
692
- msgstr "What price would you feel comfortable paying?"
693
 
694
- #: includes/i18n.php:203
695
- msgid "I couldn't understand how to make it work"
696
- msgstr "I couldn't understand how to make it work"
697
 
698
- #: includes/i18n.php:204
699
- msgid "The %s is great, but I need specific feature that you don't support"
700
- msgstr "The %s is great, but I need specific feature that you don't support"
701
 
702
- #: includes/i18n.php:205
703
- msgid "The %s is not working"
704
- msgstr "The %s is not working"
705
 
706
- #: includes/i18n.php:206
707
- msgid "It's not what I was looking for"
708
- msgstr "It's not what I was looking for"
709
 
710
- #: includes/i18n.php:207
711
- msgid "The %s didn't work as expected"
712
- msgstr "The %s didn't work as expected"
713
 
714
- #: includes/i18n.php:208
715
- msgid "What feature?"
716
- msgstr "What feature?"
717
 
718
- #: includes/i18n.php:209
719
- msgid "Kindly share what didn't work so we can fix it for future users..."
720
- msgstr "Kindly share what didn't work so we can fix it for future users..."
721
 
722
- #: includes/i18n.php:210
723
- msgid "What you've been looking for?"
724
- msgstr "What you've been looking for?"
725
 
726
- #: includes/i18n.php:211
727
- msgid "What did you expect?"
728
- msgstr "What did you expect?"
729
 
730
- #: includes/i18n.php:212
731
- msgid "The %s didn't work"
732
- msgstr "The %s didn't work"
733
 
734
- #: includes/i18n.php:213
735
- msgid "I don't like to share my information with you"
736
- msgstr "I don't like to share my information with you"
737
 
738
- #: includes/i18n.php:214
739
- msgid "You might have missed it, but you don't have to share any data and can just %s the opt-in."
740
- msgstr "You might have missed it, but you don't have to share any data and can just %s the opt-in."
741
 
742
- #: includes/i18n.php:218
743
- msgctxt "greeting"
744
- msgid "Hey %s,"
745
- msgstr "Hey %s,"
746
 
747
- #: includes/i18n.php:219
748
- msgctxt "a greeting. E.g. Thanks John!"
749
- msgid "Thanks %s!"
750
- msgstr "Thanks %s!"
751
 
752
- #: includes/i18n.php:220
753
- msgid "Never miss an important update - opt-in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
754
- msgstr "Never miss an important update - opt-in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
755
 
756
- #: includes/i18n.php:221
757
- msgid "Please help us improve %1$s! If you opt-in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just fine."
758
- msgstr "Please help us improve %1$s! If you opt-in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just fine."
759
 
760
- #: includes/i18n.php:222
761
- 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."
762
- 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."
763
 
764
- #: includes/i18n.php:223
765
- msgid "complete the install"
766
- msgstr "complete the install"
767
 
768
- #: includes/i18n.php:224
769
- msgid "start the trial"
770
- msgstr "start the trial"
 
771
 
772
- #: includes/i18n.php:225
773
- msgid "Thanks for purchasing %s! To get started, please enter your license key:"
774
- msgstr "Thanks for purchasing %s! To get started, please enter your license key:"
 
775
 
776
- #: includes/i18n.php:226
777
- 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."
778
- 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."
 
779
 
780
- #: includes/i18n.php:227
781
- msgid "What permissions are being granted?"
782
- msgstr "What permissions are being granted?"
 
783
 
784
- #: includes/i18n.php:228
785
- msgid "Your Profile Overview"
786
- msgstr "Your Profile Overview"
787
 
788
- #: includes/i18n.php:229
789
- msgid "Name and email address"
790
- msgstr "Name and email address"
791
 
792
- #: includes/i18n.php:230
793
- msgid "Your Site Overview"
794
- msgstr "Your Site Overview"
 
795
 
796
- #: includes/i18n.php:231
797
- msgid "Site URL, WP version, PHP info, plugins & themes"
798
- msgstr "Site URL, WP version, PHP info, plugins & themes"
 
799
 
800
- #: includes/i18n.php:232
801
- msgid "Current %s Events"
802
- msgstr "Current %s Events"
803
 
804
- #: includes/i18n.php:233
805
- msgid "Activation, deactivation and uninstall"
806
- msgstr "Activation, deactivation and uninstall"
807
 
808
- #: includes/i18n.php:234
809
- msgid "Plugins & Themes"
810
- msgstr "Plugins & Themes"
 
811
 
812
- #: includes/i18n.php:235
813
- msgid "Titles, versions and state."
814
- msgstr "Titles, versions and state."
815
 
816
- #: includes/i18n.php:236
817
- msgid "Admin Notices"
818
- msgstr "Admin Notices"
819
 
820
- #: includes/i18n.php:237
821
- msgid "Newsletter"
822
- msgstr "Newsletter"
823
 
824
- #: includes/i18n.php:238
825
- msgid "Updates, announcements, marketing, no spam"
826
- msgstr "Updates, announcements, marketing, no spam"
827
 
828
- #: includes/i18n.php:239
829
- msgid "Privacy Policy"
830
- msgstr "Privacy Policy"
831
 
832
- #: includes/i18n.php:240
833
- msgid "Terms of Service"
834
- msgstr "Terms of Service"
835
 
836
- #: includes/i18n.php:241
837
- msgctxt "as activating plugin"
838
- msgid "Activating"
839
- msgstr "Activating"
840
 
841
- #: includes/i18n.php:242
842
- msgctxt "as in the process of sending an email"
843
- msgid "Sending email"
844
- msgstr "Sending email"
845
 
846
- #: includes/i18n.php:243
847
- msgctxt "button label"
848
- msgid "Allow & Continue"
849
- msgstr "Allow & Continue"
850
 
851
- #: includes/i18n.php:244
852
- msgctxt "button label"
853
- msgid "Agree & Activate License"
854
- msgstr "Agree & Activate License"
855
 
856
- #: includes/i18n.php:245
857
- msgctxt "verb"
858
- msgid "Skip"
859
- msgstr "Skip"
860
 
861
- #: includes/i18n.php:246
862
- msgid "Click here to use the plugin anonymously"
863
- msgstr "Click here to use the plugin anonymously"
864
 
865
- #: includes/i18n.php:247
866
- msgid "Re-send activation email"
867
- msgstr "Re-send activation email"
868
 
869
- #: includes/i18n.php:248
870
- msgid "License key"
871
- msgstr "License key"
872
 
873
- #: includes/i18n.php:249
874
- msgid "Send License Key"
875
- msgstr "Send License Key"
876
 
877
- #: includes/i18n.php:250
878
- msgid "Sending license key"
879
- msgstr "Sending license key"
880
 
881
- #: includes/i18n.php:251
882
- msgid "Have a license key?"
883
- msgstr "Have a license key?"
884
 
885
- #: includes/i18n.php:252
886
- msgid "Don't have a license key?"
887
- msgstr "Don't have a license key?"
 
888
 
889
- #: includes/i18n.php:253
890
- msgid "Can't find your license key?"
891
- msgstr "Can't find your license key?"
892
 
893
- #: includes/i18n.php:254
894
- msgid "We couldn't find your email address in the system, are you sure it's the right address?"
895
- msgstr "We couldn't find your email address in the system, are you sure it's the right address?"
896
 
897
- #: includes/i18n.php:255
898
- msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
899
- msgstr "We can't see any active licenses associated with that email address, are you sure it's the right address?"
900
 
901
- #: includes/i18n.php:256
902
- msgid "Opt In"
903
- msgstr "Opt In"
904
 
905
- #: includes/i18n.php:257
906
- msgid "Opt Out"
907
- msgstr "Opt Out"
 
908
 
909
- #: includes/i18n.php:258
910
- msgid "On second thought - I want to continue helping"
911
- msgstr "On second thought - I want to continue helping"
912
 
913
- #: includes/i18n.php:259
914
- msgid "Opting out..."
915
- msgstr "Opting out..."
916
 
917
- #: includes/i18n.php:260
918
- msgid "Opting in..."
919
- msgstr "Opting in..."
920
 
921
- #: includes/i18n.php:261
922
- msgid "We appreciate your help in making the %s better by letting us track some usage data."
923
- msgstr "We appreciate your help in making the %s better by letting us track some usage data."
924
 
925
- #: includes/i18n.php:262
926
- 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."
927
- 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."
928
 
929
- #: includes/i18n.php:263
930
- msgid "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
931
- msgstr "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
 
932
 
933
- #: includes/i18n.php:267
934
- msgid "Screenshots"
935
- msgstr "Screenshots"
936
 
937
- #: includes/i18n.php:268
938
- msgid "Click to view full-size screenshot %d"
939
- msgstr "Click to view full-size screenshot %d"
 
940
 
941
- #: includes/i18n.php:272
942
- msgid "Freemius Debug"
943
- msgstr "Freemius Debug"
 
944
 
945
- #: includes/i18n.php:273
946
- msgctxt "as turned on"
947
- msgid "On"
948
- msgstr "On"
949
 
950
- #: includes/i18n.php:274
951
- msgctxt "as turned off"
952
- msgid "Off"
953
- msgstr "Off"
954
 
955
- #: includes/i18n.php:275
956
- msgctxt "as code debugging"
957
- msgid "Debugging"
958
- msgstr "Debugging"
959
 
960
- #: includes/i18n.php:276
961
- msgid "Freemius State"
962
- msgstr "Freemius State"
963
 
964
- #: includes/i18n.php:277
965
- msgctxt "as connection was successful"
966
- msgid "Connected"
967
- msgstr "Connected"
968
 
969
- #: includes/i18n.php:278
970
- msgctxt "as connection blocked"
971
- msgid "Blocked"
972
- msgstr "Blocked"
973
 
974
- #: includes/i18n.php:279
975
- msgctxt "as application program interface"
976
- msgid "API"
977
- msgstr "API"
978
 
979
- #: includes/i18n.php:280
980
- msgctxt "as software development kit versions"
981
- msgid "SDK"
982
- msgstr "SDK"
983
 
984
- #: includes/i18n.php:281
985
- msgctxt "as software development kit versions"
986
- msgid "SDK Versions"
987
- msgstr "SDK Versions"
988
 
989
- #: includes/i18n.php:282
990
- msgctxt "as plugin folder path"
991
- msgid "Plugin Path"
992
- msgstr "Plugin Path"
993
 
994
- #: includes/i18n.php:283
995
- msgctxt "as sdk path"
996
- msgid "SDK Path"
997
- msgstr "SDK Path"
998
 
999
- #: includes/i18n.php:284
1000
- msgid "Add Ons of Plugin %s"
1001
- msgstr "Add Ons of Plugin %s"
1002
 
1003
- #: includes/i18n.php:285
1004
- msgid "Are you sure you want to delete all Freemius data?"
1005
- msgstr "Are you sure you want to delete all Freemius data?"
1006
 
1007
- #: includes/i18n.php:286
1008
- msgid "Actions"
1009
- msgstr "Actions"
1010
 
1011
- #: includes/i18n.php:287
1012
- msgid "Delete All Accounts"
1013
- msgstr "Delete All Accounts"
1014
 
1015
- #: includes/i18n.php:288
1016
- msgid "Start Fresh"
1017
- msgstr "Start Fresh"
1018
 
1019
- #: includes/i18n.php:289
1020
- msgid "Clear API Cache"
1021
- msgstr "Clear API Cache"
1022
 
1023
- #: includes/i18n.php:290
1024
- msgid "Sync Data From Server"
1025
- msgstr "Sync Data From Server"
1026
 
1027
- #: includes/i18n.php:291
1028
- msgid "Scheduled Crons"
1029
- msgstr "Scheduled Crons"
1030
 
1031
- #: includes/i18n.php:292
1032
- msgid "Cron Type"
1033
- msgstr "Cron Type"
1034
 
1035
- #: includes/i18n.php:293
1036
- msgid "Plugins & Themes Sync"
1037
- msgstr "Plugins & Themes Sync"
1038
 
1039
- #: includes/i18n.php:294
1040
- msgid "%s Licenses"
1041
- msgstr "%s Licenses"
1042
 
1043
- #: includes/i18n.php:295
1044
- msgid "Debug Log"
1045
- msgstr "Debug Log"
 
1046
 
1047
- #: includes/i18n.php:296
1048
- msgid "All"
1049
- msgstr "All"
1050
 
1051
- #: includes/i18n.php:297
1052
- msgid "File"
1053
- msgstr "File"
1054
 
1055
- #: includes/i18n.php:298
1056
- msgid "Function"
1057
- msgstr "Function"
1058
 
1059
- #: includes/i18n.php:299
1060
- msgid "Process ID"
1061
- msgstr "Process ID"
1062
 
1063
- #: includes/i18n.php:300
1064
- msgid "Logger"
1065
- msgstr "Logger"
1066
 
1067
- #: includes/i18n.php:301
1068
- msgid "Message"
1069
- msgstr "Message"
 
1070
 
1071
- #: includes/i18n.php:302
1072
- msgid "Download"
1073
- msgstr "Download"
1074
 
1075
- #: includes/i18n.php:303
1076
- msgid "Filter"
1077
- msgstr "Filter"
1078
 
1079
- #: includes/i18n.php:304
1080
- msgid "Type"
1081
- msgstr "Type"
1082
 
1083
- #: includes/i18n.php:305
1084
- msgid "All Types"
1085
- msgstr "All Types"
1086
 
1087
- #: includes/i18n.php:306
1088
- msgid "All Requests"
1089
- msgstr "All Requests"
1090
 
1091
- #: includes/i18n.php:310
1092
- msgctxt "as congratulations"
1093
- msgid "Congrats"
1094
- msgstr "Congrats"
1095
 
1096
- #: includes/i18n.php:311
1097
- msgctxt "exclamation"
1098
- msgid "Oops"
1099
- msgstr "Oops"
1100
 
1101
- #: includes/i18n.php:312
1102
- msgctxt "interjection expressing joy or exuberance"
1103
- msgid "Yee-haw"
1104
- msgstr "Yee-haw"
1105
 
1106
- #: includes/i18n.php:313
1107
- msgctxt "(especially in electronic communication) used to express elation, enthusiasm, or triumph."
1108
- msgid "W00t"
1109
- msgstr "W00t"
1110
 
1111
- #: includes/i18n.php:315
1112
- msgctxt "a positive response"
1113
- msgid "Right on"
1114
- msgstr "Right on"
1115
 
1116
- #: includes/i18n.php:316
1117
- msgctxt "something somebody says when they are thinking about what you have just said. "
1118
- msgid "Hmm"
1119
- msgstr "Hmm"
1120
 
1121
- #: includes/i18n.php:318
1122
- msgid "O.K"
1123
- msgstr "O.K"
1124
 
1125
- #: includes/i18n.php:319
1126
- msgctxt "exclamation"
1127
- msgid "Hey"
1128
- msgstr "Hey"
1129
 
1130
- #: includes/i18n.php:320
1131
- msgctxt "advance notice of something that will need attention."
1132
- msgid "Heads up"
1133
- msgstr "Heads up"
1134
 
1135
- #: includes/i18n.php:325
1136
- msgid "Seems like you got the latest release."
1137
- msgstr "Seems like you got the latest release."
1138
 
1139
- #: includes/i18n.php:326
1140
- msgid "You are all good!"
1141
- msgstr "You are all good!"
1142
 
1143
- #: includes/i18n.php:327
1144
- msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
1145
- msgstr "Sorry, we could not complete the email update. Another user with the same email is already registered."
 
1146
 
1147
- #: includes/i18n.php:328
1148
- msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
1149
- msgstr "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
 
1150
 
1151
- #: includes/i18n.php:329
1152
- msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
1153
- msgstr "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
1154
 
1155
- #: includes/i18n.php:330
1156
- msgid "Your name was successfully updated."
1157
- msgstr "Your name was successfully updated."
 
1158
 
1159
- #: includes/i18n.php:331
1160
- msgid "You have successfully updated your %s."
1161
- msgstr "You have successfully updated your %s."
 
1162
 
1163
- #: includes/i18n.php:332
1164
- msgid "Please provide your full name."
1165
- msgstr "Please provide your full name."
1166
 
1167
- #: includes/i18n.php:333
1168
- msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
1169
- msgstr "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
 
1170
 
1171
- #: includes/i18n.php:334
1172
- msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
1173
- msgstr "Just letting you know that the add-ons information of %s is being pulled from an external server."
1174
 
1175
- #: includes/i18n.php:335
1176
- msgid "No credit card required"
1177
- msgstr "No credit card required"
1178
 
1179
- #: includes/i18n.php:336
1180
- msgid "Premium %s version was successfully activated."
1181
- msgstr "Premium %s version was successfully activated."
1182
 
1183
- #: includes/i18n.php:337
1184
- msgid "The upgrade of %s was successfully completed."
1185
- msgstr "The upgrade of %s was successfully completed."
1186
 
1187
- #: includes/i18n.php:338
1188
- msgid "Your account was successfully activated with the %s plan."
1189
- msgstr "Your account was successfully activated with the %s plan."
1190
 
1191
- #: includes/i18n.php:339
1192
- msgid "Download the latest %s version now"
1193
- msgstr "Download the latest %s version now"
1194
 
1195
- #: includes/i18n.php:340
1196
- msgid "Please follow these steps to complete the upgrade"
1197
- msgstr "Please follow these steps to complete the upgrade"
1198
 
1199
- #: includes/i18n.php:341
1200
- msgid "Download the latest %s version"
1201
- msgstr "Download the latest %s version"
1202
 
1203
- #: includes/i18n.php:342
1204
- msgid "Download the latest version"
1205
- msgstr "Download the latest version"
1206
 
1207
- #: includes/i18n.php:343
1208
- msgid "Deactivate the free version"
1209
- msgstr "Deactivate the free version"
 
1210
 
1211
- #: includes/i18n.php:344
1212
- msgid "Upload and activate the downloaded version"
1213
- msgstr "Upload and activate the downloaded version"
1214
 
1215
- #: includes/i18n.php:345
1216
- msgid "How to upload and activate?"
1217
- msgstr "How to upload and activate?"
1218
 
1219
- #: includes/i18n.php:346
1220
- msgctxt "%s - product name, e.g. Facebook add-on was successfully..."
1221
- msgid "%s Add-on was successfully purchased."
1222
- msgstr "%s Add-on was successfully purchased."
1223
 
1224
- #: includes/i18n.php:348
1225
- msgid "Your %s Add-on plan was successfully upgraded."
1226
- msgstr "Your %s Add-on plan was successfully upgraded."
1227
 
1228
- #: includes/i18n.php:349
1229
- msgid "Your email has been successfully verified - you are AWESOME!"
1230
- msgstr "Your email has been successfully verified - you are AWESOME!"
1231
 
1232
- #: includes/i18n.php:350
1233
- msgid "Your plan was successfully upgraded."
1234
- msgstr "Your plan was successfully upgraded."
1235
 
1236
- #: includes/i18n.php:351
1237
- msgid "Your plan was successfully changed to %s."
1238
- msgstr "Your plan was successfully changed to %s."
1239
 
1240
- #: includes/i18n.php:352
1241
- msgid "Your license has expired. You can still continue using the free %s forever."
1242
- msgstr "Your license has expired. You can still continue using the free %s forever."
 
1243
 
1244
- #: includes/i18n.php:353
1245
- msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
1246
- msgstr "Your license has been cancelled. If you think it's a mistake, please contact support."
1247
 
1248
- #: includes/i18n.php:354
1249
- msgid "Your trial has been successfully started."
1250
- msgstr "Your trial has been successfully started."
 
1251
 
1252
- #: includes/i18n.php:355
1253
- msgid "Your license was successfully activated."
1254
- msgstr "Your license was successfully activated."
 
1255
 
1256
- #: includes/i18n.php:356
1257
- msgid "It looks like your site currently doesn't have an active license."
1258
- msgstr "It looks like your site currently doesn't have an active license."
1259
 
1260
- #: includes/i18n.php:357
1261
- msgid "Your license was successfully deactivated, you are back to the %s plan."
1262
- msgstr "Your license was successfully deactivated, you are back to the %s plan."
1263
 
1264
- #: includes/i18n.php:358
1265
- msgid "It looks like the license deactivation failed."
1266
- msgstr "It looks like the license deactivation failed."
 
1267
 
1268
- #: includes/i18n.php:359
1269
- msgid "It looks like the license could not be activated."
1270
- msgstr "It looks like the license could not be activated."
1271
 
1272
- #: includes/i18n.php:360
1273
- msgid "Error received from the server:"
1274
- msgstr "Error received from the server:"
1275
 
1276
- #: includes/i18n.php:361
1277
- msgid "Your trial has expired. You can still continue using all our free features."
1278
- msgstr "Your trial has expired. You can still continue using all our free features."
1279
 
1280
- #: includes/i18n.php:362
1281
- msgid "Your plan was successfully downgraded. Your %s plan license will expire in %s."
1282
- msgstr "Your plan was successfully downgraded. Your %s plan license will expire in %s."
1283
 
1284
- #: includes/i18n.php:363
1285
- msgid "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
1286
- msgstr "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
1287
 
1288
- #: includes/i18n.php:364
1289
- msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
1290
- msgstr "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
1291
 
1292
- #: includes/i18n.php:365
1293
- msgid "Your %s free trial was successfully cancelled."
1294
- msgstr "Your %s free trial was successfully cancelled."
1295
 
1296
- #: includes/i18n.php:366
1297
- msgctxt "%s - numeric version number"
1298
- msgid "Version %s was released."
1299
- msgstr "Version %s was released."
1300
 
1301
- #: includes/i18n.php:367
1302
- msgid "Please download %s."
1303
- msgstr "Please download %s."
1304
 
1305
- #: includes/i18n.php:368
1306
- msgctxt "%s - plan name, as the latest professional version here"
1307
- msgid "the latest %s version here"
1308
- msgstr "the latest %s version here"
1309
 
1310
- #: includes/i18n.php:370
1311
- msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
1312
- msgstr "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
1313
 
1314
- #: includes/i18n.php:371
1315
- msgctxt "call to action"
1316
- msgid "Start free trial"
1317
- msgstr "Start free trial"
1318
 
1319
- #: includes/i18n.php:372
1320
- msgid "Starting trial"
1321
- msgstr "Starting trial"
1322
 
1323
- #: includes/i18n.php:373
1324
- msgid "Please wait"
1325
- msgstr "Please wait"
1326
 
1327
- #: includes/i18n.php:374
1328
- msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
1329
- msgstr "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
1330
 
1331
- #: includes/i18n.php:375
1332
- msgid "You already utilized a trial before."
1333
- msgstr "You already utilized a trial before."
1334
 
1335
- #: includes/i18n.php:376
1336
- msgid "You are already running the %s in a trial mode."
1337
- msgstr "You are already running the %s in a trial mode."
1338
 
1339
- #: includes/i18n.php:377
1340
- msgid "Plan %s do not exist, therefore, can't start a trial."
1341
- msgstr "Plan %s do not exist, therefore, can't start a trial."
1342
 
1343
- #: includes/i18n.php:378
1344
- msgid "Plan %s does not support a trial period."
1345
- msgstr "Plan %s does not support a trial period."
1346
 
1347
- #: includes/i18n.php:379
1348
- msgid "None of the %s's plans supports a trial period."
1349
- msgstr "None of the %s's plans supports a trial period."
1350
 
1351
- #: includes/i18n.php:380
1352
- msgid "Unexpected API error. Please contact the %s's author with the following error."
1353
- msgstr "Unexpected API error. Please contact the %s's author with the following error."
1354
 
1355
- #: includes/i18n.php:381
1356
- msgid "No commitment for %s days - cancel anytime!"
1357
- msgstr "No commitment for %s days - cancel anytime!"
1358
 
1359
- #: includes/i18n.php:382
1360
- 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."
1361
- 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."
1362
 
1363
- #: includes/i18n.php:383
1364
- msgid "Couldn't activate %s."
1365
- msgstr "Couldn't activate %s."
1366
 
1367
- #: includes/i18n.php:384
1368
- msgid "Please contact us with the following message:"
1369
- msgstr "Please contact us with the following message:"
 
1370
 
1371
- #: includes/i18n.php:385
1372
- 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."
1373
- 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."
1374
 
1375
- #: includes/i18n.php:386
1376
- msgid "Please contact us here"
1377
- msgstr "Please contact us here"
1378
 
1379
- #: includes/i18n.php:387
1380
- msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
1381
- msgstr "I have upgraded my account but when I try to Sync the License, the plan remains %s."
 
1382
 
1383
- #: includes/i18n.php:390
1384
- msgid "From unknown reason, the API connectivity test failed."
1385
- msgstr "From unknown reason, the API connectivity test failed."
1386
 
1387
- #: includes/i18n.php:391
1388
- msgid "It's probably a temporary issue on our end. Just to be sure, with your permission, would it be o.k to run another connectivity test?"
1389
- msgstr "It's probably a temporary issue on our end. Just to be sure, with your permission, would it be o.k to run another connectivity test?"
1390
 
1391
- #: includes/i18n.php:392
1392
- msgid "We use PHP cURL library for the API calls, which is a very common library and usually installed and activated out of the box. Unfortunately, cURL is not activated (or disabled) on your server."
1393
- msgstr "We use PHP cURL library for the API calls, which is a very common library and usually installed and activated out of the box. Unfortunately, cURL is not activated (or disabled) on your server."
1394
 
1395
- #: includes/i18n.php:393
1396
- msgid "Disabled method(s):"
1397
- msgstr "Disabled method(s):"
1398
 
1399
- #: includes/i18n.php:394
1400
- msgid "From unknown reason, CloudFlare, the firewall we use, blocks the connection."
1401
- msgstr "From unknown reason, CloudFlare, the firewall we use, blocks the connection."
1402
 
1403
- #: includes/i18n.php:395
1404
- msgctxt "as pluginX requires an access to our API"
1405
- msgid "%s requires an access to our API."
1406
- msgstr "%s requires an access to our API."
1407
 
1408
- #: includes/i18n.php:397
1409
- msgid "It looks like your server is using Squid ACL (access control lists), which blocks the connection."
1410
- msgstr "It looks like your server is using Squid ACL (access control lists), which blocks the connection."
1411
 
1412
- #: includes/i18n.php:398
1413
- msgid "I don't know what is Squid or ACL, help me!"
1414
- msgstr "I don't know what is Squid or ACL, help me!"
1415
 
1416
- #: includes/i18n.php:399, includes/i18n.php:403
1417
- 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."
1418
- 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."
1419
 
1420
- #: includes/i18n.php:400
1421
- msgid "I'm a system administrator"
1422
- msgstr "I'm a system administrator"
1423
 
1424
- #: includes/i18n.php:401
1425
- msgid "Great, please whitelist the following domains: %s. Once you are done, deactivate the %s and activate it again."
1426
- msgstr "Great, please whitelist the following domains: %s. Once you are done, deactivate the %s and activate it again."
1427
 
1428
- #: includes/i18n.php:402
1429
- msgid "I don't know what is cURL or how to install it, help me!"
1430
- msgstr "I don't know what is cURL or how to install it, help me!"
1431
 
1432
- #: includes/i18n.php:404
1433
- 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."
1434
- 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."
1435
 
1436
- #: includes/i18n.php:405
1437
- msgid "We are sure it's an issue on our side and more than happy to resolve it for you ASAP if you give us a chance."
1438
- msgstr "We are sure it's an issue on our side and more than happy to resolve it for you ASAP if you give us a chance."
1439
 
1440
- #: includes/i18n.php:406
1441
- msgid "Sorry for the inconvenience and we are here to help if you give us a chance."
1442
- msgstr "Sorry for the inconvenience and we are here to help if you give us a chance."
1443
 
1444
- #: includes/i18n.php:407
1445
- msgid "Yes - I'm giving you a chance to fix it"
1446
- msgstr "Yes - I'm giving you a chance to fix it"
1447
 
1448
- #: includes/i18n.php:408
1449
- msgid "We will do our best to whitelist your server and resolve this issue ASAP. You will get a follow-up email to %s once we have an update."
1450
- msgstr "We will do our best to whitelist your server and resolve this issue ASAP. You will get a follow-up email to %s once we have an update."
1451
 
1452
- #: includes/i18n.php:409
1453
- msgid "Let's try your previous version"
1454
- msgstr "Let's try your previous version"
1455
 
1456
- #: includes/i18n.php:410
1457
- msgid "Uninstall this version and install the previous one."
1458
- msgstr "Uninstall this version and install the previous one."
1459
 
1460
- #: includes/i18n.php:411
1461
- msgid "That's exhausting, please deactivate"
1462
- msgstr "That's exhausting, please deactivate"
 
1463
 
1464
- #: includes/i18n.php:412
1465
- msgid "We feel your frustration and sincerely apologize for the inconvenience. Hope to see you again in the future."
1466
- msgstr "We feel your frustration and sincerely apologize for the inconvenience. Hope to see you again in the future."
1467
 
1468
- #: includes/i18n.php:413
1469
- 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."
1470
- 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."
1471
 
1472
- #: includes/i18n.php:414
1473
- msgctxt "%1s - plugin title, %2s - API domain"
1474
- msgid "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
1475
- msgstr "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
1476
 
1477
- #: includes/i18n.php:416
1478
- msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
1479
- msgstr "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
1480
 
1481
- #: includes/i18n.php:419
1482
- 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."
1483
- 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."
1484
 
1485
- #: includes/i18n.php:420
1486
- msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
1487
- msgstr "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
 
1488
 
1489
- #: includes/i18n.php:421
1490
- msgid "%s is the new owner of the account."
1491
- msgstr "%s is the new owner of the account."
 
1492
 
1493
- #: includes/i18n.php:423
1494
- msgctxt "addonX cannot run without pluginY"
1495
- msgid "%s cannot run without %s."
1496
- msgstr "%s cannot run without %s."
1497
 
1498
- #: includes/i18n.php:425
1499
- msgctxt "addonX cannot run..."
1500
- msgid "%s cannot run without the plugin."
1501
- msgstr "%s cannot run without the plugin."
1502
 
1503
- #: includes/i18n.php:426
1504
- msgctxt "pluginX activation was successfully..."
1505
- msgid "%s activation was successfully completed."
1506
- msgstr "%s activation was successfully completed."
1507
 
1508
- #: includes/i18n.php:428
1509
- msgctxt "Plugin installer section title"
1510
- msgid "Features & Pricing"
1511
- msgstr "Features & Pricing"
1512
 
1513
- #: includes/i18n.php:429
1514
- msgid "Add-on must be deployed to WordPress.org or Freemius."
1515
- msgstr "Add-on must be deployed to WordPress.org or Freemius."
1516
 
1517
- #: includes/i18n.php:430
1518
- msgid "Paid add-on must be deployed to Freemius."
1519
- msgstr "Paid add-on must be deployed to Freemius."
1520
 
1521
- #: includes/i18n.php:434
1522
- msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
1523
- msgstr "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
1524
 
1525
- #: includes/i18n.php:435
1526
- 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."
1527
- 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."
1528
 
1529
- #: includes/i18n.php:440
1530
- msgctxt "as every month"
1531
- msgid "Monthly"
1532
- msgstr "Monthly"
1533
 
1534
- #: includes/i18n.php:441
1535
- msgctxt "as monthly period"
1536
- msgid "mo"
1537
- msgstr "mo"
1538
 
1539
- #: includes/i18n.php:442
1540
- msgctxt "as once a year"
1541
- msgid "Annual"
1542
- msgstr "Annual"
1543
 
1544
- #: includes/i18n.php:443
1545
- msgctxt "as once a year"
1546
- msgid "Annually"
1547
- msgstr "Annually"
1548
 
1549
- #: includes/i18n.php:444
1550
- msgctxt "as once a year"
1551
- msgid "Once"
1552
- msgstr "Once"
1553
 
1554
- #: includes/i18n.php:445
1555
- msgctxt "as annual period"
1556
- msgid "year"
1557
- msgstr "year"
1558
 
1559
- #: includes/i18n.php:446
1560
- msgid "Lifetime"
1561
- msgstr "Lifetime"
1562
 
1563
- #: includes/i18n.php:447
1564
- msgctxt "e.g. the best product"
1565
- msgid "Best"
1566
- msgstr "Best"
1567
 
1568
- #: includes/i18n.php:448
1569
- msgctxt "e.g. billed monthly"
1570
- msgid "Billed %s"
1571
- msgstr "Billed %s"
1572
 
1573
- #: includes/i18n.php:449
1574
- msgctxt "as a discount of $5 or 10%"
1575
- msgid "Save %s"
1576
- msgstr "Save %s"
1577
 
1578
- #: includes/i18n.php:451
1579
- msgid "View details"
1580
- msgstr "View details"
1581
 
1582
- #: includes/i18n.php:455
1583
- msgctxt "button label"
1584
- msgid "Approve & Start Trial"
1585
- msgstr "Approve & Start Trial"
1586
 
1587
- #: includes/i18n.php:457
1588
- msgid "You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
1589
- msgstr "You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
1590
 
1591
- #: includes/i18n.php:459
1592
- 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."
1593
- 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."
1594
 
1595
- #: includes/i18n.php:465
1596
- msgid "Business name"
1597
- msgstr "Business name"
1598
 
1599
- #: includes/i18n.php:466
1600
- msgid "Tax / VAT ID"
1601
- msgstr "Tax / VAT ID"
1602
 
1603
- #: includes/i18n.php:467
1604
- msgid "Address Line %d"
1605
- msgstr "Address Line %d"
1606
 
1607
- #: includes/i18n.php:468
1608
- msgid "Country"
1609
- msgstr "Country"
1610
 
1611
- #: includes/i18n.php:469
1612
- msgid "Select Country"
1613
- msgstr "Select Country"
1614
 
1615
- #: includes/i18n.php:470
1616
- msgid "City"
1617
- msgstr "City"
1618
 
1619
- #: includes/i18n.php:471
1620
- msgid "Town"
1621
- msgstr "Town"
1622
 
1623
- #: includes/i18n.php:472
1624
- msgid "State"
1625
- msgstr "State"
1626
 
1627
- #: includes/i18n.php:473
1628
- msgid "Province"
1629
- msgstr "Province"
1630
 
1631
- #: includes/i18n.php:474
1632
- msgid "ZIP / Postal Code"
1633
- msgstr "ZIP / Postal Code"
1634
 
1635
- #: includes/i18n.php:479
1636
- msgid "Installing plugin: %s"
1637
- msgstr "Installing plugin: %s"
1638
 
1639
- #: includes/i18n.php:480
1640
- msgid "Automatic Installation"
1641
- msgstr "Automatic Installation"
1642
 
1643
- #: includes/i18n.php:482
1644
- msgid "%s sec"
1645
- msgstr "%s sec"
1646
 
1647
- #: includes/i18n.php:483
1648
- 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."
1649
- 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."
1650
 
1651
- #: includes/i18n.php:484
1652
- 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."
1653
- 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."
1654
 
1655
- #: includes/i18n.php:485
1656
- msgid "Cancel Installation"
1657
- msgstr "Cancel Installation"
1658
 
1659
- #: includes/i18n.php:486
1660
- msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
1661
- msgstr "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
1662
 
1663
- #: includes/i18n.php:487
1664
- msgid "Invalid module ID."
1665
- msgstr "Invalid module ID."
1666
 
1667
- #: includes/i18n.php:488
1668
- msgid "Auto installation only works for opted-in users."
1669
- msgstr "Auto installation only works for opted-in users."
1670
 
1671
- #: includes/i18n.php:489
1672
- msgid "Premium version already active."
1673
- msgstr "Premium version already active."
1674
 
1675
- #: includes/i18n.php:490
1676
- msgid "Premium add-on version already installed."
1677
- msgstr "Premium add-on version already installed."
1678
 
1679
- #: includes/i18n.php:491
1680
- msgid "You do not have a valid license to access the premium version."
1681
- msgstr "You do not have a valid license to access the premium version."
1682
 
1683
- #: includes/i18n.php:492
1684
- msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
1685
- msgstr "Plugin is a \"Serviceware\" which means it does not have a premium code version."
1686
 
1687
- #: includes/i18n.php:496
1688
- msgid "Secure HTTPS %s page, running from an external domain"
1689
- msgstr "Secure HTTPS %s page, running from an external domain"
1690
 
1691
- #: includes/i18n.php:497
1692
- msgid "PCI compliant"
1693
- msgstr "PCI compliant"
1694
 
1695
- #: includes/i18n.php:498
1696
- msgid "View paid features"
1697
- msgstr "View paid features"
1698
 
1699
- #: includes/i18n.php:512
1700
- msgctxt "Plugin installer section title"
1701
- msgid "Description"
1702
- msgstr "Description"
1703
 
1704
- #: includes/i18n.php:513
1705
- msgctxt "Plugin installer section title"
1706
- msgid "Installation"
1707
- msgstr "Installation"
1708
 
1709
- #: includes/i18n.php:514
1710
- msgctxt "Plugin installer section title"
1711
- msgid "FAQ"
1712
- msgstr "FAQ"
1713
 
1714
- #: includes/i18n.php:515
1715
- msgctxt "Plugin installer section title"
1716
- msgid "Changelog"
1717
- msgstr "Changelog"
1718
 
1719
- #: includes/i18n.php:516
1720
- msgctxt "Plugin installer section title"
1721
- msgid "Reviews"
1722
- msgstr "Reviews"
1723
 
1724
- #: includes/i18n.php:517
1725
- msgctxt "Plugin installer section title"
1726
- msgid "Other Notes"
1727
- msgstr "Other Notes"
1728
 
1729
- #: includes/i18n.php:519
1730
- msgid "%s star"
1731
- msgstr "%s star"
1732
 
1733
- #: includes/i18n.php:521
1734
- msgid "%s stars"
1735
- msgstr "%s stars"
1736
 
1737
- #: includes/i18n.php:523
1738
- msgid "%s rating"
1739
- msgstr "%s rating"
1740
 
1741
- #: includes/i18n.php:525
1742
- msgid "%s ratings"
1743
- msgstr "%s ratings"
1744
 
1745
- #: includes/i18n.php:527
1746
- msgid "%s time"
1747
- msgstr "%s time"
1748
 
1749
- #: includes/i18n.php:529
1750
- msgid "%s times"
1751
- msgstr "%s times"
1752
 
1753
- #: includes/i18n.php:531
1754
- msgid "Click to see reviews that provided a rating of %s"
1755
- msgstr "Click to see reviews that provided a rating of %s"
1756
 
1757
- #: includes/i18n.php:532
1758
- msgid "Last Updated"
1759
- msgstr "Last Updated"
1760
 
1761
- #: includes/i18n.php:533
1762
- msgid "Requires WordPress Version:"
1763
- msgstr "Requires WordPress Version:"
1764
 
1765
- #: includes/i18n.php:534
1766
- msgctxt "as the plugin author"
1767
- msgid "Author:"
1768
- msgstr "Author:"
1769
 
1770
- #: includes/i18n.php:535
1771
- msgid "Compatible up to:"
1772
- msgstr "Compatible up to:"
1773
 
1774
- #: includes/i18n.php:536
1775
- msgid "Downloaded:"
1776
- msgstr "Downloaded:"
1777
 
1778
- #: includes/i18n.php:537
1779
- msgid "WordPress.org Plugin Page"
1780
- msgstr "WordPress.org Plugin Page"
1781
 
1782
- #: includes/i18n.php:538
1783
- msgid "Plugin Homepage"
1784
- msgstr "Plugin Homepage"
1785
 
1786
- #: includes/i18n.php:539
1787
- msgid "Donate to this plugin"
1788
- msgstr "Donate to this plugin"
1789
 
1790
- #: includes/i18n.php:540
1791
- msgid "Average Rating"
1792
- msgstr "Average Rating"
1793
 
1794
- #: includes/i18n.php:541
1795
- msgid "based on %s"
1796
- msgstr "based on %s"
1797
 
1798
- #: includes/i18n.php:542
1799
- msgid "Warning:"
1800
- msgstr "Warning:"
1801
 
1802
- #: includes/i18n.php:543
1803
- msgid "Contributors"
1804
- msgstr "Contributors"
1805
 
1806
- #: includes/i18n.php:544
1807
- msgid "Plugin Install"
1808
- msgstr "Plugin Install"
1809
 
1810
- #: includes/i18n.php:545
1811
- msgid "This plugin has not been tested with your current version of WordPress."
1812
- msgstr "This plugin has not been tested with your current version of WordPress."
1813
 
1814
- #: includes/i18n.php:546
1815
- msgid "This plugin has not been marked as compatible with your version of WordPress."
1816
- msgstr "This plugin has not been marked as compatible with your version of WordPress."
1817
 
1818
- #: includes/i18n.php:547
1819
- msgid "Newer Version (%s) Installed"
1820
- msgstr "Newer Version (%s) Installed"
1821
 
1822
- #: includes/i18n.php:548
1823
- msgid "Latest Version Installed"
1824
- msgstr "Latest Version Installed"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
  "MIME-Version: 1.0\n"
16
  "X-Poedit-Basepath: ..\n"
17
+ "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"
18
  "X-Poedit-SearchPath-0: .\n"
19
  "X-Poedit-SearchPathExcluded-0: *.js\n"
20
  "X-Poedit-SourceCharset: UTF-8\n"
21
 
22
+ #: includes/class-freemius.php:959
23
+ msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
24
+ msgstr "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
 
 
 
 
25
 
26
+ #: includes/class-freemius.php:961
27
+ msgid "Error"
28
+ msgstr "Error"
29
 
30
+ #: includes/class-freemius.php:1277
31
+ msgid "I found a better %s"
32
+ msgstr "I found a better %s"
33
 
34
+ #: includes/class-freemius.php:1279
35
+ msgid "What's the %s's name?"
36
+ msgstr "What's the %s's name?"
37
 
38
+ #: includes/class-freemius.php:1285
39
+ msgid "It's a temporary %s. I'm just debugging an issue."
40
+ msgstr "It's a temporary %s. I'm just debugging an issue."
41
 
42
+ #: includes/class-freemius.php:1287
43
+ msgid "Deactivation"
44
+ msgstr "Deactivation"
45
 
46
+ #: includes/class-freemius.php:1288
47
+ msgid "Theme Switch"
48
+ msgstr "Theme Switch"
49
 
50
+ #: includes/class-freemius.php:1297, templates/forms/resend-key.php:24
51
+ msgid "Other"
52
+ msgstr "Other"
 
53
 
54
+ #: includes/class-freemius.php:1305
55
+ msgid "I no longer need the %s"
56
+ msgstr "I no longer need the %s"
57
 
58
+ #: includes/class-freemius.php:1312
59
+ msgid "I only needed the %s for a short period"
60
+ msgstr "I only needed the %s for a short period"
 
61
 
62
+ #: includes/class-freemius.php:1318
63
+ msgid "The %s broke my site"
64
+ msgstr "The %s broke my site"
 
65
 
66
+ #: includes/class-freemius.php:1325
67
+ msgid "The %s suddenly stopped working"
68
+ msgstr "The %s suddenly stopped working"
69
 
70
+ #: includes/class-freemius.php:1335
71
+ msgid "I can't pay for it anymore"
72
+ msgstr "I can't pay for it anymore"
 
73
 
74
+ #: includes/class-freemius.php:1337
75
+ msgid "What price would you feel comfortable paying?"
76
+ msgstr "What price would you feel comfortable paying?"
 
77
 
78
+ #: includes/class-freemius.php:1343
79
+ msgid "I don't like to share my information with you"
80
+ msgstr "I don't like to share my information with you"
81
 
82
+ #: includes/class-freemius.php:1364
83
+ msgid "The %s didn't work"
84
+ msgstr "The %s didn't work"
85
 
86
+ #: includes/class-freemius.php:1374
87
+ msgid "I couldn't understand how to make it work"
88
+ msgstr "I couldn't understand how to make it work"
89
 
90
+ #: includes/class-freemius.php:1382
91
+ msgid "The %s is great, but I need specific feature that you don't support"
92
+ msgstr "The %s is great, but I need specific feature that you don't support"
93
 
94
+ #: includes/class-freemius.php:1384
95
+ msgid "What feature?"
96
+ msgstr "What feature?"
97
 
98
+ #: includes/class-freemius.php:1388
99
+ msgid "The %s is not working"
100
+ msgstr "The %s is not working"
101
 
102
+ #: includes/class-freemius.php:1390
103
+ msgid "Kindly share what didn't work so we can fix it for future users..."
104
+ msgstr "Kindly share what didn't work so we can fix it for future users..."
105
 
106
+ #: includes/class-freemius.php:1394
107
+ msgid "It's not what I was looking for"
108
+ msgstr "It's not what I was looking for"
 
109
 
110
+ #: includes/class-freemius.php:1396
111
+ msgid "What you've been looking for?"
112
+ msgstr "What you've been looking for?"
 
113
 
114
+ #: includes/class-freemius.php:1400
115
+ msgid "The %s didn't work as expected"
116
+ msgstr "The %s didn't work as expected"
 
117
 
118
+ #: includes/class-freemius.php:1402
119
+ msgid "What did you expect?"
120
+ msgstr "What did you expect?"
 
121
 
122
+ #: includes/class-freemius.php:1938, templates/debug.php:20
123
+ msgid "Freemius Debug"
124
+ msgstr "Freemius Debug"
 
125
 
126
+ #: includes/class-freemius.php:2508
127
+ msgid "I don't know what is cURL or how to install it, help me!"
128
+ msgstr "I don't know what is cURL or how to install it, help me!"
129
 
130
+ #: includes/class-freemius.php:2510
131
+ 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."
132
+ 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."
133
 
134
+ #: includes/class-freemius.php:2517
135
+ 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."
136
+ 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."
137
 
138
+ #: includes/class-freemius.php:2619
139
+ msgid "Yes - do your thing"
140
+ msgstr "Yes - do your thing"
141
 
142
+ #: includes/class-freemius.php:2624
143
+ msgid "No - just deactivate"
144
+ msgstr "No - just deactivate"
145
 
146
+ #: includes/class-freemius.php:2669, includes/class-freemius.php:3134, includes/class-freemius.php:3988, includes/class-freemius.php:7270, includes/class-freemius.php:9137, includes/class-freemius.php:9193, includes/class-freemius.php:9254, includes/class-freemius.php:11154, includes/class-freemius.php:11165, includes/class-freemius.php:11614, includes/class-freemius.php:11632, includes/class-freemius.php:11730, includes/class-freemius.php:12405, templates/add-ons.php:43
147
+ msgctxt "exclamation"
148
+ msgid "Oops"
149
+ msgstr "Oops"
150
 
151
+ #: includes/class-freemius.php:2736
152
+ 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."
153
+ 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."
 
154
 
155
+ #: includes/class-freemius.php:3131
156
+ msgctxt "addonX cannot run without pluginY"
157
+ msgid "%s cannot run without %s."
158
+ msgstr "%s cannot run without %s."
159
 
160
+ #: includes/class-freemius.php:3132
161
+ msgctxt "addonX cannot run..."
162
+ msgid "%s cannot run without the plugin."
163
+ msgstr "%s cannot run without the plugin."
164
 
165
+ #: includes/class-freemius.php:3253, includes/class-freemius.php:3278, includes/class-freemius.php:11703
166
+ msgid "Unexpected API error. Please contact the %s's author with the following error."
167
+ msgstr "Unexpected API error. Please contact the %s's author with the following error."
 
168
 
169
+ #: includes/class-freemius.php:3686
170
+ msgid "Premium %s version was successfully activated."
171
+ msgstr "Premium %s version was successfully activated."
 
172
 
173
+ #: includes/class-freemius.php:3688, includes/class-freemius.php:4913
174
+ msgctxt "Used to express elation, enthusiasm, or triumph (especially in electronic communication)."
175
+ msgid "W00t"
176
+ msgstr "W00t"
177
 
178
+ #: includes/class-freemius.php:3703
 
179
  msgid "You have a %s license."
180
  msgstr "You have a %s license."
181
 
182
+ #: includes/class-freemius.php:3707, includes/class-freemius.php:8841, includes/class-freemius.php:8850, includes/class-freemius.php:11105, includes/class-freemius.php:11318, includes/class-freemius.php:11380, includes/class-freemius.php:11492
183
+ msgctxt "interjection expressing joy or exuberance"
184
+ msgid "Yee-haw"
185
+ msgstr "Yee-haw"
 
 
 
186
 
187
+ #: includes/class-freemius.php:3971
188
+ 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."
189
+ 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."
 
190
 
191
+ #: includes/class-freemius.php:3975
192
+ msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
193
+ msgstr "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
 
194
 
195
+ #: includes/class-freemius.php:3984, templates/account.php:692, templates/add-ons.php:99
196
+ msgid "More information about %s"
197
+ msgstr "More information about %s"
 
198
 
199
+ #: includes/class-freemius.php:3985
200
  msgid "Purchase License"
201
  msgstr "Purchase License"
202
 
203
+ #: includes/class-freemius.php:4422, templates/connect.php:136
204
+ 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."
205
+ 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."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
206
 
207
+ #: includes/class-freemius.php:4426
208
+ msgid "start the trial"
209
+ msgstr "start the trial"
210
 
211
+ #: includes/class-freemius.php:4427, templates/connect.php:140
212
+ msgid "complete the install"
213
+ msgstr "complete the install"
 
214
 
215
+ #: includes/class-freemius.php:4506
216
  msgid "You are just one step away - %s"
217
  msgstr "You are just one step away - %s"
218
 
219
+ #: includes/class-freemius.php:4509
220
+ msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
221
  msgid "Complete \"%s\" Activation Now"
222
  msgstr "Complete \"%s\" Activation Now"
223
 
224
+ #: includes/class-freemius.php:4523
225
  msgid "We made a few tweaks to the %s, %s"
226
  msgstr "We made a few tweaks to the %s, %s"
227
 
228
+ #: includes/class-freemius.php:4527
229
+ msgid "Opt in to make \"%s\" Better!"
230
+ msgstr "Opt in to make \"%s\" Better!"
231
 
232
+ #: includes/class-freemius.php:4912
233
+ msgid "The upgrade of %s was successfully completed."
234
+ msgstr "The upgrade of %s was successfully completed."
235
 
236
+ #: includes/class-freemius.php:5997, includes/class-fs-plugin-updater.php:358, includes/class-fs-plugin-updater.php:510, includes/class-fs-plugin-updater.php:516, templates/auto-installation.php:31
237
+ msgid "Add-On"
238
+ msgstr "Add-On"
239
 
240
+ #: includes/class-freemius.php:5999, templates/debug.php:303, templates/debug.php:413
241
+ msgid "Plugin"
242
+ msgstr "Plugin"
 
243
 
244
+ #: includes/class-freemius.php:6000, templates/debug.php:303, templates/debug.php:413, templates/forms/deactivation/form.php:64
245
+ msgid "Theme"
246
+ msgstr "Theme"
 
247
 
248
+ #: includes/class-freemius.php:7257
249
+ msgid "We couldn't find your email address in the system, are you sure it's the right address?"
250
+ msgstr "We couldn't find your email address in the system, are you sure it's the right address?"
251
 
252
+ #: includes/class-freemius.php:7259
253
+ msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
254
+ msgstr "We can't see any active licenses associated with that email address, are you sure it's the right address?"
255
 
256
+ #: includes/class-freemius.php:7468
257
+ msgid "Account is pending activation."
258
+ msgstr "Account is pending activation."
 
259
 
260
+ #: includes/class-freemius.php:8825
261
+ msgctxt "pluginX activation was successfully..."
262
+ msgid "%s activation was successfully completed."
263
+ msgstr "%s activation was successfully completed."
264
 
265
+ #: includes/class-freemius.php:8837
266
+ msgid "Your account was successfully activated with the %s plan."
267
+ msgstr "Your account was successfully activated with the %s plan."
268
 
269
+ #: includes/class-freemius.php:8846, includes/class-freemius.php:11376
270
+ msgid "Your trial has been successfully started."
271
+ msgstr "Your trial has been successfully started."
272
 
273
+ #: includes/class-freemius.php:9135, includes/class-freemius.php:9191, includes/class-freemius.php:9252
274
+ msgid "Couldn't activate %s."
275
+ msgstr "Couldn't activate %s."
276
 
277
+ #: includes/class-freemius.php:9136, includes/class-freemius.php:9192, includes/class-freemius.php:9253
278
+ msgid "Please contact us with the following message:"
279
+ msgstr "Please contact us with the following message:"
 
280
 
281
+ #: includes/class-freemius.php:9511, includes/class-freemius.php:13334
282
+ msgid "Upgrade"
283
+ msgstr "Upgrade"
 
284
 
285
+ #: includes/class-freemius.php:9517
286
+ msgid "Start Trial"
287
+ msgstr "Start Trial"
288
 
289
+ #: includes/class-freemius.php:9519
290
+ msgid "Pricing"
291
+ msgstr "Pricing"
 
292
 
293
+ #: includes/class-freemius.php:9559, includes/class-freemius.php:9561
294
+ msgid "Affiliation"
295
+ msgstr "Affiliation"
296
 
297
+ #: includes/class-freemius.php:9581, includes/class-freemius.php:9583, templates/account.php:79, templates/debug.php:281
298
+ msgid "Account"
299
+ msgstr "Account"
300
 
301
+ #: includes/class-freemius.php:9594, includes/class-freemius.php:9596, includes/customizer/class-fs-customizer-support-section.php:60
302
+ msgid "Contact Us"
303
+ msgstr "Contact Us"
304
 
305
+ #: includes/class-freemius.php:9606, includes/class-freemius.php:9608, includes/class-freemius.php:13344, templates/account.php:68
306
+ msgid "Add-Ons"
307
+ msgstr "Add-Ons"
308
 
309
+ #: includes/class-freemius.php:9639, templates/pricing.php:92
310
+ msgctxt "noun"
311
+ msgid "Pricing"
312
+ msgstr "Pricing"
313
 
314
+ #: includes/class-freemius.php:9819, includes/customizer/class-fs-customizer-support-section.php:67
315
+ msgid "Support Forum"
316
+ msgstr "Support Forum"
317
 
318
+ #: includes/class-freemius.php:10559
319
+ msgid "Your email has been successfully verified - you are AWESOME!"
320
+ msgstr "Your email has been successfully verified - you are AWESOME!"
321
 
322
+ #: includes/class-freemius.php:10560
323
+ msgctxt "a positive response"
324
+ msgid "Right on"
325
+ msgstr "Right on"
326
 
327
+ #: includes/class-freemius.php:11096
328
+ msgid "Your %s Add-on plan was successfully upgraded."
329
+ msgstr "Your %s Add-on plan was successfully upgraded."
330
 
331
+ #: includes/class-freemius.php:11098
332
+ msgid "%s Add-on was successfully purchased."
333
+ msgstr "%s Add-on was successfully purchased."
334
 
335
+ #: includes/class-freemius.php:11101
336
+ msgid "Download the latest version"
337
+ msgstr "Download the latest version"
 
338
 
339
+ #: includes/class-freemius.php:11150
340
+ msgctxt "%1s - plugin title, %2s - API domain"
341
+ msgid "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
342
+ msgstr "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
343
 
344
+ #: includes/class-freemius.php:11153, includes/class-freemius.php:11463, includes/class-freemius.php:11528
345
+ msgid "Error received from the server:"
346
+ msgstr "Error received from the server:"
347
 
348
+ #: includes/class-freemius.php:11164
349
+ msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
350
+ msgstr "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
351
 
352
+ #: includes/class-freemius.php:11281, includes/class-freemius.php:11468, includes/class-freemius.php:11511
353
+ msgctxt "something somebody says when they are thinking about what you have just said."
354
+ msgid "Hmm"
355
+ msgstr "Hmm"
356
 
357
+ #: includes/class-freemius.php:11294
358
+ 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."
359
+ 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."
360
 
361
+ #: includes/class-freemius.php:11295, templates/account.php:70, templates/add-ons.php:130
362
+ msgctxt "trial period"
363
+ msgid "Trial"
364
+ msgstr "Trial"
365
 
366
+ #: includes/class-freemius.php:11300
367
+ msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
368
+ msgstr "I have upgraded my account but when I try to Sync the License, the plan remains %s."
369
 
370
+ #: includes/class-freemius.php:11304, includes/class-freemius.php:11358
371
+ msgid "Please contact us here"
372
+ msgstr "Please contact us here"
 
373
 
374
+ #: includes/class-freemius.php:11314
375
+ msgid "Your plan was successfully upgraded."
376
+ msgstr "Your plan was successfully upgraded."
377
 
378
+ #: includes/class-freemius.php:11331
379
+ msgid "Your plan was successfully changed to %s."
380
+ msgstr "Your plan was successfully changed to %s."
381
 
382
+ #: includes/class-freemius.php:11346
383
+ msgid "Your license has expired. You can still continue using the free %s forever."
384
+ msgstr "Your license has expired. You can still continue using the free %s forever."
385
 
386
+ #: includes/class-freemius.php:11354
387
+ msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
388
+ msgstr "Your license has been cancelled. If you think it's a mistake, please contact support."
389
 
390
+ #: includes/class-freemius.php:11367
391
+ 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."
392
+ 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."
 
393
 
394
+ #: includes/class-freemius.php:11389
395
+ msgid "Your trial has expired. You can still continue using all our free features."
396
+ msgstr "Your trial has expired. You can still continue using all our free features."
397
 
398
+ #: includes/class-freemius.php:11459
399
+ msgid "It looks like the license could not be activated."
400
+ msgstr "It looks like the license could not be activated."
 
401
 
402
+ #: includes/class-freemius.php:11489
403
+ msgid "Your license was successfully activated."
404
+ msgstr "Your license was successfully activated."
 
405
 
406
+ #: includes/class-freemius.php:11515
407
+ msgid "It looks like your site currently doesn't have an active license."
408
+ msgstr "It looks like your site currently doesn't have an active license."
409
 
410
+ #: includes/class-freemius.php:11527
411
+ msgid "It looks like the license deactivation failed."
412
+ msgstr "It looks like the license deactivation failed."
413
 
414
+ #: includes/class-freemius.php:11554
415
+ msgid "Your license was successfully deactivated, you are back to the %s plan."
416
+ msgstr "Your license was successfully deactivated, you are back to the %s plan."
417
+
418
+ #: includes/class-freemius.php:11555
419
+ msgid "O.K"
420
+ msgstr "O.K"
421
+
422
+ #: includes/class-freemius.php:11603
423
+ msgid "Your plan was successfully downgraded. Your %s plan license will expire in %s."
424
+ msgstr "Your plan was successfully downgraded. Your %s plan license will expire in %s."
425
+
426
+ #: includes/class-freemius.php:11613
427
+ msgid "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
428
+ msgstr "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
429
+
430
+ #: includes/class-freemius.php:11637
431
+ msgid "You are already running the %s in a trial mode."
432
+ msgstr "You are already running the %s in a trial mode."
433
+
434
+ #: includes/class-freemius.php:11648
435
+ msgid "You already utilized a trial before."
436
+ msgstr "You already utilized a trial before."
437
+
438
+ #: includes/class-freemius.php:11662
439
+ msgid "Plan %s do not exist, therefore, can't start a trial."
440
+ msgstr "Plan %s do not exist, therefore, can't start a trial."
441
+
442
+ #: includes/class-freemius.php:11673
443
+ msgid "Plan %s does not support a trial period."
444
+ msgstr "Plan %s does not support a trial period."
445
+
446
+ #: includes/class-freemius.php:11684
447
+ msgid "None of the %s's plans supports a trial period."
448
+ msgstr "None of the %s's plans supports a trial period."
449
+
450
+ #: includes/class-freemius.php:11734
451
+ msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
452
+ msgstr "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
453
+
454
+ #: includes/class-freemius.php:11785
455
+ msgid "Your %s free trial was successfully cancelled."
456
+ msgstr "Your %s free trial was successfully cancelled."
457
 
458
+ #: includes/class-freemius.php:11793
459
+ msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
460
+ msgstr "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
461
 
462
+ #: includes/class-freemius.php:12032
463
+ msgid "Version %s was released."
464
+ msgstr "Version %s was released."
465
+
466
+ #: includes/class-freemius.php:12032
467
+ msgid "Please download %s."
468
+ msgstr "Please download %s."
469
+
470
+ #: includes/class-freemius.php:12039
471
+ msgid "the latest %s version here"
472
+ msgstr "the latest %s version here"
473
+
474
+ #: includes/class-freemius.php:12044
475
+ msgid "New"
476
+ msgstr "New"
477
+
478
+ #: includes/class-freemius.php:12049
479
+ msgid "Seems like you got the latest release."
480
+ msgstr "Seems like you got the latest release."
481
+
482
+ #: includes/class-freemius.php:12050
483
+ msgid "You are all good!"
484
+ msgstr "You are all good!"
485
+
486
+ #: includes/class-freemius.php:12316
487
+ msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
488
+ msgstr "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
489
+
490
+ #: includes/class-freemius.php:12491
491
+ 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."
492
+ 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."
493
+
494
+ #: includes/class-freemius.php:12497
495
+ msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
496
+ msgstr "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
497
+
498
+ #: includes/class-freemius.php:12502
499
+ msgid "%s is the new owner of the account."
500
+ msgstr "%s is the new owner of the account."
501
+
502
+ #: includes/class-freemius.php:12504
503
+ msgctxt "as congratulations"
504
+ msgid "Congrats"
505
+ msgstr "Congrats"
506
+
507
+ #: includes/class-freemius.php:12524
508
+ msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
509
+ msgstr "Sorry, we could not complete the email update. Another user with the same email is already registered."
510
+
511
+ #: includes/class-freemius.php:12525
512
+ msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
513
+ msgstr "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
514
+
515
+ #: includes/class-freemius.php:12532
516
+ msgid "Change Ownership"
517
+ msgstr "Change Ownership"
518
+
519
+ #: includes/class-freemius.php:12540
520
+ msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
521
+ msgstr "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
522
+
523
+ #: includes/class-freemius.php:12552
524
+ msgid "Please provide your full name."
525
+ msgstr "Please provide your full name."
526
+
527
+ #: includes/class-freemius.php:12557
528
+ msgid "Your name was successfully updated."
529
+ msgstr "Your name was successfully updated."
530
+
531
+ #: includes/class-freemius.php:12618
532
+ msgid "You have successfully updated your %s."
533
+ msgstr "You have successfully updated your %s."
534
+
535
+ #: includes/class-freemius.php:12756
536
+ msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
537
+ msgstr "Just letting you know that the add-ons information of %s is being pulled from an external server."
538
+
539
+ #: includes/class-freemius.php:12757
540
+ msgctxt "advance notice of something that will need attention."
541
+ msgid "Heads up"
542
+ msgstr "Heads up"
543
+
544
+ #: includes/class-freemius.php:13075
545
+ msgid "Awesome"
546
+ msgstr "Awesome"
547
+
548
+ #: includes/class-freemius.php:13115
549
+ msgctxt "exclamation"
550
+ msgid "Hey"
551
+ msgstr "Hey"
552
+
553
+ #: includes/class-freemius.php:13115
554
+ msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
555
+ msgstr "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
556
+
557
+ #: includes/class-freemius.php:13123
558
+ msgid "No commitment for %s days - cancel anytime!"
559
+ msgstr "No commitment for %s days - cancel anytime!"
560
+
561
+ #: includes/class-freemius.php:13124
562
+ msgid "No credit card required"
563
+ msgstr "No credit card required"
564
+
565
+ #: includes/class-freemius.php:13131, templates/forms/trial-start.php:53
566
+ msgctxt "call to action"
567
+ msgid "Start free trial"
568
+ msgstr "Start free trial"
569
+
570
+ #: includes/class-freemius.php:13208
571
+ 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!"
572
+ 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!"
573
+
574
+ #: includes/class-freemius.php:13217
575
+ msgid "Learn more"
576
+ msgstr "Learn more"
577
+
578
+ #: includes/class-freemius.php:13373, templates/account.php:330, templates/connect.php:309, templates/forms/license-activation.php:24
579
+ msgid "Activate License"
580
+ msgstr "Activate License"
581
+
582
+ #: includes/class-freemius.php:13374, templates/account.php:393
583
  msgid "Change License"
584
  msgstr "Change License"
585
 
586
+ #: includes/class-freemius.php:13435
587
+ msgid "Opt Out"
588
+ msgstr "Opt Out"
589
 
590
+ #: includes/class-freemius.php:13437, includes/class-freemius.php:13442
591
+ msgid "Opt In"
592
+ msgstr "Opt In"
593
 
594
+ #: includes/class-freemius.php:13630
595
+ msgid "Please follow these steps to complete the upgrade"
596
+ msgstr "Please follow these steps to complete the upgrade"
597
 
598
+ #: includes/class-freemius.php:13633
599
+ msgid "Download the latest %s version"
600
+ msgstr "Download the latest %s version"
601
 
602
+ #: includes/class-freemius.php:13637
603
+ msgid "Upload and activate the downloaded version"
604
+ msgstr "Upload and activate the downloaded version"
605
 
606
+ #: includes/class-freemius.php:13639
607
+ msgid "How to upload and activate?"
608
+ msgstr "How to upload and activate?"
609
 
610
+ #: includes/class-freemius.php:13798
611
+ msgid "Auto installation only works for opted-in users."
612
+ msgstr "Auto installation only works for opted-in users."
613
 
614
+ #: includes/class-freemius.php:13808, includes/class-freemius.php:13841, includes/class-fs-plugin-updater.php:490, includes/class-fs-plugin-updater.php:504
615
+ msgid "Invalid module ID."
616
+ msgstr "Invalid module ID."
617
 
618
+ #: includes/class-freemius.php:13817, includes/class-fs-plugin-updater.php:524
619
+ msgid "Premium version already active."
620
+ msgstr "Premium version already active."
 
621
 
622
+ #: includes/class-freemius.php:13824
623
+ msgid "You do not have a valid license to access the premium version."
624
+ msgstr "You do not have a valid license to access the premium version."
 
625
 
626
+ #: includes/class-freemius.php:13831
627
+ msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
628
+ msgstr "Plugin is a \"Serviceware\" which means it does not have a premium code version."
629
+
630
+ #: includes/class-freemius.php:13849, includes/class-fs-plugin-updater.php:523
631
+ msgid "Premium add-on version already installed."
632
+ msgstr "Premium add-on version already installed."
633
+
634
+ #: includes/class-freemius.php:14194
635
+ msgid "View paid features"
636
+ msgstr "View paid features"
637
+
638
+ #: includes/class-fs-plugin-updater.php:131
639
+ msgid "%sRenew your license now%s to access version %s features and support."
640
+ msgstr "%sRenew your license now%s to access version %s features and support."
641
+
642
+ #: includes/class-fs-plugin-updater.php:553
643
+ msgid "Installing plugin: %s"
644
+ msgstr "Installing plugin: %s"
645
+
646
+ #: includes/class-fs-plugin-updater.php:594
647
+ msgid "Unable to connect to the filesystem. Please confirm your credentials."
648
+ msgstr "Unable to connect to the filesystem. Please confirm your credentials."
649
+
650
+ #: includes/class-fs-plugin-updater.php:700
651
+ msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
652
+ msgstr "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
653
+
654
+ #: includes/fs-plugin-info-dialog.php:328, templates/account.php:696
655
+ msgctxt "verb"
656
+ msgid "Purchase"
657
+ msgstr "Purchase"
658
+
659
+ #: includes/fs-plugin-info-dialog.php:331
660
+ msgid "Start my free %s"
661
+ msgstr "Start my free %s"
662
+
663
+ #: includes/fs-plugin-info-dialog.php:355, templates/account.php:52
664
+ msgctxt "as download latest version"
665
+ msgid "Download Latest"
666
+ msgstr "Download Latest"
667
+
668
+ #: includes/fs-plugin-info-dialog.php:358, templates/account.php:676, templates/account.php:729, templates/auto-installation.php:110
669
  msgid "Install Now"
670
  msgstr "Install Now"
671
 
672
+ #: includes/fs-plugin-info-dialog.php:364, templates/account.php:384
673
  msgid "Install Update Now"
674
  msgstr "Install Update Now"
675
 
676
+ #: includes/fs-plugin-info-dialog.php:368
677
+ msgid "Newer Version (%s) Installed"
678
+ msgstr "Newer Version (%s) Installed"
679
 
680
+ #: includes/fs-plugin-info-dialog.php:371
681
+ msgid "Latest Version Installed"
682
+ msgstr "Latest Version Installed"
683
 
684
+ #: includes/fs-plugin-info-dialog.php:484
685
+ msgctxt "Plugin installer section title"
686
+ msgid "Description"
687
+ msgstr "Description"
688
 
689
+ #: includes/fs-plugin-info-dialog.php:485
690
+ msgctxt "Plugin installer section title"
691
+ msgid "Installation"
692
+ msgstr "Installation"
693
 
694
+ #: includes/fs-plugin-info-dialog.php:486
695
+ msgctxt "Plugin installer section title"
696
+ msgid "FAQ"
697
+ msgstr "FAQ"
698
 
699
+ #: includes/fs-plugin-info-dialog.php:487, templates/plugin-info/description.php:55
700
+ msgid "Screenshots"
701
+ msgstr "Screenshots"
702
 
703
+ #: includes/fs-plugin-info-dialog.php:488
704
+ msgctxt "Plugin installer section title"
705
+ msgid "Changelog"
706
+ msgstr "Changelog"
707
 
708
+ #: includes/fs-plugin-info-dialog.php:489
709
+ msgctxt "Plugin installer section title"
710
+ msgid "Reviews"
711
+ msgstr "Reviews"
712
 
713
+ #: includes/fs-plugin-info-dialog.php:490
714
+ msgctxt "Plugin installer section title"
715
+ msgid "Other Notes"
716
+ msgstr "Other Notes"
717
 
718
+ #: includes/fs-plugin-info-dialog.php:505
719
+ msgctxt "Plugin installer section title"
720
+ msgid "Features & Pricing"
721
+ msgstr "Features & Pricing"
722
 
723
+ #: includes/fs-plugin-info-dialog.php:515
724
+ msgid "Plugin Install"
725
+ msgstr "Plugin Install"
726
 
727
+ #: includes/fs-plugin-info-dialog.php:587
728
+ msgctxt "e.g. Professional Plan"
729
+ msgid "%s Plan"
730
+ msgstr "%s Plan"
731
 
732
+ #: includes/fs-plugin-info-dialog.php:612
733
+ msgctxt "e.g. the best product"
734
+ msgid "Best"
735
+ msgstr "Best"
736
 
737
+ #: includes/fs-plugin-info-dialog.php:618, includes/fs-plugin-info-dialog.php:638
738
+ msgctxt "as every month"
739
+ msgid "Monthly"
740
+ msgstr "Monthly"
741
 
742
+ #: includes/fs-plugin-info-dialog.php:621
743
+ msgctxt "as once a year"
744
+ msgid "Annual"
745
+ msgstr "Annual"
746
 
747
+ #: includes/fs-plugin-info-dialog.php:624
748
+ msgid "Lifetime"
749
+ msgstr "Lifetime"
750
 
751
+ #: includes/fs-plugin-info-dialog.php:638, includes/fs-plugin-info-dialog.php:640, includes/fs-plugin-info-dialog.php:642
752
+ msgctxt "e.g. billed monthly"
753
+ msgid "Billed %s"
754
+ msgstr "Billed %s"
755
 
756
+ #: includes/fs-plugin-info-dialog.php:640
757
+ msgctxt "as once a year"
758
+ msgid "Annually"
759
+ msgstr "Annually"
760
 
761
+ #: includes/fs-plugin-info-dialog.php:642
762
+ msgctxt "as once a year"
763
+ msgid "Once"
764
+ msgstr "Once"
765
 
766
+ #: includes/fs-plugin-info-dialog.php:648
767
+ msgid "Single Site License"
768
+ msgstr "Single Site License"
769
 
770
+ #: includes/fs-plugin-info-dialog.php:650
771
+ msgid "Unlimited Licenses"
772
+ msgstr "Unlimited Licenses"
773
 
774
+ #: includes/fs-plugin-info-dialog.php:652
775
+ msgid "Up to %s Sites"
776
+ msgstr "Up to %s Sites"
777
 
778
+ #: includes/fs-plugin-info-dialog.php:662, templates/plugin-info/features.php:82
779
+ msgctxt "as monthly period"
780
+ msgid "mo"
781
+ msgstr "mo"
782
 
783
+ #: includes/fs-plugin-info-dialog.php:669, templates/plugin-info/features.php:80
784
+ msgctxt "as annual period"
785
+ msgid "year"
786
+ msgstr "year"
787
 
788
+ #: includes/fs-plugin-info-dialog.php:721
789
+ msgctxt "noun"
790
+ msgid "Price"
791
+ msgstr "Price"
792
 
793
+ #: includes/fs-plugin-info-dialog.php:767
794
+ msgctxt "as a discount of $5 or 10%"
795
+ msgid "Save %s"
796
+ msgstr "Save %s"
797
 
798
+ #: includes/fs-plugin-info-dialog.php:777
799
+ msgid "No commitment for %s - cancel anytime"
800
+ msgstr "No commitment for %s - cancel anytime"
801
 
802
+ #: includes/fs-plugin-info-dialog.php:780
803
+ msgid "After your free %s, pay as little as %s"
804
+ msgstr "After your free %s, pay as little as %s"
805
 
806
+ #: includes/fs-plugin-info-dialog.php:791
807
+ msgid "Details"
808
+ msgstr "Details"
809
 
810
+ #: includes/fs-plugin-info-dialog.php:794, templates/account.php:59, templates/debug.php:183, templates/debug.php:220, templates/debug.php:354
811
+ msgctxt "product version"
812
+ msgid "Version"
813
+ msgstr "Version"
814
 
815
+ #: includes/fs-plugin-info-dialog.php:800
816
+ msgctxt "as the plugin author"
817
+ msgid "Author"
818
+ msgstr "Author"
819
 
820
+ #: includes/fs-plugin-info-dialog.php:806
821
+ msgid "Last Updated"
822
+ msgstr "Last Updated"
823
 
824
+ #: includes/fs-plugin-info-dialog.php:810
825
+ msgctxt "x-ago"
826
+ msgid "%s ago"
827
+ msgstr "%s ago"
828
 
829
+ #: includes/fs-plugin-info-dialog.php:819
830
+ msgid "Requires WordPress Version"
831
+ msgstr "Requires WordPress Version"
832
 
833
+ #: includes/fs-plugin-info-dialog.php:819
834
+ msgid "%s or higher"
835
+ msgstr "%s or higher"
836
 
837
+ #: includes/fs-plugin-info-dialog.php:825
838
+ msgid "Compatible up to"
839
+ msgstr "Compatible up to"
840
 
841
+ #: includes/fs-plugin-info-dialog.php:832
842
+ msgid "Downloaded"
843
+ msgstr "Downloaded"
844
 
845
+ #: includes/fs-plugin-info-dialog.php:835
846
+ msgid "%s time"
847
+ msgstr "%s time"
 
848
 
849
+ #: includes/fs-plugin-info-dialog.php:837
850
+ msgid "%s times"
851
+ msgstr "%s times"
852
 
853
+ #: includes/fs-plugin-info-dialog.php:847
854
+ msgid "WordPress.org Plugin Page"
855
+ msgstr "WordPress.org Plugin Page"
856
 
857
+ #: includes/fs-plugin-info-dialog.php:854
858
+ msgid "Plugin Homepage"
859
+ msgstr "Plugin Homepage"
860
 
861
+ #: includes/fs-plugin-info-dialog.php:861, includes/fs-plugin-info-dialog.php:941
862
+ msgid "Donate to this plugin"
863
+ msgstr "Donate to this plugin"
864
 
865
+ #: includes/fs-plugin-info-dialog.php:867
866
+ msgid "Average Rating"
867
+ msgstr "Average Rating"
868
 
869
+ #: includes/fs-plugin-info-dialog.php:874
870
+ msgid "based on %s"
871
+ msgstr "based on %s"
872
 
873
+ #: includes/fs-plugin-info-dialog.php:878
874
+ msgid "%s rating"
875
+ msgstr "%s rating"
876
 
877
+ #: includes/fs-plugin-info-dialog.php:880
878
+ msgid "%s ratings"
879
+ msgstr "%s ratings"
880
 
881
+ #: includes/fs-plugin-info-dialog.php:894
882
+ msgid "%s star"
883
+ msgstr "%s star"
884
 
885
+ #: includes/fs-plugin-info-dialog.php:896
886
+ msgid "%s stars"
887
+ msgstr "%s stars"
888
 
889
+ #: includes/fs-plugin-info-dialog.php:907
890
+ msgid "Click to see reviews that provided a rating of %s"
891
+ msgstr "Click to see reviews that provided a rating of %s"
892
 
893
+ #: includes/fs-plugin-info-dialog.php:920
894
+ msgid "Contributors"
895
+ msgstr "Contributors"
896
 
897
+ #: includes/fs-plugin-info-dialog.php:948, includes/fs-plugin-info-dialog.php:950
898
+ msgid "Warning"
899
+ msgstr "Warning"
900
 
901
+ #: includes/fs-plugin-info-dialog.php:948
902
+ msgid "This plugin has not been tested with your current version of WordPress."
903
+ msgstr "This plugin has not been tested with your current version of WordPress."
904
 
905
+ #: includes/fs-plugin-info-dialog.php:950
906
+ msgid "This plugin has not been marked as compatible with your version of WordPress."
907
+ msgstr "This plugin has not been marked as compatible with your version of WordPress."
908
 
909
+ #: includes/fs-plugin-info-dialog.php:969
910
+ msgid "Paid add-on must be deployed to Freemius."
911
+ msgstr "Paid add-on must be deployed to Freemius."
 
912
 
913
+ #: includes/fs-plugin-info-dialog.php:970
914
+ msgid "Add-on must be deployed to WordPress.org or Freemius."
915
+ msgstr "Add-on must be deployed to WordPress.org or Freemius."
 
916
 
917
+ #: templates/account.php:53
918
+ msgid "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
919
+ msgstr "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
920
 
921
+ #: templates/account.php:54
922
+ msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
923
+ msgstr "Cancelling the trial will immediately block access to all premium features. Are you sure?"
924
 
925
+ #: templates/account.php:55
926
+ msgid "You can still enjoy all %s features but you will not have access to %s updates and support."
927
+ msgstr "You can still enjoy all %s features but you will not have access to %s updates and support."
928
 
929
+ #: templates/account.php:56
930
+ msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
931
+ msgstr "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
932
 
933
+ #. translators: %s: Plan title (e.g. "Professional")
934
+ #: templates/account.php:58
935
+ msgid "Activate %s Plan"
936
+ msgstr "Activate %s Plan"
937
 
938
+ #. translators: %s: Time period (e.g. Auto renews in "2 months")
939
+ #: templates/account.php:61
940
+ msgid "Auto renews in %s"
941
+ msgstr "Auto renews in %s"
942
 
943
+ #. translators: %s: Time period (e.g. Expires in "2 months")
944
+ #: templates/account.php:63
945
+ msgid "Expires in %s"
946
+ msgstr "Expires in %s"
947
 
948
+ #: templates/account.php:64
949
+ msgctxt "as synchronize license"
950
+ msgid "Sync License"
951
+ msgstr "Sync License"
952
 
953
+ #: templates/account.php:65
954
+ msgid "Cancel Trial"
955
+ msgstr "Cancel Trial"
956
 
957
+ #: templates/account.php:66
958
+ msgid "Change Plan"
959
+ msgstr "Change Plan"
960
 
961
+ #: templates/account.php:67
962
+ msgctxt "verb"
963
+ msgid "Upgrade"
964
+ msgstr "Upgrade"
965
 
966
+ #: templates/account.php:69
967
+ msgctxt "verb"
968
+ msgid "Downgrade"
969
+ msgstr "Downgrade"
970
 
971
+ #: templates/account.php:71, templates/add-ons.php:126, templates/plugin-info/features.php:72
972
+ msgid "Free"
973
+ msgstr "Free"
974
 
975
+ #: templates/account.php:72
976
+ msgid "Activate"
977
+ msgstr "Activate"
978
 
979
+ #: templates/account.php:73, templates/debug.php:311, includes/customizer/class-fs-customizer-upsell-control.php:106
980
+ msgctxt "as product pricing plan"
981
+ msgid "Plan"
982
+ msgstr "Plan"
983
 
984
+ #: templates/account.php:87
985
+ msgid "Free Trial"
986
+ msgstr "Free Trial"
987
 
988
+ #: templates/account.php:98
989
+ msgid "Account Details"
990
+ msgstr "Account Details"
991
 
992
+ #: templates/account.php:108
993
+ 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?"
994
+ 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?"
995
 
996
+ #: templates/account.php:110
997
+ 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?"
998
+ 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?"
999
 
1000
+ #: templates/account.php:113
1001
+ msgid "Delete Account"
1002
+ msgstr "Delete Account"
1003
 
1004
+ #: templates/account.php:124
1005
+ msgid "Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?"
1006
+ msgstr "Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?"
1007
 
1008
+ #: templates/account.php:125, templates/account.php:590
1009
+ msgid "Deactivate License"
1010
+ msgstr "Deactivate License"
 
1011
 
1012
+ #: templates/account.php:142
1013
+ msgid "Are you sure you want to proceed?"
1014
+ msgstr "Are you sure you want to proceed?"
 
1015
 
1016
+ #: templates/account.php:142
1017
+ msgid "Cancel Subscription"
1018
+ msgstr "Cancel Subscription"
 
1019
 
1020
+ #: templates/account.php:171
1021
+ msgctxt "as synchronize"
1022
+ msgid "Sync"
1023
+ msgstr "Sync"
1024
 
1025
+ #: templates/account.php:185, templates/debug.php:389
1026
+ msgid "Name"
1027
+ msgstr "Name"
 
1028
 
1029
+ #: templates/account.php:191, templates/debug.php:390
1030
+ msgid "Email"
1031
+ msgstr "Email"
1032
 
1033
+ #: templates/account.php:198, templates/debug.php:310, templates/debug.php:419
1034
+ msgid "User ID"
1035
+ msgstr "User ID"
1036
 
1037
+ #: templates/account.php:205
1038
+ msgid "Site ID"
1039
+ msgstr "Site ID"
1040
 
1041
+ #: templates/account.php:208
1042
+ msgid "No ID"
1043
+ msgstr "No ID"
1044
 
1045
+ #: templates/account.php:213, templates/debug.php:225, templates/debug.php:312, templates/debug.php:355, templates/debug.php:392
1046
+ msgid "Public Key"
1047
+ msgstr "Public Key"
1048
 
1049
+ #: templates/account.php:219, templates/debug.php:313, templates/debug.php:356, templates/debug.php:393
1050
+ msgid "Secret Key"
1051
+ msgstr "Secret Key"
1052
 
1053
+ #: templates/account.php:222
1054
+ msgctxt "as secret encryption key missing"
1055
+ msgid "No Secret"
1056
+ msgstr "No Secret"
1057
 
1058
+ #: templates/account.php:241
1059
+ msgid "Trial"
1060
+ msgstr "Trial"
1061
 
1062
+ #: templates/account.php:257, templates/debug.php:424
1063
+ msgid "License Key"
1064
+ msgstr "License Key"
1065
 
1066
+ #: templates/account.php:287
1067
+ msgid "not verified"
1068
+ msgstr "not verified"
1069
 
1070
+ #: templates/account.php:317
1071
+ msgid "Localhost"
1072
+ msgstr "Localhost"
1073
 
1074
+ #: templates/account.php:321
1075
+ msgctxt "as 5 licenses left"
1076
+ msgid "%s left"
1077
+ msgstr "%s left"
1078
 
1079
+ #: templates/account.php:322
1080
+ msgid "Last license"
1081
+ msgstr "Last license"
1082
 
1083
+ #: templates/account.php:352
1084
+ msgid "Premium version"
1085
+ msgstr "Premium version"
1086
 
1087
+ #: templates/account.php:354
1088
+ msgid "Free version"
1089
+ msgstr "Free version"
1090
 
1091
+ #: templates/account.php:366
1092
+ msgid "Verify Email"
1093
+ msgstr "Verify Email"
1094
 
1095
+ #: templates/account.php:377
1096
+ msgid "Download %s Version"
1097
+ msgstr "Download %s Version"
1098
 
1099
+ #: templates/account.php:391, templates/account.php:442
1100
+ msgctxt "verb"
1101
+ msgid "Show"
1102
+ msgstr "Show"
1103
 
1104
+ #: templates/account.php:405
1105
+ msgid "What is your %s?"
1106
+ msgstr "What is your %s?"
1107
 
1108
+ #: templates/account.php:413, templates/account/billing.php:27
1109
+ msgctxt "verb"
1110
+ msgid "Edit"
1111
+ msgstr "Edit"
1112
 
1113
+ #: templates/account.php:436
1114
+ msgctxt "verb"
1115
+ msgid "Hide"
1116
+ msgstr "Hide"
1117
 
1118
+ #: templates/account.php:472, templates/debug.php:218, templates/debug.php:308, templates/debug.php:351, templates/debug.php:388, templates/debug.php:417, templates/debug.php:496, templates/account/payments.php:35, templates/debug/logger.php:21
1119
+ msgid "ID"
1120
+ msgstr "ID"
 
1121
 
1122
+ #: templates/account.php:475
1123
+ msgctxt "as software license"
1124
+ msgid "License"
1125
+ msgstr "License"
1126
 
1127
+ #: templates/account.php:550
1128
+ msgid "Cancelled"
1129
+ msgstr "Cancelled"
 
1130
 
1131
+ #: templates/account.php:555
1132
+ msgid "Expired"
1133
+ msgstr "Expired"
1134
 
1135
+ #: templates/account.php:560
1136
+ msgid "No expiration"
1137
+ msgstr "No expiration"
 
1138
 
1139
+ #: templates/account.php:668, templates/account.php:724
1140
+ msgid "Activate this add-on"
1141
+ msgstr "Activate this add-on"
 
1142
 
1143
+ #: templates/account.php:745, templates/debug.php:336
1144
+ msgctxt "verb"
1145
+ msgid "Delete"
1146
+ msgstr "Delete"
1147
 
1148
+ #: templates/add-ons.php:36
1149
+ msgid "Add Ons for %s"
1150
+ msgstr "Add Ons for %s"
 
1151
 
1152
+ #: templates/add-ons.php:44
1153
+ 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."
1154
+ 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."
 
1155
 
1156
+ #: templates/add-ons.php:135
1157
+ msgid "View details"
1158
+ msgstr "View details"
 
1159
 
1160
+ #: templates/admin-notice.php:13, templates/forms/license-activation.php:73, templates/forms/resend-key.php:77
1161
+ msgctxt "as close a window"
1162
+ msgid "Dismiss"
1163
+ msgstr "Dismiss"
1164
 
1165
+ #: templates/auto-installation.php:44
1166
+ msgid "%s sec"
1167
+ msgstr "%s sec"
1168
 
1169
+ #: templates/auto-installation.php:82
1170
+ msgid "Automatic Installation"
1171
+ msgstr "Automatic Installation"
1172
 
1173
+ #: templates/auto-installation.php:92
1174
+ 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."
1175
+ 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."
1176
 
1177
+ #: templates/auto-installation.php:103
1178
+ 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."
1179
+ 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."
1180
 
1181
+ #: templates/auto-installation.php:108
1182
+ msgid "Cancel Installation"
1183
+ msgstr "Cancel Installation"
1184
 
1185
+ #: templates/checkout.php:168
1186
+ msgid "Checkout"
1187
+ msgstr "Checkout"
1188
 
1189
+ #: templates/checkout.php:168
1190
+ msgid "PCI compliant"
1191
+ msgstr "PCI compliant"
1192
 
1193
+ #: templates/connect.php:128
1194
+ msgid "Allow & Continue"
1195
+ msgstr "Allow & Continue"
1196
 
1197
+ #: templates/connect.php:131
1198
+ msgid "Re-send activation email"
1199
+ msgstr "Re-send activation email"
1200
 
1201
+ #: templates/connect.php:135
1202
+ msgid "Thanks %s!"
1203
+ msgstr "Thanks %s!"
1204
 
1205
+ #: templates/connect.php:143, templates/forms/license-activation.php:43
1206
+ msgid "Agree & Activate License"
1207
+ msgstr "Agree & Activate License"
1208
 
1209
+ #: templates/connect.php:147, templates/connect.php:170
1210
+ msgctxt "greeting"
1211
+ msgid "Hey %s,"
1212
+ msgstr "Hey %s,"
1213
 
1214
+ #: templates/connect.php:148
1215
+ msgid "Thanks for purchasing %s! To get started, please enter your license key:"
1216
+ msgstr "Thanks for purchasing %s! To get started, please enter your license key:"
1217
 
1218
+ #: templates/connect.php:154
1219
+ msgid "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
1220
+ msgstr "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
1221
 
1222
+ #: templates/connect.php:159
1223
+ msgid "Please help us improve %1$s! If you opt in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just fine."
1224
+ msgstr "Please help us improve %1$s! If you opt in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just fine."
1225
 
1226
+ #: templates/connect.php:189, templates/forms/license-activation.php:46
1227
+ msgid "License key"
1228
+ msgstr "License key"
1229
 
1230
+ #: templates/connect.php:192, templates/forms/license-activation.php:19
1231
+ msgid "Can't find your license key?"
1232
+ msgstr "Can't find your license key?"
1233
 
1234
+ #: templates/connect.php:199, templates/forms/deactivation/retry-skip.php:20
1235
+ msgctxt "verb"
1236
+ msgid "Skip"
1237
+ msgstr "Skip"
1238
 
1239
+ #: templates/connect.php:228
1240
+ msgid "Your Profile Overview"
1241
+ msgstr "Your Profile Overview"
1242
 
1243
+ #: templates/connect.php:229
1244
+ msgid "Name and email address"
1245
+ msgstr "Name and email address"
1246
 
1247
+ #: templates/connect.php:234
1248
+ msgid "Your Site Overview"
1249
+ msgstr "Your Site Overview"
1250
 
1251
+ #: templates/connect.php:235
1252
+ msgid "Site URL, WP version, PHP info, plugins & themes"
1253
+ msgstr "Site URL, WP version, PHP info, plugins & themes"
1254
 
1255
+ #: templates/connect.php:240
1256
+ msgid "Admin Notices"
1257
+ msgstr "Admin Notices"
1258
 
1259
+ #: templates/connect.php:241, templates/connect.php:263
1260
+ msgid "Updates, announcements, marketing, no spam"
1261
+ msgstr "Updates, announcements, marketing, no spam"
 
1262
 
1263
+ #: templates/connect.php:246
1264
+ msgid "Current %s Events"
1265
+ msgstr "Current %s Events"
 
1266
 
1267
+ #: templates/connect.php:247
1268
+ msgid "Activation, deactivation and uninstall"
1269
+ msgstr "Activation, deactivation and uninstall"
 
1270
 
1271
+ #: templates/connect.php:262
1272
+ msgid "Newsletter"
1273
+ msgstr "Newsletter"
 
1274
 
1275
+ #: templates/connect.php:279, templates/forms/license-activation.php:38
1276
+ 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."
1277
+ 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."
 
1278
 
1279
+ #: templates/connect.php:284
1280
+ msgid "What permissions are being granted?"
1281
+ msgstr "What permissions are being granted?"
 
1282
 
1283
+ #: templates/connect.php:305
1284
+ msgid "Don't have a license key?"
1285
+ msgstr "Don't have a license key?"
1286
 
1287
+ #: templates/connect.php:306
1288
+ msgid "Activate Free Version"
1289
+ msgstr "Activate Free Version"
 
1290
 
1291
+ #: templates/connect.php:308
1292
+ msgid "Have a license key?"
1293
+ msgstr "Have a license key?"
 
1294
 
1295
+ #: templates/connect.php:316
1296
+ msgid "Privacy Policy"
1297
+ msgstr "Privacy Policy"
1298
 
1299
+ #: templates/connect.php:318
1300
+ msgid "Terms of Service"
1301
+ msgstr "Terms of Service"
1302
 
1303
+ #: templates/connect.php:436
1304
+ msgctxt "as in the process of sending an email"
1305
+ msgid "Sending email"
1306
+ msgstr "Sending email"
1307
 
1308
+ #: templates/connect.php:437
1309
+ msgctxt "as activating plugin"
1310
+ msgid "Activating"
1311
+ msgstr "Activating"
1312
 
1313
+ #: templates/contact.php:74
1314
+ msgid "Contact"
1315
+ msgstr "Contact"
1316
 
1317
+ #: templates/debug.php:17
1318
+ msgctxt "as turned off"
1319
+ msgid "Off"
1320
+ msgstr "Off"
1321
 
1322
+ #: templates/debug.php:18
1323
+ msgctxt "as turned on"
1324
+ msgid "On"
1325
+ msgstr "On"
1326
 
1327
+ #: templates/debug.php:20
1328
+ msgid "SDK"
1329
+ msgstr "SDK"
1330
 
1331
+ #: templates/debug.php:24
1332
+ msgctxt "as code debugging"
1333
+ msgid "Debugging"
1334
+ msgstr "Debugging"
1335
 
1336
+ #: templates/debug.php:54, templates/debug.php:226, templates/debug.php:314
1337
+ msgid "Actions"
1338
+ msgstr "Actions"
1339
 
1340
+ #: templates/debug.php:64
1341
+ msgid "Are you sure you want to delete all Freemius data?"
1342
+ msgstr "Are you sure you want to delete all Freemius data?"
1343
 
1344
+ #: templates/debug.php:64
1345
+ msgid "Delete All Accounts"
1346
+ msgstr "Delete All Accounts"
1347
 
1348
+ #: templates/debug.php:71
1349
+ msgid "Clear API Cache"
1350
+ msgstr "Clear API Cache"
1351
 
1352
+ #: templates/debug.php:78
1353
+ msgid "Sync Data From Server"
1354
+ msgstr "Sync Data From Server"
1355
 
1356
+ #: templates/debug.php:82
1357
+ msgid "Load DB Option"
1358
+ msgstr "Load DB Option"
1359
 
1360
+ #: templates/debug.php:85
1361
+ msgid "Set DB Option"
1362
+ msgstr "Set DB Option"
1363
 
1364
+ #: templates/debug.php:162
1365
+ msgid "Key"
1366
+ msgstr "Key"
1367
 
1368
+ #: templates/debug.php:163
1369
+ msgid "Value"
1370
+ msgstr "Value"
1371
 
1372
+ #: templates/debug.php:179
1373
+ msgctxt "as software development kit versions"
1374
+ msgid "SDK Versions"
1375
+ msgstr "SDK Versions"
1376
 
1377
+ #: templates/debug.php:184
1378
+ msgid "SDK Path"
1379
+ msgstr "SDK Path"
1380
 
1381
+ #: templates/debug.php:185, templates/debug.php:224
1382
+ msgid "Module Path"
1383
+ msgstr "Module Path"
1384
 
1385
+ #: templates/debug.php:186
1386
+ msgid "Is Active"
1387
+ msgstr "Is Active"
 
1388
 
1389
+ #: templates/debug.php:214, templates/debug/plugins-themes-sync.php:35
1390
+ msgid "Plugins"
1391
+ msgstr "Plugins"
1392
 
1393
+ #: templates/debug.php:214, templates/debug/plugins-themes-sync.php:56
1394
+ msgid "Themes"
1395
+ msgstr "Themes"
1396
 
1397
+ #: templates/debug.php:219, templates/debug.php:309, templates/debug.php:353, templates/debug/scheduled-crons.php:81
1398
+ msgid "Slug"
1399
+ msgstr "Slug"
1400
 
1401
+ #: templates/debug.php:221, templates/debug.php:352
1402
+ msgid "Title"
1403
+ msgstr "Title"
1404
 
1405
+ #: templates/debug.php:222
1406
+ msgctxt "as application program interface"
1407
+ msgid "API"
1408
+ msgstr "API"
1409
 
1410
+ #: templates/debug.php:223
1411
+ msgid "Freemius State"
1412
+ msgstr "Freemius State"
1413
 
1414
+ #: templates/debug.php:255
1415
+ msgctxt "as connection was successful"
1416
+ msgid "Connected"
1417
+ msgstr "Connected"
1418
 
1419
+ #: templates/debug.php:256
1420
+ msgctxt "as connection blocked"
1421
+ msgid "Blocked"
1422
+ msgstr "Blocked"
1423
 
1424
+ #: templates/debug.php:277
1425
+ msgid "Simulate Trial"
1426
+ msgstr "Simulate Trial"
1427
 
1428
+ #: templates/debug.php:302
1429
+ msgid "%s Installs"
1430
+ msgstr "%s Installs"
1431
 
1432
+ #: templates/debug.php:304
1433
+ msgctxt "like websites"
1434
+ msgid "Sites"
1435
+ msgstr "Sites"
1436
 
1437
+ #: templates/debug.php:347
1438
+ msgid "Add Ons of module %s"
1439
+ msgstr "Add Ons of module %s"
1440
 
1441
+ #: templates/debug.php:384
1442
+ msgid "Users"
1443
+ msgstr "Users"
1444
 
1445
+ #: templates/debug.php:391
1446
+ msgid "Verified"
1447
+ msgstr "Verified"
1448
 
1449
+ #: templates/debug.php:413
1450
+ msgid "%s Licenses"
1451
+ msgstr "%s Licenses"
1452
 
1453
+ #: templates/debug.php:418
1454
+ msgid "Plugin ID"
1455
+ msgstr "Plugin ID"
1456
 
1457
+ #: templates/debug.php:420
1458
+ msgid "Plan ID"
1459
+ msgstr "Plan ID"
1460
 
1461
+ #: templates/debug.php:421
1462
+ msgid "Quota"
1463
+ msgstr "Quota"
1464
 
1465
+ #: templates/debug.php:422
1466
+ msgid "Activated"
1467
+ msgstr "Activated"
 
1468
 
1469
+ #: templates/debug.php:423
1470
+ msgid "Blocking"
1471
+ msgstr "Blocking"
1472
 
1473
+ #: templates/debug.php:425
1474
+ msgctxt "as expiration date"
1475
+ msgid "Expiration"
1476
+ msgstr "Expiration"
1477
 
1478
+ #: templates/debug.php:454
1479
+ msgid "Debug Log"
1480
+ msgstr "Debug Log"
1481
 
1482
+ #: templates/debug.php:458
1483
+ msgid "All Types"
1484
+ msgstr "All Types"
 
1485
 
1486
+ #: templates/debug.php:465
1487
+ msgid "All Requests"
1488
+ msgstr "All Requests"
1489
 
1490
+ #: templates/debug.php:470, templates/debug.php:499, templates/debug/logger.php:25
1491
+ msgid "File"
1492
+ msgstr "File"
1493
 
1494
+ #: templates/debug.php:471, templates/debug.php:497, templates/debug/logger.php:23
1495
+ msgid "Function"
1496
+ msgstr "Function"
1497
 
1498
+ #: templates/debug.php:472
1499
+ msgid "Process ID"
1500
+ msgstr "Process ID"
1501
 
1502
+ #: templates/debug.php:473
1503
+ msgid "Logger"
1504
+ msgstr "Logger"
1505
 
1506
+ #: templates/debug.php:474, templates/debug.php:498, templates/debug/logger.php:24
1507
+ msgid "Message"
1508
+ msgstr "Message"
1509
 
1510
+ #: templates/debug.php:476
1511
+ msgid "Filter"
1512
+ msgstr "Filter"
1513
 
1514
+ #: templates/debug.php:484
1515
+ msgid "Download"
1516
+ msgstr "Download"
1517
 
1518
+ #: templates/debug.php:495, templates/debug/logger.php:22
1519
+ msgid "Type"
1520
+ msgstr "Type"
1521
 
1522
+ #: templates/debug.php:500, templates/debug/logger.php:26
1523
+ msgid "Timestamp"
1524
+ msgstr "Timestamp"
1525
 
1526
+ #: templates/secure-https-header.php:28
1527
+ msgid "Secure HTTPS %s page, running from an external domain"
1528
+ msgstr "Secure HTTPS %s page, running from an external domain"
1529
 
1530
+ #: includes/customizer/class-fs-customizer-support-section.php:55, templates/plugin-info/features.php:43
1531
+ msgid "Support"
1532
+ msgstr "Support"
1533
 
1534
+ #: includes/debug/class-fs-debug-bar-panel.php:48, templates/debug/api-calls.php:54, templates/debug/logger.php:62
1535
+ msgctxt "milliseconds"
1536
+ msgid "ms"
1537
+ msgstr "ms"
1538
 
1539
+ #: includes/debug/debug-bar-start.php:41
1540
+ msgid "Freemius API"
1541
+ msgstr "Freemius API"
1542
 
1543
+ #: includes/debug/debug-bar-start.php:42
1544
+ msgid "Requests"
1545
+ msgstr "Requests"
1546
 
1547
+ #: templates/account/billing.php:28
1548
+ msgctxt "verb"
1549
+ msgid "Update"
1550
+ msgstr "Update"
1551
 
1552
+ #: templates/account/billing.php:39
1553
+ msgid "Billing"
1554
+ msgstr "Billing"
1555
 
1556
+ #: templates/account/billing.php:44, templates/account/billing.php:44
1557
+ msgid "Business name"
1558
+ msgstr "Business name"
1559
 
1560
+ #: templates/account/billing.php:45, templates/account/billing.php:45
1561
+ msgid "Tax / VAT ID"
1562
+ msgstr "Tax / VAT ID"
1563
 
1564
+ #: templates/account/billing.php:48, templates/account/billing.php:48, templates/account/billing.php:49, templates/account/billing.php:49
1565
+ msgid "Address Line %d"
1566
+ msgstr "Address Line %d"
1567
 
1568
+ #: templates/account/billing.php:52, templates/account/billing.php:52
1569
+ msgid "City"
1570
+ msgstr "City"
1571
 
1572
+ #: templates/account/billing.php:52, templates/account/billing.php:52
1573
+ msgid "Town"
1574
+ msgstr "Town"
 
1575
 
1576
+ #: templates/account/billing.php:53, templates/account/billing.php:53
1577
+ msgid "ZIP / Postal Code"
1578
+ msgstr "ZIP / Postal Code"
1579
 
1580
+ #: templates/account/billing.php:308
1581
+ msgid "Country"
1582
+ msgstr "Country"
1583
 
1584
+ #: templates/account/billing.php:310
1585
+ msgid "Select Country"
1586
+ msgstr "Select Country"
1587
 
1588
+ #: templates/account/billing.php:317, templates/account/billing.php:318
1589
+ msgid "State"
1590
+ msgstr "State"
1591
 
1592
+ #: templates/account/billing.php:317, templates/account/billing.php:318
1593
+ msgid "Province"
1594
+ msgstr "Province"
1595
 
1596
+ #: templates/account/payments.php:29
1597
+ msgid "Payments"
1598
+ msgstr "Payments"
1599
 
1600
+ #: templates/account/payments.php:36
1601
+ msgid "Date"
1602
+ msgstr "Date"
1603
 
1604
+ #: templates/account/payments.php:37
1605
+ msgid "Amount"
1606
+ msgstr "Amount"
1607
 
1608
+ #: templates/account/payments.php:38, templates/account/payments.php:50
1609
+ msgid "Invoice"
1610
+ msgstr "Invoice"
1611
 
1612
+ #: templates/debug/api-calls.php:56
1613
+ msgid "API"
1614
+ msgstr "API"
1615
 
1616
+ #: templates/debug/api-calls.php:68
1617
+ msgid "Method"
1618
+ msgstr "Method"
1619
 
1620
+ #: templates/debug/api-calls.php:69
1621
+ msgid "Code"
1622
+ msgstr "Code"
1623
 
1624
+ #: templates/debug/api-calls.php:70
1625
+ msgid "Length"
1626
+ msgstr "Length"
1627
 
1628
+ #: templates/debug/api-calls.php:71
1629
+ msgctxt "as file/folder path"
1630
+ msgid "Path"
1631
+ msgstr "Path"
1632
 
1633
+ #: templates/debug/api-calls.php:73
1634
+ msgid "Body"
1635
+ msgstr "Body"
1636
 
1637
+ #: templates/debug/api-calls.php:75
1638
+ msgid "Result"
1639
+ msgstr "Result"
1640
 
1641
+ #: templates/debug/api-calls.php:76
1642
+ msgid "Start"
1643
+ msgstr "Start"
 
1644
 
1645
+ #: templates/debug/api-calls.php:77
1646
+ msgid "End"
1647
+ msgstr "End"
1648
 
1649
+ #: templates/debug/logger.php:15
1650
+ msgid "Log"
1651
+ msgstr "Log"
1652
 
1653
+ #. translators: %s: time period (e.g. In "2 hours")
1654
+ #: templates/debug/plugins-themes-sync.php:18, templates/debug/scheduled-crons.php:92
1655
+ msgid "In %s"
1656
+ msgstr "In %s"
1657
 
1658
+ #. translators: %s: time period (e.g. "2 hours" ago)
1659
+ #: templates/debug/plugins-themes-sync.php:20, templates/debug/scheduled-crons.php:94
1660
+ msgid "%s ago"
1661
+ msgstr "%s ago"
1662
 
1663
+ #: templates/debug/plugins-themes-sync.php:21, templates/debug/scheduled-crons.php:75
1664
+ msgctxt "seconds"
1665
+ msgid "sec"
1666
+ msgstr "sec"
1667
 
1668
+ #: templates/debug/plugins-themes-sync.php:23
1669
+ msgid "Plugins & Themes Sync"
1670
+ msgstr "Plugins & Themes Sync"
 
1671
 
1672
+ #: templates/debug/plugins-themes-sync.php:28
1673
+ msgid "Total"
1674
+ msgstr "Total"
 
1675
 
1676
+ #: templates/debug/plugins-themes-sync.php:29, templates/debug/scheduled-crons.php:85
1677
+ msgid "Last"
1678
+ msgstr "Last"
 
1679
 
1680
+ #: templates/debug/scheduled-crons.php:77
1681
+ msgid "Scheduled Crons"
1682
+ msgstr "Scheduled Crons"
1683
 
1684
+ #: templates/debug/scheduled-crons.php:82
1685
+ msgid "Module"
1686
+ msgstr "Module"
1687
 
1688
+ #: templates/debug/scheduled-crons.php:83
1689
+ msgid "Module Type"
1690
+ msgstr "Module Type"
1691
 
1692
+ #: templates/debug/scheduled-crons.php:84
1693
+ msgid "Cron Type"
1694
+ msgstr "Cron Type"
1695
 
1696
+ #: templates/debug/scheduled-crons.php:86
1697
+ msgid "Next"
1698
+ msgstr "Next"
 
1699
 
1700
+ #: templates/forms/affiliation.php:81
1701
+ msgid "Non-expiring"
1702
+ msgstr "Non-expiring"
 
1703
 
1704
+ #: templates/forms/affiliation.php:84
1705
+ msgid "Apply to become an affiliate"
1706
+ msgstr "Apply to become an affiliate"
 
1707
 
1708
+ #: templates/forms/affiliation.php:103
1709
+ msgid "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
1710
+ msgstr "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
 
1711
 
1712
+ #: templates/forms/affiliation.php:114
1713
+ 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."
1714
+ 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."
 
1715
 
1716
+ #: templates/forms/affiliation.php:117
1717
+ msgid "Your affiliation account was temporarily suspended."
1718
+ msgstr "Your affiliation account was temporarily suspended."
 
1719
 
1720
+ #: templates/forms/affiliation.php:120
1721
+ 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."
1722
+ 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."
1723
 
1724
+ #: templates/forms/affiliation.php:123
1725
+ msgid "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
1726
+ msgstr "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
 
1727
 
1728
+ #: templates/forms/affiliation.php:136
1729
+ msgid "Like the %s? Become our ambassador and earn cash ;-)"
1730
+ msgstr "Like the %s? Become our ambassador and earn cash ;-)"
 
1731
 
1732
+ #: templates/forms/affiliation.php:137
1733
+ msgid "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
1734
+ msgstr "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
 
1735
 
1736
+ #: templates/forms/affiliation.php:140
1737
+ msgid "Program Summary"
1738
+ msgstr "Program Summary"
1739
 
1740
+ #: templates/forms/affiliation.php:142
1741
+ msgid "%s commission when a customer purchases a new license."
1742
+ msgstr "%s commission when a customer purchases a new license."
 
1743
 
1744
+ #: templates/forms/affiliation.php:144
1745
+ msgid "Get commission for automated subscription renewals."
1746
+ msgstr "Get commission for automated subscription renewals."
1747
 
1748
+ #: templates/forms/affiliation.php:147
1749
+ msgid "%s tracking cookie after the first visit to maximize earnings potential."
1750
+ msgstr "%s tracking cookie after the first visit to maximize earnings potential."
1751
 
1752
+ #: templates/forms/affiliation.php:150
1753
+ msgid "Unlimited commissions."
1754
+ msgstr "Unlimited commissions."
1755
 
1756
+ #: templates/forms/affiliation.php:152
1757
+ msgid "%s minimum payout amount."
1758
+ msgstr "%s minimum payout amount."
1759
 
1760
+ #: templates/forms/affiliation.php:153
1761
+ msgid "Payouts are in USD and processed monthly via PayPal."
1762
+ msgstr "Payouts are in USD and processed monthly via PayPal."
1763
 
1764
+ #: templates/forms/affiliation.php:154
1765
+ msgid "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
1766
+ msgstr "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
1767
 
1768
+ #: templates/forms/affiliation.php:157
1769
+ msgid "Affiliate"
1770
+ msgstr "Affiliate"
1771
 
1772
+ #: templates/forms/affiliation.php:160, templates/forms/resend-key.php:23
1773
+ msgid "Email address"
1774
+ msgstr "Email address"
1775
 
1776
+ #: templates/forms/affiliation.php:164
1777
+ msgid "Full name"
1778
+ msgstr "Full name"
1779
 
1780
+ #: templates/forms/affiliation.php:168
1781
+ msgid "PayPal account email address"
1782
+ msgstr "PayPal account email address"
1783
 
1784
+ #: templates/forms/affiliation.php:172
1785
+ msgid "Where are you going to promote the %s?"
1786
+ msgstr "Where are you going to promote the %s?"
1787
 
1788
+ #: templates/forms/affiliation.php:174
1789
+ msgid "Enter the domain of your website or other websites from where you plan to promote the %s."
1790
+ msgstr "Enter the domain of your website or other websites from where you plan to promote the %s."
1791
 
1792
+ #: templates/forms/affiliation.php:176
1793
+ msgid "Add another domain"
1794
+ msgstr "Add another domain"
1795
 
1796
+ #: templates/forms/affiliation.php:180
1797
+ msgid "Extra Domains"
1798
+ msgstr "Extra Domains"
1799
 
1800
+ #: templates/forms/affiliation.php:181
1801
+ msgid "Extra domains where you will be marketing the product from."
1802
+ msgstr "Extra domains where you will be marketing the product from."
1803
 
1804
+ #: templates/forms/affiliation.php:191
1805
+ msgid "Promotion methods"
1806
+ msgstr "Promotion methods"
1807
 
1808
+ #: templates/forms/affiliation.php:194
1809
+ msgid "Social media (Facebook, Twitter, etc.)"
1810
+ msgstr "Social media (Facebook, Twitter, etc.)"
1811
 
1812
+ #: templates/forms/affiliation.php:198
1813
+ msgid "Mobile apps"
1814
+ msgstr "Mobile apps"
1815
 
1816
+ #: templates/forms/affiliation.php:202
1817
+ msgid "Website, email, and social media statistics (optional)"
1818
+ msgstr "Website, email, and social media statistics (optional)"
1819
 
1820
+ #: templates/forms/affiliation.php:205
1821
+ 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)."
1822
+ 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)."
1823
 
1824
+ #: templates/forms/affiliation.php:209
1825
+ msgid "How will you promote us?"
1826
+ msgstr "How will you promote us?"
1827
 
1828
+ #: templates/forms/affiliation.php:212
1829
+ msgid "Please provide details on how you intend to promote %s (please be as specific as possible)."
1830
+ msgstr "Please provide details on how you intend to promote %s (please be as specific as possible)."
1831
 
1832
+ #: templates/forms/affiliation.php:218, templates/forms/resend-key.php:22
1833
+ msgid "Cancel"
1834
+ msgstr "Cancel"
1835
 
1836
+ #: templates/forms/affiliation.php:220
1837
+ msgid "Become an affiliate"
1838
+ msgstr "Become an affiliate"
1839
 
1840
+ #: templates/forms/affiliation.php:275
1841
+ msgid "Email address is required."
1842
+ msgstr "Email address is required."
1843
 
1844
+ #: templates/forms/affiliation.php:281
1845
+ msgid "PayPal email address is required."
1846
+ msgstr "PayPal email address is required."
1847
 
1848
+ #: templates/forms/affiliation.php:291
1849
+ msgid "Domain is required."
1850
+ msgstr "Domain is required."
1851
 
1852
+ #: templates/forms/affiliation.php:294, templates/forms/affiliation.php:308
1853
+ msgid "Invalid domain"
1854
+ msgstr "Invalid domain"
1855
 
1856
+ #: templates/forms/affiliation.php:364
1857
+ msgid "Processing"
1858
+ msgstr "Processing"
 
1859
 
1860
+ #: templates/forms/license-activation.php:20
1861
+ msgid "Please enter the license key that you received in the email right after the purchase:"
1862
+ msgstr "Please enter the license key that you received in the email right after the purchase:"
 
1863
 
1864
+ #: templates/forms/license-activation.php:25
1865
+ msgid "Update License"
1866
+ msgstr "Update License"
 
1867
 
1868
+ #: templates/forms/optout.php:30
1869
+ msgctxt "verb"
1870
+ msgid "Opt Out"
1871
+ msgstr "Opt Out"
1872
 
1873
+ #: templates/forms/optout.php:31
1874
+ msgctxt "verb"
1875
+ msgid "Opt In"
1876
+ msgstr "Opt In"
1877
 
1878
+ #: templates/forms/optout.php:32
1879
+ msgid "We appreciate your help in making the %s better by letting us track some usage data."
1880
+ msgstr "We appreciate your help in making the %s better by letting us track some usage data."
 
1881
 
1882
+ #: templates/forms/optout.php:33
1883
+ 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."
1884
+ 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."
1885
 
1886
+ #: templates/forms/optout.php:35
1887
+ msgid "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
1888
+ msgstr "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
1889
 
1890
+ #: templates/forms/resend-key.php:21
1891
+ msgid "Send License Key"
1892
+ msgstr "Send License Key"
1893
 
1894
+ #: templates/forms/resend-key.php:57
1895
+ msgid "Enter the email address you've used for the upgrade below and we will resend you the license key."
1896
+ msgstr "Enter the email address you've used for the upgrade below and we will resend you the license key."
1897
 
1898
+ #: templates/forms/trial-start.php:22
1899
+ msgid "You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
1900
+ msgstr "You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
1901
 
1902
+ #: templates/forms/trial-start.php:28
1903
+ 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."
1904
+ 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."
1905
 
1906
+ #: templates/js/style-premium-theme.php:37
1907
+ msgid "Premium"
1908
+ msgstr "Premium"
1909
 
1910
+ #: templates/plugin-info/description.php:72, templates/plugin-info/screenshots.php:31
1911
+ msgid "Click to view full-size screenshot %d"
1912
+ msgstr "Click to view full-size screenshot %d"
1913
 
1914
+ #: templates/plugin-info/features.php:56
1915
+ msgid "Unlimited Updates"
1916
+ msgstr "Unlimited Updates"
1917
 
1918
+ #: templates/forms/deactivation/contact.php:19
1919
+ msgid "Sorry for the inconvenience and we are here to help if you give us a chance."
1920
+ msgstr "Sorry for the inconvenience and we are here to help if you give us a chance."
 
1921
 
1922
+ #: templates/forms/deactivation/contact.php:22
1923
+ msgid "Contact Support"
1924
+ msgstr "Contact Support"
1925
 
1926
+ #: templates/forms/deactivation/form.php:56
1927
+ msgid "Anonymous feedback"
1928
+ msgstr "Anonymous feedback"
1929
 
1930
+ #: templates/forms/deactivation/form.php:63
1931
+ msgid "Deactivate"
1932
+ msgstr "Deactivate"
1933
 
1934
+ #: templates/forms/deactivation/form.php:65
1935
+ msgid "Activate %s"
1936
+ msgstr "Activate %s"
1937
 
1938
+ #: templates/forms/deactivation/form.php:76
1939
+ msgid "Quick feedback"
1940
+ msgstr "Quick feedback"
1941
 
1942
+ #: templates/forms/deactivation/form.php:80
1943
+ msgid "If you have a moment, please let us know why you are %s"
1944
+ msgstr "If you have a moment, please let us know why you are %s"
1945
 
1946
+ #: templates/forms/deactivation/form.php:80
1947
+ msgid "deactivating"
1948
+ msgstr "deactivating"
1949
 
1950
+ #: templates/forms/deactivation/form.php:80
1951
+ msgid "switching"
1952
+ msgstr "switching"
1953
 
1954
+ #: templates/forms/deactivation/form.php:248
1955
+ msgid "Submit & %s"
1956
+ msgstr "Submit & %s"
1957
 
1958
+ #: templates/forms/deactivation/form.php:269
1959
+ msgid "Kindly tell us the reason so we can improve."
1960
+ msgstr "Kindly tell us the reason so we can improve."
1961
 
1962
+ #: templates/forms/deactivation/form.php:390
1963
+ msgid "Yes - %s"
1964
+ msgstr "Yes - %s"
1965
 
1966
+ #: templates/forms/deactivation/form.php:397
1967
+ msgid "Skip & %s"
1968
+ msgstr "Skip & %s"
1969
 
1970
+ #: templates/forms/deactivation/retry-skip.php:21
1971
+ msgid "Click here to use the plugin anonymously"
1972
+ msgstr "Click here to use the plugin anonymously"
1973
 
1974
+ #: templates/forms/deactivation/retry-skip.php:23
1975
+ msgid "You might have missed it, but you don't have to share any data and can just %s the opt-in."
1976
+ msgstr "You might have missed it, but you don't have to share any data and can just %s the opt-in."
includes/vendor/freemius/wordpress-sdk/languages/freemius-es_ES.mo ADDED
Binary file
includes/vendor/freemius/wordpress-sdk/languages/freemius-es_ES.po ADDED
@@ -0,0 +1,2035 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2017 freemius
2
+ # This file is distributed under the same license as the freemius package.
3
+ # Translators:
4
+ # Carlos Longarela <carlos@longarela.eu>, 2017
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: 2017-12-04 15:57+0000\n"
11
+ "Last-Translator: Vova Feldman <vova@freemius.com>\n"
12
+ "Language: es_ES\n"
13
+ "Language-Team: Spanish (Spain) (http://www.transifex.com/freemius/wordpress-sdk/language/es_ES/)\n"
14
+ "Content-Type: text/plain; charset=UTF-8\n"
15
+ "Content-Transfer-Encoding: 8bit\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\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.php:959
25
+ msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
26
+ msgstr "Freemius SDK no pudo encontrar el archivo principal del plugin. Por favor contacta a sdk@freemius.com con el error actual."
27
+
28
+ #: includes/class-freemius.php:961
29
+ msgid "Error"
30
+ msgstr "Error"
31
+
32
+ #: includes/class-freemius.php:1277
33
+ msgid "I found a better %s"
34
+ msgstr "He encontrado un mejor %s"
35
+
36
+ #: includes/class-freemius.php:1279
37
+ msgid "What's the %s's name?"
38
+ msgstr "¿Cuál es el nombre de %s?"
39
+
40
+ #: includes/class-freemius.php:1285
41
+ msgid "It's a temporary %s. I'm just debugging an issue."
42
+ msgstr "Es temporal %s. Sólo estoy depurando un problema."
43
+
44
+ #: includes/class-freemius.php:1287
45
+ msgid "Deactivation"
46
+ msgstr "Desactivación"
47
+
48
+ #: includes/class-freemius.php:1288
49
+ msgid "Theme Switch"
50
+ msgstr "Cambiar Tema"
51
+
52
+ #: includes/class-freemius.php1297, templates/forms/resend-key.php:24
53
+ msgid "Other"
54
+ msgstr "Otra"
55
+
56
+ #: includes/class-freemius.php:1305
57
+ msgid "I no longer need the %s"
58
+ msgstr "Ya no necesito el %s"
59
+
60
+ #: includes/class-freemius.php:1312
61
+ msgid "I only needed the %s for a short period"
62
+ msgstr "Sólo necesitaba la %s por un corto período"
63
+
64
+ #: includes/class-freemius.php:1318
65
+ msgid "The %s broke my site"
66
+ msgstr "%s ha roto mi sitio"
67
+
68
+ #: includes/class-freemius.php:1325
69
+ msgid "The %s suddenly stopped working"
70
+ msgstr "%s de repente ha dejado de funcionar"
71
+
72
+ #: includes/class-freemius.php:1335
73
+ msgid "I can't pay for it anymore"
74
+ msgstr "No puedo pagarlo durante más tiempo"
75
+
76
+ #: includes/class-freemius.php:1337
77
+ msgid "What price would you feel comfortable paying?"
78
+ msgstr "¿Qué precio te sentirías cómodo pagando?"
79
+
80
+ #: includes/class-freemius.php:1343
81
+ msgid "I don't like to share my information with you"
82
+ msgstr "No me gusta compartir mi información contigo"
83
+
84
+ #: includes/class-freemius.php:1364
85
+ msgid "The %s didn't work"
86
+ msgstr "%s no funcionaba"
87
+
88
+ #: includes/class-freemius.php:1374
89
+ msgid "I couldn't understand how to make it work"
90
+ msgstr "No entiendo cómo hacerlo funcionar"
91
+
92
+ #: includes/class-freemius.php:1382
93
+ msgid "The %s is great, but I need specific feature that you don't support"
94
+ msgstr "%s es genial, pero necesito una característica que no soportáis"
95
+
96
+ #: includes/class-freemius.php:1384
97
+ msgid "What feature?"
98
+ msgstr "¿Qué característica?"
99
+
100
+ #: includes/class-freemius.php:1388
101
+ msgid "The %s is not working"
102
+ msgstr "%s no funciona"
103
+
104
+ #: includes/class-freemius.php:1390
105
+ msgid "Kindly share what didn't work so we can fix it for future users..."
106
+ msgstr "Por favor, comparte lo que no funcionó para que podamos arreglarlo para los futuros usuarios..."
107
+
108
+ #: includes/class-freemius.php:1394
109
+ msgid "It's not what I was looking for"
110
+ msgstr "No es lo que estaba buscando"
111
+
112
+ #: includes/class-freemius.php:1396
113
+ msgid "What you've been looking for?"
114
+ msgstr "¿Que has estado buscando?"
115
+
116
+ #: includes/class-freemius.php:1400
117
+ msgid "The %s didn't work as expected"
118
+ msgstr "%s no funciona como esperaba"
119
+
120
+ #: includes/class-freemius.php:1402
121
+ msgid "What did you expect?"
122
+ msgstr "¿Qué esperas?"
123
+
124
+ #: includes/class-freemius.php1938, templates/debug.php:20
125
+ msgid "Freemius Debug"
126
+ msgstr "Debug Freemius"
127
+
128
+ #: includes/class-freemius.php:2508
129
+ msgid "I don't know what is cURL or how to install it, help me!"
130
+ msgstr "No sé qué es cURL o cómo instalarlo, ¡ayúdame!"
131
+
132
+ #: includes/class-freemius.php:2510
133
+ 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."
134
+ 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."
135
+
136
+ #: includes/class-freemius.php:2517
137
+ 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."
138
+ 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."
139
+
140
+ #: includes/class-freemius.php:2619
141
+ msgid "Yes - do your thing"
142
+ msgstr "Vamos, adelante"
143
+
144
+ #: includes/class-freemius.php:2624
145
+ msgid "No - just deactivate"
146
+ msgstr "No - sólo desactivar"
147
+
148
+ #: includes/class-freemius.php2669, includes/class-freemius.php3134,
149
+ #: includes/class-freemius.php3988, includes/class-freemius.php7270,
150
+ #: includes/class-freemius.php9137, includes/class-freemius.php9193,
151
+ #: includes/class-freemius.php9254, includes/class-freemius.php11154,
152
+ #: includes/class-freemius.php11165, includes/class-freemius.php11614,
153
+ #: includes/class-freemius.php11632, includes/class-freemius.php11730,
154
+ #: includes/class-freemius.php12405, templates/add-ons.php:43
155
+ msgctxt "exclamation"
156
+ msgid "Oops"
157
+ msgstr "Oops"
158
+
159
+ #: includes/class-freemius.php:2736
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 "¡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."
162
+
163
+ #: includes/class-freemius.php:3131
164
+ msgctxt "addonX cannot run without pluginY"
165
+ msgid "%s cannot run without %s."
166
+ msgstr "%s no se puede ejecutar sin %s."
167
+
168
+ #: includes/class-freemius.php:3132
169
+ msgctxt "addonX cannot run..."
170
+ msgid "%s cannot run without the plugin."
171
+ msgstr "%s no se puede ejecutar sin el plugin."
172
+
173
+ #: includes/class-freemius.php3253, includes/class-freemius.php3278,
174
+ #: includes/class-freemius.php:11703
175
+ msgid "Unexpected API error. Please contact the %s's author with the following error."
176
+ msgstr "Error inesperado del API. Pónte en contacto con el autor de %s indicándole el siguiente error."
177
+
178
+ #: includes/class-freemius.php:3686
179
+ msgid "Premium %s version was successfully activated."
180
+ msgstr "La versión Premium %s ha sido activada con éxito."
181
+
182
+ #: includes/class-freemius.php3688, includes/class-freemius.php:4913
183
+ msgctxt ""
184
+ msgid "W00t"
185
+ msgstr "W00t"
186
+
187
+ #: includes/class-freemius.php:3703
188
+ msgid "You have a %s license."
189
+ msgstr "Tienes una licencia %s."
190
+
191
+ #: includes/class-freemius.php3707, includes/class-freemius.php8841,
192
+ #: includes/class-freemius.php8850, includes/class-freemius.php11105,
193
+ #: includes/class-freemius.php11318, includes/class-freemius.php11380,
194
+ #: includes/class-freemius.php:11492
195
+ msgctxt "interjection expressing joy or exuberance"
196
+ msgid "Yee-haw"
197
+ msgstr "Vaya"
198
+
199
+ #: includes/class-freemius.php:3971
200
+ 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."
201
+ 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."
202
+
203
+ #: includes/class-freemius.php:3975
204
+ msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
205
+ msgstr "%s es un complemento único de premium. Tienes que comprar una licencia primero antes de activar el plugin."
206
+
207
+ #: includes/class-freemius.php3984, templates/account.php692,
208
+ #: templates/add-ons.php:99
209
+ msgid "More information about %s"
210
+ msgstr "Más información sobre %s"
211
+
212
+ #: includes/class-freemius.php:3985
213
+ msgid "Purchase License"
214
+ msgstr "Comprar Licencia"
215
+
216
+ #: includes/class-freemius.php4422, templates/connect.php:136
217
+ 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."
218
+ 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."
219
+
220
+ #: includes/class-freemius.php:4426
221
+ msgid "start the trial"
222
+ msgstr "comenzar el período de prueba"
223
+
224
+ #: includes/class-freemius.php4427, templates/connect.php:140
225
+ msgid "complete the install"
226
+ msgstr "completar la instalación"
227
+
228
+ #: includes/class-freemius.php:4506
229
+ msgid "You are just one step away - %s"
230
+ msgstr "Estás a sólo un paso - %s"
231
+
232
+ #: includes/class-freemius.php:4509
233
+ msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
234
+ msgid "Complete \"%s\" Activation Now"
235
+ msgstr "Completar la Activación de \"%s\" Ahora"
236
+
237
+ #: includes/class-freemius.php:4523
238
+ msgid "We made a few tweaks to the %s, %s"
239
+ msgstr "Hemos realizado algunas optimizaciones al %s, %s"
240
+
241
+ #: includes/class-freemius.php:4527
242
+ msgid "Opt in to make \"%s\" Better!"
243
+ msgstr "Opt in to make \"%s\" Better!"
244
+
245
+ #: includes/class-freemius.php:4912
246
+ msgid "The upgrade of %s was successfully completed."
247
+ msgstr "La actualización de %s se completó con éxito."
248
+
249
+ #: includes/class-freemius.php5997, includes/class-fs-plugin-updater.php358,
250
+ #: includes/class-fs-plugin-updater.php510,
251
+ #: includes/class-fs-plugin-updater.php516, templates/auto-installation.php:31
252
+ msgid "Add-On"
253
+ msgstr "Complemento"
254
+
255
+ #: includes/class-freemius.php5999, templates/debug.php303,
256
+ #: templates/debug.php:413
257
+ msgid "Plugin"
258
+ msgstr "Plugin"
259
+
260
+ #: includes/class-freemius.php6000, templates/debug.php303,
261
+ #: templates/debug.php413, templates/forms/deactivation/form.php:64
262
+ msgid "Theme"
263
+ msgstr "Tema"
264
+
265
+ #: includes/class-freemius.php:7257
266
+ msgid "We couldn't find your email address in the system, are you sure it's the right address?"
267
+ 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?"
268
+
269
+ #: includes/class-freemius.php:7259
270
+ msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
271
+ 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?"
272
+
273
+ #: includes/class-freemius.php:7468
274
+ msgid "Account is pending activation."
275
+ msgstr "Account is pending activation."
276
+
277
+ #: includes/class-freemius.php:8825
278
+ msgctxt "pluginX activation was successfully..."
279
+ msgid "%s activation was successfully completed."
280
+ msgstr "%s activación se completó con éxito."
281
+
282
+ #: includes/class-freemius.php:8837
283
+ msgid "Your account was successfully activated with the %s plan."
284
+ msgstr "Tu cuenta se ha activado correctamente con el plan %s."
285
+
286
+ #: includes/class-freemius.php8846, includes/class-freemius.php:11376
287
+ msgid "Your trial has been successfully started."
288
+ msgstr "Tu versión de prueba se ha iniciado con éxito."
289
+
290
+ #: includes/class-freemius.php9135, includes/class-freemius.php9191,
291
+ #: includes/class-freemius.php:9252
292
+ msgid "Couldn't activate %s."
293
+ msgstr "No se puede activar %s."
294
+
295
+ #: includes/class-freemius.php9136, includes/class-freemius.php9192,
296
+ #: includes/class-freemius.php:9253
297
+ msgid "Please contact us with the following message:"
298
+ msgstr "Por favor contáctanos con el siguiente mensaje:"
299
+
300
+ #: includes/class-freemius.php9511, includes/class-freemius.php:13334
301
+ msgid "Upgrade"
302
+ msgstr "Actualizar"
303
+
304
+ #: includes/class-freemius.php:9517
305
+ msgid "Start Trial"
306
+ msgstr "Comenzar el Período de Prueba"
307
+
308
+ #: includes/class-freemius.php:9519
309
+ msgid "Pricing"
310
+ msgstr "Precio"
311
+
312
+ #: includes/class-freemius.php9559, includes/class-freemius.php:9561
313
+ msgid "Affiliation"
314
+ msgstr "Affiliation"
315
+
316
+ #: includes/class-freemius.php9581, includes/class-freemius.php9583,
317
+ #: templates/account.php79, templates/debug.php:281
318
+ msgid "Account"
319
+ msgstr "Cuenta"
320
+
321
+ #: includes/class-freemius.php9594, includes/class-freemius.php9596,
322
+ #: includes/customizer/class-fs-customizer-support-section.php:60
323
+ msgid "Contact Us"
324
+ msgstr "Contáctanos"
325
+
326
+ #: includes/class-freemius.php9606, includes/class-freemius.php9608,
327
+ #: includes/class-freemius.php13344, templates/account.php:68
328
+ msgid "Add-Ons"
329
+ msgstr "Complementos"
330
+
331
+ #: includes/class-freemius.php9639, templates/pricing.php:92
332
+ msgctxt "noun"
333
+ msgid "Pricing"
334
+ msgstr "Precio"
335
+
336
+ #: includes/class-freemius.php9819,
337
+ #: includes/customizer/class-fs-customizer-support-section.php:67
338
+ msgid "Support Forum"
339
+ msgstr "Foro de Soporte"
340
+
341
+ #: includes/class-freemius.php:10559
342
+ msgid "Your email has been successfully verified - you are AWESOME!"
343
+ msgstr "Tu email ha sido verificado correctamente - eres IMPRESIONANTE!"
344
+
345
+ #: includes/class-freemius.php:10560
346
+ msgctxt "a positive response"
347
+ msgid "Right on"
348
+ msgstr "Bien hecho"
349
+
350
+ #: includes/class-freemius.php:11096
351
+ msgid "Your %s Add-on plan was successfully upgraded."
352
+ msgstr "Tu complemento %s del plan se actualizó con éxito."
353
+
354
+ #: includes/class-freemius.php:11098
355
+ msgid "%s Add-on was successfully purchased."
356
+ msgstr "El complemento %s ha sido comprado correctamente."
357
+
358
+ #: includes/class-freemius.php:11101
359
+ msgid "Download the latest version"
360
+ msgstr "Descargar la última versión"
361
+
362
+ #: includes/class-freemius.php:11150
363
+ msgctxt "%1s - plugin title, %2s - API domain"
364
+ msgid "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
365
+ msgstr "Tu servidor está bloqueando el acceso a la API de Freemius, que es crucial para la sincronización de licencia %1s. Por favor, ponte en contacto con tu host para que lo añadan a su lista blanca %2s"
366
+
367
+ #: includes/class-freemius.php11153, includes/class-freemius.php11463,
368
+ #: includes/class-freemius.php:11528
369
+ msgid "Error received from the server:"
370
+ msgstr "Error recibido del servidor:"
371
+
372
+ #: includes/class-freemius.php:11164
373
+ msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
374
+ msgstr "Parece que uno de los parámetros de autenticación es incorrecto. Actualiza tu Clave Pública, Clave Secreta & ID de Usuario e inténtelo de nuevo."
375
+
376
+ #: includes/class-freemius.php11281, includes/class-freemius.php11468,
377
+ #: includes/class-freemius.php:11511
378
+ msgctxt ""
379
+ msgid "Hmm"
380
+ msgstr "Hmm"
381
+
382
+ #: includes/class-freemius.php:11294
383
+ 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."
384
+ 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."
385
+
386
+ #: includes/class-freemius.php11295, templates/account.php70,
387
+ #: templates/add-ons.php:130
388
+ msgctxt "trial period"
389
+ msgid "Trial"
390
+ msgstr "Período de Prueba Gratuito"
391
+
392
+ #: includes/class-freemius.php:11300
393
+ msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
394
+ msgstr "He actualizado mi cuenta, pero cuando intento sincronizar la licencia, el plan sigue siendo %s."
395
+
396
+ #: includes/class-freemius.php11304, includes/class-freemius.php:11358
397
+ msgid "Please contact us here"
398
+ msgstr "Contacta aquí con nosotros"
399
+
400
+ #: includes/class-freemius.php:11314
401
+ msgid "Your plan was successfully upgraded."
402
+ msgstr "Tu plan se actualizó con éxito."
403
+
404
+ #: includes/class-freemius.php:11331
405
+ msgid "Your plan was successfully changed to %s."
406
+ msgstr "Tu plan se cambió correctamente a %s."
407
+
408
+ #: includes/class-freemius.php:11346
409
+ msgid "Your license has expired. You can still continue using the free %s forever."
410
+ msgstr "Tu licencia ha caducado. Puedes seguir usando el plan gratuito %s para siempre."
411
+
412
+ #: includes/class-freemius.php:11354
413
+ msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
414
+ msgstr "Tu licencia ha sido cancelada. Si crees que es un error, ponte en contacto con el servicio de asistencia."
415
+
416
+ #: includes/class-freemius.php:11367
417
+ 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."
418
+ 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."
419
+
420
+ #: includes/class-freemius.php:11389
421
+ msgid "Your trial has expired. You can still continue using all our free features."
422
+ msgstr "Tu período de prueba ha caducado. Todavía puedes seguir usando todas nuestras funciones gratuitas."
423
+
424
+ #: includes/class-freemius.php:11459
425
+ msgid "It looks like the license could not be activated."
426
+ msgstr "Parece que la licencia no se pudo activar."
427
+
428
+ #: includes/class-freemius.php:11489
429
+ msgid "Your license was successfully activated."
430
+ msgstr "Tu licencia fue activada correctamente."
431
+
432
+ #: includes/class-freemius.php:11515
433
+ msgid "It looks like your site currently doesn't have an active license."
434
+ msgstr "Parece que tu sitio actualmente no tiene una licencia activa."
435
+
436
+ #: includes/class-freemius.php:11527
437
+ msgid "It looks like the license deactivation failed."
438
+ msgstr "Parece que la desactivación de licencia ha fallado."
439
+
440
+ #: includes/class-freemius.php:11554
441
+ msgid "Your license was successfully deactivated, you are back to the %s plan."
442
+ msgstr "Tu licencia fue desactivada correctamente, has vuelto al plan %s."
443
+
444
+ #: includes/class-freemius.php:11555
445
+ msgid "O.K"
446
+ msgstr "O.K"
447
+
448
+ #: includes/class-freemius.php:11603
449
+ msgid "Your plan was successfully downgraded. Your %s plan license will expire in %s."
450
+ msgstr "Tu plan fue degradado con éxito. Tu licencia %s plan caducará en %s."
451
+
452
+ #: includes/class-freemius.php:11613
453
+ msgid "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
454
+ msgstr "Parece que estamos teniendo algún problema temporal con tu degradación de plan. Vuelve a intentarlo en unos minutos."
455
+
456
+ #: includes/class-freemius.php:11637
457
+ msgid "You are already running the %s in a trial mode."
458
+ msgstr "Estás ejecutando %s en modo de prueba."
459
+
460
+ #: includes/class-freemius.php:11648
461
+ msgid "You already utilized a trial before."
462
+ msgstr "Ya utilizaste un período de prueba antes."
463
+
464
+ #: includes/class-freemius.php:11662
465
+ msgid "Plan %s do not exist, therefore, can't start a trial."
466
+ msgstr "El plan %s no existe, por lo tanto, no puedes comenzar un período de prueba."
467
+
468
+ #: includes/class-freemius.php:11673
469
+ msgid "Plan %s does not support a trial period."
470
+ msgstr "El plan %s no admite un período de prueba."
471
+
472
+ #: includes/class-freemius.php:11684
473
+ msgid "None of the %s's plans supports a trial period."
474
+ msgstr "Ninguno de los planes de %s soportan un período de prueba."
475
+
476
+ #: includes/class-freemius.php:11734
477
+ msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
478
+ msgstr "Parece que ya no estás en modo de prueba, así que no hay nada que cancelar :)"
479
+
480
+ #: includes/class-freemius.php:11785
481
+ msgid "Your %s free trial was successfully cancelled."
482
+ msgstr "Tu prueba gratuita de %s fue cancelada con éxito."
483
+
484
+ #: includes/class-freemius.php:11793
485
+ msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
486
+ msgstr "Parece que estamos teniendo algún problema temporal con tu cancelación de prueba. Vuelve a intentarlo en unos minutos."
487
+
488
+ #: includes/class-freemius.php:12032
489
+ msgid "Version %s was released."
490
+ msgstr "La versión %s se ha lanzado."
491
+
492
+ #: includes/class-freemius.php:12032
493
+ msgid "Please download %s."
494
+ msgstr "Por favor descarga %s."
495
+
496
+ #: includes/class-freemius.php:12039
497
+ msgid "the latest %s version here"
498
+ msgstr "la última versión %s aquí"
499
+
500
+ #: includes/class-freemius.php:12044
501
+ msgid "New"
502
+ msgstr "Nuevo"
503
+
504
+ #: includes/class-freemius.php:12049
505
+ msgid "Seems like you got the latest release."
506
+ msgstr "Parece que tienes la última versión."
507
+
508
+ #: includes/class-freemius.php:12050
509
+ msgid "You are all good!"
510
+ msgstr "¡Está todo listo!"
511
+
512
+ #: includes/class-freemius.php:12316
513
+ msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
514
+ 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."
515
+
516
+ #: includes/class-freemius.php:12491
517
+ 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."
518
+ 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."
519
+
520
+ #: includes/class-freemius.php:12497
521
+ msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
522
+ msgstr "Gracias por confirmar el cambio de propiedad. Se envió un correo electrónico a %s para su aprobación final."
523
+
524
+ #: includes/class-freemius.php:12502
525
+ msgid "%s is the new owner of the account."
526
+ msgstr "%s es el nuevo dueño de la cuenta."
527
+
528
+ #: includes/class-freemius.php:12504
529
+ msgctxt "as congratulations"
530
+ msgid "Congrats"
531
+ msgstr "Felicidades"
532
+
533
+ #: includes/class-freemius.php:12524
534
+ msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
535
+ 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."
536
+
537
+ #: includes/class-freemius.php:12525
538
+ msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
539
+ msgstr "Si deseas renunciar a la titularidad de la cuenta de %s a %s haz clic en el botón de Cambio de Titularidad."
540
+
541
+ #: includes/class-freemius.php:12532
542
+ msgid "Change Ownership"
543
+ msgstr "Cambiar Propietario"
544
+
545
+ #: includes/class-freemius.php:12540
546
+ msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
547
+ msgstr "Se actualizó correctamente tu correo electrónico. Recibirás un correo electrónico con las instrucciones de confirmación en unos momentos."
548
+
549
+ #: includes/class-freemius.php:12552
550
+ msgid "Please provide your full name."
551
+ msgstr "Por favor, dinos tu nombre completo."
552
+
553
+ #: includes/class-freemius.php:12557
554
+ msgid "Your name was successfully updated."
555
+ msgstr "Tu nombre fue actualizado correctamente."
556
+
557
+ #: includes/class-freemius.php:12618
558
+ msgid "You have successfully updated your %s."
559
+ msgstr "Has actualizado correctamente tu %s."
560
+
561
+ #: includes/class-freemius.php:12756
562
+ msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
563
+ msgstr "Sólo déjanos informarte que la información de complementos de %s se está extrayendo de un servidor externo."
564
+
565
+ #: includes/class-freemius.php:12757
566
+ msgctxt "advance notice of something that will need attention."
567
+ msgid "Heads up"
568
+ msgstr "Atención"
569
+
570
+ #: includes/class-freemius.php:13075
571
+ msgid "Awesome"
572
+ msgstr "Increíble"
573
+
574
+ #: includes/class-freemius.php:13115
575
+ msgctxt "exclamation"
576
+ msgid "Hey"
577
+ msgstr "Hey"
578
+
579
+ #: includes/class-freemius.php:13115
580
+ msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
581
+ msgstr "¿Qué te pareció %s hasta ahora? Prueba todas nuestras funciones premium de %s con una prueba gratuita de % d-días."
582
+
583
+ #: includes/class-freemius.php:13123
584
+ msgid "No commitment for %s days - cancel anytime!"
585
+ msgstr "Sin compromiso por %s días - ¡cancelar en cualquier momento!"
586
+
587
+ #: includes/class-freemius.php:13124
588
+ msgid "No credit card required"
589
+ msgstr "No se necesita tarjeta de crédito"
590
+
591
+ #: includes/class-freemius.php13131, templates/forms/trial-start.php:53
592
+ msgctxt "call to action"
593
+ msgid "Start free trial"
594
+ msgstr "Comenzar el período de prueba gratuito"
595
+
596
+ #: includes/class-freemius.php:13208
597
+ 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!"
598
+ 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!"
599
+
600
+ #: includes/class-freemius.php:13217
601
+ msgid "Learn more"
602
+ msgstr "Learn more"
603
+
604
+ #: includes/class-freemius.php13373, templates/account.php330,
605
+ #: templates/connect.php309, templates/forms/license-activation.php:24
606
+ msgid "Activate License"
607
+ msgstr "Activar Licencia"
608
+
609
+ #: includes/class-freemius.php13374, templates/account.php:393
610
+ msgid "Change License"
611
+ msgstr "Cambiar Licencia"
612
+
613
+ #: includes/class-freemius.php:13435
614
+ msgid "Opt Out"
615
+ msgstr "Darse de baja"
616
+
617
+ #: includes/class-freemius.php13437, includes/class-freemius.php:13442
618
+ msgid "Opt In"
619
+ msgstr "Inscribirse"
620
+
621
+ #: includes/class-freemius.php:13630
622
+ msgid "Please follow these steps to complete the upgrade"
623
+ msgstr "Por favor, sigue estos pasos para completar la actualización"
624
+
625
+ #: includes/class-freemius.php:13633
626
+ msgid "Download the latest %s version"
627
+ msgstr "Descargar la última versión %s"
628
+
629
+ #: includes/class-freemius.php:13637
630
+ msgid "Upload and activate the downloaded version"
631
+ msgstr "Cargar y activar la versión descargada"
632
+
633
+ #: includes/class-freemius.php:13639
634
+ msgid "How to upload and activate?"
635
+ msgstr "¿Cómo subirlo y activarlo?"
636
+
637
+ #: includes/class-freemius.php:13798
638
+ msgid "Auto installation only works for opted-in users."
639
+ msgstr "La instalación automática sólo funciona para usuarios que aceptaron."
640
+
641
+ #: includes/class-freemius.php13808, includes/class-freemius.php13841,
642
+ #: includes/class-fs-plugin-updater.php490,
643
+ #: includes/class-fs-plugin-updater.php:504
644
+ msgid "Invalid module ID."
645
+ msgstr "Id de Módulo no válido."
646
+
647
+ #: includes/class-freemius.php13817, includes/class-fs-plugin-updater.php:524
648
+ msgid "Premium version already active."
649
+ msgstr "Versión Premium ya activa."
650
+
651
+ #: includes/class-freemius.php:13824
652
+ msgid "You do not have a valid license to access the premium version."
653
+ msgstr "No tienes una licencia válida para acceder a la versión premium."
654
+
655
+ #: includes/class-freemius.php:13831
656
+ msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
657
+ msgstr "El plugin es un \"Serviceware\" lo que significa que no tiene una versión de código premium."
658
+
659
+ #: includes/class-freemius.php13849, includes/class-fs-plugin-updater.php:523
660
+ msgid "Premium add-on version already installed."
661
+ msgstr "Versión del complemento Premium ya instalada."
662
+
663
+ #: includes/class-freemius.php:14194
664
+ msgid "View paid features"
665
+ msgstr "Ver las funciones de pago"
666
+
667
+ #: includes/class-fs-plugin-updater.php:131
668
+ msgid "%sRenew your license now%s to access version %s features and support."
669
+ msgstr "%s Renueva tu licencia ahora %s para acceder a la versión %s características y soporte."
670
+
671
+ #: includes/class-fs-plugin-updater.php:553
672
+ msgid "Installing plugin: %s"
673
+ msgstr "Instalando plugin: %s"
674
+
675
+ #: includes/class-fs-plugin-updater.php:594
676
+ msgid "Unable to connect to the filesystem. Please confirm your credentials."
677
+ msgstr "Unable to connect to the filesystem. Please confirm your credentials."
678
+
679
+ #: includes/class-fs-plugin-updater.php:700
680
+ msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
681
+ msgstr "El paquete de plugin remoto no contiene una carpeta con el Slug deseado y el cambio de nombre no funcionó."
682
+
683
+ #: includes/fs-plugin-info-dialog.php328, templates/account.php:696
684
+ msgctxt "verb"
685
+ msgid "Purchase"
686
+ msgstr "Comprar"
687
+
688
+ #: includes/fs-plugin-info-dialog.php:331
689
+ msgid "Start my free %s"
690
+ msgstr "Comenzar mi período gratuito de %s"
691
+
692
+ #: includes/fs-plugin-info-dialog.php355, templates/account.php:52
693
+ msgctxt "as download latest version"
694
+ msgid "Download Latest"
695
+ msgstr "Descargar la última"
696
+
697
+ #: includes/fs-plugin-info-dialog.php358, templates/account.php676,
698
+ #: templates/account.php729, templates/auto-installation.php:110
699
+ msgid "Install Now"
700
+ msgstr "Instalar Ahora"
701
+
702
+ #: includes/fs-plugin-info-dialog.php364, templates/account.php:384
703
+ msgid "Install Update Now"
704
+ msgstr "Instalar Actualización Ahora"
705
+
706
+ #: includes/fs-plugin-info-dialog.php:368
707
+ msgid "Newer Version (%s) Installed"
708
+ msgstr "Versión más Reciente (%s) Instalada"
709
+
710
+ #: includes/fs-plugin-info-dialog.php:371
711
+ msgid "Latest Version Installed"
712
+ msgstr "Última Versión Instalada"
713
+
714
+ #: includes/fs-plugin-info-dialog.php:484
715
+ msgctxt "Plugin installer section title"
716
+ msgid "Description"
717
+ msgstr "Descripción"
718
+
719
+ #: includes/fs-plugin-info-dialog.php:485
720
+ msgctxt "Plugin installer section title"
721
+ msgid "Installation"
722
+ msgstr "Instalación"
723
+
724
+ #: includes/fs-plugin-info-dialog.php:486
725
+ msgctxt "Plugin installer section title"
726
+ msgid "FAQ"
727
+ msgstr "FAQ"
728
+
729
+ #: includes/fs-plugin-info-dialog.php487,
730
+ #: templates/plugin-info/description.php:55
731
+ msgid "Screenshots"
732
+ msgstr "Capturas de pantalla"
733
+
734
+ #: includes/fs-plugin-info-dialog.php:488
735
+ msgctxt "Plugin installer section title"
736
+ msgid "Changelog"
737
+ msgstr "Registro de cambios"
738
+
739
+ #: includes/fs-plugin-info-dialog.php:489
740
+ msgctxt "Plugin installer section title"
741
+ msgid "Reviews"
742
+ msgstr "Valoraciones"
743
+
744
+ #: includes/fs-plugin-info-dialog.php:490
745
+ msgctxt "Plugin installer section title"
746
+ msgid "Other Notes"
747
+ msgstr "Otras Notas"
748
+
749
+ #: includes/fs-plugin-info-dialog.php:505
750
+ msgctxt "Plugin installer section title"
751
+ msgid "Features & Pricing"
752
+ msgstr "Características y Precios"
753
+
754
+ #: includes/fs-plugin-info-dialog.php:515
755
+ msgid "Plugin Install"
756
+ msgstr "Instalar Plugin"
757
+
758
+ #: includes/fs-plugin-info-dialog.php:587
759
+ msgctxt "e.g. Professional Plan"
760
+ msgid "%s Plan"
761
+ msgstr "Plan %s"
762
+
763
+ #: includes/fs-plugin-info-dialog.php:612
764
+ msgctxt "e.g. the best product"
765
+ msgid "Best"
766
+ msgstr "El mejor"
767
+
768
+ #: includes/fs-plugin-info-dialog.php618,
769
+ #: includes/fs-plugin-info-dialog.php:638
770
+ msgctxt "as every month"
771
+ msgid "Monthly"
772
+ msgstr "Mensual"
773
+
774
+ #: includes/fs-plugin-info-dialog.php:621
775
+ msgctxt "as once a year"
776
+ msgid "Annual"
777
+ msgstr "Anual"
778
+
779
+ #: includes/fs-plugin-info-dialog.php:624
780
+ msgid "Lifetime"
781
+ msgstr "Permanente"
782
+
783
+ #: includes/fs-plugin-info-dialog.php638,
784
+ #: includes/fs-plugin-info-dialog.php640,
785
+ #: includes/fs-plugin-info-dialog.php:642
786
+ msgctxt "e.g. billed monthly"
787
+ msgid "Billed %s"
788
+ msgstr "Facturado %s"
789
+
790
+ #: includes/fs-plugin-info-dialog.php:640
791
+ msgctxt "as once a year"
792
+ msgid "Annually"
793
+ msgstr "Anualmente"
794
+
795
+ #: includes/fs-plugin-info-dialog.php:642
796
+ msgctxt "as once a year"
797
+ msgid "Once"
798
+ msgstr "Una vez"
799
+
800
+ #: includes/fs-plugin-info-dialog.php:648
801
+ msgid "Single Site License"
802
+ msgstr "Licencia para un Único Sitio"
803
+
804
+ #: includes/fs-plugin-info-dialog.php:650
805
+ msgid "Unlimited Licenses"
806
+ msgstr "Licencias Ilimitadas"
807
+
808
+ #: includes/fs-plugin-info-dialog.php:652
809
+ msgid "Up to %s Sites"
810
+ msgstr "Hasta %s Sitios"
811
+
812
+ #: includes/fs-plugin-info-dialog.php662,
813
+ #: templates/plugin-info/features.php:82
814
+ msgctxt "as monthly period"
815
+ msgid "mo"
816
+ msgstr "me"
817
+
818
+ #: includes/fs-plugin-info-dialog.php669,
819
+ #: templates/plugin-info/features.php:80
820
+ msgctxt "as annual period"
821
+ msgid "year"
822
+ msgstr "año"
823
+
824
+ #: includes/fs-plugin-info-dialog.php:721
825
+ msgctxt "noun"
826
+ msgid "Price"
827
+ msgstr "Precio"
828
+
829
+ #: includes/fs-plugin-info-dialog.php:767
830
+ msgctxt "as a discount of $5 or 10%"
831
+ msgid "Save %s"
832
+ msgstr "Guardar %s"
833
+
834
+ #: includes/fs-plugin-info-dialog.php:777
835
+ msgid "No commitment for %s - cancel anytime"
836
+ msgstr "Sin compromiso para %s - cancelar en cualquier momento"
837
+
838
+ #: includes/fs-plugin-info-dialog.php:780
839
+ msgid "After your free %s, pay as little as %s"
840
+ msgstr "Después de su período gratuito %s, pague sólo %s"
841
+
842
+ #: includes/fs-plugin-info-dialog.php:791
843
+ msgid "Details"
844
+ msgstr "Detalles"
845
+
846
+ #: includes/fs-plugin-info-dialog.php794, templates/account.php59,
847
+ #: templates/debug.php183, templates/debug.php220, templates/debug.php:354
848
+ msgctxt "product version"
849
+ msgid "Version"
850
+ msgstr "Versión"
851
+
852
+ #: includes/fs-plugin-info-dialog.php:800
853
+ msgctxt "as the plugin author"
854
+ msgid "Author"
855
+ msgstr "Autor"
856
+
857
+ #: includes/fs-plugin-info-dialog.php:806
858
+ msgid "Last Updated"
859
+ msgstr "Última Actualización"
860
+
861
+ #: includes/fs-plugin-info-dialog.php:810
862
+ msgctxt "x-ago"
863
+ msgid "%s ago"
864
+ msgstr "hace %s"
865
+
866
+ #: includes/fs-plugin-info-dialog.php:819
867
+ msgid "Requires WordPress Version"
868
+ msgstr "Necesita la versión de WordPress"
869
+
870
+ #: includes/fs-plugin-info-dialog.php:819
871
+ msgid "%s or higher"
872
+ msgstr "%s o mayor"
873
+
874
+ #: includes/fs-plugin-info-dialog.php:825
875
+ msgid "Compatible up to"
876
+ msgstr "Compatible hasta"
877
+
878
+ #: includes/fs-plugin-info-dialog.php:832
879
+ msgid "Downloaded"
880
+ msgstr "Descargado"
881
+
882
+ #: includes/fs-plugin-info-dialog.php:835
883
+ msgid "%s time"
884
+ msgstr "% vez"
885
+
886
+ #: includes/fs-plugin-info-dialog.php:837
887
+ msgid "%s times"
888
+ msgstr "%s veces"
889
+
890
+ #: includes/fs-plugin-info-dialog.php:847
891
+ msgid "WordPress.org Plugin Page"
892
+ msgstr "Página del Plugin en WordPress.org"
893
+
894
+ #: includes/fs-plugin-info-dialog.php:854
895
+ msgid "Plugin Homepage"
896
+ msgstr "Página web del Plugin"
897
+
898
+ #: includes/fs-plugin-info-dialog.php861,
899
+ #: includes/fs-plugin-info-dialog.php:941
900
+ msgid "Donate to this plugin"
901
+ msgstr "Donar a este plugin"
902
+
903
+ #: includes/fs-plugin-info-dialog.php:867
904
+ msgid "Average Rating"
905
+ msgstr "Calificación Media"
906
+
907
+ #: includes/fs-plugin-info-dialog.php:874
908
+ msgid "based on %s"
909
+ msgstr "basado en %s"
910
+
911
+ #: includes/fs-plugin-info-dialog.php:878
912
+ msgid "%s rating"
913
+ msgstr "%s calificación"
914
+
915
+ #: includes/fs-plugin-info-dialog.php:880
916
+ msgid "%s ratings"
917
+ msgstr "%s calificaciones"
918
+
919
+ #: includes/fs-plugin-info-dialog.php:894
920
+ msgid "%s star"
921
+ msgstr "%s estrella"
922
+
923
+ #: includes/fs-plugin-info-dialog.php:896
924
+ msgid "%s stars"
925
+ msgstr "%s estrellas"
926
+
927
+ #: includes/fs-plugin-info-dialog.php:907
928
+ msgid "Click to see reviews that provided a rating of %s"
929
+ msgstr "Haz clic para ver los comentarios con una valoración de %s"
930
+
931
+ #: includes/fs-plugin-info-dialog.php:920
932
+ msgid "Contributors"
933
+ msgstr "Colaboradores"
934
+
935
+ #: includes/fs-plugin-info-dialog.php948,
936
+ #: includes/fs-plugin-info-dialog.php:950
937
+ msgid "Warning"
938
+ msgstr "Atencion"
939
+
940
+ #: includes/fs-plugin-info-dialog.php:948
941
+ msgid "This plugin has not been tested with your current version of WordPress."
942
+ msgstr "Este plugin no ha sido probado con tu versión actual de WordPress."
943
+
944
+ #: includes/fs-plugin-info-dialog.php:950
945
+ msgid "This plugin has not been marked as compatible with your version of WordPress."
946
+ msgstr "Este puglin no ha sido marcado como compatible con tu versión de WordPress."
947
+
948
+ #: includes/fs-plugin-info-dialog.php:969
949
+ msgid "Paid add-on must be deployed to Freemius."
950
+ msgstr "El complemento de pago se debe implementar en Freemius."
951
+
952
+ #: includes/fs-plugin-info-dialog.php:970
953
+ msgid "Add-on must be deployed to WordPress.org or Freemius."
954
+ msgstr "El complemento debe implementarse en WordPress.org o en Freemius."
955
+
956
+ #: templates/account.php:53
957
+ msgid "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
958
+ msgstr "Degradando tu plan detendrás inmediatamente todos los pagos recurrentes futuros y tu licencia del plan %s expirará en %s."
959
+
960
+ #: templates/account.php:54
961
+ msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
962
+ msgstr "La cancelación del período de prueba bloqueará inmediatamente el acceso a todas las funciones premium. ¿Estás seguro?"
963
+
964
+ #: templates/account.php:55
965
+ msgid "You can still enjoy all %s features but you will not have access to %s updates and support."
966
+ msgstr "Todavía puedes disfrutar de todas las funciones de %s pero no tienes acceso a soporte y actualizaciones de %s."
967
+
968
+ #: templates/account.php:56
969
+ msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
970
+ 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."
971
+
972
+ #. translators: %s: Plan title (e.g. "Professional")
973
+ #: templates/account.php:58
974
+ msgid "Activate %s Plan"
975
+ msgstr "Activar Plan %s"
976
+
977
+ #. translators: %s: Time period (e.g. Auto renews in "2 months")
978
+ #: templates/account.php:61
979
+ msgid "Auto renews in %s"
980
+ msgstr "Auto renovaciones en %s"
981
+
982
+ #. translators: %s: Time period (e.g. Expires in "2 months")
983
+ #: templates/account.php:63
984
+ msgid "Expires in %s"
985
+ msgstr "Caduca en %s"
986
+
987
+ #: templates/account.php:64
988
+ msgctxt "as synchronize license"
989
+ msgid "Sync License"
990
+ msgstr "Sincronizar Licencia"
991
+
992
+ #: templates/account.php:65
993
+ msgid "Cancel Trial"
994
+ msgstr "Cancelar Período de Prueba"
995
+
996
+ #: templates/account.php:66
997
+ msgid "Change Plan"
998
+ msgstr "Cambiar Plan"
999
+
1000
+ #: templates/account.php:67
1001
+ msgctxt "verb"
1002
+ msgid "Upgrade"
1003
+ msgstr "Actualizar"
1004
+
1005
+ #: templates/account.php:69
1006
+ msgctxt "verb"
1007
+ msgid "Downgrade"
1008
+ msgstr "Degradar"
1009
+
1010
+ #: templates/account.php71, templates/add-ons.php126,
1011
+ #: templates/plugin-info/features.php:72
1012
+ msgid "Free"
1013
+ msgstr "Gratis"
1014
+
1015
+ #: templates/account.php:72
1016
+ msgid "Activate"
1017
+ msgstr "Activar"
1018
+
1019
+ #: templates/account.php73, templates/debug.php311,
1020
+ #: includes/customizer/class-fs-customizer-upsell-control.php:106
1021
+ msgctxt "as product pricing plan"
1022
+ msgid "Plan"
1023
+ msgstr "Plan"
1024
+
1025
+ #: templates/account.php:87
1026
+ msgid "Free Trial"
1027
+ msgstr "Período de Prueba Gratuito"
1028
+
1029
+ #: templates/account.php:98
1030
+ msgid "Account Details"
1031
+ msgstr "Detalles de la Cuenta"
1032
+
1033
+ #: templates/account.php:108
1034
+ 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?"
1035
+ 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?"
1036
+
1037
+ #: templates/account.php:110
1038
+ 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?"
1039
+ 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?"
1040
+
1041
+ #: templates/account.php:113
1042
+ msgid "Delete Account"
1043
+ msgstr "Borrar Cuenta"
1044
+
1045
+ #: templates/account.php:124
1046
+ msgid "Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?"
1047
+ 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?"
1048
+
1049
+ #: templates/account.php125, templates/account.php:590
1050
+ msgid "Deactivate License"
1051
+ msgstr "Desactivar Licencia"
1052
+
1053
+ #: templates/account.php:142
1054
+ msgid "Are you sure you want to proceed?"
1055
+ msgstr "¿Estás seguro que quieres proceder?"
1056
+
1057
+ #: templates/account.php:142
1058
+ msgid "Cancel Subscription"
1059
+ msgstr "Cancelar Suscripción"
1060
+
1061
+ #: templates/account.php:171
1062
+ msgctxt "as synchronize"
1063
+ msgid "Sync"
1064
+ msgstr "Sincronizar"
1065
+
1066
+ #: templates/account.php185, templates/debug.php:389
1067
+ msgid "Name"
1068
+ msgstr "Nombre"
1069
+
1070
+ #: templates/account.php191, templates/debug.php:390
1071
+ msgid "Email"
1072
+ msgstr "Correo Electrónico"
1073
+
1074
+ #: templates/account.php198, templates/debug.php310, templates/debug.php:419
1075
+ msgid "User ID"
1076
+ msgstr "ID de Usuario"
1077
+
1078
+ #: templates/account.php:205
1079
+ msgid "Site ID"
1080
+ msgstr "ID del Sitio"
1081
+
1082
+ #: templates/account.php:208
1083
+ msgid "No ID"
1084
+ msgstr "Sin ID"
1085
+
1086
+ #: templates/account.php213, templates/debug.php225, templates/debug.php312,
1087
+ #: templates/debug.php355, templates/debug.php:392
1088
+ msgid "Public Key"
1089
+ msgstr "Clave Pública"
1090
+
1091
+ #: templates/account.php219, templates/debug.php313, templates/debug.php356,
1092
+ #: templates/debug.php:393
1093
+ msgid "Secret Key"
1094
+ msgstr "Clave Secreta"
1095
+
1096
+ #: templates/account.php:222
1097
+ msgctxt "as secret encryption key missing"
1098
+ msgid "No Secret"
1099
+ msgstr "Sin clave secreta"
1100
+
1101
+ #: templates/account.php:241
1102
+ msgid "Trial"
1103
+ msgstr "Período de Prueba Gratuito"
1104
+
1105
+ #: templates/account.php257, templates/debug.php:424
1106
+ msgid "License Key"
1107
+ msgstr "Clave de licencia"
1108
+
1109
+ #: templates/account.php:287
1110
+ msgid "not verified"
1111
+ msgstr "no verificado"
1112
+
1113
+ #: templates/account.php:317
1114
+ msgid "Localhost"
1115
+ msgstr "Localhost"
1116
+
1117
+ #: templates/account.php:321
1118
+ msgctxt "as 5 licenses left"
1119
+ msgid "%s left"
1120
+ msgstr "quedan %s"
1121
+
1122
+ #: templates/account.php:322
1123
+ msgid "Last license"
1124
+ msgstr "Última licencia"
1125
+
1126
+ #: templates/account.php:352
1127
+ msgid "Premium version"
1128
+ msgstr "Versión Premium"
1129
+
1130
+ #: templates/account.php:354
1131
+ msgid "Free version"
1132
+ msgstr "Versión Gratuita"
1133
+
1134
+ #: templates/account.php:366
1135
+ msgid "Verify Email"
1136
+ msgstr "Verificar Correo Electrónico"
1137
+
1138
+ #: templates/account.php:377
1139
+ msgid "Download %s Version"
1140
+ msgstr "Descargar Versión %s"
1141
+
1142
+ #: templates/account.php391, templates/account.php:442
1143
+ msgctxt "verb"
1144
+ msgid "Show"
1145
+ msgstr "Mostrar"
1146
+
1147
+ #: templates/account.php:405
1148
+ msgid "What is your %s?"
1149
+ msgstr "¿Cual es tú %s?"
1150
+
1151
+ #: templates/account.php413, templates/account/billing.php:27
1152
+ msgctxt "verb"
1153
+ msgid "Edit"
1154
+ msgstr "Editar"
1155
+
1156
+ #: templates/account.php:436
1157
+ msgctxt "verb"
1158
+ msgid "Hide"
1159
+ msgstr "Ocultar"
1160
+
1161
+ #: templates/account.php472, templates/debug.php218, templates/debug.php308,
1162
+ #: templates/debug.php351, templates/debug.php388, templates/debug.php417,
1163
+ #: templates/debug.php496, templates/account/payments.php35,
1164
+ #: templates/debug/logger.php:21
1165
+ msgid "ID"
1166
+ msgstr "ID"
1167
+
1168
+ #: templates/account.php:475
1169
+ msgctxt "as software license"
1170
+ msgid "License"
1171
+ msgstr "Licencia"
1172
+
1173
+ #: templates/account.php:550
1174
+ msgid "Cancelled"
1175
+ msgstr "Cancelado"
1176
+
1177
+ #: templates/account.php:555
1178
+ msgid "Expired"
1179
+ msgstr "Caducado"
1180
+
1181
+ #: templates/account.php:560
1182
+ msgid "No expiration"
1183
+ msgstr "Sin caducidad"
1184
+
1185
+ #: templates/account.php668, templates/account.php:724
1186
+ msgid "Activate this add-on"
1187
+ msgstr "Activar este complemento"
1188
+
1189
+ #: templates/account.php745, templates/debug.php:336
1190
+ msgctxt "verb"
1191
+ msgid "Delete"
1192
+ msgstr "Borrar"
1193
+
1194
+ #: templates/add-ons.php:36
1195
+ msgid "Add Ons for %s"
1196
+ msgstr "Complementos para %s"
1197
+
1198
+ #: templates/add-ons.php:44
1199
+ 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."
1200
+ msgstr "No podemos cargar la lista de complementos. Probablemente es un problema por nuestro parte, por favor inténtalo de nuevo en unos minutos."
1201
+
1202
+ #: templates/add-ons.php:135
1203
+ msgid "View details"
1204
+ msgstr "Ver detalles"
1205
+
1206
+ #: templates/admin-notice.php13, templates/forms/license-activation.php73,
1207
+ #: templates/forms/resend-key.php:77
1208
+ msgctxt "as close a window"
1209
+ msgid "Dismiss"
1210
+ msgstr "Descartar"
1211
+
1212
+ #: templates/auto-installation.php:44
1213
+ msgid "%s sec"
1214
+ msgstr "%s seg"
1215
+
1216
+ #: templates/auto-installation.php:82
1217
+ msgid "Automatic Installation"
1218
+ msgstr "Instalación Automática"
1219
+
1220
+ #: templates/auto-installation.php:92
1221
+ 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."
1222
+ msgstr "Una descarga automatizada y la instalación de %s (versión de pago) de %s comenzará en %s. Si quieres hacerlo manualmente - haz clic en el botón de cancelación."
1223
+
1224
+ #: templates/auto-installation.php:103
1225
+ 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."
1226
+ msgstr "El proceso de instalación ha comenzado y puede tardar unos minutos en completarse. Por favor, espera hasta que se finalice - no actualices esta página."
1227
+
1228
+ #: templates/auto-installation.php:108
1229
+ msgid "Cancel Installation"
1230
+ msgstr "Cancelar instalación"
1231
+
1232
+ #: templates/checkout.php:168
1233
+ msgid "Checkout"
1234
+ msgstr "Checkout"
1235
+
1236
+ #: templates/checkout.php:168
1237
+ msgid "PCI compliant"
1238
+ msgstr "Compatible con PCI"
1239
+
1240
+ #: templates/connect.php:128
1241
+ msgid "Allow & Continue"
1242
+ msgstr "Permitir y Continuar"
1243
+
1244
+ #: templates/connect.php:131
1245
+ msgid "Re-send activation email"
1246
+ msgstr "Reenviar correo electrónico de activación"
1247
+
1248
+ #: templates/connect.php:135
1249
+ msgid "Thanks %s!"
1250
+ msgstr "¡Gracias %s!"
1251
+
1252
+ #: templates/connect.php143, templates/forms/license-activation.php:43
1253
+ msgid "Agree & Activate License"
1254
+ msgstr "De Acuerdo y Activar Licencia"
1255
+
1256
+ #: templates/connect.php147, templates/connect.php:170
1257
+ msgctxt "greeting"
1258
+ msgid "Hey %s,"
1259
+ msgstr "Hey %s,"
1260
+
1261
+ #: templates/connect.php:148
1262
+ msgid "Thanks for purchasing %s! To get started, please enter your license key:"
1263
+ msgstr "¡Gracias por comprar %s! Para empezar, escribe tu clave de licencia:"
1264
+
1265
+ #: templates/connect.php:154
1266
+ msgid "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
1267
+ msgstr "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
1268
+
1269
+ #: templates/connect.php:159
1270
+ msgid "Please help us improve %1$s! If you opt in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just fine."
1271
+ msgstr "Please help us improve %1$s! If you opt in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just fine."
1272
+
1273
+ #: templates/connect.php189, templates/forms/license-activation.php:46
1274
+ msgid "License key"
1275
+ msgstr "Clave de licencia"
1276
+
1277
+ #: templates/connect.php192, templates/forms/license-activation.php:19
1278
+ msgid "Can't find your license key?"
1279
+ msgstr "¿No puedes encontrar tu clave de licencia?"
1280
+
1281
+ #: templates/connect.php199, templates/forms/deactivation/retry-skip.php:20
1282
+ msgctxt "verb"
1283
+ msgid "Skip"
1284
+ msgstr "Saltar"
1285
+
1286
+ #: templates/connect.php:228
1287
+ msgid "Your Profile Overview"
1288
+ msgstr "Resumen del Perfil"
1289
+
1290
+ #: templates/connect.php:229
1291
+ msgid "Name and email address"
1292
+ msgstr "Nombre y dirección de correo electrónico"
1293
+
1294
+ #: templates/connect.php:234
1295
+ msgid "Your Site Overview"
1296
+ msgstr "Resumen del Sitio"
1297
+
1298
+ #: templates/connect.php:235
1299
+ msgid "Site URL, WP version, PHP info, plugins & themes"
1300
+ msgstr "URL del sitio web, Versión de WP, PHP info, plugins y temas"
1301
+
1302
+ #: templates/connect.php:240
1303
+ msgid "Admin Notices"
1304
+ msgstr "Avisos de Administración"
1305
+
1306
+ #: templates/connect.php241, templates/connect.php:263
1307
+ msgid "Updates, announcements, marketing, no spam"
1308
+ msgstr "Actualizaciones, anuncios, marketing, sin spam"
1309
+
1310
+ #: templates/connect.php:246
1311
+ msgid "Current %s Events"
1312
+ msgstr "Eventos de %s Actuales"
1313
+
1314
+ #: templates/connect.php:247
1315
+ msgid "Activation, deactivation and uninstall"
1316
+ msgstr "Activación, desactivación y desinstalación"
1317
+
1318
+ #: templates/connect.php:262
1319
+ msgid "Newsletter"
1320
+ msgstr "Boletín"
1321
+
1322
+ #: templates/connect.php279, templates/forms/license-activation.php:38
1323
+ 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."
1324
+ 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."
1325
+
1326
+ #: templates/connect.php:284
1327
+ msgid "What permissions are being granted?"
1328
+ msgstr "¿Qué permisos se otorgan?"
1329
+
1330
+ #: templates/connect.php:305
1331
+ msgid "Don't have a license key?"
1332
+ msgstr "¿No tienes una clave de licencia?"
1333
+
1334
+ #: templates/connect.php:306
1335
+ msgid "Activate Free Version"
1336
+ msgstr "Activar Versión Gratuita"
1337
+
1338
+ #: templates/connect.php:308
1339
+ msgid "Have a license key?"
1340
+ msgstr "¿Tienes una Clave de Licencia?"
1341
+
1342
+ #: templates/connect.php:316
1343
+ msgid "Privacy Policy"
1344
+ msgstr "Política de Privacidad"
1345
+
1346
+ #: templates/connect.php:318
1347
+ msgid "Terms of Service"
1348
+ msgstr "Términos de Servicio"
1349
+
1350
+ #: templates/connect.php:436
1351
+ msgctxt "as in the process of sending an email"
1352
+ msgid "Sending email"
1353
+ msgstr "Enviando correo electrónico"
1354
+
1355
+ #: templates/connect.php:437
1356
+ msgctxt "as activating plugin"
1357
+ msgid "Activating"
1358
+ msgstr "Activando"
1359
+
1360
+ #: templates/contact.php:74
1361
+ msgid "Contact"
1362
+ msgstr "Contact"
1363
+
1364
+ #: templates/debug.php:17
1365
+ msgctxt "as turned off"
1366
+ msgid "Off"
1367
+ msgstr "Apagado"
1368
+
1369
+ #: templates/debug.php:18
1370
+ msgctxt "as turned on"
1371
+ msgid "On"
1372
+ msgstr "Encendido"
1373
+
1374
+ #: templates/debug.php:20
1375
+ msgid "SDK"
1376
+ msgstr "SDK"
1377
+
1378
+ #: templates/debug.php:24
1379
+ msgctxt "as code debugging"
1380
+ msgid "Debugging"
1381
+ msgstr "Depurando"
1382
+
1383
+ #: templates/debug.php54, templates/debug.php226, templates/debug.php:314
1384
+ msgid "Actions"
1385
+ msgstr "Acciones"
1386
+
1387
+ #: templates/debug.php:64
1388
+ msgid "Are you sure you want to delete all Freemius data?"
1389
+ msgstr "¿Está seguro que desea eliminar todos los datos de Freemius?"
1390
+
1391
+ #: templates/debug.php:64
1392
+ msgid "Delete All Accounts"
1393
+ msgstr "Borrar Todas las Cuentas"
1394
+
1395
+ #: templates/debug.php:71
1396
+ msgid "Clear API Cache"
1397
+ msgstr "Borrar Caché de la API"
1398
+
1399
+ #: templates/debug.php:78
1400
+ msgid "Sync Data From Server"
1401
+ msgstr "Sincronizar Datos Desde el Servidor"
1402
+
1403
+ #: templates/debug.php:82
1404
+ msgid "Load DB Option"
1405
+ msgstr "Cargar opción de BD"
1406
+
1407
+ #: templates/debug.php:85
1408
+ msgid "Set DB Option"
1409
+ msgstr "Guardar opción en BD"
1410
+
1411
+ #: templates/debug.php:162
1412
+ msgid "Key"
1413
+ msgstr "Key"
1414
+
1415
+ #: templates/debug.php:163
1416
+ msgid "Value"
1417
+ msgstr "Value"
1418
+
1419
+ #: templates/debug.php:179
1420
+ msgctxt "as software development kit versions"
1421
+ msgid "SDK Versions"
1422
+ msgstr "Versiones SDK"
1423
+
1424
+ #: templates/debug.php:184
1425
+ msgid "SDK Path"
1426
+ msgstr "Ruta del SDK"
1427
+
1428
+ #: templates/debug.php185, templates/debug.php:224
1429
+ msgid "Module Path"
1430
+ msgstr "Module Path"
1431
+
1432
+ #: templates/debug.php:186
1433
+ msgid "Is Active"
1434
+ msgstr "Está Activo"
1435
+
1436
+ #: templates/debug.php214, templates/debug/plugins-themes-sync.php:35
1437
+ msgid "Plugins"
1438
+ msgstr "Plugins"
1439
+
1440
+ #: templates/debug.php214, templates/debug/plugins-themes-sync.php:56
1441
+ msgid "Themes"
1442
+ msgstr "Temas"
1443
+
1444
+ #: templates/debug.php219, templates/debug.php309, templates/debug.php353,
1445
+ #: templates/debug/scheduled-crons.php:81
1446
+ msgid "Slug"
1447
+ msgstr "Ruta"
1448
+
1449
+ #: templates/debug.php221, templates/debug.php:352
1450
+ msgid "Title"
1451
+ msgstr "Título"
1452
+
1453
+ #: templates/debug.php:222
1454
+ msgctxt "as application program interface"
1455
+ msgid "API"
1456
+ msgstr "API"
1457
+
1458
+ #: templates/debug.php:223
1459
+ msgid "Freemius State"
1460
+ msgstr "Estado Freemius"
1461
+
1462
+ #: templates/debug.php:255
1463
+ msgctxt "as connection was successful"
1464
+ msgid "Connected"
1465
+ msgstr "Conectado"
1466
+
1467
+ #: templates/debug.php:256
1468
+ msgctxt "as connection blocked"
1469
+ msgid "Blocked"
1470
+ msgstr "Bloqueado"
1471
+
1472
+ #: templates/debug.php:277
1473
+ msgid "Simulate Trial"
1474
+ msgstr "Simular período de prueba"
1475
+
1476
+ #: templates/debug.php:302
1477
+ msgid "%s Installs"
1478
+ msgstr "%s Instalaciones"
1479
+
1480
+ #: templates/debug.php:304
1481
+ msgctxt "like websites"
1482
+ msgid "Sites"
1483
+ msgstr "Sitios"
1484
+
1485
+ #: templates/debug.php:347
1486
+ msgid "Add Ons of module %s"
1487
+ msgstr "Add Ons of module %s"
1488
+
1489
+ #: templates/debug.php:384
1490
+ msgid "Users"
1491
+ msgstr "Usuarios"
1492
+
1493
+ #: templates/debug.php:391
1494
+ msgid "Verified"
1495
+ msgstr "Verificado"
1496
+
1497
+ #: templates/debug.php:413
1498
+ msgid "%s Licenses"
1499
+ msgstr "%s Licencias"
1500
+
1501
+ #: templates/debug.php:418
1502
+ msgid "Plugin ID"
1503
+ msgstr "Plugin ID"
1504
+
1505
+ #: templates/debug.php:420
1506
+ msgid "Plan ID"
1507
+ msgstr "Plan ID"
1508
+
1509
+ #: templates/debug.php:421
1510
+ msgid "Quota"
1511
+ msgstr "Quota"
1512
+
1513
+ #: templates/debug.php:422
1514
+ msgid "Activated"
1515
+ msgstr "Activated"
1516
+
1517
+ #: templates/debug.php:423
1518
+ msgid "Blocking"
1519
+ msgstr "Blocking"
1520
+
1521
+ #: templates/debug.php:425
1522
+ msgctxt "as expiration date"
1523
+ msgid "Expiration"
1524
+ msgstr "Caducidad"
1525
+
1526
+ #: templates/debug.php:454
1527
+ msgid "Debug Log"
1528
+ msgstr "Log de Debug"
1529
+
1530
+ #: templates/debug.php:458
1531
+ msgid "All Types"
1532
+ msgstr "Todos los Tipos"
1533
+
1534
+ #: templates/debug.php:465
1535
+ msgid "All Requests"
1536
+ msgstr "Todas las Peticiones"
1537
+
1538
+ #: templates/debug.php470, templates/debug.php499,
1539
+ #: templates/debug/logger.php:25
1540
+ msgid "File"
1541
+ msgstr "Archivo"
1542
+
1543
+ #: templates/debug.php471, templates/debug.php497,
1544
+ #: templates/debug/logger.php:23
1545
+ msgid "Function"
1546
+ msgstr "Función"
1547
+
1548
+ #: templates/debug.php:472
1549
+ msgid "Process ID"
1550
+ msgstr "ID del Proceso"
1551
+
1552
+ #: templates/debug.php:473
1553
+ msgid "Logger"
1554
+ msgstr "Logger"
1555
+
1556
+ #: templates/debug.php474, templates/debug.php498,
1557
+ #: templates/debug/logger.php:24
1558
+ msgid "Message"
1559
+ msgstr "Mensaje"
1560
+
1561
+ #: templates/debug.php:476
1562
+ msgid "Filter"
1563
+ msgstr "Filtro"
1564
+
1565
+ #: templates/debug.php:484
1566
+ msgid "Download"
1567
+ msgstr "Descarga"
1568
+
1569
+ #: templates/debug.php495, templates/debug/logger.php:22
1570
+ msgid "Type"
1571
+ msgstr "Tipo"
1572
+
1573
+ #: templates/debug.php500, templates/debug/logger.php:26
1574
+ msgid "Timestamp"
1575
+ msgstr "Timestamp"
1576
+
1577
+ #: templates/secure-https-header.php:28
1578
+ msgid "Secure HTTPS %s page, running from an external domain"
1579
+ msgstr "Página segura HTTPS %s, desde un dominio externo"
1580
+
1581
+ #: includes/customizer/class-fs-customizer-support-section.php55,
1582
+ #: templates/plugin-info/features.php:43
1583
+ msgid "Support"
1584
+ msgstr "Soporte"
1585
+
1586
+ #: includes/debug/class-fs-debug-bar-panel.php48,
1587
+ #: templates/debug/api-calls.php54, templates/debug/logger.php:62
1588
+ msgctxt "milliseconds"
1589
+ msgid "ms"
1590
+ msgstr "ms"
1591
+
1592
+ #: includes/debug/debug-bar-start.php:41
1593
+ msgid "Freemius API"
1594
+ msgstr "API Freemius"
1595
+
1596
+ #: includes/debug/debug-bar-start.php:42
1597
+ msgid "Requests"
1598
+ msgstr "Peticiones"
1599
+
1600
+ #: templates/account/billing.php:28
1601
+ msgctxt "verb"
1602
+ msgid "Update"
1603
+ msgstr "Actualizar"
1604
+
1605
+ #: templates/account/billing.php:39
1606
+ msgid "Billing"
1607
+ msgstr "Facturación"
1608
+
1609
+ #: templates/account/billing.php44, templates/account/billing.php:44
1610
+ msgid "Business name"
1611
+ msgstr "Nombre de la empresa"
1612
+
1613
+ #: templates/account/billing.php45, templates/account/billing.php:45
1614
+ msgid "Tax / VAT ID"
1615
+ msgstr "Tax / Núm IVA"
1616
+
1617
+ #: templates/account/billing.php48, templates/account/billing.php48,
1618
+ #: templates/account/billing.php49, templates/account/billing.php:49
1619
+ msgid "Address Line %d"
1620
+ msgstr "Línea de la dirección %d"
1621
+
1622
+ #: templates/account/billing.php52, templates/account/billing.php:52
1623
+ msgid "City"
1624
+ msgstr "Ciudad"
1625
+
1626
+ #: templates/account/billing.php52, templates/account/billing.php:52
1627
+ msgid "Town"
1628
+ msgstr "Municipio"
1629
+
1630
+ #: templates/account/billing.php53, templates/account/billing.php:53
1631
+ msgid "ZIP / Postal Code"
1632
+ msgstr "Código Postal"
1633
+
1634
+ #: templates/account/billing.php:308
1635
+ msgid "Country"
1636
+ msgstr "País"
1637
+
1638
+ #: templates/account/billing.php:310
1639
+ msgid "Select Country"
1640
+ msgstr "Seleccionar País"
1641
+
1642
+ #: templates/account/billing.php317, templates/account/billing.php:318
1643
+ msgid "State"
1644
+ msgstr "Estado"
1645
+
1646
+ #: templates/account/billing.php317, templates/account/billing.php:318
1647
+ msgid "Province"
1648
+ msgstr "Provincia"
1649
+
1650
+ #: templates/account/payments.php:29
1651
+ msgid "Payments"
1652
+ msgstr "Pagos"
1653
+
1654
+ #: templates/account/payments.php:36
1655
+ msgid "Date"
1656
+ msgstr "Fecha"
1657
+
1658
+ #: templates/account/payments.php:37
1659
+ msgid "Amount"
1660
+ msgstr "Cantidad"
1661
+
1662
+ #: templates/account/payments.php38, templates/account/payments.php:50
1663
+ msgid "Invoice"
1664
+ msgstr "Factura"
1665
+
1666
+ #: templates/debug/api-calls.php:56
1667
+ msgid "API"
1668
+ msgstr "API"
1669
+
1670
+ #: templates/debug/api-calls.php:68
1671
+ msgid "Method"
1672
+ msgstr "Método"
1673
+
1674
+ #: templates/debug/api-calls.php:69
1675
+ msgid "Code"
1676
+ msgstr "Código"
1677
+
1678
+ #: templates/debug/api-calls.php:70
1679
+ msgid "Length"
1680
+ msgstr "Longitud"
1681
+
1682
+ #: templates/debug/api-calls.php:71
1683
+ msgctxt "as file/folder path"
1684
+ msgid "Path"
1685
+ msgstr "Ruta"
1686
+
1687
+ #: templates/debug/api-calls.php:73
1688
+ msgid "Body"
1689
+ msgstr "Cuerpo"
1690
+
1691
+ #: templates/debug/api-calls.php:75
1692
+ msgid "Result"
1693
+ msgstr "Resultado"
1694
+
1695
+ #: templates/debug/api-calls.php:76
1696
+ msgid "Start"
1697
+ msgstr "Inicio"
1698
+
1699
+ #: templates/debug/api-calls.php:77
1700
+ msgid "End"
1701
+ msgstr "Fin"
1702
+
1703
+ #: templates/debug/logger.php:15
1704
+ msgid "Log"
1705
+ msgstr "Log"
1706
+
1707
+ #. translators: %s: time period (e.g. In "2 hours")
1708
+ #: templates/debug/plugins-themes-sync.php18,
1709
+ #: templates/debug/scheduled-crons.php:92
1710
+ msgid "In %s"
1711
+ msgstr "En %s"
1712
+
1713
+ #. translators: %s: time period (e.g. "2 hours" ago)
1714
+ #: templates/debug/plugins-themes-sync.php20,
1715
+ #: templates/debug/scheduled-crons.php:94
1716
+ msgid "%s ago"
1717
+ msgstr "hace %s"
1718
+
1719
+ #: templates/debug/plugins-themes-sync.php21,
1720
+ #: templates/debug/scheduled-crons.php:75
1721
+ msgctxt "seconds"
1722
+ msgid "sec"
1723
+ msgstr "sec"
1724
+
1725
+ #: templates/debug/plugins-themes-sync.php:23
1726
+ msgid "Plugins & Themes Sync"
1727
+ msgstr "Sincronizar Plugins y Temas"
1728
+
1729
+ #: templates/debug/plugins-themes-sync.php:28
1730
+ msgid "Total"
1731
+ msgstr "Total"
1732
+
1733
+ #: templates/debug/plugins-themes-sync.php29,
1734
+ #: templates/debug/scheduled-crons.php:85
1735
+ msgid "Last"
1736
+ msgstr "Último"
1737
+
1738
+ #: templates/debug/scheduled-crons.php:77
1739
+ msgid "Scheduled Crons"
1740
+ msgstr "Crons Programados"
1741
+
1742
+ #: templates/debug/scheduled-crons.php:82
1743
+ msgid "Module"
1744
+ msgstr "Módulo"
1745
+
1746
+ #: templates/debug/scheduled-crons.php:83
1747
+ msgid "Module Type"
1748
+ msgstr "Tipo de Módulo"
1749
+
1750
+ #: templates/debug/scheduled-crons.php:84
1751
+ msgid "Cron Type"
1752
+ msgstr "Tipo de Cron"
1753
+
1754
+ #: templates/debug/scheduled-crons.php:86
1755
+ msgid "Next"
1756
+ msgstr "Siguiente"
1757
+
1758
+ #: templates/forms/affiliation.php:81
1759
+ msgid "Non-expiring"
1760
+ msgstr "Non-expiring"
1761
+
1762
+ #: templates/forms/affiliation.php:84
1763
+ msgid "Apply to become an affiliate"
1764
+ msgstr "Apply to become an affiliate"
1765
+
1766
+ #: templates/forms/affiliation.php:103
1767
+ msgid "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
1768
+ msgstr "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
1769
+
1770
+ #: templates/forms/affiliation.php:114
1771
+ 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."
1772
+ 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."
1773
+
1774
+ #: templates/forms/affiliation.php:117
1775
+ msgid "Your affiliation account was temporarily suspended."
1776
+ msgstr "Your affiliation account was temporarily suspended."
1777
+
1778
+ #: templates/forms/affiliation.php:120
1779
+ 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."
1780
+ 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."
1781
+
1782
+ #: templates/forms/affiliation.php:123
1783
+ msgid "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
1784
+ msgstr "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
1785
+
1786
+ #: templates/forms/affiliation.php:136
1787
+ msgid "Like the %s? Become our ambassador and earn cash ;-)"
1788
+ msgstr "Like the %s? Become our ambassador and earn cash ;-)"
1789
+
1790
+ #: templates/forms/affiliation.php:137
1791
+ msgid "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
1792
+ msgstr "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
1793
+
1794
+ #: templates/forms/affiliation.php:140
1795
+ msgid "Program Summary"
1796
+ msgstr "Program Summary"
1797
+
1798
+ #: templates/forms/affiliation.php:142
1799
+ msgid "%s commission when a customer purchases a new license."
1800
+ msgstr "%s commission when a customer purchases a new license."
1801
+
1802
+ #: templates/forms/affiliation.php:144
1803
+ msgid "Get commission for automated subscription renewals."
1804
+ msgstr "Get commission for automated subscription renewals."
1805
+
1806
+ #: templates/forms/affiliation.php:147
1807
+ msgid "%s tracking cookie after the first visit to maximize earnings potential."
1808
+ msgstr "%s tracking cookie after the first visit to maximize earnings potential."
1809
+
1810
+ #: templates/forms/affiliation.php:150
1811
+ msgid "Unlimited commissions."
1812
+ msgstr "Unlimited commissions."
1813
+
1814
+ #: templates/forms/affiliation.php:152
1815
+ msgid "%s minimum payout amount."
1816
+ msgstr "%s minimum payout amount."
1817
+
1818
+ #: templates/forms/affiliation.php:153
1819
+ msgid "Payouts are in USD and processed monthly via PayPal."
1820
+ msgstr "Payouts are in USD and processed monthly via PayPal."
1821
+
1822
+ #: templates/forms/affiliation.php:154
1823
+ msgid "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
1824
+ msgstr "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
1825
+
1826
+ #: templates/forms/affiliation.php:157
1827
+ msgid "Affiliate"
1828
+ msgstr "Affiliate"
1829
+
1830
+ #: templates/forms/affiliation.php160, templates/forms/resend-key.php:23
1831
+ msgid "Email address"
1832
+ msgstr "Dirección de correo electrónico"
1833
+
1834
+ #: templates/forms/affiliation.php:164
1835
+ msgid "Full name"
1836
+ msgstr "Full name"
1837
+
1838
+ #: templates/forms/affiliation.php:168
1839
+ msgid "PayPal account email address"
1840
+ msgstr "PayPal account email address"
1841
+
1842
+ #: templates/forms/affiliation.php:172
1843
+ msgid "Where are you going to promote the %s?"
1844
+ msgstr "Where are you going to promote the %s?"
1845
+
1846
+ #: templates/forms/affiliation.php:174
1847
+ msgid "Enter the domain of your website or other websites from where you plan to promote the %s."
1848
+ msgstr "Enter the domain of your website or other websites from where you plan to promote the %s."
1849
+
1850
+ #: templates/forms/affiliation.php:176
1851
+ msgid "Add another domain"
1852
+ msgstr "Add another domain"
1853
+
1854
+ #: templates/forms/affiliation.php:180
1855
+ msgid "Extra Domains"
1856
+ msgstr "Extra Domains"
1857
+
1858
+ #: templates/forms/affiliation.php:181
1859
+ msgid "Extra domains where you will be marketing the product from."
1860
+ msgstr "Extra domains where you will be marketing the product from."
1861
+
1862
+ #: templates/forms/affiliation.php:191
1863
+ msgid "Promotion methods"
1864
+ msgstr "Promotion methods"
1865
+
1866
+ #: templates/forms/affiliation.php:194
1867
+ msgid "Social media (Facebook, Twitter, etc.)"
1868
+ msgstr "Social media (Facebook, Twitter, etc.)"
1869
+
1870
+ #: templates/forms/affiliation.php:198
1871
+ msgid "Mobile apps"
1872
+ msgstr "Mobile apps"
1873
+
1874
+ #: templates/forms/affiliation.php:202
1875
+ msgid "Website, email, and social media statistics (optional)"
1876
+ msgstr "Website, email, and social media statistics (optional)"
1877
+
1878
+ #: templates/forms/affiliation.php:205
1879
+ 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)."
1880
+ 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)."
1881
+
1882
+ #: templates/forms/affiliation.php:209
1883
+ msgid "How will you promote us?"
1884
+ msgstr "How will you promote us?"
1885
+
1886
+ #: templates/forms/affiliation.php:212
1887
+ msgid "Please provide details on how you intend to promote %s (please be as specific as possible)."
1888
+ msgstr "Please provide details on how you intend to promote %s (please be as specific as possible)."
1889
+
1890
+ #: templates/forms/affiliation.php218, templates/forms/resend-key.php:22
1891
+ msgid "Cancel"
1892
+ msgstr "Cancelar"
1893
+
1894
+ #: templates/forms/affiliation.php:220
1895
+ msgid "Become an affiliate"
1896
+ msgstr "Become an affiliate"
1897
+
1898
+ #: templates/forms/affiliation.php:275
1899
+ msgid "Email address is required."
1900
+ msgstr "Email address is required."
1901
+
1902
+ #: templates/forms/affiliation.php:281
1903
+ msgid "PayPal email address is required."
1904
+ msgstr "PayPal email address is required."
1905
+
1906
+ #: templates/forms/affiliation.php:291
1907
+ msgid "Domain is required."
1908
+ msgstr "Domain is required."
1909
+
1910
+ #: templates/forms/affiliation.php294, templates/forms/affiliation.php:308
1911
+ msgid "Invalid domain"
1912
+ msgstr "Invalid domain"
1913
+
1914
+ #: templates/forms/affiliation.php:364
1915
+ msgid "Processing"
1916
+ msgstr "Processing"
1917
+
1918
+ #: templates/forms/license-activation.php:20
1919
+ msgid "Please enter the license key that you received in the email right after the purchase:"
1920
+ msgstr "Por favor, introduce la clave de licencia que recibiste en el correo electrónico al realizar la compra:"
1921
+
1922
+ #: templates/forms/license-activation.php:25
1923
+ msgid "Update License"
1924
+ msgstr "Activar Licencia"
1925
+
1926
+ #: templates/forms/optout.php:30
1927
+ msgctxt "verb"
1928
+ msgid "Opt Out"
1929
+ msgstr "Darse de baja"
1930
+
1931
+ #: templates/forms/optout.php:31
1932
+ msgctxt "verb"
1933
+ msgid "Opt In"
1934
+ msgstr "Inscribirse"
1935
+
1936
+ #: templates/forms/optout.php:32
1937
+ msgid "We appreciate your help in making the %s better by letting us track some usage data."
1938
+ msgstr "Agradecemos tu ayuda para mejorar %s y por permitirnos rastrear algunos datos de uso."
1939
+
1940
+ #: templates/forms/optout.php:33
1941
+ 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."
1942
+ msgstr "El uso del seguimiento se hace con la intención de mejorar %s. Crear una mejor experiencia de usuario, priorizando nuevas características y cosas mejores. Realmente apreciaríamos que considerases permitirnos continuar con el seguimiento."
1943
+
1944
+ #: templates/forms/optout.php:35
1945
+ msgid "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
1946
+ msgstr "Haciendo clic en \"Desistir\", ya no enviaremos los datos de %s a %s."
1947
+
1948
+ #: templates/forms/resend-key.php:21
1949
+ msgid "Send License Key"
1950
+ msgstr "Enviar Clave de Licencia"
1951
+
1952
+ #: templates/forms/resend-key.php:57
1953
+ msgid "Enter the email address you've used for the upgrade below and we will resend you the license key."
1954
+ msgstr "Escribe abajo la dirección de correo electrónico que has usado para la actualización y te reenviaremos la clave de licencia."
1955
+
1956
+ #: templates/forms/trial-start.php:22
1957
+ msgid "You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
1958
+ msgstr "Estás a sólo 1-click de comenzar tu %1$s días de prueba gratuita del plan %2$s."
1959
+
1960
+ #: templates/forms/trial-start.php:28
1961
+ 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."
1962
+ 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."
1963
+
1964
+ #: templates/js/style-premium-theme.php:37
1965
+ msgid "Premium"
1966
+ msgstr "Premium"
1967
+
1968
+ #: templates/plugin-info/description.php72,
1969
+ #: templates/plugin-info/screenshots.php:31
1970
+ msgid "Click to view full-size screenshot %d"
1971
+ msgstr "Click para ver la captura de pantalla a tamaño completo %d"
1972
+
1973
+ #: templates/plugin-info/features.php:56
1974
+ msgid "Unlimited Updates"
1975
+ msgstr "Actualizaciones Ilimitadas"
1976
+
1977
+ #: templates/forms/deactivation/contact.php:19
1978
+ msgid "Sorry for the inconvenience and we are here to help if you give us a chance."
1979
+ msgstr "Disculpa las molestias y estamos aquí para ayudarte si nos das una oportunidad."
1980
+
1981
+ #: templates/forms/deactivation/contact.php:22
1982
+ msgid "Contact Support"
1983
+ msgstr "Contactar Soporte"
1984
+
1985
+ #: templates/forms/deactivation/form.php:56
1986
+ msgid "Anonymous feedback"
1987
+ msgstr "Comentarios anónimos"
1988
+
1989
+ #: templates/forms/deactivation/form.php:63
1990
+ msgid "Deactivate"
1991
+ msgstr "Desactivar"
1992
+
1993
+ #: templates/forms/deactivation/form.php:65
1994
+ msgid "Activate %s"
1995
+ msgstr "Activar %s"
1996
+
1997
+ #: templates/forms/deactivation/form.php:76
1998
+ msgid "Quick feedback"
1999
+ msgstr "Comentarios rápidos"
2000
+
2001
+ #: templates/forms/deactivation/form.php:80
2002
+ msgid "If you have a moment, please let us know why you are %s"
2003
+ msgstr "Si tienes un momento, por favor, dinos por qué estás desactivando %s"
2004
+
2005
+ #: templates/forms/deactivation/form.php:80
2006
+ msgid "deactivating"
2007
+ msgstr "desactivando"
2008
+
2009
+ #: templates/forms/deactivation/form.php:80
2010
+ msgid "switching"
2011
+ msgstr "cambiando"
2012
+
2013
+ #: templates/forms/deactivation/form.php:248
2014
+ msgid "Submit & %s"
2015
+ msgstr "Enviar y %s"
2016
+
2017
+ #: templates/forms/deactivation/form.php:269
2018
+ msgid "Kindly tell us the reason so we can improve."
2019
+ msgstr "Por favor, dínos la razón para que podamos mejorar."
2020
+
2021
+ #: templates/forms/deactivation/form.php:390
2022
+ msgid "Yes - %s"
2023
+ msgstr "Si - %s"
2024
+
2025
+ #: templates/forms/deactivation/form.php:397
2026
+ msgid "Skip & %s"
2027
+ msgstr "Saltar y %s"
2028
+
2029
+ #: templates/forms/deactivation/retry-skip.php:21
2030
+ msgid "Click here to use the plugin anonymously"
2031
+ msgstr "Haz Click aquí para utilizar el plugin de forma anónima"
2032
+
2033
+ #: templates/forms/deactivation/retry-skip.php:23
2034
+ msgid "You might have missed it, but you don't have to share any data and can just %s the opt-in."
2035
+ msgstr "Es posible que te lo hayas perdido, pero no tienes que compartir ningún dato y puedes solo aceptar %s."
includes/vendor/freemius/wordpress-sdk/languages/freemius-he.mo DELETED
Binary file
includes/vendor/freemius/wordpress-sdk/languages/freemius-he_IL.mo ADDED
Binary file
includes/vendor/freemius/wordpress-sdk/languages/{freemius-he.po → freemius-he_IL.po} RENAMED
@@ -2,1826 +2,2035 @@
2
  # This file is distributed under the same license as the freemius package.
3
  # Translators:
4
  # Rami Yushuvaev <r_a_m_i@hotmail.com>, 2017
5
- # Vova Feldman <vova@freemius.com>, 2016
6
  msgid ""
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: 2017-08-24 12:32+0000\n"
12
  "Last-Translator: Vova Feldman <vova@freemius.com>\n"
13
- "Language: he\n"
14
- "Language-Team: Hebrew (http://www.transifex.com/freemius/wordpress-sdk/language/he/)\n"
15
  "Content-Type: text/plain; charset=UTF-8\n"
16
  "Content-Transfer-Encoding: 8bit\n"
17
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
  "MIME-Version: 1.0\n"
19
  "X-Poedit-Basepath: ..\n"
20
- "X-Poedit-KeywordsList: _fs_text;_fs_echo;_fs_esc_attr;_fs_esc_attr_echo;_fs_esc_html;_fs_esc_html_echo;_fs_x:1,2c;_fs_ex:1,2c;_fs_esc_attr_x:1,2c;_fs_esc_html_x:1,2c;_fs_n:1,2;_fs_n_noop:1,2;_fs_nx:1,2,4c;_fs_nx_noop:1,2,3c\n"
21
  "X-Poedit-SearchPath-0: .\n"
22
  "X-Poedit-SearchPathExcluded-0: *.js\n"
23
  "X-Poedit-SourceCharset: UTF-8\n"
24
 
25
- #: includes/i18n.php:37
26
- msgid "Account"
27
- msgstr "חשבון"
28
-
29
- #: includes/i18n.php:38
30
- msgid "Add-On"
31
- msgstr "Add-On"
32
 
33
- #: includes/i18n.php:39
34
- msgid "Contact Us"
35
- msgstr "יצירת קשר"
36
 
37
- #: includes/i18n.php:40
38
- msgid "Contact Support"
39
- msgstr "צור קשר"
40
 
41
- #: includes/i18n.php:41
42
- msgid "Change Ownership"
43
- msgstr "עדכון בעלות"
44
 
45
- #: includes/i18n.php:42
46
- msgid "Support"
47
- msgstr "תמיכה"
48
 
49
- #: includes/i18n.php:43
50
- msgid "Support Forum"
51
- msgstr "פורום תמיכה"
52
 
53
- #: includes/i18n.php:44
54
- msgid "Add-Ons"
55
- msgstr "Add-Ons"
56
 
57
- #: includes/i18n.php:45
58
- msgctxt "verb"
59
- msgid "Upgrade"
60
- msgstr "שדרג"
61
 
62
- #: includes/i18n.php:46
63
- msgid "Awesome"
64
- msgstr "אדיר"
65
 
66
- #: includes/i18n.php:47
67
- msgctxt "noun"
68
- msgid "Pricing"
69
- msgstr "מחירון"
70
 
71
- #: includes/i18n.php:48
72
- msgctxt "noun"
73
- msgid "Price"
74
- msgstr "מחיר"
75
 
76
- #: includes/i18n.php:49
77
- msgid "Unlimited Updates"
78
- msgstr "עדכונים ללא הגבלה"
79
 
80
- #: includes/i18n.php:50
81
- msgctxt "verb"
82
- msgid "Downgrade"
83
- msgstr "שנמך"
84
 
85
- #: includes/i18n.php:51
86
- msgctxt "verb"
87
- msgid "Cancel Subscription"
88
- msgstr "בטל מנוי"
89
 
90
- #: includes/i18n.php:52
91
- msgid "Cancel Trial"
92
- msgstr "ביט"
93
 
94
- #: includes/i18n.php:53
95
- msgid "Free Trial"
96
- msgstr "ניסיון חינם"
97
 
98
- #: includes/i18n.php:54
99
- msgid "Start my free %s"
100
- msgstr "התחל את %s הניסיון שלי"
101
 
102
- #: includes/i18n.php:55
103
- msgid "No commitment for %s - cancel anytime"
104
- msgstr "No commitment for %s - cancel anytime"
105
 
106
- #: includes/i18n.php:56
107
- msgid "After your free %s, pay as little as %s"
108
- msgstr "After your free %s, pay as little as %s"
109
 
110
- #: includes/i18n.php:57
111
- msgid "Details"
112
- msgstr "פרטים"
113
 
114
- #: includes/i18n.php:58
115
- msgid "Account Details"
116
- msgstr "פרטי חשבון"
117
 
118
- #: includes/i18n.php:59
119
- msgctxt "verb"
120
- msgid "Delete"
121
- msgstr "מחק"
122
 
123
- #: includes/i18n.php:60
124
- msgctxt "verb"
125
- msgid "Show"
126
- msgstr "הצג"
127
 
128
- #: includes/i18n.php:61
129
- msgctxt "verb"
130
- msgid "Hide"
131
- msgstr "הסתר"
132
 
133
- #: includes/i18n.php:62
134
- msgctxt "verb"
135
- msgid "Edit"
136
- msgstr "ערוך"
137
 
138
- #: includes/i18n.php:63
139
- msgctxt "verb"
140
- msgid "Update"
141
- msgstr "עדכן"
142
 
143
- #: includes/i18n.php:64
144
- msgid "Date"
145
- msgstr "תאריך"
146
 
147
- #: includes/i18n.php:65
148
- msgid "Amount"
149
- msgstr "סכום"
150
 
151
- #: includes/i18n.php:66
152
- msgid "Invoice"
153
- msgstr "חשבונית"
154
 
155
- #: includes/i18n.php:67
156
- msgid "Billing"
157
- msgstr "בילינג"
158
 
159
- #: includes/i18n.php:68
160
- msgid "Payments"
161
- msgstr "תשלומים"
162
 
163
- #: includes/i18n.php:69
164
- msgid "Delete Account"
165
- msgstr "מחיקת חשבון"
 
 
 
 
 
 
 
166
 
167
- #: includes/i18n.php:70
168
- msgctxt "as close a window"
169
- msgid "Dismiss"
170
- msgstr "סגירה"
171
 
172
- #: includes/i18n.php:71
173
- msgctxt "as product pricing plan"
174
- msgid "Plan"
175
- msgstr "חבילה"
176
 
177
- #: includes/i18n.php:72
178
- msgid "Change Plan"
179
- msgstr "שינוי חבילה"
 
180
 
181
- #: includes/i18n.php:73
182
- msgctxt "as download professional version"
183
- msgid "Download %s Version"
184
- msgstr "הורד גרסת %s"
185
 
186
- #: includes/i18n.php:74
187
- msgctxt "as download professional version now"
188
- msgid "Download %s version now"
189
- msgstr "הורד עכשיו גרסת %s"
190
 
191
- #: includes/i18n.php:75
192
- msgctxt "as download latest version"
193
- msgid "Download Latest"
194
- msgstr "הורד גרסה אחרונה"
195
 
196
- #: includes/i18n.php:76
197
- msgctxt "E.g. you have a professional license."
198
  msgid "You have a %s license."
199
  msgstr "יש לך רישיון %s."
200
 
201
- #: includes/i18n.php:77
202
- msgid "New"
203
- msgstr "חדש"
204
-
205
- #: includes/i18n.php:78
206
- msgid "Free"
207
- msgstr "חינם"
208
 
209
- #: includes/i18n.php:79
210
- msgctxt "as trial plan"
211
- msgid "Trial"
212
- msgstr "ניסיון"
213
 
214
- #: includes/i18n.php:80
215
- msgctxt "as starting a trial plan"
216
- msgid "Start Trial"
217
- msgstr "התחל תקופת ניסיון"
218
 
219
- #: includes/i18n.php:81
220
- msgctxt "verb"
221
- msgid "Purchase"
222
- msgstr "רכישה"
223
 
224
- #: includes/i18n.php:82
225
  msgid "Purchase License"
226
  msgstr "קניית רישיון"
227
 
228
- #: includes/i18n.php:83
229
- msgctxt "verb"
230
- msgid "Buy"
231
- msgstr "קנייה"
232
-
233
- #: includes/i18n.php:84
234
- msgid "Buy License"
235
- msgstr "קניית רישיון"
236
-
237
- #: includes/i18n.php:85
238
- msgid "Single Site License"
239
- msgstr "רשיון לאתר אחד"
240
-
241
- #: includes/i18n.php:86
242
- msgid "Unlimited Licenses"
243
- msgstr "רשיונות ללא הגבלה"
244
-
245
- #: includes/i18n.php:87
246
- msgid "Up to %s Sites"
247
- msgstr "עד %s אתרים"
248
-
249
- #: includes/i18n.php:88
250
- msgid "%sRenew your license now%s to access version %s features and support."
251
- msgstr "%sRenew your license now%s to access version %s features and support."
252
 
253
- #: includes/i18n.php:89
254
- msgid "Enter the email address you've used for the upgrade below and we will resend you the license key."
255
- msgstr "Enter the email address you've used for the upgrade below and we will resend you the license key."
256
 
257
- #: includes/i18n.php:90
258
- msgctxt "e.g. Professional Plan"
259
- msgid "%s Plan"
260
- msgstr "חבילה %s"
261
 
262
- #: includes/i18n.php:91
263
  msgid "You are just one step away - %s"
264
  msgstr "You are just one step away - %s"
265
 
266
- #: includes/i18n.php:92
267
- msgctxt "%s - plugin name. As complete \"Jetpack\" activation now"
268
  msgid "Complete \"%s\" Activation Now"
269
  msgstr "השלם הפעלת \"%s\" עכשיו"
270
 
271
- #: includes/i18n.php:94
272
  msgid "We made a few tweaks to the %s, %s"
273
  msgstr "We made a few tweaks to the %s, %s"
274
 
275
- #: includes/i18n.php:95
276
- msgid "Opt-in to make \"%s\" Better!"
277
- msgstr "Opt-in to make \"%s\" Better!"
278
 
279
- #: includes/i18n.php:96
280
- msgid "Error"
281
- msgstr "שגיאה"
282
-
283
- #: includes/i18n.php:97
284
- msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
285
- msgstr "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
286
 
287
- #: includes/i18n.php:100
288
- msgctxt "as expiration date"
289
- msgid "Expiration"
290
- msgstr "תפוגה"
 
291
 
292
- #: includes/i18n.php:101
293
- msgctxt "as software license"
294
- msgid "License"
295
- msgstr "רישיון"
296
 
297
- #: includes/i18n.php:102
298
- msgid "not verified"
299
- msgstr "לא מאומת"
 
300
 
301
- #: includes/i18n.php:103
302
- msgid "Verify Email"
303
- msgstr "אמת כתובת דוא\"ל"
304
 
305
- #: includes/i18n.php:104
306
- msgctxt "e.g. expires in 2 months"
307
- msgid "Expires in %s"
308
- msgstr "פג תוקף בעוד %s"
309
 
310
- #: includes/i18n.php:105
311
- msgctxt "e.g. auto renews in 2 months"
312
- msgid "Auto renews in %s"
313
- msgstr "עדכן אוטומטית בעוד %s"
314
 
315
- #: includes/i18n.php:106
316
- msgid "No expiration"
317
- msgstr "ללא תפוגה"
 
318
 
319
- #: includes/i18n.php:107
320
- msgid "Expired"
321
- msgstr "פג תוקף"
322
 
323
- #: includes/i18n.php:108
324
- msgid "Cancelled"
325
- msgstr "בוטל"
326
 
327
- #: includes/i18n.php:109
328
- msgctxt "e.g. In 2 hours"
329
- msgid "In %s"
330
- msgstr "בעוד %s"
331
 
332
- #: includes/i18n.php:110
333
- msgctxt "e.g. 2 min ago"
334
- msgid "%s ago"
335
- msgstr "לפני %s"
336
 
337
- #: includes/i18n.php:112
338
- msgid "%s or higher"
339
- msgstr "%s ומעלה"
340
 
341
- #: includes/i18n.php:113
342
- msgctxt "as plugin version"
343
- msgid "Version"
344
- msgstr "גרסה"
345
 
346
- #: includes/i18n.php:114
347
- msgid "Name"
348
- msgstr "שם"
349
 
350
- #: includes/i18n.php:115
351
- msgid "Email"
352
- msgstr "דוא\"ל"
353
 
354
- #: includes/i18n.php:116
355
- msgid "Email address"
356
- msgstr "כתובת דוא\"ל"
 
357
 
358
- #: includes/i18n.php:117
359
- msgid "Verified"
360
- msgstr "מאומת"
 
361
 
362
- #: includes/i18n.php:118
363
- msgid "Module"
364
- msgstr "מודול"
 
365
 
366
- #: includes/i18n.php:119
367
- msgid "Module Type"
368
- msgstr "סוג מודול"
 
369
 
370
- #: includes/i18n.php:120
371
- msgid "Plugin"
372
- msgstr "תוסף"
 
373
 
374
- #: includes/i18n.php:121
375
- msgid "Plugins"
376
- msgstr "תוספים"
377
 
378
- #: includes/i18n.php:122
379
- msgid "Theme"
380
- msgstr "תבנית"
 
381
 
382
- #: includes/i18n.php:123
383
- msgid "Themes"
384
- msgstr "תבניות"
385
 
386
- #: includes/i18n.php:124
387
- msgctxt "as file/folder path"
388
- msgid "Path"
389
- msgstr "נתיב"
390
 
391
- #: includes/i18n.php:125
392
- msgid "Title"
393
- msgstr "כותרת"
394
 
395
- #: includes/i18n.php:126
396
- msgid "Free version"
397
- msgstr "גירסה חינאמית"
 
398
 
399
- #: includes/i18n.php:127
400
- msgid "Premium version"
401
- msgstr "גירסת פרימיום"
 
402
 
403
- #: includes/i18n.php:128
404
- msgctxt "as WP plugin slug"
405
- msgid "Slug"
406
- msgstr "מזהה כתובת"
407
 
408
- #: includes/i18n.php:129
409
- msgid "ID"
410
- msgstr "מזהה"
 
 
411
 
412
- #: includes/i18n.php:130
413
- msgid "Users"
414
- msgstr "משתמשים"
415
 
416
- #: includes/i18n.php:131
417
- msgid "%s Installs"
418
- msgstr "%s התקנות"
 
 
419
 
420
- #: includes/i18n.php:132
421
- msgctxt "like websites"
422
- msgid "Sites"
423
- msgstr "אתרים"
424
 
425
- #: includes/i18n.php:133
426
- msgid "User ID"
427
- msgstr "מזהה משתמש"
428
 
429
- #: includes/i18n.php:134
430
- msgid "Site ID"
431
- msgstr "מזהה אתר"
432
 
433
- #: includes/i18n.php:135
434
- msgid "Public Key"
435
- msgstr "מפתח פומבי"
436
 
437
- #: includes/i18n.php:136
438
- msgid "Secret Key"
439
- msgstr "מפתח סודי"
440
 
441
- #: includes/i18n.php:137
442
- msgctxt "as secret encryption key missing"
443
- msgid "No Secret"
444
- msgstr "אין מפתח סודי"
445
 
446
- #: includes/i18n.php:138
447
- msgid "No ID"
448
- msgstr "אין מזהה"
449
 
450
- #: includes/i18n.php:139
451
- msgctxt "as synchronize license"
452
- msgid "Sync License"
453
- msgstr "סינכרן רישיון"
454
 
455
- #: includes/i18n.php:140
456
- msgctxt "as synchronize"
457
- msgid "Sync"
458
- msgstr "סינכרון"
459
 
460
- #: includes/i18n.php:141
461
- msgid "Activate License"
462
- msgstr "הפעלת רישיון"
463
 
464
- #: includes/i18n.php:142
465
- msgid "Activate Free Version"
466
- msgstr "הפעלת גירסה חינאמית"
467
 
468
- #: includes/i18n.php:143
469
- msgid "Please enter the license key that you received in the email right after the purchase:"
470
- msgstr "Please enter the license key that you received in the email right after the purchase:"
471
 
472
- #: includes/i18n.php:144
473
- msgid "Activating license..."
474
- msgstr "מפעיל רישיון..."
475
 
476
- #: includes/i18n.php:145
477
- msgid "Change License"
478
- msgstr "שינוי רישיון"
479
 
480
- #: includes/i18n.php:146
481
- msgid "Update License"
482
- msgstr "עדכון רישיון"
483
 
484
- #: includes/i18n.php:147
485
- msgid "Deactivate License"
486
- msgstr "שיחרור רישיון"
487
 
488
- #: includes/i18n.php:148
489
- msgid "Activate"
490
- msgstr "הפעלה"
491
 
492
- #: includes/i18n.php:149
493
- msgid "Deactivate"
494
- msgstr "כיבוי"
495
 
496
- #: includes/i18n.php:150
497
- msgid "Skip & Deactivate"
498
- msgstr "דלג והמשך כיבוי"
499
 
500
- #: includes/i18n.php:151
501
- msgid "Skip & %s"
502
- msgstr "דלג ו%s"
503
 
504
- #: includes/i18n.php:152
505
- msgid "No - just deactivate"
506
- msgstr "לא - פשוט כבה"
507
 
508
- #: includes/i18n.php:153
509
- msgid "Yes - do your thing"
510
- msgstr "כן - בצעו את מה שצריך"
511
 
512
- #: includes/i18n.php:154
513
- msgctxt "active mode"
514
- msgid "Active"
515
- msgstr "מופעל"
516
 
517
- #: includes/i18n.php:155
518
- msgctxt "is active mode?"
519
- msgid "Is Active"
520
- msgstr "האם פעיל"
521
 
522
- #: includes/i18n.php:156
523
- msgid "Install Now"
524
- msgstr "התקן עכשיו"
525
 
526
- #: includes/i18n.php:157
527
- msgid "Install Update Now"
528
- msgstr "התקן עדכון במיידי"
529
 
530
- #: includes/i18n.php:158
531
- msgid "More information about %s"
532
- msgstr "מידע נוסף אודות %s"
533
 
534
- #: includes/i18n.php:159
535
- msgid "Localhost"
536
- msgstr "שרת לוקאלי"
537
 
538
- #: includes/i18n.php:160
539
- msgctxt "as activate Professional plan"
540
- msgid "Activate %s Plan"
541
- msgstr "הפעל חבילה %s"
542
 
543
- #: includes/i18n.php:161
544
- msgctxt "as 5 licenses left"
545
- msgid "%s left"
546
- msgstr "נשארו %s"
547
 
548
- #: includes/i18n.php:162
549
- msgid "Last license"
550
- msgstr "רישיון אחרון"
551
 
552
- #: includes/i18n.php:163
553
- msgid "What is your %s?"
554
- msgstr "מה ה%s שלך?"
555
 
556
- #: includes/i18n.php:164
557
- msgid "Activate this add-on"
558
- msgstr "הפעל את ההרחבה"
559
 
560
- #: includes/i18n.php:165
561
- msgid "Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?"
562
- msgstr "Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?"
563
 
564
- #: includes/i18n.php:166
565
- 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?"
566
- 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?"
 
567
 
568
- #: includes/i18n.php:167
569
- 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?"
570
- 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?"
571
 
572
- #: includes/i18n.php:168
573
- msgid "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
574
- msgstr "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
575
 
576
- #: includes/i18n.php:169
577
- msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
578
- msgstr "Cancelling the trial will immediately block access to all premium features. Are you sure?"
579
 
580
- #: includes/i18n.php:170
581
- msgid "You can still enjoy all %s features but you will not have access to %s updates and support."
582
- msgstr "You can still enjoy all %s features but you will not have access to %s updates and support."
583
 
584
- #: includes/i18n.php:171
585
- msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
586
- msgstr "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
587
 
588
- #: includes/i18n.php:172
589
- msgid "Are you sure you want to proceed?"
590
- msgstr "האם את/ה בטוח רוצה להמשיך?"
591
 
592
- #: includes/i18n.php:175
593
- msgid "Add Ons for %s"
594
- msgstr "הרחבות עבור %s"
595
 
596
- #: includes/i18n.php:176
597
- 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."
598
- 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."
599
 
600
- #: includes/i18n.php:178
601
- msgid "Anonymous feedback"
602
- msgstr "פידבק אנונימי"
 
603
 
604
- #: includes/i18n.php:179
605
- msgid "Quick feedback"
606
- msgstr "פידבק זריז"
607
 
608
- #: includes/i18n.php:180
609
- msgid "If you have a moment, please let us know why you are %s"
610
- msgstr "If you have a moment, please let us know why you are %s"
 
611
 
612
- #: includes/i18n.php:181
613
- msgid "deactivating"
614
- msgstr "deactivating"
615
 
616
- #: includes/i18n.php:182
617
- msgid "Deactivation"
618
- msgstr "Deactivation"
619
 
620
- #: includes/i18n.php:183
621
- msgid "Theme Switch"
622
- msgstr "Theme Switch"
623
 
624
- #: includes/i18n.php:184
625
- msgid "switching"
626
- msgstr "switching"
 
627
 
628
- #: includes/i18n.php:185
629
- msgid "Switch"
630
- msgstr "Switch"
631
 
632
- #: includes/i18n.php:186
633
- msgid "Activate %s"
634
- msgstr "Activate %s"
635
 
636
- #: includes/i18n.php:187
637
- msgid "Yes - %s"
638
- msgstr "Yes - %s"
 
639
 
640
- #: includes/i18n.php:188
641
- msgid "Submit & %s"
642
- msgstr "Submit & %s"
643
 
644
- #: includes/i18n.php:189
645
- msgid "Cancel"
646
- msgstr "בטל"
647
 
648
- #: includes/i18n.php:190
649
- msgid "I no longer need the %s"
650
- msgstr "I no longer need the %s"
651
 
652
- #: includes/i18n.php:191
653
- msgid "I found a better %s"
654
- msgstr "I found a better %s"
655
 
656
- #: includes/i18n.php:192
657
- msgid "I only needed the %s for a short period"
658
- msgstr "I only needed the %s for a short period"
659
 
660
- #: includes/i18n.php:193
661
- msgid "The %s broke my site"
662
- msgstr "The %s broke my site"
663
 
664
- #: includes/i18n.php:194
665
- msgid "The %s suddenly stopped working"
666
- msgstr "The %s suddenly stopped working"
667
 
668
- #: includes/i18n.php:195
669
- msgid "I can't pay for it anymore"
670
- msgstr "אני לא יכול/ה להמשיך לשלם על זה"
671
 
672
- #: includes/i18n.php:196
673
- msgid "It's a temporary deactivation. I'm just debugging an issue."
674
- msgstr "כיבוי זמני לשם דיבאג."
 
 
675
 
676
- #: includes/i18n.php:197
677
- msgid "It's a temporary %s. I'm just debugging an issue."
678
- msgstr "It's a temporary %s. I'm just debugging an issue."
679
 
680
- #: includes/i18n.php:198
681
- msgctxt ""
682
- msgid "Other"
683
- msgstr "Other"
684
 
685
- #: includes/i18n.php:200
686
- msgid "Kindly tell us the reason so we can improve."
687
- msgstr "אנא שתף את הסיבה כדי שנוכל להשתפר."
688
 
689
- #: includes/i18n.php:201
690
- msgid "What's the %s's name?"
691
- msgstr "What's the %s's name?"
692
 
693
- #: includes/i18n.php:202
694
- msgid "What price would you feel comfortable paying?"
695
- msgstr "מה המחיר שכן תרגיש\\י בנוח לשלם?"
696
 
697
- #: includes/i18n.php:203
698
- msgid "I couldn't understand how to make it work"
699
- msgstr "לא הצלחתי להבין איך לגרום לזה לעבוד"
700
 
701
- #: includes/i18n.php:204
702
- msgid "The %s is great, but I need specific feature that you don't support"
703
- msgstr "The %s is great, but I need specific feature that you don't support"
704
 
705
- #: includes/i18n.php:205
706
- msgid "The %s is not working"
707
- msgstr "The %s is not working"
708
 
709
- #: includes/i18n.php:206
710
- msgid "It's not what I was looking for"
711
- msgstr "חיפשתי משהו אחר"
712
 
713
- #: includes/i18n.php:207
714
- msgid "The %s didn't work as expected"
715
- msgstr "The %s didn't work as expected"
 
716
 
717
- #: includes/i18n.php:208
718
- msgid "What feature?"
719
- msgstr "איזה פיטצ'ר?"
720
 
721
- #: includes/i18n.php:209
722
- msgid "Kindly share what didn't work so we can fix it for future users..."
723
- msgstr "אנא שתפ\\י מה לא עבד כדי שנוכל לתקן זאת עבור משתמשים עתידיים..."
 
724
 
725
- #: includes/i18n.php:210
726
- msgid "What you've been looking for?"
727
- msgstr "מה חיפשת?"
 
728
 
729
- #: includes/i18n.php:211
730
- msgid "What did you expect?"
731
- msgstr "למה ציפית?"
732
 
733
- #: includes/i18n.php:212
734
- msgid "The %s didn't work"
735
- msgstr "The %s didn't work"
736
 
737
- #: includes/i18n.php:213
738
- msgid "I don't like to share my information with you"
739
- msgstr "אני לא אוהב את הרעיון של שיתוף מידע איתכם"
740
 
741
- #: includes/i18n.php:214
742
- msgid "You might have missed it, but you don't have to share any data and can just %s the opt-in."
743
- msgstr "אולי פספסת את זה אבל אינך חייב\\ת לשתף כל מידע איתנו, ביכולתך %s על שיתוף המידע."
 
744
 
745
- #: includes/i18n.php:218
746
- msgctxt "greeting"
747
- msgid "Hey %s,"
748
- msgstr "היי %s,"
749
 
750
- #: includes/i18n.php:219
751
- msgctxt "a greeting. E.g. Thanks John!"
752
- msgid "Thanks %s!"
753
- msgstr "תודה %s!"
754
 
755
- #: includes/i18n.php:220
756
- msgid "Never miss an important update - opt-in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
757
- msgstr "Never miss an important update - opt-in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
 
758
 
759
- #: includes/i18n.php:221
760
- msgid "Please help us improve %1$s! If you opt-in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just fine."
761
- msgstr "Please help us improve %1$s! If you opt-in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just fine."
 
762
 
763
- #: includes/i18n.php:222
764
- 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."
765
- 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."
 
766
 
767
- #: includes/i18n.php:223
768
- msgid "complete the install"
769
- msgstr "השלם התקנה"
 
770
 
771
- #: includes/i18n.php:224
772
- msgid "start the trial"
773
- msgstr "התחל תקופת ניסיון"
 
774
 
775
- #: includes/i18n.php:225
776
- msgid "Thanks for purchasing %s! To get started, please enter your license key:"
777
- msgstr "Thanks for purchasing %s! To get started, please enter your license key:"
778
 
779
- #: includes/i18n.php:226
780
- 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."
781
- 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."
 
782
 
783
- #: includes/i18n.php:227
784
- msgid "What permissions are being granted?"
785
- msgstr "מהן ההרשאות המוענקות?"
 
786
 
787
- #: includes/i18n.php:228
788
- msgid "Your Profile Overview"
789
- msgstr "פרטים כלליים על הפרופיל"
 
 
790
 
791
- #: includes/i18n.php:229
792
- msgid "Name and email address"
793
- msgstr "שם וכתובת דו\"אל"
 
794
 
795
- #: includes/i18n.php:230
796
- msgid "Your Site Overview"
797
- msgstr "פרטים כלליים על האתר"
798
 
799
- #: includes/i18n.php:231
800
- msgid "Site URL, WP version, PHP info, plugins & themes"
801
- msgstr "כתובת אתר, גרסת וורדפרס, פרטי PHP, תוספים ותבניות"
 
 
 
802
 
803
- #: includes/i18n.php:232
804
- msgid "Current %s Events"
805
- msgstr "Current %s Events"
 
806
 
807
- #: includes/i18n.php:233
808
- msgid "Activation, deactivation and uninstall"
809
- msgstr "הפעלה, כיבוי והסרה"
 
810
 
811
- #: includes/i18n.php:234
812
- msgid "Plugins & Themes"
813
- msgstr "תוספים ותבניות"
814
 
815
- #: includes/i18n.php:235
816
- msgid "Titles, versions and state."
817
- msgstr "שמות, גרסאות וסטאטוס."
818
 
819
- #: includes/i18n.php:236
820
- msgid "Admin Notices"
821
- msgstr "התראות מנהל"
822
 
823
- #: includes/i18n.php:237
824
- msgid "Newsletter"
825
- msgstr "ניוסלטר"
 
 
826
 
827
- #: includes/i18n.php:238
828
- msgid "Updates, announcements, marketing, no spam"
829
- msgstr "Updates, announcements, marketing, no spam"
 
 
830
 
831
- #: includes/i18n.php:239
832
- msgid "Privacy Policy"
833
- msgstr "מדיניות פרטיות"
 
834
 
835
- #: includes/i18n.php:240
836
- msgid "Terms of Service"
837
- msgstr "תנאי השירות"
 
838
 
839
- #: includes/i18n.php:241
840
- msgctxt "as activating plugin"
841
- msgid "Activating"
842
- msgstr "מפעיל"
843
 
844
- #: includes/i18n.php:242
845
- msgctxt "as in the process of sending an email"
846
- msgid "Sending email"
847
- msgstr "שולח דוא\"ל"
848
 
849
- #: includes/i18n.php:243
850
- msgctxt "button label"
851
- msgid "Allow & Continue"
852
- msgstr "אפשר\\י והמשכ\\י"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
853
 
854
- #: includes/i18n.php:244
855
- msgctxt "button label"
856
- msgid "Agree & Activate License"
857
- msgstr "הסכמה והפעלת רישיון"
858
 
859
- #: includes/i18n.php:245
860
- msgctxt "verb"
861
- msgid "Skip"
862
- msgstr "דלג"
863
 
864
- #: includes/i18n.php:246
865
- msgid "Click here to use the plugin anonymously"
866
- msgstr "Click here to use the plugin anonymously"
867
 
868
- #: includes/i18n.php:247
869
- msgid "Re-send activation email"
870
- msgstr "שליחה חוזרת של מייל האקטיבציה"
871
 
872
- #: includes/i18n.php:248
873
- msgid "License key"
874
- msgstr "מפתח רישיון"
875
 
876
- #: includes/i18n.php:249
877
- msgid "Send License Key"
878
- msgstr "שליחת מפתח רישיון"
879
 
880
- #: includes/i18n.php:250
881
- msgid "Sending license key"
882
- msgstr "שולח מפתח רישיון"
 
883
 
884
- #: includes/i18n.php:251
885
- msgid "Have a license key?"
886
- msgstr "האם ברשותך רישיון?"
 
887
 
888
- #: includes/i18n.php:252
889
- msgid "Don't have a license key?"
890
- msgstr "האם אין ברשותך מפתח רישיון?"
 
891
 
892
- #: includes/i18n.php:253
893
- msgid "Can't find your license key?"
894
- msgstr "האם אינך מוצא את מפתח הרישיון?"
895
 
896
- #: includes/i18n.php:254
897
- msgid "We couldn't find your email address in the system, are you sure it's the right address?"
898
- msgstr "We couldn't find your email address in the system, are you sure it's the right address?"
899
 
900
- #: includes/i18n.php:255
901
- msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
902
- msgstr "We can't see any active licenses associated with that email address, are you sure it's the right address?"
903
 
904
- #: includes/i18n.php:256
905
- msgid "Opt In"
906
- msgstr "Opt In"
907
 
908
- #: includes/i18n.php:257
909
- msgid "Opt Out"
910
- msgstr "Opt Out"
 
911
 
912
- #: includes/i18n.php:258
913
- msgid "On second thought - I want to continue helping"
914
- msgstr "במחשבה שנייה - אני רוצה להמשיך לעזור"
915
 
916
- #: includes/i18n.php:259
917
- msgid "Opting out..."
918
- msgstr "Opting out..."
919
 
920
- #: includes/i18n.php:260
921
- msgid "Opting in..."
922
- msgstr "Opting in..."
923
 
924
- #: includes/i18n.php:261
925
- msgid "We appreciate your help in making the %s better by letting us track some usage data."
926
- msgstr "We appreciate your help in making the %s better by letting us track some usage data."
927
 
928
- #: includes/i18n.php:262
929
- 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."
930
- 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."
931
 
932
- #: includes/i18n.php:263
933
- msgid "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
934
- msgstr "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
 
935
 
936
- #: includes/i18n.php:267
937
- msgid "Screenshots"
938
- msgstr "צילומי מסך"
939
 
940
- #: includes/i18n.php:268
941
- msgid "Click to view full-size screenshot %d"
942
- msgstr "Click to view full-size screenshot %d"
 
943
 
944
- #: includes/i18n.php:272
945
- msgid "Freemius Debug"
946
- msgstr "ניפוי תקלות פרימיוס"
 
947
 
948
- #: includes/i18n.php:273
949
- msgctxt "as turned on"
950
- msgid "On"
951
- msgstr "דלוק"
 
 
952
 
953
- #: includes/i18n.php:274
954
- msgctxt "as turned off"
955
- msgid "Off"
956
- msgstr "כבוי"
957
 
958
- #: includes/i18n.php:275
959
- msgctxt "as code debugging"
960
- msgid "Debugging"
961
- msgstr "דיבוג"
962
 
963
- #: includes/i18n.php:276
964
- msgid "Freemius State"
965
- msgstr "מצב פרימיוס"
966
 
967
- #: includes/i18n.php:277
968
- msgctxt "as connection was successful"
969
- msgid "Connected"
970
- msgstr "מחובר"
971
 
972
- #: includes/i18n.php:278
973
- msgctxt "as connection blocked"
974
- msgid "Blocked"
975
- msgstr "חסום"
976
 
977
- #: includes/i18n.php:279
978
- msgctxt "as application program interface"
979
- msgid "API"
980
- msgstr "API"
981
 
982
- #: includes/i18n.php:280
983
- msgctxt "as software development kit versions"
984
- msgid "SDK"
985
- msgstr "SDK"
986
 
987
- #: includes/i18n.php:281
988
- msgctxt "as software development kit versions"
989
- msgid "SDK Versions"
990
- msgstr "גרסאות SDK"
991
 
992
- #: includes/i18n.php:282
993
- msgctxt "as plugin folder path"
994
- msgid "Plugin Path"
995
- msgstr "נתיב התוסף"
996
 
997
- #: includes/i18n.php:283
998
- msgctxt "as sdk path"
999
- msgid "SDK Path"
1000
- msgstr "מיקום SDK"
 
1001
 
1002
- #: includes/i18n.php:284
1003
- msgid "Add Ons of Plugin %s"
1004
- msgstr "הרחבות עבור %s"
1005
 
1006
- #: includes/i18n.php:285
1007
- msgid "Are you sure you want to delete all Freemius data?"
1008
- msgstr "Are you sure you want to delete all Freemius data?"
1009
 
1010
- #: includes/i18n.php:286
1011
- msgid "Actions"
1012
- msgstr "פעולות"
1013
 
1014
- #: includes/i18n.php:287
1015
- msgid "Delete All Accounts"
1016
- msgstr "מחיקת כל החשבונות"
1017
 
1018
- #: includes/i18n.php:288
1019
- msgid "Start Fresh"
1020
- msgstr "התחל מחדש"
1021
 
1022
- #: includes/i18n.php:289
1023
- msgid "Clear API Cache"
1024
- msgstr "ניקוי מטמון ה-API"
1025
 
1026
- #: includes/i18n.php:290
1027
- msgid "Sync Data From Server"
1028
- msgstr "סנכרון מידע מהשרת"
1029
 
1030
- #: includes/i18n.php:291
1031
- msgid "Scheduled Crons"
1032
- msgstr "Scheduled Crons"
1033
 
1034
- #: includes/i18n.php:292
1035
- msgid "Cron Type"
1036
- msgstr "Cron Type"
1037
 
1038
- #: includes/i18n.php:293
1039
- msgid "Plugins & Themes Sync"
1040
- msgstr "Plugins & Themes Sync"
1041
 
1042
- #: includes/i18n.php:294
1043
- msgid "%s Licenses"
1044
- msgstr "%s Licenses"
1045
 
1046
- #: includes/i18n.php:295
1047
- msgid "Debug Log"
1048
- msgstr "Debug Log"
 
1049
 
1050
- #: includes/i18n.php:296
1051
- msgid "All"
1052
- msgstr "הכל"
1053
 
1054
- #: includes/i18n.php:297
1055
- msgid "File"
1056
- msgstr "קובץ"
1057
 
1058
- #: includes/i18n.php:298
1059
- msgid "Function"
1060
- msgstr "פונקציה"
2
  # This file is distributed under the same license as the freemius package.
3
  # Translators:
4
  # Rami Yushuvaev <r_a_m_i@hotmail.com>, 2017
5
+ # Vova Feldman <vova@freemius.com>, 2017
6
  msgid ""
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: 2017-12-04 15:57+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"
15
  "Content-Type: text/plain; charset=UTF-8\n"
16
  "Content-Transfer-Encoding: 8bit\n"
17
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
  "MIME-Version: 1.0\n"
19
  "X-Poedit-Basepath: ..\n"
20
+ "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"
21
  "X-Poedit-SearchPath-0: .\n"
22
  "X-Poedit-SearchPathExcluded-0: *.js\n"
23
  "X-Poedit-SourceCharset: UTF-8\n"
24
 
25
+ #: includes/class-freemius.php:959
26
+ msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
27
+ msgstr "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
 
 
 
 
28
 
29
+ #: includes/class-freemius.php:961
30
+ msgid "Error"
31
+ msgstr "שגיאה"
32
 
33
+ #: includes/class-freemius.php:1277
34
+ msgid "I found a better %s"
35
+ msgstr "I found a better %s"
36
 
37
+ #: includes/class-freemius.php:1279
38
+ msgid "What's the %s's name?"
39
+ msgstr "What's the %s's name?"
40
 
41
+ #: includes/class-freemius.php:1285
42
+ msgid "It's a temporary %s. I'm just debugging an issue."
43
+ msgstr "It's a temporary %s. I'm just debugging an issue."
44
 
45
+ #: includes/class-freemius.php:1287
46
+ msgid "Deactivation"
47
+ msgstr "דיאקטיבציה"
48
 
49
+ #: includes/class-freemius.php:1288
50
+ msgid "Theme Switch"
51
+ msgstr "החלפת תֵמָה"
52
 
53
+ #: includes/class-freemius.php1297, templates/forms/resend-key.php:24
54
+ msgid "Other"
55
+ msgstr "אחר"
 
56
 
57
+ #: includes/class-freemius.php:1305
58
+ msgid "I no longer need the %s"
59
+ msgstr "I no longer need the %s"
60
 
61
+ #: includes/class-freemius.php:1312
62
+ msgid "I only needed the %s for a short period"
63
+ msgstr "I only needed the %s for a short period"
 
64
 
65
+ #: includes/class-freemius.php:1318
66
+ msgid "The %s broke my site"
67
+ msgstr "ה%s הרס לי את האתר"
 
68
 
69
+ #: includes/class-freemius.php:1325
70
+ msgid "The %s suddenly stopped working"
71
+ msgstr "ה%s הפסיק פתאום לעבוד"
72
 
73
+ #: includes/class-freemius.php:1335
74
+ msgid "I can't pay for it anymore"
75
+ msgstr "אני לא יכול/ה להמשיך לשלם על זה"
 
76
 
77
+ #: includes/class-freemius.php:1337
78
+ msgid "What price would you feel comfortable paying?"
79
+ msgstr "מה המחיר שכן תרגיש\\י בנוח לשלם?"
 
80
 
81
+ #: includes/class-freemius.php:1343
82
+ msgid "I don't like to share my information with you"
83
+ msgstr "אני לא אוהב את הרעיון של שיתוף מידע איתכם"
84
 
85
+ #: includes/class-freemius.php:1364
86
+ msgid "The %s didn't work"
87
+ msgstr "ה%s לא עבד"
88
 
89
+ #: includes/class-freemius.php:1374
90
+ msgid "I couldn't understand how to make it work"
91
+ msgstr "לא הצלחתי להבין איך לגרום לזה לעבוד"
92
 
93
+ #: includes/class-freemius.php:1382
94
+ msgid "The %s is great, but I need specific feature that you don't support"
95
+ msgstr "The %s is great, but I need specific feature that you don't support"
96
 
97
+ #: includes/class-freemius.php:1384
98
+ msgid "What feature?"
99
+ msgstr "איזה פיטצ'ר?"
100
 
101
+ #: includes/class-freemius.php:1388
102
+ msgid "The %s is not working"
103
+ msgstr "ה%s לא עובד"
104
 
105
+ #: includes/class-freemius.php:1390
106
+ msgid "Kindly share what didn't work so we can fix it for future users..."
107
+ msgstr "אנא שתפ\\י מה לא עבד כדי שנוכל לתקן זאת עבור משתמשים עתידיים..."
108
 
109
+ #: includes/class-freemius.php:1394
110
+ msgid "It's not what I was looking for"
111
+ msgstr "חיפשתי משהו אחר"
 
112
 
113
+ #: includes/class-freemius.php:1396
114
+ msgid "What you've been looking for?"
115
+ msgstr "מה חיפשת?"
 
116
 
117
+ #: includes/class-freemius.php:1400
118
+ msgid "The %s didn't work as expected"
119
+ msgstr "ה%s לא עבד כמצופה"
 
120
 
121
+ #: includes/class-freemius.php:1402
122
+ msgid "What did you expect?"
123
+ msgstr "למה ציפית?"
 
124
 
125
+ #: includes/class-freemius.php1938, templates/debug.php:20
126
+ msgid "Freemius Debug"
127
+ msgstr "ניפוי תקלות פרימיוס"
 
128
 
129
+ #: includes/class-freemius.php:2508
130
+ msgid "I don't know what is cURL or how to install it, help me!"
131
+ msgstr "אין לי מושג מה זה cURL או איך להתקין אותו - אשמח לעזרה!"
132
 
133
+ #: includes/class-freemius.php:2510
134
+ 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."
135
+ 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."
136
 
137
+ #: includes/class-freemius.php:2517
138
+ 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."
139
+ 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."
140
 
141
+ #: includes/class-freemius.php:2619
142
+ msgid "Yes - do your thing"
143
+ msgstr "כן - בצעו את מה שצריך"
144
 
145
+ #: includes/class-freemius.php:2624
146
+ msgid "No - just deactivate"
147
+ msgstr "לא - פשוט כבה"
148
 
149
+ #: includes/class-freemius.php2669, includes/class-freemius.php3134,
150
+ #: includes/class-freemius.php3988, includes/class-freemius.php7270,
151
+ #: includes/class-freemius.php9137, includes/class-freemius.php9193,
152
+ #: includes/class-freemius.php9254, includes/class-freemius.php11154,
153
+ #: includes/class-freemius.php11165, includes/class-freemius.php11614,
154
+ #: includes/class-freemius.php11632, includes/class-freemius.php11730,
155
+ #: includes/class-freemius.php12405, templates/add-ons.php:43
156
+ msgctxt "exclamation"
157
+ msgid "Oops"
158
+ msgstr "אופס"
159
 
160
+ #: includes/class-freemius.php:2736
161
+ 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."
162
+ 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."
 
163
 
164
+ #: includes/class-freemius.php:3131
165
+ msgctxt "addonX cannot run without pluginY"
166
+ msgid "%s cannot run without %s."
167
+ msgstr "%s לא יכול לעבוד ללא %s."
168
 
169
+ #: includes/class-freemius.php:3132
170
+ msgctxt "addonX cannot run..."
171
+ msgid "%s cannot run without the plugin."
172
+ msgstr "ההרחבה %s אינה יכולה לפעול ללא התוסף."
173
 
174
+ #: includes/class-freemius.php3253, includes/class-freemius.php3278,
175
+ #: includes/class-freemius.php:11703
176
+ msgid "Unexpected API error. Please contact the %s's author with the following error."
177
+ msgstr "Unexpected API error. Please contact the %s's author with the following error."
178
 
179
+ #: includes/class-freemius.php:3686
180
+ msgid "Premium %s version was successfully activated."
181
+ msgstr "Premium %s version was successfully activated."
 
182
 
183
+ #: includes/class-freemius.php3688, includes/class-freemius.php:4913
184
+ msgctxt ""
185
+ msgid "W00t"
186
+ msgstr "W00t"
187
 
188
+ #: includes/class-freemius.php:3703
 
189
  msgid "You have a %s license."
190
  msgstr "יש לך רישיון %s."
191
 
192
+ #: includes/class-freemius.php3707, includes/class-freemius.php8841,
193
+ #: includes/class-freemius.php8850, includes/class-freemius.php11105,
194
+ #: includes/class-freemius.php11318, includes/class-freemius.php11380,
195
+ #: includes/class-freemius.php:11492
196
+ msgctxt "interjection expressing joy or exuberance"
197
+ msgid "Yee-haw"
198
+ msgstr "יששש"
199
 
200
+ #: includes/class-freemius.php:3971
201
+ 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."
202
+ 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."
 
203
 
204
+ #: includes/class-freemius.php:3975
205
+ msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
206
+ msgstr "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
 
207
 
208
+ #: includes/class-freemius.php3984, templates/account.php692,
209
+ #: templates/add-ons.php:99
210
+ msgid "More information about %s"
211
+ msgstr "מידע נוסף אודות %s"
212
 
213
+ #: includes/class-freemius.php:3985
214
  msgid "Purchase License"
215
  msgstr "קניית רישיון"
216
 
217
+ #: includes/class-freemius.php4422, templates/connect.php:136
218
+ 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."
219
+ 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."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
 
221
+ #: includes/class-freemius.php:4426
222
+ msgid "start the trial"
223
+ msgstr "התחל תקופת ניסיון"
224
 
225
+ #: includes/class-freemius.php4427, templates/connect.php:140
226
+ msgid "complete the install"
227
+ msgstr "השלם התקנה"
 
228
 
229
+ #: includes/class-freemius.php:4506
230
  msgid "You are just one step away - %s"
231
  msgstr "You are just one step away - %s"
232
 
233
+ #: includes/class-freemius.php:4509
234
+ msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
235
  msgid "Complete \"%s\" Activation Now"
236
  msgstr "השלם הפעלת \"%s\" עכשיו"
237
 
238
+ #: includes/class-freemius.php:4523
239
  msgid "We made a few tweaks to the %s, %s"
240
  msgstr "We made a few tweaks to the %s, %s"
241
 
242
+ #: includes/class-freemius.php:4527
243
+ msgid "Opt in to make \"%s\" Better!"
244
+ msgstr "Opt in to make \"%s\" Better!"
245
 
246
+ #: includes/class-freemius.php:4912
247
+ msgid "The upgrade of %s was successfully completed."
248
+ msgstr "The upgrade of %s was successfully completed."
 
 
 
 
249
 
250
+ #: includes/class-freemius.php5997, includes/class-fs-plugin-updater.php358,
251
+ #: includes/class-fs-plugin-updater.php510,
252
+ #: includes/class-fs-plugin-updater.php516, templates/auto-installation.php:31
253
+ msgid "Add-On"
254
+ msgstr "Add-On"
255
 
256
+ #: includes/class-freemius.php5999, templates/debug.php303,
257
+ #: templates/debug.php:413
258
+ msgid "Plugin"
259
+ msgstr "תוסף"
260
 
261
+ #: includes/class-freemius.php6000, templates/debug.php303,
262
+ #: templates/debug.php413, templates/forms/deactivation/form.php:64
263
+ msgid "Theme"
264
+ msgstr "תבנית"
265
 
266
+ #: includes/class-freemius.php:7257
267
+ msgid "We couldn't find your email address in the system, are you sure it's the right address?"
268
+ msgstr "We couldn't find your email address in the system, are you sure it's the right address?"
269
 
270
+ #: includes/class-freemius.php:7259
271
+ msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
272
+ msgstr "We can't see any active licenses associated with that email address, are you sure it's the right address?"
 
273
 
274
+ #: includes/class-freemius.php:7468
275
+ msgid "Account is pending activation."
276
+ msgstr "Account is pending activation."
 
277
 
278
+ #: includes/class-freemius.php:8825
279
+ msgctxt "pluginX activation was successfully..."
280
+ msgid "%s activation was successfully completed."
281
+ msgstr "הפעלת %s הושלמה בהצלחה."
282
 
283
+ #: includes/class-freemius.php:8837
284
+ msgid "Your account was successfully activated with the %s plan."
285
+ msgstr "חשבונך הופעל בהצלחה עם חבילת %s."
286
 
287
+ #: includes/class-freemius.php8846, includes/class-freemius.php:11376
288
+ msgid "Your trial has been successfully started."
289
+ msgstr "הניסיון שלך הופעל בהצלחה."
290
 
291
+ #: includes/class-freemius.php9135, includes/class-freemius.php9191,
292
+ #: includes/class-freemius.php:9252
293
+ msgid "Couldn't activate %s."
294
+ msgstr "לא ניתן להפעיל את %s."
295
 
296
+ #: includes/class-freemius.php9136, includes/class-freemius.php9192,
297
+ #: includes/class-freemius.php:9253
298
+ msgid "Please contact us with the following message:"
299
+ msgstr "אנא צור איתנו קשר יחד עם ההודעה הבאה:"
300
 
301
+ #: includes/class-freemius.php9511, includes/class-freemius.php:13334
302
+ msgid "Upgrade"
303
+ msgstr "שדרג"
304
 
305
+ #: includes/class-freemius.php:9517
306
+ msgid "Start Trial"
307
+ msgstr "התחל תקופת ניסיון"
 
308
 
309
+ #: includes/class-freemius.php:9519
310
+ msgid "Pricing"
311
+ msgstr "מחירון"
312
 
313
+ #: includes/class-freemius.php9559, includes/class-freemius.php:9561
314
+ msgid "Affiliation"
315
+ msgstr "אפיליאציה"
316
 
317
+ #: includes/class-freemius.php9581, includes/class-freemius.php9583,
318
+ #: templates/account.php79, templates/debug.php:281
319
+ msgid "Account"
320
+ msgstr "חשבון"
321
 
322
+ #: includes/class-freemius.php9594, includes/class-freemius.php9596,
323
+ #: includes/customizer/class-fs-customizer-support-section.php:60
324
+ msgid "Contact Us"
325
+ msgstr "יצירת קשר"
326
 
327
+ #: includes/class-freemius.php9606, includes/class-freemius.php9608,
328
+ #: includes/class-freemius.php13344, templates/account.php:68
329
+ msgid "Add-Ons"
330
+ msgstr "Add-Ons"
331
 
332
+ #: includes/class-freemius.php9639, templates/pricing.php:92
333
+ msgctxt "noun"
334
+ msgid "Pricing"
335
+ msgstr "מחירון"
336
 
337
+ #: includes/class-freemius.php9819,
338
+ #: includes/customizer/class-fs-customizer-support-section.php:67
339
+ msgid "Support Forum"
340
+ msgstr "פורום תמיכה"
341
 
342
+ #: includes/class-freemius.php:10559
343
+ msgid "Your email has been successfully verified - you are AWESOME!"
344
+ msgstr "Your email has been successfully verified - you are AWESOME!"
345
 
346
+ #: includes/class-freemius.php:10560
347
+ msgctxt "a positive response"
348
+ msgid "Right on"
349
+ msgstr "מעולה"
350
 
351
+ #: includes/class-freemius.php:11096
352
+ msgid "Your %s Add-on plan was successfully upgraded."
353
+ msgstr "חבילת ההרחבה %s שודרגה בהצלחה."
354
 
355
+ #: includes/class-freemius.php:11098
356
+ msgid "%s Add-on was successfully purchased."
357
+ msgstr "ההרחבה %s נרכשה בהצלחה."
 
358
 
359
+ #: includes/class-freemius.php:11101
360
+ msgid "Download the latest version"
361
+ msgstr "הורד את הגרסה האחרונה"
362
 
363
+ #: includes/class-freemius.php:11150
364
+ msgctxt "%1s - plugin title, %2s - API domain"
365
+ msgid "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
366
+ msgstr "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
367
 
368
+ #: includes/class-freemius.php11153, includes/class-freemius.php11463,
369
+ #: includes/class-freemius.php:11528
370
+ msgid "Error received from the server:"
371
+ msgstr "הוחזרה שגיאה מהשרת:"
372
 
373
+ #: includes/class-freemius.php:11164
374
+ msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
375
+ msgstr "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
 
376
 
377
+ #: includes/class-freemius.php11281, includes/class-freemius.php11468,
378
+ #: includes/class-freemius.php:11511
379
+ msgctxt ""
380
+ msgid "Hmm"
381
+ msgstr "Hmm"
382
 
383
+ #: includes/class-freemius.php:11294
384
+ 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."
385
+ 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."
386
 
387
+ #: includes/class-freemius.php11295, templates/account.php70,
388
+ #: templates/add-ons.php:130
389
+ msgctxt "trial period"
390
+ msgid "Trial"
391
+ msgstr "ניסיון"
392
 
393
+ #: includes/class-freemius.php:11300
394
+ msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
395
+ msgstr "שידרגתי את החשבון שלי אבל כשאני מנסה לבצע סנכרון לרישיון החבילה נשארת %s."
 
396
 
397
+ #: includes/class-freemius.php11304, includes/class-freemius.php:11358
398
+ msgid "Please contact us here"
399
+ msgstr "אנא צור איתנו קשר כאן"
400
 
401
+ #: includes/class-freemius.php:11314
402
+ msgid "Your plan was successfully upgraded."
403
+ msgstr "החבילה שודרגה בהצלחה."
404
 
405
+ #: includes/class-freemius.php:11331
406
+ msgid "Your plan was successfully changed to %s."
407
+ msgstr "החבילה עודכנה בהצלחה אל %s."
408
 
409
+ #: includes/class-freemius.php:11346
410
+ msgid "Your license has expired. You can still continue using the free %s forever."
411
+ msgstr "Your license has expired. You can still continue using the free %s forever."
412
 
413
+ #: includes/class-freemius.php:11354
414
+ msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
415
+ msgstr "רשיונך בוטל. אם לדעתך זו טעות, נא ליצור קשר עם התמיכה."
 
416
 
417
+ #: includes/class-freemius.php:11367
418
+ 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."
419
+ 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."
420
 
421
+ #: includes/class-freemius.php:11389
422
+ msgid "Your trial has expired. You can still continue using all our free features."
423
+ msgstr "תקופת הניסיון נגמרה. ביכולתך להמשיך להשתמש בכל הפיטצ'רים החינאמיים."
 
424
 
425
+ #: includes/class-freemius.php:11459
426
+ msgid "It looks like the license could not be activated."
427
+ msgstr "נראה שלא ניתן להפעיל את הרישיון."
 
428
 
429
+ #: includes/class-freemius.php:11489
430
+ msgid "Your license was successfully activated."
431
+ msgstr "הרישיון הופעל בהצלחה."
432
 
433
+ #: includes/class-freemius.php:11515
434
+ msgid "It looks like your site currently doesn't have an active license."
435
+ msgstr "נראה לאתר עדיין אין רישיון פעיל."
436
 
437
+ #: includes/class-freemius.php:11527
438
+ msgid "It looks like the license deactivation failed."
439
+ msgstr "נראה שניתוק הרישיון נכשל."
440
 
441
+ #: includes/class-freemius.php:11554
442
+ msgid "Your license was successfully deactivated, you are back to the %s plan."
443
+ msgstr "רישיונך נותק בהצלחה, חזרת לחבילת %s"
444
 
445
+ #: includes/class-freemius.php:11555
446
+ msgid "O.K"
447
+ msgstr "אוקיי"
448
 
449
+ #: includes/class-freemius.php:11603
450
+ msgid "Your plan was successfully downgraded. Your %s plan license will expire in %s."
451
+ msgstr "Your plan was successfully downgraded. Your %s plan license will expire in %s."
452
 
453
+ #: includes/class-freemius.php:11613
454
+ msgid "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
455
+ msgstr "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
456
 
457
+ #: includes/class-freemius.php:11637
458
+ msgid "You are already running the %s in a trial mode."
459
+ msgstr "You are already running the %s in a trial mode."
460
 
461
+ #: includes/class-freemius.php:11648
462
+ msgid "You already utilized a trial before."
463
+ msgstr "הניסיון כבר נוצל בעבר."
464
 
465
+ #: includes/class-freemius.php:11662
466
+ msgid "Plan %s do not exist, therefore, can't start a trial."
467
+ msgstr "החבילה %s אינה קיימת, לכן, לא ניתן להתחיל תקופת ניסיון."
468
 
469
+ #: includes/class-freemius.php:11673
470
+ msgid "Plan %s does not support a trial period."
471
+ msgstr "תוכנית %s אינה תומכת בתקופת ניסיון."
472
 
473
+ #: includes/class-freemius.php:11684
474
+ msgid "None of the %s's plans supports a trial period."
475
+ msgstr "None of the %s's plans supports a trial period."
476
 
477
+ #: includes/class-freemius.php:11734
478
+ msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
479
+ msgstr "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
480
 
481
+ #: includes/class-freemius.php:11785
482
+ msgid "Your %s free trial was successfully cancelled."
483
+ msgstr "תקופת הניסיון החינמית של %s בוטלה בהצלחה."
 
484
 
485
+ #: includes/class-freemius.php:11793
486
+ msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
487
+ msgstr "נראה שיש תקלה זמנית המונעת את ביטול הניסיון. אנא נסו שוב בעוד כמה דקות."
 
488
 
489
+ #: includes/class-freemius.php:12032
490
+ msgid "Version %s was released."
491
+ msgstr "גרסה %s הושקה."
492
 
493
+ #: includes/class-freemius.php:12032
494
+ msgid "Please download %s."
495
+ msgstr "נא להוריד את %s."
496
 
497
+ #: includes/class-freemius.php:12039
498
+ msgid "the latest %s version here"
499
+ msgstr "גרסת ה-%s האחרונה כאן"
500
 
501
+ #: includes/class-freemius.php:12044
502
+ msgid "New"
503
+ msgstr "חדש"
504
 
505
+ #: includes/class-freemius.php:12049
506
+ msgid "Seems like you got the latest release."
507
+ msgstr "נראה שיש לך את הגרסה האחרונה."
 
508
 
509
+ #: includes/class-freemius.php:12050
510
+ msgid "You are all good!"
511
+ msgstr "את\\ה מסודר!"
 
512
 
513
+ #: includes/class-freemius.php:12316
514
+ msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
515
+ msgstr "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
516
 
517
+ #: includes/class-freemius.php:12491
518
+ 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."
519
+ 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."
520
 
521
+ #: includes/class-freemius.php:12497
522
+ msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
523
+ msgstr "תודה על אישור ביצוע החלפת הבעלות. הרגע נשלח מייל ל-%s כדי לקבל אישור סופי."
524
 
525
+ #: includes/class-freemius.php:12502
526
+ msgid "%s is the new owner of the account."
527
+ msgstr "%s הינו הבעלים החד של חשבון זה."
528
 
529
+ #: includes/class-freemius.php:12504
530
+ msgctxt "as congratulations"
531
+ msgid "Congrats"
532
+ msgstr "מזל טוב"
533
 
534
+ #: includes/class-freemius.php:12524
535
+ msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
536
+ msgstr "Sorry, we could not complete the email update. Another user with the same email is already registered."
537
 
538
+ #: includes/class-freemius.php:12525
539
+ msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
540
+ msgstr "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
541
 
542
+ #: includes/class-freemius.php:12532
543
+ msgid "Change Ownership"
544
+ msgstr "עדכון בעלות"
545
 
546
+ #: includes/class-freemius.php:12540
547
+ msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
548
+ msgstr "כתובת הדואל שלך עודכנה בהצלחה. הודעת אישור אמורה להתקבל בדואל שלך ברגעים הקרובים."
549
 
550
+ #: includes/class-freemius.php:12552
551
+ msgid "Please provide your full name."
552
+ msgstr "נא למלא את שמך המלא."
553
 
554
+ #: includes/class-freemius.php:12557
555
+ msgid "Your name was successfully updated."
556
+ msgstr "שמך עודכן בהצלחה."
557
 
558
+ #: includes/class-freemius.php:12618
559
+ msgid "You have successfully updated your %s."
560
+ msgstr "עידכנת בהצלחה את ה%s."
561
 
562
+ #: includes/class-freemius.php:12756
563
+ msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
564
+ msgstr "Just letting you know that the add-ons information of %s is being pulled from an external server."
565
 
566
+ #: includes/class-freemius.php:12757
567
+ msgctxt "advance notice of something that will need attention."
568
+ msgid "Heads up"
569
+ msgstr "לתשמות לבך"
570
 
571
+ #: includes/class-freemius.php:13075
572
+ msgid "Awesome"
573
+ msgstr "אדיר"
574
 
575
+ #: includes/class-freemius.php:13115
576
+ msgctxt "exclamation"
577
+ msgid "Hey"
578
+ msgstr "היי"
579
 
580
+ #: includes/class-freemius.php:13115
581
+ msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
582
+ msgstr "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
583
 
584
+ #: includes/class-freemius.php:13123
585
+ msgid "No commitment for %s days - cancel anytime!"
586
+ msgstr "ללא התחייבות ל-%s ימין - בטלו בכל רגע!"
587
 
588
+ #: includes/class-freemius.php:13124
589
+ msgid "No credit card required"
590
+ msgstr "לא נדרש כרטיס אשראי"
591
 
592
+ #: includes/class-freemius.php13131, templates/forms/trial-start.php:53
593
+ msgctxt "call to action"
594
+ msgid "Start free trial"
595
+ msgstr "התחלת ניסיון חינם"
596
 
597
+ #: includes/class-freemius.php:13208
598
+ 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!"
599
+ 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!"
600
 
601
+ #: includes/class-freemius.php:13217
602
+ msgid "Learn more"
603
+ msgstr "Learn more"
604
 
605
+ #: includes/class-freemius.php13373, templates/account.php330,
606
+ #: templates/connect.php309, templates/forms/license-activation.php:24
607
+ msgid "Activate License"
608
+ msgstr "הפעלת רישיון"
609
 
610
+ #: includes/class-freemius.php13374, templates/account.php:393
611
+ msgid "Change License"
612
+ msgstr "שינוי רישיון"
613
 
614
+ #: includes/class-freemius.php:13435
615
+ msgid "Opt Out"
616
+ msgstr "Opt Out"
617
 
618
+ #: includes/class-freemius.php13437, includes/class-freemius.php:13442
619
+ msgid "Opt In"
620
+ msgstr "Opt In"
621
 
622
+ #: includes/class-freemius.php:13630
623
+ msgid "Please follow these steps to complete the upgrade"
624
+ msgstr "נא לבצע את הצעדים הבאים להשלמת השידרוג"
625
 
626
+ #: includes/class-freemius.php:13633
627
+ msgid "Download the latest %s version"
628
+ msgstr "הורד\\י את גרסת ה-%s העדכנית"
629
 
630
+ #: includes/class-freemius.php:13637
631
+ msgid "Upload and activate the downloaded version"
632
+ msgstr "העלה\\י והפעיל\\י את הגרסה שהורדת"
633
 
634
+ #: includes/class-freemius.php:13639
635
+ msgid "How to upload and activate?"
636
+ msgstr "איך להעלות ולהפעיל?"
637
 
638
+ #: includes/class-freemius.php:13798
639
+ msgid "Auto installation only works for opted-in users."
640
+ msgstr "Auto installation only works for opted-in users."
641
 
642
+ #: includes/class-freemius.php13808, includes/class-freemius.php13841,
643
+ #: includes/class-fs-plugin-updater.php490,
644
+ #: includes/class-fs-plugin-updater.php:504
645
+ msgid "Invalid module ID."
646
+ msgstr "Invalid module ID."
647
 
648
+ #: includes/class-freemius.php13817, includes/class-fs-plugin-updater.php:524
649
+ msgid "Premium version already active."
650
+ msgstr "Premium version already active."
651
 
652
+ #: includes/class-freemius.php:13824
653
+ msgid "You do not have a valid license to access the premium version."
654
+ msgstr "You do not have a valid license to access the premium version."
 
655
 
656
+ #: includes/class-freemius.php:13831
657
+ msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
658
+ msgstr "Plugin is a \"Serviceware\" which means it does not have a premium code version."
659
 
660
+ #: includes/class-freemius.php13849, includes/class-fs-plugin-updater.php:523
661
+ msgid "Premium add-on version already installed."
662
+ msgstr "Premium add-on version already installed."
663
 
664
+ #: includes/class-freemius.php:14194
665
+ msgid "View paid features"
666
+ msgstr "View paid features"
667
 
668
+ #: includes/class-fs-plugin-updater.php:131
669
+ msgid "%sRenew your license now%s to access version %s features and support."
670
+ msgstr "%sRenew your license now%s to access version %s features and support."
671
 
672
+ #: includes/class-fs-plugin-updater.php:553
673
+ msgid "Installing plugin: %s"
674
+ msgstr "Installing plugin: %s"
675
 
676
+ #: includes/class-fs-plugin-updater.php:594
677
+ msgid "Unable to connect to the filesystem. Please confirm your credentials."
678
+ msgstr "Unable to connect to the filesystem. Please confirm your credentials."
679
 
680
+ #: includes/class-fs-plugin-updater.php:700
681
+ msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
682
+ msgstr "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
683
 
684
+ #: includes/fs-plugin-info-dialog.php328, templates/account.php:696
685
+ msgctxt "verb"
686
+ msgid "Purchase"
687
+ msgstr "רכישה"
688
 
689
+ #: includes/fs-plugin-info-dialog.php:331
690
+ msgid "Start my free %s"
691
+ msgstr "התחל את %s הניסיון שלי"
692
 
693
+ #: includes/fs-plugin-info-dialog.php355, templates/account.php:52
694
+ msgctxt "as download latest version"
695
+ msgid "Download Latest"
696
+ msgstr "הורד גרסה אחרונה"
697
 
698
+ #: includes/fs-plugin-info-dialog.php358, templates/account.php676,
699
+ #: templates/account.php729, templates/auto-installation.php:110
700
+ msgid "Install Now"
701
+ msgstr "התקן עכשיו"
702
 
703
+ #: includes/fs-plugin-info-dialog.php364, templates/account.php:384
704
+ msgid "Install Update Now"
705
+ msgstr "התקן עדכון במיידי"
706
 
707
+ #: includes/fs-plugin-info-dialog.php:368
708
+ msgid "Newer Version (%s) Installed"
709
+ msgstr "גרסה חדשה (%s) הותקנה"
710
 
711
+ #: includes/fs-plugin-info-dialog.php:371
712
+ msgid "Latest Version Installed"
713
+ msgstr "הגרסה האחרונה הותקנה"
714
 
715
+ #: includes/fs-plugin-info-dialog.php:484
716
+ msgctxt "Plugin installer section title"
717
+ msgid "Description"
718
+ msgstr "תיאור"
719
 
720
+ #: includes/fs-plugin-info-dialog.php:485
721
+ msgctxt "Plugin installer section title"
722
+ msgid "Installation"
723
+ msgstr "התקנה"
724
 
725
+ #: includes/fs-plugin-info-dialog.php:486
726
+ msgctxt "Plugin installer section title"
727
+ msgid "FAQ"
728
+ msgstr "שאלות נפוצות"
729
 
730
+ #: includes/fs-plugin-info-dialog.php487,
731
+ #: templates/plugin-info/description.php:55
732
+ msgid "Screenshots"
733
+ msgstr "צילומי מסך"
734
 
735
+ #: includes/fs-plugin-info-dialog.php:488
736
+ msgctxt "Plugin installer section title"
737
+ msgid "Changelog"
738
+ msgstr "לוג שינויים"
739
 
740
+ #: includes/fs-plugin-info-dialog.php:489
741
+ msgctxt "Plugin installer section title"
742
+ msgid "Reviews"
743
+ msgstr "ביקורות"
744
 
745
+ #: includes/fs-plugin-info-dialog.php:490
746
+ msgctxt "Plugin installer section title"
747
+ msgid "Other Notes"
748
+ msgstr "היערות נוספות"
749
 
750
+ #: includes/fs-plugin-info-dialog.php:505
751
+ msgctxt "Plugin installer section title"
752
+ msgid "Features & Pricing"
753
+ msgstr "פיטצ'רים ומחירים"
754
 
755
+ #: includes/fs-plugin-info-dialog.php:515
756
+ msgid "Plugin Install"
757
+ msgstr "התקנת תוסף"
758
 
759
+ #: includes/fs-plugin-info-dialog.php:587
760
+ msgctxt "e.g. Professional Plan"
761
+ msgid "%s Plan"
762
+ msgstr "חבילה %s"
763
 
764
+ #: includes/fs-plugin-info-dialog.php:612
765
+ msgctxt "e.g. the best product"
766
+ msgid "Best"
767
+ msgstr "הכי טוב"
768
 
769
+ #: includes/fs-plugin-info-dialog.php618,
770
+ #: includes/fs-plugin-info-dialog.php:638
771
+ msgctxt "as every month"
772
+ msgid "Monthly"
773
+ msgstr "חודשי"
774
 
775
+ #: includes/fs-plugin-info-dialog.php:621
776
+ msgctxt "as once a year"
777
+ msgid "Annual"
778
+ msgstr "שנתי"
779
 
780
+ #: includes/fs-plugin-info-dialog.php:624
781
+ msgid "Lifetime"
782
+ msgstr "לכל החיים"
783
 
784
+ #: includes/fs-plugin-info-dialog.php638,
785
+ #: includes/fs-plugin-info-dialog.php640,
786
+ #: includes/fs-plugin-info-dialog.php:642
787
+ msgctxt "e.g. billed monthly"
788
+ msgid "Billed %s"
789
+ msgstr "מחוייב על בסיס %s"
790
 
791
+ #: includes/fs-plugin-info-dialog.php:640
792
+ msgctxt "as once a year"
793
+ msgid "Annually"
794
+ msgstr "שנתי"
795
 
796
+ #: includes/fs-plugin-info-dialog.php:642
797
+ msgctxt "as once a year"
798
+ msgid "Once"
799
+ msgstr "פעם אחת"
800
 
801
+ #: includes/fs-plugin-info-dialog.php:648
802
+ msgid "Single Site License"
803
+ msgstr "רשיון לאתר אחד"
804
 
805
+ #: includes/fs-plugin-info-dialog.php:650
806
+ msgid "Unlimited Licenses"
807
+ msgstr "רשיונות ללא הגבלה"
808
 
809
+ #: includes/fs-plugin-info-dialog.php:652
810
+ msgid "Up to %s Sites"
811
+ msgstr "עד %s אתרים"
812
 
813
+ #: includes/fs-plugin-info-dialog.php662,
814
+ #: templates/plugin-info/features.php:82
815
+ msgctxt "as monthly period"
816
+ msgid "mo"
817
+ msgstr "חודשים"
818
 
819
+ #: includes/fs-plugin-info-dialog.php669,
820
+ #: templates/plugin-info/features.php:80
821
+ msgctxt "as annual period"
822
+ msgid "year"
823
+ msgstr "שנה"
824
 
825
+ #: includes/fs-plugin-info-dialog.php:721
826
+ msgctxt "noun"
827
+ msgid "Price"
828
+ msgstr "מחיר"
829
 
830
+ #: includes/fs-plugin-info-dialog.php:767
831
+ msgctxt "as a discount of $5 or 10%"
832
+ msgid "Save %s"
833
+ msgstr "שמירת %s"
834
 
835
+ #: includes/fs-plugin-info-dialog.php:777
836
+ msgid "No commitment for %s - cancel anytime"
837
+ msgstr "No commitment for %s - cancel anytime"
 
838
 
839
+ #: includes/fs-plugin-info-dialog.php:780
840
+ msgid "After your free %s, pay as little as %s"
841
+ msgstr "After your free %s, pay as little as %s"
 
842
 
843
+ #: includes/fs-plugin-info-dialog.php:791
844
+ msgid "Details"
845
+ msgstr "פרטים"
846
+
847
+ #: includes/fs-plugin-info-dialog.php794, templates/account.php59,
848
+ #: templates/debug.php183, templates/debug.php220, templates/debug.php:354
849
+ msgctxt "product version"
850
+ msgid "Version"
851
+ msgstr "גרסה"
852
+
853
+ #: includes/fs-plugin-info-dialog.php:800
854
+ msgctxt "as the plugin author"
855
+ msgid "Author"
856
+ msgstr "Author"
857
+
858
+ #: includes/fs-plugin-info-dialog.php:806
859
+ msgid "Last Updated"
860
+ msgstr "עודכן לאחרונה"
861
+
862
+ #: includes/fs-plugin-info-dialog.php:810
863
+ msgctxt "x-ago"
864
+ msgid "%s ago"
865
+ msgstr "לפני %s"
866
+
867
+ #: includes/fs-plugin-info-dialog.php:819
868
+ msgid "Requires WordPress Version"
869
+ msgstr "Requires WordPress Version"
870
+
871
+ #: includes/fs-plugin-info-dialog.php:819
872
+ msgid "%s or higher"
873
+ msgstr "%s ומעלה"
874
+
875
+ #: includes/fs-plugin-info-dialog.php:825
876
+ msgid "Compatible up to"
877
+ msgstr "Compatible up to"
878
+
879
+ #: includes/fs-plugin-info-dialog.php:832
880
+ msgid "Downloaded"
881
+ msgstr "Downloaded"
882
+
883
+ #: includes/fs-plugin-info-dialog.php:835
884
+ msgid "%s time"
885
+ msgstr "פעם %s"
886
+
887
+ #: includes/fs-plugin-info-dialog.php:837
888
+ msgid "%s times"
889
+ msgstr "%s פעמים"
890
+
891
+ #: includes/fs-plugin-info-dialog.php:847
892
+ msgid "WordPress.org Plugin Page"
893
+ msgstr "WordPress.org Plugin Page"
894
+
895
+ #: includes/fs-plugin-info-dialog.php:854
896
+ msgid "Plugin Homepage"
897
+ msgstr "עמוד התוסף"
898
+
899
+ #: includes/fs-plugin-info-dialog.php861,
900
+ #: includes/fs-plugin-info-dialog.php:941
901
+ msgid "Donate to this plugin"
902
+ msgstr "Donate to this plugin"
903
+
904
+ #: includes/fs-plugin-info-dialog.php:867
905
+ msgid "Average Rating"
906
+ msgstr "דירוג ממוצע"
907
+
908
+ #: includes/fs-plugin-info-dialog.php:874
909
+ msgid "based on %s"
910
+ msgstr "מבוסס על %s"
911
+
912
+ #: includes/fs-plugin-info-dialog.php:878
913
+ msgid "%s rating"
914
+ msgstr "דרוג %s"
915
+
916
+ #: includes/fs-plugin-info-dialog.php:880
917
+ msgid "%s ratings"
918
+ msgstr "%s דרוגים"
919
+
920
+ #: includes/fs-plugin-info-dialog.php:894
921
+ msgid "%s star"
922
+ msgstr "כוכב %s"
923
+
924
+ #: includes/fs-plugin-info-dialog.php:896
925
+ msgid "%s stars"
926
+ msgstr "%s כוכבים"
927
+
928
+ #: includes/fs-plugin-info-dialog.php:907
929
+ msgid "Click to see reviews that provided a rating of %s"
930
+ msgstr "Click to see reviews that provided a rating of %s"
931
+
932
+ #: includes/fs-plugin-info-dialog.php:920
933
+ msgid "Contributors"
934
+ msgstr "תורמים"
935
+
936
+ #: includes/fs-plugin-info-dialog.php948,
937
+ #: includes/fs-plugin-info-dialog.php:950
938
+ msgid "Warning"
939
+ msgstr "Warning"
940
+
941
+ #: includes/fs-plugin-info-dialog.php:948
942
+ msgid "This plugin has not been tested with your current version of WordPress."
943
+ msgstr "This plugin has not been tested with your current version of WordPress."
944
+
945
+ #: includes/fs-plugin-info-dialog.php:950
946
+ msgid "This plugin has not been marked as compatible with your version of WordPress."
947
+ msgstr "This plugin has not been marked as compatible with your version of WordPress."
948
+
949
+ #: includes/fs-plugin-info-dialog.php:969
950
+ msgid "Paid add-on must be deployed to Freemius."
951
+ msgstr "Paid add-on must be deployed to Freemius."
952
+
953
+ #: includes/fs-plugin-info-dialog.php:970
954
+ msgid "Add-on must be deployed to WordPress.org or Freemius."
955
+ msgstr "Add-on must be deployed to WordPress.org or Freemius."
956
+
957
+ #: templates/account.php:53
958
+ msgid "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
959
+ msgstr "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
960
+
961
+ #: templates/account.php:54
962
+ msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
963
+ msgstr "ביטול הניסיון יחסום מייד את הפיטצ'רים שהינם בתשלום. האם ברצונך בכל זאת להמשיך?"
964
+
965
+ #: templates/account.php:55
966
+ msgid "You can still enjoy all %s features but you will not have access to %s updates and support."
967
+ msgstr "You can still enjoy all %s features but you will not have access to %s updates and support."
968
+
969
+ #: templates/account.php:56
970
+ msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
971
+ msgstr "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
972
+
973
+ #. translators: %s: Plan title (e.g. "Professional")
974
+ #: templates/account.php:58
975
+ msgid "Activate %s Plan"
976
+ msgstr "הפעל חבילה %s"
977
+
978
+ #. translators: %s: Time period (e.g. Auto renews in "2 months")
979
+ #: templates/account.php:61
980
+ msgid "Auto renews in %s"
981
+ msgstr "עדכן אוטומטית בעוד %s"
982
+
983
+ #. translators: %s: Time period (e.g. Expires in "2 months")
984
+ #: templates/account.php:63
985
+ msgid "Expires in %s"
986
+ msgstr "פג תוקף בעוד %s"
987
+
988
+ #: templates/account.php:64
989
+ msgctxt "as synchronize license"
990
+ msgid "Sync License"
991
+ msgstr "סינכרן רישיון"
992
+
993
+ #: templates/account.php:65
994
+ msgid "Cancel Trial"
995
+ msgstr "ביט"
996
+
997
+ #: templates/account.php:66
998
+ msgid "Change Plan"
999
+ msgstr "שינוי חבילה"
1000
+
1001
+ #: templates/account.php:67
1002
+ msgctxt "verb"
1003
+ msgid "Upgrade"
1004
+ msgstr "שדרג"
1005
+
1006
+ #: templates/account.php:69
1007
+ msgctxt "verb"
1008
+ msgid "Downgrade"
1009
+ msgstr "שנמך"
1010
+
1011
+ #: templates/account.php71, templates/add-ons.php126,
1012
+ #: templates/plugin-info/features.php:72
1013
+ msgid "Free"
1014
+ msgstr "חינם"
1015
+
1016
+ #: templates/account.php:72
1017
+ msgid "Activate"
1018
+ msgstr "הפעלה"
1019
+
1020
+ #: templates/account.php73, templates/debug.php311,
1021
+ #: includes/customizer/class-fs-customizer-upsell-control.php:106
1022
+ msgctxt "as product pricing plan"
1023
+ msgid "Plan"
1024
+ msgstr "חבילה"
1025
+
1026
+ #: templates/account.php:87
1027
+ msgid "Free Trial"
1028
+ msgstr "ניסיון חינם"
1029
+
1030
+ #: templates/account.php:98
1031
+ msgid "Account Details"
1032
+ msgstr "פרטי חשבון"
1033
+
1034
+ #: templates/account.php:108
1035
+ 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?"
1036
+ 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?"
1037
+
1038
+ #: templates/account.php:110
1039
+ 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?"
1040
+ 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?"
1041
+
1042
+ #: templates/account.php:113
1043
+ msgid "Delete Account"
1044
+ msgstr "מחיקת חשבון"
1045
+
1046
+ #: templates/account.php:124
1047
+ msgid "Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?"
1048
+ msgstr "דיאקטיבציה של הרישיון תחסום את כל הפיטצ'רים שהם בתשלום. עם זאת, תיתאפשר הפעלה של הרישיון על אתר אחר. האם ברצונך להמשיך?"
1049
+
1050
+ #: templates/account.php125, templates/account.php:590
1051
+ msgid "Deactivate License"
1052
+ msgstr "שיחרור רישיון"
1053
+
1054
+ #: templates/account.php:142
1055
+ msgid "Are you sure you want to proceed?"
1056
+ msgstr "האם את/ה בטוח רוצה להמשיך?"
1057
+
1058
+ #: templates/account.php:142
1059
+ msgid "Cancel Subscription"
1060
+ msgstr "בטל מנוי"
1061
 
1062
+ #: templates/account.php:171
1063
+ msgctxt "as synchronize"
1064
+ msgid "Sync"
1065
+ msgstr "סינכרון"
1066
 
1067
+ #: templates/account.php185, templates/debug.php:389
1068
+ msgid "Name"
1069
+ msgstr "שם"
 
1070
 
1071
+ #: templates/account.php191, templates/debug.php:390
1072
+ msgid "Email"
1073
+ msgstr "דוא\"ל"
1074
 
1075
+ #: templates/account.php198, templates/debug.php310, templates/debug.php:419
1076
+ msgid "User ID"
1077
+ msgstr "מזהה משתמש"
1078
 
1079
+ #: templates/account.php:205
1080
+ msgid "Site ID"
1081
+ msgstr "מזהה אתר"
1082
 
1083
+ #: templates/account.php:208
1084
+ msgid "No ID"
1085
+ msgstr "אין מזהה"
1086
 
1087
+ #: templates/account.php213, templates/debug.php225, templates/debug.php312,
1088
+ #: templates/debug.php355, templates/debug.php:392
1089
+ msgid "Public Key"
1090
+ msgstr "מפתח פומבי"
1091
 
1092
+ #: templates/account.php219, templates/debug.php313, templates/debug.php356,
1093
+ #: templates/debug.php:393
1094
+ msgid "Secret Key"
1095
+ msgstr "מפתח סודי"
1096
 
1097
+ #: templates/account.php:222
1098
+ msgctxt "as secret encryption key missing"
1099
+ msgid "No Secret"
1100
+ msgstr "אין מפתח סודי"
1101
 
1102
+ #: templates/account.php:241
1103
+ msgid "Trial"
1104
+ msgstr "ניסיון"
1105
 
1106
+ #: templates/account.php257, templates/debug.php:424
1107
+ msgid "License Key"
1108
+ msgstr "License Key"
1109
 
1110
+ #: templates/account.php:287
1111
+ msgid "not verified"
1112
+ msgstr "לא מאומת"
1113
 
1114
+ #: templates/account.php:317
1115
+ msgid "Localhost"
1116
+ msgstr "שרת לוקאלי"
1117
 
1118
+ #: templates/account.php:321
1119
+ msgctxt "as 5 licenses left"
1120
+ msgid "%s left"
1121
+ msgstr "נשארו %s"
1122
 
1123
+ #: templates/account.php:322
1124
+ msgid "Last license"
1125
+ msgstr "רישיון אחרון"
1126
 
1127
+ #: templates/account.php:352
1128
+ msgid "Premium version"
1129
+ msgstr "גירסת פרימיום"
1130
 
1131
+ #: templates/account.php:354
1132
+ msgid "Free version"
1133
+ msgstr "גירסה חינאמית"
1134
 
1135
+ #: templates/account.php:366
1136
+ msgid "Verify Email"
1137
+ msgstr "אמת כתובת דוא\"ל"
1138
 
1139
+ #: templates/account.php:377
1140
+ msgid "Download %s Version"
1141
+ msgstr "הורד גרסת %s"
1142
 
1143
+ #: templates/account.php391, templates/account.php:442
1144
+ msgctxt "verb"
1145
+ msgid "Show"
1146
+ msgstr "הצג"
1147
 
1148
+ #: templates/account.php:405
1149
+ msgid "What is your %s?"
1150
+ msgstr "מה ה%s שלך?"
1151
 
1152
+ #: templates/account.php413, templates/account/billing.php:27
1153
+ msgctxt "verb"
1154
+ msgid "Edit"
1155
+ msgstr "ערוך"
1156
 
1157
+ #: templates/account.php:436
1158
+ msgctxt "verb"
1159
+ msgid "Hide"
1160
+ msgstr "הסתר"
1161
 
1162
+ #: templates/account.php472, templates/debug.php218, templates/debug.php308,
1163
+ #: templates/debug.php351, templates/debug.php388, templates/debug.php417,
1164
+ #: templates/debug.php496, templates/account/payments.php35,
1165
+ #: templates/debug/logger.php:21
1166
+ msgid "ID"
1167
+ msgstr "מזהה"
1168
 
1169
+ #: templates/account.php:475
1170
+ msgctxt "as software license"
1171
+ msgid "License"
1172
+ msgstr "רישיון"
1173
 
1174
+ #: templates/account.php:550
1175
+ msgid "Cancelled"
1176
+ msgstr "בוטל"
 
1177
 
1178
+ #: templates/account.php:555
1179
+ msgid "Expired"
1180
+ msgstr "פג תוקף"
1181
 
1182
+ #: templates/account.php:560
1183
+ msgid "No expiration"
1184
+ msgstr "ללא תפוגה"
 
1185
 
1186
+ #: templates/account.php668, templates/account.php:724
1187
+ msgid "Activate this add-on"
1188
+ msgstr "הפעל את ההרחבה"
 
1189
 
1190
+ #: templates/account.php745, templates/debug.php:336
1191
+ msgctxt "verb"
1192
+ msgid "Delete"
1193
+ msgstr "מחק"
1194
 
1195
+ #: templates/add-ons.php:36
1196
+ msgid "Add Ons for %s"
1197
+ msgstr "הרחבות עבור %s"
 
1198
 
1199
+ #: templates/add-ons.php:44
1200
+ 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."
1201
+ 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."
 
1202
 
1203
+ #: templates/add-ons.php:135
1204
+ msgid "View details"
1205
+ msgstr "פרטים נוספים"
 
1206
 
1207
+ #: templates/admin-notice.php13, templates/forms/license-activation.php73,
1208
+ #: templates/forms/resend-key.php:77
1209
+ msgctxt "as close a window"
1210
+ msgid "Dismiss"
1211
+ msgstr "סגירה"
1212
 
1213
+ #: templates/auto-installation.php:44
1214
+ msgid "%s sec"
1215
+ msgstr "%s שניות"
1216
 
1217
+ #: templates/auto-installation.php:82
1218
+ msgid "Automatic Installation"
1219
+ msgstr "התקנה אוטומטית"
1220
 
1221
+ #: templates/auto-installation.php:92
1222
+ 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."
1223
+ 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."
1224
 
1225
+ #: templates/auto-installation.php:103
1226
+ 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."
1227
+ 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."
1228
 
1229
+ #: templates/auto-installation.php:108
1230
+ msgid "Cancel Installation"
1231
+ msgstr "בטל התקנה"
1232
 
1233
+ #: templates/checkout.php:168
1234
+ msgid "Checkout"
1235
+ msgstr "Checkout"
1236
 
1237
+ #: templates/checkout.php:168
1238
+ msgid "PCI compliant"
1239
+ msgstr "PCI compliant"
1240
 
1241
+ #: templates/connect.php:128
1242
+ msgid "Allow & Continue"
1243
+ msgstr "אפשר\\י והמשכ\\י"
1244
 
1245
+ #: templates/connect.php:131
1246
+ msgid "Re-send activation email"
1247
+ msgstr "שליחה חוזרת של מייל האקטיבציה"
1248
 
1249
+ #: templates/connect.php:135
1250
+ msgid "Thanks %s!"
1251
+ msgstr "תודה %s!"
1252
 
1253
+ #: templates/connect.php143, templates/forms/license-activation.php:43
1254
+ msgid "Agree & Activate License"
1255
+ msgstr "הסכמה והפעלת רישיון"
1256
 
1257
+ #: templates/connect.php147, templates/connect.php:170
1258
+ msgctxt "greeting"
1259
+ msgid "Hey %s,"
1260
+ msgstr "היי %s,"
1261
 
1262
+ #: templates/connect.php:148
1263
+ msgid "Thanks for purchasing %s! To get started, please enter your license key:"
1264
+ msgstr "Thanks for purchasing %s! To get started, please enter your license key:"
1265
 
1266
+ #: templates/connect.php:154
1267
+ msgid "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
1268
+ msgstr "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
1269
 
1270
+ #: templates/connect.php:159
1271
+ msgid "Please help us improve %1$s! If you opt in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just