Version Description
- Added a filter to include links to the String Translation table for custom options/settings in Woocommerce Gateway settings panel
- Added logic to display a warning in the back-end when built in taxonomies translation status (set to 'translate') is overridden
- Added the ability to translate the currency switcher format in String Translation
- My account Bookings list page displays bookings in all languages
- Updating variable product does not refresh product visibility terms
- Currency switcher doesn't reload the product page if # is present in the URL
- Fixed a PHP fatal error that was occurring when using WooCommerce Multilingual together with Sensei
- The 'featured' product field was not synchronized across product translations
- When updating a translation, the product translation slug was overwritten if product contains page builders fields
- The 'reset password' form in a secondary language pointed to a 404 error
- "product/%product_cat%" product permalink doesn't work for products without category assigned in second language if "Uncategorized" string not translated in String Translation module
- It was not possible to set the custom price value in secondary currencies as '0'
- It was not possible to translate attribute slugs if the attributes base was not translated
- Currency switcher styles were not loaded when using only a shortcode currency switcher
- The customer order email was sent in default language when the 'Processing' button was clicked on the back-end
Download this release
Release Info
Developer | sergey.r |
Plugin | WooCommerce Multilingual – run WooCommerce with WPML |
Version | 4.2.2 |
Comparing to | |
See all releases |
Code changes from version 4.2.1.1 to 4.2.2
- changelog/4.2.2.md +18 -0
- classes/shortcodes/class-wcml-wc-shortcode-product-category.php +62 -0
- compatibility/class-wcml-bookings.php +29 -0
- compatibility/class-wcml-klarna-gateway.php +17 -8
- inc/admin-menus/class-wcml-admin-menus.php +3 -3
- inc/class-wcml-capabilities.php +31 -29
- inc/class-wcml-compatibility.php +1 -1
- inc/class-wcml-dependencies.php +37 -1
- inc/class-wcml-emails.php +134 -86
- inc/class-wcml-endpoints.php +20 -17
- inc/class-wcml-terms.php +75 -41
- inc/class-wcml-upgrade.php +19 -6
- inc/class-wcml-url-translation.php +247 -149
- inc/class-wcml-wc-gateways.php +29 -21
- inc/class-woocommerce-wpml.php +129 -120
- inc/currencies/class-wcml-custom-prices.php +2 -3
- inc/currencies/class-wcml-multi-currency-prices.php +9 -9
- inc/currencies/class-wcml-multi-currency-resources.php +2 -3
- inc/currencies/currency-switcher/class-wcml-currency-switcher-ajax.php +2 -0
- inc/currencies/currency-switcher/class-wcml-currency-switcher-templates.php +125 -57
- inc/currencies/currency-switcher/class-wcml-currency-switcher.php +16 -7
- inc/template-classes/class-wcml-menus-wrap.php +7 -4
- inc/template-classes/currency-switcher/class-wcml-currency-switcher-template.php +11 -0
- inc/translation-editor/class-wcml-editor-ui-product-job.php +7 -3
- inc/translation-editor/class-wcml-synchronize-product-data.php +29 -2
- inc/translation-editor/class-wcml-synchronize-variations-data.php +23 -13
- locale/orig/woocommerce-multilingual.po +2402 -2169
- locale/woocommerce-multilingual-ar.mo +0 -0
- locale/woocommerce-multilingual-de_DE.mo +0 -0
- locale/woocommerce-multilingual-el.mo +0 -0
- locale/woocommerce-multilingual-es_ES.mo +0 -0
- locale/woocommerce-multilingual-fr_FR.mo +0 -0
- locale/woocommerce-multilingual-he_IL.mo +0 -0
- locale/woocommerce-multilingual-it_IT.mo +0 -0
- locale/woocommerce-multilingual-ja.mo +0 -0
- locale/woocommerce-multilingual-ko_KR.mo +0 -0
- locale/woocommerce-multilingual-nl_NL.mo +0 -0
- locale/woocommerce-multilingual-pl_PL.mo +0 -0
- locale/woocommerce-multilingual-pt_BR.mo +0 -0
- locale/woocommerce-multilingual-pt_PT.mo +0 -0
- locale/woocommerce-multilingual-ru_RU.mo +0 -0
- locale/woocommerce-multilingual-sv_SE.mo +0 -0
- locale/woocommerce-multilingual-uk_UA.mo +0 -0
- locale/woocommerce-multilingual-vi.mo +0 -0
- locale/woocommerce-multilingual-zh_CN.mo +0 -0
- locale/woocommerce-multilingual-zh_TW.mo +0 -0
- readme.txt +18 -1
- res/js/lock_fields.js +1 -1
- res/js/lock_fields.min.js +1 -1
- res/js/wcml-multi-currency.js +13 -9
- res/js/wcml-multi-currency.min.js +1 -1
- templates/menus-wrap.twig +12 -9
- vendor/autoload.php +1 -1
- vendor/autoload_52.php +1 -1
- vendor/composer/autoload_classmap.php +1 -0
- vendor/composer/autoload_real.php +4 -4
- vendor/composer/autoload_real_52.php +3 -3
- vendor/composer/autoload_static.php +6 -5
- wpml-config.xml +1 -0
- wpml-woocommerce.php +2 -2
changelog/4.2.2.md
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Features
|
2 |
+
* [wcml-2120] Added a filter to include links to the String Translation table for custom options/settings in Woocommerce Gateway settings panel
|
3 |
+
* [wcml-2119] Added logic to display a warning in the back-end when built in taxonomies translation status (set to 'translate') is overridden
|
4 |
+
* [wcml-1484] Added the ability to translate the currency switcher format in String Translation
|
5 |
+
|
6 |
+
# Fixes
|
7 |
+
* [wcml-2137] My account Bookings list page displays bookings in all languages
|
8 |
+
* [wcml-2134] Updating variable product does not refresh product visibility terms
|
9 |
+
* [wcml-2131] Currency switcher doesn't reload the product page if # is present in the URL
|
10 |
+
* [wcml-2123] Fixed a PHP fatal error that was occurring when using WooCommerce Multilingual together with Sensei
|
11 |
+
* [wcml-2117] The 'featured' product field was not synchronized across product translations
|
12 |
+
* [wcml-2116] When updating a translation, the product translation slug was overwritten if product contains page builders fields
|
13 |
+
* [wcml-2115] The 'reset password' form in a secondary language pointed to a 404 error
|
14 |
+
* [wcml-2114] "product/%product_cat%" product permalink doesn't work for products without category assigned in second language if "Uncategorized" string not translated in String Translation module
|
15 |
+
* [wcml-2107] It was not possible to set the custom price value in secondary currencies as '0'
|
16 |
+
* [wcml-2090] It was not possible to translate attribute slugs if the attributes base was not translated
|
17 |
+
* [wcml-2086] Currency switcher styles were not loaded when using only a shortcode currency switcher
|
18 |
+
* [wcml-2028] The customer order email was sent in default language when the 'Processing' button was clicked on the back-end
|
classes/shortcodes/class-wcml-wc-shortcode-product-category.php
ADDED
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class WCML_WC_Shortcode_Product_Category
|
4 |
+
* @since 4.2.2
|
5 |
+
*/
|
6 |
+
class WCML_WC_Shortcode_Product_Category {
|
7 |
+
|
8 |
+
/**
|
9 |
+
* @var SitePress
|
10 |
+
*/
|
11 |
+
private $sitepress;
|
12 |
+
|
13 |
+
/**
|
14 |
+
* WCML_WC_Shortcode_Product_Category constructor.
|
15 |
+
* @param SitePress $sitepress
|
16 |
+
*/
|
17 |
+
public function __construct( SitePress $sitepress ) {
|
18 |
+
$this->sitepress = $sitepress;
|
19 |
+
}
|
20 |
+
|
21 |
+
public function add_hooks() {
|
22 |
+
add_filter( 'woocommerce_shortcode_products_query', array( $this, 'translate_category' ), 10, 2 );
|
23 |
+
}
|
24 |
+
|
25 |
+
|
26 |
+
/**
|
27 |
+
* @param array $args
|
28 |
+
* @param array $atts
|
29 |
+
*
|
30 |
+
* @return array
|
31 |
+
*/
|
32 |
+
public function translate_category( $args, $atts ) {
|
33 |
+
if ( isset( $atts['category'] ) ) {
|
34 |
+
|
35 |
+
// Get translated category slugs, we need to remove WPML filter.
|
36 |
+
$filter_exists = remove_filter( 'terms_clauses', array( $this->sitepress, 'terms_clauses' ), 10 );
|
37 |
+
$categories = get_terms( array( 'slug' => $atts['category'], 'taxonomy' => 'product_cat' ) );
|
38 |
+
if ( $filter_exists ) {
|
39 |
+
add_filter( 'terms_clauses', array( $this->sitepress, 'terms_clauses' ), 10, 4 );
|
40 |
+
}
|
41 |
+
|
42 |
+
// Replace slugs in query arguments.
|
43 |
+
$terms = wp_list_pluck( $categories, 'slug' );
|
44 |
+
foreach ( $args['tax_query'] as $i => $tax_query ) {
|
45 |
+
$args['tax_query'][ $i ] = array();
|
46 |
+
if ( ! is_int( key( $tax_query ) ) ) {
|
47 |
+
$tax_query = array( $tax_query );
|
48 |
+
}
|
49 |
+
foreach ( $tax_query as $j => $condition ) {
|
50 |
+
if ( 'product_cat' === $condition['taxonomy'] ) {
|
51 |
+
$condition['terms'] = $terms;
|
52 |
+
}
|
53 |
+
$args['tax_query'][ $i ][] = $condition;
|
54 |
+
}
|
55 |
+
}
|
56 |
+
}
|
57 |
+
|
58 |
+
return $args;
|
59 |
+
}
|
60 |
+
|
61 |
+
|
62 |
+
}
|
compatibility/class-wcml-bookings.php
CHANGED
@@ -197,6 +197,8 @@ class WCML_Bookings {
|
|
197 |
|
198 |
add_filter( 'wcml_add_to_cart_sold_individually', array( $this, 'add_to_cart_sold_individually' ), 10, 4 );
|
199 |
|
|
|
|
|
200 |
}
|
201 |
|
202 |
function wcml_price_field_after_booking_base_cost( $post_id ) {
|
@@ -2354,6 +2356,33 @@ class WCML_Bookings {
|
|
2354 |
|
2355 |
}
|
2356 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2357 |
|
2358 |
|
2359 |
}
|
197 |
|
198 |
add_filter( 'wcml_add_to_cart_sold_individually', array( $this, 'add_to_cart_sold_individually' ), 10, 4 );
|
199 |
|
200 |
+
add_filter( 'woocommerce_bookings_account_tables', array( $this, 'filter_my_account_bookings_tables_by_current_language' ) );
|
201 |
+
|
202 |
}
|
203 |
|
204 |
function wcml_price_field_after_booking_base_cost( $post_id ) {
|
2356 |
|
2357 |
}
|
2358 |
|
2359 |
+
public function filter_my_account_bookings_tables_by_current_language( $tables ) {
|
2360 |
+
|
2361 |
+
$current_language = $this->sitepress->get_current_language();
|
2362 |
+
|
2363 |
+
foreach ( $tables as $table_key => $table ) {
|
2364 |
+
|
2365 |
+
if ( isset( $table['bookings'] ) ) {
|
2366 |
+
|
2367 |
+
foreach ( $table['bookings'] as $key => $booking ) {
|
2368 |
+
$language_code = get_post_meta( $booking->get_id(), '_language_code', true );
|
2369 |
+
|
2370 |
+
if( !$language_code ){
|
2371 |
+
$language_code = $this->sitepress->get_language_for_element( $booking->get_product_id(), 'post_product' );
|
2372 |
+
}
|
2373 |
+
|
2374 |
+
if ( $language_code !== $current_language ) {
|
2375 |
+
unset( $tables[ $table_key ]['bookings'][ $key ] );
|
2376 |
+
}
|
2377 |
+
}
|
2378 |
+
}
|
2379 |
+
|
2380 |
+
$tables[ $table_key ]['bookings'] = array_values( $tables[ $table_key ]['bookings'] );
|
2381 |
+
}
|
2382 |
+
|
2383 |
+
return $tables;
|
2384 |
+
}
|
2385 |
+
|
2386 |
|
2387 |
|
2388 |
}
|
compatibility/class-wcml-klarna-gateway.php
CHANGED
@@ -1,18 +1,27 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
class WCML_Klarna_Gateway{
|
4 |
|
5 |
-
|
6 |
|
7 |
-
|
8 |
|
9 |
-
|
10 |
|
11 |
-
|
12 |
|
13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
15 |
-
|
16 |
-
|
17 |
|
18 |
}
|
1 |
<?php
|
2 |
|
3 |
+
class WCML_Klarna_Gateway {
|
4 |
|
5 |
+
public function add_hooks() {
|
6 |
|
7 |
+
add_filter( 'wcml_multi_currency_ajax_actions', array( $this, 'ajax_action_needs_multi_currency' ) );
|
8 |
|
9 |
+
}
|
10 |
|
11 |
+
public function ajax_action_needs_multi_currency( $actions ) {
|
12 |
|
13 |
+
$actions[] = 'klarna_checkout_cart_callback_update';
|
14 |
+
$actions[] = 'klarna_checkout_coupons_callback';
|
15 |
+
$actions[] = 'klarna_checkout_remove_coupon_callback';
|
16 |
+
$actions[] = 'klarna_checkout_cart_callback_remove';
|
17 |
+
$actions[] = 'klarna_checkout_shipping_callback';
|
18 |
+
$actions[] = 'kco_iframe_shipping_option_change_cb';
|
19 |
+
$actions[] = 'klarna_checkout_order_note_callback';
|
20 |
+
$actions[] = 'kco_iframe_change_cb';
|
21 |
+
$actions[] = 'kco_iframe_shipping_address_change_v2_cb';
|
22 |
+
$actions[] = 'kco_iframe_shipping_address_change_cb';
|
23 |
|
24 |
+
return $actions;
|
25 |
+
}
|
26 |
|
27 |
}
|
inc/admin-menus/class-wcml-admin-menus.php
CHANGED
@@ -47,7 +47,7 @@ class WCML_Admin_Menus{
|
|
47 |
$wp_api = self::$sitepress->get_wp_api();
|
48 |
if (!$wp_api->current_user_can('wpml_manage_translation_management')) {
|
49 |
$wp_api->add_submenu_page(null,
|
50 |
-
__('Translations', '
|
51 |
'wpml_operate_woocommerce_multilingual', WPML_TM_FOLDER . '/menu/translations-queue.php', array($WPML_Translation_Management, 'translation_queue_page'));
|
52 |
}
|
53 |
}
|
@@ -151,7 +151,7 @@ class WCML_Admin_Menus{
|
|
151 |
|
152 |
if ( $pos !== false && $pagenow == 'edit-tags.php' ) {
|
153 |
$prot_link = '<span class="button" style="padding:4px;margin-top:0px; float: left;"><img align="baseline" src="' . ICL_PLUGIN_URL . '/res/img/icon16.png" width="16" height="16" style="margin-bottom:-4px" /> <a href="' . WCML_Links::generate_tracking_link( 'https://wpml.org/documentation/related-projects/woocommerce-multilingual/', 'woocommerce-multilingual', 'documentation', '#3' ) . '" target="_blank" style="text-decoration: none;">' .
|
154 |
-
__( 'How to translate attributes', '
|
155 |
?>
|
156 |
<script type="text/javascript">
|
157 |
jQuery("table.widefat").before('<?php echo $prot_link ?>');
|
@@ -163,7 +163,7 @@ class WCML_Admin_Menus{
|
|
163 |
if ( isset($_GET['taxonomy']) && $_GET['taxonomy'] == 'product_cat' ) {
|
164 |
|
165 |
$prot_link = '<span class="button" style="padding:4px;margin-top:0px; float: left;"><img align="baseline" src="' . ICL_PLUGIN_URL . '/res/img/icon16.png" width="16" height="16" style="margin-bottom:-4px" /> <a href="' . WCML_Links::generate_tracking_link( 'https://wpml.org/documentation/related-projects/woocommerce-multilingual/', 'woocommerce-multilingual', 'documentation', '#3' ) . '" target="_blank" style="text-decoration: none;">' .
|
166 |
-
__( 'How to translate product categories', '
|
167 |
?>
|
168 |
<script type="text/javascript">
|
169 |
jQuery("table.widefat").before('<?php echo $prot_link ?>');
|
47 |
$wp_api = self::$sitepress->get_wp_api();
|
48 |
if (!$wp_api->current_user_can('wpml_manage_translation_management')) {
|
49 |
$wp_api->add_submenu_page(null,
|
50 |
+
__( 'Translations', 'woocommerce-multilingual' ), __( 'Translations', 'woocommerce-multilingual' ),
|
51 |
'wpml_operate_woocommerce_multilingual', WPML_TM_FOLDER . '/menu/translations-queue.php', array($WPML_Translation_Management, 'translation_queue_page'));
|
52 |
}
|
53 |
}
|
151 |
|
152 |
if ( $pos !== false && $pagenow == 'edit-tags.php' ) {
|
153 |
$prot_link = '<span class="button" style="padding:4px;margin-top:0px; float: left;"><img align="baseline" src="' . ICL_PLUGIN_URL . '/res/img/icon16.png" width="16" height="16" style="margin-bottom:-4px" /> <a href="' . WCML_Links::generate_tracking_link( 'https://wpml.org/documentation/related-projects/woocommerce-multilingual/', 'woocommerce-multilingual', 'documentation', '#3' ) . '" target="_blank" style="text-decoration: none;">' .
|
154 |
+
__( 'How to translate attributes', 'woocommerce-multilingual' ) . '<\/a>' . '<\/span><br \/><br \/>';
|
155 |
?>
|
156 |
<script type="text/javascript">
|
157 |
jQuery("table.widefat").before('<?php echo $prot_link ?>');
|
163 |
if ( isset($_GET['taxonomy']) && $_GET['taxonomy'] == 'product_cat' ) {
|
164 |
|
165 |
$prot_link = '<span class="button" style="padding:4px;margin-top:0px; float: left;"><img align="baseline" src="' . ICL_PLUGIN_URL . '/res/img/icon16.png" width="16" height="16" style="margin-bottom:-4px" /> <a href="' . WCML_Links::generate_tracking_link( 'https://wpml.org/documentation/related-projects/woocommerce-multilingual/', 'woocommerce-multilingual', 'documentation', '#3' ) . '" target="_blank" style="text-decoration: none;">' .
|
166 |
+
__( 'How to translate product categories', 'woocommerce-multilingual' ) . '<\/a>' . '<\/span><br \/><br \/>';
|
167 |
?>
|
168 |
<script type="text/javascript">
|
169 |
jQuery("table.widefat").before('<?php echo $prot_link ?>');
|
inc/class-wcml-capabilities.php
CHANGED
@@ -1,33 +1,35 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
class WCML_Capabilities{
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
|
|
|
|
32 |
|
33 |
}
|
1 |
<?php
|
2 |
|
3 |
+
class WCML_Capabilities {
|
4 |
+
|
5 |
+
public static function set_up_capabilities() {
|
6 |
+
|
7 |
+
$role = get_role( 'administrator' );
|
8 |
+
if ( $role ) {
|
9 |
+
$role->add_cap( 'wpml_manage_woocommerce_multilingual' );
|
10 |
+
$role->add_cap( 'wpml_operate_woocommerce_multilingual' );
|
11 |
+
}
|
12 |
+
|
13 |
+
$role = get_role( 'super_admin' );
|
14 |
+
if ( $role ) {
|
15 |
+
$role->add_cap( 'wpml_manage_woocommerce_multilingual' );
|
16 |
+
$role->add_cap( 'wpml_operate_woocommerce_multilingual' );
|
17 |
+
}
|
18 |
+
|
19 |
+
if ( is_multisite() ) {
|
20 |
+
$super_admins = get_super_admins();
|
21 |
+
foreach ( $super_admins as $admin ) {
|
22 |
+
$user = new WP_User( $admin );
|
23 |
+
$user->add_cap( 'wpml_manage_woocommerce_multilingual' );
|
24 |
+
$user->add_cap( 'wpml_operate_woocommerce_multilingual' );
|
25 |
+
}
|
26 |
+
}
|
27 |
+
|
28 |
+
$role = get_role( 'shop_manager' );
|
29 |
+
if ( $role ) {
|
30 |
+
$role->add_cap( 'wpml_operate_woocommerce_multilingual' );
|
31 |
+
}
|
32 |
+
|
33 |
+
}
|
34 |
|
35 |
}
|
inc/class-wcml-compatibility.php
CHANGED
@@ -102,7 +102,7 @@ class WCML_Compatibility {
|
|
102 |
$this->sensei = new WCML_Sensei(
|
103 |
$this->sitepress,
|
104 |
$this->wpdb,
|
105 |
-
WPML_Custom_Columns( $this->wpdb, $this->sitepress )
|
106 |
);
|
107 |
$this->sensei->add_hooks();
|
108 |
}
|
102 |
$this->sensei = new WCML_Sensei(
|
103 |
$this->sitepress,
|
104 |
$this->wpdb,
|
105 |
+
new WPML_Custom_Columns( $this->wpdb, $this->sitepress )
|
106 |
);
|
107 |
$this->sensei->add_hooks();
|
108 |
}
|
inc/class-wcml-dependencies.php
CHANGED
@@ -67,6 +67,7 @@ class WCML_Dependencies{
|
|
67 |
|
68 |
if($this->allok){
|
69 |
$this->check_for_incompatible_permalinks();
|
|
|
70 |
}
|
71 |
|
72 |
if(isset($sitepress)){
|
@@ -110,7 +111,42 @@ class WCML_Dependencies{
|
|
110 |
<div class="message error"><p><?php printf(__('WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href="%s">WPML Media</a> versions prior %s.',
|
111 |
'woocommerce-multilingual'), WCML_Links::generate_tracking_link('https://wpml.org/'), '2.1'); ?></p></div>
|
112 |
<?php }
|
113 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
|
115 |
/**
|
116 |
* Adds admin notice.
|
67 |
|
68 |
if($this->allok){
|
69 |
$this->check_for_incompatible_permalinks();
|
70 |
+
$this->check_for_transaltable_default_taxonomies();
|
71 |
}
|
72 |
|
73 |
if(isset($sitepress)){
|
111 |
<div class="message error"><p><?php printf(__('WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href="%s">WPML Media</a> versions prior %s.',
|
112 |
'woocommerce-multilingual'), WCML_Links::generate_tracking_link('https://wpml.org/'), '2.1'); ?></p></div>
|
113 |
<?php }
|
114 |
+
|
115 |
+
/**
|
116 |
+
* Adds default taxonomies notice.
|
117 |
+
*/
|
118 |
+
public function check_for_transaltable_default_taxonomies() {
|
119 |
+
|
120 |
+
$default_taxonomies = array( 'product_cat', 'product_tag', 'product_shipping_class' );
|
121 |
+
$show_error = false;
|
122 |
+
|
123 |
+
foreach ( $default_taxonomies as $taxonomy ) {
|
124 |
+
if ( ! is_taxonomy_translated( $taxonomy ) ) {
|
125 |
+
$show_error = true;
|
126 |
+
break;
|
127 |
+
}
|
128 |
+
}
|
129 |
+
|
130 |
+
if ( $show_error ) {
|
131 |
+
$support_link = '<a href="https://wpml.org/forums/forum/english-support/">' . __( 'WPML support', 'woocommerce-multilingual' ) . '</a>';
|
132 |
+
|
133 |
+
/* translators: Part 1/6 of a message telling users that some taxonomies, required for WCML to work, are not set as translatable when they should */
|
134 |
+
$sentences[] = _x( "Some taxonomies in your site are forced to be untranslatable. This is causing a problem when you're trying to run a multilingual WooCommerce site.", 'Default taxonomies must be translatable: 1/6', 'woocommerce-multilingual' );
|
135 |
+
/* translators: Part 2/6 of a message telling users that some taxonomies, required for WCML to work, are not set as translatable when they should */
|
136 |
+
$sentences[] = _x( 'A plugin or the theme are probably doing this.', 'Default taxonomies must be translatable: 2/6', 'woocommerce-multilingual' );
|
137 |
+
/* translators: Part 3/6 of a message telling users that some taxonomies, required for WCML to work, are not set as translatable when they should */
|
138 |
+
$sentences[] = _x( 'What you can do:', 'Default taxonomies must be translatable: 3/6', 'woocommerce-multilingual' );
|
139 |
+
/* translators: Part 4/6 of a message telling users that some taxonomies, required for WCML to work, are not set as translatable when they should */
|
140 |
+
$sentences[] = _x( '1. Temporarily disable plugins and see if this message disappears.', 'Default taxonomies must be translatable: 4/6', 'woocommerce-multilingual' );
|
141 |
+
/* translators: Part 5/6 of a message telling users that some taxonomies, required for WCML to work, are not set as translatable when they should */
|
142 |
+
$sentences[] = _x( '2. Temporarily switch the theme and see if this message disappears.', 'Default taxonomies must be translatable: 5/6', 'woocommerce-multilingual' );
|
143 |
+
/* translators: Part 6/6 of a message telling users that some taxonomies, required for WCML to work, are not set as translatable when they should */
|
144 |
+
$sentences[] = sprintf( _x( "It's best to contact %s, tell that you're getting this message and offer to send a Duplicator copy of the site. We will work with the theme/plugin author and fix the problem for good. In the meanwhile, we'll give you a temporary solution, so you're not stuck.", 'Default taxonomies must be translatable: 6/6', 'woocommerce-multilingual' ), $support_link );
|
145 |
+
|
146 |
+
$this->err_message = '<div class="message error"><p>' . implode( '</p><p>', $sentences ) . '</p></div>';
|
147 |
+
add_action( 'admin_notices', array( $this, 'plugin_notice_message' ) );
|
148 |
+
}
|
149 |
+
}
|
150 |
|
151 |
/**
|
152 |
* Adds admin notice.
|
inc/class-wcml-emails.php
CHANGED
@@ -3,54 +3,91 @@ class WCML_Emails{
|
|
3 |
|
4 |
private $order_id = false;
|
5 |
private $locale = false;
|
|
|
6 |
private $woocommerce_wpml;
|
|
|
7 |
private $sitepress;
|
|
|
|
|
8 |
|
9 |
-
function __construct(
|
10 |
$this->woocommerce_wpml = $woocommerce_wpml;
|
11 |
-
$this->sitepress
|
12 |
-
|
13 |
-
add_action( 'init', array( $this, 'init' ) );
|
14 |
}
|
15 |
|
16 |
-
function
|
17 |
global $pagenow;
|
18 |
//wrappers for email's header
|
19 |
-
if(is_admin() && !defined( 'DOING_AJAX' )){
|
20 |
-
add_action('woocommerce_order_status_completed_notification', array(
|
21 |
-
|
|
|
|
|
|
|
22 |
}
|
23 |
|
24 |
-
add_action('woocommerce_new_customer_note_notification', array($this, 'email_heading_note'),9);
|
25 |
-
|
|
|
26 |
|
27 |
-
add_action( 'woocommerce_order_status_pending_to_processing_notification', array(
|
28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
|
30 |
//wrappers for email's body
|
31 |
-
add_action('woocommerce_before_resend_order_emails', array($this, 'email_header'));
|
32 |
-
add_action('woocommerce_after_resend_order_email', array($this, 'email_footer'));
|
33 |
|
34 |
//filter string language before for emails
|
35 |
-
add_filter('icl_current_string_language',array($this,'icl_current_string_language'),10
|
36 |
|
37 |
//change order status
|
38 |
-
add_action('woocommerce_order_status_completed',array($this,'refresh_email_lang_complete'),9);
|
39 |
-
add_action('woocommerce_order_status_pending_to_processing_notification',array(
|
40 |
-
|
41 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
|
43 |
|
44 |
-
add_action('woocommerce_order_partially_refunded_notification', array($this,'email_heading_refund'), 9);
|
45 |
-
add_action('woocommerce_order_partially_refunded_notification', array($this,'refresh_email_lang'), 9);
|
46 |
|
47 |
//new order admins email
|
48 |
-
add_action( 'woocommerce_order_status_pending_to_processing_notification', array(
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
add_action( '
|
53 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
add_action( 'woocommerce_before_resend_order_emails', array( $this, 'backend_new_order_admin_email' ), 9 );
|
55 |
|
56 |
add_filter( 'icl_st_admin_string_return_cached', array( $this, 'admin_string_return_cached' ), 10, 2 );
|
@@ -58,31 +95,44 @@ class WCML_Emails{
|
|
58 |
add_filter( 'plugin_locale', array( $this, 'set_locale_for_emails' ), 10, 2 );
|
59 |
add_filter( 'woocommerce_countries', array( $this, 'translate_woocommerce_countries' ) );
|
60 |
|
61 |
-
if( is_admin() && $pagenow == 'admin.php' && isset($_GET['page']) && $_GET['page'] == 'wc-settings' && isset($_GET['tab']) && $_GET['tab'] == 'email' ){
|
62 |
-
add_action('admin_footer', array($this, 'show_language_links_for_wc_emails'));
|
63 |
$this->set_emails_string_language();
|
64 |
}
|
65 |
|
66 |
-
if(
|
67 |
(
|
68 |
-
!isset( $_GET['post_type'] ) ||
|
69 |
$_GET['post_type'] != 'shop_order'
|
70 |
) &&
|
71 |
(
|
72 |
-
!isset( $_GET[
|
73 |
-
!in_array( $_GET['action']
|
|
|
|
|
74 |
)
|
75 |
-
){
|
76 |
add_filter( 'woocommerce_order_items_meta_get_formatted', array( $this, 'filter_formatted_items' ), 10, 2 );
|
77 |
}
|
78 |
|
79 |
-
add_filter( 'woocommerce_allow_send_queued_transactional_email', array(
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
}
|
81 |
|
82 |
-
function email_refresh_in_ajax(){
|
83 |
-
if( isset( $_GET[
|
84 |
-
$this->refresh_email_lang( $_GET[
|
85 |
-
|
|
|
|
|
|
|
|
|
|
|
86 |
}
|
87 |
}
|
88 |
|
@@ -141,80 +191,78 @@ class WCML_Emails{
|
|
141 |
}
|
142 |
|
143 |
function email_heading_completed( $order_id, $no_checking = false ){
|
144 |
-
global $woocommerce;
|
145 |
-
if( ( class_exists( 'WC_Email_Customer_Completed_Order' ) || $no_checking ) && isset( $woocommerce->mailer()->emails[ 'WC_Email_Customer_Completed_Order' ] ) ){
|
146 |
|
147 |
-
|
|
|
|
|
148 |
|
149 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Completed_Order']->subject = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_completed_order_settings', '[woocommerce_customer_completed_order_settings]subject' );
|
150 |
|
151 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Completed_Order']->heading_downloadable = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_completed_order_settings', '[woocommerce_customer_completed_order_settings]heading_downloadable' );
|
152 |
|
153 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Completed_Order']->subject_downloadable = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_completed_order_settings', '[woocommerce_customer_completed_order_settings]subject_downloadable' );
|
154 |
|
155 |
-
$enabled = $woocommerce->mailer()->emails['WC_Email_Customer_Completed_Order']->enabled;
|
156 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Completed_Order']->enabled = false;
|
157 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Completed_Order']->trigger($order_id);
|
158 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Completed_Order']->enabled = $enabled;
|
159 |
}
|
160 |
}
|
161 |
|
162 |
function email_heading_processing($order_id){
|
163 |
-
global $woocommerce;
|
164 |
|
165 |
-
if( class_exists( 'WC_Email_Customer_Processing_Order' ) && isset( $woocommerce->mailer()->emails[ 'WC_Email_Customer_Processing_Order' ] ) ){
|
166 |
|
167 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Processing_Order']->heading = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_processing_order_settings', '[woocommerce_customer_processing_order_settings]heading', $order_id );
|
168 |
|
169 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Processing_Order']->subject = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_processing_order_settings', '[woocommerce_customer_processing_order_settings]subject', $order_id );
|
170 |
-
$enabled = $woocommerce->mailer()->emails['WC_Email_Customer_Processing_Order']->enabled;
|
171 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Processing_Order']->enabled = false;
|
172 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Processing_Order']->trigger($order_id);
|
173 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Processing_Order']->enabled = $enabled;
|
174 |
|
175 |
}
|
176 |
}
|
177 |
|
178 |
function email_heading_note($args){
|
179 |
-
global $woocommerce;
|
180 |
|
181 |
-
if( class_exists( 'WC_Email_Customer_Note' ) && isset( $woocommerce->mailer()->emails[ 'WC_Email_Customer_Note' ] ) ){
|
182 |
|
183 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Note']->heading = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_note_settings', '[woocommerce_customer_note_settings]heading' );
|
184 |
|
185 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Note']->subject = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_note_settings', '[woocommerce_customer_note_settings]subject' );
|
186 |
|
187 |
-
$enabled = $woocommerce->mailer()->emails['WC_Email_Customer_Note']->enabled;
|
188 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Note']->enabled = false;
|
189 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Note']->trigger($args);
|
190 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Note']->enabled = $enabled;
|
191 |
}
|
192 |
}
|
193 |
|
194 |
function email_heading_refund( $order_id, $refund_id = null ){
|
195 |
-
global $woocommerce;
|
196 |
-
if( class_exists( 'WC_Email_Customer_Refunded_Order' ) && isset( $woocommerce->mailer()->emails[ 'WC_Email_Customer_Refunded_Order' ] ) ){
|
197 |
|
198 |
-
|
|
|
|
|
199 |
$this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_refunded_order_settings',
|
200 |
'[woocommerce_customer_refunded_order_settings]heading_partial', $order_id );
|
201 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Refunded_Order']->subject =
|
202 |
$this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_refunded_order_settings',
|
203 |
'[woocommerce_customer_refunded_order_settings]subject_partial', $order_id );
|
204 |
|
205 |
-
$enabled = $woocommerce->mailer()->emails['WC_Email_Customer_Refunded_Order']->enabled;
|
206 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Refunded_Order']->enabled = false;
|
207 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Refunded_Order']->trigger($order_id, true, $refund_id);
|
208 |
-
$woocommerce->mailer()->emails['WC_Email_Customer_Refunded_Order']->enabled = $enabled;
|
209 |
|
210 |
}
|
211 |
}
|
212 |
|
213 |
|
214 |
function new_order_admin_email($order_id){
|
215 |
-
|
216 |
-
if( isset( $woocommerce->mailer()->emails[ 'WC_Email_New_Order' ] ) ){
|
217 |
-
$recipients = explode(',',$woocommerce->mailer()->emails['WC_Email_New_Order']->get_recipient());
|
218 |
foreach($recipients as $recipient){
|
219 |
$user = get_user_by('email',$recipient);
|
220 |
if($user){
|
@@ -225,15 +273,15 @@ class WCML_Emails{
|
|
225 |
|
226 |
$this->change_email_language( $user_lang );
|
227 |
|
228 |
-
$woocommerce->mailer()->emails['WC_Email_New_Order']->heading = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_new_order_settings', '[woocommerce_new_order_settings]heading', $order_id );
|
229 |
|
230 |
-
$woocommerce->mailer()->emails['WC_Email_New_Order']->subject = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_new_order_settings', '[woocommerce_new_order_settings]subject', $order_id );
|
231 |
|
232 |
-
$woocommerce->mailer()->emails['WC_Email_New_Order']->recipient = $recipient;
|
233 |
|
234 |
-
$woocommerce->mailer()->emails['WC_Email_New_Order']->trigger($order_id);
|
235 |
}
|
236 |
-
$woocommerce->mailer()->emails['WC_Email_New_Order']->enabled = false;
|
237 |
$this->refresh_email_lang($order_id);
|
238 |
}
|
239 |
}
|
@@ -284,16 +332,16 @@ class WCML_Emails{
|
|
284 |
|
285 |
}
|
286 |
|
287 |
-
function change_email_language($lang){
|
288 |
-
|
289 |
-
$this->sitepress->switch_lang($lang,true);
|
290 |
$this->locale = $this->sitepress->get_locale( $lang );
|
291 |
-
unload_textdomain('woocommerce');
|
292 |
unload_textdomain( 'default' );
|
293 |
global $wp_locale;
|
294 |
$wp_locale = new WP_Locale();
|
295 |
|
296 |
-
$woocommerce->load_plugin_textdomain();
|
297 |
load_default_textdomain( $this->locale );
|
298 |
}
|
299 |
|
3 |
|
4 |
private $order_id = false;
|
5 |
private $locale = false;
|
6 |
+
/** @var woocommerce_wpml */
|
7 |
private $woocommerce_wpml;
|
8 |
+
/** @var Sitepress */
|
9 |
private $sitepress;
|
10 |
+
/** @var WooCommerce */
|
11 |
+
private $woocommerce;
|
12 |
|
13 |
+
function __construct( woocommerce_wpml $woocommerce_wpml, SitePress $sitepress, WooCommerce $woocommerce ) {
|
14 |
$this->woocommerce_wpml = $woocommerce_wpml;
|
15 |
+
$this->sitepress = $sitepress;
|
16 |
+
$this->woocommerce = $woocommerce;
|
|
|
17 |
}
|
18 |
|
19 |
+
function add_hooks(){
|
20 |
global $pagenow;
|
21 |
//wrappers for email's header
|
22 |
+
if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
|
23 |
+
add_action( 'woocommerce_order_status_completed_notification', array(
|
24 |
+
$this,
|
25 |
+
'email_heading_completed'
|
26 |
+
), 9 );
|
27 |
+
add_action( 'woocommerce_order_status_changed', array( $this, 'comments_language' ), 10 );
|
28 |
}
|
29 |
|
30 |
+
add_action( 'woocommerce_new_customer_note_notification', array( $this, 'email_heading_note' ), 9 );
|
31 |
+
|
32 |
+
add_action( 'wp_ajax_woocommerce_mark_order_status', array( $this, 'email_refresh_in_ajax' ), 9 );
|
33 |
|
34 |
+
add_action( 'woocommerce_order_status_pending_to_processing_notification', array(
|
35 |
+
$this,
|
36 |
+
'email_heading_processing'
|
37 |
+
), 9 );
|
38 |
+
add_action( 'woocommerce_order_status_pending_to_on-hold_notification', array(
|
39 |
+
$this,
|
40 |
+
'email_heading_processing'
|
41 |
+
), 9 );
|
42 |
|
43 |
//wrappers for email's body
|
44 |
+
add_action( 'woocommerce_before_resend_order_emails', array( $this, 'email_header' ) );
|
45 |
+
add_action( 'woocommerce_after_resend_order_email', array( $this, 'email_footer' ) );
|
46 |
|
47 |
//filter string language before for emails
|
48 |
+
add_filter( 'icl_current_string_language', array( $this, 'icl_current_string_language' ), 10, 2 );
|
49 |
|
50 |
//change order status
|
51 |
+
add_action( 'woocommerce_order_status_completed', array( $this, 'refresh_email_lang_complete' ), 9 );
|
52 |
+
add_action( 'woocommerce_order_status_pending_to_processing_notification', array(
|
53 |
+
$this,
|
54 |
+
'refresh_email_lang'
|
55 |
+
), 9 );
|
56 |
+
add_action( 'woocommerce_order_status_pending_to_on-hold_notification', array(
|
57 |
+
$this,
|
58 |
+
'refresh_email_lang'
|
59 |
+
), 9 );
|
60 |
+
add_action( 'woocommerce_new_customer_note', array( $this, 'refresh_email_lang' ), 9 );
|
61 |
|
62 |
|
63 |
+
add_action( 'woocommerce_order_partially_refunded_notification', array( $this, 'email_heading_refund' ), 9 );
|
64 |
+
add_action( 'woocommerce_order_partially_refunded_notification', array( $this, 'refresh_email_lang' ), 9 );
|
65 |
|
66 |
//new order admins email
|
67 |
+
add_action( 'woocommerce_order_status_pending_to_processing_notification', array(
|
68 |
+
$this,
|
69 |
+
'new_order_admin_email'
|
70 |
+
), 9 );
|
71 |
+
add_action( 'woocommerce_order_status_pending_to_completed_notification', array(
|
72 |
+
$this,
|
73 |
+
'new_order_admin_email'
|
74 |
+
), 9 );
|
75 |
+
add_action( 'woocommerce_order_status_pending_to_on-hold_notification', array(
|
76 |
+
$this,
|
77 |
+
'new_order_admin_email'
|
78 |
+
), 9 );
|
79 |
+
add_action( 'woocommerce_order_status_failed_to_processing_notification', array(
|
80 |
+
$this,
|
81 |
+
'new_order_admin_email'
|
82 |
+
), 9 );
|
83 |
+
add_action( 'woocommerce_order_status_failed_to_completed_notification', array(
|
84 |
+
$this,
|
85 |
+
'new_order_admin_email'
|
86 |
+
), 9 );
|
87 |
+
add_action( 'woocommerce_order_status_failed_to_on-hold_notification', array(
|
88 |
+
$this,
|
89 |
+
'new_order_admin_email'
|
90 |
+
), 9 );
|
91 |
add_action( 'woocommerce_before_resend_order_emails', array( $this, 'backend_new_order_admin_email' ), 9 );
|
92 |
|
93 |
add_filter( 'icl_st_admin_string_return_cached', array( $this, 'admin_string_return_cached' ), 10, 2 );
|
95 |
add_filter( 'plugin_locale', array( $this, 'set_locale_for_emails' ), 10, 2 );
|
96 |
add_filter( 'woocommerce_countries', array( $this, 'translate_woocommerce_countries' ) );
|
97 |
|
98 |
+
if ( is_admin() && $pagenow == 'admin.php' && isset( $_GET['page'] ) && $_GET['page'] == 'wc-settings' && isset( $_GET['tab'] ) && $_GET['tab'] == 'email' ) {
|
99 |
+
add_action( 'admin_footer', array( $this, 'show_language_links_for_wc_emails' ) );
|
100 |
$this->set_emails_string_language();
|
101 |
}
|
102 |
|
103 |
+
if (
|
104 |
(
|
105 |
+
! isset( $_GET['post_type'] ) ||
|
106 |
$_GET['post_type'] != 'shop_order'
|
107 |
) &&
|
108 |
(
|
109 |
+
! isset( $_GET['action'] ) ||
|
110 |
+
! in_array( $_GET['action'], array(
|
111 |
+
'woocommerce_mark_order_status'
|
112 |
+
) )
|
113 |
)
|
114 |
+
) {
|
115 |
add_filter( 'woocommerce_order_items_meta_get_formatted', array( $this, 'filter_formatted_items' ), 10, 2 );
|
116 |
}
|
117 |
|
118 |
+
add_filter( 'woocommerce_allow_send_queued_transactional_email', array(
|
119 |
+
$this,
|
120 |
+
'send_queued_transactional_email'
|
121 |
+
), 10, 3 );
|
122 |
+
|
123 |
+
add_filter( 'woocommerce_email_setup_locale', '__return_false' );
|
124 |
+
add_filter( 'woocommerce_email_restore_locale', '__return_false' );
|
125 |
}
|
126 |
|
127 |
+
function email_refresh_in_ajax() {
|
128 |
+
if ( isset( $_GET['order_id'] ) ) {
|
129 |
+
$this->refresh_email_lang( $_GET['order_id'] );
|
130 |
+
|
131 |
+
if ( isset( $_GET['status'] ) && 'completed' === $_GET['status'] ) {
|
132 |
+
$this->email_heading_completed( $_GET['order_id'], true );
|
133 |
+
}
|
134 |
+
|
135 |
+
return true;
|
136 |
}
|
137 |
}
|
138 |
|
191 |
}
|
192 |
|
193 |
function email_heading_completed( $order_id, $no_checking = false ){
|
|
|
|
|
194 |
|
195 |
+
if( ( class_exists( 'WC_Email_Customer_Completed_Order' ) || $no_checking ) && isset( $this->woocommerce->mailer()->emails[ 'WC_Email_Customer_Completed_Order' ] ) ){
|
196 |
+
|
197 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Completed_Order']->heading = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_completed_order_settings', '[woocommerce_customer_completed_order_settings]heading' );
|
198 |
|
199 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Completed_Order']->subject = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_completed_order_settings', '[woocommerce_customer_completed_order_settings]subject' );
|
200 |
|
201 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Completed_Order']->heading_downloadable = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_completed_order_settings', '[woocommerce_customer_completed_order_settings]heading_downloadable' );
|
202 |
|
203 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Completed_Order']->subject_downloadable = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_completed_order_settings', '[woocommerce_customer_completed_order_settings]subject_downloadable' );
|
204 |
|
205 |
+
$enabled = $this->woocommerce->mailer()->emails['WC_Email_Customer_Completed_Order']->enabled;
|
206 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Completed_Order']->enabled = false;
|
207 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Completed_Order']->trigger($order_id);
|
208 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Completed_Order']->enabled = $enabled;
|
209 |
}
|
210 |
}
|
211 |
|
212 |
function email_heading_processing($order_id){
|
|
|
213 |
|
214 |
+
if( class_exists( 'WC_Email_Customer_Processing_Order' ) && isset( $this->woocommerce->mailer()->emails[ 'WC_Email_Customer_Processing_Order' ] ) ){
|
215 |
|
216 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Processing_Order']->heading = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_processing_order_settings', '[woocommerce_customer_processing_order_settings]heading', $order_id );
|
217 |
|
218 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Processing_Order']->subject = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_processing_order_settings', '[woocommerce_customer_processing_order_settings]subject', $order_id );
|
219 |
+
$enabled = $this->woocommerce->mailer()->emails['WC_Email_Customer_Processing_Order']->enabled;
|
220 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Processing_Order']->enabled = false;
|
221 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Processing_Order']->trigger($order_id);
|
222 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Processing_Order']->enabled = $enabled;
|
223 |
|
224 |
}
|
225 |
}
|
226 |
|
227 |
function email_heading_note($args){
|
|
|
228 |
|
229 |
+
if( class_exists( 'WC_Email_Customer_Note' ) && isset( $this->woocommerce->mailer()->emails[ 'WC_Email_Customer_Note' ] ) ){
|
230 |
|
231 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Note']->heading = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_note_settings', '[woocommerce_customer_note_settings]heading' );
|
232 |
|
233 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Note']->subject = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_note_settings', '[woocommerce_customer_note_settings]subject' );
|
234 |
|
235 |
+
$enabled = $this->woocommerce->mailer()->emails['WC_Email_Customer_Note']->enabled;
|
236 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Note']->enabled = false;
|
237 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Note']->trigger($args);
|
238 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Note']->enabled = $enabled;
|
239 |
}
|
240 |
}
|
241 |
|
242 |
function email_heading_refund( $order_id, $refund_id = null ){
|
|
|
|
|
243 |
|
244 |
+
if( class_exists( 'WC_Email_Customer_Refunded_Order' ) && isset( $this->woocommerce->mailer()->emails[ 'WC_Email_Customer_Refunded_Order' ] ) ){
|
245 |
+
|
246 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Refunded_Order']->heading =
|
247 |
$this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_refunded_order_settings',
|
248 |
'[woocommerce_customer_refunded_order_settings]heading_partial', $order_id );
|
249 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Refunded_Order']->subject =
|
250 |
$this->wcml_get_translated_email_string( 'admin_texts_woocommerce_customer_refunded_order_settings',
|
251 |
'[woocommerce_customer_refunded_order_settings]subject_partial', $order_id );
|
252 |
|
253 |
+
$enabled = $this->woocommerce->mailer()->emails['WC_Email_Customer_Refunded_Order']->enabled;
|
254 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Refunded_Order']->enabled = false;
|
255 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Refunded_Order']->trigger($order_id, true, $refund_id);
|
256 |
+
$this->woocommerce->mailer()->emails['WC_Email_Customer_Refunded_Order']->enabled = $enabled;
|
257 |
|
258 |
}
|
259 |
}
|
260 |
|
261 |
|
262 |
function new_order_admin_email($order_id){
|
263 |
+
|
264 |
+
if( isset( $this->woocommerce->mailer()->emails[ 'WC_Email_New_Order' ] ) ){
|
265 |
+
$recipients = explode(',',$this->woocommerce->mailer()->emails['WC_Email_New_Order']->get_recipient());
|
266 |
foreach($recipients as $recipient){
|
267 |
$user = get_user_by('email',$recipient);
|
268 |
if($user){
|
273 |
|
274 |
$this->change_email_language( $user_lang );
|
275 |
|
276 |
+
$this->woocommerce->mailer()->emails['WC_Email_New_Order']->heading = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_new_order_settings', '[woocommerce_new_order_settings]heading', $order_id );
|
277 |
|
278 |
+
$this->woocommerce->mailer()->emails['WC_Email_New_Order']->subject = $this->wcml_get_translated_email_string( 'admin_texts_woocommerce_new_order_settings', '[woocommerce_new_order_settings]subject', $order_id );
|
279 |
|
280 |
+
$this->woocommerce->mailer()->emails['WC_Email_New_Order']->recipient = $recipient;
|
281 |
|
282 |
+
$this->woocommerce->mailer()->emails['WC_Email_New_Order']->trigger($order_id);
|
283 |
}
|
284 |
+
$this->woocommerce->mailer()->emails['WC_Email_New_Order']->enabled = false;
|
285 |
$this->refresh_email_lang($order_id);
|
286 |
}
|
287 |
}
|
332 |
|
333 |
}
|
334 |
|
335 |
+
function change_email_language( $lang ) {
|
336 |
+
|
337 |
+
$this->sitepress->switch_lang( $lang, true );
|
338 |
$this->locale = $this->sitepress->get_locale( $lang );
|
339 |
+
unload_textdomain( 'woocommerce' );
|
340 |
unload_textdomain( 'default' );
|
341 |
global $wp_locale;
|
342 |
$wp_locale = new WP_Locale();
|
343 |
|
344 |
+
$this->woocommerce->load_plugin_textdomain();
|
345 |
load_default_textdomain( $this->locale );
|
346 |
}
|
347 |
|
inc/class-wcml-endpoints.php
CHANGED
@@ -318,24 +318,27 @@ class WCML_Endpoints{
|
|
318 |
return $translated_slug;
|
319 |
}
|
320 |
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
|
337 |
-
|
338 |
-
|
|
|
|
|
|
|
339 |
|
340 |
public function update_original_endpoints_strings(){
|
341 |
|
318 |
return $translated_slug;
|
319 |
}
|
320 |
|
321 |
+
function filter_get_endpoint_url( $url, $endpoint, $value, $permalink ) {
|
322 |
+
|
323 |
+
// return translated edit account slugs
|
324 |
+
remove_filter( 'woocommerce_get_endpoint_url', array( $this, 'filter_get_endpoint_url' ), 10, 4 );
|
325 |
+
if ( isset( WC()->query->query_vars['edit-address'] ) && WC()->query->query_vars['edit-address'] == $endpoint && in_array( $value, array(
|
326 |
+
'shipping',
|
327 |
+
'billing'
|
328 |
+
) )
|
329 |
+
) {
|
330 |
+
$url = wc_get_endpoint_url( 'edit-address', $this->get_translated_edit_address_slug( $value ) );
|
331 |
+
} elseif ( $endpoint === get_option( 'woocommerce_myaccount_lost_password_endpoint' ) ) {
|
332 |
+
$translated_lost_password_endpoint = apply_filters( 'wpml_translate_single_string', $endpoint, 'WooCommerce Endpoints', 'lost-password' );
|
333 |
+
|
334 |
+
$wc_account_page_url = wc_get_page_permalink( 'myaccount' );
|
335 |
+
$url = wc_get_endpoint_url( $translated_lost_password_endpoint, '', $wc_account_page_url );
|
336 |
|
337 |
+
}
|
338 |
+
add_filter( 'woocommerce_get_endpoint_url', array( $this, 'filter_get_endpoint_url' ), 10, 4 );
|
339 |
+
|
340 |
+
return $url;
|
341 |
+
}
|
342 |
|
343 |
public function update_original_endpoints_strings(){
|
344 |
|
inc/class-wcml-terms.php
CHANGED
@@ -6,48 +6,68 @@ class WCML_Terms{
|
|
6 |
private $NEW_TAXONOMY_TERMS = 1;
|
7 |
private $NEW_TAXONOMY_IGNORED = 2;
|
8 |
|
9 |
-
|
10 |
-
|
|
|
|
|
|
|
11 |
private $wpdb;
|
12 |
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
|
18 |
-
|
19 |
|
20 |
-
|
21 |
-
|
22 |
-
add_action('icl_save_term_translation', array($this,'save_wc_term_meta'), 100,4);
|
23 |
-
|
24 |
-
add_action('created_term', array($this, 'translated_terms_status_update'), 10,3);
|
25 |
-
add_action('edit_term', array($this, 'translated_terms_status_update'), 10,3);
|
26 |
-
add_action('wp_ajax_wcml_update_term_translated_warnings', array( $this, 'wcml_update_term_translated_warnings'));
|
27 |
|
28 |
-
|
29 |
|
30 |
-
|
31 |
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
}
|
39 |
-
|
40 |
-
add_action('delete_term',array($this, 'wcml_delete_term'),10,4);
|
41 |
-
add_filter('get_the_terms',array($this,'shipping_terms'),10,3);
|
42 |
-
//filter coupons terms in admin
|
43 |
-
add_filter('get_terms',array($this,'filter_coupons_terms'),10,3);
|
44 |
-
add_filter('get_terms',array($this,'filter_shipping_classes_terms'),10,3);
|
45 |
|
46 |
-
|
47 |
-
add_action( 'created_term_translation', array( $this, 'set_flag_to_sync'), 10, 3 );
|
48 |
|
49 |
-
|
50 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
|
52 |
function admin_menu_setup(){
|
53 |
global $pagenow;
|
@@ -537,6 +557,7 @@ class WCML_Terms{
|
|
537 |
global $wp_post_types, $wp_taxonomies;
|
538 |
|
539 |
$default_language = $this->sitepress->get_default_language();
|
|
|
540 |
|
541 |
$posts = $this->wpdb->get_results($this->wpdb->prepare( "SELECT * FROM {$this->wpdb->posts} AS p LEFT JOIN {$this->wpdb->prefix}icl_translations AS tr ON tr.element_id = p.ID WHERE p.post_status = 'publish' AND p.post_type = %s AND tr.source_language_code is NULL", $object_type ) );
|
542 |
|
@@ -574,11 +595,11 @@ class WCML_Terms{
|
|
574 |
$updated_terms = array();
|
575 |
foreach($current_terms as $cterm){
|
576 |
if($cterm->term_id != $term->term_id){
|
577 |
-
$updated_terms[] = $
|
578 |
}
|
579 |
if(!$preview){
|
580 |
|
581 |
-
if( $
|
582 |
$updated_terms = array_unique( array_map( 'intval', $updated_terms ) );
|
583 |
}
|
584 |
|
@@ -615,7 +636,7 @@ class WCML_Terms{
|
|
615 |
|
616 |
if(!$preview){
|
617 |
|
618 |
-
if( $
|
619 |
$terms_array = array_unique( array_map( 'intval', $terms_array ) );
|
620 |
}
|
621 |
|
@@ -918,11 +939,16 @@ class WCML_Terms{
|
|
918 |
|
919 |
$no_tax_to_trnls = false;
|
920 |
foreach ( $taxonomies as $taxonomy ){
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
|
|
|
|
|
|
|
|
|
|
926 |
}
|
927 |
|
928 |
return $no_tax_to_trnls;
|
@@ -987,4 +1013,12 @@ class WCML_Terms{
|
|
987 |
add_action( 'updated_term_meta', array( $this, 'update_product_count_term'), 10, 4 );
|
988 |
}
|
989 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
990 |
}
|
6 |
private $NEW_TAXONOMY_TERMS = 1;
|
7 |
private $NEW_TAXONOMY_IGNORED = 2;
|
8 |
|
9 |
+
/** @var woocommerce_wpml */
|
10 |
+
private $woocommerce_wpml;
|
11 |
+
/** @var SitePress */
|
12 |
+
private $sitepress;
|
13 |
+
/** @var wpdb */
|
14 |
private $wpdb;
|
15 |
|
16 |
+
/**
|
17 |
+
* WCML_Terms constructor.
|
18 |
+
*
|
19 |
+
* @param woocommerce_wpml $woocommerce_wpml
|
20 |
+
* @param SitePress $sitepress
|
21 |
+
* @param wpdb $wpdb
|
22 |
+
*/
|
23 |
+
function __construct( woocommerce_wpml $woocommerce_wpml, SitePress $sitepress, wpdb $wpdb ){
|
24 |
+
$this->woocommerce_wpml = $woocommerce_wpml;
|
25 |
+
$this->sitepress = $sitepress;
|
26 |
+
$this->wpdb = $wpdb;
|
27 |
+
}
|
28 |
|
29 |
+
public function add_hooks() {
|
30 |
|
31 |
+
add_action( 'updated_woocommerce_term_meta', array( $this, 'sync_term_order' ), 100, 4 );
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
|
33 |
+
add_filter( 'wp_get_object_terms', array( $this->sitepress, 'get_terms_filter' ) );
|
34 |
|
35 |
+
add_action( 'icl_save_term_translation', array( $this, 'save_wc_term_meta' ), 100, 4 );
|
36 |
|
37 |
+
add_action( 'created_term', array( $this, 'translated_terms_status_update' ), 10, 3 );
|
38 |
+
add_action( 'edit_term', array( $this, 'translated_terms_status_update' ), 10, 3 );
|
39 |
+
add_action( 'wp_ajax_wcml_update_term_translated_warnings', array(
|
40 |
+
$this,
|
41 |
+
'wcml_update_term_translated_warnings'
|
42 |
+
) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
|
44 |
+
add_action( 'created_term', array( $this, 'set_flag_for_variation_on_attribute_update' ), 10, 3 );
|
|
|
45 |
|
46 |
+
add_filter( 'wpml_taxonomy_translation_bottom', array( $this, 'sync_taxonomy_translations' ), 10, 3 );
|
47 |
+
|
48 |
+
add_action( 'wp_ajax_wcml_sync_product_variations', array( $this, 'wcml_sync_product_variations' ) );
|
49 |
+
add_action( 'wp_ajax_wcml_tt_sync_taxonomies_in_content', array( $this, 'wcml_sync_taxonomies_in_content' ) );
|
50 |
+
add_action( 'wp_ajax_wcml_tt_sync_taxonomies_in_content_preview', array(
|
51 |
+
$this,
|
52 |
+
'wcml_sync_taxonomies_in_content_preview'
|
53 |
+
) );
|
54 |
+
|
55 |
+
if ( is_admin() ) {
|
56 |
+
add_action( 'admin_menu', array( $this, 'admin_menu_setup' ) );
|
57 |
+
}
|
58 |
+
|
59 |
+
add_action( 'delete_term', array( $this, 'wcml_delete_term' ), 10, 4 );
|
60 |
+
add_filter( 'get_the_terms', array( $this, 'shipping_terms' ), 10, 3 );
|
61 |
+
//filter coupons terms in admin
|
62 |
+
add_filter( 'get_terms', array( $this, 'filter_coupons_terms' ), 10, 3 );
|
63 |
+
add_filter( 'get_terms', array( $this, 'filter_shipping_classes_terms' ), 10, 3 );
|
64 |
+
|
65 |
+
add_filter( 'woocommerce_get_product_terms', array( $this, 'get_product_terms_filter' ), 10, 4 );
|
66 |
+
add_action( 'created_term_translation', array( $this, 'set_flag_to_sync' ), 10, 3 );
|
67 |
+
|
68 |
+
add_action( 'updated_term_meta', array( $this, 'update_product_count_term' ), 10, 4 );
|
69 |
+
|
70 |
+
}
|
71 |
|
72 |
function admin_menu_setup(){
|
73 |
global $pagenow;
|
557 |
global $wp_post_types, $wp_taxonomies;
|
558 |
|
559 |
$default_language = $this->sitepress->get_default_language();
|
560 |
+
$is_taxonomy_translatable = $this->is_translatable_wc_taxonomy( $taxonomy );
|
561 |
|
562 |
$posts = $this->wpdb->get_results($this->wpdb->prepare( "SELECT * FROM {$this->wpdb->posts} AS p LEFT JOIN {$this->wpdb->prefix}icl_translations AS tr ON tr.element_id = p.ID WHERE p.post_status = 'publish' AND p.post_type = %s AND tr.source_language_code is NULL", $object_type ) );
|
563 |
|
595 |
$updated_terms = array();
|
596 |
foreach($current_terms as $cterm){
|
597 |
if($cterm->term_id != $term->term_id){
|
598 |
+
$updated_terms[] = $is_taxonomy_translatable ? $term->term_id : $term->name;
|
599 |
}
|
600 |
if(!$preview){
|
601 |
|
602 |
+
if( $is_taxonomy_translatable && !is_taxonomy_hierarchical($taxonomy)){
|
603 |
$updated_terms = array_unique( array_map( 'intval', $updated_terms ) );
|
604 |
}
|
605 |
|
636 |
|
637 |
if(!$preview){
|
638 |
|
639 |
+
if( $is_taxonomy_translatable && !is_taxonomy_hierarchical($taxonomy)){
|
640 |
$terms_array = array_unique( array_map( 'intval', $terms_array ) );
|
641 |
}
|
642 |
|
939 |
|
940 |
$no_tax_to_trnls = false;
|
941 |
foreach ( $taxonomies as $taxonomy ){
|
942 |
+
|
943 |
+
$is_fully_translated = 0 === $this->get_untranslated_terms_number( $taxonomy );
|
944 |
+
if (
|
945 |
+
! $this->is_translatable_wc_taxonomy( $taxonomy ) ||
|
946 |
+
$is_fully_translated
|
947 |
+
) {
|
948 |
+
continue;
|
949 |
+
} else {
|
950 |
+
$no_tax_to_trnls = true;
|
951 |
+
}
|
952 |
}
|
953 |
|
954 |
return $no_tax_to_trnls;
|
1013 |
add_action( 'updated_term_meta', array( $this, 'update_product_count_term'), 10, 4 );
|
1014 |
}
|
1015 |
|
1016 |
+
public function is_translatable_wc_taxonomy( $taxonomy ) {
|
1017 |
+
if ( in_array( $taxonomy, array( 'product_type', 'product_visibility' ), true ) ) {
|
1018 |
+
return false;
|
1019 |
+
}
|
1020 |
+
|
1021 |
+
return true;
|
1022 |
+
}
|
1023 |
+
|
1024 |
}
|
inc/class-wcml-upgrade.php
CHANGED
@@ -19,7 +19,8 @@ class WCML_Upgrade{
|
|
19 |
'3.9.1',
|
20 |
'4.0',
|
21 |
'4.1.0',
|
22 |
-
'4.2.0'
|
|
|
23 |
);
|
24 |
|
25 |
function __construct(){
|
@@ -42,10 +43,10 @@ class WCML_Upgrade{
|
|
42 |
$wcml_settings['notifications'][$n] =
|
43 |
array(
|
44 |
'show' => 1,
|
45 |
-
'text' => __('Looks like you are upgrading from a previous version of WooCommerce Multilingual. Would you like to automatically create translated variations and images?', '
|
46 |
'<br /><strong>' .
|
47 |
-
' <a href="' . admin_url('admin.php?page=wpml-wcml&tab=troubleshooting') . '">' . __('Yes, go to the troubleshooting page', '
|
48 |
-
' <a href="#" onclick="jQuery.ajax({type:\'POST\',url: ajaxurl,data:\'action=wcml_hide_notice¬ice='.$n.'\',success:function(){jQuery(\'#' . $n . '\').fadeOut()}});return false;">' . __('No - dismiss', '
|
49 |
'</strong>'
|
50 |
);
|
51 |
update_option('_wcml_settings', $wcml_settings);
|
@@ -601,7 +602,19 @@ class WCML_Upgrade{
|
|
601 |
$wcml_settings[ 'dismiss_cart_warning' ] = 0;
|
602 |
|
603 |
update_option( '_wcml_settings', $wcml_settings );
|
604 |
-
|
605 |
}
|
606 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
607 |
}
|
19 |
'3.9.1',
|
20 |
'4.0',
|
21 |
'4.1.0',
|
22 |
+
'4.2.0',
|
23 |
+
'4.2.2'
|
24 |
);
|
25 |
|
26 |
function __construct(){
|
43 |
$wcml_settings['notifications'][$n] =
|
44 |
array(
|
45 |
'show' => 1,
|
46 |
+
'text' => __( 'Looks like you are upgrading from a previous version of WooCommerce Multilingual. Would you like to automatically create translated variations and images?', 'woocommerce-multilingual' ).
|
47 |
'<br /><strong>' .
|
48 |
+
' <a href="' . admin_url('admin.php?page=wpml-wcml&tab=troubleshooting') . '">' . __( 'Yes, go to the troubleshooting page', 'woocommerce-multilingual' ) . '</a> |' .
|
49 |
+
' <a href="#" onclick="jQuery.ajax({type:\'POST\',url: ajaxurl,data:\'action=wcml_hide_notice¬ice='.$n.'\',success:function(){jQuery(\'#' . $n . '\').fadeOut()}});return false;">' . __( 'No - dismiss', 'woocommerce-multilingual' ) . '</a>' .
|
50 |
'</strong>'
|
51 |
);
|
52 |
update_option('_wcml_settings', $wcml_settings);
|
602 |
$wcml_settings[ 'dismiss_cart_warning' ] = 0;
|
603 |
|
604 |
update_option( '_wcml_settings', $wcml_settings );
|
|
|
605 |
}
|
606 |
+
|
607 |
+
private function upgrade_4_2_2(){
|
608 |
+
|
609 |
+
// #wcml-2128
|
610 |
+
$user = new WP_User( 'admin' );
|
611 |
+
if( $user->exists() && ! is_super_admin( $user->ID ) ) {
|
612 |
+
$user->remove_cap( 'wpml_manage_woocommerce_multilingual' );
|
613 |
+
if( ! in_array( 'shop_manager', $user->roles, true ) ){
|
614 |
+
$user->remove_cap( 'wpml_operate_woocommerce_multilingual' );
|
615 |
+
}
|
616 |
+
}
|
617 |
+
|
618 |
+
}
|
619 |
+
|
620 |
}
|
inc/class-wcml-url-translation.php
CHANGED
@@ -2,13 +2,32 @@
|
|
2 |
|
3 |
class WCML_Url_Translation {
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
public $default_product_base;
|
6 |
public $default_product_category_base;
|
7 |
public $default_product_category_gettext_base;
|
8 |
public $default_product_tag_base;
|
9 |
public $default_product_tag_gettext_base;
|
10 |
|
11 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
$this->default_product_base = 'product';
|
13 |
$this->default_product_category_base = 'product-category';
|
14 |
$this->default_product_tag_base = 'product-tag';
|
@@ -17,7 +36,6 @@ class WCML_Url_Translation {
|
|
17 |
}
|
18 |
|
19 |
function set_up() {
|
20 |
-
global $woocommerce_wpml;
|
21 |
|
22 |
$this->wc_permalinks = get_option( 'woocommerce_permalinks' );
|
23 |
|
@@ -48,7 +66,9 @@ class WCML_Url_Translation {
|
|
48 |
add_filter( 'query_vars', array( $this, 'translate_query_var_for_product' ) );
|
49 |
add_filter( 'wp_redirect', array( $this, 'encode_shop_slug' ), 10, 2 );
|
50 |
|
51 |
-
|
|
|
|
|
52 |
|
53 |
$this->clean_up_product_and_taxonomy_bases();
|
54 |
|
@@ -57,24 +77,23 @@ class WCML_Url_Translation {
|
|
57 |
|
58 |
$this->register_product_and_taxonomy_bases();
|
59 |
|
60 |
-
$woocommerce_wpml->settings['url_translation_set_up'] = 1;
|
61 |
-
$woocommerce_wpml->update_settings();
|
62 |
}
|
63 |
|
64 |
}
|
65 |
|
66 |
function clean_up_product_and_taxonomy_bases() {
|
67 |
-
global $wpdb;
|
68 |
|
69 |
$base = $this->get_woocommerce_product_base();
|
70 |
|
71 |
//delete other old product bases
|
72 |
-
$wpdb->query( "DELETE FROM {$wpdb->prefix}icl_strings WHERE context = 'WordPress' AND value != '" . trim( $base, '/' ) . "' AND name LIKE 'URL slug:%' " );
|
73 |
|
74 |
//update name for current base
|
75 |
|
76 |
-
$wpdb->update(
|
77 |
-
$wpdb->prefix . 'icl_strings',
|
78 |
array(
|
79 |
'context' => 'WordPress',
|
80 |
'name' => 'URL slug: product'
|
@@ -106,7 +125,7 @@ class WCML_Url_Translation {
|
|
106 |
}
|
107 |
|
108 |
if ( $taxonomy ) {
|
109 |
-
$wpdb->query( "DELETE FROM {$wpdb->prefix}icl_strings WHERE context LIKE '" . sprintf( 'URL %s slugs - ', $taxonomy ) . "%'" );
|
110 |
}
|
111 |
|
112 |
}
|
@@ -165,12 +184,11 @@ class WCML_Url_Translation {
|
|
165 |
} else {
|
166 |
|
167 |
// force_product_slug_translation_on
|
168 |
-
|
169 |
-
$iclsettings = $sitepress->get_settings();
|
170 |
if ( empty( $iclsettings['posts_slug_translation']['on'] ) || empty( $iclsettings['posts_slug_translation']['types']['product'] ) ) {
|
171 |
$iclsettings['posts_slug_translation']['on'] = 1;
|
172 |
$iclsettings['posts_slug_translation']['types']['product'] = 1;
|
173 |
-
$sitepress->save_settings( $iclsettings );
|
174 |
}
|
175 |
|
176 |
$string = icl_get_string_id( $slug, $this->url_strings_context(), $this->url_string_name( 'product' ) );
|
@@ -195,7 +213,6 @@ class WCML_Url_Translation {
|
|
195 |
}
|
196 |
|
197 |
function register_product_and_taxonomy_bases( $value = false, $old_value = false ) {
|
198 |
-
global $woocommerce_wpml;
|
199 |
|
200 |
if ( empty( $value ) ) {
|
201 |
$permalink_options = $this->wc_permalinks;
|
@@ -207,14 +224,14 @@ class WCML_Url_Translation {
|
|
207 |
$product_base = ! empty( $permalink_options['product_base'] ) ? trim( $permalink_options['product_base'], '/' ) : $this->default_product_base;
|
208 |
$name = $this->url_string_name( 'product' );
|
209 |
|
210 |
-
$string_language = $woocommerce_wpml->strings->get_string_language( $product_base, $this->url_strings_context(), $name );
|
211 |
if ( is_null( $string_language ) ) {
|
212 |
$string_language = '';
|
213 |
}
|
214 |
do_action( 'wpml_register_single_string', $this->url_strings_context(), $name, $product_base, false, $string_language );
|
215 |
|
216 |
if ( isset( $_POST['product_base_language'] ) ) {
|
217 |
-
$woocommerce_wpml->strings->set_string_language( $product_base, $this->url_strings_context(), $name, $_POST['product_base_language'] );
|
218 |
}
|
219 |
|
220 |
if ( $product_base == $this->default_product_base ) {
|
@@ -225,14 +242,14 @@ class WCML_Url_Translation {
|
|
225 |
$category_base = ! empty( $permalink_options['category_base'] ) ? $permalink_options['category_base'] : $this->default_product_category_base;
|
226 |
$name = $this->url_string_name( 'product_cat' );
|
227 |
|
228 |
-
$string_language = $woocommerce_wpml->strings->get_string_language( $category_base, $this->url_strings_context(), $name );
|
229 |
if ( is_null( $string_language ) ) {
|
230 |
$string_language = '';
|
231 |
}
|
232 |
do_action( 'wpml_register_single_string', $this->url_strings_context(), $name, $category_base, false, $string_language );
|
233 |
|
234 |
if ( isset( $_POST['category_base_language'] ) ) {
|
235 |
-
$woocommerce_wpml->strings->set_string_language( $category_base, $this->url_strings_context(), $name, $_POST['category_base_language'] );
|
236 |
}
|
237 |
|
238 |
if ( $category_base == $this->default_product_category_base ) {
|
@@ -243,14 +260,14 @@ class WCML_Url_Translation {
|
|
243 |
$tag_base = ! empty( $permalink_options['tag_base'] ) ? $permalink_options['tag_base'] : $this->default_product_tag_base;
|
244 |
$name = $this->url_string_name( 'product_tag' );
|
245 |
|
246 |
-
$string_language = $woocommerce_wpml->strings->get_string_language( $tag_base, $this->url_strings_context(), $name );
|
247 |
if ( is_null( $string_language ) ) {
|
248 |
$string_language = '';
|
249 |
}
|
250 |
do_action( 'wpml_register_single_string', $this->url_strings_context(), $name, $tag_base, false, $string_language );
|
251 |
|
252 |
if ( isset( $_POST['tag_base_language'] ) ) {
|
253 |
-
$woocommerce_wpml->strings->set_string_language( $tag_base, $this->url_strings_context(), $name, $_POST['tag_base_language'] );
|
254 |
}
|
255 |
|
256 |
if ( $tag_base == $this->default_product_tag_base ) {
|
@@ -261,14 +278,14 @@ class WCML_Url_Translation {
|
|
261 |
if ( isset( $permalink_options['attribute_base'] ) && $permalink_options['attribute_base'] ) {
|
262 |
$attr_base = trim( $permalink_options['attribute_base'], '/' );
|
263 |
|
264 |
-
$string_language = $woocommerce_wpml->strings->get_string_language( $attr_base, $this->url_strings_context(), $name );
|
265 |
if ( is_null( $string_language ) ) {
|
266 |
$string_language = '';
|
267 |
}
|
268 |
do_action( 'wpml_register_single_string', $this->url_strings_context(), $this->url_string_name( 'attribute' ), $attr_base, false, $string_language );
|
269 |
|
270 |
if ( isset( $_POST['attribute_base_language'] ) ) {
|
271 |
-
$woocommerce_wpml->strings->set_string_language( $attr_base, $this->url_strings_context(), $this->url_string_name( 'attribute' ), $_POST['attribute_base_language'] );
|
272 |
}
|
273 |
}
|
274 |
|
@@ -301,20 +318,19 @@ class WCML_Url_Translation {
|
|
301 |
}
|
302 |
|
303 |
function add_default_slug_translations( $slug, $name ) {
|
304 |
-
global $woocommerce_wpml, $sitepress, $wpdb;
|
305 |
|
306 |
$string_id = icl_get_string_id( $slug, $this->url_strings_context(), $name );
|
307 |
-
$string_language = $woocommerce_wpml->strings->get_string_language( $slug, $this->url_strings_context(), $name );
|
308 |
|
309 |
// will use a filter in the future wpmlst-529
|
310 |
-
$string_object = new WPML_ST_String( $string_id, $wpdb );
|
311 |
$string_translation_statuses = $string_object->get_translation_statuses();
|
312 |
|
313 |
foreach ( $string_translation_statuses as $s ) {
|
314 |
$string_translations[ $s->language ] = $s->status;
|
315 |
}
|
316 |
|
317 |
-
$languages = $sitepress->get_active_languages();
|
318 |
|
319 |
foreach ( $languages as $language => $language_info ) {
|
320 |
|
@@ -323,7 +339,7 @@ class WCML_Url_Translation {
|
|
323 |
// check if there's an existing translation
|
324 |
if ( ! isset( $string_translations[ $language ] ) ) {
|
325 |
|
326 |
-
$slug_translation = $woocommerce_wpml->strings->get_translation_from_woocommerce_mo_file( $slug, $language, false );
|
327 |
|
328 |
if ( $slug_translation ) {
|
329 |
// add string translation
|
@@ -338,12 +354,11 @@ class WCML_Url_Translation {
|
|
338 |
}
|
339 |
|
340 |
function force_bases_in_strings_languages( $value ) {
|
341 |
-
global $sitepress, $woocommerce_wpml;
|
342 |
|
343 |
-
if ( $value && $sitepress->get_current_language() != 'en' ) {
|
344 |
|
345 |
remove_filter( 'gettext_with_context', array(
|
346 |
-
$woocommerce_wpml->strings,
|
347 |
'category_base_in_strings_language'
|
348 |
), 99, 3 );
|
349 |
$taxonomies = array(
|
@@ -369,7 +384,7 @@ class WCML_Url_Translation {
|
|
369 |
),
|
370 |
);
|
371 |
add_filter( 'gettext_with_context', array(
|
372 |
-
$woocommerce_wpml->strings,
|
373 |
'category_base_in_strings_language'
|
374 |
), 99, 3 );
|
375 |
foreach ( $taxonomies as $taxonomy => $taxonomy_details ) {
|
@@ -394,127 +409,190 @@ class WCML_Url_Translation {
|
|
394 |
|
395 |
}
|
396 |
|
|
|
|
|
|
|
|
|
|
|
397 |
function translate_bases_in_rewrite_rules( $value ) {
|
398 |
-
global $sitepress, $woocommerce_wpml;
|
399 |
|
400 |
if ( ! empty( $value ) ) {
|
|
|
|
|
|
|
|
|
401 |
|
402 |
-
|
|
|
403 |
|
404 |
-
|
405 |
-
|
|
|
|
|
|
|
|
|
|
|
406 |
|
407 |
-
|
408 |
-
|
409 |
-
continue;
|
410 |
-
}
|
411 |
|
412 |
-
|
|
|
|
|
|
|
413 |
|
414 |
-
|
415 |
-
$slug_translation_match = ltrim( $slug_details['translated_slug'], '/' );
|
416 |
|
417 |
-
|
|
|
418 |
|
419 |
-
|
420 |
|
421 |
-
|
422 |
-
$k = preg_replace( '#^([^/]*)(/?)' . $slug_match . '/#', '$1$2' . $slug_translation_match . '/', $k );
|
423 |
-
}
|
424 |
|
425 |
-
|
|
|
426 |
}
|
427 |
-
$value = $buff_value;
|
428 |
-
unset( $buff_value );
|
429 |
-
}
|
430 |
|
|
|
|
|
|
|
|
|
431 |
}
|
432 |
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
438 |
}
|
439 |
|
440 |
-
|
441 |
-
$
|
442 |
|
443 |
-
if (
|
444 |
-
$exp = explode( '/', trim( $taxonomy_obj->rewrite['slug'], '/' ) );
|
445 |
-
$slug = join( '/', array_slice( $exp, 0, count( $exp ) - 1 ) );
|
446 |
|
447 |
-
$
|
448 |
-
}
|
449 |
|
450 |
-
|
451 |
-
$string_language = $woocommerce_wpml->strings->get_string_language( $slug, $this->url_strings_context(), $this->url_string_name( 'attribute' ) );
|
452 |
|
453 |
-
if ( $
|
454 |
|
455 |
-
$
|
456 |
-
|
457 |
|
458 |
-
|
|
|
|
|
459 |
|
460 |
-
|
461 |
-
$slug_translation_match = ltrim( $slug_translation, '/' );
|
462 |
|
463 |
-
|
464 |
-
foreach ( (array) $value as $k => $v ) {
|
465 |
-
if ( $slug != $slug_translation && preg_match( '#^' . $slug_match . '/(.*)#', $k ) ) {
|
466 |
-
$k = preg_replace( '#^' . $slug_match . '/(' . $attribute_slug . ')/(.*)#', $slug_translation_match . '/' . $attribute_slug_translation . '/$2', $k );
|
467 |
-
}
|
468 |
-
$buff_value[ $k ] = $v;
|
469 |
-
}
|
470 |
|
471 |
-
|
472 |
-
|
|
|
473 |
|
474 |
-
|
475 |
|
476 |
}
|
477 |
-
}
|
478 |
|
|
|
479 |
}
|
480 |
|
|
|
481 |
|
482 |
-
|
483 |
-
$current_shop_id = wc_get_page_id( 'shop' );
|
484 |
-
$default_shop_id = apply_filters( 'translate_object_id', $current_shop_id, 'page', true, $sitepress->get_default_language() );
|
485 |
|
486 |
-
|
487 |
-
|
488 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
489 |
|
490 |
-
|
491 |
-
|
|
|
492 |
|
493 |
-
|
494 |
-
|
495 |
-
foreach ( (array) $value as $k => $v ) {
|
496 |
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
) {
|
501 |
|
502 |
-
|
503 |
-
|
|
|
|
|
504 |
|
505 |
-
$
|
506 |
}
|
507 |
|
508 |
-
$
|
509 |
-
unset( $buff_value );
|
510 |
}
|
|
|
|
|
|
|
511 |
}
|
512 |
|
513 |
return $value;
|
514 |
}
|
515 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
516 |
function translate_taxonomy_base( $termlink, $term, $taxonomy ) {
|
517 |
-
global $wp_rewrite, $wpml_term_translations
|
518 |
static $no_recursion_flag;
|
519 |
|
520 |
// handles product categories, product tags and attributes
|
@@ -536,7 +614,7 @@ class WCML_Url_Translation {
|
|
536 |
if ( ! is_null( $wpml_term_translations ) ) {
|
537 |
$term_language = $term->term_id ? $wpml_term_translations->get_element_lang_code( $term->term_taxonomy_id ) : false;
|
538 |
} else {
|
539 |
-
$term_language = $term->term_id ? $sitepress->get_language_for_element( $term->term_taxonomy_id, 'tax_' . $taxonomy ) : false;
|
540 |
}
|
541 |
|
542 |
if ( $term_language ) {
|
@@ -546,37 +624,43 @@ class WCML_Url_Translation {
|
|
546 |
$base = $slug_details['slug'];
|
547 |
$base_translated = $slug_details['translated_slug'];
|
548 |
|
549 |
-
if (
|
550 |
|
551 |
$buff = $wp_rewrite->extra_permastructs[ $taxonomy ]['struct'];
|
552 |
|
553 |
-
|
554 |
-
|
|
|
|
|
555 |
|
556 |
// translate the attribute slug
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
$
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
if
|
570 |
$wp_rewrite->extra_permastructs[ $taxonomy ]['struct'] = preg_replace(
|
571 |
'#^' . $base_translated . '/([^/]+)/(.+)$#',
|
572 |
$base_translated . '/' . $attribute_slug_translation . '/$2',
|
573 |
$wp_rewrite->extra_permastructs[ $taxonomy ]['struct']
|
574 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
575 |
}
|
576 |
-
|
577 |
}
|
578 |
|
579 |
-
|
580 |
$no_recursion_flag = true;
|
581 |
$termlink = get_term_link( $term, $taxonomy );
|
582 |
|
@@ -597,7 +681,6 @@ class WCML_Url_Translation {
|
|
597 |
}
|
598 |
|
599 |
function get_translated_tax_slug( $taxonomy, $language = false ) {
|
600 |
-
global $sitepress, $woocommerce_wpml;
|
601 |
|
602 |
switch ( $taxonomy ) {
|
603 |
case 'product_tag':
|
@@ -608,7 +691,7 @@ class WCML_Url_Translation {
|
|
608 |
$slug = 'product-tag';
|
609 |
}
|
610 |
|
611 |
-
$string_language = $woocommerce_wpml->strings->get_string_language( $slug, $this->url_strings_context(), $this->url_string_name( $taxonomy ) );
|
612 |
|
613 |
break;
|
614 |
|
@@ -620,14 +703,14 @@ class WCML_Url_Translation {
|
|
620 |
$slug = 'product-category';
|
621 |
}
|
622 |
|
623 |
-
$string_language = $woocommerce_wpml->strings->get_string_language( $slug, $this->url_strings_context(), $this->url_string_name( $taxonomy ) );
|
624 |
|
625 |
break;
|
626 |
|
627 |
default:
|
628 |
$slug = trim( $this->wc_permalinks['attribute_base'], '/' );
|
629 |
|
630 |
-
$string_language = $woocommerce_wpml->strings->get_string_language( $slug, $this->url_strings_context(), $this->url_string_name( 'attribute' ) );
|
631 |
|
632 |
$taxonomy = 'attribute';
|
633 |
|
@@ -635,7 +718,7 @@ class WCML_Url_Translation {
|
|
635 |
}
|
636 |
|
637 |
if ( ! $language ) {
|
638 |
-
$language = $sitepress->get_current_language();
|
639 |
}
|
640 |
|
641 |
if ( $slug && $language != 'all' && $language != $string_language ) {
|
@@ -656,7 +739,6 @@ class WCML_Url_Translation {
|
|
656 |
}
|
657 |
|
658 |
function get_base_translation( $base, $language ) {
|
659 |
-
global $woocommerce_wpml;
|
660 |
|
661 |
// case of attribute slugs
|
662 |
if ( strpos( $base, 'attribute_slug-' ) === 0 ) {
|
@@ -719,14 +801,13 @@ class WCML_Url_Translation {
|
|
719 |
}
|
720 |
|
721 |
function get_source_slug_language( $base ) {
|
722 |
-
global $sitepress, $woocommerce_wpml;
|
723 |
|
724 |
if ( $base == 'shop' ) {
|
725 |
-
$source_language = $sitepress->get_language_for_element( get_option( 'woocommerce_shop_page_id' ), 'post_page' );
|
726 |
} elseif ( in_array( $base, array( 'product', 'product_cat', 'product_tag', 'attribute' ) ) ) {
|
727 |
-
$source_language = $woocommerce_wpml->strings->get_string_language( $base, $this->url_strings_context(), $this->url_string_name( $base ) );
|
728 |
} else {
|
729 |
-
$source_language = $woocommerce_wpml->strings->get_string_language( $base, 'WooCommerce Endpoints', $base );
|
730 |
}
|
731 |
|
732 |
return $source_language;
|
@@ -739,8 +820,6 @@ class WCML_Url_Translation {
|
|
739 |
die( 'Invalid nonce' );
|
740 |
}
|
741 |
|
742 |
-
global $wpdb, $woocommerce_wpml, $sitepress;
|
743 |
-
|
744 |
$original_base = $_POST['base'];
|
745 |
$original_base_value = $_POST['base_value'];
|
746 |
$base_translation = $_POST['base_translation'];
|
@@ -754,7 +833,7 @@ class WCML_Url_Translation {
|
|
754 |
|
755 |
$trnsl_shop_obj = get_post( $translated_shop_id );
|
756 |
$new_slug = wp_unique_post_slug( sanitize_title( $_POST['base_translation'] ), $translated_shop_id, $trnsl_shop_obj->post_status, $trnsl_shop_obj->post_type, $trnsl_shop_obj->post_parent );
|
757 |
-
$wpdb->update( $wpdb->posts, array( 'post_name' => $new_slug ), array( 'ID' => $translated_shop_id ) );
|
758 |
|
759 |
}
|
760 |
|
@@ -770,15 +849,15 @@ class WCML_Url_Translation {
|
|
770 |
if ( ! $string_id && function_exists( 'icl_register_string' ) ) {
|
771 |
$string_id = icl_register_string( 'WooCommerce Endpoints', $original_base, $original_base_value );
|
772 |
}
|
773 |
-
$woocommerce_wpml->endpoints->add_endpoints();
|
774 |
-
$woocommerce_wpml->endpoints->flush_rules_for_endpoints_translations();
|
775 |
}
|
776 |
|
777 |
icl_add_string_translation( $string_id, $language, $base_translation, ICL_STRING_TRANSLATION_COMPLETE );
|
778 |
|
779 |
}
|
780 |
|
781 |
-
$edit_base = new WCML_Store_URLs_Edit_Base_UI( $original_base, $language, $woocommerce_wpml, $sitepress );
|
782 |
$html = $edit_base->get_view();
|
783 |
|
784 |
echo json_encode( $html );
|
@@ -808,12 +887,11 @@ class WCML_Url_Translation {
|
|
808 |
}
|
809 |
|
810 |
public function translate_query_var_for_product( $public_query_vars ) {
|
811 |
-
global $woocommerce_wpml, $sitepress;
|
812 |
|
813 |
-
$product_permalink = $woocommerce_wpml->strings->product_permalink_slug();
|
814 |
-
$string_language = $woocommerce_wpml->strings->get_string_language( $product_permalink, $this->url_strings_context(), $this->url_string_name( 'product' ) );
|
815 |
|
816 |
-
if ( $sitepress->get_current_language() != $string_language ) {
|
817 |
$translated_slug = $this->get_translated_product_base_by_lang( false, $product_permalink );
|
818 |
|
819 |
if ( isset( $_GET[ $translated_slug ] ) ) {
|
@@ -828,16 +906,13 @@ class WCML_Url_Translation {
|
|
828 |
}
|
829 |
|
830 |
public function get_translated_product_base_by_lang( $language = false, $product_slug = false ) {
|
831 |
-
global $woocommerce_wpml;
|
832 |
|
833 |
if ( ! $language ) {
|
834 |
-
|
835 |
-
$language = $sitepress->get_current_language();
|
836 |
-
|
837 |
}
|
838 |
|
839 |
if ( ! $product_slug ) {
|
840 |
-
$product_slug = $woocommerce_wpml->strings->product_permalink_slug();
|
841 |
}
|
842 |
|
843 |
if ( version_compare( WPML_ST_VERSION, '2.3', '>=' ) ) {
|
@@ -853,8 +928,7 @@ class WCML_Url_Translation {
|
|
853 |
|
854 |
public function encode_shop_slug( $location, $status ) {
|
855 |
if ( get_post_type( get_query_var( 'p' ) ) == 'product' ) {
|
856 |
-
|
857 |
-
$language = $sitepress->get_language_for_element( get_query_var( 'p' ), 'post_product' );
|
858 |
$base_slug = $this->get_translated_product_base_by_lang( $language );
|
859 |
|
860 |
$location = str_replace( $base_slug, urlencode( $base_slug ), $location );
|
@@ -862,4 +936,28 @@ class WCML_Url_Translation {
|
|
862 |
|
863 |
return $location;
|
864 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
865 |
}
|
2 |
|
3 |
class WCML_Url_Translation {
|
4 |
|
5 |
+
/** @var woocommerce_wpml */
|
6 |
+
private $woocommerce_wpml;
|
7 |
+
/** @var Sitepress */
|
8 |
+
private $sitepress;
|
9 |
+
/** @var wpdb */
|
10 |
+
private $wpdb;
|
11 |
+
|
12 |
public $default_product_base;
|
13 |
public $default_product_category_base;
|
14 |
public $default_product_category_gettext_base;
|
15 |
public $default_product_tag_base;
|
16 |
public $default_product_tag_gettext_base;
|
17 |
|
18 |
+
/**
|
19 |
+
* WCML_Url_Translation constructor.
|
20 |
+
*
|
21 |
+
* @param woocommerce_wpml $woocommerce_wpml
|
22 |
+
* @param SitePress $sitepress
|
23 |
+
* @param wpdb $wpdb
|
24 |
+
*/
|
25 |
+
public function __construct( woocommerce_wpml $woocommerce_wpml, SitePress $sitepress, wpdb $wpdb )
|
26 |
+
{
|
27 |
+
$this->woocommerce_wpml = $woocommerce_wpml;
|
28 |
+
$this->sitepress = $sitepress;
|
29 |
+
$this->wpdb = $wpdb;
|
30 |
+
|
31 |
$this->default_product_base = 'product';
|
32 |
$this->default_product_category_base = 'product-category';
|
33 |
$this->default_product_tag_base = 'product-tag';
|
36 |
}
|
37 |
|
38 |
function set_up() {
|
|
|
39 |
|
40 |
$this->wc_permalinks = get_option( 'woocommerce_permalinks' );
|
41 |
|
66 |
add_filter( 'query_vars', array( $this, 'translate_query_var_for_product' ) );
|
67 |
add_filter( 'wp_redirect', array( $this, 'encode_shop_slug' ), 10, 2 );
|
68 |
|
69 |
+
add_filter( 'post_type_link', array( $this, 'translate_product_post_type_link' ), 10, 2 );
|
70 |
+
|
71 |
+
if ( empty( $this->woocommerce_wpml->settings['url_translation_set_up'] ) ) {
|
72 |
|
73 |
$this->clean_up_product_and_taxonomy_bases();
|
74 |
|
77 |
|
78 |
$this->register_product_and_taxonomy_bases();
|
79 |
|
80 |
+
$this->woocommerce_wpml->settings['url_translation_set_up'] = 1;
|
81 |
+
$this->woocommerce_wpml->update_settings();
|
82 |
}
|
83 |
|
84 |
}
|
85 |
|
86 |
function clean_up_product_and_taxonomy_bases() {
|
|
|
87 |
|
88 |
$base = $this->get_woocommerce_product_base();
|
89 |
|
90 |
//delete other old product bases
|
91 |
+
$this->wpdb->query( "DELETE FROM {$this->wpdb->prefix}icl_strings WHERE context = 'WordPress' AND value != '" . trim( $base, '/' ) . "' AND name LIKE 'URL slug:%' " );
|
92 |
|
93 |
//update name for current base
|
94 |
|
95 |
+
$this->wpdb->update(
|
96 |
+
$this->wpdb->prefix . 'icl_strings',
|
97 |
array(
|
98 |
'context' => 'WordPress',
|
99 |
'name' => 'URL slug: product'
|
125 |
}
|
126 |
|
127 |
if ( $taxonomy ) {
|
128 |
+
$this->wpdb->query( "DELETE FROM {$this->wpdb->prefix}icl_strings WHERE context LIKE '" . sprintf( 'URL %s slugs - ', $taxonomy ) . "%'" );
|
129 |
}
|
130 |
|
131 |
}
|
184 |
} else {
|
185 |
|
186 |
// force_product_slug_translation_on
|
187 |
+
$iclsettings = $this->sitepress->get_settings();
|
|
|
188 |
if ( empty( $iclsettings['posts_slug_translation']['on'] ) || empty( $iclsettings['posts_slug_translation']['types']['product'] ) ) {
|
189 |
$iclsettings['posts_slug_translation']['on'] = 1;
|
190 |
$iclsettings['posts_slug_translation']['types']['product'] = 1;
|
191 |
+
$this->sitepress->save_settings( $iclsettings );
|
192 |
}
|
193 |
|
194 |
$string = icl_get_string_id( $slug, $this->url_strings_context(), $this->url_string_name( 'product' ) );
|
213 |
}
|
214 |
|
215 |
function register_product_and_taxonomy_bases( $value = false, $old_value = false ) {
|
|
|
216 |
|
217 |
if ( empty( $value ) ) {
|
218 |
$permalink_options = $this->wc_permalinks;
|
224 |
$product_base = ! empty( $permalink_options['product_base'] ) ? trim( $permalink_options['product_base'], '/' ) : $this->default_product_base;
|
225 |
$name = $this->url_string_name( 'product' );
|
226 |
|
227 |
+
$string_language = $this->woocommerce_wpml->strings->get_string_language( $product_base, $this->url_strings_context(), $name );
|
228 |
if ( is_null( $string_language ) ) {
|
229 |
$string_language = '';
|
230 |
}
|
231 |
do_action( 'wpml_register_single_string', $this->url_strings_context(), $name, $product_base, false, $string_language );
|
232 |
|
233 |
if ( isset( $_POST['product_base_language'] ) ) {
|
234 |
+
$this->woocommerce_wpml->strings->set_string_language( $product_base, $this->url_strings_context(), $name, $_POST['product_base_language'] );
|
235 |
}
|
236 |
|
237 |
if ( $product_base == $this->default_product_base ) {
|
242 |
$category_base = ! empty( $permalink_options['category_base'] ) ? $permalink_options['category_base'] : $this->default_product_category_base;
|
243 |
$name = $this->url_string_name( 'product_cat' );
|
244 |
|
245 |
+
$string_language = $this->woocommerce_wpml->strings->get_string_language( $category_base, $this->url_strings_context(), $name );
|
246 |
if ( is_null( $string_language ) ) {
|
247 |
$string_language = '';
|
248 |
}
|
249 |
do_action( 'wpml_register_single_string', $this->url_strings_context(), $name, $category_base, false, $string_language );
|
250 |
|
251 |
if ( isset( $_POST['category_base_language'] ) ) {
|
252 |
+
$this->woocommerce_wpml->strings->set_string_language( $category_base, $this->url_strings_context(), $name, $_POST['category_base_language'] );
|
253 |
}
|
254 |
|
255 |
if ( $category_base == $this->default_product_category_base ) {
|
260 |
$tag_base = ! empty( $permalink_options['tag_base'] ) ? $permalink_options['tag_base'] : $this->default_product_tag_base;
|
261 |
$name = $this->url_string_name( 'product_tag' );
|
262 |
|
263 |
+
$string_language = $this->woocommerce_wpml->strings->get_string_language( $tag_base, $this->url_strings_context(), $name );
|
264 |
if ( is_null( $string_language ) ) {
|
265 |
$string_language = '';
|
266 |
}
|
267 |
do_action( 'wpml_register_single_string', $this->url_strings_context(), $name, $tag_base, false, $string_language );
|
268 |
|
269 |
if ( isset( $_POST['tag_base_language'] ) ) {
|
270 |
+
$this->woocommerce_wpml->strings->set_string_language( $tag_base, $this->url_strings_context(), $name, $_POST['tag_base_language'] );
|
271 |
}
|
272 |
|
273 |
if ( $tag_base == $this->default_product_tag_base ) {
|
278 |
if ( isset( $permalink_options['attribute_base'] ) && $permalink_options['attribute_base'] ) {
|
279 |
$attr_base = trim( $permalink_options['attribute_base'], '/' );
|
280 |
|
281 |
+
$string_language = $this->woocommerce_wpml->strings->get_string_language( $attr_base, $this->url_strings_context(), $name );
|
282 |
if ( is_null( $string_language ) ) {
|
283 |
$string_language = '';
|
284 |
}
|
285 |
do_action( 'wpml_register_single_string', $this->url_strings_context(), $this->url_string_name( 'attribute' ), $attr_base, false, $string_language );
|
286 |
|
287 |
if ( isset( $_POST['attribute_base_language'] ) ) {
|
288 |
+
$this->woocommerce_wpml->strings->set_string_language( $attr_base, $this->url_strings_context(), $this->url_string_name( 'attribute' ), $_POST['attribute_base_language'] );
|
289 |
}
|
290 |
}
|
291 |
|
318 |
}
|
319 |
|
320 |
function add_default_slug_translations( $slug, $name ) {
|
|
|
321 |
|
322 |
$string_id = icl_get_string_id( $slug, $this->url_strings_context(), $name );
|
323 |
+
$string_language = $this->woocommerce_wpml->strings->get_string_language( $slug, $this->url_strings_context(), $name );
|
324 |
|
325 |
// will use a filter in the future wpmlst-529
|
326 |
+
$string_object = new WPML_ST_String( $string_id, $this->wpdb );
|
327 |
$string_translation_statuses = $string_object->get_translation_statuses();
|
328 |
|
329 |
foreach ( $string_translation_statuses as $s ) {
|
330 |
$string_translations[ $s->language ] = $s->status;
|
331 |
}
|
332 |
|
333 |
+
$languages = $this->sitepress->get_active_languages();
|
334 |
|
335 |
foreach ( $languages as $language => $language_info ) {
|
336 |
|
339 |
// check if there's an existing translation
|
340 |
if ( ! isset( $string_translations[ $language ] ) ) {
|
341 |
|
342 |
+
$slug_translation = $this->woocommerce_wpml->strings->get_translation_from_woocommerce_mo_file( $slug, $language, false );
|
343 |
|
344 |
if ( $slug_translation ) {
|
345 |
// add string translation
|
354 |
}
|
355 |
|
356 |
function force_bases_in_strings_languages( $value ) {
|
|
|
357 |
|
358 |
+
if ( $value && $this->sitepress->get_current_language() != 'en' ) {
|
359 |
|
360 |
remove_filter( 'gettext_with_context', array(
|
361 |
+
$this->woocommerce_wpml->strings,
|
362 |
'category_base_in_strings_language'
|
363 |
), 99, 3 );
|
364 |
$taxonomies = array(
|
384 |
),
|
385 |
);
|
386 |
add_filter( 'gettext_with_context', array(
|
387 |
+
$this->woocommerce_wpml->strings,
|
388 |
'category_base_in_strings_language'
|
389 |
), 99, 3 );
|
390 |
foreach ( $taxonomies as $taxonomy => $taxonomy_details ) {
|
409 |
|
410 |
}
|
411 |
|
412 |
+
/**
|
413 |
+
* @param array $value
|
414 |
+
*
|
415 |
+
* @return array
|
416 |
+
*/
|
417 |
function translate_bases_in_rewrite_rules( $value ) {
|
|
|
418 |
|
419 |
if ( ! empty( $value ) ) {
|
420 |
+
$value = $this->translate_wc_default_taxonomies_bases_in_rewrite_rules( $value );
|
421 |
+
$value = $this->translate_attributes_bases_in_rewrite_rules( $value );
|
422 |
+
$value = $this->translate_shop_page_base_in_rewrite_rules( $value );
|
423 |
+
}
|
424 |
|
425 |
+
return $value;
|
426 |
+
}
|
427 |
|
428 |
+
/**
|
429 |
+
* @param array $value
|
430 |
+
*
|
431 |
+
* @return array
|
432 |
+
*/
|
433 |
+
public function translate_wc_default_taxonomies_bases_in_rewrite_rules( $value ){
|
434 |
+
$taxonomies = array( 'product_cat', 'product_tag' );
|
435 |
|
436 |
+
foreach ( $taxonomies as $taxonomy ) {
|
437 |
+
$slug_details = $this->get_translated_tax_slug( $taxonomy );
|
|
|
|
|
438 |
|
439 |
+
$string_language = $this->woocommerce_wpml->strings->get_string_language( $slug_details['slug'], $this->url_strings_context(), $this->url_string_name( $taxonomy ) );
|
440 |
+
if ( $this->sitepress->get_current_language() == $string_language ) {
|
441 |
+
continue;
|
442 |
+
}
|
443 |
|
444 |
+
if ( $slug_details ) {
|
|
|
445 |
|
446 |
+
$slug_match = addslashes( ltrim( $slug_details['slug'], '/' ) );
|
447 |
+
$slug_translation_match = ltrim( $slug_details['translated_slug'], '/' );
|
448 |
|
449 |
+
$buff_value = array();
|
450 |
|
451 |
+
foreach ( (array) $value as $k => $v ) {
|
|
|
|
|
452 |
|
453 |
+
if ( $slug_details['slug'] != $slug_details['translated_slug'] && preg_match( '#^[^/]*/?' . $slug_match . '/#', $k ) ) {
|
454 |
+
$k = preg_replace( '#^([^/]*)(/?)' . $slug_match . '/#', '$1$2' . $slug_translation_match . '/', $k );
|
455 |
}
|
|
|
|
|
|
|
456 |
|
457 |
+
$buff_value[ $k ] = $v;
|
458 |
+
}
|
459 |
+
$value = $buff_value;
|
460 |
+
unset( $buff_value );
|
461 |
}
|
462 |
|
463 |
+
}
|
464 |
+
|
465 |
+
return $value;
|
466 |
+
}
|
467 |
+
|
468 |
+
/**
|
469 |
+
* @param array $value
|
470 |
+
*
|
471 |
+
* @return array
|
472 |
+
*/
|
473 |
+
public function translate_attributes_bases_in_rewrite_rules( $value ) {
|
474 |
+
|
475 |
+
// handle attributes
|
476 |
+
$wc_taxonomies = wc_get_attribute_taxonomies();
|
477 |
+
$wc_taxonomies_wc_format = array();
|
478 |
+
foreach ( $wc_taxonomies as $k => $v ) {
|
479 |
+
$wc_taxonomies_wc_format[] = 'pa_' . $v->attribute_name;
|
480 |
+
}
|
481 |
+
|
482 |
+
foreach ( $wc_taxonomies_wc_format as $taxonomy ) {
|
483 |
+
$taxonomy_obj = get_taxonomy( $taxonomy );
|
484 |
+
|
485 |
+
if ( isset( $taxonomy_obj->rewrite['slug'] ) ) {
|
486 |
+
$exp = explode( '/', trim( $taxonomy_obj->rewrite['slug'], '/' ) );
|
487 |
+
$slug = join( '/', array_slice( $exp, 0, count( $exp ) - 1 ) );
|
488 |
+
|
489 |
+
$attribute_slug = preg_replace( "#^$slug/#", '', $taxonomy_obj->rewrite['slug'] );
|
490 |
}
|
491 |
|
492 |
+
if ( isset( $slug ) ) {
|
493 |
+
$string_language = $this->woocommerce_wpml->strings->get_string_language( $slug, $this->url_strings_context(), $this->url_string_name( 'attribute' ) );
|
494 |
|
495 |
+
if ( $this->sitepress->get_current_language() != $string_language ) {
|
|
|
|
|
496 |
|
497 |
+
$slug_translation = apply_filters( 'wpml_translate_single_string', $slug, $this->url_strings_context(), $this->url_string_name( 'attribute' ) );
|
|
|
498 |
|
499 |
+
$attribute_slug_translation = apply_filters( 'wpml_translate_single_string', $attribute_slug, $this->url_strings_context(), $this->url_string_name( 'attribute_slug', $attribute_slug ) );
|
|
|
500 |
|
501 |
+
if ( $slug && $slug_translation && $slug !== $slug_translation ) {
|
502 |
|
503 |
+
$slug_match = addslashes( ltrim( $slug, '/' ) );
|
504 |
+
$slug_translation_match = ltrim( $slug_translation, '/' );
|
505 |
|
506 |
+
$pattern = '#^' . $slug_match . '/(.*)#';
|
507 |
+
$replacement_pattern = '#^' . $slug_match . '/(' . $attribute_slug . ')/(.*)#';
|
508 |
+
$replacement = $slug_translation_match . '/' . $attribute_slug_translation . '/$2';
|
509 |
|
510 |
+
$value = $this->replace_bases_in_rewrite_rules( $value, $pattern, $replacement_pattern, $replacement );
|
|
|
511 |
|
512 |
+
} elseif ( $attribute_slug_translation && $attribute_slug !== $attribute_slug_translation ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
513 |
|
514 |
+
$slug_match = addslashes( ltrim( $attribute_slug, '/' ) );
|
515 |
+
$pattern = '#' . $slug_match . '/(.*)#';
|
516 |
+
$replacement = $attribute_slug_translation . '/$1';
|
517 |
|
518 |
+
$value = $this->replace_bases_in_rewrite_rules( $value, $pattern, $pattern, $replacement );
|
519 |
|
520 |
}
|
|
|
521 |
|
522 |
+
}
|
523 |
}
|
524 |
|
525 |
+
}
|
526 |
|
527 |
+
return $value;
|
|
|
|
|
528 |
|
529 |
+
}
|
530 |
+
|
531 |
+
/**
|
532 |
+
* @param array $value
|
533 |
+
*
|
534 |
+
* @return array
|
535 |
+
*/
|
536 |
+
public function translate_shop_page_base_in_rewrite_rules( $value ){
|
537 |
+
//filter shop page rewrite slug
|
538 |
+
$current_shop_id = wc_get_page_id( 'shop' );
|
539 |
+
$default_shop_id = apply_filters( 'translate_object_id', $current_shop_id, 'page', true, $this->sitepress->get_default_language() );
|
540 |
|
541 |
+
if ( is_null( get_post( $current_shop_id ) ) || is_null( get_post( $default_shop_id ) ) ) {
|
542 |
+
return $value;
|
543 |
+
}
|
544 |
|
545 |
+
$current_slug = get_post( $current_shop_id )->post_name;
|
546 |
+
$default_slug = get_post( $default_shop_id )->post_name;
|
|
|
547 |
|
548 |
+
if ( $current_slug != $default_slug ) {
|
549 |
+
$buff_value = array();
|
550 |
+
foreach ( (array) $value as $k => $v ) {
|
|
|
551 |
|
552 |
+
if ( preg_match( '#^' . $default_slug . '/\?\$$#', $k ) ||
|
553 |
+
preg_match( '#^' . $default_slug . '/\(?feed#', $k ) ||
|
554 |
+
preg_match( '#^' . $default_slug . '/page#', $k )
|
555 |
+
) {
|
556 |
|
557 |
+
$k = preg_replace( '#^' . $default_slug . '/#', $current_slug . '/', $k );
|
558 |
}
|
559 |
|
560 |
+
$buff_value[ $k ] = $v;
|
|
|
561 |
}
|
562 |
+
|
563 |
+
$value = $buff_value;
|
564 |
+
unset( $buff_value );
|
565 |
}
|
566 |
|
567 |
return $value;
|
568 |
}
|
569 |
|
570 |
+
/**
|
571 |
+
* @param array $value
|
572 |
+
* @param string $pattern
|
573 |
+
* @param string $replacement_pattern
|
574 |
+
* @param string $replacement
|
575 |
+
*
|
576 |
+
* @return array
|
577 |
+
*/
|
578 |
+
public function replace_bases_in_rewrite_rules( $value, $pattern, $replacement_pattern, $replacement ){
|
579 |
+
|
580 |
+
$buff_value = array();
|
581 |
+
foreach ( (array) $value as $k => $v ) {
|
582 |
+
if ( preg_match( $pattern , $k ) ) {
|
583 |
+
$k = preg_replace( $replacement_pattern, $replacement, $k );
|
584 |
+
}
|
585 |
+
$buff_value[ $k ] = $v;
|
586 |
+
}
|
587 |
+
|
588 |
+
$value = $buff_value;
|
589 |
+
unset( $buff_value );
|
590 |
+
|
591 |
+
return $value;
|
592 |
+
}
|
593 |
+
|
594 |
function translate_taxonomy_base( $termlink, $term, $taxonomy ) {
|
595 |
+
global $wp_rewrite, $wpml_term_translations;
|
596 |
static $no_recursion_flag;
|
597 |
|
598 |
// handles product categories, product tags and attributes
|
614 |
if ( ! is_null( $wpml_term_translations ) ) {
|
615 |
$term_language = $term->term_id ? $wpml_term_translations->get_element_lang_code( $term->term_taxonomy_id ) : false;
|
616 |
} else {
|
617 |
+
$term_language = $term->term_id ? $this->sitepress->get_language_for_element( $term->term_taxonomy_id, 'tax_' . $taxonomy ) : false;
|
618 |
}
|
619 |
|
620 |
if ( $term_language ) {
|
624 |
$base = $slug_details['slug'];
|
625 |
$base_translated = $slug_details['translated_slug'];
|
626 |
|
627 |
+
if ( isset( $wp_rewrite->extra_permastructs[ $taxonomy ] ) ) {
|
628 |
|
629 |
$buff = $wp_rewrite->extra_permastructs[ $taxonomy ]['struct'];
|
630 |
|
631 |
+
if( $base_translated !== $base ){
|
632 |
+
// translate the attribute base
|
633 |
+
$wp_rewrite->extra_permastructs[ $taxonomy ]['struct'] = preg_replace( '#^' . $base . '/(.*)#', $base_translated . '/$1', $wp_rewrite->extra_permastructs[ $taxonomy ]['struct'] );
|
634 |
+
}
|
635 |
|
636 |
// translate the attribute slug
|
637 |
+
$attribute_slug = preg_replace( '#^' . $base . '/([^/]+)/.+$#', '$1', $wp_rewrite->extra_permastructs[ $taxonomy ]['struct'] );
|
638 |
+
$attribute_slug_default = preg_replace( '#^pa_#', '', $taxonomy );
|
639 |
+
$attribute_slug_translation = apply_filters(
|
640 |
+
'wpml_translate_single_string',
|
641 |
+
$attribute_slug,
|
642 |
+
$this->url_strings_context(),
|
643 |
+
$this->url_string_name( 'attribute_slug', $attribute_slug_default ),
|
644 |
+
$term_language
|
645 |
+
);
|
646 |
+
|
647 |
+
if ( $attribute_slug_translation != $attribute_slug ) {
|
648 |
+
|
649 |
+
if( $base ){
|
650 |
$wp_rewrite->extra_permastructs[ $taxonomy ]['struct'] = preg_replace(
|
651 |
'#^' . $base_translated . '/([^/]+)/(.+)$#',
|
652 |
$base_translated . '/' . $attribute_slug_translation . '/$2',
|
653 |
$wp_rewrite->extra_permastructs[ $taxonomy ]['struct']
|
654 |
);
|
655 |
+
}else{
|
656 |
+
$wp_rewrite->extra_permastructs[ $taxonomy ]['struct'] = preg_replace(
|
657 |
+
'#' . $attribute_slug_default . '/(.+)$#',
|
658 |
+
$attribute_slug_translation . '/$1',
|
659 |
+
$wp_rewrite->extra_permastructs[ $taxonomy ]['struct']
|
660 |
+
);
|
661 |
}
|
|
|
662 |
}
|
663 |
|
|
|
664 |
$no_recursion_flag = true;
|
665 |
$termlink = get_term_link( $term, $taxonomy );
|
666 |
|
681 |
}
|
682 |
|
683 |
function get_translated_tax_slug( $taxonomy, $language = false ) {
|
|
|
684 |
|
685 |
switch ( $taxonomy ) {
|
686 |
case 'product_tag':
|
691 |
$slug = 'product-tag';
|
692 |
}
|
693 |
|
694 |
+
$string_language = $this->woocommerce_wpml->strings->get_string_language( $slug, $this->url_strings_context(), $this->url_string_name( $taxonomy ) );
|
695 |
|
696 |
break;
|
697 |
|
703 |
$slug = 'product-category';
|
704 |
}
|
705 |
|
706 |
+
$string_language = $this->woocommerce_wpml->strings->get_string_language( $slug, $this->url_strings_context(), $this->url_string_name( $taxonomy ) );
|
707 |
|
708 |
break;
|
709 |
|
710 |
default:
|
711 |
$slug = trim( $this->wc_permalinks['attribute_base'], '/' );
|
712 |
|
713 |
+
$string_language = $this->woocommerce_wpml->strings->get_string_language( $slug, $this->url_strings_context(), $this->url_string_name( 'attribute' ) );
|
714 |
|
715 |
$taxonomy = 'attribute';
|
716 |
|
718 |
}
|
719 |
|
720 |
if ( ! $language ) {
|
721 |
+
$language = $this->sitepress->get_current_language();
|
722 |
}
|
723 |
|
724 |
if ( $slug && $language != 'all' && $language != $string_language ) {
|
739 |
}
|
740 |
|
741 |
function get_base_translation( $base, $language ) {
|
|
|
742 |
|
743 |
// case of attribute slugs
|
744 |
if ( strpos( $base, 'attribute_slug-' ) === 0 ) {
|
801 |
}
|
802 |
|
803 |
function get_source_slug_language( $base ) {
|
|
|
804 |
|
805 |
if ( $base == 'shop' ) {
|
806 |
+
$source_language = $this->sitepress->get_language_for_element( get_option( 'woocommerce_shop_page_id' ), 'post_page' );
|
807 |
} elseif ( in_array( $base, array( 'product', 'product_cat', 'product_tag', 'attribute' ) ) ) {
|
808 |
+
$source_language = $this->woocommerce_wpml->strings->get_string_language( $base, $this->url_strings_context(), $this->url_string_name( $base ) );
|
809 |
} else {
|
810 |
+
$source_language = $this->woocommerce_wpml->strings->get_string_language( $base, 'WooCommerce Endpoints', $base );
|
811 |
}
|
812 |
|
813 |
return $source_language;
|
820 |
die( 'Invalid nonce' );
|
821 |
}
|
822 |
|
|
|
|
|
823 |
$original_base = $_POST['base'];
|
824 |
$original_base_value = $_POST['base_value'];
|
825 |
$base_translation = $_POST['base_translation'];
|
833 |
|
834 |
$trnsl_shop_obj = get_post( $translated_shop_id );
|
835 |
$new_slug = wp_unique_post_slug( sanitize_title( $_POST['base_translation'] ), $translated_shop_id, $trnsl_shop_obj->post_status, $trnsl_shop_obj->post_type, $trnsl_shop_obj->post_parent );
|
836 |
+
$this->wpdb->update( $this->wpdb->posts, array( 'post_name' => $new_slug ), array( 'ID' => $translated_shop_id ) );
|
837 |
|
838 |
}
|
839 |
|
849 |
if ( ! $string_id && function_exists( 'icl_register_string' ) ) {
|
850 |
$string_id = icl_register_string( 'WooCommerce Endpoints', $original_base, $original_base_value );
|
851 |
}
|
852 |
+
$this->woocommerce_wpml->endpoints->add_endpoints();
|
853 |
+
$this->woocommerce_wpml->endpoints->flush_rules_for_endpoints_translations();
|
854 |
}
|
855 |
|
856 |
icl_add_string_translation( $string_id, $language, $base_translation, ICL_STRING_TRANSLATION_COMPLETE );
|
857 |
|
858 |
}
|
859 |
|
860 |
+
$edit_base = new WCML_Store_URLs_Edit_Base_UI( $original_base, $language, $this->woocommerce_wpml, $this->sitepress );
|
861 |
$html = $edit_base->get_view();
|
862 |
|
863 |
echo json_encode( $html );
|
887 |
}
|
888 |
|
889 |
public function translate_query_var_for_product( $public_query_vars ) {
|
|
|
890 |
|
891 |
+
$product_permalink = $this->woocommerce_wpml->strings->product_permalink_slug();
|
892 |
+
$string_language = $this->woocommerce_wpml->strings->get_string_language( $product_permalink, $this->url_strings_context(), $this->url_string_name( 'product' ) );
|
893 |
|
894 |
+
if ( $this->sitepress->get_current_language() != $string_language ) {
|
895 |
$translated_slug = $this->get_translated_product_base_by_lang( false, $product_permalink );
|
896 |
|
897 |
if ( isset( $_GET[ $translated_slug ] ) ) {
|
906 |
}
|
907 |
|
908 |
public function get_translated_product_base_by_lang( $language = false, $product_slug = false ) {
|
|
|
909 |
|
910 |
if ( ! $language ) {
|
911 |
+
$language = $this->sitepress->get_current_language();
|
|
|
|
|
912 |
}
|
913 |
|
914 |
if ( ! $product_slug ) {
|
915 |
+
$product_slug = $this->woocommerce_wpml->strings->product_permalink_slug();
|
916 |
}
|
917 |
|
918 |
if ( version_compare( WPML_ST_VERSION, '2.3', '>=' ) ) {
|
928 |
|
929 |
public function encode_shop_slug( $location, $status ) {
|
930 |
if ( get_post_type( get_query_var( 'p' ) ) == 'product' ) {
|
931 |
+
$language = $this->sitepress->get_language_for_element( get_query_var( 'p' ), 'post_product' );
|
|
|
932 |
$base_slug = $this->get_translated_product_base_by_lang( $language );
|
933 |
|
934 |
$location = str_replace( $base_slug, urlencode( $base_slug ), $location );
|
936 |
|
937 |
return $location;
|
938 |
}
|
939 |
+
|
940 |
+
public function translate_product_post_type_link( $permalink, $post ) {
|
941 |
+
|
942 |
+
// Abort if post is not a product or permalink don't have 'uncategorized' flag
|
943 |
+
if ( 'product' !== $post->post_type || false === strpos( $permalink, '/uncategorized/' ) ) {
|
944 |
+
return $permalink;
|
945 |
+
}
|
946 |
+
|
947 |
+
$permalinks = wc_get_permalink_structure();
|
948 |
+
|
949 |
+
// Make sure the product permalink have %product_cat% flag.
|
950 |
+
if ( preg_match( '`/(.+)(/%product_cat%)`', $permalinks['product_rewrite_slug'], $matches ) ) {
|
951 |
+
$find = 'uncategorized';
|
952 |
+
$element_language = $this->sitepress->get_language_for_element( $post->ID, 'post_product' );
|
953 |
+
$replace = $this->woocommerce_wpml->strings->get_translation_from_woocommerce_mo_file( 'slug' . chr( 4 ) . $find, $element_language, false );
|
954 |
+
|
955 |
+
if ( ! is_null( $replace ) ) {
|
956 |
+
$permalink = str_replace( $find, $replace, $permalink );
|
957 |
+
}
|
958 |
+
}
|
959 |
+
|
960 |
+
return $permalink;
|
961 |
+
}
|
962 |
+
|
963 |
}
|
inc/class-wcml-wc-gateways.php
CHANGED
@@ -95,11 +95,8 @@ class WCML_WC_Gateways{
|
|
95 |
|
96 |
function show_language_links_for_gateways(){
|
97 |
|
98 |
-
$text_keys =
|
99 |
-
|
100 |
-
'description',
|
101 |
-
'instructions'
|
102 |
-
);
|
103 |
$wc_payment_gateways = WC_Payment_Gateways::instance();
|
104 |
|
105 |
foreach( $wc_payment_gateways->payment_gateways() as $payment_gateway ) {
|
@@ -154,31 +151,42 @@ class WCML_WC_Gateways{
|
|
154 |
|
155 |
function register_and_set_gateway_strings_language(){
|
156 |
|
157 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
|
159 |
-
|
|
|
160 |
|
161 |
-
|
|
|
|
|
162 |
|
163 |
-
|
|
|
164 |
|
165 |
-
|
166 |
-
$gateway_string_name = str_replace( 'woocommerce_', '', $gateway_key ) .'_gateway_'. $gateway_string[2];
|
167 |
-
$gateway_key .= '_'.$gateway_string[2];
|
168 |
|
169 |
-
|
170 |
|
171 |
-
|
172 |
-
|
|
|
|
|
173 |
|
174 |
-
|
175 |
|
176 |
-
|
|
|
|
|
|
|
|
|
177 |
|
178 |
-
|
179 |
-
}
|
180 |
-
}
|
181 |
-
}
|
182 |
}
|
183 |
|
184 |
}
|
95 |
|
96 |
function show_language_links_for_gateways(){
|
97 |
|
98 |
+
$text_keys = $this->get_gateway_text_keys_to_translate();
|
99 |
+
|
|
|
|
|
|
|
100 |
$wc_payment_gateways = WC_Payment_Gateways::instance();
|
101 |
|
102 |
foreach( $wc_payment_gateways->payment_gateways() as $payment_gateway ) {
|
151 |
|
152 |
function register_and_set_gateway_strings_language(){
|
153 |
|
154 |
+
foreach( $_POST as $key => $language ){
|
155 |
+
|
156 |
+
if( '_enabled' === substr( $key, -8 ) ){
|
157 |
+
$gateway = str_replace( '_enabled', '', $key );
|
158 |
+
$gateway_settings = get_option( $gateway.'_settings', array() );
|
159 |
+
}
|
160 |
+
}
|
161 |
|
162 |
+
if ( isset( $gateway ) ) {
|
163 |
+
$text_keys = $this->get_gateway_text_keys_to_translate();
|
164 |
|
165 |
+
foreach ( $text_keys as $text_key ) {
|
166 |
+
$gateway_string_name = str_replace( 'woocommerce_', '', $gateway ) . '_gateway_' . $text_key;
|
167 |
+
$gateway_key = $gateway . '_' . $text_key;
|
168 |
|
169 |
+
$string_value = isset( $_POST[ $gateway_key ] ) ? $_POST[ $gateway_key ] : '';
|
170 |
+
$opt_string_value = isset( $gateway_settings[ $text_key ] ) ? $gateway_settings[ $text_key ] : $string_value;
|
171 |
|
172 |
+
$context = 'woocommerce';
|
|
|
|
|
173 |
|
174 |
+
do_action( 'wpml_register_single_string', $context, $gateway_string_name, $string_value, false, $this->woocommerce_wpml->strings->get_string_language( $opt_string_value, $context ) );
|
175 |
|
176 |
+
$this->woocommerce_wpml->strings->set_string_language( $string_value, $context, $gateway_string_name, $language );
|
177 |
+
}
|
178 |
+
}
|
179 |
+
}
|
180 |
|
181 |
+
public function get_gateway_text_keys_to_translate(){
|
182 |
|
183 |
+
$text_keys = array(
|
184 |
+
'title',
|
185 |
+
'description',
|
186 |
+
'instructions'
|
187 |
+
);
|
188 |
|
189 |
+
return apply_filters( 'wcml_gateway_text_keys_to_translate', $text_keys );
|
|
|
|
|
|
|
190 |
}
|
191 |
|
192 |
}
|
inc/class-woocommerce-wpml.php
CHANGED
@@ -96,6 +96,8 @@ class woocommerce_wpml {
|
|
96 |
$this->cs_templates->init_hooks();
|
97 |
}
|
98 |
|
|
|
|
|
99 |
|
100 |
}
|
101 |
|
@@ -117,127 +119,134 @@ class woocommerce_wpml {
|
|
117 |
|
118 |
return self::$_instance;
|
119 |
}
|
120 |
-
public function init(){
|
121 |
-
global $sitepress, $wpdb, $woocommerce;
|
122 |
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
241 |
|
242 |
public function get_settings(){
|
243 |
|
96 |
$this->cs_templates->init_hooks();
|
97 |
}
|
98 |
|
99 |
+
$wc_shortccode_product_category = new WCML_WC_Shortcode_Product_Category( $sitepress );
|
100 |
+
$wc_shortccode_product_category->add_hooks();
|
101 |
|
102 |
}
|
103 |
|
119 |
|
120 |
return self::$_instance;
|
121 |
}
|
|
|
|
|
122 |
|
123 |
+
public function init() {
|
124 |
+
global $sitepress, $wpdb, $woocommerce;
|
125 |
+
|
126 |
+
new WCML_Upgrade;
|
127 |
+
|
128 |
+
$this->dependencies = new WCML_Dependencies;
|
129 |
+
$this->check_dependencies = $this->dependencies->check();
|
130 |
+
|
131 |
+
WCML_Admin_Menus::set_up_menus( $this, $sitepress, $wpdb, $this->check_dependencies );
|
132 |
+
|
133 |
+
if ( ! $this->check_dependencies ) {
|
134 |
+
WCML_Capabilities::set_up_capabilities();
|
135 |
+
|
136 |
+
wp_register_style( 'otgs-ico', WCML_PLUGIN_URL . '/res/css/otgs-ico.css', null, WCML_VERSION );
|
137 |
+
wp_enqueue_style( 'otgs-ico' );
|
138 |
+
|
139 |
+
WCML_Resources::load_management_css();
|
140 |
+
WCML_Resources::load_tooltip_resources();
|
141 |
+
|
142 |
+
return false;
|
143 |
+
}
|
144 |
+
|
145 |
+
$this->compatibility = new WCML_Compatibility( $sitepress, $this, $wpdb, new WPML_Element_Translation_Package );
|
146 |
+
|
147 |
+
$actions_that_need_mc = array(
|
148 |
+
'save-mc-options',
|
149 |
+
'wcml_new_currency',
|
150 |
+
'wcml_save_currency',
|
151 |
+
'wcml_delete_currency',
|
152 |
+
'wcml_update_currency_lang',
|
153 |
+
'wcml_update_default_currency',
|
154 |
+
'wcml_price_preview',
|
155 |
+
'wcml_currencies_switcher_preview',
|
156 |
+
'wcml_currencies_switcher_save_settings',
|
157 |
+
'wcml_delete_currency_switcher',
|
158 |
+
'wcml_currencies_order'
|
159 |
+
);
|
160 |
+
|
161 |
+
$this->cart = new WCML_Cart( $this, $sitepress, $woocommerce );
|
162 |
+
|
163 |
+
if ( $this->settings['enable_multi_currency'] == WCML_MULTI_CURRENCIES_INDEPENDENT
|
164 |
+
|| ( isset( $_GET['page'] ) && $_GET['page'] == 'wpml-wcml' && isset( $_GET['tab'] ) && $_GET['tab'] == 'multi-currency' )
|
165 |
+
|| ( isset( $_POST['action'] ) && in_array( $_POST['action'], $actions_that_need_mc ) )
|
166 |
+
) {
|
167 |
+
$this->multi_currency = new WCML_Multi_Currency;
|
168 |
+
$wcml_price_filters = new WCML_Price_Filter( $this );
|
169 |
+
$wcml_price_filters->add_hooks();
|
170 |
+
} else {
|
171 |
+
add_shortcode( 'currency_switcher', '__return_empty_string' );
|
172 |
+
}
|
173 |
+
|
174 |
+
if ( is_admin() ) {
|
175 |
+
$this->troubleshooting = new WCML_Troubleshooting( $this, $sitepress, $wpdb );
|
176 |
+
$this->links = new WCML_Links( $this, $sitepress );
|
177 |
+
$this->translation_editor = new WCML_Translation_Editor( $this, $sitepress, $wpdb );
|
178 |
+
$this->languages_upgrader = new WCML_Languages_Upgrader;
|
179 |
+
$this->sync_variations_data = new WCML_Synchronize_Variations_Data( $this, $sitepress, $wpdb );
|
180 |
+
$this->sync_variations_data->add_hooks();
|
181 |
+
$this->wcml_products_screen = new WCML_Products_Screen_Options( $sitepress );
|
182 |
+
$this->wcml_products_screen->init();
|
183 |
+
new WCML_Pointers();
|
184 |
+
}
|
185 |
+
|
186 |
+
$this->sync_product_data = new WCML_Synchronize_Product_Data( $this, $sitepress, $wpdb );
|
187 |
+
$this->sync_product_data->add_hooks();
|
188 |
+
$this->duplicate_product = new WCML_WC_Admin_Duplicate_Product( $this, $sitepress, $wpdb );
|
189 |
+
$this->products = new WCML_Products( $this, $sitepress, $wpdb );
|
190 |
+
$this->products->add_hooks();
|
191 |
+
$this->store = new WCML_Store_Pages ( $this, $sitepress );
|
192 |
+
$this->strings = new WCML_WC_Strings( $this, $sitepress );
|
193 |
+
$this->strings->add_hooks();
|
194 |
+
$this->emails = new WCML_Emails( $this, $sitepress, $woocommerce );
|
195 |
+
$this->emails->add_hooks();
|
196 |
+
$this->terms = new WCML_Terms( $this, $sitepress, $wpdb );
|
197 |
+
$this->terms->add_hooks();
|
198 |
+
$this->attributes = new WCML_Attributes( $this, $sitepress, $wpdb );
|
199 |
+
$this->attributes->add_hooks();
|
200 |
+
$this->orders = new WCML_Orders( $this, $sitepress );
|
201 |
+
$this->shipping = new WCML_WC_Shipping( $sitepress );
|
202 |
+
$this->shipping->add_hooks();
|
203 |
+
$this->gateways = new WCML_WC_Gateways( $this, $sitepress );
|
204 |
+
$this->currencies = new WCML_Currencies( $this );
|
205 |
+
$this->url_translation = new WCML_Url_Translation ( $this, $sitepress, $wpdb );
|
206 |
+
$this->url_translation->set_up();
|
207 |
+
$this->endpoints = new WCML_Endpoints( $this );
|
208 |
+
$this->requests = new WCML_Requests;
|
209 |
+
$this->cart = new WCML_Cart( $this, $sitepress, $woocommerce );
|
210 |
+
$this->cart->add_hooks();
|
211 |
+
$this->coupons = new WCML_Coupons( $this, $sitepress );
|
212 |
+
$this->locale = new WCML_Locale( $this, $sitepress );
|
213 |
+
$this->media = new WCML_Media( $this, $sitepress, $wpdb );
|
214 |
+
$this->downloadable = new WCML_Downloadable_Products( $this, $sitepress );
|
215 |
+
$this->downloadable->add_hooks();
|
216 |
+
$this->page_builders = new WCML_Page_Builders( $sitepress );
|
217 |
+
$this->reports = new WCML_Reports;
|
218 |
+
$this->wcml_products_screen = new WCML_Products_Screen_Options();
|
219 |
+
$this->wcml_products_screen->init();
|
220 |
+
$this->cart_sync_warnings = new WCML_Cart_Sync_Warnings( $this, $sitepress );
|
221 |
+
$this->cart_sync_warnings->add_hooks();
|
222 |
+
|
223 |
+
$payment_method_filter = new WCML_Payment_Method_Filter();
|
224 |
+
$payment_method_filter->add_hooks();
|
225 |
+
|
226 |
+
new WCML_Ajax_Setup( $sitepress );
|
227 |
+
new WCML_Fix_Copied_Custom_Fields_WPML353();
|
228 |
+
|
229 |
+
WCML_Install::initialize( $this, $sitepress );
|
230 |
+
|
231 |
+
WCML_Resources::set_up_resources( $this, $sitepress );
|
232 |
+
|
233 |
+
add_filter( 'woocommerce_get_checkout_payment_url', array(
|
234 |
+
'WCML_Links',
|
235 |
+
'filter_woocommerce_redirect_location'
|
236 |
+
) );
|
237 |
+
add_filter( 'woocommerce_get_cancel_order_url', array( 'WCML_Links', 'filter_woocommerce_redirect_location' ) );
|
238 |
+
add_filter( 'woocommerce_get_return_url', array( 'WCML_Links', 'filter_woocommerce_redirect_location' ) );
|
239 |
+
|
240 |
+
add_action( 'wp_ajax_wcml_update_setting_ajx', array( $this, 'update_setting_ajx' ) );
|
241 |
+
|
242 |
+
if ( is_admin() ) {
|
243 |
+
$taxonomy_translation_link_filters = new WCML_Taxonomy_Translation_Link_Filters( $this->attributes );
|
244 |
+
$taxonomy_translation_link_filters->add_filters();
|
245 |
+
|
246 |
+
$tp_support = new WCML_TP_Support( $this, $wpdb, new WPML_Element_Translation_Package );
|
247 |
+
$tp_support->add_hooks();
|
248 |
+
}
|
249 |
+
}
|
250 |
|
251 |
public function get_settings(){
|
252 |
|
inc/currencies/class-wcml-custom-prices.php
CHANGED
@@ -67,7 +67,7 @@ class WCML_Custom_Prices{
|
|
67 |
|
68 |
foreach($prices_keys as $key){
|
69 |
|
70 |
-
if(
|
71 |
$custom_prices[$key] = $product_meta[$key . '_' . $currency][0];
|
72 |
}
|
73 |
|
@@ -80,8 +80,7 @@ class WCML_Custom_Prices{
|
|
80 |
$current__price_value = $custom_prices['_price'];
|
81 |
|
82 |
// update sale price
|
83 |
-
if(
|
84 |
-
|
85 |
if(!empty($product_meta['_wcml_schedule_' . $currency][0])){
|
86 |
// custom dates
|
87 |
if(!empty($product_meta['_sale_price_dates_from_' . $currency][0]) && !empty($product_meta['_sale_price_dates_to_' . $currency][0])){
|
67 |
|
68 |
foreach($prices_keys as $key){
|
69 |
|
70 |
+
if( isset($product_meta[$key . '_' . $currency][0])){
|
71 |
$custom_prices[$key] = $product_meta[$key . '_' . $currency][0];
|
72 |
}
|
73 |
|
80 |
$current__price_value = $custom_prices['_price'];
|
81 |
|
82 |
// update sale price
|
83 |
+
if(isset($custom_prices['_sale_price']) && is_numeric($custom_prices['_sale_price']) ){
|
|
|
84 |
if(!empty($product_meta['_wcml_schedule_' . $currency][0])){
|
85 |
// custom dates
|
86 |
if(!empty($product_meta['_sale_price_dates_from_' . $currency][0]) && !empty($product_meta['_sale_price_dates_to_' . $currency][0])){
|
inc/currencies/class-wcml-multi-currency-prices.php
CHANGED
@@ -131,7 +131,7 @@ class WCML_Multi_Currency_Prices {
|
|
131 |
|
132 |
$manual_prices = $this->multi_currency->custom_prices->get_product_custom_prices( $product_id, $currency );
|
133 |
|
134 |
-
if ( $manual_prices &&
|
135 |
|
136 |
$price = $manual_prices['_price'];
|
137 |
|
@@ -177,6 +177,7 @@ class WCML_Multi_Currency_Prices {
|
|
177 |
// legacy prior 3.1
|
178 |
$original_object_id = apply_filters( 'translate_object_id', $object_id, get_post_type( $object_id ), false, $sitepress->get_default_language() );
|
179 |
$ccr = get_post_meta( $original_object_id, '_custom_conversion_rate', true );
|
|
|
180 |
if ( in_array( $meta_key, array(
|
181 |
'_price',
|
182 |
'_regular_price',
|
@@ -192,26 +193,25 @@ class WCML_Multi_Currency_Prices {
|
|
192 |
// 1. manual prices
|
193 |
$manual_prices = $this->multi_currency->custom_prices->get_product_custom_prices( $object_id, $this->multi_currency->get_client_currency() );
|
194 |
|
195 |
-
if ( $manual_prices &&
|
196 |
|
197 |
$price = $manual_prices[ $meta_key ];
|
198 |
|
199 |
} else {
|
200 |
// 2. automatic conversion
|
201 |
$price = get_post_meta( $object_id, $meta_key, $single );
|
202 |
-
|
203 |
-
|
|
|
204 |
}
|
205 |
-
|
206 |
}
|
207 |
|
208 |
-
|
209 |
$no_filter = false;
|
210 |
}
|
211 |
|
212 |
}
|
213 |
|
214 |
-
return
|
215 |
}
|
216 |
|
217 |
public function variation_prices_filter( $null, $object_id, $meta_key, $single ) {
|
@@ -235,7 +235,7 @@ class WCML_Multi_Currency_Prices {
|
|
235 |
if ( isset( $manual_prices[ $k ] ) ) {
|
236 |
$variation_fields[ $k ][ $j ] = $manual_prices[ $k ]; // manual price
|
237 |
|
238 |
-
}
|
239 |
$variation_fields[ $k ][ $j ] = apply_filters( 'wcml_raw_price_amount', $amount ); // automatic conversion
|
240 |
}
|
241 |
|
@@ -250,7 +250,7 @@ class WCML_Multi_Currency_Prices {
|
|
250 |
|
251 |
}
|
252 |
|
253 |
-
return
|
254 |
|
255 |
}
|
256 |
|
131 |
|
132 |
$manual_prices = $this->multi_currency->custom_prices->get_product_custom_prices( $product_id, $currency );
|
133 |
|
134 |
+
if ( $manual_prices && isset( $manual_prices['_price'] ) ) {
|
135 |
|
136 |
$price = $manual_prices['_price'];
|
137 |
|
177 |
// legacy prior 3.1
|
178 |
$original_object_id = apply_filters( 'translate_object_id', $object_id, get_post_type( $object_id ), false, $sitepress->get_default_language() );
|
179 |
$ccr = get_post_meta( $original_object_id, '_custom_conversion_rate', true );
|
180 |
+
|
181 |
if ( in_array( $meta_key, array(
|
182 |
'_price',
|
183 |
'_regular_price',
|
193 |
// 1. manual prices
|
194 |
$manual_prices = $this->multi_currency->custom_prices->get_product_custom_prices( $object_id, $this->multi_currency->get_client_currency() );
|
195 |
|
196 |
+
if ( $manual_prices && isset( $manual_prices[ $meta_key ] ) ) {
|
197 |
|
198 |
$price = $manual_prices[ $meta_key ];
|
199 |
|
200 |
} else {
|
201 |
// 2. automatic conversion
|
202 |
$price = get_post_meta( $object_id, $meta_key, $single );
|
203 |
+
if( $price ){
|
204 |
+
$price = apply_filters( 'wcml_raw_price_amount', $price );
|
205 |
+
}
|
206 |
}
|
|
|
207 |
}
|
208 |
|
|
|
209 |
$no_filter = false;
|
210 |
}
|
211 |
|
212 |
}
|
213 |
|
214 |
+
return isset( $price ) ? $price : $null;
|
215 |
}
|
216 |
|
217 |
public function variation_prices_filter( $null, $object_id, $meta_key, $single ) {
|
235 |
if ( isset( $manual_prices[ $k ] ) ) {
|
236 |
$variation_fields[ $k ][ $j ] = $manual_prices[ $k ]; // manual price
|
237 |
|
238 |
+
} elseif( $amount ) {
|
239 |
$variation_fields[ $k ][ $j ] = apply_filters( 'wcml_raw_price_amount', $amount ); // automatic conversion
|
240 |
}
|
241 |
|
250 |
|
251 |
}
|
252 |
|
253 |
+
return isset( $variation_fields ) ? $variation_fields : $null;
|
254 |
|
255 |
}
|
256 |
|
inc/currencies/class-wcml-multi-currency-resources.php
CHANGED
@@ -35,9 +35,8 @@ class WCML_Multi_Currency_Resources{
|
|
35 |
'symbol'=> get_woocommerce_currency_symbol( self::$multi_currency->get_client_currency() )
|
36 |
);
|
37 |
|
38 |
-
|
39 |
-
|
40 |
-
}
|
41 |
|
42 |
wp_localize_script('wcml-mc-scripts', 'wcml_mc_settings', $script_vars );
|
43 |
|
35 |
'symbol'=> get_woocommerce_currency_symbol( self::$multi_currency->get_client_currency() )
|
36 |
);
|
37 |
|
38 |
+
$script_vars['w3tc'] = (int) ! empty( self::$multi_currency->W3TC )
|
39 |
+
|| ( function_exists( 'wp_cache_is_enabled' ) && wp_cache_is_enabled() );
|
|
|
40 |
|
41 |
wp_localize_script('wcml-mc-scripts', 'wcml_mc_settings', $script_vars );
|
42 |
|
inc/currencies/currency-switcher/class-wcml-currency-switcher-ajax.php
CHANGED
@@ -54,6 +54,8 @@ class WCML_Currency_Switcher_Ajax{
|
|
54 |
$switcher_settings[ 'switcher_style' ] = sanitize_text_field( $_POST[ 'switcher_style' ] );
|
55 |
$switcher_settings[ 'template' ] = $currency_switcher_format;
|
56 |
|
|
|
|
|
57 |
foreach( $_POST[ 'color_scheme' ] as $color_id => $color ){
|
58 |
$switcher_settings[ 'color_scheme' ][ sanitize_text_field( $color_id ) ] = sanitize_hex_color( $color );
|
59 |
}
|
54 |
$switcher_settings[ 'switcher_style' ] = sanitize_text_field( $_POST[ 'switcher_style' ] );
|
55 |
$switcher_settings[ 'template' ] = $currency_switcher_format;
|
56 |
|
57 |
+
do_action('wpml_register_single_string', 'woocommerce-multilingual', $switcher_id .'_switcher_format' , $currency_switcher_format );
|
58 |
+
|
59 |
foreach( $_POST[ 'color_scheme' ] as $color_id => $color ){
|
60 |
$switcher_settings[ 'color_scheme' ][ sanitize_text_field( $color_id ) ] = sanitize_hex_color( $color );
|
61 |
}
|
inc/currencies/currency-switcher/class-wcml-currency-switcher-templates.php
CHANGED
@@ -2,19 +2,22 @@
|
|
2 |
|
3 |
class WCML_Currency_Switcher_Templates {
|
4 |
|
5 |
-
|
|
|
6 |
|
7 |
-
|
8 |
* @var woocommerce_wpml
|
9 |
*/
|
10 |
private $woocommerce_wpml;
|
11 |
|
12 |
-
|
13 |
* @var WPML_WP_API $wp_api
|
14 |
*/
|
15 |
private $wp_api;
|
16 |
|
17 |
-
/**
|
|
|
|
|
18 |
private $uploads_path;
|
19 |
|
20 |
/**
|
@@ -22,10 +25,19 @@ class WCML_Currency_Switcher_Templates {
|
|
22 |
*/
|
23 |
private $wpml_file;
|
24 |
|
25 |
-
|
|
|
|
|
26 |
private $templates = false;
|
27 |
|
28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
private $ds = DIRECTORY_SEPARATOR;
|
30 |
|
31 |
public function __construct( woocommerce_wpml $woocommerce_wpml, WPML_WP_API $wp_api, WCML_File $wpml_file = null ) {
|
@@ -153,53 +165,84 @@ class WCML_Currency_Switcher_Templates {
|
|
153 |
return $config;
|
154 |
}
|
155 |
|
156 |
-
|
157 |
|
158 |
-
|
159 |
-
$dirs_to_scan = array();
|
160 |
-
|
161 |
-
$sub_dir = $this->ds . 'templates' . $this->ds . 'currency-switchers';
|
162 |
-
|
163 |
-
$wcml_core_path = WCML_PLUGIN_PATH . $sub_dir;
|
164 |
-
$theme_path = get_template_directory() . $this->ds . 'wpml' . $sub_dir;
|
165 |
-
$child_theme_path = get_stylesheet_directory() . $this->ds . 'wpml' . $sub_dir;
|
166 |
-
$uploads_path = $this->get_uploads_path() . $this->ds . 'wpml' . $sub_dir;
|
167 |
-
|
168 |
-
array_unshift( $dirs_to_scan, $wcml_core_path, $theme_path, $child_theme_path, $uploads_path );
|
169 |
-
|
170 |
-
/**
|
171 |
-
* Filter the directories to scan
|
172 |
-
*
|
173 |
-
* @param array $dirs_to_scan
|
174 |
-
*/
|
175 |
-
$dirs_to_scan = apply_filters( 'wcml_cs_directories_to_scan', $dirs_to_scan );
|
176 |
-
|
177 |
-
$templates_paths = $this->scan_template_paths( $dirs_to_scan );
|
178 |
-
|
179 |
-
foreach ( $templates_paths as $template_path ) {
|
180 |
-
$template_path = $this->wpml_file->fix_dir_separator( $template_path );
|
181 |
-
if ( file_exists( $template_path . $this->ds . WCML_Currency_Switcher_Template::FILENAME ) ) {
|
182 |
-
$tpl = array();
|
183 |
-
$config = $this->parse_template_config( $template_path );
|
184 |
-
|
185 |
-
$tpl['path'] = $template_path;
|
186 |
-
$tpl['name'] = isset( $config['name'] ) ? $config['name'] : null;
|
187 |
-
$tpl['name'] = $this->get_unique_name( $tpl['name'], $template_path );
|
188 |
-
$tpl['slug'] = sanitize_title_with_dashes( $tpl['name'] );
|
189 |
-
$tpl['css'] = $this->get_files( 'css', $template_path, $config );
|
190 |
-
$tpl['js'] = $this->get_files( 'js', $template_path, $config );
|
191 |
-
|
192 |
-
if ( $this->is_core_template( $template_path ) ) {
|
193 |
-
$tpl['is_core'] = true;
|
194 |
-
$tpl['slug'] = isset( $config['slug'] ) ? $config['slug'] : $tpl['slug'];
|
195 |
-
}
|
196 |
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
|
201 |
-
|
202 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
|
204 |
/**
|
205 |
* @param array $dirs_to_scan
|
@@ -321,13 +364,7 @@ class WCML_Currency_Switcher_Templates {
|
|
321 |
|
322 |
foreach ( $templates as $slug => $template ) {
|
323 |
|
324 |
-
|
325 |
-
wp_enqueue_script( $template->get_resource_handler( $k ), $url, array(), WCML_VERSION );
|
326 |
-
}
|
327 |
-
|
328 |
-
foreach ( $template->get_styles() as $k => $url ) {
|
329 |
-
wp_enqueue_style( $template->get_resource_handler( $k ), $url, array(), WCML_VERSION );
|
330 |
-
}
|
331 |
|
332 |
if ( $template->has_styles() ) {
|
333 |
$style_handler = $template->get_inline_style_handler();
|
@@ -367,6 +404,37 @@ class WCML_Currency_Switcher_Templates {
|
|
367 |
}
|
368 |
}
|
369 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
370 |
/**
|
371 |
* @param string $css
|
372 |
*
|
2 |
|
3 |
class WCML_Currency_Switcher_Templates {
|
4 |
|
5 |
+
const CONFIG_FILE = 'config.json';
|
6 |
+
const OPTION_NAME = 'wcml_currency_switcher_template_objects';
|
7 |
|
8 |
+
/**
|
9 |
* @var woocommerce_wpml
|
10 |
*/
|
11 |
private $woocommerce_wpml;
|
12 |
|
13 |
+
/**
|
14 |
* @var WPML_WP_API $wp_api
|
15 |
*/
|
16 |
private $wp_api;
|
17 |
|
18 |
+
/**
|
19 |
+
* @var string $uploads_path
|
20 |
+
*/
|
21 |
private $uploads_path;
|
22 |
|
23 |
/**
|
25 |
*/
|
26 |
private $wpml_file;
|
27 |
|
28 |
+
/**
|
29 |
+
* @var array $templates Collection of WCML_CS_Template
|
30 |
+
*/
|
31 |
private $templates = false;
|
32 |
|
33 |
+
/**
|
34 |
+
* @var array $enqueued_templates
|
35 |
+
*/
|
36 |
+
private $enqueued_templates = array();
|
37 |
+
|
38 |
+
/**
|
39 |
+
* @var string $ds
|
40 |
+
*/
|
41 |
private $ds = DIRECTORY_SEPARATOR;
|
42 |
|
43 |
public function __construct( woocommerce_wpml $woocommerce_wpml, WPML_WP_API $wp_api, WCML_File $wpml_file = null ) {
|
165 |
return $config;
|
166 |
}
|
167 |
|
168 |
+
private function init_available_templates() {
|
169 |
|
170 |
+
$is_admin_ui_page = isset( $_GET['page'] ) && 'wpml-wcml' === $_GET['page'] && isset( $_GET['tab'] ) && 'multi-currency' === $_GET['tab'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
171 |
|
172 |
+
if ( ! $is_admin_ui_page ) {
|
173 |
+
$this->templates = $this->get_templates_from_transient();
|
174 |
+
}
|
175 |
|
176 |
+
if ( $this->templates === false ) {
|
177 |
+
$templates = array();
|
178 |
+
$dirs_to_scan = array();
|
179 |
+
|
180 |
+
$sub_dir = $this->ds . 'templates' . $this->ds . 'currency-switchers';
|
181 |
+
|
182 |
+
$wcml_core_path = WCML_PLUGIN_PATH . $sub_dir;
|
183 |
+
$theme_path = get_template_directory() . $this->ds . 'wpml' . $sub_dir;
|
184 |
+
$child_theme_path = get_stylesheet_directory() . $this->ds . 'wpml' . $sub_dir;
|
185 |
+
$uploads_path = $this->get_uploads_path() . $this->ds . 'wpml' . $sub_dir;
|
186 |
+
|
187 |
+
array_unshift( $dirs_to_scan, $wcml_core_path, $theme_path, $child_theme_path, $uploads_path );
|
188 |
+
|
189 |
+
/**
|
190 |
+
* Filter the directories to scan
|
191 |
+
*
|
192 |
+
* @param array $dirs_to_scan
|
193 |
+
*/
|
194 |
+
$dirs_to_scan = apply_filters( 'wcml_cs_directories_to_scan', $dirs_to_scan );
|
195 |
+
|
196 |
+
$templates_paths = $this->scan_template_paths( $dirs_to_scan );
|
197 |
+
|
198 |
+
foreach ( $templates_paths as $template_path ) {
|
199 |
+
$template_path = $this->wpml_file->fix_dir_separator( $template_path );
|
200 |
+
if ( file_exists( $template_path . $this->ds . WCML_Currency_Switcher_Template::FILENAME ) ) {
|
201 |
+
$tpl = array();
|
202 |
+
$config = $this->parse_template_config( $template_path );
|
203 |
+
|
204 |
+
$tpl['path'] = $template_path;
|
205 |
+
$tpl['name'] = isset( $config['name'] ) ? $config['name'] : null;
|
206 |
+
$tpl['name'] = $this->get_unique_name( $tpl['name'], $template_path );
|
207 |
+
$tpl['slug'] = sanitize_title_with_dashes( $tpl['name'] );
|
208 |
+
$tpl['css'] = $this->get_files( 'css', $template_path, $config );
|
209 |
+
$tpl['js'] = $this->get_files( 'js', $template_path, $config );
|
210 |
+
|
211 |
+
if ( $this->is_core_template( $template_path ) ) {
|
212 |
+
$tpl['is_core'] = true;
|
213 |
+
$tpl['slug'] = isset( $config['slug'] ) ? $config['slug'] : $tpl['slug'];
|
214 |
+
}
|
215 |
+
|
216 |
+
$templates[ $tpl['slug'] ] = new WCML_Currency_Switcher_Template( $this->woocommerce_wpml, $tpl );
|
217 |
+
}
|
218 |
+
}
|
219 |
+
|
220 |
+
update_option( self::OPTION_NAME, $templates );
|
221 |
+
|
222 |
+
$this->set_templates( $templates );
|
223 |
+
}
|
224 |
+
|
225 |
+
}
|
226 |
+
|
227 |
+
private function get_templates_from_transient() {
|
228 |
+
$templates = get_option( self::OPTION_NAME );
|
229 |
+
if ( $templates && $this->are_template_paths_valid( $templates ) ) {
|
230 |
+
return $templates;
|
231 |
+
}
|
232 |
+
return false;
|
233 |
+
}
|
234 |
+
|
235 |
+
|
236 |
+
private function are_template_paths_valid( $templates ) {
|
237 |
+
$paths_are_valid = true;
|
238 |
+
foreach ( $templates as $template ) {
|
239 |
+
if ( ! $template->is_path_valid() ) {
|
240 |
+
$paths_are_valid = false;
|
241 |
+
break;
|
242 |
+
}
|
243 |
+
}
|
244 |
+
return $paths_are_valid;
|
245 |
+
}
|
246 |
|
247 |
/**
|
248 |
* @param array $dirs_to_scan
|
364 |
|
365 |
foreach ( $templates as $slug => $template ) {
|
366 |
|
367 |
+
$this->enqueue_template_assets( $slug, $template );
|
|
|
|
|
|
|
|
|
|
|
|
|
368 |
|
369 |
if ( $template->has_styles() ) {
|
370 |
$style_handler = $template->get_inline_style_handler();
|
404 |
}
|
405 |
}
|
406 |
|
407 |
+
/**
|
408 |
+
* @param string $slug
|
409 |
+
* @param WCML_Currency_Switcher_Template $template
|
410 |
+
*
|
411 |
+
*/
|
412 |
+
public function enqueue_template_assets( $slug, $template ){
|
413 |
+
|
414 |
+
$this->enqueued_templates[] = $slug;
|
415 |
+
|
416 |
+
foreach ( $template->get_scripts() as $k => $url ) {
|
417 |
+
wp_enqueue_script( $template->get_resource_handler( $k ), $url, array(), WCML_VERSION );
|
418 |
+
}
|
419 |
+
|
420 |
+
foreach ( $template->get_styles() as $k => $url ) {
|
421 |
+
wp_enqueue_style( $template->get_resource_handler( $k ), $url, array(), WCML_VERSION );
|
422 |
+
}
|
423 |
+
|
424 |
+
}
|
425 |
+
|
426 |
+
|
427 |
+
/**
|
428 |
+
* @param $slug
|
429 |
+
* @param $template
|
430 |
+
*/
|
431 |
+
public function maybe_late_enqueue_template( $slug, $template ) {
|
432 |
+
if ( ! in_array( $slug, $this->enqueued_templates ) ) {
|
433 |
+
$this->enqueue_template_assets( $slug, $template );
|
434 |
+
}
|
435 |
+
}
|
436 |
+
|
437 |
+
|
438 |
/**
|
439 |
* @param string $css
|
440 |
*
|
inc/currencies/currency-switcher/class-wcml-currency-switcher.php
CHANGED
@@ -79,17 +79,19 @@ class WCML_Currency_Switcher{
|
|
79 |
|
80 |
$args = $this->check_and_convert_switcher_style( $args );
|
81 |
|
82 |
-
$switcher_style_not_available = !isset( $args[ 'switcher_style' ] ) || !$this->woocommerce_wpml->cs_templates->check_is_active( $args[ 'switcher_style' ] );
|
83 |
if (
|
84 |
!isset( $args[ 'preview' ] ) &&
|
85 |
-
$
|
86 |
) {
|
87 |
$args[ 'switcher_style' ] = isset( $currency_switcher_settings[ 'switcher_style' ] ) ? $currency_switcher_settings[ 'switcher_style' ] : $this->woocommerce_wpml->cs_templates->get_first_active();
|
88 |
}
|
89 |
|
90 |
if ( !isset( $args[ 'format' ] ) ) {
|
91 |
-
|
92 |
-
|
|
|
|
|
|
|
93 |
}
|
94 |
|
95 |
if ( !isset( $args[ 'color_scheme' ] ) ) {
|
@@ -134,8 +136,13 @@ class WCML_Currency_Switcher{
|
|
134 |
}
|
135 |
|
136 |
$template = $this->woocommerce_wpml->cs_templates->get_template( $args[ 'switcher_style' ] );
|
137 |
-
|
138 |
-
|
|
|
|
|
|
|
|
|
|
|
139 |
} else{
|
140 |
|
141 |
if( is_admin() ){
|
@@ -157,9 +164,11 @@ class WCML_Currency_Switcher{
|
|
157 |
|
158 |
$css_classes = $this->get_css_classes( array( $args[ 'switcher_style' ], $args[ 'switcher_id' ], 'wcml_currency_switcher' ) );
|
159 |
|
|
|
|
|
160 |
$model = array(
|
161 |
'css_classes' => $css_classes,
|
162 |
-
'format' =>
|
163 |
'currencies' => $currencies,
|
164 |
'selected_currency' => $this->woocommerce_wpml->multi_currency->get_client_currency()
|
165 |
);
|
79 |
|
80 |
$args = $this->check_and_convert_switcher_style( $args );
|
81 |
|
|
|
82 |
if (
|
83 |
!isset( $args[ 'preview' ] ) &&
|
84 |
+
!isset( $args[ 'switcher_style' ] )
|
85 |
) {
|
86 |
$args[ 'switcher_style' ] = isset( $currency_switcher_settings[ 'switcher_style' ] ) ? $currency_switcher_settings[ 'switcher_style' ] : $this->woocommerce_wpml->cs_templates->get_first_active();
|
87 |
}
|
88 |
|
89 |
if ( !isset( $args[ 'format' ] ) ) {
|
90 |
+
|
91 |
+
$args['format'] = '%name% (%symbol%) - %code%';
|
92 |
+
if( isset( $currency_switcher_settings[ 'template' ] ) && '' !== $currency_switcher_settings[ 'template' ] ){
|
93 |
+
$args[ 'format' ] = apply_filters( 'wpml_translate_single_string', $currency_switcher_settings[ 'template' ], 'woocommerce-multilingual', $args[ 'switcher_id' ] .'_switcher_format' ) ;
|
94 |
+
}
|
95 |
}
|
96 |
|
97 |
if ( !isset( $args[ 'color_scheme' ] ) ) {
|
136 |
}
|
137 |
|
138 |
$template = $this->woocommerce_wpml->cs_templates->get_template( $args[ 'switcher_style' ] );
|
139 |
+
|
140 |
+
if( $template ) {
|
141 |
+
$this->woocommerce_wpml->cs_templates->maybe_late_enqueue_template( $args['switcher_style'], $template );
|
142 |
+
$template->set_model( $this->get_model_data( $args, $currencies ) );
|
143 |
+
$preview = $template->get_view();
|
144 |
+
}
|
145 |
+
|
146 |
} else{
|
147 |
|
148 |
if( is_admin() ){
|
164 |
|
165 |
$css_classes = $this->get_css_classes( array( $args[ 'switcher_style' ], $args[ 'switcher_id' ], 'wcml_currency_switcher' ) );
|
166 |
|
167 |
+
$format = isset( $args['format'] ) ? $args['format'] : '%name% (%symbol%) - %code%';
|
168 |
+
|
169 |
$model = array(
|
170 |
'css_classes' => $css_classes,
|
171 |
+
'format' => $format,
|
172 |
'currencies' => $currencies,
|
173 |
'selected_currency' => $this->woocommerce_wpml->multi_currency->get_client_currency()
|
174 |
);
|
inc/template-classes/class-wcml-menus-wrap.php
CHANGED
@@ -95,14 +95,16 @@ class WCML_Menus_Wrap extends WPML_Templates_Factory {
|
|
95 |
'title' => !$this->woocommerce_wpml->terms->is_fully_translated( 'product_cat' ) ? __('You have untranslated terms!', 'woocommerce-multilingual') : '',
|
96 |
'active' => $current_tab == 'product_cat' ? 'nav-tab-active':'',
|
97 |
'url' => admin_url('admin.php?page=wpml-wcml&tab=product_cat'),
|
98 |
-
'translated'=> $this->woocommerce_wpml->terms->is_fully_translated( 'product_cat' )
|
|
|
99 |
),
|
100 |
'product_tag' => array(
|
101 |
'name' => __('Tags', 'woocommerce-multilingual'),
|
102 |
'title' => !$this->woocommerce_wpml->terms->is_fully_translated( 'product_tag' ) ? __('You have untranslated terms!', 'woocommerce-multilingual') : '',
|
103 |
'active' => $current_tab == 'product_tag' ? 'nav-tab-active':'',
|
104 |
'url' => admin_url('admin.php?page=wpml-wcml&tab=product_tag'),
|
105 |
-
'translated'=> $this->woocommerce_wpml->terms->is_fully_translated( 'product_tag' )
|
|
|
106 |
)
|
107 |
),
|
108 |
'custom_taxonomies' => array(
|
@@ -123,7 +125,8 @@ class WCML_Menus_Wrap extends WPML_Templates_Factory {
|
|
123 |
'title' => !$this->woocommerce_wpml->terms->is_fully_translated( 'product_shipping_class' ) ? __('You have untranslated terms!', 'woocommerce-multilingual') : '',
|
124 |
'active' => $current_tab == 'product_shipping_class' ? 'nav-tab-active':'',
|
125 |
'url' => admin_url('admin.php?page=wpml-wcml&tab=product_shipping_class'),
|
126 |
-
'translated'=> $this->woocommerce_wpml->terms->is_fully_translated( 'product_shipping_class' )
|
|
|
127 |
),
|
128 |
'settings' => array(
|
129 |
'name' => __( 'Settings', 'woocommerce-multilingual' ),
|
@@ -156,7 +159,7 @@ class WCML_Menus_Wrap extends WPML_Templates_Factory {
|
|
156 |
'rate' => array(
|
157 |
'on' => !isset( $this->woocommerce_wpml->settings['rate-block'] ),
|
158 |
'message' => sprintf(__('Thank you for using %sWooCommerce Multilingual%s! You can express your love and
|
159 |
-
support by %s rating our plugin and saying that %sit works%s for you.', 'woocommerce-
|
160 |
'<strong>',
|
161 |
'</strong>',
|
162 |
'<a href="https://wordpress.org/support/view/plugin-reviews/woocommerce-multilingual?filter=5#postform" target="_blank">★★★★★</a>',
|
95 |
'title' => !$this->woocommerce_wpml->terms->is_fully_translated( 'product_cat' ) ? __('You have untranslated terms!', 'woocommerce-multilingual') : '',
|
96 |
'active' => $current_tab == 'product_cat' ? 'nav-tab-active':'',
|
97 |
'url' => admin_url('admin.php?page=wpml-wcml&tab=product_cat'),
|
98 |
+
'translated'=> $this->woocommerce_wpml->terms->is_fully_translated( 'product_cat' ),
|
99 |
+
'is_translatable' => is_taxonomy_translated( 'product_cat' )
|
100 |
),
|
101 |
'product_tag' => array(
|
102 |
'name' => __('Tags', 'woocommerce-multilingual'),
|
103 |
'title' => !$this->woocommerce_wpml->terms->is_fully_translated( 'product_tag' ) ? __('You have untranslated terms!', 'woocommerce-multilingual') : '',
|
104 |
'active' => $current_tab == 'product_tag' ? 'nav-tab-active':'',
|
105 |
'url' => admin_url('admin.php?page=wpml-wcml&tab=product_tag'),
|
106 |
+
'translated'=> $this->woocommerce_wpml->terms->is_fully_translated( 'product_tag' ),
|
107 |
+
'is_translatable' => is_taxonomy_translated( 'product_tag' )
|
108 |
)
|
109 |
),
|
110 |
'custom_taxonomies' => array(
|
125 |
'title' => !$this->woocommerce_wpml->terms->is_fully_translated( 'product_shipping_class' ) ? __('You have untranslated terms!', 'woocommerce-multilingual') : '',
|
126 |
'active' => $current_tab == 'product_shipping_class' ? 'nav-tab-active':'',
|
127 |
'url' => admin_url('admin.php?page=wpml-wcml&tab=product_shipping_class'),
|
128 |
+
'translated'=> $this->woocommerce_wpml->terms->is_fully_translated( 'product_shipping_class' ),
|
129 |
+
'is_translatable' => is_taxonomy_translated( 'product_shipping_class' )
|
130 |
),
|
131 |
'settings' => array(
|
132 |
'name' => __( 'Settings', 'woocommerce-multilingual' ),
|
159 |
'rate' => array(
|
160 |
'on' => !isset( $this->woocommerce_wpml->settings['rate-block'] ),
|
161 |
'message' => sprintf(__('Thank you for using %sWooCommerce Multilingual%s! You can express your love and
|
162 |
+
support by %s rating our plugin and saying that %sit works%s for you.', 'woocommerce-multilingual' ),
|
163 |
'<strong>',
|
164 |
'</strong>',
|
165 |
'<a href="https://wordpress.org/support/view/plugin-reviews/woocommerce-multilingual?filter=5#postform" target="_blank">★★★★★</a>',
|
inc/template-classes/currency-switcher/class-wcml-currency-switcher-template.php
CHANGED
@@ -205,4 +205,15 @@ class WCML_Currency_Switcher_Template extends WPML_Templates_Factory {
|
|
205 |
public function is_core() {
|
206 |
return isset( $this->template['is_core'] ) ? (bool) $this->template['is_core'] : false;
|
207 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
208 |
}
|
205 |
public function is_core() {
|
206 |
return isset( $this->template['is_core'] ) ? (bool) $this->template['is_core'] : false;
|
207 |
}
|
208 |
+
|
209 |
+
public function is_path_valid() {
|
210 |
+
$valid = true;
|
211 |
+
foreach ( $this->template_paths as $path ) {
|
212 |
+
if ( ! file_exists( $path ) ) {
|
213 |
+
$valid = false;
|
214 |
+
break;
|
215 |
+
}
|
216 |
+
}
|
217 |
+
return $valid;
|
218 |
+
}
|
219 |
}
|
inc/translation-editor/class-wcml-editor-ui-product-job.php
CHANGED
@@ -276,7 +276,7 @@ class WCML_Editor_UI_Product_Job extends WPML_Editor_UI_Job {
|
|
276 |
|
277 |
$taxonomies = get_object_taxonomies( 'product', 'objects' );
|
278 |
foreach( $taxonomies as $taxonomy => $taxonomy_obj ){
|
279 |
-
if( $taxonomy
|
280 |
$product_terms = wp_get_post_terms( $this->product_id, $taxonomy );
|
281 |
if( $product_terms ){
|
282 |
$tax_section = new WPML_Editor_UI_Field_Section( $taxonomy_obj->label, __( 'Changes in these translations will affect terms in general! ( Not only for this product )', 'woocommerce-multilingual' ));
|
@@ -500,7 +500,7 @@ class WCML_Editor_UI_Product_Job extends WPML_Editor_UI_Job {
|
|
500 |
$taxonomies = get_object_taxonomies( 'product', 'objects' );
|
501 |
|
502 |
foreach( $taxonomies as $taxonomy => $taxonomy_obj ){
|
503 |
-
if( $taxonomy
|
504 |
$product_terms = wp_get_post_terms( $this->product_id, $taxonomy );
|
505 |
if( !is_wp_error( $product_terms ) ){
|
506 |
foreach( $product_terms as $term ){
|
@@ -684,7 +684,11 @@ class WCML_Editor_UI_Product_Job extends WPML_Editor_UI_Job {
|
|
684 |
$_POST[ 'new_title' ] = $translations[ md5( 'title' ) ];
|
685 |
$_POST[ 'new_slug' ] = $new_post_name;
|
686 |
$new_slug = wp_unique_post_slug( $new_post_name, $tr_product_id, $this->original_post->post_status, $this->original_post->post_type, $args[ 'post_parent' ] );
|
687 |
-
|
|
|
|
|
|
|
|
|
688 |
}
|
689 |
|
690 |
$this->sitepress->set_element_language_details( $tr_product_id, 'post_' . $this->original_post->post_type, $product_trid, $this->get_target_language() );
|
276 |
|
277 |
$taxonomies = get_object_taxonomies( 'product', 'objects' );
|
278 |
foreach( $taxonomies as $taxonomy => $taxonomy_obj ){
|
279 |
+
if( $this->woocommerce_wpml->terms->is_translatable_wc_taxonomy( $taxonomy ) && is_taxonomy_translated( $taxonomy ) ){
|
280 |
$product_terms = wp_get_post_terms( $this->product_id, $taxonomy );
|
281 |
if( $product_terms ){
|
282 |
$tax_section = new WPML_Editor_UI_Field_Section( $taxonomy_obj->label, __( 'Changes in these translations will affect terms in general! ( Not only for this product )', 'woocommerce-multilingual' ));
|
500 |
$taxonomies = get_object_taxonomies( 'product', 'objects' );
|
501 |
|
502 |
foreach( $taxonomies as $taxonomy => $taxonomy_obj ){
|
503 |
+
if( $this->woocommerce_wpml->terms->is_translatable_wc_taxonomy( $taxonomy ) && is_taxonomy_translated( $taxonomy ) ){
|
504 |
$product_terms = wp_get_post_terms( $this->product_id, $taxonomy );
|
505 |
if( !is_wp_error( $product_terms ) ){
|
506 |
foreach( $product_terms as $term ){
|
684 |
$_POST[ 'new_title' ] = $translations[ md5( 'title' ) ];
|
685 |
$_POST[ 'new_slug' ] = $new_post_name;
|
686 |
$new_slug = wp_unique_post_slug( $new_post_name, $tr_product_id, $this->original_post->post_status, $this->original_post->post_type, $args[ 'post_parent' ] );
|
687 |
+
|
688 |
+
wp_update_post( array(
|
689 |
+
'ID' => $tr_product_id,
|
690 |
+
'post_name' => $new_slug
|
691 |
+
) );
|
692 |
}
|
693 |
|
694 |
$this->sitepress->set_element_language_details( $tr_product_id, 'post_' . $this->original_post->post_type, $product_trid, $this->get_target_language() );
|
inc/translation-editor/class-wcml-synchronize-product-data.php
CHANGED
@@ -43,6 +43,8 @@ class WCML_Synchronize_Product_Data{
|
|
43 |
add_action( 'wpml_translation_update', array( $this, 'icl_connect_translations_action' ) );
|
44 |
|
45 |
add_action( 'deleted_term_relationships', array( $this, 'delete_term_relationships_update_term_count' ), 10, 2 );
|
|
|
|
|
46 |
}
|
47 |
|
48 |
add_action( 'woocommerce_reduce_order_stock', array( $this, 'sync_product_stocks_reduce' ) );
|
@@ -174,14 +176,14 @@ class WCML_Synchronize_Product_Data{
|
|
174 |
$tt_names = array();
|
175 |
if ($terms) {
|
176 |
foreach ($terms as $term) {
|
177 |
-
|
178 |
$tt_names[] = $term->name;
|
179 |
continue;
|
180 |
}
|
181 |
$tt_ids[] = $term->term_id;
|
182 |
}
|
183 |
|
184 |
-
|
185 |
wp_set_post_terms( $tr_product_id, $tt_names, $taxonomy );
|
186 |
}else{
|
187 |
$this->wcml_update_term_count_by_ids( $tt_ids, $lang, $taxonomy, $tr_product_id );
|
@@ -678,4 +680,29 @@ class WCML_Synchronize_Product_Data{
|
|
678 |
return $is_sync_needed;
|
679 |
}
|
680 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
681 |
}
|
43 |
add_action( 'wpml_translation_update', array( $this, 'icl_connect_translations_action' ) );
|
44 |
|
45 |
add_action( 'deleted_term_relationships', array( $this, 'delete_term_relationships_update_term_count' ), 10, 2 );
|
46 |
+
|
47 |
+
add_action( 'woocommerce_product_set_visibility', array( $this, 'sync_product_translations_visibility' ) );
|
48 |
}
|
49 |
|
50 |
add_action( 'woocommerce_reduce_order_stock', array( $this, 'sync_product_stocks_reduce' ) );
|
176 |
$tt_names = array();
|
177 |
if ($terms) {
|
178 |
foreach ($terms as $term) {
|
179 |
+
if ( in_array( $term->taxonomy, array( 'product_type', 'product_visibility' ) ) ) {
|
180 |
$tt_names[] = $term->name;
|
181 |
continue;
|
182 |
}
|
183 |
$tt_ids[] = $term->term_id;
|
184 |
}
|
185 |
|
186 |
+
if ( ! $this->woocommerce_wpml->terms->is_translatable_wc_taxonomy( $taxonomy ) ) {
|
187 |
wp_set_post_terms( $tr_product_id, $tt_names, $taxonomy );
|
188 |
}else{
|
189 |
$this->wcml_update_term_count_by_ids( $tt_ids, $lang, $taxonomy, $tr_product_id );
|
680 |
return $is_sync_needed;
|
681 |
}
|
682 |
|
683 |
+
public function sync_product_translations_visibility( $product_id ) {
|
684 |
+
|
685 |
+
if ( $this->woocommerce_wpml->products->is_original_product( $product_id ) ) {
|
686 |
+
|
687 |
+
$trid = $this->sitepress->get_element_trid( $product_id, 'post_product' );
|
688 |
+
$translations = $this->sitepress->get_element_translations( $trid, 'post_product' );
|
689 |
+
|
690 |
+
if ( $translations ) {
|
691 |
+
|
692 |
+
$product = wc_get_product( $product_id );
|
693 |
+
$terms = array();
|
694 |
+
if ( $product->is_featured() ) {
|
695 |
+
$terms[] = 'featured';
|
696 |
+
}
|
697 |
+
|
698 |
+
foreach ( $translations as $translation ) {
|
699 |
+
if ( ! $translation->original ) {
|
700 |
+
wp_set_post_terms( $translation->element_id, $terms, 'product_visibility', false );
|
701 |
+
}
|
702 |
+
}
|
703 |
+
}
|
704 |
+
}
|
705 |
+
|
706 |
+
}
|
707 |
+
|
708 |
}
|
inc/translation-editor/class-wcml-synchronize-variations-data.php
CHANGED
@@ -2,22 +2,29 @@
|
|
2 |
|
3 |
class WCML_Synchronize_Variations_Data{
|
4 |
|
5 |
-
|
6 |
-
|
|
|
|
|
|
|
7 |
private $wpdb;
|
8 |
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
|
|
13 |
|
14 |
-
|
15 |
-
add_action( 'wp_ajax_woocommerce_remove_variations', array( $this, 'remove_translations_for_variations' ), 9 );
|
16 |
|
17 |
-
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
-
add_action( 'wp_ajax_woocommerce_remove_variation', array( $this, 'remove_variation_ajax' ), 9 );
|
21 |
}
|
22 |
|
23 |
public function sync_product_variations_action( $product_id ){
|
@@ -206,9 +213,10 @@ class WCML_Synchronize_Variations_Data{
|
|
206 |
$name = $tt;
|
207 |
}
|
208 |
|
209 |
-
|
|
|
|
|
210 |
if ( !empty( $terms ) ) {
|
211 |
-
$tax_sync = array();
|
212 |
foreach ( $terms as $term ) {
|
213 |
if ( $this->sitepress->is_translated_taxonomy( $tt ) ) {
|
214 |
$term_id = apply_filters( 'translate_object_id', $term->term_id, $name, false, $lang );
|
@@ -221,6 +229,8 @@ class WCML_Synchronize_Variations_Data{
|
|
221 |
}
|
222 |
//set the fourth parameter in 'true' because we need to add new terms, instead of replacing all
|
223 |
wp_set_object_terms( $tr_variation_id, $tax_sync, $name, true );
|
|
|
|
|
224 |
}
|
225 |
}
|
226 |
}
|
2 |
|
3 |
class WCML_Synchronize_Variations_Data{
|
4 |
|
5 |
+
/** @var woocommerce_wpml */
|
6 |
+
private $woocommerce_wpml;
|
7 |
+
/** @var SitePress */
|
8 |
+
private $sitepress;
|
9 |
+
/** @var wpdb */
|
10 |
private $wpdb;
|
11 |
|
12 |
+
public function __construct( woocommerce_wpml $woocommerce_wpml, SitePress $sitepress, wpdb $wpdb ) {
|
13 |
+
$this->woocommerce_wpml = $woocommerce_wpml;
|
14 |
+
$this->sitepress = $sitepress;
|
15 |
+
$this->wpdb = $wpdb;
|
16 |
+
}
|
17 |
|
18 |
+
public function add_hooks(){
|
|
|
19 |
|
20 |
+
add_action( 'woocommerce_ajax_save_product_variations', array( $this, 'sync_product_variations_action' ), 11 );
|
21 |
+
add_action( 'wp_ajax_woocommerce_remove_variations', array( $this, 'remove_translations_for_variations' ), 9 );
|
22 |
+
|
23 |
+
//save taxonomy in WPML interface
|
24 |
+
add_action( 'wp_ajax_wpml_tt_save_term_translation', array( $this, 'update_taxonomy_in_variations' ), 7 );
|
25 |
+
|
26 |
+
add_action( 'wp_ajax_woocommerce_remove_variation', array( $this, 'remove_variation_ajax' ), 9 );
|
27 |
|
|
|
28 |
}
|
29 |
|
30 |
public function sync_product_variations_action( $product_id ){
|
213 |
$name = $tt;
|
214 |
}
|
215 |
|
216 |
+
$terms = get_the_terms( $original_variation_id, $name );
|
217 |
+
$tax_sync = array();
|
218 |
+
|
219 |
if ( !empty( $terms ) ) {
|
|
|
220 |
foreach ( $terms as $term ) {
|
221 |
if ( $this->sitepress->is_translated_taxonomy( $tt ) ) {
|
222 |
$term_id = apply_filters( 'translate_object_id', $term->term_id, $name, false, $lang );
|
229 |
}
|
230 |
//set the fourth parameter in 'true' because we need to add new terms, instead of replacing all
|
231 |
wp_set_object_terms( $tr_variation_id, $tax_sync, $name, true );
|
232 |
+
}elseif( ! $this->woocommerce_wpml->terms->is_translatable_wc_taxonomy( $name ) ){
|
233 |
+
wp_set_object_terms( $tr_variation_id, $tax_sync, $name );
|
234 |
}
|
235 |
}
|
236 |
}
|
locale/orig/woocommerce-multilingual.po
CHANGED
@@ -13,683 +13,389 @@ msgstr ""
|
|
13 |
"Language:en\n"
|
14 |
"MIME-Version: 1.0\n"
|
15 |
|
16 |
-
#
|
17 |
-
# '
|
18 |
-
# '
|
19 |
-
|
20 |
-
msgid "One-off cost for the booking as a whole."
|
21 |
-
msgstr ""
|
22 |
-
|
23 |
-
# 'label' => get_woocommerce_currency_symbol( $currency_code ),
|
24 |
-
# 'description' => __( 'This is the cost per block booked. All other costs (for resources and persons) are added to this.', 'woocommerce-bookings' ),
|
25 |
-
# 'value' => get_post_meta( $post_id, '_wc_booking_base_cost_' . $currency_code, true ),
|
26 |
|
27 |
-
msgid "
|
28 |
msgstr ""
|
29 |
|
30 |
-
# '
|
31 |
-
# '
|
32 |
-
# '
|
33 |
|
34 |
-
msgid "
|
35 |
msgstr ""
|
36 |
|
37 |
-
#
|
38 |
-
#
|
39 |
-
#
|
40 |
|
41 |
-
msgid "
|
42 |
msgstr ""
|
43 |
|
44 |
-
#
|
45 |
-
#
|
46 |
-
#
|
47 |
|
48 |
-
msgid "
|
49 |
msgstr ""
|
50 |
|
51 |
-
#
|
52 |
-
#
|
53 |
-
#
|
54 |
|
55 |
-
msgid "
|
56 |
msgstr ""
|
57 |
|
58 |
-
#
|
59 |
-
# $
|
60 |
-
#
|
61 |
|
62 |
-
msgid "
|
63 |
msgstr ""
|
64 |
|
65 |
-
#
|
66 |
-
#
|
67 |
-
#
|
68 |
|
69 |
-
msgid "
|
70 |
msgstr ""
|
71 |
|
72 |
-
#
|
73 |
-
#
|
74 |
-
# $
|
75 |
|
76 |
-
msgid "
|
77 |
msgstr ""
|
78 |
|
79 |
-
#
|
80 |
-
#
|
81 |
-
#
|
82 |
|
83 |
-
msgid "
|
84 |
msgstr ""
|
85 |
|
86 |
-
#
|
87 |
-
# $
|
88 |
-
#
|
89 |
|
90 |
-
msgid "
|
91 |
msgstr ""
|
92 |
|
93 |
-
#
|
94 |
-
# $
|
95 |
-
# $
|
96 |
|
97 |
-
msgid "
|
98 |
msgstr ""
|
99 |
|
100 |
-
# $
|
101 |
-
# $
|
102 |
-
#
|
103 |
|
104 |
-
msgid "
|
105 |
msgstr ""
|
106 |
|
107 |
-
#
|
108 |
-
#
|
109 |
-
#
|
110 |
|
111 |
-
msgid "
|
112 |
msgstr ""
|
113 |
|
114 |
-
#
|
115 |
-
#
|
116 |
-
#
|
117 |
|
118 |
-
msgid "
|
119 |
msgstr ""
|
120 |
|
121 |
-
#
|
122 |
-
#
|
123 |
-
# '
|
124 |
|
125 |
-
msgid "
|
126 |
msgstr ""
|
127 |
|
128 |
-
#
|
129 |
-
# <
|
130 |
-
#
|
131 |
|
132 |
-
msgid "
|
133 |
msgstr ""
|
134 |
|
135 |
-
# $
|
136 |
-
# $
|
137 |
-
# $
|
138 |
|
139 |
-
msgid "
|
140 |
msgstr ""
|
141 |
|
142 |
-
# $
|
143 |
-
#
|
144 |
-
#
|
145 |
|
146 |
-
msgid "
|
147 |
msgstr ""
|
148 |
|
149 |
-
# $
|
150 |
-
#
|
151 |
-
#
|
152 |
|
153 |
-
msgid "You
|
154 |
msgstr ""
|
155 |
|
156 |
-
#
|
157 |
-
#
|
158 |
-
#
|
159 |
|
160 |
-
msgid "
|
161 |
msgstr ""
|
162 |
|
163 |
-
# $
|
164 |
-
# $
|
165 |
-
#
|
166 |
|
167 |
-
msgid "
|
168 |
msgstr ""
|
169 |
|
170 |
-
#
|
171 |
-
#
|
172 |
-
#
|
173 |
|
174 |
-
msgid "
|
175 |
msgstr ""
|
176 |
|
177 |
-
#
|
178 |
-
# $
|
179 |
-
#
|
180 |
|
181 |
-
msgid "
|
182 |
msgstr ""
|
183 |
|
184 |
-
#
|
185 |
-
#
|
186 |
-
# '
|
187 |
|
188 |
-
msgid "
|
189 |
msgstr ""
|
190 |
|
191 |
-
#
|
192 |
-
#
|
193 |
-
#
|
194 |
|
195 |
-
msgid "
|
196 |
msgstr ""
|
197 |
|
198 |
-
#
|
199 |
-
#
|
200 |
-
#
|
201 |
|
202 |
-
msgid "
|
203 |
msgstr ""
|
204 |
|
205 |
-
#
|
206 |
-
#
|
207 |
-
#
|
208 |
|
209 |
-
msgid "
|
210 |
msgstr ""
|
211 |
|
212 |
-
# $
|
213 |
-
# sprintf( __( '
|
214 |
-
# '
|
215 |
|
216 |
-
msgid "
|
217 |
msgstr ""
|
218 |
|
219 |
-
#
|
220 |
-
#
|
221 |
-
#
|
222 |
|
223 |
-
msgid "
|
224 |
msgstr ""
|
225 |
|
226 |
-
#
|
227 |
-
#
|
228 |
-
#
|
229 |
|
230 |
-
msgid "
|
231 |
msgstr ""
|
232 |
|
233 |
-
#
|
234 |
-
# $
|
235 |
-
#
|
236 |
|
237 |
-
msgid "
|
238 |
msgstr ""
|
239 |
|
240 |
-
#
|
241 |
-
#
|
242 |
-
#
|
243 |
|
244 |
-
msgid "
|
245 |
msgstr ""
|
246 |
|
247 |
-
#
|
248 |
-
#
|
249 |
-
#
|
250 |
|
251 |
-
msgid "
|
252 |
msgstr ""
|
253 |
|
254 |
-
#
|
255 |
-
#
|
256 |
-
#
|
257 |
|
258 |
-
msgid "
|
259 |
msgstr ""
|
260 |
|
261 |
-
#
|
262 |
-
#
|
263 |
-
# '
|
264 |
|
265 |
-
msgid "
|
266 |
msgstr ""
|
267 |
|
268 |
-
#
|
269 |
-
#
|
270 |
-
#
|
271 |
|
272 |
-
msgid "
|
273 |
msgstr ""
|
274 |
|
275 |
-
#
|
276 |
-
#
|
277 |
-
#
|
278 |
|
279 |
-
msgid "
|
280 |
msgstr ""
|
281 |
|
282 |
-
# $
|
283 |
-
#
|
284 |
-
#
|
285 |
|
286 |
-
msgid "
|
287 |
msgstr ""
|
288 |
|
289 |
-
#
|
290 |
-
#
|
291 |
-
#
|
292 |
|
293 |
-
msgid "
|
294 |
msgstr ""
|
295 |
|
296 |
-
#
|
297 |
-
#
|
298 |
-
#
|
299 |
|
300 |
-
msgid "
|
301 |
msgstr ""
|
302 |
|
303 |
-
#
|
304 |
-
#
|
305 |
-
#
|
306 |
|
307 |
-
msgid "
|
308 |
msgstr ""
|
309 |
|
310 |
-
#
|
311 |
-
#
|
312 |
-
#
|
313 |
|
314 |
-
msgid "
|
315 |
msgstr ""
|
316 |
|
317 |
-
#
|
318 |
-
#
|
319 |
-
#
|
320 |
|
321 |
-
msgid "
|
322 |
msgstr ""
|
323 |
|
324 |
-
#
|
325 |
-
#
|
326 |
-
# $
|
327 |
|
328 |
-
msgid "
|
329 |
msgstr ""
|
330 |
|
331 |
-
# $
|
332 |
-
#
|
333 |
-
#
|
334 |
|
335 |
-
msgid "
|
336 |
msgstr ""
|
337 |
|
338 |
-
# if
|
339 |
-
#
|
340 |
-
#
|
341 |
|
342 |
-
msgid "
|
343 |
msgstr ""
|
344 |
|
345 |
-
# }
|
346 |
-
#
|
347 |
-
#
|
348 |
|
349 |
-
msgid "
|
350 |
msgstr ""
|
351 |
|
352 |
-
#
|
353 |
-
# $
|
354 |
# }
|
355 |
|
356 |
-
msgid "
|
357 |
msgstr ""
|
358 |
|
359 |
-
#
|
360 |
-
#
|
361 |
-
#
|
362 |
|
363 |
-
msgid "
|
364 |
msgstr ""
|
365 |
|
366 |
-
#
|
367 |
-
#
|
368 |
-
# $
|
369 |
|
370 |
-
msgid "
|
371 |
msgstr ""
|
372 |
|
373 |
-
#
|
374 |
-
#
|
375 |
-
#
|
376 |
|
377 |
-
msgid "
|
378 |
msgstr ""
|
379 |
|
380 |
-
#
|
381 |
-
#
|
382 |
-
#
|
383 |
|
384 |
-
msgid "
|
385 |
msgstr ""
|
386 |
|
387 |
-
# if
|
388 |
-
# $
|
389 |
-
#
|
390 |
|
391 |
-
msgid "
|
392 |
msgstr ""
|
393 |
|
394 |
-
#
|
395 |
-
#
|
396 |
-
#
|
397 |
|
398 |
-
msgid "
|
399 |
msgstr ""
|
400 |
|
401 |
-
#
|
402 |
-
#
|
403 |
-
#
|
404 |
|
405 |
-
msgid "
|
406 |
-
msgstr ""
|
407 |
-
|
408 |
-
# 'installing' => __( 'Installing %s', 'installer' ),
|
409 |
-
# 'updating' => __( 'Updating %s', 'installer' ),
|
410 |
-
# 'activating' => __( 'Activating %s', 'installer' )
|
411 |
-
|
412 |
-
msgid "Updating %s"
|
413 |
-
msgstr ""
|
414 |
-
|
415 |
-
# 'updating' => __( 'Updating %s', 'installer' ),
|
416 |
-
# 'activating' => __( 'Activating %s', 'installer' )
|
417 |
-
# );
|
418 |
-
|
419 |
-
msgid "Activating %s"
|
420 |
-
msgstr ""
|
421 |
-
|
422 |
-
# $this->menu_multisite_redirect();
|
423 |
-
# add_options_page(__('Installer', 'installer'), __('Installer', 'installer'), 'manage_options', 'installer', array($this, 'show_products')) ;
|
424 |
-
# }else{
|
425 |
-
|
426 |
-
msgid "Installer"
|
427 |
-
msgstr ""
|
428 |
-
|
429 |
-
# public function plugins_action_links_registered($links){
|
430 |
-
# $links[] = '<a href="' . $this->menu_url() . '">' . __('Registered', 'installer') . '</a>';
|
431 |
-
# return $links;
|
432 |
-
|
433 |
-
msgid "Registered"
|
434 |
-
msgstr ""
|
435 |
-
|
436 |
-
# public function plugins_action_links_not_registered($links){
|
437 |
-
# $links[] = '<a href="' . $this->menu_url() . '">' . __('Register', 'installer') . '</a>';
|
438 |
-
# return $links;
|
439 |
-
|
440 |
-
msgid "Register"
|
441 |
-
msgstr ""
|
442 |
-
|
443 |
-
# 'type' => 'error',
|
444 |
-
# 'text' => sprintf( __( 'You are using an invalid site key defined as the constant %s (most likely in wp-config.php).
|
445 |
-
# Please remove it or use the correct value in order to be able to register correctly.', 'installer' ), 'OTGS_INSTALLER_SITE_KEY_' . strtoupper( $repository_id ) )
|
446 |
-
|
447 |
-
msgid "You are using an invalid site key defined as the constant %s (most likely in wp-config.php). \r\n Please remove it or use the correct value in order to be able to register correctly."
|
448 |
-
msgstr ""
|
449 |
-
|
450 |
-
# echo '<div class="updated error otgs-is-dismissible"><p>';
|
451 |
-
# printf(__("To get automatic updates, you need to register %s for this site. %sRegister %s%s", 'sitepress'),
|
452 |
-
# $nag['product_name'], '<a class="button-primary" href="' . $this->menu_url() . '">', $nag['product_name'], '</a>');
|
453 |
-
|
454 |
-
msgid "To get automatic updates, you need to register %s for this site. %sRegister %s%s"
|
455 |
-
msgstr ""
|
456 |
-
|
457 |
-
# echo '</p>';
|
458 |
-
# echo '<span class="installer-dismiss-nag notice-dismiss" data-repository="' . $nag['repository_id'] . '"><span class="screen-reader-text">' . __('Dismiss', 'sitepress') . '</span></span>';
|
459 |
-
# echo '</div>';
|
460 |
-
|
461 |
-
msgid "Dismiss"
|
462 |
-
msgstr ""
|
463 |
-
|
464 |
-
#
|
465 |
-
# $tabs['commercial'] = __('Commercial', 'installer');
|
466 |
-
#
|
467 |
-
|
468 |
-
msgid "Commercial"
|
469 |
-
msgstr ""
|
470 |
-
|
471 |
-
#
|
472 |
-
# $error = sprintf(__("Installer cannot display the products information because the automatic updating for %s was explicitly disabled with the configuration below (usually in wp-config.php):", 'installer'), strtoupper( join(', ', $repository_names) ));
|
473 |
-
# $error .= '<br /><br /><code>define("OTGS_DISABLE_AUTO_UPDATES", true);</code><br /><br />';
|
474 |
-
|
475 |
-
msgid "Installer cannot display the products information because the automatic updating for %s was explicitly disabled with the configuration below (usually in wp-config.php):"
|
476 |
-
msgstr ""
|
477 |
-
|
478 |
-
# $error .= '<br /><br /><code>define("OTGS_DISABLE_AUTO_UPDATES", true);</code><br /><br />';
|
479 |
-
# $error .= sprintf(__("In order to see the products information, please run the %smanual updates check%s to initialize the products list or (temporarily) remove the above code.", 'installer'), '<a href="' . admin_url('update-core.php') . '">', '</a>');
|
480 |
-
#
|
481 |
-
|
482 |
-
msgid "In order to see the products information, please run the %smanual updates check%s to initialize the products list or (temporarily) remove the above code."
|
483 |
-
msgstr ""
|
484 |
-
|
485 |
-
#
|
486 |
-
# $error = sprintf(__("Installer cannot contact our updates server to get information about the available products and check for new versions. If you are seeing this message for the first time, you can ignore it, as it may be a temporary communication problem. If the problem persists and your WordPress admin is slowing down, you can disable automated version checks. Add the following line to your wp-config.php file:", 'installer'), strtoupper($id));
|
487 |
-
# $error .= '<br /><br /><code>define("OTGS_DISABLE_AUTO_UPDATES", true);</code>';
|
488 |
-
|
489 |
-
msgid "Installer cannot contact our updates server to get information about the available products and check for new versions. If you are seeing this message for the first time, you can ignore it, as it may be a temporary communication problem. If the problem persists and your WordPress admin is slowing down, you can disable automated version checks. Add the following line to your wp-config.php file:"
|
490 |
-
msgstr ""
|
491 |
-
|
492 |
-
#
|
493 |
-
# echo '<center>' . __('No repositories defined.', 'installer') . '</center>';
|
494 |
-
#
|
495 |
-
|
496 |
-
msgid "No repositories defined."
|
497 |
-
msgstr ""
|
498 |
-
|
499 |
-
# } else {
|
500 |
-
# $error = __( 'Invalid site key for the current site.', 'installer' )
|
501 |
-
# . '<br /><div class="installer-footnote">' . __('Please note that the site key is case sensitive.', 'installer') . '</div>';
|
502 |
-
|
503 |
-
msgid "Invalid site key for the current site."
|
504 |
-
msgstr ""
|
505 |
-
|
506 |
-
# $error = __( 'Invalid site key for the current site.', 'installer' )
|
507 |
-
# . '<br /><div class="installer-footnote">' . __('Please note that the site key is case sensitive.', 'installer') . '</div>';
|
508 |
-
# }
|
509 |
-
|
510 |
-
msgid "Please note that the site key is case sensitive."
|
511 |
-
msgstr ""
|
512 |
-
|
513 |
-
# if( preg_match('#Could not resolve host: (.*)#', $error, $matches) || preg_match('#Couldn\'t resolve host \'(.*)\'#', $error, $matches) ){
|
514 |
-
# $error = sprintf(__("%s cannot access %s to register. Try again to see if it's a temporary problem. If the problem continues, make sure that this site has access to the Internet. You can still use the plugin without registration, but you will not receive automated updates.", 'installer'),
|
515 |
-
# '<strong><i>' . $this->get_generic_product_name($repository_id) . '</i></strong>',
|
516 |
-
|
517 |
-
msgid "%s cannot access %s to register. Try again to see if it's a temporary problem. If the problem continues, make sure that this site has access to the Internet. You can still use the plugin without registration, but you will not receive automated updates."
|
518 |
-
msgstr ""
|
519 |
-
|
520 |
-
# unset($this->settings['repositories'][$repository_id]['subscription']);
|
521 |
-
# $error = __( 'Invalid site key for the current site. If the error persists, try to unregister first and then register again with the same site key.', 'installer' );
|
522 |
-
# }
|
523 |
-
|
524 |
-
msgid "Invalid site key for the current site. If the error persists, try to unregister first and then register again with the same site key."
|
525 |
-
msgstr ""
|
526 |
-
|
527 |
-
# $days = 30;
|
528 |
-
# $message = __('You will have to renew your subscription in order to continue getting the updates and support.', 'installer');
|
529 |
-
#
|
530 |
-
|
531 |
-
msgid "You will have to renew your subscription in order to continue getting the updates and support."
|
532 |
-
msgstr ""
|
533 |
-
|
534 |
-
# echo $this->_plugins_renew_warnings[$plugin_file]. ' ';
|
535 |
-
# printf(__('%sRenew here%s.', 'installer'),
|
536 |
-
# '<a href="' . $this->menu_url() . '">', '</a>');
|
537 |
-
|
538 |
-
msgid "%sRenew here%s."
|
539 |
-
msgstr ""
|
540 |
-
|
541 |
-
# $ret = false;
|
542 |
-
# $message = __('Your subscription appears to no longer be valid. Please try to register again using a valid site key.', 'installer');
|
543 |
-
# }
|
544 |
-
|
545 |
-
msgid "Your subscription appears to no longer be valid. Please try to register again using a valid site key."
|
546 |
-
msgstr ""
|
547 |
-
|
548 |
-
# <p class="installer-q-icon">
|
549 |
-
# <?php printf( __('You must have a valid subscription in order to get upgrades or support for this plugin. %sPurchase a subscription or enter an existing site key%s.', 'installer'),
|
550 |
-
# '<a href="' . $this->menu_url() . '">', '</a>'); ?>
|
551 |
-
|
552 |
-
msgid "You must have a valid subscription in order to get upgrades or support for this plugin. %sPurchase a subscription or enter an existing site key%s."
|
553 |
-
msgstr ""
|
554 |
-
|
555 |
-
#
|
556 |
-
# $error_message = sprintf(__("%s cannot update because your site's registration is not valid. Please %sregister %s%s again for this site first.", 'installer'),
|
557 |
-
# '<strong>' . $plugin_name . '</strong>', '<a target="_top" href="' . $this->menu_url() . '&validate_repository=' . $plugin_repository .
|
558 |
-
|
559 |
-
msgid "%s cannot update because your site's registration is not valid. Please %sregister %s%s again for this site first."
|
560 |
-
msgstr ""
|
561 |
-
|
562 |
-
# echo '<div class="wrap">';
|
563 |
-
# echo '<h2>' . __( 'Update Plugin', 'installer' ) . '</h2>';
|
564 |
-
# echo '<a href="' . admin_url('plugins.php') . '">' . __( 'Return to the plugins page', 'installer' ) . '</a>';
|
565 |
-
|
566 |
-
msgid "Update Plugin"
|
567 |
-
msgstr ""
|
568 |
-
|
569 |
-
# echo '<h2>' . __( 'Update Plugin', 'installer' ) . '</h2>';
|
570 |
-
# echo '<a href="' . admin_url('plugins.php') . '">' . __( 'Return to the plugins page', 'installer' ) . '</a>';
|
571 |
-
# echo '</div>';
|
572 |
-
|
573 |
-
msgid "Return to the plugins page"
|
574 |
-
msgstr ""
|
575 |
-
|
576 |
-
# echo '<div><p class="installer-warn-box">' .
|
577 |
-
# sprintf(_n('Your subscription expires in %d day.', 'Your subscription expires in %d days.', $days_to_expiration, 'installer'), $days_to_expiration) .
|
578 |
-
# '<br />' . $message .
|
579 |
-
|
580 |
-
msgid "Your subscription expires in %d day."
|
581 |
-
msgstr ""
|
582 |
-
|
583 |
-
# echo '<div><p class="installer-warn-box">' .
|
584 |
-
# sprintf(_n('Your subscription expires in %d day.', 'Your subscription expires in %d days.', $days_to_expiration, 'installer'), $days_to_expiration) .
|
585 |
-
# '<br />' . $message .
|
586 |
-
|
587 |
-
msgid "Your subscription expires in %d days."
|
588 |
-
msgstr ""
|
589 |
-
|
590 |
-
# public function win_paths_exception_message(){
|
591 |
-
# return __('Downloading is not possible. WordPress cannot create required folders because of the
|
592 |
-
# 256 characters limitation of the current Windows environment.', 'installer');
|
593 |
-
|
594 |
-
msgid "Downloading is not possible. WordPress cannot create required folders because of the\r\n 256 characters limitation of the current Windows environment."
|
595 |
-
msgstr ""
|
596 |
-
|
597 |
-
# echo '<div class="wrap">';
|
598 |
-
# echo '<h2>' . __('Update Plugin') . '</h2>';
|
599 |
-
# echo '<a href="' . admin_url('update-core.php') . '">' . __('Return to the updates page', 'installer') . '</a>';
|
600 |
-
|
601 |
-
msgid "Update Plugin"
|
602 |
-
msgstr ""
|
603 |
-
|
604 |
-
# echo '<h2>' . __('Update Plugin') . '</h2>';
|
605 |
-
# echo '<a href="' . admin_url('update-core.php') . '">' . __('Return to the updates page', 'installer') . '</a>';
|
606 |
-
# echo '</div>';
|
607 |
-
|
608 |
-
msgid "Return to the updates page"
|
609 |
-
msgstr ""
|
610 |
-
|
611 |
-
# $theme_repo_name = $this->installer_theme_get_repo_product_name( $frontend_tab_selected );;
|
612 |
-
# $response['unregistered_messages'] = sprintf( __( 'To install and update %s, please %sregister%s %s for this site.', 'installer' ),
|
613 |
-
# $theme_repo_name, '<a href="' . $registration_url . '">', '</a>', $theme_repo_name );
|
614 |
-
|
615 |
-
msgid "To install and update %s, please %sregister%s %s for this site."
|
616 |
-
msgstr ""
|
617 |
-
|
618 |
-
# if(empty($args['repository']) || empty($args['package']) || empty($args['product'])){
|
619 |
-
# echo __('Incorrect setup', 'installer');
|
620 |
-
# return;
|
621 |
-
|
622 |
-
msgid "Incorrect setup"
|
623 |
-
msgstr ""
|
624 |
-
|
625 |
-
# if(!$product){
|
626 |
-
# echo __('Invalid product', 'installer');
|
627 |
-
# return;
|
628 |
-
|
629 |
-
msgid "Invalid product"
|
630 |
-
msgstr ""
|
631 |
-
|
632 |
-
# }else{
|
633 |
-
# echo __('Unknown repository', 'installer');
|
634 |
-
# return;
|
635 |
-
|
636 |
-
msgid "Unknown repository"
|
637 |
-
msgstr ""
|
638 |
-
|
639 |
-
# if($subscription_type != $product['subscription_type'] && !$this->have_superior_subscription($subscription_type, $product) && $site_key){
|
640 |
-
# $subscription_no_match = sprintf(__(' Your current site key (%s) does not match the selected product (%s).', 'installer'), $site_key, $product['name']);
|
641 |
-
# }
|
642 |
-
|
643 |
-
msgid " Your current site key (%s) does not match the selected product (%s)."
|
644 |
-
msgstr ""
|
645 |
-
|
646 |
-
#
|
647 |
-
# <a class="button-primary" href="<?php echo $this->append_parameters_to_buy_url($product['url'], $repository_id, $args) ?>"><?php printf(__('Buy %s', 'installer'), $args['product_name']) ?></a>
|
648 |
-
#
|
649 |
-
|
650 |
-
msgid "Buy %s"
|
651 |
-
msgstr ""
|
652 |
-
|
653 |
-
# <br />
|
654 |
-
# <?php printf(__('Already bought %s?', 'installer'), $args['product_name']) ?>
|
655 |
-
# <a class="enter_site_key_js<?php if( WP_Installer::get_repository_hardcoded_site_key( $repository_id ) ): ?> disabled<?php endif ?>" href="#"
|
656 |
-
|
657 |
-
msgid "Already bought %s?"
|
658 |
-
msgstr ""
|
659 |
-
|
660 |
-
# <li>
|
661 |
-
# <a href="<?php echo $this->append_parameters_to_buy_url($renewal['url'], $repository_id, $args) ?>"><?php printf(__('Renew %s', 'installer'), $args['product_name']) ?></a>
|
662 |
-
# </li>
|
663 |
-
|
664 |
-
msgid "Renew %s"
|
665 |
-
msgstr ""
|
666 |
-
|
667 |
-
# >
|
668 |
-
# <?php printf(__("Remove current site key (%s)", 'installer'), $site_key) ?>
|
669 |
-
# </a>
|
670 |
-
|
671 |
-
msgid "Remove current site key (%s)"
|
672 |
-
msgstr ""
|
673 |
-
|
674 |
-
# <?php if($support_link): ?>
|
675 |
-
# <p><a href="<?php echo $support_link ?>" target="_blank"><?php printf(__('%s support on wpml.org', 'installer'), $args['name'] ) ?></a></p>
|
676 |
-
#
|
677 |
-
|
678 |
-
msgid "%s support on wpml.org"
|
679 |
-
msgstr ""
|
680 |
-
|
681 |
-
# disabled="disabled"
|
682 |
-
# title="<?php printf( esc_attr__("Site-key was set by %s, most likely in wp-config.php. Please remove the constant before attempting to register.", 'installer'), 'OTGS_INSTALLER_SITE_KEY_' . strtoupper($repository_id) ) ?>"
|
683 |
-
# <?php endif; ?>
|
684 |
-
|
685 |
-
msgid "Site-key was set by %s, most likely in wp-config.php. Please remove the constant before attempting to register."
|
686 |
-
msgstr ""
|
687 |
-
|
688 |
-
# disabled="disabled"
|
689 |
-
# title="<?php printf( esc_attr__("Site-key was set by %s, most likely in wp-config.php. Please remove the constant before attempting to unregister.", 'installer'), 'OTGS_INSTALLER_SITE_KEY_' . strtoupper($repository_id) ) ?>"
|
690 |
-
# <?php endif; ?>
|
691 |
-
|
692 |
-
msgid "Site-key was set by %s, most likely in wp-config.php. Please remove the constant before attempting to unregister."
|
693 |
msgstr ""
|
694 |
|
695 |
# >
|
@@ -699,9 +405,9 @@ msgstr ""
|
|
699 |
msgid "Enter site key"
|
700 |
msgstr ""
|
701 |
|
702 |
-
#
|
703 |
# <div><p class="installer-warn-box"><?php _e('Subscription is expired.', 'installer') ?></p></div>
|
704 |
-
#
|
705 |
|
706 |
msgid "Subscription is expired."
|
707 |
msgstr ""
|
@@ -727,44 +433,37 @@ msgstr ""
|
|
727 |
msgid "Downloading is not possible because WordPress cannot write into the plugins folder. %sHow to fix%s."
|
728 |
msgstr ""
|
729 |
|
730 |
-
# <br clear="all" /><br />
|
731 |
-
# <strong><?php _e('Downloads:', 'installer') ?></strong>
|
732 |
-
#
|
733 |
-
|
734 |
-
msgid "Downloads:"
|
735 |
-
msgstr ""
|
736 |
-
|
737 |
# <th> </th>
|
738 |
# <th><?php _e('Plugin', 'installer') ?></th>
|
739 |
-
# <th><?php _e('
|
740 |
|
741 |
msgid "Plugin"
|
742 |
msgstr ""
|
743 |
|
744 |
# <th><?php _e('Plugin', 'installer') ?></th>
|
745 |
-
# <th><?php _e('
|
746 |
-
# <th><?php _e('
|
747 |
|
748 |
-
msgid "
|
749 |
msgstr ""
|
750 |
|
751 |
-
# <th><?php _e('
|
|
|
752 |
# <th><?php _e('Released', 'installer') ?></th>
|
753 |
-
# <th><?php _e('Installed version', 'installer') ?></th>
|
754 |
|
755 |
-
msgid "
|
756 |
msgstr ""
|
757 |
|
|
|
758 |
# <th><?php _e('Released', 'installer') ?></th>
|
759 |
-
# <th><?php _e('Installed version', 'installer') ?></th>
|
760 |
# <th> </th>
|
761 |
|
762 |
-
msgid "
|
763 |
msgstr ""
|
764 |
|
765 |
# <span class="<?php echo $class ?>"><?php echo $v; ?></span>
|
766 |
-
# <?php if($this->plugin_is_embedded_version($download['name'], $download['slug'])): ?> <?php _e('(embedded)', 'installer'); ?><?php endif; ?>
|
767 |
-
# <?php
|
768 |
|
769 |
msgid "(embedded)"
|
770 |
msgstr ""
|
@@ -820,51 +519,93 @@ msgstr ""
|
|
820 |
|
821 |
#
|
822 |
# <label><input name="activate" type="checkbox" value="1" disabled="disabled" /> <?php _e('Activate after download', 'installer') ?></label>
|
823 |
-
#
|
824 |
|
825 |
msgid "Activate after download"
|
826 |
msgstr ""
|
827 |
|
828 |
-
#
|
829 |
# <div class="installer-status-success"><?php _e('Operation complete!', 'installer') ?></div>
|
830 |
-
#
|
831 |
|
832 |
msgid "Operation complete!"
|
833 |
msgstr ""
|
834 |
|
835 |
-
#
|
836 |
# <span class="installer-revalidate-message hidden"><?php _e("Download failed!\n\nPlease refresh the page and try again.", 'installer') ?></span>
|
837 |
# </form>
|
838 |
|
839 |
msgid "Download failed!\n\nPlease refresh the page and try again."
|
840 |
msgstr ""
|
841 |
|
842 |
-
#
|
843 |
# <input type="submit" class="button-secondary" value="<?php esc_attr_e('Download', 'installer') ?>" disabled="disabled" />
|
844 |
#
|
845 |
|
846 |
msgid "Download"
|
847 |
msgstr ""
|
848 |
|
849 |
-
# >
|
850 |
-
#
|
851 |
-
#
|
852 |
|
853 |
-
msgid "
|
854 |
msgstr ""
|
855 |
|
856 |
-
#
|
857 |
-
# <div class="
|
858 |
-
#
|
859 |
|
860 |
-
msgid "
|
861 |
msgstr ""
|
862 |
|
863 |
-
#
|
864 |
-
#
|
865 |
-
#
|
866 |
|
867 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
868 |
msgstr ""
|
869 |
|
870 |
# <?php if($expires = $this->settings['repositories'][$repository_id]['subscription']['data']->expires): ?>
|
@@ -881,9 +622,9 @@ msgstr ""
|
|
881 |
msgid "%s is registered on this site. Your Lifetime account gives you updates for life."
|
882 |
msgstr ""
|
883 |
|
884 |
-
#
|
885 |
# <p><i><?php printf(__('This page lets you install plugins and update existing plugins. To remove any of these plugins, go to the %splugins%s page and if you have the permission to remove plugins you should be able to do this.', 'installer'), '<a href="' . admin_url('plugins.php') . '">' , '</a>'); ?></i></p>
|
886 |
-
#
|
887 |
|
888 |
msgid "This page lets you install plugins and update existing plugins. To remove any of these plugins, go to the %splugins%s page and if you have the permission to remove plugins you should be able to do this."
|
889 |
msgstr ""
|
@@ -944,13 +685,6 @@ msgstr ""
|
|
944 |
msgid "OK"
|
945 |
msgstr ""
|
946 |
|
947 |
-
# <input class="button-primary" type="submit" value="<?php esc_attr_e('OK', 'installer') ?>" />
|
948 |
-
# <input class="button-secondary cancel_site_key_js" type="button" value="<?php esc_attr_e('Cancel', 'installer') ?>" />
|
949 |
-
#
|
950 |
-
|
951 |
-
msgid "Cancel"
|
952 |
-
msgstr ""
|
953 |
-
|
954 |
# <a class="remove_site_key_js button-secondary" href="#" data-repository=<?php echo $repository_id ?>
|
955 |
# data-confirmation="<?php esc_attr_e('Are you sure you want to unregister?', 'installer') ?>"
|
956 |
# data-nonce="<?php echo wp_create_nonce('remove_site_key_' . $repository_id) ?>"
|
@@ -965,55 +699,6 @@ msgstr ""
|
|
965 |
msgid "Click to see individual components options."
|
966 |
msgstr ""
|
967 |
|
968 |
-
# <td class="twelve">
|
969 |
-
# <div class="installer-status-downloading"><?php _e('downloading...', 'installer') ?></div>
|
970 |
-
# <div class="installer-status-downloaded" data-fail="<?php _e('failed!', 'installer') ?>"><?php _e('downloaded', 'installer') ?></div>
|
971 |
-
|
972 |
-
msgid "downloading..."
|
973 |
-
msgstr ""
|
974 |
-
|
975 |
-
# <div class="installer-status-downloading"><?php _e('downloading...', 'installer') ?></div>
|
976 |
-
# <div class="installer-status-downloaded" data-fail="<?php _e('failed!', 'installer') ?>"><?php _e('downloaded', 'installer') ?></div>
|
977 |
-
# </td>
|
978 |
-
|
979 |
-
msgid "downloaded"
|
980 |
-
msgstr ""
|
981 |
-
|
982 |
-
#
|
983 |
-
# <span class="installer-revalidate-message hidden"><?php _e("Download failed!\n\nClick OK to revalidate your subscription or CANCEL to try again.", 'installer') ?></span>
|
984 |
-
# </form>
|
985 |
-
|
986 |
-
msgid "Download failed!\n\nClick OK to revalidate your subscription or CANCEL to try again."
|
987 |
-
msgstr ""
|
988 |
-
|
989 |
-
# <th><?php _e('Plugin', 'installer') ?></th>
|
990 |
-
# <th><img src="<?php echo $this->plugin_url() ?>/res/img/globe.png" alt="<?php esc_attr_e('Available', 'installer') ?>" width="16" height="16"></th>
|
991 |
-
# <th><img src="<?php echo $this->plugin_url() ?>/res/img/computer.png" alt="<?php esc_attr_e('Installed', 'installer') ?>" width="16" height="16"></th>
|
992 |
-
|
993 |
-
msgid "Available"
|
994 |
-
msgstr ""
|
995 |
-
|
996 |
-
# <th><img src="<?php echo $this->plugin_url() ?>/res/img/globe.png" alt="<?php esc_attr_e('Available', 'installer') ?>" width="16" height="16"></th>
|
997 |
-
# <th><img src="<?php echo $this->plugin_url() ?>/res/img/computer.png" alt="<?php esc_attr_e('Installed', 'installer') ?>" width="16" height="16"></th>
|
998 |
-
# <th><img src="<?php echo $this->plugin_url() ?>/res/img/dn2.gif" alt="<?php esc_attr_e('Downloading', 'installer') ?>" width="16" height="16"></th>
|
999 |
-
|
1000 |
-
msgid "Installed"
|
1001 |
-
msgstr ""
|
1002 |
-
|
1003 |
-
# <th><img src="<?php echo $this->plugin_url() ?>/res/img/computer.png" alt="<?php esc_attr_e('Installed', 'installer') ?>" width="16" height="16"></th>
|
1004 |
-
# <th><img src="<?php echo $this->plugin_url() ?>/res/img/dn2.gif" alt="<?php esc_attr_e('Downloading', 'installer') ?>" width="16" height="16"></th>
|
1005 |
-
# <th><img src="<?php echo $this->plugin_url() ?>/res/img/on.png" alt="<?php esc_attr_e('Activate', 'installer') ?>" width="16" height="16"></th>
|
1006 |
-
|
1007 |
-
msgid "Downloading"
|
1008 |
-
msgstr ""
|
1009 |
-
|
1010 |
-
# <th><img src="<?php echo $this->plugin_url() ?>/res/img/dn2.gif" alt="<?php esc_attr_e('Downloading', 'installer') ?>" width="16" height="16"></th>
|
1011 |
-
# <th><img src="<?php echo $this->plugin_url() ?>/res/img/on.png" alt="<?php esc_attr_e('Activate', 'installer') ?>" width="16" height="16"></th>
|
1012 |
-
# </tr>
|
1013 |
-
|
1014 |
-
msgid "Activate"
|
1015 |
-
msgstr ""
|
1016 |
-
|
1017 |
# $taxonomy_obj = get_taxonomy($taxonomy);
|
1018 |
# $message = sprintf(__('To translate %s please use the %s translation%s page, inside the %sWooCommerce Multilingual admin%s.', 'woocommerce-multilingual'),
|
1019 |
# $taxonomy_obj->labels->name,
|
@@ -1021,16 +706,16 @@ msgstr ""
|
|
1021 |
msgid "To translate %s please use the %s translation%s page, inside the %sWooCommerce Multilingual admin%s."
|
1022 |
msgstr ""
|
1023 |
|
1024 |
-
#
|
1025 |
# $response['progress'] = $response['go'] ? sprintf(__('%d products left', 'woocommerce-multilingual'), count($post_ids) - $posts_processed) : __('Synchronization complete!', 'woocommerce-multilingual');
|
1026 |
-
#
|
1027 |
|
1028 |
msgid "%d products left"
|
1029 |
msgstr ""
|
1030 |
|
1031 |
-
#
|
1032 |
# $response['progress'] = $response['go'] ? sprintf(__('%d products left', 'woocommerce-multilingual'), count($post_ids) - $posts_processed) : __('Synchronization complete!', 'woocommerce-multilingual');
|
1033 |
-
#
|
1034 |
|
1035 |
msgid "Synchronization complete!"
|
1036 |
msgstr ""
|
@@ -1063,331 +748,312 @@ msgstr ""
|
|
1063 |
msgid "All %s have the same %s assignments."
|
1064 |
msgstr ""
|
1065 |
|
1066 |
-
#
|
1067 |
# $out .= sprintf(__('Successfully updated %s for all translated %s.', 'woocommerce-multilingual'), $wp_taxonomies[$taxonomy]->labels->name, $wp_post_types[$object_type]->labels->name);
|
1068 |
-
#
|
1069 |
|
1070 |
msgid "Successfully updated %s for all translated %s."
|
1071 |
msgstr ""
|
1072 |
|
1073 |
-
# '
|
1074 |
-
# 'text'
|
1075 |
-
# '
|
1076 |
|
1077 |
-
msgid "
|
1078 |
msgstr ""
|
1079 |
|
1080 |
-
#
|
1081 |
-
#
|
1082 |
-
#
|
1083 |
|
1084 |
-
msgid "
|
1085 |
msgstr ""
|
1086 |
|
1087 |
-
#
|
1088 |
-
#
|
1089 |
-
#
|
1090 |
|
1091 |
-
msgid "
|
1092 |
msgstr ""
|
1093 |
|
1094 |
-
#
|
1095 |
-
# $
|
1096 |
-
#
|
1097 |
|
1098 |
-
msgid "
|
1099 |
msgstr ""
|
1100 |
|
1101 |
-
#
|
1102 |
-
#
|
1103 |
-
# 'woocommerce-multilingual'
|
1104 |
|
1105 |
-
msgid "
|
1106 |
msgstr ""
|
1107 |
|
1108 |
-
# 'interval' => $interval,
|
1109 |
-
# 'display' => sprintf( __( 'Monthly on the %s', 'woocommerce-multilingual' ), $month_day ),
|
1110 |
# );
|
|
|
|
|
1111 |
|
1112 |
-
msgid "
|
1113 |
msgstr ""
|
1114 |
|
1115 |
-
# '
|
1116 |
-
#
|
1117 |
-
#
|
1118 |
|
1119 |
-
msgid "
|
1120 |
msgstr ""
|
1121 |
|
1122 |
-
#
|
1123 |
-
#
|
1124 |
-
#
|
1125 |
|
1126 |
-
msgid "
|
1127 |
msgstr ""
|
1128 |
|
1129 |
-
#
|
1130 |
-
#
|
1131 |
-
#
|
1132 |
|
1133 |
-
msgid "
|
1134 |
msgstr ""
|
1135 |
|
1136 |
-
# if( !
|
1137 |
-
#
|
1138 |
-
#
|
1139 |
|
1140 |
-
msgid "
|
1141 |
msgstr ""
|
1142 |
|
1143 |
-
#
|
1144 |
-
# <
|
1145 |
-
#
|
1146 |
|
1147 |
-
msgid "
|
1148 |
msgstr ""
|
1149 |
|
1150 |
-
#
|
1151 |
-
#
|
1152 |
-
#
|
1153 |
|
1154 |
-
msgid "
|
1155 |
msgstr ""
|
1156 |
|
1157 |
-
#
|
1158 |
-
#
|
1159 |
-
#
|
1160 |
|
1161 |
-
msgid "
|
1162 |
msgstr ""
|
1163 |
|
1164 |
-
#
|
1165 |
-
#
|
1166 |
-
#
|
1167 |
|
1168 |
-
msgid "
|
1169 |
msgstr ""
|
1170 |
|
1171 |
-
#
|
1172 |
-
#
|
1173 |
-
#
|
1174 |
|
1175 |
-
msgid "
|
1176 |
msgstr ""
|
1177 |
|
1178 |
-
#
|
1179 |
-
#
|
1180 |
-
#
|
1181 |
|
1182 |
-
msgid "
|
1183 |
msgstr ""
|
1184 |
|
1185 |
-
#
|
1186 |
-
#
|
1187 |
-
#
|
1188 |
|
1189 |
-
msgid "
|
1190 |
msgstr ""
|
1191 |
|
1192 |
-
#
|
1193 |
-
#
|
1194 |
-
#
|
1195 |
|
1196 |
-
msgid "
|
1197 |
msgstr ""
|
1198 |
|
1199 |
-
# '
|
1200 |
-
#
|
1201 |
-
#
|
1202 |
|
1203 |
-
msgid "
|
1204 |
msgstr ""
|
1205 |
|
1206 |
-
#
|
1207 |
-
#
|
1208 |
-
#
|
1209 |
|
1210 |
-
msgid "
|
1211 |
msgstr ""
|
1212 |
|
1213 |
-
#
|
1214 |
-
#
|
1215 |
-
# )
|
1216 |
|
1217 |
-
msgid "
|
1218 |
msgstr ""
|
1219 |
|
1220 |
-
#
|
1221 |
-
# __(
|
1222 |
-
#
|
1223 |
|
1224 |
-
msgid "
|
1225 |
msgstr ""
|
1226 |
|
1227 |
-
#
|
1228 |
-
# sprintf( __(
|
1229 |
-
# '
|
1230 |
|
1231 |
-
msgid "
|
1232 |
msgstr ""
|
1233 |
|
1234 |
-
#
|
1235 |
-
# __( '
|
1236 |
-
#
|
1237 |
|
1238 |
-
msgid "
|
1239 |
msgstr ""
|
1240 |
|
1241 |
-
# $
|
1242 |
-
# '
|
1243 |
-
#
|
1244 |
|
1245 |
-
msgid "
|
1246 |
msgstr ""
|
1247 |
|
1248 |
-
# '
|
1249 |
-
# __( '
|
1250 |
-
#
|
1251 |
|
1252 |
-
msgid "
|
1253 |
msgstr ""
|
1254 |
|
1255 |
-
#
|
1256 |
-
# $
|
1257 |
-
#
|
1258 |
|
1259 |
-
msgid "
|
1260 |
-
msgstr ""
|
1261 |
-
|
1262 |
-
# $dialog_title = __( 'Switching currency?', 'woocommerce-multilingual');
|
1263 |
-
# $confirmation_message = __( 'Your cart is not empty! After you switched the currency, all items from the cart will be removed and you have to add them again.', 'woocommerce-multilingual');
|
1264 |
-
# $stay_in = sprintf( __( 'Keep using %s', 'woocommerce-multilingual'), $current_currency );
|
1265 |
-
|
1266 |
-
msgid "Your cart is not empty! After you switched the currency, all items from the cart will be removed and you have to add them again."
|
1267 |
msgstr ""
|
1268 |
|
1269 |
-
#
|
1270 |
-
# $
|
1271 |
-
# $
|
1272 |
|
1273 |
-
msgid "
|
1274 |
msgstr ""
|
1275 |
|
1276 |
-
# $
|
1277 |
-
# $
|
1278 |
-
#
|
1279 |
|
1280 |
-
msgid "
|
1281 |
msgstr ""
|
1282 |
|
1283 |
-
#
|
1284 |
-
#
|
1285 |
-
#
|
1286 |
|
1287 |
-
|
|
|
1288 |
msgstr ""
|
1289 |
|
1290 |
-
#
|
1291 |
-
#
|
1292 |
# }
|
1293 |
|
1294 |
-
|
1295 |
-
|
1296 |
-
|
1297 |
-
# input.parent().append('<div class="translation_controls"></div>');
|
1298 |
-
# input.parent().find('.translation_controls').append('<a href="<?php echo $st_page ?>" style="margin-left: 10px"><?php _e('translations', 'woocommerce-multilingual') ?></a>');
|
1299 |
-
# jQuery('#<?php echo $emails_option.'_'.$setting_key.'_language_selector' ?>').prependTo(input.parent().find('.translation_controls'));
|
1300 |
-
|
1301 |
-
msgid "translations"
|
1302 |
-
msgstr ""
|
1303 |
-
|
1304 |
-
# //dummy array for names
|
1305 |
-
# $names = array( __('Cart', 'woocommerce-multilingual'),
|
1306 |
-
# __('Checkout', 'woocommerce-multilingual'),
|
1307 |
-
|
1308 |
-
msgid "Cart"
|
1309 |
msgstr ""
|
1310 |
|
1311 |
-
# $
|
1312 |
-
# __('
|
1313 |
-
#
|
1314 |
|
1315 |
-
msgid "
|
1316 |
msgstr ""
|
1317 |
|
1318 |
-
#
|
1319 |
-
# __('
|
1320 |
-
#
|
1321 |
|
1322 |
-
msgid "
|
1323 |
msgstr ""
|
1324 |
|
1325 |
-
#
|
1326 |
-
# __('
|
1327 |
-
#
|
1328 |
|
1329 |
-
msgid "
|
1330 |
msgstr ""
|
1331 |
|
1332 |
-
#
|
1333 |
-
# __('
|
1334 |
-
#
|
1335 |
|
1336 |
-
msgid "
|
1337 |
msgstr ""
|
1338 |
|
1339 |
-
#
|
1340 |
-
# __('
|
1341 |
-
#
|
1342 |
|
1343 |
-
msgid "
|
1344 |
msgstr ""
|
1345 |
|
1346 |
-
#
|
1347 |
-
# __('
|
1348 |
-
#
|
1349 |
|
1350 |
-
msgid "
|
1351 |
msgstr ""
|
1352 |
|
1353 |
-
#
|
1354 |
-
# __('
|
1355 |
-
#
|
1356 |
|
1357 |
-
msgid "
|
1358 |
msgstr ""
|
1359 |
|
1360 |
-
#
|
1361 |
-
# __('
|
1362 |
-
#
|
1363 |
|
1364 |
-
msgid "
|
1365 |
msgstr ""
|
1366 |
|
1367 |
-
#
|
1368 |
-
# __('
|
1369 |
-
# __('
|
1370 |
|
1371 |
-
msgid "
|
1372 |
msgstr ""
|
1373 |
|
1374 |
-
# __('
|
1375 |
-
# __('
|
1376 |
-
#
|
1377 |
|
1378 |
-
msgid "
|
1379 |
msgstr ""
|
1380 |
|
1381 |
-
# if(
|
1382 |
-
#
|
1383 |
-
#
|
1384 |
|
1385 |
-
msgid "
|
1386 |
msgstr ""
|
1387 |
|
1388 |
# ?>
|
1389 |
# <div class="message error"><p><?php printf(__('WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href="%s">WPML</a> versions prior %s.',
|
1390 |
-
# 'woocommerce-multilingual'),
|
1391 |
|
1392 |
msgid "WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href=\"%s\">WPML</a> versions prior %s."
|
1393 |
msgstr ""
|
@@ -1401,21 +1067,21 @@ msgstr ""
|
|
1401 |
|
1402 |
# ?>
|
1403 |
# <div class="message error"><p><?php printf(__('WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href="%s">WPML Translation Management</a> versions prior %s.',
|
1404 |
-
# 'woocommerce-multilingual'),
|
1405 |
|
1406 |
msgid "WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href=\"%s\">WPML Translation Management</a> versions prior %s."
|
1407 |
msgstr ""
|
1408 |
|
1409 |
# ?>
|
1410 |
# <div class="message error"><p><?php printf(__('WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href="%s">WPML String Translation</a> versions prior %s.',
|
1411 |
-
# 'woocommerce-multilingual'),
|
1412 |
|
1413 |
msgid "WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href=\"%s\">WPML String Translation</a> versions prior %s."
|
1414 |
msgstr ""
|
1415 |
|
1416 |
# ?>
|
1417 |
# <div class="message error"><p><?php printf(__('WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href="%s">WPML Media</a> versions prior %s.',
|
1418 |
-
# 'woocommerce-multilingual'),
|
1419 |
|
1420 |
msgid "WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href=\"%s\">WPML Media</a> versions prior %s."
|
1421 |
msgstr ""
|
@@ -1427,7 +1093,7 @@ msgstr ""
|
|
1427 |
msgid "and"
|
1428 |
msgstr ""
|
1429 |
|
1430 |
-
#
|
1431 |
# <div class="message error"><p><?php printf(__('WooCommerce Multilingual is enabled but not effective. It requires %s in order to work.', 'woocommerce-multilingual'), $missing); ?></p></div>
|
1432 |
# <?php
|
1433 |
|
@@ -1443,7 +1109,7 @@ msgstr ""
|
|
1443 |
|
1444 |
# $message .= ' | ';
|
1445 |
# $message .= '<a href="' . admin_url('admin.php?page=' . WPML_TM_FOLDER . '/menu/main.php&sm=mcsetup#icl_custom_posts_sync_options') . '">' . __('Configure products slug translation', 'woocommerce-multilingual') . '</a>';
|
1446 |
-
#
|
1447 |
|
1448 |
msgid "Configure products slug translation"
|
1449 |
msgstr ""
|
@@ -1455,9 +1121,9 @@ msgstr ""
|
|
1455 |
msgid "If you want different slugs for shop pages (%s/%s), you need to disable the shop prefix for products in <a href=\"%s\">WooCommerce Settings</a>"
|
1456 |
msgstr ""
|
1457 |
|
1458 |
-
#
|
1459 |
# $ret['success_1'] = ' ' . sprintf(__('Finished! You can visit the %sstrings translation%s screen to translate the strings now.', 'woocommerce-multilingual'), '<a href="' . admin_url('admin.php?page=' . WPML_ST_FOLDER . '/menu/string-translation.php') . '">', '</a>');
|
1460 |
-
#
|
1461 |
|
1462 |
msgid "Finished! You can visit the %sstrings translation%s screen to translate the strings now."
|
1463 |
msgstr ""
|
@@ -1490,791 +1156,733 @@ msgstr ""
|
|
1490 |
msgid "Custom taxonomy %s configuration from wpml-config.xml file was altered!"
|
1491 |
msgstr ""
|
1492 |
|
1493 |
-
# $
|
1494 |
-
#
|
1495 |
-
# $
|
1496 |
|
1497 |
-
msgid "
|
1498 |
msgstr ""
|
1499 |
|
1500 |
-
#
|
1501 |
-
# $
|
1502 |
-
# $
|
1503 |
|
1504 |
-
msgid "
|
1505 |
msgstr ""
|
1506 |
|
1507 |
-
# $
|
1508 |
-
# $
|
1509 |
-
#
|
1510 |
|
1511 |
-
msgid "
|
1512 |
msgstr ""
|
1513 |
|
1514 |
-
#
|
1515 |
-
# $
|
1516 |
-
#
|
1517 |
|
1518 |
-
msgid "
|
1519 |
msgstr ""
|
1520 |
|
1521 |
-
#
|
1522 |
-
#
|
1523 |
-
#
|
1524 |
|
1525 |
-
msgid "
|
1526 |
msgstr ""
|
1527 |
|
1528 |
-
#
|
1529 |
-
#
|
1530 |
-
#
|
1531 |
|
1532 |
-
msgid "
|
1533 |
msgstr ""
|
1534 |
|
1535 |
-
#
|
1536 |
-
#
|
1537 |
-
#
|
1538 |
|
1539 |
-
msgid "
|
1540 |
msgstr ""
|
1541 |
|
1542 |
-
#
|
1543 |
-
#
|
1544 |
-
#
|
1545 |
|
1546 |
-
msgid "
|
1547 |
msgstr ""
|
1548 |
|
1549 |
-
#
|
1550 |
-
#
|
1551 |
-
#
|
1552 |
|
1553 |
-
msgid "
|
1554 |
msgstr ""
|
1555 |
|
1556 |
-
#
|
1557 |
-
#
|
1558 |
-
#
|
1559 |
|
1560 |
-
msgid "
|
1561 |
msgstr ""
|
1562 |
|
1563 |
-
#
|
1564 |
-
# __('
|
1565 |
-
#
|
1566 |
|
1567 |
-
msgid "
|
1568 |
msgstr ""
|
1569 |
|
1570 |
-
#
|
1571 |
-
# __('
|
1572 |
-
#
|
1573 |
|
1574 |
-
msgid "
|
1575 |
msgstr ""
|
1576 |
|
1577 |
-
# if( $
|
1578 |
-
#
|
1579 |
-
#
|
1580 |
|
1581 |
-
msgid "
|
1582 |
msgstr ""
|
1583 |
|
1584 |
-
#
|
1585 |
-
#
|
1586 |
-
#
|
1587 |
|
1588 |
-
msgid "
|
1589 |
msgstr ""
|
1590 |
|
1591 |
-
#
|
1592 |
-
#
|
1593 |
-
#
|
1594 |
|
1595 |
-
msgid "
|
1596 |
msgstr ""
|
1597 |
|
1598 |
-
#
|
1599 |
-
# $
|
1600 |
-
#
|
1601 |
|
1602 |
-
msgid "Product
|
1603 |
msgstr ""
|
1604 |
|
1605 |
-
# $
|
1606 |
-
# $
|
1607 |
-
#
|
1608 |
|
1609 |
-
msgid "Product
|
1610 |
msgstr ""
|
1611 |
|
1612 |
-
# $
|
1613 |
-
# $
|
1614 |
-
#
|
1615 |
|
1616 |
-
msgid "
|
1617 |
msgstr ""
|
1618 |
|
1619 |
-
#
|
1620 |
-
# $
|
1621 |
-
#
|
1622 |
|
1623 |
-
msgid "
|
1624 |
msgstr ""
|
1625 |
|
1626 |
-
#
|
1627 |
-
#
|
1628 |
-
#
|
1629 |
|
1630 |
-
msgid "
|
1631 |
msgstr ""
|
1632 |
|
1633 |
-
#
|
1634 |
-
#
|
1635 |
-
#
|
1636 |
|
1637 |
-
msgid "
|
1638 |
msgstr ""
|
1639 |
|
1640 |
-
#
|
1641 |
-
#
|
1642 |
-
#
|
1643 |
|
1644 |
-
|
1645 |
-
msgid "product-category"
|
1646 |
msgstr ""
|
1647 |
|
1648 |
-
#
|
1649 |
-
#
|
1650 |
-
#
|
1651 |
-
|
1652 |
-
|
1653 |
-
msgid "product-tag"
|
1654 |
msgstr ""
|
1655 |
|
1656 |
-
#
|
1657 |
-
# '
|
1658 |
-
# )
|
1659 |
|
1660 |
-
msgid "
|
1661 |
msgstr ""
|
1662 |
|
1663 |
-
#
|
1664 |
-
#
|
1665 |
-
#
|
1666 |
|
1667 |
-
msgid "
|
1668 |
msgstr ""
|
1669 |
|
1670 |
-
#
|
1671 |
-
#
|
1672 |
-
#
|
1673 |
|
1674 |
-
msgid "
|
1675 |
msgstr ""
|
1676 |
|
1677 |
-
# <
|
1678 |
-
#
|
1679 |
-
#
|
1680 |
|
1681 |
-
msgid "
|
1682 |
msgstr ""
|
1683 |
|
1684 |
-
# <
|
1685 |
-
#
|
1686 |
-
#
|
1687 |
|
1688 |
-
msgid "
|
1689 |
msgstr ""
|
1690 |
|
1691 |
-
#
|
1692 |
-
#
|
1693 |
-
#
|
1694 |
|
1695 |
-
msgid "
|
1696 |
msgstr ""
|
1697 |
|
1698 |
-
#
|
1699 |
-
#
|
1700 |
-
#
|
1701 |
|
1702 |
-
msgid "
|
1703 |
msgstr ""
|
1704 |
|
1705 |
-
#
|
1706 |
-
#
|
1707 |
-
#
|
1708 |
|
1709 |
-
msgid "
|
1710 |
msgstr ""
|
1711 |
|
1712 |
-
# '
|
1713 |
-
# '
|
1714 |
-
# '
|
1715 |
|
1716 |
-
msgid "
|
1717 |
msgstr ""
|
1718 |
|
1719 |
-
#
|
1720 |
-
#
|
1721 |
-
#
|
1722 |
|
1723 |
-
msgid "
|
1724 |
msgstr ""
|
1725 |
|
1726 |
-
#
|
1727 |
-
#
|
1728 |
-
#
|
1729 |
|
1730 |
-
msgid "
|
1731 |
msgstr ""
|
1732 |
|
1733 |
-
#
|
1734 |
-
# $
|
1735 |
-
#
|
1736 |
|
1737 |
-
|
1738 |
-
msgid "product"
|
1739 |
msgstr ""
|
1740 |
|
1741 |
-
# '
|
1742 |
-
# '
|
1743 |
-
# '
|
1744 |
|
1745 |
-
msgid "
|
1746 |
msgstr ""
|
1747 |
|
1748 |
-
#
|
1749 |
-
# '
|
1750 |
-
#
|
1751 |
|
1752 |
-
msgid "
|
1753 |
msgstr ""
|
1754 |
|
1755 |
-
#
|
1756 |
-
#
|
1757 |
-
#
|
1758 |
|
1759 |
-
msgid "
|
1760 |
msgstr ""
|
1761 |
|
1762 |
-
#
|
1763 |
-
# '
|
1764 |
-
#
|
1765 |
|
1766 |
-
msgid "
|
1767 |
msgstr ""
|
1768 |
|
1769 |
-
# '
|
1770 |
-
#
|
1771 |
-
#
|
1772 |
|
1773 |
-
msgid "
|
1774 |
msgstr ""
|
1775 |
|
1776 |
-
#
|
1777 |
-
# '
|
1778 |
-
#
|
1779 |
|
1780 |
-
msgid "
|
1781 |
msgstr ""
|
1782 |
|
1783 |
-
# '
|
1784 |
-
# '
|
1785 |
-
# '
|
1786 |
|
1787 |
-
msgid "
|
1788 |
msgstr ""
|
1789 |
|
1790 |
-
# '
|
1791 |
-
# '
|
1792 |
-
# '
|
1793 |
|
1794 |
-
msgid "
|
1795 |
msgstr ""
|
1796 |
|
1797 |
-
# '
|
1798 |
-
# '
|
1799 |
-
#
|
1800 |
|
1801 |
-
msgid "
|
1802 |
msgstr ""
|
1803 |
|
1804 |
-
# '
|
1805 |
-
#
|
1806 |
-
# '
|
1807 |
|
1808 |
-
msgid "
|
1809 |
msgstr ""
|
1810 |
|
1811 |
-
# '
|
1812 |
-
#
|
1813 |
-
# '
|
1814 |
|
1815 |
-
msgid "
|
1816 |
msgstr ""
|
1817 |
|
1818 |
-
# '
|
1819 |
-
#
|
1820 |
-
#
|
1821 |
|
1822 |
-
msgid "
|
1823 |
msgstr ""
|
1824 |
|
1825 |
-
#
|
1826 |
-
#
|
1827 |
-
#
|
1828 |
|
1829 |
-
msgid "
|
1830 |
msgstr ""
|
1831 |
|
1832 |
-
#
|
1833 |
-
#
|
1834 |
-
#
|
1835 |
|
1836 |
-
msgid "
|
1837 |
msgstr ""
|
1838 |
|
1839 |
-
# )
|
1840 |
-
#
|
1841 |
-
#
|
1842 |
|
1843 |
-
msgid "
|
1844 |
msgstr ""
|
1845 |
|
1846 |
-
#
|
1847 |
-
#
|
1848 |
-
#
|
1849 |
|
1850 |
-
msgid "
|
1851 |
msgstr ""
|
1852 |
|
1853 |
-
#
|
1854 |
-
#
|
1855 |
-
#
|
1856 |
|
1857 |
-
msgid "
|
1858 |
msgstr ""
|
1859 |
|
1860 |
-
#
|
1861 |
-
# '
|
1862 |
-
#
|
1863 |
|
1864 |
-
msgid "
|
1865 |
msgstr ""
|
1866 |
|
1867 |
-
# '
|
1868 |
-
#
|
1869 |
-
#
|
1870 |
|
1871 |
-
msgid "
|
1872 |
msgstr ""
|
1873 |
|
1874 |
-
#
|
1875 |
-
# '
|
1876 |
-
# '
|
1877 |
|
1878 |
-
msgid "
|
1879 |
msgstr ""
|
1880 |
|
1881 |
-
#
|
1882 |
-
#
|
1883 |
-
# '
|
1884 |
|
1885 |
-
msgid "
|
1886 |
msgstr ""
|
1887 |
|
1888 |
-
# '
|
1889 |
-
# '
|
1890 |
-
# '
|
1891 |
|
1892 |
-
msgid "
|
1893 |
msgstr ""
|
1894 |
|
1895 |
-
# '
|
1896 |
-
# '
|
1897 |
-
#
|
1898 |
|
1899 |
-
msgid "
|
1900 |
msgstr ""
|
1901 |
|
1902 |
-
#
|
1903 |
-
#
|
1904 |
-
#
|
1905 |
|
1906 |
-
msgid "
|
1907 |
msgstr ""
|
1908 |
|
1909 |
-
#
|
1910 |
-
#
|
1911 |
-
#
|
1912 |
|
1913 |
-
msgid "
|
1914 |
msgstr ""
|
1915 |
|
1916 |
-
#
|
1917 |
-
# '
|
1918 |
-
#
|
1919 |
|
1920 |
-
msgid "
|
1921 |
msgstr ""
|
1922 |
|
1923 |
-
# '
|
1924 |
-
# '
|
1925 |
-
#
|
1926 |
|
1927 |
-
msgid "
|
1928 |
msgstr ""
|
1929 |
|
1930 |
-
#
|
1931 |
-
#
|
1932 |
-
#
|
1933 |
|
1934 |
-
msgid "
|
1935 |
msgstr ""
|
1936 |
|
1937 |
-
# '
|
1938 |
-
# '
|
1939 |
-
# 'view'
|
1940 |
|
1941 |
-
msgid "
|
1942 |
msgstr ""
|
1943 |
|
1944 |
-
# '
|
1945 |
-
# '
|
1946 |
-
# '
|
1947 |
|
1948 |
-
msgid "
|
1949 |
msgstr ""
|
1950 |
|
1951 |
-
# '
|
1952 |
-
# '
|
1953 |
-
# '
|
1954 |
|
1955 |
-
msgid "
|
1956 |
msgstr ""
|
1957 |
|
1958 |
-
# '
|
1959 |
-
# '
|
1960 |
-
# ),
|
1961 |
|
1962 |
-
msgid "
|
1963 |
msgstr ""
|
1964 |
|
1965 |
-
# '
|
1966 |
-
# '
|
1967 |
-
# '
|
1968 |
|
1969 |
-
msgid "
|
1970 |
msgstr ""
|
1971 |
|
1972 |
-
#
|
1973 |
-
#
|
1974 |
-
#
|
1975 |
|
1976 |
-
msgid "
|
1977 |
msgstr ""
|
1978 |
|
1979 |
-
#
|
1980 |
-
#
|
1981 |
-
#
|
1982 |
|
1983 |
-
msgid "
|
1984 |
msgstr ""
|
1985 |
|
1986 |
-
#
|
1987 |
-
# '
|
1988 |
-
# '
|
1989 |
|
1990 |
-
msgid "
|
1991 |
msgstr ""
|
1992 |
|
1993 |
-
# '
|
1994 |
-
# '
|
1995 |
-
#
|
1996 |
|
1997 |
-
msgid "
|
1998 |
msgstr ""
|
1999 |
|
2000 |
-
#
|
2001 |
-
#
|
2002 |
-
#
|
2003 |
|
2004 |
-
msgid "
|
2005 |
msgstr ""
|
2006 |
|
2007 |
-
#
|
2008 |
-
#
|
2009 |
-
#
|
2010 |
|
2011 |
-
msgid "
|
2012 |
msgstr ""
|
2013 |
|
2014 |
-
#
|
2015 |
-
#
|
2016 |
-
#
|
2017 |
|
2018 |
-
msgid "
|
2019 |
msgstr ""
|
2020 |
|
2021 |
-
#
|
2022 |
-
# '
|
2023 |
-
# '
|
2024 |
|
2025 |
-
msgid "
|
2026 |
msgstr ""
|
2027 |
|
2028 |
-
# '
|
2029 |
-
# '
|
2030 |
-
#
|
2031 |
|
2032 |
-
msgid "
|
2033 |
msgstr ""
|
2034 |
|
2035 |
-
#
|
2036 |
-
#
|
2037 |
-
#
|
2038 |
|
2039 |
-
msgid "
|
2040 |
msgstr ""
|
2041 |
|
2042 |
-
#
|
2043 |
-
#
|
2044 |
-
#
|
2045 |
|
2046 |
-
msgid "
|
2047 |
msgstr ""
|
2048 |
|
2049 |
-
#
|
2050 |
-
#
|
2051 |
-
#
|
2052 |
|
2053 |
-
msgid "
|
2054 |
msgstr ""
|
2055 |
|
2056 |
-
#
|
2057 |
-
#
|
2058 |
-
# '
|
2059 |
|
2060 |
-
msgid "
|
2061 |
msgstr ""
|
2062 |
|
2063 |
-
# '
|
2064 |
-
#
|
2065 |
-
#
|
2066 |
|
2067 |
-
msgid "
|
2068 |
msgstr ""
|
2069 |
|
2070 |
-
#
|
2071 |
-
# '
|
2072 |
-
#
|
2073 |
|
2074 |
-
msgid "
|
2075 |
msgstr ""
|
2076 |
|
2077 |
-
#
|
2078 |
-
# '
|
2079 |
-
#
|
2080 |
|
2081 |
-
msgid "
|
2082 |
msgstr ""
|
2083 |
|
2084 |
-
#
|
2085 |
-
# '
|
2086 |
-
#
|
2087 |
|
2088 |
-
msgid "
|
2089 |
msgstr ""
|
2090 |
|
2091 |
-
# '
|
2092 |
-
#
|
2093 |
-
#
|
2094 |
|
2095 |
-
msgid "
|
2096 |
msgstr ""
|
2097 |
|
2098 |
-
#
|
2099 |
-
#
|
2100 |
-
#
|
2101 |
|
2102 |
-
|
|
|
2103 |
msgstr ""
|
2104 |
|
2105 |
-
# '
|
2106 |
-
#
|
2107 |
-
#
|
2108 |
|
2109 |
-
msgid "
|
2110 |
msgstr ""
|
2111 |
|
2112 |
-
#
|
2113 |
-
# '
|
2114 |
-
#
|
2115 |
|
2116 |
-
msgid "
|
2117 |
msgstr ""
|
2118 |
|
2119 |
-
# '
|
2120 |
-
# '
|
2121 |
-
#
|
2122 |
|
2123 |
-
msgid "
|
2124 |
msgstr ""
|
2125 |
|
2126 |
-
#
|
2127 |
-
#
|
2128 |
-
# '
|
2129 |
|
2130 |
-
msgid "
|
2131 |
msgstr ""
|
2132 |
|
2133 |
-
# '
|
2134 |
-
#
|
2135 |
-
# ),
|
2136 |
|
2137 |
-
msgid "
|
2138 |
msgstr ""
|
2139 |
|
2140 |
-
# '
|
2141 |
-
#
|
2142 |
-
# )
|
2143 |
|
2144 |
-
msgid "
|
2145 |
msgstr ""
|
2146 |
|
2147 |
-
# '
|
2148 |
-
#
|
2149 |
-
#
|
2150 |
|
2151 |
-
msgid "
|
2152 |
msgstr ""
|
2153 |
|
2154 |
-
#
|
2155 |
-
#
|
2156 |
-
#
|
2157 |
|
2158 |
-
msgid "
|
2159 |
msgstr ""
|
2160 |
|
2161 |
-
#
|
2162 |
-
# '
|
2163 |
-
# '
|
2164 |
|
2165 |
-
msgid "
|
2166 |
msgstr ""
|
2167 |
|
2168 |
-
# '
|
2169 |
-
# '
|
2170 |
-
# ),
|
2171 |
|
2172 |
-
msgid "
|
2173 |
msgstr ""
|
2174 |
|
2175 |
-
# '
|
2176 |
-
# '
|
2177 |
-
# '
|
2178 |
-
|
2179 |
-
msgid "You can choose to clear the cart contents when you change language or currency in case you have problems in cart or checkout page"
|
2180 |
-
msgstr ""
|
2181 |
-
|
2182 |
-
# 'lang_switch' => array(
|
2183 |
-
# 'heading' => __('Switching languages when there are items in the cart', 'woocommerce-multilingual'),
|
2184 |
-
# 'sync_label' => __('Synchronize cart content when switching languages', 'woocommerce-multilingual'),
|
2185 |
-
|
2186 |
-
msgid "Switching languages when there are items in the cart"
|
2187 |
-
msgstr ""
|
2188 |
-
|
2189 |
-
# 'heading' => __('Switching languages when there are items in the cart', 'woocommerce-multilingual'),
|
2190 |
-
# 'sync_label' => __('Synchronize cart content when switching languages', 'woocommerce-multilingual'),
|
2191 |
-
# 'clear_label' => __('Prompt for a confirmation and reset the cart', 'woocommerce-multilingual'),
|
2192 |
-
|
2193 |
-
msgid "Synchronize cart content when switching languages"
|
2194 |
-
msgstr ""
|
2195 |
-
|
2196 |
-
# 'sync_label' => __('Synchronize cart content when switching languages', 'woocommerce-multilingual'),
|
2197 |
-
# 'clear_label' => __('Prompt for a confirmation and reset the cart', 'woocommerce-multilingual'),
|
2198 |
-
# 'value' => $this->woocommerce_wpml->settings['cart_sync']['lang_switch']
|
2199 |
-
|
2200 |
-
msgid "Prompt for a confirmation and reset the cart"
|
2201 |
-
msgstr ""
|
2202 |
-
|
2203 |
-
# 'currency_switch' => array(
|
2204 |
-
# 'heading' => __('Switching currencies when there are items in the cart', 'woocommerce-multilingual'),
|
2205 |
-
# 'sync_label' => __('Synchronize cart content when switching currencies', 'woocommerce-multilingual'),
|
2206 |
-
|
2207 |
-
msgid "Switching currencies when there are items in the cart"
|
2208 |
-
msgstr ""
|
2209 |
-
|
2210 |
-
# 'heading' => __('Switching currencies when there are items in the cart', 'woocommerce-multilingual'),
|
2211 |
-
# 'sync_label' => __('Synchronize cart content when switching currencies', 'woocommerce-multilingual'),
|
2212 |
-
# 'clear_label' => __('Prompt for a confirmation and reset the cart', 'woocommerce-multilingual'),
|
2213 |
-
|
2214 |
-
msgid "Synchronize cart content when switching currencies"
|
2215 |
-
msgstr ""
|
2216 |
-
|
2217 |
-
# ),
|
2218 |
-
# 'doc_link' => sprintf( __( 'Not sure which option to choose? Read about %spotential issues when switching languages and currencies while the cart has items%s.',
|
2219 |
-
# 'woocommerce-multilingual' ),
|
2220 |
-
|
2221 |
-
msgid "Not sure which option to choose? Read about %spotential issues when switching languages and currencies while the cart has items%s."
|
2222 |
-
msgstr ""
|
2223 |
-
|
2224 |
-
# 'nonce' => wp_nonce_field('wcml_save_settings_nonce', 'wcml_nonce', true, false),
|
2225 |
-
# 'save_label' => __( 'Save changes', 'woocommerce-multilingual' ),
|
2226 |
-
#
|
2227 |
-
|
2228 |
-
msgid "Save changes"
|
2229 |
-
msgstr ""
|
2230 |
-
|
2231 |
-
# 'url' => admin_url( 'admin.php?page=wpml-wcml&tab=troubleshooting' ),
|
2232 |
-
# 'label' => __( 'Troubleshooting page', 'woocommerce-multilingual' )
|
2233 |
-
# )
|
2234 |
|
2235 |
-
msgid "
|
2236 |
msgstr ""
|
2237 |
|
2238 |
-
# '
|
2239 |
-
# '
|
2240 |
-
# '
|
2241 |
|
2242 |
-
msgid "
|
2243 |
msgstr ""
|
2244 |
|
2245 |
-
# '
|
2246 |
-
# '
|
2247 |
-
# '
|
2248 |
|
2249 |
-
msgid "
|
2250 |
msgstr ""
|
2251 |
|
2252 |
-
# '
|
2253 |
-
# '
|
2254 |
-
# ),
|
2255 |
|
2256 |
-
msgid "
|
2257 |
msgstr ""
|
2258 |
|
2259 |
-
# '
|
2260 |
-
# '
|
2261 |
-
# '
|
2262 |
|
2263 |
-
msgid "
|
2264 |
msgstr ""
|
2265 |
|
2266 |
-
# '
|
2267 |
-
# '
|
2268 |
-
# '
|
2269 |
|
2270 |
-
msgid "
|
2271 |
msgstr ""
|
2272 |
|
2273 |
-
# '
|
2274 |
-
# '
|
2275 |
# ),
|
2276 |
|
2277 |
-
msgid "
|
2278 |
msgstr ""
|
2279 |
|
2280 |
# 'strings' => array(
|
@@ -2370,19 +1978,12 @@ msgstr ""
|
|
2370 |
|
2371 |
# 'base_not_trnsl' => __( 'Your product permalink base is not translated to:', 'woocommerce-multilingual' ),
|
2372 |
# 'trsl_urls' => __( 'Translate URLs', 'woocommerce-multilingual' ),
|
2373 |
-
# '
|
2374 |
|
2375 |
msgid "Translate URLs"
|
2376 |
msgstr ""
|
2377 |
|
2378 |
# 'trsl_urls' => __( 'Translate URLs', 'woocommerce-multilingual' ),
|
2379 |
-
# 'def_and_st_not_en' => __( "Your site's default language is not English and the strings language is also not English.", 'woocommerce-multilingual' ),
|
2380 |
-
# 'run_not_en' => __( 'Running WooCommerce multilingual with default language other than English.', 'woocommerce-multilingual' ),
|
2381 |
-
|
2382 |
-
msgid "Your site's default language is not English and the strings language is also not English."
|
2383 |
-
msgstr ""
|
2384 |
-
|
2385 |
-
# 'def_and_st_not_en' => __( "Your site's default language is not English and the strings language is also not English.", 'woocommerce-multilingual' ),
|
2386 |
# 'run_not_en' => __( 'Running WooCommerce multilingual with default language other than English.', 'woocommerce-multilingual' ),
|
2387 |
# 'url_problems' => __( 'This may cause problems with URLs in different languages.', 'woocommerce-multilingual' ),
|
2388 |
|
@@ -2398,19 +1999,12 @@ msgstr ""
|
|
2398 |
|
2399 |
# 'url_problems' => __( 'This may cause problems with URLs in different languages.', 'woocommerce-multilingual' ),
|
2400 |
# 'change_def_lang' => __( 'Change default language', 'woocommerce-multilingual' ),
|
2401 |
-
# '
|
2402 |
|
2403 |
msgid "Change default language"
|
2404 |
msgstr ""
|
2405 |
|
2406 |
# 'change_def_lang' => __( 'Change default language', 'woocommerce-multilingual' ),
|
2407 |
-
# 'def_not_en' => __( "Your site's default language is not English.", 'woocommerce-multilingual' ),
|
2408 |
-
# 'attent_sett' => __( 'There are some settings that require careful attention.', 'woocommerce-multilingual' ),
|
2409 |
-
|
2410 |
-
msgid "Your site's default language is not English."
|
2411 |
-
msgstr ""
|
2412 |
-
|
2413 |
-
# 'def_not_en' => __( "Your site's default language is not English.", 'woocommerce-multilingual' ),
|
2414 |
# 'attent_sett' => __( 'There are some settings that require careful attention.', 'woocommerce-multilingual' ),
|
2415 |
# 'over_sett' => __( 'Some settings from the WooCommerce Multilingual wpml-config.xml file have been overwritten.', 'woocommerce-multilingual' ),
|
2416 |
|
@@ -2438,6 +2032,34 @@ msgstr ""
|
|
2438 |
msgid "Multilingual Content Setup"
|
2439 |
msgstr ""
|
2440 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2441 |
# 'strings' => array(
|
2442 |
# 'products_missing' => __( 'Products Missing Translations', 'woocommerce-multilingual' ),
|
2443 |
# 'miss_trnsl_one' => __( '%d %s translation missing.', 'woocommerce-multilingual' ),
|
@@ -2473,25 +2095,11 @@ msgstr ""
|
|
2473 |
msgid "Right now, there are no products needing translation."
|
2474 |
msgstr ""
|
2475 |
|
2476 |
-
# '
|
2477 |
-
# '
|
2478 |
-
# 'not_enabled' => __( 'Multi-currency is not enabled.', 'woocommerce-multilingual' ),
|
2479 |
-
|
2480 |
-
msgid "Secondary currencies: %s"
|
2481 |
-
msgstr ""
|
2482 |
-
|
2483 |
-
# 'sec_currencies' => __( 'Secondary currencies: %s', 'woocommerce-multilingual' ),
|
2484 |
-
# 'not_enabled' => __( 'Multi-currency is not enabled.', 'woocommerce-multilingual' ),
|
2485 |
-
# 'add_cur' => __( 'Add Currencies', 'woocommerce-multilingual' )
|
2486 |
-
|
2487 |
-
msgid "Multi-currency is not enabled."
|
2488 |
-
msgstr ""
|
2489 |
-
|
2490 |
-
# 'not_enabled' => __( 'Multi-currency is not enabled.', 'woocommerce-multilingual' ),
|
2491 |
-
# 'add_cur' => __( 'Add Currencies', 'woocommerce-multilingual' )
|
2492 |
# )
|
2493 |
|
2494 |
-
msgid "
|
2495 |
msgstr ""
|
2496 |
|
2497 |
# 'strings' => array(
|
@@ -2529,214 +2137,921 @@ msgstr ""
|
|
2529 |
msgid "WooCommerce Multilingual depends on several plugins to work. If any required plugin is missing, you should install and activate it."
|
2530 |
msgstr ""
|
2531 |
|
2532 |
-
# '
|
2533 |
-
# '
|
2534 |
-
# '
|
2535 |
|
2536 |
-
msgid "
|
2537 |
msgstr ""
|
2538 |
|
2539 |
-
# '
|
2540 |
-
# '
|
2541 |
-
# '
|
2542 |
|
2543 |
-
msgid "
|
2544 |
msgstr ""
|
2545 |
|
2546 |
-
# '
|
2547 |
-
# '
|
2548 |
-
# '
|
2549 |
|
2550 |
-
msgid "
|
2551 |
msgstr ""
|
2552 |
|
2553 |
-
# '
|
2554 |
-
# '
|
2555 |
-
# '
|
2556 |
|
2557 |
-
msgid "
|
2558 |
msgstr ""
|
2559 |
|
2560 |
-
# '
|
2561 |
-
# '
|
2562 |
-
# '
|
2563 |
|
2564 |
-
msgid "
|
2565 |
msgstr ""
|
2566 |
|
2567 |
-
# '
|
2568 |
-
# '
|
2569 |
-
# '
|
2570 |
|
2571 |
-
msgid "
|
2572 |
msgstr ""
|
2573 |
|
2574 |
-
# '
|
2575 |
-
# '
|
2576 |
-
# '
|
2577 |
|
2578 |
-
msgid "
|
2579 |
msgstr ""
|
2580 |
|
2581 |
-
# '
|
2582 |
-
# '
|
2583 |
-
# ),
|
2584 |
|
2585 |
-
msgid "
|
2586 |
msgstr ""
|
2587 |
|
2588 |
-
# '
|
2589 |
-
# '
|
2590 |
-
# '
|
2591 |
|
2592 |
-
msgid "
|
2593 |
msgstr ""
|
2594 |
|
2595 |
-
# '
|
2596 |
-
# '
|
2597 |
-
# '
|
2598 |
|
2599 |
-
msgid "
|
2600 |
msgstr ""
|
2601 |
|
2602 |
-
# '
|
2603 |
-
# '
|
2604 |
-
# )
|
2605 |
|
2606 |
-
msgid "
|
2607 |
msgstr ""
|
2608 |
|
2609 |
-
# $
|
2610 |
-
# '
|
2611 |
-
#
|
2612 |
|
2613 |
-
msgid "
|
2614 |
msgstr ""
|
2615 |
|
2616 |
-
#
|
2617 |
-
# '
|
2618 |
-
# '
|
2619 |
|
2620 |
-
msgid "
|
2621 |
msgstr ""
|
2622 |
|
2623 |
-
# '
|
2624 |
-
# '
|
2625 |
-
# '
|
2626 |
|
2627 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2628 |
msgstr ""
|
2629 |
|
2630 |
-
#
|
2631 |
-
# '
|
2632 |
-
# '
|
2633 |
|
2634 |
-
msgid "
|
2635 |
msgstr ""
|
2636 |
|
2637 |
-
# '
|
2638 |
-
# '
|
2639 |
-
# '
|
2640 |
|
2641 |
-
msgid "
|
2642 |
msgstr ""
|
2643 |
|
2644 |
-
# '
|
2645 |
-
# '
|
2646 |
-
# '
|
2647 |
|
2648 |
-
msgid "
|
2649 |
msgstr ""
|
2650 |
|
2651 |
-
# '
|
2652 |
-
# '
|
2653 |
-
#
|
2654 |
|
2655 |
-
msgid "
|
2656 |
msgstr ""
|
2657 |
|
2658 |
-
#
|
2659 |
-
# '
|
2660 |
-
# '
|
2661 |
|
2662 |
-
msgid "
|
2663 |
msgstr ""
|
2664 |
|
2665 |
-
# '
|
2666 |
-
# '
|
2667 |
-
# '
|
2668 |
|
2669 |
-
msgid "
|
2670 |
msgstr ""
|
2671 |
|
2672 |
-
# '
|
2673 |
-
# '
|
2674 |
-
#
|
2675 |
|
2676 |
-
msgid "
|
2677 |
msgstr ""
|
2678 |
|
2679 |
-
# '
|
2680 |
-
# '
|
2681 |
-
# '
|
2682 |
|
2683 |
-
msgid "
|
2684 |
msgstr ""
|
2685 |
|
2686 |
-
# '
|
2687 |
-
# '
|
2688 |
-
# '
|
2689 |
|
2690 |
-
msgid "
|
2691 |
msgstr ""
|
2692 |
|
2693 |
-
# '
|
2694 |
-
# '
|
2695 |
-
# '
|
2696 |
|
2697 |
-
msgid "
|
2698 |
msgstr ""
|
2699 |
|
2700 |
-
# '
|
2701 |
-
# '
|
2702 |
-
# '
|
2703 |
|
2704 |
-
msgid "
|
2705 |
msgstr ""
|
2706 |
|
2707 |
-
# '
|
2708 |
-
# '
|
2709 |
-
# '
|
2710 |
|
2711 |
-
msgid "
|
2712 |
msgstr ""
|
2713 |
|
2714 |
-
# '
|
2715 |
-
# '
|
2716 |
-
# '
|
2717 |
|
2718 |
-
msgid "
|
2719 |
msgstr ""
|
2720 |
|
2721 |
-
# '
|
2722 |
-
# __('
|
2723 |
-
# '
|
2724 |
|
2725 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2726 |
msgstr ""
|
2727 |
|
|
|
|
|
2728 |
# ),
|
2729 |
-
# 'updated_success' => __( 'Exchange rates updated successfully', 'woocommerce-multilingual' ),
|
2730 |
-
# 'visit_website' => __( 'Visit website', 'woocommerce-multilingual' )
|
2731 |
|
2732 |
-
msgid "
|
2733 |
msgstr ""
|
2734 |
|
2735 |
-
# '
|
2736 |
-
# '
|
2737 |
-
#
|
2738 |
|
2739 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2740 |
msgstr ""
|
2741 |
|
2742 |
# 'form' => array(
|
@@ -2755,7 +3070,7 @@ msgstr ""
|
|
2755 |
|
2756 |
# 'label' => __( 'Exchange Rate', 'woocommerce-multilingual' ),
|
2757 |
# 'only_numeric' => __( 'Only numeric', 'woocommerce-multilingual' ),
|
2758 |
-
# '
|
2759 |
|
2760 |
msgid "Only numeric"
|
2761 |
msgstr ""
|
@@ -2874,12 +3189,12 @@ msgstr ""
|
|
2874 |
|
2875 |
# 'nearest' => __( 'Nearest', 'woocommerce-multilingual' ),
|
2876 |
# 'increment' => __( 'Increment for nearest integer', 'woocommerce-multilingual' ),
|
2877 |
-
#
|
2878 |
|
2879 |
msgid "Increment for nearest integer"
|
2880 |
msgstr ""
|
2881 |
|
2882 |
-
#
|
2883 |
# 'rounding_tooltip' => sprintf( __("Round the converted price to the closest integer. %se.g. 15.78 becomes 16.00", 'woocommerce-multilingual'), '<br />' ),
|
2884 |
# 'increment_tooltip' => sprintf( __('The resulting price will be an increment of this value after initial rounding.%se.g.:', 'woocommerce-multilingual'), '<br>' ) . '<br />' .
|
2885 |
|
@@ -2935,18 +3250,11 @@ msgstr ""
|
|
2935 |
msgid "Autosubtract amount"
|
2936 |
msgstr ""
|
2937 |
|
2938 |
-
#
|
2939 |
-
# '
|
2940 |
-
# 'save' => __( 'Save', 'woocommerce-multilingual' )
|
2941 |
-
|
2942 |
-
msgid "Cancel"
|
2943 |
-
msgstr ""
|
2944 |
-
|
2945 |
# 'cancel' => __( 'Cancel', 'woocommerce-multilingual' ),
|
2946 |
-
# 'save' => __( 'Save', 'woocommerce-multilingual' )
|
2947 |
-
#
|
2948 |
|
2949 |
-
msgid "
|
2950 |
msgstr ""
|
2951 |
|
2952 |
# 'automatic_rates' => $exchange_rates_automatic,
|
@@ -2956,837 +3264,844 @@ msgstr ""
|
|
2956 |
msgid "Exchange rate updated automatically from %s"
|
2957 |
msgstr ""
|
2958 |
|
2959 |
-
# $
|
2960 |
-
#
|
2961 |
-
#
|
2962 |
|
2963 |
-
msgid "
|
2964 |
msgstr ""
|
2965 |
|
2966 |
-
#
|
2967 |
-
#
|
2968 |
-
#
|
2969 |
|
2970 |
-
msgid "
|
2971 |
msgstr ""
|
2972 |
|
2973 |
-
# '
|
2974 |
-
# '
|
2975 |
-
# '
|
2976 |
|
2977 |
-
msgid "
|
2978 |
msgstr ""
|
2979 |
|
2980 |
-
# '
|
2981 |
-
# '
|
2982 |
-
# '
|
2983 |
|
2984 |
-
msgid "
|
2985 |
msgstr ""
|
2986 |
|
2987 |
-
# '
|
2988 |
-
# '
|
2989 |
-
# '
|
2990 |
|
2991 |
-
msgid "
|
2992 |
msgstr ""
|
2993 |
|
2994 |
-
# '
|
2995 |
-
# '
|
2996 |
-
# '
|
2997 |
|
2998 |
-
msgid "
|
2999 |
msgstr ""
|
3000 |
|
3001 |
-
# '
|
3002 |
-
# '
|
3003 |
-
# '
|
3004 |
|
3005 |
-
msgid "
|
3006 |
msgstr ""
|
3007 |
|
3008 |
-
# '
|
3009 |
-
# '
|
3010 |
-
# '
|
3011 |
|
3012 |
-
msgid "
|
3013 |
msgstr ""
|
3014 |
|
3015 |
-
# '
|
3016 |
-
# '
|
3017 |
-
# '
|
3018 |
|
3019 |
-
msgid "
|
3020 |
msgstr ""
|
3021 |
|
3022 |
-
# '
|
3023 |
-
# '
|
3024 |
-
# '
|
3025 |
|
3026 |
-
msgid "
|
3027 |
msgstr ""
|
3028 |
|
3029 |
-
# '
|
3030 |
-
# '
|
3031 |
-
# '
|
3032 |
|
3033 |
-
msgid "
|
3034 |
msgstr ""
|
3035 |
|
3036 |
-
# '
|
3037 |
-
# '
|
3038 |
-
# '
|
3039 |
|
3040 |
-
msgid "
|
3041 |
msgstr ""
|
3042 |
|
3043 |
-
# '
|
3044 |
-
# '
|
3045 |
-
# '
|
3046 |
|
3047 |
-
msgid "
|
3048 |
msgstr ""
|
3049 |
|
3050 |
-
# '
|
3051 |
-
# '
|
3052 |
-
# '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3053 |
|
3054 |
-
msgid "
|
3055 |
msgstr ""
|
3056 |
|
3057 |
-
# '
|
3058 |
-
# '
|
3059 |
-
# '
|
3060 |
|
3061 |
-
msgid "
|
3062 |
msgstr ""
|
3063 |
|
3064 |
-
#
|
3065 |
-
# '
|
3066 |
-
# '
|
3067 |
|
3068 |
-
msgid "
|
3069 |
msgstr ""
|
3070 |
|
3071 |
-
# '
|
3072 |
-
# '
|
3073 |
-
#
|
3074 |
|
3075 |
-
msgid "
|
3076 |
msgstr ""
|
3077 |
|
3078 |
-
#
|
3079 |
-
# '
|
3080 |
-
#
|
3081 |
|
3082 |
-
msgid "
|
3083 |
msgstr ""
|
3084 |
|
3085 |
-
# '
|
3086 |
-
#
|
3087 |
-
#
|
3088 |
|
3089 |
-
msgid "
|
3090 |
msgstr ""
|
3091 |
|
3092 |
-
#
|
3093 |
-
# '
|
3094 |
-
# '
|
3095 |
|
3096 |
-
msgid "
|
3097 |
msgstr ""
|
3098 |
|
3099 |
-
# '
|
3100 |
-
# '
|
3101 |
-
# '
|
3102 |
|
3103 |
-
msgid "
|
3104 |
msgstr ""
|
3105 |
|
3106 |
-
# '
|
3107 |
-
# '
|
3108 |
-
#
|
3109 |
|
3110 |
-
msgid "
|
3111 |
msgstr ""
|
3112 |
|
3113 |
-
# '
|
3114 |
-
# '
|
3115 |
-
# '
|
3116 |
|
3117 |
-
msgid "
|
3118 |
msgstr ""
|
3119 |
|
3120 |
-
# '
|
3121 |
-
# '
|
3122 |
-
# '
|
3123 |
|
3124 |
-
msgid "
|
3125 |
msgstr ""
|
3126 |
|
3127 |
-
# '
|
3128 |
-
# '
|
3129 |
-
#
|
3130 |
|
3131 |
-
msgid "
|
3132 |
msgstr ""
|
3133 |
|
3134 |
-
# '
|
3135 |
-
# '
|
3136 |
-
# '
|
3137 |
|
3138 |
-
msgid "
|
3139 |
msgstr ""
|
3140 |
|
3141 |
-
# '
|
3142 |
-
# '
|
3143 |
-
# '
|
3144 |
|
3145 |
-
msgid "
|
3146 |
msgstr ""
|
3147 |
|
3148 |
-
#
|
3149 |
-
# '
|
3150 |
-
# '
|
3151 |
|
3152 |
-
msgid "
|
3153 |
msgstr ""
|
3154 |
|
3155 |
-
# '
|
3156 |
-
# '
|
3157 |
-
# '
|
3158 |
|
3159 |
-
msgid "
|
3160 |
msgstr ""
|
3161 |
|
3162 |
-
# '
|
3163 |
-
# '
|
3164 |
-
# )
|
3165 |
|
3166 |
-
msgid "
|
3167 |
msgstr ""
|
3168 |
|
3169 |
-
# '
|
3170 |
-
# '
|
3171 |
-
#
|
3172 |
|
3173 |
-
msgid "
|
3174 |
msgstr ""
|
3175 |
|
3176 |
-
#
|
3177 |
-
# '
|
3178 |
-
# '
|
3179 |
|
3180 |
-
msgid "
|
3181 |
msgstr ""
|
3182 |
|
3183 |
-
# '
|
3184 |
-
# '
|
3185 |
-
# '
|
3186 |
|
3187 |
-
msgid "
|
3188 |
msgstr ""
|
3189 |
|
3190 |
-
# '
|
3191 |
-
# '
|
3192 |
-
#
|
3193 |
|
3194 |
-
msgid "
|
3195 |
msgstr ""
|
3196 |
|
3197 |
-
# '
|
3198 |
-
# '
|
3199 |
-
# ),
|
3200 |
|
3201 |
-
msgid "
|
3202 |
msgstr ""
|
3203 |
|
3204 |
-
# '
|
3205 |
-
# '
|
3206 |
-
# '
|
3207 |
|
3208 |
-
msgid "
|
3209 |
msgstr ""
|
3210 |
|
3211 |
-
# '
|
3212 |
-
# '
|
3213 |
-
#
|
3214 |
|
3215 |
-
msgid "
|
3216 |
msgstr ""
|
3217 |
|
3218 |
-
# '
|
3219 |
-
# '
|
3220 |
-
# '
|
3221 |
|
3222 |
-
msgid "
|
3223 |
msgstr ""
|
3224 |
|
3225 |
-
# '
|
3226 |
-
# '
|
3227 |
-
# '
|
3228 |
|
3229 |
-
msgid "
|
3230 |
msgstr ""
|
3231 |
|
3232 |
-
# '
|
3233 |
-
# '
|
3234 |
-
#
|
3235 |
|
3236 |
-
msgid "
|
3237 |
msgstr ""
|
3238 |
|
3239 |
-
# '
|
3240 |
-
# '
|
3241 |
-
#
|
3242 |
|
3243 |
-
msgid "
|
3244 |
msgstr ""
|
3245 |
|
3246 |
-
# '
|
3247 |
-
# '
|
3248 |
-
#
|
3249 |
|
3250 |
-
msgid "
|
3251 |
msgstr ""
|
3252 |
|
3253 |
-
# '
|
3254 |
-
# '
|
3255 |
# ),
|
3256 |
|
3257 |
-
msgid "
|
3258 |
msgstr ""
|
3259 |
|
3260 |
-
# '
|
3261 |
-
# '
|
3262 |
-
#
|
3263 |
|
3264 |
-
msgid "
|
3265 |
msgstr ""
|
3266 |
|
3267 |
# 'options' => array(
|
3268 |
-
# '
|
3269 |
-
# '
|
3270 |
|
3271 |
-
msgid "
|
3272 |
msgstr ""
|
3273 |
|
3274 |
-
# '
|
3275 |
-
# '
|
3276 |
-
# '
|
3277 |
|
3278 |
-
msgid "
|
3279 |
msgstr ""
|
3280 |
|
3281 |
-
# '
|
3282 |
-
# '
|
3283 |
-
# '
|
3284 |
|
3285 |
-
msgid "
|
3286 |
msgstr ""
|
3287 |
|
3288 |
-
# '
|
3289 |
-
# '
|
3290 |
-
# '
|
3291 |
|
3292 |
-
msgid "
|
3293 |
msgstr ""
|
3294 |
|
3295 |
-
# '
|
3296 |
-
# '
|
3297 |
# ),
|
3298 |
|
3299 |
-
msgid "
|
3300 |
-
msgstr ""
|
3301 |
-
|
3302 |
-
# 'order_nonce' => wp_create_nonce( 'set_currencies_order_nonce' ),
|
3303 |
-
# 'order_tip' => __( 'Drag the currencies to change their order', 'woocommerce-multilingual' ),
|
3304 |
-
# 'parameters_tip' => __( '%name%, %symbol%, %code%', 'woocommerce-multilingual' ),
|
3305 |
-
|
3306 |
-
msgid "Drag the currencies to change their order"
|
3307 |
msgstr ""
|
3308 |
|
3309 |
-
# '
|
3310 |
-
# '
|
3311 |
-
# '
|
3312 |
|
3313 |
-
msgid "
|
3314 |
msgstr ""
|
3315 |
|
3316 |
-
#
|
3317 |
-
# '
|
3318 |
-
# '
|
3319 |
|
3320 |
-
msgid "
|
3321 |
msgstr ""
|
3322 |
|
3323 |
-
# '
|
3324 |
-
# '
|
3325 |
-
# '
|
3326 |
|
3327 |
-
msgid "
|
3328 |
msgstr ""
|
3329 |
|
3330 |
-
# '
|
3331 |
-
# '
|
3332 |
-
#
|
3333 |
|
3334 |
-
msgid "
|
3335 |
msgstr ""
|
3336 |
|
3337 |
-
# '
|
3338 |
-
# '
|
3339 |
-
# '
|
3340 |
|
3341 |
-
msgid "
|
3342 |
msgstr ""
|
3343 |
|
3344 |
-
# '
|
3345 |
-
# '
|
3346 |
-
# '
|
3347 |
|
3348 |
-
msgid "
|
3349 |
msgstr ""
|
3350 |
|
3351 |
-
# '
|
3352 |
-
# '
|
3353 |
-
# '
|
3354 |
|
3355 |
-
msgid "
|
3356 |
msgstr ""
|
3357 |
|
3358 |
-
# '
|
3359 |
-
# '
|
3360 |
-
# '
|
3361 |
|
3362 |
-
msgid "
|
3363 |
msgstr ""
|
3364 |
|
3365 |
-
# '
|
3366 |
-
# '
|
3367 |
-
# '
|
3368 |
|
3369 |
-
msgid "
|
3370 |
msgstr ""
|
3371 |
|
3372 |
-
# '
|
3373 |
-
# '
|
3374 |
-
# '
|
3375 |
|
3376 |
-
msgid "
|
3377 |
msgstr ""
|
3378 |
|
3379 |
-
# '
|
3380 |
-
# '
|
3381 |
-
# '
|
3382 |
|
3383 |
-
msgid "
|
3384 |
msgstr ""
|
3385 |
|
3386 |
-
# '
|
3387 |
-
# '
|
3388 |
-
#
|
3389 |
|
3390 |
-
msgid "
|
3391 |
msgstr ""
|
3392 |
|
3393 |
-
# '
|
3394 |
-
# '
|
3395 |
-
# '
|
3396 |
-
|
3397 |
-
msgid "
|
3398 |
msgstr ""
|
3399 |
|
3400 |
-
# '
|
3401 |
-
# '
|
3402 |
-
# '
|
3403 |
|
3404 |
-
msgid "
|
3405 |
msgstr ""
|
3406 |
|
3407 |
-
# '
|
3408 |
-
# '
|
3409 |
-
# '
|
3410 |
|
3411 |
-
msgid "
|
3412 |
msgstr ""
|
3413 |
|
3414 |
-
# '
|
3415 |
-
# '
|
3416 |
-
# '
|
3417 |
|
3418 |
-
msgid "
|
3419 |
msgstr ""
|
3420 |
|
3421 |
-
# '
|
3422 |
-
# '
|
3423 |
-
# '
|
3424 |
|
3425 |
-
msgid "
|
3426 |
msgstr ""
|
3427 |
|
3428 |
-
# '
|
3429 |
-
# '
|
3430 |
# ),
|
3431 |
|
3432 |
-
msgid "
|
3433 |
msgstr ""
|
3434 |
|
3435 |
-
# '
|
3436 |
-
# '
|
3437 |
-
# '
|
3438 |
|
3439 |
-
msgid "
|
3440 |
msgstr ""
|
3441 |
|
3442 |
-
# '
|
3443 |
-
# '
|
3444 |
-
# '
|
3445 |
|
3446 |
-
msgid "
|
3447 |
msgstr ""
|
3448 |
|
3449 |
-
# '
|
3450 |
-
# '
|
3451 |
-
# '
|
3452 |
|
3453 |
-
msgid "
|
3454 |
msgstr ""
|
3455 |
|
3456 |
-
# '
|
3457 |
-
# '
|
3458 |
-
# '
|
3459 |
|
3460 |
-
msgid "
|
3461 |
msgstr ""
|
3462 |
|
3463 |
-
# '
|
3464 |
-
# '
|
3465 |
-
# '
|
3466 |
|
3467 |
-
msgid "
|
3468 |
msgstr ""
|
3469 |
|
3470 |
-
# '
|
3471 |
-
# '
|
3472 |
-
# '
|
3473 |
|
3474 |
-
msgid "
|
3475 |
msgstr ""
|
3476 |
|
3477 |
-
# '
|
3478 |
-
# '
|
3479 |
-
# '
|
3480 |
|
3481 |
-
msgid "
|
3482 |
msgstr ""
|
3483 |
|
3484 |
-
# '
|
3485 |
-
# '
|
3486 |
-
# '
|
3487 |
|
3488 |
-
msgid "
|
3489 |
msgstr ""
|
3490 |
|
3491 |
-
# '
|
3492 |
-
# '
|
3493 |
-
# '
|
3494 |
|
3495 |
-
msgid "
|
3496 |
msgstr ""
|
3497 |
|
3498 |
-
# '
|
3499 |
-
# '
|
3500 |
-
# '
|
3501 |
|
3502 |
-
msgid "
|
3503 |
msgstr ""
|
3504 |
|
3505 |
-
# '
|
3506 |
-
# '
|
3507 |
-
# '
|
3508 |
|
3509 |
-
msgid "
|
3510 |
msgstr ""
|
3511 |
|
3512 |
-
# '
|
3513 |
-
# '
|
3514 |
-
# )
|
3515 |
|
3516 |
-
msgid "
|
3517 |
msgstr ""
|
3518 |
|
3519 |
-
# '
|
3520 |
-
# '
|
3521 |
-
# '
|
3522 |
|
3523 |
-
msgid "
|
3524 |
msgstr ""
|
3525 |
|
3526 |
-
# '
|
3527 |
-
# '
|
3528 |
-
#
|
3529 |
|
3530 |
-
msgid "
|
3531 |
msgstr ""
|
3532 |
|
3533 |
-
# '
|
3534 |
-
# '
|
3535 |
-
# '
|
3536 |
|
3537 |
-
msgid "
|
3538 |
msgstr ""
|
3539 |
|
3540 |
-
# '
|
3541 |
-
# '
|
3542 |
-
# '
|
3543 |
|
3544 |
-
msgid "
|
3545 |
msgstr ""
|
3546 |
|
3547 |
-
# '
|
3548 |
-
# '
|
3549 |
-
# ),
|
3550 |
|
3551 |
-
msgid "
|
3552 |
msgstr ""
|
3553 |
|
3554 |
-
#
|
3555 |
-
#
|
3556 |
-
#
|
3557 |
|
3558 |
-
msgid "
|
3559 |
msgstr ""
|
3560 |
|
3561 |
-
# '
|
3562 |
-
#
|
3563 |
-
# '
|
3564 |
|
3565 |
-
msgid "
|
3566 |
msgstr ""
|
3567 |
|
3568 |
-
# '
|
3569 |
-
# '
|
3570 |
-
# '
|
3571 |
|
3572 |
-
msgid "
|
3573 |
msgstr ""
|
3574 |
|
3575 |
-
# '
|
3576 |
-
# '
|
3577 |
-
# '
|
3578 |
|
3579 |
-
msgid "All
|
3580 |
msgstr ""
|
3581 |
|
3582 |
-
# '
|
3583 |
-
# '
|
3584 |
-
# ),
|
3585 |
|
3586 |
-
msgid "
|
3587 |
msgstr ""
|
3588 |
|
3589 |
-
# '
|
3590 |
-
# '
|
3591 |
-
# '
|
3592 |
|
3593 |
-
msgid "
|
3594 |
msgstr ""
|
3595 |
|
3596 |
-
# '
|
3597 |
-
# '
|
3598 |
-
#
|
3599 |
|
3600 |
-
msgid "
|
3601 |
msgstr ""
|
3602 |
|
3603 |
-
#
|
3604 |
-
# '
|
3605 |
-
# '
|
3606 |
|
3607 |
-
msgid "
|
3608 |
msgstr ""
|
3609 |
|
3610 |
-
# '
|
3611 |
-
# '
|
3612 |
-
# '
|
3613 |
|
3614 |
-
msgid "
|
3615 |
msgstr ""
|
3616 |
|
3617 |
-
# '
|
3618 |
-
# '
|
3619 |
-
# '
|
3620 |
|
3621 |
-
msgid "
|
3622 |
msgstr ""
|
3623 |
|
3624 |
-
# '
|
3625 |
-
# '
|
3626 |
-
#
|
3627 |
|
3628 |
-
msgid "
|
3629 |
msgstr ""
|
3630 |
|
3631 |
-
# ),
|
3632 |
-
# '
|
3633 |
-
# '
|
3634 |
|
3635 |
-
msgid "
|
3636 |
msgstr ""
|
3637 |
|
3638 |
-
# '
|
3639 |
-
# '
|
3640 |
-
# '
|
3641 |
|
3642 |
-
msgid "
|
3643 |
msgstr ""
|
3644 |
|
3645 |
-
# '
|
3646 |
-
# '
|
3647 |
-
# ),
|
3648 |
|
3649 |
-
msgid "
|
3650 |
msgstr ""
|
3651 |
|
3652 |
-
# '
|
3653 |
-
# '
|
3654 |
-
#
|
3655 |
|
3656 |
-
msgid "
|
3657 |
msgstr ""
|
3658 |
|
3659 |
-
# '
|
3660 |
-
# '
|
3661 |
-
# '
|
3662 |
|
3663 |
-
msgid "
|
3664 |
msgstr ""
|
3665 |
|
3666 |
-
# '
|
3667 |
-
# '
|
3668 |
-
# ),
|
3669 |
|
3670 |
-
msgid "
|
3671 |
msgstr ""
|
3672 |
|
3673 |
-
# '
|
3674 |
-
# '
|
3675 |
-
#
|
3676 |
|
3677 |
-
msgid "
|
3678 |
msgstr ""
|
3679 |
|
3680 |
-
# '
|
3681 |
-
# '
|
3682 |
-
#
|
3683 |
|
3684 |
-
msgid "
|
3685 |
msgstr ""
|
3686 |
|
3687 |
-
# '
|
3688 |
-
# '
|
3689 |
-
# '
|
3690 |
|
3691 |
-
msgid "
|
3692 |
msgstr ""
|
3693 |
|
3694 |
-
# '
|
3695 |
-
# '
|
3696 |
-
# '
|
3697 |
|
3698 |
-
msgid "
|
3699 |
msgstr ""
|
3700 |
|
|
|
|
|
3701 |
# ),
|
3702 |
-
# 'perm_settings' => '<a href="'.admin_url('options-permalink.php').'" >' .__( 'permalinks settings', 'woocommerce-multilingual' ).'</a>',
|
3703 |
-
# 'account_settings' => '<a href="admin.php?page=wc-settings&tab=account" >'.__( 'Account settings', 'woocommerce-multilingual' ).'</a>',
|
3704 |
|
3705 |
-
msgid "
|
3706 |
msgstr ""
|
3707 |
|
3708 |
-
# '
|
3709 |
-
# '
|
3710 |
-
#
|
3711 |
|
3712 |
-
msgid "
|
3713 |
msgstr ""
|
3714 |
|
3715 |
-
# '
|
3716 |
-
# '
|
3717 |
-
# '
|
3718 |
|
3719 |
-
msgid "
|
3720 |
msgstr ""
|
3721 |
|
3722 |
-
# '
|
3723 |
-
# '
|
3724 |
-
#
|
3725 |
|
3726 |
-
msgid "
|
3727 |
msgstr ""
|
3728 |
|
3729 |
-
# '
|
3730 |
-
# '
|
3731 |
-
#
|
3732 |
|
3733 |
-
msgid "
|
3734 |
msgstr ""
|
3735 |
|
3736 |
-
# '
|
3737 |
-
# '
|
3738 |
-
# '
|
3739 |
|
3740 |
-
msgid "
|
3741 |
msgstr ""
|
3742 |
|
3743 |
-
# '
|
3744 |
-
# '
|
3745 |
-
# '
|
3746 |
|
3747 |
-
msgid "
|
3748 |
msgstr ""
|
3749 |
|
3750 |
-
# '
|
3751 |
-
# '
|
3752 |
-
# '
|
3753 |
|
3754 |
-
msgid "
|
3755 |
msgstr ""
|
3756 |
|
3757 |
-
# '
|
3758 |
-
# '
|
3759 |
-
# '
|
3760 |
|
3761 |
-
msgid "
|
3762 |
msgstr ""
|
3763 |
|
3764 |
-
# '
|
3765 |
-
# '
|
3766 |
-
# ),
|
3767 |
|
3768 |
-
msgid "
|
3769 |
msgstr ""
|
3770 |
|
3771 |
-
# '
|
3772 |
-
# '
|
3773 |
-
# '
|
3774 |
|
3775 |
-
msgid "
|
3776 |
msgstr ""
|
3777 |
|
3778 |
-
# '
|
3779 |
-
# '
|
3780 |
-
# '
|
3781 |
|
3782 |
-
msgid "
|
3783 |
msgstr ""
|
3784 |
|
3785 |
-
#
|
3786 |
-
#
|
3787 |
-
#
|
3788 |
|
3789 |
-
msgid "
|
3790 |
msgstr ""
|
3791 |
|
3792 |
# 'strings' => array(
|
@@ -3824,366 +4139,284 @@ msgstr ""
|
|
3824 |
msgid "This action lets you automatically apply the %s taxonomy to your content in different languages. It will scan the original content and apply the same taxonomy to translated content."
|
3825 |
msgstr ""
|
3826 |
|
3827 |
-
#
|
3828 |
-
# $
|
3829 |
-
#
|
3830 |
-
|
3831 |
-
msgid "--Taxonomy--"
|
3832 |
-
msgstr ""
|
3833 |
-
|
3834 |
-
# 'strings' => array(
|
3835 |
-
# 'no_taxonomies' => __( 'There are no translatable product custom taxonomies defined', 'woocommerce-multilingual' ),
|
3836 |
-
# 'select_label' => __('Select the taxonomy to translate: ', 'woocommerce-multilingual'),
|
3837 |
-
|
3838 |
-
msgid "There are no translatable product custom taxonomies defined"
|
3839 |
-
msgstr ""
|
3840 |
-
|
3841 |
-
# 'no_taxonomies' => __( 'There are no translatable product custom taxonomies defined', 'woocommerce-multilingual' ),
|
3842 |
-
# 'select_label' => __('Select the taxonomy to translate: ', 'woocommerce-multilingual'),
|
3843 |
-
# 'loading' => __( 'Loading ...', 'woocommerce-multilingual' )
|
3844 |
-
|
3845 |
-
msgid "Select the taxonomy to translate: "
|
3846 |
-
msgstr ""
|
3847 |
-
|
3848 |
-
# $empty_value->attribute_name = '';
|
3849 |
-
# $empty_value->attribute_label = __( '--Attribute--', 'woocommerce-multilingual' );
|
3850 |
-
# array_unshift( $product_attributes, $empty_value );
|
3851 |
-
|
3852 |
-
msgid "--Attribute--"
|
3853 |
-
msgstr ""
|
3854 |
-
|
3855 |
-
# 'strings' => array(
|
3856 |
-
# 'no_attributes' => __( 'There are no translatable product attributes defined', 'woocommerce-multilingual' ),
|
3857 |
-
# 'select_label' => __('Select the attribute to translate: ', 'woocommerce-multilingual'),
|
3858 |
-
|
3859 |
-
msgid "There are no translatable product attributes defined"
|
3860 |
-
msgstr ""
|
3861 |
-
|
3862 |
-
# 'no_attributes' => __( 'There are no translatable product attributes defined', 'woocommerce-multilingual' ),
|
3863 |
-
# 'select_label' => __('Select the attribute to translate: ', 'woocommerce-multilingual'),
|
3864 |
-
# 'loading' => __( 'Loading ...', 'woocommerce-multilingual' )
|
3865 |
-
|
3866 |
-
msgid "Select the attribute to translate: "
|
3867 |
-
msgstr ""
|
3868 |
-
|
3869 |
-
# $link = admin_url('admin.php?page=wpml-wcml');
|
3870 |
-
# $name = __('Translate WooCommerce products', 'woocommerce-multilingual');
|
3871 |
-
# wp_enqueue_style( 'wcml-pointers');
|
3872 |
-
|
3873 |
-
msgid "Translate WooCommerce products"
|
3874 |
-
msgstr ""
|
3875 |
-
|
3876 |
-
# $link = admin_url('admin.php?page=wpml-wcml&tab=product_shipping_class');
|
3877 |
-
# $name = __('Translate shipping classes', 'woocommerce-multilingual');
|
3878 |
-
# wp_enqueue_style( 'wcml-pointers');
|
3879 |
-
|
3880 |
-
msgid "Translate shipping classes"
|
3881 |
-
msgstr ""
|
3882 |
-
|
3883 |
-
# $link = admin_url('admin.php?page=wpml-wcml&tab=multi-currency');
|
3884 |
-
# $name = __('Configure multi-currency for multilingual sites', 'woocommerce-multilingual');
|
3885 |
-
# wp_enqueue_style( 'wcml-pointers');
|
3886 |
-
|
3887 |
-
msgid "Configure multi-currency for multilingual sites"
|
3888 |
-
msgstr ""
|
3889 |
-
|
3890 |
-
# $link = admin_url('admin.php?page=wpml-wcml&tab=slugs');
|
3891 |
-
# $name = __('Translate endpoints', 'woocommerce-multilingual');
|
3892 |
-
# wp_enqueue_style( 'wcml-pointers');
|
3893 |
-
|
3894 |
-
msgid "Translate endpoints"
|
3895 |
-
msgstr ""
|
3896 |
-
|
3897 |
-
# $wp_api->add_submenu_page(null,
|
3898 |
-
# __('Translations', 'wpml-translation-management'), __('Translations', 'wpml-translation-management'),
|
3899 |
-
# 'wpml_operate_woocommerce_multilingual', WPML_TM_FOLDER . '/menu/translations-queue.php', array($WPML_Translation_Management, 'translation_queue_page'));
|
3900 |
-
|
3901 |
-
msgid "Translations"
|
3902 |
-
msgstr ""
|
3903 |
-
|
3904 |
-
# $quick_edit_notice = '<div id="quick_edit_notice" style="display:none;"><p>' .
|
3905 |
-
# sprintf( __( "Quick edit is disabled for product translations. It\'s recommended to use the %s for editing products translations. %s",
|
3906 |
-
# 'woocommerce-multilingual' ), '<a href="' . admin_url( 'admin.php?page=wpml-wcml&tab=products' ) . '" >' .
|
3907 |
-
|
3908 |
-
msgid "Quick edit is disabled for product translations. It's recommended to use the %s for editing products translations. %s"
|
3909 |
-
msgstr ""
|
3910 |
-
|
3911 |
-
# 'woocommerce-multilingual' ), '<a href="' . admin_url( 'admin.php?page=wpml-wcml&tab=products' ) . '" >' .
|
3912 |
-
# __( 'WooCommerce Multilingual products editor', 'woocommerce-multilingual' ) . '</a>',
|
3913 |
-
# '<a href="" class="quick_product_trnsl_link" >' . __( 'Edit this product translation', 'woocommerce-multilingual' ) . '</a>'
|
3914 |
|
3915 |
-
msgid "WooCommerce Multilingual
|
3916 |
-
msgstr ""
|
3917 |
-
|
3918 |
-
# __( 'WooCommerce Multilingual products editor', 'woocommerce-multilingual' ) . '</a>',
|
3919 |
-
# '<a href="" class="quick_product_trnsl_link" >' . __( 'Edit this product translation', 'woocommerce-multilingual' ) . '</a>'
|
3920 |
-
# ) . '</p></div>';
|
3921 |
-
|
3922 |
-
msgid "Edit this product translation"
|
3923 |
msgstr ""
|
3924 |
|
3925 |
-
# $
|
3926 |
-
#
|
3927 |
-
#
|
3928 |
|
3929 |
-
msgid "
|
3930 |
msgstr ""
|
3931 |
|
3932 |
-
#
|
3933 |
-
#
|
3934 |
-
#
|
3935 |
|
3936 |
-
|
|
|
3937 |
msgstr ""
|
3938 |
|
3939 |
-
# $
|
3940 |
-
#
|
3941 |
-
#
|
3942 |
|
3943 |
-
|
|
|
3944 |
msgstr ""
|
3945 |
|
3946 |
-
#
|
3947 |
-
#
|
3948 |
-
#
|
3949 |
|
3950 |
-
msgid "
|
3951 |
msgstr ""
|
3952 |
|
3953 |
-
#
|
3954 |
-
# '
|
3955 |
-
#
|
3956 |
|
3957 |
-
msgid "
|
3958 |
msgstr ""
|
3959 |
|
3960 |
-
#
|
3961 |
-
#
|
3962 |
-
#
|
3963 |
|
3964 |
-
msgid "
|
3965 |
msgstr ""
|
3966 |
|
3967 |
-
#
|
3968 |
-
#
|
3969 |
-
#
|
3970 |
|
3971 |
-
msgid "
|
3972 |
msgstr ""
|
3973 |
|
3974 |
-
# '
|
3975 |
-
# '
|
3976 |
-
# '
|
3977 |
|
3978 |
-
msgid "
|
3979 |
msgstr ""
|
3980 |
|
3981 |
-
# '
|
3982 |
-
# '
|
3983 |
-
# '
|
3984 |
|
3985 |
-
msgid "
|
3986 |
msgstr ""
|
3987 |
|
3988 |
-
#
|
3989 |
-
#
|
3990 |
-
#
|
3991 |
|
3992 |
-
msgid "
|
3993 |
msgstr ""
|
3994 |
|
3995 |
-
#
|
3996 |
-
#
|
3997 |
-
#
|
3998 |
|
3999 |
-
msgid "
|
4000 |
msgstr ""
|
4001 |
|
4002 |
-
#
|
4003 |
-
#
|
4004 |
-
#
|
4005 |
|
4006 |
-
msgid "
|
4007 |
msgstr ""
|
4008 |
|
4009 |
-
#
|
4010 |
-
#
|
4011 |
-
#
|
4012 |
|
4013 |
-
msgid "
|
4014 |
msgstr ""
|
4015 |
|
4016 |
-
# <
|
4017 |
-
# <
|
4018 |
-
#
|
4019 |
|
4020 |
-
msgid "
|
4021 |
msgstr ""
|
4022 |
|
4023 |
-
# <
|
4024 |
-
# <
|
4025 |
-
#
|
4026 |
|
4027 |
-
msgid "
|
4028 |
msgstr ""
|
4029 |
|
4030 |
-
#
|
4031 |
-
#
|
4032 |
-
#
|
4033 |
|
4034 |
-
msgid "
|
4035 |
msgstr ""
|
4036 |
|
4037 |
-
#
|
4038 |
-
# <a href="
|
4039 |
-
#
|
4040 |
|
4041 |
-
msgid "
|
4042 |
msgstr ""
|
4043 |
|
4044 |
-
#
|
4045 |
-
#
|
4046 |
-
#
|
4047 |
|
4048 |
-
msgid "
|
4049 |
msgstr ""
|
4050 |
|
4051 |
-
#
|
4052 |
-
#
|
4053 |
-
#
|
4054 |
|
4055 |
-
msgid "
|
4056 |
msgstr ""
|
4057 |
|
4058 |
-
#
|
4059 |
-
#
|
4060 |
-
#
|
4061 |
|
4062 |
-
msgid "
|
4063 |
msgstr ""
|
4064 |
|
4065 |
-
#
|
4066 |
-
#
|
4067 |
-
#
|
4068 |
|
4069 |
-
msgid "
|
4070 |
msgstr ""
|
4071 |
|
4072 |
-
#
|
4073 |
-
# $
|
4074 |
-
#
|
4075 |
|
4076 |
-
msgid "
|
4077 |
msgstr ""
|
4078 |
|
4079 |
-
# $
|
4080 |
-
# $
|
4081 |
-
#
|
4082 |
|
4083 |
-
msgid "
|
4084 |
msgstr ""
|
4085 |
|
4086 |
-
#
|
4087 |
-
#
|
4088 |
-
#
|
4089 |
|
4090 |
-
msgid "
|
4091 |
msgstr ""
|
4092 |
|
4093 |
-
#
|
4094 |
-
#
|
4095 |
-
#
|
4096 |
|
4097 |
-
msgid "
|
4098 |
msgstr ""
|
4099 |
|
4100 |
-
#
|
4101 |
-
#
|
4102 |
-
#
|
4103 |
|
4104 |
-
msgid "
|
4105 |
msgstr ""
|
4106 |
|
4107 |
-
#
|
4108 |
-
# $
|
4109 |
-
#
|
4110 |
|
4111 |
-
msgid "
|
4112 |
msgstr ""
|
4113 |
|
4114 |
-
# $group
|
4115 |
-
# $
|
4116 |
-
# $group->add_field( $
|
4117 |
|
4118 |
-
msgid "
|
4119 |
msgstr ""
|
4120 |
|
4121 |
-
# if( $
|
4122 |
-
# $
|
4123 |
-
#
|
4124 |
|
4125 |
-
msgid "
|
4126 |
msgstr ""
|
4127 |
|
4128 |
-
#
|
4129 |
-
# $
|
4130 |
-
# foreach( $
|
4131 |
|
4132 |
-
msgid "
|
4133 |
msgstr ""
|
4134 |
|
4135 |
-
#
|
4136 |
-
# $
|
4137 |
-
#
|
4138 |
|
4139 |
-
msgid "
|
4140 |
msgstr ""
|
4141 |
|
4142 |
-
#
|
4143 |
-
#
|
4144 |
# }
|
4145 |
|
4146 |
-
msgid "
|
4147 |
msgstr ""
|
4148 |
|
4149 |
-
# $
|
4150 |
-
#
|
4151 |
-
#
|
4152 |
|
4153 |
-
msgid "
|
4154 |
msgstr ""
|
4155 |
|
4156 |
-
#
|
4157 |
-
#
|
4158 |
-
#
|
4159 |
|
4160 |
-
msgid "
|
4161 |
msgstr ""
|
4162 |
|
4163 |
-
#
|
4164 |
-
#
|
4165 |
-
#
|
4166 |
|
4167 |
-
msgid "
|
4168 |
msgstr ""
|
4169 |
|
4170 |
-
# $
|
4171 |
-
# $
|
4172 |
-
# $
|
4173 |
|
4174 |
-
msgid "
|
4175 |
msgstr ""
|
4176 |
|
4177 |
-
#
|
4178 |
-
#
|
4179 |
# }
|
4180 |
|
4181 |
-
msgid "
|
4182 |
msgstr ""
|
4183 |
|
4184 |
-
#
|
4185 |
-
#
|
4186 |
-
# 'woocommerce-multilingual'
|
4187 |
|
4188 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4189 |
msgstr ""
|
13 |
"Language:en\n"
|
14 |
"MIME-Version: 1.0\n"
|
15 |
|
16 |
+
# $translation_array = array(
|
17 |
+
# 'installing' => __( 'Installing %s', 'installer' ),
|
18 |
+
# 'updating' => __( 'Updating %s', 'installer' ),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
+
msgid "Installing %s"
|
21 |
msgstr ""
|
22 |
|
23 |
+
# 'installing' => __( 'Installing %s', 'installer' ),
|
24 |
+
# 'updating' => __( 'Updating %s', 'installer' ),
|
25 |
+
# 'activating' => __( 'Activating %s', 'installer' )
|
26 |
|
27 |
+
msgid "Updating %s"
|
28 |
msgstr ""
|
29 |
|
30 |
+
# 'updating' => __( 'Updating %s', 'installer' ),
|
31 |
+
# 'activating' => __( 'Activating %s', 'installer' )
|
32 |
+
# );
|
33 |
|
34 |
+
msgid "Activating %s"
|
35 |
msgstr ""
|
36 |
|
37 |
+
# $this->menu_multisite_redirect();
|
38 |
+
# add_options_page( __( 'Installer', 'installer' ), __( 'Installer', 'installer' ), 'manage_options', 'installer', array(
|
39 |
+
# $this,
|
40 |
|
41 |
+
msgid "Installer"
|
42 |
msgstr ""
|
43 |
|
44 |
+
# public function plugins_action_links_registered( $links ) {
|
45 |
+
# $links[] = '<a href="' . $this->menu_url() . '">' . __( 'Registered', 'installer' ) . '</a>';
|
46 |
+
#
|
47 |
|
48 |
+
msgid "Registered"
|
49 |
msgstr ""
|
50 |
|
51 |
+
# public function plugins_action_links_not_registered( $links ) {
|
52 |
+
# $links[] = '<a href="' . $this->menu_url() . '">' . __( 'Register', 'installer' ) . '</a>';
|
53 |
+
#
|
54 |
|
55 |
+
msgid "Register"
|
56 |
msgstr ""
|
57 |
|
58 |
+
# 'type' => 'error',
|
59 |
+
# 'text' => sprintf( __( 'You are using an invalid site key defined as the constant %s (most likely in wp-config.php).
|
60 |
+
# Please remove it or use the correct value in order to be able to register correctly.', 'installer' ), 'OTGS_INSTALLER_SITE_KEY_' . strtoupper( $repository_id ) )
|
61 |
|
62 |
+
msgid "You are using an invalid site key defined as the constant %s (most likely in wp-config.php). \n Please remove it or use the correct value in order to be able to register correctly."
|
63 |
msgstr ""
|
64 |
|
65 |
+
# echo '<div class="updated error otgs-is-dismissible"><p>';
|
66 |
+
# printf( __( "To get automatic updates, you need to register %s for this site. %sRegister %s%s", 'sitepress' ),
|
67 |
+
# $nag['product_name'], '<a class="button-primary" href="' . $this->menu_url() . '">', $nag['product_name'], '</a>' );
|
68 |
|
69 |
+
msgid "To get automatic updates, you need to register %s for this site. %sRegister %s%s"
|
70 |
msgstr ""
|
71 |
|
72 |
+
# echo '</p>';
|
73 |
+
# echo '<span class="installer-dismiss-nag notice-dismiss" data-repository="' . $nag['repository_id'] . '"><span class="screen-reader-text">' . __( 'Dismiss', 'sitepress' ) . '</span></span>';
|
74 |
+
# echo '</div>';
|
75 |
|
76 |
+
msgid "Dismiss"
|
77 |
msgstr ""
|
78 |
|
79 |
+
#
|
80 |
+
# $tabs['commercial'] = __( 'Commercial', 'installer' );
|
81 |
+
#
|
82 |
|
83 |
+
msgid "Commercial"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#
|
87 |
+
# $error = sprintf( __( "Installer cannot display the products information because the automatic updating for %s was explicitly disabled with the configuration below (usually in wp-config.php):", 'installer' ), strtoupper( join( ', ', $repository_names ) ) );
|
88 |
+
# $error .= '<br /><br /><code>define("OTGS_DISABLE_AUTO_UPDATES", true);</code><br /><br />';
|
89 |
|
90 |
+
msgid "Installer cannot display the products information because the automatic updating for %s was explicitly disabled with the configuration below (usually in wp-config.php):"
|
91 |
msgstr ""
|
92 |
|
93 |
+
# $error .= '<br /><br /><code>define("OTGS_DISABLE_AUTO_UPDATES", true);</code><br /><br />';
|
94 |
+
# $error .= sprintf( __( "In order to see the products information, please run the %smanual updates check%s to initialize the products list or (temporarily) remove the above code.", 'installer' ), '<a href="' . admin_url( 'update-core.php' ) . '">', '</a>' );
|
95 |
+
#
|
96 |
|
97 |
+
msgid "In order to see the products information, please run the %smanual updates check%s to initialize the products list or (temporarily) remove the above code."
|
98 |
msgstr ""
|
99 |
|
100 |
+
#
|
101 |
+
# $error = sprintf( __( "Installer cannot contact our updates server to get information about the available products and check for new versions. If you are seeing this message for the first time, you can ignore it, as it may be a temporary communication problem. If the problem persists and your WordPress admin is slowing down, you can disable automated version checks. Add the following line to your wp-config.php file:", 'installer' ), strtoupper( $id ) );
|
102 |
+
# $error .= '<br /><br /><code>define("OTGS_DISABLE_AUTO_UPDATES", true);</code>';
|
103 |
|
104 |
+
msgid "Installer cannot contact our updates server to get information about the available products and check for new versions. If you are seeing this message for the first time, you can ignore it, as it may be a temporary communication problem. If the problem persists and your WordPress admin is slowing down, you can disable automated version checks. Add the following line to your wp-config.php file:"
|
105 |
msgstr ""
|
106 |
|
107 |
+
#
|
108 |
+
# echo '<center>' . __( 'No repositories defined.', 'installer' ) . '</center>';
|
109 |
+
#
|
110 |
|
111 |
+
msgid "No repositories defined."
|
112 |
msgstr ""
|
113 |
|
114 |
+
# } else {
|
115 |
+
# $error = __( 'Invalid site key for the current site.', 'installer' )
|
116 |
+
# . '<br /><div class="installer-footnote">' . __( 'Please note that the site key is case sensitive.', 'installer' ) . '</div>';
|
117 |
|
118 |
+
msgid "Invalid site key for the current site."
|
119 |
msgstr ""
|
120 |
|
121 |
+
# $error = __( 'Invalid site key for the current site.', 'installer' )
|
122 |
+
# . '<br /><div class="installer-footnote">' . __( 'Please note that the site key is case sensitive.', 'installer' ) . '</div>';
|
123 |
+
# }
|
124 |
|
125 |
+
msgid "Please note that the site key is case sensitive."
|
126 |
msgstr ""
|
127 |
|
128 |
+
# if ( preg_match( '#Could not resolve host: (.*)#', $error, $matches ) || preg_match( '#Couldn\'t resolve host \'(.*)\'#', $error, $matches ) ) {
|
129 |
+
# $error = sprintf( __( "%s cannot access %s to register. Try again to see if it's a temporary problem. If the problem continues, make sure that this site has access to the Internet. You can still use the plugin without registration, but you will not receive automated updates.", 'installer' ),
|
130 |
+
# '<strong><i>' . $this->get_generic_product_name( $repository_id ) . '</i></strong>',
|
131 |
|
132 |
+
msgid "%s cannot access %s to register. Try again to see if it's a temporary problem. If the problem continues, make sure that this site has access to the Internet. You can still use the plugin without registration, but you will not receive automated updates."
|
133 |
msgstr ""
|
134 |
|
135 |
+
# unset( $this->settings['repositories'][ $repository_id ]['subscription'] );
|
136 |
+
# $error = __( 'Invalid site key for the current site. If the error persists, try to unregister first and then register again with the same site key.', 'installer' );
|
137 |
+
# }
|
138 |
|
139 |
+
msgid "Invalid site key for the current site. If the error persists, try to unregister first and then register again with the same site key."
|
140 |
msgstr ""
|
141 |
|
142 |
+
# $days = 30;
|
143 |
+
# $message = __( 'You will have to renew your subscription in order to continue getting the updates and support.', 'installer' );
|
144 |
+
#
|
145 |
|
146 |
+
msgid "You will have to renew your subscription in order to continue getting the updates and support."
|
147 |
msgstr ""
|
148 |
|
149 |
+
# echo $this->_plugins_renew_warnings[ $plugin_file ] . ' ';
|
150 |
+
# printf( __( '%sRenew here%s.', 'installer' ),
|
151 |
+
# '<a href="' . $this->menu_url() . '">', '</a>' );
|
152 |
|
153 |
+
msgid "%sRenew here%s."
|
154 |
msgstr ""
|
155 |
|
156 |
+
# $ret = false;
|
157 |
+
# $message = __( 'Your subscription appears to no longer be valid. Please try to register again using a valid site key.', 'installer' );
|
158 |
+
# }
|
159 |
|
160 |
+
msgid "Your subscription appears to no longer be valid. Please try to register again using a valid site key."
|
161 |
msgstr ""
|
162 |
|
163 |
+
# <p class="installer-q-icon">
|
164 |
+
# <?php printf( __( 'You must have a valid subscription in order to get upgrades or support for this plugin. %sPurchase a subscription or enter an existing site key%s.', 'installer' ),
|
165 |
+
# '<a href="' . $this->menu_url() . '">', '</a>' ); ?>
|
166 |
|
167 |
+
msgid "You must have a valid subscription in order to get upgrades or support for this plugin. %sPurchase a subscription or enter an existing site key%s."
|
168 |
msgstr ""
|
169 |
|
170 |
+
#
|
171 |
+
# $error_message = sprintf( __( "%s cannot update because your site's registration is not valid. Please %sregister %s%s again for this site first.", 'installer' ),
|
172 |
+
# '<strong>' . $plugin_name . '</strong>', '<a target="_top" href="' . $this->menu_url() . '&validate_repository=' . $plugin_repository .
|
173 |
|
174 |
+
msgid "%s cannot update because your site's registration is not valid. Please %sregister %s%s again for this site first."
|
175 |
msgstr ""
|
176 |
|
177 |
+
# echo '<div class="wrap">';
|
178 |
+
# echo '<h2>' . __( 'Update Plugin', 'installer' ) . '</h2>';
|
179 |
+
# echo '<a href="' . admin_url( 'plugins.php' ) . '">' . __( 'Return to the plugins page', 'installer' ) . '</a>';
|
180 |
|
181 |
+
msgid "Update Plugin"
|
182 |
msgstr ""
|
183 |
|
184 |
+
# echo '<h2>' . __( 'Update Plugin', 'installer' ) . '</h2>';
|
185 |
+
# echo '<a href="' . admin_url( 'plugins.php' ) . '">' . __( 'Return to the plugins page', 'installer' ) . '</a>';
|
186 |
+
# echo '</div>';
|
187 |
|
188 |
+
msgid "Return to the plugins page"
|
189 |
msgstr ""
|
190 |
|
191 |
+
# echo '<div><p class="installer-warn-box">' .
|
192 |
+
# sprintf( _n( 'Your subscription expires in %d day.', 'Your subscription expires in %d days.', $days_to_expiration, 'installer' ), $days_to_expiration ) .
|
193 |
+
# '<br />' . $message .
|
194 |
|
195 |
+
msgid "Your subscription expires in %d day."
|
196 |
msgstr ""
|
197 |
|
198 |
+
# echo '<div><p class="installer-warn-box">' .
|
199 |
+
# sprintf( _n( 'Your subscription expires in %d day.', 'Your subscription expires in %d days.', $days_to_expiration, 'installer' ), $days_to_expiration ) .
|
200 |
+
# '<br />' . $message .
|
201 |
|
202 |
+
msgid "Your subscription expires in %d days."
|
203 |
msgstr ""
|
204 |
|
205 |
+
# $theme_repo_name = $this->installer_theme_get_repo_product_name( $frontend_tab_selected );;
|
206 |
+
# $response['unregistered_messages'] = sprintf( __( 'To install and update %s, please %sregister%s %s for this site.', 'installer' ),
|
207 |
+
# $theme_repo_name, '<a href="' . $registration_url . '">', '</a>', $theme_repo_name );
|
208 |
|
209 |
+
msgid "To install and update %s, please %sregister%s %s for this site."
|
210 |
msgstr ""
|
211 |
|
212 |
+
# if ( self::CHANNEL_DEVELOPMENT === $id || self::channel_id( self::CHANNEL_DEVELOPMENT ) === $id ) {
|
213 |
+
# $channel = __( 'Development', 'installer' );
|
214 |
+
# } elseif ( self::CHANNEL_BETA === $id || self::channel_id( self::CHANNEL_BETA ) === $id ) {
|
215 |
|
216 |
+
msgid "Development"
|
217 |
msgstr ""
|
218 |
|
219 |
+
# } elseif ( self::CHANNEL_BETA === $id || self::channel_id( self::CHANNEL_BETA ) === $id ) {
|
220 |
+
# $channel = __( 'Beta', 'installer' );
|
221 |
+
# } else {
|
222 |
|
223 |
+
msgid "Beta"
|
224 |
msgstr ""
|
225 |
|
226 |
+
# } else {
|
227 |
+
# $channel = __( 'Production', 'installer' );
|
228 |
+
# }
|
229 |
|
230 |
+
msgid "Production"
|
231 |
msgstr ""
|
232 |
|
233 |
+
# public function win_paths_exception_message() {
|
234 |
+
# return __( 'Downloading is not possible. WordPress cannot create required folders because of the
|
235 |
+
# 256 characters limitation of the current Windows environment.', 'installer' );
|
236 |
|
237 |
+
msgid "Downloading is not possible. WordPress cannot create required folders because of the\n 256 characters limitation of the current Windows environment."
|
238 |
msgstr ""
|
239 |
|
240 |
+
# echo '<div class="wrap">';
|
241 |
+
# echo '<h2>' . __( 'Update Plugin' ) . '</h2>';
|
242 |
+
# echo '<a href="' . admin_url( 'update-core.php' ) . '">' . __( 'Return to the updates page', 'installer' ) . '</a>';
|
243 |
|
244 |
+
msgid "Update Plugin"
|
245 |
msgstr ""
|
246 |
|
247 |
+
# echo '<h2>' . __( 'Update Plugin' ) . '</h2>';
|
248 |
+
# echo '<a href="' . admin_url( 'update-core.php' ) . '">' . __( 'Return to the updates page', 'installer' ) . '</a>';
|
249 |
+
# echo '</div>';
|
250 |
|
251 |
+
msgid "Return to the updates page"
|
252 |
msgstr ""
|
253 |
|
254 |
+
# echo esc_attr( sprintf(
|
255 |
+
# __( "Something went wrong and we could not install all updates from the %s channel. Click here to %stry again%s. If the errors persist, please switch back to the Production channel and contact the %s%s support%s.", 'installer' ),
|
256 |
+
# '%CHANNEL%',
|
257 |
|
258 |
+
msgid "Something went wrong and we could not install all updates from the %s channel. Click here to %stry again%s. If the errors persist, please switch back to the Production channel and contact the %s%s support%s."
|
259 |
msgstr ""
|
260 |
|
261 |
+
# <?php printf(
|
262 |
+
# __("You are using a potentially less stable channel for %s. If you didn't enable this on purpose, you should switch to the 'Production' channel.", 'installer'),
|
263 |
+
# WP_Installer()->get_generic_product_name( $repository_id )
|
264 |
|
265 |
+
msgid "You are using a potentially less stable channel for %s. If you didn't enable this on purpose, you should switch to the 'Production' channel."
|
266 |
msgstr ""
|
267 |
|
268 |
+
# echo esc_attr( sprintf(
|
269 |
+
# esc_attr__( "There was a problem switching to the %s channel. You can %sretry%s. If the problem continues, please %sdownload %s%s and install again manually", 'installer' ),
|
270 |
+
# '%CHANNEL%',
|
271 |
|
272 |
+
msgid "There was a problem switching to the %s channel. You can %sretry%s. If the problem continues, please %sdownload %s%s and install again manually"
|
273 |
msgstr ""
|
274 |
|
275 |
+
# <span class="installer-status-note" <?php if( $can_switch ): ?>style="display:none" <?php endif; ?>>
|
276 |
+
# <?php _e("To select different update channels (beta, development) you must update your existing products to their most recent stable versions.", 'installer') ?>
|
277 |
+
# </span>
|
278 |
|
279 |
+
msgid "To select different update channels (beta, development) you must update your existing products to their most recent stable versions."
|
280 |
msgstr ""
|
281 |
|
282 |
+
# <span class="spinner spinner-with-text">
|
283 |
+
# <?php _e( "Updating the plugins on your site. Please don't close this page or navigate away.", 'installer' ); ?>
|
284 |
+
# </span>
|
285 |
|
286 |
+
msgid "Updating the plugins on your site. Please don't close this page or navigate away."
|
287 |
msgstr ""
|
288 |
|
289 |
+
# <p class="alignright">
|
290 |
+
# <button class="button-secondary js-cancel"><?php _e("Cancel", 'installer') ?></button>
|
291 |
+
# <button class="button-primary js-proceed"><?php _e("Switch", 'installer') ?></button>
|
292 |
|
293 |
+
msgid "Cancel"
|
294 |
msgstr ""
|
295 |
|
296 |
+
# <button class="button-secondary js-cancel"><?php _e("Cancel", 'installer') ?></button>
|
297 |
+
# <button class="button-primary js-proceed"><?php _e("Switch", 'installer') ?></button>
|
298 |
+
# </p>
|
299 |
|
300 |
+
msgid "Switch"
|
301 |
msgstr ""
|
302 |
|
303 |
+
# <p>
|
304 |
+
# <?php _e("Plugins will be updated to their most advanced version in the channel that you selected.", 'installer') ?>
|
305 |
+
# </p>
|
306 |
|
307 |
+
msgid "Plugins will be updated to their most advanced version in the channel that you selected."
|
308 |
msgstr ""
|
309 |
|
310 |
+
# <input type="checkbox" value="1" class="js-remember"/>
|
311 |
+
# <?php _e("Remember my preference.", 'installer') ?><br />
|
312 |
+
# </label>
|
313 |
|
314 |
+
msgid "Remember my preference."
|
315 |
msgstr ""
|
316 |
|
317 |
+
# <label>
|
318 |
+
# <?php esc_html_e('Updates channel:', 'installer'); ?>
|
319 |
+
# <select class="installer-channel-selector" data-repository-id="<?php echo $repository_id ?>"<?php if( !$can_switch ): ?> disabled<?php endif ?>>
|
320 |
|
321 |
+
msgid "Updates channel:"
|
322 |
msgstr ""
|
323 |
|
324 |
+
# if(empty($args['repository']) || empty($args['package']) || empty($args['product'])){
|
325 |
+
# echo __('Incorrect setup', 'installer');
|
326 |
+
# return;
|
327 |
|
328 |
+
msgid "Incorrect setup"
|
329 |
msgstr ""
|
330 |
|
331 |
+
# if(!$product){
|
332 |
+
# echo __('Invalid product', 'installer');
|
333 |
+
# return;
|
334 |
|
335 |
+
msgid "Invalid product"
|
336 |
msgstr ""
|
337 |
|
338 |
+
# }else{
|
339 |
+
# echo __('Unknown repository', 'installer');
|
340 |
+
# return;
|
341 |
|
342 |
+
msgid "Unknown repository"
|
343 |
msgstr ""
|
344 |
|
345 |
+
# if($subscription_type != $product['subscription_type'] && !$this->have_superior_subscription($subscription_type, $product) && $site_key){
|
346 |
+
# $subscription_no_match = sprintf(__(' Your current site key (%s) does not match the selected product (%s).', 'installer'), $site_key, $product['name']);
|
347 |
# }
|
348 |
|
349 |
+
msgid " Your current site key (%s) does not match the selected product (%s)."
|
350 |
msgstr ""
|
351 |
|
352 |
+
#
|
353 |
+
# <a class="button-primary" href="<?php echo $this->append_parameters_to_buy_url($product['url'], $repository_id, $args) ?>"><?php printf(__('Buy %s', 'installer'), $args['product_name']) ?></a>
|
354 |
+
#
|
355 |
|
356 |
+
msgid "Buy %s"
|
357 |
msgstr ""
|
358 |
|
359 |
+
# <br />
|
360 |
+
# <?php printf(__('Already bought %s?', 'installer'), $args['product_name']) ?>
|
361 |
+
# <a class="enter_site_key_js<?php if( WP_Installer::get_repository_hardcoded_site_key( $repository_id ) ): ?> disabled<?php endif ?>" href="#"
|
362 |
|
363 |
+
msgid "Already bought %s?"
|
364 |
msgstr ""
|
365 |
|
366 |
+
# <li>
|
367 |
+
# <a href="<?php echo $this->append_parameters_to_buy_url($renewal['url'], $repository_id, $args) ?>"><?php printf(__('Renew %s', 'installer'), $args['product_name']) ?></a>
|
368 |
+
# </li>
|
369 |
|
370 |
+
msgid "Renew %s"
|
371 |
msgstr ""
|
372 |
|
373 |
+
# >
|
374 |
+
# <?php printf(__("Remove current site key (%s)", 'installer'), $site_key) ?>
|
375 |
+
# </a>
|
376 |
|
377 |
+
msgid "Remove current site key (%s)"
|
378 |
msgstr ""
|
379 |
|
380 |
+
# <?php if($support_link): ?>
|
381 |
+
# <p><a href="<?php echo $support_link ?>" target="_blank"><?php printf(__('%s support on wpml.org', 'installer'), $args['name'] ) ?></a></p>
|
382 |
+
#
|
383 |
|
384 |
+
msgid "%s support on wpml.org"
|
385 |
msgstr ""
|
386 |
|
387 |
+
# disabled="disabled"
|
388 |
+
# title="<?php printf( esc_attr__("Site-key was set by %s, most likely in wp-config.php. Please remove the constant before attempting to register.", 'installer'), 'OTGS_INSTALLER_SITE_KEY_' . strtoupper($repository_id) ) ?>"
|
389 |
+
# <?php endif; ?>
|
390 |
|
391 |
+
msgid "Site-key was set by %s, most likely in wp-config.php. Please remove the constant before attempting to register."
|
392 |
msgstr ""
|
393 |
|
394 |
+
# disabled="disabled"
|
395 |
+
# title="<?php printf( esc_attr__("Site-key was set by %s, most likely in wp-config.php. Please remove the constant before attempting to unregister.", 'installer'), 'OTGS_INSTALLER_SITE_KEY_' . strtoupper($repository_id) ) ?>"
|
396 |
+
# <?php endif; ?>
|
397 |
|
398 |
+
msgid "Site-key was set by %s, most likely in wp-config.php. Please remove the constant before attempting to unregister."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
399 |
msgstr ""
|
400 |
|
401 |
# >
|
405 |
msgid "Enter site key"
|
406 |
msgstr ""
|
407 |
|
408 |
+
#
|
409 |
# <div><p class="installer-warn-box"><?php _e('Subscription is expired.', 'installer') ?></p></div>
|
410 |
+
#
|
411 |
|
412 |
msgid "Subscription is expired."
|
413 |
msgstr ""
|
433 |
msgid "Downloading is not possible because WordPress cannot write into the plugins folder. %sHow to fix%s."
|
434 |
msgstr ""
|
435 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
436 |
# <th> </th>
|
437 |
# <th><?php _e('Plugin', 'installer') ?></th>
|
438 |
+
# <th><?php _e('Installed', 'installer') ?></th>
|
439 |
|
440 |
msgid "Plugin"
|
441 |
msgstr ""
|
442 |
|
443 |
# <th><?php _e('Plugin', 'installer') ?></th>
|
444 |
+
# <th><?php _e('Installed', 'installer') ?></th>
|
445 |
+
# <th><?php _e('Current', 'installer') ?></th>
|
446 |
|
447 |
+
msgid "Installed"
|
448 |
msgstr ""
|
449 |
|
450 |
+
# <th><?php _e('Installed', 'installer') ?></th>
|
451 |
+
# <th><?php _e('Current', 'installer') ?></th>
|
452 |
# <th><?php _e('Released', 'installer') ?></th>
|
|
|
453 |
|
454 |
+
msgid "Current"
|
455 |
msgstr ""
|
456 |
|
457 |
+
# <th><?php _e('Current', 'installer') ?></th>
|
458 |
# <th><?php _e('Released', 'installer') ?></th>
|
|
|
459 |
# <th> </th>
|
460 |
|
461 |
+
msgid "Released"
|
462 |
msgstr ""
|
463 |
|
464 |
# <span class="<?php echo $class ?>"><?php echo $v; ?></span>
|
465 |
+
# <?php if ( $this->plugin_is_embedded_version( $download['name'], $download['slug'] ) ): ?> <?php _e( '(embedded)', 'installer' ); ?><?php endif; ?>
|
466 |
+
# <?php if(
|
467 |
|
468 |
msgid "(embedded)"
|
469 |
msgstr ""
|
519 |
|
520 |
#
|
521 |
# <label><input name="activate" type="checkbox" value="1" disabled="disabled" /> <?php _e('Activate after download', 'installer') ?></label>
|
522 |
+
#
|
523 |
|
524 |
msgid "Activate after download"
|
525 |
msgstr ""
|
526 |
|
527 |
+
#
|
528 |
# <div class="installer-status-success"><?php _e('Operation complete!', 'installer') ?></div>
|
529 |
+
#
|
530 |
|
531 |
msgid "Operation complete!"
|
532 |
msgstr ""
|
533 |
|
534 |
+
#
|
535 |
# <span class="installer-revalidate-message hidden"><?php _e("Download failed!\n\nPlease refresh the page and try again.", 'installer') ?></span>
|
536 |
# </form>
|
537 |
|
538 |
msgid "Download failed!\n\nPlease refresh the page and try again."
|
539 |
msgstr ""
|
540 |
|
541 |
+
#
|
542 |
# <input type="submit" class="button-secondary" value="<?php esc_attr_e('Download', 'installer') ?>" disabled="disabled" />
|
543 |
#
|
544 |
|
545 |
msgid "Download"
|
546 |
msgstr ""
|
547 |
|
548 |
+
# <td class="twelve">
|
549 |
+
# <div class="installer-status-downloading"><?php _e('downloading...', 'installer') ?></div>
|
550 |
+
# <div class="installer-status-downloaded" data-fail="<?php _e('failed!', 'installer') ?>"><?php _e('downloaded', 'installer') ?></div>
|
551 |
|
552 |
+
msgid "downloading..."
|
553 |
msgstr ""
|
554 |
|
555 |
+
# <div class="installer-status-downloading"><?php _e('downloading...', 'installer') ?></div>
|
556 |
+
# <div class="installer-status-downloaded" data-fail="<?php _e('failed!', 'installer') ?>"><?php _e('downloaded', 'installer') ?></div>
|
557 |
+
# </td>
|
558 |
|
559 |
+
msgid "downloaded"
|
560 |
msgstr ""
|
561 |
|
562 |
+
#
|
563 |
+
# <span class="installer-revalidate-message hidden"><?php _e("Download failed!\n\nClick OK to revalidate your subscription or CANCEL to try again.", 'installer') ?></span>
|
564 |
+
# </form>
|
565 |
|
566 |
+
msgid "Download failed!\n\nClick OK to revalidate your subscription or CANCEL to try again."
|
567 |
+
msgstr ""
|
568 |
+
|
569 |
+
# <th><?php _e('Plugin', 'installer') ?></th>
|
570 |
+
# <th><img src="<?php echo $this->plugin_url() ?>/res/img/globe.png" alt="<?php esc_attr_e('Available', 'installer') ?>" width="16" height="16"></th>
|
571 |
+
# <th><img src="<?php echo $this->plugin_url() ?>/res/img/computer.png" alt="<?php esc_attr_e('Installed', 'installer') ?>" width="16" height="16"></th>
|
572 |
+
|
573 |
+
msgid "Available"
|
574 |
+
msgstr ""
|
575 |
+
|
576 |
+
# <th><img src="<?php echo $this->plugin_url() ?>/res/img/computer.png" alt="<?php esc_attr_e('Installed', 'installer') ?>" width="16" height="16"></th>
|
577 |
+
# <th><img src="<?php echo $this->plugin_url() ?>/res/img/dn2.gif" alt="<?php esc_attr_e('Downloading', 'installer') ?>" width="16" height="16"></th>
|
578 |
+
# <th><img src="<?php echo $this->plugin_url() ?>/res/img/on.png" alt="<?php esc_attr_e('Activate', 'installer') ?>" width="16" height="16"></th>
|
579 |
+
|
580 |
+
msgid "Downloading"
|
581 |
+
msgstr ""
|
582 |
+
|
583 |
+
# <th><img src="<?php echo $this->plugin_url() ?>/res/img/dn2.gif" alt="<?php esc_attr_e('Downloading', 'installer') ?>" width="16" height="16"></th>
|
584 |
+
# <th><img src="<?php echo $this->plugin_url() ?>/res/img/on.png" alt="<?php esc_attr_e('Activate', 'installer') ?>" width="16" height="16"></th>
|
585 |
+
# </tr>
|
586 |
+
|
587 |
+
msgid "Activate"
|
588 |
+
msgstr ""
|
589 |
+
|
590 |
+
# >
|
591 |
+
# <?php printf(__('Register %s', 'installer'), $generic_product_name); ?>
|
592 |
+
# </a>
|
593 |
+
|
594 |
+
msgid "Register %s"
|
595 |
+
msgstr ""
|
596 |
+
|
597 |
+
#
|
598 |
+
# <div class="alignleft" style="margin-top:6px;"><?php printf(__('1. Go to your %s%s account%s and add this site URL: %s', 'installer'),
|
599 |
+
# '<a href="' . $this->settings['repositories'][$repository_id]['data']['site_keys_management_url'] . '?add='.urlencode($this->get_installer_site_url( $repository_id )).'">',
|
600 |
+
|
601 |
+
msgid "1. Go to your %s%s account%s and add this site URL: %s"
|
602 |
+
msgstr ""
|
603 |
+
|
604 |
+
# >
|
605 |
+
# <?php printf(__("Unregister %s from this site", 'installer'), $generic_product_name) ?></a>
|
606 |
+
# <a class="update_site_key_js button-secondary" href="#" data-repository=<?php echo $repository_id ?>
|
607 |
+
|
608 |
+
msgid "Unregister %s from this site"
|
609 |
msgstr ""
|
610 |
|
611 |
# <?php if($expires = $this->settings['repositories'][$repository_id]['subscription']['data']->expires): ?>
|
622 |
msgid "%s is registered on this site. Your Lifetime account gives you updates for life."
|
623 |
msgstr ""
|
624 |
|
625 |
+
#
|
626 |
# <p><i><?php printf(__('This page lets you install plugins and update existing plugins. To remove any of these plugins, go to the %splugins%s page and if you have the permission to remove plugins you should be able to do this.', 'installer'), '<a href="' . admin_url('plugins.php') . '">' , '</a>'); ?></i></p>
|
627 |
+
#
|
628 |
|
629 |
msgid "This page lets you install plugins and update existing plugins. To remove any of these plugins, go to the %splugins%s page and if you have the permission to remove plugins you should be able to do this."
|
630 |
msgstr ""
|
685 |
msgid "OK"
|
686 |
msgstr ""
|
687 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
688 |
# <a class="remove_site_key_js button-secondary" href="#" data-repository=<?php echo $repository_id ?>
|
689 |
# data-confirmation="<?php esc_attr_e('Are you sure you want to unregister?', 'installer') ?>"
|
690 |
# data-nonce="<?php echo wp_create_nonce('remove_site_key_' . $repository_id) ?>"
|
699 |
msgid "Click to see individual components options."
|
700 |
msgstr ""
|
701 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
702 |
# $taxonomy_obj = get_taxonomy($taxonomy);
|
703 |
# $message = sprintf(__('To translate %s please use the %s translation%s page, inside the %sWooCommerce Multilingual admin%s.', 'woocommerce-multilingual'),
|
704 |
# $taxonomy_obj->labels->name,
|
706 |
msgid "To translate %s please use the %s translation%s page, inside the %sWooCommerce Multilingual admin%s."
|
707 |
msgstr ""
|
708 |
|
709 |
+
#
|
710 |
# $response['progress'] = $response['go'] ? sprintf(__('%d products left', 'woocommerce-multilingual'), count($post_ids) - $posts_processed) : __('Synchronization complete!', 'woocommerce-multilingual');
|
711 |
+
#
|
712 |
|
713 |
msgid "%d products left"
|
714 |
msgstr ""
|
715 |
|
716 |
+
#
|
717 |
# $response['progress'] = $response['go'] ? sprintf(__('%d products left', 'woocommerce-multilingual'), count($post_ids) - $posts_processed) : __('Synchronization complete!', 'woocommerce-multilingual');
|
718 |
+
#
|
719 |
|
720 |
msgid "Synchronization complete!"
|
721 |
msgstr ""
|
748 |
msgid "All %s have the same %s assignments."
|
749 |
msgstr ""
|
750 |
|
751 |
+
#
|
752 |
# $out .= sprintf(__('Successfully updated %s for all translated %s.', 'woocommerce-multilingual'), $wp_taxonomies[$taxonomy]->labels->name, $wp_post_types[$object_type]->labels->name);
|
753 |
+
#
|
754 |
|
755 |
msgid "Successfully updated %s for all translated %s."
|
756 |
msgstr ""
|
757 |
|
758 |
+
# 'show' => 1,
|
759 |
+
# 'text' => __('Looks like you are upgrading from a previous version of WooCommerce Multilingual. Would you like to automatically create translated variations and images?', 'wcml').
|
760 |
+
# '<br /><strong>' .
|
761 |
|
762 |
+
msgid "Looks like you are upgrading from a previous version of WooCommerce Multilingual. Would you like to automatically create translated variations and images?"
|
763 |
msgstr ""
|
764 |
|
765 |
+
# '<br /><strong>' .
|
766 |
+
# ' <a href="' . admin_url('admin.php?page=wpml-wcml&tab=troubleshooting') . '">' . __('Yes, go to the troubleshooting page', 'wcml') . '</a> |' .
|
767 |
+
# ' <a href="#" onclick="jQuery.ajax({type:\'POST\',url: ajaxurl,data:\'action=wcml_hide_notice¬ice='.$n.'\',success:function(){jQuery(\'#' . $n . '\').fadeOut()}});return false;">' . __('No - dismiss', 'wcml') . '</a>' .
|
768 |
|
769 |
+
msgid "Yes, go to the troubleshooting page"
|
770 |
msgstr ""
|
771 |
|
772 |
+
# ' <a href="' . admin_url('admin.php?page=wpml-wcml&tab=troubleshooting') . '">' . __('Yes, go to the troubleshooting page', 'wcml') . '</a> |' .
|
773 |
+
# ' <a href="#" onclick="jQuery.ajax({type:\'POST\',url: ajaxurl,data:\'action=wcml_hide_notice¬ice='.$n.'\',success:function(){jQuery(\'#' . $n . '\').fadeOut()}});return false;">' . __('No - dismiss', 'wcml') . '</a>' .
|
774 |
+
# '</strong>'
|
775 |
|
776 |
+
msgid "No - dismiss"
|
777 |
msgstr ""
|
778 |
|
779 |
+
# $active_languages = apply_filters( 'wpml_active_languages', null, null );
|
780 |
+
# $dialog_title = __( 'Switching language?', 'woocommerce-multilingual' );
|
781 |
+
#
|
782 |
|
783 |
+
msgid "Switching language?"
|
784 |
msgstr ""
|
785 |
|
786 |
+
# $confirmation_message = sprintf(
|
787 |
+
# __( "You've switched the language and there are items in the cart. If you keep the %s language, the cart will be emptied and you will have to add the items again to the cart.",
|
788 |
+
# 'woocommerce-multilingual' ),
|
789 |
|
790 |
+
msgid "You've switched the language and there are items in the cart. If you keep the %s language, the cart will be emptied and you will have to add the items again to the cart."
|
791 |
msgstr ""
|
792 |
|
|
|
|
|
793 |
# );
|
794 |
+
# $stay_in = sprintf( __( 'Keep %s', 'woocommerce-multilingual' ), $active_languages[ $this->lang_to ]['translated_name'] );
|
795 |
+
# $switch_to = sprintf( __( 'Switch back to %s', 'woocommerce-multilingual' ), $active_languages[ $this->lang_from ]['translated_name'] );
|
796 |
|
797 |
+
msgid "Keep %s"
|
798 |
msgstr ""
|
799 |
|
800 |
+
# $stay_in = sprintf( __( 'Keep %s', 'woocommerce-multilingual' ), $active_languages[ $this->lang_to ]['translated_name'] );
|
801 |
+
# $switch_to = sprintf( __( 'Switch back to %s', 'woocommerce-multilingual' ), $active_languages[ $this->lang_from ]['translated_name'] );
|
802 |
+
#
|
803 |
|
804 |
+
msgid "Switch back to %s"
|
805 |
msgstr ""
|
806 |
|
807 |
+
# array(
|
808 |
+
# 'warn' => esc_html__( "Downloading translations... Please don't close this page.", 'woocommerce-multilingual' )
|
809 |
+
# )
|
810 |
|
811 |
+
msgid "Downloading translations... Please don't close this page."
|
812 |
msgstr ""
|
813 |
|
814 |
+
# jQuery('#dropdown_shop_order_language').on('change', function(){
|
815 |
+
# if(confirm('" . esc_js(__("All the products will be removed from the current order in order to change the language", 'woocommerce-multilingual')). "')){
|
816 |
+
# var lang = jQuery(this).val();
|
817 |
|
818 |
+
msgid "All the products will be removed from the current order in order to change the language"
|
819 |
msgstr ""
|
820 |
|
821 |
+
# if(!$nonce || !wp_verify_nonce($nonce, 'set_dashboard_order_language')){
|
822 |
+
# echo json_encode(array('error' => __('Invalid nonce', 'woocommerce-multilingual')));
|
823 |
+
# die();
|
824 |
|
825 |
+
msgid "Invalid nonce"
|
826 |
msgstr ""
|
827 |
|
828 |
+
# <li class="wide">
|
829 |
+
# <label><?php _e('Order language:'); ?></label>
|
830 |
+
# <select id="dropdown_shop_order_language" name="wcml_shop_order_language">
|
831 |
|
832 |
+
msgid "Order language:"
|
833 |
msgstr ""
|
834 |
|
835 |
+
# //dummy array for names
|
836 |
+
# $names = array( __('Cart', 'woocommerce-multilingual'),
|
837 |
+
# __('Checkout', 'woocommerce-multilingual'),
|
838 |
|
839 |
+
msgid "Cart"
|
840 |
msgstr ""
|
841 |
|
842 |
+
# $names = array( __('Cart', 'woocommerce-multilingual'),
|
843 |
+
# __('Checkout', 'woocommerce-multilingual'),
|
844 |
+
# __('Checkout → Pay', 'woocommerce-multilingual'),
|
845 |
|
846 |
+
msgid "Checkout"
|
847 |
msgstr ""
|
848 |
|
849 |
+
# __('Checkout', 'woocommerce-multilingual'),
|
850 |
+
# __('Checkout → Pay', 'woocommerce-multilingual'),
|
851 |
+
# __('Order Received', 'woocommerce-multilingual'),
|
852 |
|
853 |
+
msgid "Checkout → Pay"
|
854 |
msgstr ""
|
855 |
|
856 |
+
# __('Checkout → Pay', 'woocommerce-multilingual'),
|
857 |
+
# __('Order Received', 'woocommerce-multilingual'),
|
858 |
+
# __('My Account', 'woocommerce-multilingual'),
|
859 |
|
860 |
+
msgid "Order Received"
|
861 |
msgstr ""
|
862 |
|
863 |
+
# __('Order Received', 'woocommerce-multilingual'),
|
864 |
+
# __('My Account', 'woocommerce-multilingual'),
|
865 |
+
# __('Change Password', 'woocommerce-multilingual'),
|
866 |
|
867 |
+
msgid "My Account"
|
868 |
msgstr ""
|
869 |
|
870 |
+
# __('My Account', 'woocommerce-multilingual'),
|
871 |
+
# __('Change Password', 'woocommerce-multilingual'),
|
872 |
+
# __('Edit My Address', 'woocommerce-multilingual'),
|
873 |
|
874 |
+
msgid "Change Password"
|
875 |
msgstr ""
|
876 |
|
877 |
+
# __('Change Password', 'woocommerce-multilingual'),
|
878 |
+
# __('Edit My Address', 'woocommerce-multilingual'),
|
879 |
+
# __('Logout', 'woocommerce-multilingual'),
|
880 |
|
881 |
+
msgid "Edit My Address"
|
882 |
msgstr ""
|
883 |
|
884 |
+
# __('Edit My Address', 'woocommerce-multilingual'),
|
885 |
+
# __('Logout', 'woocommerce-multilingual'),
|
886 |
+
# __('Lost Password', 'woocommerce-multilingual'),
|
887 |
|
888 |
+
msgid "Logout"
|
889 |
msgstr ""
|
890 |
|
891 |
+
# __('Logout', 'woocommerce-multilingual'),
|
892 |
+
# __('Lost Password', 'woocommerce-multilingual'),
|
893 |
+
# __('View Order', 'woocommerce-multilingual'),
|
894 |
|
895 |
+
msgid "Lost Password"
|
896 |
msgstr ""
|
897 |
|
898 |
+
# __('Lost Password', 'woocommerce-multilingual'),
|
899 |
+
# __('View Order', 'woocommerce-multilingual'),
|
900 |
+
# __('Shop', 'woocommerce-multilingual'));
|
901 |
|
902 |
+
msgid "View Order"
|
903 |
msgstr ""
|
904 |
|
905 |
+
# __('View Order', 'woocommerce-multilingual'),
|
906 |
+
# __('Shop', 'woocommerce-multilingual'));
|
907 |
+
#
|
908 |
|
909 |
+
msgid "Shop"
|
910 |
msgstr ""
|
911 |
|
912 |
+
# if( !$is_translated ){
|
913 |
+
# $text = sprintf( __( 'To quickly translate this and other WooCommerce store pages, please run the %ssetup wizard%s.', 'woocommerce-multilingual' ),
|
914 |
+
# '<a href="' . admin_url( 'admin.php?page=wcml-setup' ) . '">', '</a>' );
|
915 |
|
916 |
+
msgid "To quickly translate this and other WooCommerce store pages, please run the %ssetup wizard%s."
|
917 |
msgstr ""
|
918 |
|
919 |
+
# $slug = $this->get_woocommerce_product_base();
|
920 |
+
# $return['name'] = __( 'Product Base', 'woocommerce-multilingual' );
|
921 |
+
# break;
|
922 |
|
923 |
+
msgid "Product Base"
|
924 |
msgstr ""
|
925 |
|
926 |
+
# $slug = ! empty( $this->wc_permalinks['tag_base'] ) ? trim( $this->wc_permalinks['tag_base'], '/' ) : 'product-tag';
|
927 |
+
# $return['name'] = __( 'Product Tag Base', 'woocommerce-multilingual' );
|
928 |
+
# break;
|
929 |
|
930 |
+
msgid "Product Tag Base"
|
931 |
msgstr ""
|
932 |
|
933 |
+
# $slug = ! empty( $this->wc_permalinks['category_base'] ) ? trim( $this->wc_permalinks['category_base'], '/' ) : 'product-category';
|
934 |
+
# $return['name'] = __( 'Product Category Base', 'woocommerce-multilingual' );
|
935 |
+
# break;
|
936 |
|
937 |
+
msgid "Product Category Base"
|
938 |
msgstr ""
|
939 |
|
940 |
+
# $slug = trim( $this->wc_permalinks['attribute_base'], '/' );
|
941 |
+
# $return['name'] = __( 'Product Attribute Base', 'woocommerce-multilingual' );
|
942 |
+
# break;
|
943 |
|
944 |
+
msgid "Product Attribute Base"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
945 |
msgstr ""
|
946 |
|
947 |
+
# case 'attribute_slug':
|
948 |
+
# $return['name'] = __( 'Attribute Slug', 'woocommerce-multilingual' );
|
949 |
+
# $string_id = icl_get_string_id( $slug, $this->url_strings_context(), $this->url_string_name( $base, $slug ) );
|
950 |
|
951 |
+
msgid "Attribute Slug"
|
952 |
msgstr ""
|
953 |
|
954 |
+
# $slug = isset( $endpoints[ $base ] ) ? $endpoints[ $base ] : false;
|
955 |
+
# $return['name'] = sprintf( __( 'Endpoint: %s', 'woocommerce-multilingual' ), $base );
|
956 |
+
# $string_id = icl_get_string_id( $slug, 'WooCommerce Endpoints', $base );
|
957 |
|
958 |
+
msgid "Endpoint: %s"
|
959 |
msgstr ""
|
960 |
|
961 |
+
# $this->default_product_tag_base = 'product-tag';
|
962 |
+
# $this->default_product_category_gettext_base = _x( 'product-category', 'slug', 'woocommerce' );
|
963 |
+
# $this->default_product_tag_gettext_base = _x( 'product-tag', 'slug', 'woocommerce' );
|
964 |
|
965 |
+
msgctxt "slug"
|
966 |
+
msgid "product-category"
|
967 |
msgstr ""
|
968 |
|
969 |
+
# $this->default_product_category_gettext_base = _x( 'product-category', 'slug', 'woocommerce' );
|
970 |
+
# $this->default_product_tag_gettext_base = _x( 'product-tag', 'slug', 'woocommerce' );
|
971 |
# }
|
972 |
|
973 |
+
msgctxt "slug"
|
974 |
+
msgid "product-tag"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
975 |
msgstr ""
|
976 |
|
977 |
+
# $widget_opt = array(
|
978 |
+
# 'description' => __( 'Shows a list of the products that existed in the cart before the cart is reset on the front end after switching the language or the currency. It will be hidden when there are no products to show.', 'woocommerce-multilingual' ),
|
979 |
+
# );
|
980 |
|
981 |
+
msgid "Shows a list of the products that existed in the cart before the cart is reset on the front end after switching the language or the currency. It will be hidden when there are no products to show."
|
982 |
msgstr ""
|
983 |
|
984 |
+
# 'wcml_cart_deleted_items',
|
985 |
+
# __( 'Products before cart reset', 'woocommerce-multilingual' ),
|
986 |
+
# $widget_opt
|
987 |
|
988 |
+
msgid "Products before cart reset"
|
989 |
msgstr ""
|
990 |
|
991 |
+
# }elseif( isset( $product_translations[ $language[ 'code' ] ] ) && $product_translations[ $language[ 'code' ] ]->original ) { ?>
|
992 |
+
# <span title="<?php echo $language['english_name'] . ': ' . __('Original language', 'woocommerce-multilingual'); ?>">
|
993 |
+
# <i class="otgs-ico-original"></i>
|
994 |
|
995 |
+
msgid "Original language"
|
996 |
msgstr ""
|
997 |
|
998 |
+
# ?>
|
999 |
+
# <a href="<?php echo $edit_url ?>" title="<?php echo $language[ 'english_name' ] . ': ' . __( 'Take this and edit', 'woocommerce-multilingual' ); ?>">
|
1000 |
+
# <i class="otgs-ico-add"></i>
|
1001 |
|
1002 |
+
msgid "Take this and edit"
|
1003 |
msgstr ""
|
1004 |
|
1005 |
+
# if (!$tr_status ) { ?>
|
1006 |
+
# title="<?php echo $language[ 'english_name' ] . ': ' . __( 'Add translation', 'woocommerce-multilingual' ); ?>">
|
1007 |
+
# <i class="otgs-ico-add"></i>
|
1008 |
|
1009 |
+
msgid "Add translation"
|
1010 |
msgstr ""
|
1011 |
|
1012 |
+
# <?php }elseif( $tr_status->needs_update ){ ?>
|
1013 |
+
# title="<?php echo $language[ 'english_name' ] . ': ' . __( 'Update translation', 'woocommerce-multilingual' ); ?>">
|
1014 |
+
# <i class="otgs-ico-refresh"></i>
|
1015 |
|
1016 |
+
msgid "Update translation"
|
1017 |
msgstr ""
|
1018 |
|
1019 |
+
# <?php }elseif( $tr_status->status != ICL_TM_COMPLETE && $tr_status->status != ICL_TM_DUPLICATE ){ ?>
|
1020 |
+
# title="<?php echo $language[ 'english_name' ] . ': ' . __( 'Finish translating', 'woocommerce-multilingual' ); ?>">
|
1021 |
+
# <i class="otgs-ico-refresh"></i>
|
1022 |
|
1023 |
+
msgid "Finish translating"
|
1024 |
msgstr ""
|
1025 |
|
1026 |
+
# <?php }elseif( $tr_status->status == ICL_TM_COMPLETE ){ ?>
|
1027 |
+
# title="<?php echo $language[ 'english_name' ] . ': ' . __( 'Edit translation', 'woocommerce-multilingual' ); ?>">
|
1028 |
+
# <i class="otgs-ico-edit"></i>
|
1029 |
|
1030 |
+
msgid "Edit translation"
|
1031 |
msgstr ""
|
1032 |
|
1033 |
+
# $new_actions[ 'quick_hide' ] = '<a href="#TB_inline?width=200&height=150&inlineId=quick_edit_notice" class="thickbox" title="' .
|
1034 |
+
# __('Edit this item inline', 'woocommerce-multilingual') . '">' .
|
1035 |
+
# __('Quick Edit', 'woocommerce-multilingual') . '</a>';
|
1036 |
|
1037 |
+
msgid "Edit this item inline"
|
1038 |
msgstr ""
|
1039 |
|
1040 |
+
# __('Edit this item inline', 'woocommerce-multilingual') . '">' .
|
1041 |
+
# __('Quick Edit', 'woocommerce-multilingual') . '</a>';
|
1042 |
+
# } else {
|
1043 |
|
1044 |
+
msgid "Quick Edit"
|
1045 |
msgstr ""
|
1046 |
|
1047 |
+
# if( $tr_status->status == ICL_TM_IN_PROGRESS ) { ?>
|
1048 |
+
# <a title="<?php _e( 'Translation in progress', 'woocommerce-multilingual' ); ?>"><i
|
1049 |
+
# class="otgs-ico-in-progress"></i></a>
|
1050 |
|
1051 |
+
msgid "Translation in progress"
|
1052 |
msgstr ""
|
1053 |
|
1054 |
# ?>
|
1055 |
# <div class="message error"><p><?php printf(__('WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href="%s">WPML</a> versions prior %s.',
|
1056 |
+
# 'woocommerce-multilingual'), $this->tracking_link->generate('https://wpml.org/'), '3.4'); ?></p></div>
|
1057 |
|
1058 |
msgid "WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href=\"%s\">WPML</a> versions prior %s."
|
1059 |
msgstr ""
|
1067 |
|
1068 |
# ?>
|
1069 |
# <div class="message error"><p><?php printf(__('WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href="%s">WPML Translation Management</a> versions prior %s.',
|
1070 |
+
# 'woocommerce-multilingual'), $this->tracking_link->generate('https://wpml.org/'), '1.9'); ?></p></div>
|
1071 |
|
1072 |
msgid "WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href=\"%s\">WPML Translation Management</a> versions prior %s."
|
1073 |
msgstr ""
|
1074 |
|
1075 |
# ?>
|
1076 |
# <div class="message error"><p><?php printf(__('WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href="%s">WPML String Translation</a> versions prior %s.',
|
1077 |
+
# 'woocommerce-multilingual'), $this->tracking_link->generate('https://wpml.org/'), '2.0'); ?></p></div>
|
1078 |
|
1079 |
msgid "WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href=\"%s\">WPML String Translation</a> versions prior %s."
|
1080 |
msgstr ""
|
1081 |
|
1082 |
# ?>
|
1083 |
# <div class="message error"><p><?php printf(__('WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href="%s">WPML Media</a> versions prior %s.',
|
1084 |
+
# 'woocommerce-multilingual'), $this->tracking_link->generate('https://wpml.org/'), '2.1'); ?></p></div>
|
1085 |
|
1086 |
msgid "WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href=\"%s\">WPML Media</a> versions prior %s."
|
1087 |
msgstr ""
|
1093 |
msgid "and"
|
1094 |
msgstr ""
|
1095 |
|
1096 |
+
#
|
1097 |
# <div class="message error"><p><?php printf(__('WooCommerce Multilingual is enabled but not effective. It requires %s in order to work.', 'woocommerce-multilingual'), $missing); ?></p></div>
|
1098 |
# <?php
|
1099 |
|
1109 |
|
1110 |
# $message .= ' | ';
|
1111 |
# $message .= '<a href="' . admin_url('admin.php?page=' . WPML_TM_FOLDER . '/menu/main.php&sm=mcsetup#icl_custom_posts_sync_options') . '">' . __('Configure products slug translation', 'woocommerce-multilingual') . '</a>';
|
1112 |
+
#
|
1113 |
|
1114 |
msgid "Configure products slug translation"
|
1115 |
msgstr ""
|
1121 |
msgid "If you want different slugs for shop pages (%s/%s), you need to disable the shop prefix for products in <a href=\"%s\">WooCommerce Settings</a>"
|
1122 |
msgstr ""
|
1123 |
|
1124 |
+
#
|
1125 |
# $ret['success_1'] = ' ' . sprintf(__('Finished! You can visit the %sstrings translation%s screen to translate the strings now.', 'woocommerce-multilingual'), '<a href="' . admin_url('admin.php?page=' . WPML_ST_FOLDER . '/menu/string-translation.php') . '">', '</a>');
|
1126 |
+
#
|
1127 |
|
1128 |
msgid "Finished! You can visit the %sstrings translation%s screen to translate the strings now."
|
1129 |
msgstr ""
|
1156 |
msgid "Custom taxonomy %s configuration from wpml-config.xml file was altered!"
|
1157 |
msgstr ""
|
1158 |
|
1159 |
+
# $job_details[ 'job_id' ],
|
1160 |
+
# 'wc_product', __( 'Product', 'woocommerce-multilingual' ),
|
1161 |
+
# $this->original_post->post_title,
|
1162 |
|
1163 |
+
msgid "Product"
|
1164 |
msgstr ""
|
1165 |
|
1166 |
+
#
|
1167 |
+
# $this->add_field( new WPML_Editor_UI_Single_Line_Field( 'title', __( 'Title', 'woocommerce-multilingual' ), $this->data, true ) );
|
1168 |
+
# $this->add_field( new WPML_Editor_UI_Single_Line_Field( 'slug', __( 'Slug', 'woocommerce-multilingual' ), $this->data, true ) );
|
1169 |
|
1170 |
+
msgid "Title"
|
1171 |
msgstr ""
|
1172 |
|
1173 |
+
# $this->add_field( new WPML_Editor_UI_Single_Line_Field( 'title', __( 'Title', 'woocommerce-multilingual' ), $this->data, true ) );
|
1174 |
+
# $this->add_field( new WPML_Editor_UI_Single_Line_Field( 'slug', __( 'Slug', 'woocommerce-multilingual' ), $this->data, true ) );
|
1175 |
+
#
|
1176 |
|
1177 |
+
msgid "Slug"
|
1178 |
msgstr ""
|
1179 |
|
1180 |
+
# }else{
|
1181 |
+
# $this->add_field( new WCML_Editor_UI_WYSIWYG_Field( 'product_content', __( 'Content / Description', 'woocommerce-multilingual' ), $this->data, true ) );
|
1182 |
+
# }
|
1183 |
|
1184 |
+
msgid "Content / Description"
|
1185 |
msgstr ""
|
1186 |
|
1187 |
+
#
|
1188 |
+
# $excerpt_section = new WPML_Editor_UI_Field_Section( __( 'Excerpt', 'woocommerce-multilingual' ) );
|
1189 |
+
# $excerpt_section->add_field( new WCML_Editor_UI_WYSIWYG_Field( 'product_excerpt', null, $this->data, true ) );
|
1190 |
|
1191 |
+
msgid "Excerpt"
|
1192 |
msgstr ""
|
1193 |
|
1194 |
+
#
|
1195 |
+
# $purchase_note_section = new WPML_Editor_UI_Field_Section( __( 'Purchase note', 'woocommerce-multilingual' ) );
|
1196 |
+
# $purchase_note_section->add_field( new WPML_Editor_UI_TextArea_Field( '_purchase_note', null, $this->data, true ) );
|
1197 |
|
1198 |
+
msgid "Purchase note"
|
1199 |
msgstr ""
|
1200 |
|
1201 |
+
#
|
1202 |
+
# $images_section = new WPML_Editor_UI_Field_Section( __( 'Images', 'woocommerce-multilingual' ) );
|
1203 |
+
# foreach( $product_images as $image_id ) {
|
1204 |
|
1205 |
+
msgid "Images"
|
1206 |
msgstr ""
|
1207 |
|
1208 |
+
# if ( $attributes ){
|
1209 |
+
# $attributes_section = new WPML_Editor_UI_Field_Section( __( 'Custom Product attributes', 'woocommerce-multilingual' ) );
|
1210 |
+
# foreach( $attributes as $attr_key => $attribute ) {
|
1211 |
|
1212 |
+
msgid "Custom Product attributes"
|
1213 |
msgstr ""
|
1214 |
|
1215 |
+
# $group = new WPML_Editor_UI_Field_Group( '', true );
|
1216 |
+
# $attribute_field = new WPML_Editor_UI_Single_Line_Field( $attr_key . '_name', __( 'Name', 'woocommerce-multilingual' ), $this->data, false );
|
1217 |
+
# $group->add_field( $attribute_field );
|
1218 |
|
1219 |
+
msgid "Name"
|
1220 |
msgstr ""
|
1221 |
|
1222 |
+
# $group->add_field( $attribute_field );
|
1223 |
+
# $attribute_field = new WPML_Editor_UI_Single_Line_Field( $attr_key , __( 'Value(s)', 'woocommerce-multilingual' ), $this->data, false );
|
1224 |
+
# $group->add_field( $attribute_field );
|
1225 |
|
1226 |
+
msgid "Value(s)"
|
1227 |
msgstr ""
|
1228 |
|
1229 |
+
#
|
1230 |
+
# $custom_fields_section = new WPML_Editor_UI_Field_Section( __( 'Custom Fields', 'woocommerce-multilingual' ) );
|
1231 |
+
#
|
1232 |
|
1233 |
+
msgid "Custom Fields"
|
1234 |
msgstr ""
|
1235 |
|
1236 |
+
# if( !empty( $variations ) ){
|
1237 |
+
# $variations_data_section = new WPML_Editor_UI_Field_Section( __( 'Variations data', 'woocommerce-multilingual' ) );
|
1238 |
+
# foreach( $variations as $variation ){
|
1239 |
|
1240 |
+
msgid "Variations data"
|
1241 |
msgstr ""
|
1242 |
|
1243 |
+
# if( $is_variable ){
|
1244 |
+
# $files_section = new WPML_Editor_UI_Field_Section( sprintf( __( 'Download Files for Variation #%s', 'woocommerce-multilingual' ), $post_id ) );
|
1245 |
+
# }else{
|
1246 |
|
1247 |
+
msgid "Download Files for Variation #%s"
|
1248 |
msgstr ""
|
1249 |
|
1250 |
+
# }else{
|
1251 |
+
# $files_section = new WPML_Editor_UI_Field_Section( __( 'Download Files', 'woocommerce-multilingual' ) );
|
1252 |
+
# }
|
1253 |
|
1254 |
+
msgid "Download Files"
|
1255 |
msgstr ""
|
1256 |
|
1257 |
+
# $sub_group->add_field( $field_input );
|
1258 |
+
# $field_input = new WPML_Editor_UI_Single_Line_Field( 'file-url'.$key.$post_id, __( 'File URL', 'woocommerce-multilingual' ), $this->data, false );
|
1259 |
+
# $sub_group->add_field( $field_input );
|
1260 |
|
1261 |
+
msgid "File URL"
|
1262 |
msgstr ""
|
1263 |
|
1264 |
+
# if( $this->product_type === 'external' ){
|
1265 |
+
# $external_product_section = new WPML_Editor_UI_Field_Section( __( 'External Product', 'woocommerce-multilingual' ) );
|
1266 |
+
# $external_product_section->add_field( new WPML_Editor_UI_Single_Line_Field( '_product_url', __( 'Product url', 'woocommerce-multilingual' ), $this->data, true ) );
|
1267 |
|
1268 |
+
msgid "External Product"
|
1269 |
msgstr ""
|
1270 |
|
1271 |
+
# $external_product_section = new WPML_Editor_UI_Field_Section( __( 'External Product', 'woocommerce-multilingual' ) );
|
1272 |
+
# $external_product_section->add_field( new WPML_Editor_UI_Single_Line_Field( '_product_url', __( 'Product url', 'woocommerce-multilingual' ), $this->data, true ) );
|
1273 |
+
# $external_product_section->add_field( new WPML_Editor_UI_Single_Line_Field( '_button_text', __( 'Button text', 'woocommerce-multilingual' ), $this->data, true ) );
|
1274 |
|
1275 |
+
msgid "Product url"
|
1276 |
msgstr ""
|
1277 |
|
1278 |
+
# $external_product_section->add_field( new WPML_Editor_UI_Single_Line_Field( '_product_url', __( 'Product url', 'woocommerce-multilingual' ), $this->data, true ) );
|
1279 |
+
# $external_product_section->add_field( new WPML_Editor_UI_Single_Line_Field( '_button_text', __( 'Button text', 'woocommerce-multilingual' ), $this->data, true ) );
|
1280 |
+
# $this->add_field( $external_product_section );
|
1281 |
|
1282 |
+
msgid "Button text"
|
1283 |
msgstr ""
|
1284 |
|
1285 |
+
# if( $product_terms ){
|
1286 |
+
# $tax_section = new WPML_Editor_UI_Field_Section( $taxonomy_obj->label, __( 'Changes in these translations will affect terms in general! ( Not only for this product )', 'woocommerce-multilingual' ));
|
1287 |
+
# foreach( $product_terms as $term ){
|
1288 |
|
1289 |
+
msgid "Changes in these translations will affect terms in general! ( Not only for this product )"
|
1290 |
msgstr ""
|
1291 |
|
1292 |
+
# if ( !$args[ 'post_title' ] && !$args[ 'post_content' ] && !$args[ 'post_excerpt' ] ){
|
1293 |
+
# return new WP_Error( 'empty_content', __( 'Content, title, and excerpt are empty.' ) );
|
1294 |
+
# }
|
1295 |
|
1296 |
+
msgid "Content, title, and excerpt are empty."
|
1297 |
msgstr ""
|
1298 |
|
1299 |
+
# <p class="icl-admin-message" style="margin-top: 0">
|
1300 |
+
# <?php printf( __('To configure how the %sWooCommerce products%s are translated, visit the WooCommerce Multiligual %ssettings%s page.',
|
1301 |
+
# 'woocommerce-multilingual'), '<strong>', '</strong>', '<a href="' . admin_url('admin.php?page=wpml-wcml&tab=settings') . '">', '</a>' ); ?>
|
1302 |
|
1303 |
+
msgid "To configure how the %sWooCommerce products%s are translated, visit the WooCommerce Multiligual %ssettings%s page."
|
1304 |
msgstr ""
|
1305 |
|
1306 |
+
# input.parent().append('<div class="translation_controls"></div>');
|
1307 |
+
# input.parent().find('.translation_controls').append('<a href="<?php echo $st_page ?>" style="margin-left: 10px"><?php _e('translations', 'woocommerce-multilingual') ?></a>');
|
1308 |
+
# jQuery('#<?php echo $gateway_option.'_'.$text_key.'_language_selector' ?>').prependTo( input.parent().find('.translation_controls') );
|
1309 |
|
1310 |
+
msgid "translations"
|
|
|
1311 |
msgstr ""
|
1312 |
|
1313 |
+
# 'interval' => $interval,
|
1314 |
+
# 'display' => sprintf( __( 'Monthly on the %s', 'woocommerce-multilingual' ), $month_day ),
|
1315 |
+
# );
|
1316 |
+
|
1317 |
+
msgid "Monthly on the %s"
|
|
|
1318 |
msgstr ""
|
1319 |
|
1320 |
+
# 'interval' => 604800,
|
1321 |
+
# 'display' => sprintf( __( 'Weekly on %s', 'woocommerce-multilingual' ), $week_day ),
|
1322 |
+
# );
|
1323 |
|
1324 |
+
msgid "Weekly on %s"
|
1325 |
msgstr ""
|
1326 |
|
1327 |
+
# <?php if ( empty( $order_currencies ) ): ?>
|
1328 |
+
# <option value=""><?php _e( 'Currency - no orders found', 'woocommerce-multilingual' ) ?></option>
|
1329 |
+
# <?php else: ?>
|
1330 |
|
1331 |
+
msgid "Currency - no orders found"
|
1332 |
msgstr ""
|
1333 |
|
1334 |
+
#
|
1335 |
+
# if(confirm('" . esc_js( __( "All the products will be removed from the current order in order to change the currency", 'woocommerce-multilingual' ) ) . "')){
|
1336 |
+
# jQuery.ajax({
|
1337 |
|
1338 |
+
msgid "All the products will be removed from the current order in order to change the currency"
|
1339 |
msgstr ""
|
1340 |
|
1341 |
+
# <select id="dropdown_shop_order_currency" name="_order_currency">
|
1342 |
+
# <option value=""><?php _e( 'Show all currencies', 'woocommerce-multilingual' ) ?></option>
|
1343 |
+
# <?php foreach ( $order_currencies as $currency => $count ): ?>
|
1344 |
|
1345 |
+
msgid "Show all currencies"
|
1346 |
msgstr ""
|
1347 |
|
1348 |
+
# <li class="wide">
|
1349 |
+
# <label><?php _e( 'Order currency:', 'woocommerce-multilingual' ); ?></label>
|
1350 |
+
# <select id="dropdown_shop_order_currency" name="wcml_shop_order_currency">
|
1351 |
|
1352 |
+
msgid "Order currency:"
|
1353 |
msgstr ""
|
1354 |
|
1355 |
+
# if( strpos( $json->error->info, 'You have not supplied an API Access Key' ) !== false ){
|
1356 |
+
# $error = __('You have entered an incorrect API Access Key', 'woocommerce-multilingual');
|
1357 |
+
# }else{
|
1358 |
|
1359 |
+
msgid "You have entered an incorrect API Access Key"
|
1360 |
msgstr ""
|
1361 |
|
1362 |
+
# } else{
|
1363 |
+
# $error = __( 'Cannot get exchange rates. Connection failed.', 'woocommerce-multilingual' );
|
1364 |
+
# }
|
1365 |
|
1366 |
+
msgid "Cannot get exchange rates. Connection failed."
|
1367 |
msgstr ""
|
1368 |
|
1369 |
+
# if( !is_numeric( $rate ) ){
|
1370 |
+
# $error = sprintf( __("Error reading the exchange rate for %s. Please try again. If the error persist, try selecting a different exchange rate service.", 'woocommerce-multilingual' ), $to );
|
1371 |
+
# parent::save_last_error( $error );
|
1372 |
|
1373 |
+
msgid "Error reading the exchange rate for %s. Please try again. If the error persist, try selecting a different exchange rate service."
|
1374 |
msgstr ""
|
1375 |
|
1376 |
+
# 'id' => 'wcml-settings-saved',
|
1377 |
+
# 'text' => __('Your settings have been saved.', 'woocommerce-multilingual' ),
|
1378 |
+
# 'group' => 'wcml-multi-currency',
|
1379 |
|
1380 |
+
msgid "Your settings have been saved."
|
1381 |
msgstr ""
|
1382 |
|
1383 |
+
#
|
1384 |
+
# $args['title'] = empty($_POST['currency']) ? __('Add new currency', 'woocommerce-multilingual') : __('Update currency', 'woocommerce-multilingual');
|
1385 |
+
#
|
1386 |
|
1387 |
+
msgid "Add new currency"
|
1388 |
msgstr ""
|
1389 |
|
1390 |
+
#
|
1391 |
+
# $args['title'] = empty($_POST['currency']) ? __('Add new currency', 'woocommerce-multilingual') : __('Update currency', 'woocommerce-multilingual');
|
1392 |
+
#
|
1393 |
|
1394 |
+
msgid "Update currency"
|
1395 |
msgstr ""
|
1396 |
|
1397 |
+
#
|
1398 |
+
# $args['title'] = sprintf( __( 'Update settings for %s', 'woocommerce-multilingual' ),
|
1399 |
+
# '<strong>' . $args['currency_name'] . ' (' . $args['currency_symbol'] . ')</strong>' );
|
1400 |
|
1401 |
+
msgid "Update settings for %s"
|
|
|
1402 |
msgstr ""
|
1403 |
|
1404 |
+
# 'id' => $message_id,
|
1405 |
+
# 'text' => sprintf(__('The default currency was changed. In order to show accurate prices in all currencies, you need to update the exchange rates under the %sMulti-currency%s configuration.',
|
1406 |
+
# 'woocommerce-multilingual'), '<a href="' . admin_url('admin.php?page=wpml-wcml&tab=multi-currency') . '">', '</a>'),
|
1407 |
|
1408 |
+
msgid "The default currency was changed. In order to show accurate prices in all currencies, you need to update the exchange rates under the %sMulti-currency%s configuration."
|
1409 |
msgstr ""
|
1410 |
|
1411 |
+
# $this->woocommerce_wpml->update_settings( $this->woocommerce_wpml->settings );
|
1412 |
+
# wp_send_json_success( array( 'message' => esc_html__( 'Currencies order updated', 'woocommerce-multilingual' ) ) );
|
1413 |
+
# }
|
1414 |
|
1415 |
+
msgid "Currencies order updated"
|
1416 |
msgstr ""
|
1417 |
|
1418 |
+
# } elseif ( strpos( $path, $this->wpml_file->fix_dir_separator( $this->get_uploads_path() ) ) === 0 ) {
|
1419 |
+
# $name = __( 'Uploads', 'woocommerce-multilingual' ) . ' - ' . $name;
|
1420 |
+
# } elseif (
|
1421 |
|
1422 |
+
msgid "Uploads"
|
1423 |
msgstr ""
|
1424 |
|
1425 |
+
# function __construct() {
|
1426 |
+
# parent::__construct( 'currency_sel_widget', __('Currency switcher', 'woocommerce-multilingual'), array(), array() );
|
1427 |
+
# }
|
1428 |
|
1429 |
+
msgid "Currency switcher"
|
1430 |
msgstr ""
|
1431 |
|
1432 |
+
# $url_to_currency_switcher = esc_url( admin_url( 'admin.php?page=wpml-wcml&tab=multi-currency#currency-switcher/' . (int) $instance[ 'id' ] ) );
|
1433 |
+
# $button_text = esc_html__( 'Customize the currency switcher', 'woocommerce-multilingual' );
|
1434 |
+
# printf('<p><a class="button button-secondary wcml-cs-widgets-edit-link" href="%s"><span class="otgs-ico-edit"></span> %s</a></p>', $url_to_currency_switcher, $button_text );
|
1435 |
|
1436 |
+
msgid "Customize the currency switcher"
|
1437 |
msgstr ""
|
1438 |
|
1439 |
+
# if( is_admin() ){
|
1440 |
+
# $preview = '<i>' . esc_html__("You haven't added any secondary currencies.", 'woocommerce-multilingual') . '</i>';
|
1441 |
+
# }else{
|
1442 |
|
1443 |
+
msgid "You haven't added any secondary currencies."
|
1444 |
msgstr ""
|
1445 |
|
1446 |
+
# 'strings' => array(
|
1447 |
+
# 'choose' => __( 'Choose a file', 'woocommerce-multilingual' ),
|
1448 |
+
# 'save_tooltip' => __( 'At least one of these fields is required: title, content or excerpt', 'woocommerce-multilingual' ),
|
1449 |
|
1450 |
+
msgid "Choose a file"
|
1451 |
msgstr ""
|
1452 |
|
1453 |
+
# 'choose' => __( 'Choose a file', 'woocommerce-multilingual' ),
|
1454 |
+
# 'save_tooltip' => __( 'At least one of these fields is required: title, content or excerpt', 'woocommerce-multilingual' ),
|
1455 |
+
# 'resign_tooltip'=> __( 'This translation job will no longer be assigned to you. Other translators will be able take it and continue the translation.', 'woocommerce-multilingual')
|
1456 |
|
1457 |
+
msgid "At least one of these fields is required: title, content or excerpt"
|
1458 |
msgstr ""
|
1459 |
|
1460 |
+
# 'save_tooltip' => __( 'At least one of these fields is required: title, content or excerpt', 'woocommerce-multilingual' ),
|
1461 |
+
# 'resign_tooltip'=> __( 'This translation job will no longer be assigned to you. Other translators will be able take it and continue the translation.', 'woocommerce-multilingual')
|
1462 |
+
# ),
|
1463 |
|
1464 |
+
msgid "This translation job will no longer be assigned to you. Other translators will be able take it and continue the translation."
|
1465 |
msgstr ""
|
1466 |
|
1467 |
+
# echo '<img src="' . WCML_PLUGIN_URL . '/res/images/locked.png" class="wcml_lock_img wcml_lock_icon" alt="' .
|
1468 |
+
# __( 'This field is locked for editing because WPML will copy its value from the original language.', 'woocommerce-multilingual' ) .
|
1469 |
+
# '" title="' . __( 'This field is locked for editing because WPML will copy its value from the original language.', 'woocommerce-multilingual' ) .
|
1470 |
|
1471 |
+
msgid "This field is locked for editing because WPML will copy its value from the original language."
|
1472 |
msgstr ""
|
1473 |
|
1474 |
+
# echo '<h3 class="wcml_prod_hidden_notice">' .
|
1475 |
+
# sprintf( __( "This is a translation of %s. Some of the fields are not editable. It's recommended to use the %s for translating products.",
|
1476 |
+
# 'woocommerce-multilingual' ),
|
1477 |
|
1478 |
+
msgid "This is a translation of %s. Some of the fields are not editable. It's recommended to use the %s for translating products."
|
1479 |
msgstr ""
|
1480 |
|
1481 |
+
# '<a data-action="product-translation-dialog" class="js-wcml-dialog-trigger" data-id="' . $original_id . '" data-job_id="" data-language="' . $language . '">' .
|
1482 |
+
# __( 'WooCommerce Multilingual products translator', 'woocommerce-multilingual' ) . '</a>' ) . '</h3>';
|
1483 |
+
# }
|
1484 |
|
1485 |
+
msgid "WooCommerce Multilingual products translator"
|
1486 |
msgstr ""
|
1487 |
|
1488 |
+
# $link = admin_url('admin.php?page=wpml-wcml');
|
1489 |
+
# $name = __('Translate WooCommerce products', 'woocommerce-multilingual');
|
1490 |
+
# wp_enqueue_style( 'wcml-pointers');
|
1491 |
|
1492 |
+
msgid "Translate WooCommerce products"
|
1493 |
msgstr ""
|
1494 |
|
1495 |
+
# $link = admin_url('admin.php?page=wpml-wcml&tab=product_shipping_class');
|
1496 |
+
# $name = __('Translate shipping classes', 'woocommerce-multilingual');
|
1497 |
+
# wp_enqueue_style( 'wcml-pointers');
|
1498 |
|
1499 |
+
msgid "Translate shipping classes"
|
1500 |
msgstr ""
|
1501 |
|
1502 |
+
# $link = admin_url('admin.php?page=wpml-wcml&tab=multi-currency');
|
1503 |
+
# $name = __('Configure multi-currency for multilingual sites', 'woocommerce-multilingual');
|
1504 |
+
# wp_enqueue_style( 'wcml-pointers');
|
1505 |
|
1506 |
+
msgid "Configure multi-currency for multilingual sites"
|
1507 |
msgstr ""
|
1508 |
|
1509 |
+
# $link = admin_url('admin.php?page=wpml-wcml&tab=slugs');
|
1510 |
+
# $name = __('Translate endpoints', 'woocommerce-multilingual');
|
1511 |
+
# wp_enqueue_style( 'wcml-pointers');
|
1512 |
|
1513 |
+
msgid "Translate endpoints"
|
1514 |
msgstr ""
|
1515 |
|
1516 |
+
# $this->get_screen_url( $taxonomy->name ),
|
1517 |
+
# sprintf ( __( '%s translation', 'woocommerce-multilingual' ), $taxonomy->labels->singular_name )
|
1518 |
+
# );
|
1519 |
|
1520 |
+
msgid "%s translation"
|
1521 |
msgstr ""
|
1522 |
|
1523 |
+
# $text = sprintf(
|
1524 |
+
# esc_html__( 'Translating %s? Use the %s table for easier translation.', 'woocommerce-multilingual' ),
|
1525 |
+
# $taxonomy->labels->name,
|
1526 |
|
1527 |
+
msgid "Translating %s? Use the %s table for easier translation."
|
1528 |
msgstr ""
|
1529 |
|
1530 |
+
# 'woocommerce',
|
1531 |
+
# __( 'WooCommerce Multilingual', 'woocommerce-multilingual' ),
|
1532 |
+
# __( 'WooCommerce Multilingual', 'woocommerce-multilingual' ),
|
1533 |
|
1534 |
+
msgid "WooCommerce Multilingual"
|
1535 |
msgstr ""
|
1536 |
|
1537 |
+
# $wp_api->add_submenu_page(null,
|
1538 |
+
# __('Translations', 'wpml-translation-management'), __('Translations', 'wpml-translation-management'),
|
1539 |
+
# 'wpml_operate_woocommerce_multilingual', WPML_TM_FOLDER . '/menu/translations-queue.php', array($WPML_Translation_Management, 'translation_queue_page'));
|
1540 |
|
1541 |
+
msgid "Translations"
|
1542 |
msgstr ""
|
1543 |
|
1544 |
+
# $quick_edit_notice = '<div id="quick_edit_notice" style="display:none;"><p>' .
|
1545 |
+
# sprintf( __( "Quick edit is disabled for product translations. It\'s recommended to use the %s for editing products translations. %s",
|
1546 |
+
# 'woocommerce-multilingual' ), '<a href="' . admin_url( 'admin.php?page=wpml-wcml&tab=products' ) . '" >' .
|
1547 |
|
1548 |
+
msgid "Quick edit is disabled for product translations. It's recommended to use the %s for editing products translations. %s"
|
1549 |
msgstr ""
|
1550 |
|
1551 |
+
# 'woocommerce-multilingual' ), '<a href="' . admin_url( 'admin.php?page=wpml-wcml&tab=products' ) . '" >' .
|
1552 |
+
# __( 'WooCommerce Multilingual products editor', 'woocommerce-multilingual' ) . '</a>',
|
1553 |
+
# '<a href="" class="quick_product_trnsl_link" >' . __( 'Edit this product translation', 'woocommerce-multilingual' ) . '</a>'
|
1554 |
|
1555 |
+
msgid "WooCommerce Multilingual products editor"
|
1556 |
msgstr ""
|
1557 |
|
1558 |
+
# __( 'WooCommerce Multilingual products editor', 'woocommerce-multilingual' ) . '</a>',
|
1559 |
+
# '<a href="" class="quick_product_trnsl_link" >' . __( 'Edit this product translation', 'woocommerce-multilingual' ) . '</a>'
|
1560 |
+
# ) . '</p></div>';
|
1561 |
|
1562 |
+
msgid "Edit this product translation"
|
1563 |
msgstr ""
|
1564 |
|
1565 |
+
# );
|
1566 |
+
# $prot_link = sprintf( $template, $href, __( 'How to translate attributes', 'sitepress' ) );
|
1567 |
+
# ?>
|
1568 |
|
1569 |
+
msgid "How to translate attributes"
|
1570 |
msgstr ""
|
1571 |
|
1572 |
+
# );
|
1573 |
+
# $prot_link = sprintf( $template, $href, __( 'How to translate product categories', 'sitepress' ) );
|
1574 |
+
# ?>
|
1575 |
|
1576 |
+
msgid "How to translate product categories"
|
1577 |
msgstr ""
|
1578 |
|
1579 |
+
# $message .= sprintf(
|
1580 |
+
# __('The recommended way to translate WooCommerce products is using the
|
1581 |
+
# %sWooCommerce Multilingual products translation%s page.
|
1582 |
|
1583 |
+
msgid "The recommended way to translate WooCommerce products is using the\n %sWooCommerce Multilingual products translation%s page.\n Please use this page only for translating elements that are not available in the WooCommerce Multilingual products translation table."
|
1584 |
msgstr ""
|
1585 |
|
1586 |
+
# '<strong><a href="' . admin_url('admin.php?page=wpml-wcml&tab=products') . '">', '</a></strong>');
|
1587 |
+
# $message .= '</p><a class="notice-dismiss" href="' . $url . '&wcml_action=dismiss_tm_warning"><span class="screen-reader-text">' . __('Dismiss', 'woocommerce-multilingual') . '</a>';
|
1588 |
+
# $message .= '</div>';
|
1589 |
|
1590 |
+
msgid "Dismiss"
|
1591 |
msgstr ""
|
1592 |
|
1593 |
+
# foreach( $menu as $key => $menu_item ) {
|
1594 |
+
# if ( $menu_item[ 0 ] == __( 'WooCommerce', 'woocommerce' ) ) {
|
1595 |
+
# $menu[ $key ][ 0 ] .= '<span class="wcml-menu-warn"><i class="otgs-ico-warning"></i></span>';
|
1596 |
|
1597 |
+
msgid "WooCommerce"
|
1598 |
msgstr ""
|
1599 |
|
1600 |
+
# 'introduction' => array(
|
1601 |
+
# 'name' => __( 'Introduction', 'woocommerce-multilingual' ),
|
1602 |
+
# 'view' => array( $this, 'setup_introduction' ),
|
1603 |
|
1604 |
+
msgid "Introduction"
|
1605 |
msgstr ""
|
1606 |
|
1607 |
+
# 'store-pages' => array(
|
1608 |
+
# 'name' => __( 'Store Pages', 'woocommerce-multilingual' ),
|
1609 |
+
# 'view' => array( $this, 'setup_store_pages' ),
|
1610 |
|
1611 |
+
msgid "Store Pages"
|
1612 |
msgstr ""
|
1613 |
|
1614 |
+
# 'attributes' => array(
|
1615 |
+
# 'name' => __( 'Global Attributes', 'woocommerce-multilingual' ),
|
1616 |
+
# 'view' => array( $this, 'setup_attributes' ),
|
1617 |
|
1618 |
+
msgid "Global Attributes"
|
1619 |
msgstr ""
|
1620 |
|
1621 |
+
# 'multi-currency' => array(
|
1622 |
+
# 'name' => __( 'Multiple Currencies', 'woocommerce-multilingual' ),
|
1623 |
+
# 'view' => array( $this, 'setup_multi_currency' ),
|
1624 |
|
1625 |
+
msgid "Multiple Currencies"
|
1626 |
msgstr ""
|
1627 |
|
1628 |
+
# 'ready' => array(
|
1629 |
+
# 'name' => __( 'Ready!', 'woocommerce-multilingual' ),
|
1630 |
+
# 'view' => array( $this, 'setup_ready' ),
|
1631 |
|
1632 |
+
msgid "Ready!"
|
1633 |
msgstr ""
|
1634 |
|
1635 |
+
# if ( ! wp_verify_nonce( $_GET['_wcml_setup_nonce'], 'wcml_setup_skip_nonce' ) ) {
|
1636 |
+
# wp_die( __( 'Action failed. Please refresh the page and retry.', 'woocommerce-multilingual' ) );
|
1637 |
+
# }
|
1638 |
|
1639 |
+
msgid "Action failed. Please refresh the page and retry."
|
1640 |
msgstr ""
|
1641 |
|
1642 |
+
# if ( ! current_user_can( 'manage_options' ) ) {
|
1643 |
+
# wp_die( esc_html__( "Cheatin' huh?", 'woocommerce' ) );
|
1644 |
+
# }
|
1645 |
|
1646 |
+
msgid "Cheatin' huh?"
|
1647 |
msgstr ""
|
1648 |
|
1649 |
+
# <p>
|
1650 |
+
# <strong><?php _e('Prepare your WooCommerce store to run multilingual!', 'woocommerce-multilingual'); ?></strong><br />
|
1651 |
+
# <?php _e('We need to help you with a few steps to turn your WooCommerce store multilingual. These steps include:', 'woocommerce-multilingual'); ?>
|
1652 |
|
1653 |
+
msgid "Prepare your WooCommerce store to run multilingual!"
|
1654 |
msgstr ""
|
1655 |
|
1656 |
+
# <strong><?php _e('Prepare your WooCommerce store to run multilingual!', 'woocommerce-multilingual'); ?></strong><br />
|
1657 |
+
# <?php _e('We need to help you with a few steps to turn your WooCommerce store multilingual. These steps include:', 'woocommerce-multilingual'); ?>
|
1658 |
+
# <ul class="wcml-notice-list">
|
1659 |
|
1660 |
+
msgid "We need to help you with a few steps to turn your WooCommerce store multilingual. These steps include:"
|
1661 |
msgstr ""
|
1662 |
|
1663 |
+
# <ul class="wcml-notice-list">
|
1664 |
+
# <li><?php _e("Translating the 'store' pages", 'woocommerce-multilingual'); ?></li>
|
1665 |
+
# <li><?php _e("Choosing which attributes to make translatable", 'woocommerce-multilingual'); ?></li>
|
1666 |
|
1667 |
+
msgid "Translating the 'store' pages"
|
1668 |
msgstr ""
|
1669 |
|
1670 |
+
# <li><?php _e("Translating the 'store' pages", 'woocommerce-multilingual'); ?></li>
|
1671 |
+
# <li><?php _e("Choosing which attributes to make translatable", 'woocommerce-multilingual'); ?></li>
|
1672 |
+
# <li><?php _e("Choosing if you need multiple currencies", 'woocommerce-multilingual'); ?></li>
|
1673 |
|
1674 |
+
msgid "Choosing which attributes to make translatable"
|
1675 |
msgstr ""
|
1676 |
|
1677 |
+
# <li><?php _e("Choosing which attributes to make translatable", 'woocommerce-multilingual'); ?></li>
|
1678 |
+
# <li><?php _e("Choosing if you need multiple currencies", 'woocommerce-multilingual'); ?></li>
|
1679 |
+
# </ul>
|
1680 |
|
1681 |
+
msgid "Choosing if you need multiple currencies"
|
1682 |
msgstr ""
|
1683 |
|
1684 |
+
# <p class="submit">
|
1685 |
+
# <a href="<?php echo esc_url( admin_url('admin.php?page=wcml-setup') ); ?>" class="button-primary"><?php _e('Start the Setup Wizard', 'woocommerce-multilingual') ?></a>
|
1686 |
+
# <a href="<?php echo esc_url( wp_nonce_url( add_query_arg( 'wcml-setup-skip', 1 ), 'wcml_setup_skip_nonce', '_wcml_setup_nonce' ) ); ?>" class="button-secondary skip"><?php _e('Skip', 'woocommerce-multilingual') ?></a>
|
1687 |
|
1688 |
+
msgid "Start the Setup Wizard"
|
1689 |
msgstr ""
|
1690 |
|
1691 |
+
# <a href="<?php echo esc_url( admin_url('admin.php?page=wcml-setup') ); ?>" class="button-primary"><?php _e('Start the Setup Wizard', 'woocommerce-multilingual') ?></a>
|
1692 |
+
# <a href="<?php echo esc_url( wp_nonce_url( add_query_arg( 'wcml-setup-skip', 1 ), 'wcml_setup_skip_nonce', '_wcml_setup_nonce' ) ); ?>" class="button-secondary skip"><?php _e('Skip', 'woocommerce-multilingual') ?></a>
|
1693 |
+
# </p>
|
1694 |
|
1695 |
+
msgid "Skip"
|
1696 |
msgstr ""
|
1697 |
|
1698 |
+
# <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
1699 |
+
# <title><?php _e( 'WooCommerce Multilingual › Setup Wizard', 'woocommerce-multilingual' ); ?></title>
|
1700 |
+
# <?php wp_print_scripts( 'wcml-setup' ); ?>
|
1701 |
|
1702 |
+
msgid "WooCommerce Multilingual › Setup Wizard"
|
1703 |
msgstr ""
|
1704 |
|
1705 |
+
# <p>
|
1706 |
+
# <?php printf(__("We detected a problem in your WPML configuration: the %sproduct_type%s taxonomy is set as translatable and this would cause problems with translated products. You can fix this in the %sMultilingual Content Setup page%s.", 'woocommerce-multilingual'), '<i>', '</i>','<a href="' . admin_url( 'admin.php?page=' . WPML_TM_FOLDER . '/menu/main.php&sm=mcsetup#ml-content-setup-sec-8' ) . '">','</a>'); ?>
|
1707 |
+
# </p>
|
1708 |
|
1709 |
+
msgid "We detected a problem in your WPML configuration: the %sproduct_type%s taxonomy is set as translatable and this would cause problems with translated products. You can fix this in the %sMultilingual Content Setup page%s."
|
1710 |
msgstr ""
|
1711 |
|
1712 |
+
# <p>
|
1713 |
+
# <?php printf(__("We detected that the %sproduct_type%s field was set incorrectly for some product translations. This happened because the product_type taxonomy was translated. You can fix this in the WooCommerce Multilingual %stroubleshooting page%s.", 'woocommerce-multilingual'), '<i>', '</i>','<a href="' . admin_url( 'admin.php?page=wpml-wcml&tab=troubleshooting' ) . '">','</a>'); ?>
|
1714 |
+
# </p>
|
1715 |
|
1716 |
+
msgid "We detected that the %sproduct_type%s field was set incorrectly for some product translations. This happened because the product_type taxonomy was translated. You can fix this in the WooCommerce Multilingual %stroubleshooting page%s."
|
1717 |
msgstr ""
|
1718 |
|
1719 |
+
# <p>
|
1720 |
+
# <?php printf( esc_html__( "You've successfully installed %sWooCommerce Multilingual%s. Would you like to see a quick overview?", 'woocommerce-multilingual' ),
|
1721 |
+
# '<strong>', '</strong>' ); ?>
|
1722 |
|
1723 |
+
msgid "You've successfully installed %sWooCommerce Multilingual%s. Would you like to see a quick overview?"
|
1724 |
msgstr ""
|
1725 |
|
1726 |
+
# 'https://wpml.org/documentation/related-projects/woocommerce-multilingual/','woocommerce-multilingual','documentation') ); ?>" target="_blank">
|
1727 |
+
# <?php _e('Learn how to turn your e-commerce site multilingual', 'woocommerce-multilingual') ?>
|
1728 |
+
# </a>
|
1729 |
|
1730 |
+
msgid "Learn how to turn your e-commerce site multilingual"
|
1731 |
msgstr ""
|
1732 |
|
1733 |
+
# if ( !isset($active_languages[$lang]) && $lang != 'all' ) {
|
1734 |
+
# throw new WC_API_Exception( '404', sprintf( __( 'Invalid language parameter: %s' ), $lang ), '404' );
|
1735 |
+
# }
|
1736 |
|
1737 |
+
msgid "Invalid language parameter: %s"
|
1738 |
msgstr ""
|
1739 |
|
1740 |
+
# if( empty($trid) ){
|
1741 |
+
# throw new WC_API_Exception( '404', sprintf( __( 'Source product id not found: %s' ), $data['translation_of'] ), '404' );
|
1742 |
+
# }
|
1743 |
|
1744 |
+
msgid "Source product id not found: %s"
|
1745 |
msgstr ""
|
1746 |
|
1747 |
+
#
|
1748 |
+
# printf( '<p>'.__('In order to edit custom attributes you need to use the <a href="%s">custom product translation editor</a>', 'woocommerce-multilingual').'</p>', admin_url('admin.php?page=wpml-wcml&tab=products&prid='.$original_product_id ) );
|
1749 |
+
# }
|
1750 |
|
1751 |
+
msgid "In order to edit custom attributes you need to use the <a href=\"%s\">custom product translation editor</a>"
|
1752 |
msgstr ""
|
1753 |
|
1754 |
+
# jQuery('input[name="woocommerce_product_category_slug"]').parent().append('<br><i class="icon-warning-sign"><?php
|
1755 |
+
# _e('You are using the same value as for the regular category base. This is known to create conflicts resulting in urls not working properly.', 'woocommerce-multilingual') ?></i>');
|
1756 |
+
# }
|
1757 |
|
1758 |
+
msgid "You are using the same value as for the regular category base. This is known to create conflicts resulting in urls not working properly."
|
1759 |
msgstr ""
|
1760 |
|
1761 |
+
# if( empty( $permalink_options['product_base'] ) ){
|
1762 |
+
# $value = _x( 'product', 'default-slug', 'woocommerce' );
|
1763 |
+
# }else{
|
1764 |
|
1765 |
+
msgctxt "default-slug"
|
1766 |
+
msgid "product"
|
1767 |
msgstr ""
|
1768 |
|
1769 |
+
# '404',
|
1770 |
+
# sprintf( __( 'Invalid language parameter: %s', 'woocommerce-multilingual' ),
|
1771 |
+
# $data['lang'] ),
|
1772 |
|
1773 |
+
msgid "Invalid language parameter: %s"
|
1774 |
msgstr ""
|
1775 |
|
1776 |
+
# if( empty($trid) ){
|
1777 |
+
# throw new WC_REST_Exception( '404', sprintf( __( 'Source product id not found: %s', 'woocommerce-multilingual' ), $data['translation_of'] ), '404' );
|
1778 |
+
# }
|
1779 |
|
1780 |
+
msgid "Source product id not found: %s"
|
1781 |
msgstr ""
|
1782 |
|
1783 |
+
# if( isset( $data['translation_of'] ) ){
|
1784 |
+
# throw new WC_REST_Exception( '404', __( 'Using "translation_of" requires providing a "lang" parameter too', 'woocommerce-multilingual' ), '404' );
|
1785 |
+
# }
|
1786 |
|
1787 |
+
msgid "Using \"translation_of\" requires providing a \"lang\" parameter too"
|
1788 |
msgstr ""
|
1789 |
|
1790 |
+
#
|
1791 |
+
# $dialog_title = __( 'Switching currency?', 'woocommerce-multilingual');
|
1792 |
+
# $confirmation_message = __( 'Your cart is not empty! After you switched the currency, all items from the cart will be removed and you have to add them again.', 'woocommerce-multilingual');
|
1793 |
|
1794 |
+
msgid "Switching currency?"
|
1795 |
msgstr ""
|
1796 |
|
1797 |
+
# $dialog_title = __( 'Switching currency?', 'woocommerce-multilingual');
|
1798 |
+
# $confirmation_message = __( 'Your cart is not empty! After you switched the currency, all items from the cart will be removed and you have to add them again.', 'woocommerce-multilingual');
|
1799 |
+
# $stay_in = sprintf( __( 'Keep using %s', 'woocommerce-multilingual'), $current_currency );
|
1800 |
|
1801 |
+
msgid "Your cart is not empty! After you switched the currency, all items from the cart will be removed and you have to add them again."
|
1802 |
msgstr ""
|
1803 |
|
1804 |
+
# $confirmation_message = __( 'Your cart is not empty! After you switched the currency, all items from the cart will be removed and you have to add them again.', 'woocommerce-multilingual');
|
1805 |
+
# $stay_in = sprintf( __( 'Keep using %s', 'woocommerce-multilingual'), $current_currency );
|
1806 |
+
# $switch_to = __( 'Proceed', 'woocommerce-multilingual');
|
1807 |
|
1808 |
+
msgid "Keep using %s"
|
1809 |
msgstr ""
|
1810 |
|
1811 |
+
# $stay_in = sprintf( __( 'Keep using %s', 'woocommerce-multilingual'), $current_currency );
|
1812 |
+
# $switch_to = __( 'Proceed', 'woocommerce-multilingual');
|
1813 |
+
#
|
1814 |
|
1815 |
+
msgid "Proceed"
|
1816 |
msgstr ""
|
1817 |
|
1818 |
+
# $wc_cart_url = esc_url( wc_get_cart_url() );
|
1819 |
+
# $message_title = sprintf( esc_html__( 'You cannot add another "%s" to your cart.', 'woocommerce' ), get_the_title( $post_id ) );
|
1820 |
+
#
|
1821 |
|
1822 |
+
msgid "You cannot add another "%s" to your cart."
|
1823 |
msgstr ""
|
1824 |
|
1825 |
+
#
|
1826 |
+
# $message = '<a href="' . $wc_cart_url . '" class="button wc-forward">' . esc_html__( 'View Cart', 'woocommerce' ) . '</a>';
|
1827 |
+
# $message .= ' ' . $message_title;
|
1828 |
|
1829 |
+
msgid "View Cart"
|
1830 |
msgstr ""
|
1831 |
|
1832 |
+
# 'strings' => array(
|
1833 |
+
# 'store_pages' => __( 'WooCommerce Store Pages', 'woocommerce-multilingual' ),
|
1834 |
+
# 'pages_trnsl' => __( "To run a multilingual e-commerce site, you need to have the WooCommerce shop pages translated to all the site's languages. Once all the pages are installed you can add the translations for them from this menu.", 'woocommerce-multilingual' ),
|
1835 |
|
1836 |
+
msgid "WooCommerce Store Pages"
|
1837 |
msgstr ""
|
1838 |
|
1839 |
+
# 'store_pages' => __( 'WooCommerce Store Pages', 'woocommerce-multilingual' ),
|
1840 |
+
# 'pages_trnsl' => __( "To run a multilingual e-commerce site, you need to have the WooCommerce shop pages translated to all the site's languages. Once all the pages are installed you can add the translations for them from this menu.", 'woocommerce-multilingual' ),
|
1841 |
+
# 'store_pages' => __( 'WooCommerce Store Pages', 'woocommerce-multilingual' ),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1842 |
|
1843 |
+
msgid "To run a multilingual e-commerce site, you need to have the WooCommerce shop pages translated to all the site's languages. Once all the pages are installed you can add the translations for them from this menu."
|
1844 |
msgstr ""
|
1845 |
|
1846 |
+
# 'store_pages' => __( 'WooCommerce Store Pages', 'woocommerce-multilingual' ),
|
1847 |
+
# 'not_created' => __( 'One or more WooCommerce pages have not been created.', 'woocommerce-multilingual' ),
|
1848 |
+
# 'install' => __( 'Install WooCommerce Pages', 'woocommerce-multilingual' ),
|
1849 |
|
1850 |
+
msgid "One or more WooCommerce pages have not been created."
|
1851 |
msgstr ""
|
1852 |
|
1853 |
+
# 'not_created' => __( 'One or more WooCommerce pages have not been created.', 'woocommerce-multilingual' ),
|
1854 |
+
# 'install' => __( 'Install WooCommerce Pages', 'woocommerce-multilingual' ),
|
1855 |
+
# 'not_exist' => __( 'WooCommerce store pages do not exist for these languages:', 'woocommerce-multilingual' ),
|
1856 |
|
1857 |
+
msgid "Install WooCommerce Pages"
|
1858 |
msgstr ""
|
1859 |
|
1860 |
+
# 'install' => __( 'Install WooCommerce Pages', 'woocommerce-multilingual' ),
|
1861 |
+
# 'not_exist' => __( 'WooCommerce store pages do not exist for these languages:', 'woocommerce-multilingual' ),
|
1862 |
+
# 'create_transl' => __( 'Create missing translations', 'woocommerce-multilingual' ),
|
1863 |
|
1864 |
+
msgid "WooCommerce store pages do not exist for these languages:"
|
1865 |
msgstr ""
|
1866 |
|
1867 |
+
# 'not_exist' => __( 'WooCommerce store pages do not exist for these languages:', 'woocommerce-multilingual' ),
|
1868 |
+
# 'create_transl' => __( 'Create missing translations', 'woocommerce-multilingual' ),
|
1869 |
+
# 'translated_wpml' => __( 'These pages are currently being translated by translators via WPML: ', 'woocommerce-multilingual' ),
|
1870 |
|
1871 |
+
msgid "Create missing translations"
|
1872 |
msgstr ""
|
1873 |
|
1874 |
+
# 'create_transl' => __( 'Create missing translations', 'woocommerce-multilingual' ),
|
1875 |
+
# 'translated_wpml' => __( 'These pages are currently being translated by translators via WPML: ', 'woocommerce-multilingual' ),
|
1876 |
+
# 'translated' => __( "WooCommerce store pages are translated to all the site's languages.", 'woocommerce-multilingual' )
|
1877 |
|
1878 |
+
msgid "These pages are currently being translated by translators via WPML: "
|
1879 |
msgstr ""
|
1880 |
|
1881 |
+
# 'translated_wpml' => __( 'These pages are currently being translated by translators via WPML: ', 'woocommerce-multilingual' ),
|
1882 |
+
# 'translated' => __( "WooCommerce store pages are translated to all the site's languages.", 'woocommerce-multilingual' )
|
1883 |
# ),
|
1884 |
|
1885 |
+
msgid "WooCommerce store pages are translated to all the site's languages."
|
1886 |
msgstr ""
|
1887 |
|
1888 |
# 'strings' => array(
|
1978 |
|
1979 |
# 'base_not_trnsl' => __( 'Your product permalink base is not translated to:', 'woocommerce-multilingual' ),
|
1980 |
# 'trsl_urls' => __( 'Translate URLs', 'woocommerce-multilingual' ),
|
1981 |
+
# 'run_not_en' => __( 'Running WooCommerce multilingual with default language other than English.', 'woocommerce-multilingual' ),
|
1982 |
|
1983 |
msgid "Translate URLs"
|
1984 |
msgstr ""
|
1985 |
|
1986 |
# 'trsl_urls' => __( 'Translate URLs', 'woocommerce-multilingual' ),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1987 |
# 'run_not_en' => __( 'Running WooCommerce multilingual with default language other than English.', 'woocommerce-multilingual' ),
|
1988 |
# 'url_problems' => __( 'This may cause problems with URLs in different languages.', 'woocommerce-multilingual' ),
|
1989 |
|
1999 |
|
2000 |
# 'url_problems' => __( 'This may cause problems with URLs in different languages.', 'woocommerce-multilingual' ),
|
2001 |
# 'change_def_lang' => __( 'Change default language', 'woocommerce-multilingual' ),
|
2002 |
+
# 'attent_sett' => __( 'There are some settings that require careful attention.', 'woocommerce-multilingual' ),
|
2003 |
|
2004 |
msgid "Change default language"
|
2005 |
msgstr ""
|
2006 |
|
2007 |
# 'change_def_lang' => __( 'Change default language', 'woocommerce-multilingual' ),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008 |
# 'attent_sett' => __( 'There are some settings that require careful attention.', 'woocommerce-multilingual' ),
|
2009 |
# 'over_sett' => __( 'Some settings from the WooCommerce Multilingual wpml-config.xml file have been overwritten.', 'woocommerce-multilingual' ),
|
2010 |
|
2032 |
msgid "Multilingual Content Setup"
|
2033 |
msgstr ""
|
2034 |
|
2035 |
+
# 'strings' => array(
|
2036 |
+
# 'mc_missing' => __( 'Multi-currency', 'woocommerce-multilingual' ),
|
2037 |
+
# 'no_secondary' => __( "You haven't added any secondary currencies.", 'woocommerce-multilingual' ),
|
2038 |
+
|
2039 |
+
msgid "Multi-currency"
|
2040 |
+
msgstr ""
|
2041 |
+
|
2042 |
+
# 'no_secondary' => __( "You haven't added any secondary currencies.", 'woocommerce-multilingual' ),
|
2043 |
+
# 'sec_currencies' => __( 'Secondary currencies: %s', 'woocommerce-multilingual' ),
|
2044 |
+
# 'not_enabled' => __( 'Multi-currency is not enabled.', 'woocommerce-multilingual' ),
|
2045 |
+
|
2046 |
+
msgid "Secondary currencies: %s"
|
2047 |
+
msgstr ""
|
2048 |
+
|
2049 |
+
# 'sec_currencies' => __( 'Secondary currencies: %s', 'woocommerce-multilingual' ),
|
2050 |
+
# 'not_enabled' => __( 'Multi-currency is not enabled.', 'woocommerce-multilingual' ),
|
2051 |
+
# 'add_cur' => __( 'Add Currencies', 'woocommerce-multilingual' )
|
2052 |
+
|
2053 |
+
msgid "Multi-currency is not enabled."
|
2054 |
+
msgstr ""
|
2055 |
+
|
2056 |
+
# 'not_enabled' => __( 'Multi-currency is not enabled.', 'woocommerce-multilingual' ),
|
2057 |
+
# 'add_cur' => __( 'Add Currencies', 'woocommerce-multilingual' )
|
2058 |
+
# )
|
2059 |
+
|
2060 |
+
msgid "Add Currencies"
|
2061 |
+
msgstr ""
|
2062 |
+
|
2063 |
# 'strings' => array(
|
2064 |
# 'products_missing' => __( 'Products Missing Translations', 'woocommerce-multilingual' ),
|
2065 |
# 'miss_trnsl_one' => __( '%d %s translation missing.', 'woocommerce-multilingual' ),
|
2095 |
msgid "Right now, there are no products needing translation."
|
2096 |
msgstr ""
|
2097 |
|
2098 |
+
# 'strings' => array(
|
2099 |
+
# 'troubl' => __( 'Troubleshooting page', 'woocommerce-multilingual' )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2100 |
# )
|
2101 |
|
2102 |
+
msgid "Troubleshooting page"
|
2103 |
msgstr ""
|
2104 |
|
2105 |
# 'strings' => array(
|
2137 |
msgid "WooCommerce Multilingual depends on several plugins to work. If any required plugin is missing, you should install and activate it."
|
2138 |
msgstr ""
|
2139 |
|
2140 |
+
# 'title' => __('WooCommerce Multilingual', 'woocommerce-multilingual'),
|
2141 |
+
# 'required'=> __('Required plugins', 'woocommerce-multilingual'),
|
2142 |
+
# 'plugins'=> __('Plugins Status', 'woocommerce-multilingual'),
|
2143 |
|
2144 |
+
msgid "Required plugins"
|
2145 |
msgstr ""
|
2146 |
|
2147 |
+
# 'depends'=> __('WooCommerce Multilingual depends on several plugins to work. If any required plugin is missing, you should install and activate it.', 'woocommerce-multilingual'),
|
2148 |
+
# 'old_wpml_link'=> sprintf( __( 'WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href="%s">WPML</a> versions prior 2.0.5.', 'woocommerce-multilingual' ), $this->tracking_link->generate( 'https://wpml.org/' ) ),
|
2149 |
+
# 'update_wpml'=> __( 'Update WPML', 'woocommerce-multilingual' ),
|
2150 |
|
2151 |
+
msgid "WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href=\"%s\">WPML</a> versions prior 2.0.5."
|
2152 |
msgstr ""
|
2153 |
|
2154 |
+
# 'old_wpml_link'=> sprintf( __( 'WooCommerce Multilingual is enabled but not effective. It is not compatible with <a href="%s">WPML</a> versions prior 2.0.5.', 'woocommerce-multilingual' ), $this->tracking_link->generate( 'https://wpml.org/' ) ),
|
2155 |
+
# 'update_wpml'=> __( 'Update WPML', 'woocommerce-multilingual' ),
|
2156 |
+
# 'upgrade_wpml'=> __( 'Upgrade WPML', 'woocommerce-multilingual' ),
|
2157 |
|
2158 |
+
msgid "Update WPML"
|
2159 |
msgstr ""
|
2160 |
|
2161 |
+
# 'update_wpml'=> __( 'Update WPML', 'woocommerce-multilingual' ),
|
2162 |
+
# 'upgrade_wpml'=> __( 'Upgrade WPML', 'woocommerce-multilingual' ),
|
2163 |
+
# 'get_wpml'=> __( 'Get WPML', 'woocommerce-multilingual' ),
|
2164 |
|
2165 |
+
msgid "Upgrade WPML"
|
2166 |
msgstr ""
|
2167 |
|
2168 |
+
# 'upgrade_wpml'=> __( 'Upgrade WPML', 'woocommerce-multilingual' ),
|
2169 |
+
# 'get_wpml'=> __( 'Get WPML', 'woocommerce-multilingual' ),
|
2170 |
+
# 'get_wpml_media'=> __( 'Get WPML Media', 'woocommerce-multilingual' ),
|
2171 |
|
2172 |
+
msgid "Get WPML"
|
2173 |
msgstr ""
|
2174 |
|
2175 |
+
# 'get_wpml'=> __( 'Get WPML', 'woocommerce-multilingual' ),
|
2176 |
+
# 'get_wpml_media'=> __( 'Get WPML Media', 'woocommerce-multilingual' ),
|
2177 |
+
# 'get_wpml_tm'=> __( 'Get WPML Translation Management', 'woocommerce-multilingual' ),
|
2178 |
|
2179 |
+
msgid "Get WPML Media"
|
2180 |
msgstr ""
|
2181 |
|
2182 |
+
# 'get_wpml_media'=> __( 'Get WPML Media', 'woocommerce-multilingual' ),
|
2183 |
+
# 'get_wpml_tm'=> __( 'Get WPML Translation Management', 'woocommerce-multilingual' ),
|
2184 |
+
# 'get_wpml_st'=> __( 'Get WPML String Translation', 'woocommerce-multilingual' ),
|
2185 |
|
2186 |
+
msgid "Get WPML Translation Management"
|
2187 |
msgstr ""
|
2188 |
|
2189 |
+
# 'get_wpml_tm'=> __( 'Get WPML Translation Management', 'woocommerce-multilingual' ),
|
2190 |
+
# 'get_wpml_st'=> __( 'Get WPML String Translation', 'woocommerce-multilingual' ),
|
2191 |
+
# 'new_design_wpml_link'=> sprintf( __( 'You are using WooCommerce Multilingual %s. This version includes an important UI redesign for the configuration screens and it requires <a href="%s">WPML %s</a> or higher. Everything still works on the front end now but, in order to configure options for WooCommerce Multilingual, you need to upgrade WPML.', 'woocommerce-multilingual' ), WCML_VERSION, $this->tracking_link->generate( 'https://wpml.org/' ), '3.4' ),
|
2192 |
|
2193 |
+
msgid "Get WPML String Translation"
|
2194 |
msgstr ""
|
2195 |
|
2196 |
+
# 'get_wpml_st'=> __( 'Get WPML String Translation', 'woocommerce-multilingual' ),
|
2197 |
+
# 'new_design_wpml_link'=> sprintf( __( 'You are using WooCommerce Multilingual %s. This version includes an important UI redesign for the configuration screens and it requires <a href="%s">WPML %s</a> or higher. Everything still works on the front end now but, in order to configure options for WooCommerce Multilingual, you need to upgrade WPML.', 'woocommerce-multilingual' ), WCML_VERSION, $this->tracking_link->generate( 'https://wpml.org/' ), '3.4' ),
|
2198 |
+
# 'wpml' => '<strong>WPML</strong>',
|
2199 |
|
2200 |
+
msgid "You are using WooCommerce Multilingual %s. This version includes an important UI redesign for the configuration screens and it requires <a href=\"%s\">WPML %s</a> or higher. Everything still works on the front end now but, in order to configure options for WooCommerce Multilingual, you need to upgrade WPML."
|
2201 |
msgstr ""
|
2202 |
|
2203 |
+
# 'not_setup' => __( '%s is not set up.', 'woocommerce-multilingual' ),
|
2204 |
+
# 'not_inst' => __( '%s is either not installed or not active.', 'woocommerce-multilingual' ),
|
2205 |
+
# 'wpml_not_inst' => sprintf( __( '%s is either not installed or not active.', 'woocommerce-multilingual' ),'<strong><a title="' . esc_attr__('The WordPress Multilingual Plugin', 'woocommerce-multilingual') .'" href="' . $this->tracking_link->generate( 'https://wpml.org/' ) . '">WPML</a></strong>' ),
|
2206 |
|
2207 |
+
msgid "%s is either not installed or not active."
|
2208 |
msgstr ""
|
2209 |
|
2210 |
+
# 'wpml_not_inst' => sprintf( __( '%s is either not installed or not active.', 'woocommerce-multilingual' ),'<strong><a title="' . esc_attr__('The WordPress Multilingual Plugin', 'woocommerce-multilingual') .'" href="' . $this->tracking_link->generate( 'https://wpml.org/' ) . '">WPML</a></strong>' ),
|
2211 |
+
# 'old_wc' => sprintf( __( '%1$s is installed, but with incorrect version. You need %1$s %2$s or higher. ', 'woocommerce-multilingual' ), '<strong>WooCommerce</strong>', '2.0' ),
|
2212 |
+
# 'download_wc' => __( 'Download WooCommerce', 'woocommerce-multilingual' ),
|
2213 |
|
2214 |
+
msgid "%1$s is installed, but with incorrect version. You need %1$s %2$s or higher. "
|
2215 |
msgstr ""
|
2216 |
|
2217 |
+
# 'old_wc' => sprintf( __( '%1$s is installed, but with incorrect version. You need %1$s %2$s or higher. ', 'woocommerce-multilingual' ), '<strong>WooCommerce</strong>', '2.0' ),
|
2218 |
+
# 'download_wc' => __( 'Download WooCommerce', 'woocommerce-multilingual' ),
|
2219 |
+
# )
|
2220 |
|
2221 |
+
msgid "Download WooCommerce"
|
2222 |
msgstr ""
|
2223 |
|
2224 |
+
# 'not_inst' => __( '%s is either not installed or not active.', 'woocommerce-multilingual' ),
|
2225 |
+
# 'wpml_not_inst' => sprintf( __( '%s is either not installed or not active.', 'woocommerce-multilingual' ),'<strong><a title="' . esc_attr__('The WordPress Multilingual Plugin', 'woocommerce-multilingual') .'" href="' . $this->tracking_link->generate( 'https://wpml.org/' ) . '">WPML</a></strong>' ),
|
2226 |
+
# 'old_wc' => sprintf( __( '%1$s is installed, but with incorrect version. You need %1$s %2$s or higher. ', 'woocommerce-multilingual' ), '<strong>WooCommerce</strong>', '2.0' ),
|
2227 |
|
2228 |
+
msgid "The WordPress Multilingual Plugin"
|
2229 |
msgstr ""
|
2230 |
|
2231 |
+
# 'content' => $this->content,
|
2232 |
+
# 'trnsl_title' => __( 'How to translate this?', 'woocommerce-multilingual' ),
|
2233 |
+
# 'doc_link' => $this->doc_link,
|
2234 |
|
2235 |
+
msgid "How to translate this?"
|
2236 |
+
msgstr ""
|
2237 |
+
|
2238 |
+
# 'doc_link' => $this->doc_link,
|
2239 |
+
# 'doc_link_text' => __( 'Learn more', 'woocommerce-multilingual' ),
|
2240 |
+
# ),
|
2241 |
+
|
2242 |
+
msgid "Learn more"
|
2243 |
+
msgstr ""
|
2244 |
+
|
2245 |
+
# 'strings' => array(
|
2246 |
+
# 'troubl' => __( 'Troubleshooting', 'woocommerce-multilingual' ),
|
2247 |
+
# 'backup' => __( 'Please make a backup of your database before you start the synchronization', 'woocommerce-multilingual' ),
|
2248 |
+
|
2249 |
+
msgid "Troubleshooting"
|
2250 |
+
msgstr ""
|
2251 |
+
|
2252 |
+
# 'troubl' => __( 'Troubleshooting', 'woocommerce-multilingual' ),
|
2253 |
+
# 'backup' => __( 'Please make a backup of your database before you start the synchronization', 'woocommerce-multilingual' ),
|
2254 |
+
# 'sync' => __( 'Sync variables products', 'woocommerce-multilingual' ),
|
2255 |
+
|
2256 |
+
msgid "Please make a backup of your database before you start the synchronization"
|
2257 |
+
msgstr ""
|
2258 |
+
|
2259 |
+
# 'backup' => __( 'Please make a backup of your database before you start the synchronization', 'woocommerce-multilingual' ),
|
2260 |
+
# 'sync' => __( 'Sync variables products', 'woocommerce-multilingual' ),
|
2261 |
+
# 'upd_prod_count' => __( 'Update products count:', 'woocommerce-multilingual' ),
|
2262 |
+
|
2263 |
+
msgid "Sync variables products"
|
2264 |
+
msgstr ""
|
2265 |
+
|
2266 |
+
# 'sync' => __( 'Sync variables products', 'woocommerce-multilingual' ),
|
2267 |
+
# 'upd_prod_count' => __( 'Update products count:', 'woocommerce-multilingual' ),
|
2268 |
+
# 'prod_var' => __( 'products with variations', 'woocommerce-multilingual' ),
|
2269 |
+
|
2270 |
+
msgid "Update products count:"
|
2271 |
+
msgstr ""
|
2272 |
+
|
2273 |
+
# 'upd_prod_count' => __( 'Update products count:', 'woocommerce-multilingual' ),
|
2274 |
+
# 'prod_var' => __( 'products with variations', 'woocommerce-multilingual' ),
|
2275 |
+
# 'sync_var' => __( 'Sync products variations:', 'woocommerce-multilingual' ),
|
2276 |
+
|
2277 |
+
msgid "products with variations"
|
2278 |
+
msgstr ""
|
2279 |
+
|
2280 |
+
# 'prod_var' => __( 'products with variations', 'woocommerce-multilingual' ),
|
2281 |
+
# 'sync_var' => __( 'Sync products variations:', 'woocommerce-multilingual' ),
|
2282 |
+
# 'left' => __( 'left', 'woocommerce-multilingual' ),
|
2283 |
+
|
2284 |
+
msgid "Sync products variations:"
|
2285 |
+
msgstr ""
|
2286 |
+
|
2287 |
+
# 'sync_var' => __( 'Sync products variations:', 'woocommerce-multilingual' ),
|
2288 |
+
# 'left' => __( 'left', 'woocommerce-multilingual' ),
|
2289 |
+
# 'sync_gallery' => __( 'Sync products "gallery images":', 'woocommerce-multilingual' ),
|
2290 |
+
|
2291 |
+
msgid "left"
|
2292 |
+
msgstr ""
|
2293 |
+
|
2294 |
+
# 'left' => __( 'left', 'woocommerce-multilingual' ),
|
2295 |
+
# 'sync_gallery' => __( 'Sync products "gallery images":', 'woocommerce-multilingual' ),
|
2296 |
+
# 'sync_cat' => __( 'Sync products categories (display type, thumbnail):', 'woocommerce-multilingual' ),
|
2297 |
+
|
2298 |
+
msgid "Sync products \"gallery images\":"
|
2299 |
+
msgstr ""
|
2300 |
+
|
2301 |
+
# 'sync_gallery' => __( 'Sync products "gallery images":', 'woocommerce-multilingual' ),
|
2302 |
+
# 'sync_cat' => __( 'Sync products categories (display type, thumbnail):', 'woocommerce-multilingual' ),
|
2303 |
+
# 'dup_terms' => __( 'Duplicate terms ( please select attribute ):', 'woocommerce-multilingual' ),
|
2304 |
+
|
2305 |
+
msgid "Sync products categories (display type, thumbnail):"
|
2306 |
+
msgstr ""
|
2307 |
+
|
2308 |
+
# 'sync_cat' => __( 'Sync products categories (display type, thumbnail):', 'woocommerce-multilingual' ),
|
2309 |
+
# 'dup_terms' => __( 'Duplicate terms ( please select attribute ):', 'woocommerce-multilingual' ),
|
2310 |
+
# 'none' => __( 'none', 'woocommerce-multilingual' ),
|
2311 |
+
|
2312 |
+
msgid "Duplicate terms ( please select attribute ):"
|
2313 |
+
msgstr ""
|
2314 |
+
|
2315 |
+
# 'dup_terms' => __( 'Duplicate terms ( please select attribute ):', 'woocommerce-multilingual' ),
|
2316 |
+
# 'none' => __( 'none', 'woocommerce-multilingual' ),
|
2317 |
+
# 'start' => __( 'Start', 'woocommerce-multilingual' ),
|
2318 |
+
|
2319 |
+
msgid "none"
|
2320 |
+
msgstr ""
|
2321 |
+
|
2322 |
+
# 'none' => __( 'none', 'woocommerce-multilingual' ),
|
2323 |
+
# 'start' => __( 'Start', 'woocommerce-multilingual' ),
|
2324 |
+
# 'delete_terms' => __( 'Fix product_type taxonomy terms', 'woocommerce-multilingual' ),
|
2325 |
+
|
2326 |
+
msgid "Start"
|
2327 |
+
msgstr ""
|
2328 |
+
|
2329 |
+
# 'start' => __( 'Start', 'woocommerce-multilingual' ),
|
2330 |
+
# 'delete_terms' => __( 'Fix product_type taxonomy terms', 'woocommerce-multilingual' ),
|
2331 |
+
# 'sync_stock' => __( 'Sync product stock quantity and status ( synchronizing min stock between translations )', 'woocommerce-multilingual' ),
|
2332 |
+
|
2333 |
+
msgid "Fix product_type taxonomy terms"
|
2334 |
+
msgstr ""
|
2335 |
+
|
2336 |
+
# 'delete_terms' => __( 'Fix product_type taxonomy terms', 'woocommerce-multilingual' ),
|
2337 |
+
# 'sync_stock' => __( 'Sync product stock quantity and status ( synchronizing min stock between translations )', 'woocommerce-multilingual' ),
|
2338 |
+
# 'product_type_fix_done' => __( 'Done!', 'woocommerce-multilingual' )
|
2339 |
+
|
2340 |
+
msgid "Sync product stock quantity and status ( synchronizing min stock between translations )"
|
2341 |
+
msgstr ""
|
2342 |
+
|
2343 |
+
# 'sync_stock' => __( 'Sync product stock quantity and status ( synchronizing min stock between translations )', 'woocommerce-multilingual' ),
|
2344 |
+
# 'product_type_fix_done' => __( 'Done!', 'woocommerce-multilingual' )
|
2345 |
+
# ),
|
2346 |
+
|
2347 |
+
msgid "Done!"
|
2348 |
+
msgstr ""
|
2349 |
+
|
2350 |
+
# 'strings' => array(
|
2351 |
+
# 'notice' => __( 'This page allows you to translate all strings that are being used by WooCommerce in building different type of urls. Translating them enables you to have fully localized urls that match the language of the pages.', 'woocommerce-multilingual' ),
|
2352 |
+
# 'notice_defaults' => sprintf( __( 'You can enter or edit your default values on the %sPermalinks settings%s page or, for the endpoints, on the WooCommerce %sAccount settings%s page.',
|
2353 |
+
|
2354 |
+
msgid "This page allows you to translate all strings that are being used by WooCommerce in building different type of urls. Translating them enables you to have fully localized urls that match the language of the pages."
|
2355 |
+
msgstr ""
|
2356 |
+
|
2357 |
+
# 'notice' => __( 'This page allows you to translate all strings that are being used by WooCommerce in building different type of urls. Translating them enables you to have fully localized urls that match the language of the pages.', 'woocommerce-multilingual' ),
|
2358 |
+
# 'notice_defaults' => sprintf( __( 'You can enter or edit your default values on the %sPermalinks settings%s page or, for the endpoints, on the WooCommerce %sAccount settings%s page.',
|
2359 |
+
# 'woocommerce-multilingual' ),
|
2360 |
+
|
2361 |
+
msgid "You can enter or edit your default values on the %sPermalinks settings%s page or, for the endpoints, on the WooCommerce %sAccount settings%s page."
|
2362 |
+
msgstr ""
|
2363 |
+
|
2364 |
+
# ),
|
2365 |
+
# 'perm_settings' => '<a href="'.admin_url('options-permalink.php').'" >' .__( 'permalinks settings', 'woocommerce-multilingual' ).'</a>',
|
2366 |
+
# 'account_settings' => '<a href="admin.php?page=wc-settings&tab=account" >'.__( 'Account settings', 'woocommerce-multilingual' ).'</a>',
|
2367 |
+
|
2368 |
+
msgid "permalinks settings"
|
2369 |
+
msgstr ""
|
2370 |
+
|
2371 |
+
# 'perm_settings' => '<a href="'.admin_url('options-permalink.php').'" >' .__( 'permalinks settings', 'woocommerce-multilingual' ).'</a>',
|
2372 |
+
# 'account_settings' => '<a href="admin.php?page=wc-settings&tab=account" >'.__( 'Account settings', 'woocommerce-multilingual' ).'</a>',
|
2373 |
+
# 'slug_type' => __( 'Slug type', 'woocommerce-multilingual' ),
|
2374 |
+
|
2375 |
+
msgid "Account settings"
|
2376 |
+
msgstr ""
|
2377 |
+
|
2378 |
+
# 'account_settings' => '<a href="admin.php?page=wc-settings&tab=account" >'.__( 'Account settings', 'woocommerce-multilingual' ).'</a>',
|
2379 |
+
# 'slug_type' => __( 'Slug type', 'woocommerce-multilingual' ),
|
2380 |
+
# 'orig_slug' => __( 'Original Slug', 'woocommerce-multilingual' ),
|
2381 |
+
|
2382 |
+
msgid "Slug type"
|
2383 |
+
msgstr ""
|
2384 |
+
|
2385 |
+
# 'slug_type' => __( 'Slug type', 'woocommerce-multilingual' ),
|
2386 |
+
# 'orig_slug' => __( 'Original Slug', 'woocommerce-multilingual' ),
|
2387 |
+
# 'shop' => __( 'Shop page', 'woocommerce-multilingual' ),
|
2388 |
+
|
2389 |
+
msgid "Original Slug"
|
2390 |
+
msgstr ""
|
2391 |
+
|
2392 |
+
# 'orig_slug' => __( 'Original Slug', 'woocommerce-multilingual' ),
|
2393 |
+
# 'shop' => __( 'Shop page', 'woocommerce-multilingual' ),
|
2394 |
+
# 'product' => __( 'Product base', 'woocommerce-multilingual' ),
|
2395 |
+
|
2396 |
+
msgid "Shop page"
|
2397 |
+
msgstr ""
|
2398 |
+
|
2399 |
+
# 'shop' => __( 'Shop page', 'woocommerce-multilingual' ),
|
2400 |
+
# 'product' => __( 'Product base', 'woocommerce-multilingual' ),
|
2401 |
+
# 'category' => __( 'Product category base', 'woocommerce-multilingual' ),
|
2402 |
+
|
2403 |
+
msgid "Product base"
|
2404 |
+
msgstr ""
|
2405 |
+
|
2406 |
+
# 'product' => __( 'Product base', 'woocommerce-multilingual' ),
|
2407 |
+
# 'category' => __( 'Product category base', 'woocommerce-multilingual' ),
|
2408 |
+
# 'tag' => __( 'Product tag base', 'woocommerce-multilingual' ),
|
2409 |
+
|
2410 |
+
msgid "Product category base"
|
2411 |
+
msgstr ""
|
2412 |
+
|
2413 |
+
# 'category' => __( 'Product category base', 'woocommerce-multilingual' ),
|
2414 |
+
# 'tag' => __( 'Product tag base', 'woocommerce-multilingual' ),
|
2415 |
+
# 'attr' => __( 'Product attribute base', 'woocommerce-multilingual' ),
|
2416 |
+
|
2417 |
+
msgid "Product tag base"
|
2418 |
+
msgstr ""
|
2419 |
+
|
2420 |
+
# 'tag' => __( 'Product tag base', 'woocommerce-multilingual' ),
|
2421 |
+
# 'attr' => __( 'Product attribute base', 'woocommerce-multilingual' ),
|
2422 |
+
# 'endpoint' => __( 'Endpoint: %s', 'woocommerce-multilingual' ),
|
2423 |
+
|
2424 |
+
msgid "Product attribute base"
|
2425 |
+
msgstr ""
|
2426 |
+
|
2427 |
+
# 'endpoint' => __( 'Endpoint: %s', 'woocommerce-multilingual' ),
|
2428 |
+
# 'attribute_slug' => __( 'Attribute slug: %s', 'woocommerce-multilingual' ),
|
2429 |
+
# ),
|
2430 |
+
|
2431 |
+
msgid "Attribute slug: %s"
|
2432 |
+
msgstr ""
|
2433 |
+
|
2434 |
+
# 'strings' => array(
|
2435 |
+
# 'orig' => __( 'Original', 'woocommerce-multilingual' ),
|
2436 |
+
# 'trnsl_to' => __( 'Translation to', 'woocommerce-multilingual' ),
|
2437 |
+
|
2438 |
+
msgid "Original"
|
2439 |
+
msgstr ""
|
2440 |
+
|
2441 |
+
# 'orig' => __( 'Original', 'woocommerce-multilingual' ),
|
2442 |
+
# 'trnsl_to' => __( 'Translation to', 'woocommerce-multilingual' ),
|
2443 |
+
# 'cancel' => __( 'Cancel', 'woocommerce-multilingual' ),
|
2444 |
+
|
2445 |
+
msgid "Translation to"
|
2446 |
+
msgstr ""
|
2447 |
+
|
2448 |
+
# 'trnsl_to' => __( 'Translation to', 'woocommerce-multilingual' ),
|
2449 |
+
# 'cancel' => __( 'Cancel', 'woocommerce-multilingual' ),
|
2450 |
+
# 'save' => __( 'Save', 'woocommerce-multilingual' )
|
2451 |
+
|
2452 |
+
msgid "Cancel"
|
2453 |
+
msgstr ""
|
2454 |
+
|
2455 |
+
# 'cancel' => __( 'Cancel', 'woocommerce-multilingual' ),
|
2456 |
+
# 'save' => __( 'Save', 'woocommerce-multilingual' )
|
2457 |
+
# )
|
2458 |
+
|
2459 |
+
msgid "Save"
|
2460 |
+
msgstr ""
|
2461 |
+
|
2462 |
+
# $args['original_base_value'] = urldecode(get_post($original_shop_id)->post_name);
|
2463 |
+
# $args['label_name'] = __('Product Shop Base', 'woocommerce-multilingual');
|
2464 |
+
# }else{
|
2465 |
+
|
2466 |
+
msgid "Product Shop Base"
|
2467 |
+
msgstr ""
|
2468 |
+
|
2469 |
+
# $empty_value->attribute_name = '';
|
2470 |
+
# $empty_value->attribute_label = __( '--Attribute--', 'woocommerce-multilingual' );
|
2471 |
+
# array_unshift( $product_attributes, $empty_value );
|
2472 |
+
|
2473 |
+
msgid "--Attribute--"
|
2474 |
+
msgstr ""
|
2475 |
+
|
2476 |
+
# 'strings' => array(
|
2477 |
+
# 'no_attributes' => __( 'There are no translatable product attributes defined', 'woocommerce-multilingual' ),
|
2478 |
+
# 'select_label' => __('Select the attribute to translate: ', 'woocommerce-multilingual'),
|
2479 |
+
|
2480 |
+
msgid "There are no translatable product attributes defined"
|
2481 |
+
msgstr ""
|
2482 |
+
|
2483 |
+
# 'no_attributes' => __( 'There are no translatable product attributes defined', 'woocommerce-multilingual' ),
|
2484 |
+
# 'select_label' => __('Select the attribute to translate: ', 'woocommerce-multilingual'),
|
2485 |
+
# 'loading' => __( 'Loading ...', 'woocommerce-multilingual' )
|
2486 |
+
|
2487 |
+
msgid "Select the attribute to translate: "
|
2488 |
+
msgstr ""
|
2489 |
+
|
2490 |
+
# 'select_label' => __('Select the attribute to translate: ', 'woocommerce-multilingual'),
|
2491 |
+
# 'loading' => __( 'Loading ...', 'woocommerce-multilingual' )
|
2492 |
+
# ),
|
2493 |
+
|
2494 |
+
msgid "Loading ..."
|
2495 |
+
msgstr ""
|
2496 |
+
|
2497 |
+
# 'strings' => array(
|
2498 |
+
# 'label' => __( 'Translatable?', 'woocommerce-multilingual' ),
|
2499 |
+
# 'description' => __( 'Enable this if you want to translate attribute values with Woocommerce Multilingual', 'woocommerce-multilingual' ),
|
2500 |
+
|
2501 |
+
msgid "Translatable?"
|
2502 |
+
msgstr ""
|
2503 |
+
|
2504 |
+
# 'label' => __( 'Translatable?', 'woocommerce-multilingual' ),
|
2505 |
+
# 'description' => __( 'Enable this if you want to translate attribute values with Woocommerce Multilingual', 'woocommerce-multilingual' ),
|
2506 |
+
# 'notice' => __( 'Existing translations and variations associated will be deleted.', 'woocommerce-multilingual' )
|
2507 |
+
|
2508 |
+
msgid "Enable this if you want to translate attribute values with Woocommerce Multilingual"
|
2509 |
+
msgstr ""
|
2510 |
+
|
2511 |
+
# 'description' => __( 'Enable this if you want to translate attribute values with Woocommerce Multilingual', 'woocommerce-multilingual' ),
|
2512 |
+
# 'notice' => __( 'Existing translations and variations associated will be deleted.', 'woocommerce-multilingual' )
|
2513 |
+
# )
|
2514 |
+
|
2515 |
+
msgid "Existing translations and variations associated will be deleted."
|
2516 |
+
msgstr ""
|
2517 |
+
|
2518 |
+
# 'products' => $this->get_removed_products(),
|
2519 |
+
# 'title' => sprintf( __( 'Products removed after switching to %s:', 'woocommerce-multilingual'), $switched_to ),
|
2520 |
+
# 'clear' => __( 'Clear list', 'woocommerce-multilingual'),
|
2521 |
+
|
2522 |
+
msgid "Products removed after switching to %s:"
|
2523 |
+
msgstr ""
|
2524 |
+
|
2525 |
+
# 'title' => sprintf( __( 'Products removed after switching to %s:', 'woocommerce-multilingual'), $switched_to ),
|
2526 |
+
# 'clear' => __( 'Clear list', 'woocommerce-multilingual'),
|
2527 |
+
# 'nonce' => wp_create_nonce( 'wcml_clear_removed_items' ),
|
2528 |
+
|
2529 |
+
msgid "Clear list"
|
2530 |
+
msgstr ""
|
2531 |
+
|
2532 |
+
# $empty_value->name = '';
|
2533 |
+
# $empty_value->label = __( '--Taxonomy--', 'woocommerce-multilingual' );
|
2534 |
+
# array_unshift( $this->custom_taxonomies, $empty_value );
|
2535 |
+
|
2536 |
+
msgid "--Taxonomy--"
|
2537 |
+
msgstr ""
|
2538 |
+
|
2539 |
+
# 'strings' => array(
|
2540 |
+
# 'no_taxonomies' => __( 'There are no translatable product custom taxonomies defined', 'woocommerce-multilingual' ),
|
2541 |
+
# 'select_label' => __('Select the taxonomy to translate: ', 'woocommerce-multilingual'),
|
2542 |
+
|
2543 |
+
msgid "There are no translatable product custom taxonomies defined"
|
2544 |
+
msgstr ""
|
2545 |
+
|
2546 |
+
# 'no_taxonomies' => __( 'There are no translatable product custom taxonomies defined', 'woocommerce-multilingual' ),
|
2547 |
+
# 'select_label' => __('Select the taxonomy to translate: ', 'woocommerce-multilingual'),
|
2548 |
+
# 'loading' => __( 'Loading ...', 'woocommerce-multilingual' )
|
2549 |
+
|
2550 |
+
msgid "Select the taxonomy to translate: "
|
2551 |
+
msgstr ""
|
2552 |
+
|
2553 |
+
# 'title' => __('WooCommerce Multilingual', 'woocommerce-multilingual'),
|
2554 |
+
# 'untranslated_terms'=> __('You have untranslated terms!', 'woocommerce-multilingual')
|
2555 |
+
# ),
|
2556 |
+
|
2557 |
+
msgid "You have untranslated terms!"
|
2558 |
+
msgstr ""
|
2559 |
+
|
2560 |
+
# 'products' => array(
|
2561 |
+
# 'title' => __('Products', 'woocommerce-multilingual'),
|
2562 |
+
# 'url' => admin_url('admin.php?page=wpml-wcml'),
|
2563 |
+
|
2564 |
+
msgid "Products"
|
2565 |
+
msgstr ""
|
2566 |
+
|
2567 |
+
# 'product_cat' => array(
|
2568 |
+
# 'name' => __('Categories', 'woocommerce-multilingual'),
|
2569 |
+
# 'title' => !$this->woocommerce_wpml->terms->is_fully_translated( 'product_cat' ) ? __('You have untranslated terms!', 'woocommerce-multilingual') : '',
|
2570 |
+
|
2571 |
+
msgid "Categories"
|
2572 |
+
msgstr ""
|
2573 |
+
|
2574 |
+
# 'product_tag' => array(
|
2575 |
+
# 'name' => __('Tags', 'woocommerce-multilingual'),
|
2576 |
+
# 'title' => !$this->woocommerce_wpml->terms->is_fully_translated( 'product_tag' ) ? __('You have untranslated terms!', 'woocommerce-multilingual') : '',
|
2577 |
+
|
2578 |
+
msgid "Tags"
|
2579 |
+
msgstr ""
|
2580 |
+
|
2581 |
+
# 'custom_taxonomies' => array(
|
2582 |
+
# 'name' => __('Custom Taxonomies', 'woocommerce-multilingual'),
|
2583 |
+
# 'active' => $current_tab == 'custom-taxonomies' ? 'nav-tab-active':'',
|
2584 |
+
|
2585 |
+
msgid "Custom Taxonomies"
|
2586 |
+
msgstr ""
|
2587 |
+
|
2588 |
+
# 'attributes' => array(
|
2589 |
+
# 'name' => __('Attributes', 'woocommerce-multilingual'),
|
2590 |
+
# 'active' => $current_tab == 'product-attributes' ? 'nav-tab-active':'',
|
2591 |
+
|
2592 |
+
msgid "Attributes"
|
2593 |
+
msgstr ""
|
2594 |
+
|
2595 |
+
# 'shipping_classes' => array(
|
2596 |
+
# 'name' => __('Shipping Classes', 'woocommerce-multilingual'),
|
2597 |
+
# 'title' => !$this->woocommerce_wpml->terms->is_fully_translated( 'product_shipping_class' ) ? __('You have untranslated terms!', 'woocommerce-multilingual') : '',
|
2598 |
+
|
2599 |
+
msgid "Shipping Classes"
|
2600 |
+
msgstr ""
|
2601 |
+
|
2602 |
+
# 'settings' => array(
|
2603 |
+
# 'name' => __( 'Settings', 'woocommerce-multilingual' ),
|
2604 |
+
# 'active' => $current_tab == 'settings' ? 'nav-tab-active':'',
|
2605 |
+
|
2606 |
+
msgid "Settings"
|
2607 |
+
msgstr ""
|
2608 |
+
|
2609 |
+
# 'slugs' => array(
|
2610 |
+
# 'name' => __( 'Store URLs', 'woocommerce-multilingual' ),
|
2611 |
+
# 'active' => $current_tab == 'slugs' ? 'nav-tab-active':'',
|
2612 |
+
|
2613 |
+
msgid "Store URLs"
|
2614 |
+
msgstr ""
|
2615 |
+
|
2616 |
+
# 'status' => array(
|
2617 |
+
# 'name' => __( 'Status', 'woocommerce-multilingual' ),
|
2618 |
+
# 'active' => $current_tab == 'status' ? 'nav-tab-active':'',
|
2619 |
+
|
2620 |
+
msgid "Status"
|
2621 |
+
msgstr ""
|
2622 |
+
|
2623 |
+
# 'on' => !isset( $this->woocommerce_wpml->settings['rate-block'] ),
|
2624 |
+
# 'message' => sprintf(__('Thank you for using %sWooCommerce Multilingual%s! You can express your love and
|
2625 |
+
# support by %s rating our plugin and saying that %sit works%s for you.', 'woocommerce-wpml'),
|
2626 |
+
|
2627 |
+
msgid "Thank you for using %sWooCommerce Multilingual%s! You can express your love and\n support by %s rating our plugin and saying that %sit works%s for you."
|
2628 |
+
msgstr ""
|
2629 |
+
|
2630 |
+
# ),
|
2631 |
+
# 'hide_text' => __('Hide','woocommerce-multilingual'),
|
2632 |
+
# 'nonce' => wp_nonce_field('wcml_settings', 'wcml_settings_nonce', true, false)
|
2633 |
+
|
2634 |
+
msgid "Hide"
|
2635 |
+
msgstr ""
|
2636 |
+
|
2637 |
+
# 'strings' => array(
|
2638 |
+
# 'use_custom' => __( 'Use custom settings for translations download files', 'woocommerce-multilingual' ),
|
2639 |
+
# 'use_same' => __( 'Use the same files for translations', 'woocommerce-multilingual' ),
|
2640 |
+
|
2641 |
+
msgid "Use custom settings for translations download files"
|
2642 |
+
msgstr ""
|
2643 |
+
|
2644 |
+
# 'use_custom' => __( 'Use custom settings for translations download files', 'woocommerce-multilingual' ),
|
2645 |
+
# 'use_same' => __( 'Use the same files for translations', 'woocommerce-multilingual' ),
|
2646 |
+
# 'separate' => __( 'Add separate download files for translations when you translate this product', 'woocommerce-multilingual' )
|
2647 |
+
|
2648 |
+
msgid "Use the same files for translations"
|
2649 |
+
msgstr ""
|
2650 |
+
|
2651 |
+
# 'use_same' => __( 'Use the same files for translations', 'woocommerce-multilingual' ),
|
2652 |
+
# 'separate' => __( 'Add separate download files for translations when you translate this product', 'woocommerce-multilingual' )
|
2653 |
+
# )
|
2654 |
+
|
2655 |
+
msgid "Add separate download files for translations when you translate this product"
|
2656 |
+
msgstr ""
|
2657 |
+
|
2658 |
+
# $this->custom_prices_fields = apply_filters( 'wcml_custom_prices_fields', array( '_regular_price', '_sale_price' ), $product_id );
|
2659 |
+
# $this->custom_prices_fields_labels = apply_filters( 'wcml_custom_prices_fields_labels', array( '_regular_price' => __( 'Regular Price', 'woocommerce-multilingual' ), '_sale_price' => __( 'Sale Price', 'woocommerce-multilingual' ) ), $product_id );
|
2660 |
+
# }
|
2661 |
+
|
2662 |
+
msgid "Regular Price"
|
2663 |
+
msgstr ""
|
2664 |
+
|
2665 |
+
# $this->custom_prices_fields = apply_filters( 'wcml_custom_prices_fields', array( '_regular_price', '_sale_price' ), $product_id );
|
2666 |
+
# $this->custom_prices_fields_labels = apply_filters( 'wcml_custom_prices_fields_labels', array( '_regular_price' => __( 'Regular Price', 'woocommerce-multilingual' ), '_sale_price' => __( 'Sale Price', 'woocommerce-multilingual' ) ), $product_id );
|
2667 |
+
# }
|
2668 |
+
|
2669 |
+
msgid "Sale Price"
|
2670 |
+
msgstr ""
|
2671 |
+
|
2672 |
+
# 'strings' => apply_filters( 'wcml_custom_prices_strings', array(
|
2673 |
+
# 'not_set' => sprintf( __( 'Multi-currency is enabled but no secondary currencies have been set. %sAdd secondary currencies%s.',
|
2674 |
+
# 'woocommerce-multilingual' ), '<a href="' . admin_url('admin.php?page=wpml-wcml&tab=multi-currency') . '">', '</a>' ),
|
2675 |
+
|
2676 |
+
msgid "Multi-currency is enabled but no secondary currencies have been set. %sAdd secondary currencies%s."
|
2677 |
+
msgstr ""
|
2678 |
+
|
2679 |
+
# 'woocommerce-multilingual' ), '<a href="' . admin_url('admin.php?page=wpml-wcml&tab=multi-currency') . '">', '</a>' ),
|
2680 |
+
# 'calc_auto' => __( 'Calculate prices in other currencies automatically', 'woocommerce-multilingual' ),
|
2681 |
+
# 'see_prices' => __( 'Click to see the prices in the other currencies as they are currently shown on the front end.', 'woocommerce-multilingual' ),
|
2682 |
+
|
2683 |
+
msgid "Calculate prices in other currencies automatically"
|
2684 |
+
msgstr ""
|
2685 |
+
|
2686 |
+
# 'calc_auto' => __( 'Calculate prices in other currencies automatically', 'woocommerce-multilingual' ),
|
2687 |
+
# 'see_prices' => __( 'Click to see the prices in the other currencies as they are currently shown on the front end.', 'woocommerce-multilingual' ),
|
2688 |
+
# 'show' => __( 'Show', 'woocommerce-multilingual' ),
|
2689 |
+
|
2690 |
+
msgid "Click to see the prices in the other currencies as they are currently shown on the front end."
|
2691 |
+
msgstr ""
|
2692 |
+
|
2693 |
+
# 'see_prices' => __( 'Click to see the prices in the other currencies as they are currently shown on the front end.', 'woocommerce-multilingual' ),
|
2694 |
+
# 'show' => __( 'Show', 'woocommerce-multilingual' ),
|
2695 |
+
# 'hide' => __( 'Hide', 'woocommerce-multilingual' ),
|
2696 |
+
|
2697 |
+
msgid "Show"
|
2698 |
+
msgstr ""
|
2699 |
+
|
2700 |
+
# 'hide' => __( 'Hide', 'woocommerce-multilingual' ),
|
2701 |
+
# 'set_manually' => __( 'Set prices in other currencies manually', 'woocommerce-multilingual' ),
|
2702 |
+
# 'enter_prices' => __( 'Enter prices in other currencies', 'woocommerce-multilingual' ),
|
2703 |
+
|
2704 |
+
msgid "Set prices in other currencies manually"
|
2705 |
+
msgstr ""
|
2706 |
+
|
2707 |
+
# 'set_manually' => __( 'Set prices in other currencies manually', 'woocommerce-multilingual' ),
|
2708 |
+
# 'enter_prices' => __( 'Enter prices in other currencies', 'woocommerce-multilingual' ),
|
2709 |
+
# 'hide_prices' => __( 'Hide prices in other currencies', 'woocommerce-multilingual' ),
|
2710 |
+
|
2711 |
+
msgid "Enter prices in other currencies"
|
2712 |
+
msgstr ""
|
2713 |
+
|
2714 |
+
# 'enter_prices' => __( 'Enter prices in other currencies', 'woocommerce-multilingual' ),
|
2715 |
+
# 'hide_prices' => __( 'Hide prices in other currencies', 'woocommerce-multilingual' ),
|
2716 |
+
# 'det_auto' => __( 'Determined automatically based on exchange rate', 'woocommerce-multilingual' ),
|
2717 |
+
|
2718 |
+
msgid "Hide prices in other currencies"
|
2719 |
+
msgstr ""
|
2720 |
+
|
2721 |
+
# 'hide_prices' => __( 'Hide prices in other currencies', 'woocommerce-multilingual' ),
|
2722 |
+
# 'det_auto' => __( 'Determined automatically based on exchange rate', 'woocommerce-multilingual' ),
|
2723 |
+
# '_regular_price' => __( 'Regular Price', 'woocommerce-multilingual' ),
|
2724 |
+
|
2725 |
+
msgid "Determined automatically based on exchange rate"
|
2726 |
+
msgstr ""
|
2727 |
+
|
2728 |
+
# '_sale_price' => __( 'Sale Price', 'woocommerce-multilingual' ),
|
2729 |
+
# 'schedule' => __( 'Schedule', 'woocommerce-multilingual' ),
|
2730 |
+
# 'same_as_def' => __( 'Same as default currency', 'woocommerce-multilingual' ),
|
2731 |
+
|
2732 |
+
msgid "Schedule"
|
2733 |
+
msgstr ""
|
2734 |
+
|
2735 |
+
# 'schedule' => __( 'Schedule', 'woocommerce-multilingual' ),
|
2736 |
+
# 'same_as_def' => __( 'Same as default currency', 'woocommerce-multilingual' ),
|
2737 |
+
# 'set_dates' => __( 'Set dates', 'woocommerce-multilingual' ),
|
2738 |
+
|
2739 |
+
msgid "Same as default currency"
|
2740 |
+
msgstr ""
|
2741 |
+
|
2742 |
+
# 'same_as_def' => __( 'Same as default currency', 'woocommerce-multilingual' ),
|
2743 |
+
# 'set_dates' => __( 'Set dates', 'woocommerce-multilingual' ),
|
2744 |
+
# 'collapse' => __( 'Collapse', 'woocommerce-multilingual' ),
|
2745 |
+
|
2746 |
+
msgid "Set dates"
|
2747 |
+
msgstr ""
|
2748 |
+
|
2749 |
+
# 'set_dates' => __( 'Set dates', 'woocommerce-multilingual' ),
|
2750 |
+
# 'collapse' => __( 'Collapse', 'woocommerce-multilingual' ),
|
2751 |
+
# 'from' => __( 'From…', 'woocommerce-multilingual' ),
|
2752 |
+
|
2753 |
+
msgid "Collapse"
|
2754 |
+
msgstr ""
|
2755 |
+
|
2756 |
+
# 'collapse' => __( 'Collapse', 'woocommerce-multilingual' ),
|
2757 |
+
# 'from' => __( 'From…', 'woocommerce-multilingual' ),
|
2758 |
+
# 'to' => __( 'To…', 'woocommerce-multilingual' ),
|
2759 |
+
|
2760 |
+
msgid "From…"
|
2761 |
+
msgstr ""
|
2762 |
+
|
2763 |
+
# 'from' => __( 'From…', 'woocommerce-multilingual' ),
|
2764 |
+
# 'to' => __( 'To…', 'woocommerce-multilingual' ),
|
2765 |
+
# 'enter_price' => __( 'Please enter in a value less than the regular price', 'woocommerce-multilingual' ) ),
|
2766 |
+
|
2767 |
+
msgid "To…"
|
2768 |
+
msgstr ""
|
2769 |
+
|
2770 |
+
# 'to' => __( 'To…', 'woocommerce-multilingual' ),
|
2771 |
+
# 'enter_price' => __( 'Please enter in a value less than the regular price', 'woocommerce-multilingual' ) ),
|
2772 |
+
# $this->product_id
|
2773 |
+
|
2774 |
+
msgid "Please enter in a value less than the regular price"
|
2775 |
+
msgstr ""
|
2776 |
+
|
2777 |
+
# 'headers' => array(
|
2778 |
+
# 'enable_disable' => __( 'Enable/disable', 'woocommerce-multilingual' ),
|
2779 |
+
# 'currencies' => __( 'Currencies', 'woocommerce-multilingual' ),
|
2780 |
+
|
2781 |
+
msgid "Enable/disable"
|
2782 |
+
msgstr ""
|
2783 |
+
|
2784 |
+
# 'enable_disable' => __( 'Enable/disable', 'woocommerce-multilingual' ),
|
2785 |
+
# 'currencies' => __( 'Currencies', 'woocommerce-multilingual' ),
|
2786 |
+
# ),
|
2787 |
+
|
2788 |
+
msgid "Currencies"
|
2789 |
+
msgstr ""
|
2790 |
+
|
2791 |
+
# ),
|
2792 |
+
# 'add_currency_button' => __( 'Add currency', 'woocommerce-multilingual' ),
|
2793 |
+
# 'currencies_table' => array(
|
2794 |
+
|
2795 |
+
msgid "Add currency"
|
2796 |
+
msgstr ""
|
2797 |
+
|
2798 |
+
# 'currencies_table' => array(
|
2799 |
+
# 'head_currency' => __('Currency', 'woocommerce-multilingual'),
|
2800 |
+
# 'head_rate' => __('Rate', 'woocommerce-multilingual'),
|
2801 |
+
|
2802 |
+
msgid "Currency"
|
2803 |
+
msgstr ""
|
2804 |
+
|
2805 |
+
# 'head_currency' => __('Currency', 'woocommerce-multilingual'),
|
2806 |
+
# 'head_rate' => __('Rate', 'woocommerce-multilingual'),
|
2807 |
+
# 'default' => __( 'default', 'woocommerce-multilingual' ),
|
2808 |
+
|
2809 |
+
msgid "Rate"
|
2810 |
+
msgstr ""
|
2811 |
+
|
2812 |
+
# 'head_rate' => __('Rate', 'woocommerce-multilingual'),
|
2813 |
+
# 'default' => __( 'default', 'woocommerce-multilingual' ),
|
2814 |
+
# 'edit' => __( 'Edit', 'woocommerce-multilingual' ),
|
2815 |
+
|
2816 |
+
msgid "default"
|
2817 |
+
msgstr ""
|
2818 |
+
|
2819 |
+
# 'default' => __( 'default', 'woocommerce-multilingual' ),
|
2820 |
+
# 'edit' => __( 'Edit', 'woocommerce-multilingual' ),
|
2821 |
+
# 'default_currency' => __( 'Default currency', 'woocommerce-multilingual' ),
|
2822 |
+
|
2823 |
+
msgid "Edit"
|
2824 |
+
msgstr ""
|
2825 |
+
|
2826 |
+
# 'edit' => __( 'Edit', 'woocommerce-multilingual' ),
|
2827 |
+
# 'default_currency' => __( 'Default currency', 'woocommerce-multilingual' ),
|
2828 |
+
# 'default_cur_tip' => __( 'Switch to this currency when switching language in the front-end', 'woocommerce-multilingual' ),
|
2829 |
+
|
2830 |
+
msgid "Default currency"
|
2831 |
+
msgstr ""
|
2832 |
+
|
2833 |
+
# 'default_currency' => __( 'Default currency', 'woocommerce-multilingual' ),
|
2834 |
+
# 'default_cur_tip' => __( 'Switch to this currency when switching language in the front-end', 'woocommerce-multilingual' ),
|
2835 |
+
# 'keep_currency' => __( 'Keep', 'woocommerce-multilingual' ),
|
2836 |
+
|
2837 |
+
msgid "Switch to this currency when switching language in the front-end"
|
2838 |
+
msgstr ""
|
2839 |
+
|
2840 |
+
# 'default_cur_tip' => __( 'Switch to this currency when switching language in the front-end', 'woocommerce-multilingual' ),
|
2841 |
+
# 'keep_currency' => __( 'Keep', 'woocommerce-multilingual' ),
|
2842 |
+
# 'delete' => __( 'Delete', 'woocommerce-multilingual' ),
|
2843 |
+
|
2844 |
+
msgid "Keep"
|
2845 |
+
msgstr ""
|
2846 |
+
|
2847 |
+
# 'keep_currency' => __( 'Keep', 'woocommerce-multilingual' ),
|
2848 |
+
# 'delete' => __( 'Delete', 'woocommerce-multilingual' ),
|
2849 |
+
# 'help_title' => __( 'Currencies to display for each language', 'woocommerce-multilingual' ),
|
2850 |
+
|
2851 |
+
msgid "Delete"
|
2852 |
+
msgstr ""
|
2853 |
+
|
2854 |
+
# 'delete' => __( 'Delete', 'woocommerce-multilingual' ),
|
2855 |
+
# 'help_title' => __( 'Currencies to display for each language', 'woocommerce-multilingual' ),
|
2856 |
+
# 'enable_for' => __('Enable %s for %s', 'woocommerce-multilingual'),
|
2857 |
+
|
2858 |
+
msgid "Currencies to display for each language"
|
2859 |
+
msgstr ""
|
2860 |
+
|
2861 |
+
# 'help_title' => __( 'Currencies to display for each language', 'woocommerce-multilingual' ),
|
2862 |
+
# 'enable_for' => __('Enable %s for %s', 'woocommerce-multilingual'),
|
2863 |
+
# 'disable_for' => __('Disable %s for %s', 'woocommerce-multilingual')
|
2864 |
+
|
2865 |
+
msgid "Enable %s for %s"
|
2866 |
+
msgstr ""
|
2867 |
+
|
2868 |
+
# 'enable_for' => __('Enable %s for %s', 'woocommerce-multilingual'),
|
2869 |
+
# 'disable_for' => __('Disable %s for %s', 'woocommerce-multilingual')
|
2870 |
+
# )
|
2871 |
+
|
2872 |
+
msgid "Disable %s for %s"
|
2873 |
+
msgstr ""
|
2874 |
+
|
2875 |
+
# 'wc_currencies' => $this->wc_currencies,
|
2876 |
+
# 'positioned_price' => sprintf( __( ' (%s)', 'woocommerce-multilingual' ), $this->get_positioned_price( $this->wc_currency ) ) ,
|
2877 |
+
#
|
2878 |
+
|
2879 |
+
msgid " (%s)"
|
2880 |
msgstr ""
|
2881 |
|
2882 |
+
#
|
2883 |
+
# 'wc_currency_empty_warn' => sprintf(__('The multi-currency mode cannot be enabled as a specific currency was not set. Go to the %sWooCommerce settings%s page and select the default currency for your store.',
|
2884 |
+
# 'woocommerce-multilingual'), '<a href="' . admin_url('admin.php?page=wc-settings') . '">', '</a>'),
|
2885 |
|
2886 |
+
msgid "The multi-currency mode cannot be enabled as a specific currency was not set. Go to the %sWooCommerce settings%s page and select the default currency for your store."
|
2887 |
msgstr ""
|
2888 |
|
2889 |
+
# 'mco_disabled' => empty($wc_currency),
|
2890 |
+
# 'label_mco' => __( "Enable the multi-currency mode", 'woocommerce-multilingual' ),
|
2891 |
+
# 'label_mco_learn_url' => $this->tracking_link->generate( 'https://wpml.org/documentation/related-projects/woocommerce-multilingual/multi-currency-support-woocommerce/', 'multi-currency-support-woocommerce', 'documentation' ),
|
2892 |
|
2893 |
+
msgid "Enable the multi-currency mode"
|
2894 |
msgstr ""
|
2895 |
|
2896 |
+
# 'checked' => $this->woocommerce_wpml->settings['display_custom_prices'] == 1,
|
2897 |
+
# 'label' => __( 'Show only products with custom prices in secondary currencies', 'woocommerce-multilingual' ),
|
2898 |
+
# 'tip' => __( 'When this option is on, when you switch to a secondary currency on the front end, only the products with custom prices in that currency are being displayed. Products with prices determined based on the exchange rate are hidden.', 'woocommerce-multilingual' )
|
2899 |
|
2900 |
+
msgid "Show only products with custom prices in secondary currencies"
|
2901 |
msgstr ""
|
2902 |
|
2903 |
+
# 'label' => __( 'Show only products with custom prices in secondary currencies', 'woocommerce-multilingual' ),
|
2904 |
+
# 'tip' => __( 'When this option is on, when you switch to a secondary currency on the front end, only the products with custom prices in that currency are being displayed. Products with prices determined based on the exchange rate are hidden.', 'woocommerce-multilingual' )
|
2905 |
+
# ),
|
2906 |
|
2907 |
+
msgid "When this option is on, when you switch to a secondary currency on the front end, only the products with custom prices in that currency are being displayed. Products with prices determined based on the exchange rate are hidden."
|
2908 |
msgstr ""
|
2909 |
|
2910 |
+
# ),
|
2911 |
+
# 'submit' => __( 'Save changes', 'woocommerce-multilingual' ),
|
2912 |
+
# 'navigate_warn' => __( 'The changes you made will be lost if you navigate away from this page.', 'woocommerce-multilingual' ),
|
2913 |
|
2914 |
+
msgid "Save changes"
|
2915 |
msgstr ""
|
2916 |
|
2917 |
+
# 'submit' => __( 'Save changes', 'woocommerce-multilingual' ),
|
2918 |
+
# 'navigate_warn' => __( 'The changes you made will be lost if you navigate away from this page.', 'woocommerce-multilingual' ),
|
2919 |
+
# 'cur_lang_warn' => __( 'At least one currency must be enabled for this language!', 'woocommerce-multilingual' )
|
2920 |
|
2921 |
+
msgid "The changes you made will be lost if you navigate away from this page."
|
2922 |
msgstr ""
|
2923 |
|
2924 |
+
# 'navigate_warn' => __( 'The changes you made will be lost if you navigate away from this page.', 'woocommerce-multilingual' ),
|
2925 |
+
# 'cur_lang_warn' => __( 'At least one currency must be enabled for this language!', 'woocommerce-multilingual' )
|
2926 |
+
#
|
2927 |
|
2928 |
+
msgid "At least one currency must be enabled for this language!"
|
2929 |
msgstr ""
|
2930 |
|
2931 |
+
# 'headers' => array(
|
2932 |
+
# 'main' => __('Currency switcher options', 'woocommerce-multilingual'),
|
2933 |
+
# 'main_desc' => __('All currency switchers in your site are affected by the settings in this section.', 'woocommerce-multilingual'),
|
2934 |
|
2935 |
+
msgid "Currency switcher options"
|
2936 |
msgstr ""
|
2937 |
|
2938 |
+
# 'main' => __('Currency switcher options', 'woocommerce-multilingual'),
|
2939 |
+
# 'main_desc' => __('All currency switchers in your site are affected by the settings in this section.', 'woocommerce-multilingual'),
|
2940 |
+
# 'order' => __( 'Order of currencies', 'woocommerce-multilingual' ),
|
2941 |
|
2942 |
+
msgid "All currency switchers in your site are affected by the settings in this section."
|
2943 |
msgstr ""
|
2944 |
|
2945 |
+
# 'main_desc' => __('All currency switchers in your site are affected by the settings in this section.', 'woocommerce-multilingual'),
|
2946 |
+
# 'order' => __( 'Order of currencies', 'woocommerce-multilingual' ),
|
2947 |
+
# 'additional_css' => __('Additional CSS', 'woocommerce-multilingual'),
|
2948 |
|
2949 |
+
msgid "Order of currencies"
|
2950 |
msgstr ""
|
2951 |
|
2952 |
+
# 'order' => __( 'Order of currencies', 'woocommerce-multilingual' ),
|
2953 |
+
# 'additional_css' => __('Additional CSS', 'woocommerce-multilingual'),
|
2954 |
+
# 'widget' => __('Widget Currency Switcher', 'woocommerce-multilingual'),
|
2955 |
|
2956 |
+
msgid "Additional CSS"
|
2957 |
msgstr ""
|
2958 |
|
2959 |
+
# 'additional_css' => __('Additional CSS', 'woocommerce-multilingual'),
|
2960 |
+
# 'widget' => __('Widget Currency Switcher', 'woocommerce-multilingual'),
|
2961 |
+
# 'product_page' => __('Product page Currency Switcher', 'woocommerce-multilingual'),
|
2962 |
|
2963 |
+
msgid "Widget Currency Switcher"
|
2964 |
msgstr ""
|
2965 |
|
2966 |
+
# 'widget' => __('Widget Currency Switcher', 'woocommerce-multilingual'),
|
2967 |
+
# 'product_page' => __('Product page Currency Switcher', 'woocommerce-multilingual'),
|
2968 |
+
# 'preview' => __('Preview', 'woocommerce-multilingual'),
|
2969 |
|
2970 |
+
msgid "Product page Currency Switcher"
|
2971 |
msgstr ""
|
2972 |
|
2973 |
+
# 'product_page' => __('Product page Currency Switcher', 'woocommerce-multilingual'),
|
2974 |
+
# 'preview' => __('Preview', 'woocommerce-multilingual'),
|
2975 |
+
# 'position' => __('Position', 'woocommerce-multilingual'),
|
2976 |
|
2977 |
+
msgid "Preview"
|
2978 |
+
msgstr ""
|
2979 |
+
|
2980 |
+
# 'preview' => __('Preview', 'woocommerce-multilingual'),
|
2981 |
+
# 'position' => __('Position', 'woocommerce-multilingual'),
|
2982 |
+
# 'actions' => __('Actions', 'woocommerce-multilingual'),
|
2983 |
+
|
2984 |
+
msgid "Position"
|
2985 |
+
msgstr ""
|
2986 |
+
|
2987 |
+
# 'position' => __('Position', 'woocommerce-multilingual'),
|
2988 |
+
# 'actions' => __('Actions', 'woocommerce-multilingual'),
|
2989 |
+
# 'action' => __('Action', 'woocommerce-multilingual'),
|
2990 |
+
|
2991 |
+
msgid "Actions"
|
2992 |
+
msgstr ""
|
2993 |
+
|
2994 |
+
# 'actions' => __('Actions', 'woocommerce-multilingual'),
|
2995 |
+
# 'action' => __('Action', 'woocommerce-multilingual'),
|
2996 |
+
# 'delete' => __('Delete', 'woocommerce-multilingual'),
|
2997 |
+
|
2998 |
+
msgid "Action"
|
2999 |
+
msgstr ""
|
3000 |
+
|
3001 |
+
# 'delete' => __('Delete', 'woocommerce-multilingual'),
|
3002 |
+
# 'edit' => __('Edit currency switcher', 'woocommerce-multilingual'),
|
3003 |
+
# 'add_widget' => __('Add a new currency switcher to a widget area', 'woocommerce-multilingual'),
|
3004 |
+
|
3005 |
+
msgid "Edit currency switcher"
|
3006 |
msgstr ""
|
3007 |
|
3008 |
+
# 'edit' => __('Edit currency switcher', 'woocommerce-multilingual'),
|
3009 |
+
# 'add_widget' => __('Add a new currency switcher to a widget area', 'woocommerce-multilingual'),
|
3010 |
# ),
|
|
|
|
|
3011 |
|
3012 |
+
msgid "Add a new currency switcher to a widget area"
|
3013 |
msgstr ""
|
3014 |
|
3015 |
+
# 'available_sidebars' => $this->woocommerce_wpml->multi_currency->currency_switcher->get_available_sidebars(),
|
3016 |
+
# 'preview_text' => __( 'Currency switcher preview', 'woocommerce-multilingual' ),
|
3017 |
+
# 'order' => !isset( $this->woocommerce_wpml->settings['currencies_order'] ) ?
|
3018 |
|
3019 |
+
msgid "Currency switcher preview"
|
3020 |
+
msgstr ""
|
3021 |
+
|
3022 |
+
# 'delete_nonce' => wp_create_nonce( 'delete_currency_switcher' ),
|
3023 |
+
# 'order_tip' => __( 'Drag and drop the currencies to change their order', 'woocommerce-multilingual' ),
|
3024 |
+
# 'visibility_label' => __('Show a currency selector on the product page template', 'woocommerce-multilingual'),
|
3025 |
+
|
3026 |
+
msgid "Drag and drop the currencies to change their order"
|
3027 |
+
msgstr ""
|
3028 |
+
|
3029 |
+
# 'order_tip' => __( 'Drag and drop the currencies to change their order', 'woocommerce-multilingual' ),
|
3030 |
+
# 'visibility_label' => __('Show a currency selector on the product page template', 'woocommerce-multilingual'),
|
3031 |
+
# 'visibility_on' => isset($this->woocommerce_wpml->settings['currency_switcher_product_visibility']) ?
|
3032 |
+
|
3033 |
+
msgid "Show a currency selector on the product page template"
|
3034 |
+
msgstr ""
|
3035 |
+
|
3036 |
+
# if( $switcher_id == 'product'){
|
3037 |
+
# $dialog_title = __('Edit Product Currency Switcher', 'woocommerce-multilingual');
|
3038 |
+
# }elseif( $switcher_id == 'new_widget' ){
|
3039 |
+
|
3040 |
+
msgid "Edit Product Currency Switcher"
|
3041 |
+
msgstr ""
|
3042 |
+
|
3043 |
+
# }elseif( $switcher_id == 'new_widget' ){
|
3044 |
+
# $dialog_title = __('New Widget Area Currency Switcher', 'woocommerce-multilingual');
|
3045 |
+
# }else{
|
3046 |
+
|
3047 |
+
msgid "New Widget Area Currency Switcher"
|
3048 |
+
msgstr ""
|
3049 |
+
|
3050 |
+
# }else{
|
3051 |
+
# $dialog_title = sprintf( __('Edit %s Currency Switcher', 'woocommerce-multilingual'), $widget_currency_switchers[ $switcher_id ]['name'] );
|
3052 |
+
# }
|
3053 |
+
|
3054 |
+
msgid "Edit %s Currency Switcher"
|
3055 |
msgstr ""
|
3056 |
|
3057 |
# 'form' => array(
|
3070 |
|
3071 |
# 'label' => __( 'Exchange Rate', 'woocommerce-multilingual' ),
|
3072 |
# 'only_numeric' => __( 'Only numeric', 'woocommerce-multilingual' ),
|
3073 |
+
# 'min' => '0.01',
|
3074 |
|
3075 |
msgid "Only numeric"
|
3076 |
msgstr ""
|
3189 |
|
3190 |
# 'nearest' => __( 'Nearest', 'woocommerce-multilingual' ),
|
3191 |
# 'increment' => __( 'Increment for nearest integer', 'woocommerce-multilingual' ),
|
3192 |
+
#
|
3193 |
|
3194 |
msgid "Increment for nearest integer"
|
3195 |
msgstr ""
|
3196 |
|
3197 |
+
#
|
3198 |
# 'rounding_tooltip' => sprintf( __("Round the converted price to the closest integer. %se.g. 15.78 becomes 16.00", 'woocommerce-multilingual'), '<br />' ),
|
3199 |
# 'increment_tooltip' => sprintf( __('The resulting price will be an increment of this value after initial rounding.%se.g.:', 'woocommerce-multilingual'), '<br>' ) . '<br />' .
|
3200 |
|
3250 |
msgid "Autosubtract amount"
|
3251 |
msgstr ""
|
3252 |
|
3253 |
+
#
|
3254 |
+
# 'number_error' => __( 'Please enter a valid number', 'woocommerce-multilingual' ),
|
|
|
|
|
|
|
|
|
|
|
3255 |
# 'cancel' => __( 'Cancel', 'woocommerce-multilingual' ),
|
|
|
|
|
3256 |
|
3257 |
+
msgid "Please enter a valid number"
|
3258 |
msgstr ""
|
3259 |
|
3260 |
# 'automatic_rates' => $exchange_rates_automatic,
|
3264 |
msgid "Exchange rate updated automatically from %s"
|
3265 |
msgstr ""
|
3266 |
|
3267 |
+
# $last_updated = empty( $this->settings['last_updated'] ) ?
|
3268 |
+
# '<i>' . __( 'never', 'woocommerce-multilingual' ) . '</i>' :
|
3269 |
+
# date_i18n( 'F j, Y g:i a', $this->settings['last_updated'] );
|
3270 |
|
3271 |
+
msgid "never"
|
3272 |
msgstr ""
|
3273 |
|
3274 |
+
#
|
3275 |
+
# 'header' => __( 'Automatic Exchange Rates', 'woocommerce-multilingual' ),
|
3276 |
+
# 'no_currencies' => __( "You haven't added any secondary currencies.", 'woocommerce-multilingual' ),
|
3277 |
|
3278 |
+
msgid "Automatic Exchange Rates"
|
3279 |
msgstr ""
|
3280 |
|
3281 |
+
# 'no_currencies' => __( "You haven't added any secondary currencies.", 'woocommerce-multilingual' ),
|
3282 |
+
# 'enable_automatic' => __( 'Enable automatic exchange rates', 'woocommerce-multilingual' ),
|
3283 |
+
# 'services_label' => __( 'Exchange rates source', 'woocommerce-multilingual' ),
|
3284 |
|
3285 |
+
msgid "Enable automatic exchange rates"
|
3286 |
msgstr ""
|
3287 |
|
3288 |
+
# 'enable_automatic' => __( 'Enable automatic exchange rates', 'woocommerce-multilingual' ),
|
3289 |
+
# 'services_label' => __( 'Exchange rates source', 'woocommerce-multilingual' ),
|
3290 |
+
# 'lifting_label' => __( 'Lifting charge', 'woocommerce-multilingual' ),
|
3291 |
|
3292 |
+
msgid "Exchange rates source"
|
3293 |
msgstr ""
|
3294 |
|
3295 |
+
# 'services_label' => __( 'Exchange rates source', 'woocommerce-multilingual' ),
|
3296 |
+
# 'lifting_label' => __( 'Lifting charge', 'woocommerce-multilingual' ),
|
3297 |
+
# 'lifting_details1' => __( 'The lifting charge adjusts the exchange rate provided by the selected service before it is saved. The exchange rates displayed in the table above include the lifting charge.', 'woocommerce-multilingual' ),
|
3298 |
|
3299 |
+
msgid "Lifting charge"
|
3300 |
msgstr ""
|
3301 |
|
3302 |
+
# 'lifting_label' => __( 'Lifting charge', 'woocommerce-multilingual' ),
|
3303 |
+
# 'lifting_details1' => __( 'The lifting charge adjusts the exchange rate provided by the selected service before it is saved. The exchange rates displayed in the table above include the lifting charge.', 'woocommerce-multilingual' ),
|
3304 |
+
# 'lifting_details2' => __( 'Exchange rate = %s exchange rate x (1 + lifting charge / 100)', 'woocommerce-multilingual' ),
|
3305 |
|
3306 |
+
msgid "The lifting charge adjusts the exchange rate provided by the selected service before it is saved. The exchange rates displayed in the table above include the lifting charge."
|
3307 |
msgstr ""
|
3308 |
|
3309 |
+
# 'lifting_details1' => __( 'The lifting charge adjusts the exchange rate provided by the selected service before it is saved. The exchange rates displayed in the table above include the lifting charge.', 'woocommerce-multilingual' ),
|
3310 |
+
# 'lifting_details2' => __( 'Exchange rate = %s exchange rate x (1 + lifting charge / 100)', 'woocommerce-multilingual' ),
|
3311 |
+
# 'services_api' => __( 'API key (required)', 'woocommerce-multilingual' ),
|
3312 |
|
3313 |
+
msgid "Exchange rate = %s exchange rate x (1 + lifting charge / 100)"
|
3314 |
msgstr ""
|
3315 |
|
3316 |
+
# 'lifting_details2' => __( 'Exchange rate = %s exchange rate x (1 + lifting charge / 100)', 'woocommerce-multilingual' ),
|
3317 |
+
# 'services_api' => __( 'API key (required)', 'woocommerce-multilingual' ),
|
3318 |
+
# 'frequency' => __( 'Update frequency', 'woocommerce-multilingual' ),
|
3319 |
|
3320 |
+
msgid "API key (required)"
|
3321 |
msgstr ""
|
3322 |
|
3323 |
+
# 'services_api' => __( 'API key (required)', 'woocommerce-multilingual' ),
|
3324 |
+
# 'frequency' => __( 'Update frequency', 'woocommerce-multilingual' ),
|
3325 |
+
# 'update' => __( 'Update manually now', 'woocommerce-multilingual' ),
|
3326 |
|
3327 |
+
msgid "Update frequency"
|
3328 |
msgstr ""
|
3329 |
|
3330 |
+
# 'frequency' => __( 'Update frequency', 'woocommerce-multilingual' ),
|
3331 |
+
# 'update' => __( 'Update manually now', 'woocommerce-multilingual' ),
|
3332 |
+
# 'update_tip' => __( 'You have to save all settings before updating exchange rates', 'woocommerce-multilingual' ),
|
3333 |
|
3334 |
+
msgid "Update manually now"
|
3335 |
msgstr ""
|
3336 |
|
3337 |
+
# 'update' => __( 'Update manually now', 'woocommerce-multilingual' ),
|
3338 |
+
# 'update_tip' => __( 'You have to save all settings before updating exchange rates', 'woocommerce-multilingual' ),
|
3339 |
+
# 'manually' => __( 'Manually', 'woocommerce-multilingual'),
|
3340 |
|
3341 |
+
msgid "You have to save all settings before updating exchange rates"
|
3342 |
msgstr ""
|
3343 |
|
3344 |
+
# 'update_tip' => __( 'You have to save all settings before updating exchange rates', 'woocommerce-multilingual' ),
|
3345 |
+
# 'manually' => __( 'Manually', 'woocommerce-multilingual'),
|
3346 |
+
# 'daily' => __( 'Daily', 'woocommerce-multilingual' ),
|
3347 |
|
3348 |
+
msgid "Manually"
|
3349 |
msgstr ""
|
3350 |
|
3351 |
+
# 'manually' => __( 'Manually', 'woocommerce-multilingual'),
|
3352 |
+
# 'daily' => __( 'Daily', 'woocommerce-multilingual' ),
|
3353 |
+
# 'weekly' => __( 'Weekly on', 'woocommerce-multilingual' ),
|
3354 |
|
3355 |
+
msgid "Daily"
|
3356 |
msgstr ""
|
3357 |
|
3358 |
+
# 'daily' => __( 'Daily', 'woocommerce-multilingual' ),
|
3359 |
+
# 'weekly' => __( 'Weekly on', 'woocommerce-multilingual' ),
|
3360 |
+
# 'monthly' => __( 'Monthly on the', 'woocommerce-multilingual' ),
|
3361 |
+
|
3362 |
+
msgid "Weekly on"
|
3363 |
+
msgstr ""
|
3364 |
+
|
3365 |
+
# 'weekly' => __( 'Weekly on', 'woocommerce-multilingual' ),
|
3366 |
+
# 'monthly' => __( 'Monthly on the', 'woocommerce-multilingual' ),
|
3367 |
+
# 'key_placeholder' => __( 'Enter API key', 'woocommerce-multilingual' ),
|
3368 |
+
|
3369 |
+
msgid "Monthly on the"
|
3370 |
+
msgstr ""
|
3371 |
+
|
3372 |
+
# 'monthly' => __( 'Monthly on the', 'woocommerce-multilingual' ),
|
3373 |
+
# 'key_placeholder' => __( 'Enter API key', 'woocommerce-multilingual' ),
|
3374 |
+
# 'key_required' => __( 'API key (required)', 'woocommerce-multilingual' ),
|
3375 |
|
3376 |
+
msgid "Enter API key"
|
3377 |
msgstr ""
|
3378 |
|
3379 |
+
# 'updated_time' => sprintf(
|
3380 |
+
# __('Last updated: %s', 'woocommerce-multilingual' ),
|
3381 |
+
# '<span class="time">' . $last_updated . '</span>'
|
3382 |
|
3383 |
+
msgid "Last updated: %s"
|
3384 |
msgstr ""
|
3385 |
|
3386 |
+
# ),
|
3387 |
+
# 'updated_success' => __( 'Exchange rates updated successfully', 'woocommerce-multilingual' ),
|
3388 |
+
# 'visit_website' => __( 'Visit website', 'woocommerce-multilingual' )
|
3389 |
|
3390 |
+
msgid "Exchange rates updated successfully"
|
3391 |
msgstr ""
|
3392 |
|
3393 |
+
# 'updated_success' => __( 'Exchange rates updated successfully', 'woocommerce-multilingual' ),
|
3394 |
+
# 'visit_website' => __( 'Visit website', 'woocommerce-multilingual' )
|
3395 |
+
#
|
3396 |
|
3397 |
+
msgid "Visit website"
|
3398 |
msgstr ""
|
3399 |
|
3400 |
+
#
|
3401 |
+
# $store_pages_view = '<p><i class="otgs-ico-warning"></i> ' . __('One or more WooCommerce pages have not been created') . '<p>';
|
3402 |
+
#
|
3403 |
|
3404 |
+
msgid "One or more WooCommerce pages have not been created"
|
3405 |
msgstr ""
|
3406 |
|
3407 |
+
# '<label><input type="checkbox" name="install_missing_pages" value="1" checked="checked"> ' .
|
3408 |
+
# __('Install missing WooCommerce pages and create translations.', 'woocommerce-multilingual') .
|
3409 |
+
# '</label>';
|
3410 |
|
3411 |
+
msgid "Install missing WooCommerce pages and create translations."
|
3412 |
msgstr ""
|
3413 |
|
3414 |
+
# 'strings' => array(
|
3415 |
+
# 'heading' => __('Translate Store Pages', 'woocommerce-multilingual'),
|
3416 |
+
# 'description' => __("All store pages must be translated in the languages configured on the site.", 'woocommerce-multilingual'),
|
3417 |
|
3418 |
+
msgid "Translate Store Pages"
|
3419 |
msgstr ""
|
3420 |
|
3421 |
+
# 'heading' => __('Translate Store Pages', 'woocommerce-multilingual'),
|
3422 |
+
# 'description' => __("All store pages must be translated in the languages configured on the site.", 'woocommerce-multilingual'),
|
3423 |
+
# 'continue' => __('Continue', 'woocommerce-multilingual'),
|
3424 |
|
3425 |
+
msgid "All store pages must be translated in the languages configured on the site."
|
3426 |
msgstr ""
|
3427 |
|
3428 |
+
# 'description' => __("All store pages must be translated in the languages configured on the site.", 'woocommerce-multilingual'),
|
3429 |
+
# 'continue' => __('Continue', 'woocommerce-multilingual'),
|
3430 |
+
# ),
|
3431 |
|
3432 |
+
msgid "Continue"
|
3433 |
msgstr ""
|
3434 |
|
3435 |
+
# 'strings' => array(
|
3436 |
+
# 'heading' => __('Select Translatable Attributes', 'woocommerce-multilingual'),
|
3437 |
+
# 'no_attributes' => __('There are no attributes defined', 'woocommerce-multilingual'),
|
3438 |
|
3439 |
+
msgid "Select Translatable Attributes"
|
3440 |
msgstr ""
|
3441 |
|
3442 |
+
# 'heading' => __('Select Translatable Attributes', 'woocommerce-multilingual'),
|
3443 |
+
# 'no_attributes' => __('There are no attributes defined', 'woocommerce-multilingual'),
|
3444 |
+
# 'continue' => __('Continue', 'woocommerce-multilingual'),
|
3445 |
|
3446 |
+
msgid "There are no attributes defined"
|
3447 |
msgstr ""
|
3448 |
|
3449 |
+
# 'continue' => __('Continue', 'woocommerce-multilingual'),
|
3450 |
+
# 'later' => __('Later', 'woocommerce-multilingual')
|
3451 |
+
# ),
|
3452 |
|
3453 |
+
msgid "Later"
|
3454 |
msgstr ""
|
3455 |
|
3456 |
+
# 'strings' => array(
|
3457 |
+
# 'heading' => __("Let's turn your WooCommerce shop multilingual", 'woocommerce-multilingual'),
|
3458 |
+
# 'description1' => __('Thank you for choosing WooCommerce Multilingual. We need to do a few upgrades to your site, so that it has everything needed to run multilingual.', 'woocommerce-multilingual'),
|
3459 |
|
3460 |
+
msgid "Let's turn your WooCommerce shop multilingual"
|
3461 |
msgstr ""
|
3462 |
|
3463 |
+
# 'heading' => __("Let's turn your WooCommerce shop multilingual", 'woocommerce-multilingual'),
|
3464 |
+
# 'description1' => __('Thank you for choosing WooCommerce Multilingual. We need to do a few upgrades to your site, so that it has everything needed to run multilingual.', 'woocommerce-multilingual'),
|
3465 |
+
# 'description2' => array(
|
3466 |
|
3467 |
+
msgid "Thank you for choosing WooCommerce Multilingual. We need to do a few upgrades to your site, so that it has everything needed to run multilingual."
|
3468 |
msgstr ""
|
3469 |
|
3470 |
+
#
|
3471 |
+
# 'title' => __("We'll help you:", 'woocommerce-multilingual'),
|
3472 |
+
# 'step1' => __("Translate the 'store' pages", 'woocommerce-multilingual'),
|
3473 |
|
3474 |
+
msgid "We'll help you:"
|
3475 |
msgstr ""
|
3476 |
|
3477 |
+
# 'title' => __("We'll help you:", 'woocommerce-multilingual'),
|
3478 |
+
# 'step1' => __("Translate the 'store' pages", 'woocommerce-multilingual'),
|
3479 |
+
# 'step2' => __("Choose which attributes to make translatable", 'woocommerce-multilingual'),
|
3480 |
|
3481 |
+
msgid "Translate the 'store' pages"
|
3482 |
msgstr ""
|
3483 |
|
3484 |
+
# 'step1' => __("Translate the 'store' pages", 'woocommerce-multilingual'),
|
3485 |
+
# 'step2' => __("Choose which attributes to make translatable", 'woocommerce-multilingual'),
|
3486 |
+
# 'step3' => __("Choose if you need multiple currencies", 'woocommerce-multilingual'),
|
3487 |
|
3488 |
+
msgid "Choose which attributes to make translatable"
|
3489 |
msgstr ""
|
3490 |
|
3491 |
+
# 'step2' => __("Choose which attributes to make translatable", 'woocommerce-multilingual'),
|
3492 |
+
# 'step3' => __("Choose if you need multiple currencies", 'woocommerce-multilingual'),
|
3493 |
+
#
|
3494 |
|
3495 |
+
msgid "Choose if you need multiple currencies"
|
3496 |
msgstr ""
|
3497 |
|
3498 |
+
# ),
|
3499 |
+
# 'description3' => sprintf( __("You can make these updates now, or later from the %sWooCommerce » WooCommerce Multilingual%s menu.", 'woocommerce-multilingual'), '<strong>', '</strong>' ),
|
3500 |
+
# 'continue' => __("Let's continue", 'woocommerce-multilingual'),
|
3501 |
|
3502 |
+
msgid "You can make these updates now, or later from the %sWooCommerce » WooCommerce Multilingual%s menu."
|
3503 |
msgstr ""
|
3504 |
|
3505 |
+
# 'description3' => sprintf( __("You can make these updates now, or later from the %sWooCommerce » WooCommerce Multilingual%s menu.", 'woocommerce-multilingual'), '<strong>', '</strong>' ),
|
3506 |
+
# 'continue' => __("Let's continue", 'woocommerce-multilingual'),
|
3507 |
+
# 'later' => __("I'll do the setup later", 'woocommerce-multilingual')
|
3508 |
|
3509 |
+
msgid "Let's continue"
|
3510 |
msgstr ""
|
3511 |
|
3512 |
+
# 'continue' => __("Let's continue", 'woocommerce-multilingual'),
|
3513 |
+
# 'later' => __("I'll do the setup later", 'woocommerce-multilingual')
|
3514 |
+
# ),
|
3515 |
|
3516 |
+
msgid "I'll do the setup later"
|
3517 |
msgstr ""
|
3518 |
|
3519 |
+
# 'strings' => array(
|
3520 |
+
# 'heading' => __( 'Enable Multiple Currencies', 'woocommerce-multilingual' ),
|
3521 |
+
# 'description' => __( "This will allow you to set prices for products in different currencies. The prices can be determined based on a given exchange rate or set explicitly for specific products.", 'woocommerce-multilingual' ),
|
3522 |
|
3523 |
+
msgid "Enable Multiple Currencies"
|
3524 |
msgstr ""
|
3525 |
|
3526 |
+
# 'heading' => __( 'Enable Multiple Currencies', 'woocommerce-multilingual' ),
|
3527 |
+
# 'description' => __( "This will allow you to set prices for products in different currencies. The prices can be determined based on a given exchange rate or set explicitly for specific products.", 'woocommerce-multilingual' ),
|
3528 |
+
# 'label_mco' => __( 'Enable the multi-currency mode', 'woocommerce-multilingual' ),
|
3529 |
|
3530 |
+
msgid "This will allow you to set prices for products in different currencies. The prices can be determined based on a given exchange rate or set explicitly for specific products."
|
3531 |
msgstr ""
|
3532 |
|
3533 |
+
# 'strings' => array(
|
3534 |
+
# 'heading' => __('Setup Complete', 'woocommerce-multilingual'),
|
3535 |
+
# 'description1' => __('Your multilingual shop is almost ready. Next, you should go to the different tabs in %sWooCommerce » WooCommerce Multilingual%s admin and do the final setup.', 'woocommerce-multilingual'),
|
3536 |
|
3537 |
+
msgid "Setup Complete"
|
3538 |
msgstr ""
|
3539 |
|
3540 |
+
# 'heading' => __('Setup Complete', 'woocommerce-multilingual'),
|
3541 |
+
# 'description1' => __('Your multilingual shop is almost ready. Next, you should go to the different tabs in %sWooCommerce » WooCommerce Multilingual%s admin and do the final setup.', 'woocommerce-multilingual'),
|
3542 |
+
# 'description2' => __("For your convenience, we've marked items that require your attention with a notice icon. You can see a list of everything that you should complete in the %sStatus%s tab.", 'woocommerce-multilingual'),
|
3543 |
|
3544 |
+
msgid "Your multilingual shop is almost ready. Next, you should go to the different tabs in %sWooCommerce » WooCommerce Multilingual%s admin and do the final setup."
|
3545 |
msgstr ""
|
3546 |
|
3547 |
+
# 'description1' => __('Your multilingual shop is almost ready. Next, you should go to the different tabs in %sWooCommerce » WooCommerce Multilingual%s admin and do the final setup.', 'woocommerce-multilingual'),
|
3548 |
+
# 'description2' => __("For your convenience, we've marked items that require your attention with a notice icon. You can see a list of everything that you should complete in the %sStatus%s tab.", 'woocommerce-multilingual'),
|
3549 |
+
# 'continue' => __('Close setup', 'woocommerce-multilingual'),
|
3550 |
|
3551 |
+
msgid "For your convenience, we've marked items that require your attention with a notice icon. You can see a list of everything that you should complete in the %sStatus%s tab."
|
3552 |
msgstr ""
|
3553 |
|
3554 |
+
# 'description2' => __("For your convenience, we've marked items that require your attention with a notice icon. You can see a list of everything that you should complete in the %sStatus%s tab.", 'woocommerce-multilingual'),
|
3555 |
+
# 'continue' => __('Close setup', 'woocommerce-multilingual'),
|
3556 |
+
# ),
|
3557 |
|
3558 |
+
msgid "Close setup"
|
3559 |
msgstr ""
|
3560 |
|
3561 |
+
# 'clear_all' => array(
|
3562 |
+
# 'label' => __( 'Clear all colors', 'woocommerce-multilingual' ),
|
3563 |
+
# ),
|
3564 |
|
3565 |
+
msgid "Clear all colors"
|
3566 |
msgstr ""
|
3567 |
|
3568 |
+
# 'gray' => array(
|
3569 |
+
# 'label' => __( 'Gray', 'woocommerce-multilingual' ),
|
3570 |
+
# ),
|
3571 |
|
3572 |
+
msgid "Gray"
|
3573 |
msgstr ""
|
3574 |
|
3575 |
+
# 'white' => array(
|
3576 |
+
# 'label' => __( 'White', 'woocommerce-multilingual' ),
|
3577 |
# ),
|
3578 |
|
3579 |
+
msgid "White"
|
3580 |
msgstr ""
|
3581 |
|
3582 |
+
# 'blue' => array(
|
3583 |
+
# 'label' => __( 'Blue', 'woocommerce-multilingual' )
|
3584 |
+
# )
|
3585 |
|
3586 |
+
msgid "Blue"
|
3587 |
msgstr ""
|
3588 |
|
3589 |
# 'options' => array(
|
3590 |
+
# 'border' => __( 'Border', 'woocommerce-multilingual' ),
|
3591 |
+
# 'font_current' => __( 'Current currency font color', 'woocommerce-multilingual' ),
|
3592 |
|
3593 |
+
msgid "Border"
|
3594 |
msgstr ""
|
3595 |
|
3596 |
+
# 'border' => __( 'Border', 'woocommerce-multilingual' ),
|
3597 |
+
# 'font_current' => __( 'Current currency font color', 'woocommerce-multilingual' ),
|
3598 |
+
# 'font_other' => __( 'Other currency font color', 'woocommerce-multilingual' ),
|
3599 |
|
3600 |
+
msgid "Current currency font color"
|
3601 |
msgstr ""
|
3602 |
|
3603 |
+
# 'font_current' => __( 'Current currency font color', 'woocommerce-multilingual' ),
|
3604 |
+
# 'font_other' => __( 'Other currency font color', 'woocommerce-multilingual' ),
|
3605 |
+
# 'background_current' => __( 'Current currency background color', 'woocommerce-multilingual' ),
|
3606 |
|
3607 |
+
msgid "Other currency font color"
|
3608 |
msgstr ""
|
3609 |
|
3610 |
+
# 'font_other' => __( 'Other currency font color', 'woocommerce-multilingual' ),
|
3611 |
+
# 'background_current' => __( 'Current currency background color', 'woocommerce-multilingual' ),
|
3612 |
+
# 'background_other' => __( 'Other currency background color', 'woocommerce-multilingual' )
|
3613 |
|
3614 |
+
msgid "Current currency background color"
|
3615 |
msgstr ""
|
3616 |
|
3617 |
+
# 'background_current' => __( 'Current currency background color', 'woocommerce-multilingual' ),
|
3618 |
+
# 'background_other' => __( 'Other currency background color', 'woocommerce-multilingual' )
|
3619 |
# ),
|
3620 |
|
3621 |
+
msgid "Other currency background color"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3622 |
msgstr ""
|
3623 |
|
3624 |
+
# 'switcher_style' => array(
|
3625 |
+
# 'label' =>__( 'Currency switcher style', 'woocommerce-multilingual' ),
|
3626 |
+
# 'core' =>__( 'Core', 'woocommerce-multilingual' ),
|
3627 |
|
3628 |
+
msgid "Currency switcher style"
|
3629 |
msgstr ""
|
3630 |
|
3631 |
+
# 'label' =>__( 'Currency switcher style', 'woocommerce-multilingual' ),
|
3632 |
+
# 'core' =>__( 'Core', 'woocommerce-multilingual' ),
|
3633 |
+
# 'custom' =>__( 'Custom', 'woocommerce-multilingual' ),
|
3634 |
|
3635 |
+
msgid "Core"
|
3636 |
msgstr ""
|
3637 |
|
3638 |
+
# 'core' =>__( 'Core', 'woocommerce-multilingual' ),
|
3639 |
+
# 'custom' =>__( 'Custom', 'woocommerce-multilingual' ),
|
3640 |
+
# 'allowed_tags' => __( 'Allowed HTML tags: <img> <span> <u> <strong> <em>', 'woocommerce-multilingual')
|
3641 |
|
3642 |
+
msgid "Custom"
|
3643 |
msgstr ""
|
3644 |
|
3645 |
+
# 'custom' =>__( 'Custom', 'woocommerce-multilingual' ),
|
3646 |
+
# 'allowed_tags' => __( 'Allowed HTML tags: <img> <span> <u> <strong> <em>', 'woocommerce-multilingual')
|
3647 |
+
# ),
|
3648 |
|
3649 |
+
msgid "Allowed HTML tags: <img> <span> <u> <strong> <em>"
|
3650 |
msgstr ""
|
3651 |
|
3652 |
+
# 'template' => array(
|
3653 |
+
# 'label' => __( 'Template for currency switcher', 'woocommerce-multilingual' ),
|
3654 |
+
# 'parameters' => __( 'Available parameters', 'woocommerce-multilingual' ),
|
3655 |
|
3656 |
+
msgid "Template for currency switcher"
|
3657 |
msgstr ""
|
3658 |
|
3659 |
+
# 'label' => __( 'Template for currency switcher', 'woocommerce-multilingual' ),
|
3660 |
+
# 'parameters' => __( 'Available parameters', 'woocommerce-multilingual' ),
|
3661 |
+
# 'template_tip' => __( 'Default: %name% (%symbol%) - %code%', 'woocommerce-multilingual' ),
|
3662 |
|
3663 |
+
msgid "Available parameters"
|
3664 |
msgstr ""
|
3665 |
|
3666 |
+
# 'parameters' => __( 'Available parameters', 'woocommerce-multilingual' ),
|
3667 |
+
# 'template_tip' => __( 'Default: %name% (%symbol%) - %code%', 'woocommerce-multilingual' ),
|
3668 |
+
# 'parameters_list' => '%code%, %symbol%, %name%, %subtotal%'
|
3669 |
|
3670 |
+
msgid "Default: %name% (%symbol%) - %code%"
|
3671 |
msgstr ""
|
3672 |
|
3673 |
+
# 'colors' => array(
|
3674 |
+
# 'label' => __( 'Currency switcher colors', 'woocommerce-multilingual' ),
|
3675 |
+
# 'theme' => __( 'Color theme', 'woocommerce-multilingual' ),
|
3676 |
|
3677 |
+
msgid "Currency switcher colors"
|
3678 |
msgstr ""
|
3679 |
|
3680 |
+
# 'label' => __( 'Currency switcher colors', 'woocommerce-multilingual' ),
|
3681 |
+
# 'theme' => __( 'Color theme', 'woocommerce-multilingual' ),
|
3682 |
+
# 'normal' => __( 'Normal', 'woocommerce-multilingual' ),
|
3683 |
|
3684 |
+
msgid "Color theme"
|
3685 |
msgstr ""
|
3686 |
|
3687 |
+
# 'theme' => __( 'Color theme', 'woocommerce-multilingual' ),
|
3688 |
+
# 'normal' => __( 'Normal', 'woocommerce-multilingual' ),
|
3689 |
+
# 'hover' => __( 'Hover', 'woocommerce-multilingual' ),
|
3690 |
|
3691 |
+
msgid "Normal"
|
3692 |
msgstr ""
|
3693 |
|
3694 |
+
# 'normal' => __( 'Normal', 'woocommerce-multilingual' ),
|
3695 |
+
# 'hover' => __( 'Hover', 'woocommerce-multilingual' ),
|
3696 |
+
# 'select_option_choose' => __( 'Select a preset', 'woocommerce-multilingual' )
|
3697 |
|
3698 |
+
msgid "Hover"
|
3699 |
msgstr ""
|
3700 |
|
3701 |
+
# 'hover' => __( 'Hover', 'woocommerce-multilingual' ),
|
3702 |
+
# 'select_option_choose' => __( 'Select a preset', 'woocommerce-multilingual' )
|
3703 |
+
# ),
|
3704 |
|
3705 |
+
msgid "Select a preset"
|
3706 |
msgstr ""
|
3707 |
|
3708 |
+
# 'widgets' => array(
|
3709 |
+
# 'widget_area' => __( 'Widget area', 'woocommerce-multilingual' ),
|
3710 |
+
# 'widget_title' => __( 'Widget title', 'woocommerce-multilingual' ),
|
3711 |
+
|
3712 |
+
msgid "Widget area"
|
3713 |
msgstr ""
|
3714 |
|
3715 |
+
# 'widget_area' => __( 'Widget area', 'woocommerce-multilingual' ),
|
3716 |
+
# 'widget_title' => __( 'Widget title', 'woocommerce-multilingual' ),
|
3717 |
+
# 'choose_label' => __( '-- Choose a widget area --', 'woocommerce-multilingual' ),
|
3718 |
|
3719 |
+
msgid "Widget title"
|
3720 |
msgstr ""
|
3721 |
|
3722 |
+
# 'widget_title' => __( 'Widget title', 'woocommerce-multilingual' ),
|
3723 |
+
# 'choose_label' => __( '-- Choose a widget area --', 'woocommerce-multilingual' ),
|
3724 |
+
# 'available_sidebars' => $this->woocommerce_wpml->multi_currency->currency_switcher->get_available_sidebars()
|
3725 |
|
3726 |
+
msgid "-- Choose a widget area --"
|
3727 |
msgstr ""
|
3728 |
|
3729 |
+
# 'strings' => array(
|
3730 |
+
# 'update_trnsl' => __('Update Translation', 'woocommerce-multilingual'),
|
3731 |
+
# 'hide' => __('Hide This Message', 'woocommerce-multilingual'),
|
3732 |
|
3733 |
+
msgid "Update Translation"
|
3734 |
msgstr ""
|
3735 |
|
3736 |
+
# 'update_trnsl' => __('Update Translation', 'woocommerce-multilingual'),
|
3737 |
+
# 'hide' => __('Hide This Message', 'woocommerce-multilingual'),
|
3738 |
+
# 'trnsl_available' => sprintf( __( '<strong>WooCommerce Translation Available</strong> – Install or update your <code>%s</code> translations to version <code>%s</code>.', 'woocommerce-multilingual' ), implode(', ', $this->notices ), WC_VERSION )
|
3739 |
|
3740 |
+
msgid "Hide This Message"
|
3741 |
msgstr ""
|
3742 |
|
3743 |
+
# 'hide' => __('Hide This Message', 'woocommerce-multilingual'),
|
3744 |
+
# 'trnsl_available' => sprintf( __( '<strong>WooCommerce Translation Available</strong> – Install or update your <code>%s</code> translations to version <code>%s</code>.', 'woocommerce-multilingual' ), implode(', ', $this->notices ), WC_VERSION )
|
3745 |
# ),
|
3746 |
|
3747 |
+
msgid "<strong>WooCommerce Translation Available</strong> – Install or update your <code>%s</code> translations to version <code>%s</code>."
|
3748 |
msgstr ""
|
3749 |
|
3750 |
+
# 'strings' => array(
|
3751 |
+
# 'image' => __( 'Image', 'woocommerce-multilingual' ),
|
3752 |
+
# 'product' => __( 'Product', 'woocommerce-multilingual' ),
|
3753 |
|
3754 |
+
msgid "Image"
|
3755 |
msgstr ""
|
3756 |
|
3757 |
+
# 'product' => __( 'Product', 'woocommerce-multilingual' ),
|
3758 |
+
# 'type' => __( 'Type', 'woocommerce-multilingual' ),
|
3759 |
+
# 'date' => __( 'Date', 'woocommerce-multilingual' ),
|
3760 |
|
3761 |
+
msgid "Type"
|
3762 |
msgstr ""
|
3763 |
|
3764 |
+
# 'type' => __( 'Type', 'woocommerce-multilingual' ),
|
3765 |
+
# 'date' => __( 'Date', 'woocommerce-multilingual' ),
|
3766 |
+
# 'categories' => __( 'Categories', 'woocommerce-multilingual' ),
|
3767 |
|
3768 |
+
msgid "Date"
|
3769 |
msgstr ""
|
3770 |
|
3771 |
+
# 'categories' => __( 'Categories', 'woocommerce-multilingual' ),
|
3772 |
+
# 'no_products' => __( 'No products found', 'woocommerce-multilingual' ),
|
3773 |
+
# 'draft' => __( 'Draft', 'woocommerce-multilingual' ),
|
3774 |
|
3775 |
+
msgid "No products found"
|
3776 |
msgstr ""
|
3777 |
|
3778 |
+
# 'no_products' => __( 'No products found', 'woocommerce-multilingual' ),
|
3779 |
+
# 'draft' => __( 'Draft', 'woocommerce-multilingual' ),
|
3780 |
+
# 'private' => __( 'Private', 'woocommerce-multilingual' ),
|
3781 |
|
3782 |
+
msgid "Draft"
|
3783 |
msgstr ""
|
3784 |
|
3785 |
+
# 'draft' => __( 'Draft', 'woocommerce-multilingual' ),
|
3786 |
+
# 'private' => __( 'Private', 'woocommerce-multilingual' ),
|
3787 |
+
# 'pending' => __( 'Pending', 'woocommerce-multilingual' ),
|
3788 |
|
3789 |
+
msgid "Private"
|
3790 |
msgstr ""
|
3791 |
|
3792 |
+
# 'private' => __( 'Private', 'woocommerce-multilingual' ),
|
3793 |
+
# 'pending' => __( 'Pending', 'woocommerce-multilingual' ),
|
3794 |
+
# 'future' => __( 'Scheduled', 'woocommerce-multilingual' ),
|
3795 |
|
3796 |
+
msgid "Pending"
|
3797 |
msgstr ""
|
3798 |
|
3799 |
+
# 'pending' => __( 'Pending', 'woocommerce-multilingual' ),
|
3800 |
+
# 'future' => __( 'Scheduled', 'woocommerce-multilingual' ),
|
3801 |
+
# 'parent' => __( 'Parent product: %s', 'woocommerce-multilingual' ),
|
3802 |
|
3803 |
+
msgid "Scheduled"
|
3804 |
msgstr ""
|
3805 |
|
3806 |
+
# 'future' => __( 'Scheduled', 'woocommerce-multilingual' ),
|
3807 |
+
# 'parent' => __( 'Parent product: %s', 'woocommerce-multilingual' ),
|
3808 |
+
# 'edit_item' => __( 'Edit this item', 'woocommerce-multilingual' ),
|
3809 |
|
3810 |
+
msgid "Parent product: %s"
|
3811 |
msgstr ""
|
3812 |
|
3813 |
+
# 'parent' => __( 'Parent product: %s', 'woocommerce-multilingual' ),
|
3814 |
+
# 'edit_item' => __( 'Edit this item', 'woocommerce-multilingual' ),
|
3815 |
+
# 'edit' => __( 'Edit', 'woocommerce-multilingual' ),
|
3816 |
|
3817 |
+
msgid "Edit this item"
|
3818 |
msgstr ""
|
3819 |
|
3820 |
+
# 'edit' => __( 'Edit', 'woocommerce-multilingual' ),
|
3821 |
+
# 'view_link' => __( 'View "%s"', 'woocommerce-multilingual' ),
|
3822 |
+
# 'view' => __( 'View', 'woocommerce-multilingual' ),
|
3823 |
|
3824 |
+
msgid "View \"%s\""
|
3825 |
msgstr ""
|
3826 |
|
3827 |
+
# 'view_link' => __( 'View "%s"', 'woocommerce-multilingual' ),
|
3828 |
+
# 'view' => __( 'View', 'woocommerce-multilingual' ),
|
3829 |
+
# 'published' => __( 'Published', 'woocommerce-multilingual' ),
|
3830 |
|
3831 |
+
msgid "View"
|
3832 |
msgstr ""
|
3833 |
|
3834 |
+
# 'view' => __( 'View', 'woocommerce-multilingual' ),
|
3835 |
+
# 'published' => __( 'Published', 'woocommerce-multilingual' ),
|
3836 |
+
# 'modified' => __( 'Last Modified', 'woocommerce-multilingual' ),
|
3837 |
|
3838 |
+
msgid "Published"
|
3839 |
msgstr ""
|
3840 |
|
3841 |
+
# 'published' => __( 'Published', 'woocommerce-multilingual' ),
|
3842 |
+
# 'modified' => __( 'Last Modified', 'woocommerce-multilingual' ),
|
3843 |
+
# ),
|
3844 |
|
3845 |
+
msgid "Last Modified"
|
3846 |
msgstr ""
|
3847 |
|
3848 |
+
# 'strings' => array(
|
3849 |
+
# 'all_lang' => __( 'All languages', 'woocommerce-multilingual' ),
|
3850 |
+
# 'all_cats' => __( 'All categories', 'woocommerce-multilingual' ),
|
3851 |
|
3852 |
+
msgid "All languages"
|
3853 |
msgstr ""
|
3854 |
|
3855 |
+
# 'all_lang' => __( 'All languages', 'woocommerce-multilingual' ),
|
3856 |
+
# 'all_cats' => __( 'All categories', 'woocommerce-multilingual' ),
|
3857 |
+
# 'all_trnsl_stats' => __( 'All translation statuses', 'woocommerce-multilingual' ),
|
3858 |
|
3859 |
+
msgid "All categories"
|
3860 |
msgstr ""
|
3861 |
|
3862 |
+
# 'all_cats' => __( 'All categories', 'woocommerce-multilingual' ),
|
3863 |
+
# 'all_trnsl_stats' => __( 'All translation statuses', 'woocommerce-multilingual' ),
|
3864 |
+
# 'not_trnsl' => __( 'Not translated or needs updating', 'woocommerce-multilingual' ),
|
3865 |
|
3866 |
+
msgid "All translation statuses"
|
3867 |
msgstr ""
|
3868 |
|
3869 |
+
# 'all_trnsl_stats' => __( 'All translation statuses', 'woocommerce-multilingual' ),
|
3870 |
+
# 'not_trnsl' => __( 'Not translated or needs updating', 'woocommerce-multilingual' ),
|
3871 |
+
# 'need_upd' => __( 'Needs updating', 'woocommerce-multilingual' ),
|
3872 |
|
3873 |
+
msgid "Not translated or needs updating"
|
3874 |
msgstr ""
|
3875 |
|
3876 |
+
# 'not_trnsl' => __( 'Not translated or needs updating', 'woocommerce-multilingual' ),
|
3877 |
+
# 'need_upd' => __( 'Needs updating', 'woocommerce-multilingual' ),
|
3878 |
+
# 'in_progress' => __( 'Translation in progress', 'woocommerce-multilingual' ),
|
3879 |
|
3880 |
+
msgid "Needs updating"
|
3881 |
msgstr ""
|
3882 |
|
3883 |
+
# 'in_progress' => __( 'Translation in progress', 'woocommerce-multilingual' ),
|
3884 |
+
# 'complete' => __( 'Translation complete', 'woocommerce-multilingual' ),
|
3885 |
+
# 'all_stats' => __( 'All statuses', 'woocommerce-multilingual' ),
|
3886 |
|
3887 |
+
msgid "Translation complete"
|
3888 |
msgstr ""
|
3889 |
|
3890 |
+
# 'complete' => __( 'Translation complete', 'woocommerce-multilingual' ),
|
3891 |
+
# 'all_stats' => __( 'All statuses', 'woocommerce-multilingual' ),
|
3892 |
+
# 'filter' => __( 'Filter', 'woocommerce-multilingual' ),
|
3893 |
|
3894 |
+
msgid "All statuses"
|
3895 |
msgstr ""
|
3896 |
|
3897 |
+
# 'all_stats' => __( 'All statuses', 'woocommerce-multilingual' ),
|
3898 |
+
# 'filter' => __( 'Filter', 'woocommerce-multilingual' ),
|
3899 |
+
# 'reset' => __( 'Reset', 'woocommerce-multilingual' ),
|
3900 |
|
3901 |
+
msgid "Filter"
|
3902 |
msgstr ""
|
3903 |
|
3904 |
+
# 'filter' => __( 'Filter', 'woocommerce-multilingual' ),
|
3905 |
+
# 'reset' => __( 'Reset', 'woocommerce-multilingual' ),
|
3906 |
+
# 'search' => __( 'Search', 'woocommerce-multilingual' ),
|
3907 |
|
3908 |
+
msgid "Reset"
|
3909 |
msgstr ""
|
3910 |
|
3911 |
+
# 'reset' => __( 'Reset', 'woocommerce-multilingual' ),
|
3912 |
+
# 'search' => __( 'Search', 'woocommerce-multilingual' ),
|
3913 |
+
# ),
|
3914 |
|
3915 |
+
msgid "Search"
|
3916 |
msgstr ""
|
3917 |
|
3918 |
+
# 'strings' => array(
|
3919 |
+
# 'items' => __( '%d items', 'woocommerce-multilingual' ),
|
3920 |
+
# 'first' => __( 'Go to the first page', 'woocommerce-multilingual' ),
|
3921 |
|
3922 |
+
msgid "%d items"
|
3923 |
msgstr ""
|
3924 |
|
3925 |
+
# 'items' => __( '%d items', 'woocommerce-multilingual' ),
|
3926 |
+
# 'first' => __( 'Go to the first page', 'woocommerce-multilingual' ),
|
3927 |
+
# 'previous' => __( 'Go to the previous page', 'woocommerce-multilingual' ),
|
3928 |
|
3929 |
+
msgid "Go to the first page"
|
3930 |
msgstr ""
|
3931 |
|
3932 |
+
# 'first' => __( 'Go to the first page', 'woocommerce-multilingual' ),
|
3933 |
+
# 'previous' => __( 'Go to the previous page', 'woocommerce-multilingual' ),
|
3934 |
+
# 'select' => __( 'Select Page', 'woocommerce-multilingual' ),
|
3935 |
|
3936 |
+
msgid "Go to the previous page"
|
3937 |
msgstr ""
|
3938 |
|
3939 |
+
# 'previous' => __( 'Go to the previous page', 'woocommerce-multilingual' ),
|
3940 |
+
# 'select' => __( 'Select Page', 'woocommerce-multilingual' ),
|
3941 |
+
# 'current' => __( 'Current page', 'woocommerce-multilingual' ),
|
3942 |
|
3943 |
+
msgid "Select Page"
|
3944 |
msgstr ""
|
3945 |
|
3946 |
+
# 'select' => __( 'Select Page', 'woocommerce-multilingual' ),
|
3947 |
+
# 'current' => __( 'Current page', 'woocommerce-multilingual' ),
|
3948 |
+
# 'of' => __( 'of', 'woocommerce-multilingual' ),
|
3949 |
|
3950 |
+
msgid "Current page"
|
3951 |
msgstr ""
|
3952 |
|
3953 |
+
# 'current' => __( 'Current page', 'woocommerce-multilingual' ),
|
3954 |
+
# 'of' => __( 'of', 'woocommerce-multilingual' ),
|
3955 |
+
# 'next' => __( 'Go to the next page', 'woocommerce-multilingual' ),
|
3956 |
|
3957 |
+
msgid "of"
|
3958 |
msgstr ""
|
3959 |
|
3960 |
+
# 'of' => __( 'of', 'woocommerce-multilingual' ),
|
3961 |
+
# 'next' => __( 'Go to the next page', 'woocommerce-multilingual' ),
|
3962 |
+
# 'last' => __( 'Go to the last page', 'woocommerce-multilingual' ),
|
3963 |
|
3964 |
+
msgid "Go to the next page"
|
3965 |
msgstr ""
|
3966 |
|
3967 |
+
# 'next' => __( 'Go to the next page', 'woocommerce-multilingual' ),
|
3968 |
+
# 'last' => __( 'Go to the last page', 'woocommerce-multilingual' ),
|
3969 |
+
# )
|
3970 |
|
3971 |
+
msgid "Go to the last page"
|
3972 |
msgstr ""
|
3973 |
|
3974 |
+
# 'translation_interface' => array(
|
3975 |
+
# 'heading' => __('Product Translation Interface','woocommerce-multilingual'),
|
3976 |
+
# 'tip' => __( 'The recommended way is using the WPML Translation Editor. It is streamlined for making the translation process much easier while also providing a much better integration with various WooCommerce extensions.',
|
3977 |
|
3978 |
+
msgid "Product Translation Interface"
|
3979 |
msgstr ""
|
3980 |
|
3981 |
+
# 'heading' => __('Product Translation Interface','woocommerce-multilingual'),
|
3982 |
+
# 'tip' => __( 'The recommended way is using the WPML Translation Editor. It is streamlined for making the translation process much easier while also providing a much better integration with various WooCommerce extensions.',
|
3983 |
+
# 'woocommerce-multilingual' ),
|
3984 |
|
3985 |
+
msgid "The recommended way is using the WPML Translation Editor. It is streamlined for making the translation process much easier while also providing a much better integration with various WooCommerce extensions."
|
3986 |
msgstr ""
|
3987 |
|
3988 |
+
# 'wcml' => array(
|
3989 |
+
# 'label' => __('WPML Translation Editor', 'woocommerce-multilingual'),
|
3990 |
+
#
|
3991 |
|
3992 |
+
msgid "WPML Translation Editor"
|
3993 |
msgstr ""
|
3994 |
|
3995 |
+
# 'native' => array(
|
3996 |
+
# 'label' => __('Native WooCommerce product editing screen' , 'woocommerce-multilingual'),
|
3997 |
+
#
|
3998 |
|
3999 |
+
msgid "Native WooCommerce product editing screen"
|
4000 |
msgstr ""
|
4001 |
|
4002 |
+
# 'synchronization' => array(
|
4003 |
+
# 'heading' => __('Products Synchronization', 'woocommerce-multilingual'),
|
4004 |
+
# 'tip' => __( 'Configure specific product properties that should be synced to translations.', 'woocommerce-multilingual' ),
|
4005 |
|
4006 |
+
msgid "Products Synchronization"
|
4007 |
msgstr ""
|
4008 |
|
4009 |
+
# 'heading' => __('Products Synchronization', 'woocommerce-multilingual'),
|
4010 |
+
# 'tip' => __( 'Configure specific product properties that should be synced to translations.', 'woocommerce-multilingual' ),
|
4011 |
+
# 'sync_date' => array(
|
4012 |
|
4013 |
+
msgid "Configure specific product properties that should be synced to translations."
|
4014 |
msgstr ""
|
4015 |
|
4016 |
+
# 'value' => $this->woocommerce_wpml->settings['products_sync_date'],
|
4017 |
+
# 'label' => __('Sync publishing date for translated products.', 'woocommerce-multilingual')
|
4018 |
# ),
|
|
|
|
|
4019 |
|
4020 |
+
msgid "Sync publishing date for translated products."
|
4021 |
msgstr ""
|
4022 |
|
4023 |
+
# 'value' => $this->woocommerce_wpml->settings['products_sync_order'],
|
4024 |
+
# 'label' => __('Sync products and product taxonomies order.', 'woocommerce-multilingual')
|
4025 |
+
# ),
|
4026 |
|
4027 |
+
msgid "Sync products and product taxonomies order."
|
4028 |
msgstr ""
|
4029 |
|
4030 |
+
# 'file_sync' => array(
|
4031 |
+
# 'heading' => __('Products Download Files', 'woocommerce-multilingual'),
|
4032 |
+
# 'tip' => __( 'If you are using downloadable products, you can choose to have their paths
|
4033 |
|
4034 |
+
msgid "Products Download Files"
|
4035 |
msgstr ""
|
4036 |
|
4037 |
+
# 'heading' => __('Products Download Files', 'woocommerce-multilingual'),
|
4038 |
+
# 'tip' => __( 'If you are using downloadable products, you can choose to have their paths
|
4039 |
+
# synchronized, or seperate for each language.', 'woocommerce-multilingual' ),
|
4040 |
|
4041 |
+
msgid "If you are using downloadable products, you can choose to have their paths\n synchronized, or seperate for each language."
|
4042 |
msgstr ""
|
4043 |
|
4044 |
+
# 'label_same' => __('Use the same files for translations', 'woocommerce-multilingual'),
|
4045 |
+
# 'label_diff' => __('Add separate download files for translations when translating products', 'woocommerce-multilingual'),
|
4046 |
+
# ),
|
4047 |
|
4048 |
+
msgid "Add separate download files for translations when translating products"
|
4049 |
msgstr ""
|
4050 |
|
4051 |
+
# 'cart_sync' => array(
|
4052 |
+
# 'tip' => __('You can choose to clear the cart contents when you change language or currency in case you have problems in cart or checkout page', 'woocommerce-multilingual'),
|
4053 |
+
# 'heading' => __('Cart', 'woocommerce-multilingual'),
|
4054 |
|
4055 |
+
msgid "You can choose to clear the cart contents when you change language or currency in case you have problems in cart or checkout page"
|
4056 |
msgstr ""
|
4057 |
|
4058 |
+
# 'lang_switch' => array(
|
4059 |
+
# 'heading' => __('Switching languages when there are items in the cart', 'woocommerce-multilingual'),
|
4060 |
+
# 'sync_label' => __('Synchronize cart content when switching languages', 'woocommerce-multilingual'),
|
4061 |
|
4062 |
+
msgid "Switching languages when there are items in the cart"
|
4063 |
msgstr ""
|
4064 |
|
4065 |
+
# 'heading' => __('Switching languages when there are items in the cart', 'woocommerce-multilingual'),
|
4066 |
+
# 'sync_label' => __('Synchronize cart content when switching languages', 'woocommerce-multilingual'),
|
4067 |
+
# 'clear_label' => __('Prompt for a confirmation and reset the cart', 'woocommerce-multilingual'),
|
4068 |
|
4069 |
+
msgid "Synchronize cart content when switching languages"
|
4070 |
msgstr ""
|
4071 |
|
4072 |
+
# 'sync_label' => __('Synchronize cart content when switching languages', 'woocommerce-multilingual'),
|
4073 |
+
# 'clear_label' => __('Prompt for a confirmation and reset the cart', 'woocommerce-multilingual'),
|
4074 |
+
# 'value' => $this->woocommerce_wpml->settings['cart_sync']['lang_switch']
|
4075 |
|
4076 |
+
msgid "Prompt for a confirmation and reset the cart"
|
4077 |
msgstr ""
|
4078 |
|
4079 |
+
# 'currency_switch' => array(
|
4080 |
+
# 'heading' => __('Switching currencies when there are items in the cart', 'woocommerce-multilingual'),
|
4081 |
+
# 'sync_label' => __('Synchronize cart content when switching currencies', 'woocommerce-multilingual'),
|
4082 |
|
4083 |
+
msgid "Switching currencies when there are items in the cart"
|
4084 |
msgstr ""
|
4085 |
|
4086 |
+
# 'heading' => __('Switching currencies when there are items in the cart', 'woocommerce-multilingual'),
|
4087 |
+
# 'sync_label' => __('Synchronize cart content when switching currencies', 'woocommerce-multilingual'),
|
4088 |
+
# 'clear_label' => __('Prompt for a confirmation and reset the cart', 'woocommerce-multilingual'),
|
4089 |
|
4090 |
+
msgid "Synchronize cart content when switching currencies"
|
4091 |
msgstr ""
|
4092 |
|
4093 |
+
# 'wpml_cookie_enabled' => $this->sitepress->get_setting( WPML_Cookie_Setting::COOKIE_SETTING_FIELD ),
|
4094 |
+
# 'cookie_not_enabled_message' => sprintf( __( 'This feature was disabled. Please enable %sWPML cookies%s to continue.',
|
4095 |
+
# 'woocommerce-multilingual' ),
|
4096 |
|
4097 |
+
msgid "This feature was disabled. Please enable %sWPML cookies%s to continue."
|
4098 |
msgstr ""
|
4099 |
|
4100 |
+
# ),
|
4101 |
+
# 'doc_link' => sprintf( __( 'Not sure which option to choose? Read about %spotential issues when switching languages and currencies while the cart has items%s.',
|
4102 |
+
# 'woocommerce-multilingual' ),
|
4103 |
|
4104 |
+
msgid "Not sure which option to choose? Read about %spotential issues when switching languages and currencies while the cart has items%s."
|
4105 |
msgstr ""
|
4106 |
|
4107 |
# 'strings' => array(
|
4139 |
msgid "This action lets you automatically apply the %s taxonomy to your content in different languages. It will scan the original content and apply the same taxonomy to translated content."
|
4140 |
msgstr ""
|
4141 |
|
4142 |
+
#
|
4143 |
+
# $reset_cart_configure_link = '<strong><a href="' . $admin_settings_url . '">' . esc_html__( 'configure WooCommerce Multilingual', 'woocommerce-multilingual' ) . '</a></strong>';
|
4144 |
+
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4145 |
|
4146 |
+
msgid "configure WooCommerce Multilingual"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4147 |
msgstr ""
|
4148 |
|
4149 |
+
# $reset_cart_message .= $reset_cart_strings[1];
|
4150 |
+
# $reset_cart_message .= '<strong><a href="' . $documentation_link . '" target="_blank">' . esc_html__( 'More details', 'woocommerce-multilingual' ) . '</a></strong>';
|
4151 |
+
#
|
4152 |
|
4153 |
+
msgid "More details"
|
4154 |
msgstr ""
|
4155 |
|
4156 |
+
#
|
4157 |
+
# $reset_cart_strings[] = esc_html_x( 'Because of some elements in your site configuration, when the users switch the currency or the language on the front end, the cart content might not be synchronized correctly.', 'Reset cart option warning 1', 'woocommerce-multilingual' );
|
4158 |
+
# $reset_cart_strings[] = esc_html_x( 'It is recommended that you %s with the option to reset the cart in a situation like this.', 'Reset cart option warning 2', 'woocommerce-multilingual' );
|
4159 |
|
4160 |
+
msgctxt "Reset cart option warning 1"
|
4161 |
+
msgid "Because of some elements in your site configuration, when the users switch the currency or the language on the front end, the cart content might not be synchronized correctly."
|
4162 |
msgstr ""
|
4163 |
|
4164 |
+
# $reset_cart_strings[] = esc_html_x( 'Because of some elements in your site configuration, when the users switch the currency or the language on the front end, the cart content might not be synchronized correctly.', 'Reset cart option warning 1', 'woocommerce-multilingual' );
|
4165 |
+
# $reset_cart_strings[] = esc_html_x( 'It is recommended that you %s with the option to reset the cart in a situation like this.', 'Reset cart option warning 2', 'woocommerce-multilingual' );
|
4166 |
+
#
|
4167 |
|
4168 |
+
msgctxt "Reset cart option warning 2"
|
4169 |
+
msgid "It is recommended that you %s with the option to reset the cart in a situation like this."
|
4170 |
msgstr ""
|
4171 |
|
4172 |
+
#
|
4173 |
+
# $composite_section = new WPML_Editor_UI_Field_Section( __( 'Composite Products ( Components )', 'woocommerce-multilingual' ) );
|
4174 |
+
# end( $composite_data );
|
4175 |
|
4176 |
+
msgid "Composite Products ( Components )"
|
4177 |
msgstr ""
|
4178 |
|
4179 |
+
# $group->add_field( $composite_field );
|
4180 |
+
# $composite_field = new WPML_Editor_UI_Single_Line_Field( 'composite_'.$component_id.'_description' , __( 'Description', 'woocommerce-multilingual' ), $data, false );
|
4181 |
+
# $group->add_field( $composite_field );
|
4182 |
|
4183 |
+
msgid "Description"
|
4184 |
msgstr ""
|
4185 |
|
4186 |
+
#
|
4187 |
+
# $composite_scenarios = new WPML_Editor_UI_Field_Section( __( 'Composite Products ( Scenarios )', 'woocommerce-multilingual' ) );
|
4188 |
+
# end( $composite_scenarios_meta );
|
4189 |
|
4190 |
+
msgid "Composite Products ( Scenarios )"
|
4191 |
msgstr ""
|
4192 |
|
4193 |
+
#
|
4194 |
+
# $bundles_section = new WPML_Editor_UI_Field_Section( __( 'Product Bundles', 'woocommerce-multilingual' ) );
|
4195 |
+
# end( $product_bundles );
|
4196 |
|
4197 |
+
msgid "Product Bundles"
|
4198 |
msgstr ""
|
4199 |
|
4200 |
+
# 'name' => 'language',
|
4201 |
+
# 'label' => __( 'Language', 'woo_ce' ),
|
4202 |
+
# 'default' => 1
|
4203 |
|
4204 |
+
msgid "Language"
|
4205 |
msgstr ""
|
4206 |
|
4207 |
+
# 'name' => 'translation_of',
|
4208 |
+
# 'label' => __( 'Translation of', 'woo_ce' ),
|
4209 |
+
# 'default' => 1
|
4210 |
|
4211 |
+
msgid "Translation of"
|
4212 |
msgstr ""
|
4213 |
|
4214 |
+
#
|
4215 |
+
# $tour_section = new WPML_Editor_UI_Field_Section( __('Tour Data', 'woocommerce-multilingual'));
|
4216 |
+
#
|
4217 |
|
4218 |
+
msgid "Tour Data"
|
4219 |
msgstr ""
|
4220 |
|
4221 |
+
# $group->add_field($composite_field);
|
4222 |
+
# $composite_field = new WPML_Editor_UI_Single_Line_Field('adventure_tour_' . $tour_tab_id . '_content', __('Content', 'woocommerce-multilingual'), $data, false);
|
4223 |
+
# $group->add_field($composite_field);
|
4224 |
|
4225 |
+
msgid "Content"
|
4226 |
msgstr ""
|
4227 |
|
4228 |
+
# $pointer_ui = new WCML_Pointer_UI(
|
4229 |
+
# sprintf( __( 'You can translate this method title on the %sWPML String Translation page%s. Use the search on the top of that page to find the method title string.', 'woocommerce-multilingual' ), '<a href="'.admin_url('admin.php?page='.WPML_ST_FOLDER.'/menu/string-translation.php').'">', '</a>' ),
|
4230 |
+
# 'https://wpml.org/documentation/woocommerce-extensions-compatibility/translating-woocommerce-table-rate-shipping-woocommerce-multilingual/',
|
4231 |
|
4232 |
+
msgid "You can translate this method title on the %sWPML String Translation page%s. Use the search on the top of that page to find the method title string."
|
4233 |
msgstr ""
|
4234 |
|
4235 |
+
# $pointer_ui = new WCML_Pointer_UI(
|
4236 |
+
# sprintf( __( 'You can translate the labels of your table rates on the %sWPML String Translation page%s. Use the search on the top of that page to find the labels strings.', 'woocommerce-multilingual' ), '<a href="'.admin_url('admin.php?page='.WPML_ST_FOLDER.'/menu/string-translation.php').'">', '</a>' ),
|
4237 |
+
# 'https://wpml.org/documentation/woocommerce-extensions-compatibility/translating-woocommerce-table-rate-shipping-woocommerce-multilingual/',
|
4238 |
|
4239 |
+
msgid "You can translate the labels of your table rates on the %sWPML String Translation page%s. Use the search on the top of that page to find the labels strings."
|
4240 |
msgstr ""
|
4241 |
|
4242 |
+
# echo '<input type="radio" name="_wcml_custom_costs" id="wcml_custom_costs_auto" value="0" class="wcml_custom_costs_input" '. $checked .' />';
|
4243 |
+
# echo '<label for="wcml_custom_costs_auto">'. __('Calculate costs in other currencies automatically', 'woocommerce-multilingual') .'</label>';
|
4244 |
+
#
|
4245 |
|
4246 |
+
msgid "Calculate costs in other currencies automatically"
|
4247 |
msgstr ""
|
4248 |
|
4249 |
+
# echo '<input type="radio" name="_wcml_custom_costs" value="1" id="wcml_custom_costs_manually" class="wcml_custom_costs_input" '. $checked .' />';
|
4250 |
+
# echo '<label for="wcml_custom_costs_manually">'. __('Set costs in other currencies manually', 'woocommerce-multilingual') .'</label>';
|
4251 |
+
#
|
4252 |
|
4253 |
+
msgid "Set costs in other currencies manually"
|
4254 |
msgstr ""
|
4255 |
|
4256 |
+
# case 'wcml_wc_booking_base_cost':
|
4257 |
+
# woocommerce_wp_text_input( array( 'id' => 'wcml_wc_booking_base_cost', 'class'=>'wcml_bookings_custom_price', 'name' => 'wcml_wc_accommodation_booking_base_cost['.$currency_code.']', 'label' => get_woocommerce_currency_symbol($currency_code), 'description' => __( 'This is the cost per block booked. All other costs (for resources and persons) are added to this.', 'woocommerce-bookings' ), 'value' => get_post_meta( $post_id, '_wc_booking_base_cost_'.$currency_code, true ), 'type' => 'number', 'desc_tip' => true, 'custom_attributes' => array(
|
4258 |
+
# 'min' => '',
|
4259 |
|
4260 |
+
msgid "This is the cost per block booked. All other costs (for resources and persons) are added to this."
|
4261 |
msgstr ""
|
4262 |
|
4263 |
+
# $pointer_ui = new WCML_Pointer_UI(
|
4264 |
+
# sprintf( __( 'You can translate strings related to global add-ons on the %sWPML String Translation page%s. Use the search on the top of that page to find the strings.', 'woocommerce-multilingual' ), '<a href="'.admin_url('admin.php?page='.WPML_ST_FOLDER.'/menu/string-translation.php&context=wc_product_addons_strings').'">', '</a>' ),
|
4265 |
+
# 'https://wpml.org/documentation/woocommerce-extensions-compatibility/translating-woocommerce-product-add-ons-woocommerce-multilingual/',
|
4266 |
|
4267 |
+
msgid "You can translate strings related to global add-ons on the %sWPML String Translation page%s. Use the search on the top of that page to find the strings."
|
4268 |
msgstr ""
|
4269 |
|
4270 |
+
#
|
4271 |
+
# $addons_section = new WPML_Editor_UI_Field_Section( sprintf( __( 'Product Add-ons Group "%s"', 'woocommerce-multilingual' ), $product_addon['name'] ) );
|
4272 |
+
#
|
4273 |
|
4274 |
+
msgid "Product Add-ons Group \"%s\""
|
4275 |
msgstr ""
|
4276 |
|
4277 |
+
#
|
4278 |
+
# $labels_group = new WPML_Editor_UI_Field_Group( __( 'Options', 'woocommerce-multilingual' ) , true );
|
4279 |
+
#
|
4280 |
|
4281 |
+
msgid "Options"
|
4282 |
msgstr ""
|
4283 |
|
4284 |
+
# foreach ( $product_addon['options'] as $option_id => $option ) {
|
4285 |
+
# $option_label_field = new WPML_Editor_UI_Single_Line_Field( 'addon_'.$addon_id.'_option_'.$option_id.'_label', __( 'Label', 'woocommerce-multilingual' ), $data, false );
|
4286 |
+
# $labels_group->add_field( $option_label_field );
|
4287 |
|
4288 |
+
msgid "Label"
|
4289 |
msgstr ""
|
4290 |
|
4291 |
+
# $pointer_ui = new WCML_Pointer_UI(
|
4292 |
+
# sprintf( __( 'You can translate the Group Name, Group Description and every Option Label of your product add-on on the %sWooCommerce product translation page%s', 'woocommerce-multilingual' ), '<a href="'.admin_url('admin.php?page=wpml-wcml').'">', '</a>' ),
|
4293 |
+
# 'https://wpml.org/documentation/woocommerce-extensions-compatibility/translating-woocommerce-product-add-ons-woocommerce-multilingual/',
|
4294 |
|
4295 |
+
msgid "You can translate the Group Name, Group Description and every Option Label of your product add-on on the %sWooCommerce product translation page%s"
|
4296 |
msgstr ""
|
4297 |
|
4298 |
+
#
|
4299 |
+
# $tabs_section = new WPML_Editor_UI_Field_Section( __( 'Product tabs', 'woocommerce-multilingual' ) );
|
4300 |
+
#
|
4301 |
|
4302 |
+
msgid "Product tabs"
|
4303 |
msgstr ""
|
4304 |
|
4305 |
+
# $group->add_field( $tab_field );
|
4306 |
+
# $tab_field = new WPML_Editor_UI_Single_Line_Field( 'coretab_' . $prod_tab['id'].'_heading' , __( 'Heading', 'woocommerce-multilingual' ), $data, false );
|
4307 |
+
# $group->add_field( $tab_field );
|
4308 |
|
4309 |
+
msgid "Heading"
|
4310 |
msgstr ""
|
4311 |
|
4312 |
+
# $pointer_ui = new WCML_Pointer_UI(
|
4313 |
+
# sprintf( __( 'You can translate your custom product tabs on the %sWooCommerce product translation page%s', 'woocommerce-multilingual' ), '<a href="'.admin_url('admin.php?page=wpml-wcml').'">', '</a>' ),
|
4314 |
+
# 'https://wpml.org/documentation/woocommerce-extensions-compatibility/translating-woocommerce-tab-manager-woocommerce-multilingual/',
|
4315 |
|
4316 |
+
msgid "You can translate your custom product tabs on the %sWooCommerce product translation page%s"
|
4317 |
msgstr ""
|
4318 |
|
4319 |
+
# 'label' => get_woocommerce_currency_symbol( $currency_code ),
|
4320 |
+
# 'description' => __( 'One-off cost for the booking as a whole.', 'woocommerce-bookings' ),
|
4321 |
+
# 'value' => get_post_meta( $post_id, '_wc_booking_cost_' . $currency_code, true ),
|
4322 |
|
4323 |
+
msgid "One-off cost for the booking as a whole."
|
4324 |
msgstr ""
|
4325 |
|
4326 |
+
# 'label' => get_woocommerce_currency_symbol( $currency_code ),
|
4327 |
+
# 'description' => __( 'The cost is displayed to the user on the frontend. Leave blank to have it calculated for you. If a booking has varying costs, this will be prefixed with the word "from:".', 'woocommerce-bookings' ),
|
4328 |
+
# 'value' => get_post_meta( $post_id, '_wc_display_cost_' . $currency_code, true ),
|
4329 |
|
4330 |
+
msgid "The cost is displayed to the user on the frontend. Leave blank to have it calculated for you. If a booking has varying costs, this will be prefixed with the word \"from:\"."
|
4331 |
msgstr ""
|
4332 |
|
4333 |
+
#
|
4334 |
+
# $bookings_section = new WPML_Editor_UI_Field_Section( __( 'Bookings', 'woocommerce-multilingual' ) );
|
4335 |
+
#
|
4336 |
|
4337 |
+
msgid "Bookings"
|
4338 |
msgstr ""
|
4339 |
|
4340 |
+
# $group = new WPML_Editor_UI_Field_Group( '', true );
|
4341 |
+
# $booking_field = new WPML_Editor_UI_Single_Line_Field( '_wc_booking_resouce_label', __( 'Resources Label', 'woocommerce-multilingual' ), $data, true );
|
4342 |
+
# $group->add_field( $booking_field );
|
4343 |
|
4344 |
+
msgid "Resources Label"
|
4345 |
msgstr ""
|
4346 |
|
4347 |
+
# if ( $orig_resources ) {
|
4348 |
+
# $group = new WPML_Editor_UI_Field_Group( __( 'Resources', 'woocommerce-multilingual' ) );
|
4349 |
+
# $group_title = __( 'Resources', 'woocommerce-multilingual' );
|
4350 |
|
4351 |
+
msgid "Resources"
|
4352 |
msgstr ""
|
4353 |
|
4354 |
+
# $divider = true;
|
4355 |
+
# $group_title = __( 'Person Types', 'woocommerce-multilingual' );
|
4356 |
+
# foreach ( $original_persons as $person_id ) {
|
4357 |
|
4358 |
+
msgid "Person Types"
|
4359 |
msgstr ""
|
4360 |
|
4361 |
+
#
|
4362 |
+
# $person_field = new WPML_Editor_UI_Single_Line_Field( 'bookings-person_' . $person_id . '_title', __( 'Person Type Name', 'woocommerce-multilingual' ), $data, false );
|
4363 |
+
# $group->add_field( $person_field );
|
4364 |
|
4365 |
+
msgid "Person Type Name"
|
4366 |
msgstr ""
|
4367 |
|
4368 |
+
# if ( $meta_key == '_wc_booking_resouce_label' ) {
|
4369 |
+
# return __( 'Resources label', 'woocommerce-multilingual' );
|
4370 |
# }
|
4371 |
|
4372 |
+
msgid "Resources label"
|
4373 |
msgstr ""
|
4374 |
|
4375 |
+
# $pointer_ui = new WCML_Pointer_UI(
|
4376 |
+
# sprintf( __( 'You can translate the titles of your custom Resources on the %sWooCommerce product translation page%s', 'woocommerce-multilingual' ), '<a href="'.admin_url('admin.php?page=wpml-wcml').'">', '</a>' ),
|
4377 |
+
# 'https://wpml.org/documentation/woocommerce-extensions-compatibility/translating-woocommerce-bookings-woocommerce-multilingual/',
|
4378 |
|
4379 |
+
msgid "You can translate the titles of your custom Resources on the %sWooCommerce product translation page%s"
|
4380 |
msgstr ""
|
4381 |
|
4382 |
+
# $pointer_ui = new WCML_Pointer_UI(
|
4383 |
+
# sprintf( __( 'You can translate the Person Type Name and Description on the %sWooCommerce product translation page%s', 'woocommerce-multilingual' ), '<a href="'.admin_url('admin.php?page=wpml-wcml').'">', '</a>' ),
|
4384 |
+
# 'https://wpml.org/documentation/woocommerce-extensions-compatibility/translating-woocommerce-bookings-woocommerce-multilingual/',
|
4385 |
|
4386 |
+
msgid "You can translate the Person Type Name and Description on the %sWooCommerce product translation page%s"
|
4387 |
msgstr ""
|
4388 |
|
4389 |
+
# <tr valign="top">
|
4390 |
+
# <th scope="row"><?php _e( 'Booking currency', 'woocommerce-multilingual' ); ?></th>
|
4391 |
+
# <td>
|
4392 |
|
4393 |
+
msgid "Booking currency"
|
4394 |
msgstr ""
|
4395 |
|
4396 |
+
# if( $this->is_subscriptions_product( $product_id ) || $this->new_subscription ){
|
4397 |
+
# $labels[ '_regular_price' ] = __( 'Subscription Price', 'woocommerce-multilingual' );
|
4398 |
+
# $labels[ '_subscription_sign_up_fee' ] = __( 'Sign-up Fee', 'woocommerce-multilingual' );
|
4399 |
|
4400 |
+
msgid "Subscription Price"
|
4401 |
msgstr ""
|
4402 |
|
4403 |
+
# $labels[ '_regular_price' ] = __( 'Subscription Price', 'woocommerce-multilingual' );
|
4404 |
+
# $labels[ '_subscription_sign_up_fee' ] = __( 'Sign-up Fee', 'woocommerce-multilingual' );
|
4405 |
# }
|
4406 |
|
4407 |
+
msgid "Sign-up Fee"
|
4408 |
msgstr ""
|
4409 |
|
4410 |
+
# $pointer_ui = new WCML_Pointer_UI(
|
4411 |
+
# sprintf( __( 'You can translate strings related to subscription products on the %sWPML String Translation page%s. Use the search on the top of that page to find the strings.', 'woocommerce-multilingual' ), '<a href="'.admin_url('admin.php?page='.WPML_ST_FOLDER.'/menu/string-translation.php&context=woocommerce_subscriptions').'">', '</a>' ),
|
4412 |
+
# 'https://wpml.org/documentation/woocommerce-extensions-compatibility/translating-woocommerce-subscriptions-woocommerce-multilingual/',
|
4413 |
|
4414 |
+
msgid "You can translate strings related to subscription products on the %sWPML String Translation page%s. Use the search on the top of that page to find the strings."
|
4415 |
+
msgstr ""
|
4416 |
+
|
4417 |
+
# $message = '<div><p class="icl_cyan_box">';
|
4418 |
+
# $message .= sprintf(__('To translate Extra Options strings please save %s and go to the <b><a href="%s">String Translation interface</a></b>', 'woocommerce-multilingual'), $text, admin_url('admin.php?page='.WPML_ST_FOLDER.'/menu/string-translation.php&context=wc_extra_product_options'));
|
4419 |
+
# $message .= '</p></div>';
|
4420 |
+
|
4421 |
+
msgid "To translate Extra Options strings please save %s and go to the <b><a href=\"%s\">String Translation interface</a></b>"
|
4422 |
msgstr ""
|
locale/woocommerce-multilingual-ar.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-de_DE.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-el.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-es_ES.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-fr_FR.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-he_IL.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-it_IT.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-ja.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-ko_KR.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-nl_NL.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-pl_PL.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-pt_BR.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-pt_PT.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-ru_RU.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-sv_SE.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-uk_UA.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-vi.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-zh_CN.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-zh_TW.mo
CHANGED
Binary file
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: CMS, woocommerce, commerce, ecommerce, e-commerce, products, WPML, multili
|
|
5 |
License: GPLv2
|
6 |
Requires at least: 3.9
|
7 |
Tested up to: 4.8.1
|
8 |
-
Stable tag: 4.2.
|
9 |
|
10 |
Allows running fully multilingual e-commerce sites using WooCommerce and WPML.
|
11 |
|
@@ -142,6 +142,23 @@ WooCommerce Multilingual is compatible with all major WooCommerce extensions. We
|
|
142 |
|
143 |
== Changelog ==
|
144 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
= 4.2.1.1 =
|
146 |
* WC Subscriptions compatibility error
|
147 |
|
5 |
License: GPLv2
|
6 |
Requires at least: 3.9
|
7 |
Tested up to: 4.8.1
|
8 |
+
Stable tag: 4.2.2
|
9 |
|
10 |
Allows running fully multilingual e-commerce sites using WooCommerce and WPML.
|
11 |
|
142 |
|
143 |
== Changelog ==
|
144 |
|
145 |
+
= 4.2.2 =
|
146 |
+
* Added a filter to include links to the String Translation table for custom options/settings in Woocommerce Gateway settings panel
|
147 |
+
* Added logic to display a warning in the back-end when built in taxonomies translation status (set to 'translate') is overridden
|
148 |
+
* Added the ability to translate the currency switcher format in String Translation
|
149 |
+
* My account Bookings list page displays bookings in all languages
|
150 |
+
* Updating variable product does not refresh product visibility terms
|
151 |
+
* Currency switcher doesn't reload the product page if # is present in the URL
|
152 |
+
* Fixed a PHP fatal error that was occurring when using WooCommerce Multilingual together with Sensei
|
153 |
+
* The 'featured' product field was not synchronized across product translations
|
154 |
+
* When updating a translation, the product translation slug was overwritten if product contains page builders fields
|
155 |
+
* The 'reset password' form in a secondary language pointed to a 404 error
|
156 |
+
* "product/%product_cat%" product permalink doesn't work for products without category assigned in second language if "Uncategorized" string not translated in String Translation module
|
157 |
+
* It was not possible to set the custom price value in secondary currencies as '0'
|
158 |
+
* It was not possible to translate attribute slugs if the attributes base was not translated
|
159 |
+
* Currency switcher styles were not loaded when using only a shortcode currency switcher
|
160 |
+
* The customer order email was sent in default language when the 'Processing' button was clicked on the back-end
|
161 |
+
|
162 |
= 4.2.1.1 =
|
163 |
* WC Subscriptions compatibility error
|
164 |
|
res/js/lock_fields.js
CHANGED
@@ -123,7 +123,7 @@ jQuery(document).ready(function($){
|
|
123 |
});
|
124 |
|
125 |
|
126 |
-
$('#product_attributes input[type="checkbox"]').each(function(){
|
127 |
$(this).attr('disabled','disabled');
|
128 |
$(this).after($('.wcml_lock_img').clone().removeClass('wcml_lock_img').show());
|
129 |
});
|
123 |
});
|
124 |
|
125 |
|
126 |
+
$('#product_attributes input[type="checkbox"],#_featured').each(function(){
|
127 |
$(this).attr('disabled','disabled');
|
128 |
$(this).after($('.wcml_lock_img').clone().removeClass('wcml_lock_img').show());
|
129 |
});
|
res/js/lock_fields.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(document).ready(function(
|
1 |
+
jQuery(document).ready(function($){var i;var ids=["_virtual","_downloadable","product-type","_backorders","_manage_stock","_stock","_stock_status","_sold_individually","comment_status","_tax_status","_tax_class","parent_id","crosssell_ids","upsell_ids","grouped_products","product_shipping_class"];if(unlock_fields.file_paths==1){ids.push("_download_type")}ids=ids.concat(non_standard_fields.ids);$(".wcml_prod_hidden_notice").prependTo("#woocommerce-product-data");for(i=0;i<ids.length;i++){$("#"+ids[i]).attr("disabled","disabled");$("#"+ids[i]).after($(".wcml_lock_img").clone().removeClass("wcml_lock_img").show())}var buttons=["add_variation","link_all_variations","attribute_taxonomy","save_attributes","add_new_attribute","product_attributes .remove_row","add_attribute","select_all_attributes","select_no_attributes","edit-visibility"];buttons=buttons.concat(non_standard_fields.classes);if(unlock_fields.file_paths==1){buttons.push("upload_file_button");buttons.push("insert");buttons.push("delete");$(".upload_file_button,.insert,.delete").bind({click:function(e){return false}})}for(i=0;i<buttons.length;i++){$("."+buttons[i]).attr("disabled","disabled");$("."+buttons[i]).after($(".wcml_lock_img").clone().removeClass("wcml_lock_img").show())}$("#visibility .edit-visibility span").bind({click:function(e){return false}});$(".remove_variation").each(function(){$(this).attr("disabled","disabled");$(this).after($(".wcml_lock_img").clone().removeClass("wcml_lock_img").show().css("float","right"))});var inpt_names=["_width","_height","_sku","_length","_weight","product_length","_regular_price","_sale_price","_sale_price_dates_from","_sale_price_dates_to"];if(unlock_fields.file_paths==1){inpt_names.push("_download_limit");inpt_names.push("_download_expiry");inpt_names.push("_wc_file_names[]");inpt_names.push("_wc_file_urls[]")}inpt_names=inpt_names.concat(non_standard_fields.input_names);if(unlock_fields.menu_order==1){inpt_names.push("menu_order")}for(i=0;i<inpt_names.length;i++){$('input[name="'+inpt_names[i]+'"]').attr("readonly","readonly");$(".dimensions_field span.wrap").css("float","left");if(inpt_names[i]=="_width"||inpt_names[i]=="_height"||inpt_names[i]=="_length"){$('input[name="'+inpt_names[i]+'"]').css("margin-right",0);$('input[name="'+inpt_names[i]+'"]').css("float","none");$('input[name="'+inpt_names[i]+'"]').css("width","29%")}if(inpt_names[i]=="_sale_price_dates_to"){$('input[name="'+inpt_names[i]+'"]').after($(".wcml_lock_img").clone().removeClass("wcml_lock_img").css("float","left").show())}else{$('input[name="'+inpt_names[i]+'"]').after($(".wcml_lock_img").clone().removeClass("wcml_lock_img").show())}}$('#product_attributes td textarea,#product_attributes input[type="text"]').each(function(){$(this).attr("readonly","readonly");$(this).after($(".wcml_lock_img").clone().removeClass("wcml_lock_img").show())});$('#product_attributes input[type="checkbox"],#_featured').each(function(){$(this).attr("disabled","disabled");$(this).after($(".wcml_lock_img").clone().removeClass("wcml_lock_img").show())});$('form#post input[type="submit"]').click(function(){for(i=0;i<ids.length;i++){$("#"+ids[i]).removeAttr("disabled")}$('.woocommerce_variation select,#variable_product_options .toolbar select,.woocommerce_variation input[type="checkbox"],#product_attributes input[type="checkbox"]').each(function(){$(this).removeAttr("disabled")})})});var wcml_lock_variation_fields=function(file_path_sync){var check_attr=jQuery(".woocommerce_variation>h3 select").attr("disabled");if(typeof check_attr!==typeof undefined&&check_attr!==false){return}jQuery(".woocommerce_variation>h3 select, #variable_product_options .toolbar select, .show_if_variation_manage_stock select").each(function(){jQuery(this).attr("disabled","disabled");jQuery(this).parent().append('<input type="hidden" name="'+jQuery(this).attr("name")+'" value="'+jQuery(this).val()+'" />');jQuery(this).after(jQuery(".wcml_lock_img").clone().removeClass("wcml_lock_img").show())});var i=0;var inpt_names=["_width","_height","_sku","_length","_weight","product_length","_regular_price","_sale_price","_sale_price_dates_from","_sale_price_dates_to","_stock","_download_limit","_download_expiry"];for(i=0;i<inpt_names.length;i++){jQuery('input[name^="variable'+inpt_names[i]+'"]').each(function(){jQuery(this).attr("readonly","readonly");jQuery(this).after(jQuery(".wcml_lock_img").clone().removeClass("wcml_lock_img").show())})}var var_checkboxes=["_enabled","_is_downloadable","_is_virtual","_manage_stock"];for(i=0;i<var_checkboxes.length;i++){jQuery('input[name^="variable'+var_checkboxes[i]+'"]').each(function(){jQuery(this).attr("disabled","disabled");if(jQuery(this).prop("checked")){jQuery(this).parent().append('<input type="hidden" name="'+jQuery(this).attr("name")+'" value="'+jQuery(this).val()+'" />')}jQuery(this).after(jQuery(".wcml_lock_img").clone().removeClass("wcml_lock_img").show())})}var var_selectboxes=["_stock_status","_shipping_class","_tax_class"];for(i=0;i<var_selectboxes.length;i++){jQuery('select[name^="variable'+var_selectboxes[i]+'"]').each(function(){jQuery(this).attr("disabled","disabled");jQuery(this).parent().append('<input type="hidden" name="'+jQuery(this).attr("name")+'" value="'+jQuery(this).val()+'" />');jQuery(this).after(jQuery(".wcml_lock_img").clone().removeClass("wcml_lock_img").show())})}if(file_path_sync){for(var key in file_path_sync){if(file_path_sync[key]==1){jQuery('input[name^="_wc_variation_file_names['+key+']"]').each(function(){jQuery(this).attr("readonly","readonly")});jQuery('input[name^="_wc_variation_file_urls['+key+']"]').each(function(){jQuery(this).attr("readonly","readonly");jQuery(this).closest("tr").find(".upload_file_button").attr("disabled","disabled");jQuery(this).closest("tr").find(".delete").attr("disabled","disabled");jQuery(this).closest("tr").find(".delete").after(jQuery(".wcml_lock_img").clone().removeClass("wcml_lock_img").show().css("float","right"))});jQuery('input[name^="_wc_variation_file_urls['+key+']"]').closest("table").find(".insert").attr("disabled","disabled");jQuery('input[name^="_wc_variation_file_urls['+key+']"]').closest("table").find(".insert").after(jQuery(".wcml_lock_img").clone().removeClass("wcml_lock_img").show().css("float","left"))}}}};
|
res/js/wcml-multi-currency.js
CHANGED
@@ -38,19 +38,23 @@ function wcml_load_currency( currency, force_switch ){
|
|
38 |
}else if( typeof response.prevent_switching !== 'undefined' ){
|
39 |
jQuery('body').append( response.prevent_switching );
|
40 |
}else{
|
41 |
-
if(typeof wcml_mc_settings.w3tc !== 'undefined'){
|
42 |
-
var original_url = window.location.href;
|
43 |
-
original_url = original_url.replace(/&wcmlc(\=[^&]*)?(?=&|$)|wcmlc(\=[^&]*)?(&|$)/, '');
|
44 |
-
original_url = original_url.replace(/\?$/, '');
|
45 |
|
46 |
-
|
47 |
-
|
48 |
|
49 |
-
|
50 |
-
var
|
51 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
|
|
|
53 |
window.location = target_location;
|
|
|
54 |
}
|
55 |
}
|
56 |
});
|
38 |
}else if( typeof response.prevent_switching !== 'undefined' ){
|
39 |
jQuery('body').append( response.prevent_switching );
|
40 |
}else{
|
|
|
|
|
|
|
|
|
41 |
|
42 |
+
var target_location = window.location.href;
|
43 |
+
if(-1 !== target_location.indexOf('#') || wcml_mc_settings.w3tc ){
|
44 |
|
45 |
+
var url_dehash = target_location.split('#');
|
46 |
+
var hash = url_dehash.length > 1 ? '#' + url_dehash[1] : '';
|
47 |
+
|
48 |
+
target_location = url_dehash[0]
|
49 |
+
.replace(/&wcmlc(\=[^&]*)?(?=&|$)|wcmlc(\=[^&]*)?(&|$)/, '')
|
50 |
+
.replace(/\?$/, '');
|
51 |
+
|
52 |
+
var url_glue = target_location.indexOf('?') != -1 ? '&' : '?';
|
53 |
+
target_location += url_glue + 'wcmlc=' + currency + hash;
|
54 |
|
55 |
+
}
|
56 |
window.location = target_location;
|
57 |
+
|
58 |
}
|
59 |
}
|
60 |
});
|
res/js/wcml-multi-currency.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
function wcml_load_currency(a,b){var c=jQuery('<img style="margin-left:10px;" width="16" heigth="16" src="'+wcml_mc_settings.wcml_spinner+'" />');jQuery(".wcml_currency_switcher").after()
|
1 |
+
jQuery(document).ready(function(){jQuery(document).on("click",".wcml_currency_switcher a",function(a){a.preventDefault();if(jQuery(this).is(":disabled")||jQuery(this).parent().hasClass("wcml-cs-active-currency")||jQuery(this).hasClass("wcml-cs-active-currency")){return false}else{jQuery(this).off(a)}wcml_load_currency(jQuery(this).attr("rel"))});if(typeof woocommerce_price_slider_params!=="undefined"){woocommerce_price_slider_params.currency_symbol=wcml_mc_settings.current_currency.symbol}});function wcml_load_currency(a,b){var c=jQuery('<img style="margin-left:10px;" width="16" heigth="16" src="'+wcml_mc_settings.wcml_spinner+'" />');jQuery(".wcml_currency_switcher").after();c.insertAfter(jQuery(".wcml_currency_switcher"));if(typeof b==="undefined"){b=0}jQuery.ajax({type:"post",url:woocommerce_params.ajax_url,dataType:"json",data:{action:"wcml_switch_currency",currency:a,force_switch:b},success:function(f){if(typeof f.error!=="undefined"){alert(f.error)}else{if(typeof f.prevent_switching!=="undefined"){jQuery("body").append(f.prevent_switching)}else{var h=window.location.href;if(-1!==h.indexOf("#")||wcml_mc_settings.w3tc){var e=h.split("#");var g=e.length>1?"#"+e[1]:"";h=e[0].replace(/&wcmlc(\=[^&]*)?(?=&|$)|wcmlc(\=[^&]*)?(&|$)/,"").replace(/\?$/,"");var d=h.indexOf("?")!=-1?"&":"?";h+=d+"wcmlc="+a+g}window.location=h}}}})};
|
templates/menus-wrap.twig
CHANGED
@@ -4,10 +4,12 @@
|
|
4 |
<a class="nav-tab {{ menu.products.active }}" href="{{ menu.products.url }}">{{ menu.products.title }}</a>
|
5 |
{% if can_operate_options %}
|
6 |
{% for key, taxonomy in menu.taxonomies %}
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
|
|
|
|
11 |
{% endfor %}
|
12 |
{% if menu.custom_taxonomies.show %}
|
13 |
<a class="nav-tab tax-custom-taxonomies {{ menu.custom_taxonomies.active }}" href="{{ menu.custom_taxonomies.url }}">
|
@@ -19,11 +21,12 @@
|
|
19 |
{{ menu.attributes.name }}
|
20 |
{% if menu.attributes.translated == false %}<i class="otgs-ico-warning"></i>{% endif %}
|
21 |
</a>
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
|
|
27 |
{% endif %}
|
28 |
|
29 |
{% if can_manage_options %}
|
4 |
<a class="nav-tab {{ menu.products.active }}" href="{{ menu.products.url }}">{{ menu.products.title }}</a>
|
5 |
{% if can_operate_options %}
|
6 |
{% for key, taxonomy in menu.taxonomies %}
|
7 |
+
{% if taxonomy.is_translatable %}
|
8 |
+
<a class="js-tax-tab-{{ key }} nav-tab {{ taxonomy.active }}" href="{{ taxonomy.url }}" title="{{ taxonomy.title }}">
|
9 |
+
{{ taxonomy.name }}
|
10 |
+
{% if taxonomy.translated == false %}<i class="otgs-ico-warning"></i>{% endif %}
|
11 |
+
</a>
|
12 |
+
{% endif %}
|
13 |
{% endfor %}
|
14 |
{% if menu.custom_taxonomies.show %}
|
15 |
<a class="nav-tab tax-custom-taxonomies {{ menu.custom_taxonomies.active }}" href="{{ menu.custom_taxonomies.url }}">
|
21 |
{{ menu.attributes.name }}
|
22 |
{% if menu.attributes.translated == false %}<i class="otgs-ico-warning"></i>{% endif %}
|
23 |
</a>
|
24 |
+
{% if menu.shipping_classes.is_translatable %}
|
25 |
+
<a class="js-tax-tab-product_shipping_class nav-tab {{ menu.shipping_classes.active }}" href="{{ menu.shipping_classes.url }}"
|
26 |
+
title="{{ menu.shipping_classes.title }}">{{ menu.shipping_classes.name }}
|
27 |
+
{% if menu.shipping_classes.translated == false %}<i class="otgs-ico-warning"></i>{% endif %}
|
28 |
+
</a>
|
29 |
+
{% endif %}
|
30 |
{% endif %}
|
31 |
|
32 |
{% if can_manage_options %}
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit26b78b895c369b76ca5b5c1e11d29c8f::getLoader();
|
vendor/autoload_52.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit08ea26d83f29a065ad634d98bd3ceb1f::getLoader();
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -429,6 +429,7 @@ return array(
|
|
429 |
'WCML_WC_Name_Your_Price' => $baseDir . '/compatibility/class-wcml-wc-name-your-price.php',
|
430 |
'WCML_WC_Product_Bundles_Items' => $baseDir . '/compatibility/includes/class-wcml-wc-product-bundles-items.php',
|
431 |
'WCML_WC_Shipping' => $baseDir . '/inc/class-wcml-wc-shipping.php',
|
|
|
432 |
'WCML_WC_Strings' => $baseDir . '/inc/class-wcml-wc-strings.php',
|
433 |
'WCML_WC_Subscriptions' => $baseDir . '/compatibility/class-wcml-wc-subscriptions.php',
|
434 |
'WCML_WPSEO' => $baseDir . '/compatibility/class-wcml-wpseo.php',
|
429 |
'WCML_WC_Name_Your_Price' => $baseDir . '/compatibility/class-wcml-wc-name-your-price.php',
|
430 |
'WCML_WC_Product_Bundles_Items' => $baseDir . '/compatibility/includes/class-wcml-wc-product-bundles-items.php',
|
431 |
'WCML_WC_Shipping' => $baseDir . '/inc/class-wcml-wc-shipping.php',
|
432 |
+
'WCML_WC_Shortcode_Product_Category' => $baseDir . '/classes/shortcodes/class-wcml-wc-shortcode-product-category.php',
|
433 |
'WCML_WC_Strings' => $baseDir . '/inc/class-wcml-wc-strings.php',
|
434 |
'WCML_WC_Subscriptions' => $baseDir . '/compatibility/class-wcml-wc-subscriptions.php',
|
435 |
'WCML_WPSEO' => $baseDir . '/compatibility/class-wcml-wpseo.php',
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit7428252d40ecd68dca24189fb1e0bbda
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
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\
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit26b78b895c369b76ca5b5c1e11d29c8f
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit26b78b895c369b76ca5b5c1e11d29c8f', 'loadClassLoader'), true, true);
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit26b78b895c369b76ca5b5c1e11d29c8f', '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\ComposerStaticInit26b78b895c369b76ca5b5c1e11d29c8f::getInitializer($loader));
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
vendor/composer/autoload_real_52.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
-
class
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInite917294c6a0811f3e39ea77404f0eb46 {
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
+
class ComposerAutoloaderInit08ea26d83f29a065ad634d98bd3ceb1f {
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit08ea26d83f29a065ad634d98bd3ceb1f', 'loadClassLoader'), true /*, true */);
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit08ea26d83f29a065ad634d98bd3ceb1f', 'loadClassLoader'));
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
'C' =>
|
@@ -461,6 +461,7 @@ class ComposerStaticInit7428252d40ecd68dca24189fb1e0bbda
|
|
461 |
'WCML_WC_Name_Your_Price' => __DIR__ . '/../..' . '/compatibility/class-wcml-wc-name-your-price.php',
|
462 |
'WCML_WC_Product_Bundles_Items' => __DIR__ . '/../..' . '/compatibility/includes/class-wcml-wc-product-bundles-items.php',
|
463 |
'WCML_WC_Shipping' => __DIR__ . '/../..' . '/inc/class-wcml-wc-shipping.php',
|
|
|
464 |
'WCML_WC_Strings' => __DIR__ . '/../..' . '/inc/class-wcml-wc-strings.php',
|
465 |
'WCML_WC_Subscriptions' => __DIR__ . '/../..' . '/compatibility/class-wcml-wc-subscriptions.php',
|
466 |
'WCML_WPSEO' => __DIR__ . '/../..' . '/compatibility/class-wcml-wpseo.php',
|
@@ -479,10 +480,10 @@ class ComposerStaticInit7428252d40ecd68dca24189fb1e0bbda
|
|
479 |
public static function getInitializer(ClassLoader $loader)
|
480 |
{
|
481 |
return \Closure::bind(function () use ($loader) {
|
482 |
-
$loader->prefixLengthsPsr4 =
|
483 |
-
$loader->prefixDirsPsr4 =
|
484 |
-
$loader->prefixesPsr0 =
|
485 |
-
$loader->classMap =
|
486 |
|
487 |
}, null, ClassLoader::class);
|
488 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInit26b78b895c369b76ca5b5c1e11d29c8f
|
8 |
{
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
'C' =>
|
461 |
'WCML_WC_Name_Your_Price' => __DIR__ . '/../..' . '/compatibility/class-wcml-wc-name-your-price.php',
|
462 |
'WCML_WC_Product_Bundles_Items' => __DIR__ . '/../..' . '/compatibility/includes/class-wcml-wc-product-bundles-items.php',
|
463 |
'WCML_WC_Shipping' => __DIR__ . '/../..' . '/inc/class-wcml-wc-shipping.php',
|
464 |
+
'WCML_WC_Shortcode_Product_Category' => __DIR__ . '/../..' . '/classes/shortcodes/class-wcml-wc-shortcode-product-category.php',
|
465 |
'WCML_WC_Strings' => __DIR__ . '/../..' . '/inc/class-wcml-wc-strings.php',
|
466 |
'WCML_WC_Subscriptions' => __DIR__ . '/../..' . '/compatibility/class-wcml-wc-subscriptions.php',
|
467 |
'WCML_WPSEO' => __DIR__ . '/../..' . '/compatibility/class-wcml-wpseo.php',
|
480 |
public static function getInitializer(ClassLoader $loader)
|
481 |
{
|
482 |
return \Closure::bind(function () use ($loader) {
|
483 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInit26b78b895c369b76ca5b5c1e11d29c8f::$prefixLengthsPsr4;
|
484 |
+
$loader->prefixDirsPsr4 = ComposerStaticInit26b78b895c369b76ca5b5c1e11d29c8f::$prefixDirsPsr4;
|
485 |
+
$loader->prefixesPsr0 = ComposerStaticInit26b78b895c369b76ca5b5c1e11d29c8f::$prefixesPsr0;
|
486 |
+
$loader->classMap = ComposerStaticInit26b78b895c369b76ca5b5c1e11d29c8f::$classMap;
|
487 |
|
488 |
}, null, ClassLoader::class);
|
489 |
}
|
wpml-config.xml
CHANGED
@@ -75,6 +75,7 @@
|
|
75 |
<taxonomy translate="1">product_tag</taxonomy>
|
76 |
<taxonomy translate="0">product_type</taxonomy>
|
77 |
<taxonomy translate="0">shop_order_status</taxonomy>
|
|
|
78 |
<taxonomy translate="1">product_shipping_class</taxonomy>
|
79 |
</taxonomies>
|
80 |
<admin-texts>
|
75 |
<taxonomy translate="1">product_tag</taxonomy>
|
76 |
<taxonomy translate="0">product_type</taxonomy>
|
77 |
<taxonomy translate="0">shop_order_status</taxonomy>
|
78 |
+
<taxonomy translate="0">product_visibility</taxonomy>
|
79 |
<taxonomy translate="1">product_shipping_class</taxonomy>
|
80 |
</taxonomies>
|
81 |
<admin-texts>
|
wpml-woocommerce.php
CHANGED
@@ -8,14 +8,14 @@
|
|
8 |
Text Domain: woocommerce-multilingual
|
9 |
Requires at least: 3.9
|
10 |
Tested up to: 4.8.1
|
11 |
-
Version: 4.2.
|
12 |
*/
|
13 |
|
14 |
if ( defined( 'WCML_VERSION' ) ) {
|
15 |
return;
|
16 |
}
|
17 |
|
18 |
-
define( 'WCML_VERSION', '4.2.
|
19 |
define( 'WCML_PLUGIN_PATH', dirname( __FILE__ ) );
|
20 |
define( 'WCML_PLUGIN_FOLDER', basename( WCML_PLUGIN_PATH ) );
|
21 |
define( 'WCML_LOCALE_PATH', WCML_PLUGIN_PATH . '/locale' );
|
8 |
Text Domain: woocommerce-multilingual
|
9 |
Requires at least: 3.9
|
10 |
Tested up to: 4.8.1
|
11 |
+
Version: 4.2.2
|
12 |
*/
|
13 |
|
14 |
if ( defined( 'WCML_VERSION' ) ) {
|
15 |
return;
|
16 |
}
|
17 |
|
18 |
+
define( 'WCML_VERSION', '4.2.2' );
|
19 |
define( 'WCML_PLUGIN_PATH', dirname( __FILE__ ) );
|
20 |
define( 'WCML_PLUGIN_FOLDER', basename( WCML_PLUGIN_PATH ) );
|
21 |
define( 'WCML_LOCALE_PATH', WCML_PLUGIN_PATH . '/locale' );
|