diff --git a/assets/css/admin.css b/assets/css/admin.css index 184be13..1138bd7 100644 --- a/assets/css/admin.css +++ b/assets/css/admin.css @@ -15,6 +15,17 @@ } /* Subscriptions Admin Page */ +.post-type-shop_subscription .tablenav input, +.post-type-shop_subscription .tablenav select { + line-height: 32px; + height: 32px; +} +.post-type-shop_subscription .tablenav .select2-container { + width: 200px !important; + font-size: 14px; + vertical-align: middle; + margin: 1px 6px 4px 1px; +} .post-type-shop_subscription .widefat .column-status, .post-type-shop_subscription .widefat .column-order_id, .post-type-shop_subscription .widefat .column-order_title { @@ -201,29 +212,44 @@ a.close-subscriptions-search { display: none !important; } -/* Variation Pricing Fields in WooCommerce 2.3 */ -.variable_subscription_pricing_2_3 .wc_input_subscription_price { - max-width: 24%; - clear: left; +/* Variation Pricing Fields with WooCommerce 3.0+ */ +.wc-metaboxes-wrapper .variable_subscription_trial label, +.wc-metaboxes-wrapper .variable_subscription_pricing label, +.wc-metaboxes-wrapper .variable_subscription_sync label { + display: block; +} +.wc-metaboxes-wrapper .wc_input_subscription_trial_period, +.wc-metaboxes-wrapper .wc_input_subscription_period, +.wc-metaboxes-wrapper .wc_input_subscription_period_interval, +.wc-metaboxes-wrapper .wc_input_subscription_length, +.wc-metaboxes-wrapper .wc_input_subscription_payment_sync_day, +.wc-metaboxes-wrapper .wc_input_subscription_payment_sync_month { + padding: 4px 6px; + height: 31px; +} + +/* Variation Pricing Fields in WooCommerce 2.3+ */ +.variable_subscription_pricing_2_3 .wc_input_subscription_price, +.variable_subscription_pricing_2_3 .wc_input_subscription_period_interval { + max-width: 33%; float: left; } -.variable_subscription_pricing_2_3 .wc_input_subscription_period_interval { - max-width: 41%; - float: left; +.variable_subscription_pricing_2_3 .wc_input_subscription_price { + clear: left; } .variable_subscription_pricing_2_3 .wc_input_subscription_period { - max-width: 32%; + max-width: 34%; float: right; } .variable_subscription_pricing_2_3.variable_subscription_trial p.form-row { margin-bottom: 0; } -.variable_subscription_pricing_2_3 .wc_input_subscription_trial_period { - max-width: 47%; - float: right; -} +.variable_subscription_pricing_2_3 .wc_input_subscription_trial_period, .variable_subscription_pricing_2_3 .wc_input_subscription_trial_length { - max-width: 48%; + max-width: 50%; +} +.variable_subscription_pricing_2_3 .wc_input_subscription_trial_period { + float: right; } .variable_subscription_pricing_2_3 .variable_subscription_length, .variable_subscription_pricing_2_3 .variable_subscription_trial_sign_up { @@ -270,6 +296,7 @@ a.close-subscriptions-search { /* Add/Edit Subscription Screen */ #woocommerce-subscription-data .handlediv, +#woocommerce-subscription-data h2.hndle, #woocommerce-subscription-data h3.hndle { display: none; } diff --git a/changelog.txt b/changelog.txt index b48dfdb..1ea9f4c 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,41 @@ *** WooCommerce Subscriptions Changelog *** +2017.04.07 - version 2.2.3 +* Fix: WooCommerce 3.0: Improve backward compatibility of get_date( 'start' ) calls for subscriptions without a date created set by WooCommerce 3.0 (which happens when manually adding a new subscriptions). PR#2047 +* Fix: WooCommerce 3.0: Prevent saving subscriptions with a 0 start date/date created by making sure we set a default date created value when manually adding a new subscription. PR#2048 +* Fix: WooCommerce 3.0: Remove the correct 3.0 core function responsible for sending order emails to avoid sending both WooCommerce order emails and Subscriptions order emails. PR#2045 +* Fix: WooCommerce 3.0: Make sure synchronised product meta data is set correctly on subscriptino line items by using WooCommerce 3.0 compatible hook. PR#2049 +* Fix: Make sure filters are applied when getting customer subscriptions with REST API endpoints by using WC_API_Subscriptions::get_subscriptions() instead of a custom query to get customer subscriptions. PR#1806 +* Fix: Display correct variable subscription product "From" prices and grouped subscription products prices to match tax settings. PR#2054 +* Fix: Don't attempt to save shipping and billing fields which aren't set when submitting the Edit Subscription screen to avoid notices. PR#2053 +* Fix: Don't use method return value in write context in REST API to avoid errors on certain versions of PHP. PR#2051 + +2017.04.04 - version 2.2.2 +* Fix: WooCommerce 3.0: Fix using $this when in a static context on newer versions of PHP affecting Edit Subscription and Edit Order screens. PR#2043 +* Fix: WooCommerce 3.0: Grant new product download permissions to all subscriptions because WooCommerce no longer does it for orders (and subscriptions are a custom order type). PR#2039 +* Fix: WooCommerce 3.0: Display subscription related System Status fields in the System Status page on 3.0 which removed old hooks. PR#2039 +* Fix: WooCommerce 3.0: Fix updating payment method and elsewhere via the Edit Subscription administration screen. PR#2037 +* Fix: WooCommerce 3.0: Store correct prorated price for switches against the order line item so it can be used for future switches. PR#2032 + +2017.04.04 - version 2.2.1 +* Fix: WooCommerce 3.0: Add subscription shipping line item tax the same way WooCommerce 3.0 does it. PR#2023 +* Fix: WooCommerce 3.0: Fix division by zero error when manually paying for renewal with offsite payment methods like PayPal. PR#2036 +* Fix: Send customer renewal invoice emails for manual renewals and when creating a pending renewal. PR#2035 +* Fix: Replace use of undefined variable within WC_Subscription::get_failed_payment_count(). PR#2025 + +2017.04.03 - version 2.2.0 +* WooCommerce 3.0 Compatibility Release +* Tweak: add new getters for subscription related product meta data to conform to WooCommerce 3.0's new CRUD system and also prepare for subscription related product meta data to be moved to schemes that can be applied to any product instead of only subscription product types +* Tweak: add new subscription data store to abstract data storage of subscription data from the subscription class, matching WooCommerce 3.0's new approach to data abstraction. +* Tweak: add new subscription getters and setters for all subscription data to conform to WooCommerce 3.0's new CRUD architecture +* Tweak: add new subscription date APIs to work with dates as date/time objects and with nomclementure that aligns with WooCommerce 3.0 +* Tweak: deprecate subscription last payment date APIs because they actual returned the last order date, forcing us to also update the last order date whenever a payment was processed. Two new APIs can now be used: last order date and last order date paid. +* Tweak: improve variable subscription product sync performance by using cache. Also align it with the approach WooCommerce takes. +* Tweak: update Select2 to version 4 to work with the version used by WooCommerce 3.0. +* Tweak: show recurring fees in the recurring totals section on Cart & Checkout pages if 3rd party extensions, like Checkout Add Ons, are adding fees to recurring carts. (PR#2005) +* Fix: don't show Subscription Data metabox title div on WooCommerce > Edit Subscription administration screen with WordPress 4.4. (PR#1998) +* Fix: remove option to order the WooCommerce > Subscriptions administration screen by Status, because this option is not supported. (PR#1996) + 2017.03.06 - version 2.1.4 * Tweak: Lengthen PayPal IPN lock to 5 days to prevent creating duplicate renewal orders when a fatal error occurs in processing the IPN. Prevoiusly the lock was set to 5 minutes, meaning on the 2nd IPN would be ignored. Given fatal errors will rarely be fixed within 5 minutes, Subscriptions will now ignore 5 days worth of IPN retries.(PR#1838 * Tweak: Log exceptions caught while updating subscription statuses to make it easier to diagnose issues with 3rd party code and hosting environment that occur during status transitions. PR#1842 diff --git a/includes/abstracts/abstract-wcs-hook-deprecator.php b/includes/abstracts/abstract-wcs-hook-deprecator.php index 40df949..58a4cf7 100644 --- a/includes/abstracts/abstract-wcs-hook-deprecator.php +++ b/includes/abstracts/abstract-wcs-hook-deprecator.php @@ -100,8 +100,7 @@ abstract class WCS_Hook_Deprecator { * @since 2.0 */ protected static function get_order( $subscription ) { - $order = isset( $subscription->order->id ) ? $subscription->order : $subscription; - return $order; + return ( false == $subscription->get_parent_id() ) ? $subscription : $subscription->get_parent(); } /** @@ -113,7 +112,7 @@ abstract class WCS_Hook_Deprecator { * @since 2.0 */ protected static function get_order_id( $subscription ) { - return isset( $subscription->order->id ) ? $subscription->order->id : $subscription->id; + return ( false == $subscription->get_parent_id() ) ? $subscription->get_id() : $subscription->get_parent_id(); } /** diff --git a/includes/abstracts/abstract-wcs-scheduler.php b/includes/abstracts/abstract-wcs-scheduler.php index 3af2eda..c2dffc2 100644 --- a/includes/abstracts/abstract-wcs-scheduler.php +++ b/includes/abstracts/abstract-wcs-scheduler.php @@ -28,6 +28,14 @@ abstract class WCS_Scheduler { public function set_date_types_to_schedule() { $this->date_types_to_schedule = apply_filters( 'woocommerce_subscriptions_date_types_to_schedule', array_keys( wcs_get_subscription_date_types() ) ); + + if ( isset( $this->date_types_to_schedule['start'] ) ) { + unset( $this->date_types_to_schedule['start'] ); + } + + if ( isset( $this->date_types_to_schedule['last_payment'] ) ) { + unset( $this->date_types_to_schedule['last_payment'] ); + } } protected function get_date_types_to_schedule() { @@ -38,7 +46,7 @@ abstract class WCS_Scheduler { * When a subscription's date is updated, maybe schedule an event * * @param object $subscription An instance of a WC_Subscription object - * @param string $date_type Can be 'start', 'trial_end', 'next_payment', 'last_payment', 'end', 'end_of_prepaid_term' or a custom date type + * @param string $date_type Can be 'trial_end', 'next_payment', 'end', 'end_of_prepaid_term' or a custom date type * @param string $datetime A MySQL formatted date/time string in the GMT/UTC timezone. */ abstract public function update_date( $subscription, $date_type, $datetime ); @@ -47,7 +55,7 @@ abstract class WCS_Scheduler { * When a subscription's date is deleted, clear it from the scheduler * * @param object $subscription An instance of a WC_Subscription object - * @param string $date_type Can be 'start', 'trial_end', 'next_payment', 'last_payment', 'end', 'end_of_prepaid_term' or a custom date type + * @param string $date_type Can be 'trial_end', 'next_payment', 'end', 'end_of_prepaid_term' or a custom date type */ abstract public function delete_date( $subscription, $date_type ); diff --git a/includes/admin/class-wc-subscriptions-admin.php b/includes/admin/class-wc-subscriptions-admin.php index 23a933d..8a8aadb 100644 --- a/includes/admin/class-wc-subscriptions-admin.php +++ b/includes/admin/class-wc-subscriptions-admin.php @@ -41,6 +41,14 @@ class WC_Subscriptions_Admin { */ private static $found_related_orders = false; + /** + * Is meta boxes saved once? + * + * @var boolean + * @since 2.2.0 + */ + private static $saved_product_meta = false; + /** * Bootstraps the class and hooks required actions & filters. * @@ -104,7 +112,7 @@ class WC_Subscriptions_Admin { add_filter( 'set-screen-option', __CLASS__ . '::set_manage_subscriptions_screen_option', 10, 3 ); - add_filter( 'woocommerce_debug_posting', __CLASS__ . '::add_system_status_items' ); + add_filter( 'woocommerce_system_status_report', __CLASS__ . '::render_system_status_items' ); add_filter( 'woocommerce_payment_gateways_setting_columns', __CLASS__ . '::payment_gateways_rewewal_column' ); @@ -304,11 +312,6 @@ class WC_Subscriptions_Admin { public static function variable_subscription_pricing_fields( $loop, $variation_data, $variation ) { global $thepostid; - // Set month as the default billing period - if ( ! $subscription_period = get_post_meta( $variation->ID, '_subscription_period', true ) ) { - $subscription_period = 'month'; - } - // When called via Ajax if ( ! function_exists( 'woocommerce_wp_text_input' ) ) { require_once( WC()->plugin_path() . '/admin/post-types/writepanels/writepanels-init.php' ); @@ -318,6 +321,13 @@ class WC_Subscriptions_Admin { $thepostid = $variation->post_parent; } + $variation_product = wc_get_product( $variation ); + $billing_period = WC_Subscriptions_Product::get_period( $variation_product ); + + if ( empty( $billing_period ) ) { + $billing_period = 'month'; + } + include( plugin_dir_path( WC_Subscriptions::$plugin_file ) . 'templates/admin/html-variation-price.php' ); wp_nonce_field( 'wcs_subscription_variations', '_wcsnonce_save_variations', false ); @@ -354,7 +364,7 @@ class WC_Subscriptions_Admin { */ public static function save_subscription_meta( $post_id ) { - if ( empty( $_POST['_wcsnonce'] ) || ! wp_verify_nonce( $_POST['_wcsnonce'], 'wcs_subscription_meta' ) || ! isset( $_POST['product-type'] ) || ! in_array( $_POST['product-type'], apply_filters( 'woocommerce_subscription_product_types', array( WC_Subscriptions::$name ) ) ) ) { + if ( self::$saved_product_meta || ( empty( $_POST['_wcsnonce'] ) || ! wp_verify_nonce( $_POST['_wcsnonce'], 'wcs_subscription_meta' ) || ! isset( $_POST['product-type'] ) || ! in_array( $_POST['product-type'], apply_filters( 'woocommerce_subscription_product_types', array( WC_Subscriptions::$name ) ) ) ) ) { return; } @@ -420,6 +430,8 @@ class WC_Subscriptions_Admin { } } + // To prevent running this function on multiple save_post triggered events per update. Similar to WC_Admin_Meta_Boxes:$saved_meta_boxes implementation. + self::$saved_product_meta = true; } /** @@ -431,7 +443,7 @@ class WC_Subscriptions_Admin { */ public static function save_variable_subscription_meta( $post_id ) { - if ( empty( $_POST['_wcsnonce'] ) || ! wp_verify_nonce( $_POST['_wcsnonce'], 'wcs_subscription_meta' ) || ! isset( $_POST['product-type'] ) || ! in_array( $_POST['product-type'], apply_filters( 'woocommerce_subscription_variable_product_types', array( 'variable-subscription' ) ) ) ) { + if ( self::$saved_product_meta || ( empty( $_POST['_wcsnonce'] ) || ! wp_verify_nonce( $_POST['_wcsnonce'], 'wcs_subscription_meta' ) || ! isset( $_POST['product-type'] ) || ! in_array( $_POST['product-type'], apply_filters( 'woocommerce_subscription_variable_product_types', array( 'variable-subscription' ) ) ) ) ) { return; } @@ -441,6 +453,8 @@ class WC_Subscriptions_Admin { update_post_meta( $post_id, '_subscription_one_time_shipping', stripslashes( isset( $_REQUEST['_subscription_one_time_shipping'] ) ? 'yes' : 'no' ) ); + // To prevent running this function on multiple save_post triggered events per update. Similar to WC_Admin_Meta_Boxes:$saved_meta_boxes implementation. + self::$saved_product_meta = true; } /** @@ -458,8 +472,8 @@ class WC_Subscriptions_Admin { $price_changed = false; - $old_regular_price = $product->regular_price; - $old_sale_price = $product->sale_price; + $old_regular_price = $product->get_regular_price(); + $old_sale_price = $product->get_sale_price(); if ( ! empty( $_REQUEST['change_regular_price'] ) ) { @@ -490,9 +504,8 @@ class WC_Subscriptions_Admin { if ( isset( $new_price ) && $new_price != $old_regular_price ) { $price_changed = true; - update_post_meta( $product->id, '_regular_price', $new_price ); - update_post_meta( $product->id, '_subscription_price', $new_price ); - $product->regular_price = $new_price; + wcs_set_objects_property( $product, 'regular_price', $new_price ); + wcs_set_objects_property( $product, 'subscription_price', $new_price ); } } @@ -524,33 +537,31 @@ class WC_Subscriptions_Admin { case 4 : if ( strstr( $sale_price, '%' ) ) { $percent = str_replace( '%', '', $sale_price ) / 100; - $new_price = $product->regular_price - ( $product->regular_price * $percent ); + $new_price = $product->get_regular_price() - ( $product->get_regular_price() * $percent ); } else { - $new_price = $product->regular_price - $sale_price; + $new_price = $product->get_regular_price() - $sale_price; } break; } if ( isset( $new_price ) && $new_price != $old_sale_price ) { $price_changed = true; - update_post_meta( $product->id, '_sale_price', $new_price ); - $product->sale_price = $new_price; + wcs_set_objects_property( $product, 'sale_price', $new_price ); } } if ( $price_changed ) { - update_post_meta( $product->id, '_sale_price_dates_from', '' ); - update_post_meta( $product->id, '_sale_price_dates_to', '' ); + wcs_set_objects_property( $product, 'sale_price_dates_from', '' ); + wcs_set_objects_property( $product, 'sale_price_dates_to', '' ); - if ( $product->regular_price < $product->sale_price ) { - $product->sale_price = ''; - update_post_meta( $product->id, '_sale_price', '' ); + if ( $product->get_regular_price() < $product->get_sale_price() ) { + wcs_set_objects_property( $product, 'sale_price', '' ); } - if ( $product->sale_price ) { - update_post_meta( $product->id, '_price', $product->sale_price ); + if ( $product->get_sale_price() ) { + wcs_set_objects_property( $product, 'price', $product->get_sale_price() ); } else { - update_post_meta( $product->id, '_price', $product->regular_price ); + wcs_set_objects_property( $product, 'price', $product->get_regular_price() ); } } } @@ -628,9 +639,12 @@ class WC_Subscriptions_Admin { } // Now that all the variation's meta is saved, sync the min variation price - $variable_subscription = wc_get_product( $post_id ); - $variable_subscription->variable_product_sync(); - + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + $variable_subscription = wc_get_product( $post_id ); + $variable_subscription->variable_product_sync(); + } else { + WC_Product_Variable::sync( $post_id ); + } } /** @@ -652,10 +666,9 @@ class WC_Subscriptions_Admin { public static function check_customer_is_set( $old_status, $new_status, $subscription ) { global $post; - if ( is_admin() && 'active' == $new_status && ! empty( $post ) && 'shop_subscription' === $post->post_type ) { + if ( is_admin() && 'active' == $new_status && isset( $_POST['woocommerce_meta_nonce'] ) && wp_verify_nonce( $_POST['woocommerce_meta_nonce'], 'woocommerce_save_data' ) && isset( $_POST['customer_user'] ) && ! empty( $post ) && 'shop_subscription' === $post->post_type ) { - $customer_user = ( isset( $_POST['customer_user'] ) ) ? sanitize_text_field( $_POST['customer_user'] ) : ''; // csrf in core wp save post function - $user = new WP_User( $customer_user ); + $user = new WP_User( absint( $_POST['customer_user'] ) ); if ( 0 === $user->ID ) { throw new Exception( sprintf( __( 'Unable to change subscription status to "%s". Please assign a customer to the subscription to activate it.', 'woocommerce-subscriptions' ), $new_status ) ); @@ -1375,6 +1388,30 @@ class WC_Subscriptions_Admin { return $list; } + /** + * Renders the Subscription information in the WC status page + */ + public static function render_system_status_items() { + $debug_data = array(); + $is_wcs_debug = defined( 'WCS_DEBUG' ) ? WCS_DEBUG : false; + + $debug_data['wcs_debug'] = array( + 'name' => _x( 'WCS_DEBUG', 'label that indicates whether debugging is turned on for the plugin', 'woocommerce-subscriptions' ), + 'note' => ( $is_wcs_debug ) ? __( 'Yes', 'woocommerce-subscriptions' ) : __( 'No', 'woocommerce-subscriptions' ), + 'success' => $is_wcs_debug ? 0 : 1, + ); + + $debug_data['wcs_staging'] = array( + 'name' => _x( 'Subscriptions Mode', 'Live or Staging, Label on WooCommerce -> System Status page', 'woocommerce-subscriptions' ), + 'note' => '' . ( ( WC_Subscriptions::is_duplicate_site() ) ? _x( 'Staging', 'refers to staging site', 'woocommerce-subscriptions' ) : _x( 'Live', 'refers to live site', 'woocommerce-subscriptions' ) ) . '', + 'success' => ( WC_Subscriptions::is_duplicate_site() ) ? 0 : 1, + ); + + $debug_data = apply_filters( 'wcs_system_status', $debug_data ); + + include( plugin_dir_path( WC_Subscriptions::$plugin_file ) . 'templates/admin/status.php' ); + } + /** * Adds Subscriptions specific details to the WooCommerce System Status report. * @@ -1382,6 +1419,7 @@ class WC_Subscriptions_Admin { * @return array */ public static function add_system_status_items( $debug_data ) { + _deprecated_function( __METHOD__, '2.2.2', __CLASS__ . '::render_system_status_items()' ); $is_wcs_debug = defined( 'WCS_DEBUG' ) ? WCS_DEBUG : false; diff --git a/includes/admin/class-wcs-admin-meta-boxes.php b/includes/admin/class-wcs-admin-meta-boxes.php index a43ab9d..c08f9c1 100644 --- a/includes/admin/class-wcs-admin-meta-boxes.php +++ b/includes/admin/class-wcs-admin-meta-boxes.php @@ -51,7 +51,7 @@ class WCS_Admin_Meta_Boxes { * Add WC Meta boxes */ public function add_meta_boxes() { - global $current_screen, $post_ID; + global $post_ID; add_meta_box( 'woocommerce-subscription-data', _x( 'Subscription Data', 'meta box title', 'woocommerce-subscriptions' ), 'WCS_Meta_Box_Subscription_Data::output', 'shop_subscription', 'normal', 'high' ); @@ -110,7 +110,7 @@ class WCS_Admin_Meta_Boxes { 'i18n_trial_end_next_notice' => __( 'Please enter a date before the next payment.', 'woocommerce-subscriptions' ), 'i18n_end_date_notice' => __( 'Please enter a date after the next payment.', 'woocommerce-subscriptions' ), 'process_renewal_action_warning' => __( "Are you sure you want to process a renewal?\n\nThis will charge the customer and email them the renewal order (if emails are enabled).", 'woocommerce-subscriptions' ), - 'payment_method' => wcs_get_subscription( $post )->payment_method, + 'payment_method' => wcs_get_subscription( $post )->get_payment_method(), 'search_customers_nonce' => wp_create_nonce( 'search-customers' ), ) ) ); } else if ( 'shop_order' == $screen->id ) { @@ -156,7 +156,7 @@ class WCS_Admin_Meta_Boxes { * @since 2.0 */ public static function process_renewal_action_request( $subscription ) { - do_action( 'woocommerce_scheduled_subscription_payment', $subscription->id ); + do_action( 'woocommerce_scheduled_subscription_payment', $subscription->get_id() ); $subscription->add_order_note( __( 'Process renewal order action requested by admin.', 'woocommerce-subscriptions' ), false, true ); } @@ -173,7 +173,7 @@ class WCS_Admin_Meta_Boxes { $renewal_order = wcs_create_renewal_order( $subscription ); if ( ! $subscription->is_manual() ) { - $renewal_order->set_payment_method( $subscription->payment_gateway ); + $renewal_order->set_payment_method( wc_get_payment_gateway_by_order( $subscription ) ); // We need to pass the payment gateway instance to be compatible with WC < 3.0, only WC 3.0+ supports passing the string name } $subscription->add_order_note( __( 'Create pending renewal order requested by admin action.', 'woocommerce-subscriptions' ), false, true ); @@ -207,7 +207,7 @@ class WCS_Admin_Meta_Boxes { // init payment gateways WC()->payment_gateways(); - do_action( 'woocommerce_scheduled_subscription_payment_' . $order->payment_method, $order->get_total(), $order ); + do_action( 'woocommerce_scheduled_subscription_payment_' . wcs_get_objects_property( $order, 'payment_method' ), $order->get_total(), $order ); } } @@ -229,7 +229,8 @@ class WCS_Admin_Meta_Boxes { $can_be_retried = false; - if ( wcs_order_contains_renewal( $order ) && $order->needs_payment() && ! empty( $order->payment_method ) ) { + if ( wcs_order_contains_renewal( $order ) && $order->needs_payment() && '' != wcs_get_objects_property( $order, 'payment_method' ) ) { + $supports_date_changes = false; $order_payment_gateway = wc_get_payment_gateway_by_order( $order ); $order_payment_gateway_supports = ( isset( $order_payment_gateway->id ) ) ? has_action( 'woocommerce_scheduled_subscription_payment_' . $order_payment_gateway->id ) : false; diff --git a/includes/admin/class-wcs-admin-post-types.php b/includes/admin/class-wcs-admin-post-types.php index 42bd36b..fd9f76c 100644 --- a/includes/admin/class-wcs-admin-post-types.php +++ b/includes/admin/class-wcs-admin-post-types.php @@ -159,7 +159,12 @@ class WCS_Admin_Post_Types { // Let's create a temporary table, drop the previous one, because otherwise this query is hella slow $wpdb->query( "DROP TEMPORARY TABLE IF EXISTS {$table_name}" ); - $wpdb->query( "CREATE TEMPORARY TABLE {$table_name} (id INT, INDEX USING BTREE (id), last_payment DATETIME) AS SELECT pm.meta_value as id, MAX( p.post_date_gmt ) as last_payment FROM {$wpdb->postmeta} pm LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id WHERE pm.meta_key = '_subscription_renewal' GROUP BY pm.meta_value" ); + $wpdb->query( + "CREATE TEMPORARY TABLE {$table_name} (id INT, INDEX USING BTREE (id), last_payment DATETIME) AS + SELECT pm.meta_value as id, MAX( p.post_date_gmt ) as last_payment FROM {$wpdb->postmeta} pm + LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id + WHERE pm.meta_key = '_subscription_renewal' + GROUP BY pm.meta_value" ); // Magic ends here $pieces['join'] .= "LEFT JOIN {$table_name} lp @@ -189,9 +194,15 @@ class WCS_Admin_Post_Types { $product_string = wc_get_product( $product_id )->get_formatted_name(); } - ?> - - 'wc-product-search', + 'name' => '_wcs_product', + 'placeholder' => esc_attr__( 'Search for a product…', 'woocommerce-subscriptions' ), + 'action' => 'woocommerce_json_search_products_and_variations', + 'selected' => strip_tags( $product_string ), + 'value' => $product_id, + 'allow_clear' => 'true', + ) ); } /** @@ -401,7 +412,7 @@ class WCS_Admin_Post_Types { 'start_date' => __( 'Start Date', 'woocommerce-subscriptions' ), 'trial_end_date' => __( 'Trial End', 'woocommerce-subscriptions' ), 'next_payment_date' => __( 'Next Payment', 'woocommerce-subscriptions' ), - 'last_payment_date' => __( 'Last Payment', 'woocommerce-subscriptions' ), + 'last_payment_date' => __( 'Last Order Date', 'woocommerce-subscriptions' ), // Keep deprecated 'last_payment_date' key for backward compatibility 'end_date' => __( 'End Date', 'woocommerce-subscriptions' ), 'orders' => _x( 'Orders', 'number of orders linked to a subscription', 'woocommerce-subscriptions' ), ); @@ -416,7 +427,7 @@ class WCS_Admin_Post_Types { public function render_shop_subscription_columns( $column ) { global $post, $the_subscription, $wp_list_table; - if ( empty( $the_subscription ) || $the_subscription->id != $post->ID ) { + if ( empty( $the_subscription ) || $the_subscription->get_id() != $post->ID ) { $the_subscription = wcs_get_subscription( $post->ID ); } @@ -433,7 +444,7 @@ class WCS_Admin_Post_Types { $action_url = add_query_arg( array( - 'post' => $the_subscription->id, + 'post' => $the_subscription->get_id(), '_wpnonce' => wp_create_nonce( 'bulk-posts' ), ) ); @@ -502,14 +513,14 @@ class WCS_Admin_Post_Types { $customer_tip .= _x( 'Billing:', 'meaning billing address', 'woocommerce-subscriptions' ) . ' ' . esc_html( $address ); } - if ( $the_subscription->billing_email ) { + if ( $the_subscription->get_billing_email() ) { // translators: placeholder is customer's billing email - $customer_tip .= '

' . sprintf( __( 'Email: %s', 'woocommerce-subscriptions' ), esc_attr( $the_subscription->billing_email ) ); + $customer_tip .= '

' . sprintf( __( 'Email: %s', 'woocommerce-subscriptions' ), esc_attr( $the_subscription->get_billing_email() ) ); } - if ( $the_subscription->billing_phone ) { + if ( $the_subscription->get_billing_phone() ) { // translators: placeholder is customer's billing phone number - $customer_tip .= '

' . sprintf( __( 'Tel: %s', 'woocommerce-subscriptions' ), esc_html( $the_subscription->billing_phone ) ); + $customer_tip .= '

' . sprintf( __( 'Tel: %s', 'woocommerce-subscriptions' ), esc_html( $the_subscription->get_billing_phone() ) ); } if ( ! empty( $customer_tip ) ) { @@ -523,8 +534,8 @@ class WCS_Admin_Post_Types { $username = ''; - if ( $the_subscription->billing_first_name || $the_subscription->billing_last_name ) { - $username .= esc_html( ucfirst( $the_subscription->billing_first_name ) . ' ' . ucfirst( $the_subscription->billing_last_name ) ); + if ( $the_subscription->get_billing_first_name() || $the_subscription->get_billing_last_name() ) { + $username .= esc_html( ucfirst( $the_subscription->get_billing_first_name() ) . ' ' . ucfirst( $the_subscription->get_billing_last_name() ) ); } elseif ( $user_info->first_name || $user_info->last_name ) { $username .= esc_html( ucfirst( $user_info->first_name ) . ' ' . ucfirst( $user_info->last_name ) ); } else { @@ -533,8 +544,8 @@ class WCS_Admin_Post_Types { $username .= ''; - } elseif ( $the_subscription->billing_first_name || $the_subscription->billing_last_name ) { - $username = trim( $the_subscription->billing_first_name . ' ' . $the_subscription->billing_last_name ); + } elseif ( $the_subscription->get_billing_first_name() || $the_subscription->get_billing_last_name() ) { + $username = trim( $the_subscription->get_billing_first_name() . ' ' . $the_subscription->get_billing_last_name() ); } // translators: $1: is opening link, $2: is subscription order number, $3: is closing link tag, $4: is user's name $column_content = sprintf( _x( '%1$s#%2$s%3$s for %4$s', 'Subscription title on admin table. (e.g.: #211 for John Doe)', 'woocommerce-subscriptions' ), '', '' . esc_attr( $the_subscription->get_order_number() ) . '', '', $username ); @@ -570,7 +581,7 @@ class WCS_Admin_Post_Types { $item_name = sprintf( '%s × %s', absint( $item_quantity ), $item_name ); } if ( $_product ) { - $item_name = sprintf( '%s', get_edit_post_link( $_product->id ), $item_name ); + $item_name = sprintf( '%s', get_edit_post_link( ( $_product->is_type( 'variation' ) ) ? wcs_get_objects_property( $_product, 'parent_id' ) : $_product->get_id() ), $item_name ); } $column_content .= '
'; @@ -606,7 +617,7 @@ class WCS_Admin_Post_Types { $item_name = esc_html( $item_name ); if ( $_product ) { - $item_name = sprintf( '%s', get_edit_post_link( $_product->id ), $item_name ); + $item_name = sprintf( '%s', get_edit_post_link( $_product->get_id() ), $item_name ); } echo wp_kses( $item_name, array( 'a' => array( 'href' => array() ) ) ); @@ -636,10 +647,13 @@ class WCS_Admin_Post_Types { case 'next_payment_date': case 'last_payment_date': case 'end_date': - if ( 0 == $the_subscription->get_time( $column, 'gmt' ) ) { + $date_type_map = array( 'start_date' => 'date_created', 'last_payment_date' => 'last_order_date_created' ); + $date_type = array_key_exists( $column, $date_type_map ) ? $date_type_map[ $column ] : $column; + + if ( 0 == $the_subscription->get_time( $date_type, 'gmt' ) ) { $column_content .= '-'; } else { - $column_content .= sprintf( '', esc_attr( $column ), esc_attr( date( __( 'Y/m/d g:i:s A', 'woocommerce-subscriptions' ) , $the_subscription->get_time( $column, 'site' ) ) ), esc_html( $the_subscription->get_date_to_display( $column ) ) ); + $column_content .= sprintf( '', esc_attr( $column ), esc_attr( date( __( 'Y/m/d g:i:s A', 'woocommerce-subscriptions' ) , $the_subscription->get_time( $date_type, 'site' ) ) ), esc_html( $the_subscription->get_date_to_display( $date_type ) ) ); if ( 'next_payment_date' == $column && $the_subscription->payment_method_supports( 'gateway_scheduled_payments' ) && ! $the_subscription->is_manual() && $the_subscription->has_status( 'active' ) ) { $column_content .= '
'; @@ -667,7 +681,6 @@ class WCS_Admin_Post_Types { public function shop_subscription_sortable_columns( $columns ) { $sortable_columns = array( - 'status' => 'post_status', 'order_title' => 'ID', 'recurring_total' => 'order_total', 'start_date' => 'date', @@ -941,11 +954,9 @@ class WCS_Admin_Post_Types { * @return string the link string */ public function get_related_orders_link( $the_subscription ) { - $order_id = isset( $the_subscription->order->id ) ? $the_subscription->order->id : 0; - return sprintf( '%s', - admin_url( 'edit.php?post_status=all&post_type=shop_order&_subscription_related_orders=' . absint( $the_subscription->id ) ), + admin_url( 'edit.php?post_status=all&post_type=shop_order&_subscription_related_orders=' . absint( $the_subscription->get_id() ) ), count( $the_subscription->get_related_orders() ) ); } diff --git a/includes/admin/meta-boxes/class-wcs-meta-box-related-orders.php b/includes/admin/meta-boxes/class-wcs-meta-box-related-orders.php index 5973902..d30ea1e 100644 --- a/includes/admin/meta-boxes/class-wcs-meta-box-related-orders.php +++ b/includes/admin/meta-boxes/class-wcs-meta-box-related-orders.php @@ -26,7 +26,7 @@ class WCS_Meta_Box_Related_Orders { if ( wcs_is_subscription( $post->ID ) ) { $subscription = wcs_get_subscription( $post->ID ); - $order = ( false == $subscription->order ) ? $subscription : $subscription->order; + $order = ( false == $subscription->get_parent_id() ) ? $subscription : $subscription->get_parent(); } else { $order = wc_get_order( $post->ID ); } @@ -58,7 +58,7 @@ class WCS_Meta_Box_Related_Orders { // First, display all the subscriptions foreach ( $subscriptions as $subscription ) { - $subscription->relationship = __( 'Subscription', 'woocommerce-subscriptions' ); + wcs_set_objects_property( $subscription, 'relationship', __( 'Subscription', 'woocommerce-subscriptions' ), 'set_prop_only' ); $orders[] = $subscription; } @@ -79,7 +79,7 @@ class WCS_Meta_Box_Related_Orders { foreach ( $resubscribed_subscriptions as $subscription ) { $subscription = wcs_get_subscription( $subscription ); - $subscription->relationship = _x( 'Resubscribed Subscription', 'relation to order', 'woocommerce-subscriptions' ); + wcs_set_objects_property( $subscription, 'relationship', _x( 'Resubscribed Subscription', 'relation to order', 'woocommerce-subscriptions' ), 'set_prop_only' ); $orders[] = $subscription; } } else if ( wcs_order_contains_subscription( $post->ID, array( 'resubscribe' ) ) ) { @@ -87,16 +87,17 @@ class WCS_Meta_Box_Related_Orders { } foreach ( $initial_subscriptions as $subscription ) { - $subscription->relationship = _x( 'Initial Subscription', 'relation to order', 'woocommerce-subscriptions' ); + wcs_set_objects_property( $subscription, 'relationship', _x( 'Initial Subscription', 'relation to order', 'woocommerce-subscriptions' ), 'set_prop_only' ); $orders[] = $subscription; } // Now, if we're on a single subscription or renewal order's page, display the parent orders if ( 1 == count( $subscriptions ) ) { foreach ( $subscriptions as $subscription ) { - if ( false !== $subscription->order ) { - $subscription->order->relationship = _x( 'Parent Order', 'relation to order', 'woocommerce-subscriptions' ); - $orders[] = $subscription->order; + if ( $subscription->get_parent_id() ) { + $order = $subscription->get_parent(); + wcs_set_objects_property( $order, 'relationship', _x( 'Parent Order', 'relation to order', 'woocommerce-subscriptions' ), 'set_prop_only' ); + $orders[] = $order; } } } @@ -105,7 +106,7 @@ class WCS_Meta_Box_Related_Orders { foreach ( $subscriptions as $subscription ) { foreach ( $subscription->get_related_orders( 'all', 'renewal' ) as $order ) { - $order->relationship = _x( 'Renewal Order', 'relation to order', 'woocommerce-subscriptions' ); + wcs_set_objects_property( $order, 'relationship', _x( 'Renewal Order', 'relation to order', 'woocommerce-subscriptions' ), 'set_prop_only' ); $orders[] = $order; } } @@ -113,7 +114,8 @@ class WCS_Meta_Box_Related_Orders { $orders = apply_filters( 'woocommerce_subscriptions_admin_related_orders_to_display', $orders, $subscriptions, $post ); foreach ( $orders as $order ) { - if ( $order->id == $post->ID ) { + + if ( wcs_get_objects_property( $order, 'id' ) == $post->ID ) { continue; } include( 'views/html-related-orders-row.php' ); diff --git a/includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php b/includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php index 4460376..55f8f44 100644 --- a/includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php +++ b/includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php @@ -25,7 +25,7 @@ class WCS_Meta_Box_Subscription_Data extends WC_Meta_Box_Order_Data { public static function output( $post ) { global $the_subscription; - if ( ! is_object( $the_subscription ) || $the_subscription->id !== $post->ID ) { + if ( ! is_object( $the_subscription ) || $the_subscription->get_id() !== $post->ID ) { $the_subscription = wc_get_order( $post->ID ); } @@ -39,7 +39,7 @@ class WCS_Meta_Box_Subscription_Data extends WC_Meta_Box_Order_Data { #post-body-content, #titlediv, #major-publishing-actions, #minor-publishing-actions, #visibility, #submitdiv { display:none }
- +
@@ -52,11 +52,11 @@ class WCS_Meta_Box_Subscription_Data extends WC_Meta_Box_Order_Data {

@@ -112,18 +119,18 @@ class WCS_Meta_Box_Subscription_Data extends WC_Meta_Box_Order_Data { continue; } - $field_name = 'billing_' . $key; + $function_name = 'get_billing_' . $key; - if ( $subscription->$field_name ) { - echo '

' . esc_html( $field['label'] ) . ': ' . wp_kses_post( make_clickable( esc_html( $subscription->$field_name ) ) ) . '

'; + if ( $subscription->$function_name() ) { + echo '

' . esc_html( $field['label'] ) . ': ' . wp_kses_post( make_clickable( esc_html( $subscription->$function_name() ) ) ) . '

'; } } - echo 'payment_method ) ? ' class="' . esc_attr( $subscription->payment_method ) . '"' : '' ) . '>' . esc_html__( 'Payment Method', 'woocommerce-subscriptions' ) . ':' . wp_kses_post( nl2br( $subscription->get_payment_method_to_display() ) ); + echo 'get_payment_method() ) ? ' class="' . esc_attr( $subscription->get_payment_method() ) . '"' : '' ) . '>' . esc_html__( 'Payment Method', 'woocommerce-subscriptions' ) . ':' . wp_kses_post( nl2br( $subscription->get_payment_method_to_display() ) ); // Display help tip - if ( ! empty( $subscription->payment_method ) && ! $subscription->is_manual() ) { - echo wcs_help_tip( sprintf( _x( 'Gateway ID: [%s]', 'The gateway ID displayed on the Edit Subscriptions screen when editing payment method.', 'woocommerce-subscriptions' ), $subscription->payment_gateway->id ) ); + if ( '' != $subscription->get_payment_method() && ! $subscription->is_manual() ) { + echo wcs_help_tip( sprintf( _x( 'Gateway ID: [%s]', 'The gateway ID displayed on the Edit Subscriptions screen when editing payment method.', 'woocommerce-subscriptions' ), $subscription->get_payment_method() ) ); } echo '

'; @@ -236,7 +243,7 @@ class WCS_Meta_Box_Subscription_Data extends WC_Meta_Box_Order_Data { /** * Save meta box data */ - public static function save( $post_id, $post ) { + public static function save( $post_id, $post = '' ) { global $wpdb; if ( 'shop_subscription' != $post->post_type || empty( $_POST['woocommerce_meta_nonce'] ) || ! wp_verify_nonce( $_POST['woocommerce_meta_nonce'], 'woocommerce_save_data' ) ) { @@ -253,12 +260,22 @@ class WCS_Meta_Box_Subscription_Data extends WC_Meta_Box_Order_Data { if ( self::$billing_fields ) { foreach ( self::$billing_fields as $key => $field ) { + + if ( ! isset( $_POST[ '_billing_' . $key ] ) ) { + continue; + } + update_post_meta( $post_id, '_billing_' . $key, wc_clean( $_POST[ '_billing_' . $key ] ) ); } } if ( self::$shipping_fields ) { foreach ( self::$shipping_fields as $key => $field ) { + + if ( ! isset( $_POST[ '_shipping_' . $key ] ) ) { + continue; + } + update_post_meta( $post_id, '_shipping_' . $key, wc_clean( $_POST[ '_shipping_' . $key ] ) ); } } diff --git a/includes/admin/meta-boxes/class-wcs-meta-box-subscription-schedule.php b/includes/admin/meta-boxes/class-wcs-meta-box-subscription-schedule.php index 7126515..7c2ab41 100644 --- a/includes/admin/meta-boxes/class-wcs-meta-box-subscription-schedule.php +++ b/includes/admin/meta-boxes/class-wcs-meta-box-subscription-schedule.php @@ -49,19 +49,20 @@ class WCS_Meta_Box_Schedule { $dates = array(); - foreach ( wcs_get_subscription_date_types() as $date_key => $date_label ) { + foreach ( wcs_get_subscription_date_types() as $date_type => $date_label ) { + $date_key = wcs_normalise_date_type_key( $date_type ); - if ( 'last_payment' == $date_key ) { + if ( 'last_order_date_created' == $date_key ) { continue; } - $utc_timestamp_key = $date_key . '_timestamp_utc'; + $utc_timestamp_key = $date_type . '_timestamp_utc'; - // A subscription needs a start date, even if it wasn't set - if ( isset( $_POST[ $utc_timestamp_key ] ) ) { - $datetime = $_POST[ $utc_timestamp_key ]; - } elseif ( 'start' === $date_key ) { + // A subscription needs a created date, even if it wasn't set or is empty + if ( 'date_created' === $date_key && empty( $_POST[ $utc_timestamp_key ] ) ) { $datetime = current_time( 'timestamp', true ); + } elseif ( isset( $_POST[ $utc_timestamp_key ] ) ) { + $datetime = $_POST[ $utc_timestamp_key ]; } else { // No date to set continue; } @@ -76,6 +77,8 @@ class WCS_Meta_Box_Schedule { } catch ( Exception $e ) { wcs_add_admin_notice( $e->getMessage(), 'error' ); } + + $subscription->save(); } } } diff --git a/includes/admin/meta-boxes/views/html-related-orders-row.php b/includes/admin/meta-boxes/views/html-related-orders-row.php index b499f61..f040401 100644 --- a/includes/admin/meta-boxes/views/html-related-orders-row.php +++ b/includes/admin/meta-boxes/views/html-related-orders-row.php @@ -8,28 +8,32 @@ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } + +// WC 3.0+ compatibility +$order_post = wcs_get_objects_property( $order, 'post' ); + ?> - + get_order_number() ) ); ?> - relationship ); ?> + post->post_date_gmt ); + $timestamp_gmt = wcs_get_objects_property( $order, 'date_created' )->getTimestamp(); if ( $timestamp_gmt > 0 ) { // translators: php date format - $t_time = get_the_time( _x( 'Y/m/d g:i:s A', 'post date', 'woocommerce-subscriptions' ), $order->post ); + $t_time = get_the_time( _x( 'Y/m/d g:i:s A', 'post date', 'woocommerce-subscriptions' ), $order_post ); $date_to_display = wcs_get_human_time_diff( $timestamp_gmt ); } else { $t_time = $date_to_display = __( 'Unpublished', 'woocommerce-subscriptions' ); } ?> - post ) ); ?> + diff --git a/includes/admin/meta-boxes/views/html-subscription-schedule.php b/includes/admin/meta-boxes/views/html-subscription-schedule.php index e8c5755..09c89d1 100644 --- a/includes/admin/meta-boxes/views/html-subscription-schedule.php +++ b/includes/admin/meta-boxes/views/html-subscription-schedule.php @@ -20,7 +20,7 @@ if ( ! defined( 'ABSPATH' ) ) { 'id' => '_billing_interval', 'class' => 'billing_interval', 'label' => __( 'Recurring:', 'woocommerce-subscriptions' ), - 'value' => empty( $the_subscription->billing_interval ) ? 1 : $the_subscription->billing_interval, + 'value' => $the_subscription->get_billing_interval(), 'options' => wcs_get_subscription_period_interval_strings(), ) ); @@ -30,7 +30,7 @@ if ( ! defined( 'ABSPATH' ) ) { 'id' => '_billing_period', 'class' => 'billing_period', 'label' => __( 'Billing Period', 'woocommerce-subscriptions' ), - 'value' => empty( $the_subscription->billing_period ) ? 'month' : $the_subscription->billing_period, + 'value' => $the_subscription->get_billing_period(), 'options' => wcs_get_subscription_period_strings(), ) ); @@ -39,21 +39,22 @@ if ( ! defined( 'ABSPATH' ) ) {
- billing_interval ) ), esc_html( wcs_get_subscription_period_strings( 1, $the_subscription->billing_period ) ) ); ?> + get_billing_interval() ) ), esc_html( wcs_get_subscription_period_strings( 1, $the_subscription->get_billing_period() ) ) ); ?>
$date_label ) : ?> +
: - - can_date_be_updated( $date_key ) ) : ?> - get_time( $date_key, 'site' ), array( 'name_attr' => $date_key ) ), array( 'input' => array( 'type' => array(), 'class' => array(), 'placeholder' => array(), 'name' => array(), 'id' => array(), 'maxlength' => array(), 'size' => array(), 'value' => array(), 'patten' => array() ), 'div' => array( 'class' => array() ), 'span' => array(), 'br' => array() ) ); ?> + + can_date_be_updated( $internal_date_key ) ) : ?> + get_time( $internal_date_key, 'site' ), array( 'name_attr' => $date_key ) ), array( 'input' => array( 'type' => array(), 'class' => array(), 'placeholder' => array(), 'name' => array(), 'id' => array(), 'maxlength' => array(), 'size' => array(), 'value' => array(), 'patten' => array() ), 'div' => array( 'class' => array() ), 'span' => array(), 'br' => array() ) ); ?> - get_date_to_display( $date_key ) ); ?> + get_date_to_display( $internal_date_key ) ); ?>
diff --git a/includes/admin/reports/class-wcs-report-cache-manager.php b/includes/admin/reports/class-wcs-report-cache-manager.php index 3d03bee..1e37876 100644 --- a/includes/admin/reports/class-wcs-report-cache-manager.php +++ b/includes/admin/reports/class-wcs-report-cache-manager.php @@ -46,10 +46,10 @@ class WCS_Report_Cache_Manager { 'woocommerce_subscription_status_active' => array( 1 => 'WC_Report_Upcoming_Recurring_Revenue', ), - 'woocommerce_order_add_product' => array( + 'woocommerce_new_order_item' => array( 3 => 'WC_Report_Subscription_By_Product', ), - 'woocommerce_order_edit_product' => array( + 'woocommerce_update_order_item' => array( 3 => 'WC_Report_Subscription_By_Product', ), ); @@ -77,6 +77,20 @@ class WCS_Report_Cache_Manager { */ public function __construct() { + // Use the old hooks + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + + $hooks = array( + 'woocommerce_order_add_product' => 'woocommerce_new_order_item', + 'woocommerce_order_edit_product' => 'woocommerce_update_order_item', + ); + + foreach ( $hooks as $old_hook => $new_hook ) { + $this->update_events_and_classes[ $old_hook ] = $this->update_events_and_classes[ $new_hook ]; + unset( $this->update_events_and_classes[ $new_hook ] ); // New hooks aren't called, so no need to attach to them + } + } + add_action( $this->cron_hook, array( $this, 'update_cache' ), 10, 1 ); foreach ( $this->update_events_and_classes as $event_hook => $report_classes ) { diff --git a/includes/api/class-wc-rest-subscription-notes-controller.php b/includes/api/class-wc-rest-subscription-notes-controller.php index 446c9aa..fb12433 100644 --- a/includes/api/class-wc-rest-subscription-notes-controller.php +++ b/includes/api/class-wc-rest-subscription-notes-controller.php @@ -17,7 +17,7 @@ if ( ! defined( 'ABSPATH' ) ) { * @package WooCommerce_Subscriptions/API * @extends WC_REST_Order_Notes_Controller */ -class WC_REST_Subscription_Notes_Controller extends WC_REST_Order_Notes_Controller { +class WC_REST_Subscription_Notes_Controller extends WC_REST_Order_Notes_V1_Controller { /** * Route base. diff --git a/includes/api/class-wc-rest-subscriptions-controller.php b/includes/api/class-wc-rest-subscriptions-controller.php index d0c936f..a80d4f2 100644 --- a/includes/api/class-wc-rest-subscriptions-controller.php +++ b/includes/api/class-wc-rest-subscriptions-controller.php @@ -18,7 +18,7 @@ if ( ! defined( 'ABSPATH' ) ) { * @package WooCommerce_Subscriptions/API * @extends WC_REST_Orders_Controller */ -class WC_REST_Subscriptions_Controller extends WC_REST_Orders_Controller { +class WC_REST_Subscriptions_Controller extends WC_REST_Orders_V1_Controller { /** * Route base. @@ -41,8 +41,6 @@ class WC_REST_Subscriptions_Controller extends WC_REST_Orders_Controller { add_filter( 'woocommerce_rest_prepare_shop_subscription', array( $this, 'filter_get_subscription_response' ), 10, 3 ); add_filter( 'woocommerce_rest_shop_subscription_query', array( $this, 'query_args' ), 10, 2 ); - - add_filter( 'woocommerce_rest_pre_insert_shop_subscription', array( $this, 'prepare_subscription_args' ), 10, 2 ); } /** @@ -83,12 +81,15 @@ class WC_REST_Subscriptions_Controller extends WC_REST_Orders_Controller { if ( ! empty( $post->post_type ) && ! empty( $post->ID ) && 'shop_subscription' == $post->post_type ) { $subscription = wcs_get_subscription( $post->ID ); - $response->data['billing_period'] = $subscription->billing_period; - $response->data['billing_interval'] = $subscription->billing_interval; - $response->data['start_date'] = wc_rest_prepare_date_response( $subscription->get_date( 'start' ) ); - $response->data['trial_end_date'] = wc_rest_prepare_date_response( $subscription->get_date( 'trial_end' ) ); - $response->data['next_payment_date'] = wc_rest_prepare_date_response( $subscription->get_date( 'next_payment' ) ); - $response->data['end_date'] = wc_rest_prepare_date_response( $subscription->get_date( 'end_date' ) ); + $response->data['billing_period'] = $subscription->get_billing_period(); + $response->data['billing_interval'] = $subscription->get_billing_interval(); + + foreach ( array( 'start', 'trial_end', 'next_payment', 'end' ) as $date_type ) { + $date_type_key = ( 'start' === $date_type ) ? 'date_created' : $date_type; + $date = $subscription->get_date( $date_type_key ); + + $response->data[ $date_type . '_date'] = ( ! empty( $date ) ) ? wc_rest_prepare_date_response( $date ) : ''; + } } return $response; @@ -103,17 +104,50 @@ class WC_REST_Subscriptions_Controller extends WC_REST_Orders_Controller { * @param WP_REST_Request $request */ protected function create_order( $request ) { - $post_id = parent::create_order( $request ); + try { + if ( ! is_null( $request['customer_id'] ) && 0 !== $request['customer_id'] && false === get_user_by( 'id', $request['customer_id'] ) ) { + throw new WC_REST_Exception( 'woocommerce_rest_invalid_customer_id',__( 'Customer ID is invalid.', 'woocommerce-subscriptions' ), 400 ); + } - if ( is_wp_error( $post_id ) ) { - return $post_id; + // If the start date is not set in the request, set its default to now + if ( ! isset( $request['start_date'] ) ) { + $request['start_date'] = gmdate( 'Y-m-d H:i:s' ); + } + + // prepare all subscription data from the request + $subscription = $this->prepare_item_for_database( $request ); + $subscription->set_created_via( 'rest-api' ); + $subscription->set_prices_include_tax( 'yes' === get_option( 'woocommerce_prices_include_tax' ) ); + $subscription->calculate_totals(); + + // allow the order total to be overriden (i.e. if you want to have a subscription with no order items but a flat $10.00 recurring payment ) + if ( isset( $request['order_total'] ) ) { + $subscription->set_total( wc_format_decimal( $request['order_total'], get_option( 'woocommerce_price_num_decimals' ) ) ); + } + + $subscription->save(); + + // Store the post meta on the subscription after it's saved, this is to avoid compat. issue with the filters in WC_Subscriptions::set_payment_method_meta() expecting the $subscription to have an ID (therefore it needs to be called after the WC_Subscription has been saved) + $payment_data = ( ! empty( $request['payment_details'] ) ) ? $request['payment_details'] : array(); + if ( empty( $payment_data['payment_details']['method_id'] ) && ! empty( $request['payment_method'] ) ) { + $payment_data['method_id'] = $request['payment_method']; + } + + $this->update_payment_method( $subscription, $payment_data ); + + // Handle set paid. + if ( true === $request['set_paid'] ) { + $subscription->payment_complete( $request['transaction_id'] ); + } else { + $subscription->save(); // $subscription->payment_complete() calls $subscription->update_status() which saves the subscription, so we only need to save it if not calling that + } + + return $subscription->get_id(); + } catch ( WC_Data_Exception $e ) { + return new WP_Error( $e->getErrorCode(), $e->getMessage(), $e->getErrorData() ); + } catch ( WC_REST_Exception $e ) { + return new WP_Error( $e->getErrorCode(), $e->getMessage(), array( 'status' => $e->getCode() ) ); } - - if ( isset( $request['order_total'] ) ) { - update_post_meta( $post_id, '_order_total', wc_format_decimal( $request['order_total'], get_option( 'woocommerce_price_num_decimals' ) ) ); - } - - return $post_id; } /** @@ -124,28 +158,47 @@ class WC_REST_Subscriptions_Controller extends WC_REST_Orders_Controller { * @param WP_REST_Request $request * @param WP_POST $post */ - protected function update_order( $request, $post ) { + protected function update_order( $request ) { try { - $post_id = parent::update_order( $request, $post ); + $subscription = $this->prepare_item_for_database( $request ); - if ( is_wp_error( $post_id ) ) { - return $post_id; + // If any line items have changed, recalculate subscription totals. + if ( isset( $request['line_items'] ) || isset( $request['shipping_lines'] ) || isset( $request['fee_lines'] ) || isset( $request['coupon_lines'] ) ) { + $subscription->calculate_totals(); } - $subscription = wcs_get_subscription( $post_id ); - $this->update_schedule( $subscription, $request ); - - if ( empty( $request['payment_details']['method_id'] ) && ! empty( $request['payment_method'] ) ) { - $request['payment_details']['method_id'] = $request['payment_method']; + // allow the order total to be overriden (i.e. if you want to have a subscription with no order items but a flat $10.00 recurring payment ) + if ( isset( $request['order_total'] ) ) { + $subscription->set_total( wc_format_decimal( $request['order_total'], get_option( 'woocommerce_price_num_decimals' ) ) ); } - $this->update_payment_method( $subscription, $request['payment_details'], true ); + $subscription->save(); - return $post_id; + // Update the post meta on the subscription after it's saved, this is to avoid compat. issue with the filters in WC_Subscriptions::set_payment_method_meta() expecting the $subscription to have an ID (therefore it needs to be called after the WC_Subscription has been saved) + $payment_data = ( ! empty( $request['payment_details'] ) ) ? $request['payment_details'] : array(); + $existing_payment_method_id = $subscription->get_payment_method(); + + if ( empty( $payment_data['method_id'] ) && isset( $request['payment_method'] ) ) { + $payment_data['method_id'] = $request['payment_method']; + + } elseif ( ! empty( $existing_payment_method_id ) ) { + $payment_data['method_id'] = $existing_payment_method_id; + } + + if ( isset( $payment_data['method_id'] ) ) { + $this->update_payment_method( $subscription, $payment_data, true ); + } + + // Handle set paid. + if ( $subscription->needs_payment() && true === $request['set_paid'] ) { + $subscription->payment_complete(); + } + + return $subscription->get_id(); + } catch ( WC_Data_Exception $e ) { + return new WP_Error( $e->getErrorCode(), $e->getMessage(), $e->getErrorData() ); } catch ( WC_REST_Exception $e ) { return new WP_Error( $e->getErrorCode(), $e->getMessage(), array( 'status' => $e->getCode() ) ); - } catch ( Exception $e ) { - return new WP_Error( 'woocommerce_rest_cannot_update_subscription', $e->getMessage(), array( 'status' => 400 ) ); } } @@ -218,64 +271,6 @@ class WC_REST_Subscriptions_Controller extends WC_REST_Orders_Controller { return $subscription_statuses; } - /** - * Create WC_Subscription object. - * - * @since 2.1 - * @param array $args subscription args. - * @return WC_Subscription - */ - protected function create_base_order( $args ) { - $subscription = wcs_create_subscription( $args ); - - if ( is_wp_error( $subscription ) ) { - throw new WC_REST_Exception( 'woocommerce_rest_cannot_create_subscription', sprintf( __( 'Cannot create subscription: %s.', 'woocommerce-subscriptions' ), implode( ', ', $subscription->get_error_messages() ) ), 400 ); - } - - $this->update_schedule( $subscription, $args ); - - if ( empty( $args['payment_details']['method_id'] ) && ! empty( $args['payment_method'] ) ) { - $args['payment_details']['method_id'] = $args['payment_method']; - } - - $this->update_payment_method( $subscription, $args['payment_details'] ); - - return $subscription; - } - - /** - * Update or set the subscription schedule with the request data - * - * @since 2.1 - * @param WC_Subscription $subscription - * @param array $data - */ - public function update_schedule( $subscription, $data ) { - if ( isset( $data['billing_interval'] ) ) { - update_post_meta( $subscription->id, '_billing_interval', absint( $data['billing_interval'] ) ); - } - - if ( ! empty( $data['billing_period'] ) ) { - update_post_meta( $subscription->id, '_billing_period', $data['billing_period'] ); - } - - try { - $dates_to_update = array(); - - foreach ( array( 'start', 'trial_end', 'end', 'next_payment' ) as $date_type ) { - if ( isset( $data[ $date_type . '_date' ] ) ) { - $dates_to_update[ $date_type ] = $data[ $date_type . '_date' ]; - } - } - - if ( ! empty( $dates_to_update ) ) { - $subscription->update_dates( $dates_to_update ); - } - } catch ( Exception $e ) { - throw new WC_REST_Exception( 'woocommerce_rest_cannot_update_subscription_dates', sprintf( __( 'Updating subscription dates errored with message: %s', 'woocommerce-subscriptions' ), $e->getMessage() ), 400 ); - } - } - /** * Validate and update payment method on a subscription * @@ -285,9 +280,7 @@ class WC_REST_Subscriptions_Controller extends WC_REST_Orders_Controller { * @param bool $updating */ public function update_payment_method( $subscription, $data, $updating = false ) { - $payment_gateways = WC()->payment_gateways->get_available_payment_gateways(); - $payment_method = ( ! empty( $data['method_id'] ) ) ? $data['method_id'] : 'manual'; - $payment_gateway = ( ! empty( $payment_gateways[ $payment_method ] ) ) ? $payment_gateways[ $payment_method ] : ''; + $payment_method = ( ! empty( $data['method_id'] ) ) ? $data['method_id'] : ''; try { if ( $updating && ! array_key_exists( $payment_method, WCS_Change_Payment_Method_Admin::get_valid_payment_methods( $subscription ) ) ) { @@ -296,8 +289,8 @@ class WC_REST_Subscriptions_Controller extends WC_REST_Orders_Controller { $payment_method_meta = apply_filters( 'woocommerce_subscription_payment_meta', array(), $subscription ); - if ( ! empty( $payment_gateway ) && isset( $payment_method_meta[ $payment_gateway->id ] ) ) { - $payment_method_meta = $payment_method_meta[ $payment_gateway->id ]; + if ( isset( $payment_method_meta[ $payment_method ] ) ) { + $payment_method_meta = $payment_method_meta[ $payment_method ]; if ( ! empty( $payment_method_meta ) ) { @@ -316,18 +309,92 @@ class WC_REST_Subscriptions_Controller extends WC_REST_Orders_Controller { } } - if ( empty( $subscription->payment_gateway ) ) { - $subscription->payment_gateway = $payment_gateway; - } - - $subscription->set_payment_method( $payment_gateway, $payment_method_meta ); + $subscription->set_payment_method( $payment_method, $payment_method_meta ); } catch ( Exception $e ) { + $subscription->set_payment_method(); + $subscription->save(); // translators: 1$: gateway id, 2$: error message throw new WC_REST_Exception( 'woocommerce_rest_invalid_payment_data', sprintf( __( 'Subscription payment method could not be set to %1$s with error message: %2$s', 'woocommerce-subscriptions' ), $payment_method, $e->getMessage() ), 400 ); } } + /** + * Prepare a single subscription for create. + * + * @param WP_REST_Request $request Request object. + * @return WP_Error|WC_Subscription $data Object. + */ + protected function prepare_item_for_database( $request ) { + $id = isset( $request['id'] ) ? absint( $request['id'] ) : 0; + $subscription = new WC_Subscription( $id ); + $schema = $this->get_item_schema(); + $data_keys = array_keys( array_filter( $schema['properties'], array( $this, 'filter_writable_props' ) ) ); + + $dates_to_update = array(); + + // Handle all writable props + foreach ( $data_keys as $key ) { + $value = $request[ $key ]; + + if ( ! is_null( $value ) ) { + switch ( $key ) { + case 'billing' : + case 'shipping' : + $this->update_address( $subscription, $value, $key ); + break; + case 'line_items' : + case 'shipping_lines' : + case 'fee_lines' : + case 'coupon_lines' : + if ( is_array( $value ) ) { + foreach ( $value as $item ) { + if ( is_array( $item ) ) { + if ( $this->item_is_null( $item ) || ( isset( $item['quantity'] ) && 0 === $item['quantity'] ) ) { + $subscription->remove_item( $item['id'] ); + } else { + $this->set_item( $subscription, $key, $item ); + } + } + } + } + break; + case 'start_date' : + case 'trial_end_date' : + case 'next_payment_date' : + case 'end_date' : + $date_type_key = ( 'start_date' === $key ) ? 'date_created' : $key; + $dates_to_update[ $date_type_key ] = $value; + break; + default : + if ( is_callable( array( $subscription, "set_{$key}" ) ) ) { + $subscription->{"set_{$key}"}( $value ); + } + break; + } + } + } + + try { + if ( ! empty( $dates_to_update ) ) { + $subscription->update_dates( $dates_to_update ); + } + } catch ( Exception $e ) { + throw new WC_REST_Exception( 'woocommerce_rest_cannot_update_subscription_dates', sprintf( __( 'Updating subscription dates errored with message: %s', 'woocommerce-subscriptions' ), $e->getMessage() ), 400 ); + } + + /** + * Filter the data for the insert. + * + * The dynamic portion of the hook name, $this->post_type, refers to post_type of the post being + * prepared for the response. + * + * @param WC_Subscription $subscription The subscription object. + * @param WP_REST_Request $request Request object. + */ + return apply_filters( "woocommerce_rest_pre_insert_{$this->post_type}", $subscription, $request ); + } + /** * Adds additional item schema information for subscription requests * @@ -350,7 +417,7 @@ class WC_REST_Subscriptions_Controller extends WC_REST_Orders_Controller { ), 'payment_details' => array( 'description' => __( 'Subscription payment details.', 'woocommerce-subscriptions' ), - 'type' => 'array', + 'type' => 'object', 'context' => array( 'edit' ), 'properties' => array( 'method_id' => array( @@ -365,7 +432,7 @@ class WC_REST_Subscriptions_Controller extends WC_REST_Orders_Controller { 'type' => 'date-time', 'context' => array( 'view', 'edit' ), ), - 'trial_date' => array( + 'trial_end_date' => array( 'description' => __( "The subscription's trial date", 'woocommerce-subscriptions' ), 'type' => 'date-time', 'context' => array( 'view', 'edit' ), @@ -386,21 +453,32 @@ class WC_REST_Subscriptions_Controller extends WC_REST_Orders_Controller { return $schema; } + /** + * Deprecated functions + */ + /** * Prepare subscription data for create. * + * Now that we override WC_REST_Orders_V1_Controller::prepare_item_for_database() function, + * we no longer need to prepare these args + * * @since 2.1 * @param stdClass $data * @param WP_REST_Request $request Request object. * @return stdClass + * @deprecated 2.2 */ public function prepare_subscription_args( $data, $request ) { + wcs_deprecated_function( __METHOD__, '2.2' ); + $data->billing_interval = $request['billing_interval']; $data->billing_period = $request['billing_period']; foreach ( array( 'start', 'trial_end', 'end', 'next_payment' ) as $date_type ) { if ( ! empty( $request[ $date_type . '_date' ] ) ) { - $data->{$date_type . '_date'} = $request[ $date_type . '_date' ]; + $date_type_key = ( 'start' === $date_type ) ? 'date_created' : $date_type . '_date'; + $data->{$date_type_key} = $request[ $date_type . '_date' ]; } } @@ -409,4 +487,42 @@ class WC_REST_Subscriptions_Controller extends WC_REST_Orders_Controller { return $data; } + + /** + * Update or set the subscription schedule with the request data. + * + * + * @since 2.1 + * @param WC_Subscription $subscription + * @param array $data + * @deprecated 2.2 + */ + public function update_schedule( $subscription, $data ) { + wcs_deprecated_function( __METHOD__, '2.2', 'WC_REST_Subscriptions_Controller::prepare_item_for_database() now prepares the billing interval/period and dates' ); + + if ( isset( $data['billing_interval'] ) ) { + $subscription->set_billing_interval( absint( $data['billing_interval'] ) ); + } + + if ( ! empty( $data['billing_period'] ) ) { + $subscription->set_billing_period( $data['billing_period'] ); + } + + try { + $dates_to_update = array(); + + foreach ( array( 'start', 'trial_end', 'end', 'next_payment' ) as $date_type ) { + if ( isset( $data[ $date_type . '_date' ] ) ) { + $date_type_key = ( 'start' === $date_type ) ? 'date_created' : $date_type; + $dates_to_update[ $date_type_key ] = $data[ $date_type . '_date' ]; + } + } + + if ( ! empty( $dates_to_update ) ) { + $subscription->update_dates( $dates_to_update ); + } + } catch ( Exception $e ) { + throw new WC_REST_Exception( 'woocommerce_rest_cannot_update_subscription_dates', sprintf( __( 'Updating subscription dates errored with message: %s', 'woocommerce-subscriptions' ), $e->getMessage() ), 400 ); + } + } } diff --git a/includes/api/legacy/class-wc-api-subscriptions-customers.php b/includes/api/legacy/class-wc-api-subscriptions-customers.php index 9442b5f..67b4529 100644 --- a/includes/api/legacy/class-wc-api-subscriptions-customers.php +++ b/includes/api/legacy/class-wc-api-subscriptions-customers.php @@ -42,8 +42,6 @@ class WC_API_Subscriptions_Customers extends WC_API_Customers { * @return array */ public function register_routes( $routes ) { - $routes = parent::register_routes( $routes ); - # GET /customers//subscriptions $routes[ $this->base . '/(?P\d+)/subscriptions' ] = array( array( array( $this, 'get_customer_subscriptions' ), WC_API_SERVER::READABLE ), @@ -59,7 +57,7 @@ class WC_API_Subscriptions_Customers extends WC_API_Customers { * @param $id int * @param $fields array */ - public function get_customer_subscriptions( $id, $fields = null ) { + public function get_customer_subscriptions( $id, $fields = null, $filter = array() ) { global $wpdb; // check the customer id given is a valid customer in the store. We're able to leech off WC-API for this. @@ -68,22 +66,14 @@ class WC_API_Subscriptions_Customers extends WC_API_Customers { if ( is_wp_error( $id ) ) { return $id; } + $subscription_ids = array(); + $filter['customer_id'] = $id; + $subscriptions = WC()->api->WC_API_Subscriptions->get_subscriptions( $fields, $filter, null, -1 ); - $subscription_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID, post_date_gmt - FROM {$wpdb->posts} AS posts - LEFT JOIN {$wpdb->postmeta} AS meta on posts.ID = meta.post_id - WHERE meta.meta_key = '_customer_user' - AND meta.meta_value = '%d' - AND posts.post_type = 'shop_subscription' - AND posts.post_status IN ( '" . implode( "','", array_keys( wcs_get_subscription_statuses() ) ) . "' ) - GROUP BY posts.ID - ORDER BY posts.post_date_gmt DESC - ", $id ) ); - - $subscriptions = array(); - - foreach ( $subscription_ids as $subscription_id ) { - $subscriptions[] = WC()->api->WC_API_Subscriptions->get_subscription( $subscription_id, $fields ); + if ( ! empty( $subscriptions['subscriptions'] ) && is_array( $subscriptions['subscriptions'] ) ) { + foreach ( $subscriptions['subscriptions'] as $subscription ) { + $subscription_ids[] = $subscription['id']; + } } return array( 'customer_subscriptions' => apply_filters( 'wc_subscriptions_api_customer_subscriptions', $subscriptions, $id, $fields, $subscription_ids, $this->server ) ); diff --git a/includes/api/legacy/class-wc-api-subscriptions.php b/includes/api/legacy/class-wc-api-subscriptions.php index 6bc920c..90fa7c4 100644 --- a/includes/api/legacy/class-wc-api-subscriptions.php +++ b/includes/api/legacy/class-wc-api-subscriptions.php @@ -196,17 +196,18 @@ class WC_API_Subscriptions extends WC_API_Orders { // allow order total to be manually set, especially for those cases where there's no line items added to the subscription if ( isset( $data['order_total'] ) ) { - update_post_meta( $subscription->id, '_order_total', wc_format_decimal( $data['order_total'], get_option( 'woocommerce_price_num_decimals' ) ) ); + $subscription->set_total( wc_format_decimal( $data['order_total'], get_option( 'woocommerce_price_num_decimals' ) ) ); } if ( isset( $data['payment_details'] ) && is_array( $data['payment_details'] ) ) { $this->update_payment_method( $subscription, $data['payment_details'], false ); - } - do_action( 'wcs_api_subscription_created', $subscription->id, $this ); + $subscription->save(); - return array( 'creating_subscription' => $this->get_subscription( $subscription->id ) ); + do_action( 'wcs_api_subscription_created', $subscription->get_id(), $this ); + + return array( 'creating_subscription' => $this->get_subscription( $subscription->get_id() ) ); } catch ( WC_API_Exception $e ) { return new WP_Error( $e->getErrorCode(), $e->getMessage(), array( 'status' => $e->getCode() ) ); @@ -215,7 +216,7 @@ class WC_API_Subscriptions extends WC_API_Orders { // show the subscription in response if it was still created but errored. if ( ! empty( $subscription ) && ! is_wp_error( $subscription ) ) { - $response['creating_subscription'] = $this->get_subscription( $subscription->id ); + $response['creating_subscription'] = $this->get_subscription( $subscription->get_id() ); } return $response; @@ -251,7 +252,7 @@ class WC_API_Subscriptions extends WC_API_Orders { } if ( ! empty( $data['order_id'] ) ) { - wp_update_post( array( 'ID' => $subscription_id, 'post_parent' => $data['order_id'] ) ); + $subscription->set_parent_id( $data['order_id'] ); } // set $data['order'] = $data['subscription'] so that edit_order can read in the request @@ -269,11 +270,13 @@ class WC_API_Subscriptions extends WC_API_Orders { $this->update_schedule( $subscription, $data ); + $subscription->save(); + do_action( 'wcs_api_subscription_updated', $subscription_id, $data, $this ); return $this->get_subscription( $subscription_id ); - } catch ( WC_API_Excpetion $e ) { + } catch ( WC_API_Exception $e ) { return new WP_Error( $e->getErrorCode(), $e->getMessage(), array( 'status' => $e->getCode() ) ); } catch ( Exception $e ) { @@ -327,8 +330,8 @@ class WC_API_Subscriptions extends WC_API_Orders { } } - if ( empty( $subscription->payment_gateway ) ) { - $subscription->payment_gateway = $payment_gateway; + if ( '' == $subscription->get_payment_method() ) { + $subscription->set_payment_method( $payment_gateway ); } $subscription->set_payment_method( $payment_gateway, $payment_method_meta ); @@ -377,8 +380,7 @@ class WC_API_Subscriptions extends WC_API_Orders { throw new WC_API_Exception( 'wcs_api_invalid_subscription_meta', __( 'Invalid subscription billing interval given. Must be an integer greater than 0.', 'woocommerce-subscriptions' ), 400 ); } - update_post_meta( $subscription->id, '_billing_interval', $interval ); - + $subscription->set_billing_interval( $interval ); } if ( ! empty( $data['billing_period'] ) ) { @@ -389,7 +391,7 @@ class WC_API_Subscriptions extends WC_API_Orders { throw new WC_API_Exception( 'wcs_api_invalid_subscription_meta', __( 'Invalid subscription billing period given.', 'woocommerce-subscriptions' ), 400 ); } - update_post_meta( $subscription->id, '_billing_period', $period ); + $subscription->set_billing_period( $period ); } $dates_to_update = array(); @@ -397,7 +399,8 @@ class WC_API_Subscriptions extends WC_API_Orders { foreach ( array( 'start', 'trial_end', 'end', 'next_payment' ) as $date_type ) { if ( isset( $data[ $date_type . '_date' ] ) ) { - $dates_to_update[ $date_type ] = $data[ $date_type . '_date' ]; + $date_type_key = ( 'start' === $date_type ) ? 'date_created' : $date_type; + $dates_to_update[ $date_type_key ] = $data[ $date_type . '_date' ]; } } @@ -456,16 +459,16 @@ class WC_API_Subscriptions extends WC_API_Orders { } $subscription_data['billing_schedule'] = array( - 'period' => $subscription->billing_period, - 'interval' => $subscription->billing_interval, - 'start_at' => $this->get_formatted_datetime( $subscription, 'start' ), + 'period' => $subscription->get_billing_period(), + 'interval' => $subscription->get_billing_interval(), + 'start_at' => $this->get_formatted_datetime( $subscription, 'date_created' ), 'trial_end_at' => $this->get_formatted_datetime( $subscription, 'trial_end' ), 'next_payment_at' => $this->get_formatted_datetime( $subscription, 'next_payment' ), 'end_at' => $this->get_formatted_datetime( $subscription, 'end' ), ); - if ( ! empty( $subscription->order ) ) { - $subscription_data['parent_order_id'] = $subscription->order->id; + if ( $subscription->get_parent_id() ) { + $subscription_data['parent_order_id'] = $subscription->get_parent_id(); } else { $subscription_data['parent_order_id'] = array(); } diff --git a/includes/api/legacy/class-wc-rest-subscription-notes-controller.php b/includes/api/legacy/class-wc-rest-subscription-notes-controller.php new file mode 100644 index 0000000..446c9aa --- /dev/null +++ b/includes/api/legacy/class-wc-rest-subscription-notes-controller.php @@ -0,0 +1,36 @@ +/notes endpoint. + * + * @author Prospress + * @since 2.1 + */ + +if ( ! defined( 'ABSPATH' ) ) { + exit; +} +/** + * REST API Subscription Notes controller class. + * + * @package WooCommerce_Subscriptions/API + * @extends WC_REST_Order_Notes_Controller + */ +class WC_REST_Subscription_Notes_Controller extends WC_REST_Order_Notes_Controller { + + /** + * Route base. + * + * @var string + */ + protected $rest_base = 'subscriptions/(?P[\d]+)/notes'; + + /** + * Post type. + * + * @var string + */ + protected $post_type = 'shop_subscription'; + +} diff --git a/includes/api/legacy/class-wc-rest-subscriptions-controller.php b/includes/api/legacy/class-wc-rest-subscriptions-controller.php new file mode 100644 index 0000000..4ea4b0d --- /dev/null +++ b/includes/api/legacy/class-wc-rest-subscriptions-controller.php @@ -0,0 +1,419 @@ +namespace, '/' . $this->rest_base . '/(?P[\d]+)/orders', array( + array( + 'methods' => WP_REST_Server::READABLE, + 'callback' => array( $this, 'get_subscription_orders' ), + 'permission_callback' => array( $this, 'get_items_permissions_check' ), + 'args' => $this->get_collection_params(), + ), + 'schema' => array( $this, 'get_public_item_schema' ), + ) ); + + register_rest_route( $this->namespace, '/' . $this->rest_base . '/statuses', array( + array( + 'methods' => WP_REST_Server::READABLE, + 'callback' => array( $this, 'get_statuses' ), + ), + 'schema' => array( $this, 'get_public_item_schema' ), + ) ); + } + + /** + * Filter WC_REST_Orders_Controller::get_item response for subscription post types + * + * @since 2.1 + * @param WP_REST_Response $response + * @param WP_POST $post + * @param WP_REST_Request $request + */ + public function filter_get_subscription_response( $response, $post, $request ) { + + if ( ! empty( $post->post_type ) && ! empty( $post->ID ) && 'shop_subscription' == $post->post_type ) { + $subscription = wcs_get_subscription( $post->ID ); + + $response->data['billing_period'] = $subscription->get_billing_period(); + $response->data['billing_interval'] = $subscription->get_billing_interval(); + $response->data['start_date'] = wc_rest_prepare_date_response( $subscription->get_date( 'date_created' ) ); + $response->data['trial_end_date'] = wc_rest_prepare_date_response( $subscription->get_date( 'trial_end' ) ); + $response->data['next_payment_date'] = wc_rest_prepare_date_response( $subscription->get_date( 'next_payment' ) ); + $response->data['end_date'] = wc_rest_prepare_date_response( $subscription->get_date( 'end_date' ) ); + } + + return $response; + } + + /** + * Sets the order_total value on the subscription after WC_REST_Orders_Controller::create_order + * calls calculate_totals(). This allows store admins to create a recurring payment via the api + * without needing to attach a product to the subscription. + * + * @since 2.1 + * @param WP_REST_Request $request + */ + protected function create_order( $request ) { + $post_id = parent::create_order( $request ); + + if ( is_wp_error( $post_id ) ) { + return $post_id; + } + + if ( isset( $request['order_total'] ) ) { + update_post_meta( $post_id, '_order_total', wc_format_decimal( $request['order_total'], get_option( 'woocommerce_price_num_decimals' ) ) ); + } + + return $post_id; + } + + /** + * Overrides WC_REST_Orders_Controller::update_order to update subscription specific meta + * calls parent::update_order to update the rest. + * + * @since 2.1 + * @param WP_REST_Request $request + * @param WP_POST $post + */ + protected function update_order( $request, $post ) { + try { + $post_id = parent::update_order( $request, $post ); + + if ( is_wp_error( $post_id ) ) { + return $post_id; + } + + $subscription = wcs_get_subscription( $post_id ); + $this->update_schedule( $subscription, $request ); + + $payment_data = ( ! empty( $request['payment_details'] ) ) ? $request['payment_details'] : array(); + $existing_payment_method_id = $subscription->get_payment_method(); + + if ( empty( $payment_data['method_id'] ) && isset( $request['payment_method'] ) ) { + $payment_data['method_id'] = $request['payment_method']; + + } elseif ( ! empty( $existing_payment_method_id ) ) { + $payment_data['method_id'] = $existing_payment_method_id; + } + + if ( isset( $payment_data['method_id'] ) ) { + $this->update_payment_method( $subscription, $payment_data, true ); + } + + return $post_id; + } catch ( WC_REST_Exception $e ) { + return new WP_Error( $e->getErrorCode(), $e->getMessage(), array( 'status' => $e->getCode() ) ); + } catch ( Exception $e ) { + return new WP_Error( 'woocommerce_rest_cannot_update_subscription', $e->getMessage(), array( 'status' => 400 ) ); + } + } + + /** + * Get subscription orders + * + * @since 2.1 + * @param WP_REST_Request $request + * @return WP_Error|WP_REST_Response $response + */ + public function get_subscription_orders( $request ) { + $id = (int) $request['id']; + + if ( empty( $id ) || ! wcs_is_subscription( $id ) ) { + return new WP_Error( 'woocommerce_rest_invalid_shop_subscription_id', __( 'Invalid subscription id.', 'woocommerce-subscriptions' ), array( 'status' => 404 ) ); + } + + $this->post_type = 'shop_order'; + $subscription = wcs_get_subscription( $id ); + $subscription_orders = $subscription->get_related_orders(); + + $orders = array(); + + foreach ( $subscription_orders as $order_id ) { + $post = get_post( $order_id ); + if ( ! wc_rest_check_post_permissions( $this->post_type, 'read', $post->ID ) ) { + continue; + } + + $response = $this->prepare_item_for_response( $post, $request ); + + foreach ( array( 'parent', 'renewal', 'switch' ) as $order_type ) { + if ( wcs_order_contains_subscription( $order_id, $order_type ) ) { + $response->data['order_type'] = $order_type . '_order'; + break; + } + } + + $orders[] = $this->prepare_response_for_collection( $response ); + } + + $response = rest_ensure_response( $orders ); + $response->header( 'X-WP-Total', count( $orders ) ); + $response->header( 'X-WP-TotalPages', 1 ); + + return apply_filters( 'wcs_rest_subscription_orders_response', $response, $request ); + } + + /** + * Get subscription statuses + * + * @since 2.1 + */ + public function get_statuses() { + return rest_ensure_response( wcs_get_subscription_statuses() ); + } + + /** + * Overrides WC_REST_Orders_Controller::get_order_statuses() so that subscription statuses are + * validated correctly in WC_REST_Orders_Controller::get_collection_params() + * + * @since 2.1 + */ + protected function get_order_statuses() { + $subscription_statuses = array(); + + foreach ( array_keys( wcs_get_subscription_statuses() ) as $status ) { + $subscription_statuses[] = str_replace( 'wc-', '', $status ); + } + return $subscription_statuses; + } + + /** + * Create WC_Subscription object. + * + * @since 2.1 + * @param array $args subscription args. + * @return WC_Subscription + */ + protected function create_base_order( $args ) { + $subscription = wcs_create_subscription( $args ); + + if ( is_wp_error( $subscription ) ) { + throw new WC_REST_Exception( 'woocommerce_rest_cannot_create_subscription', sprintf( __( 'Cannot create subscription: %s.', 'woocommerce-subscriptions' ), implode( ', ', $subscription->get_error_messages() ) ), 400 ); + } + + $this->update_schedule( $subscription, $args ); + + if ( empty( $args['payment_details']['method_id'] ) && ! empty( $args['payment_method'] ) ) { + $args['payment_details']['method_id'] = $args['payment_method']; + } + + $this->update_payment_method( $subscription, $args['payment_details'] ); + + return $subscription; + } + + /** + * Update or set the subscription schedule with the request data + * + * @since 2.1 + * @param WC_Subscription $subscription + * @param array $data + */ + public function update_schedule( $subscription, $data ) { + if ( isset( $data['billing_interval'] ) ) { + update_post_meta( $subscription->get_id(), '_billing_interval', absint( $data['billing_interval'] ) ); + } + + if ( ! empty( $data['billing_period'] ) ) { + update_post_meta( $subscription->get_id(), '_billing_period', $data['billing_period'] ); + } + + try { + $dates_to_update = array(); + + foreach ( array( 'start', 'trial_end', 'end', 'next_payment' ) as $date_type ) { + if ( isset( $data[ $date_type . '_date' ] ) ) { + $date_type_key = ( 'start' === $date_type ) ? 'date_created' : $date_type; + $dates_to_update[ $date_type_key ] = $data[ $date_type . '_date' ]; + } + } + + if ( ! empty( $dates_to_update ) ) { + $subscription->update_dates( $dates_to_update ); + } + } catch ( Exception $e ) { + throw new WC_REST_Exception( 'woocommerce_rest_cannot_update_subscription_dates', sprintf( __( 'Updating subscription dates errored with message: %s', 'woocommerce-subscriptions' ), $e->getMessage() ), 400 ); + } + } + + /** + * Validate and update payment method on a subscription + * + * @since 2.1 + * @param WC_Subscription $subscription + * @param array $data + * @param bool $updating + */ + public function update_payment_method( $subscription, $data, $updating = false ) { + $payment_gateways = WC()->payment_gateways->get_available_payment_gateways(); + $payment_method = ( ! empty( $data['method_id'] ) ) ? $data['method_id'] : 'manual'; + $payment_gateway = ( ! empty( $payment_gateways[ $payment_method ] ) ) ? $payment_gateways[ $payment_method ] : ''; + + try { + if ( $updating && ! array_key_exists( $payment_method, WCS_Change_Payment_Method_Admin::get_valid_payment_methods( $subscription ) ) ) { + throw new Exception( __( 'Gateway does not support admin changing the payment method on a Subscription.', 'woocommerce-subscriptions' ) ); + } + + $payment_method_meta = apply_filters( 'woocommerce_subscription_payment_meta', array(), $subscription ); + + if ( ! empty( $payment_gateway ) && isset( $payment_method_meta[ $payment_gateway->id ] ) ) { + $payment_method_meta = $payment_method_meta[ $payment_gateway->id ]; + + if ( ! empty( $payment_method_meta ) ) { + + foreach ( $payment_method_meta as $meta_table => &$meta ) { + if ( ! is_array( $meta ) ) { + continue; + } + + foreach ( $meta as $meta_key => &$meta_data ) { + + if ( isset( $data[ $meta_table ][ $meta_key ] ) ) { + $meta_data['value'] = $data[ $meta_table ][ $meta_key ]; + } + } + } + } + } + + $subscription->set_payment_method( $payment_gateway, $payment_method_meta ); + + } catch ( Exception $e ) { + $subscription->set_payment_method(); + // translators: 1$: gateway id, 2$: error message + throw new WC_REST_Exception( 'woocommerce_rest_invalid_payment_data', sprintf( __( 'Subscription payment method could not be set to %1$s with error message: %2$s', 'woocommerce-subscriptions' ), $payment_method, $e->getMessage() ), 400 ); + } + } + + /** + * Adds additional item schema information for subscription requests + * + * @since 2.1 + */ + public function get_item_schema() { + $schema = parent::get_item_schema(); + + $subscriptions_schema = array( + 'billing_interval' => array( + 'description' => __( 'The number of billing periods between subscription renewals.', 'woocommerce-subscriptions' ), + 'type' => 'integer', + 'context' => array( 'view', 'edit' ), + ), + 'billing_period' => array( + 'description' => __( 'Billing period for the subscription.', 'woocommerce-subscriptions' ), + 'type' => 'string', + 'enum' => array_keys( wcs_get_subscription_period_strings() ), + 'context' => array( 'view', 'edit' ), + ), + 'payment_details' => array( + 'description' => __( 'Subscription payment details.', 'woocommerce-subscriptions' ), + 'type' => 'object', + 'context' => array( 'edit' ), + 'properties' => array( + 'method_id' => array( + 'description' => __( 'Payment gateway ID.', 'woocommerce-subscriptions' ), + 'type' => 'string', + 'context' => array( 'edit' ), + ), + ), + ), + 'start_date' => array( + 'description' => __( "The subscription's start date.", 'woocommerce-subscriptions' ), + 'type' => 'date-time', + 'context' => array( 'view', 'edit' ), + ), + 'trial_date' => array( + 'description' => __( "The subscription's trial date", 'woocommerce-subscriptions' ), + 'type' => 'date-time', + 'context' => array( 'view', 'edit' ), + ), + 'next_payment_date' => array( + 'description' => __( "The subscription's next payment date.", 'woocommerce-subscriptions' ), + 'type' => 'date-time', + 'context' => array( 'view', 'edit' ), + ), + 'end_date' => array( + 'description' => __( "The subscription's end date.", 'woocommerce-subscriptions' ), + 'type' => 'date-time', + 'context' => array( 'view', 'edit' ), + ), + ); + + $schema['properties'] += $subscriptions_schema; + return $schema; + } + + /** + * Prepare subscription data for create. + * + * @since 2.1 + * @param stdClass $data + * @param WP_REST_Request $request Request object. + * @return stdClass + */ + public function prepare_subscription_args( $data, $request ) { + $data->billing_interval = $request['billing_interval']; + $data->billing_period = $request['billing_period']; + + foreach ( array( 'start', 'trial_end', 'end', 'next_payment' ) as $date_type ) { + if ( ! empty( $request[ $date_type . '_date' ] ) ) { + $date_type_key = ( 'start' === $date_type ) ? 'date_created' : $date_type . '_date'; + $data->{$date_type_key} = $request[ $date_type . '_date' ]; + } + } + + $data->payment_details = ! empty( $request['payment_details'] ) ? $request['payment_details'] : ''; + $data->payment_method = ! empty( $request['payment_method'] ) ? $request['payment_method'] : ''; + + return $data; + } +} diff --git a/includes/class-wc-order-item-pending-switch.php b/includes/class-wc-order-item-pending-switch.php new file mode 100644 index 0000000..6220d7d --- /dev/null +++ b/includes/class-wc-order-item-pending-switch.php @@ -0,0 +1,7 @@ +parent_product_type = $this->product_type; + $this->subscription_variation_level_meta_data = new WCS_Array_Property_Post_Meta_Black_Magic( $this->get_id() ); + } - $this->product_type = 'subscription_variation'; + /** + * Magic __get method for backwards compatibility. Map legacy vars to WC_Subscriptions_Product getters. + * + * @param string $key Key name. + * @return mixed + */ + public function __get( $key ) { - $this->subscription_variation_level_meta_data = array( - 'subscription_price' => 0, - 'subscription_period' => '', - 'subscription_period_interval' => 'day', - 'subscription_length' => 0, - 'subscription_trial_length' => 0, - 'subscription_trial_period' => 'day', - 'subscription_sign_up_fee' => 0, - 'subscription_payment_sync_date' => 0, - ); + if ( 'subscription_variation_level_meta_data' === $key ) { - $this->variation_level_meta_data = array_merge( $this->variation_level_meta_data, $this->subscription_variation_level_meta_data ); + wcs_deprecated_argument( __CLASS__ . '::$' . $key, '2.2.0', 'Product properties should not be accessed directly with WooCommerce 3.0+. Use the getter in WC_Subscriptions_Product instead.' ); + + $value = $this->subscription_variation_level_meta_data; // Behold, the horror that is the magic of WCS_Array_Property_Post_Meta_Black_Magic + } else { + + $value = wcs_product_deprecated_property_handler( $key, $this ); + + // No matching property found in wcs_product_deprecated_property_handler() + if ( is_null( $value ) ) { + $value = parent::__get( $key ); + } + } + + return $value; + } + + /** + * Get internal type. + * + * @return string + */ + public function get_type() { + return 'subscription_variation'; } /** @@ -90,6 +113,45 @@ class WC_Product_Subscription_Variation extends WC_Product_Variation { return apply_filters( 'woocommerce_product_single_add_to_cart_text', self::add_to_cart_text(), $this ); } + /** + * Checks if the variable product this variation belongs to is purchasable. + * + * @access public + * @return bool + */ + public function is_purchasable() { + $purchasable = WCS_Limiter::is_purchasable( wc_get_product( $this->get_parent_id() )->is_purchasable(), $this ); + return apply_filters( 'woocommerce_subscription_variation_is_purchasable', $purchasable, $this ); + } + + /** + * Checks the product type to see if it is either this product's type or the parent's + * product type. + * + * @access public + * @param mixed $type Array or string of types + * @return bool + */ + public function is_type( $type ) { + if ( 'variation' == $type || ( is_array( $type ) && in_array( 'variation', $type ) ) ) { + return true; + } else { + return parent::is_type( $type ); + } + } + + /* Deprecated Functions */ + + /** + * Return the sign-up fee for this product + * + * @return string + */ + public function get_sign_up_fee() { + wcs_deprecated_function( __METHOD__, '2.2.0', 'WC_Subscriptions_Product::get_sign_up_fee( $this )' ); + return WC_Subscriptions_Product::get_sign_up_fee( $this ); + } + /** * Returns the sign up fee (including tax) by filtering the products price used in * @see WC_Product::get_price_including_tax( $qty ) @@ -97,10 +159,11 @@ class WC_Product_Subscription_Variation extends WC_Product_Variation { * @return string */ public function get_sign_up_fee_including_tax( $qty = 1, $price = '' ) { + wcs_deprecated_function( __METHOD__, '2.2.0', 'wcs_get_price_including_tax( $product, array( "qty" => $qty, "price" => $price ) )' ); add_filter( 'woocommerce_get_price', array( &$this, 'get_sign_up_fee' ), 100, 0 ); - $sign_up_fee_including_tax = parent::get_price_including_tax( $qty, $price ); + $sign_up_fee_including_tax = parent::get_price_including_tax( $qty ); remove_filter( 'woocommerce_get_price', array( &$this, 'get_sign_up_fee' ), 100, 0 ); @@ -114,54 +177,14 @@ class WC_Product_Subscription_Variation extends WC_Product_Variation { * @return string */ public function get_sign_up_fee_excluding_tax( $qty = 1, $price = '' ) { + wcs_deprecated_function( __METHOD__, '2.2.0', 'wcs_get_price_excluding_tax( $product, array( "qty" => $qty, "price" => $price ) )' ); add_filter( 'woocommerce_get_price', array( &$this, 'get_sign_up_fee' ), 100, 0 ); - $sign_up_fee_excluding_tax = parent::get_price_excluding_tax( $qty, $price ); + $sign_up_fee_excluding_tax = parent::get_price_excluding_tax( $qty ); remove_filter( 'woocommerce_get_price', array( &$this, 'get_sign_up_fee' ), 100, 0 ); return $sign_up_fee_excluding_tax; } - - /** - * Return the sign-up fee for this product - * - * @return string - */ - public function get_sign_up_fee() { - return WC_Subscriptions_Product::get_sign_up_fee( $this ); - } - - - /** - * Checks if the variable product this variation belongs to is purchasable. - * - * @access public - * @return bool - */ - function is_purchasable() { - - $purchasable = WCS_Limiter::is_purchasable( $this->parent->is_purchasable(), $this ); - - return apply_filters( 'woocommerce_subscription_variation_is_purchasable', $purchasable, $this ); - } - - /** - * Checks the product type to see if it is either this product's type or the parent's - * product type. - * - * @access public - * @param mixed $type Array or string of types - * @return bool - */ - public function is_type( $type ) { - if ( $this->product_type == $type || ( is_array( $type ) && in_array( $this->product_type, $type ) ) ) { - return true; - } elseif ( $this->parent_product_type == $type || ( is_array( $type ) && in_array( $this->parent_product_type, $type ) ) ) { - return true; - } else { - return false; - } - } } diff --git a/includes/class-wc-product-subscription.php b/includes/class-wc-product-subscription.php index 67cc2da..c246145 100644 --- a/includes/class-wc-product-subscription.php +++ b/includes/class-wc-product-subscription.php @@ -17,66 +17,13 @@ if ( ! defined( 'ABSPATH' ) ) { class WC_Product_Subscription extends WC_Product_Simple { - var $subscription_price; - - var $subscription_period; - - var $subscription_period_interval; - - var $subscription_length; - - var $subscription_trial_length; - - var $subscription_trial_period; - - var $subscription_sign_up_fee; - /** - * Create a simple subscription product object. + * Get internal type. * - * @access public - * @param mixed $product + * @return string */ - public function __construct( $product ) { - parent::__construct( $product ); - $this->product_type = 'subscription'; - - // Load all meta fields - $this->product_custom_fields = get_post_meta( $this->id ); - - // Convert selected subscription meta fields for easy access - if ( ! empty( $this->product_custom_fields['_subscription_price'][0] ) ) { - $this->subscription_price = $this->product_custom_fields['_subscription_price'][0]; - } - - if ( ! empty( $this->product_custom_fields['_subscription_sign_up_fee'][0] ) ) { - $this->subscription_sign_up_fee = $this->product_custom_fields['_subscription_sign_up_fee'][0]; - } - - if ( ! empty( $this->product_custom_fields['_subscription_period'][0] ) ) { - $this->subscription_period = $this->product_custom_fields['_subscription_period'][0]; - } - - if ( ! empty( $this->product_custom_fields['_subscription_period_interval'][0] ) ) { - $this->subscription_period_interval = $this->product_custom_fields['_subscription_period_interval'][0]; - } - - if ( ! empty( $this->product_custom_fields['_subscription_length'][0] ) ) { - $this->subscription_length = $this->product_custom_fields['_subscription_length'][0]; - } - - if ( ! empty( $this->product_custom_fields['_subscription_trial_length'][0] ) ) { - $this->subscription_trial_length = $this->product_custom_fields['_subscription_trial_length'][0]; - } - - if ( ! empty( $this->product_custom_fields['_subscription_trial_period'][0] ) ) { - $this->subscription_trial_period = $this->product_custom_fields['_subscription_trial_period'][0]; - } - - $this->subscription_payment_sync_date = ( ! isset( $this->product_custom_fields['_subscription_payment_sync_date'][0] ) ) ? 0 : maybe_unserialize( $this->product_custom_fields['_subscription_payment_sync_date'][0] ); - - $this->subscription_one_time_shipping = ( ! isset( $this->product_custom_fields['_subscription_one_time_shipping'][0] ) ) ? 'no' : $this->product_custom_fields['_subscription_one_time_shipping'][0]; - + public function get_type() { + return 'subscription'; } /** @@ -86,12 +33,15 @@ class WC_Product_Subscription extends WC_Product_Simple { * @return mixed */ public function __get( $key ) { - if ( 'limit_subscriptions' === $key ) { - _deprecated_argument( 'WC_Product_Subscription->limit_subscriptions', '2.1', 'Use wcs_get_product_limitation directly' ); - return wcs_get_product_limitation( $this ); - } else { - return parent::__get( $key ); + + $value = wcs_product_deprecated_property_handler( $key, $this ); + + // No matching property found in wcs_product_deprecated_property_handler() + if ( is_null( $value ) ) { + $value = parent::__get( $key ); } + + return $value; } /** @@ -137,49 +87,6 @@ class WC_Product_Subscription extends WC_Product_Simple { return apply_filters( 'woocommerce_product_single_add_to_cart_text', self::add_to_cart_text(), $this ); } - /** - * Returns the sign up fee (including tax) by filtering the products price used in - * @see WC_Product::get_price_including_tax( $qty ) - * - * @return string - */ - public function get_sign_up_fee_including_tax( $qty = 1 ) { - - add_filter( 'woocommerce_get_price', array( &$this, 'get_sign_up_fee' ), 100, 0 ); - - $sign_up_fee_including_tax = parent::get_price_including_tax( $qty ); - - remove_filter( 'woocommerce_get_price', array( &$this, 'get_sign_up_fee' ), 100, 0 ); - - return $sign_up_fee_including_tax; - } - - /** - * Returns the sign up fee (excluding tax) by filtering the products price used in - * @see WC_Product::get_price_excluding_tax( $qty ) - * - * @return string - */ - public function get_sign_up_fee_excluding_tax( $qty = 1 ) { - - add_filter( 'woocommerce_get_price', array( &$this, 'get_sign_up_fee' ), 100, 0 ); - - $sign_up_fee_excluding_tax = parent::get_price_excluding_tax( $qty ); - - remove_filter( 'woocommerce_get_price', array( &$this, 'get_sign_up_fee' ), 100, 0 ); - - return $sign_up_fee_excluding_tax; - } - - /** - * Return the sign-up fee for this product - * - * @return string - */ - public function get_sign_up_fee() { - return WC_Subscriptions_Product::get_sign_up_fee( $this ); - } - /** * Checks if the store manager has requested the current product be limited to one purchase * per customer, and if so, checks whether the customer already has an active subscription to @@ -193,4 +100,38 @@ class WC_Product_Subscription extends WC_Product_Simple { return apply_filters( 'woocommerce_subscription_is_purchasable', $purchasable, $this ); } + + /* Deprecated Functions */ + + /** + * Return the sign-up fee for this product + * + * @return string + */ + public function get_sign_up_fee() { + wcs_deprecated_function( __METHOD__, '2.2.0', 'WC_Subscriptions_Product::get_sign_up_fee( $this )' ); + return WC_Subscriptions_Product::get_sign_up_fee( $this ); + } + + /** + * Returns the sign up fee (including tax) by filtering the products price used in + * @see WC_Product::get_price_including_tax( $qty ) + * + * @return string + */ + public function get_sign_up_fee_including_tax( $qty = 1 ) { + wcs_deprecated_function( __METHOD__, '2.2.0', 'wcs_get_price_including_tax( $product, array( "qty" => $qty, "price" => WC_Subscriptions_Product::get_sign_up_fee( $product ) ) )' ); + return wcs_get_price_including_tax( $this, array( 'qty' => $qty, 'price' => WC_Subscriptions_Product::get_sign_up_fee( $this ) ) ); + } + + /** + * Returns the sign up fee (excluding tax) by filtering the products price used in + * @see WC_Product::get_price_excluding_tax( $qty ) + * + * @return string + */ + public function get_sign_up_fee_excluding_tax( $qty = 1 ) { + wcs_deprecated_function( __METHOD__, '2.2.0', 'wcs_get_price_excluding_tax( $product, array( "qty" => $qty, "price" => WC_Subscriptions_Product::get_sign_up_fee( $product ) ) )' ); + return wcs_get_price_excluding_tax( $this, array( 'qty' => $qty, 'price' => WC_Subscriptions_Product::get_sign_up_fee( $this ) ) ); + } } diff --git a/includes/class-wc-product-variable-subscription.php b/includes/class-wc-product-variable-subscription.php index 2e5f380..00d9267 100644 --- a/includes/class-wc-product-variable-subscription.php +++ b/includes/class-wc-product-variable-subscription.php @@ -16,69 +16,17 @@ if ( ! defined( 'ABSPATH' ) ) { class WC_Product_Variable_Subscription extends WC_Product_Variable { - var $subscription_price; + private $min_max_variation_data = array(); - var $subscription_period; - - var $max_variation_period; - - var $subscription_period_interval; - - var $max_variation_period_interval; - - var $product_type; + private $sorted_variation_prices = array(); /** - * Create a simple subscription product object. + * Get internal type. * - * @access public - * @param mixed $product + * @return string */ - public function __construct( $product ) { - - parent::__construct( $product ); - - $this->parent_product_type = $this->product_type; - - $this->product_type = 'variable-subscription'; - - // Load all meta fields - $this->product_custom_fields = get_post_meta( $this->id ); - - // Convert selected subscription meta fields for easy access - if ( ! empty( $this->product_custom_fields['_subscription_price'][0] ) ) { - $this->subscription_price = $this->product_custom_fields['_subscription_price'][0]; - } - - if ( ! empty( $this->product_custom_fields['_subscription_sign_up_fee'][0] ) ) { - $this->subscription_sign_up_fee = $this->product_custom_fields['_subscription_sign_up_fee'][0]; - } - - if ( ! empty( $this->product_custom_fields['_subscription_period'][0] ) ) { - $this->subscription_period = $this->product_custom_fields['_subscription_period'][0]; - } - - if ( ! empty( $this->product_custom_fields['_subscription_period_interval'][0] ) ) { - $this->subscription_period_interval = $this->product_custom_fields['_subscription_period_interval'][0]; - } - - if ( ! empty( $this->product_custom_fields['_subscription_length'][0] ) ) { - $this->subscription_length = $this->product_custom_fields['_subscription_length'][0]; - } - - if ( ! empty( $this->product_custom_fields['_subscription_trial_length'][0] ) ) { - $this->subscription_trial_length = $this->product_custom_fields['_subscription_trial_length'][0]; - } - - if ( ! empty( $this->product_custom_fields['_subscription_trial_period'][0] ) ) { - $this->subscription_trial_period = $this->product_custom_fields['_subscription_trial_period'][0]; - } - - $this->subscription_payment_sync_date = 0; - - $this->subscription_one_time_shipping = ( ! isset( $this->product_custom_fields['_subscription_one_time_shipping'][0] ) ) ? 'no' : $this->product_custom_fields['_subscription_one_time_shipping'][0]; - - add_filter( 'woocommerce_add_to_cart_handler', array( &$this, 'add_to_cart_handler' ), 10, 2 ); + public function get_type() { + return 'variable-subscription'; } /** @@ -88,12 +36,19 @@ class WC_Product_Variable_Subscription extends WC_Product_Variable { * @return mixed */ public function __get( $key ) { - if ( 'limit_subscriptions' === $key ) { - _deprecated_argument( 'WC_Product_Subscription->limit_subscriptions', '2.1', 'Use wcs_get_product_limitation directly' ); - return wcs_get_product_limitation( $this ); + + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + $value = parent::__get( $key ); } else { - return parent::__get( $key ); + $value = wcs_product_deprecated_property_handler( $key, $this ); + + // No matching property found in wcs_product_deprecated_property_handler() + if ( is_null( $value ) ) { + $value = parent::__get( $key ); + } } + + return $value; } /** @@ -113,352 +68,6 @@ class WC_Product_Variable_Subscription extends WC_Product_Variable { return apply_filters( 'woocommerce_product_single_add_to_cart_text', $text, $this ); } - /** - * Sync variable product prices with the childs lowest/highest prices. - * - * @access public - * @return void - */ - public function variable_product_sync( $product_id = '' ) { - - parent::variable_product_sync(); - - $children = get_posts( array( - 'post_parent' => $this->id, - 'posts_per_page' => -1, - 'post_type' => 'product_variation', - 'fields' => 'ids', - 'post_status' => 'publish', - ) ); - - $lowest_initial_amount = $highest_initial_amount = $lowest_price = $highest_price = ''; - $shortest_initial_period = $longest_initial_period = $shortest_trial_period = $longest_trial_period = $shortest_trial_length = $longest_trial_length = ''; - $longest_initial_interval = $shortest_initial_interval = $variable_subscription_period = $variable_subscription_period_interval = ''; - $lowest_regular_price = $highest_regular_price = $lowest_sale_price = $highest_sale_price = $max_subscription_period = $max_subscription_period_interval = ''; - $variable_subscription_sign_up_fee = $variable_subscription_trial_period = $variable_subscription_trial_length = $variable_subscription_length = $variable_subscription_sign_up_fee = $variable_subscription_trial_period = $variable_subscription_trial_length = $variable_subscription_length = ''; - $min_variation_id = $max_variation_id = null; - - if ( $children ) { - - foreach ( $children as $child ) { - - $is_max = $is_min = false; - - // WC has already determined the correct price which accounts for sale price - $child_price = get_post_meta( $child, '_price', true ); - - $child_billing_period = get_post_meta( $child, '_subscription_period', true ); - $child_billing_interval = get_post_meta( $child, '_subscription_period_interval', true ); - $child_sign_up_fee = get_post_meta( $child, '_subscription_sign_up_fee', true ); - $child_free_trial_length = get_post_meta( $child, '_subscription_trial_length', true ); - $child_free_trial_period = get_post_meta( $child, '_subscription_trial_period', true ); - - if ( '' === $child_price && '' === $child_sign_up_fee ) { - continue; - } - - $child_price = ( '' === $child_price ) ? 0 : $child_price; - $child_sign_up_fee = ( '' === $child_sign_up_fee ) ? 0 : $child_sign_up_fee; - - // Take taxes into a account to avoid displaying a variation with a lower price pre-tax, but higher price post-tax, in the case of variations having different tax classes (see: https://github.com/Prospress/woocommerce-subscriptions/pull/1602#issuecomment-241330131) - if ( $variation = $this->get_child( $child ) ) { - if ( $child_price > 0 ) { - $child_price = ( 'incl' == get_option( 'woocommerce_tax_display_shop' ) ) ? $variation->get_price_including_tax( 1, $child_price ) : $variation->get_price_excluding_tax( 1, $child_price ); - } - if ( $child_sign_up_fee > 0 ) { - $child_sign_up_fee = ( 'incl' == get_option( 'woocommerce_tax_display_shop' ) ) ? $variation->get_sign_up_fee_including_tax( 1, $child_sign_up_fee ) : $variation->get_sign_up_fee_excluding_tax( 1, $child_sign_up_fee ); - } - } - - $has_free_trial = ( '' !== $child_free_trial_length && $child_free_trial_length > 0 ) ? true : false; - - // Determine some recurring price flags - $is_lowest_price = ( $child_price < $lowest_price || '' === $lowest_price ) ? true : false; - $is_longest_period = ( WC_Subscriptions::get_longest_period( $variable_subscription_period, $child_billing_period ) === $child_billing_period ) ? true : false; - $is_longest_interval = ( $child_billing_interval >= $variable_subscription_period_interval || '' === $variable_subscription_period_interval ) ? true : false; - - // Find the amount the subscriber will have to pay up-front - if ( $has_free_trial ) { - $initial_amount = $child_sign_up_fee; - $initial_period = $child_free_trial_period; - $initial_interval = $child_free_trial_length; - } else { - $initial_amount = $child_price + $child_sign_up_fee; - $initial_period = $child_billing_period; - $initial_interval = $child_billing_interval; - } - - // We have a free trial & no sign-up fee, so need to choose the longest free trial (and maybe the shortest) - if ( $has_free_trial && 0 == $child_sign_up_fee ) { - - // First variation - if ( '' === $longest_trial_period ) { - - $is_min = true; - - // If two variations have the same free trial, choose the variation with the lowest recurring price for the longest period - } elseif ( $variable_subscription_trial_period === $child_free_trial_period && $child_free_trial_length === $variable_subscription_trial_length ) { - - // If the variation has the lowest recurring price, it's the cheapest - if ( $is_lowest_price ) { - - $is_min = true; - - // When current variation's free trial is the same as the lowest, it's the cheaper if it has a longer billing schedule - } elseif ( $child_price === $lowest_price ) { - - if ( $is_longest_period && $is_longest_interval ) { - - $is_min = true; - - // Longest with a new billing period - } elseif ( $is_longest_period && $child_billing_period !== $variable_subscription_trial_period ) { - - $is_min = true; - - } - } - - // Otherwise the cheapest variation is the one with the longer trial - } elseif ( $variable_subscription_trial_period === $child_free_trial_period ) { - - $is_min = ( $child_free_trial_length > $variable_subscription_trial_length ) ? true : false; - - // Otherwise just a longer trial period (that isn't equal to the longest period) - } elseif ( WC_Subscriptions::get_longest_period( $longest_trial_period, $child_free_trial_period ) === $child_free_trial_period ) { - - $is_min = true; - - } - - if ( $is_min ) { - $longest_trial_period = $child_free_trial_period; - $longest_trial_length = $child_free_trial_length; - } - - // If the current cheapest variation is also free, then the shortest trial period is the most expensive - if ( 0 == $lowest_price || '' === $lowest_price ) { - - if ( '' === $shortest_trial_period ) { - - $is_max = true; - - // Need to check trial length - } elseif ( $shortest_trial_period === $child_free_trial_period ) { - - $is_max = ( $child_free_trial_length < $shortest_trial_length ) ? true : false; - - // Need to find shortest period - } elseif ( WC_Subscriptions::get_shortest_period( $shortest_trial_period, $child_free_trial_period ) === $child_free_trial_period ) { - - $is_max = true; - - } - - if ( $is_max ) { - $shortest_trial_period = $child_free_trial_period; - $shortest_trial_length = $child_free_trial_length; - } - } - } else { - - $longest_initial_period = WC_Subscriptions::get_longest_period( $longest_initial_period, $initial_period ); - $shortest_initial_period = WC_Subscriptions::get_shortest_period( $shortest_initial_period, $initial_period ); - - $is_lowest_initial_amount = ( $initial_amount < $lowest_initial_amount || '' === $lowest_initial_amount ) ? true : false; - $is_longest_initial_period = ( $initial_period === $longest_initial_period ) ? true : false; - $is_longest_initial_interval = ( $initial_interval >= $longest_initial_interval || '' === $longest_initial_interval ) ? true : false; - - $is_highest_initial = ( $initial_amount > $highest_initial_amount || '' === $highest_initial_amount ) ? true : false; - $is_shortest_period = ( $initial_period === $shortest_initial_period || '' === $shortest_initial_period ) ? true : false; - $is_shortest_interval = ( $initial_interval < $shortest_initial_interval || '' === $shortest_initial_interval ) ? true : false; - - // If we're not dealing with the lowest initial access amount, then ignore this variation - if ( ! $is_lowest_initial_amount && $initial_amount !== $lowest_initial_amount ) { - continue; - } - - // If the variation has the lowest price, it's the cheapest - if ( $is_lowest_initial_amount ) { - - $is_min = true; - - // When current variation's price is the same as the lowest, it's the cheapest only if it has a longer billing schedule - } elseif ( $initial_amount === $lowest_initial_amount ) { - - // We need to check the recurring schedule when the sign-up fee & free trial periods are equal - if ( $has_free_trial && $initial_period == $longest_initial_period && $initial_interval == $longest_initial_interval ) { - - // If the variation has the lowest recurring price, it's the cheapest - if ( $is_lowest_price ) { - - $is_min = true; - - // When current variation's price is the same as the lowest, it's the cheapest only if it has a longer billing schedule - } elseif ( $child_price === $lowest_price ) { - - if ( $is_longest_period && $is_longest_interval ) { - - $is_min = true; - - // Longest with a new billing period - } elseif ( $is_longest_period && $child_billing_period !== $variable_subscription_period ) { - - $is_min = true; - - } - } - - // Longest initial term is the cheapest - } elseif ( $is_longest_initial_period && $is_longest_initial_interval ) { - - $is_min = true; - - // Longest with a new billing period - } elseif ( $is_longest_initial_period && $initial_period !== $variable_subscription_period ) { - - $is_min = true; - - } - } - - // If we have the highest price for the shortest period, we might have the maximum variation - if ( $is_highest_initial && $is_shortest_period && $is_shortest_interval ) { - - $is_max = true; - - // But only if its for the shortest billing period - } elseif ( $child_price === $highest_price ) { - - if ( $is_shortest_period && $is_shortest_interval ) { - $is_max = true; - } elseif ( $is_shortest_period ) { - $is_max = true; - } - } - } - - // If it's the min subscription terms - if ( $is_min ) { - - $min_variation_id = $child; - - $lowest_price = $child_price; - $lowest_regular_price = get_post_meta( $child, '_regular_price', true ); - $lowest_sale_price = get_post_meta( $child, '_sale_price', true ); - - $lowest_regular_price = ( '' === $lowest_regular_price ) ? 0 : $lowest_regular_price; - $lowest_sale_price = ( '' === $lowest_sale_price ) ? 0 : $lowest_sale_price; - - $lowest_initial_amount = $initial_amount; - $longest_initial_period = $initial_period; - $longest_initial_interval = $initial_interval; - - $variable_subscription_sign_up_fee = $child_sign_up_fee; - $variable_subscription_period = $child_billing_period; - $variable_subscription_period_interval = $child_billing_interval; - $variable_subscription_trial_length = $child_free_trial_length; - $variable_subscription_trial_period = $child_free_trial_period; - $variable_subscription_length = get_post_meta( $child, '_subscription_length', true ); - } - - if ( $is_max ) { - - $max_variation_id = $child; - - $highest_price = $child_price; - $highest_regular_price = get_post_meta( $child, '_regular_price', true ); - $highest_sale_price = get_post_meta( $child, '_sale_price', true ); - $highest_initial_amount = $initial_amount; - - $highest_regular_price = ( '' === $highest_regular_price ) ? 0 : $highest_regular_price; - $highest_sale_price = ( '' === $highest_sale_price ) ? 0 : $highest_sale_price; - - $max_subscription_period = $child_billing_period; - $max_subscription_period_interval = $child_billing_interval; - } - } - - update_post_meta( $this->id, '_min_price_variation_id', $min_variation_id ); - update_post_meta( $this->id, '_max_price_variation_id', $max_variation_id ); - - update_post_meta( $this->id, '_price', $lowest_price ); - update_post_meta( $this->id, '_min_variation_price', $lowest_price ); - update_post_meta( $this->id, '_max_variation_price', $highest_price ); - update_post_meta( $this->id, '_min_variation_regular_price', $lowest_regular_price ); - update_post_meta( $this->id, '_max_variation_regular_price', $highest_regular_price ); - update_post_meta( $this->id, '_min_variation_sale_price', $lowest_sale_price ); - update_post_meta( $this->id, '_max_variation_sale_price', $highest_sale_price ); - - update_post_meta( $this->id, '_min_variation_period', $variable_subscription_period ); - update_post_meta( $this->id, '_max_variation_period', $variable_subscription_period_interval ); - update_post_meta( $this->id, '_min_variation_period_interval', $max_subscription_period ); - update_post_meta( $this->id, '_max_variation_period_interval', $max_subscription_period_interval ); - - update_post_meta( $this->id, '_subscription_price', $lowest_price ); - update_post_meta( $this->id, '_subscription_sign_up_fee', $variable_subscription_sign_up_fee ); - update_post_meta( $this->id, '_subscription_period', $variable_subscription_period ); - update_post_meta( $this->id, '_subscription_period_interval', $variable_subscription_period_interval ); - update_post_meta( $this->id, '_subscription_trial_period', $variable_subscription_trial_period ); - update_post_meta( $this->id, '_subscription_trial_length', $variable_subscription_trial_length ); - update_post_meta( $this->id, '_subscription_length', $variable_subscription_length ); - - $this->subscription_price = $lowest_price; - $this->subscription_sign_up_fee = $variable_subscription_sign_up_fee; - $this->subscription_period = $variable_subscription_period; - $this->subscription_period_interval = $variable_subscription_period_interval; - $this->subscription_trial_period = $variable_subscription_trial_period; - $this->subscription_trial_length = $variable_subscription_trial_length; - $this->subscription_length = $variable_subscription_length; - - if ( function_exists( 'wc_delete_product_transients' ) ) { - wc_delete_product_transients( $this->id ); - } else { - WC()->clear_product_transients( $this->id ); - } - } else { // No variations yet - - $this->subscription_price = ''; - $this->subscription_sign_up_fee = ''; - $this->subscription_period = 'day'; - $this->subscription_period_interval = 1; - $this->subscription_trial_period = 'day'; - $this->subscription_trial_length = 1; - $this->subscription_length = 0; - - } - - } - - /** - * Get the min or max variation (active) price. - * - * This is a copy of WooCommerce < 2.4's get_variation_price() method, because 2.4.0 introduced a new - * transient caching system which assumes asort() on prices yields correct results for min/max prices - * (which it does for prices alone, but that's not the full story for subscription prices). Unfortunately, - * the new caching system is also hard to hook into so we'll just use the old system instead as the - * @see self::variable_product_sync() uses the old method also. - * - * @param string $min_or_max - min or max - * @param boolean $display Whether the value is going to be displayed - * @return string - */ - public function get_variation_price( $min_or_max = 'min', $display = false ) { - $variation_id = get_post_meta( $this->id, '_' . $min_or_max . '_price_variation_id', true ); - - if ( $display ) { - if ( $variation = $this->get_child( $variation_id ) ) { - $price = ( 'incl' == get_option( 'woocommerce_tax_display_shop' ) ) ? $variation->get_price_including_tax() : $variation->get_price_excluding_tax(); - } else { - $price = ''; - } - } else { - $price = get_post_meta( $variation_id, '_price', true ); - } - - return apply_filters( 'woocommerce_get_variation_price', $price, $this, $min_or_max, $display ); - } - /** * Returns the price in html format. * @@ -468,128 +77,20 @@ class WC_Product_Variable_Subscription extends WC_Product_Variable { */ public function get_price_html( $price = '' ) { - $price = parent::get_price_html( $price ); + $prices = $this->get_variation_prices( true ); - if ( ! isset( $this->subscription_period ) || ! isset( $this->subscription_period_interval ) || ! isset( $this->max_variation_period ) || ! isset( $this->max_variation_period_interval ) ) { - $this->variable_product_sync(); + if ( empty( $prices['price'] ) ) { + return apply_filters( 'woocommerce_variable_empty_price_html', '', $this ); } - // Only create the subscription price string when a price has been set - if ( $this->subscription_price !== '' || $this->subscription_sign_up_fee !== '' ) { + $tax_display_mode = get_option( 'woocommerce_tax_display_shop' ); - $price = ''; + $price = WC_Subscriptions_Product::get_price( $this ); + $price = 'incl' == $tax_display_mode ? wcs_get_price_including_tax( $this, array( 'price' => $price ) ) : wcs_get_price_excluding_tax( $this, array( 'price' => $price ) ); + $price = apply_filters( 'woocommerce_variable_price_html', wcs_get_price_html_from_text( $this ) . wc_price( $price ) . $this->get_price_suffix(), $this ); + $price = WC_Subscriptions_Product::get_price_string( $this, array( 'price' => $price ) ); - if ( $this->is_on_sale() && isset( $this->min_variation_price ) && $this->min_variation_regular_price !== $this->get_price() ) { - - if ( ! $this->min_variation_price || $this->min_variation_price !== $this->max_variation_price ) { - $price .= $this->get_price_html_from_text(); - } - - $variation_id = get_post_meta( $this->id, '_min_price_variation_id', true ); - $variation = $this->get_child( $variation_id ); - $tax_display_mode = get_option( 'woocommerce_tax_display_shop' ); - - $sale_price = 'incl' == $tax_display_mode ? $variation->get_price_including_tax( 1, $variation->get_sale_price() ) : $variation->get_price_excluding_tax( 1, $variation->get_sale_price() ); - $regular_price = 'incl' == $tax_display_mode ? $variation->get_price_including_tax( 1, $variation->get_regular_price() ) : $variation->get_price_excluding_tax( 1, $variation->get_regular_price() ); - - $price .= $this->get_price_html_from_to( $regular_price, $sale_price ); - - } else { - - if ( $this->min_variation_price !== $this->max_variation_price ) { - $price .= $this->get_price_html_from_text(); - } - - $price .= wc_price( $this->get_variation_price( 'min', true ) ); - - } - - // Make sure the price contains "From:" when billing schedule differs between variations - if ( false === strpos( $price, $this->get_price_html_from_text() ) ) { - if ( $this->subscription_period !== $this->max_variation_period ) { - $price = $this->get_price_html_from_text() . $price; - } elseif ( $this->subscription_period_interval !== $this->max_variation_period_interval ) { - $price = $this->get_price_html_from_text() . $price; - } - } - - $price .= $this->get_price_suffix(); - - $price = WC_Subscriptions_Product::get_price_string( $this, array( 'price' => $price ) ); - } - - return apply_filters( 'woocommerce_variable_subscription_price_html', $price, $this ); - } - - /** - * Returns the sign up fee (including tax) by filtering the products price used in - * @see WC_Product::get_price_including_tax( $qty ) - * - * @return string - */ - public function get_sign_up_fee_including_tax( $qty = 1 ) { - - add_filter( 'woocommerce_get_price', array( &$this, 'get_sign_up_fee' ), 100, 0 ); - - $sign_up_fee_including_tax = parent::get_price_including_tax( $qty ); - - remove_filter( 'woocommerce_get_price', array( &$this, 'get_sign_up_fee' ), 100, 0 ); - - return $sign_up_fee_including_tax; - } - - /** - * Returns the sign up fee (excluding tax) by filtering the products price used in - * @see WC_Product::get_price_excluding_tax( $qty ) - * - * @return string - */ - public function get_sign_up_fee_excluding_tax( $qty = 1 ) { - - add_filter( 'woocommerce_get_price', array( &$this, 'get_sign_up_fee' ), 100, 0 ); - - $sign_up_fee_excluding_tax = parent::get_price_excluding_tax( $qty ); - - remove_filter( 'woocommerce_get_price', array( &$this, 'get_sign_up_fee' ), 100, 0 ); - - return $sign_up_fee_excluding_tax; - } - - /** - * Return the sign-up fee for this product - * - * @return string - */ - public function get_sign_up_fee() { - return WC_Subscriptions_Product::get_sign_up_fee( $this ); - } - - /** - * get_child function. - * - * @access public - * @param mixed $child_id - * @return object WC_Product_Subscription or WC_Product_Subscription_Variation - */ - public function get_child( $child_id ) { - return wc_get_product( $child_id, array( - 'product_type' => 'Subscription_Variation', - 'parent_id' => $this->id, - 'parent' => $this, - ) ); - } - - /** - * - * @param string $product_type A string representation of a product type - */ - public function add_to_cart_handler( $handler, $product ) { - - if ( 'variable-subscription' === $handler ) { - $handler = 'variable'; - } - - return $handler; + return apply_filters( 'woocommerce_variable_subscription_price_html', apply_filters( 'woocommerce_get_price_html', $price, $this ), $this ); } /** @@ -615,12 +116,114 @@ class WC_Product_Variable_Subscription extends WC_Product_Variable { * @return bool */ public function is_type( $type ) { - if ( $this->product_type == $type || ( is_array( $type ) && in_array( $this->product_type, $type ) ) ) { - return true; - } elseif ( $this->parent_product_type == $type || ( is_array( $type ) && in_array( $this->parent_product_type, $type ) ) ) { + if ( 'variable' == $type || ( is_array( $type ) && in_array( 'variable', $type ) ) ) { return true; } else { - return false; + return parent::is_type( $type ); } } + + /** + * Sort an associative array of $variation_id => $price pairs in order of min and max prices. + * + * @param array $prices Associative array of $variation_id => $price pairs + * @return array + */ + protected function sort_variation_prices( $prices ) { + + // If we don't have any prices, there's nothing to sort. + if ( empty( $prices ) ) { + return $prices; + } + + $prices_hash = md5( json_encode( $prices ) ); + + if ( empty( $this->sorted_variation_prices[ $prices_hash ] ) ) { + + $child_variation_ids = array_keys( $prices ); + $variation_hash = md5( json_encode( $child_variation_ids ) ); + + if ( empty( $this->min_max_variation_data[ $variation_hash ] ) ) { + $this->min_max_variation_data[ $variation_hash ] = wcs_get_min_max_variation_data( $this, $child_variation_ids ); + } + + $min_variation_id = $this->min_max_variation_data[ $variation_hash ]['min']['variation_id']; + $max_variation_id = $this->min_max_variation_data[ $variation_hash ]['max']['variation_id']; + + // Reorder the variable price arrays to reflect the min and max values so that WooCommerce will find them in the correct order + $min_price = $prices[ $min_variation_id ]; + $max_price = $prices[ $max_variation_id ]; + + unset( $prices[ $min_variation_id ] ); + unset( $prices[ $max_variation_id ] ); + + // Prepend the minimum variation and append the maximum variation + $prices = array( $min_variation_id => $min_price ) + $prices; + $prices += array( $max_variation_id => $max_price ); + + $this->sorted_variation_prices[ $prices_hash ] = $prices; + } + + return $this->sorted_variation_prices[ $prices_hash ]; + } + + /* Deprecated Functions */ + + /** + * Return the sign-up fee for this product + * + * @return string + */ + public function get_sign_up_fee() { + wcs_deprecated_function( __METHOD__, '2.2.0', 'WC_Subscriptions_Product::get_sign_up_fee( $this )' ); + return WC_Subscriptions_Product::get_sign_up_fee( $this ); + } + + /** + * Returns the sign up fee (including tax) by filtering the products price used in + * @see WC_Product::get_price_including_tax( $qty ) + * + * @return string + */ + public function get_sign_up_fee_including_tax( $qty = 1 ) { + wcs_deprecated_function( __METHOD__, '2.2.0', 'wcs_get_price_including_tax( $product, array( "qty" => $qty, "price" => WC_Subscriptions_Product::get_sign_up_fee( $product ) ) )' ); + return wcs_get_price_including_tax( $this, array( 'qty' => $qty, 'price' => WC_Subscriptions_Product::get_sign_up_fee( $this ) ) ); + } + + /** + * Returns the sign up fee (excluding tax) by filtering the products price used in + * @see WC_Product::get_price_excluding_tax( $qty ) + * + * @return string + */ + public function get_sign_up_fee_excluding_tax( $qty = 1 ) { + wcs_deprecated_function( __METHOD__, '2.2.0', 'wcs_get_price_excluding_tax( $product, array( "qty" => $qty, "price" => WC_Subscriptions_Product::get_sign_up_fee( $product ) ) )' ); + return wcs_get_price_excluding_tax( $this, array( 'qty' => $qty, 'price' => WC_Subscriptions_Product::get_sign_up_fee( $this ) ) ); + } + + /** + * + * @param string $product_type A string representation of a product type + */ + public function add_to_cart_handler( $handler, $product ) { + wcs_deprecated_function( __METHOD__, '2.2.0', 'WC_Subscriptions_Cart::add_to_cart_handler( $handler, $product )' ); + return WC_Subscriptions_Cart::add_to_cart_handler( $handler, $product ); + } + + /** + * Sync variable product prices with the childs lowest/highest prices. + * + * @access public + * @return void + */ + public function variable_product_sync( $product_id = '' ) { + wcs_deprecated_function( __METHOD__, '2.2,0', 'WC_Subscriptions_Product::variable_subscription_product_sync( $this )' ); + + if ( empty( $product_id ) ) { + $product_id = $this->get_id(); + } + + // Sync prices with children + self::sync( $product_id ); + } } diff --git a/includes/class-wc-subscription.php b/includes/class-wc-subscription.php index 8533d51..9cecc3b 100644 --- a/includes/class-wc-subscription.php +++ b/includes/class-wc-subscription.php @@ -15,7 +15,7 @@ class WC_Subscription extends WC_Order { /** @public WC_Order Stores order data for the order in which the subscription was purchased (if any) */ - public $order = false; + protected $order = null; /** @public string Order type */ public $order_type = 'shop_subscription'; @@ -23,6 +23,74 @@ class WC_Subscription extends WC_Order { /** @private int Stores get_completed_payment_count when used multiple times in payment_complete() */ private $cached_completed_payment_count = false; + /** + * Which data store to load. WC 3.0+ property. + * + * @var string + */ + protected $data_store_name = 'subscription'; + + /** + * This is the name of this object type. WC 3.0+ property. + * + * @var string + */ + protected $object_type = 'subscription'; + + /** + * Stores the $this->is_editable() returned value in memory + * + * @var bool + */ + private $editable; + + /** + * Extra data for this object. Name value pairs (name + default value). Used to add additional information to parent. + * + * WC 3.0+ property. + * + * @var array + */ + protected $extra_data = array( + + // Extra data with getters/setters + 'billing_period' => '', + 'billing_interval' => 1, + 'suspension_count' => 0, + 'requires_manual_renewal' => 'true', + 'cancelled_email_sent' => false, + 'trial_period' => '', + + // Extra data that requires manual getting/setting because we don't define getters/setters for it + 'schedule_trial_end' => null, + 'schedule_next_payment' => null, + 'schedule_cancelled' => null, + 'schedule_end' => null, + 'schedule_payment_retry' => null, + + 'switch_data' => array(), + ); + + /** @private array The set of valid date types that can be set on the subscription */ + protected $valid_date_types = array(); + + /** + * List of properties deprecated for direct access due to WC 3.0+ & CRUD. + * + * @var array + */ + private $deprecated_properties = array( + 'start_date', + 'trial_end_date', + 'next_payment_date', + 'end_date', + 'last_payment_date', + 'order', + 'payment_gateway', + 'requires_manual_renewal', + 'suspension_count', + ); + /** * Initialize the subscription object. * @@ -33,21 +101,15 @@ class WC_Subscription extends WC_Order { parent::__construct( $subscription ); $this->order_type = 'shop_subscription'; - - $this->schedule = new stdClass(); } /** - * Populates a subscription from the loaded post data. + * Get internal type. * - * @param mixed $result + * @return string */ - public function populate( $result ) { - parent::populate( $result ); - - if ( $this->post->post_parent > 0 ) { - $this->order = wc_get_order( $this->post->post_parent ); - } + public function get_type() { + return 'shop_subscription'; } /** @@ -58,7 +120,7 @@ class WC_Subscription extends WC_Order { */ public function __isset( $key ) { - if ( in_array( $key, array( 'start_date', 'trial_end_date', 'next_payment_date', 'end_date', 'last_payment_date', 'order', 'payment_gateway' ) ) ) { + if ( ! WC_Subscriptions::is_woocommerce_pre( '3.0' ) && in_array( $key, $this->deprecated_properties ) ) { $is_set = true; @@ -71,6 +133,52 @@ class WC_Subscription extends WC_Order { return $is_set; } + /** + * Set deprecated properties via new methods. + * + * @param mixed $key + * @param mixed $value + * @return mixed + */ + public function __set( $key, $value ) { + + if ( in_array( $key, $this->deprecated_properties ) ) { + + switch ( $key ) { + + case 'order' : + $function = 'WC_Subscription::set_parent_id( $order_id )'; + $this->set_parent_id( wcs_get_objects_property( $value, 'id' ) ); + $this->order = $value; + break; + + case 'requires_manual_renewal' : + $function = 'WC_Subscription::set_requires_manual_renewal()'; + $this->set_requires_manual_renewal( $value ); + break; + + case 'payment_gateway' : + $function = 'WC_Subscription::set_payment_method()'; + $this->set_payment_method( $value ); + break; + + case 'suspension_count' : + $function = 'WC_Subscription::set_suspension_count()'; + $this->set_suspension_count( $value ); + break; + + default : + $function = 'WC_Subscription::update_dates()'; + $this->update_dates( array( $key => $value ) ); + break; + } + + if ( ! WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + wcs_doing_it_wrong( $key, sprintf( 'Subscription properties should not be set directly as WooCommerce 3.0 no longer supports direct property access. Use %s instead.', $function ), '2.2.0' ); + } + } + } + /** * __get function. * @@ -79,19 +187,39 @@ class WC_Subscription extends WC_Order { */ public function __get( $key ) { - if ( in_array( $key, array( 'start_date', 'trial_end_date', 'next_payment_date', 'end_date', 'last_payment_date' ) ) ) { + if ( in_array( $key, $this->deprecated_properties ) ) { - $value = $this->get_date( $key ); + switch ( $key ) { - } elseif ( 'payment_gateway' == $key ) { + case 'order' : + $function = 'WC_Subscription::get_parent()'; + $value = $this->get_parent(); + break; - // Only set the payment gateway once and only when we first need it - if ( ! property_exists( $this, 'payment_gateway' ) || empty( $this->payment_gateway ) ) { - $this->payment_gateway = wc_get_payment_gateway_by_order( $this ); + case 'requires_manual_renewal' : + $function = 'WC_Subscription::get_requires_manual_renewal()'; + $value = $this->get_requires_manual_renewal() ? 'true' : 'false'; // We now use booleans for getter return values, so we need to convert it when being accessed via the old property approach to the string value returned + break; + + case 'payment_gateway' : + $function = 'wc_get_payment_gateway_by_order( $subscription )'; + $value = wc_get_payment_gateway_by_order( $this ); + break; + + case 'suspension_count' : + $function = 'WC_Subscription::get_suspension_count()'; + $value = $this->get_suspension_count(); + break; + + default : + $function = 'WC_Subscription::get_date( ' . $key . ' )'; + $value = $this->get_date( $key ); + break; } - $value = $this->payment_gateway; - + if ( ! WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + wcs_doing_it_wrong( $key, sprintf( 'Subscription properties should not be accessed directly as WooCommerce 3.0 no longer supports direct property access. Use %s instead.', $function ), '2.2.0' ); + } } else { $value = parent::__get( $key ); @@ -101,24 +229,6 @@ class WC_Subscription extends WC_Order { return $value; } - /** - * Set or change the WC_Order ID which records the subscription's initial purchase. - * - * @param int $post_id - */ - public function update_parent( $order_id ) { - - // Update the parent in the database - wp_update_post( array( - 'ID' => $this->id, - 'post_parent' => $order_id, - ) ); - - // And update the parent in memory - $this->post->post_parent = $order_id; - $this->order = wc_get_order( $order_id ); - } - /** * Checks if the subscription has an unpaid order or renewal order (and therefore, needs payment). * @@ -137,7 +247,7 @@ class WC_Subscription extends WC_Order { $needs_payment = true; // Now make sure the parent order doesn't need payment - } elseif ( false !== $this->order && ( $this->order->needs_payment() || $this->order->has_status( 'on-hold' ) ) ) { + } elseif ( ( $parent_order = $this->get_parent() ) && ( $parent_order->needs_payment() || $parent_order->has_status( 'on-hold' ) ) ) { $needs_payment = true; @@ -155,7 +265,7 @@ class WC_Subscription extends WC_Order { array( 'key' => '_subscription_renewal', 'compare' => '=', - 'value' => $this->id, + 'value' => $this->get_id(), 'type' => 'numeric', ), ), @@ -163,7 +273,7 @@ class WC_Subscription extends WC_Order { if ( ! empty( $last_order_id ) ) { - $order = new WC_Order( $last_order_id[0] ); + $order = wc_get_order( $last_order_id[0] ); if ( $order->needs_payment() || $order->has_status( array( 'on-hold', 'failed', 'cancelled' ) ) ) { $needs_payment = true; @@ -191,7 +301,7 @@ class WC_Subscription extends WC_Order { */ public function payment_method_supports( $payment_gateway_feature ) { - if ( $this->is_manual() || ( ! empty( $this->payment_gateway ) && $this->payment_gateway->supports( $payment_gateway_feature ) ) ) { + if ( $this->is_manual() || ( false !== ( $payment_gateway = wc_get_payment_gateway_by_order( $this ) ) && $payment_gateway->supports( $payment_gateway_feature ) ) ) { $payment_gateway_supports = true; } else { $payment_gateway_supports = false; @@ -285,7 +395,7 @@ class WC_Subscription extends WC_Order { */ public function update_status( $new_status, $note = '', $manual = false ) { - if ( ! $this->id ) { + if ( ! $this->get_id() ) { return; } @@ -315,8 +425,7 @@ class WC_Subscription extends WC_Order { try { - wp_update_post( array( 'ID' => $this->id, 'post_status' => $new_status_key ) ); - $this->post_status = $new_status_key; + $this->set_status( $new_status, $note, $manual ); switch ( $new_status ) { @@ -358,14 +467,14 @@ class WC_Subscription extends WC_Order { } } // Trial end date and end/expiration date don't change at all - they should be set when the subscription is first created - wcs_make_user_active( $this->customer_user ); + wcs_make_user_active( $this->get_user_id() ); break; case 'failed' : // core WC order status mapped internally to avoid exceptions case 'on-hold' : // Record date of suspension - 'post_modified' column? - $this->update_suspension_count( $this->suspension_count + 1 ); - wcs_maybe_make_user_inactive( $this->customer_user ); + $this->set_suspension_count( $this->get_suspension_count() + 1 ); + wcs_maybe_make_user_inactive( $this->get_user_id() ); break; case 'cancelled' : case 'switched' : @@ -383,22 +492,12 @@ class WC_Subscription extends WC_Order { } $this->update_dates( $dates_to_update ); - wcs_maybe_make_user_inactive( $this->customer_user ); + wcs_maybe_make_user_inactive( $this->get_user_id() ); break; } - // dynamic hooks for convenience - do_action( 'woocommerce_subscription_status_' . $new_status, $this ); - do_action( 'woocommerce_subscription_status_' . $old_status . '_to_' . $new_status, $this ); - - // Trigger a hook with params we want - do_action( 'woocommerce_subscription_status_updated', $this, $new_status, $old_status ); - - // Trigger a hook with params matching WooCommerce's 'woocommerce_order_status_changed' hook so functions attached to it can be attached easily to subscription status changes - do_action( 'woocommerce_subscription_status_changed', $this->id, $old_status, $new_status ); - - // translators: $1 note why the status changes (if any), $2: old status, $3: new status - $this->add_order_note( trim( sprintf( __( '%1$s Status changed from %2$s to %3$s.', 'woocommerce-subscriptions' ), $note, wcs_get_subscription_status_name( $old_status ), wcs_get_subscription_status_name( $new_status ) ) ), 0, $manual ); + // Make sure status is saved when WC 3.0+ is active, similar to WC_Order::update_status() with WC 3.0+ - set_status() can be used to avoid saving. + $this->save(); } catch ( Exception $e ) { // Log any exceptions to a WC logger @@ -409,11 +508,16 @@ class WC_Subscription extends WC_Order { $log->add( 'wcs-update-status-failures', $log_entry ); // Make sure the old status is restored - wp_update_post( array( 'ID' => $this->id, 'post_status' => $old_status_key ) ); - $this->post_status = $old_status_key; + $this->set_status( $old_status, $note, $manual ); + + // There is no status transition + $this->status_transition = false; $this->add_order_note( sprintf( __( 'Unable to change subscription status to "%s". Exception: %s', 'woocommerce-subscriptions' ), $new_status, $e->getMessage() ) ); + // Make sure status is saved when WC 3.0+ is active, similar to WC_Order::update_status() with WC 3.0+ - set_status() can be used to avoid saving. + $this->save(); + do_action( 'woocommerce_subscription_unable_to_update_status', $this, $new_status, $old_status ); throw $e; @@ -421,15 +525,52 @@ class WC_Subscription extends WC_Order { } } + /** + * Handle the status transition. + */ + protected function status_transition() { + + if ( $this->status_transition ) { + do_action( 'woocommerce_subscription_status_' . $this->status_transition['to'], $this ); + + if ( ! empty( $this->status_transition['from'] ) ) { + /* translators: 1: old subscription status 2: new subscription status */ + $transition_note = sprintf( __( 'Status changed from %1$s to %2$s.', 'woocommerce-subscriptions' ), wcs_get_subscription_status_name( $this->status_transition['from'] ), wcs_get_subscription_status_name( $this->status_transition['to'] ) ); + + do_action( 'woocommerce_subscription_status_' . $this->status_transition['from'] . '_to_' . $this->status_transition['to'], $this ); + + // Trigger a hook with params we want + do_action( 'woocommerce_subscription_status_updated', $this, $this->status_transition['to'], $this->status_transition['from'] ); + + // Trigger a hook with params matching WooCommerce's 'woocommerce_order_status_changed' hook so functions attached to it can be attached easily to subscription status changes + do_action( 'woocommerce_subscription_status_changed', $this->get_id(), $this->status_transition['from'], $this->status_transition['to'], $this ); + + } else { + /* translators: %s: new order status */ + $transition_note = sprintf( __( 'Status set to %s.', 'woocommerce-subscriptions' ), wcs_get_subscription_status_name( $this->status_transition['to'] ) ); + } + + // Note the transition occured + $this->add_order_note( trim( $this->status_transition['note'] . ' ' . $transition_note ), 0, $this->status_transition['manual'] ); + + // This has ran, so reset status transition variable + $this->status_transition = false; + } + } + /** * Checks if the subscription requires manual renewal payments. * + * This differs to the @see self::get_requires_manual_renewal() method in that it also conditions outside + * of the 'requires_manual_renewal' property which would force a subscription to require manual renewal + * payments, like an inactive payment gateway or a site in staging mode. + * * @access public * @return bool */ public function is_manual() { - if ( WC_Subscriptions::is_duplicate_site() || empty( $this->payment_gateway ) || ( isset( $this->requires_manual_renewal ) && 'true' == $this->requires_manual_renewal ) ) { + if ( WC_Subscriptions::is_duplicate_site() || true === $this->get_requires_manual_renewal() || false === wc_get_payment_gateway_by_order( $this ) ) { $is_manual = true; } else { $is_manual = false; @@ -438,25 +579,6 @@ class WC_Subscription extends WC_Order { return $is_manual; } - /** - * Checks if the subscription requires manual renewal payments. - * - * @access public - * @return bool - */ - public function update_manual( $is_manual = true ) { - - if ( true === $is_manual || 'true' === $is_manual ) { - $this->requires_manual_renewal = 'true'; - update_post_meta( $this->id, '_requires_manual_renewal', 'true' ); - } else { - $this->requires_manual_renewal = 'false'; - update_post_meta( $this->id, '_requires_manual_renewal', 'false' ); - } - - return $is_manual; - } - /** * Overrides the WC Order get_status function for draft and auto-draft statuses for a subscription * so that it will return a pending status instead of draft / auto-draft. @@ -464,8 +586,9 @@ class WC_Subscription extends WC_Order { * @since 2.0 * @return string Status */ - public function get_status() { - if ( in_array( get_post_status( $this->id ), array( 'draft', 'auto-draft' ) ) ) { + public function get_status( $context = 'view' ) { + + if ( in_array( get_post_status( $this->get_id() ), array( 'draft', 'auto-draft' ) ) ) { $this->post_status = 'wc-pending'; $status = apply_filters( 'woocommerce_order_get_status', 'pending', $this ); } else { @@ -475,6 +598,16 @@ class WC_Subscription extends WC_Order { return $status; } + /** + * Get valid order status keys + * + * @since 2.2.0 + * @return array details of change + */ + public function get_valid_statuses() { + return array_keys( wcs_get_subscription_statuses() ); + } + /** * WooCommerce handles statuses without the wc- prefix in has_status, get_status and update_status, however in the database * it stores it with the prefix. This makes it hard to use the same filters / status names in both WC's methods AND WP's @@ -491,7 +624,7 @@ class WC_Subscription extends WC_Order { 'wc-completed', ); - $custom_status = apply_filters( 'woocommerce_payment_complete_order_status', 'completed', $this->id ); + $custom_status = apply_filters( 'woocommerce_payment_complete_order_status', 'completed', $this->get_id() ); if ( '' !== $custom_status && ! in_array( $custom_status, $paid_statuses ) && ! in_array( 'wc-' . $custom_status, $paid_statuses ) ) { $paid_statuses[] = $custom_status; @@ -513,9 +646,9 @@ class WC_Subscription extends WC_Order { public function get_completed_payment_count() { // If not cached, calculate the completed payment count otherwise return the cached version - if ( false === $this->cached_completed_payment_count ) { + if ( false === $this->cached_completed_payment_count ) { - $completed_payment_count = ( false !== $this->order && ( isset( $this->order->paid_date ) || $this->order->has_status( $this->get_paid_order_statuses() ) ) ) ? 1 : 0; + $completed_payment_count = ( ( $parent_order = $this->get_parent() ) && ( null !== wcs_get_objects_property( $parent_order, 'date_paid' ) || $parent_order->has_status( $this->get_paid_order_statuses() ) ) ) ? 1 : 0; // Get all renewal orders - for large sites its more efficient to find the two different sets of renewal orders below using post__in than complicated meta queries $renewal_orders = get_posts( array( @@ -528,7 +661,7 @@ class WC_Subscription extends WC_Order { 'meta_key' => '_subscription_renewal', 'meta_compare' => '=', 'meta_type' => 'numeric', - 'meta_value' => $this->id, + 'meta_value' => $this->get_id(), 'update_post_term_cache' => false, ) ); @@ -584,7 +717,7 @@ class WC_Subscription extends WC_Order { */ public function get_failed_payment_count() { - $failed_payment_count = ( false !== $this->order && $this->order->has_status( 'wc-failed' ) ) ? 1 : 0; + $failed_payment_count = ( ( $parent_order = $this->get_parent() ) && $parent_order->has_status( 'wc-failed' ) ) ? 1 : 0; $failed_renewal_orders = get_posts( array( 'posts_per_page' => -1, @@ -597,7 +730,7 @@ class WC_Subscription extends WC_Order { array( 'key' => '_subscription_renewal', 'compare' => '=', - 'value' => $this->id, + 'value' => $this->get_id(), 'type' => 'numeric', ), ), @@ -620,20 +753,173 @@ class WC_Subscription extends WC_Order { * @since 2.0 */ public function get_total_initial_payment() { - $initial_total = ( false !== $this->order ) ? $this->order->get_total() : 0; + $initial_total = ( $parent_order = $this->get_parent() ) ? $parent_order->get_total() : 0; return apply_filters( 'woocommerce_subscription_total_initial_payment', $initial_total, $this ); } /** - * Update the internal tally of suspensions on this subscription since the last payment. + * Get billing period. * - * @return int The count of suspensions - * @since 2.0 + * @return string + * @since 2.2.0 */ - public function update_suspension_count( $new_count ) { - $this->suspension_count = $new_count; - update_post_meta( $this->id, '_suspension_count', $this->suspension_count ); - return $this->suspension_count; + public function get_billing_period( $context = 'view' ) { + return $this->get_prop( 'billing_period', $context ); + } + + /** + * Get billing interval. + * + * @return string + * @since 2.2.0 + */ + public function get_billing_interval( $context = 'view' ) { + return $this->get_prop( 'billing_interval', $context ); + } + + /** + * Get trial period. + * + * @return string + * @since 2.2.0 + */ + public function get_trial_period( $context = 'view' ) { + return $this->get_prop( 'trial_period', $context ); + } + + /** + * Get suspension count. + * + * @return string + * @since 2.2.0 + */ + public function get_suspension_count( $context = 'view' ) { + return $this->get_prop( 'suspension_count', $context ); + } + + /** + * Checks if the subscription requires manual renewal payments. + * + * @access public + * @return bool + * @since 2.2.0 + */ + public function get_requires_manual_renewal( $context = 'view' ) { + return $this->get_prop( 'requires_manual_renewal', $context ); + } + + /** + * Get the switch data. + * + * @since 2.2.0 + * @return string + */ + public function get_switch_data( $context = 'view' ) { + return $this->get_prop( 'switch_data', $context ); + } + + /** + * Get the flag about whether the cancelled email has been sent or not. + * + * @return string + */ + public function get_cancelled_email_sent( $context = 'view' ) { + return $this->get_prop( 'cancelled_email_sent', $context ); + } + + /*** Setters *****************************************************/ + + /** + * Set billing period. + * + * @since 2.2.0 + * @param string $value + */ + public function set_billing_period( $value ) { + $this->set_prop( 'billing_period', $value ); + } + + /** + * Set billing interval. + * + * @since 2.2.0 + * @param int $value + */ + public function set_billing_interval( $value ) { + $this->set_prop( 'billing_interval', absint( $value ) ); + } + + /** + * Set trial period. + * + * @param string $value + * @since 2.2.0 + */ + public function set_trial_period( $value ) { + $this->set_prop( 'trial_period', $value ); + } + + /** + * Set suspension count. + * + * @since 2.2.0 + * @param int $value + */ + public function set_suspension_count( $value ) { + $this->set_prop( 'suspension_count', absint( $value ) ); + } + + /** + * Set parent order ID. We don't use WC_Abstract_Order::set_parent_id() because we want to allow false + * parent IDs, like 0. + * + * @since 2.2.0 + * @param int $value + */ + public function set_parent_id( $value ) { + $this->set_prop( 'parent_id', absint( $value ) ); + $this->order = null; + } + + /** + * Set the manual renewal flag on the subscription. + * + * The manual renewal flag is stored in database as string 'true' or 'false' when set, and empty string when not set + * (which means it doesn't require manual renewal), but we want to consistently use it via get/set as a boolean, + * for sanity's sake. + * + * @since 2.2.0 + * @param bool $value + */ + public function set_requires_manual_renewal( $value ) { + + if ( ! is_bool( $value ) ) { + if ( 'false' === $value || '' === $value ) { + $value = false; + } else { // default to require manual renewal for all other values, which may often includes string 'true' or some invalid value + $value = true; + } + } + + $this->set_prop( 'requires_manual_renewal', $value ); + } + + /** + * Set the switch data on the subscription. + * + * @since 2.2.0 + */ + public function set_switch_data( $value ) { + $this->set_prop( 'switch_data', $value ); + } + + /** + * Set the flag about whether the cancelled email has been sent or not. + * + * @since 2.2.0 + */ + public function set_cancelled_email_sent( $value ) { + $this->set_prop( 'cancelled_email_sent', $value ); } /*** Date methods *****************************************************/ @@ -641,51 +927,206 @@ class WC_Subscription extends WC_Order { /** * Get the MySQL formatted date for a specific piece of the subscriptions schedule * - * @param string $date_type 'start', 'trial_end', 'next_payment', 'last_payment' or 'end' + * @param string $date_type 'date_created', 'trial_end', 'next_payment', 'last_order_date_created' or 'end' * @param string $timezone The timezone of the $datetime param, either 'gmt' or 'site'. Default 'gmt'. */ public function get_date( $date_type, $timezone = 'gmt' ) { - // Accept dates with a '_date' suffix, like 'next_payment_date' or 'start_date' - $date_type = str_replace( '_date', '', $date_type ); - - if ( ! empty( $date_type ) && ! isset( $this->schedule->{$date_type} ) ) { - switch ( $date_type ) { - case 'start' : - $this->schedule->{$date_type} = ( '0000-00-00 00:00:00' != $this->post->post_date_gmt ) ? $this->post->post_date_gmt : get_gmt_from_date( $this->post->post_date ); // why not always use post_date_gmt? Because when a post is first created via the Add Subscription screen, it has a post_date but not a post_date_gmt value yet - break; - case 'last_payment' : - $this->schedule->{$date_type} = $this->get_last_payment_date(); - break; - default : - $this->schedule->{$date_type} = get_post_meta( $this->id, wcs_get_date_meta_key( $date_type ), true ); - break; - } - - if ( empty( $this->schedule->{$date_type} ) || false === $this->schedule->{$date_type} ) { - $this->schedule->{$date_type} = 0; - } - } + $date_type = wcs_normalise_date_type_key( $date_type, true ); if ( empty( $date_type ) ) { $date = 0; - } elseif ( 0 != $this->schedule->{$date_type} && 'gmt' != strtolower( $timezone ) ) { - $date = get_date_from_gmt( $this->schedule->{$date_type} ); } else { - $date = $this->schedule->{$date_type}; + switch ( $date_type ) { + case 'date_created' : + $date = $this->get_date_created(); + $date = is_null( $date ) ? wcs_get_datetime_from( get_the_date( 'Y-m-d H:i:s', $this->get_id() ) ) : $date; // When a post is first created via the Add Subscription screen, it has a post_date but not a date_created value yet + break; + case 'date_modified' : + $date = $this->get_date_modified(); + break; + case 'date_paid' : + $date = $this->get_date_paid(); + break; + case 'date_completed' : + $date = $this->get_date_completed(); + break; + case 'last_order_date_created' : + $date = $this->get_related_orders_date( 'date_created', 'last' ); + break; + case 'last_order_date_paid' : + $date = $this->get_related_orders_date( 'date_paid', 'last' ); + break; + case 'last_order_date_completed' : + $date = $this->get_related_orders_date( 'date_completed', 'last' ); + break; + default : + $date = $this->get_date_prop( $date_type ); + break; + } + + if ( is_null( $date ) ) { + $date = 0; + } + } + + if ( is_a( $date, 'DateTime' ) ) { + // Don't change the original date object's timezone as this may affect the prop stored on the subscription + $date = clone $date; + + // WC's return values use site timezone by default + if ( 'gmt' === strtolower( $timezone ) ) { + $date->setTimezone( new DateTimeZone( 'UTC' ) ); + } + + $date = $date->format( 'Y-m-d H:i:s' ); } return apply_filters( 'woocommerce_subscription_get_' . $date_type . '_date', $date, $this, $timezone ); } + /** + * Get the stored date. + * + * Used for WC 3.0 compatibility and for WC_Subscription_Legacy to override. + * + * @param string $date_type 'trial_end', 'next_payment', 'last_order_date_created', 'cancelled', 'payment_retry' or 'end' + * @return WC_DateTime|NULL object if the date is set or null if there is no date. + */ + protected function get_date_prop( $date_type ) { + return $this->get_prop( $this->get_date_prop_key( $date_type ) ); + } + + /** + * Set the stored date. + * + * Used for WC 3.0 compatibility and for WC_Subscription_Legacy to override. + * + * @param string $date_type 'trial_end', 'next_payment', 'cancelled', 'payment_retry' or 'end' + * @param string|integer|null $date UTC timestamp, or ISO 8601 DateTime. If the DateTime string has no timezone or offset, WordPress site timezone will be assumed. Null if their is no date. + */ + protected function set_date_prop( $date_type, $value ) { + parent::set_date_prop( $this->get_date_prop_key( $date_type ), $value ); + } + + /** + * Get the key used to refer to the date type in the set of props + * + * @param string $date_type 'trial_end', 'next_payment', 'last_order_date_created', 'cancelled', 'payment_retry' or 'end' + * @return string The key used to refer to the date in props + */ + protected function get_date_prop_key( $date_type ) { + $prefixed_date_type = wcs_maybe_prefix_key( $date_type, 'schedule_' ); + return array_key_exists( $prefixed_date_type, $this->extra_data ) ? $prefixed_date_type : $date_type; + } + + /** + * Get date_paid prop of most recent related order that has been paid. + * + * A subscription's paid date is actually determined by the most recent related order, + * with a paid date set, not a prop on the subscription itself. + * + * @param string $context + * @return WC_DateTime|NULL object if the date is set or null if there is no date. + */ + public function get_date_paid( $context = 'view' ) { + return $this->get_related_orders_date( 'date_paid' ); + } + + /** + * Set date_paid. + * + * A subscription's paid date is actually determined by the last order, not a prop on WC_Subscription. + * + * @param string|integer|null $date UTC timestamp, or ISO 8601 DateTime. If the DateTime string has no timezone or offset, WordPress site timezone will be assumed. Null if their is no date. + * @throws WC_Data_Exception + */ + public function set_date_paid( $date = null ) { + $this->set_last_order_date( 'date_paid', $date ); + } + + /** + * Get date_completed. + * + * A subscription's completed date is actually determined by the last order, not a prop. + * + * @param string $context + * @return WC_DateTime|NULL object if the date is set or null if there is no date. + */ + public function get_date_completed( $context = 'view' ) { + return $this->get_related_orders_date( 'date_completed' ); + } + + /** + * Set date_completed. + * + * A subscription's completed date is actually determined by the last order, not a prop. + * + * @param string|integer|null $date UTC timestamp, or ISO 8601 DateTime. If the DateTime string has no timezone or offset, WordPress site timezone will be assumed. Null if their is no date. + * @throws WC_Data_Exception + */ + public function set_date_completed( $date = null ) { + $this->set_last_order_date( 'date_completed', $date ); + } + + /** + * Get a certain date type for the most recent order on the subscription with that date type, + * or the last order, if the order type is specified as 'last'. + * + * @since 2.2.0 + * @param string $date_type Any valid WC 3.0 date property, including 'date_paid', 'date_completed', 'date_created', or 'date_modified' + * @param string $order_type The type of orders to return, can be 'last', 'parent', 'switch', 'renewal' or 'all'. Default 'all'. Use 'last' to only check the last order. + * @return WC_DateTime|NULL object if the date is set or null if there is no date. + */ + protected function get_related_orders_date( $date_type, $order_type = 'all' ) { + + $date = null; + + if ( 'last' === $order_type ) { + $last_order = $this->get_last_order( 'all' ); + $date = ( ! $last_order ) ? null : wcs_get_objects_property( $last_order, $date_type ); + } else { + // Loop over orders until we find a valid date of this type or run out of related orders + foreach ( $this->get_related_orders( 'ids', $order_type ) as $related_order_id ) { + $related_order = wc_get_order( $related_order_id ); + $date = ( ! $related_order ) ? null : wcs_get_objects_property( $related_order, $date_type ); + if ( is_a( $date, 'WC_Datetime' ) ) { + break; + } + } + } + + return $date; + } + + /** + * Set a certain date type for the last order on the subscription. + * + * @since 2.2.0 + * @param string $date_type One of 'date_paid', 'date_completed', 'date_modified', or 'date_created'. + */ + protected function set_last_order_date( $date_type, $date = null ) { + + if ( $this->object_read ) { + + $setter = 'set_' . $date_type; + $last_order = $this->get_last_order( 'all' ); + + if ( $last_order && is_callable( array( $last_order, $setter ) ) ) { + $last_order->{$setter}( $date ); + $last_order->save(); + } + } + } + /** * Returns a string representation of a subscription date in the site's time (i.e. not GMT/UTC timezone). * - * @param string $date_type 'start', 'trial_end', 'next_payment', 'last_payment', 'end' or 'end_of_prepaid_term' + * @param string $date_type 'date_created', 'trial_end', 'next_payment', 'last_order_date_created', 'end' or 'end_of_prepaid_term' */ public function get_date_to_display( $date_type = 'next_payment' ) { - $date_type = str_replace( '_date', '', $date_type ); + $date_type = wcs_normalise_date_type_key( $date_type, true ); $timestamp_gmt = $this->get_time( $date_type, 'gmt' ); @@ -729,16 +1170,13 @@ class WC_Subscription extends WC_Order { /** * Get the timestamp for a specific piece of the subscriptions schedule * - * @param string $date_type 'start', 'trial_end', 'next_payment', 'last_payment', 'end' or 'end_of_prepaid_term' + * @param string $date_type 'date_created', 'trial_end', 'next_payment', 'last_order_date_created', 'end' or 'end_of_prepaid_term' * @param string $timezone The timezone of the $datetime param. Default 'gmt'. */ public function get_time( $date_type, $timezone = 'gmt' ) { $datetime = $this->get_date( $date_type, $timezone ); - - if ( 0 !== $datetime ) { - $datetime = wcs_date_to_time( $datetime ); - } + $datetime = wcs_date_to_time( $datetime ); return $datetime; } @@ -749,7 +1187,7 @@ class WC_Subscription extends WC_Order { * Because dates are interdependent on each other, this function will take an array of dates, make sure that all * dates are in the right order in the right format, that there is at least something to update. * - * @param array $dates array containing dates with keys: 'start', 'trial_end', 'next_payment', 'last_payment' or 'end'. Values are time + * @param array $dates array containing dates with keys: 'date_created', 'trial_end', 'next_payment', 'last_order_date_created' or 'end'. Values are MySQL formatted date/time strings in UTC timezone. * @param string $timezone The timezone of the $datetime param. Default 'gmt'. */ public function update_dates( $dates, $timezone = 'gmt' ) { @@ -762,35 +1200,59 @@ class WC_Subscription extends WC_Order { foreach ( $dates as $date_type => $datetime ) { + if ( $datetime == $this->get_date( $date_type ) ) { + continue; + } + // Delete dates with a 0 date time if ( 0 == $datetime ) { - if ( 'last_payment' != $date_type && 'start' != $date_type ) { + if ( ! in_array( $date_type, array( 'date_created', 'last_order_date_created', 'last_order_date_modified' ) ) ) { $this->delete_date( $date_type ); } continue; } - if ( $datetime == $this->get_date( $date_type ) ) { - continue; - } + // WC_Data::set_date_prop() uses site timezone for MySQL date/time strings, but we have a string in UTC, so convert it to a timestamp, which WC_Data will treat as being in UTC. Or if we don't have a date, set it to null so WC_Data deletes it. + $utc_timestamp = ( 0 === $datetime ) ? null : wcs_date_to_time( $datetime ); switch ( $date_type ) { - case 'start' : - $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_date = %s, post_date_gmt = %s WHERE ID = %s", get_date_from_gmt( $datetime ), $datetime, $this->id ) ); // Don't use wp_update_post() to avoid infinite loops here + case 'date_created' : + $this->set_date_created( $utc_timestamp ); $is_updated = true; break; - case 'last_payment' : - $this->update_last_payment_date( $datetime ); + case 'date_modified' : + $this->set_date_modified( $utc_timestamp ); + $is_updated = true; + break; + case 'date_paid' : + $this->set_date_paid( $utc_timestamp ); + $is_updated = true; + break; + case 'date_completed' : + $this->set_date_completed( $utc_timestamp ); + $is_updated = true; + break; + case 'last_order_date_created' : + $this->set_last_order_date( 'date_created', $utc_timestamp ); + $is_updated = true; + break; + case 'last_order_date_paid' : + $this->set_last_order_date( 'date_paid', $utc_timestamp ); + $is_updated = true; + break; + case 'last_order_date_completed' : + $this->set_last_order_date( 'date_completed', $utc_timestamp ); $is_updated = true; break; default : - $is_updated = update_post_meta( $this->id, wcs_get_date_meta_key( $date_type ), $datetime ); + $this->set_date_prop( $date_type, $utc_timestamp ); + $is_updated = true; break; } - if ( $is_updated ) { - $this->schedule->{$date_type} = $datetime; + if ( $is_updated && true === $this->object_read ) { do_action( 'woocommerce_subscription_date_updated', $this, $date_type, $datetime ); + $this->save(); } } } @@ -798,40 +1260,47 @@ class WC_Subscription extends WC_Order { /** * Remove a date from a subscription. * - * @param string $date_type 'trial_end', 'next_payment' or 'end'. The 'start' and 'last_payment' date types will throw an exception. + * @param string $date_type 'trial_end', 'next_payment' or 'end'. The 'date_created' and 'last_order_date_created' date types will throw an exception. */ public function delete_date( $date_type ) { - // Accept dates with a '_date' suffix, like 'next_payment_date' or 'start_date' - $date_type = str_replace( '_date', '', $date_type ); + $date_type = wcs_normalise_date_type_key( $date_type, true ); // Make sure some dates are before next payment date - if ( in_array( $date_type, array( 'start', 'last_payment' ) ) ) { - switch ( $date_type ) { - case 'start' : - $message = __( 'The start date of a subscription can not be deleted, only updated.', 'woocommerce-subscriptions' ); - break; - case 'last_payment' : - $message = __( 'The last payment date of a subscription can not be deleted. You must delete the order.', 'woocommerce-subscriptions' ); - break; - } + switch ( $date_type ) { + case 'date_created' : + $message = __( 'The start date of a subscription can not be deleted, only updated.', 'woocommerce-subscriptions' ); + break; + case 'last_order_date_created' : + case 'last_order_date_modified' : + $message = sprintf( __( 'The %s date of a subscription can not be deleted. You must delete the order.', 'woocommerce-subscriptions' ), $date_type ); + break; + default : + $message = ''; + break; + } + + if ( ! empty( $message ) ) { throw new Exception( $message ); } - $this->schedule->{$date_type} = 0; - update_post_meta( $this->id, wcs_get_date_meta_key( $date_type ), $this->schedule->{$date_type} ); - do_action( 'woocommerce_subscription_date_deleted', $this, $date_type ); + $this->set_date_prop( $date_type, 0 ); + + if ( true === $this->object_read ) { + do_action( 'woocommerce_subscription_date_deleted', $this, $date_type ); + $this->save(); + } } /** * Check if a given date type can be updated for this subscription. * - * @param string $date_type 'start', 'trial_end', 'next_payment', 'last_payment' or 'end' + * @param string $date_type 'date_created', 'trial_end', 'next_payment', 'last_order_date_created' or 'end' */ public function can_date_be_updated( $date_type ) { switch ( $date_type ) { - case 'start' : + case 'date_created' : if ( $this->has_status( array( 'auto-draft', 'pending' ) ) ) { $can_date_be_updated = true; } else { @@ -854,7 +1323,7 @@ class WC_Subscription extends WC_Order { $can_date_be_updated = false; } break; - case 'last_payment' : + case 'last_order_date_created' : $can_date_be_updated = true; break; default : @@ -920,10 +1389,10 @@ class WC_Subscription extends WC_Order { $next_payment_date = 0; // If the subscription is not active, there is no next payment date - $start_time = $this->get_time( 'start' ); + $start_time = $this->get_time( 'date_created' ); $next_payment_time = $this->get_time( 'next_payment' ); $trial_end_time = $this->get_time( 'trial_end' ); - $last_payment_time = $this->get_time( 'last_payment' ); + $last_payment_time = $this->get_time( 'last_order_date_created' ); $end_time = $this->get_time( 'end' ); // If the subscription has a free trial period, and we're still in the free trial period, the next payment is due at the end of the free trial @@ -944,12 +1413,12 @@ class WC_Subscription extends WC_Order { $from_timestamp = $start_time; } - $next_payment_timestamp = wcs_add_time( $this->billing_interval, $this->billing_period, $from_timestamp ); + $next_payment_timestamp = wcs_add_time( $this->get_billing_interval(), $this->get_billing_period(), $from_timestamp ); // Make sure the next payment is more than 2 hours in the future, this ensures changes to the site's timezone because of daylight savings will never cause a 2nd renewal payment to be processed on the same day $i = 1; while ( $next_payment_timestamp < ( current_time( 'timestamp', true ) + 2 * HOUR_IN_SECONDS ) && $i < 3000 ) { - $next_payment_timestamp = wcs_add_time( $this->billing_interval, $this->billing_period, $next_payment_timestamp ); + $next_payment_timestamp = wcs_add_time( $this->get_billing_interval(), $this->get_billing_period(), $next_payment_timestamp ); $i += 1; } } @@ -966,47 +1435,6 @@ class WC_Subscription extends WC_Order { return $next_payment_date; } - /** - * Get the last payment date for a subscription, in GMT/UTC. - * - * The last payment date is based on the original order used to purchase the subscription or - * it's last paid renewal order, which ever is more recent. - * - * @since 2.0 - */ - protected function get_last_payment_date() { - $last_order = $this->get_last_order( 'all' ); - - if ( ! $last_order ) { - return 0; - } - - return $last_order->post->post_date_gmt; - } - - /** - * - * @param string $datetime A MySQL formatted date/time string in GMT/UTC timezone. - */ - protected function update_last_payment_date( $datetime ) { - $last_order = $this->get_last_order(); - - if ( ! $last_order ) { - return false; - } - - $updated_post_data = array( - 'ID' => $last_order, - 'post_date' => get_date_from_gmt( $datetime ), - 'post_date_gmt' => $datetime, - ); - - wp_update_post( $updated_post_data ); - - return $datetime; - } - - /** Formatted Totals Methods *******************************************************/ /** @@ -1019,7 +1447,7 @@ class WC_Subscription extends WC_Order { public function get_formatted_line_subtotal( $item, $tax_display = '' ) { if ( ! $tax_display ) { - $tax_display = $this->tax_display_cart; + $tax_display = get_option( 'woocommerce_tax_display_cart' ); } if ( ! isset( $item['line_subtotal'] ) || ! isset( $item['line_subtotal_tax'] ) ) { @@ -1027,12 +1455,17 @@ class WC_Subscription extends WC_Order { } if ( $this->is_one_payment() ) { + $subtotal = parent::get_formatted_line_subtotal( $item, $tax_display ); - } else if ( 'excl' == $tax_display ) { - $display_ex_tax_label = $this->prices_include_tax ? 1 : 0; - $subtotal = wcs_price_string( $this->get_price_string_details( $this->get_line_subtotal( $item ) ), $display_ex_tax_label ); + } else { - $subtotal = wcs_price_string( $this->get_price_string_details( $this->get_line_subtotal( $item, true ) ) ); + + if ( 'excl' == $tax_display ) { + $line_subtotal = $this->get_line_subtotal( $item ); + } else { + $line_subtotal = $this->get_line_subtotal( $item, true ); + } + $subtotal = wcs_price_string( $this->get_price_string_details( $line_subtotal ) ); } return apply_filters( 'woocommerce_order_formatted_line_subtotal', $subtotal, $item, $this ); @@ -1046,7 +1479,7 @@ class WC_Subscription extends WC_Order { * @return string */ public function get_formatted_order_total( $tax_display = '', $display_refunded = true ) { - if ( $this->get_total() > 0 && ! empty( $this->billing_period ) && ! $this->is_one_payment() ) { + if ( $this->get_total() > 0 && '' !== $this->get_billing_period() && ! $this->is_one_payment() ) { $formatted_order_total = wcs_price_string( $this->get_price_string_details( $this->get_total() ) ); } else { $formatted_order_total = parent::get_formatted_order_total(); @@ -1064,7 +1497,7 @@ class WC_Subscription extends WC_Order { public function get_subtotal_to_display( $compound = false, $tax_display = '' ) { if ( ! $tax_display ) { - $tax_display = $this->tax_display_cart; + $tax_display = get_option( 'woocommerce_tax_display_cart' ); } $subtotal = 0; @@ -1083,9 +1516,9 @@ class WC_Subscription extends WC_Order { } } - $subtotal = wc_price( $subtotal, array( 'currency' => $this->get_order_currency() ) ); + $subtotal = wc_price( $subtotal, array( 'currency' => $this->get_currency() ) ); - if ( 'excl' == $tax_display && $this->prices_include_tax ) { + if ( 'excl' == $tax_display && $this->get_prices_include_tax() ) { $subtotal .= ' ' . WC()->countries->ex_tax_or_vat() . ''; } } else { @@ -1117,7 +1550,7 @@ class WC_Subscription extends WC_Order { // Remove discounts $subtotal = $subtotal - $this->get_cart_discount(); - $subtotal = wc_price( $subtotal, array( 'currency' => $this->get_order_currency() ) ); + $subtotal = wc_price( $subtotal, array( 'currency' => $this->get_currency() ) ); } return apply_filters( 'woocommerce_order_subtotal_to_display', $subtotal, $compound, $this ); @@ -1137,11 +1570,11 @@ class WC_Subscription extends WC_Order { protected function get_price_string_details( $amount = 0, $display_ex_tax_label = false ) { $subscription_details = array( - 'currency' => $this->get_order_currency(), - 'recurring_amount' => $amount, - 'subscription_period' => $this->billing_period, - 'subscription_interval' => $this->billing_interval, - 'display_ex_tax_label' => $display_ex_tax_label, + 'currency' => $this->get_currency(), + 'recurring_amount' => $amount, + 'subscription_period' => $this->get_billing_period(), + 'subscription_interval' => $this->get_billing_interval(), + 'display_excluding_tax_label' => $display_ex_tax_label, ); return apply_filters( 'woocommerce_subscription_price_string_details', $subscription_details, $this ); @@ -1216,13 +1649,13 @@ class WC_Subscription extends WC_Order { } // Reset suspension count - $this->update_suspension_count( 0 ); + $this->set_suspension_count( 0 ); // Make sure subscriber has default role wcs_update_users_role( $this->get_user_id(), 'default_subscriber_role' ); // Add order note depending on initial payment - if ( 0 == $this->get_total_initial_payment() && 1 == $this->get_completed_payment_count() && false !== $this->order ) { + if ( 0 == $this->get_total_initial_payment() && 1 == $this->get_completed_payment_count() && false != $this->get_parent() ) { $note = __( 'Sign-up complete.', 'woocommerce-subscriptions' ); } else { $note = __( 'Payment received.', 'woocommerce-subscriptions' ); @@ -1230,7 +1663,7 @@ class WC_Subscription extends WC_Order { $this->add_order_note( $note ); - $this->update_status( 'active' ); + $this->update_status( 'active' ); // also saves the subscription do_action( 'woocommerce_subscription_payment_complete', $this ); @@ -1281,10 +1714,7 @@ class WC_Subscription extends WC_Order { * @return array */ public function get_refunds() { - if ( ! is_array( $this->refunds ) ) { - $this->refunds = array(); - } - return $this->refunds; + return array(); } /** @@ -1331,6 +1761,15 @@ class WC_Subscription extends WC_Order { return 0; } + /** + * Get parent order object. + * + * @return int + */ + public function get_parent() { + return wc_get_order( $this->get_parent_id() ); + } + /** * Extracting the query from get_related_orders and get_last_order so it can be moved in a cached * value. @@ -1371,7 +1810,7 @@ class WC_Subscription extends WC_Order { $related_orders = array(); - $related_post_ids = WC_Subscriptions::$cache->cache_and_get( 'wcs-related-orders-to-' . $this->id, array( $this, 'get_related_orders_query' ), array( $this->id ) ); + $related_post_ids = WC_Subscriptions::$cache->cache_and_get( 'wcs-related-orders-to-' . $this->get_id(), array( $this, 'get_related_orders_query' ), array( $this->get_id() ) ); if ( 'all' == $return_fields ) { @@ -1379,14 +1818,14 @@ class WC_Subscription extends WC_Order { $related_orders[ $post_id ] = wc_get_order( $post_id ); } - if ( false !== $this->order && 'renewal' !== $order_type ) { - $related_orders[ $this->order->id ] = $this->order; + if ( false != $this->get_parent_id() && 'renewal' !== $order_type ) { + $related_orders[ $this->get_parent_id() ] = $this->get_parent(); } } else { // Return IDs only - if ( isset( $this->order->id ) && 'renewal' !== $order_type ) { - $related_orders[ $this->order->id ] = $this->order->id; + if ( false != $this->get_parent_id() && 'renewal' !== $order_type ) { + $related_orders[ $this->get_parent_id() ] = $this->get_parent_id(); } foreach ( $related_post_ids as $post_id ) { @@ -1414,15 +1853,15 @@ class WC_Subscription extends WC_Order { foreach ( $order_types as $order_type ) { switch ( $order_type ) { case 'parent': - if ( false !== $this->order ) { - $related_orders[] = $this->order->id; + if ( false != $this->get_parent_id() ) { + $related_orders[] = $this->get_parent_id(); } break; case 'renewal': - $related_orders = array_merge( $related_orders, WC_Subscriptions::$cache->cache_and_get( 'wcs-related-orders-to-' . $this->id, array( $this, 'get_related_orders_query' ), array( $this->id ) ) ); + $related_orders = array_merge( $related_orders, WC_Subscriptions::$cache->cache_and_get( 'wcs-related-orders-to-' . $this->get_id(), array( $this, 'get_related_orders_query' ), array( $this->get_id() ) ) ); break; case 'switch': - $related_orders = array_merge( $related_orders, array_keys( wcs_get_switch_orders_for_subscription( $this->id ) ) ); + $related_orders = array_merge( $related_orders, array_keys( wcs_get_switch_orders_for_subscription( $this->get_id() ) ) ); break; default: break; @@ -1435,8 +1874,8 @@ class WC_Subscription extends WC_Order { $last_order = max( $related_orders ); if ( 'all' == $return_fields ) { - if ( false !== $this->order && $last_order == $this->order->id ) { - $last_order = $this->order; + if ( false != $this->get_parent_id() && $last_order == $this->get_parent_id() ) { + $last_order = $this->get_parent(); } else { $last_order = wc_get_order( $last_order ); } @@ -1458,14 +1897,14 @@ class WC_Subscription extends WC_Order { $payment_method_to_display = __( 'Manual Renewal', 'woocommerce-subscriptions' ); // Use the current title of the payment gateway when available - } elseif ( false !== $this->payment_gateway ) { + } elseif ( false !== ( $payment_gateway = wc_get_payment_gateway_by_order( $this ) ) ) { - $payment_method_to_display = $this->payment_gateway->get_title(); + $payment_method_to_display = $payment_gateway->get_title(); // Fallback to the title of the payment method when the subscripion was created } else { - $payment_method_to_display = $this->payment_method_title; + $payment_method_to_display = $this->get_payment_method_title(); } @@ -1476,39 +1915,51 @@ class WC_Subscription extends WC_Order { * Save new payment method for a subscription * * @since 2.0 - * @param WC_Payment_Gateway|empty $payment_method + * @param WC_Payment_Gateway|string $payment_method * @param array $payment_meta Associated array of the form: $database_table => array( value, ) */ - public function set_payment_method( $payment_gateway = '', $payment_meta = array() ) { + public function set_payment_method( $payment_method = '', $payment_meta = array() ) { - if ( ! empty( $payment_meta ) && isset( $payment_gateway->id ) ) { - $this->set_payment_method_meta( $payment_gateway->id, $payment_meta ); - } + if ( empty( $payment_method ) ) { - if ( empty( $payment_gateway ) || ! isset( $payment_gateway->id ) ) { + $this->set_requires_manual_renewal( true ); + $this->set_prop( 'payment_method', '' ); + $this->set_prop( 'payment_method_title', '' ); - $this->update_manual( true ); - update_post_meta( $this->id, '_payment_method', '' ); - update_post_meta( $this->id, '_payment_method_title', '' ); + } else { - } elseif ( $this->payment_method !== $payment_gateway->id ) { + // Set the payment gateway ID depending on whether we have a WC_Payment_Gateway or string key + $payment_method_id = is_a( $payment_method, 'WC_Payment_Gateway' ) ? $payment_method->id : $payment_method; - // Set subscription to manual when the payment method doesn't support automatic payments - $available_gateways = WC()->payment_gateways->get_available_payment_gateways(); - - if ( 'yes' == get_option( WC_Subscriptions_Admin::$option_prefix . '_turn_off_automatic_payments', 'no' ) ) { - $this->update_manual( true ); - } elseif ( ! isset( $available_gateways[ $payment_gateway->id ] ) || ! $available_gateways[ $payment_gateway->id ]->supports( 'subscriptions' ) ) { - $this->update_manual( true ); - } else { - $this->update_manual( false ); + if ( ! empty( $payment_meta ) ) { + $this->set_payment_method_meta( $payment_method_id, $payment_meta ); } - update_post_meta( $this->id, '_payment_method', $payment_gateway->id ); - update_post_meta( $this->id, '_payment_method_title', $payment_gateway->get_title() ); - } + if ( $this->get_payment_method() !== $payment_method_id ) { - $this->payment_gateway = wc_get_payment_gateway_by_order( $this ); + // Set the payment gateway ID depending on whether we have a string or WC_Payment_Gateway or string key + if ( is_a( $payment_method, 'WC_Payment_Gateway' ) ) { + $payment_gateway = $payment_method; + } else { + $payment_gateways = WC()->payment_gateways->payment_gateways(); + $payment_gateway = isset( $payment_gateways[ $payment_method_id ] ) ? $payment_gateways[ $payment_method_id ] : null; + } + + // We shouldn't set the requires manual renewal prop while the object is being read. That prop should be set by reading it from the DB not based on settings or the payment gateway + if ( $this->object_read ) { + if ( 'yes' == get_option( WC_Subscriptions_Admin::$option_prefix . '_turn_off_automatic_payments', 'no' ) ) { + $this->set_requires_manual_renewal( true ); + } elseif ( is_null( $payment_gateway ) || false == $payment_gateway->supports( 'subscriptions' ) ) { + $this->set_requires_manual_renewal( true ); + } else { + $this->set_requires_manual_renewal( false ); + } + } + + $this->set_prop( 'payment_method', $payment_method_id ); + $this->set_prop( 'payment_method_title', is_null( $payment_gateway ) ? '' : $payment_gateway->get_title() ); + } + } } /** @@ -1533,11 +1984,11 @@ class WC_Subscription extends WC_Order { switch ( $meta_table ) { case 'user_meta': case 'usermeta': - update_user_meta( $this->customer_user, $meta_key, $meta_data['value'] ); + update_user_meta( $this->get_user_id(), $meta_key, $meta_data['value'] ); break; case 'post_meta': case 'postmeta': - update_post_meta( $this->id, $meta_key, $meta_data['value'] ); + $this->update_meta_data( $meta_key, $meta_data['value'] ); break; case 'options': update_option( $meta_key, $meta_data['value'] ); @@ -1557,9 +2008,9 @@ class WC_Subscription extends WC_Order { * @since 2.0 */ public function get_view_order_url() { - $view_subscription_url = wc_get_endpoint_url( 'view-subscription', $this->id, wc_get_page_permalink( 'myaccount' ) ); + $view_subscription_url = wc_get_endpoint_url( 'view-subscription', $this->get_id(), wc_get_page_permalink( 'myaccount' ) ); - return apply_filters( 'wcs_get_view_subscription_url', $view_subscription_url, $this->id ); + return apply_filters( 'wcs_get_view_subscription_url', $view_subscription_url, $this->get_id() ); } /** @@ -1626,12 +2077,14 @@ class WC_Subscription extends WC_Order { */ public function get_items_sign_up_fee( $line_item, $tax_inclusive_or_exclusive = 'exclusive_of_tax' ) { - if ( ! is_array( $line_item ) ) { + if ( ! is_object( $line_item ) ) { $line_item = wcs_get_order_item( $line_item, $this ); } + $parent_order = $this->get_parent(); + // If there was no original order, nothing was paid up-front which means no sign-up fee - if ( empty( $this->order ) ) { + if ( false == $parent_order ) { $sign_up_fee = 0; @@ -1640,7 +2093,7 @@ class WC_Subscription extends WC_Order { $original_order_item = ''; // Find the matching item on the order - foreach ( $this->order->get_items() as $order_item ) { + foreach ( $parent_order->get_items() as $order_item ) { if ( wcs_get_canonical_product_id( $line_item ) == wcs_get_canonical_product_id( $order_item ) ) { $original_order_item = $order_item; break; @@ -1652,48 +2105,26 @@ class WC_Subscription extends WC_Order { $sign_up_fee = 0; - } elseif ( isset( $line_item['item_meta']['_has_trial'] ) ) { - - // Sign up was was total amount paid for this item on original order - $sign_up_fee = $original_order_item['line_total'] / $original_order_item['qty']; - + } elseif ( 'true' === $line_item->get_meta( '_has_trial' ) ) { + // Sign up is amount paid for this item on original order, we can safely use 3.0 getters here because we know from the above condition 3.0 is active + $sign_up_fee = $original_order_item->get_total( 'edit' ) / $original_order_item->get_quantity( 'edit' ); } else { - // Sign-up fee is any amount on top of recurring amount - $sign_up_fee = max( $original_order_item['line_total'] / $original_order_item['qty'] - $line_item['line_total'] / $line_item['qty'], 0 ); + $order_line_total = $original_order_item->get_total( 'edit' ) / $original_order_item->get_quantity( 'edit' ); + $subscription_line_total = $line_item->get_total( 'edit' ) / $line_item->get_quantity( 'edit' ); + $sign_up_fee = max( $order_line_total - $subscription_line_total, 0 ); } // If prices inc tax, ensure that the sign up fee amount includes the tax - if ( 'inclusive_of_tax' === $tax_inclusive_or_exclusive && ! empty( $original_order_item ) && 'yes' == $this->prices_include_tax ) { - $proportion = $sign_up_fee / ( $original_order_item['line_total'] / $original_order_item['qty'] ); - $sign_up_fee += round( $original_order_item['line_tax'] * $proportion, 2 ); + if ( 'inclusive_of_tax' === $tax_inclusive_or_exclusive && ! empty( $original_order_item ) && $this->get_prices_include_tax() ) { + $proportion = $sign_up_fee / ( $original_order_item->get_total( 'edit' ) / $original_order_item->get_quantity( 'edit' ) ); + $sign_up_fee += round( $original_order_item->get_total_tax( 'edit' ) * $proportion, 2 ); } } return apply_filters( 'woocommerce_subscription_items_sign_up_fee', $sign_up_fee, $line_item, $this, $tax_inclusive_or_exclusive ); } - /** - * Get the downloadable files for an item in this subscription if the subscription is active - * - * @param array $item - * @return array - */ - public function get_item_downloads( $item ) { - global $wpdb; - - $files = array(); - - // WC Emails are sent before the subscription status is updated to active etc. so we need a way to ensure download links are added to the emails before being sent - $sending_email = ( did_action( 'woocommerce_email_before_order_table' ) > did_action( 'woocommerce_email_after_order_table' ) ) ? true : false; - - if ( $this->has_status( apply_filters( 'woocommerce_subscription_item_download_statuses', array( 'active', 'pending-cancel' ) ) ) || $sending_email ) { - $files = parent::get_item_downloads( $item ); - } - - return apply_filters( 'woocommerce_get_item_downloads', $files, $item, $this ); - } - /** * Determine if the subscription is for one payment only. * @@ -1706,7 +2137,7 @@ class WC_Subscription extends WC_Order { if ( 0 != ( $end_time = $this->get_time( 'end' ) ) ) { - $from_timestamp = $this->get_time( 'start' ); + $from_timestamp = $this->get_time( 'date_created' ); if ( 0 != $this->get_time( 'trial_end' ) || WC_Subscriptions_Synchroniser::subscription_contains_synced_product( $this ) ) { @@ -1717,12 +2148,12 @@ class WC_Subscription extends WC_Order { $from_timestamp = $next_payment_timestamp; // when we have a sync'd subscription after its 1st payment, we need to base the calculations for the next payment on the last payment timestamp. - } else if ( ! ( $subscription_order_count > 2 ) && 0 != ( $last_payment_timestamp = $this->get_time( 'last_payment' ) ) ) { + } else if ( ! ( $subscription_order_count > 2 ) && 0 != ( $last_payment_timestamp = $this->get_time( 'last_order_date_created' ) ) ) { $from_timestamp = $last_payment_timestamp; } } - $next_payment_timestamp = wcs_add_time( $this->billing_interval, $this->billing_period, $from_timestamp ); + $next_payment_timestamp = wcs_add_time( $this->get_billing_interval(), $this->get_billing_period(), $from_timestamp ); if ( ( $next_payment_timestamp + DAY_IN_SECONDS - 1 ) > $end_time ) { $is_one_payment = true; @@ -1732,11 +2163,35 @@ class WC_Subscription extends WC_Order { return apply_filters( 'woocommerce_subscription_is_one_payment', $is_one_payment, $this ); } + /** + * Get the downloadable files for an item in this subscription if the subscription is active + * + * @param array $item + * @return array + */ + public function get_item_downloads( $item ) { + + if ( ! WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + wcs_deprecated_function( __METHOD__, '2.2.0', 'WC_Order_Item_Product::get_item_downloads(), because WooCommerce 3.0+ now uses that' ); + } + + $files = array(); + + // WC Emails are sent before the subscription status is updated to active etc. so we need a way to ensure download links are added to the emails before being sent + $sending_email = ( did_action( 'woocommerce_email_before_order_table' ) > did_action( 'woocommerce_email_after_order_table' ) ) ? true : false; + + if ( $this->has_status( apply_filters( 'woocommerce_subscription_item_download_statuses', array( 'active', 'pending-cancel' ) ) ) || $sending_email ) { + $files = parent::get_item_downloads( $item ); + } + + return apply_filters( 'woocommerce_get_item_downloads', $files, $item, $this ); + } + /** * Validates subscription date updates ensuring the proposed date changes are in the correct format and are compatible with * the current subscription dates. Also returns the dates in the gmt timezone - ready for setting/deleting. * - * @param array $dates array containing dates with keys: 'start', 'trial_end', 'next_payment', 'last_payment' or 'end'. Values are time + * @param array $dates array containing dates with keys: 'date_created', 'trial_end', 'next_payment', 'last_order_date_created' or 'end'. Values are MySQL formatted date/time strings in UTC timezone. * @param string $timezone The timezone of the $datetime param. Default 'gmt'. * @return array $dates array of dates in gmt timezone. */ @@ -1750,19 +2205,30 @@ class WC_Subscription extends WC_Order { throw new InvalidArgumentException( __( 'Invalid data. First parameter was empty when passed to update_dates().', 'woocommerce-subscriptions' ) ); } - $subscription_date_keys = array_keys( wcs_get_subscription_date_types() ); - $passed_date_keys = str_replace( '_date', '', array_keys( $dates ) ); - $extra_keys = array_diff( $passed_date_keys, $subscription_date_keys ); + $passed_date_keys = array_map( 'wcs_normalise_date_type_key', array_keys( $dates ) ); + $extra_keys = array_diff( $passed_date_keys, $this->get_valid_date_types() ); if ( ! empty( $extra_keys ) ) { throw new InvalidArgumentException( __( 'Invalid data. First parameter has a date that is not in the registered date types.', 'woocommerce-subscriptions' ) ); } + // Use the normalised keys for the array + $dates = array_combine( $passed_date_keys, array_values( $dates ) ); + $timestamps = $delete_date_types = array(); - $dates = array_combine( $passed_date_keys, array_values( $dates ) ); // Get a full set of subscription dates made up of passed and current dates - foreach ( $subscription_date_keys as $date_type ) { + foreach ( $this->get_valid_date_types() as $date_type ) { + + // While 'start' & 'last_payment' are valid date types, they are deprecated and we use 'date_created' & 'last_order_date_created' to refer to them now instead + if ( in_array( $date_type, array( 'last_payment', 'start' ) ) ) { + continue; + } + + // We don't want to validate dates for relates orders when instantiating the subscription + if ( false === $this->object_read && ( 0 === strpos( $date_type, 'last_order_date_' ) || in_array( $date_type, array( 'date_paid', 'date_completed' ) ) ) ) { + continue; + } // Honour passed values first if ( isset( $dates[ $date_type ] ) ) { @@ -1792,7 +2258,7 @@ class WC_Subscription extends WC_Order { if ( 0 == $timestamps[ $date_type ] ) { // Last payment is not in the UI, and it should NOT be deleted as that would mess with scheduling - if ( 'last_payment' != $date_type && 'start' != $date_type ) { + if ( 'last_order_date_created' != $date_type && 'date_created' != $date_type ) { // We need to separate the dates which need deleting, so they don't interfere in the remaining validation $delete_date_types[ $date_type ] = 0; } @@ -1803,36 +2269,37 @@ class WC_Subscription extends WC_Order { $messages = array(); // And then iterate over them checking the relationships between them. - foreach ( $timestamps as $date_type => $datetime ) { + foreach ( $timestamps as $date_type => $timestamp ) { switch ( $date_type ) { case 'end' : - if ( array_key_exists( 'cancelled', $timestamps ) && $datetime < $timestamps['cancelled'] ) { + if ( array_key_exists( 'cancelled', $timestamps ) && $timestamp < $timestamps['cancelled'] ) { $messages[] = sprintf( __( 'The %s date must occur after the cancellation date.', 'woocommerce-subscriptions' ), $date_type ); } case 'cancelled' : - if ( array_key_exists( 'last_payment', $timestamps ) && $datetime < $timestamps['last_payment'] ) { + if ( array_key_exists( 'last_order_date_created', $timestamps ) && $timestamp < $timestamps['last_order_date_created'] ) { $messages[] = sprintf( __( 'The %s date must occur after the last payment date.', 'woocommerce-subscriptions' ), $date_type ); } - if ( array_key_exists( 'next_payment', $timestamps ) && $datetime <= $timestamps['next_payment'] ) { + if ( array_key_exists( 'next_payment', $timestamps ) && $timestamp <= $timestamps['next_payment'] ) { $messages[] = sprintf( __( 'The %s date must occur after the next payment date.', 'woocommerce-subscriptions' ), $date_type ); } case 'next_payment' : // Guarantees that end is strictly after trial_end, because if next_payment and end can't be at same time - if ( array_key_exists( 'trial_end', $timestamps ) && $datetime < $timestamps['trial_end'] ) { + if ( array_key_exists( 'trial_end', $timestamps ) && $timestamp < $timestamps['trial_end'] ) { $messages[] = sprintf( __( 'The %s date must occur after the trial end date.', 'woocommerce-subscriptions' ), $date_type ); } case 'trial_end' : - if ( $datetime <= $timestamps['start'] ) { + if ( $timestamp <= $timestamps['date_created'] ) { $messages[] = sprintf( __( 'The %s date must occur after the start date.', 'woocommerce-subscriptions' ), $date_type ); } } - $dates[ $date_type ] = gmdate( 'Y-m-d H:i:s', $datetime ); + $dates[ $date_type ] = gmdate( 'Y-m-d H:i:s', $timestamp ); } - if ( ! empty( $messages ) ) { + // Don't validate dates while the subscription is being read, only dates set outside of instantiation require the strict validation rules to apply + if ( $this->object_read && ! empty( $messages ) ) { throw new Exception( join( ' ', $messages ) ); } @@ -1858,4 +2325,125 @@ class WC_Subscription extends WC_Order { return $item_id; } + + /** + * Get the set of date types that can be set/get from this subscription. + * + * The allowed dates includes both subscription date dates, and date types for related orders, like 'last_order_date_created'. + * + * @since 2.2.0 + * @return array + */ + protected function get_valid_date_types() { + + if ( empty( $this->valid_date_types ) ) { + $this->valid_date_types = apply_filters( 'woocommerce_subscription_valid_date_types', array_merge( + array_keys( wcs_get_subscription_date_types() ), + array( + 'date_created', + 'date_modified', + 'date_paid', + 'date_completed', + 'last_order_date_created', + 'last_order_date_paid', + 'last_order_date_completed', + 'payment_retry', + ) + ), $this ); + } + + return $this->valid_date_types; + } + + /************************ + * Deprecated Functions * + ************************/ + + /** + * Set or change the WC_Order ID which records the subscription's initial purchase. + * + * @param int|WC_Order $order + */ + public function update_parent( $order ) { + wcs_deprecated_function( __METHOD__, '2.2.0', __CLASS__ . '::set_parent_id(), because WooCommerce 3.0+ now uses that' ); + + if ( ! is_object( $order ) ) { + $order = wc_get_order( $order ); + } + + $this->set_parent_id( wcs_get_objects_property( $order, 'id' ) ); + + // And update the parent in memory + $this->order = $order; + } + + /** + * Update the internal tally of suspensions on this subscription since the last payment. + * + * @return int The count of suspensions + * @since 2.0 + */ + public function update_suspension_count( $new_count ) { + wcs_deprecated_function( __METHOD__, '2.2.0', __CLASS__ . '::set_suspension_count(), because WooCommerce 3.0+ now uses setters' ); + $this->set_suspension_count( $new_count ); + return $this->get_suspension_count(); + } + + /** + * Checks if the subscription requires manual renewal payments. + * + * @access public + * @return bool + */ + public function update_manual( $is_manual = true ) { + wcs_deprecated_function( __METHOD__, '2.2.0', __CLASS__ . '::set_requires_manual_renewal( $is_manual ), because WooCommerce 3.0+ now uses setters' ); + $this->set_requires_manual_renewal( $is_manual ); + return $this->get_requires_manual_renewal(); + } + + /** + * Get the "last payment date" for a subscription, in GMT/UTC. + * + * The "last payment date" is based on the original order used to purchase the subscription or + * it's last renewal order, which ever is more recent. + * + * The "last payment date" is in quotation marks because this function didn't and still doesn't + * accurately return the last payment date. Instead, it returned and still returns the date of the + * last order, regardless of its paid status. This is partly why this function has been deprecated + * in favour of self::get_date_paid() (or self::get_related_orders_date( 'date_created', 'last' ). + * + * For backward compatibility we have to use the date created here, see: https://github.com/Prospress/woocommerce-subscriptions/issues/1943 + * + * @deprecated 2.2.0 + * @since 2.0 + */ + protected function get_last_payment_date() { + wcs_deprecated_function( __METHOD__, '2.2.0', __CLASS__ . '::get_date( "last_order_date_created" )' ); + return $this->get_date( 'last_order_date_created' ); + } + + /** + * Updated both the _paid_date and post date GMT with the WooCommerce < 3.0 date storage structures. + * + * @deprecated 2.2.0 + * @param string $datetime A MySQL formatted date/time string in GMT/UTC timezone. + */ + protected function update_last_payment_date( $datetime ) { + wcs_deprecated_function( __METHOD__, '2.2.0', __CLASS__ . '::set_date_paid( $datetime ) or WC_Order::set_date_created( $datetime ) on the last order, because WooCommerce 3.0 now uses those setters' ); + + $last_order = $this->get_last_order(); + + if ( ! $last_order ) { + return false; + } + + // Pass a timestamp to the WC 3.0 setters becasue WC expects MySQL date strings to be in site's timezone, but we have a date string in UTC timezone + $timestamp = ( $datetime > 0 ) ? wcs_date_to_time( $datetime ) : 0; + + $this->set_last_order_date( 'date_paid', $timestamp ); + $this->set_last_order_date( 'date_created', $timestamp ); + + return $datetime; + } + } diff --git a/includes/class-wc-subscriptions-addresses.php b/includes/class-wc-subscriptions-addresses.php index 0f6b518..196571b 100644 --- a/includes/class-wc-subscriptions-addresses.php +++ b/includes/class-wc-subscriptions-addresses.php @@ -42,7 +42,7 @@ class WC_Subscriptions_Addresses { if ( $subscription->needs_shipping_address() && $subscription->has_status( array( 'active', 'on-hold' ) ) ) { $actions['change_address'] = array( - 'url' => add_query_arg( array( 'subscription' => $subscription->id ), wc_get_endpoint_url( 'edit-address', 'shipping' ) ), + 'url' => add_query_arg( array( 'subscription' => $subscription->get_id() ), wc_get_endpoint_url( 'edit-address', 'shipping' ) ), 'name' => __( 'Change Address', 'woocommerce-subscriptions' ), ); } @@ -154,7 +154,8 @@ class WC_Subscriptions_Addresses { $subscription = wcs_get_subscription( absint( $_GET['subscription'] ) ); foreach ( array_keys( $address ) as $key ) { - $address[ $key ]['value'] = $subscription->$key; + $function_name = 'get_' . $key; + $address[ $key ]['value'] = $subscription->$function_name(); } } diff --git a/includes/class-wc-subscriptions-cart.php b/includes/class-wc-subscriptions-cart.php index d1d11ce..f69a513 100644 --- a/includes/class-wc-subscriptions-cart.php +++ b/includes/class-wc-subscriptions-cart.php @@ -120,6 +120,8 @@ class WC_Subscriptions_Cart { // WooCommerce determines if free shipping is available using the WC->cart total and coupons, we need to recalculate its availability when obtaining shipping methods for a recurring cart add_filter( 'woocommerce_shipping_free_shipping_is_available', __CLASS__ . '::maybe_recalculate_shipping_method_availability', 10, 2 ); + + add_filter( 'woocommerce_add_to_cart_handler', __CLASS__ . '::add_to_cart_handler', 10, 2 ); } /** @@ -140,7 +142,12 @@ class WC_Subscriptions_Cart { } // Set which price should be used for calculation - add_filter( 'woocommerce_get_price', __CLASS__ . '::set_subscription_prices_for_calculation', 100, 2 ); + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + add_filter( 'woocommerce_get_price', __CLASS__ . '::set_subscription_prices_for_calculation', 100, 2 ); + } else { + add_filter( 'woocommerce_product_get_price', __CLASS__ . '::set_subscription_prices_for_calculation', 100, 2 ); + add_filter( 'woocommerce_product_variation_get_price', __CLASS__ . '::set_subscription_prices_for_calculation', 100, 2 ); + } } /** @@ -150,7 +157,34 @@ class WC_Subscriptions_Cart { * @since 1.2 */ public static function remove_calculation_price_filter() { - remove_filter( 'woocommerce_get_price', __CLASS__ . '::set_subscription_prices_for_calculation', 100, 2 ); + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + remove_filter( 'woocommerce_get_price', __CLASS__ . '::set_subscription_prices_for_calculation', 100 ); + } else { + remove_filter( 'woocommerce_product_get_price', __CLASS__ . '::set_subscription_prices_for_calculation', 100 ); + remove_filter( 'woocommerce_product_variation_get_price', __CLASS__ . '::set_subscription_prices_for_calculation', 100 ); + } + } + + /** + * Use WC core add-to-cart handlers for subscription products. + * + * @param string $handler The name of the handler to use when adding product to the cart + * @param WC_Product $product + */ + public static function add_to_cart_handler( $handler, $product ) { + + if ( WC_Subscriptions_Product::is_subscription( $product ) ) { + switch ( $handler ) { + case 'variable-subscription' : + $handler = 'variable'; + break; + case 'subscription' : + $handler = 'simple'; + break; + } + } + + return $handler; } /** @@ -542,8 +576,7 @@ class WC_Subscriptions_Cart { $all_items_have_free_trial = false; break; } else { - $trial_length = ( isset( $cart_item['data']->subscription_trial_length ) ) ? $cart_item['data']->subscription_trial_length : WC_Subscriptions_Product::get_trial_length( $cart_item['data'] ); - if ( 0 == $trial_length ) { + if ( 0 == WC_Subscriptions_Product::get_trial_length( $cart_item['data'] ) ) { $all_items_have_free_trial = false; break; } @@ -569,7 +602,7 @@ class WC_Subscriptions_Cart { if ( self::cart_contains_subscription() ) { foreach ( WC()->cart->cart_contents as $cart_item_key => $values ) { $_product = $values['data']; - if ( WC_Subscriptions_Product::is_subscription( $_product ) && $_product->needs_shipping() && 'yes' !== $_product->subscription_one_time_shipping ) { + if ( WC_Subscriptions_Product::is_subscription( $_product ) && $_product->needs_shipping() && false === WC_Subscriptions_Product::needs_one_time_shipping( $_product ) ) { $cart_contains_subscriptions_needing_shipping = true; } } @@ -590,8 +623,7 @@ class WC_Subscriptions_Cart { if ( 'none' == self::$calculation_type ) { foreach ( $packages as $index => $package ) { foreach ( $package['contents'] as $cart_item_key => $cart_item ) { - $trial_length = ( isset( $cart_item['data']->subscription_trial_length ) ) ? $cart_item['data']->subscription_trial_length : WC_Subscriptions_Product::get_trial_length( $cart_item['data'] ); - if ( $trial_length > 0 ) { + if ( WC_Subscriptions_Product::get_trial_length( $cart_item['data'] ) > 0 ) { unset( $packages[ $index ]['contents'][ $cart_item_key ] ); } } @@ -603,7 +635,7 @@ class WC_Subscriptions_Cart { } elseif ( 'recurring_total' == self::$calculation_type ) { foreach ( $packages as $index => $package ) { foreach ( $package['contents'] as $cart_item_key => $cart_item ) { - if ( isset( $cart_item['data']->subscription_one_time_shipping ) && 'yes' == $cart_item['data']->subscription_one_time_shipping ) { + if ( WC_Subscriptions_Product::needs_one_time_shipping( $cart_item['data'] ) ) { $packages[ $index ]['contents_cost'] -= $cart_item['line_total']; unset( $packages[ $index ]['contents'][ $cart_item_key ] ); } @@ -633,15 +665,22 @@ class WC_Subscriptions_Cart { if ( WC_Subscriptions_Product::is_subscription( $product ) && ! wcs_cart_contains_renewal() ) { + + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + $product_price_filter = 'woocommerce_get_price'; + } else { + $product_price_filter = is_a( $product, 'WC_Product_Variation' ) ? 'woocommerce_product_variation_get_price' : 'woocommerce_product_get_price'; + } + // Avoid infinite loop remove_filter( 'woocommerce_cart_product_subtotal', __CLASS__ . '::get_formatted_product_subtotal', 11, 4 ); - add_filter( 'woocommerce_get_price', 'WC_Subscriptions_Product::get_sign_up_fee_filter', 100, 2 ); + add_filter( $product_price_filter, 'WC_Subscriptions_Product::get_sign_up_fee_filter', 100, 2 ); // And get the appropriate sign up fee string $sign_up_fee_string = $cart->get_product_subtotal( $product, $quantity ); - remove_filter( 'woocommerce_get_price', 'WC_Subscriptions_Product::get_sign_up_fee_filter', 100, 2 ); + remove_filter( $product_price_filter, 'WC_Subscriptions_Product::get_sign_up_fee_filter', 100, 2 ); add_filter( 'woocommerce_cart_product_subtotal', __CLASS__ . '::get_formatted_product_subtotal', 11, 4 ); @@ -701,10 +740,7 @@ class WC_Subscriptions_Cart { if ( self::cart_contains_subscription() ) { foreach ( WC()->cart->cart_contents as $cart_item ) { - if ( isset( $cart_item['data']->subscription_trial_length ) && $cart_item['data']->subscription_trial_length > 0 ) { - $cart_contains_free_trial = true; - break; - } elseif ( WC_Subscriptions_Product::is_subscription( $cart_item['data'] ) && WC_Subscriptions_Product::get_trial_length( $cart_item['data'] ) > 0 ) { + if ( WC_Subscriptions_Product::get_trial_length( $cart_item['data'] ) > 0 ) { $cart_contains_free_trial = true; break; } @@ -758,11 +794,7 @@ class WC_Subscriptions_Cart { continue; } - if ( isset( $cart_item['data']->subscription_sign_up_fee ) ) { - $sign_up_fee += $cart_item['data']->subscription_sign_up_fee; - } elseif ( WC_Subscriptions_Product::is_subscription( $cart_item['data'] ) ) { - $sign_up_fee += WC_Subscriptions_Product::get_sign_up_fee( $cart_item['data'] ); - } + $sign_up_fee += WC_Subscriptions_Product::get_sign_up_fee( $cart_item['data'] ); } } @@ -1411,10 +1443,7 @@ class WC_Subscriptions_Cart { if ( self::cart_contains_subscription() ) { foreach ( WC()->cart->cart_contents as $cart_item ) { - if ( isset( $cart_item['data']->subscription_period ) ) { - $period = $cart_item['data']->subscription_period; - break; - } elseif ( WC_Subscriptions_Product::is_subscription( $cart_item['data'] ) ) { + if ( WC_Subscriptions_Product::is_subscription( $cart_item['data'] ) ) { $period = WC_Subscriptions_Product::get_period( $cart_item['data'] ); break; } @@ -1460,10 +1489,7 @@ class WC_Subscriptions_Cart { if ( self::cart_contains_subscription() ) { foreach ( WC()->cart->cart_contents as $cart_item ) { - if ( isset( $cart_item['data']->subscription_length ) ) { - $length = $cart_item['data']->subscription_length; - break; - } elseif ( WC_Subscriptions_Product::is_subscription( $cart_item['data'] ) ) { + if ( WC_Subscriptions_Product::is_subscription( $cart_item['data'] ) ) { $length = WC_Subscriptions_Product::get_length( $cart_item['data'] ); break; } @@ -1488,10 +1514,7 @@ class WC_Subscriptions_Cart { if ( self::cart_contains_subscription() ) { foreach ( WC()->cart->cart_contents as $cart_item ) { - if ( isset( $cart_item['data']->subscription_trial_length ) ) { - $trial_length = $cart_item['data']->subscription_trial_length; - break; - } elseif ( WC_Subscriptions_Product::is_subscription( $cart_item['data'] ) ) { + if ( WC_Subscriptions_Product::is_subscription( $cart_item['data'] ) ) { $trial_length = WC_Subscriptions_Product::get_trial_length( $cart_item['data'] ); break; } @@ -1517,10 +1540,7 @@ class WC_Subscriptions_Cart { // Get the original trial period if ( self::cart_contains_subscription() ) { foreach ( WC()->cart->cart_contents as $cart_item ) { - if ( isset( $cart_item['data']->subscription_trial_period ) ) { - $trial_period = $cart_item['data']->subscription_trial_period; - break; - } elseif ( WC_Subscriptions_Product::is_subscription( $cart_item['data'] ) ) { + if ( WC_Subscriptions_Product::is_subscription( $cart_item['data'] ) ) { $trial_period = WC_Subscriptions_Product::get_trial_period( $cart_item['data'] ); break; } diff --git a/includes/class-wc-subscriptions-change-payment-gateway.php b/includes/class-wc-subscriptions-change-payment-gateway.php index f3eaee5..7b1c6fa 100644 --- a/includes/class-wc-subscriptions-change-payment-gateway.php +++ b/includes/class-wc-subscriptions-change-payment-gateway.php @@ -28,6 +28,9 @@ class WC_Subscriptions_Change_Payment_Gateway { // Maybe allow for a recurring payment method to be changed add_action( 'plugins_loaded', __CLASS__ . '::set_change_payment_method_flag' ); + // Attach hooks which depend on WooCommerce constants + add_action( 'woocommerce_loaded', __CLASS__ . '::attach_dependant_hooks' ); + // Keep a record of any messages or errors that should be displayed add_action( 'before_woocommerce_pay', __CLASS__ . '::store_pay_shortcode_mesages', 100 ); @@ -46,7 +49,6 @@ class WC_Subscriptions_Change_Payment_Gateway { // If we're changing the payment method, we want to make sure a number of totals return $0 (to prevent payments being processed now) add_filter( 'woocommerce_subscriptions_total_initial_payment', __CLASS__ . '::maybe_zero_total', 11, 2 ); add_filter( 'woocommerce_subscriptions_sign_up_fee', __CLASS__ . '::maybe_zero_total', 11, 2 ); - add_filter( 'woocommerce_order_amount_total', __CLASS__ . '::maybe_zero_total', 11, 2 ); // Redirect to My Account page after changing payment method add_filter( 'woocommerce_get_return_url', __CLASS__ . '::get_return_url', 11 ); @@ -64,6 +66,26 @@ class WC_Subscriptions_Change_Payment_Gateway { add_filter( 'woocommerce_subscription_needs_payment', __CLASS__ . '::maybe_override_needs_payment', 10, 1 ); } + /** + * Attach WooCommerce version dependent hooks + * + * @since 2.2.0 + */ + public static function attach_dependant_hooks() { + + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + + // If we're changing the payment method, we want to make sure a number of totals return $0 (to prevent payments being processed now) + add_filter( 'woocommerce_order_amount_total', __CLASS__ . '::maybe_zero_total', 11, 2 ); + + } else { + + // If we're changing the payment method, we want to make sure a number of totals return $0 (to prevent payments being processed now) + add_filter( 'woocommerce_order_get_total', __CLASS__ . '::maybe_zero_total', 11, 2 ); + + } + } + /** * Set a flag to indicate that the current request is for changing payment. Better than requiring other extensions * to check the $_GET global as it allows for the flag to be overridden. @@ -115,7 +137,7 @@ class WC_Subscriptions_Change_Payment_Gateway { $subscription_key = isset( $_GET['key'] ) ? wc_clean( $_GET['key'] ) : ''; $subscription = wcs_get_subscription( absint( $wp->query_vars['order-pay'] ) ); - if ( $subscription->id == absint( $wp->query_vars['order-pay'] ) && $subscription->order_key == $subscription_key ) { + if ( $subscription->get_id() == absint( $wp->query_vars['order-pay'] ) && $subscription->get_order_key() == $subscription_key ) { ?>
@@ -138,7 +160,7 @@ class WC_Subscriptions_Change_Payment_Gateway { echo wp_kses_post( sprintf( esc_html__( 'Total: %s', 'woocommerce-subscriptions' ), '' . $subscription->get_formatted_order_total() . '' ) ); ?> - payment_method_title ) : ?> + get_payment_method_title() ) : ?>
  • - payment_method, $subscription->id ); ?> + get_payment_method(), $subscription->get_id() ); ?>
    id ) ) { + } elseif ( ! current_user_can( 'edit_shop_subscription_payment_method', $subscription->get_id() ) ) { WC_Subscriptions::add_notice( __( 'That doesn\'t appear to be one of your subscriptions.', 'woocommerce-subscriptions' ), 'error' ); @@ -213,17 +235,24 @@ class WC_Subscriptions_Change_Payment_Gateway { WC_Subscriptions::add_notice( sprintf( __( 'Choose a new payment method.%s', 'woocommerce-subscriptions' ), $next_payment_string ), 'notice' ); WC_Subscriptions::print_notices(); - if ( $subscription->order_key == $_GET['key'] ) { + if ( $subscription->get_order_key() == $_GET['key'] ) { + + $subscription_billing_country = $subscription->get_billing_country(); + $subscription_billing_state = $subscription->get_billing_state(); + $subscription_billing_postcode = $subscription->get_billing_postcode(); // Set customer location to order location - if ( $subscription->billing_country ) { - WC()->customer->set_country( $subscription->billing_country ); + if ( $subscription_billing_country ) { + $setter = is_callable( array( WC()->customer, 'set_billing_country' ) ) ? 'set_billing_country' : 'set_country'; + WC()->customer->$setter( $subscription_billing_country ); } - if ( $subscription->billing_state ) { - WC()->customer->set_state( $subscription->billing_state ); + if ( $subscription_billing_state ) { + $setter = is_callable( array( WC()->customer, 'set_billing_state' ) ) ? 'set_billing_state' : 'set_state'; + WC()->customer->$setter( $subscription_billing_state ); } - if ( $subscription->billing_postcode ) { - WC()->customer->set_postcode( $subscription->billing_postcode ); + if ( $subscription_billing_postcode ) { + $setter = is_callable( array( WC()->customer, 'set_billing_postcode' ) ) ? 'set_billing_postcode' : 'set_postcode'; + WC()->customer->$setter( $subscription_billing_postcode ); } wc_get_template( 'checkout/form-change-payment-method.php', array( 'subscription' => $subscription ), '', plugin_dir_path( WC_Subscriptions::$plugin_file ) . 'templates/' ); @@ -255,7 +284,7 @@ class WC_Subscriptions_Change_Payment_Gateway { if ( $subscription->can_be_updated_to( 'new-payment-method' ) ) { $actions['change_payment_method'] = array( - 'url' => wp_nonce_url( add_query_arg( array( 'change_payment_method' => $subscription->id ), $subscription->get_checkout_payment_url() ) ), + 'url' => wp_nonce_url( add_query_arg( array( 'change_payment_method' => $subscription->get_id() ), $subscription->get_checkout_payment_url() ) ), 'name' => _x( 'Change Payment', 'label on button, imperative', 'woocommerce-subscriptions' ), ); @@ -283,20 +312,29 @@ class WC_Subscriptions_Change_Payment_Gateway { ob_start(); - if ( $subscription->order_key == $_GET['key'] ) { + if ( $subscription->get_order_key() == $_GET['key'] ) { + + $subscription_billing_country = $subscription->get_billing_country(); + $subscription_billing_state = $subscription->get_billing_state(); + $subscription_billing_postcode = $subscription->get_billing_postcode(); + $subscription_billing_city = $subscription->get_billing_postcode(); // Set customer location to order location - if ( $subscription->billing_country ) { - WC()->customer->set_country( $subscription->billing_country ); + if ( $subscription_billing_country ) { + $setter = is_callable( array( WC()->customer, 'set_billing_country' ) ) ? 'set_billing_country' : 'set_country'; + WC()->customer->$setter( $subscription_billing_country ); } - if ( $subscription->billing_state ) { - WC()->customer->set_state( $subscription->billing_state ); + if ( $subscription_billing_state ) { + $setter = is_callable( array( WC()->customer, 'set_billing_state' ) ) ? 'set_billing_state' : 'set_state'; + WC()->customer->$setter( $subscription_billing_state ); } - if ( $subscription->billing_postcode ) { - WC()->customer->set_postcode( $subscription->billing_postcode ); + if ( $subscription_billing_postcode ) { + $setter = is_callable( array( WC()->customer, 'set_billing_postcode' ) ) ? 'set_billing_postcode' : 'set_postcode'; + WC()->customer->$setter( $subscription_billing_postcode ); } - if ( $subscription->billing_city ) { - WC()->customer->set_city( $subscription->billing_city ); + if ( $subscription_billing_city ) { + $setter = is_callable( array( WC()->customer, 'set_billing_city' ) ) ? 'set_billing_city' : 'set_city'; + WC()->customer->$setter( $subscription_billing_city ); } // Update payment method @@ -315,7 +353,7 @@ class WC_Subscriptions_Change_Payment_Gateway { // Process payment for the new method (with a $0 order total) if ( wc_notice_count( 'error' ) == 0 ) { - $result = $available_gateways[ $new_payment_method ]->process_payment( $subscription->id ); + $result = $available_gateways[ $new_payment_method ]->process_payment( $subscription->get_id() ); if ( 'success' == $result['result'] && wc_get_page_permalink( 'myaccount' ) == $result['redirect'] ) { $result['redirect'] = $subscription->get_view_order_url(); @@ -342,8 +380,8 @@ class WC_Subscriptions_Change_Payment_Gateway { */ public static function update_payment_method( $subscription, $new_payment_method ) { - $old_payment_method = $subscription->payment_method; - $old_payment_method_title = $subscription->payment_method_title; + $old_payment_method = $subscription->get_payment_method(); + $old_payment_method_title = $subscription->get_payment_method_title(); $available_gateways = WC()->payment_gateways->get_available_payment_gateways(); // Also inits all payment gateways to make sure that hooks are attached correctly do_action( 'woocommerce_subscriptions_pre_update_payment_method', $subscription, $new_payment_method, $old_payment_method ); @@ -352,8 +390,8 @@ class WC_Subscriptions_Change_Payment_Gateway { WC_Subscriptions_Payment_Gateways::trigger_gateway_status_updated_hook( $subscription, 'cancelled' ); // Update meta - update_post_meta( $subscription->id, '_old_payment_method', $old_payment_method ); - update_post_meta( $subscription->id, '_payment_method', $new_payment_method ); + update_post_meta( $subscription->get_id(), '_old_payment_method', $old_payment_method ); + update_post_meta( $subscription->get_id(), '_payment_method', $new_payment_method ); if ( isset( $available_gateways[ $new_payment_method ] ) ) { $new_payment_method_title = $available_gateways[ $new_payment_method ]->get_title(); @@ -361,8 +399,8 @@ class WC_Subscriptions_Change_Payment_Gateway { $new_payment_method_title = ''; } - update_post_meta( $subscription->id, '_old_payment_method_title', $old_payment_method_title ); - update_post_meta( $subscription->id, '_payment_method_title', $new_payment_method_title ); + update_post_meta( $subscription->get_id(), '_old_payment_method_title', $old_payment_method_title ); + update_post_meta( $subscription->get_id(), '_payment_method_title', $new_payment_method_title ); if ( empty( $old_payment_method_title ) ) { $old_payment_method_title = $old_payment_method; @@ -408,7 +446,7 @@ class WC_Subscriptions_Change_Payment_Gateway { public static function maybe_zero_total( $total, $subscription ) { global $wp; - if ( ! empty( $_POST['_wcsnonce'] ) && wp_verify_nonce( $_POST['_wcsnonce'], 'wcs_change_payment_method' ) && isset( $_POST['woocommerce_change_payment'] ) && $subscription->order_key == $_GET['key'] && $subscription->id == absint( $_POST['woocommerce_change_payment'] ) ) { + if ( ! empty( $_POST['_wcsnonce'] ) && wp_verify_nonce( $_POST['_wcsnonce'], 'wcs_change_payment_method' ) && isset( $_POST['woocommerce_change_payment'] ) && $subscription->get_order_key() == $_GET['key'] && $subscription->get_id() == absint( $_POST['woocommerce_change_payment'] ) ) { $total = 0; } elseif ( ! self::$is_request_to_change_payment && isset( $wp->query_vars['order-pay'] ) && wcs_is_subscription( absint( $wp->query_vars['order-pay'] ) ) ) { // if the request to pay for the order belongs to a subscription but there's no GET params for changing payment method, the receipt page is being used to collect credit card details so we still need to $0 the total @@ -449,7 +487,7 @@ class WC_Subscriptions_Change_Payment_Gateway { if ( ! empty( $_POST['_wcsnonce'] ) && wp_verify_nonce( $_POST['_wcsnonce'], 'wcs_change_payment_method' ) && isset( $_POST['payment_method'] ) ) { $new_payment_method = wc_clean( $_POST['payment_method'] ); } else { - $new_payment_method = $renewal_order->payment_method; + $new_payment_method = wcs_get_objects_property( $renewal_order, 'payment_method' ); } self::update_payment_method( $subscription, $new_payment_method ); diff --git a/includes/class-wc-subscriptions-checkout.php b/includes/class-wc-subscriptions-checkout.php index 50a2189..560266c 100644 --- a/includes/class-wc-subscriptions-checkout.php +++ b/includes/class-wc-subscriptions-checkout.php @@ -40,6 +40,9 @@ class WC_Subscriptions_Checkout { // Force registration during checkout process add_action( 'woocommerce_before_checkout_process', __CLASS__ . '::force_registration_during_checkout', 10 ); + + // When a line item is added to a subscription on checkout, ensure the backorder data added by WC is removed + add_action( 'woocommerce_checkout_create_order_line_item', __CLASS__ . '::remove_backorder_meta_from_subscription_line_item', 10, 4 ); } /** @@ -60,12 +63,12 @@ class WC_Subscriptions_Checkout { $subscriptions = array(); // First clear out any subscriptions created for a failed payment to give us a clean slate for creating new subscriptions - $subscriptions = wcs_get_subscriptions_for_order( $order->id, array( 'order_type' => 'parent' ) ); + $subscriptions = wcs_get_subscriptions_for_order( wcs_get_objects_property( $order, 'id' ), array( 'order_type' => 'parent' ) ); if ( ! empty( $subscriptions ) ) { remove_action( 'before_delete_post', 'WC_Subscriptions_Manager::maybe_cancel_subscription' ); foreach ( $subscriptions as $subscription ) { - wp_delete_post( $subscription->id ); + wp_delete_post( $subscription->get_id() ); } add_action( 'before_delete_post', 'WC_Subscriptions_Manager::maybe_cancel_subscription' ); } @@ -75,7 +78,7 @@ class WC_Subscriptions_Checkout { // Create new subscriptions for each group of subscription products in the cart (that is not a renewal) foreach ( WC()->cart->recurring_carts as $recurring_cart ) { - $subscription = self::create_subscription( $order, $recurring_cart ); // Exceptions are caught by WooCommerce + $subscription = self::create_subscription( $order, $recurring_cart, $posted_data ); // Exceptions are caught by WooCommerce if ( is_wp_error( $subscription ) ) { throw new Exception( $subscription->get_error_message() ); @@ -97,7 +100,7 @@ class WC_Subscriptions_Checkout { * @param WC_Cart $cart * @since 2.0 */ - public static function create_subscription( $order, $cart ) { + public static function create_subscription( $order, $cart, $posted_data ) { global $wpdb; try { @@ -108,16 +111,13 @@ class WC_Subscriptions_Checkout { $variation_id = wcs_cart_pluck( $cart, 'variation_id' ); $product_id = empty( $variation_id ) ? wcs_cart_pluck( $cart, 'product_id' ) : $variation_id; - // We need to use the $order->order_date value because the post_date_gmt isn't always set - $order_date_gmt = get_gmt_from_date( $order->order_date ); - $subscription = wcs_create_subscription( array( 'start_date' => $cart->start_date, - 'order_id' => $order->id, + 'order_id' => wcs_get_objects_property( $order, 'id' ), 'customer_id' => $order->get_user_id(), 'billing_period' => wcs_cart_pluck( $cart, 'subscription_period' ), 'billing_interval' => wcs_cart_pluck( $cart, 'subscription_period_interval' ), - 'customer_note' => $order->customer_note, + 'customer_note' => wcs_get_objects_property( $order, 'customer_note' ), ) ); if ( is_wp_error( $subscription ) ) { @@ -135,68 +135,91 @@ class WC_Subscriptions_Checkout { // Store trial period for PayPal if ( wcs_cart_pluck( $cart, 'subscription_trial_length' ) > 0 ) { - update_post_meta( $subscription->id, '_trial_period', wcs_cart_pluck( $cart, 'subscription_trial_period' ) ); + $subscription->set_trial_period( wcs_cart_pluck( $cart, 'subscription_trial_period' ) ); } // Set the payment method on the subscription - $available_gateways = WC()->payment_gateways->get_available_payment_gateways(); + $available_gateways = WC()->payment_gateways->get_available_payment_gateways(); + $order_payment_method = wcs_get_objects_property( $order, 'payment_method' ); - if ( $cart->needs_payment() && isset( $available_gateways[ $order->payment_method ] ) ) { - $subscription->set_payment_method( $available_gateways[ $order->payment_method ] ); + if ( $cart->needs_payment() && isset( $available_gateways[ $order_payment_method ] ) ) { + $subscription->set_payment_method( $available_gateways[ $order_payment_method ] ); } if ( ! $cart->needs_payment() || 'yes' == get_option( WC_Subscriptions_Admin::$option_prefix . '_turn_off_automatic_payments', 'no' ) ) { - $subscription->update_manual( 'true' ); - } elseif ( ! isset( $available_gateways[ $order->payment_method ] ) || ! $available_gateways[ $order->payment_method ]->supports( 'subscriptions' ) ) { - $subscription->update_manual( 'true' ); + $subscription->set_requires_manual_renewal( true ); + } elseif ( ! isset( $available_gateways[ $order_payment_method ] ) || ! $available_gateways[ $order_payment_method ]->supports( 'subscriptions' ) ) { + $subscription->set_requires_manual_renewal( true ); } wcs_copy_order_meta( $order, $subscription, 'subscription' ); // Store the line items - foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) { - $item_id = self::add_cart_item( $subscription, $cart_item, $cart_item_key ); + if ( is_callable( array( WC()->checkout, 'create_order_line_items' ) ) ) { + WC()->checkout->create_order_line_items( $subscription, $cart ); + } else { + foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) { + $item_id = self::add_cart_item( $subscription, $cart_item, $cart_item_key ); + } } // Store fees (although no fees recur by default, extensions may add them) - foreach ( $cart->get_fees() as $fee_key => $fee ) { - $item_id = $subscription->add_fee( $fee ); + if ( is_callable( array( WC()->checkout, 'create_order_fee_lines' ) ) ) { + WC()->checkout->create_order_fee_lines( $subscription, $cart ); + } else { + foreach ( $cart->get_fees() as $fee_key => $fee ) { + $item_id = $subscription->add_fee( $fee ); - if ( ! $item_id ) { - // translators: placeholder is an internal error number - throw new Exception( sprintf( __( 'Error %d: Unable to create subscription. Please try again.', 'woocommerce-subscriptions' ), 403 ) ); + if ( ! $item_id ) { + // translators: placeholder is an internal error number + throw new Exception( sprintf( __( 'Error %d: Unable to create subscription. Please try again.', 'woocommerce-subscriptions' ), 403 ) ); + } + + // Allow plugins to add order item meta to fees + do_action( 'woocommerce_add_order_fee_meta', $subscription->get_id(), $item_id, $fee, $fee_key ); } - - // Allow plugins to add order item meta to fees - do_action( 'woocommerce_add_order_fee_meta', $order->id, $item_id, $fee, $fee_key ); } self::add_shipping( $subscription, $cart ); // Store tax rows - foreach ( array_keys( $cart->taxes + $cart->shipping_taxes ) as $tax_rate_id ) { - if ( $tax_rate_id && ! $subscription->add_tax( $tax_rate_id, $cart->get_tax_amount( $tax_rate_id ), $cart->get_shipping_tax_amount( $tax_rate_id ) ) && apply_filters( 'woocommerce_cart_remove_taxes_zero_rate_id', 'zero-rated' ) !== $tax_rate_id ) { - // translators: placeholder is an internal error number - throw new Exception( sprintf( __( 'Error %d: Unable to add tax to subscription. Please try again.', 'woocommerce-subscriptions' ), 405 ) ); + if ( is_callable( array( WC()->checkout, 'create_order_tax_lines' ) ) ) { + WC()->checkout->create_order_tax_lines( $subscription, $cart ); + } else { + foreach ( array_keys( $cart->taxes + $cart->shipping_taxes ) as $tax_rate_id ) { + if ( $tax_rate_id && ! $subscription->add_tax( $tax_rate_id, $cart->get_tax_amount( $tax_rate_id ), $cart->get_shipping_tax_amount( $tax_rate_id ) ) && apply_filters( 'woocommerce_cart_remove_taxes_zero_rate_id', 'zero-rated' ) !== $tax_rate_id ) { + // translators: placeholder is an internal error number + throw new Exception( sprintf( __( 'Error %d: Unable to add tax to subscription. Please try again.', 'woocommerce-subscriptions' ), 405 ) ); + } } } // Store coupons - foreach ( $cart->get_coupons() as $code => $coupon ) { - if ( ! $subscription->add_coupon( $code, $cart->get_coupon_discount_amount( $code ), $cart->get_coupon_discount_tax_amount( $code ) ) ) { - // translators: placeholder is an internal error number - throw new Exception( sprintf( __( 'Error %d: Unable to create order. Please try again.', 'woocommerce-subscriptions' ), 406 ) ); + if ( is_callable( array( WC()->checkout, 'create_order_coupon_lines' ) ) ) { + WC()->checkout->create_order_coupon_lines( $subscription, $cart ); + } else { + foreach ( $cart->get_coupons() as $code => $coupon ) { + if ( ! $subscription->add_coupon( $code, $cart->get_coupon_discount_amount( $code ), $cart->get_coupon_discount_tax_amount( $code ) ) ) { + // translators: placeholder is an internal error number + throw new Exception( sprintf( __( 'Error %d: Unable to create order. Please try again.', 'woocommerce-subscriptions' ), 406 ) ); + } } } // Set the recurring totals on the subscription - $subscription->set_total( $cart->shipping_total, 'shipping' ); - $subscription->set_total( $cart->get_cart_discount_total(), 'cart_discount' ); - $subscription->set_total( $cart->get_cart_discount_tax_total(), 'cart_discount_tax' ); - $subscription->set_total( $cart->tax_total, 'tax' ); - $subscription->set_total( $cart->shipping_tax_total, 'shipping_tax' ); + $subscription->set_shipping_total( $cart->shipping_total ); + $subscription->set_discount_total( $cart->get_cart_discount_total() ); + $subscription->set_discount_tax( $cart->get_cart_discount_tax_total() ); + $subscription->set_cart_tax( $cart->tax_total ); + $subscription->set_shipping_tax( $cart->shipping_tax_total ); $subscription->set_total( $cart->total ); + // Hook to adjust subscriptions before saving with WC 3.0+ (matches WC 3.0's new 'woocommerce_checkout_create_order' hook) + do_action( 'woocommerce_checkout_create_subscription', $subscription, $posted_data ); + + // Save the subscription if using WC 3.0 & CRUD + $subscription->save(); + // If we got here, the subscription was created without problems $wpdb->query( 'COMMIT' ); @@ -238,27 +261,71 @@ class WC_Subscriptions_Checkout { if ( isset( $package['rates'][ $shipping_method_id ] ) ) { - $item_id = $subscription->add_shipping( $package['rates'][ $shipping_method_id ] ); + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { - if ( ! $item_id ) { - throw new Exception( __( 'Error: Unable to create subscription. Please try again.', 'woocommerce-subscriptions' ) ); + $item_id = $subscription->add_shipping( $package['rates'][ $shipping_method_id ] ); + + // Allows plugins to add order item meta to shipping + do_action( 'woocommerce_add_shipping_order_item', $subscription->get_id(), $item_id, $package_key ); + do_action( 'woocommerce_subscriptions_add_recurring_shipping_order_item', $subscription->get_id(), $item_id, $package_key ); + + } else { // WC 3.0+ + + $shipping_rate = $package['rates'][ $shipping_method_id ]; + $item = new WC_Order_Item_Shipping(); + $item->legacy_package_key = $package_key; // @deprecated For legacy actions. + $item->set_props( array( + 'method_title' => $shipping_rate->label, + 'method_id' => $shipping_rate->id, + 'total' => wc_format_decimal( $shipping_rate->cost ), + 'taxes' => array( 'total' => $shipping_rate->taxes ), + 'order_id' => $subscription->get_id(), + ) ); + + foreach ( $shipping_rate->get_meta_data() as $key => $value ) { + $item->add_meta_data( $key, $value, true ); + } + + $subscription->add_item( $item ); + + $item->save(); // We need the item ID for old hooks, this can be removed once support for WC < 3.0 is dropped + wc_do_deprecated_action( 'woocommerce_subscriptions_add_recurring_shipping_order_item', array( $subscription->get_id(), $item->get_id(), $package_key ), '2.2.0', 'CRUD and woocommerce_checkout_create_subscription_shipping_item action instead' ); + + do_action( 'woocommerce_checkout_create_order_shipping_item', $item, $package_key, $package ); // WC 3.0+ will also trigger the deprecated 'woocommerce_add_shipping_order_item' hook + do_action( 'woocommerce_checkout_create_subscription_shipping_item', $item, $package_key, $package ); } - - // Allows plugins to add order item meta to shipping - do_action( 'woocommerce_add_shipping_order_item', $subscription->id, $item_id, $package_key ); - do_action( 'woocommerce_subscriptions_add_recurring_shipping_order_item', $subscription->id, $item_id, $package_key ); } } WC_Subscriptions_Cart::set_calculation_type( 'none' ); } + /** + * Remove the Backordered meta data from subscription line items added on the checkout. + * + * @param WC_Order_Item_Product $order_item + * @param string $cart_item_key The hash used to identify the item in the cart + * @param array $cart_item The cart item's data. + * @param WC_Order|WC_Subscription $subscription The order or subscription object to which the line item relates + * @since 2.2.0 + */ + public static function remove_backorder_meta_from_subscription_line_item( $item, $cart_item_key, $cart_item, $subscription ) { + + if ( wcs_is_subscription( $subscription ) ) { + $item->delete_meta_data( apply_filters( 'woocommerce_backordered_item_meta_name', __( 'Backordered', 'woocommerce-subscriptions' ) ) ); + } + } + /** * Add a cart item to a subscription. * * @since 2.0 */ public static function add_cart_item( $subscription, $cart_item, $cart_item_key ) { + if ( ! WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + _deprecated_function( __METHOD__, '2.2.0', 'WC_Checkout::create_order_line_items( $subscription, $cart )' ); + } + $item_id = $subscription->add_product( $cart_item['data'], $cart_item['quantity'], @@ -286,9 +353,11 @@ class WC_Subscriptions_Checkout { } // Allow plugins to add order item meta - do_action( 'woocommerce_add_order_item_meta', $item_id, $cart_item, $cart_item_key ); - - do_action( 'woocommerce_add_subscription_item_meta', $item_id, $cart_item, $cart_item_key ); + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + do_action( 'woocommerce_add_subscription_item_meta', $item_id, $cart_item, $cart_item_key ); + } else { + wc_do_deprecated_action( 'woocommerce_add_subscription_item_meta', array( $item_id, $cart_item, $cart_item_key ), '3.0', 'CRUD and woocommerce_checkout_create_order_line_item action instead' ); + } return $item_id; } diff --git a/includes/class-wc-subscriptions-coupon.php b/includes/class-wc-subscriptions-coupon.php index 443c934..d443b14 100644 --- a/includes/class-wc-subscriptions-coupon.php +++ b/includes/class-wc-subscriptions-coupon.php @@ -43,6 +43,11 @@ class WC_Subscriptions_Coupon { // Add our recurring product coupon types to the list of coupon types that apply to individual products add_filter( 'woocommerce_product_coupon_types', __CLASS__ . '::filter_product_coupon_types', 10, 1 ); + + if ( ! is_admin() ) { + // WC 3.0 only sets a coupon type if it is a pre-defined supported type, so we need to temporarily add our pseudo types. We don't want to add these on admin pages. + add_filter( 'woocommerce_coupon_discount_types', __CLASS__ . '::add_pseudo_coupon_types' ); + } } /** @@ -70,19 +75,19 @@ class WC_Subscriptions_Coupon { */ public static function get_discount_amount( $discount, $discounting_amount, $cart_item, $single, $coupon ) { + $coupon_type = wcs_get_coupon_property( $coupon, 'type' ); + // Only deal with subscriptions coupon types - if ( ! in_array( $coupon->type, array( 'recurring_fee', 'recurring_percent', 'sign_up_fee', 'sign_up_fee_percent', 'renewal_fee', 'renewal_percent', 'renewal_cart' ) ) ) { + if ( ! in_array( $coupon_type, array( 'recurring_fee', 'recurring_percent', 'sign_up_fee', 'sign_up_fee_percent', 'renewal_fee', 'renewal_percent', 'renewal_cart' ) ) ) { return $discount; } - $product_id = ( $cart_item['data']->is_type( array( 'subscription_variation' ) ) ) ? $cart_item['data']->variation_id : $cart_item['data']->id; - // If not a subscription product return the default discount if ( ! wcs_cart_contains_renewal() && ! WC_Subscriptions_Product::is_subscription( $cart_item['data'] ) ) { return $discount; } // But if cart contains a renewal, we need to handle both subscription products and manually added non-susbscription products that could be part of a subscription - if ( wcs_cart_contains_renewal() && ! self::is_subsbcription_renewal_line_item( $product_id, $cart_item ) ) { + if ( wcs_cart_contains_renewal() && ! self::is_subsbcription_renewal_line_item( $cart_item['data'], $cart_item ) ) { return $discount; } @@ -100,8 +105,8 @@ class WC_Subscriptions_Coupon { // Check if we're applying any recurring discounts to recurring total calculations if ( 'recurring_total' == $calculation_type ) { - $apply_recurring_coupon = ( 'recurring_fee' == $coupon->type ) ? true : false; - $apply_recurring_percent_coupon = ( 'recurring_percent' == $coupon->type ) ? true : false; + $apply_recurring_coupon = ( 'recurring_fee' == $coupon_type ) ? true : false; + $apply_recurring_percent_coupon = ( 'recurring_percent' == $coupon_type ) ? true : false; } // Check if we're applying any initial discounts @@ -110,42 +115,42 @@ class WC_Subscriptions_Coupon { // If all items have a free trial we don't need to apply recurring coupons to the initial total if ( ! WC_Subscriptions_Cart::all_cart_items_have_free_trial() ) { - if ( 'recurring_fee' == $coupon->type ) { + if ( 'recurring_fee' == $coupon_type ) { $apply_initial_coupon = true; } - if ( 'recurring_percent' == $coupon->type ) { + if ( 'recurring_percent' == $coupon_type ) { $apply_initial_percent_coupon = true; } } // Apply sign-up discounts - if ( ! empty( $cart_item['data']->subscription_sign_up_fee ) ) { + if ( WC_Subscriptions_Product::get_sign_up_fee( $cart_item['data'] ) > 0 ) { - if ( 'sign_up_fee' == $coupon->type ) { + if ( 'sign_up_fee' == $coupon_type ) { $apply_initial_coupon = true; } - if ( 'sign_up_fee_percent' == $coupon->type ) { + if ( 'sign_up_fee_percent' == $coupon_type ) { $apply_initial_percent_coupon = true; } // Only Sign up fee coupons apply to sign up fees, adjust the discounting_amount accordingly - if ( in_array( $coupon->type, array( 'sign_up_fee', 'sign_up_fee_percent' ) ) ) { - $discounting_amount = $cart_item['data']->subscription_sign_up_fee; + if ( in_array( $coupon_type, array( 'sign_up_fee', 'sign_up_fee_percent' ) ) ) { + $discounting_amount = WC_Subscriptions_Product::get_sign_up_fee( $cart_item['data'] ); } else { - $discounting_amount -= $cart_item['data']->subscription_sign_up_fee; + $discounting_amount -= WC_Subscriptions_Product::get_sign_up_fee( $cart_item['data'] ); } } // Apply renewal discounts - if ( 'renewal_fee' == $coupon->type ) { + if ( 'renewal_fee' == $coupon_type ) { $apply_recurring_coupon = true; } - if ( 'renewal_percent' == $coupon->type ) { + if ( 'renewal_percent' == $coupon_type ) { $apply_recurring_percent_coupon = true; } - if ( 'renewal_cart' == $coupon->type ) { + if ( 'renewal_cart' == $coupon_type ) { $apply_renewal_cart_coupon = true; } } @@ -154,25 +159,25 @@ class WC_Subscriptions_Coupon { if ( $apply_recurring_coupon || $apply_initial_coupon ) { // Recurring coupons only apply when there is no free trial (carts can have a mix of free trial and non free trial items) - if ( $apply_initial_coupon && 'recurring_fee' == $coupon->type && ! empty( $cart_item['data']->subscription_trial_length ) ) { + if ( $apply_initial_coupon && 'recurring_fee' == $coupon_type && WC_Subscriptions_Product::get_trial_length( $cart_item['data'] ) > 0 ) { $discounting_amount = 0; } - $discount_amount = min( $coupon->coupon_amount, $discounting_amount ); + $discount_amount = min( wcs_get_coupon_property( $coupon, 'amount' ), $discounting_amount ); $discount_amount = $single ? $discount_amount : $discount_amount * $cart_item_qty; } elseif ( $apply_recurring_percent_coupon ) { - $discount_amount = ( $discounting_amount / 100 ) * $coupon->amount; + $discount_amount = ( $discounting_amount / 100 ) * wcs_get_coupon_property( $coupon, 'amount' ); } elseif ( $apply_initial_percent_coupon ) { // Recurring coupons only apply when there is no free trial (carts can have a mix of free trial and non free trial items) - if ( 'recurring_percent' == $coupon->type && ! empty( $cart_item['data']->subscription_trial_length ) ) { + if ( 'recurring_percent' == $coupon_type && WC_Subscriptions_Product::get_trial_length( $cart_item['data'] ) > 0 ) { $discounting_amount = 0; } - $discount_amount = ( $discounting_amount / 100 ) * $coupon->amount; + $discount_amount = ( $discounting_amount / 100 ) * wcs_get_coupon_property( $coupon, 'amount' ); } elseif ( $apply_renewal_cart_coupon ) { @@ -182,9 +187,9 @@ class WC_Subscriptions_Coupon { * * BUT... we also need the subtotal to exclude non renewal products, so user the renewal subtotal */ - $discount_percent = ( $discounting_amount * $cart_item['quantity'] ) / self::get_renewal_subtotal( $coupon->code ); + $discount_percent = ( $discounting_amount * $cart_item['quantity'] ) / self::get_renewal_subtotal( wcs_get_coupon_property( $coupon, 'code' ) ); - $discount_amount = ( $coupon->amount * $discount_percent ) / $cart_item_qty; + $discount_amount = ( wcs_get_coupon_property( $coupon, 'amount' ) * $discount_percent ) / $cart_item_qty; } // Round - consistent with WC approach @@ -216,9 +221,10 @@ class WC_Subscriptions_Coupon { foreach ( WC()->cart->applied_coupons as $code ) { - $coupon = new WC_Coupon( $code ); + $coupon = new WC_Coupon( $code ); + $cart_coupon_type = wcs_get_coupon_property( $coupon, 'type' ); - if ( 'any' == $coupon_type || $coupon_type == $coupon->type || ( 'core' == $coupon_type && in_array( $coupon->type, $core_coupons ) ) ) { + if ( 'any' == $coupon_type || $coupon_type == $cart_coupon_type || ( 'core' == $coupon_type && in_array( $cart_coupon_type, $core_coupons ) ) ) { $contains_discount = true; break; } @@ -240,9 +246,10 @@ class WC_Subscriptions_Coupon { } self::$coupon_error = ''; + $coupon_type = wcs_get_coupon_property( $coupon, 'type' ); // ignore non-subscription coupons - if ( ! in_array( $coupon->type, array( 'recurring_fee', 'sign_up_fee', 'recurring_percent', 'sign_up_fee_percent', 'renewal_fee', 'renewal_percent', 'renewal_cart' ) ) ) { + if ( ! in_array( $coupon_type, array( 'recurring_fee', 'sign_up_fee', 'recurring_percent', 'sign_up_fee_percent', 'renewal_fee', 'renewal_percent', 'renewal_cart' ) ) ) { // but make sure there is actually something for the coupon to be applied to (i.e. not a free trial) if ( ( wcs_cart_contains_renewal() || WC_Subscriptions_Cart::cart_contains_subscription() ) && 0 == WC()->cart->subtotal ) { @@ -251,7 +258,7 @@ class WC_Subscriptions_Coupon { } else { // prevent subscription coupons from being applied to renewal payments - if ( wcs_cart_contains_renewal() && ! in_array( $coupon->type, array( 'renewal_fee', 'renewal_percent', 'renewal_cart' ) ) ) { + if ( wcs_cart_contains_renewal() && ! in_array( $coupon_type, array( 'renewal_fee', 'renewal_percent', 'renewal_cart' ) ) ) { self::$coupon_error = __( 'Sorry, this coupon is only valid for new subscriptions.', 'woocommerce-subscriptions' ); } @@ -261,13 +268,13 @@ class WC_Subscriptions_Coupon { } // prevent subscription renewal coupons from being applied to non renewal payments - if ( ! wcs_cart_contains_renewal() && in_array( $coupon->type, array( 'renewal_fee', 'renewal_percent', 'renewal_cart' ) ) ) { + if ( ! wcs_cart_contains_renewal() && in_array( $coupon_type, array( 'renewal_fee', 'renewal_percent', 'renewal_cart' ) ) ) { // translators: 1$: coupon code that is being removed - self::$coupon_error = sprintf( __( 'Sorry, the "%1$s" coupon is only valid for renewals.', 'woocommerce-subscriptions' ), $coupon->code ); + self::$coupon_error = sprintf( __( 'Sorry, the "%1$s" coupon is only valid for renewals.', 'woocommerce-subscriptions' ), wcs_get_coupon_property( $coupon, 'code' ) ); } // prevent sign up fee coupons from being applied to subscriptions without a sign up fee - if ( 0 == WC_Subscriptions_Cart::get_cart_subscription_sign_up_fee() && in_array( $coupon->type, array( 'sign_up_fee', 'sign_up_fee_percent' ) ) ) { + if ( 0 == WC_Subscriptions_Cart::get_cart_subscription_sign_up_fee() && in_array( $coupon_type, array( 'sign_up_fee', 'sign_up_fee_percent' ) ) ) { self::$coupon_error = __( 'Sorry, this coupon is only valid for subscription products with a sign-up fee.', 'woocommerce-subscriptions' ); } } @@ -307,16 +314,16 @@ class WC_Subscriptions_Coupon { $this_item_is_discounted = false; // Specific products get the discount - if ( sizeof( $coupon->product_ids ) > 0 ) { + if ( sizeof( $coupon_product_ids = wcs_get_coupon_property( $coupon, 'product_ids' ) ) > 0 ) { - if ( in_array( wcs_get_canonical_product_id( $cart_item ), $coupon->product_ids ) || in_array( $cart_item['data']->get_parent(), $coupon->product_ids ) ) { + if ( in_array( wcs_get_canonical_product_id( $cart_item ), $coupon_product_ids ) || in_array( $cart_item['data']->get_parent(), $coupon_product_ids ) ) { $this_item_is_discounted = true; } // Category discounts - } elseif ( sizeof( $coupon->product_categories ) > 0 ) { + } elseif ( sizeof( $coupon_product_categories = wcs_get_coupon_property( $coupon, 'product_categories' ) ) > 0 ) { - if ( sizeof( array_intersect( $product_cats, $coupon->product_categories ) ) > 0 ) { + if ( sizeof( array_intersect( $product_cats, $coupon_product_categories ) ) > 0 ) { $this_item_is_discounted = true; } } else { @@ -327,15 +334,15 @@ class WC_Subscriptions_Coupon { } // Specific product ID's excluded from the discount - if ( sizeof( $coupon->exclude_product_ids ) > 0 ) { - if ( in_array( wcs_get_canonical_product_id( $cart_item ), $coupon->exclude_product_ids ) || in_array( $cart_item['data']->get_parent(), $coupon->exclude_product_ids ) ) { + if ( sizeof( $coupon_excluded_product_ids = wcs_get_coupon_property( $coupon, 'exclude_product_ids' ) ) > 0 ) { + if ( in_array( wcs_get_canonical_product_id( $cart_item ), $coupon_excluded_product_ids ) || in_array( $cart_item['data']->get_parent(), $coupon_excluded_product_ids ) ) { $this_item_is_discounted = false; } } // Specific categories excluded from the discount - if ( sizeof( $coupon->exclude_product_categories ) > 0 ) { - if ( sizeof( array_intersect( $product_cats, $coupon->exclude_product_categories ) ) > 0 ) { + if ( sizeof( $coupon_excluded_product_categories = wcs_get_coupon_property( $coupon, 'exclude_product_categories' ) ) > 0 ) { + if ( sizeof( array_intersect( $product_cats, $coupon_excluded_product_categories ) ) > 0 ) { $this_item_is_discounted = false; } } @@ -371,9 +378,10 @@ class WC_Subscriptions_Coupon { foreach ( $applied_coupons as $coupon_code ) { - $coupon = new WC_Coupon( $coupon_code ); + $coupon = new WC_Coupon( $coupon_code ); + $coupon_type = wcs_get_coupon_property( $coupon, 'type' ); - if ( in_array( $coupon->type, array( 'recurring_fee', 'recurring_percent' ) ) ) { // always apply coupons to their specific calculation case + if ( in_array( $coupon_type, array( 'recurring_fee', 'recurring_percent' ) ) ) { // always apply coupons to their specific calculation case if ( 'recurring_total' == $calculation_type ) { $coupons_to_reapply[] = $coupon_code; } elseif ( 'none' == $calculation_type && ! WC_Subscriptions_Cart::all_cart_items_have_free_trial() ) { // sometimes apply recurring coupons to initial total @@ -381,7 +389,7 @@ class WC_Subscriptions_Coupon { } else { self::$removed_coupons[] = $coupon_code; } - } elseif ( ( 'none' == $calculation_type ) && ! in_array( $coupon->type, array( 'recurring_fee', 'recurring_percent' ) ) ) { // apply all coupons to the first payment + } elseif ( ( 'none' == $calculation_type ) && ! in_array( $coupon_type, array( 'recurring_fee', 'recurring_percent' ) ) ) { // apply all coupons to the first payment $coupons_to_reapply[] = $coupon_code; } else { self::$removed_coupons[] = $coupon_code; @@ -437,7 +445,7 @@ class WC_Subscriptions_Coupon { foreach ( $coupons as $coupon ) { - if ( $coupon->code == $code ) { + if ( wcs_get_coupon_property( $coupon, 'code' ) == $code ) { if ( $subscription = wcs_get_subscription( $subscription_id ) ) { $subtotal = $subscription->get_subtotal(); @@ -453,9 +461,9 @@ class WC_Subscriptions_Coupon { /** * Check if a product is a renewal order line item (rather than a "susbscription") - to pick up non-subsbcription products added a subscription manually * - * @param int $product_id - * @param array $cart_item - * @param WC_Cart $cart The WooCommerce cart object. + * @param int|WC_Product $product_id + * @param array $cart_item + * @param WC_Cart $cart The WooCommerce cart object. * @return boolean whether a product is a renewal order line item * @since 2.0.10 */ @@ -464,16 +472,13 @@ class WC_Subscriptions_Coupon { $is_subscription_line_item = false; if ( is_object( $product_id ) ) { - $product = $product_id; - $product_id = $product->id; - } elseif ( is_numeric( $product_id ) ) { - $product = wc_get_product( $product_id ); + $product_id = $product_id->get_id(); } if ( ! empty( $cart_item['subscription_renewal'] ) ) { if ( $subscription = wcs_get_subscription( $cart_item['subscription_renewal']['subscription_id'] ) ) { foreach ( $subscription->get_items() as $item ) { - $item_product_id = ( $item['variation_id'] ) ? $item['variation_id'] : $item['product_id']; + $item_product_id = wcs_get_canonical_product_id( $item ); if ( ! empty( $item_product_id ) && $item_product_id == $product_id ) { $is_subscription_line_item = true; } @@ -484,6 +489,24 @@ class WC_Subscriptions_Coupon { return apply_filters( 'woocommerce_is_subscription_renewal_line_item', $is_subscription_line_item, $product_id, $cart_item ); } + /** + * Add our pseudo renewal coupon types to the list of supported types. + * + * @param array $coupon_types + * @return array supported coupon types + * @since 2.2 + */ + public static function add_pseudo_coupon_types( $coupon_types ) { + return array_merge( + $coupon_types, + array( + 'renewal_percent' => __( 'Renewal % discount', 'woocommerce-subscriptions' ), + 'renewal_fee' => __( 'Renewal product discount', 'woocommerce-subscriptions' ), + 'renewal_cart' => __( 'Renewal cart discount', 'woocommerce-subscriptions' ), + ) + ); + } + /* Deprecated */ /** @@ -494,9 +517,7 @@ class WC_Subscriptions_Coupon { public static function apply_subscription_discount( $original_price, $cart_item, $cart ) { _deprecated_function( __METHOD__, '2.0.10', 'Have moved to filtering on "woocommerce_coupon_get_discount_amount" to return discount amount. See: '. __CLASS__ .'::get_discount_amount()' ); - $product_id = ( $cart_item['data']->is_type( array( 'subscription_variation' ) ) ) ? $cart_item['data']->variation_id : $cart_item['data']->id; - - if ( ! WC_Subscriptions_Product::is_subscription( $product_id ) ) { + if ( ! WC_Subscriptions_Product::is_subscription( $cart_item['data'] ) ) { return $original_price; } @@ -506,15 +527,17 @@ class WC_Subscriptions_Coupon { if ( ! empty( $cart->applied_coupons ) ) { - foreach ( $cart->applied_coupons as $code ) { + foreach ( $cart->applied_coupons as $coupon_code ) { - $coupon = new WC_Coupon( $code ); + $coupon = new WC_Coupon( $coupon_code ); + $coupon_type = wcs_get_coupon_property( $coupon, 'type' ); + $coupon_amount = wcs_get_coupon_property( $coupon, 'amount' ); // Pre 2.5 is_valid_for_product() does not use wc_get_product_coupon_types() if ( WC_Subscriptions::is_woocommerce_pre( '2.5' ) ) { $is_valid_for_product = true; } else { - $is_valid_for_product = $coupon->is_valid_for_product( wc_get_product( $product_id ), $cart_item ); + $is_valid_for_product = $coupon->is_valid_for_product( $cart_item['data'], $cart_item ); } if ( $coupon->apply_before_tax() && $coupon->is_valid() && $is_valid_for_product ) { @@ -523,8 +546,8 @@ class WC_Subscriptions_Coupon { // Apply recurring fee discounts to recurring total calculations if ( 'recurring_total' == $calculation_type ) { - $apply_recurring_coupon = ( 'recurring_fee' == $coupon->type ) ? true : false; - $apply_recurring_percent_coupon = ( 'recurring_percent' == $coupon->type ) ? true : false; + $apply_recurring_coupon = ( 'recurring_fee' == $coupon_type ) ? true : false; + $apply_recurring_percent_coupon = ( 'recurring_percent' == $coupon_type ) ? true : false; } if ( 'none' == $calculation_type ) { @@ -532,71 +555,71 @@ class WC_Subscriptions_Coupon { // If all items have a free trial we don't need to apply recurring coupons to the initial total if ( ! WC_Subscriptions_Cart::all_cart_items_have_free_trial() ) { - if ( 'recurring_fee' == $coupon->type ) { + if ( 'recurring_fee' == $coupon_type ) { $apply_initial_coupon = true; } - if ( 'recurring_percent' == $coupon->type ) { + if ( 'recurring_percent' == $coupon_type ) { $apply_initial_percent_coupon = true; } } // Apply sign-up discounts to initial total - if ( ! empty( $cart_item['data']->subscription_sign_up_fee ) ) { + if ( WC_Subscriptions_Product::get_sign_up_fee( $cart_item['data'] ) > 0 ) { - if ( 'sign_up_fee' == $coupon->type ) { + if ( 'sign_up_fee' == $coupon_type ) { $apply_initial_coupon = true; } - if ( 'sign_up_fee_percent' == $coupon->type ) { + if ( 'sign_up_fee_percent' == $coupon_type ) { $apply_initial_percent_coupon = true; } - $calculation_price = $cart_item['data']->subscription_sign_up_fee; + $calculation_price = WC_Subscriptions_Product::get_sign_up_fee( $cart_item['data'] ); } } if ( $apply_recurring_coupon || $apply_initial_coupon ) { - $discount_amount = ( $calculation_price < $coupon->amount ) ? $calculation_price : $coupon->amount; + $discount_amount = ( $calculation_price < $coupon_amount ) ? $calculation_price : $coupon_amount; // Recurring coupons only apply when there is no free trial (carts can have a mix of free trial and non free trial items) - if ( $apply_initial_coupon && 'recurring_fee' == $coupon->type && ! empty( $cart_item['data']->subscription_trial_length ) ) { + if ( $apply_initial_coupon && 'recurring_fee' == $coupon_type && WC_Subscriptions_Product::get_trial_length( $cart_item['data'] ) > 0 ) { $discount_amount = 0; } $cart->discount_cart = $cart->discount_cart + ( $discount_amount * $cart_item['quantity'] ); - $cart = self::increase_coupon_discount_amount( $cart, $coupon->code, $discount_amount * $cart_item['quantity'] ); + $cart = self::increase_coupon_discount_amount( $cart, $coupon_code, $discount_amount * $cart_item['quantity'] ); $price = $price - $discount_amount; } elseif ( $apply_recurring_percent_coupon ) { - $discount_amount = round( ( $calculation_price / 100 ) * $coupon->amount, WC()->cart->dp ); + $discount_amount = round( ( $calculation_price / 100 ) * $coupon_amount, WC()->cart->dp ); $cart->discount_cart = $cart->discount_cart + ( $discount_amount * $cart_item['quantity'] ); - $cart = self::increase_coupon_discount_amount( $cart, $coupon->code, $discount_amount * $cart_item['quantity'] ); + $cart = self::increase_coupon_discount_amount( $cart, $coupon_code, $discount_amount * $cart_item['quantity'] ); $price = $price - $discount_amount; } elseif ( $apply_initial_percent_coupon ) { // Recurring coupons only apply when there is no free trial (carts can have a mix of free trial and non free trial items) - if ( 'recurring_percent' == $coupon->type && empty( $cart_item['data']->subscription_trial_length ) ) { - $amount_to_discount = $cart_item['data']->subscription_price; + if ( 'recurring_percent' == $coupon_type && 0 == WC_Subscriptions_Product::get_trial_length( $cart_item['data'] ) ) { + $amount_to_discount = WC_Subscriptions_Product::get_price( $cart_item['data'] ); } else { $amount_to_discount = 0; } // Sign up fee coupons only apply to sign up fees - if ( 'sign_up_fee_percent' == $coupon->type ) { - $amount_to_discount = $cart_item['data']->subscription_sign_up_fee; + if ( 'sign_up_fee_percent' == $coupon_type ) { + $amount_to_discount = WC_Subscriptions_Product::get_sign_up_fee( $cart_item['data'] ); } - $discount_amount = round( ( $amount_to_discount / 100 ) * $coupon->amount, WC()->cart->dp ); + $discount_amount = round( ( $amount_to_discount / 100 ) * $coupon_amount, WC()->cart->dp ); $cart->discount_cart = $cart->discount_cart + $discount_amount * $cart_item['quantity']; - $cart = self::increase_coupon_discount_amount( $cart, $coupon->code, $discount_amount * $cart_item['quantity'] ); + $cart = self::increase_coupon_discount_amount( $cart, $coupon_code, $discount_amount * $cart_item['quantity'] ); $price = $price - $discount_amount; } diff --git a/includes/class-wc-subscriptions-email.php b/includes/class-wc-subscriptions-email.php index 41e8d4c..57b5e40 100644 --- a/includes/class-wc-subscriptions-email.php +++ b/includes/class-wc-subscriptions-email.php @@ -104,7 +104,7 @@ class WC_Subscriptions_Email { public static function send_cancelled_email( $subscription ) { WC()->mailer(); - if ( $subscription->has_status( array( 'pending-cancel', 'cancelled' ) ) && 'true' !== get_post_meta( $subscription->id, '_cancelled_email_sent', true ) ) { + if ( $subscription->has_status( array( 'pending-cancel', 'cancelled' ) ) && 'true' !== get_post_meta( $subscription->get_id(), '_cancelled_email_sent', true ) ) { do_action( 'cancelled_subscription_notification', $subscription ); } } @@ -157,7 +157,7 @@ class WC_Subscriptions_Email { */ public static function maybe_remove_woocommerce_email( $order_id ) { if ( wcs_order_contains_renewal( $order_id ) || wcs_order_contains_switch( $order_id ) ) { - remove_action( current_filter(), array( 'WC_Emails', 'send_transactional_email' ) ); + self::detach_woocommerce_transactional_email(); } } @@ -170,7 +170,7 @@ class WC_Subscriptions_Email { */ public static function maybe_reattach_woocommerce_email( $order_id ) { if ( wcs_order_contains_renewal( $order_id ) || wcs_order_contains_switch( $order_id ) ) { - add_action( current_filter(), array( 'WC_Emails', 'send_transactional_email' ), 10, 10 ); + self::attach_woocommerce_transactional_email(); } } @@ -185,7 +185,7 @@ class WC_Subscriptions_Email { public static function renewal_order_emails_available( $available_emails ) { global $theorder; - if ( wcs_order_contains_renewal( $theorder->id ) ) { + if ( wcs_order_contains_renewal( wcs_get_objects_property( $theorder, 'id' ) ) ) { $available_emails = array( 'new_renewal_order', 'customer_processing_renewal_order', @@ -252,7 +252,11 @@ class WC_Subscriptions_Email { add_filter( 'woocommerce_order_is_download_permitted', $show_download_links_callback ); add_filter( 'woocommerce_order_is_paid', $show_purchase_note_callback ); - $items_table = $order->email_order_items_table( $args ); + if ( function_exists( 'wc_get_email_order_items' ) ) { // WC 3.0+ + $items_table = wc_get_email_order_items( $order ); + } else { + $items_table = $order->email_order_items_table( $args ); + } remove_filter( 'woocommerce_order_is_download_permitted', $show_download_links_callback ); remove_filter( 'woocommerce_order_is_paid', $show_purchase_note_callback ); @@ -300,6 +304,45 @@ class WC_Subscriptions_Email { ); } + /** + * Detach WC transactional emails from a specific hook. + * + * @param string Optional. The action hook or filter to detach WC core's transactional emails from. Defaults to the current filter. + * @param int Optional. The priority the function runs on. Default 10. + * @since 2.2.3 + */ + public static function detach_woocommerce_transactional_email( $hook = '', $priority = 10 ) { + + if ( '' === $hook ) { + $hook = current_filter(); + } + + // Emails might be queued or sent immediately so we need to remove both + remove_action( $hook, array( 'WC_Emails', 'queue_transactional_email' ), $priority ); + remove_action( $hook, array( 'WC_Emails', 'send_transactional_email' ), $priority ); + } + + /** + * Attach WC transactional emails to a specific hook. + * + * @param string Optional. The action hook or filter to attach WC core's transactional emails to. Defaults to the current filter. + * @param int Optional. The priority the function should run on. Default 10. + * @param int Optional. The number of arguments the function accepts. Default 10. + * @since 2.2.3 + */ + public static function attach_woocommerce_transactional_email( $hook = '', $priority = 10, $accepted_args = 10 ) { + + if ( '' === $hook ) { + $hook = current_filter(); + } + + if ( false === WC_Subscriptions::is_woocommerce_pre( '3.0' ) && apply_filters( 'woocommerce_defer_transactional_emails', true ) ) { + add_action( $hook, array( 'WC_Emails', 'queue_transactional_email' ), $priority, $accepted_args ); + } else { + add_action( $hook, array( 'WC_Emails', 'send_transactional_email' ), $priority, $accepted_args ); + } + } + /** * Init the mailer and call the notifications for the current filter. * diff --git a/includes/class-wc-subscriptions-manager.php b/includes/class-wc-subscriptions-manager.php index c61aa8f..9fa0a9e 100644 --- a/includes/class-wc-subscriptions-manager.php +++ b/includes/class-wc-subscriptions-manager.php @@ -88,7 +88,7 @@ class WC_Subscriptions_Manager { } // If the subscription is using manual payments, the gateway isn't active or it manages scheduled payments - if ( 0 == $subscription->get_total() || $subscription->is_manual() || empty( $subscription->payment_method ) || ! $subscription->payment_method_supports( 'gateway_scheduled_payments' ) ) { + if ( 0 == $subscription->get_total() || $subscription->is_manual() || '' != $subscription->get_payment_method() || ! $subscription->payment_method_supports( 'gateway_scheduled_payments' ) ) { // Always put the subscription on hold in case something goes wrong while trying to process renewal $subscription->update_status( 'on-hold', _x( 'Subscription renewal payment due:', 'used in order note as reason for why subscription status changed', 'woocommerce-subscriptions' ) ); @@ -114,9 +114,13 @@ class WC_Subscriptions_Manager { } else { if ( $subscription->is_manual() ) { - do_action( 'woocommerce_generated_manual_renewal_order', $renewal_order->id ); + do_action( 'woocommerce_generated_manual_renewal_order', wcs_get_objects_property( $renewal_order, 'id' ) ); } else { - $renewal_order->set_payment_method( $subscription->payment_gateway ); + $renewal_order->set_payment_method( wc_get_payment_gateway_by_order( $subscription ) ); // We need to pass the payment gateway instance to be compatible with WC < 3.0, only WC 3.0+ supports passing the string name + + if ( is_callable( array( $renewal_order, 'save' ) ) ) { // WC 3.0+ We need to save the payment method. + $renewal_order->save(); + } } } } @@ -426,7 +430,7 @@ class WC_Subscriptions_Manager { } $args = wp_parse_args( $args, array( - 'start_date' => get_gmt_from_date( $order->order_date ), + 'start_date' => wcs_get_datetime_utc_string( wcs_get_objects_property( $order, 'date_created' ) ), // get_date_created() can return null, but if it does, we have an error anyway 'expiry_date' => '', ) ); @@ -439,7 +443,7 @@ class WC_Subscriptions_Manager { $product = wc_get_product( $product_id ); // Check if there is already a subscription for this product and order - $subscriptions = wcs_get_subscriptions( array( 'order_id' => $order->id, 'product_id' => $product_id ) ); + $subscriptions = wcs_get_subscriptions( array( 'order_id' => wcs_get_objects_property( $order, 'id' ), 'product_id' => $product_id ) ); if ( ! empty( $subscriptions ) ) { @@ -447,7 +451,7 @@ class WC_Subscriptions_Manager { // Make sure the subscription is pending and start date is set correctly wp_update_post( array( - 'ID' => $subscription->id, + 'ID' => $subscription->get_id(), 'post_status' => 'wc-' . apply_filters( 'woocommerce_default_subscription_status', 'pending' ), 'post_date' => get_date_from_gmt( $args['start_date'] ), ) ); @@ -456,11 +460,11 @@ class WC_Subscriptions_Manager { $subscription = wcs_create_subscription( array( 'start_date' => get_date_from_gmt( $args['start_date'] ), - 'order_id' => $order->id, + 'order_id' => wcs_get_objects_property( $order, 'id' ), 'customer_id' => $order->get_user_id(), 'billing_period' => $billing_period, 'billing_interval' => $billing_interval, - 'customer_note' => $order->customer_note, + 'customer_note' => wcs_get_objects_property( $order, 'customer_note' ), ) ); if ( is_wp_error( $subscription ) ) { @@ -488,8 +492,13 @@ class WC_Subscriptions_Manager { } // Make sure some of the meta is copied form the order rather than the store's defaults - update_post_meta( $subscription->id, '_order_currency', $order->order_currency ); - update_post_meta( $subscription->id, '_prices_include_tax', $order->prices_include_tax ); + if ( wcs_get_objects_property( $order, 'prices_include_tax' ) ) { + $prices_include_tax = 'yes'; + } else { + $prices_include_tax = 'no'; + } + update_post_meta( $subscription->get_id(), '_order_currency', wcs_get_objects_property( $order, 'currency' ) ); + update_post_meta( $subscription->get_id(), '_prices_include_tax', $prices_include_tax ); // Adding a new subscription so set the expiry date/time from the order date if ( ! empty( $args['expiry_date'] ) ) { @@ -562,7 +571,7 @@ class WC_Subscriptions_Manager { _deprecated_argument( __METHOD__, '1.2', 'The "suspend" status value is deprecated. Use "on-hold"' ); } - foreach ( wcs_get_subscriptions_for_order( $order->id, array( 'order_type' => 'parent' ) ) as $subscription_id => $subscription ) { + foreach ( wcs_get_subscriptions_for_order( wcs_get_objects_property( $order, 'id' ), array( 'order_type' => 'parent' ) ) as $subscription_id => $subscription ) { switch ( $status ) { case 'cancelled' : @@ -575,7 +584,7 @@ class WC_Subscriptions_Manager { break; case 'failed' : _deprecated_argument( __METHOD__, '2.0', 'The "failed" status value is deprecated.' ); - self::failed_subscription_signup( $order->user_id, $subscription_id ); + self::failed_subscription_signup( $order->get_user_id(), $subscription_id ); break; case 'pending' : _deprecated_argument( __METHOD__, '2.0', 'The "pending" status value is deprecated.' ); @@ -612,7 +621,7 @@ class WC_Subscriptions_Manager { $subscription = wcs_get_subscription_from_key( $subscription_key ); if ( isset( $new_subscription_details['status'] ) && 'deleted' == $new_subscription_details['status'] ) { - wp_delete_post( $subscription->id ); + wp_delete_post( $subscription->get_id() ); } else { // There is no direct analog for this in WC_Subscription, so we need to call the deprecated method self::update_subscription( $subscription_key, $new_subscription_details ); @@ -647,14 +656,14 @@ class WC_Subscriptions_Manager { if ( isset( $new_subscription_details['status'] ) && 'deleted' == $new_subscription_details['status'] ) { - wp_delete_post( $subscription->id ); + wp_delete_post( $subscription->get_id() ); } else { foreach ( $new_subscription_details as $meta_key => $meta_value ) { switch ( $meta_key ) { case 'start_date' : - $subscription->update_dates( array( 'start' => $meta_value ) ); + $subscription->update_dates( array( 'date_created' => $meta_value ) ); break; case 'trial_expiry_date' : $subscription->update_dates( array( 'trial_end' => $meta_value ) ); @@ -669,7 +678,7 @@ class WC_Subscriptions_Manager { _deprecated_argument( __METHOD__, '2.0', 'The "completed_payments" meta value is deprecated. Create a renewal order with completed payment instead.' ); break; case 'suspension_count' : - $subscription->update_suspension_count( $subscription->suspension_count + 1 ); + $subscription->set_suspension_count( $subscription->get_suspension_count() + 1 ); break; } } @@ -738,7 +747,7 @@ class WC_Subscriptions_Manager { public static function clear_users_subscriptions_from_order( $order ) { foreach ( wcs_get_subscriptions_for_order( $order, array( 'order_type' => 'parent' ) ) as $subscription_id => $subscription ) { - wp_delete_post( $subscription->id ); + wp_delete_post( $subscription->get_id() ); } do_action( 'cleared_users_subscriptions_from_order', $order ); @@ -757,7 +766,7 @@ class WC_Subscriptions_Manager { // delete subscription foreach ( wcs_get_subscriptions_for_order( $post_id, array( 'order_type' => 'parent' ) ) as $subscription ) { - wp_trash_post( $subscription->id ); + wp_trash_post( $subscription->get_id() ); } } } @@ -828,7 +837,7 @@ class WC_Subscriptions_Manager { if ( ! empty( $subscriptions ) ) { foreach ( $subscriptions as $subscription ) { - wp_delete_post( $subscription->id ); + wp_delete_post( $subscription->get_id() ); } } } @@ -1253,7 +1262,7 @@ class WC_Subscriptions_Manager { public static function get_last_payment_date( $subscription_key, $user_id = '', $type = 'mysql' ) { _deprecated_function( __METHOD__, '2.0', 'WC_Subscription::get_date( "last_payment" )' ); $subscription = wcs_get_subscription_from_key( $subscription_key ); - $last_payment_date = ( 'mysql' == $type ) ? $subscription->get_date( 'last_payment' ) : $subscription->get_time( 'last_payment' ); + $last_payment_date = ( 'mysql' == $type ) ? $subscription->get_date( 'last_order_date_created' ) : $subscription->get_time( 'last_order_date_created' ); return apply_filters( 'woocommerce_subscription_last_payment_date', $last_payment_date, $subscription_key, $user_id, $type ); } @@ -1537,7 +1546,7 @@ class WC_Subscriptions_Manager { $order = new WC_Order( $order ); } - update_user_meta( $order->user_id, 'paying_customer', 1 ); + update_user_meta( $order->get_user_id(), 'paying_customer', 1 ); } /** @@ -1557,8 +1566,8 @@ class WC_Subscriptions_Manager { $order = new WC_Order( $order ); } - if ( $order->user_id > 0 ) { - update_user_meta( $order->user_id, 'paying_customer', 0 ); + if ( $order->get_user_id() > 0 ) { + update_user_meta( $order->get_user_id(), 'paying_customer', 0 ); } } @@ -1822,7 +1831,7 @@ class WC_Subscriptions_Manager { } // If the subscription is using manual payments, the gateway isn't active or it manages scheduled payments - if ( 0 == $subscription->get_total() || $subscription->is_manual() || empty( $subscription->payment_method ) || ! $subscription->payment_method_supports( 'gateway_scheduled_payments' ) ) { + if ( 0 == $subscription->get_total() || $subscription->is_manual() || '' != $subscription->get_payment_method() || ! $subscription->payment_method_supports( 'gateway_scheduled_payments' ) ) { $subscription->update_status( 'on-hold', _x( 'Subscription renewal payment due:', 'used in order note as reason for why subscription status changed', 'woocommerce-subscriptions' ) ); } } @@ -2091,7 +2100,7 @@ class WC_Subscriptions_Manager { // Log failure on order // translators: placeholder is subscription ID - $subscription->order->add_order_note( sprintf( __( 'Failed sign-up for subscription %s.', 'woocommerce-subscriptions' ), $subscription->id ) ); + $subscription->get_parent()->add_order_note( sprintf( __( 'Failed sign-up for subscription %s.', 'woocommerce-subscriptions' ), $subscription->get_id() ) ); do_action( 'subscription_sign_up_failed', $user_id, $subscription_key ); } @@ -2127,7 +2136,7 @@ class WC_Subscriptions_Manager { $subscription->update_status( 'cancelled' ); } - wp_trash_post( $subscription->id, true ); + wp_trash_post( $subscription->get_id(), true ); do_action( 'subscription_trashed', $user_id, $subscription_key ); } @@ -2160,7 +2169,7 @@ class WC_Subscriptions_Manager { $subscription->update_status( 'cancelled' ); } - wp_delete_post( $subscription->id, true ); + wp_delete_post( $subscription->get_id(), true ); do_action( 'subscription_deleted', $user_id, $subscription_key, $subscription, $item ); } diff --git a/includes/class-wc-subscriptions-order.php b/includes/class-wc-subscriptions-order.php index 87cbb52..b986c20 100644 --- a/includes/class-wc-subscriptions-order.php +++ b/includes/class-wc-subscriptions-order.php @@ -238,7 +238,7 @@ class WC_Subscriptions_Order { $item['name'] = $item['order_item_name']; $item['type'] = $item['order_item_type']; - $item['item_meta'] = $order->get_item_meta( $item['order_item_id'] ); + $item['item_meta'] = wc_get_order_item_meta( $item['order_item_id'], '' ); // Put meta into item array if ( is_array( $item['item_meta'] ) ) { @@ -345,7 +345,7 @@ class WC_Subscriptions_Order { } elseif ( is_array( $order->order_custom_fields ) && isset( $order->order_custom_fields[ '_' . $meta_key ][0] ) && $order->order_custom_fields[ '_' . $meta_key ][0] ) { // < WC 2.1+ $meta_value = maybe_unserialize( $order->order_custom_fields[ '_' . $meta_key ][0] ); } else { - $meta_value = get_post_meta( $order->id, '_' . $meta_key, true ); + $meta_value = get_post_meta( wcs_get_objects_property( $order, 'id' ), '_' . $meta_key, true ); if ( empty( $meta_value ) ) { $meta_value = $default; @@ -482,12 +482,12 @@ class WC_Subscriptions_Order { // Do we need to activate a subscription? if ( $order_completed && ! $subscription->has_status( wcs_get_subscription_ended_statuses() ) && ! $subscription->has_status( 'active' ) ) { - $new_start_date_offset = current_time( 'timestamp', true ) - $subscription->get_time( 'start' ); + $new_start_date_offset = current_time( 'timestamp', true ) - $subscription->get_time( 'date_created' ); // if the payment has been processed more than an hour after the order was first created, let's update the dates on the subscription to account for that, because it may have even been processed days after it was first placed if ( $new_start_date_offset > HOUR_IN_SECONDS ) { - $dates = array( 'start' => current_time( 'mysql', true ) ); + $dates = array( 'date_created' => current_time( 'mysql', true ) ); if ( WC_Subscriptions_Synchroniser::subscription_contains_synced_product( $subscription ) ) { @@ -495,15 +495,15 @@ class WC_Subscriptions_Order { $next_payment = $subscription->get_time( 'next_payment' ); // if either there is a free trial date or a next payment date that falls before now, we need to recalculate all the sync'd dates - if ( ( $trial_end > 0 && $trial_end < wcs_date_to_time( $dates['start'] ) ) || ( $next_payment > 0 && $next_payment < wcs_date_to_time( $dates['start'] ) ) ) { + if ( ( $trial_end > 0 && $trial_end < wcs_date_to_time( $dates['date_created'] ) ) || ( $next_payment > 0 && $next_payment < wcs_date_to_time( $dates['date_created'] ) ) ) { foreach ( $subscription->get_items() as $item ) { $product_id = wcs_get_canonical_product_id( $item ); if ( WC_Subscriptions_Synchroniser::is_product_synced( $product_id ) ) { - $dates['trial_end'] = WC_Subscriptions_Product::get_trial_expiration_date( $product_id, $dates['start'] ); - $dates['next_payment'] = WC_Subscriptions_Synchroniser::calculate_first_payment_date( $product_id, 'mysql', $dates['start'] ); - $dates['end'] = WC_Subscriptions_Product::get_expiration_date( $product_id, $dates['start'] ); + $dates['trial_end'] = WC_Subscriptions_Product::get_trial_expiration_date( $product_id, $dates['date_created'] ); + $dates['next_payment'] = WC_Subscriptions_Synchroniser::calculate_first_payment_date( $product_id, 'mysql', $dates['date_created'] ); + $dates['end'] = WC_Subscriptions_Product::get_expiration_date( $product_id, $dates['date_created'] ); break; } } @@ -624,7 +624,7 @@ class WC_Subscriptions_Order { */ public static function order_needs_payment( $needs_payment, $order, $valid_order_statuses ) { - if ( wcs_order_contains_subscription( $order ) && in_array( $order->status, $valid_order_statuses ) && 0 == $order->get_total() && false === $needs_payment && self::get_recurring_total( $order ) > 0 && 'yes' !== get_option( WC_Subscriptions_Admin::$option_prefix . '_turn_off_automatic_payments', 'no' ) ) { + if ( false === $needs_payment && 0 == $order->get_total() && in_array( $order->get_status(), $valid_order_statuses ) && wcs_order_contains_subscription( $order ) && self::get_recurring_total( $order ) > 0 && 'yes' !== get_option( WC_Subscriptions_Admin::$option_prefix . '_turn_off_automatic_payments', 'no' ) ) { $needs_payment = true; } @@ -658,22 +658,6 @@ class WC_Subscriptions_Order { } } - /** - * Wrapper around @see WC_Order::get_order_currency() for versions of WooCommerce prior to 2.1. - * - * @since version 1.4.9 - */ - public static function get_order_currency( $order ) { - - if ( method_exists( $order, 'get_order_currency' ) ) { - $order_currency = $order->get_order_currency(); - } else { - $order_currency = get_woocommerce_currency(); - } - - return $order_currency; - } - /** * Add admin dropdown for order types to Woocommerce -> Orders screen * @@ -946,14 +930,14 @@ class WC_Subscriptions_Order { if ( wcs_order_contains_subscription( $order, array( 'parent', 'renewal' ) ) ) { - $subscriptions = wcs_get_subscriptions_for_order( $order->id, array( 'order_type' => array( 'parent', 'renewal' ) ) ); + $subscriptions = wcs_get_subscriptions_for_order( wcs_get_objects_property( $order, 'id' ), array( 'order_type' => array( 'parent', 'renewal' ) ) ); foreach ( $subscriptions as $subscription ) { $latest_order = $subscription->get_last_order(); - if ( $order->id == $latest_order && $subscription->has_status( 'pending-cancel' ) && $subscription->can_be_updated_to( 'cancelled' ) ) { + if ( wcs_get_objects_property( $order, 'id' ) == $latest_order && $subscription->has_status( 'pending-cancel' ) && $subscription->can_be_updated_to( 'cancelled' ) ) { // translators: $1: opening link tag, $2: order number, $3: closing link tag - $subscription->update_status( 'cancelled', wp_kses( sprintf( __( 'Subscription cancelled for refunded order %1$s#%2$s%3$s.', 'woocommerce-subscriptions' ), sprintf( '', esc_url( wcs_get_edit_post_link( $order->id ) ) ), $order->get_order_number(), '' ), array( 'a' => array( 'href' => true ) ) ) ); + $subscription->update_status( 'cancelled', wp_kses( sprintf( __( 'Subscription cancelled for refunded order %1$s#%2$s%3$s.', 'woocommerce-subscriptions' ), sprintf( '', esc_url( wcs_get_edit_post_link( wcs_get_objects_property( $order, 'id' ) ) ) ), $order->get_order_number(), '' ), array( 'a' => array( 'href' => true ) ) ) ); } } } @@ -1032,7 +1016,11 @@ class WC_Subscriptions_Order { * @since 2.1.3 */ public static function maybe_autocomplete_order( $new_order_status, $order_id ) { + + // Guard against infinite loops in WC 3.0+ where woocommerce_payment_complete_order_status is called while instantiating WC_Order objects + remove_filter( 'woocommerce_payment_complete_order_status', __METHOD__, 10 ); $order = wc_get_order( $order_id ); + add_filter( 'woocommerce_payment_complete_order_status', __METHOD__, 10, 2 ); if ( 'processing' == $new_order_status && $order->get_total() == 0 && wcs_order_contains_subscription( $order ) ) { @@ -1350,22 +1338,24 @@ class WC_Subscriptions_Order { public static function get_recurring_discount_total( $order, $product_id = '' ) { _deprecated_function( __METHOD__, '2.0', 'the value for the subscription object rather than the value on the original order. The value is stored against the subscription since Subscriptions v2.0 as an order can be used to create multiple different subscriptions with different discounts, so use the subscription object' ); - $ex_tax = ( $order->tax_display_cart === 'excl' && $order->display_totals_ex_tax ) ? true : false; + $ex_tax = ( 'excl' === get_option( 'woocommerce_tax_display_cart' ) && wcs_get_objects_property( $order, 'display_totals_ex_tax' ) ) ? true : false; $recurring_discount_cart = (double) self::get_recurring_discount_cart( $order ); $recurring_discount_cart_tax = (double) self::get_recurring_discount_cart_tax( $order ); $recurring_discount_total = 0; - if ( ! $order->order_version || version_compare( $order->order_version, '2.3.7', '<' ) ) { + $order_version = wcs_get_objects_property( $order, 'version' ); + + if ( '' === $order_version || version_compare( $order_version, '2.3.7', '<' ) ) { // Backwards compatible total calculation - totals were not stored consistently in old versions. if ( $ex_tax ) { - if ( $order->prices_include_tax ) { + if ( wcs_get_objects_property( $order, 'prices_include_tax' ) ) { $recurring_discount_total = $recurring_discount_cart - $recurring_discount_cart_tax; } else { $recurring_discount_total = $recurring_discount_cart; } } else { - if ( $order->prices_include_tax ) { + if ( wcs_get_objects_property( $order, 'prices_include_tax' ) ) { $recurring_discount_total = $recurring_discount_cart; } else { $recurring_discount_total = $recurring_discount_cart + $recurring_discount_cart_tax; @@ -1629,13 +1619,13 @@ class WC_Subscriptions_Order { // Find the billing period discount for all recurring items if ( empty( $product_id ) ) { - $billing_period = $subscription->billing_period; + $billing_period = $subscription->get_billing_period(); break; } else { // We want the billing period for a specific item (so we need to find if this subscription contains that item) foreach ( $subscription->get_items() as $line_item ) { if ( wcs_get_canonical_product_id( $line_item ) == $product_id ) { - $billing_period = $subscription->billing_period; + $billing_period = $subscription->get_billing_period(); break 2; } } @@ -1664,13 +1654,13 @@ class WC_Subscriptions_Order { // Find the billing interval for all recurring items if ( empty( $product_id ) ) { - $billing_interval = $subscription->billing_interval; + $billing_interval = $subscription->get_billing_interval(); break; } else { // We want the billing interval for a specific item (so we need to find if this subscription contains that item) foreach ( $subscription->get_items() as $line_item ) { if ( wcs_get_canonical_product_id( $line_item ) == $product_id ) { - $billing_interval = $subscription->billing_interval; + $billing_interval = $subscription->get_billing_interval(); break 2; } } @@ -1802,11 +1792,11 @@ class WC_Subscriptions_Order { } if ( $subscription = self::get_matching_subscription( $order, $product_id ) ) { - $last_payment_date = $subscription->get_date( 'last_payment' ); - } elseif ( isset( $order->paid_date ) ) { - $last_payment_date = get_gmt_from_date( $order->paid_date ); + $last_payment_date = $subscription->get_date( 'last_order_date_created' ); + } elseif ( null !== ( $last_payment_date = wcs_get_objects_property( $order, 'date_paid' ) ) ) { + $last_payment_date = $last_payment_date->date( 'Y-m-d H:i:s' ); } else { - $last_payment_date = $order->post->post_date; + $last_payment_date = wcs_get_datetime_utc_string( wcs_get_objects_property( $order, 'date_created' ) ); // get_date_created() can return null, but if it does, we have an error anyway } return $last_payment_date; @@ -2024,11 +2014,22 @@ class WC_Subscriptions_Order { // No payments have been recorded yet if ( 0 == $subscription->get_completed_payment_count() ) { - $subscription->update_dates( array( 'start' => current_time( 'mysql', true ) ) ); + $subscription->update_dates( array( 'date_created' => current_time( 'mysql', true ) ) ); $subscription->payment_complete(); } } } } + + /** + * Wrapper around @see WC_Order::get_order_currency() for versions of WooCommerce prior to 2.1. + * + * @since version 1.4.9 + * @deprecated 2.2.0 + */ + public static function get_order_currency( $order ) { + _deprecated_function( __METHOD__, '2.2.0', 'wcs_get_objects_property( $order, "currency" ) or $order->get_currency()' ); + return wcs_get_objects_property( $order, 'currency' ); + } } WC_Subscriptions_Order::init(); diff --git a/includes/class-wc-subscriptions-product.php b/includes/class-wc-subscriptions-product.php index a0f6301..4debda1 100644 --- a/includes/class-wc-subscriptions-product.php +++ b/includes/class-wc-subscriptions-product.php @@ -45,6 +45,9 @@ class WC_Subscriptions_Product { // Make sure a subscriptions price is included in subscription variations when required add_filter( 'woocommerce_available_variation', __CLASS__ . '::maybe_set_variations_price_html', 10, 3 ); + // Sync variable product min/max prices with WC 3.0 + add_action( 'woocommerce_variable_product_sync_data', __CLASS__ . '::variable_subscription_product_sync', 10 ); + // Prevent users from deleting subscription products - it causes too many problems with WooCommerce and other plugins add_filter( 'user_has_cap', __CLASS__ . '::user_can_not_delete_subscription', 10, 3 ); @@ -71,23 +74,6 @@ class WC_Subscriptions_Product { add_action( 'wp_ajax_wcs_update_one_time_shipping', __CLASS__ . '::maybe_update_one_time_shipping_on_variation_edits' ); } - /** - * Returns the sign up fee (including tax) by filtering the products price used in - * @see WC_Product::get_price_including_tax( $qty ) - * - * @return string - */ - public static function get_sign_up_fee_including_tax( $product, $qty = 1 ) { - - add_filter( 'woocommerce_get_price', __CLASS__ . '::get_sign_up_fee_filter', 100, 2 ); - - $sign_up_fee_including_tax = $product->get_price_including_tax( $qty ); - - remove_filter( 'woocommerce_get_price', __CLASS__ . '::get_sign_up_fee_filter', 100, 2 ); - - return $sign_up_fee_including_tax; - } - /** * Returns the raw sign up fee value (ignoring tax) by filtering the products price. * @@ -98,23 +84,6 @@ class WC_Subscriptions_Product { return self::get_sign_up_fee( $product ); } - /** - * Returns the sign up fee (excluding tax) by filtering the products price used in - * @see WC_Product::get_price_excluding_tax( $qty ) - * - * @return string - */ - public static function get_sign_up_fee_excluding_tax( $product, $qty = 1 ) { - - add_filter( 'woocommerce_get_price', __CLASS__ . '::get_sign_up_fee_filter', 100, 2 ); - - $sign_up_fee_excluding_tax = $product->get_price_excluding_tax( $qty ); - - remove_filter( 'woocommerce_get_price', __CLASS__ . '::get_sign_up_fee_filter', 100, 2 ); - - return $sign_up_fee_excluding_tax; - } - /** * Override the WooCommerce "Add to Cart" text with "Sign Up Now". * @@ -134,25 +103,20 @@ class WC_Subscriptions_Product { * Checks a given product to determine if it is a subscription. * When the received arg is a product object, make sure it is passed into the filter intact in order to retain any properties added on the fly. * - * @param int|WC_Product $product_id Either a product object or product's post ID. + * @param int|WC_Product $product Either a product object or product's post ID. * @since 1.0 */ - public static function is_subscription( $product_id ) { + public static function is_subscription( $product ) { $is_subscription = false; - if ( is_object( $product_id ) ) { - $product = $product_id; - $product_id = $product->id; - } elseif ( is_numeric( $product_id ) ) { - $product = wc_get_product( $product_id ); - } + $product = self::maybe_get_product_instance( $product ); if ( is_object( $product ) && $product->is_type( array( 'subscription', 'subscription_variation', 'variable-subscription' ) ) ) { $is_subscription = true; } - return apply_filters( 'woocommerce_is_subscription', $is_subscription, $product_id, $product ); + return apply_filters( 'woocommerce_is_subscription', $is_subscription, $product->get_id(), $product ); } /** @@ -174,9 +138,10 @@ class WC_Subscriptions_Product { $child_product = wc_get_product( $child_product_id ); - $child_price = $child_product->get_price(); - $sign_up_fee = $child_product->get_sign_up_fee(); - $has_trial = ( self::get_trial_length( $child_product ) > 0 ) ? true : false; + $tax_display_mode = get_option( 'woocommerce_tax_display_shop' ); + $child_price = 'incl' == $tax_display_mode ? wcs_get_price_including_tax( $child_product, array( 'price' => $child_product->get_price() ) ) : wcs_get_price_excluding_tax( $child_product, array( 'price' => $child_product->get_price() ) ); + $sign_up_fee = 'incl' == $tax_display_mode ? wcs_get_price_including_tax( $child_product, array( 'price' => self::get_sign_up_fee( $child_product ) ) ) : wcs_get_price_excluding_tax( $child_product, array( 'price' => self::get_sign_up_fee( $child_product ) ) ); + $has_trial = ( self::get_trial_length( $child_product ) > 0 ) ? true : false; // Make sure we have the *real* price (i.e. total initial payment) if ( $has_trial && $sign_up_fee > 0 ) { @@ -209,7 +174,7 @@ class WC_Subscriptions_Product { } if ( sizeof( $child_prices ) > 1 ) { - $price .= $grouped_product->get_price_html_from_text(); + $price .= wcs_get_price_html_from_text( $grouped_product ); } $price .= wc_price( $min_price ); @@ -247,9 +212,7 @@ class WC_Subscriptions_Product { public static function get_price_string( $product, $include = array() ) { global $wp_locale; - if ( ! is_object( $product ) ) { - $product = WC_Subscriptions::get_product( $product ); - } + $product = self::maybe_get_product_instance( $product ); if ( ! self::is_subscription( $product ) ) { return; @@ -284,22 +247,22 @@ class WC_Subscriptions_Product { if ( isset( $include['price'] ) ) { $price = $include['price']; } else { - $price = $product->get_price_excluding_tax( 1, $include['price'] ); + $price = wcs_get_price_excluding_tax( $product, array( 'price' => $include['price'] ) ); } if ( true === $include['sign_up_fee'] ) { - $sign_up_fee = self::get_sign_up_fee_excluding_tax( $product ); + $sign_up_fee = wcs_get_price_excluding_tax( $product, array( 'price' => WC_Subscriptions_Product::get_sign_up_fee( $product ) ) ); } } else { // Add Tax if ( isset( $include['price'] ) ) { $price = $include['price']; } else { - $price = $product->get_price_including_tax(); + $price = wcs_get_price_including_tax( $product ); } if ( true === $include['sign_up_fee'] ) { - $sign_up_fee = self::get_sign_up_fee_including_tax( $product ); + $sign_up_fee = wcs_get_price_including_tax( $product, array( 'price' => WC_Subscriptions_Product::get_sign_up_fee( $product ) ) ); } } } else { @@ -421,18 +384,43 @@ class WC_Subscriptions_Product { * @since 1.0 */ public static function get_price( $product ) { + return apply_filters( 'woocommerce_subscriptions_product_price', self::get_meta_data( $product, 'subscription_price', 0 ), self::maybe_get_product_instance( $product ) ); + } - if ( ! is_object( $product ) ) { - $product = WC_Subscriptions::get_product( $product ); - } + /** + * Returns the sale price per period for a product if it is a subscription. + * + * @param mixed $product A WC_Product object or product ID + * @return float + * @since 2.2.0 + */ + public static function get_regular_price( $product, $context = 'view' ) { - if ( ! self::is_subscription( $product ) || ( ! isset( $product->subscription_price ) && empty( $product->product_custom_fields['_subscription_price'][0] ) ) ) { - $subscription_price = ''; + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + $regular_price = $product->regular_price; } else { - $subscription_price = isset( $product->subscription_price ) ? $product->subscription_price : $product->product_custom_fields['_subscription_price'][0]; + $regular_price = $product->get_regular_price( $context ); } - return apply_filters( 'woocommerce_subscriptions_product_price', $subscription_price, $product ); + return apply_filters( 'woocommerce_subscriptions_product_regular_price', $regular_price, $product ); + } + + /** + * Returns the regular price per period for a product if it is a subscription. + * + * @param mixed $product A WC_Product object or product ID + * @return float + * @since 2.2.0 + */ + public static function get_sale_price( $product, $context = 'view' ) { + + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + $sale_price = $product->sale_price; + } else { + $sale_price = $product->get_sale_price( $context ); + } + + return apply_filters( 'woocommerce_subscriptions_product_sale_price', $sale_price, $product ); } /** @@ -443,18 +431,7 @@ class WC_Subscriptions_Product { * @since 1.0 */ public static function get_period( $product ) { - - if ( ! is_object( $product ) ) { - $product = WC_Subscriptions::get_product( $product ); - } - - if ( ! self::is_subscription( $product ) || ( ! isset( $product->subscription_period ) && empty( $product->product_custom_fields['_subscription_period'][0] ) ) ) { - $subscription_period = ''; - } else { - $subscription_period = isset( $product->subscription_period ) ? $product->subscription_period : $product->product_custom_fields['_subscription_period'][0]; - } - - return apply_filters( 'woocommerce_subscriptions_product_period', $subscription_period, $product ); + return apply_filters( 'woocommerce_subscriptions_product_period', self::get_meta_data( $product, 'subscription_period', '' ), self::maybe_get_product_instance( $product ) ); } /** @@ -465,18 +442,7 @@ class WC_Subscriptions_Product { * @since 1.0 */ public static function get_interval( $product ) { - - if ( ! is_object( $product ) ) { - $product = WC_Subscriptions::get_product( $product ); - } - - if ( ! self::is_subscription( $product ) || ( ! isset( $product->subscription_period_interval ) && empty( $product->product_custom_fields['_subscription_period_interval'][0] ) ) ) { - $subscription_period_interval = 1; - } else { - $subscription_period_interval = isset( $product->subscription_period_interval ) ? $product->subscription_period_interval : $product->product_custom_fields['_subscription_period_interval'][0]; - } - - return apply_filters( 'woocommerce_subscriptions_product_period_interval', $subscription_period_interval, $product ); + return apply_filters( 'woocommerce_subscriptions_product_period_interval', self::get_meta_data( $product, 'subscription_period_interval', 0 ), self::maybe_get_product_instance( $product ) ); } /** @@ -487,18 +453,7 @@ class WC_Subscriptions_Product { * @since 1.0 */ public static function get_length( $product ) { - - if ( ! is_object( $product ) ) { - $product = WC_Subscriptions::get_product( $product ); - } - - if ( ! self::is_subscription( $product ) || ( ! isset( $product->subscription_length ) && empty( $product->product_custom_fields['_subscription_length'][0] ) ) ) { - $subscription_length = 0; - } else { - $subscription_length = isset( $product->subscription_length ) ? $product->subscription_length : $product->product_custom_fields['_subscription_length'][0]; - } - - return apply_filters( 'woocommerce_subscriptions_product_length', $subscription_length, $product ); + return apply_filters( 'woocommerce_subscriptions_product_length', self::get_meta_data( $product, 'subscription_length', 0 ), self::maybe_get_product_instance( $product ) ); } /** @@ -509,18 +464,7 @@ class WC_Subscriptions_Product { * @since 1.0 */ public static function get_trial_length( $product ) { - - if ( ! is_object( $product ) ) { - $product = WC_Subscriptions::get_product( $product ); - } - - if ( ! self::is_subscription( $product ) || ( ! isset( $product->subscription_trial_length ) && empty( $product->product_custom_fields['_subscription_trial_length'][0] ) ) ) { - $subscription_trial_length = 0; - } else { - $subscription_trial_length = isset( $product->subscription_trial_length ) ? $product->subscription_trial_length : $product->product_custom_fields['_subscription_trial_length'][0]; - } - - return apply_filters( 'woocommerce_subscriptions_product_trial_length', $subscription_trial_length, $product ); + return apply_filters( 'woocommerce_subscriptions_product_trial_length', self::get_meta_data( $product, 'subscription_trial_length', 0 ), self::maybe_get_product_instance( $product ) ); } /** @@ -531,20 +475,7 @@ class WC_Subscriptions_Product { * @since 1.2 */ public static function get_trial_period( $product ) { - - if ( ! is_object( $product ) ) { - $product = WC_Subscriptions::get_product( $product ); - } - - if ( ! self::is_subscription( $product ) ) { - $subscription_trial_period = ''; - } elseif ( ! isset( $product->subscription_trial_period ) && empty( $product->product_custom_fields['_subscription_trial_period'][0] ) ) { // Backward compatibility - $subscription_trial_period = self::get_period( $product ); - } else { - $subscription_trial_period = isset( $product->subscription_trial_period ) ? $product->subscription_trial_period : $product->product_custom_fields['_subscription_trial_period'][0]; - } - - return apply_filters( 'woocommerce_subscriptions_product_trial_period', $subscription_trial_period, $product ); + return apply_filters( 'woocommerce_subscriptions_product_trial_period', self::get_meta_data( $product, 'subscription_trial_period', '' ), self::maybe_get_product_instance( $product ) ); } /** @@ -555,18 +486,7 @@ class WC_Subscriptions_Product { * @since 1.0 */ public static function get_sign_up_fee( $product ) { - - if ( ! is_object( $product ) ) { - $product = WC_Subscriptions::get_product( $product ); - } - - if ( ! self::is_subscription( $product ) || ( ! isset( $product->subscription_sign_up_fee ) && empty( $product->product_custom_fields['_subscription_sign_up_fee'][0] ) ) ) { - $subscription_sign_up_fee = 0; - } else { - $subscription_sign_up_fee = isset( $product->subscription_sign_up_fee ) ? $product->subscription_sign_up_fee : $product->product_custom_fields['_subscription_sign_up_fee'][0]; - } - - return apply_filters( 'woocommerce_subscriptions_product_sign_up_fee', $subscription_sign_up_fee, $product ); + return apply_filters( 'woocommerce_subscriptions_product_sign_up_fee', self::get_meta_data( $product, 'subscription_sign_up_fee', 0 ), self::maybe_get_product_instance( $product ) ); } /** @@ -735,7 +655,7 @@ class WC_Subscriptions_Product { */ public static function maybe_set_variations_price_html( $variation_details, $variable_product, $variation ) { - if ( 'variable-subscription' == $variable_product->product_type && empty( $variation_details['price_html'] ) ) { + if ( $variable_product->is_type( 'variable-subscription' ) && empty( $variation_details['price_html'] ) ) { $variation_details['price_html'] = '' . $variation->get_price_html() . ''; } @@ -759,9 +679,9 @@ class WC_Subscriptions_Product { $post_id = $args[2]; $product = wc_get_product( $post_id ); - if ( false !== $product && 'trash' == $product->post->post_status && $product->is_type( array( 'subscription', 'variable-subscription', 'subscription_variation' ) ) ) { + if ( false !== $product && 'trash' == wcs_get_objects_property( $product, 'post_status' ) && $product->is_type( array( 'subscription', 'variable-subscription', 'subscription_variation' ) ) ) { - $product_id = ( $product->is_type( 'subscription_variation' ) ) ? $product->post->ID : $post_id; + $product_id = ( $product->is_type( 'subscription_variation' ) ) ? $product->get_parent_id() : $post_id; $subscription_count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM `{$wpdb->prefix}woocommerce_order_itemmeta` WHERE `meta_key` = '_product_id' AND `meta_value` = %d", $product_id ) ); @@ -820,6 +740,17 @@ class WC_Subscriptions_Product { return $actions; } + /** + * Check whether a product has one-time shipping only. + * + * @param mixed $product A WC_Product object or product ID + * @return bool True if the product requires only one time shipping, false otherwise. + * @since 2.2.0 + */ + public static function needs_one_time_shipping( $product ) { + return apply_filters( 'woocommerce_subscriptions_product_needs_one_time_shipping', 'yes' === self::get_meta_data( $product, 'subscription_one_time_shipping', 'no' ), self::maybe_get_product_instance( $product ) ); + } + /** * Hooked to the @see 'wp_scheduled_delete' WP-Cron scheduled task to rename the '_wp_trash_meta_time' meta value * as '_wc_trash_meta_time'. This is the flag used by WordPress to determine which posts should be automatically @@ -965,14 +896,14 @@ class WC_Subscriptions_Product { continue; } - $variable_product = wc_get_product( $variation_id ); + $variation_product = wc_get_product( $variation_id ); - if ( $variable_product->subscription_trial_length > 0 ) { + if ( WC_Subscriptions_Product::get_trial_length( $variation_product ) ) { $is_synced_or_has_trial = true; break; } - if ( WC_Subscriptions_Synchroniser::is_syncing_enabled() && ( ( ! is_array( $variable_product->subscription_payment_sync_date ) && $variable_product->subscription_payment_sync_date > 0 ) || ( is_array( $variable_product->subscription_payment_sync_date ) && $variable_product->subscription_payment_sync_date['day'] > 0 ) ) ) { + if ( WC_Subscriptions_Synchroniser::is_product_synced( $variation_product ) ) { $is_synced_or_has_trial = true; break; } @@ -1008,6 +939,102 @@ class WC_Subscriptions_Product { wp_send_json( array( 'one_time_shipping' => $subscription_one_time_shipping ) ); } + /** + * Wrapper to check whether we have a product ID or product and if we have the former, return the later. + * + * @param mixed $product A WC_Product object or product ID + * @return WC_Product + * @since 2.2.0 + */ + private static function maybe_get_product_instance( $product ) { + + if ( ! is_object( $product ) || ! is_a( $product, 'WC_Product' ) ) { + $product = wc_get_product( $product ); + } + + return $product; + } + + /** + * Get a piece of subscription related meta data for a product in a version compatible way. + * + * @param mixed $product A WC_Product object or product ID + * @param string $meta_key The string key for the meta data + * @return float The value of the sign-up fee, or 0 if the product is not a subscription or the subscription has no sign-up fee + * @since 2.2.0 + */ + public static function get_meta_data( $product, $meta_key, $default_value ) { + + $product = self::maybe_get_product_instance( $product ); + + $meta_value = $default_value; + + if ( self::is_subscription( $product ) ) { + + if ( is_callable( array( $product, 'meta_exists' ) ) ) { // WC 3.0 + + $prefixed_key = wcs_maybe_prefix_key( $meta_key ); + + // Only set the meta value when the object has a meta value to workaround ambiguous default return values + if ( $product->meta_exists( $prefixed_key ) ) { + $meta_value = $product->get_meta( $prefixed_key, true ); + } + } elseif ( isset( $product->{$meta_key} ) ) { // WC < 3.0 + $meta_value = $product->{$meta_key}; + } + } + + return $meta_value; + } + + /** + * sync variable product min/max prices with WC 3.0 + * + * @param WC_Product_Variable $product + * @since 2.2.0 + */ + public static function variable_subscription_product_sync( $product ) { + + if ( self::is_subscription( $product ) ) { + + $child_variation_ids = $product->get_visible_children(); + + if ( $child_variation_ids ) { + + $min_max_data = wcs_get_min_max_variation_data( $product, $child_variation_ids ); + + $product->add_meta_data( '_min_price_variation_id', $min_max_data['min']['variation_id'], true ); + $product->add_meta_data( '_max_price_variation_id', $min_max_data['max']['variation_id'], true ); + + $product->add_meta_data( '_min_variation_price', $min_max_data['min']['price'], true ); + $product->add_meta_data( '_max_variation_price', $min_max_data['max']['price'], true ); + $product->add_meta_data( '_min_variation_regular_price', $min_max_data['min']['regular_price'], true ); + $product->add_meta_data( '_max_variation_regular_price', $min_max_data['max']['regular_price'], true ); + $product->add_meta_data( '_min_variation_sale_price', $min_max_data['min']['sale_price'], true ); + $product->add_meta_data( '_max_variation_sale_price', $min_max_data['max']['sale_price'], true ); + + $product->add_meta_data( '_min_variation_period', $min_max_data['min']['period'], true ); + $product->add_meta_data( '_max_variation_period', $min_max_data['max']['period'], true ); + $product->add_meta_data( '_min_variation_period_interval', $min_max_data['min']['interval'], true ); + $product->add_meta_data( '_max_variation_period_interval', $min_max_data['max']['interval'], true ); + + $product->add_meta_data( '_subscription_price', $min_max_data['min']['price'], true ); + $product->add_meta_data( '_subscription_period', $min_max_data['min']['period'], true ); + $product->add_meta_data( '_subscription_period_interval', $min_max_data['min']['interval'], true ); + $product->add_meta_data( '_subscription_sign_up_fee', $min_max_data['subscription']['signup-fee'], true ); + $product->add_meta_data( '_subscription_trial_period', $min_max_data['subscription']['trial_period'], true ); + $product->add_meta_data( '_subscription_trial_length', $min_max_data['subscription']['trial_length'], true ); + $product->add_meta_data( '_subscription_length', $min_max_data['subscription']['length'], true ); + } + } + + return $product; + } + + /************************ + * Deprecated Functions * + ************************/ + /** * If a product is being marked as not purchasable because it is limited and the customer has a subscription, * but the current request is to resubscribe to the subscription, then mark it as purchasable. @@ -1045,7 +1072,7 @@ class WC_Subscriptions_Product { if ( $item['product_id'] == $product_id || $item['variation_id'] == $product_id ) { $subscriptions = wcs_get_subscriptions( array( - 'order_id' => $order->id, + 'order_id' => wcs_get_objects_property( $order, 'id' ), 'product_id' => $product_id, ) ); @@ -1065,6 +1092,28 @@ class WC_Subscriptions_Product { return self::$order_awaiting_payment_for_product[ $product_id ]; } + + /** + * Returns the sign up fee (including tax) by filtering the products price used in + * @see WC_Product::get_price_including_tax( $qty ) + * + * @return string + */ + public static function get_sign_up_fee_including_tax( $product, $qty = 1 ) { + wcs_deprecated_function( __METHOD__, '2.2.0', 'wcs_get_price_including_tax( $product, array( "qty" => $qty, "price" => WC_Subscriptions_Product::get_sign_up_fee( $product ) ) )' ); + return wcs_get_price_including_tax( $product, array( 'qty' => $qty, 'price' => WC_Subscriptions_Product::get_sign_up_fee( $product ) ) ); + } + + /** + * Returns the sign up fee (excluding tax) by filtering the products price used in + * @see WC_Product::get_price_excluding_tax( $qty ) + * + * @return string + */ + public static function get_sign_up_fee_excluding_tax( $product, $qty = 1 ) { + wcs_deprecated_function( __METHOD__, '2.2.0', 'wcs_get_price_excluding_tax( $product, array( "qty" => $qty, "price" => WC_Subscriptions_Product::get_sign_up_fee( $product ) ) )' ); + return wcs_get_price_excluding_tax( $product, array( 'qty' => $qty, 'price' => WC_Subscriptions_Product::get_sign_up_fee( $product ) ) ); + } } WC_Subscriptions_Product::init(); diff --git a/includes/class-wc-subscriptions-renewal-order.php b/includes/class-wc-subscriptions-renewal-order.php index ff8d775..5a10720 100644 --- a/includes/class-wc-subscriptions-renewal-order.php +++ b/includes/class-wc-subscriptions-renewal-order.php @@ -84,14 +84,21 @@ class WC_Subscriptions_Renewal_Order { $order_needed_payment = in_array( $orders_old_status, apply_filters( 'woocommerce_valid_order_statuses_for_payment', array( 'pending', 'on-hold', 'failed' ), $order ) ); if ( $order_completed && $order_needed_payment ) { - $update_post_data = array( - 'ID' => $order_id, - 'post_date' => current_time( 'mysql', 0 ), - 'post_date_gmt' => current_time( 'mysql', 1 ), - ); - wp_update_post( $update_post_data ); - update_post_meta( $order_id, '_paid_date', current_time( 'mysql', true ) ); + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + $update_post_data = array( + 'ID' => $order_id, + 'post_date' => current_time( 'mysql', 0 ), + 'post_date_gmt' => current_time( 'mysql', 1 ), + ); + + wp_update_post( $update_post_data ); + update_post_meta( $order_id, '_paid_date', current_time( 'mysql', true ) ); + } else { + // In WC 3.0, only the paid date prop represents the paid date, the post date isn't used anymore, also the paid date is stored and referenced as a timestamp in site timezone, not a MySQL string + $order->set_date_paid( current_time( 'timestamp', 0 ) ); + $order->save(); + } } foreach ( $subscriptions as $subscription ) { @@ -138,7 +145,7 @@ class WC_Subscriptions_Renewal_Order { $order_number = sprintf( _x( '#%s', 'hash before order number', 'woocommerce-subscriptions' ), $renewal_order->get_order_number() ); // translators: placeholder is order ID - $subscription->add_order_note( sprintf( __( 'Order %s created to record renewal.', 'woocommerce-subscriptions' ), sprintf( '%s ', esc_url( wcs_get_edit_post_link( $renewal_order->id ) ), $order_number ) ) ); + $subscription->add_order_note( sprintf( __( 'Order %s created to record renewal.', 'woocommerce-subscriptions' ), sprintf( '%s ', esc_url( wcs_get_edit_post_link( wcs_get_objects_property( $renewal_order, 'id' ) ) ), $order_number ) ) ); } return $renewal_order; @@ -184,7 +191,13 @@ class WC_Subscriptions_Renewal_Order { ); foreach ( $order_items as $order_item_id => $item ) { - $order_items[ $order_item_id ]['item_meta'] = array_diff_key( $item['item_meta'], $switched_order_item_keys ); + if ( is_callable( array( $item, 'delete_meta_data' ) ) ) { // WC 3.0+ + foreach( $switched_order_item_keys as $switch_meta_key => $value ) { + $item->delete_meta_data( $switch_meta_key ); + } + } else { // WC 2.6 + $order_items[ $order_item_id ]['item_meta'] = array_diff_key( $item['item_meta'], $switched_order_item_keys ); + } } return $order_items; @@ -210,7 +223,7 @@ class WC_Subscriptions_Renewal_Order { $subscription = wcs_get_subscription_from_key( $subscription_key ); $renewal_order = wcs_create_renewal_order( $subscription ); $renewal_order->payment_complete(); - return $renewal_order->id; + return wcs_get_objects_property( $renewal_order, 'id' ); } /** @@ -228,7 +241,7 @@ class WC_Subscriptions_Renewal_Order { _deprecated_function( __METHOD__, '2.0', 'wcs_create_renewal_order( WC_Subscription $subscription )' ); $renewal_order = wcs_create_renewal_order( wcs_get_subscription_from_key( $subscription_key ) ); $renewal_order->update_status( 'failed' ); - return $renewal_order->id; + return wcs_get_objects_property( $renewal_order, 'id' ); } /** @@ -246,7 +259,7 @@ class WC_Subscriptions_Renewal_Order { */ public static function maybe_generate_manual_renewal_order( $user_id, $subscription_key ) { _deprecated_function( __METHOD__, '2.0', __CLASS__ . '::maybe_create_manual_renewal_order( WC_Subscription $subscription )' ); - self::maybe_create_manual_renewal_order( wcs_get_subscription_from_key( $subscription_key ) )->id; + self::maybe_create_manual_renewal_order( wcs_get_subscription_from_key( $subscription_key ) ); } /** @@ -264,7 +277,7 @@ class WC_Subscriptions_Renewal_Order { $parent_order = self::get_parent_order( $renewal_order ); - return ( null === $parent_order ) ? null : $parent_order->id; + return ( null === $parent_order ) ? null : wcs_get_objects_property( $parent_order, 'id' ); } /** @@ -287,10 +300,10 @@ class WC_Subscriptions_Renewal_Order { $subscriptions = wcs_get_subscriptions_for_renewal_order( $renewal_order ); $subscription = array_pop( $subscriptions ); - if ( false === $subscription->order ) { // There is no original order + if ( false == $subscription->get_parent_id() ) { // There is no original order $parent_order = null; } else { - $parent_order = $subscription->order; + $parent_order = $subscription->get_parent(); } return apply_filters( 'woocommerce_subscriptions_parent_order', $parent_order, $renewal_order ); @@ -316,7 +329,7 @@ class WC_Subscriptions_Renewal_Order { $renewal_order_count = count( $all_orders ); // Don't include the initial order (if any) - if ( false !== $subscription->order ) { + if ( $subscription->get_parent_id() ) { $renewal_order_count -= 1; } } else { @@ -426,7 +439,7 @@ class WC_Subscriptions_Renewal_Order { $new_order = wcs_create_renewal_order( $subscription ); } - return $new_order->id; + return wcs_get_objects_property( $new_order, 'id' ); } /** diff --git a/includes/class-wc-subscriptions-switcher.php b/includes/class-wc-subscriptions-switcher.php index 12214c5..ef62804 100644 --- a/includes/class-wc-subscriptions-switcher.php +++ b/includes/class-wc-subscriptions-switcher.php @@ -17,6 +17,9 @@ class WC_Subscriptions_Switcher { */ public static function init() { + // Attach hooks which depend on WooCommerce constants + add_action( 'woocommerce_loaded', __CLASS__ . '::attach_dependant_hooks' ); + // Check if the current request is for switching a subscription and if so, start he switching process add_filter( 'template_redirect', __CLASS__ . '::subscription_switch_handler', 100 ); @@ -36,12 +39,6 @@ class WC_Subscriptions_Switcher { // When creating an order, add meta if it's for switching a subscription add_action( 'woocommerce_checkout_update_order_meta', __CLASS__ . '::add_order_meta', 10, 2 ); - // For order items created as part of a switch, keep a record of the prorated amounts - add_action( 'woocommerce_add_order_item_meta', __CLASS__ . '::add_order_item_meta', 10, 3 ); - - // For subscription items created as part of a switch, keep a record of the relationship between the items - add_action( 'woocommerce_add_subscription_item_meta', __CLASS__ . '::set_subscription_item_meta', 50, 3 ); - // Add a renewal orders section to the Related Orders meta box add_action( 'woocommerce_subscriptions_related_orders_meta_box_rows', __CLASS__ . '::switch_order_meta_box_rows', 10 ); @@ -125,6 +122,28 @@ class WC_Subscriptions_Switcher { add_action( 'woocommerce_review_order_after_shipping', __CLASS__ . '::maybe_unset_free_trial' ); } + /** + * Attach WooCommerce version dependent hooks + * + * @since 2.2.0 + */ + public static function attach_dependant_hooks() { + + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + + // For order items created as part of a switch, keep a record of the prorated amounts + add_action( 'woocommerce_add_order_item_meta', __CLASS__ . '::add_order_item_meta', 10, 3 ); + + // For subscription items created as part of a switch, keep a record of the relationship between the items + add_action( 'woocommerce_add_subscription_item_meta', __CLASS__ . '::set_subscription_item_meta', 50, 3 ); + + } else { + + // For order items created as part of a switch, keep a record of the prorated amounts + add_action( 'woocommerce_checkout_create_order_line_item', __CLASS__ . '::add_line_item_meta', 10, 4 ); + } + } + /** * Handles the subscription upgrade/downgrade process. * @@ -206,7 +225,7 @@ class WC_Subscriptions_Switcher { foreach ( $subscriptions as $subscription ) { foreach ( $limited_switchable_products as $product ) { - if ( ! $subscription->has_product( $product->id ) ) { + if ( ! $subscription->has_product( $product->get_id() ) ) { continue; } @@ -233,7 +252,7 @@ class WC_Subscriptions_Switcher { // Get the matching item foreach ( $subscription->get_items() as $line_item_id => $line_item ) { - if ( $line_item['product_id'] == $product->id || $line_item['variation_id'] == $product->id ) { + if ( $line_item['product_id'] == $product->get_id() || $line_item['variation_id'] == $product->get_id() ) { $item_id = $line_item_id; $item = $line_item; break; @@ -403,7 +422,7 @@ class WC_Subscriptions_Switcher { */ public static function print_switch_link( $item_id, $item, $subscription ) { - if ( 'shop_subscription' !== $subscription->order_type || ! self::can_item_be_switched_by_user( $item, $subscription ) ) { + if ( wcs_is_order( $subscription ) || 'shop_subscription' !== $subscription->get_type() || ! self::can_item_be_switched_by_user( $item, $subscription ) ) { return; } @@ -431,10 +450,10 @@ class WC_Subscriptions_Switcher { $additional_query_args = array(); // Grouped product - if ( 0 !== $product->post->post_parent ) { - $switch_url = get_permalink( $product->post->post_parent ); + if ( wcs_get_objects_property( $product, 'parent_id' ) ) { + $switch_url = get_permalink( wcs_get_objects_property( $product, 'parent_id' ) ); } else { - $switch_url = get_permalink( $product->id ); + $switch_url = get_permalink( $product->get_id() ); if ( ! empty( $_GET ) && is_product() ) { $product_variations = $product->get_variation_attributes(); @@ -442,7 +461,7 @@ class WC_Subscriptions_Switcher { } } - $switch_url = self::add_switch_query_args( $subscription->id, $item_id, $switch_url, $additional_query_args ); + $switch_url = self::add_switch_query_args( $subscription->get_id(), $item_id, $switch_url, $additional_query_args ); return apply_filters( 'woocommerce_subscriptions_switch_url', $switch_url, $item_id, $item, $subscription ); } @@ -487,7 +506,7 @@ class WC_Subscriptions_Switcher { $is_product_switchable = false; } - if ( $subscription->has_status( 'active' ) && 0 !== $subscription->get_date( 'last_payment' ) ) { + if ( $subscription->has_status( 'active' ) && 0 !== $subscription->get_date( 'last_order_date_created' ) ) { $is_subscription_switchable = true; } else { $is_subscription_switchable = false; @@ -524,7 +543,7 @@ class WC_Subscriptions_Switcher { $item_can_be_switched = false; - if ( user_can( $user_id, 'switch_shop_subscription', $subscription->id ) && self::can_item_be_switched( $item, $subscription ) ) { + if ( user_can( $user_id, 'switch_shop_subscription', $subscription->get_id() ) && self::can_item_be_switched( $item, $subscription ) ) { $item_can_be_switched = true; } @@ -541,14 +560,17 @@ class WC_Subscriptions_Switcher { */ public static function add_order_meta( $order_id, $posted ) { + $order = wc_get_order( $order_id ); + // delete all the existing subscription switch links before adding new ones - delete_post_meta( $order_id, '_subscription_switch' ); + wcs_delete_objects_property( $order, 'subscription_switch' ); $switches = self::cart_contains_switches(); if ( false !== $switches ) { + foreach ( $switches as $switch_details ) { - add_post_meta( $order_id, '_subscription_switch', $switch_details['subscription_id'] ); + wcs_set_objects_property( $order, 'subscription_switch', $switch_details['subscription_id'] ); } } } @@ -557,16 +579,23 @@ class WC_Subscriptions_Switcher { * To prorate sign-up fee and recurring amounts correctly when the customer switches a subscription multiple times, keep a record of the * amount for each on the order item. * + * @param int $order_item_id The ID of a WC_Order_Item object. + * @param array $cart_item The cart item's data. + * @param string $cart_item_key The hash used to identify the item in the cart * @since 2.0 */ public static function add_order_item_meta( $order_item_id, $cart_item, $cart_item_key ) { + if ( false === WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + _deprecated_function( __METHOD__, '2.2.0 and WooCommerce 3.0.0', __CLASS__ . '::add_order_line_item_meta( $order_item, $cart_item_key, $cart_item )' ); + } + if ( isset( $cart_item['subscription_switch'] ) ) { if ( $switches = self::cart_contains_switches() ) { foreach ( $switches as $switch_item_key => $switch_details ) { if ( $cart_item_key == $switch_item_key ) { - wc_add_order_item_meta( $order_item_id, '_switched_subscription_sign_up_fee_prorated', ( isset( WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_sign_up_fee_prorated ) ? WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_sign_up_fee_prorated : 0 ), true ); - wc_add_order_item_meta( $order_item_id, '_switched_subscription_price_prorated', ( isset( WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_price_prorated ) ? WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_price_prorated : 0 ), true ); + wc_add_order_item_meta( $order_item_id, '_switched_subscription_sign_up_fee_prorated', wcs_get_objects_property( WC()->cart->cart_contents[ $cart_item_key ]['data'], 'subscription_sign_up_fee_prorated', 'single', 0 ), true ); + wc_add_order_item_meta( $order_item_id, '_switched_subscription_price_prorated', wcs_get_objects_property( WC()->cart->cart_contents[ $cart_item_key ]['data'], 'subscription_price_prorated', 'single', 0 ), true ); } } } @@ -582,14 +611,59 @@ class WC_Subscriptions_Switcher { } } + /** + * Store switch related data on the line item on the subscription and switch order. + * + * For subscriptions: items on a new billing schedule are left to be added as new subscriptions, but we also want + * to keep a record of them being a switch, so we do that here. + * + * For orders: to prorate sign-up fee and recurring amounts correctly when the customer switches a subscription + * multiple times, keep a record of the amount for each on the order item. + * + * Attached to WC 3.0+ hooks and uses WC 3.0 methods. + * + * @param WC_Order_Item_Product $order_item + * @param string $cart_item_key The hash used to identify the item in the cart + * @param array $cart_item The cart item's data. + * @param WC_Order $order The order or subscription object to which the line item relates + * @since 2.2.0 + */ + public static function add_line_item_meta( $order_item, $cart_item_key, $cart_item, $order ) { + if ( isset( $cart_item['subscription_switch'] ) ) { + if ( $switches = self::cart_contains_switches() ) { + foreach ( $switches as $switch_item_key => $switch_details ) { + if ( $cart_item_key == $switch_item_key ) { + + if ( wcs_is_subscription( $order ) ) { + $order_item->add_meta_data( '_switched_subscription_item_id', $switch_details['item_id'] ); + } else { + $sign_up_fee_prorated = WC()->cart->cart_contents[ $cart_item_key ]['data']->get_meta( 'subscription_sign_up_fee_prorated', true ); + $price_prorated = WC()->cart->cart_contents[ $cart_item_key ]['data']->get_meta( 'subscription_price_prorated', true ); + + $order_item->add_meta_data( '_switched_subscription_sign_up_fee_prorated', empty( $sign_up_fee_prorated ) ? 0 : $sign_up_fee_prorated ); + $order_item->add_meta_data( '_switched_subscription_price_prorated', empty( $price_prorated ) ? 0 : $price_prorated ); + } + } + } + } + } + } + /** * Subscription items on a new billing schedule are left to be added as new subscriptions, but we also * want to keep a record of them being a switch, so we do that here. * + * @param int $order_item_id The ID of a WC_Order_Item object. + * @param array $cart_item The cart item's data. + * @param string $cart_item_key The hash used to identify the item in the cart * @since 2.0 */ public static function set_subscription_item_meta( $item_id, $cart_item, $cart_item_key ) { + if ( ! WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + _deprecated_function( __METHOD__, '2.2.0', __CLASS__ . '::add_subscription_line_item_meta( $order_item, $cart_item_key, $cart_item )' ); + } + if ( isset( $cart_item['subscription_switch'] ) ) { if ( $switches = self::cart_contains_switches() ) { foreach ( $switches as $switch_item_key => $switch_details ) { @@ -643,7 +717,7 @@ class WC_Subscriptions_Switcher { $next_payment_timestamp = $subscription->get_time( 'end' ); } - if ( $cart_item['data']->subscription_period != $subscription->billing_period || $cart_item['data']->subscription_period_interval != $subscription->billing_interval ) { + if ( WC_Subscriptions_Product::get_period( $cart_item['data'] ) != $subscription->get_billing_period() || WC_Subscriptions_Product::get_interval( $cart_item['data'] ) != $subscription->get_billing_interval() ) { $is_different_billing_schedule = true; } else { $is_different_billing_schedule = false; @@ -651,7 +725,7 @@ class WC_Subscriptions_Switcher { // If we haven't calculated a first payment date, fall back to the recurring cart's next payment date if ( 0 == $cart_item['subscription_switch']['first_payment_timestamp'] ) { - $cart_item['subscription_switch']['first_payment_timestamp'] = strtotime( $recurring_cart->next_payment_date ); + $cart_item['subscription_switch']['first_payment_timestamp'] = wcs_date_to_time( $recurring_cart->next_payment_date ); } if ( 0 !== $cart_item['subscription_switch']['first_payment_timestamp'] && $next_payment_timestamp !== $cart_item['subscription_switch']['first_payment_timestamp'] ) { @@ -681,8 +755,45 @@ class WC_Subscriptions_Switcher { if ( $is_single_item_subscription || ( false === $is_different_billing_schedule && false === $is_different_payment_date && false === $is_different_length ) ) { // Add the new item - $item_id = WC_Subscriptions_Checkout::add_cart_item( $subscription, $cart_item, $cart_item_key ); - wc_update_order_item( $item_id, array( 'order_item_type' => 'line_item_pending_switch' ) ); + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + $item_id = WC_Subscriptions_Checkout::add_cart_item( $subscription, $cart_item, $cart_item_key ); + wc_update_order_item( $item_id, array( 'order_item_type' => 'line_item_pending_switch' ) ); + } else { + $item = new WC_Order_Item_Pending_Switch; + $item->legacy_values = $cart_item['data']; // @deprecated For legacy actions. + $item->legacy_cart_item_key = $cart_item_key; // @deprecated For legacy actions. + $item->set_props( array( + 'quantity' => $cart_item['quantity'], + 'variation' => $cart_item['variation'], + 'subtotal' => $cart_item['line_subtotal'], + 'total' => $cart_item['line_total'], + 'subtotal_tax' => $cart_item['line_subtotal_tax'], + 'total_tax' => $cart_item['line_tax'], + 'taxes' => $cart_item['line_tax_data'], + ) ); + + if ( ! empty( $cart_item['data'] ) ) { + $product = $cart_item['data']; + $item->set_props( array( + 'name' => $product->get_name(), + 'tax_class' => $product->get_tax_class(), + 'product_id' => $product->is_type( 'variation' ) ? $product->get_parent_id() : $product->get_id(), + 'variation_id' => $product->is_type( 'variation' ) ? $product->get_id() : 0, + ) ); + } + + if ( WC_Subscriptions_Product::get_trial_length( wcs_get_canonical_product_id( $cart_item ) ) > 0 ) { + $item->add_meta_data( '_has_trial', 'true' ); + } + + do_action( 'woocommerce_checkout_create_order_line_item', $item, $cart_item_key, $cart_item, $subscription ); + + $subscription->add_item( $item ); + + // The subscription is not saved automatically, we need to call 'save' becaused we added an item + $subscription->save(); + $item_id = $item->get_id(); + } $switched_item_data['add_line_item'] = $item_id; @@ -695,19 +806,19 @@ class WC_Subscriptions_Switcher { } } - $switch_order_data[ $subscription->id ]['switches'][ $cart_item['subscription_switch']['order_line_item_id'] ] = $switched_item_data; + $switch_order_data[ $subscription->get_id() ]['switches'][ $cart_item['subscription_switch']['order_line_item_id'] ] = $switched_item_data; // If the old subscription has just one item, we can safely update its billing schedule if ( $is_single_item_subscription ) { if ( $is_different_billing_schedule ) { - $switch_order_data[ $subscription->id ]['billing_schedule']['_billing_period'] = $cart_item['data']->subscription_period; - $switch_order_data[ $subscription->id ]['billing_schedule']['_billing_interval'] = absint( $cart_item['data']->subscription_period_interval ); + $switch_order_data[ $subscription->get_id() ]['billing_schedule']['_billing_period'] = WC_Subscriptions_Product::get_period( $cart_item['data'] ); + $switch_order_data[ $subscription->get_id() ]['billing_schedule']['_billing_interval'] = absint( WC_Subscriptions_Product::get_interval( $cart_item['data'] ) ); } $updated_dates = array(); - if ( '1' == $cart_item['data']->subscription_length || ( 0 != $recurring_cart->end_date && gmdate( 'Y-m-d H:i:s', $cart_item['subscription_switch']['first_payment_timestamp'] ) >= $recurring_cart->end_date ) ) { + if ( '1' == WC_Subscriptions_Product::get_length( $cart_item['data'] ) || ( 0 != $recurring_cart->end_date && gmdate( 'Y-m-d H:i:s', $cart_item['subscription_switch']['first_payment_timestamp'] ) >= $recurring_cart->end_date ) ) { // Delete the next payment date. $updated_dates['next_payment'] = 0; } else if ( $is_different_payment_date ) { @@ -720,7 +831,7 @@ class WC_Subscriptions_Switcher { if ( ! empty( $updated_dates ) ) { $subscription->validate_date_updates( $updated_dates ); - $switch_order_data[ $subscription->id ]['dates']['update'] = $updated_dates; + $switch_order_data[ $subscription->get_id() ]['dates']['update'] = $updated_dates; } } @@ -730,10 +841,16 @@ class WC_Subscriptions_Switcher { $new_shipping_line_items = array(); // Keep a record of the subscription shipping total. Adding shipping methods will cause a new shipping total to be set, we'll need to set it back after. - $subscription_shipping_total = $subscription->order_shipping; + $subscription_shipping_total = $subscription->get_total_shipping(); WC_Subscriptions_Checkout::add_shipping( $subscription, $recurring_cart ); + if ( ! WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + // We must save the subscription, we need the Shipping method saved + // otherwise the ID is bogus (new:1) and we need it. + $subscription->save(); + } + // Set all new shipping methods to shipping_pending_switch line items foreach ( $subscription->get_shipping_methods() as $shipping_line_item_id => $shipping_meta ) { @@ -743,9 +860,13 @@ class WC_Subscriptions_Switcher { } } - $subscription->set_total( $subscription_shipping_total, 'shipping' ); + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + $subscription->set_total( $subscription_shipping_total, 'shipping' ); + } else { + $subscription->set_shipping_total( $subscription_shipping_total ); + } - $switch_order_data[ $subscription->id ]['shipping_line_items'] = $new_shipping_line_items; + $switch_order_data[ $subscription->get_id() ]['shipping_line_items'] = $new_shipping_line_items; } } @@ -755,13 +876,13 @@ class WC_Subscriptions_Switcher { $switch_orders = wcs_get_switch_orders_for_subscription( $subscription_id ); foreach ( $switch_orders as $switch_order_id => $switch_order ) { - if ( $order->id !== $switch_order_id && in_array( $switch_order->get_status(), apply_filters( 'woocommerce_valid_order_statuses_for_payment', array( 'pending', 'failed', 'on-hold' ), $switch_order ) ) ) { + if ( wcs_get_objects_property( $order, 'id' ) !== $switch_order_id && in_array( $switch_order->get_status(), apply_filters( 'woocommerce_valid_order_statuses_for_payment', array( 'pending', 'failed', 'on-hold' ), $switch_order ) ) ) { $switch_order->update_status( 'cancelled', sprintf( __( 'Switch order cancelled due to a new switch order being created #%s.', 'woocommerce-subscriptions' ), $order->get_order_number() ) ); } } } - update_post_meta( $order_id, '_subscription_switch_data', $switch_order_data ); + wcs_set_objects_property( $order, 'subscription_switch_data', $switch_order_data ); } catch ( Exception $e ) { // There was an error updating the subscription, roll back and delete pending order for switch @@ -786,12 +907,12 @@ class WC_Subscriptions_Switcher { } // Then zero the order_shipping total so we have a clean slate to add to - $subscription->order_shipping = 0; + $subscription->set_total_shipping( 0 ); WC_Subscriptions_Checkout::add_shipping( $subscription, $recurring_cart ); // Now update subscription object order_shipping to reflect updated values so it doesn't stay 0 - $subscription->order_shipping = get_post_meta( $subscription->id, '_order_shipping', true ); + $subscription->order_shipping = get_post_meta( $subscription->get_id(), '_order_shipping', true ); } /** @@ -842,24 +963,26 @@ class WC_Subscriptions_Switcher { // Select the orders which switched item/s from this subscription $orders = wcs_get_switch_orders_for_subscription( $post->ID ); - foreach ( $orders as $order ) { - $orders[ $order->id ]->relationship = __( 'Switch Order', 'woocommerce-subscriptions' ); + foreach ( $orders as $order_id => $order ) { + wcs_set_objects_property( $order, 'relationship', __( 'Switch Order', 'woocommerce-subscriptions' ), 'set_prop_only' ); } // Select the subscriptions which had item/s switched to this subscription by its parent order if ( ! empty( $post->post_parent ) ) { - $switched_ids = get_post_meta( $post->post_parent, '_subscription_switch' ); + $switched_ids = wcs_get_objects_property( wc_get_order( $post->post_parent ), 'subscription_switch', 'multiple' ); } // On the Edit Order screen, show any subscriptions with items switched by this order } else { - $switched_ids = get_post_meta( $post->ID, '_subscription_switch', false ); + $switched_ids = wcs_get_objects_property( wc_get_order( $post->ID ), 'subscription_switch', 'multiple' ); } - foreach ( $switched_ids as $subscription_id ) { - $subscription = wcs_get_subscription( $subscription_id ); - $subscription->relationship = __( 'Switched Subscription', 'woocommerce-subscriptions' ); - $orders[ $subscription_id ] = $subscription; + if ( is_array( $switched_ids ) ) { + foreach ( $switched_ids as $subscription_id ) { + $subscription = wcs_get_subscription( $subscription_id ); + wcs_set_objects_property( $subscription, 'relationship', __( 'Switched Subscription', 'woocommerce-subscriptions' ), 'set_prop_only' ); + $orders[ $subscription_id ] = $subscription; + } } foreach ( $orders as $order ) { @@ -908,7 +1031,7 @@ class WC_Subscriptions_Switcher { */ public static function cart_contains_switch_for_product( $product ) { - $product_id = ( is_object( $product ) ) ? $product->id : $product; + $product_id = ( is_object( $product ) ) ? $product->get_id() : $product; $switch_items = self::cart_contains_switches(); $switch_product_ids = array(); @@ -920,10 +1043,12 @@ class WC_Subscriptions_Switcher { $switch_product = wc_get_product( wcs_get_order_items_product_id( $switch_item_details['item_id'] ) ); // If the switch is for a grouped product, we need to check the other products grouped with this one - if ( 0 !== $product->post->post_parent ) { - $switch_product_ids = array_unique( array_merge( $switch_product_ids, wc_get_product( $product->post->post_parent )->get_children() ) ); + if ( wcs_get_objects_property( $product, 'parent_id' ) ) { + $switch_product_ids = array_unique( array_merge( $switch_product_ids, wc_get_product( wcs_get_objects_property( $product, 'parent_id' ) )->get_children() ) ); + } elseif ( $switch_product->is_type( 'subscription_variation' ) ) { + $switch_product_ids[] = $switch_product->get_parent_id(); } else { - $switch_product_ids[] = $switch_product->id; + $switch_product_ids[] = $switch_product->get_id(); } } } @@ -1031,7 +1156,7 @@ class WC_Subscriptions_Switcher { $subscription = wcs_get_subscription( $_GET['switch-subscription'] ); // Requesting a switch for someone elses subscription - if ( ! current_user_can( 'switch_shop_subscription', $subscription->id ) ) { + if ( ! current_user_can( 'switch_shop_subscription', $subscription->get_id() ) ) { WC_Subscriptions::add_notice( __( 'You can not switch this subscription. It appears you do not own the subscription.', 'woocommerce-subscriptions' ), 'error' ); WC()->cart->empty_cart( true ); wp_redirect( get_permalink( $subscription['product_id'] ) ); @@ -1043,7 +1168,7 @@ class WC_Subscriptions_Switcher { // Else it's a valid switch $product = wc_get_product( $item['product_id'] ); - $child_products = ( 0 !== $product->post->post_parent ) ? wc_get_product( $product->post->post_parent )->get_children() : array(); + $child_products = ( wcs_get_objects_property( $product, 'parent_id' ) ) ? wc_get_product( wcs_get_objects_property( $product, 'parent_id' ) )->get_children() : array(); if ( $product_id != $item['product_id'] && ! in_array( $item['product_id'], $child_products ) ) { return $cart_item_data; @@ -1057,7 +1182,7 @@ class WC_Subscriptions_Switcher { } $cart_item_data['subscription_switch'] = array( - 'subscription_id' => $subscription->id, + 'subscription_id' => $subscription->get_id(), 'item_id' => absint( $_GET['item'] ), 'next_payment_timestamp' => $next_payment_timestamp, 'upgraded_or_downgraded' => '', @@ -1107,7 +1232,7 @@ class WC_Subscriptions_Switcher { // Default tax inclusive or exclusive to the value set on the subscription. This is for backwards compatibility if ( empty( $tax_inclusive_or_exclusive ) ) { - $tax_inclusive_or_exclusive = ( 'yes' == $subscription->prices_include_tax ) ? 'inclusive_of_tax' : 'exclusive_of_tax'; + $tax_inclusive_or_exclusive = ( $subscription->get_prices_include_tax() ) ? 'inclusive_of_tax' : 'exclusive_of_tax'; } foreach ( $switched_line_items as $switched_line_item_id => $switched_line_item ) { @@ -1118,7 +1243,7 @@ class WC_Subscriptions_Switcher { } // Now add any sign-up fees paid in switch orders - foreach ( wcs_get_switch_orders_for_subscription( $subscription->id ) as $order ) { + foreach ( wcs_get_switch_orders_for_subscription( $subscription->get_id() ) as $order ) { foreach ( $order->get_items() as $order_item_id => $order_item ) { if ( wcs_get_canonical_product_id( $line_item ) == wcs_get_canonical_product_id( $order_item ) ) { @@ -1135,7 +1260,7 @@ class WC_Subscriptions_Switcher { $order_total = $order_item['line_total']; - if ( 'inclusive_of_tax' == $tax_inclusive_or_exclusive && 'yes' == $order->prices_include_tax ) { + if ( 'inclusive_of_tax' == $tax_inclusive_or_exclusive && wcs_get_objects_property( $order, 'prices_include_tax' ) ) { $order_total += $order_item['line_tax']; } @@ -1184,13 +1309,18 @@ class WC_Subscriptions_Switcher { // Set when the first payment and end date for the new subscription should occur WC()->cart->cart_contents[ $cart_item_key ]['subscription_switch']['first_payment_timestamp'] = $cart_item['subscription_switch']['next_payment_timestamp']; - WC()->cart->cart_contents[ $cart_item_key ]['subscription_switch']['end_timestamp'] = $end_timestamp = wcs_date_to_time( WC_Subscriptions_Product::get_expiration_date( $product_id, $subscription->get_date( 'last_payment' ) ) ); + WC()->cart->cart_contents[ $cart_item_key ]['subscription_switch']['end_timestamp'] = $end_timestamp = wcs_date_to_time( WC_Subscriptions_Product::get_expiration_date( $product_id, $subscription->get_date( 'last_order_date_created' ) ) ); // Add any extra sign up fees required to switch to the new subscription if ( 'yes' == $apportion_sign_up_fee ) { + // With WC 3.0, make sure we get a fresh copy of the product's meta to avoid prorating an already prorated sign-up fee + if ( is_callable( array( $product, 'read_meta_data' ) ) ) { + $product->read_meta_data( true ); + } + // Because product add-ons etc. don't apply to sign-up fees, it's safe to use the product's sign-up fee value rather than the cart item's - $sign_up_fee_due = $product->subscription_sign_up_fee; + $sign_up_fee_due = WC_Subscriptions_Product::get_sign_up_fee( $product ); $sign_up_fee_paid = $subscription->get_items_sign_up_fee( $existing_item, 'inclusive_of_tax' ); // Make sure total prorated sign-up fee is prorated across total amount of sign-up fee so that customer doesn't get extra discounts @@ -1198,26 +1328,26 @@ class WC_Subscriptions_Switcher { $sign_up_fee_paid = ( $sign_up_fee_paid * $existing_item['qty'] ) / $cart_item['quantity']; } - WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_sign_up_fee = max( $sign_up_fee_due - $sign_up_fee_paid, 0 ); - WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_sign_up_fee_prorated = WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_sign_up_fee; + wcs_set_objects_property( WC()->cart->cart_contents[ $cart_item_key ]['data'], 'subscription_sign_up_fee', max( $sign_up_fee_due - $sign_up_fee_paid, 0 ), 'set_prop_only' ); + wcs_set_objects_property( WC()->cart->cart_contents[ $cart_item_key ]['data'], 'subscription_sign_up_fee_prorated', WC_Subscriptions_Product::get_sign_up_fee( WC()->cart->cart_contents[ $cart_item_key ]['data'] ), 'set_prop_only' ); } elseif ( 'no' == $apportion_sign_up_fee ) { // $0 the initial sign-up fee - WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_sign_up_fee = 0; + wcs_set_objects_property( WC()->cart->cart_contents[ $cart_item_key ]['data'], 'subscription_sign_up_fee', 0, 'set_prop_only' ); } // Get the current subscription's last payment date - $last_payment_timestamp = $subscription->get_time( 'last_payment' ); - $days_since_last_payment = floor( ( gmdate( 'U' ) - $last_payment_timestamp ) / ( 60 * 60 * 24 ) ); + $last_order_time_created = $subscription->get_time( 'last_order_date_created' ); + $days_since_last_payment = floor( ( gmdate( 'U' ) - $last_order_time_created ) / ( 60 * 60 * 24 ) ); // Get the current subscription's next payment date $next_payment_timestamp = $cart_item['subscription_switch']['next_payment_timestamp']; $days_until_next_payment = ceil( ( $next_payment_timestamp - gmdate( 'U' ) ) / ( 60 * 60 * 24 ) ); // If the subscription contains a synced product and the next payment is actually the first payment, determine the days in the "old" cycle from the subscription object - if ( WC_Subscriptions_Synchroniser::subscription_contains_synced_product( $subscription->id ) && WC_Subscriptions_Synchroniser::calculate_first_payment_date( $product, 'timestamp', $subscription->get_date( 'start' ) ) == $next_payment_timestamp ) { - $days_in_old_cycle = wcs_get_days_in_cycle( $subscription->billing_period, $subscription->billing_interval ); + if ( WC_Subscriptions_Synchroniser::subscription_contains_synced_product( $subscription->get_id() ) && WC_Subscriptions_Synchroniser::calculate_first_payment_date( $product, 'timestamp', $subscription->get_date( 'date_created' ) ) == $next_payment_timestamp ) { + $days_in_old_cycle = wcs_get_days_in_cycle( $subscription->get_billing_period(), $subscription->get_billing_interval() ); } else { // Find the number of days between the two $days_in_old_cycle = $days_until_next_payment + $days_since_last_payment; @@ -1226,7 +1356,7 @@ class WC_Subscriptions_Switcher { // Find the actual recurring amount charged for the old subscription (we need to use the '_recurring_line_total' meta here rather than '_subscription_recurring_amount' because we want the recurring amount to include extra from extensions, like Product Add-ons etc.) $old_recurring_total = $existing_item['line_total']; - if ( 'yes' == $subscription->prices_include_tax || true === $subscription->prices_include_tax ) { // WC_Abstract_Order::$prices_include_tax can be set to true in __construct() or to 'yes' in populate() + if ( $subscription->get_prices_include_tax() ) { $old_recurring_total += $existing_item['line_tax']; } @@ -1235,18 +1365,18 @@ class WC_Subscriptions_Switcher { // Find the price per day for the new subscription's recurring total // If the subscription uses the same billing interval & cycle as the old subscription, - if ( $item_data->subscription_period == $subscription->billing_period && $item_data->subscription_period_interval == $subscription->billing_interval ) { + if ( WC_Subscriptions_Product::get_period( $item_data ) == $subscription->get_billing_period() && WC_Subscriptions_Product::get_interval( $item_data ) == $subscription->get_billing_interval() ) { $days_in_new_cycle = $days_in_old_cycle; // Use $days_in_old_cycle to make sure they're consistent } else { // We need to figure out the price per day for the new subscription based on its billing schedule - $days_in_new_cycle = wcs_get_days_in_cycle( $item_data->subscription_period, $item_data->subscription_period_interval ); + $days_in_new_cycle = wcs_get_days_in_cycle( WC_Subscriptions_Product::get_period( $item_data ), WC_Subscriptions_Product::get_interval( $item_data ) ); } // We need to use the cart items price to ensure we include extras added by extensions like Product Add-ons - $new_price_per_day = ( $item_data->price * $cart_item['quantity'] ) / $days_in_new_cycle; + $new_price_per_day = ( WC_Subscriptions_Product::get_price( $item_data ) * $cart_item['quantity'] ) / $days_in_new_cycle; if ( $old_price_per_day < $new_price_per_day ) { @@ -1279,7 +1409,7 @@ class WC_Subscriptions_Switcher { // If the total amount the customer has paid entitles her to more days at the new price than she has received, there is no gap payment, just shorten the pre-paid term the appropriate number of days if ( $days_since_last_payment < $pre_paid_days ) { - WC()->cart->cart_contents[ $cart_item_key ]['subscription_switch']['first_payment_timestamp'] = $last_payment_timestamp + ( $pre_paid_days * 60 * 60 * 24 ); + WC()->cart->cart_contents[ $cart_item_key ]['subscription_switch']['first_payment_timestamp'] = $last_order_time_created + ( $pre_paid_days * 60 * 60 * 24 ); // If the total amount the customer has paid entitles her to the same or less days at the new price then start the new subscription from today } else { @@ -1292,7 +1422,7 @@ class WC_Subscriptions_Switcher { $extra_to_pay = $days_until_next_payment * ( $new_price_per_day - $old_price_per_day ); // when calculating a subscription with one length (no more next payment date and the end date may have been pushed back) we need to pay for those extra days at the new price per day between the old next payment date and new end date - if ( 1 == $item_data->subscription_length ) { + if ( 1 == WC_Subscriptions_Product::get_length( $item_data ) ) { $days_to_new_end = floor( ( $end_timestamp - $next_payment_timestamp ) / ( 60 * 60 * 24 ) ); if ( $days_to_new_end > 0 ) { @@ -1304,10 +1434,10 @@ class WC_Subscriptions_Switcher { $extra_to_pay = $extra_to_pay / $cart_item['quantity']; // Keep a record of the two separate amounts so we store these and calculate future switch amounts correctly - WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_sign_up_fee_prorated = WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_sign_up_fee; - WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_price_prorated = round( $extra_to_pay, wc_get_price_decimals() ); - WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_sign_up_fee += round( $extra_to_pay, wc_get_price_decimals() ); - + $existing_sign_up_fee = WC_Subscriptions_Product::get_sign_up_fee( WC()->cart->cart_contents[ $cart_item_key ]['data'] ); + wcs_set_objects_property( WC()->cart->cart_contents[ $cart_item_key ]['data'], 'subscription_sign_up_fee_prorated', $existing_sign_up_fee, 'set_prop_only' ); + wcs_set_objects_property( WC()->cart->cart_contents[ $cart_item_key ]['data'], 'subscription_price_prorated', round( $extra_to_pay, wc_get_price_decimals() ), 'set_prop_only' ); + wcs_set_objects_property( WC()->cart->cart_contents[ $cart_item_key ]['data'], 'subscription_sign_up_fee', round( $existing_sign_up_fee + $extra_to_pay, wc_get_price_decimals() ), 'set_prop_only' ); } // If the customer is downgrading, set the next payment date and maybe extend it if downgrades are prorated @@ -1349,7 +1479,7 @@ class WC_Subscriptions_Switcher { $length_remaining = $base_length; } - WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_length = $length_remaining; + wcs_set_objects_property( WC()->cart->cart_contents[ $cart_item_key ]['data'], 'subscription_length', $length_remaining, 'set_prop_only' ); } } } @@ -1364,7 +1494,7 @@ class WC_Subscriptions_Switcher { foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) { if ( isset( $cart_item['subscription_switch']['first_payment_timestamp'] ) && 0 != $cart_item['subscription_switch']['first_payment_timestamp'] ) { - $first_renewal_date = ( '1' != $cart_item['data']->subscription_length ) ? gmdate( 'Y-m-d H:i:s', $cart_item['subscription_switch']['first_payment_timestamp'] ) : 0; + $first_renewal_date = ( '1' != WC_Subscriptions_Product::get_length( $cart_item['data'] ) ) ? gmdate( 'Y-m-d H:i:s', $cart_item['subscription_switch']['first_payment_timestamp'] ) : 0; } } @@ -1386,19 +1516,19 @@ class WC_Subscriptions_Switcher { $end_timestamp = WC()->cart->cart_contents[ $cart_item_key ]['subscription_switch']['end_timestamp']; // if the subscription is length 1 and prorated, we want to use the prorated the next payment date as the end date - if ( 1 == $cart_item['data']->subscription_length && 0 !== $next_payment_time && isset( $cart_item['subscription_switch']['recurring_payment_prorated'] ) ) { + if ( 1 == WC_Subscriptions_Product::get_length( $cart_item['data'] ) && 0 !== $next_payment_time && isset( $cart_item['subscription_switch']['recurring_payment_prorated'] ) ) { $end_date = gmdate( 'Y-m-d H:i:s', $next_payment_time ); // if the subscription is more than 1 (and not 0) and we have a next payment date (prorated or not) we want to calculate the new end date from that - } elseif ( 0 !== $next_payment_time && $cart_item['data']->subscription_length > 1 ) { + } elseif ( 0 !== $next_payment_time && WC_Subscriptions_Product::get_length( $cart_item['data'] ) > 1 ) { // remove trial period on the switched subscription when calculating the new end date - $trial_length = $cart_item['data']->subscription_trial_length; - $cart_item['data']->subscription_trial_length = 0; + $trial_length = wcs_get_objects_property( $cart_item['data'], 'subscription_trial_length' ); + wcs_set_objects_property( $cart_item['data'], 'subscription_trial_length', 0, 'set_prop_only' ); $end_date = WC_Subscriptions_Product::get_expiration_date( $cart_item['data'], gmdate( 'Y-m-d H:i:s', $next_payment_time ) ); // add back the trial length if it has been spoofed - $cart_item['data']->subscription_trial_length = $trial_length; + wcs_set_objects_property( $cart_item['data'], 'subscription_trial_length', $trial_length, 'set_prop_only' ); // elseif fallback to using the end date set on the cart item } elseif ( ! empty( $end_timestamp ) ) { @@ -1509,10 +1639,10 @@ class WC_Subscriptions_Switcher { public static function process_subscription_switches( $order_id, $order_old_status, $order_new_status ) { global $wpdb; - $switch_processed = get_post_meta( $order_id, '_completed_subscription_switch', true ); $order = wc_get_order( $order_id ); + $switch_processed = wcs_get_objects_property( $order, 'completed_subscription_switch' ); - if ( ! wcs_order_contains_switch( $order_id ) || 'true' == $switch_processed ) { + if ( ! wcs_order_contains_switch( $order ) || 'true' == $switch_processed ) { return; } @@ -1525,7 +1655,7 @@ class WC_Subscriptions_Switcher { self::complete_subscription_switches( $order ); - update_post_meta( $order_id, '_completed_subscription_switch', 'true' ); + wcs_set_objects_property( $order, 'completed_subscription_switch', 'true' ); $wpdb->query( 'COMMIT' ); @@ -1551,7 +1681,7 @@ class WC_Subscriptions_Switcher { $switch_setting = get_option( WC_Subscriptions_Admin::$option_prefix . '_allow_switching', 'no' ); // does the current switch setting allow switching for variable or variable_grouped - if ( 'variable_grouped' == $switch_setting || ( $product->is_type( array( 'variable-subscription', 'subscription_variation' ) ) && 'variable' == $switch_setting ) || ( 'grouped' == $switch_setting && ( $product->is_type( 'grouped' ) || 0 !== $product->post->post_parent ) ) ) { + if ( 'variable_grouped' == $switch_setting || ( $product->is_type( array( 'variable-subscription', 'subscription_variation' ) ) && 'variable' == $switch_setting ) || ( 'grouped' == $switch_setting && ( $product->is_type( 'grouped' ) || wcs_get_objects_property( $product, 'parent_id' ) ) ) ) { $allow_switching = true; } @@ -1618,7 +1748,7 @@ class WC_Subscriptions_Switcher { if ( in_array( $order_type, array( 'all', 'switch' ) ) ) { - $switch_orders = wcs_get_switch_orders_for_subscription( $subscription->id ); + $switch_orders = wcs_get_switch_orders_for_subscription( $subscription->get_id() ); if ( 'all' == $return_fields ) { $related_orders += $switch_orders; @@ -1710,7 +1840,7 @@ class WC_Subscriptions_Switcher { } $product_id = wcs_get_canonical_product_id( $old_item ); - WCS_Download_Handler::revoke_downloadable_file_permission( $product_id, $subscription->id, $subscription->customer_user ); + WCS_Download_Handler::revoke_downloadable_file_permission( $product_id, $subscription->get_id(), $subscription->get_user_id() ); } @@ -1726,7 +1856,7 @@ class WC_Subscriptions_Switcher { public static function complete_subscription_switches( $order ) { // Get the switch meta - $switch_order_data = get_post_meta( $order->id, '_subscription_switch_data', true ); + $switch_order_data = wcs_get_objects_property( $order, 'subscription_switch_data' ); // if we don't have an switch data, there is nothing to do here. Switch orders created prior to v2.1 won't have any data to process. if ( empty( $switch_order_data ) || ! is_array( $switch_order_data ) ) { @@ -1752,7 +1882,6 @@ class WC_Subscriptions_Switcher { // If we are adding a line item to an existing subscription if ( isset( $switched_item_data['add_line_item'] ) ) { wc_update_order_item( $switched_item_data['add_line_item'], array( 'order_item_type' => 'line_item' ) ); - do_action( 'woocommerce_subscription_item_switched', $order, $subscription, $switched_item_data['add_line_item'], $switched_item_data['remove_line_item'] ); } @@ -1774,17 +1903,25 @@ class WC_Subscriptions_Switcher { wc_update_order_item( $switched_item_data['remove_line_item'], array( 'order_item_type' => 'line_item_switched' ) ); // translators: 1$: old item, 2$: new item when switching - $subscription->add_order_note( sprintf( _x( 'Customer switched from: %1$s to %2$s.', 'used in order notes', 'woocommerce-subscriptions' ), $old_item_name, $new_item_name ) ); + $add_note = sprintf( _x( 'Customer switched from: %1$s to %2$s.', 'used in order notes', 'woocommerce-subscriptions' ), $old_item_name, $new_item_name ); } } } } + if ( ! empty( $add_note ) ) { + $subscription->add_order_note( $add_note ); + } + if ( ! empty( $switch_data['billing_schedule'] ) ) { // Update the billing schedule - foreach ( $switch_data['billing_schedule'] as $meta_key => $value ) { - update_post_meta( $subscription_id, $meta_key, $value ); + if ( ! empty( $switch_data['billing_schedule']['_billing_period'] ) ) { + $subscription->set_billing_period( $switch_data['billing_schedule']['_billing_period'] ); + } + + if ( ! empty( $switch_data['billing_schedule']['_billing_interval'] ) ) { + $subscription->set_billing_interval( $switch_data['billing_schedule']['_billing_interval'] ); } } @@ -1798,7 +1935,7 @@ class WC_Subscriptions_Switcher { } if ( ! empty( $switch_data['dates']['update'] ) ) { - $subscription->update_dates( $switch_order_data[ $subscription->id ]['dates']['update'] ); + $subscription->update_dates( $switch_order_data[ $subscription->get_id() ]['dates']['update'] ); } } @@ -1821,7 +1958,11 @@ class WC_Subscriptions_Switcher { // Update the subscription address self::maybe_update_subscription_address( $order, $subscription ); - $subscription->calculate_totals(); + // Save every change + $subscription->save(); + + // We just changed above the type of some items related to this subscription, so we need to reload it to get the newest items + wcs_get_subscription( $subscription->get_id() )->calculate_totals(); } } @@ -1917,21 +2058,23 @@ class WC_Subscriptions_Switcher { return; } - foreach ( wcs_get_subscriptions_for_switch_order( $order->id ) as $subscription ) { + foreach ( wcs_get_subscriptions_for_switch_order( $order ) as $subscription ) { if ( false === $subscription->is_manual() ) { continue; } - if ( $subscription->payment_method !== $order->payment_method ) { + if ( $subscription->get_payment_method() !== wcs_get_objects_property( $order, 'payment_method' ) ) { // Set the new payment method on the subscription - $available_gateways = WC()->payment_gateways->get_available_payment_gateways(); - $payment_method = isset( $available_gateways[ $order->payment_method ] ) ? $available_gateways[ $order->payment_method ] : false; + $available_gateways = WC()->payment_gateways->get_available_payment_gateways(); + $order_payment_method = wcs_get_objects_property( $order, 'payment_method' ); + $payment_method = '' != $order_payment_method && isset( $available_gateways[ $order_payment_method ] ) ? $available_gateways[ $order_payment_method ] : false; if ( $payment_method && $payment_method->supports( 'subscriptions' ) ) { $subscription->set_payment_method( $payment_method ); - $subscription->update_manual( false ); + $subscription->set_requires_manual_renewal( false ); + $subscription->save(); } } } @@ -2001,7 +2144,7 @@ class WC_Subscriptions_Switcher { foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { if ( isset( $cart_item['subscription_switch']['first_payment_timestamp'] ) && 0 != $cart_item['subscription_switch']['first_payment_timestamp'] ) { - WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_trial_length = 1; + wcs_set_objects_property( WC()->cart->cart_contents[ $cart_item_key ]['data'], 'subscription_trial_length', 1, 'set_prop_only' ); } } @@ -2017,7 +2160,7 @@ class WC_Subscriptions_Switcher { foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { if ( isset( $cart_item['subscription_switch']['first_payment_timestamp'] ) && 0 != $cart_item['subscription_switch']['first_payment_timestamp'] ) { - WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_trial_length = 0; + wcs_set_objects_property( WC()->cart->cart_contents[ $cart_item_key ]['data'], 'subscription_trial_length', 0, 'set_prop_only' ); } } return $total; @@ -2094,7 +2237,7 @@ class WC_Subscriptions_Switcher { // Add the new shipping line item foreach ( $shipping_methods as $shipping_line_item ) { - $item_id = wc_add_order_item( $subscription->id, array( + $item_id = wc_add_order_item( $subscription->get_id(), array( 'order_item_name' => $shipping_line_item['name'], 'order_item_type' => 'shipping', ) ); @@ -2258,7 +2401,7 @@ class WC_Subscriptions_Switcher { */ public static function calculate_first_payment_date( $next_payment_date, $order, $product_id, $type ) { _deprecated_function( __METHOD__, '2.0' ); - return self::get_first_payment_date( $next_payment_date, WC_Subscriptions_Manager::get_subscription_key( $order->id, $product_id ), $order->user_id, $type ); + return self::get_first_payment_date( $next_payment_date, WC_Subscriptions_Manager::get_subscription_key( wcs_get_objects_property( $order, 'id' ), $product_id ), $order->get_user_id(), $type ); } /** @@ -2275,9 +2418,9 @@ class WC_Subscriptions_Switcher { $subscription = wcs_get_subscription_from_key( $subscription_key ); - if ( $subscription->has_status( 'active' ) && ! empty( $subscription->order ) && wcs_order_contains_switch( $subscription->order->id ) && 1 >= $subscription->get_completed_payment_count() ) { + if ( $subscription->has_status( 'active' ) && $subscription->get_parent_id() && wcs_order_contains_switch( $subscription->get_parent_id() ) && 1 >= $subscription->get_completed_payment_count() ) { - $first_payment_timestamp = get_post_meta( $subscription->order->id, '_switched_subscription_first_payment_timestamp', true ); + $first_payment_timestamp = get_post_meta( $subscription->get_parent_id(), '_switched_subscription_first_payment_timestamp', true ); if ( 0 != $first_payment_timestamp ) { $next_payment_date = ( 'mysql' == $type ) ? gmdate( 'Y-m-d H:i:s', $first_payment_timestamp ) : $first_payment_timestamp; @@ -2348,5 +2491,34 @@ class WC_Subscriptions_Switcher { _deprecated_function( __METHOD__, '2.0', 'wcs_order_contains_switch( $order_id )' ); return wcs_order_contains_switch( $order_id ); } + + /** + * Store the order line item id so it can be retrieved when we're processing the switch on checkout + * + * @param int $order_id + * @param array $checkout_posted_data + * @since 2.2.0 + */ + public static function set_switch_order_item_id( $order_id, $posted_checkout_data ) { + _deprecated_function( __METHOD__, '2.2.1', 'WCS_Cart_Switch::set_cart_item_order_item_id()' ); + + $order = wc_get_order( $order_id ); + + foreach ( $order->get_items( 'line_item' ) as $order_item_id => $order_item ) { + + $cart_item_key = $order_item->get_meta( '_switched_cart_item_key' ); + + if ( ! empty( $cart_item_key ) ) { + foreach ( WC()->cart->recurring_carts as $recurring_cart_key => $recurring_cart ) { + + // If this cart item belongs to this recurring cart + if ( in_array( $cart_item_key, array_keys( $recurring_cart->cart_contents ) ) && isset( WC()->cart->recurring_carts[ $recurring_cart_key ]->cart_contents[ $cart_item_key ]['subscription_switch'] ) ) { + WC()->cart->recurring_carts[ $recurring_cart_key ]->cart_contents[ $cart_item_key ]['subscription_switch']['order_line_item_id'] = $order_item_id; + wc_add_order_item_meta( WC()->cart->recurring_carts[ $recurring_cart_key ]->cart_contents[ $cart_item_key ]['subscription_switch']['item_id'], '_switched_subscription_new_item_id', $order_item_id, true ); + } + } + } + } + } } WC_Subscriptions_Switcher::init(); diff --git a/includes/class-wc-subscriptions-synchroniser.php b/includes/class-wc-subscriptions-synchroniser.php index a309583..d4b6c5b 100644 --- a/includes/class-wc-subscriptions-synchroniser.php +++ b/includes/class-wc-subscriptions-synchroniser.php @@ -96,7 +96,12 @@ class WC_Subscriptions_Synchroniser { // When adding an item to a subscription, check if it is for a synced product to make sure the sync meta is set on the subscription. We can't attach to just the 'woocommerce_new_order_item' here because the '_product_id' and '_variation_id' meta are not set before it fires add_action( 'woocommerce_ajax_add_order_item_meta', __CLASS__ . '::ajax_maybe_add_meta_for_item', 10, 2 ); - add_action( 'woocommerce_order_add_product', __CLASS__ . '::maybe_add_meta_for_new_product', 10, 3 ); + + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + add_action( 'woocommerce_order_add_product', __CLASS__ . '::maybe_add_meta_for_new_product', 10, 3 ); + } else { + add_action( 'woocommerce_new_order_item', __CLASS__ . '::maybe_add_meta_for_new_line_item', 10, 3 ); + } // Make sure the sign-up fee for a synchronised subscription is correct add_filter( 'woocommerce_subscriptions_sign_up_fee', __CLASS__ . '::get_synced_sign_up_fee', 1, 3 ); @@ -259,14 +264,16 @@ class WC_Subscriptions_Synchroniser { if ( self::is_syncing_enabled() ) { // Set month as the default billing period - if ( ! $subscription_period = get_post_meta( $variation->ID, '_subscription_period', true ) ) { + $subscription_period = WC_Subscriptions_Product::get_period( $variation ); + + if ( empty( $subscription_period ) ) { $subscription_period = 'month'; } $display_week_month_select = ( ! in_array( $subscription_period, array( 'month', 'week' ) ) ) ? 'display: none;' : ''; $display_annual_select = ( 'year' != $subscription_period ) ? 'display: none;' : ''; - $payment_day = self::get_products_payment_day( $variation->ID ); + $payment_day = self::get_products_payment_day( $variation ); // An annual sync date is already set in the form: array( 'day' => 'nn', 'month' => 'nn' ), create a MySQL string from those values (year and time are irrelvent as they are ignored) if ( is_array( $payment_day ) ) { @@ -400,7 +407,7 @@ class WC_Subscriptions_Synchroniser { $product = wc_get_product( $product ); } - if ( ! is_object( $product ) || ! self::is_syncing_enabled() || 'day' == $product->subscription_period || ! WC_Subscriptions_Product::is_subscription( $product ) ) { + if ( ! is_object( $product ) || ! self::is_syncing_enabled() || 'day' == WC_Subscriptions_Product::get_period( $product ) || ! WC_Subscriptions_Product::is_subscription( $product ) ) { return false; } @@ -441,15 +448,11 @@ class WC_Subscriptions_Synchroniser { if ( ! self::is_syncing_enabled() ) { $payment_date = 0; - } elseif ( ! is_object( $product ) ) { - $payment_date = get_post_meta( $product, self::$post_meta_key, true ); - } elseif ( isset( $product->subscription_payment_sync_date ) ) { - $payment_date = $product->subscription_payment_sync_date; } else { - $payment_date = 0; + $payment_date = WC_Subscriptions_Product::get_meta_data( $product, 'subscription_payment_sync_date', 0 ); } - return $payment_date; + return apply_filters( 'woocommerce_subscriptions_product_sync_date', $payment_date, $product ); } /** @@ -654,7 +657,7 @@ class WC_Subscriptions_Synchroniser { $first_payment_date = ''; if ( self::is_product_synced( $product ) ) { - $first_payment_timestamp = self::calculate_first_payment_date( $product->id, 'timestamp' ); + $first_payment_timestamp = self::calculate_first_payment_date( $product->get_id(), 'timestamp' ); if ( 0 != $first_payment_timestamp ) { @@ -713,7 +716,9 @@ class WC_Subscriptions_Synchroniser { foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { if ( self::is_product_synced( $cart_item['data'] ) && ! self::is_product_prorated( $cart_item['data'] ) && ! self::is_today( self::calculate_first_payment_date( $cart_item['data'], 'timestamp' ) ) ) { - WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_trial_length = ( WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_trial_length > 1 ) ? WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_trial_length : 1; + $current_trial_length = WC_Subscriptions_Product::get_trial_length( WC()->cart->cart_contents[ $cart_item_key ]['data'] ); + $new_trial_length = ( $current_trial_length > 1 ) ? $current_trial_length : 1; + wcs_set_objects_property( WC()->cart->cart_contents[ $cart_item_key ]['data'], 'subscription_trial_length', $new_trial_length, 'set_prop_only' ); } } @@ -729,7 +734,7 @@ class WC_Subscriptions_Synchroniser { foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { if ( self::is_product_synced( $cart_item['data'] ) ) { - WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_trial_length = WC_Subscriptions_Product::get_trial_length( wcs_get_canonical_product_id( $cart_item ) ); + wcs_set_objects_property( WC()->cart->cart_contents[ $cart_item_key ]['data'], 'subscription_trial_length', WC_Subscriptions_Product::get_trial_length( wcs_get_canonical_product_id( $cart_item ) ), 'set_prop_only' ); } } return $total; @@ -748,7 +753,7 @@ class WC_Subscriptions_Synchroniser { if ( self::is_syncing_enabled() && ! empty( $cart ) && ! wcs_cart_contains_renewal() ) { foreach ( $cart->cart_contents as $cart_item_key => $cart_item ) { - if ( ( ! is_array( $cart_item['data']->subscription_payment_sync_date ) && $cart_item['data']->subscription_payment_sync_date > 0 ) || ( is_array( $cart_item['data']->subscription_payment_sync_date ) && $cart_item['data']->subscription_payment_sync_date['day'] > 0 ) ) { + if ( self::is_product_synced( $cart_item['data'] ) ) { $contains_synced = $cart_item; break; } @@ -781,7 +786,7 @@ class WC_Subscriptions_Synchroniser { if ( $trial_expiration_date > 0 && self::is_product_synced( $product_id ) ) { - $trial_expiration_timestamp = strtotime( $trial_expiration_date ); + $trial_expiration_timestamp = wcs_date_to_time( $trial_expiration_date ); remove_filter( 'woocommerce_subscriptions_product_trial_expiration_date', __METHOD__ ); // avoid infinite loop $first_payment_timestamp = self::calculate_first_payment_date( $product_id, 'timestamp' ); add_filter( 'woocommerce_subscriptions_product_trial_expiration_date', __METHOD__, 10, 2 ); // avoid infinite loop @@ -842,7 +847,7 @@ class WC_Subscriptions_Synchroniser { */ public static function get_synced_sign_up_fee( $sign_up_fee, $subscription, $product_id ) { - if ( wcs_is_subscription( $subscription ) && self::subscription_contains_synced_product( $subscription ) && count( wcs_get_line_items_with_a_trial( $subscription->id ) ) < 0 ) { + if ( wcs_is_subscription( $subscription ) && self::subscription_contains_synced_product( $subscription ) && count( wcs_get_line_items_with_a_trial( $subscription->get_id() ) ) < 0 ) { $sign_up_fee = max( $subscription->get_total_initial_payment() - $subscription->get_total(), 0 ); } @@ -864,15 +869,15 @@ class WC_Subscriptions_Synchroniser { return $price; } - switch ( $product->subscription_period ) { + switch ( WC_Subscriptions_Product::get_period( $product ) ) { case 'week' : - $days_in_cycle = 7 * $product->subscription_period_interval; + $days_in_cycle = 7 * WC_Subscriptions_Product::get_interval( $product ); break; case 'month' : - $days_in_cycle = gmdate( 't' ) * $product->subscription_period_interval; + $days_in_cycle = gmdate( 't' ) * WC_Subscriptions_Product::get_interval( $product ); break; case 'year' : - $days_in_cycle = ( 365 + gmdate( 'L' ) ) * $product->subscription_period_interval; + $days_in_cycle = ( 365 + gmdate( 'L' ) ) * WC_Subscriptions_Product::get_interval( $product ); break; } @@ -963,7 +968,7 @@ class WC_Subscriptions_Synchroniser { $product_id = wcs_get_canonical_product_id( $item ); if ( self::is_product_synced( $product_id ) ) { - update_post_meta( $subscription->id, '_contains_synced_subscription', 'true' ); + update_post_meta( $subscription->get_id(), '_contains_synced_subscription', 'true' ); break; } } @@ -1012,7 +1017,7 @@ class WC_Subscriptions_Synchroniser { public static function subscription_contains_synced_product( $subscription_id ) { if ( is_object( $subscription_id ) ) { - $subscription_id = $subscription_id->id; + $subscription_id = $subscription_id->get_id(); } return ( 'true' == get_post_meta( $subscription_id, '_contains_synced_subscription', true ) ) ? true : false; @@ -1033,6 +1038,23 @@ class WC_Subscriptions_Synchroniser { return $cart_key; } + /** + * When adding a product line item to an order/subscription via the WC_Abstract_Order::add_product() method, check if we should be setting + * the sync meta on the subscription. + * + * Attached to WC 3.0+ hooks and uses WC 3.0 methods. + * + * @param int The new line item id + * @param WC_Order_Item + * @param int The post ID of a WC_Subscription + * @since 2.2.3 + */ + public static function maybe_add_meta_for_new_line_item( $item_id, $item, $subscription_id ) { + if ( is_callable( array( $item, 'get_product_id' ) ) && self::is_product_synced( $item->get_product_id() ) ) { + self::maybe_add_subscription_meta( $subscription_id ); + } + } + /* Deprecated Functions */ /** @@ -1059,7 +1081,7 @@ class WC_Subscriptions_Synchroniser { $cart_item = self::cart_contains_synced_subscription(); - if ( false !== $cart_item && isset( $cart_item['data']->subscription_period ) && ( 'year' != $cart_item['data']->subscription_period || $cart_item['data']->subscription_trial_length > 0 ) ) { + if ( false !== $cart_item && '' !== WC_Subscriptions_Product::get_period( $cart_item['data'] ) && ( 'year' != WC_Subscriptions_Product::get_period( $cart_item['data'] ) || WC_Subscriptions_Product::get_trial_length( $cart_item['data'] ) > 0 ) ) { $first_payment_date = self::get_products_first_payment_date( $cart_item['data'] ); @@ -1154,17 +1176,16 @@ class WC_Subscriptions_Synchroniser { * @deprecated 2.0 */ public static function get_first_payment_date( $first_payment_date, $order, $product_id, $type ) { - _deprecated_function( __METHOD__, '2.0' ); $subscription = wcs_get_subscription_from_key( $order . '_' . $product_id ); - if ( self::order_contains_synced_subscription( $order->id ) && 1 >= $subscription->get_completed_payment_count() ) { + if ( self::order_contains_synced_subscription( wcs_get_objects_property( $order, 'id' ) ) && 1 >= $subscription->get_completed_payment_count() ) { // Don't prematurely set the first payment date when manually adding a subscription from the admin if ( ! is_admin() || 'active' == $subscription->get_status() ) { - $first_payment_timestamp = self::calculate_first_payment_date( $product_id, 'timestamp', $order->order_date ); + $first_payment_timestamp = self::calculate_first_payment_date( $product_id, 'timestamp', wcs_get_datetime_utc_string( wcs_get_objects_property( $order, 'date_created' ) ) ); if ( 0 != $first_payment_timestamp ) { $first_payment_date = ( 'mysql' == $type ) ? gmdate( 'Y-m-d H:i:s', $first_payment_timestamp ) : $first_payment_timestamp; @@ -1210,7 +1231,7 @@ class WC_Subscriptions_Synchroniser { _deprecated_function( __METHOD__, '2.0', __CLASS__ . '::subscription_contains_synced_product()' ); if ( is_object( $order_id ) ) { - $order_id = $order_id->id; + $order_id = wcs_get_objects_property( $order_id, 'id' ); } return ( 'true' == get_post_meta( $order_id, '_order_contains_synced_subscription', true ) ) ? true : false; @@ -1262,7 +1283,7 @@ class WC_Subscriptions_Synchroniser { public static function get_sign_up_fee( $sign_up_fee, $order, $product_id, $non_subscription_total ) { _deprecated_function( __METHOD__, '2.0', __CLASS__ . '::get_synced_sign_up_fee' ); - if ( 'shop_order' == get_post_type( $order ) && self::order_contains_synced_subscription( $order->id ) && WC_Subscriptions_Order::get_subscription_trial_length( $order ) < 1 ) { + if ( 'shop_order' == get_post_type( $order ) && self::order_contains_synced_subscription( wcs_get_objects_property( $order, 'id' ) ) && WC_Subscriptions_Order::get_subscription_trial_length( $order ) < 1 ) { $sign_up_fee = max( WC_Subscriptions_Order::get_total_initial_payment( $order ) - $non_subscription_total, 0 ); } diff --git a/includes/class-wcs-action-scheduler.php b/includes/class-wcs-action-scheduler.php index c6d69b6..3b2038d 100644 --- a/includes/class-wcs-action-scheduler.php +++ b/includes/class-wcs-action-scheduler.php @@ -22,7 +22,7 @@ class WCS_Action_Scheduler extends WCS_Scheduler { * Maybe set a schedule action if the new date is in the future * * @param object $subscription An instance of a WC_Subscription object - * @param string $date_type Can be 'start', 'trial_end', 'next_payment', 'payment_retry', 'last_payment', 'end', 'end_of_prepaid_term' or a custom date type + * @param string $date_type Can be 'trial_end', 'next_payment', 'payment_retry', 'end', 'end_of_prepaid_term' or a custom date type * @param string $datetime A MySQL formated date/time string in the GMT/UTC timezone. */ public function update_date( $subscription, $date_type, $datetime ) { @@ -55,7 +55,7 @@ class WCS_Action_Scheduler extends WCS_Scheduler { * Delete a date from the action scheduler queue * * @param object $subscription An instance of a WC_Subscription object - * @param string $date_type Can be 'start', 'trial_end', 'next_payment', 'last_payment', 'end', 'end_of_prepaid_term' or a custom date type + * @param string $date_type Can be 'trial_end', 'next_payment', 'end', 'end_of_prepaid_term' or a custom date type */ public function delete_date( $subscription, $date_type ) { $this->update_date( $subscription, $date_type, 0 ); @@ -65,7 +65,7 @@ class WCS_Action_Scheduler extends WCS_Scheduler { * When a subscription's status is updated, maybe schedule an event * * @param object $subscription An instance of a WC_Subscription object - * @param string $date_type Can be 'start', 'trial_end', 'next_payment', 'last_payment', 'end', 'end_of_prepaid_term' or a custom date type + * @param string $date_type Can be 'trial_end', 'next_payment', 'end', 'end_of_prepaid_term' or a custom date type * @param string $datetime A MySQL formated date/time string in the GMT/UTC timezone. */ public function update_status( $subscription, $new_status, $old_status ) { @@ -126,7 +126,7 @@ class WCS_Action_Scheduler extends WCS_Scheduler { * Get the hook to use in the action scheduler for the date type * * @param object $subscription An instance of WC_Subscription to get the hook for - * @param string $date_type Can be 'start', 'trial_end', 'next_payment', 'last_payment', 'expiration', 'end_of_prepaid_term' or a custom date type + * @param string $date_type Can be 'trial_end', 'next_payment', 'expiration', 'end_of_prepaid_term' or a custom date type */ protected function get_scheduled_action_hook( $subscription, $date_type ) { @@ -158,7 +158,7 @@ class WCS_Action_Scheduler extends WCS_Scheduler { /** * Get the args to set on the scheduled action. * - * @param string $date_type Can be 'start', 'trial_end', 'next_payment', 'last_payment', 'expiration', 'end_of_prepaid_term' or a custom date type + * @param string $date_type Can be 'trial_end', 'next_payment', 'expiration', 'end_of_prepaid_term' or a custom date type * @param object $subscription An instance of WC_Subscription to get the hook for * @return array Array of name => value pairs stored against the scheduled action. */ @@ -170,7 +170,7 @@ class WCS_Action_Scheduler extends WCS_Scheduler { $action_args = array( 'order_id' => $last_order_id ); } else { - $action_args = array( 'subscription_id' => $subscription->id ); + $action_args = array( 'subscription_id' => $subscription->get_id() ); } return apply_filters( 'woocommerce_subscriptions_scheduled_action_args', $action_args, $date_type, $subscription ); diff --git a/includes/class-wcs-api.php b/includes/class-wcs-api.php index 1eebb91..1e1ce13 100644 --- a/includes/class-wcs-api.php +++ b/includes/class-wcs-api.php @@ -54,8 +54,13 @@ class WCS_API { return; } - require_once( 'api/class-wc-rest-subscriptions-controller.php' ); - require_once( 'api/class-wc-rest-subscription-notes-controller.php' ); + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + require_once( 'api/legacy/class-wc-rest-subscriptions-controller.php' ); + require_once( 'api/legacy/class-wc-rest-subscription-notes-controller.php' ); + } else { + require_once( 'api/class-wc-rest-subscriptions-controller.php' ); + require_once( 'api/class-wc-rest-subscription-notes-controller.php' ); + } foreach ( array( 'WC_REST_Subscriptions_Controller', 'WC_REST_Subscription_Notes_Controller' ) as $api_class ) { $controller = new $api_class(); diff --git a/includes/class-wcs-cache-manager-tlc.php b/includes/class-wcs-cache-manager-tlc.php index 49c4b3a..0a4ee8b 100644 --- a/includes/class-wcs-cache-manager-tlc.php +++ b/includes/class-wcs-cache-manager-tlc.php @@ -97,9 +97,9 @@ class WCS_Cache_Manager_TLC extends WCS_Cache_Manager { } $subscription = array_shift( $subscription ); - $this->log( 'Got subscription, calling wcs_clear_related_order_cache for ' . $subscription->id ); + $this->log( 'Got subscription, calling wcs_clear_related_order_cache for ' . $subscription->get_id() ); - $this->wcs_clear_related_order_cache( $subscription->id ); + $this->wcs_clear_related_order_cache( $subscription->get_id() ); } } @@ -158,7 +158,7 @@ class WCS_Cache_Manager_TLC extends WCS_Cache_Manager { // if it's not a Subscription, we don't deal with it if ( is_object( $id ) && $id instanceof WC_Subscription ) { - $id = $id->id; + $id = $id->get_id(); } elseif ( is_numeric( $id ) ) { $id = absint( $id ); } else { diff --git a/includes/class-wcs-cached-data-manager.php b/includes/class-wcs-cached-data-manager.php index 2c1733a..9b0834c 100644 --- a/includes/class-wcs-cached-data-manager.php +++ b/includes/class-wcs-cached-data-manager.php @@ -75,9 +75,9 @@ class WCS_Cached_Data_Manager extends WCS_Cache_Manager { return; } - foreach ( wcs_get_subscriptions_for_order( $post_id, array( 'order_type' => 'any' ) ) as $linked_subscription ) { - $this->log( 'Calling purge delete on ' . current_filter() . ' for ' . $linked_subscription->id ); - $this->clear_related_order_cache( $linked_subscription ); + foreach ( wcs_get_subscriptions_for_order( $post_id, array( 'order_type' => 'any' ) ) as $subscription ) { + $this->log( 'Calling purge delete on ' . current_filter() . ' for ' . $subscription->get_id() ); + $this->clear_related_order_cache( $subscription ); } } @@ -108,7 +108,7 @@ class WCS_Cached_Data_Manager extends WCS_Cache_Manager { // if it's not a Subscription, we don't deal with it if ( is_object( $subscription_id ) && $subscription_id instanceof WC_Subscription ) { - $subscription_id = $subscription_id->id; + $subscription_id = $subscription_id->get_id(); } elseif ( is_numeric( $subscription_id ) ) { $subscription_id = absint( $subscription_id ); } else { @@ -169,7 +169,7 @@ class WCS_Cached_Data_Manager extends WCS_Cache_Manager { $this->log( 'No subscriptions for this ID: ' . $post_id ); } else { foreach ( $subscriptions as $subscription ) { - $this->log( 'Got subscription, calling clear_related_order_cache for ' . $subscription->id ); + $this->log( 'Got subscription, calling clear_related_order_cache for ' . $subscription->get_id() ); $this->clear_related_order_cache( $subscription ); } } diff --git a/includes/class-wcs-cart-initial-payment.php b/includes/class-wcs-cart-initial-payment.php index 3f6b08b..8d5ec43 100644 --- a/includes/class-wcs-cart-initial-payment.php +++ b/includes/class-wcs-cart-initial-payment.php @@ -39,7 +39,7 @@ class WCS_Cart_Initial_Payment extends WCS_Cart_Renewal { $order_id = ( isset( $wp->query_vars['order-pay'] ) ) ? $wp->query_vars['order-pay'] : absint( $_GET['order_id'] ); $order = wc_get_order( $wp->query_vars['order-pay'] ); - if ( $order->order_key == $order_key && $order->has_status( array( 'pending', 'failed' ) ) && wcs_order_contains_subscription( $order, 'parent' ) && ! wcs_order_contains_subscription( $order, 'resubscribe' ) ) { + if ( wcs_get_objects_property( $order, 'order_key' ) == $order_key && $order->has_status( array( 'pending', 'failed' ) ) && wcs_order_contains_subscription( $order, 'parent' ) && ! wcs_order_contains_subscription( $order, 'resubscribe' ) ) { if ( ! is_user_logged_in() ) { diff --git a/includes/class-wcs-cart-renewal.php b/includes/class-wcs-cart-renewal.php index b390cec..6359701 100644 --- a/includes/class-wcs-cart-renewal.php +++ b/includes/class-wcs-cart-renewal.php @@ -26,6 +26,9 @@ class WCS_Cart_Renewal { $this->setup_hooks(); + // Attach hooks which depend on WooCommerce constants + add_action( 'woocommerce_loaded', array( &$this, 'attach_dependant_hooks' ), 10 ); + // Set URL parameter for manual subscription renewals add_filter( 'woocommerce_get_checkout_payment_url', array( &$this, 'get_checkout_payment_url' ), 10, 2 ); @@ -44,15 +47,37 @@ class WCS_Cart_Renewal { // When a user is prevented from paying for a failed/pending renewal order because they aren't logged in, redirect them back after login add_filter( 'woocommerce_login_redirect', array( &$this, 'maybe_redirect_after_login' ), 10 , 1 ); - // When a renewal order's line items are being updated, update the line item IDs stored in cart data. - add_action( 'woocommerce_add_order_item_meta', array( &$this, 'update_line_item_cart_data' ), 10, 3 ); - // Once we have finished updating the renewal order on checkout, update the session cart so the cart changes are honoured. add_action( 'woocommerce_checkout_order_processed', array( &$this, 'update_session_cart_after_updating_renewal_order' ), 10 ); add_filter( 'wc_dynamic_pricing_apply_cart_item_adjustment', array( &$this, 'prevent_compounding_dynamic_discounts' ), 10, 2 ); } + /** + * Attach WooCommerce version dependent hooks + * + * @since 2.2.0 + */ + public function attach_dependant_hooks() { + + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + + // When a renewal order's line items are being updated, update the line item IDs stored in cart data. + add_action( 'woocommerce_add_order_item_meta', array( &$this, 'update_line_item_cart_data' ), 10, 3 ); + + } else { + + // For order items created as part of a renewal, keep a record of the cart item key so that we can match it later once the order item has been saved and has an ID + add_action( 'woocommerce_checkout_create_order_line_item', array( &$this, 'add_line_item_meta' ), 10, 3 ); + + // After order meta is saved, get the order line item ID for the renewal so we can update it later + add_action( 'woocommerce_checkout_update_order_meta', array( &$this, 'set_order_item_id' ), 10, 2 ); + + // Don't display cart item key meta stored above on the Edit Order screen + add_action( 'woocommerce_hidden_order_itemmeta', array( &$this, 'hidden_order_itemmeta' ), 10 ); + } + } + /** * Bootstraps the class and hooks required actions & filters. * @@ -111,7 +136,7 @@ class WCS_Cart_Renewal { $order_id = ( isset( $wp->query_vars['order-pay'] ) ) ? $wp->query_vars['order-pay'] : absint( $_GET['order_id'] ); $order = wc_get_order( $wp->query_vars['order-pay'] ); - if ( $order->order_key == $order_key && $order->has_status( array( 'pending', 'failed' ) ) && wcs_order_contains_renewal( $order ) ) { + if ( wcs_get_objects_property( $order, 'order_key' ) == $order_key && $order->has_status( array( 'pending', 'failed' ) ) && wcs_order_contains_renewal( $order ) ) { // If a user isn't logged in, allow them to login first and then redirect back if ( ! is_user_logged_in() ) { @@ -142,7 +167,7 @@ class WCS_Cart_Renewal { // Add the existing subscription items to the cart $this->setup_cart( $order, array( - 'subscription_id' => $subscription->id, + 'subscription_id' => $subscription->get_id(), 'renewal_order_id' => $order_id, ) ); @@ -243,7 +268,8 @@ class WCS_Cart_Renewal { if ( wcs_is_subscription( $subscription ) ) { - $used_coupons = $subscription->get_used_coupons(); + $used_coupons = $subscription->get_used_coupons(); + $subscription_discount = wcs_get_objects_property( $subscription, 'cart_discount' ); // Add any used coupon discounts to the cart (as best we can) using our pseudo renewal coupons if ( ! empty( $used_coupons ) ) { @@ -252,34 +278,34 @@ class WCS_Cart_Renewal { foreach ( $coupon_items as $coupon_item ) { - $coupon = new WC_Coupon( $coupon_item['name'] ); - + $coupon = new WC_Coupon( $coupon_item['name'] ); + $coupon_type = wcs_get_coupon_property( $coupon, 'type' ); $coupon_code = ''; // If the coupon still exists we can use the existing/available coupon properties - if ( true === $coupon->exists ) { + if ( true === wcs_get_coupon_property( $coupon, 'exists' ) ) { // But we only want to handle recurring coupons that have been applied to the subscription - if ( in_array( $coupon->type, array( 'recurring_percent', 'recurring_fee' ) ) ) { + if ( in_array( $coupon_type, array( 'recurring_percent', 'recurring_fee' ) ) ) { // Set the coupon type to be a renewal equivalent for correct validation and calculations - if ( 'recurring_percent' == $coupon->type ) { - $coupon->type = 'renewal_percent'; - } elseif ( 'recurring_fee' == $coupon->type ) { - $coupon->type = 'renewal_fee'; + if ( 'recurring_percent' == $coupon_type ) { + wcs_set_coupon_property( $coupon, 'type', 'renewal_percent' ); + } elseif ( 'recurring_fee' == $coupon_type ) { + wcs_set_coupon_property( $coupon, 'type', 'renewal_fee' ); } // Adjust coupon code to reflect that it is being applied to a renewal - $coupon_code = $coupon->code; + $coupon_code = wcs_get_coupon_property( $coupon, 'code' ); } } else { // If the coupon doesn't exist we can only really apply the discount amount we know about - so we'll apply a cart style pseudo coupon and then set the amount - $coupon->type = 'renewal_cart'; - $coupon->amount = $coupon_item['item_meta']['discount_amount']['0']; + wcs_set_coupon_property( $coupon, 'type', 'renewal_cart' ); + wcs_set_coupon_property( $coupon, 'amount', $coupon_item['item_meta']['discount_amount']['0'] ); // Adjust coupon code to reflect that it is being applied to a renewal - $coupon_code = $coupon->code; + $coupon_code = wcs_get_coupon_property( $coupon, 'code' ); } // Now that we have a coupon we know we want to apply @@ -287,11 +313,11 @@ class WCS_Cart_Renewal { // Set renewal order products as the product ids on the coupon if ( ! WC_Subscriptions::is_woocommerce_pre( '2.5' ) ) { - $coupon->product_ids = $this->get_products( $subscription ); + wcs_set_coupon_property( $coupon, 'product_ids', $this->get_products( $subscription ) ); } // Store the coupon info for later - $this->store_coupon( $subscription->id, $coupon ); + $this->store_coupon( $subscription->get_id(), $coupon ); // Add the coupon to the cart - the actually coupon values / data are grabbed when needed later if ( WC()->cart && ! WC()->cart->has_discount( $coupon_code ) ) { @@ -300,21 +326,22 @@ class WCS_Cart_Renewal { } } // If there are no coupons but there is still a discount (i.e. it might have been manually added), we need to account for that as well - } elseif ( ! empty( $subscription->cart_discount ) ) { + } elseif ( ! empty( $subscription_discount ) ) { $coupon = new WC_Coupon( 'discount_renewal' ); // Apply our cart style pseudo coupon and the set the amount - $coupon->type = 'renewal_cart'; - $coupon->amount = $subscription->cart_discount; + wcs_set_coupon_property( $coupon, 'type', 'renewal_cart' ); + + wcs_set_coupon_property( $coupon, 'amount', $subscription_discount ); // Set renewal order products as the product ids on the coupon if ( ! WC_Subscriptions::is_woocommerce_pre( '2.5' ) ) { - $coupon->product_ids = $this->get_products( $subscription ); + wcs_set_coupon_property( $coupon, 'product_ids', $this->get_products( $subscription ) ); } // Store the coupon info for later - $this->store_coupon( $subscription->id, $coupon ); + $this->store_coupon( $subscription->get_id(), $coupon ); // Add the coupon to the cart if ( WC()->cart && ! WC()->cart->has_discount( 'discount_renewal' ) ) { @@ -390,21 +417,22 @@ class WCS_Cart_Renewal { if ( wc_prices_include_tax() ) { if ( apply_filters( 'woocommerce_adjust_non_base_location_prices', true ) ) { - $base_tax_rates = WC_Tax::get_base_tax_rates( $_product->tax_class ); + $base_tax_rates = WC_Tax::get_base_tax_rates( wcs_get_objects_property( $_product, 'tax_class' ) ); } else { - $base_tax_rates = WC_Tax::get_rates( $_product->tax_class ); + $base_tax_rates = WC_Tax::get_rates( wcs_get_objects_property( $_product, 'tax_class' ) ); } $base_taxes_on_item = WC_Tax::calc_tax( $price, $base_tax_rates, false, false ); $price += array_sum( $base_taxes_on_item ); } - $_product->price = $price / $item_to_renew['qty']; + $_product->set_price( $price / $item_to_renew['qty'] ); // Don't carry over any sign up fee - $_product->subscription_sign_up_fee = 0; + wcs_set_objects_property( $_product, 'subscription_sign_up_fee', 0, 'set_prop_only' ); - $_product->post->post_title = apply_filters( 'woocommerce_subscriptions_renewal_product_title', $_product->get_title(), $_product ); + // Allow plugins to add additional strings to the product name for renewals + wcs_set_objects_property( $_product, 'name', apply_filters( 'woocommerce_subscriptions_renewal_product_title', $_product->get_title(), $_product ), 'set_prop_only' ); // Make sure the same quantity is renewed $cart_item_session_data['quantity'] = $item_to_renew['qty']; @@ -424,12 +452,16 @@ class WCS_Cart_Renewal { public function checkout_get_value( $value, $key ) { // Only hook in after WC()->checkout() has been initialised - if ( did_action( 'woocommerce_checkout_init' ) > 0 ) { + if ( $this->cart_contains() && did_action( 'woocommerce_checkout_init' ) > 0 ) { // Guard against the fake WC_Checkout singleton, see https://github.com/woocommerce/woocommerce-subscriptions/issues/427#issuecomment-260763250 remove_filter( 'woocommerce_checkout_get_value', array( &$this, 'checkout_get_value' ), 10, 2 ); - $address_fields = array_merge( WC()->checkout()->checkout_fields['billing'], WC()->checkout()->checkout_fields['shipping'] ); + if ( is_callable( array( WC()->checkout(), 'get_checkout_fields' ) ) ) { // WC 3.0+ + $address_fields = array_merge( WC()->checkout()->get_checkout_fields( 'billing' ), WC()->checkout()->get_checkout_fields( 'shipping' ) ); + } else { + $address_fields = array_merge( WC()->checkout()->checkout_fields['billing'], WC()->checkout()->checkout_fields['shipping'] ); + } add_filter( 'woocommerce_checkout_get_value', array( &$this, 'checkout_get_value' ), 10, 2 ); @@ -438,8 +470,8 @@ class WCS_Cart_Renewal { // Get the most specific order object, which will be the renewal order for renewals, initial order for initial payments, or a subscription for switches/resubscribes $order = $this->get_order( $item ); - if ( isset( $order->$key ) ) { - $value = $order->$key; + if ( ( $order_value = wcs_get_objects_property( $order, $key ) ) ) { + $value = $order_value; } } } @@ -582,13 +614,18 @@ class WCS_Cart_Renewal { */ public function maybe_preserve_order_status( $order_status ) { - if ( null !== WC()->session ) { + if ( null !== WC()->session && 'failed' !== $order_status ) { $order_id = absint( WC()->session->order_awaiting_payment ); + // Guard against infinite loops in WC 3.0+ where default order staus is set in WC_Abstract_Order::__construct() + remove_filter( 'woocommerce_default_order_status', array( &$this, __FUNCTION__ ), 10 ); + if ( $order_id > 0 && ( $order = wc_get_order( $order_id ) ) && wcs_order_contains_renewal( $order ) && $order->has_status( 'failed' ) ) { $order_status = 'failed'; } + + add_filter( 'woocommerce_default_order_status', array( &$this, __FUNCTION__ ) ); } return $order_status; @@ -710,28 +747,59 @@ class WCS_Cart_Renewal { foreach ( $coupons as $coupon ) { // Tweak the coupon data for renewal coupons - if ( $code == $coupon->code ) { + if ( wcs_get_coupon_property( $coupon, 'code' ) == $code ) { $data = array( - 'discount_type' => $coupon->type, - 'coupon_amount' => $coupon->amount, - 'individual_use' => ( $coupon->individual_use ) ? $coupon->individual_use : 'no', - 'product_ids' => ( $coupon->product_ids ) ? $coupon->product_ids : array(), - 'exclude_product_ids' => ( $coupon->exclude_product_ids ) ? $coupon->exclude_product_ids : array(), - 'usage_limit' => '', - 'usage_count' => '', - 'expiry_date' => '', - 'free_shipping' => ( $coupon->free_shipping ) ? $coupon->free_shipping : '', - 'product_categories' => ( $coupon->product_categories ) ? $coupon->product_categories : array(), - 'exclude_product_categories' => ( $coupon->exclude_product_categories ) ? $coupon->exclude_product_categories : array(), - 'exclude_sale_items' => ( $coupon->exclude_sale_items ) ? $coupon->exclude_sale_items : 'no', - 'minimum_amount' => ( $coupon->minimum_amount ) ? $coupon->minimum_amount : '', - 'maximum_amount' => ( $coupon->maximum_amount ) ? $coupon->maximum_amount : '', - 'customer_email' => ( $coupon->customer_email ) ? $coupon->customer_email : array(), + 'id' => true, + 'discount_type' => wcs_get_coupon_property( $coupon, 'type' ), + 'amount' => wcs_get_coupon_property( $coupon, 'amount' ), + 'individual_use' => ( $individual_use = wcs_get_coupon_property( $coupon, 'individual_use' ) ) ? $individual_use : false, + 'product_ids' => ( $product_ids = wcs_get_coupon_property( $coupon, 'product_ids' ) ) ? $product_ids : array(), + 'excluded_product_ids' => ( $excluded_product_ids = wcs_get_coupon_property( $coupon, 'exclude_product_ids' ) ) ? $excluded_product_ids : array(), + 'usage_limit' => '', + 'usage_count' => '', + 'date_expires' => '', + 'free_shipping' => ( $free_shipping = wcs_get_coupon_property( $coupon, 'free_shipping' ) ) ? $free_shipping : false, + 'product_categories' => ( $product_categories = wcs_get_coupon_property( $coupon, 'product_categories' ) ) ? $product_categories : array(), + 'excluded_product_categories' => ( $excluded_product_categories = wcs_get_coupon_property( $coupon, 'exclude_product_categories' ) ) ? $excluded_product_categories : array(), + 'exclude_sale_items' => ( $exclude_sale_items = wcs_get_coupon_property( $coupon, 'exclude_sale_items' ) ) ? $exclude_sale_items : false, + 'minimum_amount' => ( $minimum_amount = wcs_get_coupon_property( $coupon, 'minimum_amount' ) ) ? $minimum_amount : '', + 'maximum_amount' => ( $maximum_amount = wcs_get_coupon_property( $coupon, 'maximum_amount' ) ) ? $maximum_amount : '', + 'customer_email' => ( $customer_email = wcs_get_coupon_property( $coupon, 'customer_email' ) ) ? $customer_email : array(), ); + + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + + // Pre 3.0 we don't need to pass the id. + unset( $data['id'] ); + + // Some keys have changed between WC 2.6.x and WC 3.0. This array holds those changes in a 2.6 => 3.0 format. + $property_changes = array( + 'coupon_amount' => 'amount', + 'exclude_product_ids' => 'excluded_product_ids', + 'expiry_date' => 'date_expires', + 'exclude_product_categories' => 'excluded_product_categories', + 'customer_email' => 'email_restrictions', + ); + + foreach ( $data as $key => $value ) { + + // Switch the 3.0 key out for the 2.6 equivalent + if ( in_array( $key, $property_changes ) ) { + $data[ array_search( $key, $property_changes ) ] = $value; + unset( $data[ $key ] ); + } + + // Some coupon properties have changed from accepting 'no' and 'yes' to true and false args. We need to change them into the correct format + if ( is_bool( $value ) && in_array( $key, array( 'individual_use', 'free_shipping', 'exclude_sale_items' ) ) ) { + $data[ $key ] = ( true == $value ) ? 'yes' : 'no'; + } + } + } } } } + return $data; } @@ -794,7 +862,7 @@ class WCS_Cart_Renewal { if ( ! empty( $renewal_coupons ) ) { foreach ( $renewal_coupons as $subscription_id => $coupons ) { foreach ( $coupons as $coupon ) { - WC()->cart->remove_coupons( $coupon->code ); + WC()->cart->remove_coupons( wcs_get_coupon_property( $coupon, 'code' ) ); } } } @@ -868,7 +936,8 @@ class WCS_Cart_Renewal { * @since 2.0.14 */ protected function set_cart_hash( $order_id ) { - update_post_meta( $order_id, '_cart_hash', md5( json_encode( wc_clean( WC()->cart->get_cart_for_session() ) ) . WC()->cart->total ) ); + $order = wc_get_order( $order_id ); + wcs_set_objects_property( $order, 'cart_hash', md5( json_encode( wc_clean( WC()->cart->get_cart_for_session() ) ) . WC()->cart->total ) ); } /** @@ -907,24 +976,12 @@ class WCS_Cart_Renewal { return $redirect; } - /** - * After updating renewal order line items, update the values stored in cart item data - * which would now reference old line item IDs. - * - * @since 2.1.3 - */ - public function update_line_item_cart_data( $item_id, $cart_item_data, $cart_item_key ) { - - if ( isset( $cart_item_data[ $this->cart_item_key ] ) ) { - // Update the line_item_id to the new corresponding item_id - WC()->cart->cart_contents[ $cart_item_key ][ $this->cart_item_key ]['line_item_id'] = $item_id; - } - } - /** * Force an update to the session cart after updating renewal order line items. - * This is required so that changes made by @see WCS_Cart_Renewal->update_line_item_cart_data() - * are also reflected in the session cart. + * + * This is required so that changes made by @see WCS_Cart_Renewal->add_line_item_meta() (or @see + * WCS_Cart_Renewal->update_line_item_cart_data() for WC < 3.0), are also reflected + * in the session cart. * * @since 2.1.3 */ @@ -954,6 +1011,76 @@ class WCS_Cart_Renewal { return $adjust_price; } + /** + * For order items created as part of a renewal, keep a record of the cart item key so that we can match it + * later in @see this->set_order_item_id() once the order item has been saved and has an ID. + * + * Attached to WC 3.0+ hooks and uses WC 3.0 methods. + * + * @param WC_Order_Item_Product $order_item + * @param string $cart_item_key The hash used to identify the item in the cart + * @param array $cart_item The cart item's data. + * @since 2.2.0 + */ + public function add_line_item_meta( $order_item, $cart_item_key, $cart_item ) { + if ( isset( $cart_item[ $this->cart_item_key ] ) ) { + // Store the cart item key on the line item so that we can link it later on to the order line item ID + $order_item->add_meta_data( '_cart_item_key_' . $this->cart_item_key, $cart_item_key ); + } + } + + /** + * After order meta is saved, get the order line item ID for this renewal and keep a record of it in + * the cart so we can update it later. + * + * @param int $order_id + * @param array $checkout_posted_data + * @since 2.2.1 + */ + public function set_order_item_id( $order_id, $posted_checkout_data ) { + + $order = wc_get_order( $order_id ); + + foreach ( $order->get_items( 'line_item' ) as $order_item_id => $order_item ) { + + $cart_item_key = $order_item->get_meta( '_cart_item_key_' . $this->cart_item_key ); + + if ( ! empty( $cart_item_key ) ) { + // Update the line_item_id to the new corresponding item_id + $this->set_cart_item_order_item_id( $cart_item_key, $order_item_id ); + } + } + } + + /** + * After updating renewal order line items, update the values stored in cart item data + * which would now reference old line item IDs. + * + * Used when WC 3.0 or newer is active. When prior versions are active, + * @see WCS_Cart_Renewal->update_line_item_cart_data() + * + * @param string $cart_item_key + * @param int $order_item_id + * @since 2.2.1 + */ + protected function set_cart_item_order_item_id( $cart_item_key, $order_item_id ) { + WC()->cart->cart_contents[ $cart_item_key ][ $this->cart_item_key ]['line_item_id'] = $order_item_id; + } + + /** + * Do not display cart item key order item meta keys unless Subscriptions is in debug mode. + * + * @since 2.2.1 + */ + public function hidden_order_itemmeta( $hidden_meta_keys ) { + + if ( apply_filters( 'woocommerce_subscriptions_hide_itemmeta', ! defined( 'WCS_DEBUG' ) || true !== WCS_DEBUG ) ) { + $hidden_meta_keys[] = '_cart_item_key_' . $this->cart_item_key; + } + + return $hidden_meta_keys; + } + /* Deprecated */ /** @@ -985,5 +1112,38 @@ class WCS_Cart_Renewal { public function maybe_add_subscription_fees( $cart ) { _deprecated_function( __METHOD__, '2.0.13', __CLASS__ .'::maybe_add_fees()' ); } + + /** + * After updating renewal order line items, update the values stored in cart item data + * which would now reference old line item IDs. + * + * @since 2.1.3 + */ + public function update_line_item_cart_data( $item_id, $cart_item_data, $cart_item_key ) { + + if ( false === WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + _deprecated_function( __METHOD__, '2.2.0 and WooCommerce 3.0', __CLASS__ . '::add_line_item_meta( $order_item, $cart_item_key, $cart_item )' ); + } + + if ( isset( $cart_item_data[ $this->cart_item_key ] ) ) { + // Update the line_item_id to the new corresponding item_id + WC()->cart->cart_contents[ $cart_item_key ][ $this->cart_item_key ]['line_item_id'] = $item_id; + } + } + + /** + * After updating renewal order line items, update the values stored in cart item data + * which would now reference old line item IDs. + * + * Used when WC 3.0 or newer is active. When prior versions are active, + * @see WCS_Cart_Renewal->update_line_item_cart_data() + * + * @deprecated 2.2.1 + * @since 2.2.0 + */ + public function update_order_item_data_in_cart( $order_item, $cart_item_key, $cart_item ) { + _deprecated_function( __METHOD__, '2.2.1', __CLASS__ . '::add_line_item_meta( $order_item, $cart_item_key, $cart_item )' ); + $this->add_line_item_meta( $order_item, $cart_item_key, $cart_item ); + } } new WCS_Cart_Renewal(); diff --git a/includes/class-wcs-cart-resubscribe.php b/includes/class-wcs-cart-resubscribe.php index 1280239..8bc0b2b 100644 --- a/includes/class-wcs-cart-resubscribe.php +++ b/includes/class-wcs-cart-resubscribe.php @@ -65,7 +65,7 @@ class WCS_Cart_Resubscribe extends WCS_Cart_Renewal { $subscription = wcs_get_subscription( $_GET['resubscribe'] ); $redirect_to = get_permalink( wc_get_page_id( 'myaccount' ) ); - if ( wp_verify_nonce( $_GET['_wpnonce'], $subscription->id ) === false ) { + if ( wp_verify_nonce( $_GET['_wpnonce'], $subscription->get_id() ) === false ) { wc_add_notice( __( 'There was an error with your request to resubscribe. Please try again.', 'woocommerce-subscriptions' ), 'error' ); @@ -73,7 +73,7 @@ class WCS_Cart_Resubscribe extends WCS_Cart_Renewal { wc_add_notice( __( 'That subscription does not exist. Has it been deleted?', 'woocommerce-subscriptions' ), 'error' ); - } elseif ( ! current_user_can( 'subscribe_again', $subscription->id ) ) { + } elseif ( ! current_user_can( 'subscribe_again', $subscription->get_id() ) ) { wc_add_notice( __( 'That doesn\'t appear to be one of your subscriptions.', 'woocommerce-subscriptions' ), 'error' ); @@ -84,7 +84,7 @@ class WCS_Cart_Resubscribe extends WCS_Cart_Renewal { } else { $this->setup_cart( $subscription, array( - 'subscription_id' => $subscription->id, + 'subscription_id' => $subscription->get_id(), ) ); if ( WC()->cart->get_cart_contents_count() != 0 ) { @@ -103,7 +103,7 @@ class WCS_Cart_Resubscribe extends WCS_Cart_Renewal { $order = wc_get_order( $wp->query_vars['order-pay'] ); $order_key = $_GET['key']; - if ( $order->order_key == $order_key && $order->has_status( array( 'pending', 'failed' ) ) && wcs_order_contains_resubscribe( $order ) ) { + if ( wcs_get_objects_property( $order, 'order_key' ) == $order_key && $order->has_status( array( 'pending', 'failed' ) ) && wcs_order_contains_resubscribe( $order ) ) { if ( ! is_user_logged_in() ) { @@ -121,9 +121,9 @@ class WCS_Cart_Resubscribe extends WCS_Cart_Renewal { $subscriptions = wcs_get_subscriptions_for_resubscribe_order( $order ); foreach ( $subscriptions as $subscription ) { - if ( current_user_can( 'subscribe_again', $subscription->id ) ) { + if ( current_user_can( 'subscribe_again', $subscription->get_id() ) ) { $this->setup_cart( $subscription, array( - 'subscription_id' => $subscription->id, + 'subscription_id' => $subscription->get_id(), ) ); } else { wc_add_notice( __( 'That doesn\'t appear to be one of your subscriptions.', 'woocommerce-subscriptions' ), 'error' ); @@ -150,8 +150,9 @@ class WCS_Cart_Resubscribe extends WCS_Cart_Renewal { $cart_item = $this->cart_contains( $recurring_cart ); if ( false !== $cart_item ) { - update_post_meta( $order->id, '_subscription_resubscribe', $cart_item[ $this->cart_item_key ]['subscription_id'], true ); - update_post_meta( $new_subscription->id, '_subscription_resubscribe', $cart_item[ $this->cart_item_key ]['subscription_id'], true ); + wcs_set_objects_property( $order, 'subscription_resubscribe', $cart_item[ $this->cart_item_key ]['subscription_id'] ); + $new_subscription->update_meta_data( '_subscription_resubscribe', $cart_item[ $this->cart_item_key ]['subscription_id'] ); + $new_subscription->save(); } } @@ -170,12 +171,12 @@ class WCS_Cart_Resubscribe extends WCS_Cart_Renewal { $subscription = wcs_get_subscription( $cart_item[ $this->cart_item_key ]['subscription_id'] ); if ( $subscription ) { // Make sure the original subscription terms perisist - $_product = $cart_item_session_data['data']; - $_product->subscription_period = $subscription->billing_period; - $_product->subscription_period_interval = $subscription->billing_interval; + $_product = $cart_item_session_data['data']; + wcs_set_objects_property( $_product, 'subscription_period', $subscription->get_billing_period(), 'set_prop_only' ); + wcs_set_objects_property( $_product, 'subscription_period_interval', $subscription->get_billing_interval(), 'set_prop_only' ); // And don't give another free trial period - $_product->subscription_trial_length = 0; + wcs_set_objects_property( $_product, 'subscription_trial_length', 0, 'set_prop_only' ); } } @@ -254,7 +255,7 @@ class WCS_Cart_Resubscribe extends WCS_Cart_Renewal { foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) { $subscription = $this->get_order( $cart_item ); if ( false !== $subscription && $subscription->has_status( 'pending-cancel' ) ) { - $first_renewal_date = ( '1' != $cart_item['data']->subscription_length ) ? $subscription->get_date( 'end' ) : 0; + $first_renewal_date = ( '1' != WC_Subscriptions_Product::get_length( $cart_item['data'] ) ) ? $subscription->get_date( 'end' ) : 0; break; } } @@ -271,7 +272,7 @@ class WCS_Cart_Resubscribe extends WCS_Cart_Renewal { foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { $subscription = $this->get_order( $cart_item ); if ( false !== $subscription && $subscription->has_status( 'pending-cancel' ) ) { - WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_trial_length = 1; + wcs_set_objects_property( WC()->cart->cart_contents[ $cart_item_key ]['data'], 'subscription_trial_length', 1, 'set_prop_only' ); break; } } @@ -289,7 +290,7 @@ class WCS_Cart_Resubscribe extends WCS_Cart_Renewal { foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { $subscription = $this->get_order( $cart_item ); if ( false !== $subscription && $subscription->has_status( 'pending-cancel' ) ) { - WC()->cart->cart_contents[ $cart_item_key ]['data']->subscription_trial_length = 0; + wcs_set_objects_property( WC()->cart->cart_contents[ $cart_item_key ]['data'], 'subscription_trial_length', 0, 'set_prop_only' ); break; } } diff --git a/includes/class-wcs-cart-switch.php b/includes/class-wcs-cart-switch.php index 453f219..2c6b56c 100644 --- a/includes/class-wcs-cart-switch.php +++ b/includes/class-wcs-cart-switch.php @@ -2,11 +2,13 @@ /** * Subscriptions switching cart * - * * @author Prospress * @since 2.1 */ -class WCS_Cart_Switch extends WCS_Cart_Renewal{ +class WCS_Cart_Switch extends WCS_Cart_Renewal { + + /* The flag used to indicate if a cart item is a renewal */ + public $cart_item_key = 'subscription_switch'; /** * Initialise class hooks & filters when the file is loaded @@ -15,6 +17,9 @@ class WCS_Cart_Switch extends WCS_Cart_Renewal{ */ public function __construct() { + // Attach hooks which depend on WooCommerce constants + add_action( 'woocommerce_loaded', array( &$this, 'attach_dependant_hooks' ), 10 ); + // Set checkout payment URL parameter for subscription switch orders add_filter( 'woocommerce_get_checkout_payment_url', array( &$this, 'get_checkout_payment_url' ), 10, 2 ); @@ -30,7 +35,7 @@ class WCS_Cart_Switch extends WCS_Cart_Renewal{ public function get_checkout_payment_url( $pay_url, $order ) { if ( wcs_order_contains_switch( $order ) ) { - $switch_order_data = get_post_meta( $order->id, '_subscription_switch_data', true ); + $switch_order_data = wcs_get_objects_property( $order, 'subscription_switch_data' ); if ( ! empty( $switch_order_data ) ) { $pay_url = add_query_arg( array( @@ -51,7 +56,6 @@ class WCS_Cart_Switch extends WCS_Cart_Renewal{ * @since 2.1 */ public function maybe_setup_cart() { - global $wp; if ( isset( $_GET['pay_for_order'] ) && isset( $_GET['key'] ) && isset( $wp->query_vars['order-pay'] ) && isset( $_GET['subscription_switch'] ) ) { @@ -61,10 +65,10 @@ class WCS_Cart_Switch extends WCS_Cart_Renewal{ $order_id = ( isset( $wp->query_vars['order-pay'] ) ) ? $wp->query_vars['order-pay'] : absint( $_GET['order_id'] ); $order = wc_get_order( $wp->query_vars['order-pay'] ); - if ( $order->order_key == $order_key && $order->has_status( array( 'pending', 'failed' ) ) && wcs_order_contains_switch( $order ) ) { + if ( wcs_get_objects_property( $order, 'order_key' ) == $order_key && $order->has_status( array( 'pending', 'failed' ) ) && wcs_order_contains_switch( $order ) ) { WC()->cart->empty_cart( true ); - $switch_order_data = get_post_meta( $order_id, '_subscription_switch_data', true ); + $switch_order_data = wcs_get_objects_property( $order, 'subscription_switch_data' ); foreach ( $order->get_items() as $item_id => $line_item ) { @@ -88,28 +92,28 @@ class WCS_Cart_Switch extends WCS_Cart_Renewal{ $order_item = wcs_get_order_item( $item_id, $order ); $product = WC_Subscriptions::get_product( wcs_get_canonical_product_id( $order_item ) ); + $product_id = $product->is_type( 'variation' ) ? $product->get_parent_id() : $product->get_id(); $order_product_data = array( - '_qty' => 0, - '_variation_id' => '', + '_qty' => (int) $line_item['qty'], + '_variation_id' => (int) $line_item['variation_id'], ); $variations = array(); foreach ( $order_item['item_meta'] as $meta_key => $meta_value ) { + $meta_value = is_array( $meta_value ) ? $meta_value[0] : $meta_value; // In WC 3.0 the meta values are no longer arrays - if ( taxonomy_is_product_attribute( $meta_key ) || meta_is_product_attribute( $meta_key, $meta_value[0], $product->id ) ) { - $variations[ $meta_key ] = $meta_value[0]; - $_POST[ 'attribute_' . $meta_key ] = $meta_value[0]; - } else if ( array_key_exists( $meta_key, $order_product_data ) ) { - $order_product_data[ $meta_key ] = (int) $meta_value[0]; + if ( taxonomy_is_product_attribute( $meta_key ) || meta_is_product_attribute( $meta_key, $meta_value, $product_id ) ) { + $variations[ $meta_key ] = $meta_value; + $_POST[ 'attribute_' . $meta_key ] = $meta_value; } } - $passed_validation = apply_filters( 'woocommerce_add_to_cart_validation', true, $product->id, $order_product_data['_qty'], $order_product_data['_variation_id'] ); + $passed_validation = apply_filters( 'woocommerce_add_to_cart_validation', true, $product_id, $order_product_data['_qty'], $order_product_data['_variation_id'] ); if ( $passed_validation ) { - $cart_item_key = WC()->cart->add_to_cart( $product->id, $order_product_data['_qty'], $order_product_data['_variation_id'], $variations, array() ); + $cart_item_key = WC()->cart->add_to_cart( $product_id, $order_product_data['_qty'], $order_product_data['_variation_id'], $variations, array() ); } } } @@ -121,5 +125,26 @@ class WCS_Cart_Switch extends WCS_Cart_Renewal{ exit; } } + + /** + * Store the order line item id so it can be retrieved when we're processing the switch on checkout. + * + * @param string $cart_item_key + * @param int $order_item_id + * @since 2.2.1 + */ + protected function set_cart_item_order_item_id( $cart_item_key, $order_item_id ) { + + foreach ( WC()->cart->recurring_carts as $recurring_cart_key => $recurring_cart ) { + + // If this cart item belongs to this recurring cart + if ( in_array( $cart_item_key, array_keys( $recurring_cart->cart_contents ) ) && isset( WC()->cart->recurring_carts[ $recurring_cart_key ]->cart_contents[ $cart_item_key ][ $this->cart_item_key ] ) ) { + + WC()->cart->recurring_carts[ $recurring_cart_key ]->cart_contents[ $cart_item_key ][ $this->cart_item_key ]['order_line_item_id'] = $order_item_id; + + wc_add_order_item_meta( WC()->cart->recurring_carts[ $recurring_cart_key ]->cart_contents[ $cart_item_key ][ $this->cart_item_key ]['item_id'], '_switched_subscription_new_item_id', $order_item_id, true ); + } + } + } } new WCS_Cart_Switch(); diff --git a/includes/class-wcs-change-payment-method-admin.php b/includes/class-wcs-change-payment-method-admin.php index 7bd8e95..67aabfc 100644 --- a/includes/class-wcs-change-payment-method-admin.php +++ b/includes/class-wcs-change-payment-method-admin.php @@ -19,7 +19,7 @@ class WCS_Change_Payment_Method_Admin { */ public static function display_fields( $subscription ) { - $payment_method = ! empty( $subscription->payment_method ) ? $subscription->payment_method : ''; + $payment_method = $subscription->get_payment_method(); $valid_payment_methods = self::get_valid_payment_methods( $subscription ); if ( ! $subscription->is_manual() && ! isset( $valid_payment_methods[ $payment_method ] ) ) { @@ -129,7 +129,7 @@ class WCS_Change_Payment_Method_Admin { $payment_gateway = ( 'manual' != $payment_method ) ? $payment_gateways[ $payment_method ] : ''; - if ( ! $subscription->is_manual() && property_exists( $subscription->payment_gateway, 'id' ) && ( '' == $payment_gateway || ( $subscription->payment_gateway->id != $payment_gateway->id ) ) ) { + if ( ! $subscription->is_manual() && ( '' == $payment_gateway || $subscription->get_payment_method() != $payment_gateway->id ) ) { // Before updating to a new payment gateway make sure the subscription status is updated with the current gateway $gateway_status = apply_filters( 'wcs_gateway_status_payment_changed', 'cancelled', $subscription, $payment_gateway ); @@ -137,6 +137,7 @@ class WCS_Change_Payment_Method_Admin { } $subscription->set_payment_method( $payment_gateway, $payment_method_meta ); + $subscription->save(); } /** @@ -158,7 +159,7 @@ class WCS_Change_Payment_Method_Admin { foreach ( $available_gateways as $gateway_id => $gateway ) { - if ( $gateway->supports( 'subscription_payment_method_change_admin' ) && 'no' == get_option( WC_Subscriptions_Admin::$option_prefix . '_turn_off_automatic_payments', 'no' ) || ( ! $subscription->is_manual() && $gateway_id == $subscription->payment_method ) ) { + if ( $gateway->supports( 'subscription_payment_method_change_admin' ) && 'no' == get_option( WC_Subscriptions_Admin::$option_prefix . '_turn_off_automatic_payments', 'no' ) || ( ! $subscription->is_manual() && $gateway_id == $subscription->get_payment_method() ) ) { $valid_gateways[ $gateway_id ] = $gateway->get_title(); } diff --git a/includes/class-wcs-download-handler.php b/includes/class-wcs-download-handler.php index 3b7eb82..d031fb3 100644 --- a/includes/class-wcs-download-handler.php +++ b/includes/class-wcs-download-handler.php @@ -50,7 +50,7 @@ class WCS_Download_Handler { */ public static function maybe_revoke_immediate_access( $grant_access, $download_id, $product_id, $order ) { - if ( 'yes' == get_option( WC_Subscriptions_Admin::$option_prefix . '_drip_downloadable_content_on_renewal', 'no' ) && ( wcs_is_subscription( $order->id ) || wcs_order_contains_subscription( $order, 'any' ) ) ) { + if ( 'yes' == get_option( WC_Subscriptions_Admin::$option_prefix . '_drip_downloadable_content_on_renewal', 'no' ) && ( wcs_is_subscription( wcs_get_objects_property( $order, 'id' ) ) || wcs_order_contains_subscription( $order, 'any' ) ) ) { $grant_access = false; } return $grant_access; @@ -79,20 +79,20 @@ class WCS_Download_Handler { $_product = $subscription->get_product_from_item( $item ); if ( $_product && $_product->exists() && $_product->is_downloadable() ) { - $downloads = $_product->get_files(); + $downloads = wcs_get_objects_property( $_product, 'downloads' ); $product_id = wcs_get_canonical_product_id( $item ); foreach ( array_keys( $downloads ) as $download_id ) { // grant access on subscription if it does not already exist - if ( ! $wpdb->get_var( $wpdb->prepare( "SELECT download_id FROM {$wpdb->prefix}woocommerce_downloadable_product_permissions WHERE `order_id` = %d AND `product_id` = %d AND `download_id` = '%s'", $subscription->id, $product_id, $download_id ) ) ) { + if ( ! $wpdb->get_var( $wpdb->prepare( "SELECT download_id FROM {$wpdb->prefix}woocommerce_downloadable_product_permissions WHERE `order_id` = %d AND `product_id` = %d AND `download_id` = '%s'", $subscription->get_id(), $product_id, $download_id ) ) ) { wc_downloadable_file_permission( $download_id, $product_id, $subscription, $item['qty'] ); } - self::revoke_downloadable_file_permission( $product_id, $order_id, $order->user_id ); + self::revoke_downloadable_file_permission( $product_id, $order_id, $order->get_user_id() ); } } } } - update_post_meta( $subscription->id, '_download_permissions_granted', 1 ); + update_post_meta( $subscription->get_id(), '_download_permissions_granted', 1 ); } } @@ -147,7 +147,11 @@ class WCS_Download_Handler { foreach ( $subscriptions as $subscription ) { foreach ( $subscription->get_items() as $subscription_item ) { if ( wcs_get_canonical_product_id( $subscription_item ) === $product_id ) { - $files = $subscription->get_item_downloads( $subscription_item ); + if ( is_callable( array( $subscription_item, 'get_item_downloads' ) ) ) { // WC 3.0+ + $files = $subscription_item->get_item_downloads( $subscription_item ); + } else { // WC < 3.0 + $files = $subscription->get_item_downloads( $subscription_item ); + } } } } @@ -195,7 +199,7 @@ class WCS_Download_Handler { /** * Grant downloadable file access to any newly added files on any existing subscriptions - * which don't have existing permissions. + * which don't have existing permissions pre WC3.0 and all subscriptions post WC3.0. * * @param int $product_id * @param int $variation_id @@ -207,7 +211,7 @@ class WCS_Download_Handler { $product_id = ( $variation_id ) ? $variation_id : $product_id; $product = wc_get_product( $product_id ); - $existing_download_ids = array_keys( (array) $product->get_files() ); + $existing_download_ids = array_keys( (array) wcs_get_objects_property( $product, 'downloads' ) ); $downloadable_ids = array_keys( (array) $downloadable_files ); $new_download_ids = array_filter( array_diff( $downloadable_ids, $existing_download_ids ) ); @@ -218,8 +222,8 @@ class WCS_Download_Handler { foreach ( $subscriptions as $subscription_id ) { - // only grant permissions to subscriptions which have no permissions for this product - if ( ! in_array( $subscription_id, $existing_permissions ) ) { + // Grant permissions to subscriptions which have no permissions for this product, pre WC3.0, or all subscriptions, post WC3.0, as WC doesn't grant them retrospectively anymore. + if ( ! in_array( $subscription_id, $existing_permissions ) || false === WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { $subscription = wcs_get_subscription( $subscription_id ); foreach ( $new_download_ids as $download_id ) { diff --git a/includes/class-wcs-limiter.php b/includes/class-wcs-limiter.php index e6249bc..8bb8716 100644 --- a/includes/class-wcs-limiter.php +++ b/includes/class-wcs-limiter.php @@ -75,9 +75,11 @@ class WCS_Limiter { } break; case 'subscription_variation' : - if ( 'no' != wcs_get_product_limitation( $product->parent ) && ! empty( WC()->cart->cart_contents ) && ! wcs_is_order_received_page() && ! wcs_is_paypal_api_page() ) { + $variable_product = wc_get_product( $product->get_parent_id() ); + if ( 'no' != wcs_get_product_limitation( $variable_product ) && ! empty( WC()->cart->cart_contents ) && ! wcs_is_order_received_page() && ! wcs_is_paypal_api_page() ) { foreach ( WC()->cart->cart_contents as $cart_item ) { - if ( $product->id == $cart_item['data']->id && $product->variation_id != $cart_item['data']->variation_id ) { + // If the variable product is limited, it can't be purchased if its the same variation + if ( $product->get_parent_id() == wcs_get_objects_property( $cart_item['data'], 'parent_id' ) && $product->get_id() != $cart_item['data']->get_id() ) { $purchasable = false; break; } @@ -98,21 +100,21 @@ class WCS_Limiter { public static function is_purchasable_product( $is_purchasable, $product ) { //Set up cache - if ( ! isset( self::$is_purchasable_cache[ $product->id ] ) ) { - self::$is_purchasable_cache[ $product->id ] = array(); + if ( ! isset( self::$is_purchasable_cache[ $product->get_id() ] ) ) { + self::$is_purchasable_cache[ $product->get_id() ] = array(); } - if ( ! isset( self::$is_purchasable_cache[ $product->id ]['standard'] ) ) { - self::$is_purchasable_cache[ $product->id ]['standard'] = $is_purchasable; + if ( ! isset( self::$is_purchasable_cache[ $product->get_id() ]['standard'] ) ) { + self::$is_purchasable_cache[ $product->get_id() ]['standard'] = $is_purchasable; - if ( WC_Subscriptions_Product::is_subscription( $product->id ) && 'no' != wcs_get_product_limitation( $product ) && ! wcs_is_order_received_page() && ! wcs_is_paypal_api_page() ) { + if ( WC_Subscriptions_Product::is_subscription( $product->get_id() ) && 'no' != wcs_get_product_limitation( $product ) && ! wcs_is_order_received_page() && ! wcs_is_paypal_api_page() ) { - if ( wcs_is_product_limited_for_user( $product ) && ! self::order_awaiting_payment_for_product( $product->id ) ) { - self::$is_purchasable_cache[ $product->id ]['standard'] = false; + if ( wcs_is_product_limited_for_user( $product ) && ! self::order_awaiting_payment_for_product( $product->get_id() ) ) { + self::$is_purchasable_cache[ $product->get_id() ]['standard'] = false; } } } - return self::$is_purchasable_cache[ $product->id ]['standard']; + return self::$is_purchasable_cache[ $product->get_id() ]['standard']; } @@ -132,7 +134,7 @@ class WCS_Limiter { if ( ! isset( self::$is_purchasable_cache[ $product_key ]['switch'] ) ) { - if ( false === $is_purchasable && wcs_is_product_switchable_type( $product ) && WC_Subscriptions_Product::is_subscription( $product->id ) && 'no' != wcs_get_product_limitation( $product ) && is_user_logged_in() && wcs_user_has_subscription( 0, $product->id, wcs_get_product_limitation( $product ) ) ) { + if ( false === $is_purchasable && wcs_is_product_switchable_type( $product ) && WC_Subscriptions_Product::is_subscription( $product->get_id() ) && 'no' != wcs_get_product_limitation( $product ) && is_user_logged_in() && wcs_user_has_subscription( 0, $product->get_id(), wcs_get_product_limitation( $product ) ) ) { //Adding to cart if ( isset( $_GET['switch-subscription'] ) ) { @@ -146,7 +148,7 @@ class WCS_Limiter { } elseif ( isset( WC()->session->cart ) ) { foreach ( WC()->session->cart as $cart_item_key => $cart_item ) { - if ( $product->id == $cart_item['product_id'] && isset( $cart_item['subscription_switch'] ) ) { + if ( $product->get_id() == $cart_item['product_id'] && isset( $cart_item['subscription_switch'] ) ) { $is_purchasable = true; break; } @@ -172,7 +174,7 @@ class WCS_Limiter { $subscription_id = ( isset( $_GET['resubscribe'] ) ) ? absint( $_GET['resubscribe'] ) : $resubscribe_cart_item['subscription_resubscribe']['subscription_id']; $subscription = wcs_get_subscription( $subscription_id ); - if ( false != $subscription && $subscription->has_product( $product->id ) && wcs_can_user_resubscribe_to( $subscription ) ) { + if ( false != $subscription && $subscription->has_product( $product->get_id() ) && wcs_can_user_resubscribe_to( $subscription ) ) { $is_purchasable = true; } @@ -183,7 +185,7 @@ class WCS_Limiter { // Restoring cart from session, so need to check the cart in the session (wcs_cart_contains_renewal() only checks the cart) } elseif ( WC()->session->cart ) { foreach ( WC()->session->cart as $cart_item_key => $cart_item ) { - if ( $product->id == $cart_item['product_id'] && ( isset( $cart_item['subscription_renewal'] ) || isset( $cart_item['subscription_resubscribe'] ) ) ) { + if ( $product->get_id() == $cart_item['product_id'] && ( isset( $cart_item['subscription_renewal'] ) || isset( $cart_item['subscription_resubscribe'] ) ) ) { $is_purchasable = true; break; } @@ -216,7 +218,7 @@ class WCS_Limiter { if ( $item['product_id'] == $product_id || $item['variation_id'] == $product_id ) { $subscriptions = wcs_get_subscriptions( array( - 'order_id' => $order->id, + 'order_id' => wcs_get_objects_property( $order, 'id' ), 'product_id' => $product_id, ) ); diff --git a/includes/class-wcs-remove-item.php b/includes/class-wcs-remove-item.php index 86e0c67..fcf5e4e 100644 --- a/includes/class-wcs-remove-item.php +++ b/includes/class-wcs-remove-item.php @@ -76,7 +76,7 @@ class WCS_Remove_Item { // handle undo request $removed_item = WC()->session->get( 'removed_subscription_items', array() ); - if ( ! empty( $removed_item[ $item_id ] ) && $subscription->id == $removed_item[ $item_id ] ) { + if ( ! empty( $removed_item[ $item_id ] ) && $subscription->get_id() == $removed_item[ $item_id ] ) { // restore the item wc_update_order_item( $item_id, array( 'order_item_type' => 'line_item' ) ); @@ -85,6 +85,7 @@ class WCS_Remove_Item { WC()->session->set( 'removed_subscription_items', $removed_item ); // restore download permissions for this item + $subscription = wcs_get_subscription( $subscription->get_id() ); $line_items = $subscription->get_items(); $line_item = $line_items[ $item_id ]; $_product = $subscription->get_product_from_item( $line_item ); @@ -92,7 +93,7 @@ class WCS_Remove_Item { if ( $_product && $_product->exists() && $_product->is_downloadable() ) { - $downloads = $_product->get_files(); + $downloads = wcs_get_objects_property( $_product, 'downloads' ); foreach ( array_keys( $downloads ) as $download_id ) { wc_downloadable_file_permission( $download_id, $product_id, $subscription, $line_item['qty'] ); @@ -108,14 +109,14 @@ class WCS_Remove_Item { } else { // handle remove item requests - WC()->session->set( 'removed_subscription_items', array( $item_id => $subscription->id ) ); + WC()->session->set( 'removed_subscription_items', array( $item_id => $subscription->get_id() ) ); // remove download access for the item $line_items = $subscription->get_items(); $line_item = $line_items[ $item_id ]; $product_id = wcs_get_canonical_product_id( $line_item ); - WCS_Download_Handler::revoke_downloadable_file_permission( $product_id, $subscription->id, $subscription->get_user_id() ); + WCS_Download_Handler::revoke_downloadable_file_permission( $product_id, $subscription->get_id(), $subscription->get_user_id() ); // remove the line item from subscription but preserve its data in the DB wc_update_order_item( $item_id, array( 'order_item_type' => 'line_item_removed' ) ); @@ -124,10 +125,15 @@ class WCS_Remove_Item { $subscription->add_order_note( sprintf( _x( 'Customer removed "%1$s" (Product ID: #%2$d) via the My Account page.', 'used in order note', 'woocommerce-subscriptions' ), wcs_get_line_item_name( $line_item ), $product_id ) ); // translators: placeholders are 1$: item name, and, 2$: opening and, 3$: closing link tags - wc_add_notice( sprintf( __( 'You have successfully removed "%1$s" from your subscription. %2$sUndo?%3$s', 'woocommerce-subscriptions' ), $line_item['name'], '', '' ) ); + wc_add_notice( sprintf( __( 'You have successfully removed "%1$s" from your subscription. %2$sUndo?%3$s', 'woocommerce-subscriptions' ), $line_item['name'], '', '' ) ); } } + /** + * In WooCommerce 3.0 the subscription object and its items override the database with their current content, + * so we lost the changes we just did with `wc_update_order_item`. Re-reading the object fixes this problem. + */ + $subscription = wcs_get_subscription( $subscription->get_id() ); $subscription->calculate_totals(); wp_safe_redirect( $subscription->get_view_order_url() ); exit; @@ -155,7 +161,7 @@ class WCS_Remove_Item { wc_add_notice( __( 'Security error. Please contact us if you need assistance.', 'woocommerce-subscriptions' ), 'error' ); - } elseif ( ! current_user_can( 'edit_shop_subscription_line_items', $subscription->id ) ) { + } elseif ( ! current_user_can( 'edit_shop_subscription_line_items', $subscription->get_id() ) ) { wc_add_notice( __( 'You cannot modify a subscription that does not belong to you.', 'woocommerce-subscriptions' ), 'error' ); diff --git a/includes/class-wcs-retry-manager.php b/includes/class-wcs-retry-manager.php index 907cdb1..b5b12ec 100644 --- a/includes/class-wcs-retry-manager.php +++ b/includes/class-wcs-retry-manager.php @@ -134,7 +134,7 @@ class WCS_Retry_Manager { if ( $subscription->get_date( 'payment_retry' ) > 0 ) { $last_order = $subscription->get_last_order( 'all' ); - $last_retry = ( $last_order ) ? self::store()->get_last_retry_for_order( $last_order->id ) : null; + $last_retry = ( $last_order ) ? self::store()->get_last_retry_for_order( wcs_get_objects_property( $last_order, 'id' ) ) : null; if ( null !== $last_retry && 'cancelled' !== $last_retry->get_status() && null !== ( $last_retry_rule = $last_retry->get_rule() ) ) { @@ -206,17 +206,17 @@ class WCS_Retry_Manager { return; } - $retry_count = self::store()->get_retry_count_for_order( $last_order->id ); + $retry_count = self::store()->get_retry_count_for_order( wcs_get_objects_property( $last_order, 'id' ) ); - if ( self::rules()->has_rule( $retry_count, $last_order->id ) ) { + if ( self::rules()->has_rule( $retry_count, wcs_get_objects_property( $last_order, 'id' ) ) ) { - $retry_rule = self::rules()->get_rule( $retry_count, $last_order->id ); + $retry_rule = self::rules()->get_rule( $retry_count, wcs_get_objects_property( $last_order, 'id' ) ); do_action( 'woocommerce_subscriptions_before_apply_retry_rule', $retry_rule, $last_order, $subscription ); $retry_id = self::store()->save( new WCS_Retry( array( 'status' => 'pending', - 'order_id' => $last_order->id, + 'order_id' => wcs_get_objects_property( $last_order, 'id' ), 'date_gmt' => gmdate( 'Y-m-d H:i:s', gmdate( 'U' ) + $retry_rule->get_retry_interval() ), 'rule_raw' => $retry_rule->get_raw_data(), ) ) ); @@ -257,7 +257,7 @@ class WCS_Retry_Manager { } $subscriptions = wcs_get_subscriptions_for_renewal_order( $last_order ); - $last_retry = self::store()->get_last_retry_for_order( $last_order->id ); + $last_retry = self::store()->get_last_retry_for_order( wcs_get_objects_property( $last_order, 'id' ) ); // we only need to retry the payment if we have applied a retry rule for the order and it still needs payment if ( null !== $last_retry && 'pending' === $last_retry->get_status() ) { @@ -302,7 +302,7 @@ class WCS_Retry_Manager { WC_Subscriptions_Payment_Gateways::trigger_gateway_renewal_payment_hook( $last_order ); // Now that we've attempted to process the payment, refresh the order - $last_order = wc_get_order( $last_order->id ); + $last_order = wc_get_order( wcs_get_objects_property( $last_order, 'id' ) ); // if the order still needs payment, payment failed if ( $last_order->needs_payment() ) { diff --git a/includes/class-wcs-select2.php b/includes/class-wcs-select2.php new file mode 100644 index 0000000..a0ca10e --- /dev/null +++ b/includes/class-wcs-select2.php @@ -0,0 +1,123 @@ + 'hidden', + 'placeholder' => '', + 'class' => '', + ); + + protected $attributes = array(); + + /** + * Constructor. + * + * @param array $attributes The attributes that make up the Select2 element + * @since 2.2 + */ + public function __construct( array $attributes ) { + $this->attributes = array_merge( $this->default_attributes, $attributes ); + } + + /** + * Render a select2 element given an array of attributes. + * + * @param array $attributes Select2 attributes + * @since 2.2 + */ + public static function render( array $attributes ) { + $select2 = new self( $attributes ); + $select2->print_html(); + } + + /** + * Get a property name. + * + * @param string $property + * @return string class, name, id or data-$property; + * @since 2.2 + */ + protected function get_property_name( $property ) { + $data_properties = WC_Subscriptions::is_woocommerce_pre( '3.0' ) ? array( 'placeholder', 'selected', 'allow_clear' ) : array( 'placeholder', 'allow_clear' ); + return in_array( $property, $data_properties ) ? 'data-' . $property : $property; + } + + /** + * Returns a list of properties/values (HTML) from an array. All the values + * are escaped. + * + * @param $attributes List of HTML attributes with values + * @return string + * @since 2.2 + */ + protected function attributes_to_html( array $attributes ) { + + $html = array(); + + foreach ( $attributes as $property => $value ) { + if ( ! is_scalar( $value ) ) { + $value = wcs_json_encode( $value ); + } + + $html[] = $this->get_property_name( $property ) . '="' . esc_attr( $value, 'woocommerce-subscriptions' ) . '"'; + } + + return implode( ' ', $html ); + } + + /** + * Prints the HTML to show the Select2 field. + * + * @since 2.2 + */ + public function print_html() { + $allowed_attributes = array_map( array( $this, 'get_property_name' ), array_keys( $this->attributes ) ); + $allowed_attributes = array_fill_keys( $allowed_attributes, array() ); + + echo wp_kses( $this->get_html(), array( 'input' => $allowed_attributes, 'select' => $allowed_attributes, 'option' => $allowed_attributes ) ); + } + + /** + * Returns the HTML needed to show the Select2 field + * + * @return string + * @since 2.2 + */ + public function get_html() { + $html = "\n\n"; + + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + $html .= 'attributes_to_html( $this->attributes ); + $html .= '/>'; + } else { + $attributes = $this->attributes; + $selected_value = isset( $attributes['selected'] ) ? $attributes['selected'] : ''; + $attributes['selected'] = 'selected'; + + $option_attributes = array_intersect_key( $attributes, array_flip( array( 'value', 'selected' ) ) ); + $select_attributes = array_diff_key( $attributes, $option_attributes ); + + $html .= ''; + } + + $html .= "\n\n"; + + return $html; + } +} diff --git a/includes/class-wcs-user-change-status-handler.php b/includes/class-wcs-user-change-status-handler.php index fbbdad0..2161b50 100644 --- a/includes/class-wcs-user-change-status-handler.php +++ b/includes/class-wcs-user-change-status-handler.php @@ -95,11 +95,11 @@ class WCS_User_Change_Status_Handler { WC_Subscriptions::add_notice( __( 'That subscription does not exist. Please contact us if you need assistance.', 'woocommerce-subscriptions' ), 'error' ); return false; - } elseif ( ! empty( $wpnonce ) && wp_verify_nonce( $wpnonce, $subscription->id . $subscription->get_status() ) === false ) { + } elseif ( ! empty( $wpnonce ) && wp_verify_nonce( $wpnonce, $subscription->get_id() . $subscription->get_status() ) === false ) { WC_Subscriptions::add_notice( __( 'Security error. Please contact us if you need assistance.', 'woocommerce-subscriptions' ), 'error' ); return false; - } elseif ( ! user_can( $user_id, 'edit_shop_subscription_status', $subscription->id ) ) { + } elseif ( ! user_can( $user_id, 'edit_shop_subscription_status', $subscription->get_id() ) ) { WC_Subscriptions::add_notice( __( 'That doesn\'t appear to be one of your subscriptions.', 'woocommerce-subscriptions' ), 'error' ); return false; diff --git a/includes/class-wcs-webhooks.php b/includes/class-wcs-webhooks.php index 132ce51..070a7e0 100644 --- a/includes/class-wcs-webhooks.php +++ b/includes/class-wcs-webhooks.php @@ -104,16 +104,31 @@ class WCS_Webhooks { public static function create_payload( $payload, $resource, $resource_id, $id ) { if ( 'subscription' == $resource && empty( $payload ) && wcs_is_subscription( $resource_id ) ) { - $webhook = new WC_Webhook( $id ); $event = $webhook->get_event(); $current_user = get_current_user_id(); wp_set_current_user( $webhook->get_user_id() ); - WC()->api->WC_API_Subscriptions->register_routes( array() ); + $webhook_api_version = ( method_exists( $webhook, 'get_api_version' ) ) ? $webhook->get_api_version() : 'legacy_v3'; - $payload = WC()->api->WC_API_Subscriptions->get_subscription( $resource_id ); + switch ( $webhook_api_version ) { + case 'legacy_v3': + WC()->api->WC_API_Subscriptions->register_routes( array() ); + $payload = WC()->api->WC_API_Subscriptions->get_subscription( $resource_id ); + break; + case 'wp_api_v1': + case 'wp_api_v2': + require_once( 'api/class-wc-rest-subscriptions-controller.php' ); + + $request = new WP_REST_Request( 'GET' ); + $controller = new WC_REST_Subscriptions_Controller; + + $request->set_param( 'id', $resource_id ); + $result = $controller->get_item( $request ); + $payload = isset( $result->data ) ? $result->data : array(); + break; + } wp_set_current_user( $current_user ); } @@ -154,7 +169,7 @@ class WCS_Webhooks { * @since 2.0 */ public static function add_subscription_created_callback( $subscription ) { - do_action( 'wcs_webhook_subscription_created', $subscription->id ); + do_action( 'wcs_webhook_subscription_created', $subscription->get_id() ); } /** @@ -163,7 +178,7 @@ class WCS_Webhooks { * @since 2.0 */ public static function add_subscription_updated_callback( $subscription ) { - do_action( 'wcs_webhook_subscription_updated', $subscription->id ); + do_action( 'wcs_webhook_subscription_updated', $subscription->get_id() ); } /** diff --git a/includes/data-stores/class-wcs-subscription-data-store-cpt.php b/includes/data-stores/class-wcs-subscription-data-store-cpt.php new file mode 100644 index 0000000..cd3c799 --- /dev/null +++ b/includes/data-stores/class-wcs-subscription-data-store-cpt.php @@ -0,0 +1,262 @@ + prop_key + * + * Used to read/update props on the subscription. + * + * @since 2.2.0 + * @var array + */ + protected $subscription_meta_keys_to_props = array( + '_billing_period' => 'billing_period', + '_billing_interval' => 'billing_interval', + '_suspension_count' => 'suspension_count', + '_cancelled_email_sent' => 'cancelled_email_sent', + '_requires_manual_renewal' => 'requires_manual_renewal', + '_trial_period' => 'trial_period', + + '_schedule_trial_end' => 'schedule_trial_end', + '_schedule_next_payment' => 'schedule_next_payment', + '_schedule_cancelled' => 'schedule_cancelled', + '_schedule_end' => 'schedule_end', + '_schedule_payment_retry' => 'schedule_payment_retry', + + '_subscription_switch_data' => 'switch_data', + ); + + /** + * Constructor. + */ + public function __construct() { + // Exclude the subscription related meta data we set and manage manually from the objects "meta" data + $this->internal_meta_keys = array_merge( $this->internal_meta_keys, $this->subscription_internal_meta_keys ); + } + + /** + * Create a new subscription in the database. + * + * @param WC_Subscription $subscription + * @since 2.2.0 + */ + public function create( &$subscription ) { + parent::create( $subscription ); + do_action( 'woocommerce_new_subscription', $subscription->get_id() ); + } + + /** + * Read subscription data. + * + * @param WC_Subscription $subscription + * @param object $post_object + * @since 2.2.0 + */ + protected function read_order_data( &$subscription, $post_object ) { + + // Set all order meta data, as well as data defined by WC_Subscription::$extra_keys which has corresponding setter methods + parent::read_order_data( $subscription, $post_object ); + + $props_to_set = $dates_to_set = array(); + + foreach ( $this->subscription_meta_keys_to_props as $meta_key => $prop_key ) { + if ( 0 === strpos( $prop_key, 'schedule' ) || in_array( $meta_key, $this->subscription_internal_meta_keys ) ) { + + $meta_value = get_post_meta( $subscription->get_id(), $meta_key, true ); + + // Dates are set via update_dates() to make sure relationships between dates are validated + if ( 0 === strpos( $prop_key, 'schedule' ) ) { + $date_type = str_replace( 'schedule_', '', $prop_key ); + $dates_to_set[ $date_type ] = ( false == $meta_value ) ? 0 : $meta_value; + } else { + $props_to_set[ $prop_key ] = $meta_value; + } + } + } + + $subscription->update_dates( $dates_to_set ); + $subscription->set_props( $props_to_set ); + } + + /** + * Update subscription in the database. + * + * @param WC_Subscription $subscription + * @since 2.2.0 + */ + public function update( &$subscription ) { + parent::update( $subscription ); + do_action( 'woocommerce_update_subscription', $subscription->get_id() ); + } + + /** + * Update post meta for a subscription based on it's settings in the WC_Subscription class. + * + * @param WC_Subscription $subscription + * @since 2.2.0 + */ + protected function update_post_meta( &$subscription ) { + + $updated_props = array(); + + foreach ( $this->get_props_to_update( $subscription, $this->subscription_meta_keys_to_props ) as $meta_key => $prop ) { + $meta_value = ( 'schedule_' == substr( $prop, 0, 9 ) ) ? $subscription->get_date( $prop ) : $subscription->{"get_$prop"}( 'edit' ); + + // Store as a string of the boolean for backward compatibility (yep, it's gross) + if ( 'requires_manual_renewal' === $prop ) { + $meta_value = $meta_value ? 'true' : 'false'; + } + + update_post_meta( $subscription->get_id(), $meta_key, $meta_value ); + $updated_props[] = $prop; + } + + do_action( 'woocommerce_subscription_object_updated_props', $subscription, $updated_props ); + + parent::update_post_meta( $subscription ); + } + + /** + * Get amount refunded for all related orders. + * + * @param WC_Subscription $subscription + * @return string + * @since 2.2.0 + */ + public function get_total_refunded( $subscription ) { + + $total = 0; + + foreach ( $subscription->get_related_orders( 'all' ) as $order ) { + $total += parent::get_total_refunded( $order ); + } + + return $total; + } + + /** + * Get the total tax refunded for all related orders. + * + * @param WC_Subscription $subscription + * @return float + * @since 2.2.0 + */ + public function get_total_tax_refunded( $subscription ) { + + $total = 0; + + foreach ( $subscription->get_related_orders() as $order ) { + $total += parent::get_total_tax_refunded( $order ); + } + + return abs( $total ); + } + + /** + * Get the total shipping refunded for all related orders. + * + * @param WC_Subscription $subscription + * @return float + * @since 2.2.0 + */ + public function get_total_shipping_refunded( $subscription ) { + + $total = 0; + + foreach ( $subscription->get_related_orders( 'all' ) as $order ) { + $total += parent::get_total_shipping_refunded( $order ); + } + + return abs( $total ); + } + + /** + * Return count of subscriptions with type. + * + * @param string $type + * @return int + * @since 2.2.0 + */ + public function get_order_count( $status ) { + global $wpdb; + return absint( $wpdb->get_var( $wpdb->prepare( "SELECT COUNT( * ) FROM {$wpdb->posts} WHERE post_type = 'shop_subscription' AND post_status = %s", $status ) ) ); + } + + /** + * Get all subscriptions matching the passed in args. + * + * @see wc_get_orders() + * @param array $args + * @return array of orders + * @since 2.2.0 + */ + public function get_orders( $args = array() ) { + + $parent_args = $args = wp_parse_args( $args, array( + 'type' => 'shop_subscription', + 'return' => 'objects', + ) ); + + // We only want IDs from the parent method + $parent_args['return'] = 'ids'; + + $subscriptions = parent::get_orders( $parent_args ); + + if ( $args['paginate'] ) { + + if ( 'objects' === $args['return'] ) { + $return = array_map( 'wcs_get_subscription', $subscriptions->orders ); + } else { + $return = $subscriptions->orders; + } + + return (object) array( + 'orders' => $return, + 'total' => $subscriptions->total, + 'max_num_pages' => $subscriptions->max_num_pages, + ); + + } else { + + if ( 'objects' === $args['return'] ) { + $return = array_map( 'wcs_get_subscription', $subscriptions ); + } else { + $return = $subscriptions; + } + + return $return; + } + } +} diff --git a/includes/deprecated/class-wcs-deprecated-filter-hooks.php b/includes/deprecated/class-wcs-deprecated-filter-hooks.php new file mode 100644 index 0000000..051f2b4 --- /dev/null +++ b/includes/deprecated/class-wcs-deprecated-filter-hooks.php @@ -0,0 +1,55 @@ + old_hook ) + * + * @var array + */ + protected $deprecated_hooks = array( + 'woocommerce_subscription_get_currency' => 'woocommerce_get_currency', + 'woocommerce_subscription_get_discount_total' => 'woocommerce_order_amount_discount_total', + 'woocommerce_subscription_get_discount_tax' => 'woocommerce_order_amount_discount_tax', + 'woocommerce_subscription_get_shipping_total' => 'woocommerce_order_amount_shipping_total', + 'woocommerce_subscription_get_shipping_tax' => 'woocommerce_order_amount_shipping_tax', + 'woocommerce_subscription_get_cart_tax' => 'woocommerce_order_amount_cart_tax', + 'woocommerce_subscription_get_total' => 'woocommerce_order_amount_total', + 'woocommerce_subscription_get_total_tax' => 'woocommerce_order_amount_total_tax', + 'woocommerce_subscription_get_total_discount' => 'woocommerce_order_amount_total_discount', + 'woocommerce_subscription_get_subtotal' => 'woocommerce_order_amount_subtotal', + 'woocommerce_subscription_get_tax_totals' => 'woocommerce_order_tax_totals', + ); + + /** + * Display a deprecated notice for old hooks. + * + * @param string $old_hook + * @param string $new_hook + * @since 2.2.0 + */ + protected function display_notice( $old_hook, $new_hook ) { + wcs_deprecated_function( sprintf( 'The "%s" hook uses out of date data structures and', esc_html( $old_hook ) ), '2.2.0', esc_html( $new_hook ) . ' to filter subscription properties' ); + } +} +new WCS_Deprecated_Filter_Hooks(); diff --git a/includes/deprecated/class-wcs-filter-deprecator.php b/includes/deprecated/class-wcs-filter-deprecator.php index d3259bb..e5354e7 100644 --- a/includes/deprecated/class-wcs-filter-deprecator.php +++ b/includes/deprecated/class-wcs-filter-deprecator.php @@ -132,7 +132,7 @@ class WCS_Filter_Deprecator extends WCS_Hook_Deprecator { // Old arg spec: $next_payment_date, $order, $product_id, $type, $from_date, $from_date_arg case 'woocommerce_subscriptions_calculated_next_payment_date' : $subscription = $new_callback_args[1]; - $last_payment = $subscription->get_date( 'last_payment' ); + $last_payment = $subscription->get_date( 'last_order_date_created' ); $return_value = apply_filters( $old_hook, $return_value, self::get_order( $subscription ), self::get_product_id( $subscription ), 'mysql', $last_payment, $last_payment ); break; @@ -168,10 +168,10 @@ class WCS_Filter_Deprecator extends WCS_Hook_Deprecator { // Old arg spec: $order_items, $original_order_id, $renewal_order_id, $product_id, $new_order_role if ( 'woocommerce_subscriptions_renewal_order_items' == $old_hook ) { - $return_value = apply_filters( $old_hook, $return_value, $original_id, $renewal_order->id, self::get_product_id( $subscription ), $order_role ); + $return_value = apply_filters( $old_hook, $return_value, $original_id, wcs_get_objects_property( $renewal_order, 'id' ), self::get_product_id( $subscription ), $order_role ); } else { // Old arg spec: $order_meta_query, $original_order_id, $renewal_order_id, $new_order_role - $return_value = apply_filters( $old_hook, $return_value, $original_id, $renewal_order->id, $order_role ); + $return_value = apply_filters( $old_hook, $return_value, $original_id, wcs_get_objects_property( $renewal_order, 'id' ), $order_role ); } break; @@ -202,7 +202,7 @@ class WCS_Filter_Deprecator extends WCS_Hook_Deprecator { $renewal_order_id = apply_filters( $old_hook, $return_value->id, self::get_order( $subscription ), self::get_product_id( $subscription ), $order_role ); // Only change the return value if a new filter was returned by the hook - if ( $renewal_order_id !== $renewal_order->id ) { + if ( wcs_get_objects_property( $renewal_order, 'id' ) !== $renewal_order_id ) { $return_value = wc_get_order( $renewal_order_id ); } break; @@ -326,7 +326,7 @@ class WCS_Filter_Deprecator extends WCS_Hook_Deprecator { $args->subscription = wcs_get_subscription_in_deprecated_structure( $subscription ); $args->user_id = $subscription->get_user_id(); $args->order = self::get_order( $subscription ); - $args->payment_gateway = $subscription->payment_method; + $args->payment_gateway = $subscription->get_payment_method(); $args->order_uses_manual_payments = $subscription->is_manual(); $return_value = apply_filters( $old_hook, $return_value, $args ); break; diff --git a/includes/emails/class-wcs-email-cancelled-subscription.php b/includes/emails/class-wcs-email-cancelled-subscription.php index 283407f..e9827ed 100644 --- a/includes/emails/class-wcs-email-cancelled-subscription.php +++ b/includes/emails/class-wcs-email-cancelled-subscription.php @@ -64,7 +64,7 @@ class WCS_Email_Cancelled_Subscription extends WC_Email { return; } - update_post_meta( $subscription->id, '_cancelled_email_sent', 'true' ); + update_post_meta( $subscription->get_id(), '_cancelled_email_sent', 'true' ); $this->send( $this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() ); } diff --git a/includes/emails/class-wcs-email-customer-completed-renewal-order.php b/includes/emails/class-wcs-email-customer-completed-renewal-order.php index 0e797ab..9821d43 100644 --- a/includes/emails/class-wcs-email-customer-completed-renewal-order.php +++ b/includes/emails/class-wcs-email-customer-completed-renewal-order.php @@ -55,24 +55,24 @@ class WCS_Email_Completed_Renewal_Order extends WC_Email_Customer_Completed_Orde * @access public * @return void */ - function trigger( $order_id ) { + function trigger( $order_id, $order = null ) { if ( $order_id ) { $this->object = new WC_Order( $order_id ); - $this->recipient = $this->object->billing_email; + $this->recipient = wcs_get_objects_property( $this->object, 'billing_email' ); $order_date_index = array_search( '{order_date}', $this->find ); if ( false === $order_date_index ) { - $this->find[] = '{order_date}'; - $this->replace[] = date_i18n( wc_date_format(), wcs_date_to_time( $this->object->order_date ) ); + $this->find['order_date'] = '{order_date}'; + $this->replace['order_date'] = wcs_format_datetime( wcs_get_objects_property( $this->object, 'date_created' ) ); } else { - $this->replace[ $order_date_index ] = date_i18n( wc_date_format(), wcs_date_to_time( $this->object->order_date ) ); + $this->replace[ $order_date_index ] = wcs_format_datetime( wcs_get_objects_property( $this->object, 'date_created' ) ); } $order_number_index = array_search( '{order_number}', $this->find ); if ( false === $order_number_index ) { - $this->find[] = '{order_number}'; - $this->replace[] = $this->object->get_order_number(); + $this->find['order_number'] = '{order_number}'; + $this->replace['order_number'] = $this->object->get_order_number(); } else { $this->replace[ $order_number_index ] = $this->object->get_order_number(); } diff --git a/includes/emails/class-wcs-email-customer-completed-switch-order.php b/includes/emails/class-wcs-email-customer-completed-switch-order.php index cf2a612..d04d30c 100644 --- a/includes/emails/class-wcs-email-customer-completed-switch-order.php +++ b/includes/emails/class-wcs-email-customer-completed-switch-order.php @@ -54,24 +54,24 @@ class WCS_Email_Completed_Switch_Order extends WC_Email_Customer_Completed_Order * @access public * @return void */ - function trigger( $order_id ) { + function trigger( $order_id, $order = null ) { if ( $order_id ) { $this->object = new WC_Order( $order_id ); - $this->recipient = $this->object->billing_email; + $this->recipient = wcs_get_objects_property( $this->object, 'billing_email' ); $order_date_index = array_search( '{order_date}', $this->find ); if ( false === $order_date_index ) { - $this->find[] = '{order_date}'; - $this->replace[] = date_i18n( wc_date_format(), wcs_date_to_time( $this->object->order_date ) ); + $this->find['order_date'] = '{order_date}'; + $this->replace['order_date'] = wcs_format_datetime( wcs_get_objects_property( $this->object, 'date_created' ) ); } else { - $this->replace[ $order_date_index ] = date_i18n( wc_date_format(), wcs_date_to_time( $this->object->order_date ) ); + $this->replace[ $order_date_index ] = wcs_format_datetime( wcs_get_objects_property( $this->object, 'date_created' ) ); } $order_number_index = array_search( '{order_number}', $this->find ); if ( false === $order_number_index ) { - $this->find[] = '{order_number}'; - $this->replace[] = $this->object->get_order_number(); + $this->find['order_number'] = '{order_number}'; + $this->replace['order_number'] = $this->object->get_order_number(); } else { $this->replace[ $order_number_index ] = $this->object->get_order_number(); } diff --git a/includes/emails/class-wcs-email-customer-payment-retry.php b/includes/emails/class-wcs-email-customer-payment-retry.php index f98391e..68fc5dc 100644 --- a/includes/emails/class-wcs-email-customer-payment-retry.php +++ b/includes/emails/class-wcs-email-customer-payment-retry.php @@ -49,19 +49,19 @@ class WCS_Email_Customer_Payment_Retry extends WCS_Email_Customer_Renewal_Invoic * @access public * @return void */ - function trigger( $order ) { + function trigger( $order_id, $order = null ) { - $this->retry = WCS_Retry_Manager::store()->get_last_retry_for_order( $order->id ); + $this->retry = WCS_Retry_Manager::store()->get_last_retry_for_order( $order_id ); $retry_time_index = array_search( '{retry_time}', $this->find ); if ( false === $retry_time_index ) { - $this->find[] = '{retry_time}'; - $this->replace[] = strtolower( wcs_get_human_time_diff( $this->retry->get_time() ) ); + $this->find['retry_time'] = '{retry_time}'; + $this->replace['retry_time'] = strtolower( wcs_get_human_time_diff( $this->retry->get_time() ) ); } else { $this->replace[ $retry_time_index ] = strtolower( wcs_get_human_time_diff( $this->retry->get_time() ) ); } - parent::trigger( $order ); + parent::trigger( $order_id, $order ); } /** diff --git a/includes/emails/class-wcs-email-customer-processing-renewal-order.php b/includes/emails/class-wcs-email-customer-processing-renewal-order.php index 35c2830..70c6899 100644 --- a/includes/emails/class-wcs-email-customer-processing-renewal-order.php +++ b/includes/emails/class-wcs-email-customer-processing-renewal-order.php @@ -49,24 +49,24 @@ class WCS_Email_Processing_Renewal_Order extends WC_Email_Customer_Processing_Or * @access public * @return void */ - function trigger( $order_id ) { + function trigger( $order_id, $order = null ) { if ( $order_id ) { $this->object = new WC_Order( $order_id ); - $this->recipient = $this->object->billing_email; + $this->recipient = wcs_get_objects_property( $this->object, 'billing_email' ); $order_date_index = array_search( '{order_date}', $this->find ); if ( false === $order_date_index ) { - $this->find[] = '{order_date}'; - $this->replace[] = date_i18n( wc_date_format(), wcs_date_to_time( $this->object->order_date ) ); + $this->find['order_date'] = '{order_date}'; + $this->replace['order_date'] = wcs_format_datetime( wcs_get_objects_property( $this->object, 'date_created' ) ); } else { - $this->replace[ $order_date_index ] = date_i18n( wc_date_format(), wcs_date_to_time( $this->object->order_date ) ); + $this->replace[ $order_date_index ] = wcs_format_datetime( wcs_get_objects_property( $this->object, 'date_created' ) ); } $order_number_index = array_search( '{order_number}', $this->find ); if ( false === $order_number_index ) { - $this->find[] = '{order_number}'; - $this->replace[] = $this->object->get_order_number(); + $this->find['order_number'] = '{order_number}'; + $this->replace['order_number'] = $this->object->get_order_number(); } else { $this->replace[ $order_number_index ] = $this->object->get_order_number(); } diff --git a/includes/emails/class-wcs-email-customer-renewal-invoice.php b/includes/emails/class-wcs-email-customer-renewal-invoice.php index 2c4cdc3..d17fb1e 100644 --- a/includes/emails/class-wcs-email-customer-renewal-invoice.php +++ b/includes/emails/class-wcs-email-customer-renewal-invoice.php @@ -56,28 +56,28 @@ class WCS_Email_Customer_Renewal_Invoice extends WC_Email_Customer_Invoice { * @access public * @return void */ - function trigger( $order ) { + function trigger( $order_id, $order = null ) { - if ( ! is_object( $order ) ) { - $order = new WC_Order( absint( $order ) ); + if ( $order_id && ! is_a( $order, 'WC_Order' ) ) { + $order = wc_get_order( $order_id ); } - if ( $order ) { + if ( is_a( $order, 'WC_Order' ) ) { $this->object = $order; - $this->recipient = $this->object->billing_email; + $this->recipient = wcs_get_objects_property( $this->object, 'billing_email' ); $order_date_index = array_search( '{order_date}', $this->find ); if ( false === $order_date_index ) { - $this->find[] = '{order_date}'; - $this->replace[] = date_i18n( wc_date_format(), wcs_date_to_time( $this->object->order_date ) ); + $this->find['order_date'] = '{order_date}'; + $this->replace['order_date'] = wcs_format_datetime( wcs_get_objects_property( $this->object, 'date_created' ) ); } else { - $this->replace[ $order_date_index ] = date_i18n( wc_date_format(), wcs_date_to_time( $this->object->order_date ) ); + $this->replace[ $order_date_index ] = wcs_format_datetime( wcs_get_objects_property( $this->object, 'date_created' ) ); } $order_number_index = array_search( '{order_number}', $this->find ); if ( false === $order_number_index ) { - $this->find[] = '{order_number}'; - $this->replace[] = $this->object->get_order_number(); + $this->find['order_number'] = '{order_number}'; + $this->replace['order_number'] = $this->object->get_order_number(); } else { $this->replace[ $order_number_index ] = $this->object->get_order_number(); } diff --git a/includes/emails/class-wcs-email-new-renewal-order.php b/includes/emails/class-wcs-email-new-renewal-order.php index 2a7d2eb..ecd3869 100644 --- a/includes/emails/class-wcs-email-new-renewal-order.php +++ b/includes/emails/class-wcs-email-new-renewal-order.php @@ -57,23 +57,23 @@ class WCS_Email_New_Renewal_Order extends WC_Email_New_Order { * @access public * @return void */ - function trigger( $order_id ) { + function trigger( $order_id, $order = null ) { if ( $order_id ) { $this->object = new WC_Order( $order_id ); $order_date_index = array_search( '{order_date}', $this->find ); if ( false === $order_date_index ) { - $this->find[] = '{order_date}'; - $this->replace[] = date_i18n( wc_date_format(), wcs_date_to_time( $this->object->order_date ) ); + $this->find['order-date'] = '{order_date}'; + $this->replace['order-date'] = wcs_format_datetime( wcs_get_objects_property( $this->object, 'date_created' ) ); } else { - $this->replace[ $order_date_index ] = date_i18n( wc_date_format(), wcs_date_to_time( $this->object->order_date ) ); + $this->replace[ $order_date_index ] = wcs_format_datetime( wcs_get_objects_property( $this->object, 'date_created' ) ); } $order_number_index = array_search( '{order_number}', $this->find ); if ( false === $order_number_index ) { - $this->find[] = '{order_number}'; - $this->replace[] = $this->object->get_order_number(); + $this->find['order-number'] = '{order_number}'; + $this->replace['order-number'] = $this->object->get_order_number(); } else { $this->replace[ $order_number_index ] = $this->object->get_order_number(); } diff --git a/includes/emails/class-wcs-email-new-switch-order.php b/includes/emails/class-wcs-email-new-switch-order.php index 0ff791d..6e8b31d 100644 --- a/includes/emails/class-wcs-email-new-switch-order.php +++ b/includes/emails/class-wcs-email-new-switch-order.php @@ -52,23 +52,23 @@ class WCS_Email_New_Switch_Order extends WC_Email_New_Order { * @access public * @return void */ - function trigger( $order_id ) { + function trigger( $order_id, $order = null ) { if ( $order_id ) { $this->object = new WC_Order( $order_id ); $order_date_index = array_search( '{order_date}', $this->find ); if ( false === $order_date_index ) { - $this->find[] = '{order_date}'; - $this->replace[] = date_i18n( wc_date_format(), wcs_date_to_time( $this->object->order_date ) ); + $this->find['order_date'] = '{order_date}'; + $this->replace['order_date'] = wcs_format_datetime( wcs_get_objects_property( $this->object, 'date_created' ) ); } else { - $this->replace[ $order_date_index ] = date_i18n( wc_date_format(), wcs_date_to_time( $this->object->order_date ) ); + $this->replace[ $order_date_index ] = wcs_format_datetime( wcs_get_objects_property( $this->object, 'date_created' ) ); } $order_number_index = array_search( '{order_number}', $this->find ); if ( false === $order_number_index ) { - $this->find[] = '{order_number}'; - $this->replace[] = $this->object->get_order_number(); + $this->find['order_number'] = '{order_number}'; + $this->replace['order_number'] = $this->object->get_order_number(); } else { $this->replace[ $order_number_index ] = $this->object->get_order_number(); } diff --git a/includes/emails/class-wcs-email-payment-retry.php b/includes/emails/class-wcs-email-payment-retry.php index 65bfbe7..d1cd514 100644 --- a/includes/emails/class-wcs-email-payment-retry.php +++ b/includes/emails/class-wcs-email-payment-retry.php @@ -45,13 +45,13 @@ class WCS_Email_Payment_Retry extends WC_Email_Failed_Order { * * @param int $order_id */ - public function trigger( $order ) { + public function trigger( $order_id, $order = null ) { $this->object = $order; - $this->retry = WCS_Retry_Manager::store()->get_last_retry_for_order( $order->id );; + $this->retry = WCS_Retry_Manager::store()->get_last_retry_for_order( wcs_get_objects_property( $order, 'id' ) );; $this->find['order-date'] = '{order_date}'; $this->find['order-number'] = '{order_number}'; $this->find['retry-time'] = '{retry_time}'; - $this->replace['order-date'] = date_i18n( wc_date_format(), strtotime( $this->object->order_date ) ); + $this->replace['order-date'] = wcs_format_datetime( wcs_get_objects_property( $this->object, 'date_created' ) ); $this->replace['order-number'] = $this->object->get_order_number(); $this->replace['retry-time'] = strtolower( wcs_get_human_time_diff( $this->retry->get_time() ) ); diff --git a/includes/gateways/class-wc-subscriptions-payment-gateways.php b/includes/gateways/class-wc-subscriptions-payment-gateways.php index e8346c6..a3a501f 100644 --- a/includes/gateways/class-wc-subscriptions-payment-gateways.php +++ b/includes/gateways/class-wc-subscriptions-payment-gateways.php @@ -161,7 +161,7 @@ class WC_Subscriptions_Payment_Gateways { break; } - do_action( $hook_prefix . $subscription->payment_method, $subscription ); + do_action( $hook_prefix . $subscription->get_payment_method(), $subscription ); } /** @@ -170,12 +170,15 @@ class WC_Subscriptions_Payment_Gateways { * @since 2.1.0 */ public static function trigger_gateway_renewal_payment_hook( $renewal_order ) { - if ( ! empty( $renewal_order ) && $renewal_order->get_total() > 0 && ! empty( $renewal_order->payment_method ) ) { + + $renewal_order_payment_method = wcs_get_objects_property( $renewal_order, 'payment_method' ); + + if ( ! empty( $renewal_order ) && $renewal_order->get_total() > 0 && ! empty( $renewal_order_payment_method ) ) { // Make sure gateways are setup WC()->payment_gateways(); - do_action( 'woocommerce_scheduled_subscription_payment_' . $renewal_order->payment_method, $renewal_order->get_total(), $renewal_order ); + do_action( 'woocommerce_scheduled_subscription_payment_' . $renewal_order_payment_method, $renewal_order->get_total(), $renewal_order ); } } diff --git a/includes/gateways/paypal/class-wcs-paypal.php b/includes/gateways/paypal/class-wcs-paypal.php index cd5d215..3cf5530 100644 --- a/includes/gateways/paypal/class-wcs-paypal.php +++ b/includes/gateways/paypal/class-wcs-paypal.php @@ -234,7 +234,7 @@ class WCS_PayPal { foreach ( wcs_get_subscriptions_for_order( $order, array( 'order_type' => 'any' ) ) as $subscription ) { $subscription->set_payment_method( $payment_method ); - wcs_set_paypal_id( $subscription, $billing_agreement_response->get_billing_agreement_id() ); + wcs_set_paypal_id( $subscription, $billing_agreement_response->get_billing_agreement_id() ); // Also saves the subscription } if ( ! wcs_is_subscription( $order ) ) { @@ -330,7 +330,7 @@ class WCS_PayPal { public static function process_subscription_payment( $amount, $order ) { // If the subscription is using reference transactions, we can process the payment ourselves - $paypal_profile_id = wcs_get_paypal_id( $order->id ); + $paypal_profile_id = wcs_get_paypal_id( wcs_get_objects_property( $order, 'id' ) ); if ( wcs_is_paypal_profile_a( $paypal_profile_id, 'billing_agreement' ) ) { @@ -414,7 +414,7 @@ class WCS_PayPal { ); foreach ( $post_meta_keys as $post_meta_key ) { - delete_post_meta( $resubscribe_order->id, $post_meta_key ); + delete_post_meta( wcs_get_objects_property( $resubscribe_order, 'id' ), $post_meta_key ); } return $resubscribe_order; @@ -433,9 +433,9 @@ class WCS_PayPal { global $post; $subscription = wcs_get_subscription( $post ); - if ( 'paypal' === $subscription->payment_method ) { + if ( 'paypal' === $subscription->get_payment_method() ) { - $paypal_profile_id = wcs_get_paypal_id( $subscription->id ); + $paypal_profile_id = wcs_get_paypal_id( $subscription->get_id() ); $is_paypal_standard = ! wcs_is_paypal_profile_a( $paypal_profile_id, 'billing_agreement' ); if ( $is_paypal_standard ) { diff --git a/includes/gateways/paypal/includes/admin/class-wcs-paypal-admin.php b/includes/gateways/paypal/includes/admin/class-wcs-paypal-admin.php index 87c1b6d..57bcbf1 100644 --- a/includes/gateways/paypal/includes/admin/class-wcs-paypal-admin.php +++ b/includes/gateways/paypal/includes/admin/class-wcs-paypal-admin.php @@ -244,7 +244,7 @@ class WCS_PayPal_Admin { * @param WC_Subscription $subscription */ public static function profile_link( $subscription ) { - if ( wcs_is_subscription( $subscription ) && 'paypal' == $subscription->payment_method ) { + if ( wcs_is_subscription( $subscription ) && 'paypal' == $subscription->get_payment_method() ) { $paypal_profile_id = wcs_get_paypal_id( $subscription ); diff --git a/includes/gateways/paypal/includes/admin/class-wcs-paypal-change-payment-method-admin.php b/includes/gateways/paypal/includes/admin/class-wcs-paypal-change-payment-method-admin.php index 4b66f20..bdc150c 100644 --- a/includes/gateways/paypal/includes/admin/class-wcs-paypal-change-payment-method-admin.php +++ b/includes/gateways/paypal/includes/admin/class-wcs-paypal-change-payment-method-admin.php @@ -41,7 +41,7 @@ class WCS_PayPal_Change_Payment_Method_Admin { * @since 2.0 */ public static function add_payment_meta_details( $payment_meta, $subscription ) { - $subscription_id = get_post_meta( $subscription->id, '_paypal_subscription_id', true ); + $subscription_id = get_post_meta( $subscription->get_id(), '_paypal_subscription_id', true ); if ( wcs_is_paypal_profile_a( $subscription_id, 'billing_agreement' ) || empty( $subscription_id ) ) { $label = 'PayPal Billing Agreement ID'; @@ -76,8 +76,8 @@ class WCS_PayPal_Change_Payment_Method_Admin { public static function validate_payment_meta( $payment_meta, $subscription ) { if ( empty( $payment_meta['post_meta']['_paypal_subscription_id']['value'] ) ) { throw new Exception( 'A valid PayPal Billing Agreement ID value is required.' ); - } elseif ( $subscription->paypal_subscription_id !== $payment_meta['post_meta']['_paypal_subscription_id']['value'] && 0 !== strpos( $payment_meta['post_meta']['_paypal_subscription_id']['value'], 'B-' ) ) { - throw new Exception( 'Invalid Billing Agreemend ID. A valid PayPal Billing Agreement ID must begin with "B-".' ); + } elseif ( 0 !== strpos( $payment_meta['post_meta']['_paypal_subscription_id']['value'], 'B-' ) && wcs_get_paypal_id( $subscription ) !== $payment_meta['post_meta']['_paypal_subscription_id']['value'] ) { + throw new Exception( 'Invalid Billing Agreement ID. A valid PayPal Billing Agreement ID must begin with "B-".' ); } } diff --git a/includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php b/includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php index 70c6c9e..60c299b 100644 --- a/includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php +++ b/includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php @@ -206,7 +206,7 @@ class WCS_PayPal_Reference_Transaction_API_Request { 'return_fraud_filters' => 1, 'notify_url' => WC()->api_request_url( 'WC_Gateway_Paypal' ), 'invoice_number' => WCS_PayPal::get_option( 'invoice_prefix' ) . wcs_str_to_ascii( ltrim( $order->get_order_number(), _x( '#', 'hash before the order number. Used as a character to remove from the actual order number', 'woocommerce-subscriptions' ) ) ), - 'custom' => wcs_json_encode( array( 'order_id' => $order->id, 'order_key' => $order->order_key ) ), + 'custom' => wcs_json_encode( array( 'order_id' => wcs_get_objects_property( $order, 'id' ), 'order_key' => wcs_get_objects_property( $order, 'order_key' ) ) ), ); $args = wp_parse_args( $args, $defaults ); @@ -310,24 +310,24 @@ class WCS_PayPal_Reference_Transaction_API_Request { if ( $use_deprecated_params ) { $this->add_parameters( array( 'AMT' => $total_amount, - 'CURRENCYCODE' => $order->get_order_currency(), + 'CURRENCYCODE' => wcs_get_objects_property( $order, 'currency' ), 'ITEMAMT' => $this->round( $order_subtotal + $order->get_cart_tax() ), 'SHIPPINGAMT' => $this->round( $order->get_total_shipping() + $order->get_shipping_tax() ), 'INVNUM' => WCS_PayPal::get_option( 'invoice_prefix' ) . wcs_str_to_ascii( ltrim( $order->get_order_number(), _x( '#', 'hash before the order number. Used as a character to remove from the actual order number', 'woocommerce-subscriptions' ) ) ), 'PAYMENTACTION' => $type, - 'PAYMENTREQUESTID' => $order->id, - 'CUSTOM' => json_encode( array( 'order_id' => $order->id, 'order_key' => $order->order_key ) ), + 'PAYMENTREQUESTID' => wcs_get_objects_property( $order, 'id' ), + 'CUSTOM' => json_encode( array( 'order_id' => wcs_get_objects_property( $order, 'id' ), 'order_key' => wcs_get_objects_property( $order, 'order_key' ) ) ), ) ); } else { $this->add_payment_parameters( array( 'AMT' => $total_amount, - 'CURRENCYCODE' => $order->get_order_currency(), + 'CURRENCYCODE' => wcs_get_objects_property( $order, 'currency' ), 'ITEMAMT' => $this->round( $order_subtotal + $order->get_cart_tax() ), 'SHIPPINGAMT' => $this->round( $order->get_total_shipping() + $order->get_shipping_tax() ), 'INVNUM' => WCS_PayPal::get_option( 'invoice_prefix' ) . wcs_str_to_ascii( ltrim( $order->get_order_number(), _x( '#', 'hash before the order number. Used as a character to remove from the actual order number', 'woocommerce-subscriptions' ) ) ), 'PAYMENTACTION' => $type, - 'PAYMENTREQUESTID' => $order->id, - 'CUSTOM' => json_encode( array( 'order_id' => $order->id, 'order_key' => $order->order_key ) ), + 'PAYMENTREQUESTID' => wcs_get_objects_property( $order, 'id' ), + 'CUSTOM' => json_encode( array( 'order_id' => wcs_get_objects_property( $order, 'id' ), 'order_key' => wcs_get_objects_property( $order, 'order_key' ) ) ), ) ); } } else { @@ -348,26 +348,26 @@ class WCS_PayPal_Reference_Transaction_API_Request { if ( $use_deprecated_params ) { $this->add_parameters( array( 'AMT' => $total_amount, - 'CURRENCYCODE' => $order->get_order_currency(), + 'CURRENCYCODE' => wcs_get_objects_property( $order, 'currency' ), 'ITEMAMT' => $this->round( $order_subtotal ), 'SHIPPINGAMT' => $this->round( $order->get_total_shipping() ), 'TAXAMT' => $this->round( $order->get_total_tax() ), 'INVNUM' => WCS_PayPal::get_option( 'invoice_prefix' ) . wcs_str_to_ascii( ltrim( $order->get_order_number(), _x( '#', 'hash before the order number. Used as a character to remove from the actual order number', 'woocommerce-subscriptions' ) ) ), 'PAYMENTACTION' => $type, - 'PAYMENTREQUESTID' => $order->id, - 'CUSTOM' => json_encode( array( 'order_id' => $order->id, 'order_key' => $order->order_key ) ), + 'PAYMENTREQUESTID' => wcs_get_objects_property( $order, 'id' ), + 'CUSTOM' => json_encode( array( 'order_id' => wcs_get_objects_property( $order, 'id' ), 'order_key' => wcs_get_objects_property( $order, 'order_key' ) ) ), ) ); } else { $this->add_payment_parameters( array( 'AMT' => $total_amount, - 'CURRENCYCODE' => $order->get_order_currency(), + 'CURRENCYCODE' => wcs_get_objects_property( $order, 'currency' ), 'ITEMAMT' => $this->round( $order_subtotal ), 'SHIPPINGAMT' => $this->round( $order->get_total_shipping() ), 'TAXAMT' => $this->round( $order->get_total_tax() ), 'INVNUM' => WCS_PayPal::get_option( 'invoice_prefix' ) . wcs_str_to_ascii( ltrim( $order->get_order_number(), _x( '#', 'hash before the order number. Used as a character to remove from the actual order number', 'woocommerce-subscriptions' ) ) ), 'PAYMENTACTION' => $type, - 'PAYMENTREQUESTID' => $order->id, - 'CUSTOM' => json_encode( array( 'order_id' => $order->id, 'order_key' => $order->order_key ) ), + 'PAYMENTREQUESTID' => wcs_get_objects_property( $order, 'id' ), + 'CUSTOM' => json_encode( array( 'order_id' => wcs_get_objects_property( $order, 'id' ), 'order_key' => wcs_get_objects_property( $order, 'order_key' ) ) ), ) ); } @@ -484,27 +484,32 @@ class WCS_PayPal_Reference_Transaction_API_Request { */ private function get_item_description( $item, $product ) { - if ( empty( $item['item_meta'] ) ) { - + if ( ! empty( WC()->cart ) && is_array( $item ) && empty( $item['item_meta'] ) ) { // cart item $item_desc = WC()->cart->get_item_data( $item, true ); $item_desc = str_replace( "\n", ', ', rtrim( $item_desc ) ); } else { - // order item - $item_meta = new WC_Order_Item_Meta( $item ); - $item_meta = $item_meta->get_formatted(); + $item_desc = array(); - if ( ! empty( $item_meta ) ) { + if ( is_callable( array( $item, 'get_formatted_meta_data' ) ) ) { // WC 3.0+ - $item_desc = array(); + foreach ( $item->get_formatted_meta_data() as $meta ) { + $item_desc[] = sprintf( '%s: %s', $meta->display_key, $meta->display_value ); + } + } else { // WC < 3.0 - foreach ( $item_meta as $meta ) { + $item_meta = new WC_Order_Item_Meta( $item ); + + foreach ( $item_meta->get_formatted() as $meta ) { $item_desc[] = sprintf( '%s: %s', $meta['label'], $meta['value'] ); } + } + + if ( ! empty( $item_desc ) ) { $item_desc = implode( ', ', $item_desc ); @@ -525,7 +530,7 @@ class WCS_PayPal_Reference_Transaction_API_Request { * @since 2.0 */ public function to_string() { - return http_build_query( $this->get_parameters() ); + return http_build_query( $this->get_parameters(), '', '&' ); } /** @@ -630,11 +635,7 @@ class WCS_PayPal_Reference_Transaction_API_Request { */ private function skip_line_items( $order = null ) { - if ( isset( $order->prices_include_tax ) ) { - $skip_line_items = $order->prices_include_tax; - } else { - $skip_line_items = wc_prices_include_tax(); - } + $skip_line_items = wcs_get_objects_property( $order, 'prices_include_tax' ); /** * Filter whether line items should be skipped or not diff --git a/includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-ipn-handler.php b/includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-ipn-handler.php index 59d917e..62237c2 100644 --- a/includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-ipn-handler.php +++ b/includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-ipn-handler.php @@ -64,7 +64,7 @@ class WCS_PayPal_Reference_Transaction_IPN_Handler extends WCS_PayPal_Standard_I $transaction_details['payment_status'] = 'completed'; } - WC_Gateway_Paypal::log( 'Found order #' . $order->id ); + WC_Gateway_Paypal::log( 'Found order #' . wcs_get_objects_property( $order, 'id' ) ); WC_Gateway_Paypal::log( 'Payment status: ' . $transaction_details['payment_status'] ); if ( method_exists( $this, 'payment_status_' . $transaction_details['payment_status'] ) ) { diff --git a/includes/gateways/paypal/includes/class-wcs-paypal-standard-ipn-handler.php b/includes/gateways/paypal/includes/class-wcs-paypal-standard-ipn-handler.php index ce960c2..d07dce0 100644 --- a/includes/gateways/paypal/includes/class-wcs-paypal-standard-ipn-handler.php +++ b/includes/gateways/paypal/includes/class-wcs-paypal-standard-ipn-handler.php @@ -84,7 +84,7 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { remove_filter( 'woocommerce_subscription_payment_gateway_supports', 'WCS_PayPal_Supports::add_feature_support_for_subscription', 10 ); // We have an invalid $subscription, probably because invoice_prefix has changed since the subscription was first created, so get the subscription by order key - if ( ! isset( $subscription->id ) ) { + if ( ! is_callable( array( $subscription, 'get_id' ) ) ) { $subscription = wcs_get_subscription( wc_get_order_id_by_order_key( $subscription_key ) ); } @@ -98,7 +98,7 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { exit; } - if ( $subscription->order_key != $subscription_key ) { + if ( $subscription->get_order_key() != $subscription_key ) { WC_Gateway_Paypal::log( 'Subscription IPN Error: Subscription Key does not match invoice.' ); exit; } @@ -106,7 +106,7 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { if ( isset( $transaction_details['ipn_track_id'] ) ) { // Make sure the IPN request has not already been handled - $handled_ipn_requests = get_post_meta( $subscription->id, '_paypal_ipn_tracking_ids', true ); + $handled_ipn_requests = get_post_meta( $subscription->get_id(), '_paypal_ipn_tracking_ids', true ); if ( empty( $handled_ipn_requests ) ) { $handled_ipn_requests = array(); @@ -140,7 +140,7 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { if ( isset( $transaction_details['txn_id'] ) ) { // Make sure the IPN request has not already been handled - $handled_transactions = get_post_meta( $subscription->id, '_paypal_transaction_ids', true ); + $handled_transactions = get_post_meta( $subscription->get_id(), '_paypal_transaction_ids', true ); if ( empty( $handled_transactions ) ) { $handled_transactions = array(); @@ -171,7 +171,7 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { $renewal_order = wc_get_order( substr( $transaction_details['invoice'], strrpos( $transaction_details['invoice'], '-' ) + 1 ) ); // check if the failed signup has been previously recorded - if ( $renewal_order->id != get_post_meta( $subscription->id, '_paypal_failed_sign_up_recorded', true ) ) { + if ( wcs_get_objects_property( $renewal_order, 'id' ) != get_post_meta( $subscription->get_id(), '_paypal_failed_sign_up_recorded', true ) ) { $is_renewal_sign_up_after_failure = true; } } @@ -184,7 +184,7 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { } // Ignore IPN messages when the payment method isn't PayPal - if ( 'paypal' != $subscription->payment_method ) { + if ( 'paypal' != $subscription->get_payment_method() ) { // The 'recurring_payment_suspended' transaction is actually an Express Checkout transaction type, but PayPal also send it for PayPal Standard Subscriptions suspended by admins at PayPal, so we need to handle it *if* the subscription has PayPal as the payment method, or leave it if the subscription is using a different payment method (because it might be using PayPal Express Checkout or PayPal Digital Goods) if ( 'recurring_payment_suspended' == $transaction_details['txn_type'] ) { @@ -206,8 +206,8 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { $existing_profile_id = wcs_get_paypal_id( $subscription ); if ( empty( $existing_profile_id ) || $existing_profile_id !== $transaction_details['subscr_id'] ) { - update_post_meta( $subscription->id, '_old_paypal_subscriber_id', $existing_profile_id ); - update_post_meta( $subscription->id, '_old_payment_method', $subscription->payment_method ); + update_post_meta( $subscription->get_id(), '_old_paypal_subscriber_id', $existing_profile_id ); + update_post_meta( $subscription->get_id(), '_old_payment_method', $subscription->get_payment_method() ); } } @@ -232,13 +232,13 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { // Store PayPal Details on Subscription and Order $this->save_paypal_meta_data( $subscription, $transaction_details ); - $this->save_paypal_meta_data( $subscription->order, $transaction_details ); + $this->save_paypal_meta_data( $subscription->get_parent(), $transaction_details ); // When there is a free trial & no initial payment amount, we need to mark the order as paid and activate the subscription - if ( ! $is_payment_change && ! $is_renewal_sign_up_after_failure && 0 == $subscription->order->get_total() ) { + if ( ! $is_payment_change && ! $is_renewal_sign_up_after_failure && 0 == $subscription->get_parent()->get_total() ) { // Safe to assume the subscription has an order here because otherwise we wouldn't get a 'subscr_signup' IPN - $subscription->order->payment_complete(); // No 'txn_id' value for 'subscr_signup' IPN messages - update_post_meta( $subscription->id, '_paypal_first_ipn_ignored_for_pdt', 'true' ); + $subscription->get_parent()->payment_complete(); // No 'txn_id' value for 'subscr_signup' IPN messages + update_post_meta( $subscription->get_id(), '_paypal_first_ipn_ignored_for_pdt', 'true' ); } // Payment completed @@ -248,8 +248,8 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { WC_Subscriptions_Change_Payment_Gateway::update_payment_method( $subscription, 'paypal' ); // We need to cancel the subscription now that the method has been changed successfully - if ( 'paypal' == get_post_meta( $subscription->id, '_old_payment_method', true ) ) { - self::cancel_subscription( $subscription, get_post_meta( $subscription->id, '_old_paypal_subscriber_id', true ) ); + if ( 'paypal' == get_post_meta( $subscription->get_id(), '_old_payment_method', true ) ) { + self::cancel_subscription( $subscription, get_post_meta( $subscription->get_id(), '_old_paypal_subscriber_id', true ) ); } $this->add_order_note( _x( 'IPN subscription payment method changed to PayPal.', 'when it is a payment change, and there is a subscr_signup message, this will be a confirmation message that PayPal accepted it being the new payment method', 'woocommerce-subscriptions' ), $subscription, $transaction_details ); @@ -261,9 +261,9 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { } if ( $is_payment_change ) { - WC_Gateway_Paypal::log( 'IPN subscription payment method changed for subscription ' . $subscription->id ); + WC_Gateway_Paypal::log( 'IPN subscription payment method changed for subscription ' . $subscription->get_id() ); } else { - WC_Gateway_Paypal::log( 'IPN subscription sign up completed for subscription ' . $subscription->id ); + WC_Gateway_Paypal::log( 'IPN subscription sign up completed for subscription ' . $subscription->get_id() ); } break; @@ -301,37 +301,37 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { // Subscription Payment completed $this->add_order_note( __( 'IPN subscription payment completed.', 'woocommerce-subscriptions' ), $subscription, $transaction_details ); - WC_Gateway_Paypal::log( 'IPN subscription payment completed for subscription ' . $subscription->id ); + WC_Gateway_Paypal::log( 'IPN subscription payment completed for subscription ' . $subscription->get_id() ); // First payment on order, process payment & activate subscription if ( $is_first_payment ) { - $subscription->order->payment_complete( $transaction_details['txn_id'] ); + $subscription->get_parent()->payment_complete( $transaction_details['txn_id'] ); // Store PayPal Details on Order - $this->save_paypal_meta_data( $subscription->order, $transaction_details ); + $this->save_paypal_meta_data( $subscription->get_parent(), $transaction_details ); // IPN got here first or PDT will never arrive. Normally PDT would have arrived, so the first IPN would not be the first payment. In case the the first payment is an IPN, we need to make sure to not ignore the second one - update_post_meta( $subscription->id, '_paypal_first_ipn_ignored_for_pdt', 'true' ); + update_post_meta( $subscription->get_id(), '_paypal_first_ipn_ignored_for_pdt', 'true' ); // Ignore the first IPN message if the PDT should have handled it (if it didn't handle it, it will have been dealt with as first payment), but set a flag to make sure we only ignore it once - } elseif ( $subscription->get_completed_payment_count() == 1 && '' !== WCS_PayPal::get_option( 'identity_token' ) && 'true' != get_post_meta( $subscription->id, '_paypal_first_ipn_ignored_for_pdt', true ) && false === $is_renewal_sign_up_after_failure ) { + } elseif ( $subscription->get_completed_payment_count() == 1 && '' !== WCS_PayPal::get_option( 'identity_token' ) && 'true' != get_post_meta( $subscription->get_id(), '_paypal_first_ipn_ignored_for_pdt', true ) && false === $is_renewal_sign_up_after_failure ) { - WC_Gateway_Paypal::log( 'IPN subscription payment ignored for subscription ' . $subscription->id . ' due to PDT previously handling the payment.' ); + WC_Gateway_Paypal::log( 'IPN subscription payment ignored for subscription ' . $subscription->get_id() . ' due to PDT previously handling the payment.' ); - update_post_meta( $subscription->id, '_paypal_first_ipn_ignored_for_pdt', 'true' ); + update_post_meta( $subscription->get_id(), '_paypal_first_ipn_ignored_for_pdt', 'true' ); // Process the payment if the subscription is active } elseif ( ! $subscription->has_status( array( 'cancelled', 'expired', 'switched', 'trash' ) ) ) { if ( true === $is_renewal_sign_up_after_failure && is_object( $renewal_order ) ) { - update_post_meta( $subscription->id, '_paypal_failed_sign_up_recorded', $renewal_order->id ); + update_post_meta( $subscription->get_id(), '_paypal_failed_sign_up_recorded', wcs_get_objects_property( $renewal_order, 'id' ) ); // We need to cancel the old subscription now that the method has been changed successfully - if ( 'paypal' == get_post_meta( $subscription->id, '_old_payment_method', true ) ) { + if ( 'paypal' == get_post_meta( $subscription->get_id(), '_old_payment_method', true ) ) { - $profile_id = get_post_meta( $subscription->id, '_old_paypal_subscriber_id', true ); + $profile_id = get_post_meta( $subscription->get_id(), '_old_paypal_subscriber_id', true ); // Make sure we don't cancel the current profile if ( $profile_id !== $transaction_details['subscr_id'] ) { @@ -349,23 +349,23 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { if ( $subscription->get_time( 'trial_end' ) > gmdate( 'U' ) ) { $update_dates['trial_end'] = gmdate( 'Y-m-d H:i:s', gmdate( 'U' ) - 1 ); - WC_Gateway_Paypal::log( sprintf( 'IPN subscription payment for subscription %d: trial_end is in futute (date: %s) setting to %s.', $subscription->id, $subscription->get_date( 'trial_end' ), $update_dates['trial_end'] ) ); + WC_Gateway_Paypal::log( sprintf( 'IPN subscription payment for subscription %d: trial_end is in futute (date: %s) setting to %s.', $subscription->get_id(), $subscription->get_date( 'trial_end' ), $update_dates['trial_end'] ) ); } else { - WC_Gateway_Paypal::log( sprintf( 'IPN subscription payment for subscription %d: trial_end is in past (date: %s).', $subscription->id, $subscription->get_date( 'trial_end' ) ) ); + WC_Gateway_Paypal::log( sprintf( 'IPN subscription payment for subscription %d: trial_end is in past (date: %s).', $subscription->get_id(), $subscription->get_date( 'trial_end' ) ) ); } if ( $subscription->get_time( 'next_payment' ) > gmdate( 'U' ) ) { $update_dates['next_payment'] = gmdate( 'Y-m-d H:i:s', gmdate( 'U' ) - 1 ); - WC_Gateway_Paypal::log( sprintf( 'IPN subscription payment for subscription %d: next_payment is in future (date: %s) setting to %s.', $subscription->id, $subscription->get_date( 'next_payment' ), $update_dates['next_payment'] ) ); + WC_Gateway_Paypal::log( sprintf( 'IPN subscription payment for subscription %d: next_payment is in future (date: %s) setting to %s.', $subscription->get_id(), $subscription->get_date( 'next_payment' ), $update_dates['next_payment'] ) ); } else { - WC_Gateway_Paypal::log( sprintf( 'IPN subscription payment for subscription %d: next_payment is in past (date: %s).', $subscription->id, $subscription->get_date( 'next_payment' ) ) ); + WC_Gateway_Paypal::log( sprintf( 'IPN subscription payment for subscription %d: next_payment is in past (date: %s).', $subscription->get_id(), $subscription->get_date( 'next_payment' ) ) ); } if ( ! empty( $update_dates ) ) { $subscription->update_dates( $update_dates ); } } catch ( Exception $e ) { - WC_Gateway_Paypal::log( sprintf( 'IPN subscription payment exception subscription %d: %s.', $subscription->id, $e->getMessage() ) ); + WC_Gateway_Paypal::log( sprintf( 'IPN subscription payment exception subscription %d: %s.', $subscription->get_id(), $e->getMessage() ) ); } remove_action( 'woocommerce_subscription_activated_paypal', 'WCS_PayPal_Status_Manager::reactivate_subscription' ); @@ -373,7 +373,7 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { try { $renewal_order->payment_complete( $transaction_details['txn_id'] ); } catch ( Exception $e ) { - WC_Gateway_Paypal::log( sprintf( 'IPN subscription payment exception calling $renewal_order->payment_complete() for subscription %d: %s.', $subscription->id, $e->getMessage() ) ); + WC_Gateway_Paypal::log( sprintf( 'IPN subscription payment exception calling $renewal_order->payment_complete() for subscription %d: %s.', $subscription->get_id(), $e->getMessage() ) ); } $this->add_order_note( __( 'IPN subscription payment completed.', 'woocommerce-subscriptions' ), $renewal_order, $transaction_details ); @@ -390,7 +390,7 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { if ( ! $is_first_payment ) { - update_post_meta( $renewal_order->id, '_transaction_id', $transaction_details['txn_id'] ); + wcs_set_objects_property( $renewal_order, 'transaction_id', $transaction_details['txn_id'] ); if ( 'failed' == strtolower( $transaction_details['payment_status'] ) ) { $subscription->payment_failed(); @@ -403,10 +403,10 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { } } - WC_Gateway_Paypal::log( sprintf( 'IPN subscription payment %s for subscription %d ', $transaction_details['payment_status'], $subscription->id ) ); + WC_Gateway_Paypal::log( sprintf( 'IPN subscription payment %s for subscription %d ', $transaction_details['payment_status'], $subscription->get_id() ) ); } else { - WC_Gateway_Paypal::log( 'IPN subscription payment notification received for subscription ' . $subscription->id . ' with status ' . $transaction_details['payment_status'] ); + WC_Gateway_Paypal::log( 'IPN subscription payment notification received for subscription ' . $subscription->get_id() . ' with status ' . $transaction_details['payment_status'] ); } @@ -429,11 +429,11 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { add_action( 'woocommerce_subscription_on-hold_paypal', 'WCS_PayPal_Status_Manager::suspend_subscription' ); - WC_Gateway_Paypal::log( 'IPN subscription suspended for subscription ' . $subscription->id ); + WC_Gateway_Paypal::log( 'IPN subscription suspended for subscription ' . $subscription->get_id() ); } else { - WC_Gateway_Paypal::log( sprintf( 'IPN "recurring_payment_suspended" ignored for subscription %d. Subscription already %s.', $subscription->id, $subscription->get_status() ) ); + WC_Gateway_Paypal::log( sprintf( 'IPN "recurring_payment_suspended" ignored for subscription %d. Subscription already %s.', $subscription->get_id(), $subscription->get_status() ) ); } @@ -444,13 +444,13 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { // Make sure the subscription hasn't been linked to a new payment method if ( wcs_get_paypal_id( $subscription ) != $transaction_details['subscr_id'] ) { - WC_Gateway_Paypal::log( 'IPN subscription cancellation request ignored - new PayPal Profile ID linked to this subscription, for subscription ' . $subscription->id ); + WC_Gateway_Paypal::log( 'IPN subscription cancellation request ignored - new PayPal Profile ID linked to this subscription, for subscription ' . $subscription->get_id() ); } else { $subscription->cancel_order( __( 'IPN subscription cancelled.', 'woocommerce-subscriptions' ) ); - WC_Gateway_Paypal::log( 'IPN subscription cancelled for subscription ' . $subscription->id ); + WC_Gateway_Paypal::log( 'IPN subscription cancelled for subscription ' . $subscription->get_id() ); } @@ -458,7 +458,7 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { case 'subscr_eot': // Subscription ended, either due to failed payments or expiration - WC_Gateway_Paypal::log( 'IPN EOT request ignored for subscription ' . $subscription->id ); + WC_Gateway_Paypal::log( 'IPN EOT request ignored for subscription ' . $subscription->get_id() ); break; case 'subscr_failed': // Subscription sign up failed @@ -476,7 +476,7 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { $this->add_order_note( $ipn_failure_note, $renewal_order, $transaction_details ); } - WC_Gateway_Paypal::log( 'IPN subscription payment failure for subscription ' . $subscription->id ); + WC_Gateway_Paypal::log( 'IPN subscription payment failure for subscription ' . $subscription->get_id() ); // Subscription Payment completed $this->add_order_note( $ipn_failure_note, $subscription, $transaction_details ); @@ -493,12 +493,12 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { // Store the transaction IDs to avoid handling requests duplicated by PayPal if ( isset( $transaction_details['ipn_track_id'] ) ) { $handled_ipn_requests[] = $ipn_id; - update_post_meta( $subscription->id, '_paypal_ipn_tracking_ids', $handled_ipn_requests ); + update_post_meta( $subscription->get_id(), '_paypal_ipn_tracking_ids', $handled_ipn_requests ); } if ( isset( $transaction_details['txn_id'] ) ) { $handled_transactions[] = $transaction_id; - update_post_meta( $subscription->id, '_paypal_transaction_ids', $handled_transactions ); + update_post_meta( $subscription->get_id(), '_paypal_transaction_ids', $handled_transactions ); } // And delete the transient that's preventing other IPN's being processed @@ -507,7 +507,7 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { } // Log completion - $log_message = 'IPN subscription request processed for ' . $subscription->id; + $log_message = 'IPN subscription request processed for ' . $subscription->get_id(); if ( isset( $ipn_id ) && ! empty( $ipn_id ) ) { $log_message .= sprintf( ' (%s)', $ipn_id ); @@ -592,8 +592,8 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { if ( ! empty( $subscriptions ) ) { $subscription = array_pop( $subscriptions ); - $order_id = $subscription->id; - $order_key = $subscription->order_key; + $order_id = $subscription->get_id(); + $order_key = $subscription->get_order_key(); } } } elseif ( preg_match( '/^a:2:{/', $args['custom'] ) && ! preg_match( '/[CO]:\+?[0-9]+:"/', $args['custom'] ) && ( $order_details = maybe_unserialize( $args['custom'] ) ) ) { // WC 2.0 - WC 2.3.11, only allow serialized data in the expected format, do not allow objects or anything nasty to sneak in @@ -608,8 +608,8 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { if ( ! empty( $subscriptions ) ) { $subscription = array_pop( $subscriptions ); - $order_id = $subscription->id; - $order_key = $subscription->order_key; + $order_id = $subscription->get_id(); + $order_key = $subscription->get_order_key(); } } } else { // WC 1.6.5 - WC 2.0 or invalid data @@ -641,7 +641,7 @@ class WCS_PayPal_Standard_IPN_Handler extends WC_Gateway_Paypal_IPN_Handler { return; } - $current_profile_id = wcs_get_paypal_id( $subscription->id ); + $current_profile_id = wcs_get_paypal_id( $subscription->get_id() ); // Update the subscription using the old profile ID wcs_set_paypal_id( $subscription, $old_paypal_subscriber_id ); diff --git a/includes/gateways/paypal/includes/class-wcs-paypal-standard-request.php b/includes/gateways/paypal/includes/class-wcs-paypal-standard-request.php index 1f92780..db055a2 100644 --- a/includes/gateways/paypal/includes/class-wcs-paypal-standard-request.php +++ b/includes/gateways/paypal/includes/class-wcs-paypal-standard-request.php @@ -33,9 +33,9 @@ class WCS_PayPal_Standard_Request { // Payment method changes act on the subscription not the original order if ( $is_payment_change ) { - $subscriptions = array( wcs_get_subscription( $order->id ) ); + $subscriptions = array( wcs_get_subscription( wcs_get_objects_property( $order, 'id' ) ) ); $subscription = array_pop( $subscriptions ); - $order = $subscription->order; + $order = $subscription->get_parent(); // We need the subscription's total remove_filter( 'woocommerce_order_amount_total', 'WC_Subscriptions_Change_Payment_Gateway::maybe_zero_total', 11, 2 ); @@ -43,7 +43,7 @@ class WCS_PayPal_Standard_Request { } else { // Otherwise the order is the $order - if ( $cart_item = wcs_cart_contains_failed_renewal_order_payment() || false !== WC_Subscriptions_Renewal_Order::get_failed_order_replaced_by( $order->id ) ) { + if ( $cart_item = wcs_cart_contains_failed_renewal_order_payment() || false !== WC_Subscriptions_Renewal_Order::get_failed_order_replaced_by( wcs_get_objects_property( $order, 'id' ) ) ) { $subscriptions = wcs_get_subscriptions_for_renewal_order( $order ); $order_contains_failed_renewal = true; } else { @@ -60,7 +60,7 @@ class WCS_PayPal_Standard_Request { $paypal_args['cmd'] = '_xclick-subscriptions'; // Store the subscription ID in the args sent to PayPal so we can access them later - $paypal_args['custom'] = wcs_json_encode( array( 'order_id' => $order->id, 'order_key' => $order->order_key, 'subscription_id' => $subscription->id, 'subscription_key' => $subscription->order_key ) ); + $paypal_args['custom'] = wcs_json_encode( array( 'order_id' => wcs_get_objects_property( $order, 'id' ), 'order_key' => wcs_get_objects_property( $order, 'order_key' ), 'subscription_id' => $subscription->get_id(), 'subscription_key' => $subscription->get_order_key() ) ); foreach ( $subscription->get_items() as $item ) { if ( $item['qty'] > 1 ) { @@ -74,8 +74,8 @@ class WCS_PayPal_Standard_Request { $paypal_args['item_name'] = wcs_get_paypal_item_name( sprintf( _x( 'Subscription %1$s (Order %2$s) - %3$s', 'item name sent to paypal', 'woocommerce-subscriptions' ), $subscription->get_order_number(), $order->get_order_number(), implode( ', ', $item_names ) ) ); $unconverted_periods = array( - 'billing_period' => $subscription->billing_period, - 'trial_period' => $subscription->trial_period, + 'billing_period' => $subscription->get_billing_period(), + 'trial_period' => $subscription->get_trial_period(), ); $converted_periods = array(); @@ -100,12 +100,12 @@ class WCS_PayPal_Standard_Request { } $price_per_period = $subscription->get_total(); - $subscription_interval = $subscription->billing_interval; - $start_timestamp = $subscription->get_time( 'start' ); + $subscription_interval = $subscription->get_billing_interval(); + $start_timestamp = $subscription->get_time( 'date_created' ); $trial_end_timestamp = $subscription->get_time( 'trial_end' ); $next_payment_timestamp = $subscription->get_time( 'next_payment' ); - $is_synced_subscription = WC_Subscriptions_Synchroniser::subscription_contains_synced_product( $subscription->id ); + $is_synced_subscription = WC_Subscriptions_Synchroniser::subscription_contains_synced_product( $subscription->get_id() ); if ( $is_synced_subscription ) { $length_from_timestamp = $next_payment_timestamp; @@ -115,7 +115,7 @@ class WCS_PayPal_Standard_Request { $length_from_timestamp = $start_timestamp; } - $subscription_length = wcs_estimate_periods_between( $length_from_timestamp, $subscription->get_time( 'end' ), $subscription->billing_period ); + $subscription_length = wcs_estimate_periods_between( $length_from_timestamp, $subscription->get_time( 'end' ), $subscription->get_billing_period() ); $subscription_installments = $subscription_length / $subscription_interval; @@ -128,24 +128,24 @@ class WCS_PayPal_Standard_Request { $suffix = '-wcscpm-' . wp_create_nonce(); } else { // Failed renewal order, append a descriptor and renewal order's ID - $suffix = '-wcsfrp-' . $order->id; + $suffix = '-wcsfrp-' . wcs_get_objects_property( $order, 'id' ); } + $parent_order = $subscription->get_parent(); + // Change the 'invoice' and the 'custom' values to be for the original order (if there is one) - if ( false === $subscription->order ) { + if ( false === $parent_order ) { // No original order so we need to use the subscriptions values instead $order_number = ltrim( $subscription->get_order_number(), _x( '#', 'hash before the order number. Used as a character to remove from the actual order number', 'woocommerce-subscriptions' ) ) . '-subscription'; - $order_id_key = array( 'order_id' => $subscription->id, 'order_key' => $subscription->order_key ); + $order_id_key = array( 'order_id' => $subscription->get_id(), 'order_key' => $subscription->get_order_key() ); } else { - $order_number = ltrim( $subscription->order->get_order_number(), _x( '#', 'hash before the order number. Used as a character to remove from the actual order number', 'woocommerce-subscriptions' ) ); - $order_id_key = array( 'order_id' => $subscription->order->id, 'order_key' => $subscription->order->order_key ); + $order_number = ltrim( $parent_order->get_order_number(), _x( '#', 'hash before the order number. Used as a character to remove from the actual order number', 'woocommerce-subscriptions' ) ); + $order_id_key = array( 'order_id' => wcs_get_objects_property( $parent_order, 'id' ), 'order_key' => wcs_get_objects_property( $parent_order, 'order_key' ) ); } - $order_details = ( false !== $subscription->order ) ? $subscription->order : $subscription; - // Set the invoice details to the original order's invoice but also append a special string and this renewal orders ID so that we can match it up as a failed renewal order payment later $paypal_args['invoice'] = WCS_PayPal::get_option( 'invoice_prefix' ) . $order_number . $suffix; - $paypal_args['custom'] = wcs_json_encode( array_merge( $order_id_key, array( 'subscription_id' => $subscription->id, 'subscription_key' => $subscription->order_key ) ) ); + $paypal_args['custom'] = wcs_json_encode( array_merge( $order_id_key, array( 'subscription_id' => $subscription->get_id(), 'subscription_key' => $subscription->get_order_key() ) ) ); } @@ -182,7 +182,7 @@ class WCS_PayPal_Standard_Request { } } else { - $subscription_trial_length = wcs_estimate_periods_between( $start_timestamp, $trial_end_timestamp, $subscription->trial_period ); + $subscription_trial_length = wcs_estimate_periods_between( $start_timestamp, $trial_end_timestamp, $subscription->get_trial_period() ); } diff --git a/includes/gateways/paypal/includes/class-wcs-paypal-standard-switcher.php b/includes/gateways/paypal/includes/class-wcs-paypal-standard-switcher.php index bf017b9..8531830 100644 --- a/includes/gateways/paypal/includes/class-wcs-paypal-standard-switcher.php +++ b/includes/gateways/paypal/includes/class-wcs-paypal-standard-switcher.php @@ -56,9 +56,9 @@ class WCS_PayPal_Standard_Switcher { */ public static function can_item_be_switched( $item_can_be_switch, $item, $subscription ) { - if ( false === $item_can_be_switch && 'paypal' === $subscription->payment_method && WCS_PayPal::are_reference_transactions_enabled() ) { + if ( false === $item_can_be_switch && 'paypal' === $subscription->get_payment_method() && WCS_PayPal::are_reference_transactions_enabled() ) { - $is_billing_agreement = wcs_is_paypal_profile_a( wcs_get_paypal_id( $subscription->id ), 'billing_agreement' ); + $is_billing_agreement = wcs_is_paypal_profile_a( wcs_get_paypal_id( $subscription->get_id() ), 'billing_agreement' ); if ( 'line_item' == $item['type'] && wcs_is_product_switchable_type( $item['product_id'] ) ) { $is_product_switchable = true; @@ -66,7 +66,7 @@ class WCS_PayPal_Standard_Switcher { $is_product_switchable = false; } - if ( $subscription->has_status( 'active' ) && 0 !== $subscription->get_date( 'last_payment' ) ) { + if ( $subscription->has_status( 'active' ) && 0 !== $subscription->get_date( 'last_order_date_created' ) ) { $is_subscription_switchable = true; } else { $is_subscription_switchable = false; @@ -99,7 +99,7 @@ class WCS_PayPal_Standard_Switcher { $subscription = wcs_get_subscription( $cart_switch_details['subscription_id'] ); - if ( 'paypal' === $subscription->payment_method && ! wcs_is_paypal_profile_a( wcs_get_paypal_id( $subscription->id ), 'billing_agreement' ) ) { + if ( 'paypal' === $subscription->get_payment_method() && ! wcs_is_paypal_profile_a( wcs_get_paypal_id( $subscription->get_id() ), 'billing_agreement' ) ) { $needs_payment = true; break; } @@ -127,13 +127,16 @@ class WCS_PayPal_Standard_Switcher { foreach ( wcs_get_subscriptions_for_switch_order( $order_id ) as $subscription ) { - if ( 'paypal' === $subscription->payment_method && $subscription->payment_method !== $order->payment_method && false === wcs_is_paypal_profile_a( wcs_get_paypal_id( $subscription->id ), 'billing_agreement' ) ) { + $order_payment_method = wcs_get_objects_property( $order, 'payment_method' ); + + if ( 'paypal' === $subscription->get_payment_method() && $subscription->get_payment_method() !== $order_payment_method && false === wcs_is_paypal_profile_a( wcs_get_paypal_id( $subscription->get_id() ), 'billing_agreement' ) ) { // Set the new payment method on the subscription $available_gateways = WC()->payment_gateways->get_available_payment_gateways(); - if ( isset( $available_gateways[ $order->payment_method ] ) ) { - $subscription->set_payment_method( $available_gateways[ $order->payment_method ] ); + if ( isset( $available_gateways[ $order_payment_method ] ) ) { + $subscription->set_payment_method( $available_gateways[ $order_payment_method ] ); + $subscription->save(); } } } @@ -158,9 +161,9 @@ class WCS_PayPal_Standard_Switcher { foreach ( $subscriptions as $subscription ) { - if ( 'paypal' === $subscription->payment_method ) { + if ( 'paypal' === $subscription->get_payment_method() ) { - $paypal_id = wcs_get_paypal_id( $subscription->id ); + $paypal_id = wcs_get_paypal_id( $subscription->get_id() ); if ( ! wcs_is_paypal_profile_a( $paypal_id, 'billing_agreement' ) ) { update_post_meta( $order_id, '_old_payment_method', 'paypal_standard' ); @@ -179,29 +182,29 @@ class WCS_PayPal_Standard_Switcher { */ public static function cancel_paypal_standard_after_switch( $order ) { - if ( 'paypal_standard' == get_post_meta( $order->id, '_old_payment_method', true ) ) { + if ( 'paypal_standard' == get_post_meta( wcs_get_objects_property( $order, 'id' ), '_old_payment_method', true ) ) { - $old_profile_id = get_post_meta( $order->id, '_old_paypal_subscription_id', true ); + $old_profile_id = get_post_meta( wcs_get_objects_property( $order, 'id' ), '_old_paypal_subscription_id', true ); if ( ! empty( $old_profile_id ) ) { - $subscriptions = wcs_get_subscriptions_for_order( $order->id, array( 'order_type' => 'switch' ) ); + $subscriptions = wcs_get_subscriptions_for_order( wcs_get_objects_property( $order, 'id' ), array( 'order_type' => 'switch' ) ); foreach ( $subscriptions as $subscription ) { if ( ! wcs_is_paypal_profile_a( $old_profile_id, 'billing_agreement' ) ) { - $new_payment_method = $subscription->payment_method; - $new_profile_id = get_post_meta( $subscription->id, '_paypal_subscription_id', true ); // grab the current paypal subscription id in case it's a billing agreement + $new_payment_method = $subscription->get_payment_method(); + $new_profile_id = get_post_meta( $subscription->get_id(), '_paypal_subscription_id', true ); // grab the current paypal subscription id in case it's a billing agreement - update_post_meta( $subscription->id, '_payment_method', 'paypal' ); - update_post_meta( $subscription->id, '_paypal_subscription_id', $old_profile_id ); + update_post_meta( $subscription->get_id(), '_payment_method', 'paypal' ); + update_post_meta( $subscription->get_id(), '_paypal_subscription_id', $old_profile_id ); WCS_PayPal_Status_Manager::suspend_subscription( $subscription ); // restore payment meta to the new data - update_post_meta( $subscription->id, '_payment_method', $new_payment_method ); - update_post_meta( $subscription->id, '_paypal_subscription_id', $new_profile_id ); + update_post_meta( $subscription->get_id(), '_payment_method', $new_payment_method ); + update_post_meta( $subscription->get_id(), '_paypal_subscription_id', $new_profile_id ); } } } diff --git a/includes/gateways/paypal/includes/class-wcs-paypal-status-manager.php b/includes/gateways/paypal/includes/class-wcs-paypal-status-manager.php index 87100aa..7be77b8 100644 --- a/includes/gateways/paypal/includes/class-wcs-paypal-status-manager.php +++ b/includes/gateways/paypal/includes/class-wcs-paypal-status-manager.php @@ -38,7 +38,7 @@ class WCS_PayPal_Status_Manager extends WCS_PayPal { * @since 2.0 */ public static function cancel_subscription( $subscription ) { - if ( ! wcs_is_paypal_profile_a( wcs_get_paypal_id( $subscription->id ), 'billing_agreement' ) && self::update_subscription_status( $subscription, 'Cancel' ) ) { + if ( ! wcs_is_paypal_profile_a( wcs_get_paypal_id( $subscription->get_id() ), 'billing_agreement' ) && self::update_subscription_status( $subscription, 'Cancel' ) ) { $subscription->add_order_note( __( 'Subscription cancelled with PayPal', 'woocommerce-subscriptions' ) ); } } @@ -49,7 +49,7 @@ class WCS_PayPal_Status_Manager extends WCS_PayPal { * @since 2.0 */ public static function suspend_subscription( $subscription ) { - if ( ! wcs_is_paypal_profile_a( wcs_get_paypal_id( $subscription->id ), 'billing_agreement' ) && self::update_subscription_status( $subscription, 'Suspend' ) ) { + if ( ! wcs_is_paypal_profile_a( wcs_get_paypal_id( $subscription->get_id() ), 'billing_agreement' ) && self::update_subscription_status( $subscription, 'Suspend' ) ) { $subscription->add_order_note( __( 'Subscription suspended with PayPal', 'woocommerce-subscriptions' ) ); } } @@ -62,7 +62,7 @@ class WCS_PayPal_Status_Manager extends WCS_PayPal { * @since 2.0 */ public static function reactivate_subscription( $subscription ) { - if ( ! wcs_is_paypal_profile_a( wcs_get_paypal_id( $subscription->id ), 'billing_agreement' ) && self::update_subscription_status( $subscription, 'Reactivate' ) ) { + if ( ! wcs_is_paypal_profile_a( wcs_get_paypal_id( $subscription->get_id() ), 'billing_agreement' ) && self::update_subscription_status( $subscription, 'Reactivate' ) ) { $subscription->add_order_note( __( 'Subscription reactivated with PayPal', 'woocommerce-subscriptions' ) ); } } @@ -77,7 +77,7 @@ class WCS_PayPal_Status_Manager extends WCS_PayPal { */ public static function update_subscription_status( $subscription, $new_status ) { - $profile_id = wcs_get_paypal_id( $subscription->id ); + $profile_id = wcs_get_paypal_id( $subscription->get_id() ); if ( wcs_is_paypal_profile_a( $profile_id, 'billing_agreement' ) ) { @@ -129,7 +129,7 @@ class WCS_PayPal_Status_Manager extends WCS_PayPal { * @since 2.0 */ public static function suspend_subscription_on_payment_changed( $status, $subscription ) { - return ( 'paypal' == $subscription->payment_gateway->id ) ? 'on-hold' : $status; + return ( 'paypal' == $subscription->get_payment_method() ) ? 'on-hold' : $status; } } diff --git a/includes/gateways/paypal/includes/class-wcs-paypal-supports.php b/includes/gateways/paypal/includes/class-wcs-paypal-supports.php index 7541f67..3a88e1d 100644 --- a/includes/gateways/paypal/includes/class-wcs-paypal-supports.php +++ b/includes/gateways/paypal/includes/class-wcs-paypal-supports.php @@ -78,9 +78,9 @@ class WCS_PayPal_Supports { */ public static function add_feature_support_for_subscription( $is_supported, $feature, $subscription ) { - if ( 'paypal' === $subscription->payment_method && WCS_PayPal::are_credentials_set() ) { + if ( 'paypal' === $subscription->get_payment_method() && WCS_PayPal::are_credentials_set() ) { - $paypal_profile_id = wcs_get_paypal_id( $subscription->id ); + $paypal_profile_id = wcs_get_paypal_id( $subscription->get_id() ); $is_billing_agreement = wcs_is_paypal_profile_a( $paypal_profile_id, 'billing_agreement' ); if ( 'gateway_scheduled_payments' === $feature && $is_billing_agreement ) { diff --git a/includes/gateways/paypal/includes/wcs-paypal-functions.php b/includes/gateways/paypal/includes/wcs-paypal-functions.php index aedc39c..7b116c0 100644 --- a/includes/gateways/paypal/includes/wcs-paypal-functions.php +++ b/includes/gateways/paypal/includes/wcs-paypal-functions.php @@ -20,13 +20,13 @@ if ( ! defined( 'ABSPATH' ) ) { * @param int The ID of a WC_Order or WC_Subscription object * @since 2.0 */ -function wcs_get_paypal_id( $order_id ) { +function wcs_get_paypal_id( $order ) { - if ( is_object( $order_id ) ) { - $order_id = $order_id->id; + if ( ! is_object( $order ) ) { + $order = wc_get_order( $order ); } - return get_post_meta( $order_id, '_paypal_subscription_id', true ); + return wcs_get_objects_property( $order, '_paypal_subscription_id' ); } /** @@ -48,7 +48,7 @@ function wcs_set_paypal_id( $order, $paypal_subscription_id ) { } } - return update_post_meta( $order->id, '_paypal_subscription_id', $paypal_subscription_id ); + wcs_set_objects_property( $order, 'paypal_subscription_id', $paypal_subscription_id ); } /** diff --git a/includes/legacy/class-wc-product-subscription-legacy.php b/includes/legacy/class-wc-product-subscription-legacy.php new file mode 100644 index 0000000..d2cfbda --- /dev/null +++ b/includes/legacy/class-wc-product-subscription-legacy.php @@ -0,0 +1,79 @@ +product_type = 'subscription'; + + // Load all meta fields + $this->product_custom_fields = get_post_meta( $this->id ); + + // Convert selected subscription meta fields for easy access + if ( ! empty( $this->product_custom_fields['_subscription_price'][0] ) ) { + $this->subscription_price = $this->product_custom_fields['_subscription_price'][0]; + } + + if ( ! empty( $this->product_custom_fields['_subscription_sign_up_fee'][0] ) ) { + $this->subscription_sign_up_fee = $this->product_custom_fields['_subscription_sign_up_fee'][0]; + } + + if ( ! empty( $this->product_custom_fields['_subscription_period'][0] ) ) { + $this->subscription_period = $this->product_custom_fields['_subscription_period'][0]; + } + + if ( ! empty( $this->product_custom_fields['_subscription_period_interval'][0] ) ) { + $this->subscription_period_interval = $this->product_custom_fields['_subscription_period_interval'][0]; + } + + if ( ! empty( $this->product_custom_fields['_subscription_length'][0] ) ) { + $this->subscription_length = $this->product_custom_fields['_subscription_length'][0]; + } + + if ( ! empty( $this->product_custom_fields['_subscription_trial_length'][0] ) ) { + $this->subscription_trial_length = $this->product_custom_fields['_subscription_trial_length'][0]; + } + + if ( ! empty( $this->product_custom_fields['_subscription_trial_period'][0] ) ) { + $this->subscription_trial_period = $this->product_custom_fields['_subscription_trial_period'][0]; + } + + $this->subscription_payment_sync_date = ( ! isset( $this->product_custom_fields['_subscription_payment_sync_date'][0] ) ) ? 0 : maybe_unserialize( $this->product_custom_fields['_subscription_payment_sync_date'][0] ); + $this->subscription_one_time_shipping = ( ! isset( $this->product_custom_fields['_subscription_one_time_shipping'][0] ) ) ? 'no' : $this->product_custom_fields['_subscription_one_time_shipping'][0]; + $this->subscription_limit = ( ! isset( $this->product_custom_fields['_subscription_limit'][0] ) ) ? 'no' : $this->product_custom_fields['_subscription_limit'][0]; + } +} diff --git a/includes/legacy/class-wc-product-subscription-variation-legacy.php b/includes/legacy/class-wc-product-subscription-variation-legacy.php new file mode 100644 index 0000000..e128843 --- /dev/null +++ b/includes/legacy/class-wc-product-subscription-variation-legacy.php @@ -0,0 +1,101 @@ +parent_product_type = $this->product_type; + + $this->product_type = 'subscription_variation'; + + $this->subscription_variation_level_meta_data = array( + 'subscription_price' => 0, + 'subscription_period' => '', + 'subscription_period_interval' => 'day', + 'subscription_length' => 0, + 'subscription_trial_length' => 0, + 'subscription_trial_period' => 'day', + 'subscription_sign_up_fee' => 0, + 'subscription_payment_sync_date' => 0, + ); + + $this->variation_level_meta_data = array_merge( $this->variation_level_meta_data, $this->subscription_variation_level_meta_data ); + } + + /* Copied from WC 2.6 WC_Product_Variation */ + + /** + * __isset function. + * + * @param mixed $key + * @return bool + */ + public function __isset( $key ) { + if ( in_array( $key, array( 'variation_data', 'variation_has_stock' ) ) ) { + return true; + } elseif ( in_array( $key, array_keys( $this->variation_level_meta_data ) ) ) { + return metadata_exists( 'post', $this->variation_id, '_' . $key ); + } elseif ( in_array( $key, array_keys( $this->variation_inherited_meta_data ) ) ) { + return metadata_exists( 'post', $this->variation_id, '_' . $key ) || metadata_exists( 'post', $this->id, '_' . $key ); + } else { + return metadata_exists( 'post', $this->id, '_' . $key ); + } + } + + /** + * Get method returns variation meta data if set, otherwise in most cases the data from the parent. + * + * We need to use the WC_Product_Variation's __get() method, not the one in WC_Product_Subscription_Variation, + * which handles deprecation notices. + * + * @param string $key + * @return mixed + */ + public function __get( $key ) { + return WC_Product_Variation::__get( $key ); + } + + /** + * Provide a WC 3.0 method for variations. + * + * WC < 3.0 products have a get_parent() method, but this is not equivalent to the get_parent_id() method + * introduced in WC 3.0, because it derives the parent from $this->post->post_parent, but for variations, + * $this->post refers to the parent variable object's post, so $this->post->post_parent will be 0 under + * normal circumstances. Becuase of that, we can rely on wcs_get_objects_property( $this, 'parent_id' ) + * and define this get_parent_id() method for variations even when WC 3.0 is not active. + * + * @param string $key + * @return mixed + */ + public function get_parent_id() { + return $this->id; // When WC < 3.0 is active, the ID property is the parent variable product's ID + } +} diff --git a/includes/legacy/class-wc-product-variable-subscription-legacy.php b/includes/legacy/class-wc-product-variable-subscription-legacy.php new file mode 100644 index 0000000..8438aca --- /dev/null +++ b/includes/legacy/class-wc-product-variable-subscription-legacy.php @@ -0,0 +1,381 @@ +parent_product_type = $this->product_type; + + $this->product_type = 'variable-subscription'; + + // Load all meta fields + $this->product_custom_fields = get_post_meta( $this->id ); + + // Convert selected subscription meta fields for easy access + if ( ! empty( $this->product_custom_fields['_subscription_price'][0] ) ) { + $this->subscription_price = $this->product_custom_fields['_subscription_price'][0]; + } + + if ( ! empty( $this->product_custom_fields['_subscription_sign_up_fee'][0] ) ) { + $this->subscription_sign_up_fee = $this->product_custom_fields['_subscription_sign_up_fee'][0]; + } + + if ( ! empty( $this->product_custom_fields['_subscription_period'][0] ) ) { + $this->subscription_period = $this->product_custom_fields['_subscription_period'][0]; + } + + if ( ! empty( $this->product_custom_fields['_subscription_period_interval'][0] ) ) { + $this->subscription_period_interval = $this->product_custom_fields['_subscription_period_interval'][0]; + } + + if ( ! empty( $this->product_custom_fields['_subscription_length'][0] ) ) { + $this->subscription_length = $this->product_custom_fields['_subscription_length'][0]; + } + + if ( ! empty( $this->product_custom_fields['_subscription_trial_length'][0] ) ) { + $this->subscription_trial_length = $this->product_custom_fields['_subscription_trial_length'][0]; + } + + if ( ! empty( $this->product_custom_fields['_subscription_trial_period'][0] ) ) { + $this->subscription_trial_period = $this->product_custom_fields['_subscription_trial_period'][0]; + } + + $this->subscription_payment_sync_date = 0; + $this->subscription_one_time_shipping = ( ! isset( $this->product_custom_fields['_subscription_one_time_shipping'][0] ) ) ? 'no' : $this->product_custom_fields['_subscription_one_time_shipping'][0]; + $this->subscription_limit = ( ! isset( $this->product_custom_fields['_subscription_limit'][0] ) ) ? 'no' : $this->product_custom_fields['_subscription_limit'][0]; + } + + + /** + * Get the min or max variation (active) price. + * + * This is a copy of WooCommerce < 2.4's get_variation_price() method, because 2.4.0 introduced a new + * transient caching system which assumes asort() on prices yields correct results for min/max prices + * (which it does for prices alone, but that's not the full story for subscription prices). Unfortunately, + * the new caching system is also hard to hook into so we'll just use the old system instead as the + * @see self::variable_product_sync() uses the old method also. + * + * @param string $min_or_max - min or max + * @param boolean $display Whether the value is going to be displayed + * @return string + */ + public function get_variation_price( $min_or_max = 'min', $display = false ) { + $variation_id = get_post_meta( $this->id, '_' . $min_or_max . '_price_variation_id', true ); + + if ( $display ) { + if ( $variation = wc_get_product( $variation_id ) ) { + if ( 'incl' == get_option( 'woocommerce_tax_display_shop' ) ) { + $price = wcs_get_price_including_tax( $variation ); + } else { + $price = wcs_get_price_excluding_tax( $variation ); + } + } else { + $price = ''; + } + } else { + $price = get_post_meta( $variation_id, '_price', true ); + } + + return apply_filters( 'woocommerce_get_variation_price', $price, $this, $min_or_max, $display ); + } + + /** + * Get an array of all sale and regular prices from all variations re-ordered after WC has done a standard sort, to reflect subscription terms. + * The first and last element for each price type is the least and most expensive, respectively. + * + * @see WC_Product_Variable::get_variation_prices() + * @param bool $include_taxes Should taxes be included in the prices. + * @return array() Array of RAW prices, regular prices, and sale prices with keys set to variation ID. + * @since 2.2.0 + */ + public function get_variation_prices( $display = false ) { + + $price_hash = $this->get_price_hash( $this, $display ); + + $this->prices_array[ $price_hash ] = parent::get_variation_prices( $display ); + + $children = array_keys( $this->prices_array[ $price_hash ]['price'] ); + sort( $children ); + + $min_max_data = wcs_get_min_max_variation_data( $this, $children ); + + $min_variation_id = $min_max_data['min']['variation_id']; + $max_variation_id = $min_max_data['max']['variation_id']; + + // Reorder the variable price arrays to reflect the min and max values so that WooCommerce will find them in the correct order + foreach ( $this->prices_array as $price_hash => $prices ) { + + // Loop over sale_price, regular_price & price values to update them on main array + foreach ( $prices as $price_key => $variation_prices ) { + + $min_price = $prices[ $price_key ][ $min_variation_id ]; + $max_price = $prices[ $price_key ][ $max_variation_id ]; + + unset( $prices[ $price_key ][ $min_variation_id ] ); + unset( $prices[ $price_key ][ $max_variation_id ] ); + + // append the minimum variation and prepend the maximum variation + $prices[ $price_key ] = array( $min_variation_id => $min_price ) + $prices[ $price_key ]; + $prices[ $price_key ] += array( $max_variation_id => $max_price ); + + $this->prices_array[ $price_hash ][ $price_key ] = $prices[ $price_key ]; + } + } + + $this->subscription_price = $min_max_data['min']['price']; + $this->subscription_period = $min_max_data['min']['period']; + $this->subscription_period_interval = $min_max_data['min']['interval']; + + $this->max_variation_price = $min_max_data['max']['price']; + $this->max_variation_period = $min_max_data['max']['period']; + $this->max_variation_period_interval = $min_max_data['max']['interval']; + + $this->min_variation_price = $min_max_data['min']['price']; + $this->min_variation_regular_price = $min_max_data['min']['regular_price']; + + return $this->prices_array[ $price_hash ]; + } + + /** + * Create unique cache key based on the tax location (affects displayed/cached prices), product version and active price filters. + * DEVELOPERS should filter this hash if offering conditonal pricing to keep it unique. + * + * @since 2.2.0 + * @param WC_Product + * @param bool $display Are prices for display? If so, taxes will be calculated. + * @return string + */ + protected function get_price_hash( $display = false ) { + global $wp_filter; + + if ( $display ) { + $price_hash = array( get_option( 'woocommerce_tax_display_shop', 'excl' ), WC_Tax::get_rates() ); + } else { + $price_hash = array( false ); + } + + $filter_names = array( 'woocommerce_variation_prices_price', 'woocommerce_variation_prices_regular_price', 'woocommerce_variation_prices_sale_price' ); + + foreach ( $filter_names as $filter_name ) { + if ( ! empty( $wp_filter[ $filter_name ] ) ) { + $price_hash[ $filter_name ] = array(); + + foreach ( $wp_filter[ $filter_name ] as $priority => $callbacks ) { + $price_hash[ $filter_name ][] = array_values( wp_list_pluck( $callbacks, 'function' ) ); + } + } + } + + $price_hash = md5( json_encode( apply_filters( 'woocommerce_get_variation_prices_hash', $price_hash, $this, $display ) ) ); + + return $price_hash; + } + + /** + * Sync variable product prices with the childs lowest/highest prices. + * + * @access public + * @return void + */ + public function variable_product_sync( $product_id = '' ) { + + WC_Product_Variable::variable_product_sync( $product_id ); + + $child_variation_ids = $this->get_children( true ); + + if ( $child_variation_ids ) { + + $min_max_data = wcs_get_min_max_variation_data( $this, $child_variation_ids ); + + update_post_meta( $this->id, '_min_price_variation_id', $min_max_data['min']['variation_id'] ); + update_post_meta( $this->id, '_max_price_variation_id', $min_max_data['max']['variation_id'] ); + + update_post_meta( $this->id, '_price', $min_max_data['min']['price'] ); + update_post_meta( $this->id, '_min_variation_price', $min_max_data['min']['price'] ); + update_post_meta( $this->id, '_max_variation_price', $min_max_data['max']['price'] ); + update_post_meta( $this->id, '_min_variation_regular_price', $min_max_data['min']['regular_price'] ); + update_post_meta( $this->id, '_max_variation_regular_price', $min_max_data['max']['regular_price'] ); + update_post_meta( $this->id, '_min_variation_sale_price', $min_max_data['min']['sale_price'] ); + update_post_meta( $this->id, '_max_variation_sale_price', $min_max_data['max']['sale_price'] ); + + update_post_meta( $this->id, '_min_variation_period', $min_max_data['min']['period'] ); + update_post_meta( $this->id, '_max_variation_period', $min_max_data['max']['period'] ); + update_post_meta( $this->id, '_min_variation_period_interval', $min_max_data['min']['interval'] ); + update_post_meta( $this->id, '_max_variation_period_interval', $min_max_data['max']['interval'] ); + + update_post_meta( $this->id, '_subscription_price', $min_max_data['min']['price'] ); + update_post_meta( $this->id, '_subscription_sign_up_fee', $min_max_data['subscription']['signup-fee'] ); + update_post_meta( $this->id, '_subscription_period', $min_max_data['min']['period'] ); + update_post_meta( $this->id, '_subscription_period_interval', $min_max_data['min']['interval'] ); + update_post_meta( $this->id, '_subscription_trial_period', $min_max_data['subscription']['trial_period'] ); + update_post_meta( $this->id, '_subscription_trial_length', $min_max_data['subscription']['trial_length'] ); + update_post_meta( $this->id, '_subscription_length', $min_max_data['subscription']['length'] ); + + $this->subscription_price = $min_max_data['min']['price']; + $this->subscription_period = $min_max_data['min']['period']; + $this->subscription_period_interval = $min_max_data['min']['interval']; + $this->subscription_sign_up_fee = $min_max_data['subscription']['signup-fee']; + $this->subscription_trial_period = $min_max_data['subscription']['trial_period']; + $this->subscription_trial_length = $min_max_data['subscription']['trial_length']; + $this->subscription_length = $min_max_data['subscription']['length']; + + if ( function_exists( 'wc_delete_product_transients' ) ) { + wc_delete_product_transients( $this->id ); + } else { + WC()->clear_product_transients( $this->id ); + } + } else { // No variations yet + + $this->subscription_price = ''; + $this->subscription_sign_up_fee = ''; + $this->subscription_period = 'day'; + $this->subscription_period_interval = 1; + $this->subscription_trial_period = 'day'; + $this->subscription_trial_length = 1; + $this->subscription_length = 0; + + } + } + + /** + * Returns the price in html format. + * + * @access public + * @param string $price (default: '') + * @return string + */ + public function get_price_html( $price = '' ) { + + if ( ! isset( $this->subscription_period ) || ! isset( $this->subscription_period_interval ) || ! isset( $this->max_variation_period ) || ! isset( $this->max_variation_period_interval ) ) { + $this->variable_product_sync(); + } + + // Only create the subscription price string when a price has been set + if ( $this->subscription_price !== '' ) { + + $price = ''; + + if ( $this->is_on_sale() && isset( $this->min_variation_price ) && $this->min_variation_regular_price !== $this->get_price() ) { + + if ( ! $this->min_variation_price || $this->min_variation_price !== $this->max_variation_price ) { + $price .= wcs_get_price_html_from_text( $this ); + } + + $variation_id = get_post_meta( $this->id, '_min_price_variation_id', true ); + $variation = wc_get_product( $variation_id ); + $tax_display_mode = get_option( 'woocommerce_tax_display_shop' ); + + $sale_price_args = array( 'qty' => 1, 'price' => $variation->get_sale_price() ); + $regular_price_args = array( 'qty' => 1, 'price' => $variation->get_regular_price() ); + + if ( 'incl' == $tax_display_mode ) { + $sale_price = wcs_get_price_including_tax( $variation, $sale_price_args ); + $regular_price = wcs_get_price_including_tax( $variation, $regular_price_args ); + } else { + $sale_price = wcs_get_price_excluding_tax( $variation, $sale_price_args ); + $regular_price = wcs_get_price_excluding_tax( $variation, $regular_price_args ); + } + + $price .= $this->get_price_html_from_to( $regular_price, $sale_price ); + + } else { + + if ( $this->min_variation_price !== $this->max_variation_price ) { + $price .= wcs_get_price_html_from_text( $this ); + } + + $price .= wc_price( $this->get_variation_price( 'min', true ) ); + + } + + // Make sure the price contains "From:" when billing schedule differs between variations + if ( false === strpos( $price, wcs_get_price_html_from_text( $this ) ) ) { + if ( $this->subscription_period !== $this->max_variation_period ) { + $price = wcs_get_price_html_from_text( $this ) . $price; + } elseif ( $this->subscription_period_interval !== $this->max_variation_period_interval ) { + $price = wcs_get_price_html_from_text( $this ) . $price; + } + } + + $price .= $this->get_price_suffix(); + + $price = WC_Subscriptions_Product::get_price_string( $this, array( 'price' => $price ) ); + } + + return apply_filters( 'woocommerce_variable_subscription_price_html', $price, $this ); + } + + /** + * Provide the WC_Data::get_meta() function when WC < 3.0 is active. + * + * @param string $meta_key + * @param bool $single + * @param string $context + * @return object WC_Product_Subscription or WC_Product_Subscription_Variation + */ + function get_meta( $meta_key = '', $single = true, $context = 'view' ) { + return get_post_meta( $this->get_id(), $meta_key, $single ); + } + + /** + * get_child function. + * + * @access public + * @param mixed $child_id + * @return object WC_Product_Subscription or WC_Product_Subscription_Variation + */ + public function get_child( $child_id ) { + return wc_get_product( $child_id, array( + 'product_type' => 'Subscription_Variation', + 'parent_id' => $this->id, + 'parent' => $this, + ) ); + } + + /** + * Get default attributes. + * + * @since 2.2.0 + * @param string $context + * @return array + */ + public function get_default_attributes( $context = 'view' ) { + return $this->get_variation_default_attributes(); + } +} diff --git a/includes/legacy/class-wc-subscription-legacy.php b/includes/legacy/class-wc-subscription-legacy.php new file mode 100644 index 0000000..78e62c3 --- /dev/null +++ b/includes/legacy/class-wc-subscription-legacy.php @@ -0,0 +1,749 @@ +order_type = 'shop_subscription'; + + $this->schedule = new stdClass(); + } + + /** + * Populates a subscription from the loaded post data. + * + * @param mixed $result + */ + public function populate( $result ) { + parent::populate( $result ); + + if ( $this->post->post_parent > 0 ) { + $this->order = wc_get_order( $this->post->post_parent ); + } + } + + /** + * Returns the unique ID for this object. + * + * @return int + */ + public function get_id() { + return $this->id; + } + + /** + * Get parent order ID. + * + * @since 2.2.0 + * @return int + */ + public function get_parent_id() { + return $this->post->post_parent; + } + + /** + * Gets order currency. + * + * @return string + */ + public function get_currency() { + return $this->get_order_currency(); + } + + /** + * Get customer_note. + * + * @param string $context + * @return string + */ + public function get_customer_note( $context = 'view' ) { + return $this->customer_note; + } + + /** + * Get prices_include_tax. + * + * @param string $context + * @return bool + */ + public function get_prices_include_tax( $context = 'view' ) { + return $this->prices_include_tax; + } + + /** + * Get the payment method. + * + * @param string $context + * @return string + */ + public function get_payment_method( $context = 'view' ) { + return $this->payment_method; + } + + /** + * Get the payment method's title. + * + * @param string $context + * @return string + */ + public function get_payment_method_title( $context = 'view' ) { + return $this->payment_method_title; + } + + /** Address Getters **/ + + /** + * Get billing_first_name. + * + * @param string $context + * @return string + */ + public function get_billing_first_name( $context = 'view' ) { + return $this->billing_first_name; + } + + /** + * Get billing_last_name. + * + * @param string $context + * @return string + */ + public function get_billing_last_name( $context = 'view' ) { + return $this->billing_last_name; + } + + /** + * Get billing_company. + * + * @param string $context + * @return string + */ + public function get_billing_company( $context = 'view' ) { + return $this->billing_company; + } + + /** + * Get billing_address_1. + * + * @param string $context + * @return string + */ + public function get_billing_address_1( $context = 'view' ) { + return $this->billing_address_1; + } + + /** + * Get billing_address_2. + * + * @param string $context + * @return string $value + */ + public function get_billing_address_2( $context = 'view' ) { + return $this->billing_address_2; + } + + /** + * Get billing_city. + * + * @param string $context + * @return string $value + */ + public function get_billing_city( $context = 'view' ) { + return $this->billing_city; + } + + /** + * Get billing_state. + * + * @param string $context + * @return string + */ + public function get_billing_state( $context = 'view' ) { + return $this->billing_state; + } + + /** + * Get billing_postcode. + * + * @param string $context + * @return string + */ + public function get_billing_postcode( $context = 'view' ) { + return $this->billing_postcode; + } + + /** + * Get billing_country. + * + * @param string $context + * @return string + */ + public function get_billing_country( $context = 'view' ) { + return $this->billing_country; + } + + /** + * Get billing_email. + * + * @param string $context + * @return string + */ + public function get_billing_email( $context = 'view' ) { + return $this->billing_email; + } + + /** + * Get billing_phone. + * + * @param string $context + * @return string + */ + public function get_billing_phone( $context = 'view' ) { + return $this->billing_phone; + } + + /** + * Get shipping_first_name. + * + * @param string $context + * @return string + */ + public function get_shipping_first_name( $context = 'view' ) { + return $this->shipping_first_name; + } + + /** + * Get shipping_last_name. + * + * @param string $context + * @return string + */ + public function get_shipping_last_name( $context = 'view' ) { + return $this->shipping_last_name; + } + + /** + * Get shipping_company. + * + * @param string $context + * @return string + */ + public function get_shipping_company( $context = 'view' ) { + return $this->shipping_company; + } + + /** + * Get shipping_address_1. + * + * @param string $context + * @return string + */ + public function get_shipping_address_1( $context = 'view' ) { + return $this->shipping_address_1; + } + + /** + * Get shipping_address_2. + * + * @param string $context + * @return string + */ + public function get_shipping_address_2( $context = 'view' ) { + return $this->shipping_address_2; + } + + /** + * Get shipping_city. + * + * @param string $context + * @return string + */ + public function get_shipping_city( $context = 'view' ) { + return $this->shipping_city; + } + + /** + * Get shipping_state. + * + * @param string $context + * @return string + */ + public function get_shipping_state( $context = 'view' ) { + return $this->shipping_state; + } + + /** + * Get shipping_postcode. + * + * @param string $context + * @return string + */ + public function get_shipping_postcode( $context = 'view' ) { + return $this->shipping_postcode; + } + + /** + * Get shipping_country. + * + * @param string $context + * @return string + */ + public function get_shipping_country( $context = 'view' ) { + return $this->shipping_country; + } + + /** + * Get order key. + * + * @since 2.2.0 + * @param string $context + * @return string + */ + public function get_order_key( $context = 'view' ) { + return $this->order_key; + } + + /** + * Get date_created. + * + * Used by parent::get_date() + * + * @throws WC_Data_Exception + * @return DateTime|NULL object if the date is set or null if there is no date. + */ + public function get_date_created( $context = 'view' ) { + + if ( '0000-00-00 00:00:00' != $this->post->post_date_gmt ) { + $datetime = new WC_DateTime( $this->post->post_date_gmt, new DateTimeZone( 'UTC' ) ); + $datetime->setTimezone( new DateTimeZone( wc_timezone_string() ) ); + } else { + $datetime = new WC_DateTime( $this->post->post_date, new DateTimeZone( wc_timezone_string() ) ); + } + + // Cache it in $this->schedule for backward compatibility + if ( ! isset( $this->schedule->start ) ) { + $this->schedule->start = wcs_get_datetime_utc_string( $datetime ); + } + + return $datetime; + } + + /** + * Get date_modified. + * + * Used by parent::get_date() + * + * @throws WC_Data_Exception + * @return DateTime|NULL object if the date is set or null if there is no date. + */ + public function get_date_modified( $context = 'view' ) { + + if ( '0000-00-00 00:00:00' != $this->post->post_modified_gmt ) { + $datetime = new WC_DateTime( $this->post->post_modified_gmt, new DateTimeZone( 'UTC' ) ); + $datetime->setTimezone( new DateTimeZone( wc_timezone_string() ) ); + } else { + $datetime = new WC_DateTime( $this->post->post_modified, new DateTimeZone( wc_timezone_string() ) ); + } + + return $datetime; + } + + /** + * Check if a given line item on the subscription had a sign-up fee, and if so, return the value of the sign-up fee. + * + * The single quantity sign-up fee will be returned instead of the total sign-up fee paid. For example, if 3 x a product + * with a 10 BTC sign-up fee was purchased, a total 30 BTC was paid as the sign-up fee but this function will return 10 BTC. + * + * @param array|int Either an order item (in the array format returned by self::get_items()) or the ID of an order item. + * @param string $tax_inclusive_or_exclusive Whether or not to adjust sign up fee if prices inc tax - ensures that the sign up fee paid amount includes the paid tax if inc + * @return bool + * @since 2.0 + */ + public function get_items_sign_up_fee( $line_item, $tax_inclusive_or_exclusive = 'exclusive_of_tax' ) { + + if ( ! is_array( $line_item ) ) { + $line_item = wcs_get_order_item( $line_item, $this ); + } + + $parent_order = $this->get_parent(); + + // If there was no original order, nothing was paid up-front which means no sign-up fee + if ( false == $parent_order ) { + + $sign_up_fee = 0; + + } else { + + $original_order_item = ''; + + // Find the matching item on the order + foreach ( $parent_order->get_items() as $order_item ) { + if ( wcs_get_canonical_product_id( $line_item ) == wcs_get_canonical_product_id( $order_item ) ) { + $original_order_item = $order_item; + break; + } + } + + // No matching order item, so this item wasn't purchased in the original order + if ( empty( $original_order_item ) ) { + + $sign_up_fee = 0; + + } elseif ( isset( $line_item['item_meta']['_has_trial'] ) ) { + + // Sign up is total amount paid for this item on original order when item has a free trial + $sign_up_fee = $original_order_item['line_total'] / $original_order_item['qty']; + + } else { + + // Sign-up fee is any amount on top of recurring amount + $sign_up_fee = max( $original_order_item['line_total'] / $original_order_item['qty'] - $line_item['line_total'] / $line_item['qty'], 0 ); + } + + // If prices inc tax, ensure that the sign up fee amount includes the tax + if ( 'inclusive_of_tax' === $tax_inclusive_or_exclusive && ! empty( $original_order_item ) && $this->get_prices_include_tax() ) { + $proportion = $sign_up_fee / ( $original_order_item['line_total'] / $original_order_item['qty'] ); + $sign_up_fee += round( $original_order_item['line_tax'] * $proportion, 2 ); + } + } + + return apply_filters( 'woocommerce_subscription_items_sign_up_fee', $sign_up_fee, $line_item, $this, $tax_inclusive_or_exclusive ); + } + + /** + * Helper function to make sure when WC_Subscription calls get_prop() from + * it's new getters that the property is both retreived from the legacy class + * property and done so from post meta. + * + * For inherited dates props, like date_created, date_modified, date_paid, + * date_completed, we want to use our own get_date() function rather simply + * getting the stored value. Otherwise, we either get the prop set in memory + * or post meta if it's not set yet, because __get() in WC < 3.0 would fallback + * to post meta. + * + * @param string + * @param string + * @return mixed + */ + protected function get_prop( $prop, $context = 'view' ) { + + if ( 'switch_data' == $prop ) { + $prop = 'subscription_switch_data'; + } + + // The requires manual renewal prop uses boolean values but is stored as a string so needs special handling, it also needs to be handled before the checks on $this->$prop to avoid triggering __isset() & __get() magic methods for $this->requires_manual_renewal + if ( 'requires_manual_renewal' === $prop ) { + $value = get_post_meta( $this->get_id(), '_' . $prop, true ); + + if ( 'false' === $value || '' === $value ) { + $value = false; + } else { + $value = true; + } + } elseif ( ! isset( $this->$prop ) || empty( $this->$prop ) ) { + $value = get_post_meta( $this->get_id(), '_' . $prop, true ); + } else { + $value = $this->$prop; + } + + return $value; + } + + /** + * Get the stored date for a specific schedule. + * + * @param string $date_type 'date_created', 'trial_end', 'next_payment', 'last_order_date_created' or 'end' + */ + protected function get_date_prop( $date_type ) { + + $datetime = parent::get_date_prop( $date_type ); + + // Cache the string equalivent of it in $this->schedule for backward compatibility + if ( ! isset( $this->schedule->{$date_type} ) ) { + if ( ! is_object( $datetime ) ) { + $this->schedule->{$date_type} = 0; + } else { + $this->schedule->{$date_type} = wcs_get_datetime_utc_string( $datetime ); + } + } + + return wcs_get_datetime_from( wcs_date_to_time( $datetime ) ); + } + + /*** Setters *****************************************************/ + + /** + * Set the unique ID for this object. + * + * @param int + */ + public function set_id( $id ) { + $this->id = absint( $id ); + } + + /** + * Set parent order ID. We don't use WC_Abstract_Order::set_parent_id() because we want to allow false + * parent IDs, like 0. + * + * @since 2.2.0 + * @param int $value + */ + public function set_parent_id( $value ) { + // Update the parent in the database + wp_update_post( array( + 'ID' => $this->id, + 'post_parent' => $value, + ) ); + + // And update the parent in memory + $this->post->post_parent = $value; + $this->order = null; + } + + /** + * Set subscription status. + * + * @param string $new_status Status to change the order to. No internal wc- prefix is required. + * @return array details of change + */ + public function set_status( $new_status, $note = '', $manual_update = false ) { + + $old_status = $this->get_status(); + $new_status = 'wc-' === substr( $new_status, 0, 3 ) ? substr( $new_status, 3 ) : $new_status; + + wp_update_post( array( 'ID' => $this->get_id(), 'post_status' => wcs_maybe_prefix_key( $new_status, 'wc-' ) ) ); + $this->post_status = $this->post->post_status = wcs_maybe_prefix_key( $new_status, 'wc-' ); + + if ( $old_status !== $new_status ) { + $this->status_transition = array( + 'from' => ! empty( $this->status_transition['from'] ) ? $this->status_transition['from'] : $old_status, + 'to' => $new_status, + 'note' => $note, + 'manual' => (bool) $manual_update, + ); + } + + return array( + 'from' => $old_status, + 'to' => $new_status, + ); + } + + /** + * Helper function to make sure when WC_Subscription calls set_prop() that property is + * both set in the legacy class property and saved in post meta immediately. + * + * @param string $prop + * @param mixed $value + */ + protected function set_prop( $prop, $value ) { + + if ( 'switch_data' == $prop ) { + $prop = 'subscription_switch_data'; + } + + $this->$prop = $value; + + // The requires manual renewal prop uses boolean values but it stored as a string + if ( 'requires_manual_renewal' === $prop ) { + if ( false === $value || '' === $value ) { + $value = 'false'; + } else { + $value = 'true'; + } + } + + update_post_meta( $this->get_id(), '_' . $prop, $value ); + } + + /** + * Set the stored date for a specific schedule. + * + * @param string $date_type 'trial_end', 'next_payment', 'cancelled', 'payment_retry' or 'end' + * @param int $value UTC timestamp + */ + protected function set_date_prop( $date_type, $value ) { + $datetime = wcs_get_datetime_from( $value ); + $date = ! is_null( $datetime ) ? wcs_get_datetime_utc_string( $datetime ) : 0; + + $this->set_prop( $this->get_date_prop_key( $date_type ), $date ); + $this->schedule->{$date_type} = $date; + } + + /** + * Set a certain date type for the last order on the subscription. + * + * @since 2.2.0 + * @param string $date_type + * @param string|integer|object + * @return WC_DateTime|NULL object if the date is set or null if there is no date. + */ + protected function set_last_order_date( $date_type, $date = null ) { + + $last_order = $this->get_last_order( 'all' ); + + if ( $last_order ) { + + $datetime = wcs_get_datetime_from( $date ); + + switch ( $date_type ) { + case 'date_paid' : + update_post_meta( $last_order->id, '_paid_date', ! is_null( $date ) ? $datetime->date( 'Y-m-d H:i:s' ) : '' ); + // Preemptively set the UTC timestamp for WC 3.0+ also to avoid incorrect values when the site's timezone is changed between now and upgrading to WC 3.0 + update_post_meta( $last_order->id, '_date_paid', ! is_null( $date ) ? $datetime->getTimestamp() : '' ); + break; + + case 'date_completed' : + update_post_meta( $last_order->id, '_completed_date', ! is_null( $date ) ? $datetime->date( 'Y-m-d H:i:s' ) : '' ); + // Preemptively set the UTC timestamp for WC 3.0+ also to avoid incorrect values when the site's timezone is changed between now and upgrading to WC 3.0 + update_post_meta( $last_order->id, '_date_completed', ! is_null( $date ) ? $datetime->getTimestamp() : '' ); + break; + + case 'date_modified' : + wp_update_post( array( + 'ID' => $last_order->id, + 'post_modified' => $datetime->date( 'Y-m-d H:i:s' ), + 'post_modified_gmt' => wcs_get_datetime_utc_string( $datetime ), + ) ); + break; + + case 'date_created' : + wp_update_post( array( + 'ID' => $last_order->id, + 'post_date' => $datetime->date( 'Y-m-d H:i:s' ), + 'post_date_gmt' => wcs_get_datetime_utc_string( $datetime ), + ) ); + break; + } + } + } + + /** + * Set date_created. + * + * Used by parent::update_dates() + * + * @param string|integer|null $date UTC timestamp, or ISO 8601 DateTime. If the DateTime string has no timezone or offset, WordPress site timezone will be assumed. Null if their is no date. + * @throws WC_Data_Exception + */ + public function set_date_created( $date = null ) { + global $wpdb; + + if ( ! is_null( $date ) ) { + + $datetime_string = wcs_get_datetime_utc_string( wcs_get_datetime_from( $date ) ); + + // Don't use wp_update_post() to avoid infinite loops here + $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_date = %s, post_date_gmt = %s WHERE ID = %d", get_date_from_gmt( $datetime_string ), $datetime_string, $this->get_id() ) ); + + $this->post->post_date = get_date_from_gmt( $datetime_string ); + $this->post->post_date_gmt = $datetime_string; + } + } + + /** + * Set discount_total. + * + * @param string $value + * @throws WC_Data_Exception + */ + public function set_discount_total( $value ) { + $this->set_total( $value, 'cart_discount' ); + } + + /** + * Set discount_tax. + * + * @param string $value + * @throws WC_Data_Exception + */ + public function set_discount_tax( $value ) { + $this->set_total( $value, 'cart_discount_tax' ); + } + + /** + * Set shipping_total. + * + * @param string $value + * @throws WC_Data_Exception + */ + public function set_shipping_total( $value ) { + $this->set_total( $value, 'shipping' ); + } + + /** + * Set shipping_tax. + * + * @param string $value + * @throws WC_Data_Exception + */ + public function set_shipping_tax( $value ) { + $this->set_total( $value, 'shipping_tax' ); + } + + /** + * Set cart tax. + * + * @param string $value + * @throws WC_Data_Exception + */ + public function set_cart_tax( $value ) { + $this->set_total( $value, 'tax' ); + } + + /** + * Save data to the database. Nothing to do here as it's all done separately when calling @see this->set_prop(). + * + * @return int order ID + */ + public function save() { + $this->status_transition(); + return $this->get_id(); + } + + /** + * Update meta data by key or ID, if provided. + * + * @since 2.2.0 + * @param string $key + * @param string $value + * @param int $meta_id + */ + public function update_meta_data( $key, $value, $meta_id = '' ) { + if ( ! empty( $meta_id ) ) { + update_metadata_by_mid( 'post', $meta_id, $value, $key ); + } else { + update_post_meta( $this->get_id(), $key, $value ); + } + } +} diff --git a/includes/legacy/class-wcs-array-property-post-meta-black-magic.php b/includes/legacy/class-wcs-array-property-post-meta-black-magic.php new file mode 100644 index 0000000..7eabcd8 --- /dev/null +++ b/includes/legacy/class-wcs-array-property-post-meta-black-magic.php @@ -0,0 +1,85 @@ +product_id = $product_id; + } + + /** + * offsetGet + * @param string $key + * @return mixed + */ + public function offsetGet( $key ) { + return get_post_meta( $this->product_id, $this->maybe_prefix_meta_key( $key ) ); + } + + /** + * offsetSet + * @param string $key + * @param mixed $value + */ + public function offsetSet( $key, $value ) { + update_post_meta( $this->product_id, $this->maybe_prefix_meta_key( $key ), $value ); + } + + /** + * offsetExists + * @param string $key + * @return bool + */ + public function offsetExists( $key ) { + return metadata_exists( 'post', $this->product_id, $this->maybe_prefix_meta_key( $key ) ); + } + + /** + * Nothing to do here as we access post meta directly. + */ + public function offsetUnset( $key ) { + } + + /** + * We only work with post meta data that has meta keys prefixed with an underscore, so + * add a prefix if it is not already set. + */ + protected function maybe_prefix_meta_key( $key ) { + if ( '_' != substr( $key, 0, 1 ) ) { + $key = '_' . $key; + } + return $key; + } +} diff --git a/includes/legacy/class-wcs-product-legacy.php b/includes/legacy/class-wcs-product-legacy.php new file mode 100644 index 0000000..80ff38f --- /dev/null +++ b/includes/legacy/class-wcs-product-legacy.php @@ -0,0 +1,42 @@ +format( DATE_ATOM ); + } + + /** + * Missing in PHP 5.2. + * + * @since 3.0.0 + * @return int + */ + public function getTimestamp() { + return method_exists( 'DateTime', 'getTimestamp' ) ? parent::getTimestamp() : $this->format( 'U' ); + } + + /** + * Get the timestamp with the WordPress timezone offset added or subtracted. + * + * @since 3.0.0 + * @return int + */ + public function getOffsetTimestamp() { + return $this->getTimestamp() + $this->getOffset(); + } + + /** + * Format a date based on the offset timestamp. + * + * @since 3.0.0 + * @param string $format + * @return string + */ + public function date( $format ) { + return gmdate( $format, $this->getOffsetTimestamp() ); + } + + /** + * Return a localised date based on offset timestamp. Wrapper for date_i18n function. + * + * @since 3.0.0 + * @param string $format + * @return string + */ + public function date_i18n( $format = 'Y-m-d' ) { + return date_i18n( $format, $this->getOffsetTimestamp() ); + } +} diff --git a/includes/payment-retry/class-wcs-retry-email.php b/includes/payment-retry/class-wcs-retry-email.php index 2565669..fece963 100644 --- a/includes/payment-retry/class-wcs-retry-email.php +++ b/includes/payment-retry/class-wcs-retry-email.php @@ -68,7 +68,7 @@ class WCS_Retry_Email { $email_class = $retry_rule->get_email_template( $recipient ); if ( class_exists( $email_class ) ) { $email = new $email_class(); - $email->trigger( $last_order ); + $email->trigger( wcs_get_objects_property( $last_order, 'id' ), $last_order ); } } } @@ -89,8 +89,8 @@ class WCS_Retry_Email { remove_action( 'woocommerce_order_status_failed', 'WC_Subscriptions_Email::send_renewal_order_email', 10 ); // Remove email sent to admin, which is sent by WooCommerce - remove_action( 'woocommerce_order_status_pending_to_failed', array( 'WC_Emails', 'send_transactional_email' ), 10, 10 ); - remove_action( 'woocommerce_order_status_on-hold_to_failed', array( 'WC_Emails', 'send_transactional_email' ), 10, 10 ); + WC_Subscriptions_Email::detach_woocommerce_transactional_email( 'woocommerce_order_status_pending_to_failed' ); + WC_Subscriptions_Email::detach_woocommerce_transactional_email( 'woocommerce_order_status_on-hold_to_failed' ); self::$removed_emails_for_order_id = $order_id; } @@ -109,8 +109,8 @@ class WCS_Retry_Email { add_action( 'woocommerce_order_status_failed', 'WC_Subscriptions_Email::send_renewal_order_email' ); // Reattach email sent to admin, which is sent by WooCommerce - add_action( 'woocommerce_order_status_pending_to_failed', array( 'WC_Emails', 'send_transactional_email' ), 10, 10 ); - add_action( 'woocommerce_order_status_on-hold_to_failed', array( 'WC_Emails', 'send_transactional_email' ), 10, 10 ); + WC_Subscriptions_Email::attach_woocommerce_transactional_email( 'woocommerce_order_status_pending_to_failed' ); + WC_Subscriptions_Email::attach_woocommerce_transactional_email( 'woocommerce_order_status_on-hold_to_failed' ); self::$removed_emails_for_order_id = null; } diff --git a/includes/upgrades/class-wc-subscriptions-upgrader.php b/includes/upgrades/class-wc-subscriptions-upgrader.php index c3a8c7b..9f6213a 100644 --- a/includes/upgrades/class-wc-subscriptions-upgrader.php +++ b/includes/upgrades/class-wc-subscriptions-upgrader.php @@ -209,7 +209,7 @@ class WC_Subscriptions_Upgrader { * @since 2.1 */ public static function maybe_redirect_after_upgrade_complete( $current_version, $previously_active_version ) { - if ( version_compare( $previously_active_version, '2.1.0', '<' ) && version_compare( $current_version, '2.1.0', '>=' ) ) { + if ( version_compare( $previously_active_version, '2.1.0', '<' ) && version_compare( $current_version, '2.1.0', '>=' ) && version_compare( $current_version, '2.2.0', '<' ) ) { wp_safe_redirect( self::$about_page_url ); exit(); } diff --git a/includes/upgrades/class-wcs-repair-2-0-2.php b/includes/upgrades/class-wcs-repair-2-0-2.php index de34cfc..3100963 100644 --- a/includes/upgrades/class-wcs-repair-2-0-2.php +++ b/includes/upgrades/class-wcs-repair-2-0-2.php @@ -58,11 +58,11 @@ class WCS_Repair_2_0_2 { $subscription = wcs_get_subscription( $subscription_id ); if ( false !== $subscription && self::maybe_repair_subscription( $subscription ) ) { - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repair completed', $subscription->id ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repair completed', $subscription->get_id() ) ); $repaired_count++; update_post_meta( $subscription_id, '_wcs_repaired_2_0_2', 'true' ); } else { - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: no repair needed', $subscription->id ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: no repair needed', $subscription->get_id() ) ); $unrepaired_count++; update_post_meta( $subscription_id, '_wcs_repaired_2_0_2', 'false' ); } @@ -87,10 +87,11 @@ class WCS_Repair_2_0_2 { protected static function maybe_repair_subscription( $subscription ) { $repaired_subscription = false; + $parent_order = $subscription->get_parent(); // if the subscription doesn't have an order, it must have been created in 2.0, so we can ignore it - if ( false === $subscription->order ) { - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: no need to repair: it has no order.', $subscription->id ) ); + if ( false === $parent_order ) { + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: no need to repair: it has no order.', $subscription->get_id() ) ); return $repaired_subscription; } @@ -98,7 +99,7 @@ class WCS_Repair_2_0_2 { // if the subscription has more than one line item, it must have been created in 2.0, so we can ignore it if ( count( $subscription_line_items ) > 1 ) { - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: no need to repair: it has more than one line item.', $subscription->id ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: no need to repair: it has more than one line item.', $subscription->get_id() ) ); return $repaired_subscription; } @@ -106,7 +107,7 @@ class WCS_Repair_2_0_2 { $subscription_line_item = array_shift( $subscription_line_items ); // Get old order item's meta - foreach ( $subscription->order->get_items() as $line_item_id => $line_item ) { + foreach ( $parent_order->get_items() as $line_item_id => $line_item ) { if ( wcs_get_canonical_product_id( $line_item ) == wcs_get_canonical_product_id( $subscription_line_item ) ) { $matching_line_item_id = $line_item_id; $matching_line_item = $line_item; @@ -116,7 +117,7 @@ class WCS_Repair_2_0_2 { // we couldn't find a matching line item so we can't repair it if ( ! isset( $matching_line_item ) ) { - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: can not repair: it has no matching line item.', $subscription->id ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: can not repair: it has no matching line item.', $subscription->get_id() ) ); return $repaired_subscription; } @@ -124,20 +125,20 @@ class WCS_Repair_2_0_2 { // if the order item doesn't have migrated subscription data, the subscription wasn't migrated from 1.5 if ( ! isset( $matching_line_item_meta['_wcs_migrated_subscription_status'] ) && ! isset( $matching_line_item_meta['_wcs_migrated_subscription_start_date'] ) ) { - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: no need to repair: matching line item has no migrated meta data.', $subscription->id ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: no need to repair: matching line item has no migrated meta data.', $subscription->get_id() ) ); return $repaired_subscription; } if ( false !== self::maybe_repair_line_tax_data( $subscription_line_item_id, $matching_line_item_id, $matching_line_item ) ) { - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repaired missing line tax data.', $subscription->id ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repaired missing line tax data.', $subscription->get_id() ) ); $repaired_subscription = true; } else { - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: line tax data not added.', $subscription->id ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: line tax data not added.', $subscription->get_id() ) ); } // if the subscription has been cancelled, we don't need to repair any other data if ( $subscription->has_status( array( 'pending-cancel', 'cancelled' ) ) ) { - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: no need to repair: it has cancelled status.', $subscription->id ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: no need to repair: it has cancelled status.', $subscription->get_id() ) ); return $repaired_subscription; } @@ -157,38 +158,38 @@ class WCS_Repair_2_0_2 { if ( ! empty( $dates_to_update ) ) { - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repairing dates = %s', $subscription->id, str_replace( array( '{', '}', '"' ), '', wcs_json_encode( $dates_to_update ) ) ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repairing dates = %s', $subscription->get_id(), str_replace( array( '{', '}', '"' ), '', wcs_json_encode( $dates_to_update ) ) ) ); try { $subscription->update_dates( $dates_to_update ); - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repaired dates = %s', $subscription->id, str_replace( array( '{', '}', '"' ), '', wcs_json_encode( $dates_to_update ) ) ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repaired dates = %s', $subscription->get_id(), str_replace( array( '{', '}', '"' ), '', wcs_json_encode( $dates_to_update ) ) ) ); } catch ( Exception $e ) { - WCS_Upgrade_Logger::add( sprintf( '!! For subscription %d: unable to repair dates (%s), exception "%s"', $subscription->id, str_replace( array( '{', '}', '"' ), '', wcs_json_encode( $dates_to_update ) ), $e->getMessage() ) ); + WCS_Upgrade_Logger::add( sprintf( '!! For subscription %d: unable to repair dates (%s), exception "%s"', $subscription->get_id(), str_replace( array( '{', '}', '"' ), '', wcs_json_encode( $dates_to_update ) ), $e->getMessage() ) ); } try { self::maybe_repair_status( $subscription, $matching_line_item_meta, $dates_to_update ); } catch ( Exception $e ) { - WCS_Upgrade_Logger::add( sprintf( '!! For subscription %d: unable to repair status. Exception: "%s"', $subscription->id, $e->getMessage() ) ); + WCS_Upgrade_Logger::add( sprintf( '!! For subscription %d: unable to repair status. Exception: "%s"', $subscription->get_id(), $e->getMessage() ) ); } $repaired_subscription = true; } - if ( ! empty( $subscription->order->customer_note ) && empty( $subscription->customer_note ) ) { + if ( '' !== wcs_get_objects_property( $parent_order, 'customer_note' ) && '' == $subscription->get_customer_note() ) { $post_data = array( - 'ID' => $subscription->id, - 'post_excerpt' => $subscription->order->customer_note, + 'ID' => $subscription->get_id(), + 'post_excerpt' => wcs_get_objects_property( $parent_order, 'customer_note' ), ); $updated_post_id = wp_update_post( $post_data, true ); if ( ! is_wp_error( $updated_post_id ) ) { - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repaired missing customer note.', $subscription->id ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repaired missing customer note.', $subscription->get_id() ) ); $repaired_subscription = true; } else { - WCS_Upgrade_Logger::add( sprintf( '!! For subscription %d: unable to repair missing customer note. Exception: "%s"', $subscription->id, $updated_post_id->get_error_message() ) ); + WCS_Upgrade_Logger::add( sprintf( '!! For subscription %d: unable to repair missing customer note. Exception: "%s"', $subscription->get_id(), $updated_post_id->get_error_message() ) ); } } @@ -211,8 +212,8 @@ class WCS_Repair_2_0_2 { $old_trial_end_date = isset( $former_order_item_meta['_wcs_migrated_subscription_trial_expiry_date'][0] ) ? $former_order_item_meta['_wcs_migrated_subscription_trial_expiry_date'][0] : 0; - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: new trial end date = %s.', $subscription->id, var_export( $subscription->get_date( 'trial_end' ), true ) ) ); - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: old trial end date = %s.', $subscription->id, var_export( $old_trial_end_date, true ) ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: new trial end date = %s.', $subscription->get_id(), var_export( $subscription->get_date( 'trial_end' ), true ) ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: old trial end date = %s.', $subscription->get_id(), var_export( $old_trial_end_date, true ) ) ); // if the subscription has a trial end time whereas previously it didn't, we need it to be deleted if ( 0 == $old_trial_end_date ) { @@ -224,7 +225,7 @@ class WCS_Repair_2_0_2 { $repair_date = false; } - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repair trial end date = %s.', $subscription->id, var_export( $repair_date, true ) ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repair trial end date = %s.', $subscription->get_id(), var_export( $repair_date, true ) ) ); return $repair_date; } @@ -264,8 +265,8 @@ class WCS_Repair_2_0_2 { wcs_json_encode( $old_hook_args ) ) ); - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: new next payment date = %s.', $subscription->id, var_export( $subscription->get_date( 'next_payment' ), true ) ) ); - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: old next payment date = %s.', $subscription->id, var_export( $old_next_payment_date, true ) ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: new next payment date = %s.', $subscription->get_id(), var_export( $subscription->get_date( 'next_payment' ), true ) ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: old next payment date = %s.', $subscription->get_id(), var_export( $old_next_payment_date, true ) ) ); // if we have a date, make sure it's valid if ( null !== $old_next_payment_date ) { @@ -274,7 +275,7 @@ class WCS_Repair_2_0_2 { if ( 0 == $repair_date ) { $repair_date = false; } - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: old next payment date is in the past, setting it to %s.', $subscription->id, var_export( $repair_date, true ) ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: old next payment date is in the past, setting it to %s.', $subscription->get_id(), var_export( $repair_date, true ) ) ); } else { $repair_date = $old_next_payment_date; } @@ -289,13 +290,13 @@ class WCS_Repair_2_0_2 { $repair_date = false; } - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: no old next payment date, setting it to %s.', $subscription->id, var_export( $repair_date, true ) ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: no old next payment date, setting it to %s.', $subscription->get_id(), var_export( $repair_date, true ) ) ); } } else { $repair_date = false; } - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repair next payment date = %s.', $subscription->id, var_export( $repair_date, true ) ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repair next payment date = %s.', $subscription->get_id(), var_export( $repair_date, true ) ) ); return $repair_date; } @@ -325,8 +326,8 @@ class WCS_Repair_2_0_2 { $old_end_date = isset( $former_order_item_meta['_wcs_migrated_subscription_expiry_date'][0] ) ? $former_order_item_meta['_wcs_migrated_subscription_expiry_date'][0] : 0; } - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: new end date = %s.', $subscription->id, var_export( $subscription->get_date( 'end' ), true ) ) ); - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: old end date = %s.', $subscription->id, var_export( $old_end_date, true ) ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: new end date = %s.', $subscription->get_id(), var_export( $subscription->get_date( 'end' ), true ) ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: old end date = %s.', $subscription->get_id(), var_export( $old_end_date, true ) ) ); // if the subscription has an end time whereas previously it didn't, we need it to be deleted so set it 0 if ( 0 == $old_end_date ) { @@ -338,7 +339,7 @@ class WCS_Repair_2_0_2 { $repair_date = false; } - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repair end date = %s.', $subscription->id, var_export( $repair_date, true ) ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repair end date = %s.', $subscription->get_id(), var_export( $repair_date, true ) ) ); return $repair_date; } @@ -359,27 +360,27 @@ class WCS_Repair_2_0_2 { try { // we need to bypass the update_status() method here because normally an expired subscription can't have it's status changed, we also don't want normal status change hooks to be fired - wp_update_post( array( 'ID' => $subscription->id, 'post_status' => 'wc-on-hold' ) ); + wp_update_post( array( 'ID' => $subscription->get_id(), 'post_status' => 'wc-on-hold' ) ); // if the payment method doesn't support date changes, we still want to reactivate the subscription but we also need to process a special failed payment at the next renewal to fix up the payment method so we'll set a special flag in post meta to handle that if ( ! $subscription->payment_method_supports( 'subscription_date_changes' ) && $subscription->get_total() > 0 ) { - update_post_meta( $subscription->id, '_wcs_repaired_2_0_2_needs_failed_payment', 'true' ); - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: payment method does not support "subscription_date_changes" and total > 0, setting "_wcs_repaired_2_0_2_needs_failed_payment" post meta flag.', $subscription->id ) ); + update_post_meta( $subscription->get_id(), '_wcs_repaired_2_0_2_needs_failed_payment', 'true' ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: payment method does not support "subscription_date_changes" and total > 0, setting "_wcs_repaired_2_0_2_needs_failed_payment" post meta flag.', $subscription->get_id() ) ); } if ( 'active' == $former_order_item_meta['_wcs_migrated_subscription_status'][0] && $subscription->can_be_updated_to( 'active' ) ) { $subscription->update_status( 'active' ); } - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repaired status. Status was "expired", it is now "%s".', $subscription->id, $subscription->get_status() ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: repaired status. Status was "expired", it is now "%s".', $subscription->get_id(), $subscription->get_status() ) ); $repair_status = true; } catch ( Exception $e ) { - WCS_Upgrade_Logger::add( sprintf( '!!! For subscription %d: unable to repair status, exception "%s"', $subscription->id, $e->getMessage() ) ); + WCS_Upgrade_Logger::add( sprintf( '!!! For subscription %d: unable to repair status, exception "%s"', $subscription->get_id(), $e->getMessage() ) ); $repair_status = false; } } else { - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: no need to repair status, current status: %s; former status: %s.', $subscription->id, $subscription->get_status(), $former_order_item_meta['_wcs_migrated_subscription_status'][0] ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: no need to repair status, current status: %s; former status: %s.', $subscription->get_id(), $subscription->get_status(), $former_order_item_meta['_wcs_migrated_subscription_status'][0] ) ); $repair_status = false; } return $repair_status; diff --git a/includes/upgrades/class-wcs-repair-2-0.php b/includes/upgrades/class-wcs-repair-2-0.php index 4d6b4f6..e236296 100644 --- a/includes/upgrades/class-wcs-repair-2-0.php +++ b/includes/upgrades/class-wcs-repair-2-0.php @@ -262,11 +262,11 @@ class WCS_Repair_2_0 { // let's get the last 2 renewal orders $last_renewal_order = array_shift( $renewal_orders ); - $last_renewal_date = $last_renewal_order->order_date; + $last_renewal_date = wcs_get_datetime_utc_string( wcs_get_objects_property( $last_renewal_order, 'date_created' ) ); $last_renewal_timestamp = wcs_date_to_time( $last_renewal_date ); $second_renewal_order = array_shift( $renewal_orders ); - $second_renewal_date = $second_renewal_order->order_date; + $second_renewal_date = wcs_get_datetime_utc_string( wcs_get_objects_property( $second_renewal_order, 'date_created' ) ); $second_renewal_timestamp = wcs_date_to_time( $second_renewal_date ); $interval = 1; @@ -284,7 +284,7 @@ class WCS_Repair_2_0 { WCS_Upgrade_Logger::add( sprintf( '-- For order %d: we have 3 renewal orders, trying to make sure we are right.', $subscription['order_id'] ) ); $third_renewal_order = array_shift( $renewal_orders ); - $third_renewal_date = $third_renewal_order->order_date; + $third_renewal_date = wcs_get_datetime_utc_string( wcs_get_objects_property( $third_renewal_order, 'date_created' ) ); $period2 = wcs_estimate_period_between( $second_renewal_date, $third_renewal_date, $interval ); @@ -335,11 +335,11 @@ class WCS_Repair_2_0 { // let's get the last 2 renewal orders $last_renewal_order = array_shift( $renewal_orders ); - $last_renewal_date = $last_renewal_order->order_date; + $last_renewal_date = wcs_get_datetime_utc_string( wcs_get_objects_property( $last_renewal_order, 'date_created' ) ); $last_renewal_timestamp = wcs_date_to_time( $last_renewal_date ); $second_renewal_order = array_shift( $renewal_orders ); - $second_renewal_date = $second_renewal_order->order_date; + $second_renewal_date = wcs_get_datetime_utc_string( wcs_get_objects_property( $second_renewal_order, 'date_created' ) ); $second_renewal_timestamp = wcs_date_to_time( $second_renewal_date ); $subscription['interval'] = wcs_estimate_periods_between( $second_renewal_timestamp, $last_renewal_timestamp, $subscription['period'] ); @@ -470,7 +470,7 @@ class WCS_Repair_2_0 { } else { - $subscription['end_date'] = wcs_add_time( 5, 'hours', wcs_date_to_time( $last_order->order_date ) ); + $subscription['end_date'] = wcs_add_time( 5, 'hours', wcs_get_objects_property( $last_order, 'date_created' )->getTimestamp() ); } } else { diff --git a/includes/upgrades/class-wcs-upgrade-2-0.php b/includes/upgrades/class-wcs-upgrade-2-0.php index 32bb2dc..b5c74b2 100644 --- a/includes/upgrades/class-wcs-upgrade-2-0.php +++ b/includes/upgrades/class-wcs-upgrade-2-0.php @@ -82,19 +82,19 @@ class WCS_Upgrade_2_0 { 'order_id' => $old_subscription['order_id'], 'customer_id' => $old_subscription['user_id'], 'start_date' => $old_subscription['start_date'], - 'customer_note' => ( ! empty( $original_order->customer_note ) ) ? $original_order->customer_note : '', + 'customer_note' => ( '' !== wcs_get_objects_property( $original_order, 'customer_note' ) ) ? wcs_get_objects_property( $original_order, 'customer_note' ) : '', 'billing_period' => $old_subscription['period'], 'billing_interval' => $old_subscription['interval'], - 'order_version' => ( ! empty( $original_order->order_version ) ) ? $original_order->order_version : '', // Subscriptions will default to WC_Version if $original_order->order_version is not set, but we want the version set at the time of the order + 'order_version' => ( '' !== wcs_get_objects_property( $original_order, 'version' ) ) ? wcs_get_objects_property( $original_order, 'version' ) : '', // Subscriptions will default to WC_Version if order's version is not set, but we want the version set at the time of the order ) ); if ( ! is_wp_error( $new_subscription ) ) { - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: post created', $new_subscription->id ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: post created', $new_subscription->get_id() ) ); // Set the order to be manual if ( isset( $original_order->wcs_requires_manual_renewal ) && 'true' == $original_order->wcs_requires_manual_renewal ) { - $new_subscription->update_manual( true ); + $new_subscription->set_requires_manual_renewal( true ); } // Add the line item from the order @@ -107,29 +107,29 @@ class WCS_Upgrade_2_0 { self::migrate_dates( $new_subscription, $old_subscription ); // Set some meta from order meta - self::migrate_post_meta( $new_subscription->id, $original_order ); + self::migrate_post_meta( $new_subscription->get_id(), $original_order ); // Copy over order notes which are now logged on the subscription - self::migrate_order_notes( $new_subscription->id, $original_order->id ); + self::migrate_order_notes( $new_subscription->get_id(), wcs_get_objects_property( $original_order, 'id' ) ); // Migrate recurring tax, shipping and coupon line items to be plain line items on the subscription - self::migrate_order_items( $new_subscription->id, $original_order->id ); + self::migrate_order_items( $new_subscription->get_id(), wcs_get_objects_property( $original_order, 'id' ) ); // Update renewal orders to link via post meta key instead of post_parent column - self::migrate_renewal_orders( $new_subscription->id, $original_order->id ); + self::migrate_renewal_orders( $new_subscription->get_id(), wcs_get_objects_property( $original_order, 'id' ) ); // Make sure the resubscribe meta data is migrated to use the new subscription ID + meta key - self::migrate_resubscribe_orders( $new_subscription->id, $original_order->id ); + self::migrate_resubscribe_orders( $new_subscription->get_id(), wcs_get_objects_property( $original_order, 'id' ) ); // If the order for this subscription contains a switch, make sure the switch meta data is migrated to use the new subscription ID + meta key self::migrate_switch_meta( $new_subscription, $original_order, $subscription_item_id ); // If the subscription was in the trash, now that we've set on the meta on it, we need to trash it if ( 'trash' == $old_subscription['status'] ) { - wp_trash_post( $new_subscription->id ); + wp_trash_post( $new_subscription->get_id() ); } - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: upgrade complete', $new_subscription->id ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: upgrade complete', $new_subscription->get_id() ) ); } else { @@ -251,12 +251,12 @@ class WCS_Upgrade_2_0 { private static function add_product( $new_subscription, $order_item_id, $order_item ) { global $wpdb; - $item_id = wc_add_order_item( $new_subscription->id, array( + $item_id = wc_add_order_item( $new_subscription->get_id(), array( 'order_item_name' => $order_item['name'], 'order_item_type' => 'line_item', ) ); - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: new line item ID %d added', $new_subscription->id, $item_id ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: new line item ID %d added', $new_subscription->get_id(), $item_id ) ); $order_item = WCS_Repair_2_0::maybe_repair_order_item( $order_item ); @@ -312,12 +312,12 @@ class WCS_Upgrade_2_0 { } } - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: for item %d added %s', $new_subscription->id, $item_id, implode( ', ', $meta_keys_to_copy ) ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: for item %d added %s', $new_subscription->get_id(), $item_id, implode( ', ', $meta_keys_to_copy ) ) ); // Now that we've copied over the old data, prefix some the subscription meta keys with _wcs_migrated to deprecate it without deleting it (yet) $rows_affected = self::deprecate_item_meta( $order_item_id ); - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: %s rows of line item meta deprecated', $new_subscription->id, $rows_affected ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: %s rows of line item meta deprecated', $new_subscription->get_id(), $rows_affected ) ); return $item_id; } @@ -436,12 +436,12 @@ class WCS_Upgrade_2_0 { $rows_affected = $wpdb->update( $wpdb->prefix . 'woocommerce_downloadable_product_permissions', array( - 'order_id' => $subscription->id, - 'order_key' => $subscription->order_key, + 'order_id' => $subscription->get_id(), + 'order_key' => $subscription->get_order_key(), ), array( - 'order_id' => $order->id, - 'order_key' => $order->order_key, + 'order_id' => wcs_get_objects_property( $order, 'id' ), + 'order_key' => wcs_get_objects_property( $order, 'order_key' ), 'product_id' => $product_id, 'user_id' => absint( $subscription->get_user_id() ), ), @@ -449,7 +449,7 @@ class WCS_Upgrade_2_0 { array( '%d', '%s', '%d', '%d' ) ); - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: migrated %d download permissions for product %d', $subscription->id, $rows_affected, $product_id ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: migrated %d download permissions for product %d', $subscription->get_id(), $rows_affected, $product_id ) ); } /** @@ -506,7 +506,7 @@ class WCS_Upgrade_2_0 { if ( $next_scheduled > 0 ) { if ( 'end_of_prepaid_term' == $new_key ) { - wc_schedule_single_action( $next_scheduled, 'woocommerce_scheduled_subscription_end_of_prepaid_term', array( 'subscription_id' => $new_subscription->id ) ); + wc_schedule_single_action( $next_scheduled, 'woocommerce_scheduled_subscription_end_of_prepaid_term', array( 'subscription_id' => $new_subscription->get_id() ) ); } else { $dates_to_update[ $new_key ] = gmdate( 'Y-m-d H:i:s', $next_scheduled ); } @@ -517,7 +517,7 @@ class WCS_Upgrade_2_0 { // Trash all the hooks in one go to save write requests $wpdb->update( $wpdb->posts, array( 'post_status' => 'trash' ), array( 'post_type' => ActionScheduler_wpPostStore::POST_TYPE, 'post_content' => wcs_json_encode( $old_hook_args ) ), array( '%s', '%s' ) ); - $dates_to_update['start'] = $new_subscription->post->post_date_gmt; + $dates_to_update['date_created'] = $new_subscription->post->post_date_gmt; // v2.0 enforces new rules for dates when they are being set, so we need to massage the old data to conform to these new rules foreach ( $dates_to_update as $date_type => $date ) { @@ -536,7 +536,7 @@ class WCS_Upgrade_2_0 { $dates_to_update[ $date_type ] = $date; } case 'trial_end' : - if ( array_key_exists( 'start', $dates_to_update ) && $date <= $dates_to_update['start'] ) { + if ( array_key_exists( 'date_created', $dates_to_update ) && $date <= $dates_to_update['date_created'] ) { $dates_to_update[ $date_type ] = $date; } } @@ -548,10 +548,10 @@ class WCS_Upgrade_2_0 { $new_subscription->update_dates( $dates_to_update ); } - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: updated dates = %s', $new_subscription->id, str_replace( array( '{', '}', '"' ), '', wcs_json_encode( $dates_to_update ) ) ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: updated dates = %s', $new_subscription->get_id(), str_replace( array( '{', '}', '"' ), '', wcs_json_encode( $dates_to_update ) ) ) ); } catch ( Exception $e ) { - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: unable to update dates, exception "%s"', $new_subscription->id, $e->getMessage() ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: unable to update dates, exception "%s"', $new_subscription->get_id(), $e->getMessage() ) ); } } @@ -585,11 +585,11 @@ class WCS_Upgrade_2_0 { '_paypal_subscription_id' => 'PayPal Subscriber ID', ); - $order_meta = get_post_meta( $order->id ); + $order_meta = get_post_meta( wcs_get_objects_property( $order, 'id' ) ); foreach ( $post_meta_with_new_key as $subscription_meta_key => $order_meta_key ) { - $order_meta_value = get_post_meta( $order->id, $order_meta_key, true ); + $order_meta_value = get_post_meta( wcs_get_objects_property( $order, 'id' ), $order_meta_key, true ); if ( isset( $order_meta[ $order_meta_key ] ) && '' !== $order_meta[ $order_meta_key ] ) { update_post_meta( $subscription_id, $subscription_meta_key, $order_meta_value ); @@ -647,7 +647,7 @@ class WCS_Upgrade_2_0 { } // Now that we've copied over the old data, deprecate it - $rows_affected = self::deprecate_post_meta( $order->id ); + $rows_affected = self::deprecate_post_meta( wcs_get_objects_property( $order, 'id' ) ); WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: %d rows of post meta deprecated', $subscription_id, $rows_affected ) ); } @@ -777,7 +777,7 @@ class WCS_Upgrade_2_0 { // Set the post meta foreach ( $renewal_order_ids as $renewal_order_id ) { - update_post_meta( $renewal_order_id, '_subscription_renewal', $subscription_id ); + wcs_set_objects_property( wc_get_order( $renewal_order_id ), 'subscription_renewal', $subscription_id ); } WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: migrated data for renewal orders %s', $subscription_id, implode( ', ', $renewal_order_ids ) ) ); @@ -817,8 +817,8 @@ class WCS_Upgrade_2_0 { // Because self::get_subscriptions() orders by order ID, it's safe to use wcs_get_subscriptions_for_order() here because the subscription in the new format will have been created for the original order (because its ID will be < the resubscribe order's ID) foreach ( wcs_get_subscriptions_for_order( $original_order_id ) as $old_subscription ) { - update_post_meta( $resubscribe_order_id, '_subscription_resubscribe', $old_subscription->id, true ); - update_post_meta( $new_subscription_id, '_subscription_resubscribe', $old_subscription->id, true ); + update_post_meta( $resubscribe_order_id, '_subscription_resubscribe', $old_subscription->get_id(), true ); + update_post_meta( $new_subscription_id, '_subscription_resubscribe', $old_subscription->get_id(), true ); } $wpdb->query( $wpdb->prepare( @@ -851,14 +851,14 @@ class WCS_Upgrade_2_0 { global $wpdb; // If the order doesn't contain a switch, we don't need to do anything - if ( '' == get_post_meta( $switch_order->id, '_switched_subscription_key', true ) ) { + if ( '' == get_post_meta( wcs_get_objects_property( $switch_order, 'id' ), '_switched_subscription_key', true ) ) { return; } $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->postmeta} SET `meta_key` = concat( '_wcs_migrated', `meta_key` ) WHERE `post_id` = %d AND `meta_key` IN ('_switched_subscription_first_payment_timestamp','_switched_subscription_key')", - $switch_order->id + wcs_get_objects_property( $switch_order, 'id' ) ) ); // Select the orders which had the items which were switched by this order @@ -870,7 +870,7 @@ class WCS_Upgrade_2_0 { 'meta_query' => array( array( 'key' => '_switched_subscription_new_order', - 'value' => $switch_order->id, + 'value' => wcs_get_objects_property( $switch_order, 'id' ), ), ), ) ); @@ -891,7 +891,7 @@ class WCS_Upgrade_2_0 { if ( wcs_is_subscription( $old_subscription ) ) { // Link the old subscription's ID to the switch order using the new switch meta key - update_post_meta( $switch_order->id, '_subscription_switch', $old_subscription->id ); + wcs_set_objects_property( $switch_order, 'subscription_switch', $old_subscription->get_id() ); // Now store the new/old item IDs for record keeping foreach ( $old_subscription->get_items() as $item_id => $item ) { @@ -899,7 +899,7 @@ class WCS_Upgrade_2_0 { wc_add_order_item_meta( $subscription_item_id, '_switched_subscription_item_id', $item_id, true ); } - WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: migrated switch data for subscription %d purchased in order %d', $new_subscription->id, $old_subscription->id, $previous_order_id ) ); + WCS_Upgrade_Logger::add( sprintf( 'For subscription %d: migrated switch data for subscription %d purchased in order %d', $new_subscription->get_id(), $old_subscription->get_id(), $previous_order_id ) ); } } } diff --git a/includes/upgrades/class-wcs-upgrade-logger.php b/includes/upgrades/class-wcs-upgrade-logger.php index 1ef1de5..bc75689 100644 --- a/includes/upgrades/class-wcs-upgrade-logger.php +++ b/includes/upgrades/class-wcs-upgrade-logger.php @@ -46,10 +46,21 @@ class WCS_Upgrade_Logger { * Clear entries from the upgrade log. */ public static function clear() { - if ( empty( self::$log ) ) { - self::$log = new WC_Logger(); + + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + + if ( empty( self::$log ) ) { + self::$log = new WC_Logger(); + } + + self::$log->clear( self::$handle ); + + } else { + + $handler = new WC_Log_Handler_File(); + + $handler->clear( self::$handle ); } - self::$log->clear( self::$handle ); } /** diff --git a/includes/wcs-cart-functions.php b/includes/wcs-cart-functions.php index 4e039c5..b52ea6f 100644 --- a/includes/wcs-cart-functions.php +++ b/includes/wcs-cart-functions.php @@ -213,7 +213,7 @@ function wcs_cart_totals_coupon_html( $coupon, $cart ) { $value = array(); - if ( $amount = $cart->get_coupon_discount_amount( $coupon->code, $cart->display_cart_ex_tax ) ) { + if ( $amount = $cart->get_coupon_discount_amount( wcs_get_coupon_property( $coupon, 'code' ), $cart->display_cart_ex_tax ) ) { $discount_html = '-' . wc_price( $amount ); } else { $discount_html = ''; @@ -221,7 +221,7 @@ function wcs_cart_totals_coupon_html( $coupon, $cart ) { $value[] = apply_filters( 'woocommerce_coupon_discount_amount_html', $discount_html, $coupon ); - if ( $coupon->enable_free_shipping() ) { + if ( wcs_get_coupon_property( $coupon, 'enable_free_shipping' ) ) { $value[] = __( 'Free shipping coupon', 'woocommerce-subscriptions' ); } @@ -303,10 +303,11 @@ function wcs_cart_pluck( $cart, $field, $default = 0 ) { $value = $cart->$field; } else { foreach ( $cart->get_cart() as $cart_item ) { + if ( isset( $cart_item[ $field ] ) ) { $value = $cart_item[ $field ]; - } elseif ( $cart_item['data']->$field ) { - $value = $cart_item['data']->$field; + } else { + $value = WC_Subscriptions_Product::get_meta_data( $cart_item['data'], $field, $default ); } } } diff --git a/includes/wcs-compatibility-functions.php b/includes/wcs-compatibility-functions.php index fad0da1..5af34ab 100644 --- a/includes/wcs-compatibility-functions.php +++ b/includes/wcs-compatibility-functions.php @@ -43,3 +43,475 @@ function wcs_help_tip( $tip, $allow_html = false ) { return $help_tip; } + +/** + * Access an object's property in a way that is compatible with CRUD and non-CRUD APIs for different versions of WooCommerce. + * + * We don't want to force the use of a custom legacy class for orders, similar to WC_Subscription_Legacy, because 3rd party + * code may expect the object type to be WC_Order with strict type checks. + * + * A note on dates: in WC 3.0+, dates are returned a timestamps in the site's timezone :upside_down_face:. In WC < 3.0, they were + * returned as MySQL strings in the site's timezone. We return them from here as MySQL strings in UTC timezone because that's how + * dates are used in Subscriptions in almost all cases, for sanity's sake. + * + * @param WC_Order|WC_Product|WC_Subscription $object The object whose property we want to access. + * @param string $property The property name. + * @param string $single Whether to return just the first piece of meta data with the given property key, or all meta data. + * @param mixed $default (optional) The value to return if no value is found - defaults to single -> null, multiple -> array() + * @since 2.2.0 + * @return mixed + */ +function wcs_get_objects_property( $object, $property, $single = 'single', $default = null ) { + + $prefixed_key = wcs_maybe_prefix_key( $property ); + + $value = ! is_null( $default ) ? $default : ( ( 'single' == $single ) ? null : array() ); + + switch ( $property ) { + + case 'name' : // the replacement for post_title added in 3.0 + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + $value = $object->post->post_title; + } else { // WC 3.0+ + $value = $object->get_name(); + } + break; + + case 'post' : + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + $value = $object->post; + } else { // WC 3.0+ + // In order to keep backwards compatibility it's required to use the parent data for variations. + if ( method_exists( $object, 'is_type' ) && $object->is_type( 'variation' ) ) { + $value = get_post( $object->get_parent_id() ); + } else { + $value = get_post( $object->get_id() ); + } + } + break; + + case 'post_status' : + $value = wcs_get_objects_property( $object, 'post' )->post_status; + break; + + case 'parent_id' : + if ( method_exists( $object, 'get_parent_id' ) ) { // WC 3.0+ or an instance of WC_Product_Subscription_Variation_Legacy with WC < 3.0 + $value = $object->get_parent_id(); + } else { // WC 2.1-2.6 + $value = $object->get_parent(); + } + break; + + case 'variation_data' : + if ( function_exists( 'wc_get_product_variation_attributes' ) ) { // WC 3.0+ + $value = wc_get_product_variation_attributes( $object->get_id() ); + } else { + $value = $object->$property; + } + break; + + case 'downloads' : + if ( method_exists( $object, 'get_downloads' ) ) { // WC 3.0+ + $value = $object->get_downloads(); + } else { + $value = $object->get_files(); + } + break; + + case 'order_version' : + case 'version' : + if ( method_exists( $object, 'get_version' ) ) { // WC 3.0+ + $value = $object->get_version(); + } else { // WC 2.1-2.6 + $value = $object->order_version; + } + break; + + case 'order_currency' : + case 'currency' : + if ( method_exists( $object, 'get_currency' ) ) { // WC 3.0+ + $value = $object->get_currency(); + } else { // WC 2.1-2.6 + $value = $object->get_order_currency(); + } + break; + + // Always return a PHP DateTime object in site timezone (or null), the same thing the WC_Order::get_date_created() method returns in WC 3.0+ to make it easier to migrate away from WC < 3.0 + case 'date_created' : + case 'order_date' : + case 'date' : + if ( method_exists( $object, 'get_date_created' ) ) { // WC 3.0+ + $value = $object->get_date_created(); + } else { + // Base the value off tht GMT value when possible and then set the DateTime's timezone based on the current site's timezone to avoid incorrect values when the timezone has changed + if ( '0000-00-00 00:00:00' != $object->post->post_date_gmt ) { + $value = new WC_DateTime( $object->post->post_date_gmt, new DateTimeZone( 'UTC' ) ); + $value->setTimezone( new DateTimeZone( wc_timezone_string() ) ); + } else { + $value = new WC_DateTime( $object->post->post_date, new DateTimeZone( wc_timezone_string() ) ); + } + } + break; + + // Always return a PHP DateTime object in site timezone (or null), the same thing the getter returns in WC 3.0+ to make it easier to migrate away from WC < 3.0 + case 'date_paid' : + if ( method_exists( $object, 'get_date_paid' ) ) { // WC 3.0+ + $value = $object->get_date_paid(); + } else { + if ( ! empty( $object->paid_date ) ) { + // Because the paid_date post meta value was set in the site timezone at the time it was set, this won't always be correct, but is the best we can do with WC < 3.0 + $value = new WC_DateTime( $object->paid_date, new DateTimeZone( wc_timezone_string() ) ); + } else { + $value = null; + } + } + break; + + case 'cart_discount' : + if ( method_exists( $object, 'get_total_discount' ) ) { // WC 3.0+ + $value = $object->get_total_discount(); + } else { // WC 2.1-2.6 + $value = $object->cart_discount; + } + break; + + default : + + $function_name = 'get_' . $property; + + if ( is_callable( array( $object, $function_name ) ) ) { + $value = $object->$function_name(); + } else { + + // If we don't have a method for this specific property, but we are using WC 3.0, it may be set as meta data on the object so check if we can use that + if ( method_exists( $object, 'get_meta' ) ) { + if ( $object->meta_exists( $prefixed_key ) ) { + if ( 'single' === $single ) { + $value = $object->get_meta( $prefixed_key, true ); + } else { + // WC_Data::get_meta() returns an array of stdClass objects with id, key & value properties when meta is available + $value = wp_list_pluck( $object->get_meta( $prefixed_key, false ), 'value' ); + } + } + } elseif ( 'single' === $single && isset( $object->$property ) ) { // WC < 3.0 + $value = $object->$property; + } elseif ( metadata_exists( 'post', wcs_get_objects_property( $object, 'id' ), $prefixed_key ) ) { + // If we couldn't find a property or function, fallback to using post meta as that's what many __get() methods in WC < 3.0 did + if ( 'single' === $single ) { + $value = get_post_meta( wcs_get_objects_property( $object, 'id' ), $prefixed_key, true ); + } else { + // Get all the meta values + $value = get_post_meta( wcs_get_objects_property( $object, 'id' ), $prefixed_key, false ); + } + } + } + break; + } + + return $value; +} + +/** + * Set an object's property in a way that is compatible with CRUD and non-CRUD APIs for different versions of WooCommerce. + * + * @param WC_Order|WC_Product|WC_Subscription $object The object whose property we want to access. + * @param string $key The meta key name without '_' prefix + * @param mixed $value The data to set as the value of the meta + * @param string $save Whether to write the data to the database or not. Use 'save' to write to the database, anything else to only update it in memory. + * @param int $meta_id The meta ID of exiting meta data if you wish to overwrite an existing piece of meta. + * @param bool|string $prefix An optional prefix to add to the $key. Default '_'. Set to boolean false to have no prefix added. + * @since 2.2.0 + * @return mixed + */ +function wcs_set_objects_property( &$object, $key, $value, $save = 'save', $meta_id = '' ) { + + $prefixed_key = wcs_maybe_prefix_key( $key ); + + // WC will automatically set/update these keys when a shipping/billing address attribute changes so we can ignore these keys + if ( in_array( $prefixed_key, array( '_shipping_address_index', '_billing_address_index' ) ) ) { + return; + } + + // Special cases where properties with setters which don't map nicely to their function names + $meta_setters_map = array( + '_cart_discount' => 'set_discount_total', + '_cart_discount_tax' => 'set_discount_tax', + '_customer_user' => 'set_customer_id', + '_order_tax' => 'set_cart_tax', + '_order_shipping' => 'set_shipping_total', + '_sale_price_dates_from' => 'set_date_on_sale_from', + '_sale_price_dates_to' => 'set_date_on_sale_to', + ); + + // If we have a 3.0 object with a predefined setter function, use it + if ( isset( $meta_setters_map[ $prefixed_key ] ) && is_callable( array( $object, $meta_setters_map[ $prefixed_key ] ) ) ) { + $function = $meta_setters_map[ $prefixed_key ]; + $object->$function( $value ); + + // If we have a 3.0 object, use the setter if available. + } elseif ( is_callable( array( $object, 'set' . $prefixed_key ) ) ) { + + // Prices include tax is stored as a boolean in props but saved in the database as a string yes/no, so we need to normalise it here to make sure if we have a string (which can be passed to it by things like wcs_copy_order_meta()) that it's converted to a boolean before being set + if ( '_prices_include_tax' === $prefixed_key && ! is_bool( $value ) ) { + $value = 'yes' === $value ? true : false; + } + + $object->{ "set$prefixed_key" }( $value ); + + // If there is a setter without the order prefix (eg set_order_total -> set_total) + } elseif ( is_callable( array( $object, 'set' . str_replace( '_order', '', $prefixed_key ) ) ) ) { + $function_name = 'set' . str_replace( '_order', '', $prefixed_key ); + $object->$function_name( $value ); + + // If there is no setter, treat as meta within the 3.0.x object. + } elseif ( is_callable( array( $object, 'update_meta_data' ) ) ) { + $object->update_meta_data( $prefixed_key, $value, $meta_id ); + + // 2.6.x handling for name which is not meta. + } elseif ( 'name' === $key ) { + $object->post->post_title = $value; + + // 2.6.x handling for everything else. + } else { + $object->$key = $value; + } + + // Save the data + if ( 'save' === $save ) { + if ( is_callable( array( $object, 'save' ) ) ) { // WC 3.0+ + $object->save(); + } elseif ( 'date_created' == $key ) { // WC < 3.0+ + wp_update_post( array( 'ID' => wcs_get_objects_property( $object, 'id' ), 'post_date' => get_date_from_gmt( $value ), 'post_date_gmt' => $value ) ); + } elseif ( 'name' === $key ) { // the replacement for post_title added in 3.0, need to update post_title not post meta + wp_update_post( array( 'ID' => wcs_get_objects_property( $object, 'id' ), 'post_title' => $value ) ); + } else { + + if ( ! empty( $meta_id ) ) { + update_metadata_by_mid( 'post', $meta_id, $value, $prefixed_key ); + } else { + update_post_meta( wcs_get_objects_property( $object, 'id' ), $prefixed_key, $value ); + } + } + } +} + +/** + * Delete an object's property in a way that is compatible with CRUD and non-CRUD APIs for different versions of WooCommerce. + * + * @param WC_Order|WC_Product|WC_Subscription $object The object whose property we want to access. + * @param string $key The meta key name without '_' prefix + * @param mixed $value The data to set as the value of the meta + * @param string $save Whether to save the data or not, 'save' to save the data, otherwise it won't be saved. + * @since 2.2.0 + * @return mixed + */ +function wcs_delete_objects_property( &$object, $key, $save = 'save', $meta_id = '' ) { + + $prefixed_key = wcs_maybe_prefix_key( $key ); + + if ( ! empty( $meta_id ) && method_exists( $object, 'delete_meta_data_by_mid' ) ) { + $object->delete_meta_data_by_mid( $meta_id ); + } elseif ( method_exists( $object, 'delete_meta_data' ) ) { + $object->delete_meta_data( $prefixed_key ); + } elseif ( isset( $object->$key ) ) { + unset( $object->$key ); + } + + // Save the data + if ( 'save' === $save ) { + if ( method_exists( $object, 'save' ) ) { // WC 3.0+ + $object->save(); + } elseif ( ! empty( $meta_id ) ) { + delete_metadata_by_mid( 'post', $meta_id ); + } else { + delete_post_meta( wcs_get_objects_property( $object, 'id' ), $prefixed_key ); + } + } +} + +/** + * Check whether an order is a standard order (i.e. not a refund or subscription) in version compatible way. + * + * WC 3.0 has the $order->get_type() API which returns 'shop_order', while WC < 3.0 provided the $order->order_type + * property which returned 'simple', so we need to check for both. + * + * @param WC_Order $order + * @since 2.2.0 + * @return bool + */ +function wcs_is_order( $order ) { + + if ( method_exists( $order, 'get_type' ) ) { + $is_order = ( 'shop_order' === $order->get_type() ); + } else { + $is_order = ( 'simple' === $order->order_type ); + } + + return $is_order; +} + +/** + * Find and return the value for a deprecated property property. + * + * Product properties should not be accessed directly with WooCommerce 3.0+, because of that, a lot of properties + * have been deprecated/removed in the subscription product type classes. This function centralises the handling + * of deriving deprecated properties. This saves duplicating the __get() method in WC_Product_Subscription, + * WC_Product_Variable_Subscription and WC_Product_Subscription_Variation. + * + * @param string $property + * @param WC_Product $product + * @since 2.2.0 + * @return mixed + */ +function wcs_product_deprecated_property_handler( $property, $product ) { + + $message_prefix = 'Product properties should not be accessed directly with WooCommerce 3.0+.'; + $function_name = 'get_' . str_replace( 'subscription_', '', str_replace( 'subscription_period_', '', $property ) ); + $class_name = get_class( $product ); + $value = null; + + if ( in_array( $property, array( 'product_type', 'parent_product_type', 'limit_subscriptions', 'subscription_limit', 'subscription_payment_sync_date', 'subscription_one_time_shipping' ) ) || ( is_callable( array( 'WC_Subscriptions_Product', $function_name ) ) && false !== strpos( $property, 'subscription' ) ) ) { + + switch ( $property ) { + case 'product_type': + $value = $product->get_type(); + $alternative = $class_name . '::get_type()'; + break; + + case 'parent_product_type': + if ( $product->is_type( 'subscription_variation' ) ) { + $value = 'variation'; + $alternative = 'WC_Product_Variation::get_type()'; + } else { + $value = 'variable'; + $alternative = 'WC_Product_Variable::get_type()'; + } + break; + + case 'limit_subscriptions': + case 'subscription_limit': + $value = wcs_get_product_limitation( $product ); + $alternative = 'wcs_get_product_limitation( $product )'; + break; + + case 'subscription_one_time_shipping': + $value = WC_Subscriptions_Product::needs_one_time_shipping( $product ); + $alternative = 'WC_Subscriptions_Product::needs_one_time_shipping( $product )'; + break; + + case 'subscription_payment_sync_date': + $value = WC_Subscriptions_Synchroniser::get_products_payment_day( $product ); + $alternative = 'WC_Subscriptions_Synchroniser::get_products_payment_day( $product )'; + break; + + case 'max_variation_period': + case 'max_variation_period_interval': + $meta_key = '_' . $property; + if ( '' === $product->get_meta( $meta_key ) ) { + WC_Product_Variable::sync( $product->get_id() ); + } + $value = $product->get_meta( $meta_key ); + $alternative = $class_name . '::get_meta( ' . $meta_key . ' ) or wcs_get_min_max_variation_data( $product )'; + break; + + default: + $value = call_user_func( array( 'WC_Subscriptions_Product', $function_name ), $product ); + $alternative = sprintf( 'WC_Subscriptions_Product::%s( $product )', $function_name ); + break; + } + + wcs_deprecated_argument( $class_name . '::$' . $property, '2.2.0', sprintf( '%s Use %s', $message_prefix, $alternative ) ); + } + + return $value; +} + +/** + * Access a coupon's property in a way that is compatible with CRUD and non-CRUD APIs for different versions of WooCommerce. + * + * Similar to @see wcs_get_objects_property + * + * @param WC_Coupon $coupon The coupon whose property we want to access. + * @param string $property The property name. + * @since 2.2 + * @return mixed + */ +function wcs_get_coupon_property( $coupon, $property ) { + + $value = ''; + + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + $value = $coupon->$property; + } else { + // Some coupon properties don't map nicely to their corresponding getter function. This array contains those exceptions. + $property_to_getter_map = array( + 'type' => 'get_discount_type', + 'exclude_product_ids' => 'get_excluded_product_ids', + 'expiry_date' => 'get_date_expires', + 'exclude_product_categories' => 'get_excluded_product_categories', + 'customer_email' => 'get_email_restrictions', + 'enable_free_shipping' => 'get_free_shipping', + ); + + switch ( true ) { + case 'exists' == $property: + $value = ( $coupon->get_id() > 0 ) ? true : false; + break; + case isset( $property_to_getter_map[ $property ] ) && is_callable( array( $coupon, $property_to_getter_map[ $property ] ) ): + $function = $property_to_getter_map[ $property ]; + $value = $coupon->$function(); + break; + case is_callable( array( $coupon, 'get_' . $property ) ): + $value = $coupon->{ "get_$property" }(); + break; + } + } + + return $value; +} + +/** + * Set a coupon's property in a way that is compatible with CRUD and non-CRUD APIs for different versions of WooCommerce. + * + * Similar to @see wcs_set_objects_property + * + * @param WC_Coupon $coupon The coupon whose property we want to set. + * @param string $property The property name. + * @param mixed $value The data to set as the value + * @since 2.2 + */ +function wcs_set_coupon_property( &$coupon, $property, $value ) { + + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + $coupon->$property = $value; + } else { + // Some coupon properties don't map nicely to their corresponding setter function. This array contains those exceptions. + $property_to_setter_map = array( + 'type' => 'set_discount_type', + 'exclude_product_ids' => 'set_excluded_product_ids', + 'expiry_date' => 'set_date_expires', + 'exclude_product_categories' => 'set_excluded_product_categories', + 'customer_email' => 'set_email_restrictions', + 'enable_free_shipping' => 'set_free_shipping', + ); + + switch ( true ) { + case 'individual_use' == $property: + // set_individual_use expects a boolean, the individual_use property use to be either 'yes' or 'no' so we need to accept both types + if ( ! is_bool( $value ) ) { + $value = ( 'yes' === $value ) ? true : false; + } + + $coupon->set_individual_use( $value ); + break; + case isset( $property_to_setter_map[ $property ] ) && is_callable( array( $coupon, $property_to_setter_map[ $property ] ) ): + $function = $property_to_setter_map[ $property ]; + $coupon->$function( $value ); + + break; + case is_callable( array( $coupon, 'set_' . $property ) ): + $coupon->{ "set_$property" }( $value ); + break; + } + } +} diff --git a/includes/wcs-deprecated-functions.php b/includes/wcs-deprecated-functions.php index 221c242..efbc9cf 100644 --- a/includes/wcs-deprecated-functions.php +++ b/includes/wcs-deprecated-functions.php @@ -16,6 +16,73 @@ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } +/** + * Wrapper for wc_doing_it_wrong. + * + * @since 2.2.0 + * @param string $function + * @param string $version + * @param string $replacement + */ +function wcs_doing_it_wrong( $function, $message, $version ) { + + if ( function_exists( 'wc_doing_it_wrong' ) ) { + wc_doing_it_wrong( $function, $message, $version ); + } else { + // Reimplment wc_doing_it_wrong() when WC 3.0 is not active + if ( is_ajax() ) { + do_action( 'doing_it_wrong_run', $function, $message, $version ); + error_log( "{$function} was called incorrectly. {$message}. This message was added in version {$version}." ); + } else { + _doing_it_wrong( esc_attr( $function ), esc_attr( $message ), esc_attr( $version ) ); + } + } +} + + +/** + * Wrapper for wcs_deprecated_function to improve handling of ajax requests, even when + * WooCommerce 3.0's wcs_deprecated_function method is not available. + * + * @since 2.2.0 + * @param string $function + * @param string $version + * @param string $replacement + */ +function wcs_deprecated_function( $function, $version, $replacement = null ) { + + if ( function_exists( 'wc_deprecated_function' ) ) { + wc_deprecated_function( $function, $version, $replacement ); + } else { + // Reimplment wcs_deprecated_function() when WC 3.0 is not active + if ( is_ajax() ) { + do_action( 'deprecated_function_run', $function, $replacement, $version ); + $log_string = "The {$function} function is deprecated since version {$version}."; + $log_string .= $replacement ? " Replace with {$replacement}." : ''; + error_log( $log_string ); + } else { + _deprecated_function( esc_attr( $function ), esc_attr( $version ), esc_attr( $replacement ) ); + } + } +} + +/** + * Reimplement similar logic to wc_deprecated_argument() without the first parameter confusion. + * + * @since 2.2.0 + * @param string $argument + * @param string $version + * @param string $message + */ +function wcs_deprecated_argument( $function, $version, $message = null ) { + if ( is_ajax() ) { + do_action( 'deprecated_argument_run', $function, $message, $version ); + error_log( "{$function} was called with an argument that is deprecated since version {$version}. {$message}" ); + } else { + _deprecated_argument( esc_attr( $function ), esc_attr( $version ), esc_attr( $message ) ); + } +} + /** * Get the string key for a subscription used in Subscriptions prior to 2.0. * @@ -37,7 +104,7 @@ if ( ! defined( 'ABSPATH' ) ) { function wcs_get_old_subscription_key( WC_Subscription $subscription ) { // Get an ID to use as the order ID - $order_id = isset( $subscription->order->id ) ? $subscription->order->id : $subscription->id; + $order_id = ( false == $subscription->get_parent_id() ) ? $subscription->get_id() : $subscription->get_parent_id(); // Get an ID to use as the product ID $subscription_items = $subscription->get_items(); @@ -128,8 +195,15 @@ function wcs_get_subscription_in_deprecated_structure( WC_Subscription $subscrip $completed_payments = array(); if ( $subscription->get_completed_payment_count() ) { - if ( ! empty( $subscription->order ) && $subscription->order->has_status( $subscription->get_paid_order_statuses() ) ) { - $completed_payments[] = $subscription->order->post->post_date_gmt; + + $order = $subscription->get_parent(); + + if ( ! empty( $order ) ) { + $parent_order_created_date = wcs_get_objects_property( $order, 'date_created' ); + + if ( ! is_null( $parent_order_created_date ) ) { + $completed_payments[] = wcs_get_datetime_utc_string( $parent_order_created_date ); + } } $paid_renewal_order_ids = get_posts( array( @@ -143,14 +217,17 @@ function wcs_get_subscription_in_deprecated_structure( WC_Subscription $subscrip array( 'key' => '_subscription_renewal', 'compare' => '=', - 'value' => $subscription->id, + 'value' => $subscription->get_id(), 'type' => 'numeric', ), ), ) ); foreach ( $paid_renewal_order_ids as $paid_renewal_order_id ) { - $completed_payments[] = get_post_field( 'post_date_gmt', $paid_renewal_order_id ); + $date_created = wcs_get_objects_property( wc_get_order( $paid_renewal_order_id ), 'date_created' ); + if ( ! is_null( $date_created ) ) { + $completed_payments[] = wcs_get_datetime_utc_string( $date_created ); + } } } @@ -160,27 +237,27 @@ function wcs_get_subscription_in_deprecated_structure( WC_Subscription $subscrip if ( ! empty( $item ) ) { $deprecated_subscription_object = array( - 'order_id' => $subscription->order->id, + 'order_id' => $subscription->get_parent_id(), 'product_id' => isset( $item['product_id'] ) ? $item['product_id'] : 0, 'variation_id' => isset( $item['variation_id'] ) ? $item['variation_id'] : 0, 'status' => $subscription->get_status(), // Subscription billing details - 'period' => $subscription->billing_period, - 'interval' => $subscription->billing_interval, - 'length' => wcs_estimate_periods_between( ( 0 == $subscription->get_time( 'trial_end' ) ) ? $subscription->get_time( 'start' ) : $subscription->get_time( 'trial_end' ), $subscription->get_time( 'end' ) + 120, $subscription->billing_period, 'floor' ) / $subscription->billing_interval, // Since subscriptions no longer have a length, we need to calculate the length given the start and end dates and the period. + 'period' => $subscription->get_billing_period(), + 'interval' => $subscription->get_billing_interval(), + 'length' => wcs_estimate_periods_between( ( 0 == $subscription->get_time( 'trial_end' ) ) ? $subscription->get_time( 'date_created' ) : $subscription->get_time( 'trial_end' ), $subscription->get_time( 'end' ) + 120, $subscription->get_billing_period(), 'floor' ) / $subscription->get_billing_interval(), // Since subscriptions no longer have a length, we need to calculate the length given the start and end dates and the period. // Subscription dates - 'start_date' => $subscription->get_date( 'start' ), + 'start_date' => $subscription->get_date( 'date_created' ), 'expiry_date' => $subscription->get_date( 'end' ), 'end_date' => $subscription->has_status( wcs_get_subscription_ended_statuses() ) ? $subscription->get_date( 'end' ) : 0, 'trial_expiry_date' => $subscription->get_date( 'trial_end' ), // Payment & status change history - 'failed_payments' => $subscription->failed_payment_count, + 'failed_payments' => $subscription->get_failed_payment_count(), 'completed_payments' => $completed_payments, - 'suspension_count' => $subscription->suspension_count, - 'last_payment_date' => $subscription->get_date( 'last_payment' ), + 'suspension_count' => $subscription->get_suspension_count(), + 'last_payment_date' => $subscription->get_date( 'last_order_date_created' ), ); } else { diff --git a/includes/wcs-helper-functions.php b/includes/wcs-helper-functions.php index 2331b27..967296e 100644 --- a/includes/wcs-helper-functions.php +++ b/includes/wcs-helper-functions.php @@ -158,3 +158,31 @@ function wcs_get_rounding_precision() { return $precision; } + +/** + * Add a prefix to a string if it doesn't already have it + * + * @param string + * @param string + * @since 2.2.0 + * @return string + */ +function wcs_maybe_prefix_key( $key, $prefix = '_' ) { + return ( substr( $key, 0, strlen( $prefix ) ) != $prefix ) ? $prefix . $key : $key; +} + +/** + * Find the name of the function which called the function which called this function. + * + * @since 2.2.0 + * @return string + */ +function wcs_get_calling_function_name() { + + $backtrace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS, 3 ); + $calling_function = isset( $backtrace[2]['class'] ) ? $backtrace[2]['class'] : ''; + $calling_function .= isset( $backtrace[2]['type'] ) ? $backtrace[2]['type'] : ''; + $calling_function .= isset( $backtrace[2]['function'] ) ? $backtrace[2]['function'] : ''; + + return $calling_function; +} diff --git a/includes/wcs-limit-functions.php b/includes/wcs-limit-functions.php index 5e3956b..04a7c4f 100644 --- a/includes/wcs-limit-functions.php +++ b/includes/wcs-limit-functions.php @@ -19,17 +19,12 @@ if ( ! defined( 'ABSPATH' ) ) { * @return string containing the limit type */ function wcs_get_product_limitation( $product ) { - if ( ! is_object( $product ) ) { + + if ( ! is_object( $product ) || ! is_a( $product, 'WC_Product' ) ) { $product = wc_get_product( $product ); } - if ( ! isset( $product->product_custom_fields['_subscription_limit'][0] ) ) { - return 'no'; - } elseif ( 'yes' == $product->product_custom_fields['_subscription_limit'][0] ) { // backward compatibility - return 'any'; - } else { - return $product->product_custom_fields['_subscription_limit'][0]; - } + return apply_filters( 'woocommerce_subscriptions_product_limitation', WC_Subscriptions_Product::get_meta_data( $product, 'subscription_limit', 0 ), $product ); } /** @@ -43,5 +38,5 @@ function wcs_is_product_limited_for_user( $product, $user_id = 0 ) { $product = wc_get_product( $product ); } - return ( ( 'active' == wcs_get_product_limitation( $product ) && wcs_user_has_subscription( $user_id, $product->id, 'on-hold' ) ) || ( 'no' !== wcs_get_product_limitation( $product ) && wcs_user_has_subscription( $user_id, $product->id, wcs_get_product_limitation( $product ) ) ) ) ? true : false; + return ( ( 'active' == wcs_get_product_limitation( $product ) && wcs_user_has_subscription( $user_id, $product->get_id(), 'on-hold' ) ) || ( 'no' !== wcs_get_product_limitation( $product ) && wcs_user_has_subscription( $user_id, $product->get_id(), wcs_get_product_limitation( $product ) ) ) ) ? true : false; } diff --git a/includes/wcs-order-functions.php b/includes/wcs-order-functions.php index 7028d67..f9809d2 100644 --- a/includes/wcs-order-functions.php +++ b/includes/wcs-order-functions.php @@ -32,7 +32,7 @@ if ( ! defined( 'ABSPATH' ) ) { function wcs_get_subscriptions_for_order( $order_id, $args = array() ) { if ( is_object( $order_id ) ) { - $order_id = $order_id->id; + $order_id = wcs_get_objects_property( $order_id, 'id' ); } $args = wp_parse_args( $args, array( @@ -83,31 +83,31 @@ function wcs_copy_order_address( $from_order, $to_order, $address_type = 'all' ) if ( in_array( $address_type, array( 'shipping', 'all' ) ) ) { $to_order->set_address( array( - 'first_name' => $from_order->shipping_first_name, - 'last_name' => $from_order->shipping_last_name, - 'company' => $from_order->shipping_company, - 'address_1' => $from_order->shipping_address_1, - 'address_2' => $from_order->shipping_address_2, - 'city' => $from_order->shipping_city, - 'state' => $from_order->shipping_state, - 'postcode' => $from_order->shipping_postcode, - 'country' => $from_order->shipping_country, + 'first_name' => wcs_get_objects_property( $from_order, 'shipping_first_name' ), + 'last_name' => wcs_get_objects_property( $from_order, 'shipping_last_name' ), + 'company' => wcs_get_objects_property( $from_order, 'shipping_company' ), + 'address_1' => wcs_get_objects_property( $from_order, 'shipping_address_1' ), + 'address_2' => wcs_get_objects_property( $from_order, 'shipping_address_2' ), + 'city' => wcs_get_objects_property( $from_order, 'shipping_city' ), + 'state' => wcs_get_objects_property( $from_order, 'shipping_state' ), + 'postcode' => wcs_get_objects_property( $from_order, 'shipping_postcode' ), + 'country' => wcs_get_objects_property( $from_order, 'shipping_country' ), ), 'shipping' ); } if ( in_array( $address_type, array( 'billing', 'all' ) ) ) { $to_order->set_address( array( - 'first_name' => $from_order->billing_first_name, - 'last_name' => $from_order->billing_last_name, - 'company' => $from_order->billing_company, - 'address_1' => $from_order->billing_address_1, - 'address_2' => $from_order->billing_address_2, - 'city' => $from_order->billing_city, - 'state' => $from_order->billing_state, - 'postcode' => $from_order->billing_postcode, - 'country' => $from_order->billing_country, - 'email' => $from_order->billing_email, - 'phone' => $from_order->billing_phone, + 'first_name' => wcs_get_objects_property( $from_order, 'billing_first_name' ), + 'last_name' => wcs_get_objects_property( $from_order, 'billing_last_name' ), + 'company' => wcs_get_objects_property( $from_order, 'billing_company' ), + 'address_1' => wcs_get_objects_property( $from_order, 'billing_address_1' ), + 'address_2' => wcs_get_objects_property( $from_order, 'billing_address_2' ), + 'city' => wcs_get_objects_property( $from_order, 'billing_city' ), + 'state' => wcs_get_objects_property( $from_order, 'billing_state' ), + 'postcode' => wcs_get_objects_property( $from_order, 'billing_postcode' ), + 'country' => wcs_get_objects_property( $from_order, 'billing_country' ), + 'email' => wcs_get_objects_property( $from_order, 'billing_email' ), + 'phone' => wcs_get_objects_property( $from_order, 'billing_phone' ), ), 'billing' ); } @@ -150,7 +150,9 @@ function wcs_copy_order_meta( $from_order, $to_order, $type = 'subscription' ) { AND `meta_key` NOT LIKE '_schedule_%%' AND `meta_key` NOT IN ( '_paid_date', + '_date_paid', '_completed_date', + '_date_completed', '_order_key', '_edit_lock', '_wc_points_earned', @@ -163,7 +165,7 @@ function wcs_copy_order_meta( $from_order, $to_order, $type = 'subscription' ) { '_payment_method', '_payment_method_title' )", - $from_order->id + wcs_get_objects_property( $from_order, 'id' ) ); if ( 'renewal_order' == $type ) { @@ -176,7 +178,7 @@ function wcs_copy_order_meta( $from_order, $to_order, $type = 'subscription' ) { $meta = apply_filters( 'wcs_' . $type . '_meta', $meta, $to_order, $from_order ); foreach ( $meta as $meta_item ) { - update_post_meta( $to_order->id, $meta_item['meta_key'], maybe_unserialize( $meta_item['meta_value'] ) ); + wcs_set_objects_property( $to_order, $meta_item['meta_key'], maybe_unserialize( $meta_item['meta_value'] ) ); } } @@ -208,11 +210,9 @@ function wcs_create_order_from_subscription( $subscription, $type ) { $new_order = wc_create_order( array( 'customer_id' => $subscription->get_user_id(), - 'customer_note' => $subscription->customer_note, + 'customer_note' => $subscription->get_customer_note(), ) ); - $new_order->post->post_title = wcs_get_new_order_title( $type ); - wcs_copy_order_meta( $subscription, $new_order, $type ); // Copy over line items and allow extensions to add/remove items or item meta @@ -225,16 +225,23 @@ function wcs_create_order_from_subscription( $subscription, $type ) { $item_name = apply_filters( 'wcs_' . $type . '_item_name', $item_name, $item, $subscription ); // Create order line item on the renewal order - $recurring_item_id = wc_add_order_item( $new_order->id, array( + $order_item_id = wc_add_order_item( wcs_get_objects_property( $new_order, 'id' ), array( 'order_item_name' => $item_name, 'order_item_type' => $item['type'], ) ); // Remove recurring line items and set item totals based on recurring line totals - foreach ( $item['item_meta'] as $meta_key => $meta_values ) { - foreach ( $meta_values as $meta_value ) { - wc_add_order_item_meta( $recurring_item_id, $meta_key, maybe_unserialize( $meta_value ) ); + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + foreach ( $item['item_meta'] as $meta_key => $meta_values ) { + foreach ( $meta_values as $meta_value ) { + wc_add_order_item_meta( $order_item_id, $meta_key, maybe_unserialize( $meta_value ) ); + } } + } else { + $order_item = $new_order->get_item( $order_item_id ); + + wcs_copy_order_item( $item, $order_item ); + $order_item->save(); } // If the line item we're adding is a product line item and that product still exists, trigger the 'woocommerce_order_add_product' hook @@ -256,8 +263,8 @@ function wcs_create_order_from_subscription( $subscription, $type ) { ); // If we have a variation, get the attribute meta data from teh item to pass to callbacks - if ( ! empty( $item['variation_id'] ) && ! empty( $product->variation_data ) ) { - foreach ( $product->variation_data as $attribute => $variation ) { + if ( ! empty( $item['variation_id'] ) && null !== ( $variation_data = wcs_get_objects_property( $product, 'variation_data' ) ) ) { + foreach ( $variation_data as $attribute => $variation ) { if ( isset( $item[ str_replace( 'attribute_', '', $attribute ) ] ) ) { $args['variation'][ $attribute ] = $item[ str_replace( 'attribute_', '', $attribute ) ]; } @@ -265,11 +272,17 @@ function wcs_create_order_from_subscription( $subscription, $type ) { } // Backorders - if ( $product->backorders_require_notification() && $product->is_on_backorder( $item['qty'] ) ) { - wc_add_order_item_meta( $recurring_item_id, apply_filters( 'woocommerce_backordered_item_meta_name', __( 'Backordered', 'woocommerce-subscriptions' ) ), $item['qty'] - max( 0, $product->get_total_stock() ) ); + if ( isset( $order_item ) && is_callable( array( $order_item, 'set_backorder_meta' ) ) ) { // WC 3.0 + $order_item->set_backorder_meta(); + $order_item->save(); + } elseif ( $product->backorders_require_notification() && $product->is_on_backorder( $item['qty'] ) ) { // WC 2.6 + wc_add_order_item_meta( $order_item_id, apply_filters( 'woocommerce_backordered_item_meta_name', __( 'Backordered', 'woocommerce-subscriptions' ) ), $item['qty'] - max( 0, $product->get_total_stock() ) ); } - do_action( 'woocommerce_order_add_product', $new_order->id, $recurring_item_id, $product, $item['qty'], $args ); + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + // WC 3.0+ will also trigger the 'woocommerce_order_add_product when 'woocommerce_new_order_item', which is triggered in wc_add_order_item_meta() + do_action( 'woocommerce_order_add_product', wcs_get_objects_property( $new_order, 'id' ), $order_item_id, $product, $item['qty'], $args ); + } } } } @@ -294,6 +307,8 @@ function wcs_create_order_from_subscription( $subscription, $type ) { * @return string new title for a post */ function wcs_get_new_order_title( $type ) { + wcs_deprecated_function( __FUNCTION__, '2.2.0' ); + $type = wcs_validate_new_order_type( $type ); $order_date = strftime( _x( '%b %d, %Y @ %I:%M %p', 'Used in subscription post title. "Subscription renewal order - "', 'woocommerce-subscriptions' ) ); @@ -346,29 +361,29 @@ function wcs_get_order_address( $order, $address_type = 'shipping' ) { if ( 'billing' == $address_type ) { $address = array( - 'first_name' => $order->billing_first_name, - 'last_name' => $order->billing_last_name, - 'company' => $order->billing_company, - 'address_1' => $order->billing_address_1, - 'address_2' => $order->billing_address_2, - 'city' => $order->billing_city, - 'state' => $order->billing_state, - 'postcode' => $order->billing_postcode, - 'country' => $order->billing_country, - 'email' => $order->billing_email, - 'phone' => $order->billing_phone, + 'first_name' => wcs_get_objects_property( $order, 'billing_first_name' ), + 'last_name' => wcs_get_objects_property( $order, 'billing_last_name' ), + 'company' => wcs_get_objects_property( $order, 'billing_company' ), + 'address_1' => wcs_get_objects_property( $order, 'billing_address_1' ), + 'address_2' => wcs_get_objects_property( $order, 'billing_address_2' ), + 'city' => wcs_get_objects_property( $order, 'billing_city' ), + 'state' => wcs_get_objects_property( $order, 'billing_state' ), + 'postcode' => wcs_get_objects_property( $order, 'billing_postcode' ), + 'country' => wcs_get_objects_property( $order, 'billing_country' ), + 'email' => wcs_get_objects_property( $order, 'billing_email' ), + 'phone' => wcs_get_objects_property( $order, 'billing_phone' ), ); } else { $address = array( - 'first_name' => $order->shipping_first_name, - 'last_name' => $order->shipping_last_name, - 'company' => $order->shipping_company, - 'address_1' => $order->shipping_address_1, - 'address_2' => $order->shipping_address_2, - 'city' => $order->shipping_city, - 'state' => $order->shipping_state, - 'postcode' => $order->shipping_postcode, - 'country' => $order->shipping_country, + 'first_name' => wcs_get_objects_property( $order, 'shipping_first_name' ), + 'last_name' => wcs_get_objects_property( $order, 'shipping_last_name' ), + 'company' => wcs_get_objects_property( $order, 'shipping_company' ), + 'address_1' => wcs_get_objects_property( $order, 'shipping_address_1' ), + 'address_2' => wcs_get_objects_property( $order, 'shipping_address_2' ), + 'city' => wcs_get_objects_property( $order, 'shipping_city' ), + 'state' => wcs_get_objects_property( $order, 'shipping_state' ), + 'postcode' => wcs_get_objects_property( $order, 'shipping_postcode' ), + 'country' => wcs_get_objects_property( $order, 'shipping_country' ), ); } @@ -397,7 +412,7 @@ function wcs_order_contains_subscription( $order, $order_type = array( 'parent', $contains_subscription = false; $get_all = ( in_array( 'any', $order_type ) ) ? true : false; - if ( ( in_array( 'parent', $order_type ) || $get_all ) && count( wcs_get_subscriptions_for_order( $order->id, array( 'order_type' => 'parent' ) ) ) > 0 ) { + if ( ( in_array( 'parent', $order_type ) || $get_all ) && count( wcs_get_subscriptions_for_order( wcs_get_objects_property( $order, 'id' ), array( 'order_type' => 'parent' ) ) ) > 0 ) { $contains_subscription = true; } elseif ( ( in_array( 'renewal', $order_type ) || $get_all ) && wcs_order_contains_renewal( $order ) ) { @@ -657,3 +672,99 @@ function wcs_get_line_item_name( $line_item ) { return apply_filters( 'wcs_line_item_name', $line_item_name, $line_item ); } + +/** + * Display item meta data in a version compatible way. + * + * @since 2.2.0 + * @param WC_Item $item + * @param WC_Order $order + * @return void + */ +function wcs_display_item_meta( $item, $order ) { + if ( function_exists( 'wc_display_item_meta' ) ) { // WC 3.0+ + wc_display_item_meta( $item ); + } else { + $order->display_item_meta( $item ); + } +} + +/** + * Display item download links in a version compatible way. + * + * @since 2.2.0 + * @param WC_Item $item + * @param WC_Order $order + * @return void + */ +function wcs_display_item_downloads( $item, $order ) { + if ( function_exists( 'wc_display_item_downloads' ) ) { // WC 3.0+ + wc_display_item_downloads( $item ); + } else { + $order->display_item_downloads( $item ); + } +} + +/** + * Copy the order item data and meta data from one item to another. + * + * @since 2.2.0 + * @param WC_Order_Item The order item to copy data from + * @param WC_Order_Item The order item to copy data to + * @return void + */ +function wcs_copy_order_item( $from_item, &$to_item ) { + + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + wcs_doing_it_wrong( __FUNCTION__, 'This function uses data structures introduced in WC 3.0. To copy line item meta use $from_item[\'item_meta\'] and wc_add_order_item_meta().', '2.2' ); + return; + } + + foreach ( $from_item->get_meta_data() as $meta_data ) { + $to_item->update_meta_data( $meta_data->key, $meta_data->value ); + } + + switch ( $from_item->get_type() ) { + case 'line_item': + $to_item->set_props( array( + 'product_id' => $from_item->get_product_id(), + 'variation_id' => $from_item->get_variation_id(), + 'quantity' => $from_item->get_quantity(), + 'tax_class' => $from_item->get_tax_class(), + 'subtotal' => $from_item->get_subtotal(), + 'total' => $from_item->get_total(), + 'taxes' => $from_item->get_taxes(), + ) ); + break; + case 'shipping': + $to_item->set_props( array( + 'method_id' => $from_item->get_method_id(), + 'total' => $from_item->get_total(), + 'taxes' => $from_item->get_taxes(), + ) ); + break; + case 'tax': + $to_item->set_props( array( + 'rate_id' => $from_item->get_rate_id(), + 'label' => $from_item->get_label(), + 'compound' => $from_item->get_compound(), + 'tax_total' => $from_item->get_tax_total(), + 'shipping_tax_total' => $from_item->get_shipping_tax_total(), + ) ); + break; + case 'fee': + $to_item->set_props( array( + 'tax_class' => $from_item->get_tax_class(), + 'tax_status' => $from_item->get_tax_status(), + 'total' => $from_item->get_total(), + 'taxes' => $from_item->get_taxes(), + ) ); + break; + case 'coupon': + $to_item->set_props( array( + 'discount' => $from_item->discount(), + 'discount_tax' => $from_item->discount_tax(), + ) ); + break; + } +} diff --git a/includes/wcs-product-functions.php b/includes/wcs-product-functions.php new file mode 100644 index 0000000..6a2f957 --- /dev/null +++ b/includes/wcs-product-functions.php @@ -0,0 +1,414 @@ + 1, + 'price' => $product->get_price(), + ) ); + + if ( function_exists( 'wc_get_price_including_tax' ) ) { // WC 3.0+ + $price = wc_get_price_including_tax( $product, $args ); + } else { // WC < 3.0 + $price = $product->get_price_including_tax( $args['qty'], $args['price'] ); + } + + return $price; +} + +/** + * For a given product, and optionally price/qty, work out the sign-up fee with tax excluded, based on store settings. + * + * @since 2.2.0 + * @param WC_Product $product + * @param array $args + * @return float + */ +function wcs_get_price_excluding_tax( $product, $args = array() ) { + + $args = wp_parse_args( $args, array( + 'qty' => 1, + 'price' => $product->get_price(), + ) ); + + if ( function_exists( 'wc_get_price_excluding_tax' ) ) { // WC 3.0+ + $price = wc_get_price_excluding_tax( $product, $args ); + } else { // WC < 3.0 + $price = $product->get_price_excluding_tax( $args['qty'], $args['price'] ); + } + + return $price; +} + +/** + * Returns a 'from' prefix if you want to show where prices start at. + * + * @since 2.2.0 + * @return string + */ +function wcs_get_price_html_from_text( $product = '' ) { + + if ( function_exists( 'wc_get_price_html_from_text' ) ) { // WC 3.0+ + $price_html_from_text = wc_get_price_html_from_text(); + } else { // WC < 3.0 + $price_html_from_text = $product->get_price_html_from_text(); + } + + return $price_html_from_text; +} + +/** + * Get an array of the prices, used to help determine min/max values. + * + * @since 2.2.0 + */ +function wcs_get_variation_prices( $variation, $variable_product ) { + + if ( WC_Subscriptions::is_woocommerce_pre( '3.0' ) ) { + $regular_price = $variation->regular_price; + $sale_price = $variation->sale_price; + } else { + $regular_price = $variation->get_regular_price( 'edit' ); + $sale_price = $variation->get_sale_price( 'edit' ); + } + + $prices = array( + 'price' => apply_filters( 'woocommerce_variation_prices_price', WC_Subscriptions_Product::get_price( $variation ), $variation, $variable_product ), + 'regular_price' => apply_filters( 'woocommerce_variation_prices_regular_price', WC_Subscriptions_Product::get_regular_price( $variation, 'edit' ), $variation, $variable_product ), + 'sale_price' => apply_filters( 'woocommerce_variation_prices_sale_price', WC_Subscriptions_Product::get_sale_price( $variation, 'edit' ), $variation, $variable_product ), + 'sign_up_fee' => apply_filters( 'woocommerce_variation_prices_sign_up_fee', WC_Subscriptions_Product::get_sign_up_fee( $variation ), $variation, $variable_product ), + ); + + return $prices; +} + +/** + * Get an array of the minimum and maximum priced variations based on subscription billing terms. + * + * @param array $child_variation_ids the IDs of product variation children ids + * @return array() Array containing the min and max variation prices and billing data + * @since 2.2.0 + */ +function wcs_get_min_max_variation_data( $variable_product, $child_variation_ids = array() ) { + + if ( empty( $child_variation_ids ) ) { + $child_variation_ids = is_callable( array( $variable_product, 'get_visible_children' ) ) ? $variable_product->get_visible_children() : $variable_product->get_children( true ); + } + + $variations_data = array(); + + foreach ( $child_variation_ids as $variation_id ) { + + if ( $variation = wc_get_product( $variation_id ) ) { + + $prices = wcs_get_variation_prices( $variation, $variable_product ); + + foreach ( $prices as $price_key => $amount ) { + if ( '' !== $amount ) { + if ( 'incl' === get_option( 'woocommerce_tax_display_shop' ) ) { + $prices[ $price_key ] = wcs_get_price_including_tax( $variable_product, array( 'price' => $amount ) ); + } else { + $prices[ $price_key ] = wcs_get_price_excluding_tax( $variable_product, array( 'price' => $amount ) ); + } + } + } + + $variations_data[ $variation_id ] = array( + 'price' => $prices['price'], + 'regular_price' => $prices['regular_price'], + 'sale_price' => $prices['sale_price'], + 'subscription' => array( + 'sign_up_fee' => $prices['sign_up_fee'], + 'period' => WC_Subscriptions_Product::get_period( $variation ), + 'interval' => WC_Subscriptions_Product::get_interval( $variation ), + 'trial_length' => WC_Subscriptions_Product::get_trial_length( $variation ), + 'trial_period' => WC_Subscriptions_Product::get_trial_period( $variation ), + 'length' => WC_Subscriptions_Product::get_length( $variation ), + ), + ); + } + } + + return wcs_calculate_min_max_variations( $variations_data ); +} + +/** + * Determine the minimum and maximum values for a set of structured subscription + * price data in a form created by @see wcs_get_min_max_variation_data() + * + * @param array $child_variation_ids the IDs of product variation children ids + * @return array + * @since 2.2.0 + */ +function wcs_calculate_min_max_variations( $variations_data ) { + + $lowest_initial_amount = $highest_initial_amount = $lowest_price = $highest_price = ''; + $shortest_initial_period = $longest_initial_period = $shortest_trial_period = $longest_trial_period = $shortest_trial_length = $longest_trial_length = ''; + $longest_initial_interval = $shortest_initial_interval = $variable_subscription_period = $variable_subscription_period_interval = ''; + $lowest_regular_price = $highest_regular_price = $lowest_sale_price = $highest_sale_price = $max_subscription_period = $max_subscription_period_interval = ''; + $variable_subscription_sign_up_fee = $variable_subscription_trial_period = $variable_subscription_trial_length = $variable_subscription_length = $variable_subscription_sign_up_fee = $variable_subscription_trial_period = $variable_subscription_trial_length = $variable_subscription_length = ''; + $min_variation_id = $max_variation_id = null; + + foreach ( $variations_data as $variation_id => $variation_data ) { + + $is_max = $is_min = false; + + if ( empty( $variation_data['price'] ) && empty( $variation_data['subscription']['sign_up_fee'] ) ) { + continue; + } + + $has_free_trial = ( '' !== $variation_data['subscription']['trial_length'] && $variation_data['subscription']['trial_length'] > 0 ) ? true : false; + + // Determine some recurring price flags + $is_lowest_price = ( $variation_data['price'] < $lowest_price || '' === $lowest_price ) ? true : false; + $is_longest_period = ( WC_Subscriptions::get_longest_period( $variable_subscription_period, $variation_data['subscription']['period'] ) === $variation_data['subscription']['period'] ) ? true : false; + $is_longest_interval = ( $variation_data['subscription']['interval'] >= $variable_subscription_period_interval || '' === $variable_subscription_period_interval ) ? true : false; + + // Find the amount the subscriber will have to pay up-front + if ( $has_free_trial ) { + $initial_amount = $variation_data['subscription']['sign_up_fee']; + $initial_period = $variation_data['subscription']['trial_period']; + $initial_interval = $variation_data['subscription']['trial_length']; + } else { + $initial_amount = $variation_data['price'] + $variation_data['subscription']['sign_up_fee']; + $initial_period = $variation_data['subscription']['period']; + $initial_interval = $variation_data['subscription']['interval']; + } + + // We have a free trial & no sign-up fee, so need to choose the longest free trial (and maybe the shortest) + if ( $has_free_trial && 0 == $variation_data['subscription']['sign_up_fee'] ) { + + // First variation + if ( '' === $longest_trial_period ) { + + $is_min = true; + + // If two variations have the same free trial, choose the variation with the lowest recurring price for the longest period + } elseif ( $variable_subscription_trial_period === $variation_data['subscription']['trial_period'] && $variation_data['subscription']['trial_length'] === $variable_subscription_trial_length ) { + + // If the variation has the lowest recurring price, it's the cheapest + if ( $is_lowest_price ) { + + $is_min = true; + + // When current variation's free trial is the same as the lowest, it's the cheaper if it has a longer billing schedule + } elseif ( $variation_data['price'] === $lowest_price ) { + + if ( $is_longest_period && $is_longest_interval ) { + + $is_min = true; + + // Longest with a new billing period + } elseif ( $is_longest_period && $variation_data['subscription']['period'] !== $variable_subscription_trial_period ) { + + $is_min = true; + + } + } + + // Otherwise the cheapest variation is the one with the longer trial + } elseif ( $variable_subscription_trial_period === $variation_data['subscription']['trial_period'] ) { + + $is_min = ( $variation_data['subscription']['trial_length'] > $variable_subscription_trial_length ) ? true : false; + + // Otherwise just a longer trial period (that isn't equal to the longest period) + } elseif ( WC_Subscriptions::get_longest_period( $longest_trial_period, $variation_data['subscription']['trial_period'] ) === $variation_data['subscription']['trial_period'] ) { + + $is_min = true; + + } + + if ( $is_min ) { + $longest_trial_period = $variation_data['subscription']['trial_period']; + $longest_trial_length = $variation_data['subscription']['trial_length']; + } + + // If the current cheapest variation is also free, then the shortest trial period is the most expensive + if ( 0 == $lowest_price || '' === $lowest_price ) { + + if ( '' === $shortest_trial_period ) { + + $is_max = true; + + // Need to check trial length + } elseif ( $shortest_trial_period === $variation_data['subscription']['trial_period'] ) { + + $is_max = ( $variation_data['subscription']['trial_length'] < $shortest_trial_length ) ? true : false; + + // Need to find shortest period + } elseif ( WC_Subscriptions::get_shortest_period( $shortest_trial_period, $variation_data['subscription']['trial_period'] ) === $variation_data['subscription']['trial_period'] ) { + + $is_max = true; + + } + + if ( $is_max ) { + $shortest_trial_period = $variation_data['subscription']['trial_period']; + $shortest_trial_length = $variation_data['subscription']['trial_length']; + } + } + } else { + + $longest_initial_period = WC_Subscriptions::get_longest_period( $longest_initial_period, $initial_period ); + $shortest_initial_period = WC_Subscriptions::get_shortest_period( $shortest_initial_period, $initial_period ); + + $is_lowest_initial_amount = ( $initial_amount < $lowest_initial_amount || '' === $lowest_initial_amount ) ? true : false; + $is_longest_initial_period = ( $initial_period === $longest_initial_period ) ? true : false; + $is_longest_initial_interval = ( $initial_interval >= $longest_initial_interval || '' === $longest_initial_interval ) ? true : false; + + $is_highest_initial = ( $initial_amount > $highest_initial_amount || '' === $highest_initial_amount ) ? true : false; + $is_shortest_period = ( $initial_period === $shortest_initial_period || '' === $shortest_initial_period ) ? true : false; + $is_shortest_interval = ( $initial_interval < $shortest_initial_interval || '' === $shortest_initial_interval ) ? true : false; + + // If we're not dealing with the lowest initial access amount, then ignore this variation + if ( ! $is_lowest_initial_amount && $initial_amount !== $lowest_initial_amount ) { + continue; + } + + // If the variation has the lowest price, it's the cheapest + if ( $is_lowest_initial_amount ) { + + $is_min = true; + + // When current variation's price is the same as the lowest, it's the cheapest only if it has a longer billing schedule + } elseif ( $initial_amount === $lowest_initial_amount ) { + + // We need to check the recurring schedule when the sign-up fee & free trial periods are equal + if ( $has_free_trial && $initial_period == $longest_initial_period && $initial_interval == $longest_initial_interval ) { + + // If the variation has the lowest recurring price, it's the cheapest + if ( $is_lowest_price ) { + + $is_min = true; + + // When current variation's price is the same as the lowest, it's the cheapest only if it has a longer billing schedule + } elseif ( $variation_data['price'] === $lowest_price ) { + + if ( $is_longest_period && $is_longest_interval ) { + + $is_min = true; + + // Longest with a new billing period + } elseif ( $is_longest_period && $variation_data['subscription']['period'] !== $variable_subscription_period ) { + + $is_min = true; + + } + } + // Longest initial term is the cheapest + } elseif ( $is_longest_initial_period && $is_longest_initial_interval ) { + + $is_min = true; + + // Longest with a new billing period + } elseif ( $is_longest_initial_period && $initial_period !== $variable_subscription_period ) { + + $is_min = true; + + } + } + + // If we have the highest price for the shortest period, we might have the maximum variation + if ( $is_highest_initial && $is_shortest_period && $is_shortest_interval ) { + + $is_max = true; + + // But only if its for the shortest billing period + } elseif ( $variation_data['price'] === $highest_price ) { + + if ( $is_shortest_period && $is_shortest_interval ) { + + $is_max = true; + + } elseif ( $is_shortest_period ) { + + $is_max = true; + + } + } + } + + // If it's the min subscription terms + if ( $is_min ) { + + $min_variation_id = $variation_id; + + $lowest_price = $variation_data['price']; + $lowest_regular_price = $variation_data['regular_price']; + $lowest_sale_price = $variation_data['sale_price']; + + $lowest_regular_price = ( '' === $lowest_regular_price ) ? 0 : $lowest_regular_price; + $lowest_sale_price = ( '' === $lowest_sale_price ) ? 0 : $lowest_sale_price; + + $lowest_initial_amount = $initial_amount; + $longest_initial_period = $initial_period; + $longest_initial_interval = $initial_interval; + + $variable_subscription_sign_up_fee = $variation_data['subscription']['sign_up_fee']; + $variable_subscription_period = $variation_data['subscription']['period']; + $variable_subscription_period_interval = $variation_data['subscription']['interval']; + $variable_subscription_trial_length = $variation_data['subscription']['trial_length']; + $variable_subscription_trial_period = $variation_data['subscription']['trial_period']; + $variable_subscription_length = $variation_data['subscription']['length']; + } + + if ( $is_max ) { + + $max_variation_id = $variation_id; + + $highest_price = $variation_data['price']; + $highest_regular_price = $variation_data['regular_price']; + $highest_sale_price = $variation_data['sale_price']; + $highest_initial_amount = $initial_amount; + + $highest_regular_price = ( '' === $highest_regular_price ) ? 0 : $highest_regular_price; + $highest_sale_price = ( '' === $highest_sale_price ) ? 0 : $highest_sale_price; + + $max_subscription_period = $variation_data['subscription']['period']; + $max_subscription_period_interval = $variation_data['subscription']['interval']; + } + } + + return array( + 'min' => array( + 'variation_id' => $min_variation_id, + 'price' => $lowest_price, + 'regular_price' => $lowest_regular_price, + 'sale_price' => $lowest_sale_price, + 'period' => $variable_subscription_period, + 'interval' => $variable_subscription_period_interval, + ), + 'max' => array( + 'variation_id' => $max_variation_id, + 'price' => $highest_price, + 'regular_price' => $highest_regular_price, + 'sale_price' => $highest_sale_price, + 'period' => $max_subscription_period, + 'interval' => $max_subscription_period_interval, + ), + 'subscription' => array( + 'signup-fee' => $variable_subscription_sign_up_fee, + 'trial_period' => $variable_subscription_trial_period, + 'trial_length' => $variable_subscription_trial_length, + 'length' => $variable_subscription_length, + ), + ); +} diff --git a/includes/wcs-renewal-functions.php b/includes/wcs-renewal-functions.php index bd33ab4..9cf66bf 100644 --- a/includes/wcs-renewal-functions.php +++ b/includes/wcs-renewal-functions.php @@ -32,7 +32,7 @@ function wcs_create_renewal_order( $subscription ) { return new WP_Error( 'renewal-order-error', $renewal_order->get_error_message() ); } - update_post_meta( $renewal_order->id, '_subscription_renewal', $subscription->id ); + wcs_set_objects_property( $renewal_order, 'subscription_renewal', $subscription->get_id(), 'save' ); return apply_filters( 'wcs_renewal_order_created', $renewal_order, $subscription ); } @@ -49,7 +49,7 @@ function wcs_order_contains_renewal( $order ) { $order = wc_get_order( $order ); } - if ( 'simple' == $order->order_type && isset( $order->subscription_renewal ) && $order->subscription_renewal > 0 ) { // It's a parent order or original order + if ( wcs_is_order( $order ) && wcs_get_objects_property( $order, 'subscription_renewal' ) ) { $is_renewal = true; } else { $is_renewal = false; @@ -119,7 +119,7 @@ function wcs_get_subscriptions_for_renewal_order( $order ) { // Only use the order if we actually found a valid order object if ( is_object( $order ) ) { - $subscription_ids = get_post_meta( $order->id, '_subscription_renewal', false ); + $subscription_ids = wcs_get_objects_property( $order, 'subscription_renewal', 'multiple' ); foreach ( $subscription_ids as $subscription_id ) { if ( wcs_is_subscription( $subscription_id ) ) { diff --git a/includes/wcs-resubscribe-functions.php b/includes/wcs-resubscribe-functions.php index d8d5ad4..2388957 100644 --- a/includes/wcs-resubscribe-functions.php +++ b/includes/wcs-resubscribe-functions.php @@ -26,7 +26,7 @@ function wcs_order_contains_resubscribe( $order ) { $order = new WC_Order( $order ); } - if ( '' !== get_post_meta( $order->id, '_subscription_resubscribe', true ) ) { + if ( wcs_get_objects_property( $order, 'subscription_resubscribe' ) ) { $is_resubscribe_order = true; } else { $is_resubscribe_order = false; @@ -55,7 +55,7 @@ function wcs_create_resubscribe_order( $subscription ) { } // Keep a record of the original subscription's ID on the new order - update_post_meta( $resubscribe_order->id, '_subscription_resubscribe', $subscription->id, true ); + wcs_set_objects_property( $resubscribe_order, 'subscription_resubscribe', $subscription->get_id(), true ); do_action( 'wcs_resubscribe_order_created', $resubscribe_order, $subscription ); @@ -71,7 +71,7 @@ function wcs_create_resubscribe_order( $subscription ) { */ function wcs_get_users_resubscribe_link( $subscription ) { - $subscription_id = ( is_object( $subscription ) ) ? $subscription->id : $subscription; + $subscription_id = ( is_object( $subscription ) ) ? $subscription->get_id() : $subscription; $resubscribe_link = add_query_arg( array( 'resubscribe' => $subscription_id ), get_permalink( wc_get_page_id( 'myaccount' ) ) ); $resubscribe_link = wp_nonce_url( $resubscribe_link, $subscription_id ); @@ -143,7 +143,7 @@ function wcs_get_subscriptions_for_resubscribe_order( $order ) { } $subscriptions = array(); - $subscription_ids = get_post_meta( $order->id, '_subscription_resubscribe', false ); + $subscription_ids = wcs_get_objects_property( $order, 'subscription_resubscribe', 'multiple' ); foreach ( $subscription_ids as $subscription_id ) { if ( wcs_is_subscription( $subscription_id ) ) { @@ -187,7 +187,7 @@ function wcs_can_user_resubscribe_to( $subscription, $user_id = '' ) { $can_user_resubscribe = false; - } elseif ( ! user_can( $user_id, 'subscribe_again', $subscription->id ) ) { + } elseif ( ! user_can( $user_id, 'subscribe_again', $subscription->get_id() ) ) { $can_user_resubscribe = false; @@ -206,7 +206,7 @@ function wcs_can_user_resubscribe_to( $subscription, $user_id = '' ) { array( 'key' => '_subscription_resubscribe', 'compare' => '=', - 'value' => $subscription->id, + 'value' => $subscription->get_id(), 'type' => 'numeric', ), ), @@ -229,7 +229,7 @@ function wcs_can_user_resubscribe_to( $subscription, $user_id = '' ) { break; } - if ( 'active' == wcs_get_product_limitation( $product ) && ( wcs_user_has_subscription( $user_id, $product->id, 'on-hold' ) || wcs_user_has_subscription( $user_id, $product->id, 'active' ) ) ) { + if ( 'active' == wcs_get_product_limitation( $product ) && ( wcs_user_has_subscription( $user_id, $product->get_id(), 'on-hold' ) || wcs_user_has_subscription( $user_id, $product->get_id(), 'active' ) ) ) { $has_active_limited_subscription = true; break; } diff --git a/includes/wcs-switch-functions.php b/includes/wcs-switch-functions.php index 793424a..b5a94b1 100644 --- a/includes/wcs-switch-functions.php +++ b/includes/wcs-switch-functions.php @@ -24,13 +24,13 @@ function wcs_order_contains_switch( $order ) { $order = wc_get_order( $order ); } - if ( 'simple' != $order->order_type || isset( $order->subscription_renewal ) ) { // It's a parent order or renewal order + if ( ! wcs_is_order( $order ) || wcs_order_contains_renewal( $order ) ) { $is_switch_order = false; } else { - $subscription_ids = get_post_meta( $order->id, '_subscription_switch', false ); + $subscription_ids = wcs_get_objects_property( $order, 'subscription_switch', 'multiple' ); if ( ! empty( $subscription_ids ) ) { $is_switch_order = true; @@ -49,14 +49,14 @@ function wcs_order_contains_switch( $order ) { * @return array Subscription details in post_id => WC_Subscription form. * @since 2.0 */ -function wcs_get_subscriptions_for_switch_order( $order_id ) { +function wcs_get_subscriptions_for_switch_order( $order ) { - if ( is_object( $order_id ) ) { - $order_id = $order_id->id; + if ( ! is_object( $order ) ) { + $order = wc_get_order( $order ); } $subscriptions = array(); - $subscription_ids = get_post_meta( $order_id, '_subscription_switch', false ); + $subscription_ids = wcs_get_objects_property( $order, 'subscription_switch', 'multiple' ); foreach ( $subscription_ids as $subscription_id ) { $subscriptions[ $subscription_id ] = wcs_get_subscription( $subscription_id ); @@ -119,9 +119,11 @@ function wcs_is_product_switchable_type( $product ) { } else { // back compat for parent products - if ( $product->is_type( 'subscription_variation' ) && ! empty( $product->parent ) ) { + $parent_id = wcs_get_objects_property( $product, 'parent_id' ); + + if ( $product->is_type( 'subscription_variation' ) && ! empty( $parent_id ) ) { $variation = $product; - $product = $product->parent; + $product = wc_get_product( $parent_id );; } $allow_switching = get_option( WC_Subscriptions_Admin::$option_prefix . '_allow_switching', 'no' ); @@ -131,10 +133,10 @@ function wcs_is_product_switchable_type( $product ) { $is_product_switchable = ( $product->is_type( array( 'variable-subscription', 'subscription_variation' ) ) ) ? true : false; break; case 'grouped' : - $is_product_switchable = ( 0 !== $product->post->post_parent ) ? true : false; + $is_product_switchable = ( ! empty( $parent_id ) ) ? true : false; break; case 'variable_grouped' : - $is_product_switchable = ( $product->is_type( array( 'variable-subscription', 'subscription_variation' ) ) || 0 !== $product->post->post_parent ) ? true : false; + $is_product_switchable = ( $product->is_type( array( 'variable-subscription', 'subscription_variation' ) ) || ! empty( $parent_id ) ) ? true : false; break; case 'no' : default: diff --git a/includes/wcs-time-functions.php b/includes/wcs-time-functions.php index f0abbf8..5042e91 100644 --- a/includes/wcs-time-functions.php +++ b/includes/wcs-time-functions.php @@ -777,3 +777,70 @@ function wcs_get_subscription_ranges_tlc() { return wcs_get_non_cached_subscription_ranges(); } + +/** + * Take a date in the form of a timestamp, MySQL date/time string or DateTime object (or perhaps + * a WC_Datetime object when WC > 3.0 is active) and create a WC_DateTime object. + * + * @since 2.2.0 + * @param string|integer|null $date UTC timestamp, or ISO 8601 DateTime. If the DateTime string has no timezone or offset, WordPress site timezone will be assumed. Null if their is no date. + * @return null|WC_DateTime in site's timezone + */ +function wcs_get_datetime_from( $variable_date_type ) { + + try { + if ( empty( $variable_date_type ) ) { + $datetime = null; + } elseif ( is_a( $variable_date_type, 'WC_DateTime' ) ) { + $datetime = $variable_date_type; + } elseif ( is_numeric( $variable_date_type ) ) { + $datetime = new WC_DateTime( "@{$variable_date_type}", new DateTimeZone( 'UTC' ) ); + $datetime->setTimezone( new DateTimeZone( wc_timezone_string() ) ); + } else { + $datetime = new WC_DateTime( $variable_date_type, new DateTimeZone( wc_timezone_string() ) ); + } + } catch ( Exception $e ) { + $datetime = null; + } + + return $datetime; +} + +/** + * Get a MySQL date/time string in UTC timezone from a WC_Datetime object. + * + * @since 2.2.0 + * @param WC_DateTime + * @return string MySQL date/time string representation of the DateTime object in UTC timezone + */ +function wcs_get_datetime_utc_string( $datetime ) { + $date = clone $datetime; // Don't change the original date object's timezone + $date->setTimezone( new DateTimeZone( 'UTC' ) ); + return $date->format( 'Y-m-d H:i:s' ); +} + +/** + * Format a date for output, a wrapper for wcs_format_datetime() introduced with WC 3.0. + * + * @since 2.2.0 + * @param WC_DateTime $date + * @param string $format Defaults to the wc_date_format function if not set. + * @return string + */ +function wcs_format_datetime( $date, $format = '' ) { + + if ( function_exists( 'wc_format_datetime' ) ) { // WC 3.0+ + $formatted_datetime = wc_format_datetime( $date, $format ); + } else { // WC < 3.0 + if ( ! $format ) { + $format = wc_date_format(); + } + if ( ! is_a( $date, 'WC_DateTime' ) ) { + return ''; + } + + $formatted_datetime = $date->date_i18n( $format ); + } + + return $formatted_datetime; +} diff --git a/includes/wcs-user-functions.php b/includes/wcs-user-functions.php index 5576906..e2dfb49 100644 --- a/includes/wcs-user-functions.php +++ b/includes/wcs-user-functions.php @@ -235,7 +235,7 @@ function wcs_can_user_put_subscription_on_hold( $subscription, $user = '' ) { if ( $user->ID == $subscription->get_user_id() ) { // Make sure subscription suspension count hasn't been reached - $suspension_count = intval( $subscription->suspension_count ); + $suspension_count = intval( $subscription->get_suspension_count() ); $allowed_suspensions = get_option( WC_Subscriptions_Admin::$option_prefix . '_max_customer_suspensions', 0 ); if ( 'unlimited' === $allowed_suspensions || $allowed_suspensions > $suspension_count ) { // 0 not > anything so prevents a customer ever being able to suspend @@ -256,19 +256,19 @@ function wcs_get_all_user_actions_for_subscription( $subscription, $user_id ) { $actions = array(); - if ( user_can( $user_id, 'edit_shop_subscription_status', $subscription->id ) ) { + if ( user_can( $user_id, 'edit_shop_subscription_status', $subscription->get_id() ) ) { $admin_with_suspension_disallowed = ( current_user_can( 'manage_woocommerce' ) && '0' === get_option( WC_Subscriptions_Admin::$option_prefix . '_max_customer_suspensions', '0' ) ) ? true : false; $current_status = $subscription->get_status(); if ( $subscription->can_be_updated_to( 'on-hold' ) && wcs_can_user_put_subscription_on_hold( $subscription, $user_id ) && ! $admin_with_suspension_disallowed ) { $actions['suspend'] = array( - 'url' => wcs_get_users_change_status_link( $subscription->id, 'on-hold', $current_status ), + 'url' => wcs_get_users_change_status_link( $subscription->get_id(), 'on-hold', $current_status ), 'name' => __( 'Suspend', 'woocommerce-subscriptions' ), ); } elseif ( $subscription->can_be_updated_to( 'active' ) && ! $subscription->needs_payment() ) { $actions['reactivate'] = array( - 'url' => wcs_get_users_change_status_link( $subscription->id, 'active', $current_status ), + 'url' => wcs_get_users_change_status_link( $subscription->get_id(), 'active', $current_status ), 'name' => __( 'Reactivate', 'woocommerce-subscriptions' ), ); } @@ -284,7 +284,7 @@ function wcs_get_all_user_actions_for_subscription( $subscription, $user_id ) { $next_payment = $subscription->get_time( 'next_payment' ); if ( $subscription->can_be_updated_to( 'cancelled' ) && ! $subscription->is_one_payment() && ( $next_payment > 0 || ( $subscription->has_status( 'on-hold' ) && empty( $next_payment ) ) ) ) { $actions['cancel'] = array( - 'url' => wcs_get_users_change_status_link( $subscription->id, 'cancelled', $current_status ), + 'url' => wcs_get_users_change_status_link( $subscription->get_id(), 'cancelled', $current_status ), 'name' => _x( 'Cancel', 'an action on a subscription', 'woocommerce-subscriptions' ), ); } diff --git a/languages/woocommerce-subscriptions.pot b/languages/woocommerce-subscriptions.pot index 17eabfa..760070c 100644 --- a/languages/woocommerce-subscriptions.pot +++ b/languages/woocommerce-subscriptions.pot @@ -2,87 +2,111 @@ # This file is distributed under the same license as the WooCommerce Subscriptions package. msgid "" msgstr "" -"Project-Id-Version: WooCommerce Subscriptions 2.1.4\n" +"Project-Id-Version: WooCommerce Subscriptions 2.2.3\n" "Report-Msgid-Bugs-To: " "https://github.com/Prospress/woocommerce-subscriptions/issues\n" -"POT-Creation-Date: 2017-03-06 22:34:02+00:00\n" +"POT-Creation-Date: 2017-04-07 23:50:11+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Prospress Translations \n" +"Last-Translator: Prospress Inc \n" +"Language-Team: Prospress Inc \n" "X-Generator: grunt-wp-i18n 0.5.4\n" "Language: en_US\n" -#: includes/admin/class-wc-subscriptions-admin.php:166 +#: includes/admin/class-wc-subscriptions-admin.php:174 msgid "Simple subscription" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:167 +#: includes/admin/class-wc-subscriptions-admin.php:175 msgid "Variable subscription" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:185 +#: includes/admin/class-wc-subscriptions-admin.php:193 msgid "Choose the subscription price, billing interval and period." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:198 -#: templates/admin/html-variation-price.php:44 +#. translators: placeholder is trial period validation message if passed an +#. invalid value (e.g. "Trial period can not exceed 4 weeks") +#: includes/admin/class-wc-subscriptions-admin.php:195 +msgctxt "Trial period field tooltip on Edit Product administration screen" +msgid "" +"An optional period of time to wait before charging the first recurring " +"payment. Any sign up fee will still be charged at the outset of the " +"subscription. %s" +msgstr "" + #. translators: placeholder is a currency symbol / code +#: includes/admin/class-wc-subscriptions-admin.php:206 +#: templates/admin/html-variation-price.php:42 msgid "Subscription price (%s)" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:201 +#: includes/admin/class-wc-subscriptions-admin.php:208 +msgctxt "example price" +msgid "e.g. 5.90" +msgstr "" + +#: includes/admin/class-wc-subscriptions-admin.php:209 msgid "Subscription interval" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:207 -#: includes/admin/class-wc-subscriptions-admin.php:340 +#: includes/admin/class-wc-subscriptions-admin.php:215 +#: includes/admin/class-wc-subscriptions-admin.php:350 msgid "Subscription period" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:221 -#: includes/admin/class-wc-subscriptions-admin.php:341 -#: templates/admin/html-variation-price.php:66 +#: includes/admin/class-wc-subscriptions-admin.php:229 +#: includes/admin/class-wc-subscriptions-admin.php:351 +#: templates/admin/html-variation-price.php:64 msgid "Subscription length" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:224 +#: includes/admin/class-wc-subscriptions-admin.php:232 msgid "" -"Automatically expire the subscription after this length of time. This " -"length is in addition to any free trial or amount of time provided before a " +"Automatically expire the subscription after this length of time. This length " +"is in addition to any free trial or amount of time provided before a " "synchronised first renewal date." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:233 -#: templates/admin/html-variation-price.php:20 #. translators: %s is a currency symbol / code +#: includes/admin/class-wc-subscriptions-admin.php:241 +#: templates/admin/html-variation-price.php:18 msgid "Sign-up fee (%s)" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:235 +#: includes/admin/class-wc-subscriptions-admin.php:242 +#: templates/admin/deprecated/html-variation-price.php:31 +#: templates/admin/deprecated/html-variation-price.php:86 +#: templates/admin/html-variation-price.php:19 +#: templates/admin/html-variation-price.php:45 +msgctxt "example price" +msgid "e.g. 9.90" +msgstr "" + +#: includes/admin/class-wc-subscriptions-admin.php:243 msgid "" "Optionally include an amount to be charged at the outset of the " "subscription. The sign-up fee will be charged immediately, even if the " "product has a free trial or the payment dates are synced." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:246 -#: templates/admin/html-variation-price.php:25 +#: includes/admin/class-wc-subscriptions-admin.php:254 +#: templates/admin/html-variation-price.php:23 msgid "Free trial" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:249 +#: includes/admin/class-wc-subscriptions-admin.php:257 #: templates/admin/deprecated/html-variation-price.php:115 msgid "Subscription Trial Period" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:281 +#: includes/admin/class-wc-subscriptions-admin.php:289 msgid "One time shipping" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:282 +#: includes/admin/class-wc-subscriptions-admin.php:290 msgid "" "Shipping for subscription products is normally charged on the initial order " "and all renewal orders. Enable this to only charge shipping once on the " @@ -90,53 +114,53 @@ msgid "" "not have a free trial or a synced renewal date." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:337 +#: includes/admin/class-wc-subscriptions-admin.php:347 msgid "Subscription pricing" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:338 +#: includes/admin/class-wc-subscriptions-admin.php:348 msgid "Subscription sign-up fee" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:339 +#: includes/admin/class-wc-subscriptions-admin.php:349 msgid "Subscription billing interval" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:342 +#: includes/admin/class-wc-subscriptions-admin.php:352 msgid "Free trial length" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:343 +#: includes/admin/class-wc-subscriptions-admin.php:353 msgid "Free trial period" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:661 +#: includes/admin/class-wc-subscriptions-admin.php:674 msgid "" "Unable to change subscription status to \"%s\". Please assign a customer to " "the subscription to activate it." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:703 +#: includes/admin/class-wc-subscriptions-admin.php:716 msgid "" "Trashing this order will also trash the subscriptions purchased with the " "order." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:716 +#: includes/admin/class-wc-subscriptions-admin.php:729 msgid "Enter the new period, either day, week, month or year:" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:717 +#: includes/admin/class-wc-subscriptions-admin.php:730 msgid "Enter a new length (e.g. 5):" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:718 +#: includes/admin/class-wc-subscriptions-admin.php:731 msgid "" "Enter a new interval as a single number (e.g. to charge every 2nd month, " "enter 2):" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:723 +#: includes/admin/class-wc-subscriptions-admin.php:736 msgid "" "You are about to trash one or more orders which contain a subscription.\n" "\n" @@ -144,7 +168,7 @@ msgid "" "orders." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:736 +#: includes/admin/class-wc-subscriptions-admin.php:749 msgid "" "WARNING: Bad things are about to happen!\n" "\n" @@ -156,74 +180,96 @@ msgid "" "gateway." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:737 +#: includes/admin/class-wc-subscriptions-admin.php:750 msgid "" "You are deleting a subscription item. You will also need to manually cancel " "and trash the subscription on the Manage Subscriptions screen." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:744 +#: includes/admin/class-wc-subscriptions-admin.php:757 msgid "" "Warning: Deleting a user will also delete the user's subscriptions. The " "user's orders will remain but be reassigned to the 'Guest' user.\n" "\n" -"Do you want to continue to delete this user and any associated " -"subscriptions?" +"Do you want to continue to delete this user and any associated subscriptions?" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:807 +#. translators: placeholders are for HTML tags. They are 1$: "

    ", 2$: +#. "

    ", 3$: "

    ", 4$: "", 5$: "", 6$: "", 7$: "", 8$: +#. "

    " +#: includes/admin/class-wc-subscriptions-admin.php:775 +msgctxt "" +"used in admin pointer script params in javascript as type pointer content" +msgid "" +"%1$sChoose Subscription%2$s%3$sThe WooCommerce Subscriptions extension adds " +"two new subscription product types - %4$sSimple subscription%5$s and " +"%6$sVariable subscription%7$s.%8$s" +msgstr "" + +#. translators: placeholders are for HTML tags. They are 1$: "

    ", 2$: +#. "

    ", 3$: "

    ", 4$: "

    " +#: includes/admin/class-wc-subscriptions-admin.php:777 +msgctxt "" +"used in admin pointer script params in javascript as price pointer content" +msgid "" +"%1$sSet a Price%2$s%3$sSubscription prices are a little different to other " +"product prices. For a subscription, you can set a billing period, length, " +"sign-up fee and free trial.%4$s" +msgstr "" + +#: includes/admin/class-wc-subscriptions-admin.php:820 msgid "Active subscriber?" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:850 +#: includes/admin/class-wc-subscriptions-admin.php:863 msgid "Manage Subscriptions" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:854 -#: woocommerce-subscriptions.php:214 +#: includes/admin/class-wc-subscriptions-admin.php:867 +#: woocommerce-subscriptions.php:233 msgid "Search Subscriptions" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:874 -#: includes/admin/class-wc-subscriptions-admin.php:970 +#: includes/admin/class-wc-subscriptions-admin.php:887 +#: includes/admin/class-wc-subscriptions-admin.php:983 #: includes/admin/class-wcs-admin-reports.php:55 #: includes/admin/reports/class-wcs-report-subscription-events-by-date.php:654 #: includes/class-wcs-query.php:95 includes/class-wcs-query.php:115 -#: includes/class-wcs-query.php:117 woocommerce-subscriptions.php:205 -#: woocommerce-subscriptions.php:218 +#: includes/class-wcs-query.php:117 templates/admin/status.php:9 +#: woocommerce-subscriptions.php:224 woocommerce-subscriptions.php:237 msgid "Subscriptions" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1010 +#: includes/admin/class-wc-subscriptions-admin.php:1023 msgid "Button Text" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1017 +#: includes/admin/class-wc-subscriptions-admin.php:1030 msgid "Add to Cart Button Text" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1018 +#: includes/admin/class-wc-subscriptions-admin.php:1031 msgid "" "A product displays a button with the text \"Add to Cart\". By default, a " "subscription changes this to \"Sign Up Now\". You can customise the button " "text for subscriptions here." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1022 -#: includes/admin/class-wc-subscriptions-admin.php:1033 -#: includes/class-wc-product-subscription-variation.php:75 -#: includes/class-wc-product-subscription.php:122 -#: includes/class-wc-product-variable-subscription.php:108 -#: includes/class-wc-subscriptions-product.php:127 -#: woocommerce-subscriptions.php:461 +#: includes/admin/class-wc-subscriptions-admin.php:1035 +#: includes/admin/class-wc-subscriptions-admin.php:1046 +#: includes/class-wc-product-subscription-variation.php:98 +#: includes/class-wc-product-subscription.php:72 +#: includes/class-wc-product-variable-subscription.php:63 +#: includes/class-wc-subscriptions-product.php:96 +#: woocommerce-subscriptions.php:480 msgid "Sign Up Now" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1028 +#: includes/admin/class-wc-subscriptions-admin.php:1041 msgid "Place Order Button Text" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1029 +#: includes/admin/class-wc-subscriptions-admin.php:1042 msgid "" "Use this field to customise the text displayed on the checkout button when " "an order contains a subscription. Normally the checkout submission button " @@ -231,12 +277,12 @@ msgid "" "changed to \"Sign Up Now\"." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1041 +#: includes/admin/class-wc-subscriptions-admin.php:1054 msgid "Roles" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1044 #. translators: placeholders are tags +#: includes/admin/class-wc-subscriptions-admin.php:1057 msgid "" "Choose the default roles to assign to active and inactive subscribers. For " "record keeping purposes, a user account must be created for subscribers. " @@ -244,59 +290,74 @@ msgid "" "allocated these roles to prevent locking out administrators." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1049 +#: includes/admin/class-wc-subscriptions-admin.php:1062 msgid "Subscriber Default Role" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1050 +#: includes/admin/class-wc-subscriptions-admin.php:1063 msgid "" "When a subscription is activated, either manually or after a successful " "purchase, new users will be assigned this role." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1061 +#: includes/admin/class-wc-subscriptions-admin.php:1074 msgid "Inactive Subscriber Role" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1062 +#: includes/admin/class-wc-subscriptions-admin.php:1075 msgid "" -"If a subscriber's subscription is manually cancelled or expires, she will " -"be assigned this role." -msgstr "" - -#: includes/admin/class-wc-subscriptions-admin.php:1082 -msgid "Manual Renewal Payments" -msgstr "" - -#: includes/admin/class-wc-subscriptions-admin.php:1083 -msgid "Accept Manual Renewals" +"If a subscriber's subscription is manually cancelled or expires, she will be " +"assigned this role." msgstr "" #: includes/admin/class-wc-subscriptions-admin.php:1088 +msgctxt "option section heading" +msgid "Renewals" +msgstr "" + +#: includes/admin/class-wc-subscriptions-admin.php:1095 +msgid "Manual Renewal Payments" +msgstr "" + +#: includes/admin/class-wc-subscriptions-admin.php:1096 +msgid "Accept Manual Renewals" +msgstr "" + #. translators: placeholders are opening and closing link tags +#: includes/admin/class-wc-subscriptions-admin.php:1101 msgid "" "With manual renewals, a customer's subscription is put on-hold until they " "login and pay to renew it. %sLearn more%s." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1094 +#: includes/admin/class-wc-subscriptions-admin.php:1107 msgid "Turn off Automatic Payments" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1099 #. translators: placeholders are opening and closing link tags +#: includes/admin/class-wc-subscriptions-admin.php:1112 msgid "" -"If you don't want new subscription purchases to automatically charge " -"renewal payments, you can turn off automatic payments. Existing automatic " -"subscriptions will continue to charge customers automatically. %sLearn " -"more%s." +"If you don't want new subscription purchases to automatically charge renewal " +"payments, you can turn off automatic payments. Existing automatic " +"subscriptions will continue to charge customers automatically. %sLearn more" +"%s." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1114 +#: includes/admin/class-wc-subscriptions-admin.php:1120 +msgctxt "options section heading" +msgid "Miscellaneous" +msgstr "" + +#: includes/admin/class-wc-subscriptions-admin.php:1127 msgid "Customer Suspensions" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1121 +#: includes/admin/class-wc-subscriptions-admin.php:1128 +msgctxt "there's a number immediately in front of this text" +msgid "suspensions per billing period." +msgstr "" + +#: includes/admin/class-wc-subscriptions-admin.php:1134 msgid "" "Set a maximum number of times a customer can suspend their account for each " "billing period. For example, for a value of 3 and a subscription billed " @@ -306,124 +367,198 @@ msgid "" "this to 0 to turn off the customer suspension feature completely." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1125 +#: includes/admin/class-wc-subscriptions-admin.php:1138 msgid "Mixed Checkout" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1126 +#: includes/admin/class-wc-subscriptions-admin.php:1139 msgid "Allow subscriptions and products to be purchased simultaneously." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1130 -msgid "Allow subscriptions and products to be purchased in a single transaction." +#: includes/admin/class-wc-subscriptions-admin.php:1143 +msgid "" +"Allow subscriptions and products to be purchased in a single transaction." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1134 +#: includes/admin/class-wc-subscriptions-admin.php:1147 #: includes/upgrades/templates/wcs-about-2-0.php:108 msgid "Drip Downloadable Content" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1135 +#: includes/admin/class-wc-subscriptions-admin.php:1148 msgid "Enable dripping for downloadable content on subscription products." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1139 +#: includes/admin/class-wc-subscriptions-admin.php:1152 msgid "" "Enabling this grants access to new downloadable files added to a product " "only after the next renewal is processed.%sBy default, access to new " -"downloadable files added to a product is granted immediately to any " -"customer that has an active subscription with that product." +"downloadable files added to a product is granted immediately to any customer " +"that has an active subscription with that product." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1175 #. translators: $1-$2: opening and closing tags, $3-$4: opening and #. closing tags +#: includes/admin/class-wc-subscriptions-admin.php:1188 msgid "" "%1$sWooCommerce Subscriptions Installed%2$s – %3$sYou're ready to " "start selling subscriptions!%4$s" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1180 +#: includes/admin/class-wc-subscriptions-admin.php:1193 msgid "Add a Subscription Product" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1181 +#: includes/admin/class-wc-subscriptions-admin.php:1194 #: includes/upgrades/templates/wcs-about-2-0.php:35 #: includes/upgrades/templates/wcs-about.php:34 -#: woocommerce-subscriptions.php:944 +#: tmp/old/wordpress/wp-admin/includes/ms.php:1087 +#: tmp/old/wordpress/wp-admin/menu.php:248 +#: tmp/old/wordpress/wp-admin/network/menu.php:53 +#: tmp/old/wordpress/wp-admin/options.php:21 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:88 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:218 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:631 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:60 +#: tmp/old/wordpress/wp-includes/admin-bar.php:479 +#: tmp/wordpress/wp-admin/includes/ms.php:1087 +#: tmp/wordpress/wp-admin/menu.php:248 +#: tmp/wordpress/wp-admin/network/menu.php:53 +#: tmp/wordpress/wp-admin/options.php:21 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:88 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:218 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:631 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:60 +#: tmp/wordpress/wp-includes/admin-bar.php:479 +#: woocommerce-subscriptions.php:991 msgid "Settings" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1267 #. translators: placeholder is a number +#: includes/admin/class-wc-subscriptions-admin.php:1280 msgid "We can't find a subscription with ID #%d. Perhaps it was deleted?" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1300 -#: includes/admin/class-wc-subscriptions-admin.php:1305 #. translators: placeholders are opening link tag, ID of sub, and closing link #. tag +#: includes/admin/class-wc-subscriptions-admin.php:1313 +#: includes/admin/class-wc-subscriptions-admin.php:1318 msgid "Showing orders for %sSubscription %s%s" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1329 #. translators: number of 1$: days, 2$: weeks, 3$: months, 4$: years +#: includes/admin/class-wc-subscriptions-admin.php:1342 msgid "The trial period can not exceed: %1s, %2s, %3s or %4s." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1334 #. translators: placeholder is a time period (e.g. "4 weeks") +#: includes/admin/class-wc-subscriptions-admin.php:1347 msgid "The trial period can not exceed %s." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1390 -#: includes/admin/class-wc-subscriptions-admin.php:1443 +#: includes/admin/class-wc-subscriptions-admin.php:1373 +msgctxt "in [subscriptions] shortcode" +msgid "No subscriptions found." +msgstr "" + +#. translators: order number +#: includes/admin/class-wc-subscriptions-admin.php:1382 +msgctxt "in [subscriptions] shortcode" +msgid "Subscription %s" +msgstr "" + +#: includes/admin/class-wc-subscriptions-admin.php:1399 +#: includes/admin/class-wc-subscriptions-admin.php:1427 +msgctxt "label that indicates whether debugging is turned on for the plugin" +msgid "WCS_DEBUG" +msgstr "" + +#: includes/admin/class-wc-subscriptions-admin.php:1400 +#: includes/admin/class-wc-subscriptions-admin.php:1428 +#: includes/admin/class-wc-subscriptions-admin.php:1481 +#: tmp/old/wordpress/wp-admin/includes/class-wp-links-list-table.php:258 +#: tmp/old/wordpress/wp-signup.php:178 +#: tmp/wordpress/wp-admin/includes/class-wp-links-list-table.php:258 +#: tmp/wordpress/wp-signup.php:178 msgid "Yes" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1390 +#: includes/admin/class-wc-subscriptions-admin.php:1400 +#: includes/admin/class-wc-subscriptions-admin.php:1428 +#: tmp/old/wordpress/wp-admin/includes/class-wp-links-list-table.php:260 +#: tmp/old/wordpress/wp-signup.php:182 +#: tmp/wordpress/wp-admin/includes/class-wp-links-list-table.php:260 +#: tmp/wordpress/wp-signup.php:182 msgid "No" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1426 +#: includes/admin/class-wc-subscriptions-admin.php:1405 +#: includes/admin/class-wc-subscriptions-admin.php:1433 +msgctxt "Live or Staging, Label on WooCommerce -> System Status page" +msgid "Subscriptions Mode" +msgstr "" + +#: includes/admin/class-wc-subscriptions-admin.php:1406 +#: includes/admin/class-wc-subscriptions-admin.php:1434 +msgctxt "refers to staging site" +msgid "Staging" +msgstr "" + +#: includes/admin/class-wc-subscriptions-admin.php:1406 +#: includes/admin/class-wc-subscriptions-admin.php:1434 +msgctxt "refers to live site" +msgid "Live" +msgstr "" + +#: includes/admin/class-wc-subscriptions-admin.php:1464 msgid "Automatic Recurring Payments" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1443 +#: includes/admin/class-wc-subscriptions-admin.php:1481 msgid "" "Supports automatic renewal payments with the WooCommerce Subscriptions " "extension." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1495 #. translators: $1-2: opening and closing tags of a link that takes to Woo #. marketplace / Stripe product page +#: includes/admin/class-wc-subscriptions-admin.php:1533 msgid "" "No payment gateways capable of processing automatic subscription payments " "are enabled. If you would like to process automatic payments, we recommend " "the %1$sfree Stripe extension%2$s." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1500 +#: includes/admin/class-wc-subscriptions-admin.php:1538 msgid "Recurring Payments" msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1508 #. translators: placeholders are opening and closing link tags +#: includes/admin/class-wc-subscriptions-admin.php:1546 msgid "" "Payment gateways which don't support automatic recurring payments can be " "used to process %smanual subscription renewal payments%s." msgstr "" -#: includes/admin/class-wc-subscriptions-admin.php:1515 #. translators: $1-$2: opening and closing tags. Link to documents->payment #. gateways, 3$-4$: opening and closing tags. Link to WooCommerce extensions #. shop page +#: includes/admin/class-wc-subscriptions-admin.php:1553 msgid "" "Find new gateways that %1$ssupport automatic subscription payments%2$s in " "the official %3$sWooCommerce Marketplace%4$s." msgstr "" +#: includes/admin/class-wcs-admin-meta-boxes.php:56 +msgctxt "meta box title" +msgid "Subscription Data" +msgstr "" + +#: includes/admin/class-wcs-admin-meta-boxes.php:58 +msgctxt "meta box title" +msgid "Billing Schedule" +msgstr "" + #: includes/admin/class-wcs-admin-meta-boxes.php:62 #: includes/admin/class-wcs-admin-meta-boxes.php:66 #: templates/myaccount/related-orders.php:15 @@ -491,38 +626,73 @@ msgstr "" msgid "Create pending renewal order requested by admin action." msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:193 +#: includes/admin/class-wcs-admin-post-types.php:200 msgid "Search for a product…" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:366 +#: includes/admin/class-wcs-admin-post-types.php:244 +msgctxt "an action on a subscription" +msgid "Activate" +msgstr "" + +#: includes/admin/class-wcs-admin-post-types.php:245 +msgctxt "an action on a subscription" +msgid "Put on-hold" +msgstr "" + +#: includes/admin/class-wcs-admin-post-types.php:246 +#: includes/admin/class-wcs-admin-post-types.php:459 +#: includes/class-wc-subscriptions-manager.php:1771 +#: includes/wcs-user-functions.php:288 +#: templates/myaccount/related-orders.php:67 +msgctxt "an action on a subscription" +msgid "Cancel" +msgstr "" + +#: includes/admin/class-wcs-admin-post-types.php:321 +msgctxt "Used in order note. Reason why status changed." +msgid "Subscription status changed by bulk edit:" +msgstr "" + #. translators: placeholder is the number of subscriptions updated +#: includes/admin/class-wcs-admin-post-types.php:377 msgid "%s subscription status changed." msgid_plural "%s subscription statuses changed." msgstr[0] "" msgstr[1] "" -#: includes/admin/class-wcs-admin-post-types.php:373 #. translators: 1$: is the number of subscriptions not updated, 2$: is the #. error message +#: includes/admin/class-wcs-admin-post-types.php:384 msgid "%1$s subscription could not be updated: %2$s" msgid_plural "%1$s subscriptions could not be updated: %2$s" msgstr[0] "" msgstr[1] "" -#: includes/admin/class-wcs-admin-post-types.php:397 +#: includes/admin/class-wcs-admin-post-types.php:408 #: includes/admin/meta-boxes/views/html-related-orders-table.php:20 +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:118 #: templates/myaccount/my-subscriptions.php:26 #: templates/myaccount/my-subscriptions.php:40 #: templates/myaccount/related-orders.php:24 -#: templates/myaccount/related-orders.php:44 +#: templates/myaccount/related-orders.php:45 #: templates/myaccount/related-subscriptions.php:21 #: templates/myaccount/related-subscriptions.php:35 #: templates/myaccount/view-subscription.php:32 +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:76 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1773 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1626 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:234 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:194 +#: tmp/wordpress/wp-admin/edit-form-comment.php:76 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1773 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1626 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:234 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:194 msgid "Status" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:398 +#: includes/admin/class-wcs-admin-post-types.php:409 #: includes/admin/meta-boxes/class-wcs-meta-box-related-orders.php:61 #: templates/emails/cancelled-subscription.php:26 #: templates/emails/expired-subscription.php:26 @@ -530,153 +700,284 @@ msgstr "" #: templates/emails/subscription-info.php:18 #: templates/myaccount/my-subscriptions.php:25 #: templates/myaccount/related-subscriptions.php:20 -#: woocommerce-subscriptions.php:206 +#: woocommerce-subscriptions.php:225 msgid "Subscription" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:399 +#: includes/admin/class-wcs-admin-post-types.php:410 msgid "Items" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:400 +#: includes/admin/class-wcs-admin-post-types.php:411 msgid "Total" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:401 +#: includes/admin/class-wcs-admin-post-types.php:412 msgid "Start Date" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:402 +#: includes/admin/class-wcs-admin-post-types.php:413 msgid "Trial End" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:403 +#: includes/admin/class-wcs-admin-post-types.php:414 msgid "Next Payment" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:404 -msgid "Last Payment" +#: includes/admin/class-wcs-admin-post-types.php:415 +msgid "Last Order Date" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:405 +#: includes/admin/class-wcs-admin-post-types.php:416 msgid "End Date" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:446 +#: includes/admin/class-wcs-admin-post-types.php:417 +msgctxt "number of orders linked to a subscription" +msgid "Orders" +msgstr "" + +#: includes/admin/class-wcs-admin-post-types.php:457 #: includes/wcs-user-functions.php:272 msgid "Reactivate" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:447 +#: includes/admin/class-wcs-admin-post-types.php:458 #: includes/wcs-user-functions.php:267 msgid "Suspend" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:449 -#: includes/admin/class-wcs-admin-post-types.php:464 +#: includes/admin/class-wcs-admin-post-types.php:460 +#: includes/admin/class-wcs-admin-post-types.php:475 msgid "Trash" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:450 -#: includes/admin/class-wcs-admin-post-types.php:468 +#: includes/admin/class-wcs-admin-post-types.php:461 +#: includes/admin/class-wcs-admin-post-types.php:479 +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:162 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:306 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:578 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:145 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:150 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:676 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:734 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:405 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1264 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:639 +#: tmp/old/wordpress/wp-admin/includes/media.php:1499 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:248 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:338 +#: tmp/old/wordpress/wp-includes/media-template.php:438 +#: tmp/old/wordpress/wp-includes/media-template.php:541 +#: tmp/old/wordpress/wp-includes/media.php:3443 +#: tmp/wordpress/wp-admin/edit-form-comment.php:162 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:306 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:578 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:145 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:150 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:676 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:734 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:405 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1264 +#: tmp/wordpress/wp-admin/includes/dashboard.php:639 +#: tmp/wordpress/wp-admin/includes/media.php:1499 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:248 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:338 +#: tmp/wordpress/wp-includes/media-template.php:438 +#: tmp/wordpress/wp-includes/media-template.php:541 +#: tmp/wordpress/wp-includes/media.php:3443 msgid "Delete Permanently" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:462 -#: includes/class-wc-subscriptions-product.php:797 +#: includes/admin/class-wcs-admin-post-types.php:473 +#: includes/class-wc-subscriptions-product.php:717 msgid "Restore this item from the Trash" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:462 -#: includes/class-wc-subscriptions-product.php:798 +#: includes/admin/class-wcs-admin-post-types.php:473 +#: includes/class-wc-subscriptions-product.php:718 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:300 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:574 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:144 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:715 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:397 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1247 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:300 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:574 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:144 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:715 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:397 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1247 msgid "Restore" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:464 +#: includes/admin/class-wcs-admin-post-types.php:475 msgid "Move this item to the Trash" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:468 +#: includes/admin/class-wcs-admin-post-types.php:479 msgid "Delete this item permanently" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:474 +#: includes/admin/class-wcs-admin-post-types.php:485 msgid "Cancel Now" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:507 +#: includes/admin/class-wcs-admin-post-types.php:513 +msgctxt "meaning billing address" +msgid "Billing:" +msgstr "" + #. translators: placeholder is customer's billing email +#. translators: 1: Comment author URL +#: includes/admin/class-wcs-admin-post-types.php:518 +#: tmp/old/wordpress/wp-includes/pluggable.php:1458 +#: tmp/old/wordpress/wp-includes/pluggable.php:1619 +#: tmp/old/wordpress/wp-includes/pluggable.php:1760 +#: tmp/wordpress/wp-includes/pluggable.php:1458 +#: tmp/wordpress/wp-includes/pluggable.php:1619 +#: tmp/wordpress/wp-includes/pluggable.php:1760 msgid "Email: %s" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:512 #. translators: placeholder is customer's billing phone number +#: includes/admin/class-wcs-admin-post-types.php:523 msgid "Tel: %s" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:544 +#. translators: $1: is opening link, $2: is subscription order number, $3: is +#. closing link tag, $4: is user's name +#: includes/admin/class-wcs-admin-post-types.php:551 +msgctxt "Subscription title on admin table. (e.g.: #211 for John Doe)" +msgid "%1$s#%2$s%3$s for %4$s" +msgstr "" + +#: includes/admin/class-wcs-admin-post-types.php:555 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:616 +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:523 +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:1324 +#: tmp/old/wordpress/wp-admin/includes/update.php:687 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:616 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:523 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:1324 +#: tmp/wordpress/wp-admin/includes/update.php:687 msgid "Show more details" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:587 +#: includes/admin/class-wcs-admin-post-types.php:598 msgid "%d item" msgid_plural "%d items" msgstr[0] "" msgstr[1] "" -#: includes/admin/class-wcs-admin-post-types.php:631 -#: templates/myaccount/my-subscriptions.php:48 #. translators: placeholder is the display name of a payment gateway a #. subscription was paid by +#: includes/admin/class-wcs-admin-post-types.php:642 +#: templates/myaccount/my-subscriptions.php:48 msgid "Via %s" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:642 +#: includes/admin/class-wcs-admin-post-types.php:656 msgid "Y/m/d g:i:s A" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:645 +#: includes/admin/class-wcs-admin-post-types.php:659 msgid "" "This date should be treated as an estimate only. The payment gateway for " "this subscription controls when payments are processed." msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:919 -#: includes/admin/class-wcs-admin-post-types.php:922 -#: includes/admin/class-wcs-admin-post-types.php:925 +#: includes/admin/class-wcs-admin-post-types.php:932 +#: includes/admin/class-wcs-admin-post-types.php:935 +#: includes/admin/class-wcs-admin-post-types.php:938 msgid "Subscription updated." msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:920 +#: includes/admin/class-wcs-admin-post-types.php:933 +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:453 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:138 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:152 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:138 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:152 msgid "Custom field updated." msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:921 +#: includes/admin/class-wcs-admin-post-types.php:934 +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:454 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:139 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:153 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:139 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:153 msgid "Custom field deleted." msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:926 +#. translators: placeholder is previous post title +#: includes/admin/class-wcs-admin-post-types.php:937 +msgctxt "used in post updated messages" +msgid "Subscription restored to revision from %s" +msgstr "" + +#: includes/admin/class-wcs-admin-post-types.php:939 msgid "Subscription saved." msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:927 +#: includes/admin/class-wcs-admin-post-types.php:940 msgid "Subscription submitted." msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:929 #. translators: php date string +#: includes/admin/class-wcs-admin-post-types.php:942 msgid "Subscription scheduled for: %1$s." msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:930 +#: includes/admin/class-wcs-admin-post-types.php:942 +msgctxt "used in \"Subscription scheduled for \"" +msgid "M j, Y @ G:i" +msgstr "" + +#: includes/admin/class-wcs-admin-post-types.php:943 msgid "Subscription draft updated." msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:968 +#: includes/admin/class-wcs-admin-post-types.php:979 msgid "Any Payment Method" msgstr "" -#: includes/admin/class-wcs-admin-post-types.php:969 +#: includes/admin/class-wcs-admin-post-types.php:980 +#: tmp/old/wordpress/wp-admin/edit-tag-form.php:161 +#: tmp/old/wordpress/wp-admin/edit-tags.php:408 +#: tmp/old/wordpress/wp-admin/includes/media.php:966 +#: tmp/old/wordpress/wp-admin/includes/media.php:1079 +#: tmp/old/wordpress/wp-admin/includes/media.php:2596 +#: tmp/old/wordpress/wp-admin/includes/media.php:2612 +#: tmp/old/wordpress/wp-includes/deprecated.php:688 +#: tmp/old/wordpress/wp-includes/media-template.php:626 +#: tmp/old/wordpress/wp-includes/media-template.php:653 +#: tmp/old/wordpress/wp-includes/media-template.php:731 +#: tmp/old/wordpress/wp-includes/media-template.php:857 +#: tmp/old/wordpress/wp-includes/media-template.php:872 +#: tmp/old/wordpress/wp-includes/media-template.php:923 +#: tmp/old/wordpress/wp-includes/media-template.php:985 +#: tmp/old/wordpress/wp-includes/media-template.php:1083 +#: tmp/old/wordpress/wp-includes/media-template.php:1172 +#: tmp/old/wordpress/wp-includes/script-loader.php:360 +#: tmp/wordpress/wp-admin/edit-tag-form.php:161 +#: tmp/wordpress/wp-admin/edit-tags.php:408 +#: tmp/wordpress/wp-admin/includes/media.php:966 +#: tmp/wordpress/wp-admin/includes/media.php:1079 +#: tmp/wordpress/wp-admin/includes/media.php:2596 +#: tmp/wordpress/wp-admin/includes/media.php:2612 +#: tmp/wordpress/wp-includes/deprecated.php:688 +#: tmp/wordpress/wp-includes/media-template.php:626 +#: tmp/wordpress/wp-includes/media-template.php:653 +#: tmp/wordpress/wp-includes/media-template.php:731 +#: tmp/wordpress/wp-includes/media-template.php:857 +#: tmp/wordpress/wp-includes/media-template.php:872 +#: tmp/wordpress/wp-includes/media-template.php:923 +#: tmp/wordpress/wp-includes/media-template.php:985 +#: tmp/wordpress/wp-includes/media-template.php:1083 +#: tmp/wordpress/wp-includes/media-template.php:1172 +#: tmp/wordpress/wp-includes/script-loader.php:360 msgid "None" msgstr "" @@ -705,10 +1006,36 @@ msgid "Failed Payment Retries" msgstr "" #: includes/admin/class-wcs-admin-reports.php:132 -#: includes/admin/reports/class-wcs-report-cache-manager.php:257 +#: includes/admin/reports/class-wcs-report-cache-manager.php:271 msgid "WooCommerce" msgstr "" +#: includes/admin/meta-boxes/class-wcs-meta-box-related-orders.php:82 +msgctxt "relation to order" +msgid "Resubscribed Subscription" +msgstr "" + +#: includes/admin/meta-boxes/class-wcs-meta-box-related-orders.php:90 +msgctxt "relation to order" +msgid "Initial Subscription" +msgstr "" + +#: includes/admin/meta-boxes/class-wcs-meta-box-related-orders.php:99 +msgctxt "relation to order" +msgid "Parent Order" +msgstr "" + +#: includes/admin/meta-boxes/class-wcs-meta-box-related-orders.php:109 +msgctxt "relation to order" +msgid "Renewal Order" +msgstr "" + +#. translators: placeholder is the ID of the subscription +#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:48 +msgctxt "edit subscription header" +msgid "Subscription #%s details" +msgstr "" + #: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:54 msgid "Customer:" msgstr "" @@ -717,69 +1044,99 @@ msgstr "" msgid "View other subscriptions" msgstr "" -#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:76 +#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:79 msgid "Search for a customer…" msgstr "" -#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:80 +#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:87 msgid "Subscription status:" msgstr "" -#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:98 +#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:105 msgid "Billing Details" msgstr "" -#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:104 -#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:106 -#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:172 -#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:174 +#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:111 +#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:113 +#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:179 +#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:181 msgid "Address" msgstr "" -#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:106 +#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:113 msgid "No billing address set." msgstr "" -#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:122 +#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:129 #: includes/class-wcs-change-payment-method-admin.php:38 #: includes/class-wcs-change-payment-method-admin.php:51 msgid "Payment Method" msgstr "" -#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:161 +#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:133 +#: includes/class-wcs-change-payment-method-admin.php:52 +msgctxt "" +"The gateway ID displayed on the Edit Subscriptions screen when editing " +"payment method." +msgid "Gateway ID: [%s]" +msgstr "" + +#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:168 msgid "Shipping Details" msgstr "" -#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:174 +#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:181 msgid "No shipping address set." msgstr "" -#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:192 -#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:219 +#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:199 +#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:226 msgid "Customer Note:" msgstr "" -#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:220 +#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:227 msgid "Customer's notes about the order" msgstr "" -#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:278 #. translators: placeholder is error message from the payment gateway or #. subscriptions when updating the status +#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:295 msgid "Error updating some information: %s" msgstr "" -#: includes/admin/meta-boxes/views/html-related-orders-row.php:29 +#: includes/admin/meta-boxes/views/html-related-orders-row.php:19 +#: includes/class-wc-subscriptions-renewal-order.php:145 +#: templates/myaccount/my-subscriptions.php:37 +#: templates/myaccount/related-orders.php:39 +#: templates/myaccount/related-subscriptions.php:32 +msgctxt "hash before order number" +msgid "#%s" +msgstr "" + +#. translators: php date format +#: includes/admin/meta-boxes/views/html-related-orders-row.php:30 +#: includes/admin/meta-boxes/views/html-retries-table.php:44 +msgctxt "post date" +msgid "Y/m/d g:i:s A" +msgstr "" + +#: includes/admin/meta-boxes/views/html-related-orders-row.php:33 #: includes/admin/meta-boxes/views/html-retries-table.php:47 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:441 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:978 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:441 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:978 msgid "Unpublished" msgstr "" #: includes/admin/meta-boxes/views/html-related-orders-table.php:17 -#: templates/myaccount/related-orders.php:36 +#: templates/myaccount/related-orders.php:37 msgid "Order Number" msgstr "" #: includes/admin/meta-boxes/views/html-related-orders-table.php:18 +#: tmp/old/wordpress/wp-admin/includes/class-wp-links-list-table.php:131 +#: tmp/wordpress/wp-admin/includes/class-wp-links-list-table.php:131 msgid "Relationship" msgstr "" @@ -788,10 +1145,25 @@ msgstr "" #: includes/admin/reports/class-wcs-report-subscription-payment-retry.php:173 #: includes/admin/reports/class-wcs-report-upcoming-recurring-revenue.php:197 #: templates/myaccount/related-orders.php:23 -#: templates/myaccount/related-orders.php:41 +#: templates/myaccount/related-orders.php:42 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1773 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:577 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1414 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1773 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:577 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1414 msgid "Date" msgstr "" +#: includes/admin/meta-boxes/views/html-related-orders-table.php:21 +#: templates/myaccount/my-subscriptions.php:28 +#: templates/myaccount/related-orders.php:25 +#: templates/myaccount/related-subscriptions.php:23 +#: templates/myaccount/view-subscription.php:96 +msgctxt "table heading" +msgid "Total" +msgstr "" + #: includes/admin/meta-boxes/views/html-retries-table.php:17 msgid "Retry Date" msgstr "" @@ -823,12 +1195,32 @@ msgstr "" #: includes/admin/meta-boxes/views/html-retries-table.php:28 msgid "" -"The status applied to the subscription for the time between when the " -"renewal payment failed or last retry occurred and when this retry was " -"processed." +"The status applied to the subscription for the time between when the renewal " +"payment failed or last retry occurred and when this retry was processed." msgstr "" #: includes/admin/meta-boxes/views/html-retries-table.php:31 +#: tmp/old/wordpress/wp-admin/comment.php:158 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:170 +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:320 +#: tmp/old/wordpress/wp-admin/includes/template.php:416 +#: tmp/old/wordpress/wp-admin/network/site-users.php:322 +#: tmp/old/wordpress/wp-admin/network/user-new.php:113 +#: tmp/old/wordpress/wp-admin/user-edit.php:429 +#: tmp/old/wordpress/wp-admin/user-new.php:318 +#: tmp/old/wordpress/wp-admin/user-new.php:409 +#: tmp/old/wordpress/wp-includes/comment-template.php:2198 +#: tmp/old/wordpress/wp-login.php:726 tmp/wordpress/wp-admin/comment.php:158 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:170 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:320 +#: tmp/wordpress/wp-admin/includes/template.php:416 +#: tmp/wordpress/wp-admin/network/site-users.php:322 +#: tmp/wordpress/wp-admin/network/user-new.php:113 +#: tmp/wordpress/wp-admin/user-edit.php:429 +#: tmp/wordpress/wp-admin/user-new.php:318 +#: tmp/wordpress/wp-admin/user-new.php:409 +#: tmp/wordpress/wp-includes/comment-template.php:2198 +#: tmp/wordpress/wp-login.php:726 msgid "Email" msgstr "" @@ -848,15 +1240,15 @@ msgstr "" msgid "Billing Period" msgstr "" -#: includes/admin/meta-boxes/views/html-subscription-schedule.php:60 +#: includes/admin/meta-boxes/views/html-subscription-schedule.php:61 msgid "Timezone:" msgstr "" -#: includes/admin/meta-boxes/views/html-subscription-schedule.php:60 +#: includes/admin/meta-boxes/views/html-subscription-schedule.php:61 msgid "Error: unable to find timezone of your browser." msgstr "" -#: includes/admin/reports/class-wcs-report-cache-manager.php:260 +#: includes/admin/reports/class-wcs-report-cache-manager.php:274 msgid "" "Please note: data for this report is cached. The data displayed may be out " "of date by up to 24 hours. The cache is updated each morning at 4am in your " @@ -875,6 +1267,21 @@ msgid_plural "%s renewals subscription renewals this month" msgstr[0] "" msgstr[1] "" +#: includes/admin/reports/class-wcs-report-retention-rate.php:156 +msgctxt "X axis label on retention rate graph" +msgid "Number of days after sign-up" +msgstr "" + +#: includes/admin/reports/class-wcs-report-retention-rate.php:159 +msgctxt "X axis label on retention rate graph" +msgid "Number of weeks after sign-up" +msgstr "" + +#: includes/admin/reports/class-wcs-report-retention-rate.php:162 +msgctxt "X axis label on retention rate graph" +msgid "Number of months after sign-up" +msgstr "" + #: includes/admin/reports/class-wcs-report-retention-rate.php:226 msgid "Unended Subscription Count" msgstr "" @@ -1069,8 +1476,8 @@ msgstr "" #: includes/admin/reports/class-wcs-report-subscription-events-by-date.php:414 msgid "" -"The number of subscriptions upgraded, downgraded or cross-graded during " -"this period." +"The number of subscriptions upgraded, downgraded or cross-graded during this " +"period." msgstr "" #: includes/admin/reports/class-wcs-report-subscription-events-by-date.php:420 @@ -1118,6 +1525,10 @@ msgstr "" #: includes/admin/reports/class-wcs-report-subscription-events-by-date.php:472 #: includes/admin/reports/class-wcs-report-subscription-payment-retry.php:137 +#: tmp/old/wordpress/wp-admin/includes/template.php:725 +#: tmp/old/wordpress/wp-includes/media.php:2182 +#: tmp/wordpress/wp-admin/includes/template.php:725 +#: tmp/wordpress/wp-includes/media.php:2182 msgid "Year" msgstr "" @@ -1199,8 +1610,7 @@ msgstr "" #: includes/admin/reports/class-wcs-report-subscription-payment-retry.php:103 msgid "" -"The number of renewal orders which had a failed payment use the retry " -"system." +"The number of renewal orders which had a failed payment use the retry system." msgstr "" #: includes/admin/reports/class-wcs-report-subscription-payment-retry.php:108 @@ -1279,65 +1689,76 @@ msgstr "" msgid "Renewals amount" msgstr "" -#: includes/api/class-wc-rest-subscriptions-controller.php:163 +#: includes/api/class-wc-rest-subscriptions-controller.php:109 +msgid "Customer ID is invalid." +msgstr "" + +#: includes/api/class-wc-rest-subscriptions-controller.php:216 +#: includes/api/legacy/class-wc-rest-subscriptions-controller.php:171 msgid "Invalid subscription id." msgstr "" -#: includes/api/class-wc-rest-subscriptions-controller.php:232 -msgid "Cannot create subscription: %s." +#: includes/api/class-wc-rest-subscriptions-controller.php:287 +#: includes/api/legacy/class-wc-api-subscriptions.php:307 +#: includes/api/legacy/class-wc-rest-subscriptions-controller.php:303 +msgid "" +"Gateway does not support admin changing the payment method on a Subscription." msgstr "" -#: includes/api/class-wc-rest-subscriptions-controller.php:275 +#. translators: 1$: gateway id, 2$: error message +#: includes/api/class-wc-rest-subscriptions-controller.php:318 +#: includes/api/legacy/class-wc-rest-subscriptions-controller.php:333 +msgid "" +"Subscription payment method could not be set to %1$s with error message: %2$s" +msgstr "" + +#: includes/api/class-wc-rest-subscriptions-controller.php:383 +#: includes/api/class-wc-rest-subscriptions-controller.php:525 +#: includes/api/legacy/class-wc-rest-subscriptions-controller.php:284 msgid "Updating subscription dates errored with message: %s" msgstr "" -#: includes/api/class-wc-rest-subscriptions-controller.php:294 -#: includes/api/legacy/class-wc-api-subscriptions.php:304 -msgid "" -"Gateway does not support admin changing the payment method on a " -"Subscription." -msgstr "" - -#: includes/api/class-wc-rest-subscriptions-controller.php:327 -#. translators: 1$: gateway id, 2$: error message -msgid "" -"Subscription payment method could not be set to %1$s with error message: " -"%2$s" -msgstr "" - -#: includes/api/class-wc-rest-subscriptions-controller.php:341 +#: includes/api/class-wc-rest-subscriptions-controller.php:408 +#: includes/api/legacy/class-wc-rest-subscriptions-controller.php:347 msgid "The number of billing periods between subscription renewals." msgstr "" -#: includes/api/class-wc-rest-subscriptions-controller.php:346 +#: includes/api/class-wc-rest-subscriptions-controller.php:413 +#: includes/api/legacy/class-wc-rest-subscriptions-controller.php:352 msgid "Billing period for the subscription." msgstr "" -#: includes/api/class-wc-rest-subscriptions-controller.php:352 +#: includes/api/class-wc-rest-subscriptions-controller.php:419 +#: includes/api/legacy/class-wc-rest-subscriptions-controller.php:358 msgid "Subscription payment details." msgstr "" -#: includes/api/class-wc-rest-subscriptions-controller.php:357 +#: includes/api/class-wc-rest-subscriptions-controller.php:424 +#: includes/api/legacy/class-wc-rest-subscriptions-controller.php:363 msgid "Payment gateway ID." msgstr "" -#: includes/api/class-wc-rest-subscriptions-controller.php:364 +#: includes/api/class-wc-rest-subscriptions-controller.php:431 +#: includes/api/legacy/class-wc-rest-subscriptions-controller.php:370 msgid "The subscription's start date." msgstr "" -#: includes/api/class-wc-rest-subscriptions-controller.php:369 +#: includes/api/class-wc-rest-subscriptions-controller.php:436 +#: includes/api/legacy/class-wc-rest-subscriptions-controller.php:375 msgid "The subscription's trial date" msgstr "" -#: includes/api/class-wc-rest-subscriptions-controller.php:374 +#: includes/api/class-wc-rest-subscriptions-controller.php:441 +#: includes/api/legacy/class-wc-rest-subscriptions-controller.php:380 msgid "The subscription's next payment date." msgstr "" -#: includes/api/class-wc-rest-subscriptions-controller.php:379 +#: includes/api/class-wc-rest-subscriptions-controller.php:446 +#: includes/api/legacy/class-wc-rest-subscriptions-controller.php:385 msgid "The subscription's end date." msgstr "" -#: includes/api/legacy/class-wc-api-subscriptions.php:102 wcs-functions.php:170 +#: includes/api/legacy/class-wc-api-subscriptions.php:102 wcs-functions.php:172 msgid "Invalid subscription status given." msgstr "" @@ -1349,132 +1770,178 @@ msgstr "" msgid "You do not have permission to create subscriptions" msgstr "" -#: includes/api/legacy/class-wc-api-subscriptions.php:239 +#: includes/api/legacy/class-wc-api-subscriptions.php:240 msgid "The requested subscription cannot be edited." msgstr "" -#: includes/api/legacy/class-wc-api-subscriptions.php:342 +#. translators: placeholder is error message +#: includes/api/legacy/class-wc-api-subscriptions.php:268 +msgctxt "API error message when editing the order failed" +msgid "Edit subscription failed with error: %s" +msgstr "" + #. translators: 1$: gateway id, 2$: error message +#: includes/api/legacy/class-wc-api-subscriptions.php:345 msgid "" "Subscription payment method could not be set to %1$s and has been set to " "manual with error message: %2$s" msgstr "" -#: includes/api/legacy/class-wc-api-subscriptions.php:377 wcs-functions.php:144 +#: includes/api/legacy/class-wc-api-subscriptions.php:380 wcs-functions.php:146 msgid "" -"Invalid subscription billing interval given. Must be an integer greater " -"than 0." +"Invalid subscription billing interval given. Must be an integer greater than " +"0." msgstr "" -#: includes/api/legacy/class-wc-api-subscriptions.php:389 wcs-functions.php:139 +#: includes/api/legacy/class-wc-api-subscriptions.php:391 wcs-functions.php:141 msgid "Invalid subscription billing period given." msgstr "" -#: includes/class-wc-subscription.php:305 -msgid "Unable to change subscription status to \"%s\"." +#: includes/api/legacy/class-wc-api-subscriptions.php:608 +msgctxt "API response confirming order note deleted from a subscription" +msgid "Permanently deleted subscription note" msgstr "" -#: includes/class-wc-subscription.php:401 -#. translators: $1 note why the status changes (if any), $2: old status, $3: -#. new status -msgid "%1$s Status changed from %2$s to %3$s." +#: includes/api/legacy/class-wc-rest-subscriptions-controller.php:240 +msgid "Cannot create subscription: %s." msgstr "" #: includes/class-wc-subscription.php:415 +msgid "Unable to change subscription status to \"%s\"." +msgstr "" + +#: includes/class-wc-subscription.php:516 msgid "Unable to change subscription status to \"%s\". Exception: %s" msgstr "" -#: includes/class-wc-subscription.php:703 -#: includes/class-wc-subscriptions-manager.php:2212 -#: includes/wcs-formatting-functions.php:228 +#. translators: 1: old subscription status 2: new subscription status +#: includes/class-wc-subscription.php:538 +msgid "Status changed from %1$s to %2$s." +msgstr "" + +#. translators: %s: new order status +#: includes/class-wc-subscription.php:550 +msgid "Status set to %s." +msgstr "" + #. translators: placeholder is human time diff (e.g. "3 weeks") +#: includes/class-wc-subscription.php:1144 +#: includes/class-wc-subscriptions-manager.php:2221 +#: includes/wcs-formatting-functions.php:228 msgid "In %s" msgstr "" -#: includes/class-wc-subscription.php:706 -#: includes/wcs-formatting-functions.php:231 #. translators: placeholder is human time diff (e.g. "3 weeks") +#. translators: %s: Time since the last update +#: includes/class-wc-subscription.php:1147 +#: includes/wcs-formatting-functions.php:231 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:449 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:559 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:988 +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:575 +#: tmp/old/wordpress/wp-admin/includes/revision.php:209 +#: tmp/old/wordpress/wp-admin/includes/revision.php:251 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:619 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:449 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:559 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:988 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:575 +#: tmp/wordpress/wp-admin/includes/revision.php:209 +#: tmp/wordpress/wp-admin/includes/revision.php:251 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:619 msgid "%s ago" msgstr "" -#: includes/class-wc-subscription.php:713 +#: includes/class-wc-subscription.php:1154 msgid "Not yet ended" msgstr "" -#: includes/class-wc-subscription.php:716 +#: includes/class-wc-subscription.php:1157 msgid "Not cancelled" msgstr "" -#: includes/class-wc-subscription.php:812 +#: includes/class-wc-subscription.php:1162 +msgctxt "original denotes there is no date to display" +msgid "-" +msgstr "" + +#: includes/class-wc-subscription.php:1272 msgid "The start date of a subscription can not be deleted, only updated." msgstr "" -#: includes/class-wc-subscription.php:815 +#: includes/class-wc-subscription.php:1276 msgid "" -"The last payment date of a subscription can not be deleted. You must delete " -"the order." +"The %s date of a subscription can not be deleted. You must delete the order." msgstr "" -#: includes/class-wc-subscription.php:1226 +#: includes/class-wc-subscription.php:1659 msgid "Sign-up complete." msgstr "" -#: includes/class-wc-subscription.php:1228 +#: includes/class-wc-subscription.php:1661 msgid "Payment received." msgstr "" -#: includes/class-wc-subscription.php:1259 +#: includes/class-wc-subscription.php:1692 msgid "Payment failed." msgstr "" -#: includes/class-wc-subscription.php:1263 +#: includes/class-wc-subscription.php:1696 msgid "Subscription Cancelled: maximum number of failed payments reached." msgstr "" -#: includes/class-wc-subscription.php:1458 -#: includes/class-wcs-change-payment-method-admin.php:155 +#: includes/class-wc-subscription.php:1897 +#: includes/class-wcs-change-payment-method-admin.php:156 msgid "Manual Renewal" msgstr "" -#: includes/class-wc-subscription.php:1523 +#: includes/class-wc-subscription.php:1974 msgid "Payment method meta must be an array." msgstr "" -#: includes/class-wc-subscription.php:1746 +#: includes/class-wc-subscription.php:2201 msgid "Invalid format. First parameter needs to be an array." msgstr "" -#: includes/class-wc-subscription.php:1750 +#: includes/class-wc-subscription.php:2205 msgid "Invalid data. First parameter was empty when passed to update_dates()." msgstr "" -#: includes/class-wc-subscription.php:1758 +#: includes/class-wc-subscription.php:2212 msgid "" "Invalid data. First parameter has a date that is not in the registered date " "types." msgstr "" -#: includes/class-wc-subscription.php:1810 +#. translators: placeholder is date type (e.g. "end", "next_payment"...) +#: includes/class-wc-subscription.php:2239 +msgctxt "appears in an error message if date is wrong format" +msgid "Invalid %s date. The date must be of the format: \"Y-m-d H:i:s\"." +msgstr "" + +#: includes/class-wc-subscription.php:2276 msgid "The %s date must occur after the cancellation date." msgstr "" -#: includes/class-wc-subscription.php:1815 +#: includes/class-wc-subscription.php:2281 msgid "The %s date must occur after the last payment date." msgstr "" -#: includes/class-wc-subscription.php:1819 +#: includes/class-wc-subscription.php:2285 msgid "The %s date must occur after the next payment date." msgstr "" -#: includes/class-wc-subscription.php:1824 +#: includes/class-wc-subscription.php:2290 msgid "The %s date must occur after the trial end date." msgstr "" -#: includes/class-wc-subscription.php:1828 +#: includes/class-wc-subscription.php:2294 msgid "The %s date must occur after the start date." msgstr "" -#: includes/class-wc-subscription.php:1856 includes/wcs-order-functions.php:269 +#: includes/class-wc-subscription.php:2323 +#: includes/class-wc-subscriptions-checkout.php:315 +#: includes/wcs-order-functions.php:279 msgid "Backordered" msgstr "" @@ -1488,243 +1955,320 @@ msgid "" "shipping address for future purchases will be updated." msgstr "" -#: includes/class-wc-subscriptions-addresses.php:83 #. translators: $1: address type (Shipping Address / Billing Address), $2: #. opening tag, $3: closing tag +#: includes/class-wc-subscriptions-addresses.php:83 msgid "Update the %1$s used for %2$sall%3$s of my active subscriptions" msgstr "" -#: includes/class-wc-subscriptions-cart.php:832 +#: includes/class-wc-subscriptions-cart.php:864 msgid "Please enter a valid postcode/ZIP." msgstr "" -#: includes/class-wc-subscriptions-cart.php:1003 +#: includes/class-wc-subscriptions-cart.php:1035 msgid "" "That subscription product can not be added to your cart as it already " "contains a subscription renewal." msgstr "" -#: includes/class-wc-subscriptions-cart.php:1091 +#: includes/class-wc-subscriptions-cart.php:1123 msgid "Invalid recurring shipping method." msgstr "" -#: includes/class-wc-subscriptions-cart.php:1869 +#: includes/class-wc-subscriptions-cart.php:1889 msgid "now" msgstr "" -#: includes/class-wc-subscriptions-change-payment-gateway.php:126 -#: templates/emails/plain/email-order-details.php:19 #. translators: placeholder is the subscription order number wrapped in #. tags +#: includes/class-wc-subscriptions-change-payment-gateway.php:148 +#: templates/emails/plain/email-order-details.php:19 msgid "Subscription Number: %s" msgstr "" -#: includes/class-wc-subscriptions-change-payment-gateway.php:132 #. translators: placeholder is the subscription's next payment date (either #. human readable or normal date) wrapped in tags +#: includes/class-wc-subscriptions-change-payment-gateway.php:154 msgid "Next Payment Date: %s" msgstr "" -#: includes/class-wc-subscriptions-change-payment-gateway.php:138 #. translators: placeholder is the formatted total to be paid for the #. subscription wrapped in tags +#: includes/class-wc-subscriptions-change-payment-gateway.php:160 msgid "Total: %s" msgstr "" -#: includes/class-wc-subscriptions-change-payment-gateway.php:145 #. translators: placeholder is the display name of the payment method +#: includes/class-wc-subscriptions-change-payment-gateway.php:167 msgid "Payment Method: %s" msgstr "" -#: includes/class-wc-subscriptions-change-payment-gateway.php:157 +#: includes/class-wc-subscriptions-change-payment-gateway.php:179 msgid "" -"Sorry, this subscription change payment method request is invalid and " -"cannot be processed." +"Sorry, this subscription change payment method request is invalid and cannot " +"be processed." msgstr "" -#: includes/class-wc-subscriptions-change-payment-gateway.php:189 +#: includes/class-wc-subscriptions-change-payment-gateway.php:211 msgid "There was an error with your request. Please try again." msgstr "" -#: includes/class-wc-subscriptions-change-payment-gateway.php:193 +#: includes/class-wc-subscriptions-change-payment-gateway.php:215 #: templates/myaccount/view-subscription.php:20 msgid "Invalid Subscription." msgstr "" -#: includes/class-wc-subscriptions-change-payment-gateway.php:197 +#: includes/class-wc-subscriptions-change-payment-gateway.php:219 #: includes/class-wcs-cart-resubscribe.php:78 #: includes/class-wcs-cart-resubscribe.php:129 #: includes/class-wcs-user-change-status-handler.php:103 msgid "That doesn't appear to be one of your subscriptions." msgstr "" -#: includes/class-wc-subscriptions-change-payment-gateway.php:201 +#: includes/class-wc-subscriptions-change-payment-gateway.php:223 msgid "The payment method can not be changed for that subscription." msgstr "" -#: includes/class-wc-subscriptions-change-payment-gateway.php:207 #. translators: placeholder is next payment's date +#: includes/class-wc-subscriptions-change-payment-gateway.php:229 msgid " Next payment is due %s." msgstr "" -#: includes/class-wc-subscriptions-change-payment-gateway.php:213 #. translators: placeholder is either empty or "Next payment is due..." +#: includes/class-wc-subscriptions-change-payment-gateway.php:235 msgid "Choose a new payment method.%s" msgstr "" -#: includes/class-wc-subscriptions-change-payment-gateway.php:235 +#: includes/class-wc-subscriptions-change-payment-gateway.php:264 msgid "Invalid order." msgstr "" -#: includes/class-wc-subscriptions-change-payment-gateway.php:328 +#: includes/class-wc-subscriptions-change-payment-gateway.php:288 +msgctxt "label on button, imperative" +msgid "Change Payment" +msgstr "" + +#: includes/class-wc-subscriptions-change-payment-gateway.php:366 msgid "Payment method updated." msgstr "" -#: includes/class-wc-subscriptions-checkout.php:167 -#: includes/class-wc-subscriptions-checkout.php:279 +#: includes/class-wc-subscriptions-change-payment-gateway.php:414 +msgctxt "%1$s: old payment title, %2$s: new payment title" +msgid "" +"Payment method changed from \"%1$s\" to \"%2$s\" by the subscriber from " +"their account page." +msgstr "" + +#: includes/class-wc-subscriptions-change-payment-gateway.php:539 +msgctxt "the page title of the change payment method form" +msgid "Change Payment Method" +msgstr "" + #. translators: placeholder is an internal error number +#: includes/class-wc-subscriptions-checkout.php:175 +#: includes/class-wc-subscriptions-checkout.php:346 msgid "Error %d: Unable to create subscription. Please try again." msgstr "" -#: includes/class-wc-subscriptions-checkout.php:180 #. translators: placeholder is an internal error number +#: includes/class-wc-subscriptions-checkout.php:192 msgid "Error %d: Unable to add tax to subscription. Please try again." msgstr "" -#: includes/class-wc-subscriptions-checkout.php:188 #. translators: placeholder is an internal error number +#: includes/class-wc-subscriptions-checkout.php:204 msgid "Error %d: Unable to create order. Please try again." msgstr "" -#: includes/class-wc-subscriptions-checkout.php:244 -#: includes/class-wc-subscriptions-manager.php:467 -msgid "Error: Unable to create subscription. Please try again." -msgstr "" - -#: includes/class-wc-subscriptions-coupon.php:58 +#: includes/class-wc-subscriptions-coupon.php:63 msgid "Sign Up Fee Discount" msgstr "" -#: includes/class-wc-subscriptions-coupon.php:59 +#: includes/class-wc-subscriptions-coupon.php:64 msgid "Sign Up Fee % Discount" msgstr "" -#: includes/class-wc-subscriptions-coupon.php:60 +#: includes/class-wc-subscriptions-coupon.php:65 msgid "Recurring Product Discount" msgstr "" -#: includes/class-wc-subscriptions-coupon.php:61 +#: includes/class-wc-subscriptions-coupon.php:66 msgid "Recurring Product % Discount" msgstr "" -#: includes/class-wc-subscriptions-coupon.php:249 +#: includes/class-wc-subscriptions-coupon.php:256 msgid "" "Sorry, this coupon is only valid for an initial payment and the cart does " "not require an initial payment." msgstr "" -#: includes/class-wc-subscriptions-coupon.php:255 +#: includes/class-wc-subscriptions-coupon.php:262 msgid "Sorry, this coupon is only valid for new subscriptions." msgstr "" -#: includes/class-wc-subscriptions-coupon.php:260 +#: includes/class-wc-subscriptions-coupon.php:267 msgid "Sorry, this coupon is only valid for subscription products." msgstr "" -#: includes/class-wc-subscriptions-coupon.php:266 #. translators: 1$: coupon code that is being removed +#: includes/class-wc-subscriptions-coupon.php:273 msgid "Sorry, the \"%1$s\" coupon is only valid for renewals." msgstr "" -#: includes/class-wc-subscriptions-coupon.php:271 +#: includes/class-wc-subscriptions-coupon.php:278 msgid "" "Sorry, this coupon is only valid for subscription products with a sign-up " "fee." msgstr "" +#: includes/class-wc-subscriptions-coupon.php:503 +msgid "Renewal % discount" +msgstr "" + +#: includes/class-wc-subscriptions-coupon.php:504 +msgid "Renewal product discount" +msgstr "" + +#: includes/class-wc-subscriptions-coupon.php:505 +msgid "Renewal cart discount" +msgstr "" + +#: includes/class-wc-subscriptions-manager.php:94 +#: includes/class-wc-subscriptions-manager.php:1835 +#: includes/class-wc-subscriptions-manager.php:1853 +msgctxt "used in order note as reason for why subscription status changed" +msgid "Subscription renewal payment due:" +msgstr "" + #: includes/class-wc-subscriptions-manager.php:104 msgid "" "Error: Unable to create renewal order from scheduled payment. Please try " "again." msgstr "" -#: includes/class-wc-subscriptions-manager.php:141 -#: includes/gateways/class-wc-subscriptions-payment-gateways.php:201 +#: includes/class-wc-subscriptions-manager.php:145 +#: includes/gateways/class-wc-subscriptions-payment-gateways.php:204 msgid "Subscription doesn't exist in scheduled action: %d" msgstr "" -#: includes/class-wc-subscriptions-manager.php:278 #. translators: $1: order number, $2: error message +#: includes/class-wc-subscriptions-manager.php:282 msgid "Failed to activate subscription status for order #%1$s: %2$s" msgstr "" -#: includes/class-wc-subscriptions-manager.php:306 #. translators: $1: order number, $2: error message -msgid "Failed to update subscription status after order #%1$s was put on-hold: %2$s" +#: includes/class-wc-subscriptions-manager.php:310 +msgid "" +"Failed to update subscription status after order #%1$s was put on-hold: %2$s" msgstr "" -#: includes/class-wc-subscriptions-manager.php:334 #. translators: $1: order number, $2: error message +#: includes/class-wc-subscriptions-manager.php:338 msgid "Failed to cancel subscription after order #%1$s was cancelled: %2$s" msgstr "" -#: includes/class-wc-subscriptions-manager.php:362 #. translators: $1: order number, $2: error message +#: includes/class-wc-subscriptions-manager.php:366 msgid "Failed to set subscription as expired for order #%1$s: %2$s" msgstr "" -#: includes/class-wc-subscriptions-manager.php:388 +#: includes/class-wc-subscriptions-manager.php:392 msgid "Subscription sign up failed." msgstr "" -#: includes/class-wc-subscriptions-manager.php:398 #. translators: $1: order number, $2: error message +#: includes/class-wc-subscriptions-manager.php:402 msgid "Failed to process failed payment on subscription for order #%1$s: %2$s" msgstr "" -#: includes/class-wc-subscriptions-manager.php:486 +#: includes/class-wc-subscriptions-manager.php:471 +msgid "Error: Unable to create subscription. Please try again." +msgstr "" + +#: includes/class-wc-subscriptions-manager.php:490 msgid "Error: Unable to add product to created subscription. Please try again." msgstr "" -#: includes/class-wc-subscriptions-manager.php:526 +#: includes/class-wc-subscriptions-manager.php:535 msgid "Pending subscription created." msgstr "" -#: includes/class-wc-subscriptions-manager.php:1752 +#: includes/class-wc-subscriptions-manager.php:982 wcs-functions.php:209 +msgctxt "Subscription status" +msgid "Active" +msgstr "" + +#: includes/class-wc-subscriptions-manager.php:985 wcs-functions.php:211 +msgctxt "Subscription status" +msgid "Cancelled" +msgstr "" + +#: includes/class-wc-subscriptions-manager.php:988 wcs-functions.php:213 +msgctxt "Subscription status" +msgid "Expired" +msgstr "" + +#: includes/class-wc-subscriptions-manager.php:991 wcs-functions.php:208 +msgctxt "Subscription status" +msgid "Pending" +msgstr "" + +#: includes/class-wc-subscriptions-manager.php:994 +msgctxt "Subscription status" +msgid "Failed" +msgstr "" + +#: includes/class-wc-subscriptions-manager.php:998 +msgctxt "Subscription status" +msgid "On-hold" +msgstr "" + +#. translators: 1$: month number (e.g. "01"), 2$: month abbreviation (e.g. +#. "Jan") +#: includes/class-wc-subscriptions-manager.php:1748 +msgctxt "used in a select box" +msgid "%1$s-%2$s" +msgstr "" + #. translators: all fields are full html nodes: 1$: month input, 2$: day input, #. 3$: year input, 4$: hour input, 5$: minute input. Change the order if you'd #. like +#: includes/class-wc-subscriptions-manager.php:1761 msgid "%1$s%2$s, %3$s @ %4$s : %5$s" msgstr "" -#: includes/class-wc-subscriptions-manager.php:1756 #. translators: all fields are full html nodes: 1$: month input, 2$: day input, #. 3$: year input. Change the order if you'd like +#: includes/class-wc-subscriptions-manager.php:1765 msgid "%1$s%2$s, %3$s" msgstr "" -#: includes/class-wc-subscriptions-manager.php:1761 +#: includes/class-wc-subscriptions-manager.php:1770 +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:270 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:224 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:270 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:224 msgid "Change" msgstr "" -#: includes/class-wc-subscriptions-manager.php:2094 #. translators: placeholder is subscription ID +#: includes/class-wc-subscriptions-manager.php:2103 msgid "Failed sign-up for subscription %s." msgstr "" -#: includes/class-wc-subscriptions-manager.php:2185 +#: includes/class-wc-subscriptions-manager.php:2194 msgid "Invalid security token, please reload the page and try again." msgstr "" -#: includes/class-wc-subscriptions-manager.php:2189 +#: includes/class-wc-subscriptions-manager.php:2198 msgid "Only store managers can edit payment dates." msgstr "" -#: includes/class-wc-subscriptions-manager.php:2193 +#: includes/class-wc-subscriptions-manager.php:2202 msgid "Please enter all date fields." msgstr "" -#: includes/class-wc-subscriptions-manager.php:2218 +#: includes/class-wc-subscriptions-manager.php:2227 msgid "Date Changed" msgstr "" @@ -1734,8 +2278,8 @@ msgid_plural "Your subscriptions will be activated when payment clears." msgstr[0] "" msgstr[1] "" -#: includes/class-wc-subscriptions-order.php:378 #. translators: placeholders are opening and closing link tags +#: includes/class-wc-subscriptions-order.php:378 msgid "View the status of your subscription in %syour account%s." msgid_plural "View the status of your subscriptions in %syour account%s." msgstr[0] "" @@ -1757,130 +2301,160 @@ msgstr "" msgid "Parent Order" msgstr "" -#: includes/class-wc-subscriptions-order.php:689 +#: includes/class-wc-subscriptions-order.php:673 msgid "All orders types" msgstr "" -#: includes/class-wc-subscriptions-order.php:956 +#: includes/class-wc-subscriptions-order.php:676 +msgctxt "An order type" +msgid "Original" +msgstr "" + +#: includes/class-wc-subscriptions-order.php:677 +msgctxt "An order type" +msgid "Subscription Parent" +msgstr "" + +#: includes/class-wc-subscriptions-order.php:678 +msgctxt "An order type" +msgid "Subscription Renewal" +msgstr "" + +#: includes/class-wc-subscriptions-order.php:679 +msgctxt "An order type" +msgid "Subscription Resubscribe" +msgstr "" + +#: includes/class-wc-subscriptions-order.php:680 +msgctxt "An order type" +msgid "Subscription Switch" +msgstr "" + +#: includes/class-wc-subscriptions-order.php:681 +msgctxt "An order type" +msgid "Non-subscription" +msgstr "" + #. translators: $1: opening link tag, $2: order number, $3: closing link tag +#: includes/class-wc-subscriptions-order.php:940 msgid "Subscription cancelled for refunded order %1$s#%2$s%3$s." msgstr "" -#: includes/class-wc-subscriptions-product.php:348 -#: includes/wcs-formatting-functions.php:102 -#: includes/wcs-formatting-functions.php:186 #. translators: 1$: recurring amount string, 2$: day of the week (e.g. "$10 #. every Wednesday") +#: includes/class-wc-subscriptions-product.php:311 +#: includes/wcs-formatting-functions.php:102 +#: includes/wcs-formatting-functions.php:186 msgid "%1$s every %2$s" msgstr "" -#: includes/class-wc-subscriptions-product.php:351 -#: includes/wcs-formatting-functions.php:111 #. translators: 1$: recurring amount string, 2$: period, 3$: day of the week #. (e.g. "$10 every 2nd week on Wednesday") +#: includes/class-wc-subscriptions-product.php:314 +#: includes/wcs-formatting-functions.php:111 msgid "%1$s every %2$s on %3$s" msgstr "" -#: includes/class-wc-subscriptions-product.php:358 -#: includes/wcs-formatting-functions.php:129 #. translators: placeholder is recurring amount +#: includes/class-wc-subscriptions-product.php:321 +#: includes/wcs-formatting-functions.php:129 msgid "%s on the last day of each month" msgstr "" -#: includes/class-wc-subscriptions-product.php:361 -#: includes/wcs-formatting-functions.php:132 #. translators: 1$: recurring amount, 2$: day of the month (e.g. "23rd") (e.g. #. "$5 every 23rd of each month") +#: includes/class-wc-subscriptions-product.php:324 +#: includes/wcs-formatting-functions.php:132 msgid "%1$s on the %2$s of each month" msgstr "" -#: includes/class-wc-subscriptions-product.php:366 -#: includes/wcs-formatting-functions.php:148 #. translators: 1$: recurring amount, 2$: interval (e.g. "3rd") (e.g. "$10 on #. the last day of every 3rd month") +#: includes/class-wc-subscriptions-product.php:329 +#: includes/wcs-formatting-functions.php:148 msgid "%1$s on the last day of every %2$s month" msgstr "" -#: includes/class-wc-subscriptions-product.php:369 -#: includes/wcs-formatting-functions.php:151 #. translators: 1$: on the, 2$: day of every, 3$: #. month (e.g. "$10 on the 23rd day of every 2nd month") #. translators: 1$: recurring amount, 2$: day of the month (e.g. "23rd") (e.g. #. "$5 every 23rd of each month") +#: includes/class-wc-subscriptions-product.php:332 +#: includes/wcs-formatting-functions.php:151 msgid "%1$s on the %2$s day of every %3$s month" msgstr "" -#: includes/class-wc-subscriptions-product.php:376 -#: includes/wcs-formatting-functions.php:164 #. translators: 1$: on, 2$: , 3$: each year (e.g. "$15 on #. March 15th each year") #. translators: 1$: recurring amount, 2$: month (e.g. "March"), 3$: day of the #. month (e.g. "23rd") (e.g. "$15 on March 15th every 3rd year") +#: includes/class-wc-subscriptions-product.php:339 +#: includes/wcs-formatting-functions.php:164 msgid "%1$s on %2$s %3$s each year" msgstr "" -#: includes/class-wc-subscriptions-product.php:379 -#: includes/wcs-formatting-functions.php:173 #. translators: 1$: recurring amount, 2$: month (e.g. "March"), 3$: day of the #. month (e.g. "23rd") (e.g. "$15 on March 15th every 3rd year") +#: includes/class-wc-subscriptions-product.php:342 +#: includes/wcs-formatting-functions.php:173 msgid "%1$s on %2$s %3$s every %4$s year" msgstr "" -#: includes/class-wc-subscriptions-product.php:385 -#: includes/wcs-formatting-functions.php:184 #. translators: 1$: recurring amount, 2$: subscription period (e.g. "month" or #. "3 months") (e.g. "$15 / month" or "$15 every 2nd month") +#: includes/class-wc-subscriptions-product.php:348 +#: includes/wcs-formatting-functions.php:184 msgid "%1$s / %2$s" msgid_plural " %1$s every %2$s" msgstr[0] "" msgstr[1] "" -#: includes/class-wc-subscriptions-product.php:391 #. translators: billing period (e.g. "every week") +#: includes/class-wc-subscriptions-product.php:354 msgid "every %s" msgstr "" -#: includes/class-wc-subscriptions-product.php:397 -#: includes/wcs-formatting-functions.php:194 #. translators: 1$: subscription string (e.g. "$10 up front then $5 on March #. 23rd every 3rd year"), 2$: length (e.g. "4 years") +#: includes/class-wc-subscriptions-product.php:360 +#: includes/wcs-formatting-functions.php:194 msgid "%1$s for %2$s" msgstr "" -#: includes/class-wc-subscriptions-product.php:403 #. translators: 1$: subscription string (e.g. "$15 on March 15th every 3 years #. for 6 years"), 2$: trial length (e.g.: "with 4 months free trial") +#: includes/class-wc-subscriptions-product.php:366 msgid "%1$s with %2$s free trial" msgstr "" -#: includes/class-wc-subscriptions-product.php:408 #. translators: 1$: subscription string (e.g. "$15 on March 15th every 3 years #. for 6 years with 2 months free trial"), 2$: signup fee price (e.g. "and a #. $30 sign-up fee") +#: includes/class-wc-subscriptions-product.php:371 msgid "%1$s and a %2$s sign-up fee" msgstr "" -#: includes/class-wc-subscriptions-renewal-order.php:141 #. translators: placeholder is order ID +#: includes/class-wc-subscriptions-renewal-order.php:148 msgid "Order %s created to record renewal." msgstr "" -#: includes/class-wc-subscriptions-renewal-order.php:161 +#: includes/class-wc-subscriptions-renewal-order.php:168 msgid "Subscription renewal orders cannot be cancelled." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:151 +#: includes/class-wc-subscriptions-switcher.php:170 msgid "" "You have a subscription to this product. Choosing a new subscription will " "replace your existing subscription." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:153 +#: includes/class-wc-subscriptions-switcher.php:172 msgid "Choose a new subscription." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:175 -#: includes/class-wc-subscriptions-switcher.php:893 +#: includes/class-wc-subscriptions-switcher.php:194 +#: includes/class-wc-subscriptions-switcher.php:1016 msgid "" "Your cart contained an invalid subscription switch request. It has been " "removed." @@ -1890,201 +2464,330 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: includes/class-wc-subscriptions-switcher.php:217 +#: includes/class-wc-subscriptions-switcher.php:236 msgid "" "You have already subscribed to this product and it is limited to one per " "customer. You can not purchase the product again." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:226 #. translators: 1$: is the "You have already subscribed to this product" #. notice, 2$-4$: opening/closing link tags, 3$: an order number +#: includes/class-wc-subscriptions-switcher.php:245 msgid "" "%1$s Complete payment on %2$sOrder %3$s%4$s to be able to change your " "subscription." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:305 +#: includes/class-wc-subscriptions-switcher.php:324 msgid "Switching" msgstr "" -#: includes/class-wc-subscriptions-switcher.php:308 #. translators: placeholders are opening and closing link tags +#: includes/class-wc-subscriptions-switcher.php:327 msgid "" "Allow subscribers to switch (upgrade or downgrade) between different " "subscriptions. %sLearn more%s." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:313 +#: includes/class-wc-subscriptions-switcher.php:332 msgid "Allow Switching" msgstr "" -#: includes/class-wc-subscriptions-switcher.php:314 +#: includes/class-wc-subscriptions-switcher.php:333 msgid "" "Allow subscribers to switch between subscriptions combined in a grouped " "product, different variations of a Variable subscription or don't allow " "switching." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:330 +#: includes/class-wc-subscriptions-switcher.php:340 +#: includes/class-wc-subscriptions-switcher.php:357 +#: includes/class-wc-subscriptions-switcher.php:391 +#: includes/class-wc-subscriptions-synchroniser.php:174 +msgctxt "when to allow a setting" +msgid "Never" +msgstr "" + +#: includes/class-wc-subscriptions-switcher.php:341 +msgctxt "when to allow switching" +msgid "Between Subscription Variations" +msgstr "" + +#: includes/class-wc-subscriptions-switcher.php:342 +msgctxt "when to allow switching" +msgid "Between Grouped Subscriptions" +msgstr "" + +#: includes/class-wc-subscriptions-switcher.php:343 +msgctxt "when to allow switching" +msgid "Between Both Variations & Grouped Subscriptions" +msgstr "" + +#: includes/class-wc-subscriptions-switcher.php:349 msgid "Prorate Recurring Payment" msgstr "" -#: includes/class-wc-subscriptions-switcher.php:331 +#: includes/class-wc-subscriptions-switcher.php:350 msgid "" "When switching to a subscription with a different recurring payment or " "billing period, should the price paid for the existing billing period be " "prorated when switching to the new subscription?" msgstr "" -#: includes/class-wc-subscriptions-switcher.php:348 +#: includes/class-wc-subscriptions-switcher.php:358 +msgctxt "when to prorate recurring fee when switching" +msgid "For Upgrades of Virtual Subscription Products Only" +msgstr "" + +#: includes/class-wc-subscriptions-switcher.php:359 +msgctxt "when to prorate recurring fee when switching" +msgid "For Upgrades of All Subscription Products" +msgstr "" + +#: includes/class-wc-subscriptions-switcher.php:360 +msgctxt "when to prorate recurring fee when switching" +msgid "For Upgrades & Downgrades of Virtual Subscription Products Only" +msgstr "" + +#: includes/class-wc-subscriptions-switcher.php:361 +msgctxt "when to prorate recurring fee when switching" +msgid "For Upgrades & Downgrades of All Subscription Products" +msgstr "" + +#: includes/class-wc-subscriptions-switcher.php:367 msgid "Prorate Sign up Fee" msgstr "" -#: includes/class-wc-subscriptions-switcher.php:349 +#: includes/class-wc-subscriptions-switcher.php:368 msgid "" "When switching to a subscription with a sign up fee, you can require the " "customer pay only the gap between the existing subscription's sign up fee " "and the new subscription's sign up fee (if any)." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:364 +#: includes/class-wc-subscriptions-switcher.php:375 +msgctxt "when to prorate signup fee when switching" +msgid "Never (do not charge a sign up fee)" +msgstr "" + +#: includes/class-wc-subscriptions-switcher.php:376 +msgctxt "when to prorate signup fee when switching" +msgid "Never (charge the full sign up fee)" +msgstr "" + +#: includes/class-wc-subscriptions-switcher.php:377 +msgctxt "when to prorate signup fee when switching" +msgid "Always" +msgstr "" + +#: includes/class-wc-subscriptions-switcher.php:383 msgid "Prorate Subscription Length" msgstr "" -#: includes/class-wc-subscriptions-switcher.php:365 +#: includes/class-wc-subscriptions-switcher.php:384 msgid "" "When switching to a subscription with a length, you can take into account " "the payments already completed by the customer when determining how many " "payments the subscriber needs to make for the new subscription." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:380 +#: includes/class-wc-subscriptions-switcher.php:392 +#: includes/class-wc-subscriptions-synchroniser.php:175 +msgctxt "when to prorate first payment / subscription length" +msgid "For Virtual Subscription Products Only" +msgstr "" + +#: includes/class-wc-subscriptions-switcher.php:393 +#: includes/class-wc-subscriptions-synchroniser.php:176 +msgctxt "when to prorate first payment / subscription length" +msgid "For All Subscription Products" +msgstr "" + +#: includes/class-wc-subscriptions-switcher.php:399 msgid "Switch Button Text" msgstr "" -#: includes/class-wc-subscriptions-switcher.php:381 +#: includes/class-wc-subscriptions-switcher.php:400 msgid "" "Customise the text displayed on the button next to the subscription on the " "subscriber's account page. The default is \"Switch Subscription\", but you " "may wish to change this to \"Upgrade\" or \"Change Subscription\"." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:385 -#: includes/class-wc-subscriptions-switcher.php:411 -#: includes/class-wc-subscriptions-switcher.php:2159 +#: includes/class-wc-subscriptions-switcher.php:404 +#: includes/class-wc-subscriptions-switcher.php:430 +#: includes/class-wc-subscriptions-switcher.php:2302 msgid "Upgrade or Downgrade" msgstr "" -#: includes/class-wc-subscriptions-switcher.php:759 +#: includes/class-wc-subscriptions-switcher.php:880 msgid "Switch order cancelled due to a new switch order being created #%s." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:846 +#: includes/class-wc-subscriptions-switcher.php:967 msgid "Switch Order" msgstr "" -#: includes/class-wc-subscriptions-switcher.php:861 +#: includes/class-wc-subscriptions-switcher.php:983 msgid "Switched Subscription" msgstr "" -#: includes/class-wc-subscriptions-switcher.php:960 +#: includes/class-wc-subscriptions-switcher.php:1085 msgid "You can only switch to a subscription product." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:966 +#: includes/class-wc-subscriptions-switcher.php:1091 msgid "We can not find your old subscription item." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:988 +#: includes/class-wc-subscriptions-switcher.php:1113 msgid "You can not switch to the same subscription." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:1035 +#: includes/class-wc-subscriptions-switcher.php:1160 msgid "" "You can not switch this subscription. It appears you do not own the " "subscription." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:1070 +#: includes/class-wc-subscriptions-switcher.php:1195 msgid "There was an error locating the switch details." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:1764 -#: includes/class-wc-subscriptions-switcher.php:2065 +#: includes/class-wc-subscriptions-switcher.php:1779 +msgctxt "a switch order" +msgid "Downgrade" +msgstr "" + +#: includes/class-wc-subscriptions-switcher.php:1782 +msgctxt "a switch order" +msgid "Upgrade" +msgstr "" + +#: includes/class-wc-subscriptions-switcher.php:1785 +msgctxt "a switch order" +msgid "Crossgrade" +msgstr "" + +#. translators: %1: product subtotal, %2: HTML span tag, %3: direction +#. (upgrade, downgrade, crossgrade), %4: closing HTML span tag +#: includes/class-wc-subscriptions-switcher.php:1790 +msgctxt "product subtotal string" +msgid "%1$s %2$s(%3$s)%4$s" +msgstr "" + +#: includes/class-wc-subscriptions-switcher.php:1893 +#: includes/class-wc-subscriptions-switcher.php:2208 msgid "The original subscription item being switched cannot be found." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:1766 +#: includes/class-wc-subscriptions-switcher.php:1895 msgid "The item on the switch order cannot be found." msgstr "" -#: includes/class-wc-subscriptions-switcher.php:2103 +#. translators: 1$: old item, 2$: new item when switching +#: includes/class-wc-subscriptions-switcher.php:1906 +#: includes/class-wc-subscriptions-switcher.php:2219 +msgctxt "used in order notes" +msgid "Customer switched from: %1$s to %2$s." +msgstr "" + +#: includes/class-wc-subscriptions-switcher.php:2246 msgid "Failed to update the subscription shipping method." msgstr "" +#: includes/class-wc-subscriptions-switcher.php:2443 wcs-functions.php:212 +msgctxt "Subscription status" +msgid "Switched" +msgstr "" + #: includes/class-wc-subscriptions-synchroniser.php:47 msgid "Synchronise renewals" msgstr "" #: includes/class-wc-subscriptions-synchroniser.php:48 msgid "" -"Align the payment date for all customers who purchase this subscription to " -"a specific day of the week or month." +"Align the payment date for all customers who purchase this subscription to a " +"specific day of the week or month." msgstr "" -#: includes/class-wc-subscriptions-synchroniser.php:146 +#. translators: placeholder is a year (e.g. "2016") +#: includes/class-wc-subscriptions-synchroniser.php:50 +msgctxt "used in subscription product edit screen" +msgid "" +"Align the payment date for this subscription to a specific day of the year. " +"If the date has already taken place this year, the first payment will be " +"processed in %s. Set the day to 0 to disable payment syncing for this " +"product." +msgstr "" + +#: includes/class-wc-subscriptions-synchroniser.php:151 msgid "Synchronisation" msgstr "" -#: includes/class-wc-subscriptions-synchroniser.php:155 +#. translators: placeholders are opening and closing link tags +#: includes/class-wc-subscriptions-synchroniser.php:154 +msgctxt "used in the general subscription options page" +msgid "" +"Align subscription renewal to a specific day of the week, month or year. For " +"example, the first day of the month. %sLearn more%s." +msgstr "" + +#: includes/class-wc-subscriptions-synchroniser.php:160 msgid "Align Subscription Renewal Day" msgstr "" -#: includes/class-wc-subscriptions-synchroniser.php:162 +#: includes/class-wc-subscriptions-synchroniser.php:167 msgid "Prorate First Payment" msgstr "" -#: includes/class-wc-subscriptions-synchroniser.php:163 +#: includes/class-wc-subscriptions-synchroniser.php:168 msgid "" "If a subscription is synchronised to a specific day of the week, month or " "year, charge a prorated amount for the subscription at the time of sign up." msgstr "" -#: includes/class-wc-subscriptions-synchroniser.php:234 +#: includes/class-wc-subscriptions-synchroniser.php:237 +#: templates/admin/deprecated/html-variation-synchronisation.php:36 +#: templates/admin/html-variation-synchronisation.php:34 +msgctxt "input field placeholder for day field for annual subscriptions" +msgid "Day" +msgstr "" + +#: includes/class-wc-subscriptions-synchroniser.php:239 msgid "Month for Synchronisation" msgstr "" -#: includes/class-wc-subscriptions-synchroniser.php:600 +#: includes/class-wc-subscriptions-synchroniser.php:603 msgid "Do not synchronise" msgstr "" -#: includes/class-wc-subscriptions-synchroniser.php:608 #. translators: placeholder is a day of the week +#: includes/class-wc-subscriptions-synchroniser.php:611 msgid "%s each week" msgstr "" -#: includes/class-wc-subscriptions-synchroniser.php:614 #. translators: placeholder is a number of day with language specific suffix #. applied (e.g. "1st", "3rd", "5th", etc...) +#: includes/class-wc-subscriptions-synchroniser.php:617 msgid "%s day of the month" msgstr "" -#: includes/class-wc-subscriptions-synchroniser.php:616 +#: includes/class-wc-subscriptions-synchroniser.php:619 msgid "Last day of the month" msgstr "" -#: includes/class-wc-subscriptions-synchroniser.php:664 +#: includes/class-wc-subscriptions-synchroniser.php:667 msgid "Today!" msgstr "" -#: includes/class-wc-subscriptions-synchroniser.php:671 #. translators: placeholder is a date +#: includes/class-wc-subscriptions-synchroniser.php:674 msgid "First payment prorated. Next payment: %s" msgstr "" -#: includes/class-wc-subscriptions-synchroniser.php:674 #. translators: placeholder is a date +#: includes/class-wc-subscriptions-synchroniser.php:677 msgid "First payment: %s" msgstr "" @@ -2101,27 +2804,27 @@ msgid "View and manage subscriptions" msgstr "" #: includes/class-wcs-cart-initial-payment.php:56 -#: includes/class-wcs-cart-renewal.php:129 +#: includes/class-wcs-cart-renewal.php:154 msgid "That doesn't appear to be your order." msgstr "" -#: includes/class-wcs-cart-renewal.php:157 +#: includes/class-wcs-cart-renewal.php:182 msgid "Complete checkout to renew your subscription." msgstr "" -#: includes/class-wcs-cart-renewal.php:196 #. translators: placeholder is an item name +#: includes/class-wcs-cart-renewal.php:221 msgid "" "The %s product has been deleted and can no longer be renewed. Please choose " "a new product or contact us for assistance." msgstr "" -#: includes/class-wcs-cart-renewal.php:229 #. translators: %s is subscription's number +#: includes/class-wcs-cart-renewal.php:254 msgid "Subscription #%s has not been added to the cart." msgstr "" -#: includes/class-wcs-cart-renewal.php:355 +#: includes/class-wcs-cart-renewal.php:382 msgid "" "We couldn't find the original subscription for an item in your cart. The " "item was removed." @@ -2131,7 +2834,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: includes/class-wcs-cart-renewal.php:362 +#: includes/class-wcs-cart-renewal.php:389 msgid "" "We couldn't find the original renewal order for an item in your cart. The " "item was removed." @@ -2141,10 +2844,17 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: includes/class-wcs-cart-renewal.php:626 +#: includes/class-wcs-cart-renewal.php:663 msgid "All linked subscription items have been removed from the cart." msgstr "" +#: includes/class-wcs-cart-renewal.php:692 +msgctxt "" +"Used in WooCommerce by removed item notification: \"_All linked subscription " +"items were_ removed. Undo?\" Filter for item title." +msgid "All linked subscription items were" +msgstr "" + #: includes/class-wcs-cart-resubscribe.php:70 msgid "There was an error with your request to resubscribe. Please try again." msgstr "" @@ -2164,7 +2874,7 @@ msgstr "" msgid "Complete checkout to resubscribe." msgstr "" -#: includes/class-wcs-cart-resubscribe.php:313 +#: includes/class-wcs-cart-resubscribe.php:314 msgid "Customer resubscribed in order #%s" msgstr "" @@ -2176,11 +2886,11 @@ msgstr "" msgid "Limit subscription" msgstr "" -#: includes/class-wcs-limiter.php:48 #. translators: placeholders are opening and closing link tags +#: includes/class-wcs-limiter.php:48 msgid "" -"Only allow a customer to have one subscription to this product. %sLearn " -"more%s." +"Only allow a customer to have one subscription to this product. %sLearn more" +"%s." msgstr "" #: includes/class-wcs-limiter.php:50 @@ -2195,33 +2905,86 @@ msgstr "" msgid "Limit to one of any status" msgstr "" -#: includes/class-wcs-remove-item.php:106 +#: includes/class-wcs-query.php:92 +msgctxt "hash before order number" +msgid "Subscription #%s" +msgstr "" + +#: includes/class-wcs-remove-item.php:68 +msgctxt "hash before subscription ID" +msgid "Subscription #%d does not exist." +msgstr "" + +#. translators: 1$: product name, 2$: product id +#: includes/class-wcs-remove-item.php:104 +msgctxt "used in order note" +msgid "Customer added \"%1$s\" (Product ID: #%2$d) via the My Account page." +msgstr "" + +#: includes/class-wcs-remove-item.php:107 msgid "Your request to undo your previous action was unsuccessful." msgstr "" -#: includes/class-wcs-remove-item.php:127 -#. translators: placeholders are 1$: item name, and, 2$: opening and, 3$: -#. closing link tags -msgid "You have successfully removed \"%1$s\" from your subscription. %2$sUndo?%3$s" +#. translators: 1$: product name, 2$: product id +#: includes/class-wcs-remove-item.php:125 +msgctxt "used in order note" +msgid "Customer removed \"%1$s\" (Product ID: #%2$d) via the My Account page." msgstr "" -#: includes/class-wcs-remove-item.php:156 +#. translators: placeholders are 1$: item name, and, 2$: opening and, 3$: +#. closing link tags +#: includes/class-wcs-remove-item.php:128 +msgid "" +"You have successfully removed \"%1$s\" from your subscription. %2$sUndo?%3$s" +msgstr "" + +#: includes/class-wcs-remove-item.php:162 #: includes/class-wcs-user-change-status-handler.php:99 msgid "Security error. Please contact us if you need assistance." msgstr "" -#: includes/class-wcs-remove-item.php:160 +#: includes/class-wcs-remove-item.php:166 msgid "You cannot modify a subscription that does not belong to you." msgstr "" -#: includes/class-wcs-remove-item.php:164 +#: includes/class-wcs-remove-item.php:170 msgid "You cannot remove an item that does not exist. " msgstr "" -#: includes/class-wcs-remove-item.php:168 +#: includes/class-wcs-remove-item.php:174 msgid "" -"The item was not removed because this Subscription's payment method does " -"not support removing an item." +"The item was not removed because this Subscription's payment method does not " +"support removing an item." +msgstr "" + +#: includes/class-wcs-retry-manager.php:120 +msgctxt "table heading" +msgid "Renewal Payment Retry" +msgstr "" + +#: includes/class-wcs-retry-manager.php:229 +msgctxt "used in order note as reason for why status changed" +msgid "Retry rule applied:" +msgstr "" + +#: includes/class-wcs-retry-manager.php:295 +msgctxt "used in order note as reason for why order status changed" +msgid "Subscription renewal payment retry:" +msgstr "" + +#: includes/class-wcs-retry-manager.php:299 +msgctxt "used in order note as reason for why subscription status changed" +msgid "Subscription renewal payment retry:" +msgstr "" + +#: includes/class-wcs-user-change-status-handler.php:56 +msgctxt "order note left on subscription after user action" +msgid "Subscription reactivated by the subscriber from their account page." +msgstr "" + +#: includes/class-wcs-user-change-status-handler.php:57 +msgctxt "Notice displayed to user confirming their action." +msgid "Your subscription has been reactivated." msgstr "" #: includes/class-wcs-user-change-status-handler.php:60 @@ -2230,18 +2993,39 @@ msgid "" "contact us if you need assistance." msgstr "" +#: includes/class-wcs-user-change-status-handler.php:66 +msgctxt "order note left on subscription after user action" +msgid "Subscription put on hold by the subscriber from their account page." +msgstr "" + +#: includes/class-wcs-user-change-status-handler.php:67 +msgctxt "Notice displayed to user confirming their action." +msgid "Your subscription has been put on hold." +msgstr "" + #: includes/class-wcs-user-change-status-handler.php:70 msgid "" "You can not suspend that subscription - the suspension limit has been " "reached. Please contact us if you need assistance." msgstr "" -#: includes/class-wcs-user-change-status-handler.php:95 -msgid "That subscription does not exist. Please contact us if you need assistance." +#: includes/class-wcs-user-change-status-handler.php:75 +msgctxt "order note left on subscription after user action" +msgid "Subscription cancelled by the subscriber from their account page." +msgstr "" + +#: includes/class-wcs-user-change-status-handler.php:76 +msgctxt "Notice displayed to user confirming their action." +msgid "Your subscription has been cancelled." +msgstr "" + +#: includes/class-wcs-user-change-status-handler.php:95 +msgid "" +"That subscription does not exist. Please contact us if you need assistance." msgstr "" -#: includes/class-wcs-user-change-status-handler.php:108 #. translators: placeholder is subscription's new status, translated +#: includes/class-wcs-user-change-status-handler.php:108 msgid "" "That subscription can not be changed to %s. Please contact us if you need " "assistance." @@ -2277,6 +3061,21 @@ msgstr "" msgid "Subscription Cancelled" msgstr "" +#. translators: placeholder is {blogname}, a variable that will be substituted +#. when email is sent out +#: includes/emails/class-wcs-email-cancelled-subscription.php:32 +msgctxt "default email subject for cancelled emails sent to the admin" +msgid "[%s] Subscription Cancelled" +msgstr "" + +#: includes/emails/class-wcs-email-cancelled-subscription.php:126 +#: includes/emails/class-wcs-email-customer-renewal-invoice.php:181 +#: includes/emails/class-wcs-email-expired-subscription.php:124 +#: includes/emails/class-wcs-email-on-hold-subscription.php:124 +msgctxt "an email notification" +msgid "Enable/Disable" +msgstr "" + #: includes/emails/class-wcs-email-cancelled-subscription.php:128 #: includes/emails/class-wcs-email-customer-renewal-invoice.php:183 #: includes/emails/class-wcs-email-expired-subscription.php:126 @@ -2284,13 +3083,27 @@ msgstr "" msgid "Enable this email notification" msgstr "" +#: includes/emails/class-wcs-email-cancelled-subscription.php:132 +#: includes/emails/class-wcs-email-expired-subscription.php:130 +#: includes/emails/class-wcs-email-on-hold-subscription.php:130 +msgctxt "of an email" +msgid "Recipient(s)" +msgstr "" + +#. translators: placeholder is admin email #: includes/emails/class-wcs-email-cancelled-subscription.php:135 #: includes/emails/class-wcs-email-expired-subscription.php:133 #: includes/emails/class-wcs-email-on-hold-subscription.php:133 -#. translators: placeholder is admin email msgid "" -"Enter recipients (comma separated) for this email. Defaults to " -"%s." +"Enter recipients (comma separated) for this email. Defaults to %s." +msgstr "" + +#: includes/emails/class-wcs-email-cancelled-subscription.php:140 +#: includes/emails/class-wcs-email-expired-subscription.php:138 +#: includes/emails/class-wcs-email-on-hold-subscription.php:138 +msgctxt "of an email" +msgid "Subject" msgstr "" #: includes/emails/class-wcs-email-cancelled-subscription.php:142 @@ -2301,6 +3114,15 @@ msgid "" "subject: %s." msgstr "" +#: includes/emails/class-wcs-email-cancelled-subscription.php:147 +#: includes/emails/class-wcs-email-expired-subscription.php:145 +#: includes/emails/class-wcs-email-on-hold-subscription.php:145 +msgctxt "" +"Name the setting that controls the main heading contained within the email " +"notification" +msgid "Email Heading" +msgstr "" + #: includes/emails/class-wcs-email-cancelled-subscription.php:149 #: includes/emails/class-wcs-email-expired-subscription.php:147 #: includes/emails/class-wcs-email-on-hold-subscription.php:147 @@ -2309,12 +3131,40 @@ msgid "" "Leave blank to use the default heading: %s." msgstr "" +#: includes/emails/class-wcs-email-cancelled-subscription.php:154 +#: includes/emails/class-wcs-email-expired-subscription.php:152 +#: includes/emails/class-wcs-email-on-hold-subscription.php:152 +msgctxt "text, html or multipart" +msgid "Email type" +msgstr "" + #: includes/emails/class-wcs-email-cancelled-subscription.php:156 #: includes/emails/class-wcs-email-expired-subscription.php:154 #: includes/emails/class-wcs-email-on-hold-subscription.php:154 msgid "Choose which format of email to send." msgstr "" +#: includes/emails/class-wcs-email-cancelled-subscription.php:160 +#: includes/emails/class-wcs-email-expired-subscription.php:158 +#: includes/emails/class-wcs-email-on-hold-subscription.php:158 +msgctxt "email type" +msgid "Plain text" +msgstr "" + +#: includes/emails/class-wcs-email-cancelled-subscription.php:161 +#: includes/emails/class-wcs-email-expired-subscription.php:159 +#: includes/emails/class-wcs-email-on-hold-subscription.php:159 +msgctxt "email type" +msgid "HTML" +msgstr "" + +#: includes/emails/class-wcs-email-cancelled-subscription.php:162 +#: includes/emails/class-wcs-email-expired-subscription.php:160 +#: includes/emails/class-wcs-email-on-hold-subscription.php:160 +msgctxt "email type" +msgid "Multipart" +msgstr "" + #: includes/emails/class-wcs-email-customer-completed-renewal-order.php:25 msgid "Completed Renewal Order" msgstr "" @@ -2326,6 +3176,34 @@ msgid "" "that renewal period has been shipped." msgstr "" +#: includes/emails/class-wcs-email-customer-completed-renewal-order.php:29 +msgctxt "" +"Default email heading for email to customer on completed renewal order" +msgid "Your renewal order is complete" +msgstr "" + +#. translators: $1: {blogname}, $2: {order_date}, variables that will be +#. substituted when email is sent out +#: includes/emails/class-wcs-email-customer-completed-renewal-order.php:31 +msgctxt "" +"Default email subject for email to customer on completed renewal order" +msgid "Your %1$s renewal order from %2$s is complete" +msgstr "" + +#: includes/emails/class-wcs-email-customer-completed-renewal-order.php:38 +msgctxt "Default email heading for email with downloadable files in it" +msgid "Your subscription renewal order is complete - download your files" +msgstr "" + +#. translators: $1: {blogname}, $2: {order_date}, variables will be substituted +#. when email is sent out +#: includes/emails/class-wcs-email-customer-completed-renewal-order.php:40 +msgctxt "Default email subject for email with downloadable files in it" +msgid "" +"Your %1$s subscription renewal order from %2$s is complete - download your " +"files" +msgstr "" + #: includes/emails/class-wcs-email-customer-completed-switch-order.php:26 msgid "Subscription Switch Complete" msgstr "" @@ -2350,8 +3228,8 @@ msgstr "" #: includes/emails/class-wcs-email-customer-completed-switch-order.php:39 msgid "" -"Your {blogname} subscription change from {order_date} is complete - " -"download your files" +"Your {blogname} subscription change from {order_date} is complete - download " +"your files" msgstr "" #: includes/emails/class-wcs-email-customer-payment-retry.php:27 @@ -2402,9 +3280,9 @@ msgstr "" msgid "" "Sent to a customer when the subscription is due for renewal and the renewal " "requires a manual payment, either because it uses manual renewals or the " -"automatic recurring payment failed for the initial attempt and all " -"automatic retries (if any). The email contains renewal order information " -"and payment links." +"automatic recurring payment failed for the initial attempt and all automatic " +"retries (if any). The email contains renewal order information and payment " +"links." msgstr "" #: includes/emails/class-wcs-email-customer-renewal-invoice.php:39 @@ -2420,13 +3298,21 @@ msgid "Expired Subscription" msgstr "" #: includes/emails/class-wcs-email-expired-subscription.php:28 -msgid "Expired Subscription emails are sent when a customer's subscription expires." +msgid "" +"Expired Subscription emails are sent when a customer's subscription expires." msgstr "" #: includes/emails/class-wcs-email-expired-subscription.php:30 msgid "Subscription Expired" msgstr "" +#. translators: placeholder is {blogname}, a variable that will be substituted +#. when email is sent out +#: includes/emails/class-wcs-email-expired-subscription.php:32 +msgctxt "default email subject for expired emails sent to the admin" +msgid "[%s] Subscription Expired" +msgstr "" + #: includes/emails/class-wcs-email-expired-subscription.php:59 #: includes/emails/class-wcs-email-on-hold-subscription.php:59 msgid "Subscription argument passed in is not an object." @@ -2447,7 +3333,8 @@ msgid "New subscription renewal order" msgstr "" #: includes/emails/class-wcs-email-new-renewal-order.php:26 -msgid "[{blogname}] New subscription renewal order ({order_number}) - {order_date}" +msgid "" +"[{blogname}] New subscription renewal order ({order_number}) - {order_date}" msgstr "" #: includes/emails/class-wcs-email-new-switch-order.php:22 @@ -2479,6 +3366,13 @@ msgstr "" msgid "Subscription Suspended" msgstr "" +#. translators: placeholder is {blogname}, a variable that will be substituted +#. when email is sent out +#: includes/emails/class-wcs-email-on-hold-subscription.php:32 +msgctxt "default email subject for suspended emails sent to the admin" +msgid "[%s] Subscription Suspended" +msgstr "" + #: includes/emails/class-wcs-email-payment-retry.php:26 msgid "Payment Retry" msgstr "" @@ -2512,22 +3406,38 @@ msgid "Unable to find order for PayPal billing agreement." msgstr "" #: includes/gateways/paypal/class-wcs-paypal.php:261 -msgid "An error occurred, please try again or try an alternate form of payment." +msgid "" +"An error occurred, please try again or try an alternate form of payment." +msgstr "" + +#. translators: placeholder is for blog name +#: includes/gateways/paypal/class-wcs-paypal.php:344 +#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:208 +#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:316 +#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:327 +#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:355 +#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:367 +#: includes/gateways/paypal/includes/class-wcs-paypal-standard-request.php:139 +#: includes/gateways/paypal/includes/class-wcs-paypal-standard-request.php:142 +msgctxt "" +"hash before the order number. Used as a character to remove from the actual " +"order number" +msgid "#" msgstr "" -#: includes/gateways/paypal/class-wcs-paypal.php:368 #. translators: placeholders are PayPal API error code and PayPal API error #. message +#: includes/gateways/paypal/class-wcs-paypal.php:368 msgid "PayPal API error: (%d) %s" msgstr "" -#: includes/gateways/paypal/class-wcs-paypal.php:373 #. translators: placeholder is PayPal transaction status message +#: includes/gateways/paypal/class-wcs-paypal.php:373 msgid "PayPal Transaction Held: %s" msgstr "" -#: includes/gateways/paypal/class-wcs-paypal.php:385 #. translators: placeholder is PayPal transaction status message +#: includes/gateways/paypal/class-wcs-paypal.php:385 msgid "PayPal payment declined: %s" msgstr "" @@ -2542,6 +3452,13 @@ msgid "" "This will suspend the subscription at PayPal." msgstr "" +#: includes/gateways/paypal/class-wcs-paypal.php:556 +msgctxt "" +"used in User Agent data sent to PayPal to help identify where a payment came " +"from" +msgid "WooCommerce Subscriptions PayPal" +msgstr "" + #: includes/gateways/paypal/includes/admin/class-wcs-paypal-admin.php:56 msgid "" "It is strongly recommended you do not change the Receiver Email " @@ -2549,18 +3466,18 @@ msgid "" "break existing subscriptions." msgstr "" -#: includes/gateways/paypal/includes/admin/class-wcs-paypal-admin.php:109 #. translators: placeholders are opening and closing link tags. 1$-2$: to docs #. on woocommerce, 3$-4$ to gateway settings on the site +#: includes/gateways/paypal/includes/admin/class-wcs-paypal-admin.php:109 msgid "" "PayPal is inactive for subscription transactions. Please %1$sset up the " "PayPal IPN%2$s and %3$senter your API credentials%4$s to enable PayPal for " "Subscriptions." msgstr "" -#: includes/gateways/paypal/includes/admin/class-wcs-paypal-admin.php:122 #. translators: placeholders are opening and closing strong and link tags. #. 1$-2$: strong tags, 3$-8$ link to docs on woocommerce +#: includes/gateways/paypal/includes/admin/class-wcs-paypal-admin.php:122 msgid "" "%1$sPayPal Reference Transactions are not enabled on your account%2$s, some " "subscription management features are not enabled. Please contact PayPal and " @@ -2568,24 +3485,24 @@ msgid "" "%5$sCheck PayPal Account%6$s %7$sLearn more %8$s" msgstr "" -#: includes/gateways/paypal/includes/admin/class-wcs-paypal-admin.php:140 #. translators: placeholders are opening and closing strong tags. +#: includes/gateways/paypal/includes/admin/class-wcs-paypal-admin.php:140 msgid "" "%1$sPayPal Reference Transactions are enabled on your account%2$s. All " "subscription management features are now enabled. Happy selling!" msgstr "" -#: includes/gateways/paypal/includes/admin/class-wcs-paypal-admin.php:151 #. translators: placeholders are link opening and closing tags. 1$-2$: to #. gateway settings, 3$-4$: support docs on woocommerce.com +#: includes/gateways/paypal/includes/admin/class-wcs-paypal-admin.php:151 msgid "" "There is a problem with PayPal. Your API credentials may be incorrect. " "Please update your %1$sAPI credentials%2$s. %3$sLearn more%4$s." msgstr "" -#: includes/gateways/paypal/includes/admin/class-wcs-paypal-admin.php:164 #. translators: placeholders are opening and closing link tags. 1$-2$: docs on #. woocommerce, 3$-4$: dismiss link +#: includes/gateways/paypal/includes/admin/class-wcs-paypal-admin.php:164 msgid "" "There is a problem with PayPal. Your PayPal account is issuing out-of-date " "subscription IDs. %1$sLearn more%2$s. %3$sDismiss%4$s." @@ -2594,10 +3511,10 @@ msgstr "" #: includes/gateways/paypal/includes/admin/class-wcs-paypal-admin.php:178 msgid "" "%sA fatal error has occurred when processing a recent subscription payment " -"with PayPal. Please %sopen a new ticket at WooCommerce Support%s " -"immediately to get this resolved.%sIn order to get the quickest possible " -"response please attach a %sTemporary Admin Login%s and a copy of your PHP " -"error logs to your support ticket.%sLast recorded error: %s" +"with PayPal. Please %sopen a new ticket at WooCommerce Support%s immediately " +"to get this resolved.%sIn order to get the quickest possible response please " +"attach a %sTemporary Admin Login%s and a copy of your PHP error logs to your " +"support ticket.%sLast recorded error: %s" msgstr "" #: includes/gateways/paypal/includes/admin/class-wcs-paypal-admin.php:186 @@ -2612,28 +3529,65 @@ msgstr "" msgid "PayPal Subscription ID:" msgstr "" +#. translators: placeholder is blogname +#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:71 +msgctxt "data sent to paypal" +msgid "Orders with %s" +msgstr "" + #: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:274 msgid "Total Discount" msgstr "" -#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:302 #. translators: placeholder is blogname +#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:302 msgid "%s - Order" msgstr "" -#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:513 +#. translators: 1$: new status (e.g. "Cancel"), 2$: blog name +#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:398 +msgctxt "data sent to paypal" +msgid "%1$s subscription event triggered at %2$s" +msgstr "" + +#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:518 msgid "SKU: %s" msgstr "" -#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-response-payment.php:119 #. translators: placeholder is localised datetime +#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-response-payment.php:119 msgid "expected clearing date %s" msgstr "" +#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-response.php:136 +msgctxt "used in api error message if there is no severity code from PayPal" +msgid "Error" +msgstr "" + +#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-response.php:138 +msgctxt "used in api error message if there is no long message" +msgid "Unknown error" +msgstr "" + +#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-response.php:150 +#: templates/admin/deprecated/order-shipping-html.php:14 +#: templates/admin/deprecated/order-tax-html.php:9 +msgctxt "no information about something" +msgid "N/A" +msgstr "" + #: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-ipn-handler.php:114 msgid "Billing agreement cancelled at PayPal." msgstr "" +#: includes/gateways/paypal/includes/class-wcs-paypal-standard-ipn-handler.php:255 +msgctxt "" +"when it is a payment change, and there is a subscr_signup message, this will " +"be a confirmation message that PayPal accepted it being the new payment " +"method" +msgid "IPN subscription payment method changed to PayPal." +msgstr "" + #: includes/gateways/paypal/includes/class-wcs-paypal-standard-ipn-handler.php:259 msgid "IPN subscription sign up completed." msgstr "" @@ -2647,6 +3601,19 @@ msgstr "" msgid "IPN subscription failing payment method changed." msgstr "" +#. translators: placeholder is payment status (e.g. "completed") +#: includes/gateways/paypal/includes/class-wcs-paypal-standard-ipn-handler.php:389 +#: includes/gateways/paypal/includes/class-wcs-paypal-standard-ipn-handler.php:398 +msgctxt "used in order note" +msgid "IPN subscription payment %s." +msgstr "" + +#. translators: placeholder is payment status (e.g. "completed") +#: includes/gateways/paypal/includes/class-wcs-paypal-standard-ipn-handler.php:402 +msgctxt "used in order note" +msgid "IPN subscription payment %s for reason: %s." +msgstr "" + #: includes/gateways/paypal/includes/class-wcs-paypal-standard-ipn-handler.php:428 msgid "IPN subscription suspended." msgstr "" @@ -2659,6 +3626,13 @@ msgstr "" msgid "IPN subscription payment failure." msgstr "" +#. translators: 1$: subscription ID, 2$: order ID, 3$: names of items, comma +#. separated +#: includes/gateways/paypal/includes/class-wcs-paypal-standard-request.php:74 +msgctxt "item name sent to paypal" +msgid "Subscription %1$s (Order %2$s) - %3$s" +msgstr "" + #: includes/gateways/paypal/includes/class-wcs-paypal-status-manager.php:42 msgid "Subscription cancelled with PayPal" msgstr "" @@ -2675,6 +3649,435 @@ msgstr "" msgid "PayPal API error - credentials are incorrect." msgstr "" +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:79 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1782 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:995 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1632 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:85 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:108 +#: tmp/old/wordpress/wp-includes/post.php:691 +#: tmp/old/wordpress/wp-includes/post.php:711 +#: tmp/old/wordpress/wp-includes/script-loader.php:573 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1782 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:995 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1632 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:85 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:108 +#: tmp/wordpress/wp-includes/post.php:691 +#: tmp/wordpress/wp-includes/post.php:711 +#: tmp/wordpress/wp-includes/script-loader.php:573 +msgid "Published" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:79 +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:178 +msgid "Complete" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:117 +msgid "Hook" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:119 +msgid "Arguments" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:120 +msgid "Group" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:121 +msgid "Recurrence" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:122 +msgid "Scheduled Date" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:127 +msgid "Started" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:129 +msgid "Completed" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:133 +msgid "Claim ID" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:134 +msgid "Log" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:195 +msgid "Non-repeating" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:201 +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:210 +msgid " (%s ago)" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:242 +msgid "Process the action now as if it were run as part of a queue" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:242 +msgid "Run" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:320 +msgid "" +"Maximum simulatenous batches already in progress (%s queues). No actions " +"will be processed until the current batches are complete." +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:329 +msgid "Successfully executed the action: %s" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:333 +msgid "Could not execute the action: %s" +msgstr "" + +#. translators: Time difference between two dates, in years. 1: Number of years +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:355 +#: includes/wcs-time-functions.php:57 +#: tmp/old/wordpress/wp-includes/formatting.php:3257 +#: tmp/wordpress/wp-includes/formatting.php:3257 +msgid "%s year" +msgid_plural "%s years" +msgstr[0] "" +msgstr[1] "" + +#. translators: Time difference between two dates, in months. 1: Number of +#. months +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:356 +#: includes/wcs-time-functions.php:56 +#: tmp/old/wordpress/wp-includes/formatting.php:3251 +#: tmp/wordpress/wp-includes/formatting.php:3251 +msgid "%s month" +msgid_plural "%s months" +msgstr[0] "" +msgstr[1] "" + +#. translators: Time difference between two dates, in weeks. 1: Number of weeks +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:357 +#: includes/wcs-time-functions.php:55 +#: tmp/old/wordpress/wp-includes/formatting.php:3245 +#: tmp/wordpress/wp-includes/formatting.php:3245 +msgid "%s week" +msgid_plural "%s weeks" +msgstr[0] "" +msgstr[1] "" + +#. translators: Time difference between two dates, in days. 1: Number of days +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:358 +#: includes/wcs-time-functions.php:54 +#: tmp/old/wordpress/wp-includes/formatting.php:3239 +#: tmp/wordpress/wp-includes/formatting.php:3239 +msgid "%s day" +msgid_plural "%s days" +msgstr[0] "" +msgstr[1] "" + +#. translators: Time difference between two dates, in hours. 1: Number of hours +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:359 +#: tmp/old/wordpress/wp-includes/formatting.php:3233 +#: tmp/wordpress/wp-includes/formatting.php:3233 +msgid "%s hour" +msgid_plural "%s hours" +msgstr[0] "" +msgstr[1] "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:360 +msgid "%s minute" +msgid_plural "%s minutes" +msgstr[0] "" +msgstr[1] "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:361 +msgid "%s second" +msgid_plural "%s seconds" +msgstr[0] "" +msgstr[1] "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:365 +msgid "Now!" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:452 +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:455 +msgid "Action updated." +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:456 +msgid "Action restored to revision from %s" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:457 +msgid "Action scheduled." +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:458 +msgid "Action saved." +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:459 +msgid "Action submitted." +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:460 +msgid "Action scheduled for: %1$s" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:460 +msgid "M j, Y @ G:i" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_AdminView.php:461 +msgid "Action draft updated." +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_QueueRunner.php:136 +msgid "Every minute" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpCommentLogger.php:246 +msgid "action created" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpCommentLogger.php:250 +msgid "action canceled" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpCommentLogger.php:254 +msgid "action started" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpCommentLogger.php:258 +msgid "action complete" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpCommentLogger.php:262 +msgid "action failed: %s" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpCommentLogger.php:266 +msgid "action timed out after %s seconds" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpCommentLogger.php:271 +msgid "unexpected shutdown: PHP Fatal error %s in %s on line %s" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpCommentLogger.php:276 +msgid "action reset" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore.php:23 +msgid "Error saving action: %s" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore.php:42 +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore.php:51 +msgid "Invalid schedule. Cannot save action." +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore.php:67 +msgid "Unable to save action." +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore.php:317 +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore.php:326 +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore.php:352 +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore.php:487 +msgid "Unidentified action %s" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore.php:408 +msgid "Unable to claim actions. Database error." +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore.php:438 +msgid "Unable to unlock claim %s. Database error." +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore.php:454 +msgid "Unable to unlock claim on action %s. Database error." +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore.php:465 +msgid "Unable to mark failure on action %s. Database error." +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostStatusRegistrar.php:36 +msgctxt "post" +msgid "Failed" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostStatusRegistrar.php:37 +msgid "Failed (%s)" +msgid_plural "Failed (%s)" +msgstr[0] "" +msgstr[1] "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostStatusRegistrar.php:50 +msgctxt "post" +msgid "In-Progress" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostStatusRegistrar.php:51 +msgid "In-Progress (%s)" +msgid_plural "In-Progress (%s)" +msgstr[0] "" +msgstr[1] "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostTypeRegistrar.php:19 +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostTypeRegistrar.php:30 +msgid "Scheduled Actions" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostTypeRegistrar.php:20 +msgid "Scheduled actions are hooks triggered on a cetain date and time." +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostTypeRegistrar.php:31 +msgid "Scheduled Action" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostTypeRegistrar.php:32 +msgctxt "Admin menu name" +msgid "Scheduled Actions" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostTypeRegistrar.php:33 +#: includes/payment-retry/class-wcs-retry-post-store.php:36 +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:905 +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:954 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:443 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:979 +#: tmp/old/wordpress/wp-includes/class-wp-customize-control.php:598 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:1032 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:905 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:954 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:443 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:979 +#: tmp/wordpress/wp-includes/class-wp-customize-control.php:598 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:1032 +msgid "Add" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostTypeRegistrar.php:34 +msgid "Add New Scheduled Action" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostTypeRegistrar.php:35 +#: includes/payment-retry/class-wcs-retry-post-store.php:38 +#: tmp/old/wordpress/wp-admin/comment.php:216 +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:102 +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:148 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:584 +#: tmp/old/wordpress/wp-admin/includes/class-wp-links-list-table.php:329 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:656 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:705 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:519 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:462 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:335 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:442 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:642 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:399 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1230 +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:443 +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:406 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:634 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:101 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:148 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:212 +#: tmp/old/wordpress/wp-admin/includes/post.php:1351 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/content-link.php:56 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/content-page.php:35 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/content-search.php:28 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/content-search.php:33 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/content.php:57 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/image.php:71 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-aside.php:40 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-audio.php:40 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-gallery.php:40 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-image.php:40 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-link.php:40 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-page.php:28 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-quote.php:40 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-video.php:40 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content.php:42 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/image.php:34 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/page-templates/contributors.php:35 +#: tmp/old/wordpress/wp-includes/class-walker-comment.php:244 +#: tmp/old/wordpress/wp-includes/class-walker-comment.php:350 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1055 +#: tmp/wordpress/wp-admin/comment.php:216 +#: tmp/wordpress/wp-admin/edit-form-comment.php:102 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:148 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:584 +#: tmp/wordpress/wp-admin/includes/class-wp-links-list-table.php:329 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:656 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:705 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:519 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:462 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:335 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:442 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:642 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:399 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1230 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:443 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:406 +#: tmp/wordpress/wp-admin/includes/dashboard.php:634 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:101 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:148 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:212 +#: tmp/wordpress/wp-admin/includes/post.php:1351 +#: tmp/wordpress/wp-content/themes/twentyfifteen/content-link.php:56 +#: tmp/wordpress/wp-content/themes/twentyfifteen/content-page.php:35 +#: tmp/wordpress/wp-content/themes/twentyfifteen/content-search.php:28 +#: tmp/wordpress/wp-content/themes/twentyfifteen/content-search.php:33 +#: tmp/wordpress/wp-content/themes/twentyfifteen/content.php:57 +#: tmp/wordpress/wp-content/themes/twentyfifteen/image.php:71 +#: tmp/wordpress/wp-includes/class-walker-comment.php:244 +#: tmp/wordpress/wp-includes/class-walker-comment.php:350 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1055 +msgid "Edit" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostTypeRegistrar.php:36 +msgid "Edit Scheduled Action" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostTypeRegistrar.php:37 +msgid "New Scheduled Action" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostTypeRegistrar.php:38 +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostTypeRegistrar.php:39 +msgid "View Action" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostTypeRegistrar.php:40 +msgid "Search Scheduled Actions" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostTypeRegistrar.php:41 +msgid "No actions found" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_PostTypeRegistrar.php:42 +msgid "No actions found in trash" +msgstr "" + +#: includes/libraries/action-scheduler/classes/ActionScheduler_wpPostStore_TaxonomyRegistrar.php:14 +msgid "Action Group" +msgstr "" + #: includes/payment-retry/class-wcs-retry-admin.php:46 msgid "Automatic Failed Payment Retries" msgstr "" @@ -2729,22 +4132,24 @@ msgid "" "renewal payments." msgstr "" +#: includes/payment-retry/class-wcs-retry-post-store.php:33 +msgctxt "Post type name" +msgid "Renewal Payment Retries" +msgstr "" + #: includes/payment-retry/class-wcs-retry-post-store.php:34 msgid "Renewal Payment Retry" msgstr "" -#: includes/payment-retry/class-wcs-retry-post-store.php:36 -msgid "Add" +#: includes/payment-retry/class-wcs-retry-post-store.php:35 +msgctxt "Admin menu name" +msgid "Renewal Payment Retries" msgstr "" #: includes/payment-retry/class-wcs-retry-post-store.php:37 msgid "Add New Retry" msgstr "" -#: includes/payment-retry/class-wcs-retry-post-store.php:38 -msgid "Edit" -msgstr "" - #: includes/payment-retry/class-wcs-retry-post-store.php:39 msgid "Edit Retry" msgstr "" @@ -2770,31 +4175,87 @@ msgstr "" msgid "No retries found in trash" msgstr "" -#: includes/upgrades/class-wc-subscriptions-upgrader.php:276 #. translators: placeholder is a list of version numbers (e.g. "1.3 & 1.4 & #. 1.5") +#: includes/upgrades/class-wc-subscriptions-upgrader.php:276 msgid "Database updated to version %s" msgstr "" -#: includes/upgrades/class-wc-subscriptions-upgrader.php:299 +#. translators: placeholder is number of upgraded subscriptions +#: includes/upgrades/class-wc-subscriptions-upgrader.php:287 +msgctxt "used in the subscriptions upgrader" +msgid "Marked %s subscription products as \"sold individually\"." +msgstr "" + #. translators: 1$: number of action scheduler hooks upgraded, 2$: #. "{execution_time}", will be replaced on front end with actual time +#: includes/upgrades/class-wc-subscriptions-upgrader.php:299 msgid "" "Migrated %1$s subscription related hooks to the new scheduler (in %2$s " "seconds)." msgstr "" -#: includes/upgrades/class-wc-subscriptions-upgrader.php:315 #. translators: 1$: number of subscriptions upgraded, 2$: "{execution_time}", #. will be replaced on front end with actual time it took +#: includes/upgrades/class-wc-subscriptions-upgrader.php:315 msgid "Migrated %1$s subscriptions to the new structure (in %2$s seconds)." msgstr "" -#: includes/upgrades/class-wc-subscriptions-upgrader.php:328 +#. translators: placeholder is "{time_left}", will be replaced on front end +#. with actual time +#: includes/upgrades/class-wc-subscriptions-upgrader.php:318 +#: includes/upgrades/class-wc-subscriptions-upgrader.php:368 +msgctxt "Message that gets sent to front end." +msgid "Estimated time left (minutes:seconds): %s" +msgstr "" + #. translators: 1$: error message, 2$: opening link tag, 3$: closing link tag +#: includes/upgrades/class-wc-subscriptions-upgrader.php:328 msgid "" -"Unable to upgrade subscriptions.
    Error: %1$s
    Please refresh the " -"page and try again. If problem persists, %2$scontact support%3$s." +"Unable to upgrade subscriptions.
    Error: %1$s
    Please refresh the page " +"and try again. If problem persists, %2$scontact support%3$s." +msgstr "" + +#. translators: placeholder is the number of subscriptions repaired +#: includes/upgrades/class-wc-subscriptions-upgrader.php:347 +msgctxt "Repair message that gets sent to front end." +msgid "" +"Repaired %d subscriptions with incorrect dates, line tax data or missing " +"customer notes." +msgstr "" + +#. translators: placeholder is number of subscriptions that were checked and +#. did not need repairs. There's a space at the beginning! +#: includes/upgrades/class-wc-subscriptions-upgrader.php:353 +msgctxt "Repair message that gets sent to front end." +msgid " %d other subscription was checked and did not need any repairs." +msgid_plural "" +"%d other subscriptions were checked and did not need any repairs." +msgstr[0] "" +msgstr[1] "" + +#. translators: placeholder is "{execution_time}", which will be replaced on +#. front end with actual time +#: includes/upgrades/class-wc-subscriptions-upgrader.php:357 +msgctxt "Repair message that gets sent to front end." +msgid "(in %s seconds)" +msgstr "" + +#. translators: $1: "Repaired x subs with incorrect dates...", $2: "X others +#. were checked and no repair needed", $3: "(in X seconds)". Ordering for RTL +#. languages. +#: includes/upgrades/class-wc-subscriptions-upgrader.php:360 +msgctxt "The assembled repair message that gets sent to front end." +msgid "%1$s%2$s %3$s" +msgstr "" + +#. translators: 1$: error message, 2$: opening link tag, 3$: closing link tag +#: includes/upgrades/class-wc-subscriptions-upgrader.php:379 +msgctxt "" +"Error message that gets sent to front end when upgrading Subscriptions" +msgid "" +"Unable to repair subscriptions.
    Error: %1$s
    Please refresh the page " +"and try again. If problem persists, %2$scontact support%3$s." msgstr "" #: includes/upgrades/class-wc-subscriptions-upgrader.php:583 @@ -2811,7 +4272,8 @@ msgstr "" #: includes/upgrades/templates/wcs-about-2-0.php:23 #: includes/upgrades/templates/wcs-about.php:22 -msgid "Thank you for updating to the latest version of WooCommerce Subscriptions." +msgid "" +"Thank you for updating to the latest version of WooCommerce Subscriptions." msgstr "" #: includes/upgrades/templates/wcs-about-2-0.php:24 @@ -2825,12 +4287,36 @@ msgstr "" msgid "We hope you enjoy it!" msgstr "" +#. translators: placeholder is version number +#. translators: %s: Plugin version #: includes/upgrades/templates/wcs-about-2-0.php:31 #: includes/upgrades/templates/wcs-about.php:30 -#. translators: placeholder is version number +#: tmp/old/wordpress/wp-admin/about.php:38 +#: tmp/old/wordpress/wp-admin/credits.php:25 +#: tmp/old/wordpress/wp-admin/freedoms.php:24 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3683 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3726 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:562 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:773 +#: tmp/old/wordpress/wp-admin/includes/update.php:193 +#: tmp/old/wordpress/wp-admin/includes/update.php:218 +#: tmp/wordpress/wp-admin/about.php:38 tmp/wordpress/wp-admin/credits.php:25 +#: tmp/wordpress/wp-admin/freedoms.php:24 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3683 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3726 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:562 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:773 +#: tmp/wordpress/wp-admin/includes/update.php:193 +#: tmp/wordpress/wp-admin/includes/update.php:218 msgid "Version %s" msgstr "" +#: includes/upgrades/templates/wcs-about-2-0.php:36 +#: woocommerce-subscriptions.php:992 +msgctxt "short for documents" +msgid "Docs" +msgstr "" + #: includes/upgrades/templates/wcs-about-2-0.php:42 #: includes/upgrades/templates/wcs-about.php:41 msgid "Check Out What's New" @@ -2851,8 +4337,8 @@ msgid "" "of sign-up fees and/or free trials." msgstr "" -#: includes/upgrades/templates/wcs-about-2-0.php:56 #. translators: placeholders are opening and closing link tags +#: includes/upgrades/templates/wcs-about-2-0.php:56 msgid "Learn more about the new %smultiple subscriptions%s feature." msgstr "" @@ -2869,28 +4355,26 @@ msgid "" "adding a product line item." msgstr "" -#: includes/upgrades/templates/wcs-about-2-0.php:72 #. translators: placeholders are opening and closing tags +#: includes/upgrades/templates/wcs-about-2-0.php:72 msgid "" "The new interface is also built on the existing %sEdit Order%s screen. If " -"you've ever modified an order, you already know how to modify a " -"subscription." +"you've ever modified an order, you already know how to modify a subscription." msgstr "" -#: includes/upgrades/templates/wcs-about-2-0.php:76 #. translators: placeholers are link tags: 1$-2$ new subscription page, 3$-4$: #. docs on woocommerce.com +#: includes/upgrades/templates/wcs-about-2-0.php:76 msgid "" -"%1$sAdd a subscription%2$s now or %3$slearn more%4$s about the new " -"interface." +"%1$sAdd a subscription%2$s now or %3$slearn more%4$s about the new interface." msgstr "" #: includes/upgrades/templates/wcs-about-2-0.php:87 msgid "New View Subscription Page" msgstr "" -#: includes/upgrades/templates/wcs-about-2-0.php:91 #. translators: placeholders are opening and closing tags +#: includes/upgrades/templates/wcs-about-2-0.php:91 msgid "" "Your customers can now view the full details of a subscription, including " "line items, billing and shipping address, billing schedule and renewal " @@ -2900,17 +4384,17 @@ msgstr "" #: includes/upgrades/templates/wcs-about-2-0.php:93 msgid "" "This new page is also where the customer can suspend or cancel their " -"subscription, change payment method, change shipping address or " -"upgrade/downgrade an item." +"subscription, change payment method, change shipping address or upgrade/" +"downgrade an item." msgstr "" -#: includes/upgrades/templates/wcs-about-2-0.php:97 #. translators: placeholders are opening and closing link tags +#: includes/upgrades/templates/wcs-about-2-0.php:97 msgid "Learn more about the new %sView Subscription page%s." msgstr "" -#: includes/upgrades/templates/wcs-about-2-0.php:111 #. translators: placeholders are for opening and closing link () tags +#: includes/upgrades/templates/wcs-about-2-0.php:111 msgid "" "By default, adding new files to an existing subscription product will " "automatically provide active subscribers with access to the new files. " @@ -2918,6 +4402,12 @@ msgid "" "subscribers with access to new files only after the next renewal payment." msgstr "" +#. translators: placeholders are for opening and closing link () tags +#. translators: placeholders are for opening and closing link () tags +#. translators: placeholders are opening and closing anchor tags linking to +#. documentation +#. translators: placeholders are opening and closing anchor tags linking to +#. documentation #: includes/upgrades/templates/wcs-about-2-0.php:115 #: includes/upgrades/templates/wcs-about-2-0.php:128 #: includes/upgrades/templates/wcs-about-2-0.php:141 @@ -2926,17 +4416,16 @@ msgstr "" #: includes/upgrades/templates/wcs-about.php:142 #: includes/upgrades/templates/wcs-about.php:170 #: includes/upgrades/templates/wcs-about.php:191 -#. translators: placeholders are for opening and closing link () tags -#. translators: placeholders are for opening and closing link () tags -#. translators: placeholders are opening and closing anchor tags linking to -#. documentation -#. translators: placeholders are opening and closing anchor tags linking to -#. documentation msgid "%sLearn more »%s" msgstr "" -#: includes/upgrades/templates/wcs-about-2-0.php:124 +#: includes/upgrades/templates/wcs-about-2-0.php:121 +msgctxt "h3 on the About Subscriptions page for this new feature" +msgid "Change Payment Method" +msgstr "" + #. translators: placeholders are opening and closing tags +#: includes/upgrades/templates/wcs-about-2-0.php:124 msgid "" "For a store manager to change a subscription from automatic to manual " "renewal payments (or manual to automatic) with Subscriptions v1.5, the " @@ -2949,13 +4438,13 @@ msgstr "" msgid "Change Trial and End Dates" msgstr "" -#: includes/upgrades/templates/wcs-about-2-0.php:137 #. translators: placeholders are opening and closing tags +#: includes/upgrades/templates/wcs-about-2-0.php:137 msgid "" "It was already possible to change a subscription's next payment date, but " -"some store managers wanted to provide a customer with an extended free " -"trial or add an extra month to the expiration date. Now you can change all " -"of these dates from the %sEdit Subscription%s screen." +"some store managers wanted to provide a customer with an extended free trial " +"or add an extra month to the expiration date. Now you can change all of " +"these dates from the %sEdit Subscription%s screen." msgstr "" #: includes/upgrades/templates/wcs-about-2-0.php:150 @@ -2973,8 +4462,8 @@ msgid "" "Custom Order Types API." msgstr "" -#: includes/upgrades/templates/wcs-about-2-0.php:164 #. translators: placeholders are opening and closing code tags +#: includes/upgrades/templates/wcs-about-2-0.php:164 msgid "New %sshop_subscription%s Post Type" msgstr "" @@ -2985,32 +4474,32 @@ msgid "" "database schema that is as scalable as WordPress posts and pages." msgstr "" -#: includes/upgrades/templates/wcs-about-2-0.php:169 #. translators: placeholders are opening and closing tags +#: includes/upgrades/templates/wcs-about-2-0.php:169 msgid "" "Developers can also now use all the familiar WordPress functions, like " "%sget_posts()%s, to query or modify subscription data." msgstr "" -#: includes/upgrades/templates/wcs-about-2-0.php:175 #. translators: placeholders are opening and closing tags +#: includes/upgrades/templates/wcs-about-2-0.php:175 msgid "New %sWC_Subscription%s Object" msgstr "" #: includes/upgrades/templates/wcs-about-2-0.php:177 msgid "" -"Subscriptions 2.0 introduces a new object for working with a subscription " -"at the application level. The cumbersome APIs for retrieving or modifying a " +"Subscriptions 2.0 introduces a new object for working with a subscription at " +"the application level. The cumbersome APIs for retrieving or modifying a " "subscription's data are gone!" msgstr "" -#: includes/upgrades/templates/wcs-about-2-0.php:180 #. translators: all placeholders are opening and closing tags, no need #. to order them +#: includes/upgrades/templates/wcs-about-2-0.php:180 msgid "" "Because the %sWC_Subscription%s class extends %sWC_Order%s, you can use its " -"familiar methods, like %s$subscription->update_status()%s or " -"%s$subscription->get_total()%s." +"familiar methods, like %s$subscription->update_status()%s or %s$subscription-" +">get_total()%s." msgstr "" #: includes/upgrades/templates/wcs-about-2-0.php:184 @@ -3024,13 +4513,13 @@ msgid "" "subscriptions via RESTful API endpoints." msgstr "" -#: includes/upgrades/templates/wcs-about-2-0.php:188 #. translators: all placeholders are opening and closing tags, no need #. to order them +#: includes/upgrades/templates/wcs-about-2-0.php:188 msgid "" -"Want to list all the subscriptions on a site? Get " -"%sexample.com/wc-api/v2/subscriptions/%s. Want the details of a specific " -"subscription? Get %s/wc-api/v2/subscriptions//%s." +"Want to list all the subscriptions on a site? Get %sexample.com/wc-api/v2/" +"subscriptions/%s. Want the details of a specific subscription? Get %s/wc-api/" +"v2/subscriptions//%s." msgstr "" #: includes/upgrades/templates/wcs-about-2-0.php:194 @@ -3047,6 +4536,11 @@ msgid "" "just like you (and possibly even by %syou%s)." msgstr "" +#: includes/upgrades/templates/wcs-about.php:35 +msgctxt "short for documents" +msgid "Documentation" +msgstr "" + #: includes/upgrades/templates/wcs-about.php:49 msgid "Subscription Reports" msgstr "" @@ -3072,6 +4566,11 @@ msgstr "" msgid "View Reports" msgstr "" +#: includes/upgrades/templates/wcs-about.php:55 +msgctxt "learn more link to subscription reports documentation" +msgid "Learn More" +msgstr "" + #: includes/upgrades/templates/wcs-about.php:67 msgid "Automatic Failed Payment Retry" msgstr "" @@ -3115,12 +4614,18 @@ msgstr "" msgid "Enable Automatic Retry" msgstr "" +#: includes/upgrades/templates/wcs-about.php:79 +msgctxt "learn more link to failed payment retry documentation" +msgid "Learn More" +msgstr "" + #: includes/upgrades/templates/wcs-about.php:90 msgid "New Subscription Emails" msgstr "" #: includes/upgrades/templates/wcs-about.php:91 -msgid "Subscriptions 2.1 also introduces a number of new emails to notify you when:" +msgid "" +"Subscriptions 2.1 also introduces a number of new emails to notify you when:" msgstr "" #: includes/upgrades/templates/wcs-about.php:93 @@ -3137,14 +4642,19 @@ msgstr "" #: includes/upgrades/templates/wcs-about.php:97 msgid "" -"These emails can be enabled, disabled and customised under the " -"%sWooCommerce > Settings > Emails%s administration screen." +"These emails can be enabled, disabled and customised under the %sWooCommerce " +"> Settings > Emails%s administration screen." msgstr "" #: includes/upgrades/templates/wcs-about.php:99 msgid "View Email Settings" msgstr "" +#: includes/upgrades/templates/wcs-about.php:100 +msgctxt "learn more link to subscription emails documentation" +msgid "Learn More" +msgstr "" + #: includes/upgrades/templates/wcs-about.php:108 msgid "But wait, there's more!" msgstr "" @@ -3174,11 +4684,16 @@ msgid "" "the subscription over its lifecycle." msgstr "" +#: includes/upgrades/templates/wcs-about.php:126 +msgctxt "h3 on the About Subscriptions page for this new feature" +msgid "Import/Export Subscriptions" +msgstr "" + #: includes/upgrades/templates/wcs-about.php:127 msgid "" "Import subscriptions to WooCommerce via CSV, or export your subscriptions " -"from WooCommerce to a CSV with the WooCommerce Subscriptions " -"Importer/Exporter extension." +"from WooCommerce to a CSV with the WooCommerce Subscriptions Importer/" +"Exporter extension." msgstr "" #: includes/upgrades/templates/wcs-about.php:128 @@ -3193,19 +4708,20 @@ msgid "Subscribe All the Things" msgstr "" #: includes/upgrades/templates/wcs-about.php:138 -msgid "Want your customers to be able to subscribe to non-subscription products?" +msgid "" +"Want your customers to be able to subscribe to non-subscription products?" msgstr "" #: includes/upgrades/templates/wcs-about.php:139 msgid "" "With WooCommerce Subscribe All the Things, they can! This experimental " -"extension is exploring how to convert any product, including Product " -"Bundles and Composite Products, into a subscription product. It also offers " +"extension is exploring how to convert any product, including Product Bundles " +"and Composite Products, into a subscription product. It also offers " "customers a way to subscribe to a cart of non-subscription products." msgstr "" -#: includes/upgrades/templates/wcs-about.php:157 #. translators: placeholders are opening and closing tags +#: includes/upgrades/templates/wcs-about.php:157 msgid "Customise Retry Rules" msgstr "" @@ -3215,20 +4731,20 @@ msgid "" "are completely customisable." msgstr "" -#: includes/upgrades/templates/wcs-about.php:162 #. translators: all placeholders are opening and closing tags, no need #. to order them +#: includes/upgrades/templates/wcs-about.php:162 msgid "" "With the %s'wcs_default_retry_rules'%s filter, you can define a set of " "default rules to apply to all failed payments in your store." msgstr "" -#: includes/upgrades/templates/wcs-about.php:166 #. translators: all placeholders are opening and closing tags, no need #. to order them +#: includes/upgrades/templates/wcs-about.php:166 msgid "" -"To apply a specific rule based on certain conditions, like high value " -"orders or an infrequent renewal schedule, you can use the retry specific " +"To apply a specific rule based on certain conditions, like high value orders " +"or an infrequent renewal schedule, you can use the retry specific " "%s'wcs_get_retry_rule'%s filter. This provides the ID of the renewal order " "for the failed payment, which can be used to find information about the " "products, subscription and totals to which the failed payment relates." @@ -3238,16 +4754,17 @@ msgstr "" msgid "WP REST API Endpoints" msgstr "" -#: includes/upgrades/templates/wcs-about.php:177 #. translators: $1: opening tag linking to WC API docs, $2: closing #. tag, $3: opening tag linking to WP API docs, $4: closing tag +#: includes/upgrades/templates/wcs-about.php:177 msgid "" "WooCommerce 2.6 added support for %1$sREST API%2$s endpoints built on " "WordPress core's %3$sREST API%4$s infrastructure." msgstr "" #: includes/upgrades/templates/wcs-about.php:179 -msgid "Subscriptions 2.1 adds support for subscription data to this infrastructure." +msgid "" +"Subscriptions 2.1 adds support for subscription data to this infrastructure." msgstr "" #: includes/upgrades/templates/wcs-about.php:180 @@ -3257,24 +4774,24 @@ msgid "" "WooCommerce's REST API endpoints." msgstr "" +#. translators: all placeholders are opening and closing tags, no need +#. to order them #: includes/upgrades/templates/wcs-about.php:183 -#. translators: all placeholders are opening and closing tags, no need -#. to order them msgid "" -"Want to list all the subscriptions on a site? Get " -"%s/wp-json/wc/v1/subscriptions%s." +"Want to list all the subscriptions on a site? Get %s/wp-json/wc/v1/" +"subscriptions%s." msgstr "" +#. translators: all placeholders are opening and closing tags, no need +#. to order them #: includes/upgrades/templates/wcs-about.php:187 -#. translators: all placeholders are opening and closing tags, no need -#. to order them msgid "" -"Want the details of a specific subscription? Get " -"%s/wp-json/wc/v1/subscriptions//%s." +"Want the details of a specific subscription? Get %s/wp-json/wc/v1/" +"subscriptions//%s." msgstr "" -#: includes/upgrades/templates/wcs-about.php:197 #. translators: placeholders are opening and closing code tags +#: includes/upgrades/templates/wcs-about.php:197 msgid "Honour Renewal Order Data" msgstr "" @@ -3286,20 +4803,20 @@ msgid "" "a renewal." msgstr "" -#: includes/upgrades/templates/wcs-about.php:202 #. translators: placeholders are opening and closing tags +#: includes/upgrades/templates/wcs-about.php:202 msgid "" "Subscriptions 2.1 now passes the renewal order's total, making it possible " -"to add a fee or discount to the renewal order with simple one-liners like " -"%s$order->add_fee()%s or %s$order->add_coupon()%s." +"to add a fee or discount to the renewal order with simple one-liners like %s" +"$order->add_fee()%s or %s$order->add_coupon()%s." msgstr "" -#: includes/upgrades/templates/wcs-about.php:206 #. translators: placeholders are opening and closing tags +#: includes/upgrades/templates/wcs-about.php:206 msgid "" -"Subscriptions also now uses the renewal order to setup the cart for " -"%smanual renewals%s, making it easier to add products or discounts to a " -"single renewal paid manually." +"Subscriptions also now uses the renewal order to setup the cart for %smanual " +"renewals%s, making it easier to add products or discounts to a single " +"renewal paid manually." msgstr "" #: includes/upgrades/templates/wcs-about.php:212 @@ -3324,8 +4841,8 @@ msgid "" "upgrade routine." msgstr "" -#: includes/upgrades/templates/wcs-upgrade-in-progress.php:34 #. translators: placeholder is number of seconds +#: includes/upgrades/templates/wcs-upgrade-in-progress.php:34 msgid "" "If you received a server error and reloaded the page to find this notice, " "please refresh the page in %s seconds and the upgrade routine will " @@ -3344,6 +4861,10 @@ msgid "WooCommerce Subscriptions Update" msgstr "" #: includes/upgrades/templates/wcs-upgrade.php:29 +#: tmp/old/wordpress/wp-admin/network/upgrade.php:125 +#: tmp/old/wordpress/wp-admin/upgrade.php:96 +#: tmp/wordpress/wp-admin/network/upgrade.php:125 +#: tmp/wordpress/wp-admin/upgrade.php:96 msgid "Database Update Required" msgstr "" @@ -3351,17 +4872,17 @@ msgstr "" msgid "The WooCommerce Subscriptions plugin has been updated!" msgstr "" -#: includes/upgrades/templates/wcs-upgrade.php:33 #. translators: placeholders are opening and closing tags +#: includes/upgrades/templates/wcs-upgrade.php:33 msgid "" "Before we send you on your way, we need to update your database to the " "newest version. If you do not have a recent backup of your site, %snow is " "the time to create one%s." msgstr "" -#: includes/upgrades/templates/wcs-upgrade.php:38 #. translators: 1$: number of subscriptions on site, 2$, lower estimate #. (minutes), 3$: upper estimate +#: includes/upgrades/templates/wcs-upgrade.php:38 msgid "" "The full update process for the %1$d subscriptions on your site will take " "between %2$d and %3$d minutes." @@ -3377,6 +4898,11 @@ msgid "" "your store without interuption while the update is in progress." msgstr "" +#: includes/upgrades/templates/wcs-upgrade.php:45 +msgctxt "text on submit button" +msgid "Update Database" +msgstr "" + #: includes/upgrades/templates/wcs-upgrade.php:49 msgid "Update in Progress" msgstr "" @@ -3401,6 +4927,8 @@ msgid "" msgstr "" #: includes/upgrades/templates/wcs-upgrade.php:61 +#: tmp/old/wordpress/wp-admin/upgrade.php:109 +#: tmp/wordpress/wp-admin/upgrade.php:109 msgid "Update Complete" msgstr "" @@ -3409,11 +4937,16 @@ msgid "Your database has been updated successfully!" msgstr "" #: includes/upgrades/templates/wcs-upgrade.php:63 +#: tmp/old/wordpress/wp-admin/includes/media.php:1505 +#: tmp/old/wordpress/wp-admin/upgrade.php:77 +#: tmp/old/wordpress/wp-admin/upgrade.php:111 +#: tmp/wordpress/wp-admin/includes/media.php:1505 +#: tmp/wordpress/wp-admin/upgrade.php:77 tmp/wordpress/wp-admin/upgrade.php:111 msgid "Continue" msgstr "" -#: includes/upgrades/templates/wcs-upgrade.php:66 #. translators: $1: placeholder is number of weeks, 2$: path to the file +#: includes/upgrades/templates/wcs-upgrade.php:66 msgid "" "To record the progress of the update a new log file was created. This file " "will be automatically deleted in %1$d weeks. If you would like to delete it " @@ -3425,7 +4958,8 @@ msgid "Update Error" msgstr "" #: includes/upgrades/templates/wcs-upgrade.php:72 -msgid "There was an error with the update. Please refresh the page and try again." +msgid "" +"There was an error with the update. Please refresh the page and try again." msgstr "" #: includes/wcs-cart-functions.php:76 includes/wcs-cart-functions.php:77 @@ -3438,1539 +4972,138 @@ msgid_plural "Shipping %d" msgstr[0] "" msgstr[1] "" -#: includes/wcs-cart-functions.php:225 -msgid "Free shipping coupon" -msgstr "" - -#: includes/wcs-cart-functions.php:328 -#. translators: placeholder is a date -msgid "First renewal: %s" -msgstr "" - -#: includes/wcs-deprecated-functions.php:113 -#. translators: placeholder is either subscription key or a subscription id, -#. or, failing that, empty (e.g. "145_21" or "145") -msgid "" -"Could not get subscription. Most likely the subscription key does not refer " -"to a subscription. The key was: \"%s\"." -msgstr "" - -#: includes/wcs-formatting-functions.php:85 -#. translators: 1$: initial amount, 2$: initial description (e.g. "up front"), -#. 3$: recurring amount string (e.g. "£10 / month" ) -msgid "%1$s %2$s then %3$s" -msgstr "" - -#: includes/wcs-formatting-functions.php:99 -#. translators: 1$: initial amount, 2$: initial description (e.g. "up front"), -#. 3$: recurring amount string, 4$: payment day of the week (e.g. "$15 up -#. front, then $10 every Wednesday") -msgid "%1$s %2$s then %3$s every %4$s" -msgstr "" - -#: includes/wcs-formatting-functions.php:108 -#. translators: 1$: initial amount, 2$: initial description (e.g. "up front" ), -#. 3$: recurring amount, 4$: interval (e.g. "2nd week"), 5$: day of the week -#. (e.g. "Thursday"); (e.g. "$10 up front, then $20 every 2nd week on -#. Wednesday") -msgid "%1$s %2$s then %3$s every %4%s on %5$s" -msgstr "" - -#: includes/wcs-formatting-functions.php:121 -#. translators: 1$: initial amount, 2$: initial description (e.g. "up front"), -#. 3$: recurring amount; (e.g. "$10 up front then $30 on the last day of each -#. month") -msgid "%1$s %2$s then %3$s on the last day of each month" -msgstr "" - -#: includes/wcs-formatting-functions.php:124 -#. translators: 1$: initial amount, 2$: initial description (e.g. "up front"), -#. 3$: recurring amount, 4$: day of the month (e.g. "23rd"); (e.g. "$10 up -#. front then $40 on the 23rd of each month") -msgid "%1$s %2$s then %3$s on the %4$s of each month" -msgstr "" - -#: includes/wcs-formatting-functions.php:140 -#. translators: 1$: initial amount, 2$: initial description (e.g. "up front"), -#. 3$: recurring amount, 4$: interval (e.g. "3rd") -msgid "%1$s %2$s then %3$s on the last day of every %4$s month" -msgstr "" - -#: includes/wcs-formatting-functions.php:143 -#. translators: 1$: initial amount, 2$: initial description (e.g. "up front"), -#. 3$: recurring amount, 4$: day of the month (e.g. "23rd"), 5$: interval (e.g. -#. "3rd") -msgid "%1$s %2$s then %3$s on the %4$s day of every %5$s month" -msgstr "" - -#: includes/wcs-formatting-functions.php:161 -#. translators: 1$: initial amount, 2$: intial description (e.g. "up front"), -#. 3$: recurring amount, 4$: month of year (e.g. "March"), 5$: day of the month -#. (e.g. "23rd") -msgid "%1$s %2$s then %3$s on %4$s %5$s each year" -msgstr "" - -#: includes/wcs-formatting-functions.php:170 -#. translators: 1$: initial amount, 2$: initial description (e.g. "up front"), -#. 3$: recurring amount, 4$: month (e.g. "March"), 5$: day of the month (e.g. -#. "23rd"), 6$: interval (e.g. "3rd") -msgid "%1$s %2$s then %3$s on %4$s %5$s every %6$s year" -msgstr "" - -#: includes/wcs-formatting-functions.php:180 -#. translators: 1$: initial amount, 2$: initial description (e.g. "up front"), -#. 3$: recurring amount, 4$: subscription period (e.g. "month" or "3 months") -msgid "%1$s %2$s then %3$s / %4$s" -msgid_plural "%1$s %2$s then %3$s every %4$s" -msgstr[0] "" -msgstr[1] "" - -#: includes/wcs-formatting-functions.php:201 -#. translators: 1$: subscription string (e.g. "$10 up front then $5 on March -#. 23rd every 3rd year"), 2$: trial length (e.g. "3 weeks") -msgid "%1$s after %2$s free trial" -msgstr "" - -#: includes/wcs-formatting-functions.php:204 -#. translators: 1$: trial length (e.g. "3 weeks"), 2$: subscription string -#. (e.g. "$10 up front then $5 on March 23rd every 3rd year") -msgid "%1$s free trial then %2$s" -msgstr "" - -#: includes/wcs-helper-functions.php:38 -#. translators: date placeholder for input, javascript format -msgid "YYYY-MM-DD" -msgstr "" - -#: includes/wcs-helper-functions.php:43 -#. translators: hour placeholder for time input, javascript format -msgid "HH" -msgstr "" - -#: includes/wcs-helper-functions.php:46 -#. translators: minute placeholder for time input, javascript format -msgid "MM" -msgstr "" - -#: includes/wcs-order-functions.php:303 -msgid "Subscription Renewal Order – %s" -msgstr "" - -#: includes/wcs-order-functions.php:306 -msgid "Resubscribe Order – %s" -msgstr "" - -#: includes/wcs-order-functions.php:325 -msgid "$type passed to the function was not a string." -msgstr "" - -#: includes/wcs-order-functions.php:330 -msgid "\"%s\" is not a valid new order type." -msgstr "" - -#: includes/wcs-order-functions.php:517 -msgid "Invalid data. No valid subscription / order was passed in." -msgstr "" - -#: includes/wcs-order-functions.php:521 -msgid "Invalid data. No valid item id was passed in." -msgstr "" - -#: includes/wcs-time-functions.php:54 -msgid "%s day" -msgid_plural "a %s-day" -msgstr[0] "" -msgstr[1] "" - -#: includes/wcs-time-functions.php:55 -msgid "%s week" -msgid_plural "a %s-week" -msgstr[0] "" -msgstr[1] "" - -#: includes/wcs-time-functions.php:56 -msgid "%s month" -msgid_plural "a %s-month" -msgstr[0] "" -msgstr[1] "" - -#: includes/wcs-time-functions.php:57 -msgid "%s year" -msgid_plural "a %s-year" -msgstr[0] "" -msgstr[1] "" - -#: includes/wcs-user-functions.php:279 -#: templates/single-product/add-to-cart/subscription.php:41 -#: templates/single-product/add-to-cart/variable-subscription.php:29 -msgid "Resubscribe" -msgstr "" - -#: templates/admin/deprecated/html-variation-price.php:20 -#: templates/admin/deprecated/html-variation-price.php:30 -#. translators: placeholder is a currency symbol / code -msgid "Subscription Price (%s)" -msgstr "" - -#: templates/admin/deprecated/html-variation-price.php:46 -msgid "Subscription Periods" -msgstr "" - -#: templates/admin/deprecated/html-variation-price.php:69 -msgid "Subscription Length" -msgstr "" - -#: templates/admin/deprecated/html-variation-price.php:85 -msgid "Sign-up Fee (%s)" -msgstr "" - -#: templates/admin/deprecated/html-variation-price.php:97 -#: templates/admin/deprecated/html-variation-price.php:104 -msgid "Free Trial" -msgstr "" - -#: templates/admin/deprecated/html-variation-synchronisation.php:30 -msgid "Synchronise Renewals" -msgstr "" - -#: templates/admin/deprecated/order-shipping-html.php:8 -msgid "Label" -msgstr "" - -#: templates/admin/deprecated/order-shipping-html.php:13 -msgid "Shipping Method" -msgstr "" - -#: templates/admin/deprecated/order-shipping-html.php:34 -#: templates/admin/deprecated/order-shipping-html.php:36 -msgid "Other" -msgstr "" - -#: templates/admin/deprecated/order-tax-html.php:17 -msgid "Recurring Sales Tax:" -msgstr "" - -#: templates/admin/deprecated/order-tax-html.php:21 -msgid "Shipping Tax:" -msgstr "" - -#: templates/admin/html-variation-price.php:31 -msgid "Subscription trial period:" -msgstr "" - -#: templates/admin/html-variation-price.php:49 -msgid "Billing interval:" -msgstr "" - -#: templates/admin/html-variation-price.php:56 -msgid "Billing Period:" -msgstr "" - -#: templates/cart/cart-recurring-shipping.php:19 -msgid "Recurring shipping options can be selected on checkout." -msgstr "" - -#: templates/cart/cart-recurring-shipping.php:33 -msgid "Shipping costs will be calculated once you have provided your address." -msgstr "" - -#: templates/cart/cart-recurring-shipping.php:35 -msgid "" -"There are no shipping methods available. Please double check your address, " -"or contact us if you need any help." -msgstr "" - -#: templates/checkout/form-change-payment-method.php:82 -msgid "" -"Sorry, it seems no payment gateways support changing the recurring payment " -"method. Please contact us if you require assistance or to make alternate " -"arrangements." -msgstr "" - -#: templates/checkout/recurring-totals.php:19 -msgid "Recurring Totals" -msgstr "" - -#: templates/checkout/recurring-totals.php:28 -#: templates/checkout/recurring-totals.php:29 -msgid "Subtotal" -msgstr "" - -#: templates/checkout/recurring-totals.php:111 -#: templates/checkout/recurring-totals.php:112 -msgid "Recurring Total" -msgstr "" - -#: templates/emails/admin-new-switch-order.php:24 -msgid "Switch Order Details" -msgstr "" - -#: templates/emails/admin-new-switch-order.php:30 -#: templates/emails/customer-completed-switch-order.php:28 -msgid "New Subscription Details" -msgstr "" - -#: templates/emails/admin-payment-retry.php:28 -#: templates/emails/plain/admin-payment-retry.php:21 -msgid "The renewal order is as follows:" -msgstr "" - -#: templates/emails/cancelled-subscription.php:19 -#: templates/emails/plain/cancelled-subscription.php:16 -#. translators: $1: customer's billing first name and last name -msgid "" -"A subscription belonging to %1$s has been cancelled. Their subscription's " -"details are as follows:" -msgstr "" - -#: templates/emails/cancelled-subscription.php:46 -#: templates/emails/expired-subscription.php:46 -#: templates/emails/on-hold-subscription.php:46 -msgid "-" -msgstr "" - -#: templates/emails/customer-completed-renewal-order.php:20 -#: templates/emails/plain/customer-completed-renewal-order.php:16 -#. translators: placeholder is the name of the site -msgid "" -"Hi there. Your subscription renewal order with %s has been completed. Your " -"order details are shown below for your reference:" -msgstr "" - -#: templates/emails/customer-completed-switch-order.php:20 -#: templates/emails/plain/customer-completed-switch-order.php:16 -#. translators: placeholder is the name of the site -msgid "" -"Hi there. You have successfully changed your subscription items on %s. Your " -"new order and subscription details are shown below for your reference:" -msgstr "" - -#: templates/emails/customer-processing-renewal-order.php:17 -#: templates/emails/plain/customer-processing-renewal-order.php:15 -msgid "" -"Your subscription renewal order has been received and is now being " -"processed. Your order details are shown below for your reference:" -msgstr "" - -#: templates/emails/customer-renewal-invoice.php:20 -#: templates/emails/customer-renewal-invoice.php:27 -msgid "Pay Now »" -msgstr "" - -#: templates/emails/expired-subscription.php:19 -#: templates/emails/plain/expired-subscription.php:16 -#. translators: $1: customer's billing first name and last name -msgid "" -"A subscription belonging to %1$s has expired. Their subscription's details " -"are as follows:" -msgstr "" - -#: templates/emails/on-hold-subscription.php:19 -#: templates/emails/plain/on-hold-subscription.php:16 -#. translators: $1: customer's billing first name and last name -msgid "" -"A subscription belonging to %1$s has been suspended by the user. Their " -"subscription's details are as follows:" -msgstr "" - -#: templates/emails/plain/cancelled-subscription.php:32 -#: templates/emails/plain/expired-subscription.php:32 -#: templates/emails/plain/on-hold-subscription.php:32 -#. translators: placeholder is last time subscription was paid -msgid "Last Payment: %s" -msgstr "" - -#: templates/emails/plain/cancelled-subscription.php:39 -#. translators: placeholder is localised date string -msgid "End of Prepaid Term: %s" -msgstr "" - -#: templates/emails/plain/customer-completed-switch-order.php:23 -#. translators: placeholder is order's view url -msgid "View your order: %s" -msgstr "" - -#: templates/emails/plain/customer-completed-switch-order.php:34 -#. translators: placeholder is subscription's view url -msgid "View your subscription: %s" -msgstr "" - -#: templates/emails/plain/email-order-details.php:16 -msgid "Order number: %s" -msgstr "" - -#: templates/emails/plain/email-order-details.php:17 -msgid "Order date: %s" -msgstr "" - -#: templates/emails/plain/expired-subscription.php:39 -#. translators: placeholder is localised date string -msgid "End Date: %s" -msgstr "" - -#: templates/emails/plain/on-hold-subscription.php:36 -#. translators: placeholder is localised date string -msgid "Date Suspended: %s" -msgstr "" - -#: templates/emails/plain/subscription-info.php:16 -#: templates/emails/subscription-info.php:14 -msgid "Subscription Information:" -msgstr "" - -#: templates/myaccount/my-subscriptions.php:17 -msgid "My Subscriptions" -msgstr "" - -#: templates/myaccount/my-subscriptions.php:36 -#: templates/myaccount/related-subscriptions.php:30 -msgid "ID" -msgstr "" - -#: templates/myaccount/my-subscriptions.php:71 -#. translators: placeholders are opening and closing link tags to take to the -#. shop page -msgid "" -"You have no active subscriptions. Find your first subscription in the " -"%sstore%s." -msgstr "" - -#: templates/myaccount/related-orders.php:22 -msgid "Order" -msgstr "" - -#: templates/myaccount/related-orders.php:50 -#. translators: $1: formatted order total for the order, $2: number of items -#. bought -msgid "%1$s for %2$d item" -msgid_plural "%1$s for %2$d items" -msgstr[0] "" -msgstr[1] "" - -#: templates/myaccount/related-subscriptions.php:15 -msgid "Related Subscriptions" -msgstr "" - -#: templates/myaccount/view-subscription.php:20 -msgid "My Account" -msgstr "" - -#: templates/myaccount/view-subscription.php:57 -msgid "Actions" -msgstr "" - -#: templates/myaccount/view-subscription.php:69 -msgid "Subscription Updates" -msgstr "" - -#: templates/myaccount/view-subscription.php:88 -msgid "Subscription Totals" -msgstr "" - -#: templates/myaccount/view-subscription.php:109 -msgid "Are you sure you want remove this item from your subscription?" -msgstr "" - -#: templates/single-product/add-to-cart/subscription.php:43 -#: templates/single-product/add-to-cart/variable-subscription.php:31 -msgid "You have an active subscription to this product already." -msgstr "" - -#: templates/single-product/add-to-cart/variable-subscription.php:24 -msgid "This product is currently out of stock and unavailable." -msgstr "" - -#: templates/single-product/add-to-cart/variable-subscription.php:43 -msgid "Clear selection" -msgstr "" - -#: wcs-functions.php:228 -msgid "Can not get status name. Status is not a string." -msgstr "" - -#: wcs-functions.php:251 -msgid "Can not get address type display name. Address type is not a string." -msgstr "" - -#: wcs-functions.php:255 -msgid "Shipping Address" -msgstr "" - -#: wcs-functions.php:256 -msgid "Billing Address" -msgstr "" - -#: wcs-functions.php:314 -msgid "Date type is not a string." -msgstr "" - -#: wcs-functions.php:316 -msgid "Date type can not be an empty string." -msgstr "" - -#: woocommerce-subscriptions.php:220 -msgid "This is where subscriptions are stored." -msgstr "" - -#: woocommerce-subscriptions.php:264 -msgid "No Subscriptions found" -msgstr "" - -#: woocommerce-subscriptions.php:266 -msgid "" -"Subscriptions will appear here for you to view and manage once purchased by " -"a customer." -msgstr "" - -#: woocommerce-subscriptions.php:268 -#. translators: placeholders are opening and closing link tags -msgid "%sLearn more about managing subscriptions »%s" -msgstr "" - -#: woocommerce-subscriptions.php:270 -#. translators: placeholders are opening and closing link tags -msgid "%sAdd a subscription product »%s" -msgstr "" - -#: woocommerce-subscriptions.php:384 -msgid "" -"A subscription renewal has been removed from your cart. Multiple " -"subscriptions can not be purchased at the same time." -msgstr "" - -#: woocommerce-subscriptions.php:390 -msgid "" -"A subscription has been removed from your cart. Due to payment gateway " -"restrictions, different subscription products can not be purchased at the " -"same time." -msgstr "" - -#: woocommerce-subscriptions.php:396 -msgid "" -"A subscription has been removed from your cart. Products and subscriptions " -"can not be purchased at the same time." -msgstr "" - -#: woocommerce-subscriptions.php:530 woocommerce-subscriptions.php:547 -#. translators: placeholder is a number, this is for the teens -#. translators: placeholder is a number, numbers ending in 4-9, 0 -msgid "%sth" -msgstr "" - -#: woocommerce-subscriptions.php:535 -#. translators: placeholder is a number, numbers ending in 1 -msgid "%sst" -msgstr "" - -#: woocommerce-subscriptions.php:539 -#. translators: placeholder is a number, numbers ending in 2 -msgid "%snd" -msgstr "" - -#: woocommerce-subscriptions.php:543 -#. translators: placeholder is a number, numbers ending in 3 -msgid "%srd" -msgstr "" - -#: woocommerce-subscriptions.php:573 -#. translators: 1$-2$: opening and closing tags, 3$-4$: link tags, -#. takes to woocommerce plugin on wp.org, 5$-6$: opening and closing link tags, -#. leads to plugins.php in admin -msgid "" -"%1$sWooCommerce Subscriptions is inactive.%2$s The %3$sWooCommerce " -"plugin%4$s must be active for WooCommerce Subscriptions to work. Please " -"%5$sinstall & activate WooCommerce »%6$s" -msgstr "" - -#: woocommerce-subscriptions.php:580 -#. translators: 1$-2$: opening and closing tags, 3$-4$: opening and -#. closing link tags, leads to plugin admin -msgid "" -"%1$sWooCommerce Subscriptions is inactive.%2$s This version of " -"Subscriptions requires WooCommerce 2.4 or newer. Please %3$supdate " -"WooCommerce to version 2.4 or newer »%4$s" -msgstr "" - -#: woocommerce-subscriptions.php:606 -msgid "Variable Subscription" -msgstr "" - -#: woocommerce-subscriptions.php:765 -#. translators: 1$-2$: opening and closing tags, 3$-4$: opening and -#. closing link tags. Leads to duplicate site article on docs -msgid "" -"It looks like this site has moved or is a duplicate site. %1$sWooCommerce " -"Subscriptions%2$s has disabled automatic payments and subscription related " -"emails on this site to prevent duplicate payments from a staging or test " -"environment. %3$sLearn more »%4$s." -msgstr "" - -#: woocommerce-subscriptions.php:767 -msgid "Quit nagging me (but don't enable automatic payments)" -msgstr "" - -#: woocommerce-subscriptions.php:768 -msgid "Enable automatic payments" -msgstr "" - -#: woocommerce-subscriptions.php:946 -msgid "Support" -msgstr "" - -#: woocommerce-subscriptions.php:1051 -#. translators: placeholders are opening and closing tags. Leads to docs on -#. version 2 -msgid "" -"Warning! Version 2.0 is a major update to the WooCommerce Subscriptions " -"extension. Before updating, please create a backup, update all WooCommerce " -"extensions and test all plugins, custom code and payment gateways with " -"version 2.0 on a staging site. %sLearn more about the changes in version " -"2.0 »%s" -msgstr "" - -#: woocommerce-subscriptions.php:1066 -msgid "" -"Warning! You are running version %s of WooCommerce Subscriptions plugin " -"code but your database has been upgraded to Subscriptions version 2.0. This " -"will cause major problems on your store." -msgstr "" - -#: woocommerce-subscriptions.php:1067 -msgid "" -"Please upgrade the WooCommerce Subscriptions plugin to version 2.0 or newer " -"immediately. If you need assistance, after upgrading to Subscriptions v2.0, " -"please %sopen a support ticket%s." -msgstr "" - -#. Plugin Name of the plugin/theme -msgid "WooCommerce Subscriptions" -msgstr "" - -#. Plugin URI of the plugin/theme -msgid "http://www.woocommerce.com/products/woocommerce-subscriptions/" -msgstr "" - -#. Description of the plugin/theme -msgid "" -"Sell products and services with recurring payments in your WooCommerce " -"Store." -msgstr "" - -#. Author of the plugin/theme -msgid "Prospress Inc." -msgstr "" - -#. Author URI of the plugin/theme -msgid "http://prospress.com/" -msgstr "" - -#: includes/admin/class-wc-subscriptions-admin.php:187 -#. translators: placeholder is trial period validation message if passed an -#. invalid value (e.g. "Trial period can not exceed 4 weeks") -msgctxt "Trial period field tooltip on Edit Product administration screen" -msgid "" -"An optional period of time to wait before charging the first recurring " -"payment. Any sign up fee will still be charged at the outset of the " -"subscription. %s" -msgstr "" - -#: includes/admin/class-wc-subscriptions-admin.php:200 -msgctxt "example price" -msgid "e.g. 5.90" -msgstr "" - -#: includes/admin/class-wc-subscriptions-admin.php:234 -#: templates/admin/deprecated/html-variation-price.php:31 -#: templates/admin/deprecated/html-variation-price.php:86 -#: templates/admin/html-variation-price.php:21 -#: templates/admin/html-variation-price.php:47 -msgctxt "example price" -msgid "e.g. 9.90" -msgstr "" - -#: includes/admin/class-wc-subscriptions-admin.php:762 -#. translators: placeholders are for HTML tags. They are 1$: "

    ", 2$: -#. "

    ", 3$: "

    ", 4$: "", 5$: "", 6$: "", 7$: "", 8$: -#. "

    " -msgctxt "used in admin pointer script params in javascript as type pointer content" -msgid "" -"%1$sChoose Subscription%2$s%3$sThe WooCommerce Subscriptions extension adds " -"two new subscription product types - %4$sSimple subscription%5$s and " -"%6$sVariable subscription%7$s.%8$s" -msgstr "" - -#: includes/admin/class-wc-subscriptions-admin.php:764 -#. translators: placeholders are for HTML tags. They are 1$: "

    ", 2$: -#. "

    ", 3$: "

    ", 4$: "

    " -msgctxt "used in admin pointer script params in javascript as price pointer content" -msgid "" -"%1$sSet a Price%2$s%3$sSubscription prices are a little different to other " -"product prices. For a subscription, you can set a billing period, length, " -"sign-up fee and free trial.%4$s" -msgstr "" - -#: includes/admin/class-wc-subscriptions-admin.php:1075 -msgctxt "option section heading" -msgid "Renewals" -msgstr "" - -#: includes/admin/class-wc-subscriptions-admin.php:1107 -msgctxt "options section heading" -msgid "Miscellaneous" -msgstr "" - -#: includes/admin/class-wc-subscriptions-admin.php:1115 -msgctxt "there's a number immediately in front of this text" -msgid "suspensions per billing period." -msgstr "" - -#: includes/admin/class-wc-subscriptions-admin.php:1360 -msgctxt "in [subscriptions] shortcode" -msgid "No subscriptions found." -msgstr "" - -#: includes/admin/class-wc-subscriptions-admin.php:1369 -#. translators: order number -msgctxt "in [subscriptions] shortcode" -msgid "Subscription %s" -msgstr "" - -#: includes/admin/class-wc-subscriptions-admin.php:1389 -msgctxt "label that indicates whether debugging is turned on for the plugin" -msgid "WCS_DEBUG" -msgstr "" - -#: includes/admin/class-wc-subscriptions-admin.php:1395 -msgctxt "Live or Staging, Label on WooCommerce -> System Status page" -msgid "Subscriptions Mode" -msgstr "" - -#: includes/admin/class-wc-subscriptions-admin.php:1396 -msgctxt "refers to staging site" -msgid "Staging" -msgstr "" - -#: includes/admin/class-wc-subscriptions-admin.php:1396 -msgctxt "refers to live site" -msgid "Live" -msgstr "" - -#: includes/admin/class-wcs-admin-meta-boxes.php:56 -msgctxt "meta box title" -msgid "Subscription Data" -msgstr "" - -#: includes/admin/class-wcs-admin-meta-boxes.php:58 -msgctxt "meta box title" -msgid "Billing Schedule" -msgstr "" - -#: includes/admin/class-wcs-admin-post-types.php:233 -msgctxt "an action on a subscription" -msgid "Activate" -msgstr "" - -#: includes/admin/class-wcs-admin-post-types.php:234 -msgctxt "an action on a subscription" -msgid "Put on-hold" -msgstr "" - -#: includes/admin/class-wcs-admin-post-types.php:235 -#: includes/admin/class-wcs-admin-post-types.php:448 -#: includes/class-wc-subscriptions-manager.php:1762 -#: includes/wcs-user-functions.php:288 -#: templates/myaccount/related-orders.php:66 -msgctxt "an action on a subscription" -msgid "Cancel" -msgstr "" - -#: includes/admin/class-wcs-admin-post-types.php:310 -msgctxt "Used in order note. Reason why status changed." -msgid "Subscription status changed by bulk edit:" -msgstr "" - -#: includes/admin/class-wcs-admin-post-types.php:406 -msgctxt "number of orders linked to a subscription" -msgid "Orders" -msgstr "" - -#: includes/admin/class-wcs-admin-post-types.php:502 -msgctxt "meaning billing address" -msgid "Billing:" -msgstr "" - -#: includes/admin/class-wcs-admin-post-types.php:540 -#. translators: $1: is opening link, $2: is subscription order number, $3: is -#. closing link tag, $4: is user's name -msgctxt "Subscription title on admin table. (e.g.: #211 for John Doe)" -msgid "%1$s#%2$s%3$s for %4$s" -msgstr "" - -#: includes/admin/class-wcs-admin-post-types.php:924 -#. translators: placeholder is previous post title -msgctxt "used in post updated messages" -msgid "Subscription restored to revision from %s" -msgstr "" - -#: includes/admin/class-wcs-admin-post-types.php:929 -msgctxt "used in \"Subscription scheduled for \"" -msgid "M j, Y @ G:i" -msgstr "" - -#: includes/admin/meta-boxes/class-wcs-meta-box-related-orders.php:82 -msgctxt "relation to order" -msgid "Resubscribed Subscription" -msgstr "" - -#: includes/admin/meta-boxes/class-wcs-meta-box-related-orders.php:90 -msgctxt "relation to order" -msgid "Initial Subscription" -msgstr "" - -#: includes/admin/meta-boxes/class-wcs-meta-box-related-orders.php:98 -msgctxt "relation to order" -msgid "Parent Order" -msgstr "" - -#: includes/admin/meta-boxes/class-wcs-meta-box-related-orders.php:108 -msgctxt "relation to order" -msgid "Renewal Order" -msgstr "" - -#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:48 -#. translators: placeholder is the ID of the subscription -msgctxt "edit subscription header" -msgid "Subscription #%s details" -msgstr "" - -#: includes/admin/meta-boxes/class-wcs-meta-box-subscription-data.php:126 -#: includes/class-wcs-change-payment-method-admin.php:52 -msgctxt "" -"The gateway ID displayed on the Edit Subscriptions screen when editing " -"payment method." -msgid "Gateway ID: [%s]" -msgstr "" - -#: includes/admin/meta-boxes/views/html-related-orders-row.php:15 -#: includes/class-wc-subscriptions-renewal-order.php:138 -#: templates/myaccount/my-subscriptions.php:37 -#: templates/myaccount/related-orders.php:38 -#: templates/myaccount/related-subscriptions.php:32 -msgctxt "hash before order number" -msgid "#%s" -msgstr "" - -#: includes/class-wcs-query.php:92 -msgctxt "hash before order number" -msgid "Subscription #%s" -msgstr "" - -#: includes/admin/meta-boxes/views/html-related-orders-row.php:26 -#: includes/admin/meta-boxes/views/html-retries-table.php:44 -#. translators: php date format -msgctxt "post date" -msgid "Y/m/d g:i:s A" -msgstr "" - -#: includes/admin/meta-boxes/views/html-related-orders-table.php:21 -#: templates/myaccount/my-subscriptions.php:28 -#: templates/myaccount/related-orders.php:25 -#: templates/myaccount/related-subscriptions.php:23 -#: templates/myaccount/view-subscription.php:96 -msgctxt "table heading" -msgid "Total" -msgstr "" - -#: includes/class-wcs-retry-manager.php:120 -msgctxt "table heading" -msgid "Renewal Payment Retry" -msgstr "" - -#: templates/emails/cancelled-subscription.php:28 -#: templates/emails/expired-subscription.php:28 -#: templates/emails/on-hold-subscription.php:28 wcs-functions.php:277 -msgctxt "table heading" -msgid "Last Payment" -msgstr "" - -#: templates/emails/subscription-info.php:19 -#: templates/myaccount/view-subscription.php:36 wcs-functions.php:274 -msgctxt "table heading" -msgid "Start Date" -msgstr "" - -#: templates/emails/subscription-info.php:20 -#: templates/myaccount/view-subscription.php:42 wcs-functions.php:279 -msgctxt "table heading" -msgid "End Date" -msgstr "" - -#: templates/emails/subscription-info.php:21 -msgctxt "table heading" -msgid "Price" -msgstr "" - -#: templates/myaccount/my-subscriptions.php:27 -#: templates/myaccount/my-subscriptions.php:43 -#: templates/myaccount/related-subscriptions.php:22 -#: templates/myaccount/related-subscriptions.php:38 wcs-functions.php:276 -msgctxt "table heading" -msgid "Next Payment" -msgstr "" - -#: wcs-functions.php:275 -msgctxt "table heading" -msgid "Trial End" -msgstr "" - -#: wcs-functions.php:278 -msgctxt "table heading" -msgid "Cancelled Date" -msgstr "" - -#: includes/admin/reports/class-wcs-report-retention-rate.php:156 -msgctxt "X axis label on retention rate graph" -msgid "Number of days after sign-up" -msgstr "" - -#: includes/admin/reports/class-wcs-report-retention-rate.php:159 -msgctxt "X axis label on retention rate graph" -msgid "Number of weeks after sign-up" -msgstr "" - -#: includes/admin/reports/class-wcs-report-retention-rate.php:162 -msgctxt "X axis label on retention rate graph" -msgid "Number of months after sign-up" -msgstr "" - -#: includes/api/legacy/class-wc-api-subscriptions.php:267 -#. translators: placeholder is error message -msgctxt "API error message when editing the order failed" -msgid "Edit subscription failed with error: %s" -msgstr "" - -#: includes/api/legacy/class-wc-api-subscriptions.php:605 -msgctxt "API response confirming order note deleted from a subscription" -msgid "Permanently deleted subscription note" -msgstr "" - -#: includes/class-wc-subscription.php:721 -msgctxt "original denotes there is no date to display" -msgid "-" -msgstr "" - -#: includes/class-wc-subscription.php:1773 -#. translators: placeholder is date type (e.g. "end", "next_payment"...) -msgctxt "appears in an error message if date is wrong format" -msgid "Invalid %s date. The date must be of the format: \"Y-m-d H:i:s\"." -msgstr "" - -#: includes/class-wc-subscriptions-change-payment-gateway.php:259 -msgctxt "label on button, imperative" -msgid "Change Payment" -msgstr "" - -#: includes/class-wc-subscriptions-change-payment-gateway.php:376 -msgctxt "%1$s: old payment title, %2$s: new payment title" -msgid "" -"Payment method changed from \"%1$s\" to \"%2$s\" by the subscriber from " -"their account page." -msgstr "" - -#: includes/class-wc-subscriptions-change-payment-gateway.php:501 -msgctxt "the page title of the change payment method form" -msgid "Change Payment Method" -msgstr "" - -#: includes/class-wc-subscriptions-manager.php:94 -#: includes/class-wc-subscriptions-manager.php:1826 -#: includes/class-wc-subscriptions-manager.php:1844 -msgctxt "used in order note as reason for why subscription status changed" -msgid "Subscription renewal payment due:" -msgstr "" - -#: includes/class-wcs-retry-manager.php:299 -msgctxt "used in order note as reason for why subscription status changed" -msgid "Subscription renewal payment retry:" -msgstr "" - -#: includes/class-wc-subscriptions-manager.php:973 wcs-functions.php:207 -msgctxt "Subscription status" -msgid "Active" -msgstr "" - -#: includes/class-wc-subscriptions-manager.php:976 wcs-functions.php:209 -msgctxt "Subscription status" -msgid "Cancelled" -msgstr "" - -#: includes/class-wc-subscriptions-manager.php:979 wcs-functions.php:211 -msgctxt "Subscription status" -msgid "Expired" -msgstr "" - -#: includes/class-wc-subscriptions-manager.php:982 wcs-functions.php:206 -msgctxt "Subscription status" -msgid "Pending" -msgstr "" - -#: includes/class-wc-subscriptions-manager.php:985 -msgctxt "Subscription status" -msgid "Failed" -msgstr "" - -#: includes/class-wc-subscriptions-manager.php:989 -msgctxt "Subscription status" -msgid "On-hold" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:2300 wcs-functions.php:210 -msgctxt "Subscription status" -msgid "Switched" -msgstr "" - -#: wcs-functions.php:208 -msgctxt "Subscription status" -msgid "On hold" -msgstr "" - -#: wcs-functions.php:212 -msgctxt "Subscription status" -msgid "Pending Cancellation" -msgstr "" - -#: includes/class-wc-subscriptions-manager.php:1739 -#. translators: 1$: month number (e.g. "01"), 2$: month abbreviation (e.g. -#. "Jan") -msgctxt "used in a select box" -msgid "%1$s-%2$s" -msgstr "" - -#: includes/class-wc-subscriptions-order.php:692 -msgctxt "An order type" -msgid "Original" -msgstr "" - -#: includes/class-wc-subscriptions-order.php:693 -msgctxt "An order type" -msgid "Subscription Parent" -msgstr "" - -#: includes/class-wc-subscriptions-order.php:694 -msgctxt "An order type" -msgid "Subscription Renewal" -msgstr "" - -#: includes/class-wc-subscriptions-order.php:695 -msgctxt "An order type" -msgid "Subscription Resubscribe" -msgstr "" - -#: includes/class-wc-subscriptions-order.php:696 -msgctxt "An order type" -msgid "Subscription Switch" -msgstr "" - -#: includes/class-wc-subscriptions-order.php:697 -msgctxt "An order type" -msgid "Non-subscription" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:321 -#: includes/class-wc-subscriptions-switcher.php:338 -#: includes/class-wc-subscriptions-switcher.php:372 -#: includes/class-wc-subscriptions-synchroniser.php:169 -msgctxt "when to allow a setting" -msgid "Never" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:322 -msgctxt "when to allow switching" -msgid "Between Subscription Variations" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:323 -msgctxt "when to allow switching" -msgid "Between Grouped Subscriptions" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:324 -msgctxt "when to allow switching" -msgid "Between Both Variations & Grouped Subscriptions" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:339 -msgctxt "when to prorate recurring fee when switching" -msgid "For Upgrades of Virtual Subscription Products Only" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:340 -msgctxt "when to prorate recurring fee when switching" -msgid "For Upgrades of All Subscription Products" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:341 -msgctxt "when to prorate recurring fee when switching" -msgid "For Upgrades & Downgrades of Virtual Subscription Products Only" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:342 -msgctxt "when to prorate recurring fee when switching" -msgid "For Upgrades & Downgrades of All Subscription Products" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:356 -msgctxt "when to prorate signup fee when switching" -msgid "Never (do not charge a sign up fee)" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:357 -msgctxt "when to prorate signup fee when switching" -msgid "Never (charge the full sign up fee)" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:358 -msgctxt "when to prorate signup fee when switching" -msgid "Always" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:373 -#: includes/class-wc-subscriptions-synchroniser.php:170 -msgctxt "when to prorate first payment / subscription length" -msgid "For Virtual Subscription Products Only" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:374 -#: includes/class-wc-subscriptions-synchroniser.php:171 -msgctxt "when to prorate first payment / subscription length" -msgid "For All Subscription Products" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:1649 -msgctxt "a switch order" -msgid "Downgrade" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:1652 -msgctxt "a switch order" -msgid "Upgrade" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:1655 -msgctxt "a switch order" -msgid "Crossgrade" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:1660 -#. translators: %1: product subtotal, %2: HTML span tag, %3: direction -#. (upgrade, downgrade, crossgrade), %4: closing HTML span tag -msgctxt "product subtotal string" -msgid "%1$s %2$s(%3$s)%4$s" -msgstr "" - -#: includes/class-wc-subscriptions-switcher.php:1777 -#: includes/class-wc-subscriptions-switcher.php:2076 -#. translators: 1$: old item, 2$: new item when switching -msgctxt "used in order notes" -msgid "Customer switched from: %1$s to %2$s." -msgstr "" - -#: includes/class-wc-subscriptions-synchroniser.php:50 -#. translators: placeholder is a year (e.g. "2016") -msgctxt "used in subscription product edit screen" -msgid "" -"Align the payment date for this subscription to a specific day of the year. " -"If the date has already taken place this year, the first payment will be " -"processed in %s. Set the day to 0 to disable payment syncing for this " -"product." -msgstr "" - -#: includes/class-wc-subscriptions-synchroniser.php:149 -#. translators: placeholders are opening and closing link tags -msgctxt "used in the general subscription options page" -msgid "" -"Align subscription renewal to a specific day of the week, month or year. " -"For example, the first day of the month. %sLearn more%s." -msgstr "" - -#: includes/class-wc-subscriptions-synchroniser.php:232 -#: templates/admin/deprecated/html-variation-synchronisation.php:36 -#: templates/admin/html-variation-synchronisation.php:34 -msgctxt "input field placeholder for day field for annual subscriptions" -msgid "Day" -msgstr "" - -#: includes/class-wcs-cart-renewal.php:655 -msgctxt "" -"Used in WooCommerce by removed item notification: \"_All linked " -"subscription items were_ removed. Undo?\" Filter for item title." -msgid "All linked subscription items were" -msgstr "" - -#: includes/class-wcs-remove-item.php:68 -msgctxt "hash before subscription ID" -msgid "Subscription #%d does not exist." -msgstr "" - -#: includes/class-wcs-remove-item.php:103 -#. translators: 1$: product name, 2$: product id -msgctxt "used in order note" -msgid "Customer added \"%1$s\" (Product ID: #%2$d) via the My Account page." -msgstr "" - -#: includes/class-wcs-remove-item.php:124 -#. translators: 1$: product name, 2$: product id -msgctxt "used in order note" -msgid "Customer removed \"%1$s\" (Product ID: #%2$d) via the My Account page." -msgstr "" - -#: includes/gateways/paypal/includes/class-wcs-paypal-standard-ipn-handler.php:389 -#: includes/gateways/paypal/includes/class-wcs-paypal-standard-ipn-handler.php:398 -#. translators: placeholder is payment status (e.g. "completed") -msgctxt "used in order note" -msgid "IPN subscription payment %s." -msgstr "" - -#: includes/gateways/paypal/includes/class-wcs-paypal-standard-ipn-handler.php:402 -#. translators: placeholder is payment status (e.g. "completed") -msgctxt "used in order note" -msgid "IPN subscription payment %s for reason: %s." -msgstr "" - -#: includes/class-wcs-retry-manager.php:229 -msgctxt "used in order note as reason for why status changed" -msgid "Retry rule applied:" -msgstr "" - -#: includes/class-wcs-retry-manager.php:295 -msgctxt "used in order note as reason for why order status changed" -msgid "Subscription renewal payment retry:" -msgstr "" - -#: includes/class-wcs-user-change-status-handler.php:56 -msgctxt "order note left on subscription after user action" -msgid "Subscription reactivated by the subscriber from their account page." -msgstr "" - -#: includes/class-wcs-user-change-status-handler.php:66 -msgctxt "order note left on subscription after user action" -msgid "Subscription put on hold by the subscriber from their account page." -msgstr "" - -#: includes/class-wcs-user-change-status-handler.php:75 -msgctxt "order note left on subscription after user action" -msgid "Subscription cancelled by the subscriber from their account page." -msgstr "" - -#: includes/class-wcs-user-change-status-handler.php:57 -msgctxt "Notice displayed to user confirming their action." -msgid "Your subscription has been reactivated." -msgstr "" - -#: includes/class-wcs-user-change-status-handler.php:67 -msgctxt "Notice displayed to user confirming their action." -msgid "Your subscription has been put on hold." -msgstr "" - -#: includes/class-wcs-user-change-status-handler.php:76 -msgctxt "Notice displayed to user confirming their action." -msgid "Your subscription has been cancelled." -msgstr "" - -#: includes/emails/class-wcs-email-cancelled-subscription.php:32 -#. translators: placeholder is {blogname}, a variable that will be substituted -#. when email is sent out -msgctxt "default email subject for cancelled emails sent to the admin" -msgid "[%s] Subscription Cancelled" -msgstr "" - -#: includes/emails/class-wcs-email-cancelled-subscription.php:126 -#: includes/emails/class-wcs-email-customer-renewal-invoice.php:181 -#: includes/emails/class-wcs-email-expired-subscription.php:124 -#: includes/emails/class-wcs-email-on-hold-subscription.php:124 -msgctxt "an email notification" -msgid "Enable/Disable" -msgstr "" - -#: includes/emails/class-wcs-email-cancelled-subscription.php:132 -#: includes/emails/class-wcs-email-expired-subscription.php:130 -#: includes/emails/class-wcs-email-on-hold-subscription.php:130 -msgctxt "of an email" -msgid "Recipient(s)" -msgstr "" - -#: includes/emails/class-wcs-email-cancelled-subscription.php:140 -#: includes/emails/class-wcs-email-expired-subscription.php:138 -#: includes/emails/class-wcs-email-on-hold-subscription.php:138 -msgctxt "of an email" -msgid "Subject" -msgstr "" - -#: includes/emails/class-wcs-email-cancelled-subscription.php:147 -#: includes/emails/class-wcs-email-expired-subscription.php:145 -#: includes/emails/class-wcs-email-on-hold-subscription.php:145 -msgctxt "" -"Name the setting that controls the main heading contained within the email " -"notification" -msgid "Email Heading" -msgstr "" - -#: includes/emails/class-wcs-email-cancelled-subscription.php:154 -#: includes/emails/class-wcs-email-expired-subscription.php:152 -#: includes/emails/class-wcs-email-on-hold-subscription.php:152 -msgctxt "text, html or multipart" -msgid "Email type" -msgstr "" - -#: includes/emails/class-wcs-email-cancelled-subscription.php:160 -#: includes/emails/class-wcs-email-expired-subscription.php:158 -#: includes/emails/class-wcs-email-on-hold-subscription.php:158 -msgctxt "email type" -msgid "Plain text" -msgstr "" - -#: includes/emails/class-wcs-email-cancelled-subscription.php:161 -#: includes/emails/class-wcs-email-expired-subscription.php:159 -#: includes/emails/class-wcs-email-on-hold-subscription.php:159 -msgctxt "email type" -msgid "HTML" -msgstr "" - -#: includes/emails/class-wcs-email-cancelled-subscription.php:162 -#: includes/emails/class-wcs-email-expired-subscription.php:160 -#: includes/emails/class-wcs-email-on-hold-subscription.php:160 -msgctxt "email type" -msgid "Multipart" -msgstr "" - -#: includes/emails/class-wcs-email-customer-completed-renewal-order.php:29 -msgctxt "Default email heading for email to customer on completed renewal order" -msgid "Your renewal order is complete" -msgstr "" - -#: includes/emails/class-wcs-email-customer-completed-renewal-order.php:31 -#. translators: $1: {blogname}, $2: {order_date}, variables that will be -#. substituted when email is sent out -msgctxt "Default email subject for email to customer on completed renewal order" -msgid "Your %1$s renewal order from %2$s is complete" -msgstr "" - -#: includes/emails/class-wcs-email-customer-completed-renewal-order.php:38 -msgctxt "Default email heading for email with downloadable files in it" -msgid "Your subscription renewal order is complete - download your files" -msgstr "" - -#: includes/emails/class-wcs-email-customer-completed-renewal-order.php:40 -#. translators: $1: {blogname}, $2: {order_date}, variables will be substituted -#. when email is sent out -msgctxt "Default email subject for email with downloadable files in it" -msgid "" -"Your %1$s subscription renewal order from %2$s is complete - download your " -"files" -msgstr "" - -#: includes/emails/class-wcs-email-expired-subscription.php:32 -#. translators: placeholder is {blogname}, a variable that will be substituted -#. when email is sent out -msgctxt "default email subject for expired emails sent to the admin" -msgid "[%s] Subscription Expired" -msgstr "" - -#: includes/emails/class-wcs-email-on-hold-subscription.php:32 -#. translators: placeholder is {blogname}, a variable that will be substituted -#. when email is sent out -msgctxt "default email subject for suspended emails sent to the admin" -msgid "[%s] Subscription Suspended" -msgstr "" - -#: includes/gateways/paypal/class-wcs-paypal.php:344 -#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:208 -#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:316 -#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:327 -#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:355 -#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:367 -#: includes/gateways/paypal/includes/class-wcs-paypal-standard-request.php:137 -#: includes/gateways/paypal/includes/class-wcs-paypal-standard-request.php:140 -#. translators: placeholder is for blog name -msgctxt "" -"hash before the order number. Used as a character to remove from the actual " -"order number" -msgid "#" -msgstr "" - -#: includes/gateways/paypal/class-wcs-paypal.php:556 -msgctxt "" -"used in User Agent data sent to PayPal to help identify where a payment " -"came from" -msgid "WooCommerce Subscriptions PayPal" -msgstr "" - -#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:71 -#. translators: placeholder is blogname -msgctxt "data sent to paypal" -msgid "Orders with %s" -msgstr "" - -#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-request.php:398 -#. translators: 1$: new status (e.g. "Cancel"), 2$: blog name -msgctxt "data sent to paypal" -msgid "%1$s subscription event triggered at %2$s" -msgstr "" - -#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-response.php:136 -msgctxt "used in api error message if there is no severity code from PayPal" -msgid "Error" -msgstr "" - -#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-response.php:138 -msgctxt "used in api error message if there is no long message" -msgid "Unknown error" -msgstr "" - -#: includes/gateways/paypal/includes/class-wcs-paypal-reference-transaction-api-response.php:150 -#: templates/admin/deprecated/order-shipping-html.php:14 -#: templates/admin/deprecated/order-tax-html.php:9 -msgctxt "no information about something" -msgid "N/A" -msgstr "" - -#: includes/gateways/paypal/includes/class-wcs-paypal-standard-ipn-handler.php:255 -msgctxt "" -"when it is a payment change, and there is a subscr_signup message, this " -"will be a confirmation message that PayPal accepted it being the new " -"payment method" -msgid "IPN subscription payment method changed to PayPal." -msgstr "" - -#: includes/gateways/paypal/includes/class-wcs-paypal-standard-request.php:74 -#. translators: 1$: subscription ID, 2$: order ID, 3$: names of items, comma -#. separated -msgctxt "item name sent to paypal" -msgid "Subscription %1$s (Order %2$s) - %3$s" -msgstr "" - -#: includes/payment-retry/class-wcs-retry-post-store.php:33 -msgctxt "Post type name" -msgid "Renewal Payment Retries" -msgstr "" - -#: includes/payment-retry/class-wcs-retry-post-store.php:35 -msgctxt "Admin menu name" -msgid "Renewal Payment Retries" -msgstr "" - -#: includes/upgrades/class-wc-subscriptions-upgrader.php:287 -#. translators: placeholder is number of upgraded subscriptions -msgctxt "used in the subscriptions upgrader" -msgid "Marked %s subscription products as \"sold individually\"." -msgstr "" - -#: includes/upgrades/class-wc-subscriptions-upgrader.php:318 -#: includes/upgrades/class-wc-subscriptions-upgrader.php:368 -#. translators: placeholder is "{time_left}", will be replaced on front end -#. with actual time -msgctxt "Message that gets sent to front end." -msgid "Estimated time left (minutes:seconds): %s" -msgstr "" - -#: includes/upgrades/class-wc-subscriptions-upgrader.php:347 -#. translators: placeholder is the number of subscriptions repaired -msgctxt "Repair message that gets sent to front end." -msgid "" -"Repaired %d subscriptions with incorrect dates, line tax data or missing " -"customer notes." -msgstr "" - -#: includes/upgrades/class-wc-subscriptions-upgrader.php:353 -#. translators: placeholder is number of subscriptions that were checked and -#. did not need repairs. There's a space at the beginning! -msgctxt "Repair message that gets sent to front end." -msgid " %d other subscription was checked and did not need any repairs." -msgid_plural "%d other subscriptions were checked and did not need any repairs." -msgstr[0] "" -msgstr[1] "" - -#: includes/upgrades/class-wc-subscriptions-upgrader.php:357 -#. translators: placeholder is "{execution_time}", which will be replaced on -#. front end with actual time -msgctxt "Repair message that gets sent to front end." -msgid "(in %s seconds)" -msgstr "" - -#: includes/upgrades/class-wc-subscriptions-upgrader.php:360 -#. translators: $1: "Repaired x subs with incorrect dates...", $2: "X others -#. were checked and no repair needed", $3: "(in X seconds)". Ordering for RTL -#. languages. -msgctxt "The assembled repair message that gets sent to front end." -msgid "%1$s%2$s %3$s" -msgstr "" - -#: includes/upgrades/class-wc-subscriptions-upgrader.php:379 -#. translators: 1$: error message, 2$: opening link tag, 3$: closing link tag -msgctxt "Error message that gets sent to front end when upgrading Subscriptions" -msgid "" -"Unable to repair subscriptions.
    Error: %1$s
    Please refresh the page " -"and try again. If problem persists, %2$scontact support%3$s." -msgstr "" - -#: includes/upgrades/templates/wcs-about-2-0.php:36 -#: woocommerce-subscriptions.php:945 -msgctxt "short for documents" -msgid "Docs" -msgstr "" - -#: includes/upgrades/templates/wcs-about.php:35 -msgctxt "short for documents" -msgid "Documentation" -msgstr "" - -#: includes/upgrades/templates/wcs-about-2-0.php:121 -msgctxt "h3 on the About Subscriptions page for this new feature" -msgid "Change Payment Method" -msgstr "" - -#: includes/upgrades/templates/wcs-about.php:126 -msgctxt "h3 on the About Subscriptions page for this new feature" -msgid "Import/Export Subscriptions" -msgstr "" - -#: includes/upgrades/templates/wcs-about.php:55 -msgctxt "learn more link to subscription reports documentation" -msgid "Learn More" -msgstr "" - -#: includes/upgrades/templates/wcs-about.php:79 -msgctxt "learn more link to failed payment retry documentation" -msgid "Learn More" -msgstr "" - -#: includes/upgrades/templates/wcs-about.php:100 -msgctxt "learn more link to subscription emails documentation" -msgid "Learn More" -msgstr "" - -#: includes/upgrades/templates/wcs-upgrade.php:45 -msgctxt "text on submit button" -msgid "Update Database" -msgstr "" - #: includes/wcs-cart-functions.php:185 msgctxt "shipping method price" msgid "Free" msgstr "" -#: includes/wcs-cart-functions.php:260 +#: includes/wcs-cart-functions.php:225 +msgid "Free shipping coupon" +msgstr "" + #. translators: placeholder is price string, denotes tax included in cart/order #. total +#: includes/wcs-cart-functions.php:260 msgctxt "includes tax" msgid "(Includes %s)" msgstr "" +#. translators: placeholder is a date +#: includes/wcs-cart-functions.php:329 +#: tests/unit/wcs_test_wcs_cart_functions.php:203 +msgid "First renewal: %s" +msgstr "" + +#. translators: placeholder is either subscription key or a subscription id, +#. or, failing that, empty (e.g. "145_21" or "145") +#: includes/wcs-deprecated-functions.php:180 +msgid "" +"Could not get subscription. Most likely the subscription key does not refer " +"to a subscription. The key was: \"%s\"." +msgstr "" + #: includes/wcs-formatting-functions.php:39 msgctxt "initial payment on a subscription" msgid "up front" msgstr "" +#. translators: 1$: initial amount, 2$: initial description (e.g. "up front"), +#. 3$: recurring amount string (e.g. "£10 / month" ) +#: includes/wcs-formatting-functions.php:85 +msgid "%1$s %2$s then %3$s" +msgstr "" + +#. translators: 1$: initial amount, 2$: initial description (e.g. "up front"), +#. 3$: recurring amount string, 4$: payment day of the week (e.g. "$15 up +#. front, then $10 every Wednesday") +#: includes/wcs-formatting-functions.php:99 +msgid "%1$s %2$s then %3$s every %4$s" +msgstr "" + +#. translators: 1$: initial amount, 2$: initial description (e.g. "up front" ), +#. 3$: recurring amount, 4$: interval (e.g. "2nd week"), 5$: day of the week +#. (e.g. "Thursday"); (e.g. "$10 up front, then $20 every 2nd week on +#. Wednesday") +#: includes/wcs-formatting-functions.php:108 +msgid "%1$s %2$s then %3$s every %4%s on %5$s" +msgstr "" + +#. translators: 1$: initial amount, 2$: initial description (e.g. "up front"), +#. 3$: recurring amount; (e.g. "$10 up front then $30 on the last day of each +#. month") +#: includes/wcs-formatting-functions.php:121 +msgid "%1$s %2$s then %3$s on the last day of each month" +msgstr "" + +#. translators: 1$: initial amount, 2$: initial description (e.g. "up front"), +#. 3$: recurring amount, 4$: day of the month (e.g. "23rd"); (e.g. "$10 up +#. front then $40 on the 23rd of each month") +#: includes/wcs-formatting-functions.php:124 +msgid "%1$s %2$s then %3$s on the %4$s of each month" +msgstr "" + +#. translators: 1$: initial amount, 2$: initial description (e.g. "up front"), +#. 3$: recurring amount, 4$: interval (e.g. "3rd") +#: includes/wcs-formatting-functions.php:140 +msgid "%1$s %2$s then %3$s on the last day of every %4$s month" +msgstr "" + +#. translators: 1$: initial amount, 2$: initial description (e.g. "up front"), +#. 3$: recurring amount, 4$: day of the month (e.g. "23rd"), 5$: interval (e.g. +#. "3rd") +#: includes/wcs-formatting-functions.php:143 +msgid "%1$s %2$s then %3$s on the %4$s day of every %5$s month" +msgstr "" + +#. translators: 1$: initial amount, 2$: intial description (e.g. "up front"), +#. 3$: recurring amount, 4$: month of year (e.g. "March"), 5$: day of the month +#. (e.g. "23rd") +#: includes/wcs-formatting-functions.php:161 +msgid "%1$s %2$s then %3$s on %4$s %5$s each year" +msgstr "" + +#. translators: 1$: initial amount, 2$: initial description (e.g. "up front"), +#. 3$: recurring amount, 4$: month (e.g. "March"), 5$: day of the month (e.g. +#. "23rd"), 6$: interval (e.g. "3rd") +#: includes/wcs-formatting-functions.php:170 +msgid "%1$s %2$s then %3$s on %4$s %5$s every %6$s year" +msgstr "" + +#. translators: 1$: initial amount, 2$: initial description (e.g. "up front"), +#. 3$: recurring amount, 4$: subscription period (e.g. "month" or "3 months") +#: includes/wcs-formatting-functions.php:180 +msgid "%1$s %2$s then %3$s / %4$s" +msgid_plural "%1$s %2$s then %3$s every %4$s" +msgstr[0] "" +msgstr[1] "" + +#. translators: 1$: subscription string (e.g. "$10 up front then $5 on March +#. 23rd every 3rd year"), 2$: trial length (e.g. "3 weeks") +#: includes/wcs-formatting-functions.php:201 +msgid "%1$s after %2$s free trial" +msgstr "" + +#. translators: 1$: trial length (e.g. "3 weeks"), 2$: subscription string +#. (e.g. "$10 up front then $5 on March 23rd every 3rd year") +#: includes/wcs-formatting-functions.php:204 +msgid "%1$s free trial then %2$s" +msgstr "" + +#. translators: date placeholder for input, javascript format +#: includes/wcs-helper-functions.php:38 +msgid "YYYY-MM-DD" +msgstr "" + +#. translators: hour placeholder for time input, javascript format +#: includes/wcs-helper-functions.php:43 +msgid "HH" +msgstr "" + +#. translators: minute placeholder for time input, javascript format +#: includes/wcs-helper-functions.php:46 +msgid "MM" +msgstr "" + #: includes/wcs-order-functions.php:135 msgctxt "" "In wcs_copy_order_meta error message. Refers to origin and target order " @@ -4985,42 +5118,67 @@ msgctxt "" msgid "Invalid data. Type of copy is not a string." msgstr "" -#: includes/wcs-order-functions.php:299 wcs-functions.php:153 #. translators: Order date parsed by strftime -msgctxt "Used in subscription post title. \"Subscription renewal order - \"" +#: includes/wcs-order-functions.php:314 wcs-functions.php:155 +msgctxt "" +"Used in subscription post title. \"Subscription renewal order - \"" msgid "%b %d, %Y @ %I:%M %p" msgstr "" -#: includes/wcs-time-functions.php:30 +#: includes/wcs-order-functions.php:318 +msgid "Subscription Renewal Order – %s" +msgstr "" + +#: includes/wcs-order-functions.php:321 +msgid "Resubscribe Order – %s" +msgstr "" + +#: includes/wcs-order-functions.php:340 +msgid "$type passed to the function was not a string." +msgstr "" + +#: includes/wcs-order-functions.php:345 +msgid "\"%s\" is not a valid new order type." +msgstr "" + +#: includes/wcs-order-functions.php:532 +msgid "Invalid data. No valid subscription / order was passed in." +msgstr "" + +#: includes/wcs-order-functions.php:536 +msgid "Invalid data. No valid item id was passed in." +msgstr "" + #. translators: placeholder is number of days. (e.g. "Bill this every day / 4 #. days") +#: includes/wcs-time-functions.php:30 msgctxt "Subscription billing period." msgid "day" msgid_plural "%s days" msgstr[0] "" msgstr[1] "" -#: includes/wcs-time-functions.php:32 #. translators: placeholder is number of weeks. (e.g. "Bill this every week / 4 #. weeks") +#: includes/wcs-time-functions.php:32 msgctxt "Subscription billing period." msgid "week" msgid_plural "%s weeks" msgstr[0] "" msgstr[1] "" -#: includes/wcs-time-functions.php:34 #. translators: placeholder is number of months. (e.g. "Bill this every month / #. 4 months") +#: includes/wcs-time-functions.php:34 msgctxt "Subscription billing period." msgid "month" msgid_plural "%s months" msgstr[0] "" msgstr[1] "" -#: includes/wcs-time-functions.php:36 #. translators: placeholder is number of years. (e.g. "Bill this every year / 4 #. years") +#: includes/wcs-time-functions.php:36 msgctxt "Subscription billing period." msgid "year" msgid_plural "%s years" @@ -5057,9 +5215,9 @@ msgctxt "period interval (eg \"$10 _every_ 2 weeks\")" msgid "every" msgstr "" -#: includes/wcs-time-functions.php:151 #. translators: period interval, placeholder is ordinal (eg "$10 every #. _2nd/3rd/4th_", etc) +#: includes/wcs-time-functions.php:151 msgctxt "period interval with ordinal number (e.g. \"every 2nd\"" msgid "every %s" msgstr "" @@ -5105,6 +5263,186 @@ msgctxt "no trial period" msgid "no" msgstr "" +#: includes/wcs-user-functions.php:279 +#: templates/single-product/add-to-cart/subscription.php:41 +#: templates/single-product/add-to-cart/variable-subscription.php:29 +msgid "Resubscribe" +msgstr "" + +#: node_modules/grunt-checktextdomain/test/expected/incorrect-domain-autocorrect.php:3 +#: node_modules/grunt-checktextdomain/test/expected/incorrect-domain-autocorrect.php:5 +#: node_modules/grunt-checktextdomain/test/expected/incorrect-domain-autocorrect.php:9 +#: node_modules/grunt-checktextdomain/test/expected/incorrect-domain-autocorrect.php:10 +#: node_modules/grunt-checktextdomain/test/expected/incorrect-domain-autocorrect.php:14 +#: node_modules/grunt-checktextdomain/test/expected/incorrect-domain-autocorrect.php:15 +#: node_modules/grunt-checktextdomain/test/expected/variable-domain-autocorrect.php:4 +#: node_modules/grunt-checktextdomain/test/expected/variable-domain-autocorrect.php:6 +#: node_modules/grunt-checktextdomain/test/expected/variable-domain-autocorrect.php:10 +#: node_modules/grunt-checktextdomain/test/expected/variable-domain-autocorrect.php:11 +#: node_modules/grunt-checktextdomain/test/expected/variable-domain-autocorrect.php:15 +#: node_modules/grunt-checktextdomain/test/expected/variable-domain-autocorrect.php:16 +#: node_modules/grunt-checktextdomain/test/fixtures/correct-domain.php:3 +#: node_modules/grunt-checktextdomain/test/fixtures/correct-domain.php:5 +#: node_modules/grunt-checktextdomain/test/fixtures/correct-domain.php:9 +#: node_modules/grunt-checktextdomain/test/fixtures/correct-domain.php:10 +#: node_modules/grunt-checktextdomain/test/fixtures/correct-domain.php:14 +#: node_modules/grunt-checktextdomain/test/fixtures/correct-domain.php:15 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain-autocorrect.php:3 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain-autocorrect.php:5 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain-autocorrect.php:9 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain-autocorrect.php:10 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain-autocorrect.php:14 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain-autocorrect.php:15 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain.php:3 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain.php:5 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain.php:9 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain.php:10 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain.php:14 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain.php:15 +#: node_modules/grunt-checktextdomain/test/fixtures/missing-domain.php:3 +#: node_modules/grunt-checktextdomain/test/fixtures/missing-domain.php:5 +#: node_modules/grunt-checktextdomain/test/fixtures/missing-domain.php:9 +#: node_modules/grunt-checktextdomain/test/fixtures/missing-domain.php:10 +#: node_modules/grunt-checktextdomain/test/fixtures/missing-domain.php:14 +#: node_modules/grunt-checktextdomain/test/fixtures/missing-domain.php:15 +#: node_modules/grunt-checktextdomain/test/fixtures/variable-domain-autocorrect.php:4 +#: node_modules/grunt-checktextdomain/test/fixtures/variable-domain-autocorrect.php:6 +#: node_modules/grunt-checktextdomain/test/fixtures/variable-domain-autocorrect.php:10 +#: node_modules/grunt-checktextdomain/test/fixtures/variable-domain-autocorrect.php:11 +#: node_modules/grunt-checktextdomain/test/fixtures/variable-domain-autocorrect.php:15 +#: node_modules/grunt-checktextdomain/test/fixtures/variable-domain-autocorrect.php:16 +msgid "Hello World" +msgstr "" + +#: node_modules/grunt-checktextdomain/test/expected/incorrect-domain-autocorrect.php:4 +#: node_modules/grunt-checktextdomain/test/expected/incorrect-domain-autocorrect.php:6 +#: node_modules/grunt-checktextdomain/test/expected/incorrect-domain-autocorrect.php:11 +#: node_modules/grunt-checktextdomain/test/expected/incorrect-domain-autocorrect.php:16 +#: node_modules/grunt-checktextdomain/test/expected/variable-domain-autocorrect.php:5 +#: node_modules/grunt-checktextdomain/test/expected/variable-domain-autocorrect.php:7 +#: node_modules/grunt-checktextdomain/test/expected/variable-domain-autocorrect.php:12 +#: node_modules/grunt-checktextdomain/test/expected/variable-domain-autocorrect.php:17 +#: node_modules/grunt-checktextdomain/test/fixtures/correct-domain.php:4 +#: node_modules/grunt-checktextdomain/test/fixtures/correct-domain.php:6 +#: node_modules/grunt-checktextdomain/test/fixtures/correct-domain.php:11 +#: node_modules/grunt-checktextdomain/test/fixtures/correct-domain.php:16 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain-autocorrect.php:4 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain-autocorrect.php:6 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain-autocorrect.php:11 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain-autocorrect.php:16 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain.php:4 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain.php:6 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain.php:11 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain.php:16 +#: node_modules/grunt-checktextdomain/test/fixtures/missing-domain.php:4 +#: node_modules/grunt-checktextdomain/test/fixtures/missing-domain.php:6 +#: node_modules/grunt-checktextdomain/test/fixtures/missing-domain.php:11 +#: node_modules/grunt-checktextdomain/test/fixtures/missing-domain.php:16 +#: node_modules/grunt-checktextdomain/test/fixtures/variable-domain-autocorrect.php:5 +#: node_modules/grunt-checktextdomain/test/fixtures/variable-domain-autocorrect.php:7 +#: node_modules/grunt-checktextdomain/test/fixtures/variable-domain-autocorrect.php:12 +#: node_modules/grunt-checktextdomain/test/fixtures/variable-domain-autocorrect.php:17 +msgctxt "verb" +msgid "Post" +msgstr "" + +#: node_modules/grunt-checktextdomain/test/expected/incorrect-domain-autocorrect.php:20 +#: node_modules/grunt-checktextdomain/test/expected/incorrect-domain-autocorrect.php:24 +#: node_modules/grunt-checktextdomain/test/expected/variable-domain-autocorrect.php:21 +#: node_modules/grunt-checktextdomain/test/expected/variable-domain-autocorrect.php:25 +#: node_modules/grunt-checktextdomain/test/fixtures/correct-domain.php:20 +#: node_modules/grunt-checktextdomain/test/fixtures/correct-domain.php:24 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain-autocorrect.php:20 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain-autocorrect.php:24 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain.php:20 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain.php:24 +#: node_modules/grunt-checktextdomain/test/fixtures/missing-domain.php:20 +#: node_modules/grunt-checktextdomain/test/fixtures/missing-domain.php:24 +#: node_modules/grunt-checktextdomain/test/fixtures/plurals.php:3 +#: node_modules/grunt-checktextdomain/test/fixtures/plurals.php:8 +#: node_modules/grunt-checktextdomain/test/fixtures/plurals.php:15 +#: node_modules/grunt-checktextdomain/test/fixtures/variable-domain-autocorrect.php:21 +#: node_modules/grunt-checktextdomain/test/fixtures/variable-domain-autocorrect.php:25 +msgid "%d apple" +msgid_plural "%d apples" +msgstr[0] "" +msgstr[1] "" + +#: node_modules/grunt-checktextdomain/test/expected/incorrect-domain-autocorrect.php:21 +#: node_modules/grunt-checktextdomain/test/expected/incorrect-domain-autocorrect.php:25 +#: node_modules/grunt-checktextdomain/test/expected/variable-domain-autocorrect.php:22 +#: node_modules/grunt-checktextdomain/test/expected/variable-domain-autocorrect.php:26 +#: node_modules/grunt-checktextdomain/test/fixtures/correct-domain.php:21 +#: node_modules/grunt-checktextdomain/test/fixtures/correct-domain.php:25 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain-autocorrect.php:21 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain-autocorrect.php:25 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain.php:21 +#: node_modules/grunt-checktextdomain/test/fixtures/incorrect-domain.php:25 +#: node_modules/grunt-checktextdomain/test/fixtures/missing-domain.php:25 +#: node_modules/grunt-checktextdomain/test/fixtures/plurals.php:4 +#: node_modules/grunt-checktextdomain/test/fixtures/plurals.php:9 +#: node_modules/grunt-checktextdomain/test/fixtures/plurals.php:16 +#: node_modules/grunt-checktextdomain/test/fixtures/variable-domain-autocorrect.php:22 +#: node_modules/grunt-checktextdomain/test/fixtures/variable-domain-autocorrect.php:26 +msgctxt "noun, job positions" +msgid "%d post" +msgid_plural "%d posts" +msgstr[0] "" +msgstr[1] "" + +#: node_modules/grunt-wp-i18n/test/fixtures/basic-theme/exclude/file.php:3 +#: node_modules/grunt-wp-i18n/test/fixtures/plugin-include/plugin-include.php:6 +msgid "Exclude" +msgstr "" + +#: node_modules/grunt-wp-i18n/test/fixtures/plugin-include/include/file.php:2 +msgid "Include" +msgstr "" + +#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/add-domain.php:2 +#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-all-domains.php:2 +#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-all-domains.php:3 +#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-all-domains.php:4 +#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-domains.php:2 +#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-domains.php:3 +msgid "String" +msgstr "" + +#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-all-domains.php:6 +#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-all-domains.php:7 +#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-all-domains.php:8 +msgctxt "a string" +msgid "String" +msgstr "" + +#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-all-domains.php:9 +#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-all-domains.php:10 +#: node_modules/grunt-wp-i18n/test/fixtures/text-domains/update-all-domains.php:11 +msgid "1 Star" +msgid_plural "%s Stars" +msgstr[0] "" +msgstr[1] "" + +#. translators: A single line translators comment. +#: node_modules/grunt-wp-i18n/test/fixtures/translator-comments/translator-comments.php:7 +msgid "A" +msgstr "" + +#. translators: A multiline translators comment. +#: node_modules/grunt-wp-i18n/test/fixtures/translator-comments/translator-comments.php:15 +msgid "B" +msgstr "" + +#. translators: placeholder is a currency symbol / code +#: templates/admin/deprecated/html-variation-price.php:20 +#: templates/admin/deprecated/html-variation-price.php:30 +msgid "Subscription Price (%s)" +msgstr "" + +#: templates/admin/deprecated/html-variation-price.php:46 +msgid "Subscription Periods" +msgstr "" + #: templates/admin/deprecated/html-variation-price.php:59 msgctxt "" "Edit product screen, between the Billing Period and Subscription Length " @@ -5112,15 +5450,28 @@ msgctxt "" msgid "for" msgstr "" +#: templates/admin/deprecated/html-variation-price.php:69 +msgid "Subscription Length" +msgstr "" + +#: templates/admin/deprecated/html-variation-price.php:85 +msgid "Sign-up Fee (%s)" +msgstr "" + +#: templates/admin/deprecated/html-variation-price.php:97 +#: templates/admin/deprecated/html-variation-price.php:104 +msgid "Free Trial" +msgstr "" + #: templates/admin/deprecated/html-variation-price.php:105 msgctxt "example number of days / weeks / months" msgid "e.g. 3" msgstr "" -#: templates/admin/deprecated/html-variation-price.php:118 -#: templates/admin/html-variation-price.php:27 #. translators: placeholder is trial period validation message if passed an #. invalid value (e.g. "Trial period can not exceed 4 weeks") +#: templates/admin/deprecated/html-variation-price.php:118 +#: templates/admin/html-variation-price.php:25 msgctxt "Trial period dropdown's description in pricing fields" msgid "" "An optional period of time to wait before charging the first recurring " @@ -5128,14 +5479,69 @@ msgid "" "subscription. %s" msgstr "" -#: templates/admin/html-variation-price.php:67 +#: templates/admin/deprecated/html-variation-synchronisation.php:30 +msgid "Synchronise Renewals" +msgstr "" + +#: templates/admin/deprecated/order-shipping-html.php:8 +msgid "Label" +msgstr "" + +#: templates/admin/deprecated/order-shipping-html.php:13 +msgid "Shipping Method" +msgstr "" + +#: templates/admin/deprecated/order-shipping-html.php:34 +#: templates/admin/deprecated/order-shipping-html.php:36 +msgid "Other" +msgstr "" + +#: templates/admin/deprecated/order-tax-html.php:17 +msgid "Recurring Sales Tax:" +msgstr "" + +#: templates/admin/deprecated/order-tax-html.php:21 +msgid "Shipping Tax:" +msgstr "" + +#: templates/admin/html-variation-price.php:29 +msgid "Subscription trial period:" +msgstr "" + +#: templates/admin/html-variation-price.php:47 +msgid "Billing interval:" +msgstr "" + +#: templates/admin/html-variation-price.php:54 +msgid "Billing Period:" +msgstr "" + +#: templates/admin/html-variation-price.php:65 msgctxt "Subscription Length dropdown's description in pricing fields" msgid "" -"Automatically expire the subscription after this length of time. This " -"length is in addition to any free trial or amount of time provided before a " +"Automatically expire the subscription after this length of time. This length " +"is in addition to any free trial or amount of time provided before a " "synchronised first renewal date." msgstr "" +#: templates/admin/status.php:10 +msgid "This section shows any information about Subscriptions." +msgstr "" + +#: templates/cart/cart-recurring-shipping.php:19 +msgid "Recurring shipping options can be selected on checkout." +msgstr "" + +#: templates/cart/cart-recurring-shipping.php:33 +msgid "Shipping costs will be calculated once you have provided your address." +msgstr "" + +#: templates/cart/cart-recurring-shipping.php:35 +msgid "" +"There are no shipping methods available. Please double check your address, " +"or contact us if you need any help." +msgstr "" + #: templates/checkout/form-change-payment-method.php:20 #: templates/emails/email-order-details.php:33 #: templates/myaccount/view-subscription.php:95 @@ -5154,6 +5560,87 @@ msgctxt "table headings in notification email" msgid "Totals" msgstr "" +#: templates/checkout/form-change-payment-method.php:55 +msgctxt "text on button on checkout page" +msgid "Change Payment Method" +msgstr "" + +#: templates/checkout/form-change-payment-method.php:82 +msgid "" +"Sorry, it seems no payment gateways support changing the recurring payment " +"method. Please contact us if you require assistance or to make alternate " +"arrangements." +msgstr "" + +#: templates/checkout/recurring-totals.php:19 +msgid "Recurring Totals" +msgstr "" + +#: templates/checkout/recurring-totals.php:28 +#: templates/checkout/recurring-totals.php:29 +msgid "Subtotal" +msgstr "" + +#: templates/checkout/recurring-totals.php:126 +#: templates/checkout/recurring-totals.php:127 +msgid "Recurring Total" +msgstr "" + +#. translators: $1: customer's billing first name and last name +#: templates/emails/admin-new-renewal-order.php:16 +#: templates/emails/plain/admin-new-renewal-order.php:16 +msgctxt "Used in admin email: new renewal order" +msgid "" +"You have received a subscription renewal order from %1$s. Their order is as " +"follows:" +msgstr "" + +#. translators: $1: customer's first name and last name, $2: how many +#. subscriptions customer switched +#: templates/emails/admin-new-switch-order.php:20 +#: templates/emails/plain/admin-new-switch-order.php:18 +msgctxt "Used in switch notification admin email" +msgid "" +"Customer %1$s has switched their subscription. The details of their new " +"subscription are as follows:" +msgid_plural "" +"Customer %1$s has switched %2$d of their subscriptions. The details of their " +"new subscriptions are as follows:" +msgstr[0] "" +msgstr[1] "" + +#: templates/emails/admin-new-switch-order.php:24 +msgid "Switch Order Details" +msgstr "" + +#: templates/emails/admin-new-switch-order.php:30 +#: templates/emails/customer-completed-switch-order.php:28 +msgid "New Subscription Details" +msgstr "" + +#. translators: %1$s: an order number, %2$s: the customer's full name, %3$s: +#. lowercase human time diff in the form returned by wcs_get_human_time_diff(), +#. e.g. 'in 12 hours' +#: templates/emails/admin-payment-retry.php:25 +msgctxt "In customer renewal invoice email" +msgid "" +"The automatic recurring payment for order #%d from %s has failed. The " +"payment will be retried %3$s." +msgstr "" + +#: templates/emails/admin-payment-retry.php:28 +#: templates/emails/plain/admin-payment-retry.php:21 +msgid "The renewal order is as follows:" +msgstr "" + +#. translators: $1: customer's billing first name and last name +#: templates/emails/cancelled-subscription.php:19 +#: templates/emails/plain/cancelled-subscription.php:16 +msgid "" +"A subscription belonging to %1$s has been cancelled. Their subscription's " +"details are as follows:" +msgstr "" + #: templates/emails/cancelled-subscription.php:27 #: templates/emails/email-order-details.php:35 #: templates/emails/expired-subscription.php:27 @@ -5162,92 +5649,85 @@ msgctxt "table headings in notification email" msgid "Price" msgstr "" +#: templates/emails/cancelled-subscription.php:28 +#: templates/emails/expired-subscription.php:28 +#: templates/emails/on-hold-subscription.php:28 wcs-functions.php:279 +msgctxt "table heading" +msgid "Last Order Date" +msgstr "" + #: templates/emails/cancelled-subscription.php:29 msgctxt "table headings in notification email" msgid "End of Prepaid Term" msgstr "" -#: templates/emails/expired-subscription.php:29 -msgctxt "table headings in notification email" -msgid "End Date" +#: templates/emails/cancelled-subscription.php:46 +#: templates/emails/expired-subscription.php:46 +#: templates/emails/on-hold-subscription.php:46 +msgid "-" msgstr "" -#: templates/emails/on-hold-subscription.php:29 -msgctxt "table headings in notification email" -msgid "Date Suspended" -msgstr "" - -#: templates/checkout/form-change-payment-method.php:55 -msgctxt "text on button on checkout page" -msgid "Change Payment Method" -msgstr "" - -#: templates/emails/admin-new-renewal-order.php:16 -#: templates/emails/plain/admin-new-renewal-order.php:16 -#. translators: $1: customer's billing first name and last name -msgctxt "Used in admin email: new renewal order" +#. translators: placeholder is the name of the site +#: templates/emails/customer-completed-renewal-order.php:20 +#: templates/emails/plain/customer-completed-renewal-order.php:16 msgid "" -"You have received a subscription renewal order from %1$s. Their order is as " -"follows:" +"Hi there. Your subscription renewal order with %s has been completed. Your " +"order details are shown below for your reference:" msgstr "" -#: templates/emails/admin-new-switch-order.php:20 -#: templates/emails/plain/admin-new-switch-order.php:18 -#. translators: $1: customer's first name and last name, $2: how many -#. subscriptions customer switched -msgctxt "Used in switch notification admin email" +#. translators: placeholder is the name of the site +#: templates/emails/customer-completed-switch-order.php:20 +#: templates/emails/plain/customer-completed-switch-order.php:16 msgid "" -"Customer %1$s has switched their subscription. The details of their new " -"subscription are as follows:" -msgid_plural "" -"Customer %1$s has switched %2$d of their subscriptions. The details of " -"their new subscriptions are as follows:" -msgstr[0] "" -msgstr[1] "" - -#: templates/emails/admin-payment-retry.php:25 -#. translators: %1$s: an order number, %2$s: the customer's full name, %3$s: -#. lowercase human time diff in the form returned by wcs_get_human_time_diff(), -#. e.g. 'in 12 hours' -msgctxt "In customer renewal invoice email" -msgid "" -"The automatic recurring payment for order #%d from %s has failed. The " -"payment will be retried %3$s." +"Hi there. You have successfully changed your subscription items on %s. Your " +"new order and subscription details are shown below for your reference:" msgstr "" -#: templates/emails/customer-payment-retry.php:19 -#: templates/emails/plain/customer-payment-retry.php:16 #. translators: %1$s: name of the blog, %2$s: lowercase human time diff in the #. form returned by wcs_get_human_time_diff(), e.g. 'in 12 hours' +#: templates/emails/customer-payment-retry.php:19 +#: templates/emails/plain/customer-payment-retry.php:16 msgctxt "In customer renewal invoice email" msgid "" "The automatic payment to renew your subscription with %1$s has failed. We " "will retry the payment %2$s." msgstr "" -#: templates/emails/customer-payment-retry.php:25 #. translators: %1$s %2$s: link markup to checkout payment url, note: no full #. stop due to url at the end +#: templates/emails/customer-payment-retry.php:25 msgctxt "In customer renewal invoice email" msgid "" "To reactivate the subscription now, you can also login and pay for the " "renewal from your account page: %1$sPay Now »%2$s" msgstr "" -#: templates/emails/customer-renewal-invoice.php:20 -#: templates/emails/plain/customer-renewal-invoice.php:17 -#. translators: %1$s: name of the blog, %2$s: link to checkout payment url, -#. note: no full stop due to url at the end -msgctxt "In customer renewal invoice email" +#: templates/emails/customer-processing-renewal-order.php:17 +#: templates/emails/plain/customer-processing-renewal-order.php:15 msgid "" -"An invoice has been created for you to renew your subscription with %1$s. " -"To pay for this invoice please use the following link: %2$s" +"Your subscription renewal order has been received and is now being " +"processed. Your order details are shown below for your reference:" msgstr "" -#: templates/emails/customer-renewal-invoice.php:27 -#: templates/emails/plain/customer-renewal-invoice.php:20 #. translators: %1$s: name of the blog, %2$s: link to checkout payment url, #. note: no full stop due to url at the end +#: templates/emails/customer-renewal-invoice.php:20 +#: templates/emails/plain/customer-renewal-invoice.php:17 +msgctxt "In customer renewal invoice email" +msgid "" +"An invoice has been created for you to renew your subscription with %1$s. To " +"pay for this invoice please use the following link: %2$s" +msgstr "" + +#: templates/emails/customer-renewal-invoice.php:20 +#: templates/emails/customer-renewal-invoice.php:27 +msgid "Pay Now »" +msgstr "" + +#. translators: %1$s: name of the blog, %2$s: link to checkout payment url, +#. note: no full stop due to url at the end +#: templates/emails/customer-renewal-invoice.php:27 +#: templates/emails/plain/customer-renewal-invoice.php:20 msgctxt "In customer renewal invoice email" msgid "" "The automatic payment to renew your subscription with %1$s has failed. To " @@ -5255,110 +5735,253 @@ msgid "" "account page: %2$s" msgstr "" -#: templates/emails/plain/admin-payment-retry.php:20 +#. translators: $1-$2: opening and closing
    tags $3: order's order number +#. $4: date of order in tags $2: subscription's order +#. number +#: templates/emails/email-order-details.php:25 +msgctxt "Used in email notification" +msgid "Subscription %1$s#%2$s%3$s" +msgstr "" + +#. translators: $1: customer's billing first name and last name +#: templates/emails/expired-subscription.php:19 +#: templates/emails/plain/expired-subscription.php:16 +msgid "" +"A subscription belonging to %1$s has expired. Their subscription's details " +"are as follows:" +msgstr "" + +#: templates/emails/expired-subscription.php:29 +msgctxt "table headings in notification email" +msgid "End Date" +msgstr "" + +#. translators: $1: customer's billing first name and last name +#: templates/emails/on-hold-subscription.php:19 +#: templates/emails/plain/on-hold-subscription.php:16 +msgid "" +"A subscription belonging to %1$s has been suspended by the user. Their " +"subscription's details are as follows:" +msgstr "" + +#: templates/emails/on-hold-subscription.php:29 +msgctxt "table headings in notification email" +msgid "Date Suspended" +msgstr "" + #. translators: %1$s: an order number, %2$s: the customer's full name, %3$s: #. lowercase human time diff in the form returned by wcs_get_human_time_diff(), #. e.g. 'in 12 hours' +#: templates/emails/plain/admin-payment-retry.php:20 msgctxt "In customer renewal invoice email" msgid "" "The automatic recurring payment for order #%1$s from %2$s has failed. The " "payment will be retried %3$s." msgstr "" -#: templates/emails/plain/customer-payment-retry.php:19 +#. translators: placeholder is last time subscription was paid +#: templates/emails/plain/cancelled-subscription.php:32 +#: templates/emails/plain/expired-subscription.php:32 +msgid "Last Order Date: %s" +msgstr "" + +#. translators: placeholder is localised date string +#: templates/emails/plain/cancelled-subscription.php:39 +msgid "End of Prepaid Term: %s" +msgstr "" + +#. translators: placeholder is either view or edit url for the subscription +#: templates/emails/plain/cancelled-subscription.php:44 +#: templates/emails/plain/expired-subscription.php:44 +#: templates/emails/plain/on-hold-subscription.php:40 +#: templates/emails/plain/subscription-info.php:21 +msgctxt "in plain emails for subscription information" +msgid "View Subscription: %s" +msgstr "" + +#. translators: placeholder is order's view url +#: templates/emails/plain/customer-completed-switch-order.php:23 +msgid "View your order: %s" +msgstr "" + +#. translators: placeholder is subscription's view url +#: templates/emails/plain/customer-completed-switch-order.php:34 +msgid "View your subscription: %s" +msgstr "" + #. translators: %1$s: link to checkout payment url, note: no full stop due to #. url at the end +#: templates/emails/plain/customer-payment-retry.php:19 msgctxt "In customer renewal invoice email" msgid "" "To reactivate the subscription now, you can also login and pay for the " "renewal from your account page: %1$s" msgstr "" -#: templates/emails/email-order-details.php:22 -#. translators: $1-$2: opening and closing tags $3: order's order number -#. $4: date of order in tags $2: subscription's order -#. number -msgctxt "Used in email notification" -msgid "Subscription %1$s#%2$s%3$s" +#: templates/emails/plain/email-order-details.php:17 +msgid "Order date: %s" msgstr "" -#: templates/emails/plain/cancelled-subscription.php:44 -#: templates/emails/plain/expired-subscription.php:44 -#: templates/emails/plain/on-hold-subscription.php:40 -#: templates/emails/plain/subscription-info.php:21 -#. translators: placeholder is either view or edit url for the subscription -msgctxt "in plain emails for subscription information" -msgid "View Subscription: %s" +#. translators: placeholder is localised date string +#: templates/emails/plain/expired-subscription.php:39 +msgid "End Date: %s" +msgstr "" + +#. translators: placeholder is last time subscription was paid +#: templates/emails/plain/on-hold-subscription.php:32 +msgid "Last Order: %s" +msgstr "" + +#. translators: placeholder is localised date string +#: templates/emails/plain/on-hold-subscription.php:36 +msgid "Date Suspended: %s" +msgstr "" + +#: templates/emails/plain/subscription-info.php:16 +#: templates/emails/subscription-info.php:14 +msgid "Subscription Information:" msgstr "" -#: templates/emails/plain/subscription-info.php:19 #. translators: placeholder is subscription's number +#: templates/emails/plain/subscription-info.php:19 msgctxt "in plain emails for subscription information" msgid "Subscription: %s" msgstr "" -#: templates/emails/plain/subscription-info.php:23 #. translators: placeholder is localised start date +#: templates/emails/plain/subscription-info.php:23 msgctxt "in plain emails for subscription information" msgid "Start Date: %s" msgstr "" -#: templates/emails/plain/subscription-info.php:27 -#. translators: placeholder is localised end date, or "when cancelled" -msgctxt "in plain emails for subscription information" -msgid "End Date: %s" -msgstr "" - -#: templates/emails/plain/subscription-info.php:29 -#. translators: placeholder is the formatted order total for the subscription -msgctxt "in plain emails for subscription information" -msgid "Price: %s" -msgstr "" - -#: templates/emails/plain/email-order-details.php:17 -msgctxt "date format for order date in notification emails" -msgid "jS F Y" -msgstr "" - #: templates/emails/plain/subscription-info.php:25 #: templates/emails/subscription-info.php:29 msgctxt "Used as end date for an indefinite subscription" msgid "When Cancelled" msgstr "" +#. translators: placeholder is localised end date, or "when cancelled" +#: templates/emails/plain/subscription-info.php:27 +msgctxt "in plain emails for subscription information" +msgid "End Date: %s" +msgstr "" + +#. translators: placeholder is the formatted order total for the subscription +#: templates/emails/plain/subscription-info.php:29 +msgctxt "in plain emails for subscription information" +msgid "Price: %s" +msgstr "" + +#: templates/emails/subscription-info.php:19 +#: templates/myaccount/view-subscription.php:36 +#: tests/unit/scheduler/scheduler.php:61 wcs-functions.php:276 +msgctxt "table heading" +msgid "Start Date" +msgstr "" + +#: templates/emails/subscription-info.php:20 +#: templates/myaccount/view-subscription.php:42 +#: tests/unit/scheduler/scheduler.php:66 wcs-functions.php:281 +msgctxt "table heading" +msgid "End Date" +msgstr "" + +#: templates/emails/subscription-info.php:21 +msgctxt "table heading" +msgid "Price" +msgstr "" + #: templates/emails/subscription-info.php:27 msgctxt "subscription number in email table. (eg: #106)" msgid "#%s" msgstr "" +#: templates/myaccount/my-subscriptions.php:17 +msgid "My Subscriptions" +msgstr "" + +#: templates/myaccount/my-subscriptions.php:27 +#: templates/myaccount/my-subscriptions.php:43 +#: templates/myaccount/related-subscriptions.php:22 +#: templates/myaccount/related-subscriptions.php:38 +#: tests/unit/scheduler/scheduler.php:63 wcs-functions.php:278 +msgctxt "table heading" +msgid "Next Payment" +msgstr "" + +#: templates/myaccount/my-subscriptions.php:36 +#: templates/myaccount/related-subscriptions.php:30 +msgid "ID" +msgstr "" + #: templates/myaccount/my-subscriptions.php:54 -#: templates/myaccount/related-orders.php:47 +#: templates/myaccount/related-orders.php:48 #: templates/myaccount/related-subscriptions.php:41 msgctxt "Used in data attribute. Escaped" msgid "Total" msgstr "" #: templates/myaccount/my-subscriptions.php:58 -#: templates/myaccount/related-orders.php:72 +#: templates/myaccount/related-orders.php:73 #: templates/myaccount/related-subscriptions.php:45 msgctxt "view a subscription" msgid "View" msgstr "" -#: templates/myaccount/related-orders.php:59 +#. translators: placeholders are opening and closing link tags to take to the +#. shop page +#: templates/myaccount/my-subscriptions.php:71 +msgid "" +"You have no active subscriptions. Find your first subscription in the %sstore" +"%s." +msgstr "" + +#: templates/myaccount/related-orders.php:22 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1537 +#: tmp/old/wordpress/wp-admin/includes/media.php:1233 +#: tmp/old/wordpress/wp-admin/includes/media.php:2245 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:863 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1537 +#: tmp/wordpress/wp-admin/includes/media.php:1233 +#: tmp/wordpress/wp-admin/includes/media.php:2245 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:863 +msgid "Order" +msgstr "" + +#. translators: $1: formatted order total for the order, $2: number of items +#. bought +#: templates/myaccount/related-orders.php:51 +msgid "%1$s for %2$d item" +msgid_plural "%1$s for %2$d items" +msgstr[0] "" +msgstr[1] "" + +#: templates/myaccount/related-orders.php:60 msgctxt "pay for a subscription" msgid "Pay" msgstr "" +#: templates/myaccount/related-subscriptions.php:15 +msgid "Related Subscriptions" +msgstr "" + +#: templates/myaccount/view-subscription.php:20 +msgid "My Account" +msgstr "" + #: templates/myaccount/view-subscription.php:40 msgctxt "admin subscription table header" -msgid "Last Payment Date" +msgid "Last Order Date" msgstr "" #: templates/myaccount/view-subscription.php:41 @@ -5371,96 +5994,38989 @@ msgctxt "admin subscription table header" msgid "Trial End Date" msgstr "" +#: templates/myaccount/view-subscription.php:57 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:236 +#: tmp/old/wordpress/wp-admin/includes/media.php:2246 +#: tmp/old/wordpress/wp-admin/users.php:60 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:236 +#: tmp/wordpress/wp-admin/includes/media.php:2246 +#: tmp/wordpress/wp-admin/users.php:60 +msgid "Actions" +msgstr "" + +#: templates/myaccount/view-subscription.php:69 +msgid "Subscription Updates" +msgstr "" + #: templates/myaccount/view-subscription.php:75 msgctxt "date on subscription updates list. Will be localized" msgid "l jS \\o\\f F Y, h:ia" msgstr "" -#: wcs-functions.php:127 -msgctxt "Error message while creating a subscription" -msgid "Invalid date. The date must be a string and of the format: \"Y-m-d H:i:s\"." +#: templates/myaccount/view-subscription.php:88 +msgid "Subscription Totals" +msgstr "" + +#: templates/myaccount/view-subscription.php:109 +msgid "Are you sure you want remove this item from your subscription?" +msgstr "" + +#: templates/single-product/add-to-cart/subscription.php:43 +#: templates/single-product/add-to-cart/variable-subscription.php:31 +msgid "You have an active subscription to this product already." +msgstr "" + +#: templates/single-product/add-to-cart/variable-subscription.php:24 +msgid "This product is currently out of stock and unavailable." +msgstr "" + +#: templates/single-product/add-to-cart/variable-subscription.php:43 +#: tmp/old/wordpress/wp-admin/theme-install.php:188 +#: tmp/old/wordpress/wp-admin/theme-install.php:208 +#: tmp/old/wordpress/wp-includes/media-template.php:598 +#: tmp/old/wordpress/wp-includes/script-loader.php:718 +#: tmp/wordpress/wp-admin/theme-install.php:188 +#: tmp/wordpress/wp-admin/theme-install.php:208 +#: tmp/wordpress/wp-includes/media-template.php:598 +#: tmp/wordpress/wp-includes/script-loader.php:718 +msgid "Clear" +msgstr "" + +#: tests/unit/scheduler/scheduler.php:62 wcs-functions.php:277 +msgctxt "table heading" +msgid "Trial End" +msgstr "" + +#: tests/unit/scheduler/scheduler.php:64 +msgctxt "table heading" +msgid "Last Payment" +msgstr "" + +#: tests/unit/scheduler/scheduler.php:65 wcs-functions.php:280 +msgctxt "table heading" +msgid "Cancelled Date" +msgstr "" + +#: tests/unit/wcs_test_wcs_functions.php:782 +msgctxt "table column header" +msgid "Big Bang" +msgstr "" + +#: tmp/old/wordpress/wp-activate.php:78 tmp/wordpress/wp-activate.php:78 +msgid "Activation Key Required" +msgstr "" + +#: tmp/old/wordpress/wp-activate.php:81 tmp/wordpress/wp-activate.php:81 +msgid "Activation Key:" +msgstr "" + +#: tmp/old/wordpress/wp-activate.php:85 +#: tmp/old/wordpress/wp-admin/includes/class-theme-installer-skin.php:71 +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader-skin.php:61 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:523 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:474 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:459 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:630 +#: tmp/old/wordpress/wp-admin/includes/class-wp-themes-list-table.php:188 +#: tmp/old/wordpress/wp-admin/theme-install.php:266 +#: tmp/old/wordpress/wp-admin/theme-install.php:295 +#: tmp/old/wordpress/wp-admin/themes.php:288 +#: tmp/old/wordpress/wp-admin/themes.php:421 +#: tmp/old/wordpress/wp-admin/themes.php:480 +#: tmp/old/wordpress/wp-includes/script-loader.php:696 +#: tmp/old/wordpress/wp-includes/script-loader.php:697 +#: tmp/wordpress/wp-activate.php:85 +#: tmp/wordpress/wp-admin/includes/class-theme-installer-skin.php:71 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader-skin.php:61 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:523 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:474 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:459 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:630 +#: tmp/wordpress/wp-admin/includes/class-wp-themes-list-table.php:188 +#: tmp/wordpress/wp-admin/theme-install.php:266 +#: tmp/wordpress/wp-admin/theme-install.php:295 +#: tmp/wordpress/wp-admin/themes.php:288 tmp/wordpress/wp-admin/themes.php:421 +#: tmp/wordpress/wp-admin/themes.php:480 +#: tmp/wordpress/wp-includes/script-loader.php:696 +#: tmp/wordpress/wp-includes/script-loader.php:697 +msgid "Activate" +msgstr "" + +#: tmp/old/wordpress/wp-activate.php:97 tmp/old/wordpress/wp-activate.php:131 +#: tmp/wordpress/wp-activate.php:97 tmp/wordpress/wp-activate.php:131 +msgid "Your account is now active!" +msgstr "" + +#. translators: 1: login URL, 2: username, 3: user email, 4: lost password URL +#: tmp/old/wordpress/wp-activate.php:103 tmp/wordpress/wp-activate.php:103 +msgid "" +"Your account has been activated. You may now log in to " +"the site using your chosen username of “%2$s”. Please check your " +"email inbox at %3$s for your password and login instructions. If you do not " +"receive an email, please check your junk or spam folder. If you still do not " +"receive an email within an hour, you can reset your " +"password." +msgstr "" + +#. translators: 1: site URL, 2: site domain, 3: username, 4: user email, 5: +#. lost password URL +#: tmp/old/wordpress/wp-activate.php:112 tmp/wordpress/wp-activate.php:112 +msgid "" +"Your site at %2$s is active. You may now log in to your " +"site using your chosen username of “%3$s”. Please check your " +"email inbox at %4$s for your password and login instructions. If you do not " +"receive an email, please check your junk or spam folder. If you still do not " +"receive an email within an hour, you can reset your " +"password." +msgstr "" + +#: tmp/old/wordpress/wp-activate.php:123 tmp/wordpress/wp-activate.php:123 +msgid "An error occurred during the activation" +msgstr "" + +#: tmp/old/wordpress/wp-activate.php:134 tmp/old/wordpress/wp-signup.php:228 +#: tmp/wordpress/wp-activate.php:134 tmp/wordpress/wp-signup.php:228 +msgid "Username:" +msgstr "" + +#: tmp/old/wordpress/wp-activate.php:135 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:161 +#: tmp/old/wordpress/wp-includes/post-template.php:1602 +#: tmp/wordpress/wp-activate.php:135 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:161 +#: tmp/wordpress/wp-includes/post-template.php:1602 +msgid "Password:" +msgstr "" + +#. translators: 1: site URL, 2: login URL +#: tmp/old/wordpress/wp-activate.php:145 tmp/wordpress/wp-activate.php:145 +msgid "" +"Your account is now activated. View your site or Log in" +msgstr "" + +#. translators: 1: login URL, 2: network home URL +#: tmp/old/wordpress/wp-activate.php:150 tmp/wordpress/wp-activate.php:150 +msgid "" +"Your account is now activated. Log in or go back to the " +"homepage." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:28 tmp/wordpress/wp-admin/about.php:28 +msgid "About" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:35 tmp/wordpress/wp-admin/about.php:35 +msgid "Welcome to WordPress %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:37 +#: tmp/old/wordpress/wp-admin/credits.php:23 +#: tmp/old/wordpress/wp-admin/freedoms.php:22 +#: tmp/wordpress/wp-admin/about.php:37 tmp/wordpress/wp-admin/credits.php:23 +#: tmp/wordpress/wp-admin/freedoms.php:22 +msgid "" +"Thank you for updating to the latest version! WordPress %s helps you get " +"your site set up the way you want it." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:41 +#: tmp/old/wordpress/wp-admin/credits.php:28 +#: tmp/old/wordpress/wp-admin/freedoms.php:27 +#: tmp/wordpress/wp-admin/about.php:41 tmp/wordpress/wp-admin/credits.php:28 +#: tmp/wordpress/wp-admin/freedoms.php:27 +msgid "What’s New" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:42 +#: tmp/old/wordpress/wp-admin/credits.php:13 +#: tmp/old/wordpress/wp-admin/credits.php:29 +#: tmp/old/wordpress/wp-admin/freedoms.php:28 +#: tmp/wordpress/wp-admin/about.php:42 tmp/wordpress/wp-admin/credits.php:13 +#: tmp/wordpress/wp-admin/credits.php:29 tmp/wordpress/wp-admin/freedoms.php:28 +msgid "Credits" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:43 +#: tmp/old/wordpress/wp-admin/credits.php:30 +#: tmp/old/wordpress/wp-admin/freedoms.php:12 +#: tmp/old/wordpress/wp-admin/freedoms.php:29 +#: tmp/wordpress/wp-admin/about.php:43 tmp/wordpress/wp-admin/credits.php:30 +#: tmp/wordpress/wp-admin/freedoms.php:12 +#: tmp/wordpress/wp-admin/freedoms.php:29 +msgid "Freedoms" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:47 +#: tmp/old/wordpress/wp-admin/about.php:264 tmp/wordpress/wp-admin/about.php:47 +#: tmp/wordpress/wp-admin/about.php:264 +msgid "Maintenance and Security Releases" +msgstr "" + +#. translators: 1: WordPress version number, 2: plural number of bugs. More +#. than one security issue. +#: tmp/old/wordpress/wp-admin/about.php:48 +#: tmp/old/wordpress/wp-admin/about.php:55 +#: tmp/old/wordpress/wp-admin/about.php:280 tmp/wordpress/wp-admin/about.php:48 +#: tmp/wordpress/wp-admin/about.php:55 tmp/wordpress/wp-admin/about.php:280 +msgid "" +"Version %1$s addressed some security issues and fixed %2$s " +"bug." +msgid_plural "" +"Version %1$s addressed some security issues and fixed %2$s " +"bugs." +msgstr[0] "" +msgstr[1] "" + +#. translators: %s: Codex URL +#: tmp/old/wordpress/wp-admin/about.php:50 +#: tmp/old/wordpress/wp-admin/about.php:53 +#: tmp/old/wordpress/wp-admin/about.php:57 +#: tmp/old/wordpress/wp-admin/about.php:284 tmp/wordpress/wp-admin/about.php:50 +#: tmp/wordpress/wp-admin/about.php:53 tmp/wordpress/wp-admin/about.php:57 +#: tmp/wordpress/wp-admin/about.php:284 +msgid "For more information, see the release notes." +msgstr "" + +#. translators: %s: WordPress version number +#: tmp/old/wordpress/wp-admin/about.php:52 +#: tmp/old/wordpress/wp-admin/about.php:269 tmp/wordpress/wp-admin/about.php:52 +#: tmp/wordpress/wp-admin/about.php:269 +msgid "Version %s addressed some security issues." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:69 tmp/wordpress/wp-admin/about.php:69 +msgid "Presenting Twenty Seventeen" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:70 tmp/wordpress/wp-admin/about.php:70 +msgid "" +"A brand new default theme brings your site to life with immersive featured " +"images and video headers." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:76 tmp/wordpress/wp-admin/about.php:76 +msgid "" +"Twenty Seventeen focuses on business sites and features a customizable front " +"page with multiple sections. Personalize it with widgets, navigation, social " +"menus, a logo, custom colors, and more. Our default theme for 2017 works " +"great in many languages, on any device, and for a wide range of users." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:82 tmp/wordpress/wp-admin/about.php:82 +msgid "Your Site, Your Way" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:83 tmp/wordpress/wp-admin/about.php:83 +msgid "" +"WordPress 4.7 adds new features to the customizer to help take you through " +"the initial setup of a theme, with non-destructive live previews of all your " +"changes in one uninterrupted workflow." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:88 tmp/wordpress/wp-admin/about.php:88 +msgid "Theme Starter Content" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:89 tmp/wordpress/wp-admin/about.php:89 +msgid "" +"To help give you a solid base to build from, individual themes can provide " +"starter content that appears when you go to customize your brand new site. " +"This can range from placing a business information widget in the best " +"location to providing a sample menu with social icon links to a static front " +"page complete with beautiful images. Don’t worry - nothing new will " +"appear on the live site until you’re ready to save and publish your " +"initial theme setup." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:106 +#: tmp/wordpress/wp-admin/about.php:106 +msgid "Edit Shortcuts" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:116 +#: tmp/wordpress/wp-admin/about.php:116 +msgid "" +"Visible icons appear to show you which parts of your site can be customized " +"while live previewing. Click on a shortcut and get straight to editing. " +"Paired with starter content, getting started with customizing your site is " +"faster than ever." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:119 +#: tmp/wordpress/wp-admin/about.php:119 +msgid "Video Headers" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:129 +#: tmp/wordpress/wp-admin/about.php:129 +msgid "" +"Sometimes a big atmospheric video as a moving header image is just what you " +"need to showcase your wares; go ahead and try it out with Twenty Seventeen. " +"Need some video inspiration? Try searching for sites with video headers " +"available for download and use." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:135 +#: tmp/wordpress/wp-admin/about.php:135 +msgid "Smoother Menu Building" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:137 +#: tmp/wordpress/wp-admin/about.php:137 +msgid "" +"Many menus for sites contain links to the pages of your site, but what " +"happens when you don’t have any pages yet? Now you can add new pages " +"while building menus instead of leaving the customizer and abandoning your " +"changes. Once you’ve published your customizations, you’ll have " +"new pages ready for you to fill with content." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:140 +#: tmp/old/wordpress/wp-includes/post.php:126 +#: tmp/old/wordpress/wp-includes/post.php:127 +#: tmp/wordpress/wp-admin/about.php:140 tmp/wordpress/wp-includes/post.php:126 +#: tmp/wordpress/wp-includes/post.php:127 +msgid "Custom CSS" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:142 +#: tmp/wordpress/wp-admin/about.php:142 +msgid "" +"Sometimes you just need a few visual tweaks to make your site perfect. " +"WordPress 4.7 allows you to add custom CSS and instantly see how your " +"changes affect your site. The live preview allows you to work quickly " +"without page refreshes slowing you down." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:150 +#: tmp/wordpress/wp-admin/about.php:150 +msgid "PDF Thumbnail Previews" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:152 +#: tmp/wordpress/wp-admin/about.php:152 +msgid "" +"Managing your document collection is easier with WordPress 4.7. Uploading " +"PDFs will generate thumbnail images so you can more easily distinguish " +"between all your documents." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:155 +#: tmp/wordpress/wp-admin/about.php:155 +msgid "Dashboard in your language" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:157 +#: tmp/wordpress/wp-admin/about.php:157 +msgid "" +"Just because your site is in one language doesn’t mean that everybody " +"helping manage it prefers that language for their admin. Add more languages " +"to your site and a user language option will show up in your user’s " +"profiles." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:164 +#: tmp/wordpress/wp-admin/about.php:164 +msgid "Introducing REST API Content Endpoints" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:165 +#: tmp/wordpress/wp-admin/about.php:165 +msgid "" +"WordPress 4.7 comes with REST API endpoints for posts, comments, terms, " +"users, meta, and settings." +msgstr "" + +#. translators: %s: https://developer.wordpress.org/rest-api/ +#: tmp/old/wordpress/wp-admin/about.php:170 +#: tmp/wordpress/wp-admin/about.php:170 +msgid "" +"Content endpoints provide machine-readable external access to your WordPress " +"site with a clear, standards-driven interface, paving the way for new and " +"innovative methods of interacting with sites through plugins, themes, apps, " +"and beyond. Ready to get started with development? Check out " +"the REST API reference." +msgstr "" + +#. translators: %s: smiling face with smiling eyes emoji +#: tmp/old/wordpress/wp-admin/about.php:182 +#: tmp/wordpress/wp-admin/about.php:182 +msgid "Even More Developer Happiness %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:189 +#: tmp/wordpress/wp-admin/about.php:189 +msgid "Post Type Templates" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:190 +#: tmp/wordpress/wp-admin/about.php:190 +msgid "" +"By opening up the page template functionality to all post types, theme " +"developers have even more flexibility with the WordPress template hierarchy." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:193 +#: tmp/wordpress/wp-admin/about.php:193 +msgid "More Theme API Goodies" +msgstr "" + +#. translators: %s: +#. https://make.wordpress.org/core/2016/09/09/new-functions-hooks-and-behaviour-for-theme-developers-in-wordpress-4-7/ +#: tmp/old/wordpress/wp-admin/about.php:197 +#: tmp/wordpress/wp-admin/about.php:197 +msgid "" +"WordPress 4.7 includes new functions, hooks, and behavior " +"for theme developers." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:203 +#: tmp/wordpress/wp-admin/about.php:203 +msgid "Custom Bulk Actions" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:204 +#: tmp/wordpress/wp-admin/about.php:204 +msgid "List tables, now with more than bulk edit and delete." +msgstr "" + +#. translators: %s: +#. https://make.wordpress.org/core/2016/09/08/wp_hook-next-generation-actions-and-filters/ +#: tmp/old/wordpress/wp-admin/about.php:214 +#: tmp/wordpress/wp-admin/about.php:214 +msgid "" +"The code that lies beneath actions and filters has been overhauled and " +"modernized, fixing bugs along the way." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:220 +#: tmp/wordpress/wp-admin/about.php:220 +msgid "Settings Registration API" +msgstr "" + +#. translators: 1: register_setting(), 2: +#. https://make.wordpress.org/core/2016/10/26/registering-your-settings-in-wordpress-4-7/ +#: tmp/old/wordpress/wp-admin/about.php:224 +#: tmp/wordpress/wp-admin/about.php:224 +msgid "" +"%1$s has been enhanced to include type, description, " +"and REST API visibility." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:231 +#: tmp/wordpress/wp-admin/about.php:231 +msgid "Customize Changesets" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:232 +#: tmp/wordpress/wp-admin/about.php:232 +msgid "" +"Customize changesets make changes in the customizer persistent, like " +"autosave drafts. They also make exciting new features like starter content " +"possible." +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:243 +#: tmp/wordpress/wp-admin/about.php:243 +msgid "Return to Updates" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:243 +#: tmp/wordpress/wp-admin/about.php:243 +msgid "Return to Dashboard → Updates" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:246 +#: tmp/wordpress/wp-admin/about.php:246 +msgid "Go to Dashboard → Home" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:246 +#: tmp/wordpress/wp-admin/about.php:246 +msgid "Go to Dashboard" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:257 +#: tmp/wordpress/wp-admin/about.php:257 +msgid "Maintenance Release" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:258 +#: tmp/wordpress/wp-admin/about.php:258 +msgid "Maintenance Releases" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:260 +#: tmp/wordpress/wp-admin/about.php:260 +msgid "Security Release" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:261 +#: tmp/wordpress/wp-admin/about.php:261 +msgid "Security Releases" +msgstr "" + +#: tmp/old/wordpress/wp-admin/about.php:263 +#: tmp/wordpress/wp-admin/about.php:263 +msgid "Maintenance and Security Release" +msgstr "" + +#. translators: %s: WordPress version number +#: tmp/old/wordpress/wp-admin/about.php:267 +#: tmp/wordpress/wp-admin/about.php:267 +msgid "Version %s addressed one security issue." +msgstr "" + +#. translators: 1: WordPress version number, 2: plural number of bugs. +#: tmp/old/wordpress/wp-admin/about.php:272 +#: tmp/wordpress/wp-admin/about.php:272 +msgid "Version %1$s addressed %2$s bug." +msgid_plural "Version %1$s addressed %2$s bugs." +msgstr[0] "" +msgstr[1] "" + +#. translators: 1: WordPress version number, 2: plural number of bugs. Singular +#. security issue. +#: tmp/old/wordpress/wp-admin/about.php:276 +#: tmp/wordpress/wp-admin/about.php:276 +msgid "" +"Version %1$s addressed a security issue and fixed %2$s bug." +msgid_plural "" +"Version %1$s addressed a security issue and fixed %2$s bugs." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/admin-footer.php:34 +#: tmp/wordpress/wp-admin/admin-footer.php:34 +msgid "Thank you for creating with WordPress." +msgstr "" + +#: tmp/old/wordpress/wp-admin/admin-footer.php:34 +#: tmp/old/wordpress/wp-admin/install.php:80 +#: tmp/old/wordpress/wp-admin/maint/repair.php:26 +#: tmp/old/wordpress/wp-admin/setup-config.php:102 +#: tmp/old/wordpress/wp-admin/upgrade.php:71 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/footer.php:25 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/footer.php:21 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/footer/site-info.php:13 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/footer.php:51 +#: tmp/old/wordpress/wp-includes/admin-bar.php:148 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-meta.php:69 +#: tmp/old/wordpress/wp-login.php:103 +#: tmp/wordpress/wp-admin/admin-footer.php:34 +#: tmp/wordpress/wp-admin/install.php:80 +#: tmp/wordpress/wp-admin/maint/repair.php:26 +#: tmp/wordpress/wp-admin/setup-config.php:102 +#: tmp/wordpress/wp-admin/upgrade.php:71 +#: tmp/wordpress/wp-content/themes/twentyfifteen/footer.php:25 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/footer/site-info.php:13 +#: tmp/wordpress/wp-content/themes/twentysixteen/footer.php:51 +#: tmp/wordpress/wp-includes/admin-bar.php:148 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-meta.php:69 +#: tmp/wordpress/wp-login.php:103 +msgid "https://wordpress.org/" +msgstr "" + +#. translators: Network admin screen title. 1: Network name +#. translators: %s: site name +#: tmp/old/wordpress/wp-admin/admin-header.php:37 +#: tmp/old/wordpress/wp-includes/admin-bar.php:315 +#: tmp/wordpress/wp-admin/admin-header.php:37 +#: tmp/wordpress/wp-includes/admin-bar.php:315 +msgid "Network Admin: %s" +msgstr "" + +#. translators: User dashboard screen title. 1: Network name +#. translators: %s: site name +#: tmp/old/wordpress/wp-admin/admin-header.php:40 +#: tmp/old/wordpress/wp-includes/admin-bar.php:318 +#: tmp/wordpress/wp-admin/admin-header.php:40 +#: tmp/wordpress/wp-includes/admin-bar.php:318 +msgid "User Dashboard: %s" +msgstr "" + +#. translators: Admin screen title. 1: Admin screen name +#: tmp/old/wordpress/wp-admin/admin-header.php:47 +#: tmp/wordpress/wp-admin/admin-header.php:47 +msgid "%1$s — WordPress" +msgstr "" + +#. translators: Admin screen title. 1: Admin screen name, 2: Network or site +#. name +#: tmp/old/wordpress/wp-admin/admin-header.php:50 +#: tmp/wordpress/wp-admin/admin-header.php:50 +msgid "%1$s ‹ %2$s — WordPress" +msgstr "" + +#: tmp/old/wordpress/wp-admin/admin-header.php:230 +#: tmp/wordpress/wp-admin/admin-header.php:230 +msgid "Main content" +msgstr "" + +#. translators: default date format, see https://secure.php.net/date +#. translators: localized date format, see https://secure.php.net/date +#: tmp/old/wordpress/wp-admin/admin.php:92 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:643 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:646 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1252 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:2269 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:2272 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:579 +#: tmp/old/wordpress/wp-admin/includes/media.php:1472 +#: tmp/old/wordpress/wp-admin/includes/schema.php:419 +#: tmp/old/wordpress/wp-admin/options-general.php:211 +#: tmp/old/wordpress/wp-admin/options-general.php:241 +#: tmp/old/wordpress/wp-admin/update-core.php:607 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:398 +#: tmp/old/wordpress/wp-includes/media.php:3088 +#: tmp/wordpress/wp-admin/admin.php:92 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:643 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:646 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1252 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:2269 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:2272 +#: tmp/wordpress/wp-admin/includes/dashboard.php:579 +#: tmp/wordpress/wp-admin/includes/media.php:1472 +#: tmp/wordpress/wp-admin/includes/schema.php:419 +#: tmp/wordpress/wp-admin/options-general.php:211 +#: tmp/wordpress/wp-admin/options-general.php:241 +#: tmp/wordpress/wp-admin/update-core.php:607 +#: tmp/wordpress/wp-includes/class-wp-locale.php:398 +#: tmp/wordpress/wp-includes/media.php:3088 +msgid "F j, Y" +msgstr "" + +#. translators: default time format, see https://secure.php.net/date +#. translators: localized time format, see https://secure.php.net/date +#: tmp/old/wordpress/wp-admin/admin.php:93 +#: tmp/old/wordpress/wp-admin/comment.php:202 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:643 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:646 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1252 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:2270 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:2273 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:722 +#: tmp/old/wordpress/wp-admin/includes/schema.php:421 +#: tmp/old/wordpress/wp-admin/options-general.php:211 +#: tmp/old/wordpress/wp-admin/options-general.php:277 +#: tmp/old/wordpress/wp-admin/update-core.php:607 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:400 +#: tmp/wordpress/wp-admin/admin.php:93 tmp/wordpress/wp-admin/comment.php:202 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:643 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:646 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1252 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:2270 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:2273 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:722 +#: tmp/wordpress/wp-admin/includes/schema.php:421 +#: tmp/wordpress/wp-admin/options-general.php:211 +#: tmp/wordpress/wp-admin/options-general.php:277 +#: tmp/wordpress/wp-admin/update-core.php:607 +#: tmp/wordpress/wp-includes/class-wp-locale.php:400 +msgid "g:i a" +msgstr "" + +#: tmp/old/wordpress/wp-admin/admin.php:225 +#: tmp/wordpress/wp-admin/admin.php:225 +msgid "Invalid plugin page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/admin.php:228 +#: tmp/wordpress/wp-admin/admin.php:228 +msgid "Cannot load %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/admin.php:261 +#: tmp/old/wordpress/wp-admin/import.php:15 +#: tmp/wordpress/wp-admin/admin.php:261 tmp/wordpress/wp-admin/import.php:15 +msgid "Sorry, you are not allowed to import content." +msgstr "" + +#: tmp/old/wordpress/wp-admin/admin.php:285 +#: tmp/old/wordpress/wp-admin/import.php:18 +#: tmp/old/wordpress/wp-admin/menu.php:241 tmp/wordpress/wp-admin/admin.php:285 +#: tmp/wordpress/wp-admin/import.php:18 tmp/wordpress/wp-admin/menu.php:241 +msgid "Import" +msgstr "" + +#: tmp/old/wordpress/wp-admin/async-upload.php:48 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:2008 +#: tmp/old/wordpress/wp-admin/media-new.php:16 +#: tmp/old/wordpress/wp-admin/media-upload.php:19 +#: tmp/old/wordpress/wp-admin/upload.php:13 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3940 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3988 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5815 +#: tmp/wordpress/wp-admin/async-upload.php:48 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:2008 +#: tmp/wordpress/wp-admin/media-new.php:16 +#: tmp/wordpress/wp-admin/media-upload.php:19 +#: tmp/wordpress/wp-admin/upload.php:13 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3940 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3988 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5815 +msgid "Sorry, you are not allowed to upload files." +msgstr "" + +#: tmp/old/wordpress/wp-admin/async-upload.php:55 +#: tmp/old/wordpress/wp-admin/post.php:110 +#: tmp/old/wordpress/wp-admin/post.php:211 +#: tmp/old/wordpress/wp-admin/post.php:234 +#: tmp/old/wordpress/wp-admin/post.php:252 +#: tmp/wordpress/wp-admin/async-upload.php:55 +#: tmp/wordpress/wp-admin/post.php:110 tmp/wordpress/wp-admin/post.php:211 +#: tmp/wordpress/wp-admin/post.php:234 tmp/wordpress/wp-admin/post.php:252 +msgid "Unknown post type." +msgstr "" + +#: tmp/old/wordpress/wp-admin/async-upload.php:57 +#: tmp/old/wordpress/wp-admin/edit-tags.php:154 +#: tmp/old/wordpress/wp-admin/includes/post.php:1791 +#: tmp/old/wordpress/wp-admin/media-upload.php:46 +#: tmp/old/wordpress/wp-admin/post.php:117 +#: tmp/old/wordpress/wp-admin/term.php:38 +#: tmp/wordpress/wp-admin/async-upload.php:57 +#: tmp/wordpress/wp-admin/edit-tags.php:154 +#: tmp/wordpress/wp-admin/includes/post.php:1791 +#: tmp/wordpress/wp-admin/media-upload.php:46 +#: tmp/wordpress/wp-admin/post.php:117 tmp/wordpress/wp-admin/term.php:38 +msgid "Sorry, you are not allowed to edit this item." +msgstr "" + +#: tmp/old/wordpress/wp-admin/async-upload.php:63 +#: tmp/wordpress/wp-admin/async-upload.php:63 +msgctxt "media item" +msgid "Edit" +msgstr "" + +#: tmp/old/wordpress/wp-admin/async-upload.php:94 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1364 +#: tmp/old/wordpress/wp-admin/index.php:118 +#: tmp/old/wordpress/wp-includes/script-loader.php:138 +#: tmp/old/wordpress/wp-includes/script-loader.php:299 +#: tmp/wordpress/wp-admin/async-upload.php:94 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1364 +#: tmp/wordpress/wp-admin/index.php:118 +#: tmp/wordpress/wp-includes/script-loader.php:138 +#: tmp/wordpress/wp-includes/script-loader.php:299 +msgid "Dismiss" +msgstr "" + +#: tmp/old/wordpress/wp-admin/async-upload.php:95 +#: tmp/old/wordpress/wp-includes/script-loader.php:302 +#: tmp/wordpress/wp-admin/async-upload.php:95 +#: tmp/wordpress/wp-includes/script-loader.php:302 +msgid "“%s” has failed to upload." +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:39 +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:16 +#: tmp/old/wordpress/wp-admin/includes/template.php:396 +#: tmp/wordpress/wp-admin/comment.php:39 +#: tmp/wordpress/wp-admin/edit-form-comment.php:16 +#: tmp/wordpress/wp-admin/includes/template.php:396 +msgid "Edit Comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:43 +#: tmp/old/wordpress/wp-admin/custom-background.php:90 +#: tmp/old/wordpress/wp-admin/custom-header.php:100 +#: tmp/old/wordpress/wp-admin/edit-comments.php:163 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:404 +#: tmp/old/wordpress/wp-admin/edit-link-form.php:56 +#: tmp/old/wordpress/wp-admin/edit-tags.php:231 +#: tmp/old/wordpress/wp-admin/edit.php:190 +#: tmp/old/wordpress/wp-admin/edit.php:235 +#: tmp/old/wordpress/wp-admin/export.php:47 +#: tmp/old/wordpress/wp-admin/import.php:22 +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:779 +#: tmp/old/wordpress/wp-admin/index.php:40 +#: tmp/old/wordpress/wp-admin/link-manager.php:51 +#: tmp/old/wordpress/wp-admin/media-new.php:45 +#: tmp/old/wordpress/wp-admin/media.php:73 +#: tmp/old/wordpress/wp-admin/my-sites.php:40 +#: tmp/old/wordpress/wp-admin/nav-menus.php:529 +#: tmp/old/wordpress/wp-admin/nav-menus.php:564 +#: tmp/old/wordpress/wp-admin/network/index.php:31 +#: tmp/old/wordpress/wp-admin/network/settings.php:26 +#: tmp/old/wordpress/wp-admin/network/site-info.php:19 +#: tmp/old/wordpress/wp-admin/network/site-new.php:21 +#: tmp/old/wordpress/wp-admin/network/site-settings.php:18 +#: tmp/old/wordpress/wp-admin/network/site-themes.php:18 +#: tmp/old/wordpress/wp-admin/network/site-users.php:21 +#: tmp/old/wordpress/wp-admin/network/sites.php:26 +#: tmp/old/wordpress/wp-admin/network/themes.php:220 +#: tmp/old/wordpress/wp-admin/network/upgrade.php:20 +#: tmp/old/wordpress/wp-admin/network/user-new.php:18 +#: tmp/old/wordpress/wp-admin/network/users.php:167 +#: tmp/old/wordpress/wp-admin/options-discussion.php:21 +#: tmp/old/wordpress/wp-admin/options-general.php:39 +#: tmp/old/wordpress/wp-admin/options-media.php:28 +#: tmp/old/wordpress/wp-admin/options-permalink.php:20 +#: tmp/old/wordpress/wp-admin/options-reading.php:22 +#: tmp/old/wordpress/wp-admin/options-writing.php:20 +#: tmp/old/wordpress/wp-admin/plugin-editor.php:143 +#: tmp/old/wordpress/wp-admin/plugin-install.php:80 +#: tmp/old/wordpress/wp-admin/plugins.php:393 +#: tmp/old/wordpress/wp-admin/revision.php:115 +#: tmp/old/wordpress/wp-admin/theme-editor.php:25 +#: tmp/old/wordpress/wp-admin/theme-install.php:98 +#: tmp/old/wordpress/wp-admin/themes.php:82 +#: tmp/old/wordpress/wp-admin/update-core.php:556 +#: tmp/old/wordpress/wp-admin/upload.php:48 +#: tmp/old/wordpress/wp-admin/upload.php:189 +#: tmp/old/wordpress/wp-admin/user-edit.php:49 +#: tmp/old/wordpress/wp-admin/user-new.php:194 +#: tmp/old/wordpress/wp-admin/users.php:31 +#: tmp/old/wordpress/wp-admin/widgets.php:53 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:156 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:194 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:207 +#: tmp/wordpress/wp-admin/comment.php:43 +#: tmp/wordpress/wp-admin/custom-background.php:90 +#: tmp/wordpress/wp-admin/custom-header.php:100 +#: tmp/wordpress/wp-admin/edit-comments.php:163 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:404 +#: tmp/wordpress/wp-admin/edit-link-form.php:56 +#: tmp/wordpress/wp-admin/edit-tags.php:231 tmp/wordpress/wp-admin/edit.php:190 +#: tmp/wordpress/wp-admin/edit.php:235 tmp/wordpress/wp-admin/export.php:47 +#: tmp/wordpress/wp-admin/import.php:22 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:779 +#: tmp/wordpress/wp-admin/index.php:40 +#: tmp/wordpress/wp-admin/link-manager.php:51 +#: tmp/wordpress/wp-admin/media-new.php:45 tmp/wordpress/wp-admin/media.php:73 +#: tmp/wordpress/wp-admin/my-sites.php:40 +#: tmp/wordpress/wp-admin/nav-menus.php:529 +#: tmp/wordpress/wp-admin/nav-menus.php:564 +#: tmp/wordpress/wp-admin/network/index.php:31 +#: tmp/wordpress/wp-admin/network/settings.php:26 +#: tmp/wordpress/wp-admin/network/site-info.php:19 +#: tmp/wordpress/wp-admin/network/site-new.php:21 +#: tmp/wordpress/wp-admin/network/site-settings.php:18 +#: tmp/wordpress/wp-admin/network/site-themes.php:18 +#: tmp/wordpress/wp-admin/network/site-users.php:21 +#: tmp/wordpress/wp-admin/network/sites.php:26 +#: tmp/wordpress/wp-admin/network/themes.php:220 +#: tmp/wordpress/wp-admin/network/upgrade.php:20 +#: tmp/wordpress/wp-admin/network/user-new.php:18 +#: tmp/wordpress/wp-admin/network/users.php:167 +#: tmp/wordpress/wp-admin/options-discussion.php:21 +#: tmp/wordpress/wp-admin/options-general.php:39 +#: tmp/wordpress/wp-admin/options-media.php:28 +#: tmp/wordpress/wp-admin/options-permalink.php:20 +#: tmp/wordpress/wp-admin/options-reading.php:22 +#: tmp/wordpress/wp-admin/options-writing.php:20 +#: tmp/wordpress/wp-admin/plugin-editor.php:143 +#: tmp/wordpress/wp-admin/plugin-install.php:80 +#: tmp/wordpress/wp-admin/plugins.php:393 +#: tmp/wordpress/wp-admin/revision.php:115 +#: tmp/wordpress/wp-admin/theme-editor.php:25 +#: tmp/wordpress/wp-admin/theme-install.php:98 +#: tmp/wordpress/wp-admin/themes.php:82 +#: tmp/wordpress/wp-admin/update-core.php:556 +#: tmp/wordpress/wp-admin/upload.php:48 tmp/wordpress/wp-admin/upload.php:189 +#: tmp/wordpress/wp-admin/user-edit.php:49 +#: tmp/wordpress/wp-admin/user-new.php:194 tmp/wordpress/wp-admin/users.php:31 +#: tmp/wordpress/wp-admin/widgets.php:53 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:156 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:194 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:207 +msgid "Overview" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:45 +#: tmp/wordpress/wp-admin/comment.php:45 +msgid "" +"You can edit the information left in a comment if needed. This is often " +"useful when you notice that a commenter has made a typographical error." +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:46 +#: tmp/wordpress/wp-admin/comment.php:46 +msgid "" +"You can also moderate the comment from this screen using the Status box, " +"where you can also change the timestamp of the comment." +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:50 +#: tmp/old/wordpress/wp-admin/custom-background.php:99 +#: tmp/old/wordpress/wp-admin/custom-header.php:126 +#: tmp/old/wordpress/wp-admin/edit-comments.php:180 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:381 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:396 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:413 +#: tmp/old/wordpress/wp-admin/edit-link-form.php:64 +#: tmp/old/wordpress/wp-admin/edit-tags.php:261 +#: tmp/old/wordpress/wp-admin/edit.php:227 +#: tmp/old/wordpress/wp-admin/edit.php:248 +#: tmp/old/wordpress/wp-admin/export.php:53 +#: tmp/old/wordpress/wp-admin/import.php:28 +#: tmp/old/wordpress/wp-admin/index.php:96 +#: tmp/old/wordpress/wp-admin/link-manager.php:65 +#: tmp/old/wordpress/wp-admin/media-new.php:55 +#: tmp/old/wordpress/wp-admin/media.php:82 +#: tmp/old/wordpress/wp-admin/my-sites.php:46 +#: tmp/old/wordpress/wp-admin/nav-menus.php:570 +#: tmp/old/wordpress/wp-admin/network/index.php:49 +#: tmp/old/wordpress/wp-admin/network/settings.php:39 +#: tmp/old/wordpress/wp-admin/network/site-info.php:29 +#: tmp/old/wordpress/wp-admin/network/site-new.php:28 +#: tmp/old/wordpress/wp-admin/network/site-settings.php:28 +#: tmp/old/wordpress/wp-admin/network/site-themes.php:28 +#: tmp/old/wordpress/wp-admin/network/site-users.php:31 +#: tmp/old/wordpress/wp-admin/network/sites.php:41 +#: tmp/old/wordpress/wp-admin/network/themes.php:228 +#: tmp/old/wordpress/wp-admin/network/upgrade.php:28 +#: tmp/old/wordpress/wp-admin/network/user-new.php:25 +#: tmp/old/wordpress/wp-admin/network/users.php:178 +#: tmp/old/wordpress/wp-admin/network.php:65 +#: tmp/old/wordpress/wp-admin/network.php:76 +#: tmp/old/wordpress/wp-admin/options-discussion.php:27 +#: tmp/old/wordpress/wp-admin/options-general.php:44 +#: tmp/old/wordpress/wp-admin/options-media.php:33 +#: tmp/old/wordpress/wp-admin/options-permalink.php:43 +#: tmp/old/wordpress/wp-admin/options-reading.php:37 +#: tmp/old/wordpress/wp-admin/options-writing.php:44 +#: tmp/old/wordpress/wp-admin/plugin-editor.php:154 +#: tmp/old/wordpress/wp-admin/plugin-install.php:97 +#: tmp/old/wordpress/wp-admin/plugins.php:416 +#: tmp/old/wordpress/wp-admin/revision.php:119 +#: tmp/old/wordpress/wp-admin/theme-editor.php:38 +#: tmp/old/wordpress/wp-admin/theme-install.php:113 +#: tmp/old/wordpress/wp-admin/themes.php:117 +#: tmp/old/wordpress/wp-admin/tools.php:27 +#: tmp/old/wordpress/wp-admin/update-core.php:574 +#: tmp/old/wordpress/wp-admin/upload.php:65 +#: tmp/old/wordpress/wp-admin/upload.php:209 +#: tmp/old/wordpress/wp-admin/user-edit.php:54 +#: tmp/old/wordpress/wp-admin/user-new.php:212 +#: tmp/old/wordpress/wp-admin/users.php:66 +#: tmp/old/wordpress/wp-admin/widgets.php:75 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:242 +#: tmp/wordpress/wp-admin/comment.php:50 +#: tmp/wordpress/wp-admin/custom-background.php:99 +#: tmp/wordpress/wp-admin/custom-header.php:126 +#: tmp/wordpress/wp-admin/edit-comments.php:180 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:381 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:396 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:413 +#: tmp/wordpress/wp-admin/edit-link-form.php:64 +#: tmp/wordpress/wp-admin/edit-tags.php:261 tmp/wordpress/wp-admin/edit.php:227 +#: tmp/wordpress/wp-admin/edit.php:248 tmp/wordpress/wp-admin/export.php:53 +#: tmp/wordpress/wp-admin/import.php:28 tmp/wordpress/wp-admin/index.php:96 +#: tmp/wordpress/wp-admin/link-manager.php:65 +#: tmp/wordpress/wp-admin/media-new.php:55 tmp/wordpress/wp-admin/media.php:82 +#: tmp/wordpress/wp-admin/my-sites.php:46 +#: tmp/wordpress/wp-admin/nav-menus.php:570 +#: tmp/wordpress/wp-admin/network/index.php:49 +#: tmp/wordpress/wp-admin/network/settings.php:39 +#: tmp/wordpress/wp-admin/network/site-info.php:29 +#: tmp/wordpress/wp-admin/network/site-new.php:28 +#: tmp/wordpress/wp-admin/network/site-settings.php:28 +#: tmp/wordpress/wp-admin/network/site-themes.php:28 +#: tmp/wordpress/wp-admin/network/site-users.php:31 +#: tmp/wordpress/wp-admin/network/sites.php:41 +#: tmp/wordpress/wp-admin/network/themes.php:228 +#: tmp/wordpress/wp-admin/network/upgrade.php:28 +#: tmp/wordpress/wp-admin/network/user-new.php:25 +#: tmp/wordpress/wp-admin/network/users.php:178 +#: tmp/wordpress/wp-admin/network.php:65 tmp/wordpress/wp-admin/network.php:76 +#: tmp/wordpress/wp-admin/options-discussion.php:27 +#: tmp/wordpress/wp-admin/options-general.php:44 +#: tmp/wordpress/wp-admin/options-media.php:33 +#: tmp/wordpress/wp-admin/options-permalink.php:43 +#: tmp/wordpress/wp-admin/options-reading.php:37 +#: tmp/wordpress/wp-admin/options-writing.php:44 +#: tmp/wordpress/wp-admin/plugin-editor.php:154 +#: tmp/wordpress/wp-admin/plugin-install.php:97 +#: tmp/wordpress/wp-admin/plugins.php:416 +#: tmp/wordpress/wp-admin/revision.php:119 +#: tmp/wordpress/wp-admin/theme-editor.php:38 +#: tmp/wordpress/wp-admin/theme-install.php:113 +#: tmp/wordpress/wp-admin/themes.php:117 tmp/wordpress/wp-admin/tools.php:27 +#: tmp/wordpress/wp-admin/update-core.php:574 +#: tmp/wordpress/wp-admin/upload.php:65 tmp/wordpress/wp-admin/upload.php:209 +#: tmp/wordpress/wp-admin/user-edit.php:54 +#: tmp/wordpress/wp-admin/user-new.php:212 tmp/wordpress/wp-admin/users.php:66 +#: tmp/wordpress/wp-admin/widgets.php:75 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:242 +msgid "For more information:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:51 +#: tmp/old/wordpress/wp-admin/edit-comments.php:181 +#: tmp/wordpress/wp-admin/comment.php:51 +#: tmp/wordpress/wp-admin/edit-comments.php:181 +msgid "" +"Documentation on Comments" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:52 +#: tmp/old/wordpress/wp-admin/custom-background.php:101 +#: tmp/old/wordpress/wp-admin/custom-header.php:128 +#: tmp/old/wordpress/wp-admin/edit-comments.php:184 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:383 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:399 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:415 +#: tmp/old/wordpress/wp-admin/edit-link-form.php:66 +#: tmp/old/wordpress/wp-admin/edit-tags.php:270 +#: tmp/old/wordpress/wp-admin/edit.php:229 +#: tmp/old/wordpress/wp-admin/edit.php:250 +#: tmp/old/wordpress/wp-admin/export.php:55 +#: tmp/old/wordpress/wp-admin/import.php:30 +#: tmp/old/wordpress/wp-admin/index.php:98 +#: tmp/old/wordpress/wp-admin/link-manager.php:67 +#: tmp/old/wordpress/wp-admin/media-new.php:57 +#: tmp/old/wordpress/wp-admin/media.php:84 +#: tmp/old/wordpress/wp-admin/my-sites.php:48 +#: tmp/old/wordpress/wp-admin/nav-menus.php:572 +#: tmp/old/wordpress/wp-admin/network/settings.php:41 +#: tmp/old/wordpress/wp-admin/network/themes.php:230 +#: tmp/old/wordpress/wp-admin/network/upgrade.php:30 +#: tmp/old/wordpress/wp-admin/network.php:79 +#: tmp/old/wordpress/wp-admin/options-discussion.php:29 +#: tmp/old/wordpress/wp-admin/options-general.php:46 +#: tmp/old/wordpress/wp-admin/options-media.php:35 +#: tmp/old/wordpress/wp-admin/options-permalink.php:46 +#: tmp/old/wordpress/wp-admin/options-reading.php:39 +#: tmp/old/wordpress/wp-admin/options-writing.php:46 +#: tmp/old/wordpress/wp-admin/plugin-editor.php:157 +#: tmp/old/wordpress/wp-admin/plugin-install.php:99 +#: tmp/old/wordpress/wp-admin/plugins.php:418 +#: tmp/old/wordpress/wp-admin/revision.php:121 +#: tmp/old/wordpress/wp-admin/theme-editor.php:43 +#: tmp/old/wordpress/wp-admin/theme-install.php:115 +#: tmp/old/wordpress/wp-admin/themes.php:119 +#: tmp/old/wordpress/wp-admin/tools.php:29 +#: tmp/old/wordpress/wp-admin/update-core.php:576 +#: tmp/old/wordpress/wp-admin/upload.php:67 +#: tmp/old/wordpress/wp-admin/upload.php:211 +#: tmp/old/wordpress/wp-admin/user-edit.php:56 +#: tmp/old/wordpress/wp-admin/user-new.php:214 +#: tmp/old/wordpress/wp-admin/users.php:69 +#: tmp/old/wordpress/wp-admin/widgets.php:77 +#: tmp/wordpress/wp-admin/comment.php:52 +#: tmp/wordpress/wp-admin/custom-background.php:101 +#: tmp/wordpress/wp-admin/custom-header.php:128 +#: tmp/wordpress/wp-admin/edit-comments.php:184 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:383 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:399 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:415 +#: tmp/wordpress/wp-admin/edit-link-form.php:66 +#: tmp/wordpress/wp-admin/edit-tags.php:270 tmp/wordpress/wp-admin/edit.php:229 +#: tmp/wordpress/wp-admin/edit.php:250 tmp/wordpress/wp-admin/export.php:55 +#: tmp/wordpress/wp-admin/import.php:30 tmp/wordpress/wp-admin/index.php:98 +#: tmp/wordpress/wp-admin/link-manager.php:67 +#: tmp/wordpress/wp-admin/media-new.php:57 tmp/wordpress/wp-admin/media.php:84 +#: tmp/wordpress/wp-admin/my-sites.php:48 +#: tmp/wordpress/wp-admin/nav-menus.php:572 +#: tmp/wordpress/wp-admin/network/settings.php:41 +#: tmp/wordpress/wp-admin/network/themes.php:230 +#: tmp/wordpress/wp-admin/network/upgrade.php:30 +#: tmp/wordpress/wp-admin/network.php:79 +#: tmp/wordpress/wp-admin/options-discussion.php:29 +#: tmp/wordpress/wp-admin/options-general.php:46 +#: tmp/wordpress/wp-admin/options-media.php:35 +#: tmp/wordpress/wp-admin/options-permalink.php:46 +#: tmp/wordpress/wp-admin/options-reading.php:39 +#: tmp/wordpress/wp-admin/options-writing.php:46 +#: tmp/wordpress/wp-admin/plugin-editor.php:157 +#: tmp/wordpress/wp-admin/plugin-install.php:99 +#: tmp/wordpress/wp-admin/plugins.php:418 +#: tmp/wordpress/wp-admin/revision.php:121 +#: tmp/wordpress/wp-admin/theme-editor.php:43 +#: tmp/wordpress/wp-admin/theme-install.php:115 +#: tmp/wordpress/wp-admin/themes.php:119 tmp/wordpress/wp-admin/tools.php:29 +#: tmp/wordpress/wp-admin/update-core.php:576 +#: tmp/wordpress/wp-admin/upload.php:67 tmp/wordpress/wp-admin/upload.php:211 +#: tmp/wordpress/wp-admin/user-edit.php:56 +#: tmp/wordpress/wp-admin/user-new.php:214 tmp/wordpress/wp-admin/users.php:69 +#: tmp/wordpress/wp-admin/widgets.php:77 +msgid "Support Forums" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:61 +#: tmp/old/wordpress/wp-admin/comment.php:255 +#: tmp/old/wordpress/wp-admin/edit-comments.php:226 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3231 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3363 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3430 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:317 +#: tmp/wordpress/wp-admin/comment.php:61 tmp/wordpress/wp-admin/comment.php:255 +#: tmp/wordpress/wp-admin/edit-comments.php:226 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3231 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3363 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3430 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:317 +msgid "Invalid comment ID." +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:61 +#: tmp/old/wordpress/wp-admin/comment.php:255 +#: tmp/old/wordpress/wp-admin/includes/post.php:1532 +#: tmp/wordpress/wp-admin/comment.php:61 tmp/wordpress/wp-admin/comment.php:255 +#: tmp/wordpress/wp-admin/includes/post.php:1532 +msgid "Go back" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:64 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:657 +#: tmp/wordpress/wp-admin/comment.php:64 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:657 +msgid "Sorry, you are not allowed to edit this comment." +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:67 +#: tmp/wordpress/wp-admin/comment.php:67 +msgid "" +"This comment is in the Trash. Please move it out of the Trash if you want to " +"edit it." +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:80 +#: tmp/wordpress/wp-admin/comment.php:80 +msgid "Moderate Comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:114 +#: tmp/wordpress/wp-admin/comment.php:114 +msgid "You are about to mark the following comment as spam:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:115 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:297 +#: tmp/wordpress/wp-admin/comment.php:115 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:297 +msgctxt "comment" +msgid "Mark as Spam" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:118 +#: tmp/wordpress/wp-admin/comment.php:118 +msgid "You are about to move the following comment to the Trash:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:119 +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:162 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:308 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:407 +#: tmp/old/wordpress/wp-admin/includes/media.php:1509 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:250 +#: tmp/wordpress/wp-admin/comment.php:119 +#: tmp/wordpress/wp-admin/edit-form-comment.php:162 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:308 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:407 +#: tmp/wordpress/wp-admin/includes/media.php:1509 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:250 +msgid "Move to Trash" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:122 +#: tmp/wordpress/wp-admin/comment.php:122 +msgid "You are about to delete the following comment:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:123 +#: tmp/wordpress/wp-admin/comment.php:123 +msgid "Permanently Delete Comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:126 +#: tmp/wordpress/wp-admin/comment.php:126 +msgid "You are about to approve the following comment:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:127 +#: tmp/wordpress/wp-admin/comment.php:127 +msgid "Approve Comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:135 +#: tmp/wordpress/wp-admin/comment.php:135 +msgid "This comment is currently approved." +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:138 +#: tmp/wordpress/wp-admin/comment.php:138 +msgid "This comment is currently marked as spam." +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:141 +#: tmp/wordpress/wp-admin/comment.php:141 +msgid "This comment is currently in the Trash." +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:149 +#: tmp/old/wordpress/wp-admin/includes/network.php:389 +#: tmp/old/wordpress/wp-admin/includes/network.php:397 +#: tmp/old/wordpress/wp-admin/includes/network.php:405 +#: tmp/old/wordpress/wp-admin/network/themes.php:126 +#: tmp/old/wordpress/wp-admin/network/themes.php:130 +#: tmp/old/wordpress/wp-admin/plugins.php:298 +#: tmp/old/wordpress/wp-admin/plugins.php:304 +#: tmp/old/wordpress/wp-admin/theme-editor.php:272 +#: tmp/wordpress/wp-admin/comment.php:149 +#: tmp/wordpress/wp-admin/includes/network.php:389 +#: tmp/wordpress/wp-admin/includes/network.php:397 +#: tmp/wordpress/wp-admin/includes/network.php:405 +#: tmp/wordpress/wp-admin/network/themes.php:126 +#: tmp/wordpress/wp-admin/network/themes.php:130 +#: tmp/wordpress/wp-admin/plugins.php:298 +#: tmp/wordpress/wp-admin/plugins.php:304 +#: tmp/wordpress/wp-admin/theme-editor.php:272 +msgid "Caution:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:153 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:313 +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:39 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:397 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:279 +#: tmp/old/wordpress/wp-admin/includes/class-wp-post-comments-list-table.php:27 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:542 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1438 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:767 +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:284 +#: tmp/old/wordpress/wp-admin/includes/theme-install.php:68 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:906 +#: tmp/old/wordpress/wp-includes/theme-compat/sidebar.php:27 +#: tmp/wordpress/wp-admin/comment.php:153 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:313 +#: tmp/wordpress/wp-admin/edit-form-comment.php:39 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:397 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:279 +#: tmp/wordpress/wp-admin/includes/class-wp-post-comments-list-table.php:27 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:542 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1438 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:767 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:284 +#: tmp/wordpress/wp-admin/includes/theme-install.php:68 +#: tmp/wordpress/wp-includes/class-wp-editor.php:906 +#: tmp/wordpress/wp-includes/theme-compat/sidebar.php:27 +msgid "Author" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:164 +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:157 +#: tmp/old/wordpress/wp-admin/includes/class-wp-links-list-table.php:129 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:229 +#: tmp/old/wordpress/wp-admin/includes/media.php:2569 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:279 +#: tmp/old/wordpress/wp-admin/includes/template.php:421 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:1063 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1450 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:91 +#: tmp/old/wordpress/wp-includes/media-template.php:373 +#: tmp/old/wordpress/wp-includes/media-template.php:554 +#: tmp/old/wordpress/wp-includes/media.php:3401 +#: tmp/wordpress/wp-admin/comment.php:164 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:157 +#: tmp/wordpress/wp-admin/includes/class-wp-links-list-table.php:129 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:229 +#: tmp/wordpress/wp-admin/includes/media.php:2569 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:279 +#: tmp/wordpress/wp-admin/includes/template.php:421 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:1063 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1450 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:91 +#: tmp/wordpress/wp-includes/media-template.php:373 +#: tmp/wordpress/wp-includes/media-template.php:554 +#: tmp/wordpress/wp-includes/media.php:3401 +msgid "URL" +msgstr "" + +#. translators: column name or table row header +#: tmp/old/wordpress/wp-admin/comment.php:169 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:402 +#: tmp/wordpress/wp-admin/comment.php:169 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:402 +msgid "In Response To" +msgstr "" + +#. translators: %s: comment link +#: tmp/old/wordpress/wp-admin/comment.php:187 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:648 +#: tmp/wordpress/wp-admin/comment.php:187 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:648 +msgid "In reply to %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:195 +#: tmp/wordpress/wp-admin/comment.php:195 +msgid "Submitted on" +msgstr "" + +#. translators: 1: comment date, 2: comment time +#: tmp/old/wordpress/wp-admin/comment.php:199 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:719 +#: tmp/old/wordpress/wp-includes/class-walker-comment.php:291 +#: tmp/old/wordpress/wp-includes/class-walker-comment.php:346 +#: tmp/wordpress/wp-admin/comment.php:199 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:719 +#: tmp/wordpress/wp-includes/class-walker-comment.php:291 +#: tmp/wordpress/wp-includes/class-walker-comment.php:346 +msgid "%1$s at %2$s" +msgstr "" + +#. translators: comment date format. See https://secure.php.net/date +#. translators: date format in table columns, see https://secure.php.net/date +#. translators: comment date format. See https://secure.php.net/date +#: tmp/old/wordpress/wp-admin/comment.php:201 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1799 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:721 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:452 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:355 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:375 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:288 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:990 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1393 +#: tmp/wordpress/wp-admin/comment.php:201 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1799 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:721 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:452 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:355 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:375 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:288 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:990 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1393 +msgid "Y/m/d" +msgstr "" + +#. translators: field name in comment form +#: tmp/old/wordpress/wp-admin/comment.php:213 +#: tmp/old/wordpress/wp-includes/comment-template.php:1081 +#: tmp/old/wordpress/wp-includes/comment-template.php:2216 +#: tmp/wordpress/wp-admin/comment.php:213 +#: tmp/wordpress/wp-includes/comment-template.php:1081 +#: tmp/wordpress/wp-includes/comment-template.php:2216 +msgctxt "noun" +msgid "Comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:225 +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:226 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1732 +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:622 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:163 +#: tmp/old/wordpress/wp-admin/includes/file.php:1263 +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:220 +#: tmp/old/wordpress/wp-admin/includes/media.php:1506 +#: tmp/old/wordpress/wp-admin/includes/media.php:1954 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:122 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:166 +#: tmp/old/wordpress/wp-admin/includes/template.php:431 +#: tmp/old/wordpress/wp-admin/includes/template.php:651 +#: tmp/old/wordpress/wp-admin/includes/template.php:756 +#: tmp/old/wordpress/wp-admin/options-general.php:116 +#: tmp/old/wordpress/wp-admin/user-edit.php:444 +#: tmp/old/wordpress/wp-admin/user-edit.php:553 +#: tmp/old/wordpress/wp-admin/user-new.php:445 +#: tmp/old/wordpress/wp-admin/widgets.php:317 +#: tmp/old/wordpress/wp-admin/widgets.php:505 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:878 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1491 +#: tmp/old/wordpress/wp-includes/media.php:3405 +#: tmp/old/wordpress/wp-includes/script-loader.php:415 +#: tmp/old/wordpress/wp-includes/script-loader.php:465 +#: tmp/old/wordpress/wp-includes/script-loader.php:555 +#: tmp/wordpress/wp-admin/comment.php:225 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:226 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1732 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:622 +#: tmp/wordpress/wp-admin/includes/dashboard.php:163 +#: tmp/wordpress/wp-admin/includes/file.php:1263 +#: tmp/wordpress/wp-admin/includes/image-edit.php:220 +#: tmp/wordpress/wp-admin/includes/media.php:1506 +#: tmp/wordpress/wp-admin/includes/media.php:1954 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:122 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:166 +#: tmp/wordpress/wp-admin/includes/template.php:431 +#: tmp/wordpress/wp-admin/includes/template.php:651 +#: tmp/wordpress/wp-admin/includes/template.php:756 +#: tmp/wordpress/wp-admin/options-general.php:116 +#: tmp/wordpress/wp-admin/user-edit.php:444 +#: tmp/wordpress/wp-admin/user-edit.php:553 +#: tmp/wordpress/wp-admin/user-new.php:445 +#: tmp/wordpress/wp-admin/widgets.php:317 +#: tmp/wordpress/wp-admin/widgets.php:505 +#: tmp/wordpress/wp-includes/class-wp-editor.php:878 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1491 +#: tmp/wordpress/wp-includes/media.php:3405 +#: tmp/wordpress/wp-includes/script-loader.php:415 +#: tmp/wordpress/wp-includes/script-loader.php:465 +#: tmp/wordpress/wp-includes/script-loader.php:555 +msgid "Cancel" +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:257 +#: tmp/old/wordpress/wp-admin/edit-comments.php:229 +#: tmp/old/wordpress/wp-admin/includes/comment.php:49 +#: tmp/wordpress/wp-admin/comment.php:257 +#: tmp/wordpress/wp-admin/edit-comments.php:229 +#: tmp/wordpress/wp-admin/includes/comment.php:49 +msgid "Sorry, you are not allowed to edit comments on this post." +msgstr "" + +#: tmp/old/wordpress/wp-admin/comment.php:329 +#: tmp/wordpress/wp-admin/comment.php:329 +msgid "Unknown action." +msgstr "" + +#: tmp/old/wordpress/wp-admin/credits.php:21 +#: tmp/old/wordpress/wp-admin/freedoms.php:20 +#: tmp/wordpress/wp-admin/credits.php:21 tmp/wordpress/wp-admin/freedoms.php:20 +msgid "Welcome to WordPress %s" +msgstr "" + +#. translators: 1: https://wordpress.org/about/, 2: https://make.wordpress.org/ +#: tmp/old/wordpress/wp-admin/credits.php:40 +#: tmp/wordpress/wp-admin/credits.php:40 +msgid "" +"WordPress is created by a worldwide team of passionate " +"individuals. Get involved in WordPress." +msgstr "" + +#: tmp/old/wordpress/wp-admin/credits.php:42 +#: tmp/old/wordpress/wp-admin/credits.php:104 +#: tmp/wordpress/wp-admin/credits.php:42 tmp/wordpress/wp-admin/credits.php:104 +msgid "https://make.wordpress.org/" +msgstr "" + +#: tmp/old/wordpress/wp-admin/credits.php:50 +#: tmp/wordpress/wp-admin/credits.php:50 +msgid "WordPress is created by a worldwide team of passionate individuals." +msgstr "" + +#: tmp/old/wordpress/wp-admin/credits.php:56 +#: tmp/wordpress/wp-admin/credits.php:56 +msgctxt "" +"Translate this to be the equivalent of English Translators in your language " +"for the credits page Translators section" +msgid "Translators" +msgstr "" + +#. translators: %s: https://make.wordpress.org/ +#: tmp/old/wordpress/wp-admin/credits.php:103 +#: tmp/wordpress/wp-admin/credits.php:103 +msgid "" +"Want to see your name in lights on this page? Get involved in " +"WordPress." +msgstr "" + +#: tmp/old/wordpress/wp-admin/credits.php:116 +#: tmp/wordpress/wp-admin/credits.php:116 +msgid "Project Leaders" +msgstr "" + +#: tmp/old/wordpress/wp-admin/credits.php:117 +#: tmp/wordpress/wp-admin/credits.php:117 +msgid "Core Contributors to WordPress %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/credits.php:118 +#: tmp/wordpress/wp-admin/credits.php:118 +msgid "Contributing Developers" +msgstr "" + +#: tmp/old/wordpress/wp-admin/credits.php:119 +#: tmp/wordpress/wp-admin/credits.php:119 +msgid "Cofounder, Project Lead" +msgstr "" + +#: tmp/old/wordpress/wp-admin/credits.php:120 +#: tmp/wordpress/wp-admin/credits.php:120 +msgid "Lead Developer" +msgstr "" + +#: tmp/old/wordpress/wp-admin/credits.php:121 +#: tmp/wordpress/wp-admin/credits.php:121 +msgid "Release Lead" +msgstr "" + +#: tmp/old/wordpress/wp-admin/credits.php:122 +#: tmp/wordpress/wp-admin/credits.php:122 +msgid "Release Design Lead" +msgstr "" + +#: tmp/old/wordpress/wp-admin/credits.php:123 +#: tmp/wordpress/wp-admin/credits.php:123 +msgid "Release Deputy" +msgstr "" + +#: tmp/old/wordpress/wp-admin/credits.php:124 +#: tmp/wordpress/wp-admin/credits.php:124 +msgid "Core Developer" +msgstr "" + +#: tmp/old/wordpress/wp-admin/credits.php:125 +#: tmp/wordpress/wp-admin/credits.php:125 +msgid "External Libraries" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:68 +#: tmp/old/wordpress/wp-admin/menu.php:173 +#: tmp/old/wordpress/wp-includes/admin-bar.php:795 +#: tmp/wordpress/wp-admin/custom-background.php:68 +#: tmp/wordpress/wp-admin/menu.php:173 +#: tmp/wordpress/wp-includes/admin-bar.php:795 +msgid "Background" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:92 +#: tmp/wordpress/wp-admin/custom-background.php:92 +msgid "" +"You can customize the look of your site without touching any of your " +"theme’s code by using a custom background. Your background can be an " +"image or a color." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:93 +#: tmp/wordpress/wp-admin/custom-background.php:93 +msgid "" +"To use a background image, simply upload it or choose an image that has " +"already been uploaded to your Media Library by clicking the “Choose " +"Image” button. You can display a single instance of your image, or " +"tile it to fill the screen. You can have your background fixed in place, so " +"your site content moves on top of it, or you can have it scroll with your " +"site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:94 +#: tmp/wordpress/wp-admin/custom-background.php:94 +msgid "" +"You can also choose a background color by clicking the Select Color button " +"and either typing in a legitimate HTML hex value, e.g. “#ff0000” " +"for red, or by choosing a color using the color picker." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:95 +#: tmp/wordpress/wp-admin/custom-background.php:95 +msgid "" +"Don’t forget to click on the Save Changes button when you are finished." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:100 +#: tmp/wordpress/wp-admin/custom-background.php:100 +msgid "" +"Documentation on Custom Background" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:225 +#: tmp/old/wordpress/wp-admin/includes/theme.php:250 +#: tmp/wordpress/wp-admin/custom-background.php:225 +#: tmp/wordpress/wp-admin/includes/theme.php:250 +msgid "Custom Background" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:232 +#: tmp/wordpress/wp-admin/custom-background.php:232 +msgid "" +"You can now manage and live-preview Custom Backgrounds in the Customizer." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:242 +#: tmp/wordpress/wp-admin/custom-background.php:242 +msgid "" +"Background updated. Visit your site to see how it looks." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:246 +#: tmp/old/wordpress/wp-admin/includes/template.php:1784 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3975 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-background-image-control.php:30 +#: tmp/wordpress/wp-admin/custom-background.php:246 +#: tmp/wordpress/wp-admin/includes/template.php:1784 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3975 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-background-image-control.php:30 +msgid "Background Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:251 +#: tmp/old/wordpress/wp-admin/custom-header.php:484 +#: tmp/old/wordpress/wp-admin/customize.php:146 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1278 +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1535 +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:293 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:55 +#: tmp/old/wordpress/wp-admin/includes/post.php:1601 +#: tmp/old/wordpress/wp-admin/theme-install.php:271 +#: tmp/old/wordpress/wp-admin/theme-install.php:279 +#: tmp/old/wordpress/wp-admin/theme-install.php:339 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:936 +#: tmp/old/wordpress/wp-includes/media-template.php:1244 +#: tmp/wordpress/wp-admin/custom-background.php:251 +#: tmp/wordpress/wp-admin/custom-header.php:484 +#: tmp/wordpress/wp-admin/customize.php:146 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1278 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1535 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:293 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:55 +#: tmp/wordpress/wp-admin/includes/post.php:1601 +#: tmp/wordpress/wp-admin/theme-install.php:271 +#: tmp/wordpress/wp-admin/theme-install.php:279 +#: tmp/wordpress/wp-admin/theme-install.php:339 +#: tmp/wordpress/wp-includes/class-wp-editor.php:936 +#: tmp/wordpress/wp-includes/media-template.php:1244 +msgid "Preview" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:290 +#: tmp/old/wordpress/wp-admin/custom-header.php:634 +#: tmp/wordpress/wp-admin/custom-background.php:290 +#: tmp/wordpress/wp-admin/custom-header.php:634 +msgid "Remove Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:294 +#: tmp/wordpress/wp-admin/custom-background.php:294 +msgid "Remove Background Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:295 +#: tmp/wordpress/wp-admin/custom-background.php:295 +msgid "" +"This will remove the background image. You will not be able to restore any " +"customizations." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:304 +#: tmp/old/wordpress/wp-admin/custom-background.php:308 +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:82 +#: tmp/wordpress/wp-admin/custom-background.php:304 +#: tmp/wordpress/wp-admin/custom-background.php:308 +#: tmp/wordpress/wp-admin/includes/image-edit.php:82 +msgid "Restore Original Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:309 +#: tmp/wordpress/wp-admin/custom-background.php:309 +msgid "" +"This will restore the original background image. You will not be able to " +"restore any customizations." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:317 +#: tmp/old/wordpress/wp-admin/custom-header.php:521 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-image-control.php:35 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-image-control.php:40 +#: tmp/wordpress/wp-admin/custom-background.php:317 +#: tmp/wordpress/wp-admin/custom-header.php:521 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-image-control.php:35 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-image-control.php:40 +msgid "Select Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:320 +#: tmp/old/wordpress/wp-admin/custom-header.php:575 +#: tmp/wordpress/wp-admin/custom-background.php:320 +#: tmp/wordpress/wp-admin/custom-header.php:575 +msgid "Choose an image from your computer:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:324 +#: tmp/old/wordpress/wp-admin/custom-header.php:579 +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:63 +#: tmp/old/wordpress/wp-admin/includes/media.php:1951 +#: tmp/old/wordpress/wp-admin/includes/media.php:1953 +#: tmp/wordpress/wp-admin/custom-background.php:324 +#: tmp/wordpress/wp-admin/custom-header.php:579 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:63 +#: tmp/wordpress/wp-admin/includes/media.php:1951 +#: tmp/wordpress/wp-admin/includes/media.php:1953 +msgid "Upload" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:327 +#: tmp/old/wordpress/wp-admin/custom-header.php:589 +#: tmp/wordpress/wp-admin/custom-background.php:327 +#: tmp/wordpress/wp-admin/custom-header.php:589 +msgid "Or choose an image from your media library:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:329 +#: tmp/wordpress/wp-admin/custom-background.php:329 +msgid "Choose a Background Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:330 +#: tmp/wordpress/wp-admin/custom-background.php:330 +msgid "Set as background" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:330 +#: tmp/old/wordpress/wp-admin/custom-header.php:593 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-image-control.php:41 +#: tmp/old/wordpress/wp-includes/media.php:3478 +#: tmp/wordpress/wp-admin/custom-background.php:330 +#: tmp/wordpress/wp-admin/custom-header.php:593 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-image-control.php:41 +#: tmp/wordpress/wp-includes/media.php:3478 +msgid "Choose Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:339 +#: tmp/wordpress/wp-admin/custom-background.php:339 +msgid "Display Options" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:355 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:45 +#: tmp/wordpress/wp-admin/custom-background.php:355 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:45 +msgid "Top Left" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:356 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1010 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:46 +#: tmp/wordpress/wp-admin/custom-background.php:356 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1010 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:46 +msgid "Top" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:357 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:47 +#: tmp/wordpress/wp-admin/custom-background.php:357 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:47 +msgid "Top Right" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:360 +#: tmp/old/wordpress/wp-admin/includes/media.php:966 +#: tmp/old/wordpress/wp-admin/includes/media.php:2598 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1005 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:50 +#: tmp/old/wordpress/wp-includes/media-template.php:617 +#: tmp/old/wordpress/wp-includes/media-template.php:848 +#: tmp/old/wordpress/wp-includes/media-template.php:914 +#: tmp/wordpress/wp-admin/custom-background.php:360 +#: tmp/wordpress/wp-admin/includes/media.php:966 +#: tmp/wordpress/wp-admin/includes/media.php:2598 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1005 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:50 +#: tmp/wordpress/wp-includes/media-template.php:617 +#: tmp/wordpress/wp-includes/media-template.php:848 +#: tmp/wordpress/wp-includes/media-template.php:914 +msgid "Left" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:361 +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:192 +#: tmp/old/wordpress/wp-admin/includes/media.php:966 +#: tmp/old/wordpress/wp-admin/includes/media.php:2600 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1006 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:51 +#: tmp/old/wordpress/wp-includes/media-template.php:620 +#: tmp/old/wordpress/wp-includes/media-template.php:851 +#: tmp/old/wordpress/wp-includes/media-template.php:917 +#: tmp/wordpress/wp-admin/custom-background.php:361 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:192 +#: tmp/wordpress/wp-admin/includes/media.php:966 +#: tmp/wordpress/wp-admin/includes/media.php:2600 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1006 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:51 +#: tmp/wordpress/wp-includes/media-template.php:620 +#: tmp/wordpress/wp-includes/media-template.php:851 +#: tmp/wordpress/wp-includes/media-template.php:917 +msgid "Center" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:362 +#: tmp/old/wordpress/wp-admin/includes/media.php:966 +#: tmp/old/wordpress/wp-admin/includes/media.php:2602 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1007 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:52 +#: tmp/old/wordpress/wp-includes/media-template.php:623 +#: tmp/old/wordpress/wp-includes/media-template.php:854 +#: tmp/old/wordpress/wp-includes/media-template.php:920 +#: tmp/wordpress/wp-admin/custom-background.php:362 +#: tmp/wordpress/wp-admin/includes/media.php:966 +#: tmp/wordpress/wp-admin/includes/media.php:2602 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1007 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:52 +#: tmp/wordpress/wp-includes/media-template.php:623 +#: tmp/wordpress/wp-includes/media-template.php:854 +#: tmp/wordpress/wp-includes/media-template.php:920 +msgid "Right" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:365 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:55 +#: tmp/wordpress/wp-admin/custom-background.php:365 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:55 +msgid "Bottom Left" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:366 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1012 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:56 +#: tmp/wordpress/wp-admin/custom-background.php:366 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1012 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:56 +msgid "Bottom" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:367 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:57 +#: tmp/wordpress/wp-admin/custom-background.php:367 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:57 +msgid "Bottom Right" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:372 +#: tmp/old/wordpress/wp-admin/custom-background.php:373 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4025 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:69 +#: tmp/wordpress/wp-admin/custom-background.php:372 +#: tmp/wordpress/wp-admin/custom-background.php:373 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4025 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-background-position-control.php:69 +msgid "Image Position" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:391 +#: tmp/old/wordpress/wp-admin/custom-background.php:392 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4040 +#: tmp/wordpress/wp-admin/custom-background.php:391 +#: tmp/wordpress/wp-admin/custom-background.php:392 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4040 +msgid "Image Size" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:394 +#: tmp/wordpress/wp-admin/custom-background.php:394 +msgctxt "Original Size" +msgid "Original" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:395 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4006 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4045 +#: tmp/wordpress/wp-admin/custom-background.php:395 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4006 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4045 +msgid "Fit to Screen" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:396 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4005 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4046 +#: tmp/wordpress/wp-admin/custom-background.php:396 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4005 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4046 +msgid "Fill Screen" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:402 +#: tmp/old/wordpress/wp-admin/custom-background.php:403 +#: tmp/wordpress/wp-admin/custom-background.php:402 +#: tmp/wordpress/wp-admin/custom-background.php:403 +msgctxt "Background Repeat" +msgid "Repeat" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:405 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4057 +#: tmp/wordpress/wp-admin/custom-background.php:405 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4057 +msgid "Repeat Background Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:410 +#: tmp/old/wordpress/wp-admin/custom-background.php:411 +#: tmp/wordpress/wp-admin/custom-background.php:410 +#: tmp/wordpress/wp-admin/custom-background.php:411 +msgctxt "Background Scroll" +msgid "Scroll" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:413 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4069 +#: tmp/wordpress/wp-admin/custom-background.php:413 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4069 +msgid "Scroll with Page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:418 +#: tmp/old/wordpress/wp-admin/custom-background.php:419 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3854 +#: tmp/wordpress/wp-admin/custom-background.php:418 +#: tmp/wordpress/wp-admin/custom-background.php:419 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3854 +msgid "Background Color" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:454 +#: tmp/old/wordpress/wp-admin/custom-header.php:846 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:2042 +#: tmp/wordpress/wp-admin/custom-background.php:454 +#: tmp/wordpress/wp-admin/custom-header.php:846 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:2042 +msgid "The uploaded file is not a valid image. Please try again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:550 +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:169 +#: tmp/old/wordpress/wp-admin/includes/media.php:999 +#: tmp/old/wordpress/wp-includes/media-template.php:691 +#: tmp/old/wordpress/wp-includes/media-template.php:766 +#: tmp/old/wordpress/wp-includes/media-template.php:940 +#: tmp/old/wordpress/wp-includes/media.php:3148 +#: tmp/wordpress/wp-admin/custom-background.php:550 +#: tmp/wordpress/wp-admin/includes/image-edit.php:169 +#: tmp/wordpress/wp-admin/includes/media.php:999 +#: tmp/wordpress/wp-includes/media-template.php:691 +#: tmp/wordpress/wp-includes/media-template.php:766 +#: tmp/wordpress/wp-includes/media-template.php:940 +#: tmp/wordpress/wp-includes/media.php:3148 +msgid "Thumbnail" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:550 +#: tmp/old/wordpress/wp-admin/includes/media.php:1000 +#: tmp/old/wordpress/wp-includes/media-template.php:692 +#: tmp/old/wordpress/wp-includes/media-template.php:767 +#: tmp/old/wordpress/wp-includes/media-template.php:941 +#: tmp/old/wordpress/wp-includes/media.php:3149 +#: tmp/wordpress/wp-admin/custom-background.php:550 +#: tmp/wordpress/wp-admin/includes/media.php:1000 +#: tmp/wordpress/wp-includes/media-template.php:692 +#: tmp/wordpress/wp-includes/media-template.php:767 +#: tmp/wordpress/wp-includes/media-template.php:941 +#: tmp/wordpress/wp-includes/media.php:3149 +msgid "Medium" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:550 +#: tmp/old/wordpress/wp-admin/includes/media.php:1001 +#: tmp/old/wordpress/wp-includes/media-template.php:693 +#: tmp/old/wordpress/wp-includes/media-template.php:768 +#: tmp/old/wordpress/wp-includes/media-template.php:942 +#: tmp/old/wordpress/wp-includes/media.php:3150 +#: tmp/wordpress/wp-admin/custom-background.php:550 +#: tmp/wordpress/wp-admin/includes/media.php:1001 +#: tmp/wordpress/wp-includes/media-template.php:693 +#: tmp/wordpress/wp-includes/media-template.php:768 +#: tmp/wordpress/wp-includes/media-template.php:942 +#: tmp/wordpress/wp-includes/media.php:3150 +msgid "Large" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-background.php:550 +#: tmp/old/wordpress/wp-admin/includes/media.php:1002 +#: tmp/old/wordpress/wp-includes/media-template.php:694 +#: tmp/old/wordpress/wp-includes/media-template.php:769 +#: tmp/old/wordpress/wp-includes/media-template.php:943 +#: tmp/old/wordpress/wp-includes/media.php:3151 +#: tmp/wordpress/wp-admin/custom-background.php:550 +#: tmp/wordpress/wp-admin/includes/media.php:1002 +#: tmp/wordpress/wp-includes/media-template.php:694 +#: tmp/wordpress/wp-includes/media-template.php:769 +#: tmp/wordpress/wp-includes/media-template.php:943 +#: tmp/wordpress/wp-includes/media.php:3151 +msgid "Full Size" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:77 +#: tmp/old/wordpress/wp-admin/menu.php:168 +#: tmp/old/wordpress/wp-includes/admin-bar.php:807 +#: tmp/wordpress/wp-admin/custom-header.php:77 +#: tmp/wordpress/wp-admin/menu.php:168 +#: tmp/wordpress/wp-includes/admin-bar.php:807 +msgid "Header" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:102 +#: tmp/wordpress/wp-admin/custom-header.php:102 +msgid "This screen is used to customize the header section of your theme." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:103 +#: tmp/wordpress/wp-admin/custom-header.php:103 +msgid "" +"You can choose from the theme’s default header images, or use one of " +"your own. You can also customize how your Site Title and Tagline are " +"displayed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:108 +#: tmp/old/wordpress/wp-admin/custom-header.php:477 +#: tmp/old/wordpress/wp-admin/includes/template.php:1763 +#: tmp/old/wordpress/wp-admin/includes/template.php:1770 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3893 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:31 +#: tmp/wordpress/wp-admin/custom-header.php:108 +#: tmp/wordpress/wp-admin/custom-header.php:477 +#: tmp/wordpress/wp-admin/includes/template.php:1763 +#: tmp/wordpress/wp-admin/includes/template.php:1770 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3893 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:31 +msgid "Header Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:110 +#: tmp/wordpress/wp-admin/custom-header.php:110 +msgid "" +"You can set a custom image header for your site. Simply upload the image and " +"crop it, and the new header will go live immediately. Alternatively, you can " +"use an image that has already been uploaded to your Media Library by " +"clicking the “Choose Image” button." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:111 +#: tmp/wordpress/wp-admin/custom-header.php:111 +msgid "" +"Some themes come with additional header images bundled. If you see multiple " +"images displayed, select the one you’d like and click the “Save " +"Changes” button." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:112 +#: tmp/wordpress/wp-admin/custom-header.php:112 +msgid "" +"If your theme has more than one default header image, or you have uploaded " +"more than one custom header image, you have the option of having WordPress " +"display a randomly different image on each page of your site. Click the " +"“Random” radio button next to the Uploaded Images or Default " +"Images section to enable this feature." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:113 +#: tmp/wordpress/wp-admin/custom-header.php:113 +msgid "" +"If you don’t want a header image to be displayed on your site at all, " +"click the “Remove Header Image” button at the bottom of the " +"Header Image section of this page. If you want to re-enable the header image " +"later, you just have to select one of the other image options and click " +"“Save Changes”." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:118 +#: tmp/old/wordpress/wp-admin/custom-header.php:657 +#: tmp/old/wordpress/wp-admin/custom-header.php:662 +#: tmp/wordpress/wp-admin/custom-header.php:118 +#: tmp/wordpress/wp-admin/custom-header.php:657 +#: tmp/wordpress/wp-admin/custom-header.php:662 +msgid "Header Text" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:120 +#: tmp/wordpress/wp-admin/custom-header.php:120 +msgid "" +"For most themes, the header text is your Site Title and Tagline, as defined " +"in the General Settings section." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:121 +#: tmp/wordpress/wp-admin/custom-header.php:121 +msgid "" +"In the Header Text section of this page, you can choose whether to display " +"this text or hide it. You can also choose a color for the text by clicking " +"the Select Color button and either typing in a legitimate HTML hex value, e." +"g. “#ff0000” for red, or by choosing a color using the color " +"picker." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:122 +#: tmp/wordpress/wp-admin/custom-header.php:122 +msgid "" +"Don’t forget to click “Save Changes” when you’re " +"done!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:127 +#: tmp/wordpress/wp-admin/custom-header.php:127 +msgid "" +"Documentation on Custom Header" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:279 +#: tmp/wordpress/wp-admin/custom-header.php:279 +msgid "Random: Show a different image on each page." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:456 +#: tmp/old/wordpress/wp-admin/includes/theme.php:252 +#: tmp/wordpress/wp-admin/custom-header.php:456 +#: tmp/wordpress/wp-admin/includes/theme.php:252 +msgid "Custom Header" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:463 +#: tmp/wordpress/wp-admin/custom-header.php:463 +msgid "" +"You can now manage and live-preview Custom Header in the Customizer." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:473 +#: tmp/wordpress/wp-admin/custom-header.php:473 +msgid "Header updated. Visit your site to see how it looks." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:523 +#: tmp/wordpress/wp-admin/custom-header.php:523 +msgid "" +"You can select an image to be shown at the top of your site by uploading " +"from your computer or choosing from your media library. After selecting an " +"image you will be able to crop it." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:526 +#: tmp/wordpress/wp-admin/custom-header.php:526 +msgid "" +"Images of exactly %1$d × %2$d pixels will be used as-" +"is." +msgstr "" + +#. translators: %s: size in pixels +#: tmp/old/wordpress/wp-admin/custom-header.php:531 +#: tmp/wordpress/wp-admin/custom-header.php:531 +msgid "Images should be at least %s wide." +msgstr "" + +#. translators: %d: custom header width +#. translators: %d: custom header height +#. translators: %d: custom header width +#. translators: %d: custom header height +#: tmp/old/wordpress/wp-admin/custom-header.php:534 +#: tmp/old/wordpress/wp-admin/custom-header.php:545 +#: tmp/old/wordpress/wp-admin/custom-header.php:557 +#: tmp/old/wordpress/wp-admin/custom-header.php:567 +#: tmp/wordpress/wp-admin/custom-header.php:534 +#: tmp/wordpress/wp-admin/custom-header.php:545 +#: tmp/wordpress/wp-admin/custom-header.php:557 +#: tmp/wordpress/wp-admin/custom-header.php:567 +msgid "%d pixels" +msgstr "" + +#. translators: %s: size in pixels +#: tmp/old/wordpress/wp-admin/custom-header.php:542 +#: tmp/wordpress/wp-admin/custom-header.php:542 +msgid "Images should be at least %s tall." +msgstr "" + +#. translators: %s: size in pixels +#: tmp/old/wordpress/wp-admin/custom-header.php:554 +#: tmp/wordpress/wp-admin/custom-header.php:554 +msgid "Suggested width is %s." +msgstr "" + +#. translators: %s: size in pixels +#: tmp/old/wordpress/wp-admin/custom-header.php:564 +#: tmp/wordpress/wp-admin/custom-header.php:564 +msgid "Suggested height is %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:592 +#: tmp/wordpress/wp-admin/custom-header.php:592 +msgid "Choose a Custom Header" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:593 +#: tmp/wordpress/wp-admin/custom-header.php:593 +msgid "Set as header" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:608 +#: tmp/wordpress/wp-admin/custom-header.php:608 +msgid "Uploaded Images" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:610 +#: tmp/wordpress/wp-admin/custom-header.php:610 +msgid "" +"You can choose one of your previously uploaded headers, or show a random one." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:619 +#: tmp/wordpress/wp-admin/custom-header.php:619 +msgid "Default Images" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:622 +#: tmp/wordpress/wp-admin/custom-header.php:622 +msgid "" +"If you don‘t want to upload your own image, you can use one of these " +"cool headers, or show a random one." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:624 +#: tmp/wordpress/wp-admin/custom-header.php:624 +msgid "" +"You can use one of these cool headers or show a random one on each page." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:636 +#: tmp/wordpress/wp-admin/custom-header.php:636 +msgid "" +"This will remove the header image. You will not be able to restore any " +"customizations." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:637 +#: tmp/wordpress/wp-admin/custom-header.php:637 +msgid "Remove Header Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:645 +#: tmp/wordpress/wp-admin/custom-header.php:645 +msgid "Reset Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:647 +#: tmp/wordpress/wp-admin/custom-header.php:647 +msgid "" +"This will restore the original header image. You will not be able to restore " +"any customizations." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:648 +#: tmp/wordpress/wp-admin/custom-header.php:648 +msgid "Restore Original Header Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:665 +#: tmp/wordpress/wp-admin/custom-header.php:665 +msgid "Show header text with your image." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:671 +#: tmp/wordpress/wp-admin/custom-header.php:671 +msgid "Text Color" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:692 +#: tmp/wordpress/wp-admin/custom-header.php:692 +msgctxt "color" +msgid "Default: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:726 +#: tmp/old/wordpress/wp-admin/custom-header.php:884 +#: tmp/old/wordpress/wp-admin/custom-header.php:892 +#: tmp/old/wordpress/wp-admin/customize.php:17 +#: tmp/old/wordpress/wp-admin/customize.php:32 +#: tmp/old/wordpress/wp-admin/customize.php:39 +#: tmp/old/wordpress/wp-admin/edit-comments.php:13 +#: tmp/old/wordpress/wp-admin/edit-tags.php:26 +#: tmp/old/wordpress/wp-admin/edit-tags.php:76 +#: tmp/old/wordpress/wp-admin/edit-tags.php:100 +#: tmp/old/wordpress/wp-admin/edit-tags.php:117 +#: tmp/old/wordpress/wp-admin/edit-tags.php:153 +#: tmp/old/wordpress/wp-admin/edit.php:39 +#: tmp/old/wordpress/wp-admin/includes/bookmark.php:31 +#: tmp/old/wordpress/wp-admin/media-upload.php:37 +#: tmp/old/wordpress/wp-admin/media-upload.php:45 +#: tmp/old/wordpress/wp-admin/nav-menus.php:24 +#: tmp/old/wordpress/wp-admin/network/site-users.php:154 +#: tmp/old/wordpress/wp-admin/options.php:49 +#: tmp/old/wordpress/wp-admin/options.php:79 +#: tmp/old/wordpress/wp-admin/post-new.php:59 +#: tmp/old/wordpress/wp-admin/press-this.php:16 +#: tmp/old/wordpress/wp-admin/term.php:37 +#: tmp/old/wordpress/wp-admin/themes.php:14 +#: tmp/old/wordpress/wp-admin/themes.php:27 +#: tmp/old/wordpress/wp-admin/themes.php:42 +#: tmp/old/wordpress/wp-admin/themes.php:50 +#: tmp/old/wordpress/wp-admin/user-new.php:15 +#: tmp/old/wordpress/wp-admin/user-new.php:22 +#: tmp/old/wordpress/wp-admin/user-new.php:55 +#: tmp/old/wordpress/wp-admin/user-new.php:116 +#: tmp/old/wordpress/wp-admin/users.php:15 +#: tmp/old/wordpress/wp-admin/users.php:133 +#: tmp/old/wordpress/wp-admin/widgets.php:17 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:250 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:412 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:475 +#: tmp/old/wordpress/wp-includes/script-loader.php:467 +#: tmp/wordpress/wp-admin/custom-header.php:726 +#: tmp/wordpress/wp-admin/custom-header.php:884 +#: tmp/wordpress/wp-admin/custom-header.php:892 +#: tmp/wordpress/wp-admin/customize.php:17 +#: tmp/wordpress/wp-admin/customize.php:32 +#: tmp/wordpress/wp-admin/customize.php:39 +#: tmp/wordpress/wp-admin/edit-comments.php:13 +#: tmp/wordpress/wp-admin/edit-tags.php:26 +#: tmp/wordpress/wp-admin/edit-tags.php:76 +#: tmp/wordpress/wp-admin/edit-tags.php:100 +#: tmp/wordpress/wp-admin/edit-tags.php:117 +#: tmp/wordpress/wp-admin/edit-tags.php:153 tmp/wordpress/wp-admin/edit.php:39 +#: tmp/wordpress/wp-admin/includes/bookmark.php:31 +#: tmp/wordpress/wp-admin/media-upload.php:37 +#: tmp/wordpress/wp-admin/media-upload.php:45 +#: tmp/wordpress/wp-admin/nav-menus.php:24 +#: tmp/wordpress/wp-admin/network/site-users.php:154 +#: tmp/wordpress/wp-admin/options.php:49 tmp/wordpress/wp-admin/options.php:79 +#: tmp/wordpress/wp-admin/post-new.php:59 +#: tmp/wordpress/wp-admin/press-this.php:16 tmp/wordpress/wp-admin/term.php:37 +#: tmp/wordpress/wp-admin/themes.php:14 tmp/wordpress/wp-admin/themes.php:27 +#: tmp/wordpress/wp-admin/themes.php:42 tmp/wordpress/wp-admin/themes.php:50 +#: tmp/wordpress/wp-admin/user-new.php:15 +#: tmp/wordpress/wp-admin/user-new.php:22 +#: tmp/wordpress/wp-admin/user-new.php:55 +#: tmp/wordpress/wp-admin/user-new.php:116 tmp/wordpress/wp-admin/users.php:15 +#: tmp/wordpress/wp-admin/users.php:133 tmp/wordpress/wp-admin/widgets.php:17 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:250 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:412 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:475 +#: tmp/wordpress/wp-includes/script-loader.php:467 +msgid "Cheatin’ uh?" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:727 +#: tmp/old/wordpress/wp-admin/custom-header.php:885 +#: tmp/wordpress/wp-admin/custom-header.php:727 +#: tmp/wordpress/wp-admin/custom-header.php:885 +msgid "The current theme does not support uploading a custom header image." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:787 +#: tmp/old/wordpress/wp-admin/custom-header.php:923 +#: tmp/old/wordpress/wp-admin/custom-header.php:1234 +#: tmp/wordpress/wp-admin/custom-header.php:787 +#: tmp/wordpress/wp-admin/custom-header.php:923 +#: tmp/wordpress/wp-admin/custom-header.php:1234 +msgid "Image could not be processed. Please go back and try again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:787 +#: tmp/old/wordpress/wp-admin/custom-header.php:923 +#: tmp/wordpress/wp-admin/custom-header.php:787 +#: tmp/wordpress/wp-admin/custom-header.php:923 +msgid "Image Processing Error" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:801 +#: tmp/wordpress/wp-admin/custom-header.php:801 +msgid "Crop Header Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:804 +#: tmp/wordpress/wp-admin/custom-header.php:804 +msgid "Choose the part of the image you want to use as your header." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:805 +#: tmp/wordpress/wp-admin/custom-header.php:805 +msgid "You need JavaScript to choose a part of the image." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:823 +#: tmp/wordpress/wp-admin/custom-header.php:823 +msgid "Crop and Publish" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:826 +#: tmp/wordpress/wp-admin/custom-header.php:826 +msgid "Skip Cropping, Publish Image as Is" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:851 +#: tmp/wordpress/wp-admin/custom-header.php:851 +msgid "Image Upload Error" +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:893 +#: tmp/wordpress/wp-admin/custom-header.php:893 +msgid "The current theme does not support a flexible sized header image." +msgstr "" + +#: tmp/old/wordpress/wp-admin/custom-header.php:969 +#: tmp/wordpress/wp-admin/custom-header.php:969 +msgid "Sorry, you are not allowed to customize headers." +msgstr "" + +#: tmp/old/wordpress/wp-admin/customize.php:18 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:476 +#: tmp/old/wordpress/wp-includes/script-loader.php:468 +#: tmp/wordpress/wp-admin/customize.php:18 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:476 +#: tmp/wordpress/wp-includes/script-loader.php:468 +msgid "Sorry, you are not allowed to customize this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/customize.php:33 +#: tmp/wordpress/wp-admin/customize.php:33 +msgid "Sorry, you are not allowed to edit this changeset." +msgstr "" + +#: tmp/old/wordpress/wp-admin/customize.php:40 +#: tmp/wordpress/wp-admin/customize.php:40 +msgid "" +"This changeset has already been published and cannot be further modified." +msgstr "" + +#: tmp/old/wordpress/wp-admin/customize.php:41 +#: tmp/wordpress/wp-admin/customize.php:41 +msgid "Customize New Changes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/customize.php:107 +#: tmp/wordpress/wp-admin/customize.php:107 +msgid "Loading…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/customize.php:136 +#: tmp/old/wordpress/wp-includes/script-loader.php:462 +#: tmp/wordpress/wp-admin/customize.php:136 +#: tmp/wordpress/wp-includes/script-loader.php:462 +msgid "Save & Publish" +msgstr "" + +#: tmp/old/wordpress/wp-admin/customize.php:136 +#: tmp/old/wordpress/wp-includes/script-loader.php:461 +#: tmp/wordpress/wp-admin/customize.php:136 +#: tmp/wordpress/wp-includes/script-loader.php:461 +msgid "Save & Activate" +msgstr "" + +#: tmp/old/wordpress/wp-admin/customize.php:145 +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader-skin.php:55 +#: tmp/old/wordpress/wp-admin/menu.php:160 +#: tmp/old/wordpress/wp-admin/themes.php:281 +#: tmp/old/wordpress/wp-admin/themes.php:414 +#: tmp/old/wordpress/wp-admin/themes.php:471 +#: tmp/old/wordpress/wp-includes/admin-bar.php:396 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-theme-control.php:85 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:67 +#: tmp/wordpress/wp-admin/customize.php:145 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader-skin.php:55 +#: tmp/wordpress/wp-admin/menu.php:160 tmp/wordpress/wp-admin/themes.php:281 +#: tmp/wordpress/wp-admin/themes.php:414 tmp/wordpress/wp-admin/themes.php:471 +#: tmp/wordpress/wp-includes/admin-bar.php:396 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-theme-control.php:85 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:67 +msgid "Customize" +msgstr "" + +#: tmp/old/wordpress/wp-admin/customize.php:149 +#: tmp/wordpress/wp-admin/customize.php:149 +msgid "Close the Customizer and go back to the previous page" +msgstr "" + +#. translators: %s: the site/panel title in the Customizer +#: tmp/old/wordpress/wp-admin/customize.php:158 +#: tmp/old/wordpress/wp-includes/class-wp-customize-panel.php:372 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menus-panel.php:81 +#: tmp/wordpress/wp-admin/customize.php:158 +#: tmp/wordpress/wp-includes/class-wp-customize-panel.php:372 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menus-panel.php:81 +msgid "You are customizing %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/customize.php:160 +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:888 +#: tmp/old/wordpress/wp-includes/class-wp-customize-panel.php:375 +#: tmp/old/wordpress/wp-includes/class-wp-customize-section.php:377 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menus-panel.php:85 +#: tmp/wordpress/wp-admin/customize.php:160 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:888 +#: tmp/wordpress/wp-includes/class-wp-customize-panel.php:375 +#: tmp/wordpress/wp-includes/class-wp-customize-section.php:377 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menus-panel.php:85 +msgid "Help" +msgstr "" + +#: tmp/old/wordpress/wp-admin/customize.php:163 +#: tmp/wordpress/wp-admin/customize.php:163 +msgid "" +"The Customizer allows you to preview changes to your site before publishing " +"them. You can navigate to different pages on your site within the preview. " +"Edit shortcuts are shown for some editable elements." +msgstr "" + +#: tmp/old/wordpress/wp-admin/customize.php:194 +#: tmp/old/wordpress/wp-includes/script-loader.php:471 +#: tmp/wordpress/wp-admin/customize.php:194 +#: tmp/wordpress/wp-includes/script-loader.php:471 +msgctxt "label for hide controls button without length constraints" +msgid "Hide Controls" +msgstr "" + +#: tmp/old/wordpress/wp-admin/customize.php:196 +#: tmp/wordpress/wp-admin/customize.php:196 +msgctxt "short (~12 characters) label for hide controls button" +msgid "Hide Controls" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:14 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:134 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:354 +#: tmp/wordpress/wp-admin/edit-comments.php:14 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:134 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:354 +msgid "Sorry, you are not allowed to edit comments." +msgstr "" + +#. translators: 1: comments count 2: post title +#: tmp/old/wordpress/wp-admin/edit-comments.php:137 +#: tmp/wordpress/wp-admin/edit-comments.php:137 +msgid "Comments (%1$s) on “%2$s”" +msgstr "" + +#. translators: %s: post title +#. translators: %s: link to post +#: tmp/old/wordpress/wp-admin/edit-comments.php:143 +#: tmp/old/wordpress/wp-admin/edit-comments.php:200 +#: tmp/wordpress/wp-admin/edit-comments.php:143 +#: tmp/wordpress/wp-admin/edit-comments.php:200 +msgid "Comments on “%s”" +msgstr "" + +#. translators: %s: comments count +#: tmp/old/wordpress/wp-admin/edit-comments.php:151 +#: tmp/old/wordpress/wp-includes/script-loader.php:531 +#: tmp/wordpress/wp-admin/edit-comments.php:151 +#: tmp/wordpress/wp-includes/script-loader.php:531 +msgid "Comments (%s)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:155 +#: tmp/old/wordpress/wp-admin/edit-comments.php:207 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:304 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:339 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:310 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:575 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1586 +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:1086 +#: tmp/old/wordpress/wp-admin/includes/file.php:20 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:222 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:108 +#: tmp/old/wordpress/wp-includes/script-loader.php:529 +#: tmp/wordpress/wp-admin/edit-comments.php:155 +#: tmp/wordpress/wp-admin/edit-comments.php:207 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:304 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:339 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:310 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:575 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1586 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:1086 +#: tmp/wordpress/wp-admin/includes/file.php:20 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:222 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:108 +#: tmp/wordpress/wp-includes/script-loader.php:529 +msgid "Comments" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:165 +#: tmp/wordpress/wp-admin/edit-comments.php:165 +msgid "" +"You can manage comments made on your site similar to the way you manage " +"posts and other content. This screen is customizable in the same ways as " +"other management screens, and you can act on comments using the on-hover " +"action links or the Bulk Actions." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:169 +#: tmp/wordpress/wp-admin/edit-comments.php:169 +msgid "Moderating Comments" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:171 +#: tmp/wordpress/wp-admin/edit-comments.php:171 +msgid "" +"A red bar on the left means the comment is waiting for you to moderate it." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:172 +#: tmp/wordpress/wp-admin/edit-comments.php:172 +msgid "" +"In the Author column, in addition to the author’s " +"name, email address, and blog URL, the commenter’s IP address is " +"shown. Clicking on this link will show you all the comments made from this " +"IP address." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:173 +#: tmp/wordpress/wp-admin/edit-comments.php:173 +msgid "" +"In the Comment column, hovering over any comment gives you " +"options to approve, reply (and approve), quick edit, edit, spam mark, or " +"trash that comment." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:174 +#: tmp/wordpress/wp-admin/edit-comments.php:174 +msgid "" +"In the In Response To column, there are three elements. The " +"text is the name of the post that inspired the comment, and links to the " +"post editor for that entry. The View Post link leads to that post on your " +"live site. The small bubble with the number in it shows the number of " +"approved comments that post has received. If there are pending comments, a " +"red notification circle with the number of pending comments is displayed. " +"Clicking the notification circle will filter the comments screen to show " +"only pending comments on that post." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:175 +#: tmp/wordpress/wp-admin/edit-comments.php:175 +msgid "" +"In the Submitted On column, the date and time the comment " +"was left on your site appears. Clicking on the date/time link will take you " +"to that comment on your live site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:176 +#: tmp/wordpress/wp-admin/edit-comments.php:176 +msgid "" +"Many people take advantage of keyboard shortcuts to moderate their comments " +"more quickly. Use the link to the side to learn more." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:182 +#: tmp/wordpress/wp-admin/edit-comments.php:182 +msgid "" +"Documentation on " +"Comment Spam" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:183 +#: tmp/wordpress/wp-admin/edit-comments.php:183 +msgid "" +"Documentation on " +"Keyboard Shortcuts" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:188 +#: tmp/wordpress/wp-admin/edit-comments.php:188 +msgid "Filter comments list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:189 +#: tmp/wordpress/wp-admin/edit-comments.php:189 +msgid "Comments list navigation" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:190 +#: tmp/wordpress/wp-admin/edit-comments.php:190 +msgid "Comments list" +msgstr "" + +#. translators: %s: search keywords +#. translators: %s: Search string +#: tmp/old/wordpress/wp-admin/edit-comments.php:213 +#: tmp/old/wordpress/wp-admin/edit-tags.php:296 +#: tmp/old/wordpress/wp-admin/edit.php:317 +#: tmp/old/wordpress/wp-admin/link-manager.php:85 +#: tmp/old/wordpress/wp-admin/network/sites.php:299 +#: tmp/old/wordpress/wp-admin/network/themes.php:253 +#: tmp/old/wordpress/wp-admin/network/users.php:225 +#: tmp/old/wordpress/wp-admin/plugins.php:510 +#: tmp/old/wordpress/wp-admin/upload.php:232 +#: tmp/old/wordpress/wp-admin/users.php:505 +#: tmp/old/wordpress/wp-includes/script-loader.php:635 +#: tmp/wordpress/wp-admin/edit-comments.php:213 +#: tmp/wordpress/wp-admin/edit-tags.php:296 tmp/wordpress/wp-admin/edit.php:317 +#: tmp/wordpress/wp-admin/link-manager.php:85 +#: tmp/wordpress/wp-admin/network/sites.php:299 +#: tmp/wordpress/wp-admin/network/themes.php:253 +#: tmp/wordpress/wp-admin/network/users.php:225 +#: tmp/wordpress/wp-admin/plugins.php:510 tmp/wordpress/wp-admin/upload.php:232 +#: tmp/wordpress/wp-admin/users.php:505 +#: tmp/wordpress/wp-includes/script-loader.php:635 +msgid "Search results for “%s”" +msgstr "" + +#. translators: %s: number of comments approved +#: tmp/old/wordpress/wp-admin/edit-comments.php:248 +#: tmp/wordpress/wp-admin/edit-comments.php:248 +msgid "%s comment approved" +msgid_plural "%s comments approved" +msgstr[0] "" +msgstr[1] "" + +#. translators: %s: number of comments marked as spam +#: tmp/old/wordpress/wp-admin/edit-comments.php:254 +#: tmp/wordpress/wp-admin/edit-comments.php:254 +msgid "%s comment marked as spam." +msgid_plural "%s comments marked as spam." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:254 +#: tmp/old/wordpress/wp-admin/edit-comments.php:265 +#: tmp/old/wordpress/wp-admin/edit.php:334 +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:203 +#: tmp/old/wordpress/wp-admin/includes/media.php:1510 +#: tmp/old/wordpress/wp-admin/includes/template.php:466 +#: tmp/old/wordpress/wp-admin/includes/template.php:469 +#: tmp/old/wordpress/wp-admin/upload.php:285 +#: tmp/old/wordpress/wp-admin/upload.php:303 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:874 +#: tmp/wordpress/wp-admin/edit-comments.php:254 +#: tmp/wordpress/wp-admin/edit-comments.php:265 +#: tmp/wordpress/wp-admin/edit.php:334 +#: tmp/wordpress/wp-admin/includes/image-edit.php:203 +#: tmp/wordpress/wp-admin/includes/media.php:1510 +#: tmp/wordpress/wp-admin/includes/template.php:466 +#: tmp/wordpress/wp-admin/includes/template.php:469 +#: tmp/wordpress/wp-admin/upload.php:285 tmp/wordpress/wp-admin/upload.php:303 +#: tmp/wordpress/wp-includes/class-wp-editor.php:874 +msgid "Undo" +msgstr "" + +#. translators: %s: number of comments restored from the spam +#: tmp/old/wordpress/wp-admin/edit-comments.php:259 +#: tmp/wordpress/wp-admin/edit-comments.php:259 +msgid "%s comment restored from the spam" +msgid_plural "%s comments restored from the spam" +msgstr[0] "" +msgstr[1] "" + +#. translators: %s: number of comments moved to the Trash +#: tmp/old/wordpress/wp-admin/edit-comments.php:265 +#: tmp/wordpress/wp-admin/edit-comments.php:265 +msgid "%s comment moved to the Trash." +msgid_plural "%s comments moved to the Trash." +msgstr[0] "" +msgstr[1] "" + +#. translators: %s: number of comments restored from the Trash +#: tmp/old/wordpress/wp-admin/edit-comments.php:270 +#: tmp/wordpress/wp-admin/edit-comments.php:270 +msgid "%s comment restored from the Trash" +msgid_plural "%s comments restored from the Trash" +msgstr[0] "" +msgstr[1] "" + +#. translators: %s: number of comments permanently deleted +#: tmp/old/wordpress/wp-admin/edit-comments.php:275 +#: tmp/wordpress/wp-admin/edit-comments.php:275 +msgid "%s comment permanently deleted" +msgid_plural "%s comments permanently deleted" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:281 +#: tmp/wordpress/wp-admin/edit-comments.php:281 +msgid "This comment is already approved." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:281 +#: tmp/old/wordpress/wp-admin/edit-comments.php:287 +#: tmp/wordpress/wp-admin/edit-comments.php:281 +#: tmp/wordpress/wp-admin/edit-comments.php:287 +msgid "Edit comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:284 +#: tmp/wordpress/wp-admin/edit-comments.php:284 +msgid "This comment is already in the Trash." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:284 +#: tmp/wordpress/wp-admin/edit-comments.php:284 +msgid "View Trash" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:287 +#: tmp/wordpress/wp-admin/edit-comments.php:287 +msgid "This comment is already marked as spam." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-comments.php:301 +#: tmp/wordpress/wp-admin/edit-comments.php:301 +msgid "Search Comments" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:97 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:103 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:97 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:103 +msgid "Preview post" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:109 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:109 +msgid "View post" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:115 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:121 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:115 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:121 +msgid "Preview page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:127 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:127 +msgid "View page" +msgstr "" + +#. translators: Publish box date format, see https://secure.php.net/date +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:133 +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:93 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:175 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:308 +#: tmp/old/wordpress/wp-admin/includes/revision.php:207 +#: tmp/old/wordpress/wp-admin/includes/revision.php:249 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:133 +#: tmp/wordpress/wp-admin/edit-form-comment.php:93 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:175 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:308 +#: tmp/wordpress/wp-admin/includes/revision.php:207 +#: tmp/wordpress/wp-admin/includes/revision.php:249 +msgid "M j, Y @ H:i" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:137 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:140 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:137 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:140 +msgid "Post updated." +msgstr "" + +#. translators: %s: date and time of the revision +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:142 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:142 +msgid "Post restored to revision from %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:143 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:143 +msgid "Post published." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:144 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:144 +msgid "Post saved." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:145 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:145 +msgid "Post submitted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:146 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:146 +msgid "Post scheduled for: %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:147 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:147 +msgid "Post draft updated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:151 +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:154 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:151 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:154 +msgid "Page updated." +msgstr "" + +#. translators: %s: date and time of the revision +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:156 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:156 +msgid "Page restored to revision from %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:157 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:157 +msgid "Page published." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:158 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:158 +msgid "Page saved." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:159 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:159 +msgid "Page submitted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:160 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:160 +msgid "Page scheduled for: %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:161 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:161 +msgid "Page draft updated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:163 +#: tmp/old/wordpress/wp-admin/media.php:95 +#: tmp/old/wordpress/wp-admin/upload.php:240 +#: tmp/old/wordpress/wp-admin/upload.php:300 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:163 +#: tmp/wordpress/wp-admin/media.php:95 tmp/wordpress/wp-admin/upload.php:240 +#: tmp/wordpress/wp-admin/upload.php:300 +msgid "Media file updated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:202 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:202 +msgid "" +"There is an autosave of this post that is more recent than the version " +"below. View the autosave" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:226 +#: tmp/old/wordpress/wp-admin/revision.php:80 +#: tmp/old/wordpress/wp-includes/post.php:95 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:226 +#: tmp/wordpress/wp-admin/revision.php:80 tmp/wordpress/wp-includes/post.php:95 +msgid "Revisions" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:233 +#: tmp/old/wordpress/wp-admin/edit-link-form.php:27 +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:221 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:35 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:301 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:888 +#: tmp/old/wordpress/wp-admin/includes/widgets.php:257 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:938 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:233 +#: tmp/wordpress/wp-admin/edit-link-form.php:27 +#: tmp/wordpress/wp-admin/includes/image-edit.php:221 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:35 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:301 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:888 +#: tmp/wordpress/wp-admin/includes/widgets.php:257 +#: tmp/wordpress/wp-includes/class-wp-editor.php:938 +msgid "Save" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:237 +#: tmp/old/wordpress/wp-includes/media-template.php:1082 +#: tmp/old/wordpress/wp-includes/media-template.php:1171 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:237 +#: tmp/wordpress/wp-includes/media-template.php:1082 +#: tmp/wordpress/wp-includes/media-template.php:1171 +msgid "Metadata" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:240 +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1525 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:265 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:266 +#: tmp/old/wordpress/wp-includes/script-loader.php:563 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:240 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1525 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:265 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:266 +#: tmp/wordpress/wp-includes/script-loader.php:563 +msgid "Publish" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:244 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1676 +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1455 +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1482 +#: tmp/old/wordpress/wp-includes/taxonomy.php:141 +#: tmp/old/wordpress/wp-includes/taxonomy.php:142 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:244 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1676 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1455 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1482 +#: tmp/wordpress/wp-includes/taxonomy.php:141 +#: tmp/wordpress/wp-includes/taxonomy.php:142 +msgctxt "post format" +msgid "Format" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:270 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:582 +#: tmp/old/wordpress/wp-includes/revision.php:36 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:270 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:582 +#: tmp/wordpress/wp-includes/revision.php:36 +msgid "Excerpt" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:273 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:273 +msgid "Send Trackbacks" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:276 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:276 +msgid "Custom Fields" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:291 +#: tmp/old/wordpress/wp-admin/menu.php:252 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:291 +#: tmp/wordpress/wp-admin/menu.php:252 +msgid "Discussion" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:309 +#: tmp/old/wordpress/wp-admin/edit-tag-form.php:126 +#: tmp/old/wordpress/wp-admin/edit-tags.php:392 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1405 +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:182 +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:600 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:751 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:309 +#: tmp/wordpress/wp-admin/edit-tag-form.php:126 +#: tmp/wordpress/wp-admin/edit-tags.php:392 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1405 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:182 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:600 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:751 +msgid "Slug" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:357 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:357 +msgid "" +"The title field and the big Post Editing Area are fixed in place, but you " +"can reposition all the other boxes using drag and drop. You can also " +"minimize or expand them by clicking the title bar of each box. Use the " +"Screen Options tab to unhide more boxes (Excerpt, Send Trackbacks, Custom " +"Fields, Discussion, Slug, Author) or to choose a 1- or 2-column layout for " +"this screen." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:361 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:361 +msgid "Customizing This Display" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:365 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:365 +msgid "" +"Title — Enter a title for your post. After you enter " +"a title, you’ll see the permalink below, which you can edit." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:366 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:366 +msgid "" +"Post editor — Enter the text for your post. There are " +"two modes of editing: Visual and Text. Choose the mode by clicking on the " +"appropriate tab." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:367 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:367 +msgid "" +"Visual mode gives you an editor that is similar to a word processor. Click " +"the Toolbar Toggle button to get a second row of controls." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:368 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:368 +msgid "" +"The Text mode allows you to enter HTML along with your post text. Note that " +"<p> and <br> tags are converted to line breaks when switching to " +"the Text editor to make it less cluttered. When you type, a single line " +"break can be used instead of typing <br>, and two line breaks instead " +"of paragraph tags. The line breaks are converted back to tags automatically." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:369 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:369 +msgid "" +"You can insert media files by clicking the icons above the post editor and " +"following the directions. You can align or edit images using the inline " +"formatting toolbar available in Visual mode." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:370 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:370 +msgid "" +"You can enable distraction-free writing mode using the icon to the right. " +"This feature is not available for old browsers or devices with small " +"screens, and requires that the full-height editor be enabled in Screen " +"Options." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:371 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:371 +msgid "" +"Keyboard users: When you’re working in the visual editor, you can use " +"Alt + F10 to access the toolbar." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:375 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:375 +msgid "Title and Post Editor" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:380 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:380 +msgid "" +"You can also create posts with the Press This bookmarklet." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:382 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:382 +msgid "" +"Documentation " +"on Writing and Editing Posts" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:386 +#: tmp/old/wordpress/wp-admin/edit.php:237 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:386 +#: tmp/wordpress/wp-admin/edit.php:237 +msgid "" +"Pages are similar to posts in that they have a title, body text, and " +"associated metadata, but they are different in that they are not part of the " +"chronological blog stream, kind of like permanent posts. Pages are not " +"categorized or tagged, but can have a hierarchy. You can nest pages under " +"other pages by making one the “Parent” of the other, creating a " +"group of pages." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:387 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:387 +msgid "" +"Creating a Page is very similar to creating a Post, and the screens can be " +"customized in the same way using drag and drop, the Screen Options tab, and " +"expanding/collapsing boxes as you choose. This screen also has the " +"distraction-free writing space, available in both the Visual and Text modes " +"via the Fullscreen buttons. The Page editor mostly works the same as the " +"Post editor, but there are some Page-specific features in the Page " +"Attributes box." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:391 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:391 +msgid "About Pages" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:397 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:397 +msgid "" +"Documentation " +"on Adding New Pages" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:398 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:398 +msgid "" +"Documentation on Editing Pages" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:406 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:406 +msgid "" +"This screen allows you to edit four fields for metadata in a file within the " +"media library." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:407 +#: tmp/old/wordpress/wp-admin/media.php:76 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:407 +#: tmp/wordpress/wp-admin/media.php:76 +msgid "" +"For images only, you can click on Edit Image under the thumbnail to expand " +"out an inline image editor with icons for cropping, rotating, or flipping " +"the image as well as for undoing and redoing. The boxes on the right give " +"you more options for scaling the image, for cropping it, and for cropping " +"the thumbnail in a different way than you crop the original image. You can " +"click on Help in those boxes to get more information." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:408 +#: tmp/old/wordpress/wp-admin/media.php:77 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:408 +#: tmp/wordpress/wp-admin/media.php:77 +msgid "" +"Note that you crop the image by clicking on it (the Crop icon is already " +"selected) and dragging the cropping frame to select the desired part. Then " +"click Save to retain the cropping." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:409 +#: tmp/old/wordpress/wp-admin/media.php:78 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:409 +#: tmp/wordpress/wp-admin/media.php:78 +msgid "Remember to click Update Media to save metadata entered or changed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:414 +#: tmp/old/wordpress/wp-admin/media.php:83 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:414 +#: tmp/wordpress/wp-admin/media.php:83 +msgid "" +"Documentation on Edit Media" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:420 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:420 +msgid "" +"You can upload and insert media (images, audio, documents, etc.) by clicking " +"the Add Media button. You can select from the images and files already " +"uploaded to the Media Library, or upload new media to add to your page or " +"post. To create an image gallery, select the images to add and click the " +"“Create a new gallery” button." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:421 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:421 +msgid "" +"You can also embed media from many popular websites including Twitter, " +"YouTube, Flickr and others by pasting the media URL on its own line into the " +"content of your post/page. Please refer to the Codex to learn more about embeds." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:425 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:425 +msgid "Inserting Media" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:431 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:431 +msgid "" +"Several boxes on this screen contain settings for how your content will be " +"published, including:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:433 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:433 +msgid "" +"Publish — You can set the terms of publishing your " +"post in the Publish box. For Status, Visibility, and Publish (immediately), " +"click on the Edit link to reveal more options. Visibility includes options " +"for password-protecting a post or making it stay at the top of your blog " +"indefinitely (sticky). The Password protected option allows you to set an " +"arbitrary password for each post. The Private option hides the post from " +"everyone except editors and administrators. Publish (immediately) allows you " +"to set a future or past date and time, so you can schedule a post to be " +"published in the future or backdate a post." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:437 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:437 +msgid "" +"Format — Post Formats designate how your theme will " +"display a specific post. For example, you could have a standard " +"blog post with a title and paragraphs, or a short aside that omits " +"the title and contains a short text blurb. Please refer to the Codex for descriptions of each post format. Your theme could enable all or some " +"of 10 possible formats." +msgstr "" + +#. translators: %s: Featured Image +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:442 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:442 +msgid "" +"%s — This allows you to associate an image with your " +"post without inserting it. This is usually useful only if your theme makes " +"use of the image as a post thumbnail on the home page, a custom header, etc." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:449 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:449 +msgid "Publish Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:453 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:453 +msgid "" +"Send Trackbacks — Trackbacks are a way to notify " +"legacy blog systems that you’ve linked to them. Enter the URL(s) you " +"want to send trackbacks. If you link to other WordPress sites they’ll " +"be notified automatically using pingbacks, and this field is unnecessary." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:454 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:454 +msgid "" +"Discussion — You can turn comments and pings on or " +"off, and if there are comments on the post, you can see them here and " +"moderate them." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:458 +#: tmp/old/wordpress/wp-admin/options-discussion.php:14 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:458 +#: tmp/wordpress/wp-admin/options-discussion.php:14 +msgid "Discussion Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:462 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:462 +msgid "" +"Parent — You can arrange your pages in hierarchies. " +"For example, you could have an “About” page that has “Life " +"Story” and “My Dog” pages under it. There are no limits to " +"how many levels you can nest pages." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:463 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:463 +msgid "" +"Template — Some themes have custom templates you can " +"use for certain pages that might have additional features or custom layouts. " +"If so, you’ll see them in this dropdown menu." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:464 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:464 +msgid "" +"Order — Pages are usually ordered alphabetically, but " +"you can choose your own order by entering a number (1 for first, etc.) in " +"this field." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:468 +#: tmp/old/wordpress/wp-includes/post.php:1384 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:468 +#: tmp/wordpress/wp-includes/post.php:1384 +msgid "Page Attributes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:496 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:496 +msgid "" +"Connection lost. Saving has been disabled until you’" +"re reconnected." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:497 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:497 +msgid "We’re backing up this post in your browser, just in case." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:561 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:561 +msgid "Enter title here" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:586 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:586 +msgid "Get Shortlink" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:635 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:635 +msgid "Word count: %s" +msgstr "" + +#. translators: 1: Name of most recent post author, 2: Post edited date, 3: +#. Post edited time +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:643 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:2278 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:643 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:2278 +msgid "Last edited by %1$s on %2$s at %3$s" +msgstr "" + +#. translators: 1: Post edited date, 2: Post edited time +#: tmp/old/wordpress/wp-admin/edit-form-advanced.php:646 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:2280 +#: tmp/wordpress/wp-admin/edit-form-advanced.php:646 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:2280 +msgid "Last edited on %1$s at %2$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:31 +#: tmp/wordpress/wp-admin/edit-form-comment.php:31 +msgctxt "comment" +msgid "Permalink:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:43 +#: tmp/wordpress/wp-admin/edit-form-comment.php:43 +msgid "Name:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:47 +#: tmp/wordpress/wp-admin/edit-form-comment.php:47 +msgid "Email:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:53 +#: tmp/wordpress/wp-admin/edit-form-comment.php:53 +msgid "URL:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:67 +#: tmp/old/wordpress/wp-admin/includes/template.php:402 +#: tmp/wordpress/wp-admin/edit-form-comment.php:67 +#: tmp/wordpress/wp-admin/includes/template.php:402 +msgid "Comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:84 +#: tmp/wordpress/wp-admin/edit-form-comment.php:84 +msgid "Comment status" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:85 +#: tmp/old/wordpress/wp-includes/comment.php:242 +#: tmp/wordpress/wp-admin/edit-form-comment.php:85 +#: tmp/wordpress/wp-includes/comment.php:242 +msgctxt "comment status" +msgid "Approved" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:86 +#: tmp/wordpress/wp-admin/edit-form-comment.php:86 +msgctxt "comment status" +msgid "Pending" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:87 +#: tmp/old/wordpress/wp-includes/comment.php:243 +#: tmp/wordpress/wp-admin/edit-form-comment.php:87 +#: tmp/wordpress/wp-includes/comment.php:243 +msgctxt "comment status" +msgid "Spam" +msgstr "" + +#. translators: %s: comment date +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:98 +#: tmp/wordpress/wp-admin/edit-form-comment.php:98 +msgid "Submitted on: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:102 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:212 +#: tmp/wordpress/wp-admin/edit-form-comment.php:102 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:212 +msgid "Edit date and time" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:104 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:214 +#: tmp/wordpress/wp-admin/edit-form-comment.php:104 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:214 +msgid "Date and time" +msgstr "" + +#. translators: %s: post link +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:122 +#: tmp/wordpress/wp-admin/edit-form-comment.php:122 +msgid "In response to: %s" +msgstr "" + +#. translators: %s: comment link +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:137 +#: tmp/wordpress/wp-admin/edit-form-comment.php:137 +msgid "In reply to: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-form-comment.php:165 +#: tmp/old/wordpress/wp-admin/edit-tag-form.php:256 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:338 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:466 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1736 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1739 +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:281 +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:404 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:274 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:275 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:345 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:346 +#: tmp/old/wordpress/wp-admin/includes/template.php:563 +#: tmp/old/wordpress/wp-includes/media.php:3406 +#: tmp/old/wordpress/wp-includes/script-loader.php:429 +#: tmp/old/wordpress/wp-includes/script-loader.php:565 +#: tmp/old/wordpress/wp-includes/script-loader.php:641 +#: tmp/wordpress/wp-admin/edit-form-comment.php:165 +#: tmp/wordpress/wp-admin/edit-tag-form.php:256 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:338 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:466 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1736 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1739 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:281 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:404 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:274 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:275 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:345 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:346 +#: tmp/wordpress/wp-admin/includes/template.php:563 +#: tmp/wordpress/wp-includes/media.php:3406 +#: tmp/wordpress/wp-includes/script-loader.php:429 +#: tmp/wordpress/wp-includes/script-loader.php:565 +#: tmp/wordpress/wp-includes/script-loader.php:641 +msgid "Update" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:14 +#: tmp/wordpress/wp-admin/edit-link-form.php:14 +msgid "Links / Edit Link" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:15 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:922 +#: tmp/wordpress/wp-admin/edit-link-form.php:15 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:922 +msgid "Update Link" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:19 +#: tmp/wordpress/wp-admin/edit-link-form.php:19 +msgid "Links / Add New Link" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:20 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:924 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1494 +#: tmp/old/wordpress/wp-includes/script-loader.php:430 +#: tmp/wordpress/wp-admin/edit-link-form.php:20 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:924 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1494 +#: tmp/wordpress/wp-includes/script-loader.php:430 +msgid "Add Link" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:28 +#: tmp/old/wordpress/wp-admin/includes/class-wp-links-list-table.php:130 +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:917 +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1464 +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1493 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/template-tags.php:84 +#: tmp/old/wordpress/wp-includes/category-template.php:527 +#: tmp/old/wordpress/wp-includes/theme-compat/sidebar.php:97 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-categories.php:31 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-categories.php:48 +#: tmp/wordpress/wp-admin/edit-link-form.php:28 +#: tmp/wordpress/wp-admin/includes/class-wp-links-list-table.php:130 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:917 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1464 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1493 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/template-tags.php:84 +#: tmp/wordpress/wp-includes/category-template.php:527 +#: tmp/wordpress/wp-includes/theme-compat/sidebar.php:97 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-categories.php:31 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-categories.php:48 +msgid "Categories" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:29 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:996 +#: tmp/wordpress/wp-admin/edit-link-form.php:29 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:996 +msgid "Target" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:30 +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:188 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:981 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:122 +#: tmp/wordpress/wp-admin/edit-link-form.php:30 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:188 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:981 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:122 +msgid "Link Relationship (XFN)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:31 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:911 +#: tmp/wordpress/wp-admin/edit-link-form.php:31 +#: tmp/wordpress/wp-includes/class-wp-editor.php:911 +msgid "Advanced" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:58 +#: tmp/wordpress/wp-admin/edit-link-form.php:58 +msgid "" +"You can add or edit links on this screen by entering information in each of " +"the boxes. Only the link’s web address and name (the text you want to " +"display on your site as the link) are required fields." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:59 +#: tmp/wordpress/wp-admin/edit-link-form.php:59 +msgid "" +"The boxes for link name, web address, and description have fixed positions, " +"while the others may be repositioned using drag and drop. You can also hide " +"boxes you don’t use in the Screen Options tab, or minimize boxes by " +"clicking on the title bar of the box." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:60 +#: tmp/wordpress/wp-admin/edit-link-form.php:60 +msgid "" +"XFN stands for XHTML Friends Network, " +"which is optional. WordPress allows the generation of XFN attributes to show " +"how you are related to the authors/owners of the site to which you are " +"linking." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:65 +#: tmp/wordpress/wp-admin/edit-link-form.php:65 +msgid "" +"Documentation " +"on Creating Links" +msgstr "" + +#. translators: add new links +#: tmp/old/wordpress/wp-admin/edit-link-form.php:73 +#: tmp/old/wordpress/wp-admin/link-manager.php:82 +#: tmp/old/wordpress/wp-admin/menu.php:65 +#: tmp/wordpress/wp-admin/edit-link-form.php:73 +#: tmp/wordpress/wp-admin/link-manager.php:82 +#: tmp/wordpress/wp-admin/menu.php:65 +msgctxt "link" +msgid "Add New" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:76 +#: tmp/wordpress/wp-admin/edit-link-form.php:76 +msgid "Link added." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:94 +#: tmp/old/wordpress/wp-admin/includes/class-wp-links-list-table.php:128 +#: tmp/wordpress/wp-admin/edit-link-form.php:94 +#: tmp/wordpress/wp-admin/includes/class-wp-links-list-table.php:128 +msgctxt "link name" +msgid "Name" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:97 +#: tmp/wordpress/wp-admin/edit-link-form.php:97 +msgid "Example: Nifty blogging software" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:102 +#: tmp/wordpress/wp-admin/edit-link-form.php:102 +msgid "Web Address" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:105 +#: tmp/wordpress/wp-admin/edit-link-form.php:105 +msgid "" +"Example: http://wordpress.org/ — don’t forget the " +"http://" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:110 +#: tmp/old/wordpress/wp-admin/edit-tag-form.php:174 +#: tmp/old/wordpress/wp-admin/edit-tags.php:442 +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:194 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:248 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:387 +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:181 +#: tmp/old/wordpress/wp-admin/includes/media.php:1222 +#: tmp/old/wordpress/wp-admin/includes/media.php:2825 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:982 +#: tmp/old/wordpress/wp-admin/themes.php:319 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:905 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:128 +#: tmp/old/wordpress/wp-includes/media-template.php:405 +#: tmp/old/wordpress/wp-includes/media-template.php:586 +#: tmp/wordpress/wp-admin/edit-link-form.php:110 +#: tmp/wordpress/wp-admin/edit-tag-form.php:174 +#: tmp/wordpress/wp-admin/edit-tags.php:442 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:194 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:248 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:387 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:181 +#: tmp/wordpress/wp-admin/includes/media.php:1222 +#: tmp/wordpress/wp-admin/includes/media.php:2825 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:982 +#: tmp/wordpress/wp-admin/themes.php:319 +#: tmp/wordpress/wp-includes/class-wp-editor.php:905 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:128 +#: tmp/wordpress/wp-includes/media-template.php:405 +#: tmp/wordpress/wp-includes/media-template.php:586 +msgid "Description" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-link-form.php:113 +#: tmp/wordpress/wp-admin/edit-link-form.php:113 +msgid "" +"This will be shown when someone hovers over the link in the blogroll, or " +"optionally below the link." +msgstr "" + +#. translators: %s: taxonomy name +#: tmp/old/wordpress/wp-admin/edit-tag-form.php:79 +#: tmp/wordpress/wp-admin/edit-tag-form.php:79 +msgctxt "admin screen" +msgid "← Back to %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tag-form.php:120 +#: tmp/old/wordpress/wp-admin/edit-tags.php:386 +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:180 +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:595 +#: tmp/wordpress/wp-admin/edit-tag-form.php:120 +#: tmp/wordpress/wp-admin/edit-tags.php:386 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:180 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:595 +msgctxt "term name" +msgid "Name" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tag-form.php:122 +#: tmp/old/wordpress/wp-admin/edit-tags.php:388 +#: tmp/wordpress/wp-admin/edit-tag-form.php:122 +#: tmp/wordpress/wp-admin/edit-tags.php:388 +msgid "The name is how it appears on your site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tag-form.php:144 +#: tmp/old/wordpress/wp-admin/edit-tags.php:394 +#: tmp/wordpress/wp-admin/edit-tag-form.php:144 +#: tmp/wordpress/wp-admin/edit-tags.php:394 +msgid "" +"The “slug” is the URL-friendly version of the name. It is " +"usually all lowercase and contains only letters, numbers, and hyphens." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tag-form.php:149 +#: tmp/old/wordpress/wp-admin/edit-tags.php:399 +#: tmp/wordpress/wp-admin/edit-tag-form.php:149 +#: tmp/wordpress/wp-admin/edit-tags.php:399 +msgctxt "term parent" +msgid "Parent" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tag-form.php:168 +#: tmp/old/wordpress/wp-admin/edit-tags.php:437 +#: tmp/wordpress/wp-admin/edit-tag-form.php:168 +#: tmp/wordpress/wp-admin/edit-tags.php:437 +msgid "" +"Categories, unlike tags, can have a hierarchy. You might have a Jazz " +"category, and under that have children categories for Bebop and Big Band. " +"Totally optional." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tag-form.php:176 +#: tmp/old/wordpress/wp-admin/edit-tags.php:444 +#: tmp/wordpress/wp-admin/edit-tag-form.php:176 +#: tmp/wordpress/wp-admin/edit-tags.php:444 +msgid "" +"The description is not prominent by default; however, some themes may show " +"it." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:13 +#: tmp/old/wordpress/wp-admin/edit-tags.php:18 +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:56 +#: tmp/old/wordpress/wp-includes/class-wp-tax-query.php:565 +#: tmp/old/wordpress/wp-includes/class-wp-tax-query.php:572 +#: tmp/old/wordpress/wp-includes/class-wp-term.php:179 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1876 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1964 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2061 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2132 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2191 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2286 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:169 +#: tmp/old/wordpress/wp-includes/taxonomy.php:419 +#: tmp/old/wordpress/wp-includes/taxonomy.php:639 +#: tmp/old/wordpress/wp-includes/taxonomy.php:730 +#: tmp/old/wordpress/wp-includes/taxonomy.php:894 +#: tmp/old/wordpress/wp-includes/taxonomy.php:1114 +#: tmp/old/wordpress/wp-includes/taxonomy.php:1867 +#: tmp/old/wordpress/wp-includes/taxonomy.php:1961 +#: tmp/old/wordpress/wp-includes/taxonomy.php:2222 +#: tmp/old/wordpress/wp-includes/taxonomy.php:2364 +#: tmp/old/wordpress/wp-includes/taxonomy.php:2564 +#: tmp/wordpress/wp-admin/edit-tags.php:13 +#: tmp/wordpress/wp-admin/edit-tags.php:18 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:56 +#: tmp/wordpress/wp-includes/class-wp-tax-query.php:565 +#: tmp/wordpress/wp-includes/class-wp-tax-query.php:572 +#: tmp/wordpress/wp-includes/class-wp-term.php:179 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1876 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1964 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2061 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2132 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2191 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2286 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:169 +#: tmp/wordpress/wp-includes/taxonomy.php:419 +#: tmp/wordpress/wp-includes/taxonomy.php:639 +#: tmp/wordpress/wp-includes/taxonomy.php:730 +#: tmp/wordpress/wp-includes/taxonomy.php:894 +#: tmp/wordpress/wp-includes/taxonomy.php:1114 +#: tmp/wordpress/wp-includes/taxonomy.php:1867 +#: tmp/wordpress/wp-includes/taxonomy.php:1961 +#: tmp/wordpress/wp-includes/taxonomy.php:2222 +#: tmp/wordpress/wp-includes/taxonomy.php:2364 +#: tmp/wordpress/wp-includes/taxonomy.php:2564 +msgid "Invalid taxonomy." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:21 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:150 +#: tmp/wordpress/wp-admin/edit-tags.php:21 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:150 +msgid "Sorry, you are not allowed to edit terms in this taxonomy." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:27 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:90 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:150 +#: tmp/wordpress/wp-admin/edit-tags.php:27 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:90 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:150 +msgid "Sorry, you are not allowed to manage terms in this taxonomy." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:77 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1881 +#: tmp/wordpress/wp-admin/edit-tags.php:77 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1881 +msgid "Sorry, you are not allowed to create terms in this taxonomy." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:101 +#: tmp/old/wordpress/wp-admin/edit.php:140 +#: tmp/old/wordpress/wp-admin/post.php:255 +#: tmp/old/wordpress/wp-admin/themes.php:43 +#: tmp/old/wordpress/wp-admin/upload.php:159 +#: tmp/wordpress/wp-admin/edit-tags.php:101 tmp/wordpress/wp-admin/edit.php:140 +#: tmp/wordpress/wp-admin/post.php:255 tmp/wordpress/wp-admin/themes.php:43 +#: tmp/wordpress/wp-admin/upload.php:159 +msgid "Sorry, you are not allowed to delete this item." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:118 +#: tmp/old/wordpress/wp-admin/options.php:80 +#: tmp/wordpress/wp-admin/edit-tags.php:118 +#: tmp/wordpress/wp-admin/options.php:80 +msgid "Sorry, you are not allowed to delete these items." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:141 +#: tmp/old/wordpress/wp-admin/edit-tags.php:161 +#: tmp/old/wordpress/wp-admin/post.php:107 +#: tmp/old/wordpress/wp-admin/term.php:26 +#: tmp/wordpress/wp-admin/edit-tags.php:141 +#: tmp/wordpress/wp-admin/edit-tags.php:161 tmp/wordpress/wp-admin/post.php:107 +#: tmp/wordpress/wp-admin/term.php:26 +msgid "" +"You attempted to edit an item that doesn’t exist. Perhaps it was " +"deleted?" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:218 +#: tmp/wordpress/wp-admin/edit-tags.php:218 +msgid "" +"You can use categories to define sections of your site and group related " +"posts. The default category is “Uncategorized” until you change " +"it in your writing settings." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:220 +#: tmp/wordpress/wp-admin/edit-tags.php:220 +msgid "" +"You can create groups of links by using Link Categories. Link Category names " +"must be unique and Link Categories are separate from the categories you use " +"for posts." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:222 +#: tmp/wordpress/wp-admin/edit-tags.php:222 +msgid "" +"You can assign keywords to your posts using tags. Unlike " +"categories, tags have no hierarchy, meaning there’s no relationship " +"from one tag to another." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:225 +#: tmp/wordpress/wp-admin/edit-tags.php:225 +msgid "" +"You can delete Link Categories in the Bulk Action pull-down, but that action " +"does not delete the links within the category. Instead, it moves them to the " +"default Link Category." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:227 +#: tmp/wordpress/wp-admin/edit-tags.php:227 +msgid "" +"What’s the difference between categories and tags? Normally, tags are " +"ad-hoc keywords that identify important information in your post (names, " +"subjects, etc) that may or may not recur in other posts, while categories " +"are pre-determined sections. If you think of your site like a book, the " +"categories are like the Table of Contents and the tags are like the terms in " +"the index." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:237 +#: tmp/wordpress/wp-admin/edit-tags.php:237 +msgid "" +"When adding a new category on this screen, you’ll fill in the " +"following fields:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:239 +#: tmp/wordpress/wp-admin/edit-tags.php:239 +msgid "" +"When adding a new tag on this screen, you’ll fill in the following " +"fields:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:242 +#: tmp/wordpress/wp-admin/edit-tags.php:242 +msgid "Name — The name is how it appears on your site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:245 +#: tmp/wordpress/wp-admin/edit-tags.php:245 +msgid "" +"Slug — The “slug” is the URL-friendly " +"version of the name. It is usually all lowercase and contains only letters, " +"numbers, and hyphens." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:248 +#: tmp/wordpress/wp-admin/edit-tags.php:248 +msgid "" +"Parent — Categories, unlike tags, can have a " +"hierarchy. You might have a Jazz category, and under that have child " +"categories for Bebop and Big Band. Totally optional. To create a " +"subcategory, just choose another category from the Parent dropdown." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:250 +#: tmp/wordpress/wp-admin/edit-tags.php:250 +msgid "" +"Description — The description is not prominent by " +"default; however, some themes may display it." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:252 +#: tmp/wordpress/wp-admin/edit-tags.php:252 +msgid "" +"You can change the display of this screen using the Screen Options tab to " +"set how many items are displayed per screen and to display/hide columns in " +"the table." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:256 +#: tmp/wordpress/wp-admin/edit-tags.php:256 +msgid "Adding Categories" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:256 +#: tmp/wordpress/wp-admin/edit-tags.php:256 +msgid "Adding Tags" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:264 +#: tmp/wordpress/wp-admin/edit-tags.php:264 +msgid "" +"Documentation on Categories" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:266 +#: tmp/wordpress/wp-admin/edit-tags.php:266 +msgid "" +"Documentation on Link Categories" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:268 +#: tmp/wordpress/wp-admin/edit-tags.php:268 +msgid "" +"Documentation on " +"Tags" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:535 +#: tmp/old/wordpress/wp-admin/includes/network.php:173 +#: tmp/old/wordpress/wp-admin/options-general.php:352 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:138 +#: tmp/wordpress/wp-admin/edit-tags.php:535 +#: tmp/wordpress/wp-admin/includes/network.php:173 +#: tmp/wordpress/wp-admin/options-general.php:352 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:138 +msgid "Note:" +msgstr "" + +#. translators: %s: default category +#: tmp/old/wordpress/wp-admin/edit-tags.php:538 +#: tmp/wordpress/wp-admin/edit-tags.php:538 +msgid "" +"Deleting a category does not delete the posts in that category. Instead, " +"posts that were only assigned to the deleted category are set to the " +"category %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:545 +#: tmp/wordpress/wp-admin/edit-tags.php:545 +msgid "" +"Categories can be selectively converted to tags using the category to tag converter." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit-tags.php:550 +#: tmp/wordpress/wp-admin/edit-tags.php:550 +msgid "" +"Tags can be selectively converted to categories using the tag " +"to category converter." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:13 +#: tmp/old/wordpress/wp-admin/edit.php:35 +#: tmp/old/wordpress/wp-admin/post-new.php:24 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1305 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1792 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3300 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4115 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4879 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4937 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5215 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5279 +#: tmp/old/wordpress/wp-includes/post.php:1160 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:128 +#: tmp/wordpress/wp-admin/edit.php:13 tmp/wordpress/wp-admin/edit.php:35 +#: tmp/wordpress/wp-admin/post-new.php:24 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1305 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1792 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3300 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4115 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4879 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4937 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5215 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5279 +#: tmp/wordpress/wp-includes/post.php:1160 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:128 +msgid "Invalid post type." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:16 +#: tmp/old/wordpress/wp-admin/edit.php:40 +#: tmp/old/wordpress/wp-admin/post.php:113 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1798 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4120 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:87 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:85 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:136 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:139 +#: tmp/wordpress/wp-admin/edit.php:16 tmp/wordpress/wp-admin/edit.php:40 +#: tmp/wordpress/wp-admin/post.php:113 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1798 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4120 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:87 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:85 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:136 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:139 +msgid "Sorry, you are not allowed to edit posts in this post type." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:106 +#: tmp/old/wordpress/wp-admin/post.php:214 +#: tmp/old/wordpress/wp-admin/upload.php:135 +#: tmp/wordpress/wp-admin/edit.php:106 tmp/wordpress/wp-admin/post.php:214 +#: tmp/wordpress/wp-admin/upload.php:135 +msgid "Sorry, you are not allowed to move this item to the Trash." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:114 +#: tmp/old/wordpress/wp-admin/post.php:222 +#: tmp/old/wordpress/wp-admin/upload.php:138 +#: tmp/wordpress/wp-admin/edit.php:114 tmp/wordpress/wp-admin/post.php:222 +#: tmp/wordpress/wp-admin/upload.php:138 +msgid "Error in moving to Trash." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:125 +#: tmp/old/wordpress/wp-admin/post.php:237 +#: tmp/old/wordpress/wp-admin/upload.php:147 +#: tmp/wordpress/wp-admin/edit.php:125 tmp/wordpress/wp-admin/post.php:237 +#: tmp/wordpress/wp-admin/upload.php:147 +msgid "Sorry, you are not allowed to restore this item from the Trash." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:128 +#: tmp/old/wordpress/wp-admin/post.php:240 +#: tmp/old/wordpress/wp-admin/upload.php:150 +#: tmp/wordpress/wp-admin/edit.php:128 tmp/wordpress/wp-admin/post.php:240 +#: tmp/wordpress/wp-admin/upload.php:150 +msgid "Error in restoring from Trash." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:144 +#: tmp/old/wordpress/wp-admin/edit.php:147 +#: tmp/old/wordpress/wp-admin/post.php:260 +#: tmp/old/wordpress/wp-admin/post.php:263 +#: tmp/old/wordpress/wp-admin/upload.php:162 +#: tmp/wordpress/wp-admin/edit.php:144 tmp/wordpress/wp-admin/edit.php:147 +#: tmp/wordpress/wp-admin/post.php:260 tmp/wordpress/wp-admin/post.php:263 +#: tmp/wordpress/wp-admin/upload.php:162 +msgid "Error in deleting." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:192 tmp/wordpress/wp-admin/edit.php:192 +msgid "" +"This screen provides access to all of your posts. You can customize the " +"display of this screen to suit your workflow." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:196 tmp/wordpress/wp-admin/edit.php:196 +msgid "Screen Content" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:198 tmp/wordpress/wp-admin/edit.php:198 +msgid "" +"You can customize the display of this screen’s contents in a number of " +"ways:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:200 tmp/wordpress/wp-admin/edit.php:200 +msgid "" +"You can hide/display columns based on your needs and decide how many posts " +"to list per screen using the Screen Options tab." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:201 tmp/wordpress/wp-admin/edit.php:201 +msgid "" +"You can filter the list of posts by post status using the text links above " +"the posts list to only show posts with that status. The default view is to " +"show all posts." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:202 tmp/wordpress/wp-admin/edit.php:202 +msgid "" +"You can view posts in a simple title list or with an excerpt using the " +"Screen Options tab." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:203 tmp/wordpress/wp-admin/edit.php:203 +msgid "" +"You can refine the list to show only posts in a specific category or from a " +"specific month by using the dropdown menus above the posts list. Click the " +"Filter button after making your selection. You also can refine the list by " +"clicking on the post author, category or tag in the posts list." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:208 +#: tmp/old/wordpress/wp-admin/upload.php:197 +#: tmp/wordpress/wp-admin/edit.php:208 tmp/wordpress/wp-admin/upload.php:197 +msgid "Available Actions" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:210 tmp/wordpress/wp-admin/edit.php:210 +msgid "" +"Hovering over a row in the posts list will display action links that allow " +"you to manage your post. You can perform the following actions:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:212 tmp/wordpress/wp-admin/edit.php:212 +msgid "" +"Edit takes you to the editing screen for that post. You can " +"also reach that screen by clicking on the post title." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:213 tmp/wordpress/wp-admin/edit.php:213 +msgid "" +"Quick Edit provides inline access to the metadata of your " +"post, allowing you to update post details without leaving this screen." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:214 tmp/wordpress/wp-admin/edit.php:214 +msgid "" +"Trash removes your post from this list and places it in the " +"trash, from which you can permanently delete it." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:215 tmp/wordpress/wp-admin/edit.php:215 +msgid "" +"Preview will show you what your draft post will look like " +"if you publish it. View will take you to your live site to view the post. " +"Which link is available depends on your post’s status." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:220 +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:463 +#: tmp/wordpress/wp-admin/edit.php:220 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:463 +msgid "Bulk Actions" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:222 tmp/wordpress/wp-admin/edit.php:222 +msgid "" +"You can also edit or move multiple posts to the trash at once. Select the " +"posts you want to act on using the checkboxes, then select the action you " +"want to take from the Bulk Actions menu and click Apply." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:223 tmp/wordpress/wp-admin/edit.php:223 +msgid "" +"When using Bulk Edit, you can change the metadata (categories, author, etc.) " +"for all selected posts at once. To remove a post from the grouping, just " +"click the x next to its name in the Bulk Edit area that appears." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:228 tmp/wordpress/wp-admin/edit.php:228 +msgid "" +"Documentation on " +"Managing Posts" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:241 tmp/wordpress/wp-admin/edit.php:241 +msgid "Managing Pages" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:243 tmp/wordpress/wp-admin/edit.php:243 +msgid "" +"Managing pages is very similar to managing posts, and the screens can be " +"customized in the same way." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:244 tmp/wordpress/wp-admin/edit.php:244 +msgid "" +"You can also perform the same types of actions, including narrowing the list " +"by using the filters, acting on a page using the action links that appear " +"when you hover over a row, or using the Bulk Actions menu to edit the " +"metadata for multiple pages at once." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:249 tmp/wordpress/wp-admin/edit.php:249 +msgid "" +"Documentation on " +"Managing Pages" +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:273 tmp/wordpress/wp-admin/edit.php:273 +msgid "%s post updated." +msgid_plural "%s posts updated." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/edit.php:274 tmp/wordpress/wp-admin/edit.php:274 +msgid "1 post not updated, somebody is editing it." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:275 tmp/wordpress/wp-admin/edit.php:275 +msgid "%s post not updated, somebody is editing it." +msgid_plural "%s posts not updated, somebody is editing them." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/edit.php:276 tmp/wordpress/wp-admin/edit.php:276 +msgid "%s post permanently deleted." +msgid_plural "%s posts permanently deleted." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/edit.php:277 tmp/wordpress/wp-admin/edit.php:277 +msgid "%s post moved to the Trash." +msgid_plural "%s posts moved to the Trash." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/edit.php:278 tmp/wordpress/wp-admin/edit.php:278 +msgid "%s post restored from the Trash." +msgid_plural "%s posts restored from the Trash." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/edit.php:281 tmp/wordpress/wp-admin/edit.php:281 +msgid "%s page updated." +msgid_plural "%s pages updated." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/edit.php:282 tmp/wordpress/wp-admin/edit.php:282 +msgid "1 page not updated, somebody is editing it." +msgstr "" + +#: tmp/old/wordpress/wp-admin/edit.php:283 tmp/wordpress/wp-admin/edit.php:283 +msgid "%s page not updated, somebody is editing it." +msgid_plural "%s pages not updated, somebody is editing them." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/edit.php:284 tmp/wordpress/wp-admin/edit.php:284 +msgid "%s page permanently deleted." +msgid_plural "%s pages permanently deleted." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/edit.php:285 tmp/wordpress/wp-admin/edit.php:285 +msgid "%s page moved to the Trash." +msgid_plural "%s pages moved to the Trash." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/edit.php:286 tmp/wordpress/wp-admin/edit.php:286 +msgid "%s page restored from the Trash." +msgid_plural "%s pages restored from the Trash." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/export.php:13 +#: tmp/wordpress/wp-admin/export.php:13 +msgid "Sorry, you are not allowed to export the content of this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:17 +#: tmp/old/wordpress/wp-admin/menu.php:242 tmp/wordpress/wp-admin/export.php:17 +#: tmp/wordpress/wp-admin/menu.php:242 +msgid "Export" +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:48 +#: tmp/wordpress/wp-admin/export.php:48 +msgid "" +"You can export a file of your site’s content in order to import it " +"into another installation or platform. The export file will be an XML file " +"format called WXR. Posts, pages, comments, custom fields, categories, and " +"tags can be included. You can choose for the WXR file to include only " +"certain posts or pages by setting the dropdown filters to limit the export " +"by category, author, date range by month, or publishing status." +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:49 +#: tmp/wordpress/wp-admin/export.php:49 +msgid "" +"Once generated, your WXR file can be imported by another WordPress site or " +"by another blogging platform able to access this format." +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:54 +#: tmp/wordpress/wp-admin/export.php:54 +msgid "" +"Documentation on " +"Export" +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:157 +#: tmp/wordpress/wp-admin/export.php:157 +msgid "" +"When you click the button below WordPress will create an XML file for you to " +"save to your computer." +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:158 +#: tmp/wordpress/wp-admin/export.php:158 +msgid "" +"This format, which we call WordPress eXtended RSS or WXR, will contain your " +"posts, pages, comments, custom fields, categories, and tags." +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:159 +#: tmp/wordpress/wp-admin/export.php:159 +msgid "" +"Once you’ve saved the download file, you can use the Import function " +"in another WordPress installation to import the content from this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:161 +#: tmp/wordpress/wp-admin/export.php:161 +msgid "Choose what to export" +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:164 +#: tmp/wordpress/wp-admin/export.php:164 +msgid "Content to export" +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:166 +#: tmp/wordpress/wp-admin/export.php:166 +msgid "All content" +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:167 +#: tmp/wordpress/wp-admin/export.php:167 +msgid "" +"This will contain all of your posts, pages, comments, custom fields, terms, " +"navigation menus, and custom posts." +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:169 +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:322 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/index.php:27 +#: tmp/wordpress/wp-admin/export.php:169 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:322 +#: tmp/wordpress/wp-content/themes/twentyseventeen/index.php:27 +msgid "Posts" +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:172 +#: tmp/wordpress/wp-admin/export.php:172 +msgid "Categories:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:173 +#: tmp/old/wordpress/wp-admin/export.php:184 +#: tmp/old/wordpress/wp-admin/export.php:207 +#: tmp/old/wordpress/wp-admin/export.php:226 +#: tmp/old/wordpress/wp-admin/export.php:249 +#: tmp/wordpress/wp-admin/export.php:173 tmp/wordpress/wp-admin/export.php:184 +#: tmp/wordpress/wp-admin/export.php:207 tmp/wordpress/wp-admin/export.php:226 +#: tmp/wordpress/wp-admin/export.php:249 +msgid "All" +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:177 +#: tmp/old/wordpress/wp-admin/export.php:219 +#: tmp/wordpress/wp-admin/export.php:177 tmp/wordpress/wp-admin/export.php:219 +msgid "Authors:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:191 +#: tmp/old/wordpress/wp-admin/export.php:233 +#: tmp/old/wordpress/wp-admin/export.php:265 +#: tmp/wordpress/wp-admin/export.php:191 tmp/wordpress/wp-admin/export.php:233 +#: tmp/wordpress/wp-admin/export.php:265 +msgid "Date range:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:192 +#: tmp/old/wordpress/wp-admin/export.php:234 +#: tmp/old/wordpress/wp-admin/export.php:266 +#: tmp/wordpress/wp-admin/export.php:192 tmp/wordpress/wp-admin/export.php:234 +#: tmp/wordpress/wp-admin/export.php:266 +msgid "Start date:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:194 +#: tmp/old/wordpress/wp-admin/export.php:199 +#: tmp/old/wordpress/wp-admin/export.php:236 +#: tmp/old/wordpress/wp-admin/export.php:241 +#: tmp/old/wordpress/wp-admin/export.php:268 +#: tmp/old/wordpress/wp-admin/export.php:273 +#: tmp/old/wordpress/wp-admin/includes/template.php:638 +#: tmp/old/wordpress/wp-admin/nav-menus.php:681 +#: tmp/old/wordpress/wp-admin/options-reading.php:83 +#: tmp/old/wordpress/wp-admin/options-reading.php:84 +#: tmp/old/wordpress/wp-admin/widgets.php:301 +#: tmp/old/wordpress/wp-includes/class-wp-customize-control.php:551 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:595 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-nav-menu-widget.php:143 +#: tmp/wordpress/wp-admin/export.php:194 tmp/wordpress/wp-admin/export.php:199 +#: tmp/wordpress/wp-admin/export.php:236 tmp/wordpress/wp-admin/export.php:241 +#: tmp/wordpress/wp-admin/export.php:268 tmp/wordpress/wp-admin/export.php:273 +#: tmp/wordpress/wp-admin/includes/template.php:638 +#: tmp/wordpress/wp-admin/nav-menus.php:681 +#: tmp/wordpress/wp-admin/options-reading.php:83 +#: tmp/wordpress/wp-admin/options-reading.php:84 +#: tmp/wordpress/wp-admin/widgets.php:301 +#: tmp/wordpress/wp-includes/class-wp-customize-control.php:551 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:595 +#: tmp/wordpress/wp-includes/widgets/class-wp-nav-menu-widget.php:143 +msgid "— Select —" +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:197 +#: tmp/old/wordpress/wp-admin/export.php:239 +#: tmp/old/wordpress/wp-admin/export.php:271 +#: tmp/wordpress/wp-admin/export.php:197 tmp/wordpress/wp-admin/export.php:239 +#: tmp/wordpress/wp-admin/export.php:271 +msgid "End date:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:205 +#: tmp/old/wordpress/wp-admin/export.php:247 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:78 +#: tmp/wordpress/wp-admin/export.php:205 tmp/wordpress/wp-admin/export.php:247 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:78 +msgid "Status:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:216 +#: tmp/old/wordpress/wp-includes/post-template.php:1175 +#: tmp/old/wordpress/wp-includes/theme-compat/sidebar.php:89 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-pages.php:31 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-pages.php:55 +#: tmp/wordpress/wp-admin/export.php:216 +#: tmp/wordpress/wp-includes/post-template.php:1175 +#: tmp/wordpress/wp-includes/theme-compat/sidebar.php:89 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-pages.php:31 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-pages.php:55 +msgid "Pages" +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:261 +#: tmp/old/wordpress/wp-admin/includes/media.php:2244 +#: tmp/old/wordpress/wp-admin/menu.php:49 +#: tmp/old/wordpress/wp-admin/menu.php:253 +#: tmp/wordpress/wp-admin/export.php:261 +#: tmp/wordpress/wp-admin/includes/media.php:2244 +#: tmp/wordpress/wp-admin/menu.php:49 tmp/wordpress/wp-admin/menu.php:253 +msgid "Media" +msgstr "" + +#: tmp/old/wordpress/wp-admin/export.php:290 +#: tmp/wordpress/wp-admin/export.php:290 +msgid "Download Export File" +msgstr "" + +#: tmp/old/wordpress/wp-admin/freedoms.php:32 +#: tmp/wordpress/wp-admin/freedoms.php:32 +msgid "" +"WordPress is Free and open source software, built by a distributed community " +"of mostly volunteer developers from around the world. WordPress comes with " +"some awesome, worldview-changing rights courtesy of its license, the GPL." +msgstr "" + +#: tmp/old/wordpress/wp-admin/freedoms.php:35 +#: tmp/wordpress/wp-admin/freedoms.php:35 +msgid "You have the freedom to run the program, for any purpose." +msgstr "" + +#: tmp/old/wordpress/wp-admin/freedoms.php:36 +#: tmp/wordpress/wp-admin/freedoms.php:36 +msgid "" +"You have access to the source code, the freedom to study how the program " +"works, and the freedom to change it to make it do what you wish." +msgstr "" + +#: tmp/old/wordpress/wp-admin/freedoms.php:37 +#: tmp/wordpress/wp-admin/freedoms.php:37 +msgid "" +"You have the freedom to redistribute copies of the original program so you " +"can help your neighbor." +msgstr "" + +#: tmp/old/wordpress/wp-admin/freedoms.php:38 +#: tmp/wordpress/wp-admin/freedoms.php:38 +msgid "" +"You have the freedom to distribute copies of your modified versions to " +"others. By doing this you can give the whole community a chance to benefit " +"from your changes." +msgstr "" + +#: tmp/old/wordpress/wp-admin/freedoms.php:41 +#: tmp/wordpress/wp-admin/freedoms.php:41 +msgid "" +"WordPress grows when people like you tell their friends about it, and the " +"thousands of businesses and services that are built on and around WordPress " +"share that fact with their users. We’re flattered every time someone " +"spreads the good word, just make sure to check out our " +"trademark guidelines first." +msgstr "" + +#: tmp/old/wordpress/wp-admin/freedoms.php:45 +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:235 +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:599 +#: tmp/old/wordpress/wp-admin/plugin-install.php:82 +#: tmp/old/wordpress/wp-admin/plugins.php:400 +#: tmp/wordpress/wp-admin/freedoms.php:45 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:235 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:599 +#: tmp/wordpress/wp-admin/plugin-install.php:82 +#: tmp/wordpress/wp-admin/plugins.php:400 +msgid "https://wordpress.org/plugins/" +msgstr "" + +#: tmp/old/wordpress/wp-admin/freedoms.php:46 +#: tmp/old/wordpress/wp-admin/theme-install.php:86 +#: tmp/old/wordpress/wp-admin/themes.php:92 +#: tmp/wordpress/wp-admin/freedoms.php:46 +#: tmp/wordpress/wp-admin/theme-install.php:86 +#: tmp/wordpress/wp-admin/themes.php:92 +msgid "https://wordpress.org/themes/" +msgstr "" + +#: tmp/old/wordpress/wp-admin/freedoms.php:48 +#: tmp/wordpress/wp-admin/freedoms.php:48 +msgid "" +"Every plugin and theme in WordPress.org’s directory is 100%% GPL or a " +"similarly free and compatible license, so you can feel safe finding plugins and themes there. If you get a " +"plugin or theme from another source, make sure to ask them " +"if it’s GPL first. If they don’t respect the WordPress " +"license, we don’t recommend them." +msgstr "" + +#: tmp/old/wordpress/wp-admin/freedoms.php:50 +#: tmp/wordpress/wp-admin/freedoms.php:50 +msgid "" +"Don’t you wish all software came with these freedoms? So do we! For " +"more information, check out the Free " +"Software Foundation." +msgstr "" + +#: tmp/old/wordpress/wp-admin/import.php:23 +#: tmp/wordpress/wp-admin/import.php:23 +msgid "" +"This screen lists links to plugins to import data from blogging/content " +"management platforms. Choose the platform you want to import from, and click " +"Install Now when you are prompted in the popup window. If your platform is " +"not listed, click the link to search the plugin directory for other importer " +"plugins to see if there is one for your platform." +msgstr "" + +#: tmp/old/wordpress/wp-admin/import.php:24 +#: tmp/wordpress/wp-admin/import.php:24 +msgid "" +"In previous versions of WordPress, all importers were built-in. They have " +"been turned into plugins since most people only use them once or " +"infrequently." +msgstr "" + +#: tmp/old/wordpress/wp-admin/import.php:29 +#: tmp/wordpress/wp-admin/import.php:29 +msgid "" +"Documentation on " +"Import" +msgstr "" + +#: tmp/old/wordpress/wp-admin/import.php:62 +#: tmp/old/wordpress/wp-admin/includes/network.php:105 +#: tmp/old/wordpress/wp-admin/includes/network.php:122 +#: tmp/old/wordpress/wp-admin/themes.php:180 +#: tmp/old/wordpress/wp-admin/users.php:235 +#: tmp/wordpress/wp-admin/import.php:62 +#: tmp/wordpress/wp-admin/includes/network.php:105 +#: tmp/wordpress/wp-admin/includes/network.php:122 +#: tmp/wordpress/wp-admin/themes.php:180 tmp/wordpress/wp-admin/users.php:235 +msgid "ERROR:" +msgstr "" + +#. translators: %s: importer slug +#: tmp/old/wordpress/wp-admin/import.php:64 +#: tmp/wordpress/wp-admin/import.php:64 +msgid "The %s importer is invalid or is not installed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/import.php:68 +#: tmp/wordpress/wp-admin/import.php:68 +msgid "" +"If you have posts or comments in another system, WordPress can import those " +"into this site. To get started, choose a system to import from below:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/import.php:86 +#: tmp/wordpress/wp-admin/import.php:86 +msgid "No importers are available." +msgstr "" + +#. translators: %s: Importer name +#: tmp/old/wordpress/wp-admin/import.php:115 +#: tmp/old/wordpress/wp-admin/import.php:155 +#: tmp/old/wordpress/wp-includes/script-loader.php:704 +#: tmp/wordpress/wp-admin/import.php:115 tmp/wordpress/wp-admin/import.php:155 +#: tmp/wordpress/wp-includes/script-loader.php:704 +msgid "Run %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/import.php:116 +#: tmp/old/wordpress/wp-admin/import.php:156 +#: tmp/old/wordpress/wp-includes/script-loader.php:702 +#: tmp/wordpress/wp-admin/import.php:116 tmp/wordpress/wp-admin/import.php:156 +#: tmp/wordpress/wp-includes/script-loader.php:702 +msgid "Run Importer" +msgstr "" + +#. translators: %s: Importer name +#. translators: %s: plugin name +#. translators: %s: Theme name +#: tmp/old/wordpress/wp-admin/import.php:136 +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:289 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1263 +#: tmp/old/wordpress/wp-admin/theme-install.php:276 +#: tmp/wordpress/wp-admin/import.php:136 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:289 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1263 +#: tmp/wordpress/wp-admin/theme-install.php:276 +msgid "Install %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/import.php:137 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:458 +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:289 +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:306 +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:692 +#: tmp/old/wordpress/wp-admin/includes/theme-install.php:148 +#: tmp/old/wordpress/wp-includes/script-loader.php:661 +#: tmp/wordpress/wp-admin/import.php:137 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:458 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:289 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:306 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:692 +#: tmp/wordpress/wp-admin/includes/theme-install.php:148 +#: tmp/wordpress/wp-includes/script-loader.php:661 +msgid "Install Now" +msgstr "" + +#. translators: URL to wp-admin/import.php +#: tmp/old/wordpress/wp-admin/import.php:142 +#: tmp/wordpress/wp-admin/import.php:142 +msgid "" +"This importer is not installed. Please install importers from the main site." +msgstr "" + +#. translators: %s: Importer name +#. translators: 1: Plugin name and version. +#: tmp/old/wordpress/wp-admin/import.php:175 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:507 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:786 +#: tmp/wordpress/wp-admin/import.php:175 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:507 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:786 +msgid "More information about %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/import.php:176 +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:319 +#: tmp/old/wordpress/wp-admin/includes/class-wp-themes-list-table.php:228 +#: tmp/wordpress/wp-admin/import.php:176 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:319 +#: tmp/wordpress/wp-admin/includes/class-wp-themes-list-table.php:228 +msgid "Details" +msgstr "" + +#: tmp/old/wordpress/wp-admin/import.php:197 +#: tmp/wordpress/wp-admin/import.php:197 +msgid "" +"If the importer you need is not listed, search the plugin " +"directory to see if an importer is available." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:123 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:427 +#: tmp/old/wordpress/wp-admin/includes/post.php:342 +#: tmp/old/wordpress/wp-admin/includes/post.php:483 +#: tmp/old/wordpress/wp-includes/post.php:3876 +#: tmp/old/wordpress/wp-includes/script-loader.php:545 +#: tmp/old/wordpress/wp-includes/script-loader.php:613 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:123 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:427 +#: tmp/wordpress/wp-admin/includes/post.php:342 +#: tmp/wordpress/wp-admin/includes/post.php:483 +#: tmp/wordpress/wp-includes/post.php:3876 +#: tmp/wordpress/wp-includes/script-loader.php:545 +#: tmp/wordpress/wp-includes/script-loader.php:613 +msgctxt "tag delimiter" +msgid "," +msgstr "" + +#. translators: 1: user_login, 2: user_email +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:291 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:291 +msgctxt "user autocomplete result" +msgid "%1$s (%2$s)" +msgstr "" + +#. translators: %s: number of comments +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:377 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1083 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:275 +#: tmp/old/wordpress/wp-includes/comment-template.php:893 +#: tmp/old/wordpress/wp-includes/comment-template.php:907 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:377 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1083 +#: tmp/wordpress/wp-admin/includes/dashboard.php:275 +#: tmp/wordpress/wp-includes/comment-template.php:893 +#: tmp/wordpress/wp-includes/comment-template.php:907 +msgid "%s Comment" +msgid_plural "%s Comments" +msgstr[0] "" +msgstr[1] "" + +#. translators: Number of comments in moderation +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:381 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1087 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:281 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:381 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1087 +#: tmp/wordpress/wp-admin/includes/dashboard.php:281 +msgctxt "comments" +msgid "%s in moderation" +msgid_plural "%s in moderation" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:433 +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:762 +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:1349 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:433 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:762 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:1349 +msgid "%s item" +msgid_plural "%s items" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:755 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:755 +msgid "Comment %d does not exist" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:845 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1888 +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:732 +#: tmp/old/wordpress/wp-includes/script-loader.php:707 +#: tmp/old/wordpress/wp-includes/script-loader.php:731 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:845 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1888 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:732 +#: tmp/wordpress/wp-includes/script-loader.php:707 +#: tmp/wordpress/wp-includes/script-loader.php:731 +msgid "An error has occurred. Please reload the page and try again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1006 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1006 +msgid "ERROR: you are replying to a comment on a draft post." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1026 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1026 +msgid "Sorry, you must be logged in to reply to a comment." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1030 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1115 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1030 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1115 +msgid "ERROR: please type a comment." +msgstr "" + +#. translators: 1: Post creation date, 2: Post creation time +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1252 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1252 +msgid "Draft created on %1$s at %2$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1265 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1270 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1290 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1265 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1270 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1290 +msgid "Please provide a custom field value." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1288 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1288 +msgid "Please provide a custom field name." +msgstr "" + +#. translators: %s: the new user +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1354 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1354 +msgid "User %s added" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1612 +#: tmp/old/wordpress/wp-admin/includes/post.php:213 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2668 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2865 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1612 +#: tmp/wordpress/wp-admin/includes/post.php:213 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2668 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2865 +msgid "Sorry, you are not allowed to edit this page." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1615 +#: tmp/old/wordpress/wp-admin/includes/media.php:3146 +#: tmp/old/wordpress/wp-admin/includes/post.php:215 +#: tmp/old/wordpress/wp-admin/includes/post.php:1724 +#: tmp/old/wordpress/wp-admin/includes/post.php:1728 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1313 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1737 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4306 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4480 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4707 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5211 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5508 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5850 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6021 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6075 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:399 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:636 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1615 +#: tmp/wordpress/wp-admin/includes/media.php:3146 +#: tmp/wordpress/wp-admin/includes/post.php:215 +#: tmp/wordpress/wp-admin/includes/post.php:1724 +#: tmp/wordpress/wp-admin/includes/post.php:1728 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1313 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1737 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4306 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4480 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4707 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5211 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5508 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5850 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6021 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6075 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:399 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:636 +msgid "Sorry, you are not allowed to edit this post." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1620 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1620 +msgid "Someone" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1621 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1621 +msgid "Saving is disabled: %s is currently editing this page." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1621 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1621 +msgid "Saving is disabled: %s is currently editing this post." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1727 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1732 +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:18 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1727 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1732 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:18 +msgid "Item not updated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1770 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3054 +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:334 +#: tmp/old/wordpress/wp-admin/includes/class-wp-themes-list-table.php:90 +#: tmp/old/wordpress/wp-includes/media-template.php:1233 +#: tmp/old/wordpress/wp-includes/media.php:3430 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1770 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3054 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:334 +#: tmp/wordpress/wp-admin/includes/class-wp-themes-list-table.php:90 +#: tmp/wordpress/wp-includes/media-template.php:1233 +#: tmp/wordpress/wp-includes/media.php:3430 +msgid "No items found." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1773 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1400 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:508 +#: tmp/old/wordpress/wp-admin/includes/media.php:1212 +#: tmp/old/wordpress/wp-admin/includes/media.php:2288 +#: tmp/old/wordpress/wp-admin/includes/media.php:2577 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:902 +#: tmp/old/wordpress/wp-includes/media-template.php:379 +#: tmp/old/wordpress/wp-includes/media-template.php:560 +#: tmp/old/wordpress/wp-includes/revision.php:34 +#: tmp/old/wordpress/wp-includes/script-loader.php:581 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1773 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1400 +#: tmp/wordpress/wp-admin/includes/dashboard.php:508 +#: tmp/wordpress/wp-admin/includes/media.php:1212 +#: tmp/wordpress/wp-admin/includes/media.php:2288 +#: tmp/wordpress/wp-admin/includes/media.php:2577 +#: tmp/wordpress/wp-includes/class-wp-editor.php:902 +#: tmp/wordpress/wp-includes/media-template.php:379 +#: tmp/wordpress/wp-includes/media-template.php:560 +#: tmp/wordpress/wp-includes/revision.php:34 +#: tmp/wordpress/wp-includes/script-loader.php:581 +msgid "Title" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1773 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1773 +msgid "Type" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1776 +#: tmp/old/wordpress/wp-admin/includes/revision.php:52 +#: tmp/old/wordpress/wp-admin/includes/revision.php:54 +#: tmp/old/wordpress/wp-admin/includes/template.php:1553 +#: tmp/old/wordpress/wp-includes/media.php:3115 +#: tmp/old/wordpress/wp-includes/script-loader.php:431 +#: tmp/old/wordpress/wp-includes/script-loader.php:612 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1776 +#: tmp/wordpress/wp-admin/includes/revision.php:52 +#: tmp/wordpress/wp-admin/includes/revision.php:54 +#: tmp/wordpress/wp-admin/includes/template.php:1553 +#: tmp/wordpress/wp-includes/media.php:3115 +#: tmp/wordpress/wp-includes/script-loader.php:431 +#: tmp/wordpress/wp-includes/script-loader.php:612 +msgid "(no title)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1785 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1000 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1633 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:88 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:112 +#: tmp/old/wordpress/wp-admin/includes/template.php:1712 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1785 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1000 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1633 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:88 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:112 +#: tmp/wordpress/wp-admin/includes/template.php:1712 +msgid "Scheduled" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1788 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1638 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:91 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:114 +#: tmp/old/wordpress/wp-includes/post.php:689 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1788 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1638 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:91 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:114 +#: tmp/wordpress/wp-includes/post.php:689 +msgid "Pending Review" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:1791 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1639 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:95 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:116 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:118 +#: tmp/old/wordpress/wp-admin/includes/template.php:1705 +#: tmp/old/wordpress/wp-includes/post.php:688 +#: tmp/old/wordpress/wp-includes/post.php:709 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:1791 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1639 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:95 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:116 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:118 +#: tmp/wordpress/wp-admin/includes/template.php:1705 +#: tmp/wordpress/wp-includes/post.php:688 +#: tmp/wordpress/wp-includes/post.php:709 +msgid "Draft" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:2022 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:2022 +msgid "Sorry, you are not allowed to attach files to this post." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:2981 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:2981 +msgid "%s failed to embed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3011 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3011 +msgid "This preview is unavailable in the editor." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3104 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3104 +msgid "Could not log out user sessions. Please try again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3112 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3112 +msgid "You are now logged out everywhere else." +msgstr "" + +#. translators: 1: User's display name. +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3116 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3116 +msgid "%s has been logged out." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3162 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3162 +msgid "Image could not be processed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3300 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3407 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3492 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3300 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3407 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3492 +msgid "No theme specified." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3312 +#: tmp/old/wordpress/wp-admin/theme-install.php:16 +#: tmp/old/wordpress/wp-admin/update.php:219 +#: tmp/old/wordpress/wp-admin/update.php:249 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3312 +#: tmp/wordpress/wp-admin/theme-install.php:16 +#: tmp/wordpress/wp-admin/update.php:219 tmp/wordpress/wp-admin/update.php:249 +msgid "Sorry, you are not allowed to install themes on this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3352 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3463 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3521 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3614 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3733 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3796 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3352 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3463 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3521 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3614 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3733 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3796 +msgid "Unable to connect to the filesystem. Please confirm your credentials." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3419 +#: tmp/old/wordpress/wp-admin/update.php:172 +#: tmp/old/wordpress/wp-admin/update.php:193 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3419 +#: tmp/wordpress/wp-admin/update.php:172 tmp/wordpress/wp-admin/update.php:193 +msgid "Sorry, you are not allowed to update themes for this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3474 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3474 +msgid "Update failed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3503 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3503 +msgid "Sorry, you are not allowed to delete themes on this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3508 +#: tmp/old/wordpress/wp-admin/theme-editor.php:57 +#: tmp/old/wordpress/wp-admin/theme-editor.php:61 +#: tmp/old/wordpress/wp-admin/themes.php:28 +#: tmp/old/wordpress/wp-admin/themes.php:51 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:522 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3508 +#: tmp/wordpress/wp-admin/theme-editor.php:57 +#: tmp/wordpress/wp-admin/theme-editor.php:61 +#: tmp/wordpress/wp-admin/themes.php:28 tmp/wordpress/wp-admin/themes.php:51 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:522 +msgid "The requested theme does not exist." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3539 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3539 +msgid "Theme could not be deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3560 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3659 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3762 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3560 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3659 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3762 +msgid "No plugin specified." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3570 +#: tmp/old/wordpress/wp-admin/plugin-install.php:18 +#: tmp/old/wordpress/wp-admin/update.php:96 +#: tmp/old/wordpress/wp-admin/update.php:144 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3570 +#: tmp/wordpress/wp-admin/plugin-install.php:18 +#: tmp/wordpress/wp-admin/update.php:96 tmp/wordpress/wp-admin/update.php:144 +msgid "Sorry, you are not allowed to install plugins on this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3673 +#: tmp/old/wordpress/wp-admin/update.php:24 +#: tmp/old/wordpress/wp-admin/update.php:50 +#: tmp/old/wordpress/wp-admin/update.php:71 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3673 +#: tmp/wordpress/wp-admin/update.php:24 tmp/wordpress/wp-admin/update.php:50 +#: tmp/wordpress/wp-admin/update.php:71 +msgid "Sorry, you are not allowed to update plugins for this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3717 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3744 +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader.php:56 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3717 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3744 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader.php:56 +msgid "Plugin update failed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3774 +#: tmp/old/wordpress/wp-admin/plugins.php:231 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3774 +#: tmp/wordpress/wp-admin/plugins.php:231 +msgid "Sorry, you are not allowed to delete plugins for this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3783 +#: tmp/old/wordpress/wp-admin/plugins.php:449 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3783 +#: tmp/wordpress/wp-admin/plugins.php:449 +msgid "You cannot delete a plugin while it is active on the main site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3812 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3812 +msgid "Plugin could not be deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3842 +#: tmp/old/wordpress/wp-admin/includes/ajax-actions.php:3885 +#: tmp/old/wordpress/wp-admin/plugins.php:13 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3842 +#: tmp/wordpress/wp-admin/includes/ajax-actions.php:3885 +#: tmp/wordpress/wp-admin/plugins.php:13 +msgid "Sorry, you are not allowed to manage plugins for this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/bookmark.php:32 +#: tmp/old/wordpress/wp-admin/includes/bookmark.php:315 +#: tmp/old/wordpress/wp-admin/link-manager.php:12 +#: tmp/old/wordpress/wp-admin/link-manager.php:77 +#: tmp/wordpress/wp-admin/includes/bookmark.php:32 +#: tmp/wordpress/wp-admin/includes/bookmark.php:315 +#: tmp/wordpress/wp-admin/link-manager.php:12 +#: tmp/wordpress/wp-admin/link-manager.php:77 +msgid "Sorry, you are not allowed to edit the links for this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/bookmark.php:200 +#: tmp/wordpress/wp-admin/includes/bookmark.php:200 +msgid "Could not update link in the database" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/bookmark.php:208 +#: tmp/wordpress/wp-admin/includes/bookmark.php:208 +msgid "Could not insert link into the database" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/bookmark.php:312 +#: tmp/wordpress/wp-admin/includes/bookmark.php:312 +msgid "" +"If you are looking to use the link manager, please install the Link Manager plugin." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-bulk-plugin-upgrader-skin.php:23 +#: tmp/wordpress/wp-admin/includes/class-bulk-plugin-upgrader-skin.php:23 +msgid "Updating Plugin %1$s (%2$d/%3$d)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-bulk-plugin-upgrader-skin.php:49 +#: tmp/old/wordpress/wp-admin/includes/class-plugin-installer-skin.php:71 +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader-skin.php:53 +#: tmp/wordpress/wp-admin/includes/class-bulk-plugin-upgrader-skin.php:49 +#: tmp/wordpress/wp-admin/includes/class-plugin-installer-skin.php:71 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader-skin.php:53 +msgid "Return to Plugins page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-bulk-plugin-upgrader-skin.php:50 +#: tmp/old/wordpress/wp-admin/includes/class-bulk-theme-upgrader-skin.php:50 +#: tmp/old/wordpress/wp-admin/includes/class-language-pack-upgrader-skin.php:73 +#: tmp/wordpress/wp-admin/includes/class-bulk-plugin-upgrader-skin.php:50 +#: tmp/wordpress/wp-admin/includes/class-bulk-theme-upgrader-skin.php:50 +#: tmp/wordpress/wp-admin/includes/class-language-pack-upgrader-skin.php:73 +msgid "Return to WordPress Updates page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-bulk-theme-upgrader-skin.php:23 +#: tmp/wordpress/wp-admin/includes/class-bulk-theme-upgrader-skin.php:23 +msgid "Updating Theme %1$s (%2$d/%3$d)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-bulk-theme-upgrader-skin.php:49 +#: tmp/old/wordpress/wp-admin/includes/class-theme-installer-skin.php:79 +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader-skin.php:68 +#: tmp/wordpress/wp-admin/includes/class-bulk-theme-upgrader-skin.php:49 +#: tmp/wordpress/wp-admin/includes/class-theme-installer-skin.php:79 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader-skin.php:68 +msgid "Return to Themes page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php:40 +#: tmp/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php:40 +msgid "" +"The update process is starting. This process may take a while on some hosts, " +"so please be patient." +msgstr "" + +#. translators: 1: Title of an update, 2: Error message +#: tmp/old/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php:42 +#: tmp/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php:42 +msgid "An error occurred while updating %1$s: %2$s" +msgstr "" + +#. translators: 1: Title of an update +#: tmp/old/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php:44 +#: tmp/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php:44 +msgid "The update of %1$s failed." +msgstr "" + +#. translators: 1: Title of an update +#: tmp/old/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php:46 +#: tmp/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php:46 +msgid "%1$s updated successfully." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php:46 +#: tmp/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php:46 +msgid "Show Details" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php:46 +#: tmp/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php:46 +msgid "Hide Details" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php:47 +#: tmp/wordpress/wp-admin/includes/class-bulk-upgrader-skin.php:47 +msgid "All updates have been completed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-core-upgrader.php:30 +#: tmp/wordpress/wp-admin/includes/class-core-upgrader.php:30 +msgid "WordPress is at the latest version." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-core-upgrader.php:31 +#: tmp/wordpress/wp-admin/includes/class-core-upgrader.php:31 +msgid "Another update is currently in progress." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-core-upgrader.php:32 +#: tmp/old/wordpress/wp-admin/includes/class-language-pack-upgrader.php:118 +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader.php:51 +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:50 +#: tmp/wordpress/wp-admin/includes/class-core-upgrader.php:32 +#: tmp/wordpress/wp-admin/includes/class-language-pack-upgrader.php:118 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader.php:51 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:50 +msgid "Update package not available." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-core-upgrader.php:33 +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader.php:52 +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:51 +#: tmp/wordpress/wp-admin/includes/class-core-upgrader.php:33 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader.php:52 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:51 +msgid "Downloading update from %s…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-core-upgrader.php:34 +#: tmp/old/wordpress/wp-admin/includes/class-language-pack-upgrader.php:120 +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader.php:53 +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:52 +#: tmp/wordpress/wp-admin/includes/class-core-upgrader.php:34 +#: tmp/wordpress/wp-admin/includes/class-language-pack-upgrader.php:120 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader.php:53 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:52 +msgid "Unpacking the update…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-core-upgrader.php:35 +#: tmp/wordpress/wp-admin/includes/class-core-upgrader.php:35 +msgid "Could not copy files." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-core-upgrader.php:36 +#: tmp/old/wordpress/wp-admin/includes/file.php:669 +#: tmp/old/wordpress/wp-admin/includes/file.php:775 +#: tmp/wordpress/wp-admin/includes/class-core-upgrader.php:36 +#: tmp/wordpress/wp-admin/includes/file.php:669 +#: tmp/wordpress/wp-admin/includes/file.php:775 +msgid "Could not copy files. You may have run out of disk space." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-core-upgrader.php:37 +#: tmp/wordpress/wp-admin/includes/class-core-upgrader.php:37 +msgid "Attempting to roll back to previous version." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-core-upgrader.php:38 +#: tmp/wordpress/wp-admin/includes/class-core-upgrader.php:38 +msgid "" +"Due to an error during updating, WordPress has rolled back to your previous " +"version." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-core-upgrader.php:138 +#: tmp/old/wordpress/wp-admin/includes/class-wp-upgrader.php:172 +#: tmp/old/wordpress/wp-admin/includes/update-core.php:851 +#: tmp/old/wordpress/wp-admin/includes/update-core.php:928 +#: tmp/old/wordpress/wp-admin/includes/update-core.php:951 +#: tmp/wordpress/wp-admin/includes/class-core-upgrader.php:138 +#: tmp/wordpress/wp-admin/includes/class-wp-upgrader.php:172 +#: tmp/wordpress/wp-admin/includes/update-core.php:851 +#: tmp/wordpress/wp-admin/includes/update-core.php:928 +#: tmp/wordpress/wp-admin/includes/update-core.php:951 +msgid "" +"The update cannot be installed because we will be unable to copy some files. " +"This is usually due to inconsistent file permissions." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-file-upload-upgrader.php:60 +#: tmp/old/wordpress/wp-admin/includes/class-file-upload-upgrader.php:94 +#: tmp/old/wordpress/wp-admin/includes/class-file-upload-upgrader.php:107 +#: tmp/wordpress/wp-admin/includes/class-file-upload-upgrader.php:60 +#: tmp/wordpress/wp-admin/includes/class-file-upload-upgrader.php:94 +#: tmp/wordpress/wp-admin/includes/class-file-upload-upgrader.php:107 +msgid "Please select a file" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-language-pack-upgrader-skin.php:29 +#: tmp/old/wordpress/wp-admin/update-core.php:423 +#: tmp/old/wordpress/wp-admin/update-core.php:742 +#: tmp/wordpress/wp-admin/includes/class-language-pack-upgrader-skin.php:29 +#: tmp/wordpress/wp-admin/update-core.php:423 +#: tmp/wordpress/wp-admin/update-core.php:742 +msgid "Update Translations" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-language-pack-upgrader-skin.php:47 +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:320 +#: tmp/wordpress/wp-admin/includes/class-language-pack-upgrader-skin.php:47 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:320 +msgid "Updating translations for %1$s (%2$s)…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-language-pack-upgrader.php:116 +#: tmp/wordpress/wp-admin/includes/class-language-pack-upgrader.php:116 +msgid "" +"Some of your translations need updating. Sit tight for a few more seconds " +"while we update them as well." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-language-pack-upgrader.php:117 +#: tmp/wordpress/wp-admin/includes/class-language-pack-upgrader.php:117 +msgid "The translations are up to date." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-language-pack-upgrader.php:119 +#: tmp/wordpress/wp-admin/includes/class-language-pack-upgrader.php:119 +msgid "Downloading translation from %s…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-language-pack-upgrader.php:121 +#: tmp/wordpress/wp-admin/includes/class-language-pack-upgrader.php:121 +msgid "Translation update failed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-language-pack-upgrader.php:122 +#: tmp/wordpress/wp-admin/includes/class-language-pack-upgrader.php:122 +msgid "Translation updated successfully." +msgstr "" + +#. translators: 1: .po 2: .mo +#: tmp/old/wordpress/wp-admin/includes/class-language-pack-upgrader.php:338 +#: tmp/wordpress/wp-admin/includes/class-language-pack-upgrader.php:338 +msgid "The language pack is missing either the %1$s or %2$s files." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-installer-skin.php:41 +#: tmp/wordpress/wp-admin/includes/class-plugin-installer-skin.php:41 +msgid "Successfully installed the plugin %s %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-installer-skin.php:55 +#: tmp/wordpress/wp-admin/includes/class-plugin-installer-skin.php:55 +msgid "Activate Plugin & Run Importer" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-installer-skin.php:57 +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader-skin.php:52 +#: tmp/wordpress/wp-admin/includes/class-plugin-installer-skin.php:57 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader-skin.php:52 +msgid "Activate Plugin" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-installer-skin.php:60 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:484 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:459 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:609 +#: tmp/old/wordpress/wp-includes/script-loader.php:696 +#: tmp/wordpress/wp-admin/includes/class-plugin-installer-skin.php:60 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:484 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:459 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:609 +#: tmp/wordpress/wp-includes/script-loader.php:696 +msgid "Network Activate" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-installer-skin.php:65 +#: tmp/wordpress/wp-admin/includes/class-plugin-installer-skin.php:65 +msgid "Return to Importers" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-installer-skin.php:67 +#: tmp/old/wordpress/wp-admin/includes/class-plugin-installer-skin.php:69 +#: tmp/wordpress/wp-admin/includes/class-plugin-installer-skin.php:67 +#: tmp/wordpress/wp-admin/includes/class-plugin-installer-skin.php:69 +msgid "Return to Plugin Installer" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader-skin.php:28 +#: tmp/old/wordpress/wp-admin/update.php:54 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader-skin.php:28 +#: tmp/wordpress/wp-admin/update.php:54 +msgid "Update Plugin" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader-skin.php:46 +#: tmp/old/wordpress/wp-admin/update-core.php:686 +#: tmp/old/wordpress/wp-admin/update-core.php:720 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader-skin.php:46 +#: tmp/wordpress/wp-admin/update-core.php:686 +#: tmp/wordpress/wp-admin/update-core.php:720 +msgid "Update progress" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader.php:50 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader.php:50 +msgid "The plugin is at the latest version." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader.php:54 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader.php:54 +msgid "Removing the old version of the plugin…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader.php:55 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader.php:55 +msgid "Could not remove the old plugin." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader.php:57 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader.php:57 +msgid "Plugin updated successfully." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader.php:58 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader.php:58 +msgid "Plugins updated successfully." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader.php:68 +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:66 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader.php:68 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:66 +msgid "Install package not available." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader.php:69 +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:67 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader.php:69 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:67 +msgid "Downloading install package from %s…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader.php:70 +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:68 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader.php:70 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:68 +msgid "Unpacking the package…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader.php:71 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader.php:71 +msgid "Installing the plugin…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader.php:72 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader.php:72 +msgid "The plugin contains no files." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader.php:73 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader.php:73 +msgid "Plugin install failed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader.php:74 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader.php:74 +msgid "Plugin installed successfully." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-plugin-upgrader.php:360 +#: tmp/wordpress/wp-admin/includes/class-plugin-upgrader.php:360 +msgid "No valid plugins were found." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-installer-skin.php:69 +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader-skin.php:59 +#: tmp/old/wordpress/wp-admin/includes/class-wp-themes-list-table.php:192 +#: tmp/old/wordpress/wp-admin/includes/theme.php:679 +#: tmp/old/wordpress/wp-admin/theme-install.php:269 +#: tmp/old/wordpress/wp-admin/themes.php:290 +#: tmp/old/wordpress/wp-admin/themes.php:422 +#: tmp/old/wordpress/wp-admin/themes.php:482 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-theme-control.php:87 +#: tmp/old/wordpress/wp-includes/script-loader.php:695 +#: tmp/wordpress/wp-admin/includes/class-theme-installer-skin.php:69 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader-skin.php:59 +#: tmp/wordpress/wp-admin/includes/class-wp-themes-list-table.php:192 +#: tmp/wordpress/wp-admin/includes/theme.php:679 +#: tmp/wordpress/wp-admin/theme-install.php:269 +#: tmp/wordpress/wp-admin/themes.php:290 tmp/wordpress/wp-admin/themes.php:422 +#: tmp/wordpress/wp-admin/themes.php:482 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-theme-control.php:87 +#: tmp/wordpress/wp-includes/script-loader.php:695 +msgid "Live Preview" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-installer-skin.php:69 +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader-skin.php:59 +#: tmp/wordpress/wp-admin/includes/class-theme-installer-skin.php:69 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader-skin.php:59 +msgid "Live Preview “%s”" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-installer-skin.php:71 +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader-skin.php:61 +#: tmp/old/wordpress/wp-admin/includes/class-wp-themes-list-table.php:188 +#: tmp/wordpress/wp-admin/includes/class-theme-installer-skin.php:71 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader-skin.php:61 +#: tmp/wordpress/wp-admin/includes/class-wp-themes-list-table.php:188 +msgid "Activate “%s”" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-installer-skin.php:74 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:333 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:425 +#: tmp/old/wordpress/wp-includes/script-loader.php:697 +#: tmp/wordpress/wp-admin/includes/class-theme-installer-skin.php:74 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:333 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:425 +#: tmp/wordpress/wp-includes/script-loader.php:697 +msgid "Network Enable" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-installer-skin.php:77 +#: tmp/wordpress/wp-admin/includes/class-theme-installer-skin.php:77 +msgid "Return to Theme Installer" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader-skin.php:26 +#: tmp/old/wordpress/wp-admin/update.php:179 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader-skin.php:26 +#: tmp/wordpress/wp-admin/update.php:179 +msgid "Update Theme" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader-skin.php:55 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader-skin.php:55 +msgid "Customize “%s”" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:49 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:49 +msgid "The theme is at the latest version." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:53 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:53 +msgid "Removing the old version of the theme…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:54 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:54 +msgid "Could not remove the old theme." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:55 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:55 +msgid "Theme update failed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:56 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:56 +msgid "Theme updated successfully." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:69 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:69 +msgid "Installing the theme…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:70 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:70 +msgid "The theme contains no files." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:71 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:71 +msgid "Theme install failed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:72 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:72 +msgid "Theme installed successfully." +msgstr "" + +#. translators: 1: theme name, 2: version +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:74 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:74 +msgid "Successfully installed the theme %1$s %2$s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:75 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:75 +msgid "This theme requires a parent theme. Checking if it is installed…" +msgstr "" + +#. translators: 1: theme name, 2: version +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:77 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:77 +msgid "Preparing to install %1$s %2$s…" +msgstr "" + +#. translators: 1: theme name, 2: version +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:79 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:79 +msgid "The parent theme, %1$s %2$s, is currently installed." +msgstr "" + +#. translators: 1: theme name, 2: version +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:81 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:81 +msgid "Successfully installed the parent theme, %1$s %2$s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:82 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:82 +msgid "" +"The parent theme could not be found. You will need to " +"install the parent theme, %s, before you can use this child " +"theme." +msgstr "" + +#. translators: %s: style.css +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:452 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:452 +msgid "The theme is missing the %s stylesheet." +msgstr "" + +#. translators: %s: style.css +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:463 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:463 +msgid "The %s stylesheet doesn’t contain a valid theme header." +msgstr "" + +#. translators: %s: index.php +#: tmp/old/wordpress/wp-admin/includes/class-theme-upgrader.php:473 +#: tmp/wordpress/wp-admin/includes/class-theme-upgrader.php:473 +msgid "The theme is missing the %s file." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-checklist.php:97 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:505 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:159 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-checklist.php:97 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:505 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:159 +msgctxt "nav menu home label" +msgid "Home" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-checklist.php:98 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-checklist.php:98 +msgctxt "nav menu front page title" +msgid "Home: %s" +msgstr "" + +#. translators: %s: title of menu item which is invalid +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:99 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:430 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:99 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:430 +msgid "%s (Invalid)" +msgstr "" + +#. translators: %s: title of menu item in draft status +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:103 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:432 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:103 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:432 +msgid "%s (Pending)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:116 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:116 +msgid "sub item" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:131 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:930 +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:701 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:131 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:930 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:701 +msgid "Move up" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:144 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:931 +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:700 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:144 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:931 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:700 +msgid "Move down" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:148 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:148 +msgid "Edit menu item" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:164 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:98 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:164 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:98 +msgid "Navigation Label" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:170 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:979 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:110 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:170 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:979 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:110 +msgid "Title Attribute" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:177 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1459 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:105 +#: tmp/old/wordpress/wp-includes/media-template.php:1005 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:177 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1459 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:105 +#: tmp/wordpress/wp-includes/media-template.php:1005 +msgid "Open link in a new tab" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:182 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:182 +msgid "CSS Classes (optional)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:196 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:130 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:196 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:130 +msgid "" +"The description will be displayed in the menu if the current theme supports " +"it." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:201 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:201 +msgid "Move" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:202 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:202 +msgid "Up one" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:203 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:203 +msgid "Down one" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:206 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:206 +msgid "To the top" +msgstr "" + +#. translators: Nav menu item original title. 1: Original title +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:212 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:139 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:212 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:139 +msgid "Original: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:225 +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:241 +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:414 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3798 +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:730 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1054 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-image-control.php:37 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-media-control.php:63 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:144 +#: tmp/old/wordpress/wp-includes/media-template.php:471 +#: tmp/old/wordpress/wp-includes/media.php:3408 +#: tmp/wordpress/wp-admin/includes/class-walker-nav-menu-edit.php:225 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:241 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:414 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3798 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:730 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1054 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-image-control.php:37 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-media-control.php:63 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:144 +#: tmp/wordpress/wp-includes/media-template.php:471 +#: tmp/wordpress/wp-includes/media.php:3408 +msgid "Remove" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:302 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:302 +msgid "Updating to WordPress %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:303 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:303 +msgid "WordPress %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:309 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:309 +msgid "Updating theme: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:315 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:315 +msgid "Updating plugin: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:319 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:319 +msgid "Translations for %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:342 +#: tmp/old/wordpress/wp-admin/includes/class-wp-upgrader.php:157 +#: tmp/old/wordpress/wp-admin/includes/file.php:571 +#: tmp/old/wordpress/wp-admin/includes/plugin.php:816 +#: tmp/old/wordpress/wp-admin/includes/theme.php:59 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:342 +#: tmp/wordpress/wp-admin/includes/class-wp-upgrader.php:157 +#: tmp/wordpress/wp-admin/includes/file.php:571 +#: tmp/wordpress/wp-admin/includes/plugin.php:816 +#: tmp/wordpress/wp-admin/includes/theme.php:59 +msgid "Could not access filesystem." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:353 +#: tmp/old/wordpress/wp-admin/update-core.php:495 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:353 +#: tmp/wordpress/wp-admin/update-core.php:495 +msgid "Installation Failed" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:355 +#: tmp/old/wordpress/wp-admin/includes/update-core.php:1224 +#: tmp/old/wordpress/wp-admin/update-core.php:500 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:355 +#: tmp/wordpress/wp-admin/includes/update-core.php:1224 +#: tmp/wordpress/wp-admin/update-core.php:500 +msgid "WordPress updated successfully" +msgstr "" + +#. translators: 1: Site name, 2: WordPress version number. +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:615 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:615 +msgid "[%1$s] Your site has updated to WordPress %2$s" +msgstr "" + +#. translators: 1: Site name, 2: WordPress version number. +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:621 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:621 +msgid "[%1$s] WordPress %2$s is available. Please update!" +msgstr "" + +#. translators: 1: Site name. +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:626 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:626 +msgid "[%1$s] URGENT: Your site may be down due to a failed update" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:641 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:641 +msgid "" +"Howdy! Your site at %1$s has been updated automatically to WordPress %2$s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:644 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:644 +msgid "No further action is needed on your part." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:648 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:648 +msgid "For more on version %s, see the About WordPress screen:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:652 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:652 +msgid "WordPress %s is also now available." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:653 +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:670 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:653 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:670 +msgid "Updating is easy and only takes a few moments:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:661 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:661 +msgid "Please update your site at %1$s to WordPress %2$s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:668 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:668 +msgid "We tried but were unable to update your site automatically." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:676 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:676 +msgid "" +"Your site at %1$s experienced a critical failure while trying to update " +"WordPress to version %2$s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:678 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:678 +msgid "" +"Your site at %1$s experienced a critical failure while trying to update to " +"the latest version of WordPress, %2$s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:680 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:680 +msgid "" +"This means your site may be offline or broken. Don't panic; this can be " +"fixed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:682 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:682 +msgid "" +"Please check out your site now. It's possible that everything is working. If " +"it says you need to update, you should do so:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:690 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:690 +msgid "" +"The WordPress team is willing to help you. Forward this email to %s and the " +"team will work with you to make sure your site is working." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:693 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:693 +msgid "" +"If you experience any issues or need support, the volunteers in the " +"WordPress.org support forums may be able to help." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:694 +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:162 +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:174 +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:185 +#: tmp/old/wordpress/wp-admin/includes/theme.php:469 +#: tmp/old/wordpress/wp-admin/includes/theme.php:482 +#: tmp/old/wordpress/wp-admin/includes/theme.php:493 +#: tmp/old/wordpress/wp-admin/includes/translation-install.php:63 +#: tmp/old/wordpress/wp-admin/includes/translation-install.php:76 +#: tmp/old/wordpress/wp-admin/includes/translation-install.php:87 +#: tmp/old/wordpress/wp-admin/includes/update.php:119 +#: tmp/old/wordpress/wp-admin/theme-install.php:54 +#: tmp/old/wordpress/wp-includes/admin-bar.php:164 +#: tmp/old/wordpress/wp-includes/update.php:127 +#: tmp/old/wordpress/wp-includes/update.php:317 +#: tmp/old/wordpress/wp-includes/update.php:497 +#: tmp/old/wordpress/wp-includes/wp-db.php:1129 +#: tmp/old/wordpress/wp-includes/wp-db.php:1601 +#: tmp/old/wordpress/wp-includes/wp-db.php:1705 +#: tmp/old/wordpress/wp-login.php:793 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:694 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:162 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:174 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:185 +#: tmp/wordpress/wp-admin/includes/theme.php:469 +#: tmp/wordpress/wp-admin/includes/theme.php:482 +#: tmp/wordpress/wp-admin/includes/theme.php:493 +#: tmp/wordpress/wp-admin/includes/translation-install.php:63 +#: tmp/wordpress/wp-admin/includes/translation-install.php:76 +#: tmp/wordpress/wp-admin/includes/translation-install.php:87 +#: tmp/wordpress/wp-admin/includes/update.php:119 +#: tmp/wordpress/wp-admin/theme-install.php:54 +#: tmp/wordpress/wp-includes/admin-bar.php:164 +#: tmp/wordpress/wp-includes/update.php:127 +#: tmp/wordpress/wp-includes/update.php:317 +#: tmp/wordpress/wp-includes/update.php:497 +#: tmp/wordpress/wp-includes/wp-db.php:1129 +#: tmp/wordpress/wp-includes/wp-db.php:1601 +#: tmp/wordpress/wp-includes/wp-db.php:1705 tmp/wordpress/wp-login.php:793 +msgid "https://wordpress.org/support/" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:699 +#: tmp/old/wordpress/wp-admin/update-core.php:552 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:699 +#: tmp/wordpress/wp-admin/update-core.php:552 +msgid "" +"Keeping your site updated is important for security. It also makes the " +"internet a safer place for you and your readers." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:703 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:703 +msgid "" +"If you reach out to us, we'll also ensure you'll never have this problem " +"again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:708 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:708 +msgid "" +"You also have some plugins or themes with updates available. Update them now:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:712 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:712 +msgid "The WordPress Team" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:716 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:716 +msgid "Your site was running version %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:717 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:717 +msgid "We have some data that describes the error your site encountered." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:718 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:718 +msgid "" +"Your hosting company, support forum volunteers, or a friendly developer may " +"be able to use this information to help you:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:731 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:731 +msgid "Error code: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:786 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:786 +msgid "WordPress site: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:792 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:792 +msgid "SUCCESS: WordPress was successfully updated to %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:794 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:794 +msgid "FAILED: WordPress failed to update to %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:807 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:807 +msgid "The following plugins were successfully updated:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:808 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:808 +msgid "The following themes were successfully updated:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:809 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:809 +msgid "The following translations were successfully updated:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:814 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:814 +msgid "SUCCESS: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:820 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:820 +msgid "The following plugins failed to update:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:821 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:821 +msgid "The following themes failed to update:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:822 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:822 +msgid "The following translations failed to update:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:828 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:828 +msgid "FAILED: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:838 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:838 +msgid "" +"BETA TESTING?\n" +"=============\n" +"\n" +"This debugging email is sent when you are using a development version of " +"WordPress.\n" +"\n" +"If you think these failures might be due to a bug in WordPress, could you " +"report it?\n" +" * Open a thread in the support forums: https://wordpress.org/support/forum/" +"alphabeta\n" +" * Or, if you're comfortable writing a bug report: https://core.trac." +"wordpress.org/\n" +"\n" +"Thanks! -- The WordPress Team" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:851 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:851 +msgid "[%s] There were failures during background updates" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:853 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:853 +msgid "[%s] Background updates have finished" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:856 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:856 +msgid "" +"UPDATE LOG\n" +"==========" +msgstr "" + +#. translators: 1: Error code, 2: Error message. +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:880 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:880 +msgid "Rollback Error: [%1$s] %2$s" +msgstr "" + +#. translators: 1: Error code, 2: Error message. +#: tmp/old/wordpress/wp-admin/includes/class-wp-automatic-updater.php:883 +#: tmp/wordpress/wp-admin/includes/class-wp-automatic-updater.php:883 +msgid "Error: [%1$s] %2$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:187 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:187 +msgid "No comments awaiting moderation." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:189 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:189 +msgid "No comments found." +msgstr "" + +#. translators: %s: all comments count +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:207 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:207 +msgctxt "comments" +msgid "All (%s)" +msgid_plural "All (%s)" +msgstr[0] "" +msgstr[1] "" + +#. translators: %s: pending comments count +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:214 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:214 +msgctxt "comments" +msgid "Pending (%s)" +msgid_plural "Pending (%s)" +msgstr[0] "" +msgstr[1] "" + +#. translators: %s: approved comments count +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:221 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:221 +msgctxt "comments" +msgid "Approved (%s)" +msgid_plural "Approved (%s)" +msgstr[0] "" +msgstr[1] "" + +#. translators: %s: spam comments count +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:228 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:228 +msgctxt "comments" +msgid "Spam (%s)" +msgid_plural "Spam (%s)" +msgstr[0] "" +msgstr[1] "" + +#. translators: %s: trashed comments count +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:235 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:235 +msgctxt "comments" +msgid "Trash (%s)" +msgid_plural "Trash (%s)" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:293 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:558 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:564 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:633 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:293 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:558 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:564 +#: tmp/wordpress/wp-admin/includes/dashboard.php:633 +msgid "Unapprove" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:295 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:560 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:563 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:632 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:295 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:560 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:563 +#: tmp/wordpress/wp-admin/includes/dashboard.php:632 +msgid "Approve" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:302 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:570 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:302 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:570 +msgctxt "comment" +msgid "Not Spam" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:327 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:327 +msgid "Filter by comment type" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:329 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:329 +msgid "All comment types" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:340 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1595 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:340 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1595 +msgid "Pings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:354 +#: tmp/old/wordpress/wp-admin/includes/class-wp-links-list-table.php:115 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:177 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:487 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:354 +#: tmp/wordpress/wp-admin/includes/class-wp-links-list-table.php:115 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:177 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:487 +msgid "Filter" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:359 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:359 +msgid "Empty Spam" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:359 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:181 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:492 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:359 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:181 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:492 +msgid "Empty Trash" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:398 +#: tmp/old/wordpress/wp-admin/includes/class-wp-post-comments-list-table.php:28 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:398 +#: tmp/wordpress/wp-admin/includes/class-wp-post-comments-list-table.php:28 +msgctxt "column name" +msgid "Comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:405 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:405 +msgctxt "column name" +msgid "Submitted On" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:558 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:564 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:633 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:558 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:564 +#: tmp/wordpress/wp-admin/includes/dashboard.php:633 +msgid "Unapprove this comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:560 +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:563 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:632 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:560 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:563 +#: tmp/wordpress/wp-admin/includes/dashboard.php:632 +msgid "Approve this comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:568 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:636 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:568 +#: tmp/wordpress/wp-admin/includes/dashboard.php:636 +msgid "Mark this comment as spam" +msgstr "" + +#. translators: mark as spam link +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:568 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:636 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:568 +#: tmp/wordpress/wp-admin/includes/dashboard.php:636 +msgctxt "verb" +msgid "Spam" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:570 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:570 +msgid "Restore this comment from the spam" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:574 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:574 +msgid "Restore this comment from the Trash" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:578 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:639 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:578 +#: tmp/wordpress/wp-admin/includes/dashboard.php:639 +msgid "Delete this comment permanently" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:580 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:641 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:580 +#: tmp/wordpress/wp-admin/includes/dashboard.php:641 +msgid "Move this comment to the Trash" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:580 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:147 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:666 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:723 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1255 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:641 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:335 +#: tmp/old/wordpress/wp-includes/media-template.php:435 +#: tmp/old/wordpress/wp-includes/media-template.php:538 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:580 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:147 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:666 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:723 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1255 +#: tmp/wordpress/wp-admin/includes/dashboard.php:641 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:335 +#: tmp/wordpress/wp-includes/media-template.php:435 +#: tmp/wordpress/wp-includes/media-template.php:538 +msgctxt "verb" +msgid "Trash" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:584 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:634 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:584 +#: tmp/wordpress/wp-admin/includes/dashboard.php:634 +msgid "Edit this comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:588 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:588 +msgid "Quick edit this comment inline" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:588 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1236 +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:449 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:588 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1236 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:449 +msgid "Quick Edit" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:590 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:635 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:590 +#: tmp/wordpress/wp-admin/includes/dashboard.php:635 +msgid "Reply to this comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:590 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:635 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/comments.php:60 +#: tmp/old/wordpress/wp-includes/comment-template.php:1594 +#: tmp/old/wordpress/wp-includes/script-loader.php:526 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:590 +#: tmp/wordpress/wp-admin/includes/dashboard.php:635 +#: tmp/wordpress/wp-content/themes/twentyseventeen/comments.php:60 +#: tmp/wordpress/wp-includes/comment-template.php:1594 +#: tmp/wordpress/wp-includes/script-loader.php:526 +msgid "Reply" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-comments-list-table.php:627 +#: tmp/wordpress/wp-admin/includes/class-wp-comments-list-table.php:627 +msgid "Select comment" +msgstr "" + +#. translators: 1: folder to locate, 2: folder to start searching from +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-base.php:257 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-base.php:257 +msgid "Looking for %1$s in %2$s" +msgstr "" + +#. translators: %s: directory name +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-base.php:284 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-base.php:284 +msgid "Changing to %s" +msgstr "" + +#. translators: %s: directory name +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-base.php:299 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-base.php:299 +msgid "Found %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ftpext.php:31 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ftpext.php:31 +msgid "The ftp PHP extension is not available" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ftpext.php:46 +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ftpsockets.php:45 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ftpext.php:46 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ftpsockets.php:45 +msgid "FTP hostname is required" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ftpext.php:52 +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ftpsockets.php:51 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ftpext.php:52 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ftpsockets.php:51 +msgid "FTP username is required" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ftpext.php:57 +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ftpsockets.php:56 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ftpext.php:57 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ftpsockets.php:56 +msgid "FTP password is required" +msgstr "" + +#. translators: %s: hostname:port +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ftpext.php:80 +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ftpsockets.php:75 +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ftpsockets.php:85 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ftpext.php:80 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ftpsockets.php:75 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ftpsockets.php:85 +msgid "Failed to connect to FTP Server %s" +msgstr "" + +#. translators: %s: username +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ftpext.php:90 +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ftpsockets.php:95 +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:137 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ftpext.php:90 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ftpsockets.php:95 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:137 +msgid "Username/Password incorrect for %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:61 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:61 +msgid "The ssh2 PHP extension is not available" +msgstr "" + +#. translators: %s: stream_get_contents() +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:69 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:69 +msgid "" +"The ssh2 PHP extension is available, however, we require the PHP5 function %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:83 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:83 +msgid "SSH2 hostname is required" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:96 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:96 +msgid "SSH2 username is required" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:105 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:105 +msgid "SSH2 password is required" +msgstr "" + +#. translators: %s: hostname:port +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:126 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:126 +msgid "Failed to connect to SSH2 Server %s" +msgstr "" + +#. translators: %s: username +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:147 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:147 +msgid "Public and Private keys incorrect for %s" +msgstr "" + +#. translators: %s: hostname:port +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:159 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:159 +msgid "Failed to initialize a SFTP subsystem session with the SSH2 Server %s" +msgstr "" + +#. translators: %s: command +#: tmp/old/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:206 +#: tmp/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php:206 +msgid "Unable to perform command: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-links-list-table.php:75 +#: tmp/wordpress/wp-admin/includes/class-wp-links-list-table.php:75 +msgid "No links found." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-links-list-table.php:84 +#: tmp/old/wordpress/wp-admin/includes/class-wp-links-list-table.php:330 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:202 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:541 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:340 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:481 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:112 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:445 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:468 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:613 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:634 +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:156 +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:458 +#: tmp/old/wordpress/wp-admin/includes/class-wp-themes-list-table.php:198 +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:244 +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:412 +#: tmp/old/wordpress/wp-admin/includes/media.php:1501 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:916 +#: tmp/old/wordpress/wp-admin/includes/template.php:561 +#: tmp/old/wordpress/wp-admin/includes/widgets.php:253 +#: tmp/old/wordpress/wp-admin/themes.php:340 +#: tmp/old/wordpress/wp-admin/themes.php:486 +#: tmp/old/wordpress/wp-admin/widgets.php:320 +#: tmp/wordpress/wp-admin/includes/class-wp-links-list-table.php:84 +#: tmp/wordpress/wp-admin/includes/class-wp-links-list-table.php:330 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:202 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:541 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:340 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:481 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:112 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:445 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:468 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:613 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:634 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:156 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:458 +#: tmp/wordpress/wp-admin/includes/class-wp-themes-list-table.php:198 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:244 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:412 +#: tmp/wordpress/wp-admin/includes/media.php:1501 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:916 +#: tmp/wordpress/wp-admin/includes/template.php:561 +#: tmp/wordpress/wp-admin/includes/widgets.php:253 +#: tmp/wordpress/wp-admin/themes.php:340 tmp/wordpress/wp-admin/themes.php:486 +#: tmp/wordpress/wp-admin/widgets.php:320 +msgid "Delete" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-links-list-table.php:113 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:449 +#: tmp/wordpress/wp-admin/includes/class-wp-links-list-table.php:113 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:449 +msgid "Filter by category" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-links-list-table.php:132 +#: tmp/wordpress/wp-admin/includes/class-wp-links-list-table.php:132 +msgid "Visible" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-links-list-table.php:133 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1184 +#: tmp/wordpress/wp-admin/includes/class-wp-links-list-table.php:133 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1184 +msgid "Rating" +msgstr "" + +#. translators: %s: plugin name +#. translators: %s: theme name +#: tmp/old/wordpress/wp-admin/includes/class-wp-links-list-table.php:172 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:351 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:274 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:211 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:729 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:835 +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:339 +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:432 +#: tmp/old/wordpress/wp-admin/update-core.php:299 +#: tmp/old/wordpress/wp-admin/update-core.php:370 +#: tmp/wordpress/wp-admin/includes/class-wp-links-list-table.php:172 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:351 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:274 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:211 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:729 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:835 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:339 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:432 +#: tmp/wordpress/wp-admin/update-core.php:299 +#: tmp/wordpress/wp-admin/update-core.php:370 +msgid "Select %s" +msgstr "" + +#. translators: %s: link name +#. translators: %s: attachment title +#. translators: %s: post title +#. translators: %s: taxonomy term name +#. translators: %s: post title +#: tmp/old/wordpress/wp-admin/includes/class-wp-links-list-table.php:190 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:655 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:704 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1229 +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:442 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:578 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:866 +#: tmp/wordpress/wp-admin/includes/class-wp-links-list-table.php:190 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:655 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:704 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1229 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:442 +#: tmp/wordpress/wp-admin/includes/dashboard.php:578 +#: tmp/wordpress/wp-admin/includes/dashboard.php:866 +msgid "Edit “%s”" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-links-list-table.php:330 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:916 +#: tmp/wordpress/wp-admin/includes/class-wp-links-list-table.php:330 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:916 +msgid "" +"You are about to delete this link '%s'\n" +" 'Cancel' to stop, 'OK' to delete." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:162 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:46 +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:1230 +#: tmp/old/wordpress/wp-includes/media-template.php:252 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:162 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:46 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:1230 +#: tmp/wordpress/wp-includes/media-template.php:252 +msgid "List View" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:163 +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:1234 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:163 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:1234 +msgid "Excerpt View" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:461 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:461 +msgid "Select bulk action" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:473 +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:1010 +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:728 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1057 +#: tmp/old/wordpress/wp-includes/media.php:3444 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:473 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:1010 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:728 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1057 +#: tmp/wordpress/wp-includes/media.php:3444 +msgid "Apply" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:586 +#: tmp/old/wordpress/wp-includes/media.php:3445 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:586 +#: tmp/wordpress/wp-includes/media.php:3445 +msgid "Filter by date" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:588 +#: tmp/old/wordpress/wp-admin/includes/media.php:2472 +#: tmp/old/wordpress/wp-includes/media.php:3429 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:588 +#: tmp/wordpress/wp-admin/includes/media.php:2472 +#: tmp/wordpress/wp-includes/media.php:3429 +msgid "All dates" +msgstr "" + +#. translators: 1: month name, 2: 4-digit year +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:601 +#: tmp/old/wordpress/wp-includes/general-template.php:1743 +#: tmp/old/wordpress/wp-includes/media.php:3343 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:601 +#: tmp/wordpress/wp-includes/general-template.php:1743 +#: tmp/wordpress/wp-includes/media.php:3343 +msgid "%1$s %2$d" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:653 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:653 +msgid "%s comment" +msgid_plural "%s comments" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:654 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:654 +msgid "%s approved comment" +msgid_plural "%s approved comments" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:655 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:655 +msgid "%s pending comment" +msgid_plural "%s pending comments" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:660 +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:672 +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:685 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:660 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:672 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:685 +msgid "No comments" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:672 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:672 +msgid "No approved comments" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:685 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:685 +msgid "No pending comments" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:798 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:798 +msgid "First page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:808 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:361 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:646 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/archive.php:49 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/index.php:46 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/search.php:38 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/archive.php:45 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/index.php:50 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/search.php:43 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/archive.php:49 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/index.php:46 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/search.php:37 +#: tmp/old/wordpress/wp-includes/post-template.php:866 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:808 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:361 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:646 +#: tmp/wordpress/wp-content/themes/twentyfifteen/archive.php:49 +#: tmp/wordpress/wp-content/themes/twentyfifteen/index.php:46 +#: tmp/wordpress/wp-content/themes/twentyfifteen/search.php:38 +#: tmp/wordpress/wp-content/themes/twentyseventeen/archive.php:45 +#: tmp/wordpress/wp-content/themes/twentyseventeen/index.php:50 +#: tmp/wordpress/wp-content/themes/twentyseventeen/search.php:43 +#: tmp/wordpress/wp-content/themes/twentysixteen/archive.php:49 +#: tmp/wordpress/wp-content/themes/twentysixteen/index.php:46 +#: tmp/wordpress/wp-content/themes/twentysixteen/search.php:37 +#: tmp/wordpress/wp-includes/post-template.php:866 +msgid "Previous page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:815 +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:818 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:815 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:818 +msgid "Current Page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:824 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:824 +msgctxt "paging" +msgid "%1$s of %2$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:831 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:362 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:647 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/archive.php:50 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/index.php:47 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/search.php:39 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/archive.php:46 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/index.php:51 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/search.php:44 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/archive.php:50 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/index.php:47 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/search.php:38 +#: tmp/old/wordpress/wp-includes/post-template.php:865 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:831 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:362 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:647 +#: tmp/wordpress/wp-content/themes/twentyfifteen/archive.php:50 +#: tmp/wordpress/wp-content/themes/twentyfifteen/index.php:47 +#: tmp/wordpress/wp-content/themes/twentyfifteen/search.php:39 +#: tmp/wordpress/wp-content/themes/twentyseventeen/archive.php:46 +#: tmp/wordpress/wp-content/themes/twentyseventeen/index.php:51 +#: tmp/wordpress/wp-content/themes/twentyseventeen/search.php:44 +#: tmp/wordpress/wp-content/themes/twentysixteen/archive.php:50 +#: tmp/wordpress/wp-content/themes/twentysixteen/index.php:47 +#: tmp/wordpress/wp-content/themes/twentysixteen/search.php:38 +#: tmp/wordpress/wp-includes/post-template.php:865 +msgid "Next page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:841 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:841 +msgid "Last page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-list-table.php:1069 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:575 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:774 +#: tmp/old/wordpress/wp-admin/update-core.php:246 +#: tmp/old/wordpress/wp-admin/update-core.php:324 +#: tmp/old/wordpress/wp-admin/update-core.php:356 +#: tmp/old/wordpress/wp-admin/update-core.php:395 +#: tmp/wordpress/wp-admin/includes/class-wp-list-table.php:1069 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:575 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:774 +#: tmp/wordpress/wp-admin/update-core.php:246 +#: tmp/wordpress/wp-admin/update-core.php:324 +#: tmp/wordpress/wp-admin/update-core.php:356 +#: tmp/wordpress/wp-admin/update-core.php:395 +msgid "Select All" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:47 +#: tmp/old/wordpress/wp-includes/media-template.php:255 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:47 +#: tmp/wordpress/wp-includes/media-template.php:255 +msgid "Grid View" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:102 +#: tmp/old/wordpress/wp-includes/media.php:3428 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:102 +#: tmp/wordpress/wp-includes/media.php:3428 +msgid "All media items" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:124 +#: tmp/old/wordpress/wp-includes/media.php:3432 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:124 +#: tmp/wordpress/wp-includes/media.php:3432 +msgid "Unattached" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:130 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:130 +msgctxt "attachment filter" +msgid "Trash" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:154 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:514 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:694 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:154 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:514 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:694 +msgid "Attach" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:216 +#: tmp/old/wordpress/wp-includes/media.php:3449 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:216 +#: tmp/wordpress/wp-includes/media.php:3449 +msgid "No media files found." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:235 +#: tmp/old/wordpress/wp-includes/media.php:3446 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:235 +#: tmp/wordpress/wp-includes/media.php:3446 +msgid "Filter by type" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:264 +#: tmp/old/wordpress/wp-admin/includes/media.php:2393 +#: tmp/old/wordpress/wp-admin/includes/media.php:2395 +#: tmp/old/wordpress/wp-includes/media.php:3447 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:264 +#: tmp/wordpress/wp-admin/includes/media.php:2393 +#: tmp/wordpress/wp-admin/includes/media.php:2395 +#: tmp/wordpress/wp-includes/media.php:3447 +msgid "Search Media" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:265 +#: tmp/old/wordpress/wp-includes/media.php:3448 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:265 +#: tmp/wordpress/wp-includes/media.php:3448 +msgid "Search media items..." +msgstr "" + +#. translators: column name +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:278 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:278 +msgctxt "column name" +msgid "File" +msgstr "" + +#. translators: column name +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:308 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:308 +msgctxt "column name" +msgid "Uploaded to" +msgstr "" + +#. translators: column name +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:313 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:313 +msgctxt "column name" +msgid "Date" +msgstr "" + +#. translators: %s: attachment title +#. translators: %s: post title +#. translators: %s: taxonomy term name +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:377 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:942 +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:384 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:377 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:942 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:384 +msgid "“%s” (Edit)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:395 +#: tmp/old/wordpress/wp-admin/includes/media.php:1470 +#: tmp/old/wordpress/wp-admin/includes/media.php:2863 +#: tmp/old/wordpress/wp-includes/media-template.php:340 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:395 +#: tmp/wordpress/wp-admin/includes/media.php:1470 +#: tmp/wordpress/wp-admin/includes/media.php:2863 +#: tmp/wordpress/wp-includes/media-template.php:340 +msgid "File name:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:447 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:447 +msgid "%s from now" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:488 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:488 +msgid "(Private post)" +msgstr "" + +#. translators: %s: title of the post the attachment is attached to +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:501 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:501 +msgid "Detach from “%s”" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:502 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:502 +msgid "Detach" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:506 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:506 +msgid "(Unattached)" +msgstr "" + +#. translators: %s: attachment title +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:513 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:693 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:513 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:693 +msgid "Attach “%s” to existing content" +msgstr "" + +#. translators: used between list items, there is a space after the comma +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:577 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1105 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/template-tags.php:65 +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:742 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:577 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1105 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/template-tags.php:65 +#: tmp/wordpress/wp-includes/class-wp-theme.php:742 +msgid ", " +msgstr "" + +#. translators: %s: attachment title +#. translators: %s: post title +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:665 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:722 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1254 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:665 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:722 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1254 +msgid "Move “%s” to the Trash" +msgstr "" + +#. translators: %s: attachment title +#. translators: %s: post title +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:675 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:733 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1263 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:675 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:733 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1263 +msgid "Delete “%s” permanently" +msgstr "" + +#. translators: %s: attachment title +#. translators: %s: post title +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:684 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:743 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1286 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:684 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:743 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1286 +msgid "View “%s”" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:685 +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:744 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:351 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1287 +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:467 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:644 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:685 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:744 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:351 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1287 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:467 +#: tmp/wordpress/wp-admin/includes/dashboard.php:644 +msgid "View" +msgstr "" + +#. translators: %s: attachment title +#. translators: %s: post title +#: tmp/old/wordpress/wp-admin/includes/class-wp-media-list-table.php:714 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1246 +#: tmp/wordpress/wp-admin/includes/class-wp-media-list-table.php:714 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1246 +msgid "Restore “%s” from the Trash" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:41 +#: tmp/old/wordpress/wp-admin/network/site-info.php:187 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:41 +#: tmp/wordpress/wp-admin/network/site-info.php:187 +msgid "Archived" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:42 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:537 +#: tmp/old/wordpress/wp-admin/network/site-info.php:188 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:42 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:537 +#: tmp/wordpress/wp-admin/network/site-info.php:188 +msgctxt "site" +msgid "Spam" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:43 +#: tmp/old/wordpress/wp-admin/network/site-info.php:189 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:43 +#: tmp/wordpress/wp-admin/network/site-info.php:189 +msgid "Deleted" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:44 +#: tmp/old/wordpress/wp-admin/network/site-info.php:191 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:44 +#: tmp/wordpress/wp-admin/network/site-info.php:191 +msgid "Mature" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:192 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:192 +msgid "No sites found." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:203 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:203 +msgctxt "site" +msgid "Mark as Spam" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:204 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:535 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:204 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:535 +msgctxt "site" +msgid "Not Spam" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:230 +#: tmp/old/wordpress/wp-admin/network/site-info.php:181 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:230 +#: tmp/wordpress/wp-admin/network/site-info.php:181 +msgid "Last Updated" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:231 +#: tmp/old/wordpress/wp-admin/network/site-info.php:177 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:231 +#: tmp/wordpress/wp-admin/network/site-info.php:177 +msgctxt "site" +msgid "Registered" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:232 +#: tmp/old/wordpress/wp-admin/includes/ms.php:928 +#: tmp/old/wordpress/wp-admin/includes/ms.php:1085 +#: tmp/old/wordpress/wp-admin/menu.php:215 +#: tmp/old/wordpress/wp-admin/network/menu.php:31 +#: tmp/old/wordpress/wp-admin/network/users.php:30 +#: tmp/old/wordpress/wp-admin/network/users.php:58 +#: tmp/old/wordpress/wp-admin/network/users.php:160 +#: tmp/old/wordpress/wp-admin/network/users.php:218 +#: tmp/old/wordpress/wp-admin/users.php:23 +#: tmp/old/wordpress/wp-includes/admin-bar.php:461 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:232 +#: tmp/wordpress/wp-admin/includes/ms.php:928 +#: tmp/wordpress/wp-admin/includes/ms.php:1085 +#: tmp/wordpress/wp-admin/menu.php:215 +#: tmp/wordpress/wp-admin/network/menu.php:31 +#: tmp/wordpress/wp-admin/network/users.php:30 +#: tmp/wordpress/wp-admin/network/users.php:58 +#: tmp/wordpress/wp-admin/network/users.php:160 +#: tmp/wordpress/wp-admin/network/users.php:218 +#: tmp/wordpress/wp-admin/users.php:23 +#: tmp/wordpress/wp-includes/admin-bar.php:461 +msgid "Users" +msgstr "" + +#. translators: 1: site name, 2: site tagline. +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:334 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:334 +msgid "%1$s – %2$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:357 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:377 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:290 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:981 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:357 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:377 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:290 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:981 +msgid "Y/m/d g:i:s a" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:360 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:360 +msgid "Never" +msgstr "" + +#. translators: Network menu item +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:520 +#: tmp/old/wordpress/wp-admin/index.php:31 +#: tmp/old/wordpress/wp-admin/menu.php:23 +#: tmp/old/wordpress/wp-admin/my-sites.php:118 +#: tmp/old/wordpress/wp-admin/network/index.php:19 +#: tmp/old/wordpress/wp-admin/network/menu.php:11 +#: tmp/old/wordpress/wp-admin/network/site-info.php:142 +#: tmp/old/wordpress/wp-admin/network/site-settings.php:95 +#: tmp/old/wordpress/wp-admin/network/site-themes.php:172 +#: tmp/old/wordpress/wp-admin/network/site-users.php:217 +#: tmp/old/wordpress/wp-admin/user/menu.php:10 +#: tmp/old/wordpress/wp-includes/admin-bar.php:354 +#: tmp/old/wordpress/wp-includes/admin-bar.php:449 +#: tmp/old/wordpress/wp-includes/admin-bar.php:516 +#: tmp/old/wordpress/wp-includes/deprecated.php:2792 +#: tmp/old/wordpress/wp-includes/deprecated.php:2794 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:520 +#: tmp/wordpress/wp-admin/index.php:31 tmp/wordpress/wp-admin/menu.php:23 +#: tmp/wordpress/wp-admin/my-sites.php:118 +#: tmp/wordpress/wp-admin/network/index.php:19 +#: tmp/wordpress/wp-admin/network/menu.php:11 +#: tmp/wordpress/wp-admin/network/site-info.php:142 +#: tmp/wordpress/wp-admin/network/site-settings.php:95 +#: tmp/wordpress/wp-admin/network/site-themes.php:172 +#: tmp/wordpress/wp-admin/network/site-users.php:217 +#: tmp/wordpress/wp-admin/user/menu.php:10 +#: tmp/wordpress/wp-includes/admin-bar.php:354 +#: tmp/wordpress/wp-includes/admin-bar.php:449 +#: tmp/wordpress/wp-includes/admin-bar.php:516 +#: tmp/wordpress/wp-includes/deprecated.php:2792 +#: tmp/wordpress/wp-includes/deprecated.php:2794 +msgid "Dashboard" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:525 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:462 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:627 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:525 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:462 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:627 +msgid "Deactivate" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:529 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:529 +msgid "Unarchive" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:531 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:531 +msgctxt "verb; site" +msgid "Archive" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:545 +#: tmp/old/wordpress/wp-admin/my-sites.php:118 +#: tmp/old/wordpress/wp-admin/network/site-info.php:142 +#: tmp/old/wordpress/wp-admin/network/site-settings.php:95 +#: tmp/old/wordpress/wp-admin/network/site-themes.php:172 +#: tmp/old/wordpress/wp-admin/network/site-users.php:217 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php:545 +#: tmp/wordpress/wp-admin/my-sites.php:118 +#: tmp/wordpress/wp-admin/network/site-info.php:142 +#: tmp/wordpress/wp-admin/network/site-settings.php:95 +#: tmp/wordpress/wp-admin/network/site-themes.php:172 +#: tmp/wordpress/wp-admin/network/site-users.php:217 +msgid "Visit" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:234 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:234 +msgid "No themes found." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:236 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:236 +msgid "You do not appear to have any themes available at this time." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:247 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:247 +msgid "Theme" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:290 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:290 +msgctxt "themes" +msgid "All (%s)" +msgid_plural "All (%s)" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:293 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:293 +msgid "Enabled (%s)" +msgid_plural "Enabled (%s)" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:296 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:296 +msgid "Disabled (%s)" +msgid_plural "Disabled (%s)" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:299 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:432 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:299 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:432 +msgid "Update Available (%s)" +msgid_plural "Update Available (%s)" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:302 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:302 +msgid "Broken (%s)" +msgid_plural "Broken (%s)" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:333 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:425 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:333 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:425 +msgid "Enable" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:335 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:447 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:335 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:447 +msgid "Disable" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:335 +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:447 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:335 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:447 +msgid "Network Disable" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:365 +#: tmp/old/wordpress/wp-admin/includes/template.php:1519 +#: tmp/old/wordpress/wp-admin/nav-menus.php:717 +#: tmp/old/wordpress/wp-admin/plugin-editor.php:239 +#: tmp/old/wordpress/wp-admin/theme-editor.php:185 +#: tmp/old/wordpress/wp-includes/media.php:3404 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:365 +#: tmp/wordpress/wp-admin/includes/template.php:1519 +#: tmp/wordpress/wp-admin/nav-menus.php:717 +#: tmp/wordpress/wp-admin/plugin-editor.php:239 +#: tmp/wordpress/wp-admin/theme-editor.php:185 +#: tmp/wordpress/wp-includes/media.php:3404 +msgid "Select" +msgstr "" + +#. translators: %s: theme name +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:416 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:416 +msgid "Enable %s" +msgstr "" + +#. translators: %s: theme name +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:419 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:419 +msgid "Network Enable %s" +msgstr "" + +#. translators: %s: theme name +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:438 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:438 +msgid "Disable %s" +msgstr "" + +#. translators: %s: theme name +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:441 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:441 +msgid "Network Disable %s" +msgstr "" + +#. translators: %s: theme name +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:457 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:457 +msgid "Open %s in the Theme Editor" +msgstr "" + +#. translators: %s: theme name +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:476 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:476 +msgctxt "theme" +msgid "Delete %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:541 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:541 +msgid "Broken Theme:" +msgstr "" + +#. translators: %s: Theme author name +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:564 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:446 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:778 +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:312 +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:416 +#: tmp/old/wordpress/wp-admin/includes/class-wp-themes-list-table.php:222 +#: tmp/old/wordpress/wp-admin/includes/theme.php:659 +#: tmp/old/wordpress/wp-admin/theme-install.php:254 +#: tmp/old/wordpress/wp-admin/theme-install.php:306 +#: tmp/old/wordpress/wp-admin/themes.php:264 +#: tmp/old/wordpress/wp-admin/themes.php:396 +#: tmp/old/wordpress/wp-admin/themes.php:449 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:564 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:446 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:778 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:312 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:416 +#: tmp/wordpress/wp-admin/includes/class-wp-themes-list-table.php:222 +#: tmp/wordpress/wp-admin/includes/theme.php:659 +#: tmp/wordpress/wp-admin/theme-install.php:254 +#: tmp/wordpress/wp-admin/theme-install.php:306 +#: tmp/wordpress/wp-admin/themes.php:264 tmp/wordpress/wp-admin/themes.php:396 +#: tmp/wordpress/wp-admin/themes.php:449 +msgid "By %s" +msgstr "" + +#. translators: %s: theme name +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:568 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:568 +msgid "Visit %s homepage" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:573 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php:573 +msgid "Visit Theme Site" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:113 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:113 +msgctxt "user" +msgid "Mark as Spam" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:114 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:114 +msgctxt "user" +msgid "Not Spam" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:123 +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:155 +#: tmp/old/wordpress/wp-admin/includes/deprecated.php:561 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:123 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:155 +#: tmp/wordpress/wp-admin/includes/deprecated.php:561 +msgid "No users found." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:140 +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:193 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:140 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:193 +msgctxt "users" +msgid "All (%s)" +msgid_plural "All (%s)" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:142 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:142 +msgid "Super Admin (%s)" +msgid_plural "Super Admins (%s)" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:168 +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:318 +#: tmp/old/wordpress/wp-admin/includes/file.php:1187 +#: tmp/old/wordpress/wp-admin/install.php:120 +#: tmp/old/wordpress/wp-admin/install.php:394 +#: tmp/old/wordpress/wp-admin/network/site-users.php:289 +#: tmp/old/wordpress/wp-admin/network/site-users.php:318 +#: tmp/old/wordpress/wp-admin/network/user-new.php:109 +#: tmp/old/wordpress/wp-admin/setup-config.php:194 +#: tmp/old/wordpress/wp-admin/user-edit.php:338 +#: tmp/old/wordpress/wp-admin/user-new.php:405 +#: tmp/old/wordpress/wp-login.php:722 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:168 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:318 +#: tmp/wordpress/wp-admin/includes/file.php:1187 +#: tmp/wordpress/wp-admin/install.php:120 +#: tmp/wordpress/wp-admin/install.php:394 +#: tmp/wordpress/wp-admin/network/site-users.php:289 +#: tmp/wordpress/wp-admin/network/site-users.php:318 +#: tmp/wordpress/wp-admin/network/user-new.php:109 +#: tmp/wordpress/wp-admin/setup-config.php:194 +#: tmp/wordpress/wp-admin/user-edit.php:338 +#: tmp/wordpress/wp-admin/user-new.php:405 tmp/wordpress/wp-login.php:722 +msgid "Username" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:169 +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:319 +#: tmp/old/wordpress/wp-admin/includes/template.php:411 +#: tmp/old/wordpress/wp-admin/user-edit.php:334 +#: tmp/old/wordpress/wp-includes/comment-template.php:2196 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:169 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:319 +#: tmp/wordpress/wp-admin/includes/template.php:411 +#: tmp/wordpress/wp-admin/user-edit.php:334 +#: tmp/wordpress/wp-includes/comment-template.php:2196 +msgid "Name" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:171 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:171 +msgctxt "user" +msgid "Registered" +msgstr "" + +#. translators: Sites menu item +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:172 +#: tmp/old/wordpress/wp-admin/network/menu.php:27 +#: tmp/old/wordpress/wp-admin/network/sites.php:19 +#: tmp/old/wordpress/wp-admin/network/sites.php:290 +#: tmp/old/wordpress/wp-includes/admin-bar.php:455 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:172 +#: tmp/wordpress/wp-admin/network/menu.php:27 +#: tmp/wordpress/wp-admin/network/sites.php:19 +#: tmp/wordpress/wp-admin/network/sites.php:290 +#: tmp/wordpress/wp-includes/admin-bar.php:455 +msgid "Sites" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:245 +#: tmp/old/wordpress/wp-admin/user-edit.php:363 +#: tmp/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php:245 +#: tmp/wordpress/wp-admin/user-edit.php:363 +msgid "Super Admin" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:88 +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:62 +#: tmp/old/wordpress/wp-admin/includes/file.php:32 +#: tmp/old/wordpress/wp-includes/script-loader.php:636 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:88 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:62 +#: tmp/wordpress/wp-admin/includes/file.php:32 +#: tmp/wordpress/wp-includes/script-loader.php:636 +msgid "Search Results" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:91 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:91 +msgctxt "Plugin Installer" +msgid "Beta Testing" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:93 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:93 +msgctxt "Plugin Installer" +msgid "Featured" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:94 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:94 +msgctxt "Plugin Installer" +msgid "Popular" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:95 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:95 +msgctxt "Plugin Installer" +msgid "Recommended" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:96 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:96 +msgctxt "Plugin Installer" +msgid "Favorites" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:100 +#: tmp/old/wordpress/wp-admin/plugin-install.php:120 +#: tmp/old/wordpress/wp-admin/update.php:151 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:100 +#: tmp/wordpress/wp-admin/plugin-install.php:120 +#: tmp/wordpress/wp-admin/update.php:151 +msgid "Upload Plugin" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:235 +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:145 +#: tmp/old/wordpress/wp-admin/setup-config.php:247 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:235 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:145 +#: tmp/wordpress/wp-admin/setup-config.php:247 +msgid "Try again" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:237 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:237 +msgid "No plugins match your request." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:402 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:402 +msgctxt "Plugin installer group title" +msgid "Performance" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:403 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:403 +msgctxt "Plugin installer group title" +msgid "Social" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:404 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:404 +msgctxt "Plugin installer group title" +msgid "Tools" +msgstr "" + +#. translators: 1: Plugin name and version. +#. translators: %s: Plugin name +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:458 +#: tmp/old/wordpress/wp-includes/script-loader.php:663 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:458 +#: tmp/wordpress/wp-includes/script-loader.php:663 +msgid "Install %s now" +msgstr "" + +#. translators: 1: Plugin name and version +#. translators: %s: theme name +#. translators: %s: plugin name +#. translators: %s: theme name +#. translators: %s: Plugin name and version +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:465 +#: tmp/old/wordpress/wp-admin/includes/theme.php:214 +#: tmp/old/wordpress/wp-admin/includes/update.php:413 +#: tmp/old/wordpress/wp-admin/includes/update.php:558 +#: tmp/old/wordpress/wp-includes/script-loader.php:644 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:465 +#: tmp/wordpress/wp-admin/includes/theme.php:214 +#: tmp/wordpress/wp-admin/includes/update.php:413 +#: tmp/wordpress/wp-admin/includes/update.php:558 +#: tmp/wordpress/wp-includes/script-loader.php:644 +msgid "Update %s now" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:465 +#: tmp/old/wordpress/wp-admin/update-core.php:51 +#: tmp/old/wordpress/wp-includes/script-loader.php:642 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:465 +#: tmp/wordpress/wp-admin/update-core.php:51 +#: tmp/wordpress/wp-includes/script-loader.php:642 +msgid "Update Now" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:472 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:472 +msgctxt "plugin" +msgid "Active" +msgstr "" + +#. translators: %s: Plugin name +#. translators: %s: plugin name +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:476 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:630 +#: tmp/old/wordpress/wp-includes/script-loader.php:699 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:476 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:630 +#: tmp/wordpress/wp-includes/script-loader.php:699 +msgctxt "plugin" +msgid "Activate %s" +msgstr "" + +#. translators: %s: Plugin name +#. translators: %s: plugin name +#. translators: %s: Plugin name +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:486 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:609 +#: tmp/old/wordpress/wp-includes/script-loader.php:699 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:486 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:609 +#: tmp/wordpress/wp-includes/script-loader.php:699 +msgctxt "plugin" +msgid "Network Activate %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:497 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:497 +msgctxt "plugin" +msgid "Installed" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:507 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:507 +msgid "More Details" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:559 +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:572 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:559 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:572 +msgid "Last Updated:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:564 +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:591 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:564 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:591 +msgctxt "Active plugin installs" +msgid "1+ Million" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:566 +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:593 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:566 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:593 +msgctxt "Active plugin installs" +msgid "Less Than 10" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:570 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:570 +msgid "%s Active Installs" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:578 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:578 +msgid "Untested with your version of WordPress" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:580 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:580 +msgid "Incompatible with your version of WordPress" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:582 +#: tmp/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php:582 +msgid "Compatible with your version of WordPress" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:333 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:333 +msgid "No plugins found for “%s”." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:337 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:337 +msgid "Search for plugins in the WordPress Plugin Directory." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:340 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:340 +msgid "No plugins found." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:342 +#: tmp/old/wordpress/wp-admin/plugin-editor.php:30 +#: tmp/old/wordpress/wp-includes/script-loader.php:637 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:342 +#: tmp/wordpress/wp-admin/plugin-editor.php:30 +#: tmp/wordpress/wp-includes/script-loader.php:637 +msgid "You do not appear to have any plugins available at this time." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:370 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:370 +msgid "Search installed plugins..." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:386 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:386 +msgid "Plugin" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:414 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:414 +msgctxt "plugins" +msgid "All (%s)" +msgid_plural "All (%s)" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:417 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:417 +msgid "Active (%s)" +msgid_plural "Active (%s)" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:420 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:420 +msgid "Recently Active (%s)" +msgid_plural "Recently Active (%s)" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:423 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:423 +msgid "Inactive (%s)" +msgid_plural "Inactive (%s)" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:426 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:426 +msgid "Must-Use (%s)" +msgid_plural "Must-Use (%s)" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:429 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:429 +msgid "Drop-ins (%s)" +msgid_plural "Drop-ins (%s)" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:462 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:604 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:462 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:604 +msgid "Network Deactivate" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:500 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:500 +msgid "Clear List" +msgstr "" + +#. translators: %s: mu-plugins directory name +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:503 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:503 +msgid "Files in the %s directory are executed automatically." +msgstr "" + +#. translators: %s: wp-content directory name +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:508 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:508 +msgid "" +"Drop-ins are advanced plugins in the %s directory that replace WordPress " +"functionality when present." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:582 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:582 +msgid "Inactive:" +msgstr "" + +#. translators: 1: drop-in constant name, 2: wp-config.php +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:584 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:584 +msgid "Requires %1$s in %2$s file." +msgstr "" + +#. translators: %s: plugin name +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:604 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:604 +msgctxt "plugin" +msgid "Network Deactivate %s" +msgstr "" + +#. translators: %s: plugin name +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:613 +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:634 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:613 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:634 +msgctxt "plugin" +msgid "Delete %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:619 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:619 +msgid "Network Active" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:623 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:623 +msgid "Network Only" +msgstr "" + +#. translators: %s: plugin name +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:627 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:627 +msgctxt "plugin" +msgid "Deactivate %s" +msgstr "" + +#. translators: %s: plugin name +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:642 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:642 +msgid "Edit %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:788 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:788 +msgid "View details" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:793 +#: tmp/wordpress/wp-admin/includes/class-wp-plugins-list-table.php:793 +msgid "Visit plugin site" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:297 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:297 +msgctxt "posts" +msgid "Mine (%s)" +msgid_plural "Mine (%s)" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:317 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:317 +msgctxt "posts" +msgid "All (%s)" +msgid_plural "All (%s)" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:366 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:366 +msgctxt "posts" +msgid "Sticky (%s)" +msgid_plural "Sticky (%s)" +msgstr[0] "" +msgstr[1] "" + +#. translators: manage posts column name +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:539 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:539 +msgctxt "column name" +msgid "Title" +msgstr "" + +#. translators: %s: post title +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:843 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:843 +msgid "“%s” is locked" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:910 +#: tmp/old/wordpress/wp-admin/includes/misc.php:749 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:910 +#: tmp/wordpress/wp-admin/includes/misc.php:749 +msgid "%s is currently editing" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:998 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:998 +msgid "Missed schedule" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1003 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1003 +msgid "Last Modified" +msgstr "" + +#. translators: %s: post title +#. translators: %s: taxonomy term name +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1235 +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:448 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1235 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:448 +msgid "Quick edit “%s” inline" +msgstr "" + +#. translators: %s: post title +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1277 +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:259 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1277 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:259 +msgid "Preview “%s”" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1387 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1387 +msgid "Bulk Edit" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1387 +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:592 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1387 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:592 +msgid "Quick Edit" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1434 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1514 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1551 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1588 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1597 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1629 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1650 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1678 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1434 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1514 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1551 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1588 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1597 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1629 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1650 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1678 +msgid "— No Change —" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1453 +#: tmp/old/wordpress/wp-admin/includes/file.php:1188 +#: tmp/old/wordpress/wp-admin/install.php:137 +#: tmp/old/wordpress/wp-admin/install.php:398 +#: tmp/old/wordpress/wp-admin/options-writing.php:140 +#: tmp/old/wordpress/wp-admin/setup-config.php:199 +#: tmp/old/wordpress/wp-admin/user-new.php:428 +#: tmp/old/wordpress/wp-includes/general-template.php:409 +#: tmp/old/wordpress/wp-login.php:903 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1453 +#: tmp/wordpress/wp-admin/includes/file.php:1188 +#: tmp/wordpress/wp-admin/install.php:137 +#: tmp/wordpress/wp-admin/install.php:398 +#: tmp/wordpress/wp-admin/options-writing.php:140 +#: tmp/wordpress/wp-admin/setup-config.php:199 +#: tmp/wordpress/wp-admin/user-new.php:428 +#: tmp/wordpress/wp-includes/general-template.php:409 +#: tmp/wordpress/wp-login.php:903 +msgid "Password" +msgstr "" + +#. translators: Between password field and private checkbox on post quick edit +#. interface +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1460 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1460 +msgid "–OR–" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1465 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1635 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:134 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:162 +#: tmp/old/wordpress/wp-admin/includes/template.php:1703 +#: tmp/old/wordpress/wp-includes/post.php:690 +#: tmp/old/wordpress/wp-includes/post.php:710 +#: tmp/old/wordpress/wp-includes/script-loader.php:568 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1465 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1635 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:134 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:162 +#: tmp/wordpress/wp-admin/includes/template.php:1703 +#: tmp/wordpress/wp-includes/post.php:690 +#: tmp/wordpress/wp-includes/post.php:710 +#: tmp/wordpress/wp-includes/script-loader.php:568 +msgid "Private" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1502 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:824 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1502 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:824 +msgid "Parent" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1508 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1508 +msgid "Main Page (no parent)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1548 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:833 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:457 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1548 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:833 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:457 +msgid "Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1555 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:856 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1555 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:856 +msgid "Default Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1589 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1598 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1589 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1598 +msgid "Allow" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1590 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1599 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1590 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1599 +msgid "Do not allow" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1611 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1611 +msgid "Allow Comments" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1616 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1616 +msgid "Allow Pings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1648 +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1651 +#: tmp/old/wordpress/wp-admin/includes/template.php:1709 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/template-tags.php:109 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1648 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1651 +#: tmp/wordpress/wp-admin/includes/template.php:1709 +msgid "Sticky" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1652 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1652 +msgid "Not Sticky" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1660 +#: tmp/wordpress/wp-admin/includes/class-wp-posts-list-table.php:1660 +msgid "Make this post sticky" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:106 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:106 +msgid "Missing post ID." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:112 +#: tmp/old/wordpress/wp-includes/post-formats.php:68 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:112 +#: tmp/wordpress/wp-includes/post-formats.php:68 +msgid "Invalid post." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:241 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:241 +msgid "This category already exists." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:259 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:259 +msgid "This category cannot be added. Please change the name and try again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:266 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:266 +msgid "Error while adding the category. Please try again later." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:289 +#: tmp/old/wordpress/wp-includes/class-http.php:264 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6246 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:289 +#: tmp/wordpress/wp-includes/class-http.php:264 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6246 +msgid "A valid URL was not provided." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:845 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:385 +#: tmp/old/wordpress/wp-admin/includes/theme.php:263 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:845 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:385 +#: tmp/wordpress/wp-admin/includes/theme.php:263 +msgid "Post Formats" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:887 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:887 +msgid "Toggle add category" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:912 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:912 +msgid "Search categories by name" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:914 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:914 +msgid "Search categories" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:951 +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1472 +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1504 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/template-tags.php:88 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-tag-cloud.php:49 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:951 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1472 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1504 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/template-tags.php:88 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-tag-cloud.php:49 +msgid "Tags" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1166 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1166 +msgctxt "Used in Press This to indicate where the content comes from." +msgid "Source:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1272 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1272 +msgid "Press This!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1365 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1365 +msgid "Show post options" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1366 +#: tmp/old/wordpress/wp-includes/script-loader.php:744 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1366 +#: tmp/wordpress/wp-includes/script-loader.php:744 +msgid "Done" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1367 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1367 +msgid "Hide post options" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1373 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1373 +msgid "Scan site for content" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1374 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1374 +msgid "Enter a URL to scan" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1375 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1375 +msgid "Scan" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1402 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1402 +msgid "" +"You should upgrade your bookmarklet to " +"the latest version!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1411 +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1412 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1411 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1412 +msgid "Post title" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1416 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1416 +msgid "Suggested media" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1483 +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1494 +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1505 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1483 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1494 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1505 +msgid "Back to post options" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1517 +#: tmp/old/wordpress/wp-admin/includes/media.php:576 +#: tmp/old/wordpress/wp-includes/media.php:3402 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1517 +#: tmp/wordpress/wp-admin/includes/media.php:576 +#: tmp/wordpress/wp-includes/media.php:3402 +msgid "Add Media" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1525 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:269 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:270 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1525 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:269 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:270 +msgid "Submit for Review" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1526 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1526 +msgid "Saving…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1529 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1529 +msgid "More actions" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1533 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:524 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:41 +#: tmp/old/wordpress/wp-includes/script-loader.php:567 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1533 +#: tmp/wordpress/wp-admin/includes/dashboard.php:524 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:41 +#: tmp/wordpress/wp-includes/script-loader.php:567 +msgid "Save Draft" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-press-this.php:1534 +#: tmp/wordpress/wp-admin/includes/class-wp-press-this.php:1534 +msgid "Standard Editor" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:702 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:702 +msgid "Filter items list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:703 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:703 +msgid "Items list navigation" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:704 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:704 +msgid "Items list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:794 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:794 +msgid "Contextual Help Tab" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:893 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:893 +msgid "Screen Options" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:919 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:919 +msgid "Enable accessibility mode" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:919 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:919 +msgid "Disable accessibility mode" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:922 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:922 +msgid "Additional settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:924 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:924 +msgid "Enable full-height editor and distraction-free functionality." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:979 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:979 +msgid "Screen Options Tab" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:1031 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:1031 +msgid "Boxes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:1047 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:1047 +msgctxt "Welcome panel" +msgid "Welcome" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:1068 +#: tmp/old/wordpress/wp-includes/media-template.php:737 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:1068 +#: tmp/wordpress/wp-includes/media-template.php:737 +msgid "Columns" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:1114 +#: tmp/old/wordpress/wp-admin/includes/theme.php:237 +#: tmp/old/wordpress/wp-admin/includes/theme.php:302 +#: tmp/old/wordpress/wp-admin/index.php:62 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php:69 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:1114 +#: tmp/wordpress/wp-admin/includes/theme.php:237 +#: tmp/wordpress/wp-admin/includes/theme.php:302 +#: tmp/wordpress/wp-admin/index.php:62 +msgid "Layout" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:1120 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:1120 +msgid "%s column" +msgid_plural "%s columns" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:1140 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:1140 +msgid "Number of items per page:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:1180 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:1180 +msgid "Pagination" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-screen.php:1227 +#: tmp/wordpress/wp-admin/includes/class-wp-screen.php:1227 +msgid "View Mode" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:186 +#: tmp/old/wordpress/wp-admin/link-manager.php:46 +#: tmp/old/wordpress/wp-admin/menu.php:62 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:91 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/taxonomy-post_format.php:45 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-links.php:30 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:186 +#: tmp/wordpress/wp-admin/link-manager.php:46 +#: tmp/wordpress/wp-admin/menu.php:62 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-links.php:30 +msgid "Links" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:188 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:188 +msgctxt "Number/count of items" +msgid "Count" +msgstr "" + +#. translators: %s: taxonomy term name +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:457 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:457 +msgid "Delete “%s”" +msgstr "" + +#. translators: %s: taxonomy term name +#: tmp/old/wordpress/wp-admin/includes/class-wp-terms-list-table.php:466 +#: tmp/wordpress/wp-admin/includes/class-wp-terms-list-table.php:466 +msgid "View “%s” archive" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:60 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:408 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:454 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:457 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:693 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:744 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:747 +#: tmp/old/wordpress/wp-admin/includes/template.php:1510 +#: tmp/old/wordpress/wp-admin/includes/template.php:1513 +#: tmp/old/wordpress/wp-admin/includes/theme-install.php:88 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/header.php:48 +#: tmp/old/wordpress/wp-includes/admin-bar.php:857 +#: tmp/old/wordpress/wp-includes/admin-bar.php:858 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1466 +#: tmp/old/wordpress/wp-includes/media.php:3403 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:60 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:408 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:454 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:457 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:693 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:744 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:747 +#: tmp/wordpress/wp-admin/includes/template.php:1510 +#: tmp/wordpress/wp-admin/includes/template.php:1513 +#: tmp/wordpress/wp-admin/includes/theme-install.php:88 +#: tmp/wordpress/wp-includes/admin-bar.php:857 +#: tmp/wordpress/wp-includes/admin-bar.php:858 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1466 +#: tmp/wordpress/wp-includes/media.php:3403 +msgid "Search" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:64 +#: tmp/old/wordpress/wp-admin/theme-install.php:155 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:64 +#: tmp/wordpress/wp-admin/theme-install.php:155 +msgctxt "themes" +msgid "Featured" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:66 +#: tmp/old/wordpress/wp-admin/theme-install.php:157 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:66 +#: tmp/wordpress/wp-admin/theme-install.php:157 +msgctxt "themes" +msgid "Latest" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:67 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:67 +msgctxt "themes" +msgid "Recently Updated" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:160 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:160 +msgid "No themes match your request." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:281 +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:404 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:281 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:404 +msgid "Update to version %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:285 +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:408 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:285 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:408 +msgid "This theme is already installed and is up to date" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:285 +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:408 +#: tmp/old/wordpress/wp-admin/theme-install.php:284 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:285 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:408 +#: tmp/wordpress/wp-admin/theme-install.php:284 +msgctxt "theme" +msgid "Installed" +msgstr "" + +#. translators: %s: Theme name +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:293 +#: tmp/old/wordpress/wp-admin/includes/theme.php:677 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:293 +#: tmp/wordpress/wp-admin/includes/theme.php:677 +msgid "Preview %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:335 +#: tmp/old/wordpress/wp-admin/includes/widgets.php:254 +#: tmp/old/wordpress/wp-admin/theme-install.php:291 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:879 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1445 +#: tmp/old/wordpress/wp-includes/script-loader.php:269 +#: tmp/old/wordpress/wp-includes/script-loader.php:351 +#: tmp/old/wordpress/wp-includes/script-loader.php:466 +#: tmp/old/wordpress/wp-includes/script-loader.php:975 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:335 +#: tmp/wordpress/wp-admin/includes/widgets.php:254 +#: tmp/wordpress/wp-admin/theme-install.php:291 +#: tmp/wordpress/wp-includes/class-wp-editor.php:879 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1445 +#: tmp/wordpress/wp-includes/script-loader.php:269 +#: tmp/wordpress/wp-includes/script-loader.php:351 +#: tmp/wordpress/wp-includes/script-loader.php:466 +#: tmp/wordpress/wp-includes/script-loader.php:975 +msgid "Close" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:342 +#: tmp/old/wordpress/wp-admin/theme-install.php:58 +#: tmp/old/wordpress/wp-admin/theme-install.php:332 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:342 +#: tmp/wordpress/wp-admin/theme-install.php:58 +#: tmp/wordpress/wp-admin/theme-install.php:332 +msgid "Collapse Sidebar" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:344 +#: tmp/old/wordpress/wp-admin/theme-install.php:334 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:344 +#: tmp/wordpress/wp-admin/theme-install.php:334 +msgid "Collapse" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:412 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1263 +#: tmp/old/wordpress/wp-admin/includes/network.php:322 +#: tmp/old/wordpress/wp-admin/theme-install.php:278 +#: tmp/old/wordpress/wp-admin/theme-install.php:297 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:412 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1263 +#: tmp/wordpress/wp-admin/includes/network.php:322 +#: tmp/wordpress/wp-admin/theme-install.php:278 +#: tmp/wordpress/wp-admin/theme-install.php:297 +msgid "Install" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:423 +#: tmp/old/wordpress/wp-admin/includes/class-wp-themes-list-table.php:236 +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:568 +#: tmp/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php:423 +#: tmp/wordpress/wp-admin/includes/class-wp-themes-list-table.php:236 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:568 +msgid "Version:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-themes-list-table.php:97 +#: tmp/wordpress/wp-admin/includes/class-wp-themes-list-table.php:97 +msgid "" +"You only have one theme enabled for this site right now. Visit the Network " +"Admin to enable or install more " +"themes." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-themes-list-table.php:101 +#: tmp/wordpress/wp-admin/includes/class-wp-themes-list-table.php:101 +msgid "" +"You only have one theme enabled for this site right now. Visit the Network " +"Admin to enable more themes." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-themes-list-table.php:108 +#: tmp/wordpress/wp-admin/includes/class-wp-themes-list-table.php:108 +msgid "" +"You only have one theme installed right now. Live a little! You can choose " +"from over 1,000 free themes in the WordPress Theme Directory at any time: " +"just click on the Install Themes tab above." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-themes-list-table.php:114 +#: tmp/wordpress/wp-admin/includes/class-wp-themes-list-table.php:114 +msgid "" +"Only the current theme is available to you. Contact the %s administrator for " +"information about accessing additional themes." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-themes-list-table.php:197 +#: tmp/wordpress/wp-admin/includes/class-wp-themes-list-table.php:197 +msgid "" +"You are about to delete this theme '%s'\n" +" 'Cancel' to stop, 'OK' to delete." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-themes-list-table.php:239 +#: tmp/wordpress/wp-admin/includes/class-wp-themes-list-table.php:239 +msgid "This child theme requires its parent theme, %2$s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-themes-list-table.php:240 +#: tmp/old/wordpress/wp-admin/theme-editor.php:33 +#: tmp/old/wordpress/wp-admin/update-core.php:348 +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:276 +#: tmp/wordpress/wp-admin/includes/class-wp-themes-list-table.php:240 +#: tmp/wordpress/wp-admin/theme-editor.php:33 +#: tmp/wordpress/wp-admin/update-core.php:348 +#: tmp/wordpress/wp-includes/class-wp-theme.php:276 +msgid "https://codex.wordpress.org/Child_Themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-upgrader.php:156 +#: tmp/wordpress/wp-admin/includes/class-wp-upgrader.php:156 +msgid "Invalid data provided." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-upgrader.php:158 +#: tmp/old/wordpress/wp-admin/includes/plugin.php:819 +#: tmp/old/wordpress/wp-admin/includes/theme.php:62 +#: tmp/wordpress/wp-admin/includes/class-wp-upgrader.php:158 +#: tmp/wordpress/wp-admin/includes/plugin.php:819 +#: tmp/wordpress/wp-admin/includes/theme.php:62 +msgid "Filesystem error." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-upgrader.php:159 +#: tmp/wordpress/wp-admin/includes/class-wp-upgrader.php:159 +msgid "Unable to locate WordPress root directory." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-upgrader.php:160 +#: tmp/wordpress/wp-admin/includes/class-wp-upgrader.php:160 +msgid "Unable to locate WordPress content directory (wp-content)." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-upgrader.php:161 +#: tmp/old/wordpress/wp-admin/includes/plugin.php:824 +#: tmp/wordpress/wp-admin/includes/class-wp-upgrader.php:161 +#: tmp/wordpress/wp-admin/includes/plugin.php:824 +msgid "Unable to locate WordPress plugin directory." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-upgrader.php:162 +#: tmp/old/wordpress/wp-admin/includes/theme.php:67 +#: tmp/wordpress/wp-admin/includes/class-wp-upgrader.php:162 +#: tmp/wordpress/wp-admin/includes/theme.php:67 +msgid "Unable to locate WordPress theme directory." +msgstr "" + +#. translators: %s: directory name +#: tmp/old/wordpress/wp-admin/includes/class-wp-upgrader.php:164 +#: tmp/wordpress/wp-admin/includes/class-wp-upgrader.php:164 +msgid "Unable to locate needed folder (%s)." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-upgrader.php:166 +#: tmp/wordpress/wp-admin/includes/class-wp-upgrader.php:166 +msgid "Download failed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-upgrader.php:167 +#: tmp/wordpress/wp-admin/includes/class-wp-upgrader.php:167 +msgid "Installing the latest version…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-upgrader.php:168 +#: tmp/wordpress/wp-admin/includes/class-wp-upgrader.php:168 +msgid "The package contains no files." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-upgrader.php:169 +#: tmp/wordpress/wp-admin/includes/class-wp-upgrader.php:169 +msgid "Destination folder already exists." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-upgrader.php:170 +#: tmp/old/wordpress/wp-admin/includes/file.php:692 +#: tmp/old/wordpress/wp-admin/includes/file.php:798 +#: tmp/old/wordpress/wp-admin/includes/file.php:851 +#: tmp/old/wordpress/wp-admin/includes/update-core.php:1173 +#: tmp/wordpress/wp-admin/includes/class-wp-upgrader.php:170 +#: tmp/wordpress/wp-admin/includes/file.php:692 +#: tmp/wordpress/wp-admin/includes/file.php:798 +#: tmp/wordpress/wp-admin/includes/file.php:851 +#: tmp/wordpress/wp-admin/includes/update-core.php:1173 +msgid "Could not create directory." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-upgrader.php:171 +#: tmp/wordpress/wp-admin/includes/class-wp-upgrader.php:171 +msgid "The package could not be installed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-upgrader.php:174 +#: tmp/old/wordpress/wp-admin/includes/update-core.php:933 +#: tmp/wordpress/wp-admin/includes/class-wp-upgrader.php:174 +#: tmp/wordpress/wp-admin/includes/update-core.php:933 +msgid "Enabling Maintenance mode…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-upgrader.php:175 +#: tmp/old/wordpress/wp-admin/includes/update-core.php:1020 +#: tmp/wordpress/wp-admin/includes/class-wp-upgrader.php:175 +#: tmp/wordpress/wp-admin/includes/update-core.php:1020 +msgid "Disabling Maintenance mode…" +msgstr "" + +#. translators: User role name with count +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:206 +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:220 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:206 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:220 +msgid "%1$s (%2$s)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:218 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:218 +msgid "No role" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:264 +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:266 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:264 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:266 +msgid "Change role to…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:321 +#: tmp/old/wordpress/wp-admin/network/site-users.php:293 +#: tmp/old/wordpress/wp-admin/network/site-users.php:326 +#: tmp/old/wordpress/wp-admin/user-edit.php:343 +#: tmp/old/wordpress/wp-admin/user-new.php:343 +#: tmp/old/wordpress/wp-admin/user-new.php:475 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:321 +#: tmp/wordpress/wp-admin/network/site-users.php:293 +#: tmp/wordpress/wp-admin/network/site-users.php:326 +#: tmp/wordpress/wp-admin/user-edit.php:343 +#: tmp/wordpress/wp-admin/user-new.php:343 +#: tmp/wordpress/wp-admin/user-new.php:475 +msgid "Role" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:485 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:485 +msgid "%s post by this author" +msgid_plural "%s posts by this author" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/class-wp-users-list-table.php:548 +#: tmp/wordpress/wp-admin/includes/class-wp-users-list-table.php:548 +msgctxt "no user roles" +msgid "None" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:12 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:12 +msgid "Africa" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:13 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:13 +msgid "Abidjan" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:14 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:14 +msgid "Accra" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:15 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:15 +msgid "Addis Ababa" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:16 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:16 +msgid "Algiers" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:17 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:17 +msgid "Asmara" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:18 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:18 +msgid "Asmera" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:19 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:19 +msgid "Bamako" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:20 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:20 +msgid "Bangui" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:21 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:21 +msgid "Banjul" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:22 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:22 +msgid "Bissau" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:23 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:23 +msgid "Blantyre" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:24 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:24 +msgid "Brazzaville" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:25 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:25 +msgid "Bujumbura" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:26 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:26 +msgid "Cairo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:27 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:27 +msgid "Casablanca" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:28 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:28 +msgid "Ceuta" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:29 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:29 +msgid "Conakry" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:30 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:30 +msgid "Dakar" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:31 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:31 +msgid "Dar es Salaam" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:32 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:32 +msgid "Djibouti" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:33 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:33 +msgid "Douala" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:34 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:34 +msgid "El Aaiun" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:35 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:35 +msgid "Freetown" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:36 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:36 +msgid "Gaborone" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:37 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:37 +msgid "Harare" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:38 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:38 +msgid "Johannesburg" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:39 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:39 +msgid "Juba" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:40 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:40 +msgid "Kampala" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:41 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:41 +msgid "Khartoum" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:42 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:42 +msgid "Kigali" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:43 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:43 +msgid "Kinshasa" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:44 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:44 +msgid "Lagos" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:45 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:45 +msgid "Libreville" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:46 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:46 +msgid "Lome" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:47 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:47 +msgid "Luanda" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:48 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:48 +msgid "Lubumbashi" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:49 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:49 +msgid "Lusaka" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:50 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:50 +msgid "Malabo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:51 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:51 +msgid "Maputo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:52 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:52 +msgid "Maseru" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:53 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:53 +msgid "Mbabane" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:54 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:54 +msgid "Mogadishu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:55 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:55 +msgid "Monrovia" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:56 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:56 +msgid "Nairobi" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:57 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:57 +msgid "Ndjamena" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:58 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:58 +msgid "Niamey" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:59 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:59 +msgid "Nouakchott" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:60 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:60 +msgid "Ouagadougou" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:61 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:61 +msgid "Porto-Novo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:62 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:62 +msgid "Sao Tome" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:63 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:63 +msgid "Timbuktu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:64 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:64 +msgid "Tripoli" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:65 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:65 +msgid "Tunis" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:66 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:66 +msgid "Windhoek" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:68 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:68 +msgid "America" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:69 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:69 +msgid "Adak" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:70 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:70 +msgid "Anchorage" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:71 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:71 +msgid "Anguilla" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:72 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:72 +msgid "Antigua" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:73 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:73 +msgid "Araguaina" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:74 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:74 +msgid "Argentina" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:75 +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:101 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:75 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:101 +msgid "Buenos Aires" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:76 +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:106 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:76 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:106 +msgid "Catamarca" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:77 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:77 +msgid "ComodRivadavia" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:78 +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:112 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:78 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:112 +msgid "Cordoba" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:79 +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:155 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:79 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:155 +msgid "Jujuy" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:80 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:80 +msgid "La Rioja" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:81 +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:174 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:81 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:174 +msgid "Mendoza" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:82 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:82 +msgid "Rio Gallegos" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:83 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:83 +msgid "Salta" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:84 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:84 +msgid "San Juan" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:85 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:85 +msgid "San Luis" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:86 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:86 +msgid "Tucuman" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:87 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:87 +msgid "Ushuaia" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:88 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:88 +msgid "Aruba" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:89 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:89 +msgid "Asuncion" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:90 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:90 +msgid "Atikokan" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:91 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:91 +msgid "Atka" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:92 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:92 +msgid "Bahia" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:93 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:93 +msgid "Bahia Banderas" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:94 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:94 +msgid "Barbados" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:95 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:95 +msgid "Belem" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:96 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:96 +msgid "Belize" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:97 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:97 +msgid "Blanc-Sablon" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:98 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:98 +msgid "Boa Vista" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:99 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:99 +msgid "Bogota" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:100 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:100 +msgid "Boise" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:102 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:102 +msgid "Cambridge Bay" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:103 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:103 +msgid "Campo Grande" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:104 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:104 +msgid "Cancun" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:105 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:105 +msgid "Caracas" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:107 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:107 +msgid "Cayenne" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:108 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:108 +msgid "Cayman" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:109 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:109 +msgid "Chicago" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:110 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:110 +msgid "Chihuahua" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:111 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:111 +msgid "Coral Harbour" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:113 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:113 +msgid "Costa Rica" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:114 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:114 +msgid "Creston" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:115 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:115 +msgid "Cuiaba" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:116 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:116 +msgid "Curacao" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:117 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:117 +msgid "Danmarkshavn" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:118 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:118 +msgid "Dawson" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:119 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:119 +msgid "Dawson Creek" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:120 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:120 +msgid "Denver" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:121 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:121 +msgid "Detroit" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:122 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:122 +msgid "Dominica" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:123 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:123 +msgid "Edmonton" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:124 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:124 +msgid "Eirunepe" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:125 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:125 +msgid "El Salvador" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:126 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:126 +msgid "Ensenada" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:127 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:127 +msgid "Fort Nelson" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:128 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:128 +msgid "Fort Wayne" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:129 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:129 +msgid "Fortaleza" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:130 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:130 +msgid "Glace Bay" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:131 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:131 +msgid "Godthab" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:132 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:132 +msgid "Goose Bay" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:133 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:133 +msgid "Grand Turk" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:134 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:134 +msgid "Grenada" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:135 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:135 +msgid "Guadeloupe" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:136 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:136 +msgid "Guatemala" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:137 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:137 +msgid "Guayaquil" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:138 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:138 +msgid "Guyana" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:139 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:139 +msgid "Halifax" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:140 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:140 +msgid "Havana" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:141 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:141 +msgid "Hermosillo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:142 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:142 +msgid "Indiana" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:143 +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:151 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:143 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:151 +msgid "Indianapolis" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:144 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:144 +msgid "Knox" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:145 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:145 +msgid "Marengo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:146 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:146 +msgid "Petersburg" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:147 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:147 +msgid "Tell City" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:148 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:148 +msgid "Vevay" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:149 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:149 +msgid "Vincennes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:150 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:150 +msgid "Winamac" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:152 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:152 +msgid "Inuvik" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:153 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:153 +msgid "Iqaluit" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:154 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:154 +msgid "Jamaica" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:156 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:156 +msgid "Juneau" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:157 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:157 +msgid "Kentucky" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:158 +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:165 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:158 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:165 +msgid "Louisville" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:159 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:159 +msgid "Monticello" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:160 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:160 +msgid "Knox IN" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:161 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:161 +msgid "Kralendijk" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:162 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:162 +msgid "La Paz" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:163 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:163 +msgid "Lima" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:164 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:164 +msgid "Los Angeles" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:166 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:166 +msgid "Lower Princes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:167 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:167 +msgid "Maceio" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:168 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:168 +msgid "Managua" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:169 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:169 +msgid "Manaus" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:170 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:170 +msgid "Marigot" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:171 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:171 +msgid "Martinique" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:172 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:172 +msgid "Matamoros" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:173 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:173 +msgid "Mazatlan" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:175 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:175 +msgid "Menominee" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:176 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:176 +msgid "Merida" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:177 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:177 +msgid "Metlakatla" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:178 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:178 +msgid "Mexico City" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:179 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:179 +msgid "Miquelon" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:180 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:180 +msgid "Moncton" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:181 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:181 +msgid "Monterrey" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:182 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:182 +msgid "Montevideo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:183 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:183 +msgid "Montreal" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:184 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:184 +msgid "Montserrat" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:185 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:185 +msgid "Nassau" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:186 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:186 +msgid "New York" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:187 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:187 +msgid "Nipigon" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:188 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:188 +msgid "Nome" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:189 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:189 +msgid "Noronha" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:190 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:190 +msgid "North Dakota" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:191 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:191 +msgid "Beulah" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:193 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:193 +msgid "New Salem" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:194 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:194 +msgid "Ojinaga" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:195 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:195 +msgid "Panama" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:196 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:196 +msgid "Pangnirtung" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:197 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:197 +msgid "Paramaribo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:198 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:198 +msgid "Phoenix" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:199 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:199 +msgid "Port of Spain" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:200 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:200 +msgid "Port-au-Prince" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:201 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:201 +msgid "Porto Acre" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:202 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:202 +msgid "Porto Velho" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:203 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:203 +msgid "Puerto Rico" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:204 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:204 +msgid "Rainy River" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:205 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:205 +msgid "Rankin Inlet" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:206 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:206 +msgid "Recife" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:207 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:207 +msgid "Regina" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:208 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:208 +msgid "Resolute" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:209 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:209 +msgid "Rio Branco" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:210 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:210 +msgid "Rosario" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:211 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:211 +msgid "Santa Isabel" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:212 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:212 +msgid "Santarem" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:213 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:213 +msgid "Santiago" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:214 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:214 +msgid "Santo Domingo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:215 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:215 +msgid "Sao Paulo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:216 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:216 +msgid "Scoresbysund" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:217 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:217 +msgid "Shiprock" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:218 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:218 +msgid "Sitka" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:219 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:219 +msgid "St Barthelemy" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:220 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:220 +msgid "St Johns" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:221 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:221 +msgid "St Kitts" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:222 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:222 +msgid "St Lucia" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:223 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:223 +msgid "St Thomas" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:224 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:224 +msgid "St Vincent" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:225 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:225 +msgid "Swift Current" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:226 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:226 +msgid "Tegucigalpa" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:227 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:227 +msgid "Thule" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:228 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:228 +msgid "Thunder Bay" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:229 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:229 +msgid "Tijuana" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:230 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:230 +msgid "Toronto" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:231 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:231 +msgid "Tortola" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:232 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:232 +msgid "Vancouver" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:233 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:233 +msgid "Virgin" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:234 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:234 +msgid "Whitehorse" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:235 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:235 +msgid "Winnipeg" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:236 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:236 +msgid "Yakutat" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:237 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:237 +msgid "Yellowknife" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:239 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:239 +msgid "Antarctica" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:240 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:240 +msgid "Casey" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:241 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:241 +msgid "Davis" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:242 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:242 +msgid "DumontDUrville" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:243 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:243 +msgid "Macquarie" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:244 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:244 +msgid "Mawson" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:245 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:245 +msgid "McMurdo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:246 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:246 +msgid "Palmer" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:247 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:247 +msgid "Rothera" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:248 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:248 +msgid "South Pole" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:249 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:249 +msgid "Syowa" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:250 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:250 +msgid "Troll" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:251 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:251 +msgid "Vostok" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:253 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:253 +msgid "Arctic" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:254 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:254 +msgid "Longyearbyen" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:256 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:256 +msgid "Asia" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:257 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:257 +msgid "Aden" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:258 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:258 +msgid "Almaty" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:259 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:259 +msgid "Amman" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:260 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:260 +msgid "Anadyr" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:261 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:261 +msgid "Aqtau" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:262 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:262 +msgid "Aqtobe" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:263 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:263 +msgid "Ashgabat" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:264 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:264 +msgid "Ashkhabad" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:265 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:265 +msgid "Baghdad" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:266 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:266 +msgid "Bahrain" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:267 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:267 +msgid "Baku" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:268 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:268 +msgid "Bangkok" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:269 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:269 +msgid "Barnaul" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:270 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:270 +msgid "Beirut" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:271 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:271 +msgid "Bishkek" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:272 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:272 +msgid "Brunei" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:273 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:273 +msgid "Calcutta" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:274 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:274 +msgid "Chita" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:275 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:275 +msgid "Choibalsan" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:276 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:276 +msgid "Chongqing" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:277 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:277 +msgid "Chungking" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:278 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:278 +msgid "Colombo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:279 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:279 +msgid "Dacca" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:280 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:280 +msgid "Damascus" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:281 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:281 +msgid "Dhaka" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:282 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:282 +msgid "Dili" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:283 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:283 +msgid "Dubai" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:284 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:284 +msgid "Dushanbe" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:285 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:285 +msgid "Gaza" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:286 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:286 +msgid "Harbin" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:287 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:287 +msgid "Hebron" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:288 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:288 +msgid "Ho Chi Minh" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:289 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:289 +msgid "Hong Kong" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:290 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:290 +msgid "Hovd" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:291 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:291 +msgid "Irkutsk" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:292 +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:449 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:292 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:449 +msgid "Istanbul" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:293 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:293 +msgid "Jakarta" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:294 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:294 +msgid "Jayapura" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:295 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:295 +msgid "Jerusalem" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:296 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:296 +msgid "Kabul" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:297 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:297 +msgid "Kamchatka" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:298 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:298 +msgid "Karachi" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:299 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:299 +msgid "Kashgar" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:300 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:300 +msgid "Kathmandu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:301 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:301 +msgid "Katmandu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:302 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:302 +msgid "Khandyga" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:303 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:303 +msgid "Kolkata" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:304 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:304 +msgid "Krasnoyarsk" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:305 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:305 +msgid "Kuala Lumpur" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:306 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:306 +msgid "Kuching" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:307 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:307 +msgid "Kuwait" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:308 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:308 +msgid "Macao" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:309 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:309 +msgid "Macau" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:310 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:310 +msgid "Magadan" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:311 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:311 +msgid "Makassar" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:312 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:312 +msgid "Manila" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:313 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:313 +msgid "Muscat" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:314 +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:464 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:314 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:464 +msgid "Nicosia" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:315 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:315 +msgid "Novokuznetsk" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:316 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:316 +msgid "Novosibirsk" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:317 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:317 +msgid "Omsk" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:318 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:318 +msgid "Oral" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:319 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:319 +msgid "Phnom Penh" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:320 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:320 +msgid "Pontianak" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:321 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:321 +msgid "Pyongyang" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:322 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:322 +msgid "Qatar" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:323 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:323 +msgid "Qyzylorda" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:324 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:324 +msgid "Rangoon" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:325 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:325 +msgid "Riyadh" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:326 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:326 +msgid "Saigon" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:327 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:327 +msgid "Sakhalin" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:328 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:328 +msgid "Samarkand" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:329 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:329 +msgid "Seoul" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:330 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:330 +msgid "Shanghai" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:331 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:331 +msgid "Singapore" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:332 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:332 +msgid "Srednekolymsk" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:333 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:333 +msgid "Taipei" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:334 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:334 +msgid "Tashkent" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:335 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:335 +msgid "Tbilisi" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:336 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:336 +msgid "Tehran" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:337 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:337 +msgid "Tel Aviv" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:338 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:338 +msgid "Thimbu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:339 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:339 +msgid "Thimphu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:340 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:340 +msgid "Tokyo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:341 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:341 +msgid "Tomsk" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:342 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:342 +msgid "Ujung Pandang" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:343 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:343 +msgid "Ulaanbaatar" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:344 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:344 +msgid "Ulan Bator" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:345 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:345 +msgid "Urumqi" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:346 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:346 +msgid "Ust-Nera" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:347 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:347 +msgid "Vientiane" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:348 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:348 +msgid "Vladivostok" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:349 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:349 +msgid "Yakutsk" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:350 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:350 +msgid "Yekaterinburg" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:351 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:351 +msgid "Yerevan" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:353 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:353 +msgid "Atlantic" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:354 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:354 +msgid "Azores" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:355 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:355 +msgid "Bermuda" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:356 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:356 +msgid "Canary" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:357 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:357 +msgid "Cape Verde" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:358 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:358 +msgid "Faeroe" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:359 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:359 +msgid "Faroe" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:360 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:360 +msgid "Jan Mayen" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:361 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:361 +msgid "Madeira" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:362 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:362 +msgid "Reykjavik" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:363 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:363 +msgid "South Georgia" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:364 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:364 +msgid "St Helena" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:365 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:365 +msgid "Stanley" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:367 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:367 +msgid "Australia" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:368 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:368 +msgid "ACT" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:369 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:369 +msgid "Adelaide" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:370 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:370 +msgid "Brisbane" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:371 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:371 +msgid "Broken Hill" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:372 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:372 +msgid "Canberra" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:373 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:373 +msgid "Currie" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:374 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:374 +msgid "Darwin" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:375 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:375 +msgid "Eucla" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:376 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:376 +msgid "Hobart" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:377 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:377 +msgid "LHI" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:378 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:378 +msgid "Lindeman" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:379 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:379 +msgid "Lord Howe" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:380 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:380 +msgid "Melbourne" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:381 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:381 +msgid "NSW" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:382 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:382 +msgid "North" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:383 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:383 +msgid "Perth" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:384 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:384 +msgid "Queensland" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:385 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:385 +msgid "South" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:386 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:386 +msgid "Sydney" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:387 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:387 +msgid "Tasmania" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:388 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:388 +msgid "Victoria" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:389 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:389 +msgid "West" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:390 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:390 +msgid "Yancowinna" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:392 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:392 +msgid "Etc" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:393 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:393 +msgid "GMT" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:394 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:394 +msgid "GMT+0" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:395 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:395 +msgid "GMT+1" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:396 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:396 +msgid "GMT+10" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:397 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:397 +msgid "GMT+11" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:398 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:398 +msgid "GMT+12" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:399 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:399 +msgid "GMT+2" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:400 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:400 +msgid "GMT+3" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:401 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:401 +msgid "GMT+4" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:402 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:402 +msgid "GMT+5" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:403 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:403 +msgid "GMT+6" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:404 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:404 +msgid "GMT+7" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:405 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:405 +msgid "GMT+8" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:406 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:406 +msgid "GMT+9" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:407 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:407 +msgid "GMT-0" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:408 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:408 +msgid "GMT-1" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:409 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:409 +msgid "GMT-10" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:410 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:410 +msgid "GMT-11" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:411 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:411 +msgid "GMT-12" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:412 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:412 +msgid "GMT-13" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:413 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:413 +msgid "GMT-14" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:414 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:414 +msgid "GMT-2" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:415 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:415 +msgid "GMT-3" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:416 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:416 +msgid "GMT-4" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:417 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:417 +msgid "GMT-5" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:418 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:418 +msgid "GMT-6" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:419 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:419 +msgid "GMT-7" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:420 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:420 +msgid "GMT-8" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:421 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:421 +msgid "GMT-9" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:422 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:422 +msgid "GMT0" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:423 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:423 +msgid "Greenwich" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:424 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:424 +msgid "UCT" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:425 +#: tmp/old/wordpress/wp-admin/options-general.php:159 +#: tmp/old/wordpress/wp-includes/functions.php:4664 +#: tmp/old/wordpress/wp-includes/functions.php:4668 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:425 +#: tmp/wordpress/wp-admin/options-general.php:159 +#: tmp/wordpress/wp-includes/functions.php:4664 +#: tmp/wordpress/wp-includes/functions.php:4668 +msgid "UTC" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:426 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:426 +msgid "Universal" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:427 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:427 +msgid "Zulu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:429 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:429 +msgid "Europe" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:430 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:430 +msgid "Amsterdam" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:431 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:431 +msgid "Andorra" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:432 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:432 +msgid "Astrakhan" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:433 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:433 +msgid "Athens" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:434 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:434 +msgid "Belfast" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:435 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:435 +msgid "Belgrade" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:436 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:436 +msgid "Berlin" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:437 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:437 +msgid "Bratislava" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:438 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:438 +msgid "Brussels" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:439 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:439 +msgid "Bucharest" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:440 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:440 +msgid "Budapest" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:441 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:441 +msgid "Busingen" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:442 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:442 +msgid "Chisinau" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:443 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:443 +msgid "Copenhagen" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:444 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:444 +msgid "Dublin" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:445 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:445 +msgid "Gibraltar" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:446 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:446 +msgid "Guernsey" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:447 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:447 +msgid "Helsinki" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:448 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:448 +msgid "Isle of Man" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:450 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:450 +msgid "Jersey" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:451 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:451 +msgid "Kaliningrad" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:452 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:452 +msgid "Kiev" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:453 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:453 +msgid "Kirov" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:454 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:454 +msgid "Lisbon" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:455 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:455 +msgid "Ljubljana" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:456 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:456 +msgid "London" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:457 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:457 +msgid "Luxembourg" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:458 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:458 +msgid "Madrid" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:459 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:459 +msgid "Malta" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:460 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:460 +msgid "Mariehamn" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:461 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:461 +msgid "Minsk" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:462 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:462 +msgid "Monaco" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:463 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:463 +msgid "Moscow" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:465 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:465 +msgid "Oslo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:466 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:466 +msgid "Paris" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:467 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:467 +msgid "Podgorica" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:468 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:468 +msgid "Prague" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:469 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:469 +msgid "Riga" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:470 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:470 +msgid "Rome" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:471 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:471 +msgid "Samara" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:472 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:472 +msgid "San Marino" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:473 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:473 +msgid "Sarajevo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:474 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:474 +msgid "Simferopol" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:475 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:475 +msgid "Skopje" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:476 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:476 +msgid "Sofia" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:477 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:477 +msgid "Stockholm" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:478 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:478 +msgid "Tallinn" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:479 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:479 +msgid "Tirane" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:480 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:480 +msgid "Tiraspol" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:481 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:481 +msgid "Ulyanovsk" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:482 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:482 +msgid "Uzhgorod" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:483 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:483 +msgid "Vaduz" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:484 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:484 +msgid "Vatican" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:485 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:485 +msgid "Vienna" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:486 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:486 +msgid "Vilnius" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:487 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:487 +msgid "Volgograd" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:488 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:488 +msgid "Warsaw" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:489 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:489 +msgid "Zagreb" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:490 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:490 +msgid "Zaporozhye" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:491 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:491 +msgid "Zurich" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:493 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:493 +msgid "Indian" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:494 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:494 +msgid "Antananarivo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:495 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:495 +msgid "Chagos" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:496 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:496 +msgid "Christmas" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:497 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:497 +msgid "Cocos" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:498 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:498 +msgid "Comoro" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:499 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:499 +msgid "Kerguelen" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:500 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:500 +msgid "Mahe" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:501 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:501 +msgid "Maldives" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:502 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:502 +msgid "Mauritius" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:503 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:503 +msgid "Mayotte" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:504 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:504 +msgid "Reunion" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:506 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:506 +msgid "Pacific" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:507 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:507 +msgid "Apia" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:508 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:508 +msgid "Auckland" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:509 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:509 +msgid "Bougainville" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:510 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:510 +msgid "Chatham" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:511 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:511 +msgid "Chuuk" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:512 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:512 +msgid "Easter" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:513 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:513 +msgid "Efate" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:514 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:514 +msgid "Enderbury" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:515 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:515 +msgid "Fakaofo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:516 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:516 +msgid "Fiji" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:517 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:517 +msgid "Funafuti" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:518 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:518 +msgid "Galapagos" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:519 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:519 +msgid "Gambier" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:520 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:520 +msgid "Guadalcanal" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:521 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:521 +msgid "Guam" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:522 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:522 +msgid "Honolulu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:523 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:523 +msgid "Johnston" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:524 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:524 +msgid "Kiritimati" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:525 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:525 +msgid "Kosrae" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:526 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:526 +msgid "Kwajalein" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:527 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:527 +msgid "Majuro" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:528 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:528 +msgid "Marquesas" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:529 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:529 +msgid "Midway" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:530 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:530 +msgid "Nauru" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:531 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:531 +msgid "Niue" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:532 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:532 +msgid "Norfolk" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:533 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:533 +msgid "Noumea" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:534 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:534 +msgid "Pago Pago" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:535 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:535 +msgid "Palau" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:536 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:536 +msgid "Pitcairn" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:537 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:537 +msgid "Pohnpei" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:538 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:538 +msgid "Ponape" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:539 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:539 +msgid "Port Moresby" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:540 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:540 +msgid "Rarotonga" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:541 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:541 +msgid "Saipan" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:542 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:542 +msgid "Samoa" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:543 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:543 +msgid "Tahiti" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:544 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:544 +msgid "Tarawa" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:545 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:545 +msgid "Tongatapu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:546 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:546 +msgid "Truk" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:547 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:547 +msgid "Wake" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:548 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:548 +msgid "Wallis" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/continents-cities.php:549 +#: tmp/wordpress/wp-admin/includes/continents-cities.php:549 +msgid "Yap" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:32 +#: tmp/wordpress/wp-admin/includes/dashboard.php:32 +msgid "You are using an insecure browser!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:34 +#: tmp/wordpress/wp-admin/includes/dashboard.php:34 +msgid "Your browser is out of date!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:39 +#: tmp/wordpress/wp-admin/includes/dashboard.php:39 +msgid "At a Glance" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:42 +#: tmp/wordpress/wp-admin/includes/dashboard.php:42 +msgid "Right Now" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:46 +#: tmp/wordpress/wp-admin/includes/dashboard.php:46 +msgid "Activity" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:51 +#: tmp/wordpress/wp-admin/includes/dashboard.php:51 +msgid "Quick Draft" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:51 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:570 +#: tmp/wordpress/wp-admin/includes/dashboard.php:51 +#: tmp/wordpress/wp-admin/includes/dashboard.php:570 +msgid "Drafts" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:56 +#: tmp/wordpress/wp-admin/includes/dashboard.php:56 +msgid "WordPress News" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:112 +#: tmp/wordpress/wp-admin/includes/dashboard.php:112 +msgid "View all" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:167 +#: tmp/wordpress/wp-admin/includes/dashboard.php:167 +msgid "Configure" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:198 +#: tmp/old/wordpress/wp-admin/setup-config.php:219 +#: tmp/wordpress/wp-admin/includes/dashboard.php:198 +#: tmp/wordpress/wp-admin/setup-config.php:219 +msgid "Submit" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:258 +#: tmp/wordpress/wp-admin/includes/dashboard.php:258 +msgid "%s Post" +msgid_plural "%s Posts" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:260 +#: tmp/wordpress/wp-admin/includes/dashboard.php:260 +msgid "%s Page" +msgid_plural "%s Pages" +msgstr[0] "" +msgstr[1] "" + +#. translators: Number of comments in moderation +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:283 +#: tmp/wordpress/wp-admin/includes/dashboard.php:283 +msgctxt "comments" +msgid "%s comment in moderation" +msgid_plural "%s comments in moderation" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:341 +#: tmp/wordpress/wp-admin/includes/dashboard.php:341 +msgid "Search Engines Discouraged" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:388 +#: tmp/wordpress/wp-admin/includes/dashboard.php:388 +msgid "Create a New Site" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:390 +#: tmp/wordpress/wp-admin/includes/dashboard.php:390 +msgid "Create a New User" +msgstr "" + +#. translators: 1: Number of users on the network +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:396 +#: tmp/wordpress/wp-admin/includes/dashboard.php:396 +msgid "%s user" +msgid_plural "%s users" +msgstr[0] "" +msgstr[1] "" + +#. translators: 1: Number of sites on the network +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:398 +#: tmp/wordpress/wp-admin/includes/dashboard.php:398 +msgid "%s site" +msgid_plural "%s sites" +msgstr[0] "" +msgstr[1] "" + +#. translators: 1: Text indicating the number of sites on the network, 2: Text +#. indicating the number of users on the network +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:401 +#: tmp/wordpress/wp-admin/includes/dashboard.php:401 +msgid "You have %1$s and %2$s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:431 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:433 +#: tmp/old/wordpress/wp-admin/network/site-users.php:261 +#: tmp/old/wordpress/wp-admin/network/users.php:233 +#: tmp/old/wordpress/wp-admin/users.php:514 +#: tmp/wordpress/wp-admin/includes/dashboard.php:431 +#: tmp/wordpress/wp-admin/includes/dashboard.php:433 +#: tmp/wordpress/wp-admin/network/site-users.php:261 +#: tmp/wordpress/wp-admin/network/users.php:233 +#: tmp/wordpress/wp-admin/users.php:514 +msgid "Search Users" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:439 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:441 +#: tmp/old/wordpress/wp-admin/network/sites.php:306 +#: tmp/wordpress/wp-admin/includes/dashboard.php:439 +#: tmp/wordpress/wp-admin/includes/dashboard.php:441 +#: tmp/wordpress/wp-admin/network/sites.php:306 +msgid "Search Sites" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:515 +#: tmp/wordpress/wp-admin/includes/dashboard.php:515 +msgid "What’s on your mind?" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:568 +#: tmp/wordpress/wp-admin/includes/dashboard.php:568 +msgid "View all drafts" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:568 +#: tmp/wordpress/wp-admin/includes/dashboard.php:568 +msgctxt "drafts" +msgid "View all" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:644 +#: tmp/wordpress/wp-admin/includes/dashboard.php:644 +msgid "View this comment" +msgstr "" + +#. translators: 1: comment author, 2: post link, 3: notification if the comment +#. is pending +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:690 +#: tmp/wordpress/wp-admin/includes/dashboard.php:690 +msgid "From %1$s on %2$s %3$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:693 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:700 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:730 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:737 +#: tmp/wordpress/wp-admin/includes/dashboard.php:693 +#: tmp/wordpress/wp-admin/includes/dashboard.php:700 +#: tmp/wordpress/wp-admin/includes/dashboard.php:730 +#: tmp/wordpress/wp-admin/includes/dashboard.php:737 +msgid "[Pending]" +msgstr "" + +#. translators: 1: comment author, 2: notification if the comment is pending +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:698 +#: tmp/wordpress/wp-admin/includes/dashboard.php:698 +msgid "From %1$s %2$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:710 +#: tmp/old/wordpress/wp-includes/comment-template.php:1083 +#: tmp/wordpress/wp-admin/includes/dashboard.php:710 +#: tmp/wordpress/wp-includes/comment-template.php:1083 +msgid "Pingback" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:713 +#: tmp/old/wordpress/wp-includes/comment-template.php:1082 +#: tmp/wordpress/wp-admin/includes/dashboard.php:713 +#: tmp/wordpress/wp-includes/comment-template.php:1082 +msgid "Trackback" +msgstr "" + +#. translators: 1: type of comment, 2: post link, 3: notification if the +#. comment is pending +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:727 +#: tmp/wordpress/wp-admin/includes/dashboard.php:727 +msgctxt "dashboard" +msgid "%1$s on %2$s %3$s" +msgstr "" + +#. translators: 1: type of comment, 2: notification if the comment is pending +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:735 +#: tmp/wordpress/wp-admin/includes/dashboard.php:735 +msgctxt "dashboard" +msgid "%1$s %2$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:768 +#: tmp/wordpress/wp-admin/includes/dashboard.php:768 +msgid "Publishing Soon" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:775 +#: tmp/wordpress/wp-admin/includes/dashboard.php:775 +msgid "Recently Published" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:784 +#: tmp/wordpress/wp-admin/includes/dashboard.php:784 +msgid "No activity yet!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:845 +#: tmp/old/wordpress/wp-includes/script-loader.php:976 +#: tmp/wordpress/wp-admin/includes/dashboard.php:845 +#: tmp/wordpress/wp-includes/script-loader.php:976 +msgid "Today" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:847 +#: tmp/wordpress/wp-admin/includes/dashboard.php:847 +msgid "Tomorrow" +msgstr "" + +#. translators: date and time format for recent posts on the dashboard, from a +#. different calendar year, see https://secure.php.net/date +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:850 +#: tmp/wordpress/wp-admin/includes/dashboard.php:850 +msgid "M jS Y" +msgstr "" + +#. translators: date and time format for recent posts on the dashboard, see +#. https://secure.php.net/date +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:853 +#: tmp/wordpress/wp-admin/includes/dashboard.php:853 +msgid "M jS" +msgstr "" + +#. translators: 1: relative date, 2: time +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:863 +#: tmp/wordpress/wp-admin/includes/dashboard.php:863 +msgctxt "dashboard" +msgid "%1$s, %2$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:919 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-recent-comments.php:31 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-recent-comments.php:78 +#: tmp/wordpress/wp-admin/includes/dashboard.php:919 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-recent-comments.php:31 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-recent-comments.php:78 +msgid "Recent Comments" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:927 +#: tmp/wordpress/wp-admin/includes/dashboard.php:927 +msgid "View more comments" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:971 +#: tmp/wordpress/wp-admin/includes/dashboard.php:971 +msgid "Loading…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:971 +#: tmp/wordpress/wp-admin/includes/dashboard.php:971 +msgid "This widget requires JavaScript." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1057 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-rss.php:74 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1057 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-rss.php:74 +msgid "Unknown Feed" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1088 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1088 +msgid "https://wordpress.org/news/" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1097 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1097 +msgid "http://wordpress.org/news/feed/" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1106 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1106 +msgid "WordPress Blog" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1121 +#: tmp/old/wordpress/wp-admin/index.php:76 +#: tmp/old/wordpress/wp-admin/index.php:82 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1121 +#: tmp/wordpress/wp-admin/index.php:76 tmp/wordpress/wp-admin/index.php:82 +msgid "https://planet.wordpress.org/" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1130 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1130 +msgid "https://planet.wordpress.org/feed/" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1139 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1139 +msgid "Other WordPress News" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1260 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1260 +msgid "Popular Plugin" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1297 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1297 +msgid "Storage Space" +msgstr "" + +#. translators: number of megabytes +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1303 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1303 +msgid "%s MB Space Allowed" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1310 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1323 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1310 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1323 +msgid "Manage Uploads" +msgstr "" + +#. translators: 1: number of megabytes, 2: percentage +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1315 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1315 +msgid "%1$s MB (%2$s%%) Space Used" +msgstr "" + +#. translators: %s: browser name and link +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1339 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1339 +msgid "" +"It looks like you're using an insecure version of %s. Using an outdated " +"browser makes your computer unsafe. For the best WordPress experience, " +"please update your browser." +msgstr "" + +#. translators: %s: browser name and link +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1344 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1344 +msgid "" +"It looks like you're using an old version of %s. For the best WordPress " +"experience, please update your browser." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1363 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1363 +msgid "" +"Update %2$s or learn how " +"to browse happy" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1364 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1364 +msgid "Dismiss the browser warning panel" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1453 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1453 +msgid "Welcome to WordPress!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1454 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1454 +msgid "We’ve assembled some links to get you started:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1458 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1458 +msgid "Get Started" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1459 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1461 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1459 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1461 +msgid "Customize Your Site" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1463 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1463 +msgid "or, change your theme completely" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1467 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1467 +msgid "Next Steps" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1470 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1473 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1470 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1473 +msgid "Edit your front page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1471 +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1474 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1471 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1474 +msgid "Add additional pages" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1475 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1475 +msgid "Add a blog post" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1477 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1477 +msgid "Write your first blog post" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1478 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1478 +msgid "Add an About page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1480 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1480 +msgid "View your site" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1484 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1484 +msgid "More Actions" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1489 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1489 +msgid "Manage widgets or menus" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1492 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1492 +msgid "Manage widgets" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1494 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1494 +msgid "Manage menus" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1499 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1499 +msgid "Turn comments on or off" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1501 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1501 +msgid "Learn more about getting started" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/dashboard.php:1501 +#: tmp/wordpress/wp-admin/includes/dashboard.php:1501 +msgid "https://codex.wordpress.org/First_Steps_With_WordPress" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/deprecated.php:594 +#: tmp/wordpress/wp-admin/includes/deprecated.php:594 +msgid "Displaying %s–%s of %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:14 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:14 +msgid "Item added." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:15 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:15 +msgid "Item deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:16 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:16 +msgid "Item updated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:17 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:17 +msgid "Item not added." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:19 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:19 +msgid "Items deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:24 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:24 +msgid "Category added." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:25 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:25 +msgid "Category deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:26 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:26 +msgid "Category updated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:27 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:27 +msgid "Category not added." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:28 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:28 +msgid "Category not updated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:29 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:29 +msgid "Categories deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:34 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:34 +msgid "Tag added." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:35 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:35 +msgid "Tag deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:36 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:36 +msgid "Tag updated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:37 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:37 +msgid "Tag not added." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:38 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:38 +msgid "Tag not updated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/edit-tag-messages.php:39 +#: tmp/wordpress/wp-admin/includes/edit-tag-messages.php:39 +msgid "Tags deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:16 +#: tmp/wordpress/wp-admin/includes/file.php:16 +msgid "Theme Functions" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:17 +#: tmp/wordpress/wp-admin/includes/file.php:17 +msgid "Theme Header" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:18 +#: tmp/wordpress/wp-admin/includes/file.php:18 +msgid "Theme Footer" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:19 +#: tmp/old/wordpress/wp-admin/widgets.php:284 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/functions.php:315 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/functions.php:156 +#: tmp/old/wordpress/wp-includes/widgets.php:175 +#: tmp/wordpress/wp-admin/includes/file.php:19 +#: tmp/wordpress/wp-admin/widgets.php:284 +#: tmp/wordpress/wp-content/themes/twentyseventeen/functions.php:315 +#: tmp/wordpress/wp-content/themes/twentysixteen/functions.php:156 +#: tmp/wordpress/wp-includes/widgets.php:175 +msgid "Sidebar" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:21 +#: tmp/wordpress/wp-admin/includes/file.php:21 +msgid "Search Form" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:22 +#: tmp/wordpress/wp-admin/includes/file.php:22 +msgid "404 Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:23 +#: tmp/wordpress/wp-admin/includes/file.php:23 +msgid "Links Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:25 +#: tmp/wordpress/wp-admin/includes/file.php:25 +msgid "Main Index Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:26 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/archive.php:40 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/taxonomy-post_format.php:51 +#: tmp/old/wordpress/wp-includes/general-template.php:1509 +#: tmp/old/wordpress/wp-includes/theme-compat/sidebar.php:91 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-archives.php:31 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-archives.php:49 +#: tmp/wordpress/wp-admin/includes/file.php:26 +#: tmp/wordpress/wp-includes/general-template.php:1509 +#: tmp/wordpress/wp-includes/theme-compat/sidebar.php:91 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-archives.php:31 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-archives.php:49 +msgid "Archives" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:27 +#: tmp/wordpress/wp-admin/includes/file.php:27 +msgid "Author Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:28 +#: tmp/wordpress/wp-admin/includes/file.php:28 +msgid "Taxonomy Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:29 +#: tmp/wordpress/wp-admin/includes/file.php:29 +msgid "Category Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:30 +#: tmp/wordpress/wp-admin/includes/file.php:30 +msgid "Tag Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:31 +#: tmp/old/wordpress/wp-admin/includes/template.php:1721 +#: tmp/wordpress/wp-admin/includes/file.php:31 +#: tmp/wordpress/wp-admin/includes/template.php:1721 +msgid "Posts Page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:33 +#: tmp/wordpress/wp-admin/includes/file.php:33 +msgid "Date Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:35 +#: tmp/wordpress/wp-admin/includes/file.php:35 +msgid "Singular Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:36 +#: tmp/wordpress/wp-admin/includes/file.php:36 +msgid "Single Post" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:37 +#: tmp/wordpress/wp-admin/includes/file.php:37 +msgid "Single Page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:38 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4090 +#: tmp/wordpress/wp-admin/includes/file.php:38 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4090 +msgid "Static Front Page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:40 +#: tmp/wordpress/wp-admin/includes/file.php:40 +msgid "Attachment Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:41 +#: tmp/wordpress/wp-admin/includes/file.php:41 +msgid "Image Attachment Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:42 +#: tmp/wordpress/wp-admin/includes/file.php:42 +msgid "Video Attachment Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:43 +#: tmp/wordpress/wp-admin/includes/file.php:43 +msgid "Audio Attachment Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:44 +#: tmp/wordpress/wp-admin/includes/file.php:44 +msgid "Application Attachment Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:46 +#: tmp/wordpress/wp-admin/includes/file.php:46 +msgid "Embed Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:47 +#: tmp/wordpress/wp-admin/includes/file.php:47 +msgid "Embed 404 Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:48 +#: tmp/wordpress/wp-admin/includes/file.php:48 +msgid "Embed Content Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:49 +#: tmp/wordpress/wp-admin/includes/file.php:49 +msgid "Embed Header Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:50 +#: tmp/wordpress/wp-admin/includes/file.php:50 +msgid "Embed Footer Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:52 +#: tmp/old/wordpress/wp-admin/includes/file.php:60 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:462 +#: tmp/wordpress/wp-admin/includes/file.php:52 +#: tmp/wordpress/wp-admin/includes/file.php:60 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:462 +msgid "Stylesheet" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:53 +#: tmp/wordpress/wp-admin/includes/file.php:53 +msgid "Visual Editor Stylesheet" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:54 +#: tmp/wordpress/wp-admin/includes/file.php:54 +msgid "Visual Editor RTL Stylesheet" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:55 +#: tmp/wordpress/wp-admin/includes/file.php:55 +msgid "RTL Stylesheet" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:57 +#: tmp/wordpress/wp-admin/includes/file.php:57 +msgid "my-hacks.php (legacy hacks support)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:58 +#: tmp/wordpress/wp-admin/includes/file.php:58 +msgid ".htaccess (for rewrite rules )" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:61 +#: tmp/wordpress/wp-admin/includes/file.php:61 +msgid "Comments Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:62 +#: tmp/wordpress/wp-admin/includes/file.php:62 +msgid "Popup Comments Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:63 +#: tmp/wordpress/wp-admin/includes/file.php:63 +msgid "Popup Comments" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:88 +#: tmp/wordpress/wp-admin/includes/file.php:88 +msgid "%s Page Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:220 +#: tmp/old/wordpress/wp-admin/includes/file.php:226 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4578 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4591 +#: tmp/wordpress/wp-admin/includes/file.php:220 +#: tmp/wordpress/wp-admin/includes/file.php:226 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4578 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4591 +msgid "Sorry, that file cannot be edited." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:295 +#: tmp/wordpress/wp-admin/includes/file.php:295 +msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:296 +#: tmp/wordpress/wp-admin/includes/file.php:296 +msgid "" +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " +"the HTML form." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:297 +#: tmp/wordpress/wp-admin/includes/file.php:297 +msgid "The uploaded file was only partially uploaded." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:298 +#: tmp/wordpress/wp-admin/includes/file.php:298 +msgid "No file was uploaded." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:300 +#: tmp/wordpress/wp-admin/includes/file.php:300 +msgid "Missing a temporary folder." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:301 +#: tmp/wordpress/wp-admin/includes/file.php:301 +msgid "Failed to write file to disk." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:302 +#: tmp/wordpress/wp-admin/includes/file.php:302 +msgid "File upload stopped by extension." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:316 +#: tmp/wordpress/wp-admin/includes/file.php:316 +msgid "Invalid form submission." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:327 +#: tmp/wordpress/wp-admin/includes/file.php:327 +msgid "File is empty. Please upload something more substantial." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:329 +#: tmp/old/wordpress/wp-admin/includes/import.php:84 +#: tmp/wordpress/wp-admin/includes/file.php:329 +#: tmp/wordpress/wp-admin/includes/import.php:84 +msgid "" +"File is empty. Please upload something more substantial. This error could " +"also be caused by uploads being disabled in your php.ini or by post_max_size " +"being defined as smaller than upload_max_filesize in php.ini." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:337 +#: tmp/wordpress/wp-admin/includes/file.php:337 +msgid "Specified file failed upload test." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:352 +#: tmp/wordpress/wp-admin/includes/file.php:352 +msgid "Sorry, this file type is not permitted for security reasons." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:387 +#: tmp/wordpress/wp-admin/includes/file.php:387 +msgid "The uploaded file could not be moved to %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:495 +#: tmp/wordpress/wp-admin/includes/file.php:495 +msgid "Invalid URL Provided." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:501 +#: tmp/wordpress/wp-admin/includes/file.php:501 +msgid "Could not create Temporary file." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:549 +#: tmp/wordpress/wp-admin/includes/file.php:549 +msgid "" +"The checksum of the file (%1$s) does not match the expected checksum value " +"(%2$s)." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:639 +#: tmp/old/wordpress/wp-admin/includes/file.php:750 +#: tmp/wordpress/wp-admin/includes/file.php:639 +#: tmp/wordpress/wp-admin/includes/file.php:750 +msgid "Incompatible Archive." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:645 +#: tmp/old/wordpress/wp-admin/includes/file.php:699 +#: tmp/wordpress/wp-admin/includes/file.php:645 +#: tmp/wordpress/wp-admin/includes/file.php:699 +msgid "Could not retrieve file from archive." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:709 +#: tmp/wordpress/wp-admin/includes/file.php:709 +msgid "Could not extract file from archive." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:712 +#: tmp/old/wordpress/wp-admin/includes/file.php:811 +#: tmp/old/wordpress/wp-admin/includes/file.php:846 +#: tmp/old/wordpress/wp-admin/includes/update-core.php:1057 +#: tmp/old/wordpress/wp-admin/includes/update-core.php:1168 +#: tmp/wordpress/wp-admin/includes/file.php:712 +#: tmp/wordpress/wp-admin/includes/file.php:811 +#: tmp/wordpress/wp-admin/includes/file.php:846 +#: tmp/wordpress/wp-admin/includes/update-core.php:1057 +#: tmp/wordpress/wp-admin/includes/update-core.php:1168 +msgid "Could not copy file." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:753 +#: tmp/wordpress/wp-admin/includes/file.php:753 +msgid "Empty archive." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1146 +#: tmp/wordpress/wp-admin/includes/file.php:1146 +msgid "" +"ERROR: There was an error connecting to the server, Please " +"verify the settings are correct." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1154 +#: tmp/wordpress/wp-admin/includes/file.php:1154 +msgid "FTP" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1156 +#: tmp/wordpress/wp-admin/includes/file.php:1156 +msgid "FTPS (SSL)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1158 +#: tmp/wordpress/wp-admin/includes/file.php:1158 +msgid "SSH2" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1184 +#: tmp/wordpress/wp-admin/includes/file.php:1184 +msgid "Connection Information" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1189 +#: tmp/wordpress/wp-admin/includes/file.php:1189 +msgid "" +"To perform the requested action, WordPress needs to access your web server." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1193 +#: tmp/wordpress/wp-admin/includes/file.php:1193 +msgid "Please enter your FTP or SSH credentials to proceed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1194 +#: tmp/wordpress/wp-admin/includes/file.php:1194 +msgid "FTP/SSH Username" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1195 +#: tmp/wordpress/wp-admin/includes/file.php:1195 +msgid "FTP/SSH Password" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1197 +#: tmp/wordpress/wp-admin/includes/file.php:1197 +msgid "Please enter your FTP credentials to proceed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1198 +#: tmp/wordpress/wp-admin/includes/file.php:1198 +msgid "FTP Username" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1199 +#: tmp/wordpress/wp-admin/includes/file.php:1199 +msgid "FTP Password" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1203 +#: tmp/wordpress/wp-admin/includes/file.php:1203 +msgid "" +"If you do not remember your credentials, you should contact your web host." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1206 +#: tmp/wordpress/wp-admin/includes/file.php:1206 +msgid "Hostname" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1207 +#: tmp/wordpress/wp-admin/includes/file.php:1207 +msgid "example: www.wordpress.org" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1219 +#: tmp/wordpress/wp-admin/includes/file.php:1219 +msgid "This password will not be stored on the server." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1223 +#: tmp/wordpress/wp-admin/includes/file.php:1223 +msgid "Connection Type" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1243 +#: tmp/wordpress/wp-admin/includes/file.php:1243 +msgid "Authentication Keys" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1245 +#: tmp/wordpress/wp-admin/includes/file.php:1245 +msgid "Public Key:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1249 +#: tmp/wordpress/wp-admin/includes/file.php:1249 +msgid "Private Key:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1252 +#: tmp/wordpress/wp-admin/includes/file.php:1252 +msgid "" +"Enter the location on the server where the public and private keys are " +"located. If a passphrase is needed, enter that in the password field above." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/file.php:1264 +#: tmp/wordpress/wp-admin/includes/file.php:1264 +msgid "Proceed" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:26 +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:754 +#: tmp/wordpress/wp-admin/includes/image-edit.php:26 +#: tmp/wordpress/wp-admin/includes/image-edit.php:754 +msgid "Image data does not exist. Please re-upload the image." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:49 +#: tmp/wordpress/wp-admin/includes/image-edit.php:49 +msgid "Scale Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:50 +#: tmp/wordpress/wp-admin/includes/image-edit.php:50 +msgid "Scale Image Help" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:52 +#: tmp/wordpress/wp-admin/includes/image-edit.php:52 +msgid "" +"You can proportionally scale the original image. For best results, scaling " +"should be done before you crop, flip, or rotate. Images can only be scaled " +"down, not up." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:55 +#: tmp/wordpress/wp-admin/includes/image-edit.php:55 +msgid "Original dimensions %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:60 +#: tmp/wordpress/wp-admin/includes/image-edit.php:60 +msgid "New dimensions:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:62 +#: tmp/wordpress/wp-admin/includes/image-edit.php:62 +msgid "scale width" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:66 +#: tmp/wordpress/wp-admin/includes/image-edit.php:66 +msgid "scale height" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:70 +#: tmp/wordpress/wp-admin/includes/image-edit.php:70 +msgid "Scale" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:84 +#: tmp/wordpress/wp-admin/includes/image-edit.php:84 +msgid "Discard any changes and restore the original image." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:87 +#: tmp/wordpress/wp-admin/includes/image-edit.php:87 +msgid "Previously edited copies of the image will not be deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:91 +#: tmp/wordpress/wp-admin/includes/image-edit.php:91 +msgid "Restore image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:101 +#: tmp/wordpress/wp-admin/includes/image-edit.php:101 +msgid "Image Crop" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:102 +#: tmp/wordpress/wp-admin/includes/image-edit.php:102 +msgid "Image Crop Help" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:105 +#: tmp/wordpress/wp-admin/includes/image-edit.php:105 +msgid "To crop the image, click on it and drag to make your selection." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:107 +#: tmp/wordpress/wp-admin/includes/image-edit.php:107 +msgid "Crop Aspect Ratio" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:108 +#: tmp/wordpress/wp-admin/includes/image-edit.php:108 +msgid "" +"The aspect ratio is the relationship between the width and height. You can " +"preserve the aspect ratio by holding down the shift key while resizing your " +"selection. Use the input box to specify the aspect ratio, e.g. 1:1 (square), " +"4:3, 16:9, etc." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:110 +#: tmp/wordpress/wp-admin/includes/image-edit.php:110 +msgid "Crop Selection" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:111 +#: tmp/wordpress/wp-admin/includes/image-edit.php:111 +msgid "" +"Once you have made your selection, you can adjust it by entering the size in " +"pixels. The minimum selection size is the thumbnail size as set in the Media " +"settings." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:116 +#: tmp/wordpress/wp-admin/includes/image-edit.php:116 +msgid "Aspect ratio:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:118 +#: tmp/wordpress/wp-admin/includes/image-edit.php:118 +msgid "crop ratio width" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:122 +#: tmp/wordpress/wp-admin/includes/image-edit.php:122 +msgid "crop ratio height" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:129 +#: tmp/wordpress/wp-admin/includes/image-edit.php:129 +msgid "Selection:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:131 +#: tmp/wordpress/wp-admin/includes/image-edit.php:131 +msgid "selection width" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:135 +#: tmp/wordpress/wp-admin/includes/image-edit.php:135 +msgid "selection height" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:149 +#: tmp/wordpress/wp-admin/includes/image-edit.php:149 +msgid "Thumbnail Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:150 +#: tmp/wordpress/wp-admin/includes/image-edit.php:150 +msgid "Thumbnail Settings Help" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:151 +#: tmp/wordpress/wp-admin/includes/image-edit.php:151 +msgid "" +"You can edit the image while preserving the thumbnail. For example, you may " +"wish to have a square thumbnail that displays just a section of the image." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:156 +#: tmp/wordpress/wp-admin/includes/image-edit.php:156 +msgid "Current thumbnail" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:161 +#: tmp/wordpress/wp-admin/includes/image-edit.php:161 +msgid "Apply changes to:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:165 +#: tmp/wordpress/wp-admin/includes/image-edit.php:165 +msgid "All image sizes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:173 +#: tmp/wordpress/wp-admin/includes/image-edit.php:173 +msgid "All sizes except thumbnail" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:185 +#: tmp/wordpress/wp-admin/includes/image-edit.php:185 +msgid "Crop" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:191 +#: tmp/wordpress/wp-admin/includes/image-edit.php:191 +msgid "Rotate counter-clockwise" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:192 +#: tmp/wordpress/wp-admin/includes/image-edit.php:192 +msgid "Rotate clockwise" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:194 +#: tmp/wordpress/wp-admin/includes/image-edit.php:194 +msgid "Image rotation is not supported by your web host." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:200 +#: tmp/wordpress/wp-admin/includes/image-edit.php:200 +msgid "Flip vertically" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:201 +#: tmp/wordpress/wp-admin/includes/image-edit.php:201 +msgid "Flip horizontally" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:204 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:875 +#: tmp/wordpress/wp-admin/includes/image-edit.php:204 +#: tmp/wordpress/wp-includes/class-wp-editor.php:875 +msgid "Redo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:227 +#: tmp/wordpress/wp-admin/includes/image-edit.php:227 +msgid "" +"There are unsaved changes that will be lost. 'OK' to continue, 'Cancel' to " +"return to the Image Editor." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:259 +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:324 +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:466 +#: tmp/wordpress/wp-admin/includes/image-edit.php:259 +#: tmp/wordpress/wp-admin/includes/image-edit.php:324 +#: tmp/wordpress/wp-admin/includes/image-edit.php:466 +msgid "$image needs to be an WP_Image_Editor object" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:631 +#: tmp/wordpress/wp-admin/includes/image-edit.php:631 +msgid "Cannot load image metadata." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:687 +#: tmp/wordpress/wp-admin/includes/image-edit.php:687 +msgid "Cannot save image metadata." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:692 +#: tmp/wordpress/wp-admin/includes/image-edit.php:692 +msgid "Image metadata is inconsistent." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:694 +#: tmp/wordpress/wp-admin/includes/image-edit.php:694 +msgid "Image restored successfully." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:715 +#: tmp/wordpress/wp-admin/includes/image-edit.php:715 +msgid "Unable to create new image." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:738 +#: tmp/wordpress/wp-admin/includes/image-edit.php:738 +msgid "" +"Error while saving the scaled image. Please reload the page and try again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:746 +#: tmp/wordpress/wp-admin/includes/image-edit.php:746 +msgid "Nothing to save, the image has not changed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:794 +#: tmp/wordpress/wp-admin/includes/image-edit.php:794 +msgid "Unable to save the image." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/image-edit.php:908 +#: tmp/wordpress/wp-admin/includes/image-edit.php:908 +msgid "Image saved" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/import.php:164 +#: tmp/wordpress/wp-admin/includes/import.php:164 +msgid "Blogger" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/import.php:165 +#: tmp/wordpress/wp-admin/includes/import.php:165 +msgid "Import posts, comments, and users from a Blogger blog." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/import.php:170 +#: tmp/old/wordpress/wp-admin/tools.php:21 +#: tmp/old/wordpress/wp-admin/tools.php:103 +#: tmp/wordpress/wp-admin/includes/import.php:170 +#: tmp/wordpress/wp-admin/tools.php:21 tmp/wordpress/wp-admin/tools.php:103 +msgid "Categories and Tags Converter" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/import.php:171 +#: tmp/wordpress/wp-admin/includes/import.php:171 +msgid "Convert existing categories to tags or tags to categories, selectively." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/import.php:176 +#: tmp/wordpress/wp-admin/includes/import.php:176 +msgid "LiveJournal" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/import.php:177 +#: tmp/wordpress/wp-admin/includes/import.php:177 +msgid "Import posts from LiveJournal using their API." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/import.php:182 +#: tmp/wordpress/wp-admin/includes/import.php:182 +msgid "Movable Type and TypePad" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/import.php:183 +#: tmp/wordpress/wp-admin/includes/import.php:183 +msgid "Import posts and comments from a Movable Type or TypePad blog." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/import.php:188 +#: tmp/wordpress/wp-admin/includes/import.php:188 +msgid "Blogroll" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/import.php:189 +#: tmp/wordpress/wp-admin/includes/import.php:189 +msgid "Import links in OPML format." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/import.php:194 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-rss.php:31 +#: tmp/wordpress/wp-admin/includes/import.php:194 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-rss.php:31 +msgid "RSS" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/import.php:195 +#: tmp/wordpress/wp-admin/includes/import.php:195 +msgid "Import posts from an RSS feed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/import.php:200 +#: tmp/wordpress/wp-admin/includes/import.php:200 +msgid "Tumblr" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/import.php:201 +#: tmp/wordpress/wp-admin/includes/import.php:201 +msgid "Import posts & media from Tumblr using their API." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/import.php:207 +#: tmp/wordpress/wp-admin/includes/import.php:207 +msgid "" +"Import posts, pages, comments, custom fields, categories, and tags from a " +"WordPress export file." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:18 +#: tmp/wordpress/wp-admin/includes/media.php:18 +msgid "From Computer" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:19 +#: tmp/wordpress/wp-admin/includes/media.php:19 +msgid "From URL" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:20 +#: tmp/wordpress/wp-admin/includes/media.php:20 +msgid "Gallery" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:21 +#: tmp/old/wordpress/wp-admin/upload.php:70 +#: tmp/old/wordpress/wp-admin/upload.php:180 +#: tmp/old/wordpress/wp-includes/media.php:3422 +#: tmp/wordpress/wp-admin/includes/media.php:21 +#: tmp/wordpress/wp-admin/upload.php:70 tmp/wordpress/wp-admin/upload.php:180 +#: tmp/wordpress/wp-includes/media.php:3422 +msgid "Media Library" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:62 +#: tmp/wordpress/wp-admin/includes/media.php:62 +msgid "Gallery (%s)" +msgstr "" + +#. translators: 1: audio track title, 2: album title, 3: artist name +#: tmp/old/wordpress/wp-admin/includes/media.php:308 +#: tmp/wordpress/wp-admin/includes/media.php:308 +msgid "\"%1$s\" from %2$s by %3$s." +msgstr "" + +#. translators: 1: audio track title, 2: album title +#: tmp/old/wordpress/wp-admin/includes/media.php:311 +#: tmp/wordpress/wp-admin/includes/media.php:311 +msgid "\"%1$s\" from %2$s." +msgstr "" + +#. translators: 1: audio track title, 2: artist name +#: tmp/old/wordpress/wp-admin/includes/media.php:314 +#: tmp/wordpress/wp-admin/includes/media.php:314 +msgid "\"%1$s\" by %2$s." +msgstr "" + +#. translators: 1: audio track title +#: tmp/old/wordpress/wp-admin/includes/media.php:317 +#: tmp/wordpress/wp-admin/includes/media.php:317 +msgid "\"%s\"." +msgstr "" + +#. translators: 1: audio album title, 2: artist name +#: tmp/old/wordpress/wp-admin/includes/media.php:324 +#: tmp/wordpress/wp-admin/includes/media.php:324 +msgid "%1$s by %2$s." +msgstr "" + +#. translators: Audio file track information. 1: Year of audio track release +#: tmp/old/wordpress/wp-admin/includes/media.php:337 +#: tmp/wordpress/wp-admin/includes/media.php:337 +msgid "Released: %d." +msgstr "" + +#. translators: Audio file track information. 1: Audio track number, 2: Total +#. audio tracks +#: tmp/old/wordpress/wp-admin/includes/media.php:344 +#: tmp/wordpress/wp-admin/includes/media.php:344 +msgid "Track %1$s of %2$s." +msgstr "" + +#. translators: Audio file track information. 1: Audio track number +#: tmp/old/wordpress/wp-admin/includes/media.php:347 +#: tmp/wordpress/wp-admin/includes/media.php:347 +msgid "Track %1$s." +msgstr "" + +#. translators: Audio file genre information. 1: Audio genre name +#: tmp/old/wordpress/wp-admin/includes/media.php:353 +#: tmp/wordpress/wp-admin/includes/media.php:353 +msgid "Genre: %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:463 +#: tmp/wordpress/wp-admin/includes/media.php:463 +msgid "Uploads" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:463 +#: tmp/old/wordpress/wp-admin/includes/template.php:1591 +#: tmp/old/wordpress/wp-admin/install.php:80 +#: tmp/old/wordpress/wp-admin/maint/repair.php:26 +#: tmp/old/wordpress/wp-admin/setup-config.php:102 +#: tmp/old/wordpress/wp-admin/upgrade.php:71 +#: tmp/wordpress/wp-admin/includes/media.php:463 +#: tmp/wordpress/wp-admin/includes/template.php:1591 +#: tmp/wordpress/wp-admin/install.php:80 +#: tmp/wordpress/wp-admin/maint/repair.php:26 +#: tmp/wordpress/wp-admin/setup-config.php:102 +#: tmp/wordpress/wp-admin/upgrade.php:71 +msgid "WordPress" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:827 +#: tmp/old/wordpress/wp-includes/media-template.php:337 +#: tmp/old/wordpress/wp-includes/media-template.php:501 +#: tmp/wordpress/wp-admin/includes/media.php:827 +#: tmp/wordpress/wp-includes/media-template.php:337 +#: tmp/wordpress/wp-includes/media-template.php:501 +msgid "Saved." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:868 +#: tmp/wordpress/wp-admin/includes/media.php:868 +msgid "Invalid image URL" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1048 +#: tmp/old/wordpress/wp-includes/media-template.php:682 +#: tmp/old/wordpress/wp-includes/media-template.php:756 +#: tmp/old/wordpress/wp-includes/media-template.php:931 +#: tmp/wordpress/wp-admin/includes/media.php:1048 +#: tmp/wordpress/wp-includes/media-template.php:682 +#: tmp/wordpress/wp-includes/media-template.php:756 +#: tmp/wordpress/wp-includes/media-template.php:931 +msgid "Size" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1080 +#: tmp/old/wordpress/wp-admin/includes/media.php:1237 +#: tmp/wordpress/wp-admin/includes/media.php:1080 +#: tmp/wordpress/wp-admin/includes/media.php:1237 +msgid "File URL" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1081 +#: tmp/wordpress/wp-admin/includes/media.php:1081 +msgid "Attachment Post URL" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1159 +#: tmp/wordpress/wp-admin/includes/media.php:1159 +msgid "Empty Title filled from filename." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1217 +#: tmp/old/wordpress/wp-admin/includes/media.php:2802 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1002 +#: tmp/old/wordpress/wp-includes/media-template.php:395 +#: tmp/old/wordpress/wp-includes/media-template.php:576 +#: tmp/old/wordpress/wp-includes/media-template.php:834 +#: tmp/old/wordpress/wp-includes/media-template.php:899 +#: tmp/wordpress/wp-admin/includes/media.php:1217 +#: tmp/wordpress/wp-admin/includes/media.php:2802 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1002 +#: tmp/wordpress/wp-includes/media-template.php:395 +#: tmp/wordpress/wp-includes/media-template.php:576 +#: tmp/wordpress/wp-includes/media-template.php:834 +#: tmp/wordpress/wp-includes/media-template.php:899 +msgid "Caption" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1227 +#: tmp/wordpress/wp-admin/includes/media.php:1227 +msgid "Link URL" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1230 +#: tmp/old/wordpress/wp-admin/includes/media.php:2614 +#: tmp/wordpress/wp-admin/includes/media.php:1230 +#: tmp/wordpress/wp-admin/includes/media.php:2614 +msgid "Enter a link URL or click above for presets." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1241 +#: tmp/wordpress/wp-admin/includes/media.php:1241 +msgid "Location of the uploaded file." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1281 +#: tmp/old/wordpress/wp-admin/includes/media.php:2586 +#: tmp/old/wordpress/wp-admin/includes/media.php:2809 +#: tmp/old/wordpress/wp-includes/media-template.php:905 +#: tmp/wordpress/wp-admin/includes/media.php:1281 +#: tmp/wordpress/wp-admin/includes/media.php:2586 +#: tmp/wordpress/wp-admin/includes/media.php:2809 +#: tmp/wordpress/wp-includes/media-template.php:905 +msgid "Alternative Text" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1282 +#: tmp/old/wordpress/wp-admin/includes/media.php:2589 +#: tmp/wordpress/wp-admin/includes/media.php:1282 +#: tmp/wordpress/wp-admin/includes/media.php:2589 +msgid "Alt text for the image, e.g. “The Mona Lisa”" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1286 +#: tmp/old/wordpress/wp-admin/includes/media.php:2593 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1003 +#: tmp/old/wordpress/wp-includes/media-template.php:609 +#: tmp/wordpress/wp-admin/includes/media.php:1286 +#: tmp/wordpress/wp-admin/includes/media.php:2593 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1003 +#: tmp/wordpress/wp-includes/media-template.php:609 +msgid "Alignment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1392 +#: tmp/old/wordpress/wp-admin/includes/media.php:2231 +#: tmp/old/wordpress/wp-includes/script-loader.php:413 +#: tmp/wordpress/wp-admin/includes/media.php:1392 +#: tmp/wordpress/wp-admin/includes/media.php:2231 +#: tmp/wordpress/wp-includes/script-loader.php:413 +msgid "Show" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1393 +#: tmp/old/wordpress/wp-admin/includes/media.php:2232 +#: tmp/old/wordpress/wp-admin/install.php:146 +#: tmp/old/wordpress/wp-admin/user-edit.php:550 +#: tmp/old/wordpress/wp-admin/user-new.php:442 +#: tmp/old/wordpress/wp-includes/script-loader.php:414 +#: tmp/wordpress/wp-admin/includes/media.php:1393 +#: tmp/wordpress/wp-admin/includes/media.php:2232 +#: tmp/wordpress/wp-admin/install.php:146 +#: tmp/wordpress/wp-admin/user-edit.php:550 +#: tmp/wordpress/wp-admin/user-new.php:442 +#: tmp/wordpress/wp-includes/script-loader.php:414 +msgid "Hide" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1452 +#: tmp/old/wordpress/wp-admin/includes/media.php:2733 +#: tmp/old/wordpress/wp-includes/media-template.php:327 +#: tmp/old/wordpress/wp-includes/media-template.php:525 +#: tmp/old/wordpress/wp-includes/media.php:3475 +#: tmp/wordpress/wp-admin/includes/media.php:1452 +#: tmp/wordpress/wp-admin/includes/media.php:2733 +#: tmp/wordpress/wp-includes/media-template.php:327 +#: tmp/wordpress/wp-includes/media-template.php:525 +#: tmp/wordpress/wp-includes/media.php:3475 +msgid "Edit Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1471 +#: tmp/old/wordpress/wp-admin/includes/media.php:2866 +#: tmp/old/wordpress/wp-includes/media-template.php:341 +#: tmp/wordpress/wp-admin/includes/media.php:1471 +#: tmp/wordpress/wp-admin/includes/media.php:2866 +#: tmp/wordpress/wp-includes/media-template.php:341 +msgid "File type:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1472 +#: tmp/wordpress/wp-admin/includes/media.php:1472 +msgid "Upload date:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1474 +#: tmp/old/wordpress/wp-admin/includes/media.php:2966 +#: tmp/old/wordpress/wp-includes/media-template.php:347 +#: tmp/wordpress/wp-admin/includes/media.php:1474 +#: tmp/wordpress/wp-admin/includes/media.php:2966 +#: tmp/wordpress/wp-includes/media-template.php:347 +msgid "Dimensions:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1483 +#: tmp/old/wordpress/wp-admin/includes/media.php:1755 +#: tmp/old/wordpress/wp-admin/includes/media.php:2565 +#: tmp/old/wordpress/wp-includes/comment-template.php:2204 +#: tmp/wordpress/wp-admin/includes/media.php:1483 +#: tmp/wordpress/wp-admin/includes/media.php:1755 +#: tmp/wordpress/wp-admin/includes/media.php:2565 +#: tmp/wordpress/wp-includes/comment-template.php:2204 +msgid "Required fields are marked %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1493 +#: tmp/old/wordpress/wp-admin/includes/media.php:2619 +#: tmp/old/wordpress/wp-admin/includes/media.php:2625 +#: tmp/wordpress/wp-admin/includes/media.php:1493 +#: tmp/wordpress/wp-admin/includes/media.php:2619 +#: tmp/wordpress/wp-admin/includes/media.php:2625 +msgid "Insert into Post" +msgstr "" + +#. translators: %s: file name +#: tmp/old/wordpress/wp-admin/includes/media.php:1504 +#: tmp/wordpress/wp-admin/includes/media.php:1504 +msgid "You are about to delete %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1804 +#: tmp/old/wordpress/wp-includes/media-template.php:194 +#: tmp/wordpress/wp-admin/includes/media.php:1804 +#: tmp/wordpress/wp-includes/media-template.php:194 +msgid "" +"The web browser on your device cannot be used to upload files. You may be " +"able to use the native app for your device instead." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1926 +#: tmp/wordpress/wp-admin/includes/media.php:1926 +msgid "Drop files here" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1927 +#: tmp/old/wordpress/wp-includes/media-template.php:204 +#: tmp/wordpress/wp-admin/includes/media.php:1927 +#: tmp/wordpress/wp-includes/media-template.php:204 +msgctxt "Uploader: Drop files here - or - Select Files" +msgid "or" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1928 +#: tmp/old/wordpress/wp-includes/media-template.php:205 +#: tmp/wordpress/wp-admin/includes/media.php:1928 +#: tmp/wordpress/wp-includes/media-template.php:205 +msgid "Select Files" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:1967 +#: tmp/old/wordpress/wp-includes/media-template.php:233 +#: tmp/wordpress/wp-admin/includes/media.php:1967 +#: tmp/wordpress/wp-includes/media-template.php:233 +msgid "Maximum upload file size: %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2017 +#: tmp/wordpress/wp-admin/includes/media.php:2017 +msgid "Add media files from your computer" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2044 +#: tmp/old/wordpress/wp-admin/includes/media.php:2255 +#: tmp/old/wordpress/wp-admin/includes/media.php:2522 +#: tmp/wordpress/wp-admin/includes/media.php:2044 +#: tmp/wordpress/wp-admin/includes/media.php:2255 +#: tmp/wordpress/wp-admin/includes/media.php:2522 +msgid "Save all changes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2080 +#: tmp/wordpress/wp-admin/includes/media.php:2080 +msgid "Insert media from another website" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2230 +#: tmp/wordpress/wp-admin/includes/media.php:2230 +msgid "All Tabs:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2234 +#: tmp/wordpress/wp-admin/includes/media.php:2234 +msgid "Sort Order:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2235 +#: tmp/old/wordpress/wp-admin/includes/media.php:2303 +#: tmp/wordpress/wp-admin/includes/media.php:2235 +#: tmp/wordpress/wp-admin/includes/media.php:2303 +msgid "Ascending" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2236 +#: tmp/old/wordpress/wp-admin/includes/media.php:2306 +#: tmp/wordpress/wp-admin/includes/media.php:2236 +#: tmp/wordpress/wp-admin/includes/media.php:2306 +msgid "Descending" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2237 +#: tmp/wordpress/wp-admin/includes/media.php:2237 +msgctxt "verb" +msgid "Clear" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2262 +#: tmp/old/wordpress/wp-includes/media-template.php:712 +#: tmp/wordpress/wp-admin/includes/media.php:2262 +#: tmp/wordpress/wp-includes/media-template.php:712 +msgid "Gallery Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2267 +#: tmp/wordpress/wp-admin/includes/media.php:2267 +msgid "Link thumbnails to:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2272 +#: tmp/wordpress/wp-admin/includes/media.php:2272 +msgid "Image File" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2275 +#: tmp/old/wordpress/wp-includes/media-template.php:667 +#: tmp/old/wordpress/wp-includes/media-template.php:725 +#: tmp/old/wordpress/wp-includes/media-template.php:974 +#: tmp/wordpress/wp-admin/includes/media.php:2275 +#: tmp/wordpress/wp-includes/media-template.php:667 +#: tmp/wordpress/wp-includes/media-template.php:725 +#: tmp/wordpress/wp-includes/media-template.php:974 +msgid "Attachment Page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2282 +#: tmp/wordpress/wp-admin/includes/media.php:2282 +msgid "Order images by:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2287 +#: tmp/wordpress/wp-admin/includes/media.php:2287 +msgid "Menu order" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2289 +#: tmp/wordpress/wp-admin/includes/media.php:2289 +msgid "Date/Time" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2290 +#: tmp/wordpress/wp-admin/includes/media.php:2290 +msgid "Random" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2298 +#: tmp/wordpress/wp-admin/includes/media.php:2298 +msgid "Order:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2313 +#: tmp/wordpress/wp-admin/includes/media.php:2313 +msgid "Gallery columns:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2333 +#: tmp/old/wordpress/wp-includes/media.php:3465 +#: tmp/wordpress/wp-admin/includes/media.php:2333 +#: tmp/wordpress/wp-includes/media.php:3465 +msgid "Insert gallery" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2334 +#: tmp/wordpress/wp-admin/includes/media.php:2334 +msgid "Update gallery settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2418 +#: tmp/wordpress/wp-admin/includes/media.php:2418 +msgid "All Types" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2450 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:361 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:646 +#: tmp/wordpress/wp-admin/includes/media.php:2450 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:361 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:646 +msgid "«" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2451 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:362 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:647 +#: tmp/wordpress/wp-admin/includes/media.php:2451 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:362 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:647 +msgid "»" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2492 +#: tmp/wordpress/wp-admin/includes/media.php:2492 +msgid "Filter »" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2543 +#: tmp/wordpress/wp-admin/includes/media.php:2543 +msgid "Image Caption" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2564 +#: tmp/old/wordpress/wp-includes/script-loader.php:267 +#: tmp/wordpress/wp-admin/includes/media.php:2564 +#: tmp/wordpress/wp-includes/script-loader.php:267 +msgid "Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2564 +#: tmp/wordpress/wp-admin/includes/media.php:2564 +msgid "Audio, Video, or Other File" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2582 +#: tmp/wordpress/wp-admin/includes/media.php:2582 +msgid "Link text, e.g. “Ransom Demands (PDF)”" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2608 +#: tmp/wordpress/wp-admin/includes/media.php:2608 +msgid "Link Image To:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2613 +#: tmp/wordpress/wp-admin/includes/media.php:2613 +msgid "Link to image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2650 +#: tmp/wordpress/wp-admin/includes/media.php:2650 +msgid "" +"You are using the multi-file uploader. Problems? Try the browser uploader instead." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2663 +#: tmp/wordpress/wp-admin/includes/media.php:2663 +msgid "" +"You are using the browser’s built-in file uploader. The WordPress " +"uploader includes multiple file selection and drag and drop capability. Switch to the multi-file uploader." +msgstr "" + +#. translators: %1$s is link start tag, %2$s is link end tag, %3$d is width, +#. %4$d is height +#: tmp/old/wordpress/wp-admin/includes/media.php:2693 +#: tmp/wordpress/wp-admin/includes/media.php:2693 +msgid "" +"Scale images to match the large size selected in %1$simage options%2$s (%3$d " +"× %4$d)." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2705 +#: tmp/wordpress/wp-admin/includes/media.php:2705 +msgid "Sorry, you have used all of your storage quota of %s MB." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2827 +#: tmp/wordpress/wp-admin/includes/media.php:2827 +msgid "Displayed on attachment pages." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2859 +#: tmp/wordpress/wp-admin/includes/media.php:2859 +msgid "File URL:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2891 +#: tmp/old/wordpress/wp-includes/media-template.php:344 +#: tmp/wordpress/wp-admin/includes/media.php:2891 +#: tmp/wordpress/wp-includes/media-template.php:344 +msgid "File size:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2909 +#: tmp/old/wordpress/wp-includes/media-template.php:352 +#: tmp/old/wordpress/wp-includes/media-template.php:530 +#: tmp/wordpress/wp-admin/includes/media.php:2909 +#: tmp/wordpress/wp-includes/media-template.php:352 +#: tmp/wordpress/wp-includes/media-template.php:530 +msgid "Length:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2910 +#: tmp/old/wordpress/wp-includes/media-template.php:357 +#: tmp/wordpress/wp-admin/includes/media.php:2910 +#: tmp/wordpress/wp-includes/media-template.php:357 +msgid "Bitrate:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2947 +#: tmp/wordpress/wp-admin/includes/media.php:2947 +msgid "Audio Format:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/media.php:2948 +#: tmp/wordpress/wp-admin/includes/media.php:2948 +msgid "Audio Codec:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/menu.php:342 +#: tmp/old/wordpress/wp-admin/my-sites.php:16 +#: tmp/old/wordpress/wp-admin/network/index.php:17 +#: tmp/old/wordpress/wp-admin/network/settings.php:17 +#: tmp/old/wordpress/wp-admin/network/site-info.php:46 +#: tmp/old/wordpress/wp-admin/network/site-settings.php:44 +#: tmp/old/wordpress/wp-admin/network/site-themes.php:67 +#: tmp/old/wordpress/wp-admin/network/site-users.php:60 +#: tmp/old/wordpress/wp-admin/network/sites.php:14 +#: tmp/old/wordpress/wp-admin/network/sites.php:126 +#: tmp/old/wordpress/wp-admin/network/upgrade.php:36 +#: tmp/old/wordpress/wp-admin/network/user-new.php:34 +#: tmp/old/wordpress/wp-admin/network/users.php:14 +#: tmp/old/wordpress/wp-admin/network/users.php:23 +#: tmp/old/wordpress/wp-admin/network/users.php:44 +#: tmp/old/wordpress/wp-admin/network/users.php:57 +#: tmp/old/wordpress/wp-admin/network/users.php:117 +#: tmp/wordpress/wp-admin/includes/menu.php:342 +#: tmp/wordpress/wp-admin/my-sites.php:16 +#: tmp/wordpress/wp-admin/network/index.php:17 +#: tmp/wordpress/wp-admin/network/settings.php:17 +#: tmp/wordpress/wp-admin/network/site-info.php:46 +#: tmp/wordpress/wp-admin/network/site-settings.php:44 +#: tmp/wordpress/wp-admin/network/site-themes.php:67 +#: tmp/wordpress/wp-admin/network/site-users.php:60 +#: tmp/wordpress/wp-admin/network/sites.php:14 +#: tmp/wordpress/wp-admin/network/sites.php:126 +#: tmp/wordpress/wp-admin/network/upgrade.php:36 +#: tmp/wordpress/wp-admin/network/user-new.php:34 +#: tmp/wordpress/wp-admin/network/users.php:14 +#: tmp/wordpress/wp-admin/network/users.php:23 +#: tmp/wordpress/wp-admin/network/users.php:44 +#: tmp/wordpress/wp-admin/network/users.php:57 +#: tmp/wordpress/wp-admin/network/users.php:117 +msgid "Sorry, you are not allowed to access this page." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:44 +#: tmp/old/wordpress/wp-includes/script-loader.php:566 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:44 +#: tmp/wordpress/wp-includes/script-loader.php:566 +msgid "Save as Pending" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:53 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:53 +msgid "Preview Changes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:82 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:110 +#: tmp/old/wordpress/wp-includes/script-loader.php:572 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:82 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:110 +#: tmp/wordpress/wp-includes/script-loader.php:572 +msgid "Privately Published" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:101 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:101 +msgid "Edit status" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:105 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:105 +msgid "Set status" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:121 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:165 +#: tmp/old/wordpress/wp-admin/includes/template.php:755 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:877 +#: tmp/old/wordpress/wp-includes/script-loader.php:554 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:121 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:165 +#: tmp/wordpress/wp-admin/includes/template.php:755 +#: tmp/wordpress/wp-includes/class-wp-editor.php:877 +#: tmp/wordpress/wp-includes/script-loader.php:554 +msgid "OK" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:129 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:129 +msgid "Visibility:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:137 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:160 +#: tmp/old/wordpress/wp-admin/includes/template.php:1701 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:137 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:160 +#: tmp/wordpress/wp-admin/includes/template.php:1701 +msgid "Password protected" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:140 +#: tmp/old/wordpress/wp-includes/script-loader.php:570 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:140 +#: tmp/wordpress/wp-includes/script-loader.php:570 +msgid "Public, Sticky" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:143 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:156 +#: tmp/old/wordpress/wp-admin/network/site-info.php:185 +#: tmp/old/wordpress/wp-includes/script-loader.php:569 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:143 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:156 +#: tmp/wordpress/wp-admin/network/site-info.php:185 +#: tmp/wordpress/wp-includes/script-loader.php:569 +msgid "Public" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:148 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:148 +msgid "Edit visibility" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:158 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:158 +msgid "Stick this post to the front page" +msgstr "" + +#. translators: Post date information. 1: Date on which the post is currently +#. scheduled to be published +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:179 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:179 +msgid "Scheduled for: %1$s" +msgstr "" + +#. translators: Post date information. 1: Date on which the post was published +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:182 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:182 +msgid "Published on: %1$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:184 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:194 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:184 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:194 +msgid "Publish immediately" +msgstr "" + +#. translators: Post date information. 1: Date on which the post is to be +#. published +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:187 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:187 +msgid "Schedule for: %1$s" +msgstr "" + +#. translators: Post date information. 1: Date on which the post is to be +#. published +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:190 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:190 +msgid "Publish on: %1$s" +msgstr "" + +#. translators: Post revisions heading. 1: The number of available revisions +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:202 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:202 +msgid "Revisions: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:204 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:204 +msgctxt "revisions" +msgid "Browse" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:204 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:204 +msgid "Browse revisions" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:262 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:263 +#: tmp/old/wordpress/wp-includes/script-loader.php:564 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:262 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:263 +#: tmp/wordpress/wp-includes/script-loader.php:564 +msgid "Schedule" +msgstr "" + +#. translators: Attachment information. 1: Date the attachment was uploaded +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:310 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:310 +msgid "Uploaded on: %1$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:493 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:954 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:683 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:493 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:954 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:683 +msgid "Most Used" +msgstr "" + +#. translators: %s: add new taxonomy label +#. translators: %s: add new page label +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:516 +#: tmp/old/wordpress/wp-includes/class-wp-customize-control.php:593 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:516 +#: tmp/wordpress/wp-includes/class-wp-customize-control.php:593 +msgid "+ %s" +msgstr "" + +#. translators: %s: Codex URL +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:586 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:586 +msgid "" +"Excerpts are optional hand-crafted summaries of your content that can be " +"used in your theme. Learn more about manual excerpts." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:587 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:587 +msgid "https://codex.wordpress.org/Excerpt" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:604 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:604 +msgid "Already pinged:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:614 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:614 +msgid "Send trackbacks to:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:617 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:617 +msgid "Separate multiple URLs with spaces" +msgstr "" + +#. translators: %s: Codex URL +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:621 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:621 +msgid "" +"Trackbacks are a way to notify legacy blog systems that you’ve linked " +"to them. If you link other WordPress sites, they’ll be notified " +"automatically using pingbacks, no other action necessary." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:622 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:676 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:622 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:676 +msgid "https://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments" +msgstr "" + +#. translators: %s: Codex URL +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:653 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:653 +msgid "" +"Custom fields can be used to add extra metadata to a post that you can use in your theme." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:654 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:654 +msgid "https://codex.wordpress.org/Using_Custom_Fields" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:671 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:671 +msgid "Allow comments." +msgstr "" + +#. translators: %s: Codex URL +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:675 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:675 +msgid "Allow trackbacks and pingbacks on this page." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:715 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:715 +msgid "Add comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:723 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:723 +msgid "No comments yet." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:733 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:733 +msgid "Show comments" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:805 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:805 +msgid "(no parent)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:866 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:866 +msgid "Need help? Use the Help tab above the screen title." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:894 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:894 +msgid "Visit Link" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:902 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:902 +msgid "Keep this link private" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:953 +#: tmp/old/wordpress/wp-includes/taxonomy.php:499 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:953 +#: tmp/wordpress/wp-includes/taxonomy.php:499 +msgid "All Categories" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:975 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:977 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:975 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:977 +msgid "+ Add New Category" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:978 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:978 +msgid "New category name" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:999 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:999 +msgid "_blank — new window or tab." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1002 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1002 +msgid "_top — current window or tab, with no frames." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1005 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1005 +msgid "_none — same window or tab." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1007 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1007 +msgid "Choose the target frame for your link." +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1054 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1054 +msgid "rel:" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1058 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1059 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1058 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1059 +msgid "identity" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1062 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1062 +msgid "another web address of mine" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1066 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1067 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1066 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1067 +msgid "friendship" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1069 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1069 +msgid "contact" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1072 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1072 +msgid "acquaintance" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1075 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1075 +msgid "friend" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1078 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1111 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1134 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1078 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1111 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1134 +msgid "none" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1083 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1084 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1083 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1084 +msgid "physical" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1086 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1086 +msgid "met" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1091 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1092 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1091 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1092 +msgid "professional" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1094 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1094 +msgid "co-worker" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1097 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1097 +msgid "colleague" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1102 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1103 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1102 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1103 +msgid "geographical" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1105 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1105 +msgid "co-resident" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1108 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1108 +msgid "neighbor" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1116 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1117 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1116 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1117 +msgid "family" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1119 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1119 +msgid "child" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1122 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1122 +msgid "kin" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1125 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1125 +msgid "parent" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1128 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1128 +msgid "sibling" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1131 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1131 +msgid "spouse" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1139 +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1140 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1139 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1140 +msgid "romantic" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1142 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1142 +msgid "muse" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1145 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1145 +msgid "crush" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1148 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1148 +msgid "date" +msgstr "" + +#. translators: xfn: http://gmpg.org/xfn/ +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1151 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1151 +msgid "sweetheart" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1157 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1157 +msgid "" +"If the link is to a person, you can specify your relationship with them " +"using the above form. If you would like to learn more about the idea check " +"out XFN." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1172 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1172 +msgid "Image Address" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1176 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1176 +msgid "RSS Address" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1180 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1180 +msgid "Notes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/meta-boxes.php:1193 +#: tmp/wordpress/wp-admin/includes/meta-boxes.php:1193 +msgid "(Leave at 0 for no rating.)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/misc.php:659 +#: tmp/old/wordpress/wp-admin/user-edit.php:240 +#: tmp/wordpress/wp-admin/includes/misc.php:659 +#: tmp/wordpress/wp-admin/user-edit.php:240 +msgid "Admin Color Scheme" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/misc.php:788 +#: tmp/wordpress/wp-admin/includes/misc.php:788 +msgid "%s has taken over and is currently editing." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/misc.php:882 +#: tmp/old/wordpress/wp-admin/includes/post.php:1785 +#: tmp/old/wordpress/wp-admin/widgets.php:342 +#: tmp/wordpress/wp-admin/includes/misc.php:882 +#: tmp/wordpress/wp-admin/includes/post.php:1785 +#: tmp/wordpress/wp-admin/widgets.php:342 +msgid "Error while saving." +msgstr "" + +#. translators: draft saved date format, see https://secure.php.net/date +#: tmp/old/wordpress/wp-admin/includes/misc.php:885 +#: tmp/wordpress/wp-admin/includes/misc.php:885 +msgid "g:i:s a" +msgstr "" + +#. translators: %s: date and time +#: tmp/old/wordpress/wp-admin/includes/misc.php:887 +#: tmp/wordpress/wp-admin/includes/misc.php:887 +msgid "Draft saved at %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms-deprecated.php:33 +#: tmp/wordpress/wp-admin/includes/ms-deprecated.php:33 +msgid "Sorry, you must delete files before you can upload any more." +msgstr "" + +#. translators: 1: Required disk space in kilobytes +#: tmp/old/wordpress/wp-admin/includes/ms.php:33 +#: tmp/wordpress/wp-admin/includes/ms.php:33 +msgid "Not enough space to upload. %1$s KB needed." +msgstr "" + +#. translators: 1: Maximum allowed file size in kilobytes +#: tmp/old/wordpress/wp-admin/includes/ms.php:38 +#: tmp/wordpress/wp-admin/includes/ms.php:38 +msgid "This file is too big. Files must be less than %1$s KB in size." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:42 +#: tmp/wordpress/wp-admin/includes/ms.php:42 +msgid "You have used your space quota. Please delete files before uploading." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:46 +#: tmp/old/wordpress/wp-admin/theme-install.php:50 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:952 +#: tmp/old/wordpress/wp-includes/class-wp-customize-panel.php:368 +#: tmp/old/wordpress/wp-includes/class-wp-customize-section.php:368 +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:772 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menus-panel.php:75 +#: tmp/old/wordpress/wp-includes/media.php:3409 +#: tmp/wordpress/wp-admin/includes/ms.php:46 +#: tmp/wordpress/wp-admin/theme-install.php:50 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:952 +#: tmp/wordpress/wp-includes/class-wp-customize-panel.php:368 +#: tmp/wordpress/wp-includes/class-wp-customize-section.php:368 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:772 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menus-panel.php:75 +#: tmp/wordpress/wp-includes/media.php:3409 +msgid "Back" +msgstr "" + +#. translators: Do not translate USERNAME, ADMIN_URL, EMAIL, SITENAME, SITEURL: +#. those are placeholders. +#: tmp/old/wordpress/wp-admin/includes/ms.php:280 +#: tmp/wordpress/wp-admin/includes/ms.php:280 +msgid "" +"Howdy ###USERNAME###,\n" +"\n" +"You recently requested to have the administration email address on\n" +"your site changed.\n" +"\n" +"If this is correct, please click on the following link to change it:\n" +"###ADMIN_URL###\n" +"\n" +"You can safely ignore and delete this email if you do not want to\n" +"take this action.\n" +"\n" +"This email has been sent to ###EMAIL###\n" +"\n" +"Regards,\n" +"All at ###SITENAME###\n" +"###SITEURL###" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:321 +#: tmp/wordpress/wp-admin/includes/ms.php:321 +msgid "[%s] New Admin Email Address" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:347 +#: tmp/old/wordpress/wp-admin/includes/user.php:176 +#: tmp/old/wordpress/wp-includes/user.php:2298 +#: tmp/wordpress/wp-admin/includes/ms.php:347 +#: tmp/wordpress/wp-admin/includes/user.php:176 +#: tmp/wordpress/wp-includes/user.php:2298 +msgid "ERROR: The email address isn’t correct." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:352 +#: tmp/wordpress/wp-admin/includes/ms.php:352 +msgid "ERROR: The email address is already used." +msgstr "" + +#. translators: Do not translate USERNAME, ADMIN_URL, EMAIL, SITENAME, SITEURL: +#. those are placeholders. +#: tmp/old/wordpress/wp-admin/includes/ms.php:367 +#: tmp/wordpress/wp-admin/includes/ms.php:367 +msgid "" +"Howdy ###USERNAME###,\n" +"\n" +"You recently requested to have the email address on your account changed.\n" +"\n" +"If this is correct, please click on the following link to change it:\n" +"###ADMIN_URL###\n" +"\n" +"You can safely ignore and delete this email if you do not want to\n" +"take this action.\n" +"\n" +"This email has been sent to ###EMAIL###\n" +"\n" +"Regards,\n" +"All at ###SITENAME###\n" +"###SITEURL###" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:406 +#: tmp/wordpress/wp-admin/includes/ms.php:406 +msgid "[%s] New Email Address" +msgstr "" + +#. translators: %s: New email address +#: tmp/old/wordpress/wp-admin/includes/ms.php:427 +#: tmp/wordpress/wp-admin/includes/ms.php:427 +msgid "" +"Your email address has not been updated yet. Please check your inbox at %s " +"for a confirmation email." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:451 +#: tmp/wordpress/wp-admin/includes/ms.php:451 +msgid "" +"Sorry, you have used your space allocation. Please delete some files to " +"upload more files." +msgstr "" + +#. translators: Gigabytes +#: tmp/old/wordpress/wp-admin/includes/ms.php:472 +#: tmp/wordpress/wp-admin/includes/ms.php:472 +msgid "GB" +msgstr "" + +#. translators: Megabytes +#: tmp/old/wordpress/wp-admin/includes/ms.php:476 +#: tmp/wordpress/wp-admin/includes/ms.php:476 +msgid "MB" +msgstr "" + +#. translators: Storage space that's been used. 1: Percentage of used space, 2: +#. Total space allowed in megabytes or gigabytes +#: tmp/old/wordpress/wp-admin/includes/ms.php:481 +#: tmp/wordpress/wp-admin/includes/ms.php:481 +msgid "Used: %1$s%% of %2$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:519 +#: tmp/wordpress/wp-admin/includes/ms.php:519 +msgid "Site Upload Space Quota" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:522 +#: tmp/old/wordpress/wp-admin/network/settings.php:291 +#: tmp/wordpress/wp-admin/includes/ms.php:522 +#: tmp/wordpress/wp-admin/network/settings.php:291 +msgid "Size in megabytes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:522 +#: tmp/wordpress/wp-admin/includes/ms.php:522 +msgid "MB (Leave blank for network default)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:677 +#: tmp/old/wordpress/wp-admin/includes/ms.php:679 +#: tmp/wordpress/wp-admin/includes/ms.php:677 +#: tmp/wordpress/wp-admin/includes/ms.php:679 +msgid "" +"You attempted to access the \"%1$s\" dashboard, but you do not currently " +"have privileges on this site. If you believe you should be able to access " +"the \"%1$s\" dashboard, please contact your network administrator." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:680 +#: tmp/wordpress/wp-admin/includes/ms.php:680 +msgid "" +"If you reached this screen by accident and meant to visit one of your own " +"sites, here are some shortcuts to help you find your way." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:682 +#: tmp/wordpress/wp-admin/includes/ms.php:682 +msgid "Your Sites" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:688 +#: tmp/wordpress/wp-admin/includes/ms.php:688 +msgid "Visit Dashboard" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:689 +#: tmp/wordpress/wp-admin/includes/ms.php:689 +msgid "View Site" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:730 +#: tmp/wordpress/wp-admin/includes/ms.php:730 +msgid "American English" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:734 +#: tmp/wordpress/wp-admin/includes/ms.php:734 +msgid "British English" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:744 +#: tmp/wordpress/wp-admin/includes/ms.php:744 +msgid "English" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:785 +#: tmp/wordpress/wp-admin/includes/ms.php:785 +msgid "" +"Thank you for Updating! Please visit the Upgrade Network " +"page to update all your sites." +msgstr "" + +#. translators: My sites label +#: tmp/old/wordpress/wp-admin/includes/ms.php:836 +#: tmp/wordpress/wp-admin/includes/ms.php:836 +msgid "Primary Site" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:931 +#: tmp/wordpress/wp-admin/includes/ms.php:931 +msgid "You have chosen to delete the user from all networks and sites." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:933 +#: tmp/wordpress/wp-admin/includes/ms.php:933 +msgid "" +"You have chosen to delete the following users from all networks and sites." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:948 +#: tmp/wordpress/wp-admin/includes/ms.php:948 +msgid "Warning! User %s cannot be deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:952 +#: tmp/wordpress/wp-admin/includes/ms.php:952 +msgid "" +"Warning! User cannot be deleted. The user %s is a network administrator." +msgstr "" + +#. translators: user login +#: tmp/old/wordpress/wp-admin/includes/ms.php:965 +#: tmp/wordpress/wp-admin/includes/ms.php:965 +msgid "What should be done with content owned by %s?" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:973 +#: tmp/wordpress/wp-admin/includes/ms.php:973 +msgid "Select a user" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:988 +#: tmp/wordpress/wp-admin/includes/ms.php:988 +msgid "Site: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:990 +#: tmp/old/wordpress/wp-admin/users.php:273 +#: tmp/wordpress/wp-admin/includes/ms.php:990 +#: tmp/wordpress/wp-admin/users.php:273 +msgid "Delete all content." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:992 +#: tmp/old/wordpress/wp-admin/users.php:275 +#: tmp/wordpress/wp-admin/includes/ms.php:992 +#: tmp/wordpress/wp-admin/users.php:275 +msgid "Attribute all content to:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:1001 +#: tmp/wordpress/wp-admin/includes/ms.php:1001 +msgid "User has no sites or content and will be deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:1015 +#: tmp/wordpress/wp-admin/includes/ms.php:1015 +msgid "" +"Once you hit “Confirm Deletion”, the user will be permanently " +"removed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:1017 +#: tmp/wordpress/wp-admin/includes/ms.php:1017 +msgid "" +"Once you hit “Confirm Deletion”, these users will be permanently " +"removed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:1020 +#: tmp/old/wordpress/wp-admin/users.php:295 +#: tmp/wordpress/wp-admin/includes/ms.php:1020 +#: tmp/wordpress/wp-admin/users.php:295 +msgid "Confirm Deletion" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:1084 +#: tmp/wordpress/wp-admin/includes/ms.php:1084 +msgid "Info" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/ms.php:1086 +#: tmp/old/wordpress/wp-admin/menu.php:157 +#: tmp/old/wordpress/wp-admin/network/menu.php:38 +#: tmp/old/wordpress/wp-admin/network/themes.php:239 +#: tmp/old/wordpress/wp-admin/themes.php:155 +#: tmp/old/wordpress/wp-admin/update-core.php:339 +#: tmp/old/wordpress/wp-admin/update-core.php:346 +#: tmp/old/wordpress/wp-includes/admin-bar.php:467 +#: tmp/old/wordpress/wp-includes/admin-bar.php:770 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:56 +#: tmp/wordpress/wp-admin/includes/ms.php:1086 +#: tmp/wordpress/wp-admin/menu.php:157 +#: tmp/wordpress/wp-admin/network/menu.php:38 +#: tmp/wordpress/wp-admin/network/themes.php:239 +#: tmp/wordpress/wp-admin/themes.php:155 +#: tmp/wordpress/wp-admin/update-core.php:339 +#: tmp/wordpress/wp-admin/update-core.php:346 +#: tmp/wordpress/wp-includes/admin-bar.php:467 +#: tmp/wordpress/wp-includes/admin-bar.php:770 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:56 +msgid "Themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:141 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:1054 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:141 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:1054 +msgid "Custom Links" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:284 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:1067 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1454 +#: tmp/old/wordpress/wp-includes/media-template.php:817 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:284 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:1067 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1454 +#: tmp/wordpress/wp-includes/media-template.php:817 +msgid "Link Text" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:290 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:579 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:778 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:1072 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:290 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:579 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:778 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:1072 +msgid "Add to Menu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:345 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:630 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:345 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:630 +msgid "No items." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:363 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:648 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/archive.php:51 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/content-link.php:40 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/content-page.php:29 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/content.php:42 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/image.php:63 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/index.php:48 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/search.php:40 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/archive.php:47 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/index.php:52 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/search.php:45 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/archive.php:51 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/image.php:60 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/index.php:48 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/search.php:39 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/content-page.php:27 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/content-single.php:29 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/content.php:37 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:363 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:648 +#: tmp/wordpress/wp-content/themes/twentyfifteen/archive.php:51 +#: tmp/wordpress/wp-content/themes/twentyfifteen/content-link.php:40 +#: tmp/wordpress/wp-content/themes/twentyfifteen/content-page.php:29 +#: tmp/wordpress/wp-content/themes/twentyfifteen/content.php:42 +#: tmp/wordpress/wp-content/themes/twentyfifteen/image.php:63 +#: tmp/wordpress/wp-content/themes/twentyfifteen/index.php:48 +#: tmp/wordpress/wp-content/themes/twentyfifteen/search.php:40 +#: tmp/wordpress/wp-content/themes/twentyseventeen/archive.php:47 +#: tmp/wordpress/wp-content/themes/twentyseventeen/index.php:52 +#: tmp/wordpress/wp-content/themes/twentyseventeen/search.php:45 +#: tmp/wordpress/wp-content/themes/twentysixteen/archive.php:51 +#: tmp/wordpress/wp-content/themes/twentysixteen/image.php:60 +#: tmp/wordpress/wp-content/themes/twentysixteen/index.php:48 +#: tmp/wordpress/wp-content/themes/twentysixteen/search.php:39 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/content-page.php:27 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/content-single.php:29 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/content.php:37 +msgid "Page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:398 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:398 +msgid "Most Recent" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:403 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:688 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:403 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:688 +msgid "View All" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:469 +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:759 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:283 +#: tmp/old/wordpress/wp-includes/script-loader.php:234 +#: tmp/old/wordpress/wp-includes/script-loader.php:432 +#: tmp/old/wordpress/wp-includes/script-loader.php:750 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:469 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:759 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:283 +#: tmp/wordpress/wp-includes/script-loader.php:234 +#: tmp/wordpress/wp-includes/script-loader.php:432 +#: tmp/wordpress/wp-includes/script-loader.php:750 +msgid "No results found." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:914 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:914 +msgid "Add menu items from the column on the left." +msgstr "" + +#. translators: %s: walker class name +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:935 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:935 +msgid "The Walker class named %s does not exist." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:950 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:950 +msgid "Click Save Menu to make pending menu items public." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:954 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:954 +msgid "There are some invalid menu items. Please check or delete them." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:976 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:976 +msgid "Show advanced menu properties" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:978 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:978 +msgid "Link Target" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:980 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:116 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:980 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:116 +msgid "CSS Classes" +msgstr "" + +#. translators: %s: nav menu title +#: tmp/old/wordpress/wp-admin/includes/nav-menu.php:1084 +#: tmp/wordpress/wp-admin/includes/nav-menu.php:1084 +msgid "%s has been updated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:105 +#: tmp/wordpress/wp-admin/includes/network.php:105 +msgid "" +"The constant DO_NOT_UPGRADE_GLOBAL_TABLES cannot be defined when creating a " +"network." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:113 +#: tmp/old/wordpress/wp-admin/includes/network.php:373 +#: tmp/old/wordpress/wp-admin/includes/network.php:545 +#: tmp/old/wordpress/wp-admin/includes/network.php:585 +#: tmp/wordpress/wp-admin/includes/network.php:113 +#: tmp/wordpress/wp-admin/includes/network.php:373 +#: tmp/wordpress/wp-admin/includes/network.php:545 +#: tmp/wordpress/wp-admin/includes/network.php:585 +msgid "Warning:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:113 +#: tmp/wordpress/wp-admin/includes/network.php:113 +msgid "" +"Please deactivate your plugins before enabling the " +"Network feature." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:113 +#: tmp/wordpress/wp-admin/includes/network.php:113 +msgid "Once the network is created, you may reactivate your plugins." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:122 +#: tmp/wordpress/wp-admin/includes/network.php:122 +msgid "You cannot install a network of sites with your server address." +msgstr "" + +#. translators: %s: port number +#: tmp/old/wordpress/wp-admin/includes/network.php:125 +#: tmp/wordpress/wp-admin/includes/network.php:125 +msgid "You cannot use port numbers such as %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:128 +#: tmp/wordpress/wp-admin/includes/network.php:128 +msgid "Return to Dashboard" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:140 +#: tmp/wordpress/wp-admin/includes/network.php:140 +msgid "ERROR: The network could not be created." +msgstr "" + +#. translators: %s: Default network name +#: tmp/old/wordpress/wp-admin/includes/network.php:151 +#: tmp/wordpress/wp-admin/includes/network.php:151 +msgid "%s Sites" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:160 +#: tmp/wordpress/wp-admin/includes/network.php:160 +msgid "Welcome to the Network installation process!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:161 +#: tmp/wordpress/wp-admin/includes/network.php:161 +msgid "" +"Fill in the information below and you’ll be on your way to creating a " +"network of WordPress sites. We will create configuration files in the next " +"step." +msgstr "" + +#. translators: %s: mod_rewrite +#: tmp/old/wordpress/wp-admin/includes/network.php:175 +#: tmp/wordpress/wp-admin/includes/network.php:175 +msgid "" +"Please make sure the Apache %s module is installed as it will be used at the " +"end of this installation." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:180 +#: tmp/old/wordpress/wp-admin/includes/network.php:229 +#: tmp/old/wordpress/wp-admin/includes/network.php:270 +#: tmp/old/wordpress/wp-admin/includes/network.php:280 +#: tmp/wordpress/wp-admin/includes/network.php:180 +#: tmp/wordpress/wp-admin/includes/network.php:229 +#: tmp/wordpress/wp-admin/includes/network.php:270 +#: tmp/wordpress/wp-admin/includes/network.php:280 +msgid "Warning!" +msgstr "" + +#. translators: %s: mod_rewrite +#: tmp/old/wordpress/wp-admin/includes/network.php:182 +#: tmp/wordpress/wp-admin/includes/network.php:182 +msgid "It looks like the Apache %s module is not installed." +msgstr "" + +#. translators: 1: mod_rewrite, 2: mod_rewrite documentation URL, 3: Google +#. search for mod_rewrite +#: tmp/old/wordpress/wp-admin/includes/network.php:191 +#: tmp/wordpress/wp-admin/includes/network.php:191 +msgid "" +"If %1$s is disabled, ask your administrator to enable that module, or look " +"at the Apache documentation or elsewhere for help setting it up." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:201 +#: tmp/wordpress/wp-admin/includes/network.php:201 +msgid "Addresses of Sites in your Network" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:202 +#: tmp/wordpress/wp-admin/includes/network.php:202 +msgid "" +"Please choose whether you would like sites in your WordPress network to use " +"sub-domains or sub-directories." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:203 +#: tmp/wordpress/wp-admin/includes/network.php:203 +msgid "You cannot change this later." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:204 +#: tmp/wordpress/wp-admin/includes/network.php:204 +msgid "" +"You will need a wildcard DNS record if you are going to use the virtual host " +"(sub-domain) functionality." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:208 +#: tmp/wordpress/wp-admin/includes/network.php:208 +msgid "Sub-domains" +msgstr "" + +#. translators: 1: hostname +#: tmp/old/wordpress/wp-admin/includes/network.php:211 +#: tmp/wordpress/wp-admin/includes/network.php:211 +msgctxt "subdomain examples" +msgid "like site1.%1$s and site2.%1$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:216 +#: tmp/wordpress/wp-admin/includes/network.php:216 +msgid "Sub-directories" +msgstr "" + +#. translators: 1: hostname +#: tmp/old/wordpress/wp-admin/includes/network.php:219 +#: tmp/wordpress/wp-admin/includes/network.php:219 +msgctxt "subdirectory examples" +msgid "like %1$s/site1 and %1$s/site2" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:229 +#: tmp/old/wordpress/wp-admin/includes/network.php:545 +#: tmp/old/wordpress/wp-admin/includes/network.php:585 +#: tmp/wordpress/wp-admin/includes/network.php:229 +#: tmp/wordpress/wp-admin/includes/network.php:545 +#: tmp/wordpress/wp-admin/includes/network.php:585 +msgid "" +"Subdirectory networks may not be fully compatible with custom wp-content " +"directories." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:234 +#: tmp/old/wordpress/wp-admin/includes/network.php:244 +#: tmp/old/wordpress/wp-admin/includes/network.php:293 +#: tmp/wordpress/wp-admin/includes/network.php:234 +#: tmp/wordpress/wp-admin/includes/network.php:244 +#: tmp/wordpress/wp-admin/includes/network.php:293 +msgid "Server Address" +msgstr "" + +#. translators: 1: site url 2: host name 3. www +#: tmp/old/wordpress/wp-admin/includes/network.php:237 +#: tmp/wordpress/wp-admin/includes/network.php:237 +msgid "" +"We recommend you change your siteurl to %1$s before enabling the network " +"feature. It will still be possible to visit your site using the %3$s prefix " +"with an address like %2$s but any links will not have the %3$s prefix." +msgstr "" + +#. translators: %s: host name +#: tmp/old/wordpress/wp-admin/includes/network.php:248 +#: tmp/old/wordpress/wp-admin/includes/network.php:297 +#: tmp/wordpress/wp-admin/includes/network.php:248 +#: tmp/wordpress/wp-admin/includes/network.php:297 +msgid "The internet address of your network will be %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:256 +#: tmp/wordpress/wp-admin/includes/network.php:256 +msgid "Network Details" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:260 +#: tmp/old/wordpress/wp-admin/includes/network.php:275 +#: tmp/wordpress/wp-admin/includes/network.php:260 +#: tmp/wordpress/wp-admin/includes/network.php:275 +msgid "Sub-directory Install" +msgstr "" + +#. translators: 1: localhost 2: localhost.localdomain +#: tmp/old/wordpress/wp-admin/includes/network.php:264 +#: tmp/wordpress/wp-admin/includes/network.php:264 +msgid "" +"Because you are using %1$s, the sites in your WordPress network must use sub-" +"directories. Consider using %2$s if you wish to use sub-domains." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:270 +#: tmp/old/wordpress/wp-admin/includes/network.php:280 +#: tmp/old/wordpress/wp-admin/includes/network.php:287 +#: tmp/wordpress/wp-admin/includes/network.php:270 +#: tmp/wordpress/wp-admin/includes/network.php:280 +#: tmp/wordpress/wp-admin/includes/network.php:287 +msgid "" +"The main site in a sub-directory install will need to use a modified " +"permalink structure, potentially breaking existing links." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:277 +#: tmp/wordpress/wp-admin/includes/network.php:277 +msgid "" +"Because your install is in a directory, the sites in your WordPress network " +"must use sub-directories." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:285 +#: tmp/wordpress/wp-admin/includes/network.php:285 +msgid "Sub-domain Install" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:286 +#: tmp/wordpress/wp-admin/includes/network.php:286 +msgid "" +"Because your install is not new, the sites in your WordPress network must " +"use sub-domains." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:304 +#: tmp/old/wordpress/wp-admin/network/settings.php:105 +#: tmp/wordpress/wp-admin/includes/network.php:304 +#: tmp/wordpress/wp-admin/network/settings.php:105 +msgid "Network Title" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:308 +#: tmp/wordpress/wp-admin/includes/network.php:308 +msgid "What would you like to call your network?" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:313 +#: tmp/old/wordpress/wp-admin/network/settings.php:112 +#: tmp/wordpress/wp-admin/includes/network.php:313 +#: tmp/wordpress/wp-admin/network/settings.php:112 +msgid "Network Admin Email" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:317 +#: tmp/wordpress/wp-admin/includes/network.php:317 +msgid "Your email address." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:368 +#: tmp/wordpress/wp-admin/includes/network.php:368 +msgid "The original configuration steps are shown here for reference." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:373 +#: tmp/wordpress/wp-admin/includes/network.php:373 +msgid "An existing WordPress network was detected." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:374 +#: tmp/wordpress/wp-admin/includes/network.php:374 +msgid "" +"Please complete the configuration steps. To create a new network, you will " +"need to empty or remove the network database tables." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:385 +#: tmp/wordpress/wp-admin/includes/network.php:385 +msgid "Enabling the Network" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:386 +#: tmp/wordpress/wp-admin/includes/network.php:386 +msgid "" +"Complete the following steps to enable the features for creating a network " +"of sites." +msgstr "" + +#. translators: 1: wp-config.php 2: .htaccess +#. translators: 1: wp-config.php 2: web.config +#: tmp/old/wordpress/wp-admin/includes/network.php:392 +#: tmp/old/wordpress/wp-admin/includes/network.php:400 +#: tmp/wordpress/wp-admin/includes/network.php:392 +#: tmp/wordpress/wp-admin/includes/network.php:400 +msgid "We recommend you back up your existing %1$s and %2$s files." +msgstr "" + +#. translators: 1: wp-config.php +#: tmp/old/wordpress/wp-admin/includes/network.php:408 +#: tmp/wordpress/wp-admin/includes/network.php:408 +msgid "We recommend you back up your existing %s file." +msgstr "" + +#. translators: 1: wp-config.php 2: location of wp-config file, 3: translated +#. version of "That's all, stop editing! Happy blogging." +#: tmp/old/wordpress/wp-admin/includes/network.php:419 +#: tmp/wordpress/wp-admin/includes/network.php:419 +msgid "" +"Add the following to your %1$s file in %2$s above the line " +"reading %3$s:" +msgstr "" + +#. translators: This string should only be translated if wp-config-sample.php +#. is localized. You can check the localized release package or +#. https://i18n.svn.wordpress.org//branches//dist/wp-config-sample.php +#: tmp/old/wordpress/wp-admin/includes/network.php:427 +#: tmp/wordpress/wp-admin/includes/network.php:427 +msgid "That’s all, stop editing! Happy blogging." +msgstr "" + +#. translators: 1: wp-config.php +#: tmp/old/wordpress/wp-admin/includes/network.php:464 +#: tmp/wordpress/wp-admin/includes/network.php:464 +msgid "This unique authentication key is also missing from your %s file." +msgstr "" + +#. translators: 1: wp-config.php +#: tmp/old/wordpress/wp-admin/includes/network.php:470 +#: tmp/wordpress/wp-admin/includes/network.php:470 +msgid "These unique authentication keys are also missing from your %s file." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:475 +#: tmp/wordpress/wp-admin/includes/network.php:475 +msgid "To make your installation more secure, you should also add:" +msgstr "" + +#. translators: 1: a filename like .htaccess. 2: a file path. +#: tmp/old/wordpress/wp-admin/includes/network.php:539 +#: tmp/old/wordpress/wp-admin/includes/network.php:579 +#: tmp/wordpress/wp-admin/includes/network.php:539 +#: tmp/wordpress/wp-admin/includes/network.php:579 +msgid "" +"Add the following to your %1$s file in %2$s, replacing " +"other WordPress rules:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:594 +#: tmp/wordpress/wp-admin/includes/network.php:594 +msgid "" +"Once you complete these steps, your network is enabled and configured. You " +"will have to log in again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/network.php:594 +#: tmp/old/wordpress/wp-admin/install.php:217 +#: tmp/old/wordpress/wp-admin/install.php:408 +#: tmp/old/wordpress/wp-includes/general-template.php:411 +#: tmp/old/wordpress/wp-login.php:884 tmp/old/wordpress/wp-login.php:916 +#: tmp/wordpress/wp-admin/includes/network.php:594 +#: tmp/wordpress/wp-admin/install.php:217 +#: tmp/wordpress/wp-admin/install.php:408 +#: tmp/wordpress/wp-includes/general-template.php:411 +#: tmp/wordpress/wp-login.php:884 tmp/wordpress/wp-login.php:916 +msgid "Log In" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/options.php:140 +#: tmp/wordpress/wp-admin/includes/options.php:140 +msgid "" +"The character " +"encoding of your site (UTF-8 is recommended)" +msgstr "" + +#. translators: %s: support forums URL +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:161 +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:173 +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:184 +#: tmp/old/wordpress/wp-admin/includes/theme.php:468 +#: tmp/old/wordpress/wp-admin/includes/theme.php:481 +#: tmp/old/wordpress/wp-admin/includes/theme.php:492 +#: tmp/old/wordpress/wp-admin/includes/translation-install.php:62 +#: tmp/old/wordpress/wp-admin/includes/translation-install.php:75 +#: tmp/old/wordpress/wp-admin/includes/translation-install.php:86 +#: tmp/old/wordpress/wp-admin/includes/update.php:118 +#: tmp/old/wordpress/wp-admin/theme-install.php:53 +#: tmp/old/wordpress/wp-includes/update.php:126 +#: tmp/old/wordpress/wp-includes/update.php:316 +#: tmp/old/wordpress/wp-includes/update.php:496 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:161 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:173 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:184 +#: tmp/wordpress/wp-admin/includes/theme.php:468 +#: tmp/wordpress/wp-admin/includes/theme.php:481 +#: tmp/wordpress/wp-admin/includes/theme.php:492 +#: tmp/wordpress/wp-admin/includes/translation-install.php:62 +#: tmp/wordpress/wp-admin/includes/translation-install.php:75 +#: tmp/wordpress/wp-admin/includes/translation-install.php:86 +#: tmp/wordpress/wp-admin/includes/update.php:118 +#: tmp/wordpress/wp-admin/theme-install.php:53 +#: tmp/wordpress/wp-includes/update.php:126 +#: tmp/wordpress/wp-includes/update.php:316 +#: tmp/wordpress/wp-includes/update.php:496 +msgid "" +"An unexpected error occurred. Something may be wrong with WordPress.org or " +"this server’s configuration. If you continue to have problems, please " +"try the support forums." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:163 +#: tmp/old/wordpress/wp-admin/includes/theme.php:470 +#: tmp/old/wordpress/wp-admin/includes/translation-install.php:64 +#: tmp/old/wordpress/wp-admin/includes/update.php:120 +#: tmp/old/wordpress/wp-includes/update.php:128 +#: tmp/old/wordpress/wp-includes/update.php:318 +#: tmp/old/wordpress/wp-includes/update.php:498 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:163 +#: tmp/wordpress/wp-admin/includes/theme.php:470 +#: tmp/wordpress/wp-admin/includes/translation-install.php:64 +#: tmp/wordpress/wp-admin/includes/update.php:120 +#: tmp/wordpress/wp-includes/update.php:128 +#: tmp/wordpress/wp-includes/update.php:318 +#: tmp/wordpress/wp-includes/update.php:498 +msgid "" +"(WordPress could not establish a secure connection to WordPress.org. Please " +"contact your server administrator.)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:235 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:235 +msgid "" +"Plugins extend and expand the functionality of WordPress. You may " +"automatically install plugins from the WordPress Plugin " +"Directory or upload a plugin in .zip format by clicking the button at " +"the top of this page." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:240 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:240 +msgid "Popular tags" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:241 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:241 +msgid "" +"You may also browse based on the most popular tags in the Plugin Directory:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:263 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:263 +msgid "%s plugin" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:263 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:263 +msgid "%s plugins" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:281 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:281 +msgid "Search plugins by:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:283 +#: tmp/old/wordpress/wp-admin/includes/theme-install.php:67 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:283 +#: tmp/wordpress/wp-admin/includes/theme-install.php:67 +msgid "Keyword" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:285 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:285 +msgctxt "Plugin Installer" +msgid "Tag" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:287 +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:290 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:287 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:290 +msgid "Search Plugins" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:288 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:288 +msgid "Search plugins..." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:301 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:301 +msgid "" +"If you have a plugin in a .zip format, you may install it by uploading it " +"here." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:304 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:304 +msgid "Plugin zip file" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:321 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:321 +msgid "" +"If you have marked plugins as favorites on WordPress.org, you can browse " +"them here." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:325 +#: tmp/old/wordpress/wp-admin/theme-install.php:178 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:325 +#: tmp/wordpress/wp-admin/theme-install.php:178 +msgid "Your WordPress.org username:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:327 +#: tmp/old/wordpress/wp-admin/theme-install.php:181 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:327 +#: tmp/wordpress/wp-admin/theme-install.php:181 +msgid "Get Favorites" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:351 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:351 +msgid "" +"These suggestions are based on the plugins you and other users have " +"installed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:355 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:355 +msgid "" +"You are using a development version of WordPress. These feature plugins are " +"also under development. Learn more." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:489 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:489 +msgctxt "Plugin installer section title" +msgid "Description" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:490 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:490 +msgctxt "Plugin installer section title" +msgid "Installation" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:491 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:491 +msgctxt "Plugin installer section title" +msgid "FAQ" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:492 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:492 +msgctxt "Plugin installer section title" +msgid "Screenshots" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:493 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:493 +msgctxt "Plugin installer section title" +msgid "Changelog" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:494 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:494 +msgctxt "Plugin installer section title" +msgid "Reviews" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:495 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:495 +msgctxt "Plugin installer section title" +msgid "Other Notes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:517 +#: tmp/old/wordpress/wp-admin/update.php:123 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:517 +#: tmp/wordpress/wp-admin/update.php:123 +msgid "Plugin Install" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:570 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/biography.php:28 +#: tmp/old/wordpress/wp-mail.php:232 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:570 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/biography.php:28 +#: tmp/wordpress/wp-mail.php:232 +msgid "Author:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:580 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:580 +msgid "Requires WordPress Version:" +msgstr "" + +#. translators: %s: WordPress version +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:583 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:583 +msgid "%s or higher" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:587 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:587 +msgid "Compatible up to:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:589 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:589 +msgid "Active Installs:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:599 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:599 +msgid "WordPress.org Plugin Page »" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:601 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:601 +msgid "Plugin Homepage »" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:603 +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:657 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:603 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:657 +msgid "Donate to this plugin »" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:607 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:607 +msgid "Average Rating" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:609 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:609 +msgid "(based on %s rating)" +msgid_plural "(based on %s ratings)" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:613 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:613 +msgid "Reviews" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:614 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:614 +msgid "Read all reviews on WordPress.org or write your own!" +msgstr "" + +#. translators: 1: number of stars (used to determine singular/plural), 2: +#. number of reviews +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:620 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:620 +msgid "Reviews with %1$d star: %2$s. Opens in a new window." +msgid_plural "Reviews with %1$d stars: %2$s. Opens in a new window." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:627 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:627 +msgid "%d star" +msgid_plural "%d stars" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:637 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:637 +msgid "Contributors" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:666 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:666 +msgid "" +"Warning: This plugin has not been tested " +"with your current version of WordPress." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:668 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:668 +msgid "" +"Warning: This plugin has not been marked as " +"compatible with your version of WordPress." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:697 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:697 +msgid "Install Update Now" +msgstr "" + +#. translators: %s: Plugin version +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:702 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:702 +msgid "Newer Version (%s) Installed" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin-install.php:705 +#: tmp/wordpress/wp-admin/includes/plugin-install.php:705 +msgid "Latest Version Installed" +msgstr "" + +#. translators: 1: Site Wide Only: true, 2: Network: true +#: tmp/old/wordpress/wp-admin/includes/plugin.php:89 +#: tmp/wordpress/wp-admin/includes/plugin.php:89 +msgid "The %1$s plugin header is deprecated. Use %2$s instead." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin.php:179 +#: tmp/wordpress/wp-admin/includes/plugin.php:179 +msgid "By %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin.php:419 +#: tmp/wordpress/wp-admin/includes/plugin.php:419 +msgid "Advanced caching plugin." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin.php:420 +#: tmp/wordpress/wp-admin/includes/plugin.php:420 +msgid "Custom database class." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin.php:421 +#: tmp/wordpress/wp-admin/includes/plugin.php:421 +msgid "Custom database error message." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin.php:422 +#: tmp/wordpress/wp-admin/includes/plugin.php:422 +msgid "Custom install script." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin.php:423 +#: tmp/wordpress/wp-admin/includes/plugin.php:423 +msgid "Custom maintenance message." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin.php:424 +#: tmp/wordpress/wp-admin/includes/plugin.php:424 +msgid "External object cache." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin.php:428 +#: tmp/wordpress/wp-admin/includes/plugin.php:428 +msgid "Executed before Multisite is loaded." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin.php:429 +#: tmp/wordpress/wp-admin/includes/plugin.php:429 +msgid "Custom site deleted message." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin.php:430 +#: tmp/wordpress/wp-admin/includes/plugin.php:430 +msgid "Custom site inactive message." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin.php:431 +#: tmp/wordpress/wp-admin/includes/plugin.php:431 +msgid "Custom site suspended message." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin.php:623 +#: tmp/wordpress/wp-admin/includes/plugin.php:623 +msgid "The plugin generated unexpected output." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin.php:758 +#: tmp/wordpress/wp-admin/includes/plugin.php:758 +msgid "One of the plugins is invalid." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin.php:897 +#: tmp/wordpress/wp-admin/includes/plugin.php:897 +msgid "Could not fully remove the plugin(s) %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin.php:952 +#: tmp/wordpress/wp-admin/includes/plugin.php:952 +msgid "Invalid plugin path." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin.php:954 +#: tmp/wordpress/wp-admin/includes/plugin.php:954 +msgid "Plugin file does not exist." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/plugin.php:958 +#: tmp/wordpress/wp-admin/includes/plugin.php:958 +msgid "The plugin does not have a valid header." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:33 +#: tmp/old/wordpress/wp-admin/includes/post.php:71 +#: tmp/wordpress/wp-admin/includes/post.php:33 +#: tmp/wordpress/wp-admin/includes/post.php:71 +msgid "Sorry, you are not allowed to edit pages as this user." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:35 +#: tmp/old/wordpress/wp-admin/includes/post.php:73 +#: tmp/wordpress/wp-admin/includes/post.php:35 +#: tmp/wordpress/wp-admin/includes/post.php:73 +msgid "Sorry, you are not allowed to edit posts as this user." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:38 +#: tmp/old/wordpress/wp-admin/includes/post.php:76 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4934 +#: tmp/wordpress/wp-admin/includes/post.php:38 +#: tmp/wordpress/wp-admin/includes/post.php:76 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4934 +msgid "Sorry, you are not allowed to create pages as this user." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:40 +#: tmp/old/wordpress/wp-admin/includes/post.php:78 +#: tmp/old/wordpress/wp-admin/post-new.php:60 +#: tmp/old/wordpress/wp-admin/press-this.php:17 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1346 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4930 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:496 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:504 +#: tmp/wordpress/wp-admin/includes/post.php:40 +#: tmp/wordpress/wp-admin/includes/post.php:78 +#: tmp/wordpress/wp-admin/post-new.php:60 +#: tmp/wordpress/wp-admin/press-this.php:17 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1346 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4930 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:496 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:504 +msgid "Sorry, you are not allowed to create posts as this user." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:163 +#: tmp/old/wordpress/wp-includes/post.php:3131 +#: tmp/old/wordpress/wp-includes/rest-api.php:1069 +#: tmp/wordpress/wp-admin/includes/post.php:163 +#: tmp/wordpress/wp-includes/post.php:3131 +#: tmp/wordpress/wp-includes/rest-api.php:1069 +msgid "Invalid date." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:433 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2709 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2911 +#: tmp/wordpress/wp-admin/includes/post.php:433 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2709 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2911 +msgid "Sorry, you are not allowed to edit pages." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:435 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2967 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4236 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4533 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5638 +#: tmp/wordpress/wp-admin/includes/post.php:435 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2967 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4236 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4533 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5638 +msgid "Sorry, you are not allowed to edit posts." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:607 +#: tmp/wordpress/wp-admin/includes/post.php:607 +msgid "Auto Draft" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:726 +#: tmp/wordpress/wp-admin/includes/post.php:726 +msgid "Sorry, you are not allowed to create pages on this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:728 +#: tmp/wordpress/wp-admin/includes/post.php:728 +msgid "Sorry, you are not allowed to create posts or drafts on this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:1325 +#: tmp/old/wordpress/wp-admin/includes/post.php:1348 +#: tmp/wordpress/wp-admin/includes/post.php:1325 +#: tmp/wordpress/wp-admin/includes/post.php:1348 +msgid "Permalink:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:1336 +#: tmp/wordpress/wp-admin/includes/post.php:1336 +msgid "Change Permalinks" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:1351 +#: tmp/wordpress/wp-admin/includes/post.php:1351 +msgid "Edit permalink" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:1425 +#: tmp/wordpress/wp-admin/includes/post.php:1425 +msgid "Click the image to edit or update" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:1583 +#: tmp/wordpress/wp-admin/includes/post.php:1583 +msgid "This content is currently locked." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:1585 +#: tmp/wordpress/wp-admin/includes/post.php:1585 +msgid "If you take over, %s will be blocked from continuing to edit." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:1608 +#: tmp/wordpress/wp-admin/includes/post.php:1608 +msgid "Take over" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:1622 +#: tmp/wordpress/wp-admin/includes/post.php:1622 +msgid "Saving revision…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/post.php:1623 +#: tmp/wordpress/wp-admin/includes/post.php:1623 +msgid "Your latest changes were saved as a revision." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/revision.php:208 +#: tmp/old/wordpress/wp-admin/includes/revision.php:250 +#: tmp/wordpress/wp-admin/includes/revision.php:208 +#: tmp/wordpress/wp-admin/includes/revision.php:250 +msgctxt "revision date short format" +msgid "j M @ H:i" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/revision.php:325 +#: tmp/wordpress/wp-admin/includes/revision.php:325 +msgctxt "Button label for a previous revision" +msgid "Previous" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/revision.php:329 +#: tmp/wordpress/wp-admin/includes/revision.php:329 +msgctxt "Button label for a next revision" +msgid "Next" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/revision.php:343 +#: tmp/wordpress/wp-admin/includes/revision.php:343 +msgid "Compare any two revisions" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/revision.php:352 +#: tmp/wordpress/wp-admin/includes/revision.php:352 +msgctxt "Followed by post revision info" +msgid "From:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/revision.php:354 +#: tmp/wordpress/wp-admin/includes/revision.php:354 +msgctxt "Followed by post revision info" +msgid "To:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/revision.php:360 +#: tmp/wordpress/wp-admin/includes/revision.php:360 +msgid "Autosave by %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/revision.php:363 +#: tmp/wordpress/wp-admin/includes/revision.php:363 +msgid "Current Revision by %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/revision.php:366 +#: tmp/wordpress/wp-admin/includes/revision.php:366 +msgid "Revision by %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/revision.php:381 +#: tmp/wordpress/wp-admin/includes/revision.php:381 +msgid "Restore This Autosave" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/revision.php:383 +#: tmp/wordpress/wp-admin/includes/revision.php:383 +msgid "Restore This Revision" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/revision.php:395 +#: tmp/wordpress/wp-admin/includes/revision.php:395 +msgid "" +"Sorry, something went wrong. The requested comparison could not be loaded." +msgstr "" + +#. translators: default GMT offset or timezone string. Must be either a valid +#. offset (-12 to 14) or a valid timezone string (America/New_York). See +#. https://secure.php.net/manual/en/timezones.php for all timezone strings +#. supported by PHP. +#: tmp/old/wordpress/wp-admin/includes/schema.php:387 +#: tmp/wordpress/wp-admin/includes/schema.php:387 +msgctxt "default GMT offset or timezone string" +msgid "0" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/schema.php:396 +#: tmp/wordpress/wp-admin/includes/schema.php:396 +msgid "My Site" +msgstr "" + +#. translators: site tagline +#: tmp/old/wordpress/wp-admin/includes/schema.php:398 +#: tmp/wordpress/wp-admin/includes/schema.php:398 +msgid "Just another WordPress site" +msgstr "" + +#. translators: default start of the week. 0 = Sunday, 1 = Monday +#: tmp/old/wordpress/wp-admin/includes/schema.php:402 +#: tmp/wordpress/wp-admin/includes/schema.php:402 +msgctxt "start of week" +msgid "1" +msgstr "" + +#. translators: links last updated date format, see https://secure.php.net/date +#. translators: localized date and time format, see https://secure.php.net/date +#: tmp/old/wordpress/wp-admin/includes/schema.php:423 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:402 +#: tmp/wordpress/wp-admin/includes/schema.php:423 +#: tmp/wordpress/wp-includes/class-wp-locale.php:402 +msgid "F j, Y g:i a" +msgstr "" + +#. translators: site tagline +#: tmp/old/wordpress/wp-admin/includes/schema.php:530 +#: tmp/wordpress/wp-admin/includes/schema.php:530 +msgid "Just another %s site" +msgstr "" + +#. translators: user role +#: tmp/old/wordpress/wp-admin/includes/schema.php:636 +#: tmp/wordpress/wp-admin/includes/schema.php:636 +msgctxt "User role" +msgid "Administrator" +msgstr "" + +#. translators: user role +#: tmp/old/wordpress/wp-admin/includes/schema.php:638 +#: tmp/wordpress/wp-admin/includes/schema.php:638 +msgctxt "User role" +msgid "Editor" +msgstr "" + +#. translators: user role +#: tmp/old/wordpress/wp-admin/includes/schema.php:640 +#: tmp/wordpress/wp-admin/includes/schema.php:640 +msgctxt "User role" +msgid "Author" +msgstr "" + +#. translators: user role +#: tmp/old/wordpress/wp-admin/includes/schema.php:642 +#: tmp/wordpress/wp-admin/includes/schema.php:642 +msgctxt "User role" +msgid "Contributor" +msgstr "" + +#. translators: user role +#: tmp/old/wordpress/wp-admin/includes/schema.php:644 +#: tmp/wordpress/wp-admin/includes/schema.php:644 +msgctxt "User role" +msgid "Subscriber" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/schema.php:904 +#: tmp/wordpress/wp-admin/includes/schema.php:904 +msgid "You must provide a domain name." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/schema.php:906 +#: tmp/wordpress/wp-admin/includes/schema.php:906 +msgid "You must provide a name for your network of sites." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/schema.php:910 +#: tmp/wordpress/wp-admin/includes/schema.php:910 +msgid "The network already exists." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/schema.php:913 +#: tmp/wordpress/wp-admin/includes/schema.php:913 +msgid "You must provide a valid email address." +msgstr "" + +#. translators: Do not translate USERNAME, SITE_NAME, BLOG_URL, PASSWORD: those +#. are placeholders. +#: tmp/old/wordpress/wp-admin/includes/schema.php:967 +#: tmp/old/wordpress/wp-includes/ms-functions.php:1479 +#: tmp/wordpress/wp-admin/includes/schema.php:967 +#: tmp/wordpress/wp-includes/ms-functions.php:1479 +msgid "" +"Howdy USERNAME,\n" +"\n" +"Your new SITE_NAME site has been successfully set up at:\n" +"BLOG_URL\n" +"\n" +"You can log in to the administrator account with the following information:\n" +"\n" +"Username: USERNAME\n" +"Password: PASSWORD\n" +"Log in here: BLOG_URLwp-login.php\n" +"\n" +"We hope you enjoy your new site. Thanks!\n" +"\n" +"--The Team @ SITE_NAME" +msgstr "" + +#. translators: %s: site link +#: tmp/old/wordpress/wp-admin/includes/schema.php:1010 +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:163 +#: tmp/wordpress/wp-admin/includes/schema.php:1010 +#: tmp/wordpress/wp-admin/includes/upgrade.php:163 +msgid "" +"Welcome to %s. This is your first post. Edit or delete it, then start " +"blogging!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/schema.php:1082 +#: tmp/wordpress/wp-admin/includes/schema.php:1082 +msgid "Warning! Wildcard DNS may not be configured correctly!" +msgstr "" + +#. translators: %s: host name +#: tmp/old/wordpress/wp-admin/includes/schema.php:1086 +#: tmp/wordpress/wp-admin/includes/schema.php:1086 +msgid "" +"The installer attempted to contact a random hostname (%s) on your domain." +msgstr "" + +#. translators: %s: error message +#: tmp/old/wordpress/wp-admin/includes/schema.php:1091 +#: tmp/wordpress/wp-admin/includes/schema.php:1091 +msgid "This resulted in an error message: %s" +msgstr "" + +#. translators: %s: asterisk symbol (*) +#: tmp/old/wordpress/wp-admin/includes/schema.php:1097 +#: tmp/wordpress/wp-admin/includes/schema.php:1097 +msgid "" +"To use a subdomain configuration, you must have a wildcard entry in your " +"DNS. This usually means adding a %s hostname record pointing at your web " +"server in your DNS configuration tool." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/schema.php:1101 +#: tmp/wordpress/wp-admin/includes/schema.php:1101 +msgid "" +"You can still use your site but any subdomain you create may not be " +"accessible. If you know your DNS is correct, ignore this message." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/taxonomy.php:116 +#: tmp/wordpress/wp-admin/includes/taxonomy.php:116 +msgid "You did not enter a category name." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:397 +#: tmp/wordpress/wp-admin/includes/template.php:397 +msgid "Reply to Comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:398 +#: tmp/wordpress/wp-admin/includes/template.php:398 +msgid "Add new Comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:428 +#: tmp/wordpress/wp-admin/includes/template.php:428 +msgid "Add Comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:429 +#: tmp/wordpress/wp-admin/includes/template.php:429 +msgid "Update Comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:430 +#: tmp/wordpress/wp-admin/includes/template.php:430 +msgid "Submit Reply" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:466 +#: tmp/wordpress/wp-admin/includes/template.php:466 +msgid "Comment by %s moved to the trash." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:469 +#: tmp/wordpress/wp-admin/includes/template.php:469 +msgid "Comment by %s marked as spam." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:488 +#: tmp/old/wordpress/wp-admin/includes/template.php:503 +#: tmp/old/wordpress/wp-admin/includes/template.php:628 +#: tmp/wordpress/wp-admin/includes/template.php:488 +#: tmp/wordpress/wp-admin/includes/template.php:503 +#: tmp/wordpress/wp-admin/includes/template.php:628 +msgctxt "meta name" +msgid "Name" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:489 +#: tmp/old/wordpress/wp-admin/includes/template.php:504 +#: tmp/old/wordpress/wp-admin/includes/template.php:568 +#: tmp/old/wordpress/wp-admin/includes/template.php:629 +#: tmp/wordpress/wp-admin/includes/template.php:489 +#: tmp/wordpress/wp-admin/includes/template.php:504 +#: tmp/wordpress/wp-admin/includes/template.php:568 +#: tmp/wordpress/wp-admin/includes/template.php:629 +msgid "Value" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:558 +#: tmp/wordpress/wp-admin/includes/template.php:558 +msgid "Key" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:624 +#: tmp/wordpress/wp-admin/includes/template.php:624 +msgid "Add New Custom Field:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:650 +#: tmp/wordpress/wp-admin/includes/template.php:650 +msgid "Enter new" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:661 +#: tmp/wordpress/wp-admin/includes/template.php:661 +msgid "Add Custom Field" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:714 +#: tmp/wordpress/wp-admin/includes/template.php:714 +msgid "Month" +msgstr "" + +#. translators: 1: month number (01, 02, etc.), 2: month abbreviation +#: tmp/old/wordpress/wp-admin/includes/template.php:720 +#: tmp/wordpress/wp-admin/includes/template.php:720 +msgid "%1$s-%2$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:724 +#: tmp/wordpress/wp-admin/includes/template.php:724 +msgid "Day" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:726 +#: tmp/wordpress/wp-admin/includes/template.php:726 +msgid "Hour" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:727 +#: tmp/wordpress/wp-admin/includes/template.php:727 +msgid "Minute" +msgstr "" + +#. translators: 1: month, 2: day, 3: year, 4: hour, 5: minute +#: tmp/old/wordpress/wp-admin/includes/template.php:731 +#: tmp/old/wordpress/wp-includes/script-loader.php:560 +#: tmp/old/wordpress/wp-includes/script-loader.php:599 +#: tmp/wordpress/wp-admin/includes/template.php:731 +#: tmp/wordpress/wp-includes/script-loader.php:560 +#: tmp/wordpress/wp-includes/script-loader.php:599 +msgid "%1$s %2$s, %3$s @ %4$s:%5$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:861 +#: tmp/wordpress/wp-admin/includes/template.php:861 +msgid "" +"Before you can upload your import file, you will need to fix the following " +"error:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:867 +#: tmp/wordpress/wp-admin/includes/template.php:867 +msgid "Choose a file from your computer:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:867 +#: tmp/wordpress/wp-admin/includes/template.php:867 +msgid "Maximum size: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:872 +#: tmp/wordpress/wp-admin/includes/template.php:872 +msgid "Upload file and import" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:1042 +#: tmp/wordpress/wp-admin/includes/template.php:1042 +msgid "Toggle panel: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:1164 +#: tmp/old/wordpress/wp-includes/class-wp-customize-section.php:362 +#: tmp/wordpress/wp-admin/includes/template.php:1164 +#: tmp/wordpress/wp-includes/class-wp-customize-section.php:362 +msgid "Press return or enter to open this section" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:1210 +#: tmp/old/wordpress/wp-admin/includes/template.php:1215 +#: tmp/old/wordpress/wp-includes/option.php:1907 +#: tmp/old/wordpress/wp-includes/option.php:1912 +#: tmp/old/wordpress/wp-includes/option.php:1943 +#: tmp/old/wordpress/wp-includes/option.php:1948 +#: tmp/wordpress/wp-admin/includes/template.php:1210 +#: tmp/wordpress/wp-admin/includes/template.php:1215 +#: tmp/wordpress/wp-includes/option.php:1907 +#: tmp/wordpress/wp-includes/option.php:1912 +#: tmp/wordpress/wp-includes/option.php:1943 +#: tmp/wordpress/wp-includes/option.php:1948 +msgid "The \"%s\" options group has been removed. Use another settings group." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:1261 +#: tmp/wordpress/wp-admin/includes/template.php:1261 +msgid "" +"The miscellaneous options group has been removed. Use another settings group." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:1266 +#: tmp/wordpress/wp-admin/includes/template.php:1266 +msgid "The privacy options group has been removed. Use another settings group." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:1500 +#: tmp/wordpress/wp-admin/includes/template.php:1500 +msgid "Attach to existing content" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:1501 +#: tmp/wordpress/wp-admin/includes/template.php:1501 +msgid "Close media attachment panel" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:1707 +#: tmp/old/wordpress/wp-includes/post.php:220 +#: tmp/wordpress/wp-admin/includes/template.php:1707 +#: tmp/wordpress/wp-includes/post.php:220 +msgctxt "post status" +msgid "Pending" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:1717 +#: tmp/wordpress/wp-admin/includes/template.php:1717 +msgid "Front Page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:1775 +#: tmp/wordpress/wp-admin/includes/template.php:1775 +msgid "Current Header Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:1788 +#: tmp/wordpress/wp-admin/includes/template.php:1788 +msgid "Current Background Image" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:1794 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3769 +#: tmp/wordpress/wp-admin/includes/template.php:1794 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3769 +msgid "Site Icon" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:1798 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3788 +#: tmp/wordpress/wp-admin/includes/template.php:1798 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3788 +msgid "Logo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:1948 +#: tmp/old/wordpress/wp-admin/nav-menus.php:657 +#: tmp/old/wordpress/wp-admin/options.php:300 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:168 +#: tmp/wordpress/wp-admin/includes/template.php:1948 +#: tmp/wordpress/wp-admin/nav-menus.php:657 +#: tmp/wordpress/wp-admin/options.php:300 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:168 +msgid "Save Changes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:2025 +#: tmp/wordpress/wp-admin/includes/template.php:2025 +msgid "" +"Likely direct inclusion of wp-admin/includes/template.php in order to use " +"add_meta_box(). This is very wrong. Hook the add_meta_box() call into the " +"add_meta_boxes action instead." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:2042 +#: tmp/wordpress/wp-admin/includes/template.php:2042 +msgid "" +"The backup of this post in your browser is different from the version below." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:2043 +#: tmp/wordpress/wp-admin/includes/template.php:2043 +msgid "Restore the backup" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:2046 +#: tmp/wordpress/wp-admin/includes/template.php:2046 +msgid "" +"This will replace the current editor content with the last backup version. " +"You can use undo and redo in the editor to get the old content back or to " +"return to the restored version." +msgstr "" + +#. translators: 1: The rating, 2: The number of ratings +#: tmp/old/wordpress/wp-admin/includes/template.php:2098 +#: tmp/wordpress/wp-admin/includes/template.php:2098 +msgid "%1$s rating based on %2$s rating" +msgid_plural "%1$s rating based on %2$s ratings" +msgstr[0] "" +msgstr[1] "" + +#. translators: 1: The rating +#: tmp/old/wordpress/wp-admin/includes/template.php:2102 +#: tmp/wordpress/wp-admin/includes/template.php:2102 +msgid "%s rating" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/template.php:2126 +#: tmp/wordpress/wp-admin/includes/template.php:2126 +msgid "You are currently editing the page that shows your latest posts." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme-install.php:60 +#: tmp/wordpress/wp-admin/includes/theme-install.php:60 +msgid "Search for themes by keyword." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme-install.php:65 +#: tmp/wordpress/wp-admin/includes/theme-install.php:65 +msgid "Type of search" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme-install.php:69 +#: tmp/wordpress/wp-admin/includes/theme-install.php:69 +msgctxt "Theme Installer" +msgid "Tag" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme-install.php:74 +#: tmp/old/wordpress/wp-admin/includes/theme-install.php:85 +#: tmp/wordpress/wp-admin/includes/theme-install.php:74 +#: tmp/wordpress/wp-admin/includes/theme-install.php:85 +msgid "Search by keyword" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme-install.php:77 +#: tmp/wordpress/wp-admin/includes/theme-install.php:77 +msgid "Search by author" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme-install.php:80 +#: tmp/wordpress/wp-admin/includes/theme-install.php:80 +msgid "Search by tag" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme-install.php:101 +#: tmp/old/wordpress/wp-admin/theme-install.php:161 +#: tmp/wordpress/wp-admin/includes/theme-install.php:101 +#: tmp/wordpress/wp-admin/theme-install.php:161 +msgid "Feature Filter" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme-install.php:102 +#: tmp/wordpress/wp-admin/includes/theme-install.php:102 +msgid "Find a theme based on specific features." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme-install.php:133 +#: tmp/wordpress/wp-admin/includes/theme-install.php:133 +msgid "Find Themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme-install.php:143 +#: tmp/wordpress/wp-admin/includes/theme-install.php:143 +msgid "" +"If you have a theme in a .zip format, you may install it by uploading it " +"here." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme-install.php:146 +#: tmp/wordpress/wp-admin/includes/theme-install.php:146 +msgid "Theme zip file" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme-install.php:205 +#: tmp/wordpress/wp-admin/includes/theme-install.php:205 +msgid "Theme Install" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:75 +#: tmp/wordpress/wp-admin/includes/theme.php:75 +msgid "Could not fully remove the theme %s." +msgstr "" + +#. translators: 1: theme name, 2: theme details URL, 3: additional link +#. attributes, 4: version number +#. translators: 1: plugin name, 2: details URL, 3: additional link attributes, +#. 4: version number +#. translators: 1: theme name, 2: details URL, 3: additional link attributes, +#. 4: version number +#: tmp/old/wordpress/wp-admin/includes/theme.php:181 +#: tmp/old/wordpress/wp-admin/includes/update.php:380 +#: tmp/old/wordpress/wp-admin/includes/update.php:525 +#: tmp/wordpress/wp-admin/includes/theme.php:181 +#: tmp/wordpress/wp-admin/includes/update.php:380 +#: tmp/wordpress/wp-admin/includes/update.php:525 +msgid "" +"There is a new version of %1$s available. View version " +"%4$s details." +msgstr "" + +#. translators: 1: theme name, 2: version number +#. translators: 1: plugin name, 2: version number +#. translators: 1: theme name, 2: version number +#. translators: 1: theme name, 2: version number +#. translators: 1: theme name, 2: version number +#. translators: 1: plugin name, 2: version number +#: tmp/old/wordpress/wp-admin/includes/theme.php:186 +#: tmp/old/wordpress/wp-admin/includes/theme.php:197 +#: tmp/old/wordpress/wp-admin/includes/theme.php:208 +#: tmp/old/wordpress/wp-admin/includes/update.php:385 +#: tmp/old/wordpress/wp-admin/includes/update.php:396 +#: tmp/old/wordpress/wp-admin/includes/update.php:407 +#: tmp/old/wordpress/wp-admin/includes/update.php:530 +#: tmp/old/wordpress/wp-admin/includes/update.php:541 +#: tmp/old/wordpress/wp-admin/includes/update.php:552 +#: tmp/old/wordpress/wp-admin/update-core.php:287 +#: tmp/wordpress/wp-admin/includes/theme.php:186 +#: tmp/wordpress/wp-admin/includes/theme.php:197 +#: tmp/wordpress/wp-admin/includes/theme.php:208 +#: tmp/wordpress/wp-admin/includes/update.php:385 +#: tmp/wordpress/wp-admin/includes/update.php:396 +#: tmp/wordpress/wp-admin/includes/update.php:407 +#: tmp/wordpress/wp-admin/includes/update.php:530 +#: tmp/wordpress/wp-admin/includes/update.php:541 +#: tmp/wordpress/wp-admin/includes/update.php:552 +#: tmp/wordpress/wp-admin/update-core.php:287 +msgid "View %1$s version %2$s details" +msgstr "" + +#. translators: 1: theme name, 2: theme details URL, 3: additional link +#. attributes, 4: version number +#. translators: 1: theme name, 2: details URL, 3: additional link attributes, +#. 4: version number +#: tmp/old/wordpress/wp-admin/includes/theme.php:192 +#: tmp/old/wordpress/wp-admin/includes/update.php:536 +#: tmp/wordpress/wp-admin/includes/theme.php:192 +#: tmp/wordpress/wp-admin/includes/update.php:536 +msgid "" +"There is a new version of %1$s available. View version " +"%4$s details. Automatic update is unavailable for this theme." +msgstr "" + +#. translators: 1: theme name, 2: theme details URL, 3: additional link +#. attributes, 4: version number, 5: update URL, 6: additional link attributes +#. translators: 1: plugin name, 2: details URL, 3: additional link attributes, +#. 4: version number, 5: update URL, 6: additional link attributes +#. translators: 1: theme name, 2: details URL, 3: additional link attributes, +#. 4: version number, 5: update URL, 6: additional link attributes +#: tmp/old/wordpress/wp-admin/includes/theme.php:203 +#: tmp/old/wordpress/wp-admin/includes/update.php:402 +#: tmp/old/wordpress/wp-admin/includes/update.php:547 +#: tmp/wordpress/wp-admin/includes/theme.php:203 +#: tmp/wordpress/wp-admin/includes/update.php:402 +#: tmp/wordpress/wp-admin/includes/update.php:547 +msgid "" +"There is a new version of %1$s available. View version " +"%4$s details or update now." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:238 +#: tmp/wordpress/wp-admin/includes/theme.php:238 +msgid "Grid Layout" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:239 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:82 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:129 +#: tmp/wordpress/wp-admin/includes/theme.php:239 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:82 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:129 +msgid "One Column" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:240 +#: tmp/wordpress/wp-admin/includes/theme.php:240 +msgid "Two Columns" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:241 +#: tmp/wordpress/wp-admin/includes/theme.php:241 +msgid "Three Columns" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:242 +#: tmp/wordpress/wp-admin/includes/theme.php:242 +msgid "Four Columns" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:243 +#: tmp/wordpress/wp-admin/includes/theme.php:243 +msgid "Left Sidebar" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:244 +#: tmp/wordpress/wp-admin/includes/theme.php:244 +msgid "Right Sidebar" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:247 +#: tmp/old/wordpress/wp-admin/includes/theme.php:303 +#: tmp/wordpress/wp-admin/includes/theme.php:247 +#: tmp/wordpress/wp-admin/includes/theme.php:303 +msgid "Features" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:248 +#: tmp/wordpress/wp-admin/includes/theme.php:248 +msgid "Accessibility Ready" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:249 +#: tmp/wordpress/wp-admin/includes/theme.php:249 +msgid "BuddyPress" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:251 +#: tmp/wordpress/wp-admin/includes/theme.php:251 +msgid "Custom Colors" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:253 +#: tmp/wordpress/wp-admin/includes/theme.php:253 +msgid "Custom Logo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:254 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-nav-menu-widget.php:30 +#: tmp/wordpress/wp-admin/includes/theme.php:254 +#: tmp/wordpress/wp-includes/widgets/class-wp-nav-menu-widget.php:30 +msgid "Custom Menu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:255 +#: tmp/wordpress/wp-admin/includes/theme.php:255 +msgid "Editor Style" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:256 +#: tmp/wordpress/wp-admin/includes/theme.php:256 +msgid "Featured Image Header" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:257 +#: tmp/wordpress/wp-admin/includes/theme.php:257 +msgid "Featured Images" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:258 +#: tmp/wordpress/wp-admin/includes/theme.php:258 +msgid "Flexible Header" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:259 +#: tmp/wordpress/wp-admin/includes/theme.php:259 +msgid "Footer Widgets" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:260 +#: tmp/wordpress/wp-admin/includes/theme.php:260 +msgid "Front Page Posting" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:261 +#: tmp/wordpress/wp-admin/includes/theme.php:261 +msgid "Full Width Template" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:262 +#: tmp/wordpress/wp-admin/includes/theme.php:262 +msgid "Microformats" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:264 +#: tmp/wordpress/wp-admin/includes/theme.php:264 +msgid "RTL Language Support" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:265 +#: tmp/wordpress/wp-admin/includes/theme.php:265 +msgid "Sticky Post" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:266 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:66 +#: tmp/wordpress/wp-admin/includes/theme.php:266 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:66 +msgid "Theme Options" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:267 +#: tmp/wordpress/wp-admin/includes/theme.php:267 +msgid "Threaded Comments" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:268 +#: tmp/wordpress/wp-admin/includes/theme.php:268 +msgid "Translation Ready" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:271 +#: tmp/old/wordpress/wp-admin/includes/theme.php:304 +#: tmp/wordpress/wp-admin/includes/theme.php:271 +#: tmp/wordpress/wp-admin/includes/theme.php:304 +msgid "Subject" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:272 +#: tmp/wordpress/wp-admin/includes/theme.php:272 +msgid "Blog" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:273 +#: tmp/wordpress/wp-admin/includes/theme.php:273 +msgid "E-Commerce" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:274 +#: tmp/wordpress/wp-admin/includes/theme.php:274 +msgid "Education" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:275 +#: tmp/wordpress/wp-admin/includes/theme.php:275 +msgid "Entertainment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:276 +#: tmp/wordpress/wp-admin/includes/theme.php:276 +msgid "Food & Drink" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:277 +#: tmp/wordpress/wp-admin/includes/theme.php:277 +msgid "Holiday" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:278 +#: tmp/wordpress/wp-admin/includes/theme.php:278 +msgid "News" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:279 +#: tmp/wordpress/wp-admin/includes/theme.php:279 +msgid "Photography" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:280 +#: tmp/wordpress/wp-admin/includes/theme.php:280 +msgid "Portfolio" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:641 +#: tmp/old/wordpress/wp-admin/themes.php:431 +#: tmp/wordpress/wp-admin/includes/theme.php:641 +#: tmp/wordpress/wp-admin/themes.php:431 +msgid "Show previous theme" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:642 +#: tmp/old/wordpress/wp-admin/themes.php:432 +#: tmp/wordpress/wp-admin/includes/theme.php:642 +#: tmp/wordpress/wp-admin/themes.php:432 +msgid "Show next theme" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:643 +#: tmp/old/wordpress/wp-admin/themes.php:433 +#: tmp/wordpress/wp-admin/includes/theme.php:643 +#: tmp/wordpress/wp-admin/themes.php:433 +msgid "Close details dialog" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:656 +#: tmp/old/wordpress/wp-admin/themes.php:446 +#: tmp/wordpress/wp-admin/includes/theme.php:656 +#: tmp/wordpress/wp-admin/themes.php:446 +msgid "Current Theme" +msgstr "" + +#. translators: %s: Theme version +#: tmp/old/wordpress/wp-admin/includes/theme.php:658 +#: tmp/old/wordpress/wp-admin/theme-install.php:324 +#: tmp/old/wordpress/wp-admin/themes.php:448 +#: tmp/wordpress/wp-admin/includes/theme.php:658 +#: tmp/wordpress/wp-admin/theme-install.php:324 +#: tmp/wordpress/wp-admin/themes.php:448 +msgid "Version: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:663 +#: tmp/old/wordpress/wp-admin/themes.php:460 +#: tmp/wordpress/wp-admin/includes/theme.php:663 +#: tmp/wordpress/wp-admin/themes.php:460 +msgid "This is a child theme of %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/theme.php:667 +#: tmp/old/wordpress/wp-admin/themes.php:464 +#: tmp/wordpress/wp-admin/includes/theme.php:667 +#: tmp/wordpress/wp-admin/themes.php:464 +msgid "Tags:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/translation-install.php:23 +#: tmp/wordpress/wp-admin/includes/translation-install.php:23 +msgid "Invalid translation type." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/update-core.php:821 +#: tmp/wordpress/wp-admin/includes/update-core.php:821 +msgid "Verifying the unpacked files…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/update-core.php:834 +#: tmp/wordpress/wp-admin/includes/update-core.php:834 +msgid "The update could not be unpacked" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/update-core.php:872 +#: tmp/wordpress/wp-admin/includes/update-core.php:872 +msgid "" +"The update cannot be installed because WordPress %1$s requires PHP version " +"%2$s or higher and MySQL version %3$s or higher. You are running PHP version " +"%4$s and MySQL version %5$s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/update-core.php:874 +#: tmp/wordpress/wp-admin/includes/update-core.php:874 +msgid "" +"The update cannot be installed because WordPress %1$s requires PHP version " +"%2$s or higher. You are running version %3$s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/update-core.php:876 +#: tmp/wordpress/wp-admin/includes/update-core.php:876 +msgid "" +"The update cannot be installed because WordPress %1$s requires MySQL version " +"%2$s or higher. You are running version %3$s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/update-core.php:879 +#: tmp/wordpress/wp-admin/includes/update-core.php:879 +msgid "Preparing to install the latest version…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/update-core.php:941 +#: tmp/wordpress/wp-admin/includes/update-core.php:941 +msgid "Copying the required files…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/update-core.php:988 +#: tmp/wordpress/wp-admin/includes/update-core.php:988 +msgid "There is not enough free disk space to complete the update." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/update-core.php:1098 +#: tmp/wordpress/wp-admin/includes/update-core.php:1098 +msgid "Upgrading database…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/update-core.php:1227 +#: tmp/old/wordpress/wp-admin/update-core.php:501 +#: tmp/wordpress/wp-admin/includes/update-core.php:1227 +#: tmp/wordpress/wp-admin/update-core.php:501 +msgid "" +"Welcome to WordPress %1$s. You will be redirected to the About WordPress " +"screen. If not, click here." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/update-core.php:1228 +#: tmp/old/wordpress/wp-admin/update-core.php:502 +#: tmp/wordpress/wp-admin/includes/update-core.php:1228 +#: tmp/wordpress/wp-admin/update-core.php:502 +msgid "Welcome to WordPress %1$s. Learn more." +msgstr "" + +#. translators: 1: WordPress version number, 2: WordPress updates admin screen +#. URL +#: tmp/old/wordpress/wp-admin/includes/update.php:211 +#: tmp/wordpress/wp-admin/includes/update.php:211 +msgid "" +"You are using a development version (%1$s). Cool! Please stay updated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/update.php:214 +#: tmp/wordpress/wp-admin/includes/update.php:214 +msgid "Get Version %s" +msgstr "" + +#. translators: 1: Codex URL to release notes, 2: new WordPress version, 3: URL +#. to network admin, 4: accessibility text +#: tmp/old/wordpress/wp-admin/includes/update.php:244 +#: tmp/wordpress/wp-admin/includes/update.php:244 +msgid "" +"WordPress %2$s is available! Please update now." +msgstr "" + +#. translators: %s: WordPress version +#: tmp/old/wordpress/wp-admin/includes/update.php:247 +#: tmp/old/wordpress/wp-admin/includes/update.php:260 +#: tmp/wordpress/wp-admin/includes/update.php:247 +#: tmp/wordpress/wp-admin/includes/update.php:260 +msgid "https://codex.wordpress.org/Version_%s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/update.php:252 +#: tmp/wordpress/wp-admin/includes/update.php:252 +msgid "Please update WordPress now" +msgstr "" + +#. translators: 1: Codex URL to release notes, 2: new WordPress version +#: tmp/old/wordpress/wp-admin/includes/update.php:257 +#: tmp/wordpress/wp-admin/includes/update.php:257 +msgid "" +"WordPress %2$s is available! Please notify the site " +"administrator." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/update.php:282 +#: tmp/wordpress/wp-admin/includes/update.php:282 +msgid "Update to %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/update.php:282 +#: tmp/wordpress/wp-admin/includes/update.php:282 +msgid "Latest" +msgstr "" + +#. translators: 1: version number, 2: theme name +#: tmp/old/wordpress/wp-admin/includes/update.php:286 +#: tmp/wordpress/wp-admin/includes/update.php:286 +msgid "WordPress %1$s running %2$s theme." +msgstr "" + +#. translators: 1: plugin name, 2: details URL, 3: additional link attributes, +#. 4: version number +#: tmp/old/wordpress/wp-admin/includes/update.php:391 +#: tmp/wordpress/wp-admin/includes/update.php:391 +msgid "" +"There is a new version of %1$s available. View version " +"%4$s details. Automatic update is unavailable for this plugin." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/update.php:616 +#: tmp/wordpress/wp-admin/includes/update.php:616 +msgid "" +"An automated WordPress update has failed to complete - please " +"attempt the update again now." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/update.php:618 +#: tmp/wordpress/wp-admin/includes/update.php:618 +msgid "" +"An automated WordPress update has failed to complete! Please notify the site " +"administrator." +msgstr "" + +#. translators: %s: Number of plugins +#: tmp/old/wordpress/wp-admin/includes/update.php:652 +#: tmp/wordpress/wp-admin/includes/update.php:652 +msgid "%s plugin successfully updated." +msgstr "" + +#. translators: %s: Number of themes +#: tmp/old/wordpress/wp-admin/includes/update.php:657 +#: tmp/wordpress/wp-admin/includes/update.php:657 +msgid "%s theme successfully updated." +msgstr "" + +#. translators: %s: Number of plugins +#: tmp/old/wordpress/wp-admin/includes/update.php:664 +#: tmp/wordpress/wp-admin/includes/update.php:664 +msgid "%s plugins successfully updated." +msgstr "" + +#. translators: %s: Number of themes +#: tmp/old/wordpress/wp-admin/includes/update.php:669 +#: tmp/wordpress/wp-admin/includes/update.php:669 +msgid "%s themes successfully updated." +msgstr "" + +#. translators: %s: Number of failed updates +#: tmp/old/wordpress/wp-admin/includes/update.php:679 +#: tmp/wordpress/wp-admin/includes/update.php:679 +msgid "%s update failed." +msgstr "" + +#. translators: %s: Number of failed updates +#: tmp/old/wordpress/wp-admin/includes/update.php:684 +#: tmp/wordpress/wp-admin/includes/update.php:684 +msgid "%s updates failed." +msgstr "" + +#. translators: %s: Plugin name +#: tmp/old/wordpress/wp-admin/includes/update.php:747 +#: tmp/wordpress/wp-admin/includes/update.php:747 +msgctxt "plugin" +msgid "%s was successfully deleted." +msgstr "" + +#. translators: %s: Theme name +#: tmp/old/wordpress/wp-admin/includes/update.php:755 +#: tmp/wordpress/wp-admin/includes/update.php:755 +msgctxt "theme" +msgid "%s was successfully deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:77 +#: tmp/wordpress/wp-admin/includes/upgrade.php:77 +msgid "" +"Note that password carefully! It is a random password that was generated just for you." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:83 +#: tmp/wordpress/wp-admin/includes/upgrade.php:83 +msgid "Your chosen password." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:86 +#: tmp/wordpress/wp-admin/includes/upgrade.php:86 +msgid "User already exists. Password inherited." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:98 +#: tmp/wordpress/wp-admin/includes/upgrade.php:98 +msgid "The password you chose during the install." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:134 +#: tmp/old/wordpress/wp-includes/category-template.php:152 +#: tmp/wordpress/wp-admin/includes/upgrade.php:134 +#: tmp/wordpress/wp-includes/category-template.php:152 +msgid "Uncategorized" +msgstr "" + +#. translators: Default category slug +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:136 +#: tmp/wordpress/wp-admin/includes/upgrade.php:136 +msgctxt "Default category slug" +msgid "Uncategorized" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:174 +#: tmp/wordpress/wp-admin/includes/upgrade.php:174 +msgid "" +"Welcome to WordPress. This is your first post. Edit or delete it, then start " +"writing!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:183 +#: tmp/wordpress/wp-admin/includes/upgrade.php:183 +msgid "Hello world!" +msgstr "" + +#. translators: Default post slug +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:185 +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:328 +#: tmp/wordpress/wp-admin/includes/upgrade.php:185 +#: tmp/wordpress/wp-admin/includes/upgrade.php:328 +msgctxt "Default post slug" +msgid "hello-world" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:197 +#: tmp/wordpress/wp-admin/includes/upgrade.php:197 +msgid "A WordPress Commenter" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:200 +#: tmp/wordpress/wp-admin/includes/upgrade.php:200 +msgid "" +"Hi, this is a comment.\n" +"To get started with moderating, editing, and deleting comments, please visit " +"the Comments screen in the dashboard.\n" +"Commenter avatars come from Gravatar." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:220 +#: tmp/wordpress/wp-admin/includes/upgrade.php:220 +msgid "" +"This is an example page. It's different from a blog post because it will " +"stay in one place and will show up in your site navigation (in most themes). " +"Most people start with an About page that introduces them to potential site " +"visitors. It might say something like this:\n" +"\n" +"
    Hi there! I'm a bike messenger by day, aspiring actor by night, " +"and this is my website. I live in Los Angeles, have a great dog named Jack, " +"and I like piña coladas. (And gettin' caught in the rain.)\n" +"\n" +"...or something like this:\n" +"\n" +"
    The XYZ Doohickey Company was founded in 1971, and has been " +"providing quality doohickeys to the public ever since. Located in Gotham " +"City, XYZ employs over 2,000 people and does all kinds of awesome things for " +"the Gotham community.
    \n" +"\n" +"As a new WordPress user, you should go to your dashboard " +"to delete this page and create new pages for your content. Have fun!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:239 +#: tmp/wordpress/wp-admin/includes/upgrade.php:239 +msgid "Sample Page" +msgstr "" + +#. translators: Default page slug +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:241 +#: tmp/wordpress/wp-admin/includes/upgrade.php:241 +msgid "sample-page" +msgstr "" + +#. translators: New site notification email. 1: New site URL, 2: User login, 3: +#. User password or password reset link, 4: Login URL +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:379 +#: tmp/wordpress/wp-admin/includes/upgrade.php:379 +msgid "" +"Your new WordPress site has been successfully set up at:\n" +"\n" +"%1$s\n" +"\n" +"You can log in to the administrator account with the following information:\n" +"\n" +"Username: %2$s\n" +"Password: %3$s\n" +"Log in here: %4$s\n" +"\n" +"We hope you enjoy your new site. Thanks!\n" +"\n" +"--The WordPress Team\n" +"https://wordpress.org/\n" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/upgrade.php:395 +#: tmp/wordpress/wp-admin/includes/upgrade.php:395 +msgid "New WordPress Site" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/user.php:62 +#: tmp/wordpress/wp-admin/includes/user.php:62 +msgid "You can’t give users that role." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/user.php:123 +#: tmp/old/wordpress/wp-includes/user.php:2279 +#: tmp/wordpress/wp-admin/includes/user.php:123 +#: tmp/wordpress/wp-includes/user.php:2279 +msgid "ERROR: Please enter a username." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/user.php:127 +#: tmp/wordpress/wp-admin/includes/user.php:127 +msgid "ERROR: Please enter a nickname." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/user.php:143 +#: tmp/wordpress/wp-admin/includes/user.php:143 +msgid "ERROR: Please enter a password." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/user.php:148 +#: tmp/wordpress/wp-admin/includes/user.php:148 +msgid "ERROR: Passwords may not contain the character \"\\\"." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/user.php:153 +#: tmp/wordpress/wp-admin/includes/user.php:153 +msgid "" +"ERROR: Please enter the same password in both password " +"fields." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/user.php:160 +#: tmp/old/wordpress/wp-includes/user.php:2281 +#: tmp/wordpress/wp-admin/includes/user.php:160 +#: tmp/wordpress/wp-includes/user.php:2281 +msgid "" +"ERROR: This username is invalid because it uses illegal " +"characters. Please enter a valid username." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/user.php:163 +#: tmp/old/wordpress/wp-includes/user.php:2284 +#: tmp/wordpress/wp-admin/includes/user.php:163 +#: tmp/wordpress/wp-includes/user.php:2284 +msgid "" +"ERROR: This username is already registered. Please choose " +"another one." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/user.php:169 +#: tmp/old/wordpress/wp-includes/user.php:2290 +#: tmp/wordpress/wp-admin/includes/user.php:169 +#: tmp/wordpress/wp-includes/user.php:2290 +msgid "ERROR: Sorry, that username is not allowed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/user.php:174 +#: tmp/wordpress/wp-admin/includes/user.php:174 +msgid "ERROR: Please enter an email address." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/user.php:178 +#: tmp/old/wordpress/wp-includes/user.php:2301 +#: tmp/wordpress/wp-admin/includes/user.php:178 +#: tmp/wordpress/wp-includes/user.php:2301 +msgid "" +"ERROR: This email is already registered, please choose " +"another one." +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/user.php:477 +#: tmp/wordpress/wp-admin/includes/user.php:477 +msgid "Notice:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/user.php:478 +#: tmp/wordpress/wp-admin/includes/user.php:478 +msgid "" +"You’re using the auto-generated password for your account. Would you " +"like to change it?" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/user.php:480 +#: tmp/wordpress/wp-admin/includes/user.php:480 +msgid "Yes, take me to my profile page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/user.php:481 +#: tmp/wordpress/wp-admin/includes/user.php:481 +msgid "No thanks, do not remind me again" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/user.php:516 +#: tmp/wordpress/wp-admin/includes/user.php:516 +msgid "Use https" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/user.php:517 +#: tmp/wordpress/wp-admin/includes/user.php:517 +msgid "Always use https when visiting the admin" +msgstr "" + +#. translators: 1: Site name, 2: site URL, 3: role +#: tmp/old/wordpress/wp-admin/includes/user.php:531 +#: tmp/wordpress/wp-admin/includes/user.php:531 +msgid "" +"Hi,\n" +"You've been invited to join '%1$s' at\n" +"%2$s with the role of %3$s.\n" +"If you do not want to join this site please ignore\n" +"this email. This invitation will expire in a few days.\n" +"\n" +"Please click the following link to activate your user account:\n" +"%%s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/widgets.php:224 +#: tmp/wordpress/wp-admin/includes/widgets.php:224 +msgctxt "widget" +msgid "Edit" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/widgets.php:225 +#: tmp/wordpress/wp-admin/includes/widgets.php:225 +msgctxt "widget" +msgid "Add" +msgstr "" + +#: tmp/old/wordpress/wp-admin/includes/widgets.php:239 +#: tmp/old/wordpress/wp-admin/widgets.php:279 +#: tmp/old/wordpress/wp-includes/class-wp-widget.php:155 +#: tmp/wordpress/wp-admin/includes/widgets.php:239 +#: tmp/wordpress/wp-admin/widgets.php:279 +#: tmp/wordpress/wp-includes/class-wp-widget.php:155 +msgid "There are no options for this widget." +msgstr "" + +#: tmp/old/wordpress/wp-admin/index.php:34 tmp/wordpress/wp-admin/index.php:34 +msgid "" +"Welcome to your WordPress Dashboard! This is the screen you will see when " +"you log in to your site, and gives you access to all the site management " +"features of WordPress. You can get help for any screen by clicking the Help " +"tab above the screen title." +msgstr "" + +#: tmp/old/wordpress/wp-admin/index.php:46 tmp/wordpress/wp-admin/index.php:46 +msgid "" +"The left-hand navigation menu provides links to all of the WordPress " +"administration screens, with submenu items displayed on hover. You can " +"minimize this menu to a narrow icon strip by clicking on the Collapse Menu " +"arrow at the bottom." +msgstr "" + +#: tmp/old/wordpress/wp-admin/index.php:47 tmp/wordpress/wp-admin/index.php:47 +msgid "" +"Links in the Toolbar at the top of the screen connect your dashboard and the " +"front end of your site, and provide access to your profile and helpful " +"WordPress information." +msgstr "" + +#: tmp/old/wordpress/wp-admin/index.php:51 tmp/wordpress/wp-admin/index.php:51 +msgid "Navigation" +msgstr "" + +#: tmp/old/wordpress/wp-admin/index.php:55 tmp/wordpress/wp-admin/index.php:55 +msgid "" +"You can use the following controls to arrange your Dashboard screen to suit " +"your workflow. This is true on most other administration screens as well." +msgstr "" + +#: tmp/old/wordpress/wp-admin/index.php:56 tmp/wordpress/wp-admin/index.php:56 +msgid "" +"Screen Options — Use the Screen Options tab to choose " +"which Dashboard boxes to show." +msgstr "" + +#: tmp/old/wordpress/wp-admin/index.php:57 tmp/wordpress/wp-admin/index.php:57 +msgid "" +"Drag and Drop — To rearrange the boxes, drag and drop " +"by clicking on the title bar of the selected box and releasing when you see " +"a gray dotted-line rectangle appear in the location you want to place the " +"box." +msgstr "" + +#: tmp/old/wordpress/wp-admin/index.php:58 tmp/wordpress/wp-admin/index.php:58 +msgid "" +"Box Controls — Click the title bar of the box to " +"expand or collapse it. Some boxes added by plugins may have configurable " +"content, and will show a “Configure” link in the title bar if " +"you hover over it." +msgstr "" + +#: tmp/old/wordpress/wp-admin/index.php:66 tmp/wordpress/wp-admin/index.php:66 +msgid "The boxes on your Dashboard screen are:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/index.php:68 tmp/wordpress/wp-admin/index.php:68 +msgid "" +"At A Glance — Displays a summary of the content on " +"your site and identifies which theme and version of WordPress you are using." +msgstr "" + +#: tmp/old/wordpress/wp-admin/index.php:69 tmp/wordpress/wp-admin/index.php:69 +msgid "" +"Activity — Shows the upcoming scheduled posts, " +"recently published posts, and the most recent comments on your posts and " +"allows you to moderate them." +msgstr "" + +#: tmp/old/wordpress/wp-admin/index.php:71 tmp/wordpress/wp-admin/index.php:71 +msgid "" +"Quick Draft — Allows you to create a new post and " +"save it as a draft. Also displays links to the 5 most recent draft posts " +"you've started." +msgstr "" + +#. translators: %s: WordPress Planet URL +#: tmp/old/wordpress/wp-admin/index.php:75 tmp/wordpress/wp-admin/index.php:75 +msgid "" +"WordPress News — Latest news from the official " +"WordPress project, the WordPress Planet, and popular " +"plugins." +msgstr "" + +#. translators: %s: WordPress Planet URL +#: tmp/old/wordpress/wp-admin/index.php:81 tmp/wordpress/wp-admin/index.php:81 +msgid "" +"WordPress News — Latest news from the official " +"WordPress project and the WordPress Planet." +msgstr "" + +#: tmp/old/wordpress/wp-admin/index.php:85 tmp/wordpress/wp-admin/index.php:85 +msgid "" +"Welcome — Shows links for some of the most common " +"tasks when setting up a new site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/index.php:89 +#: tmp/old/wordpress/wp-includes/revision.php:35 +#: tmp/wordpress/wp-admin/index.php:89 +#: tmp/wordpress/wp-includes/revision.php:35 +msgid "Content" +msgstr "" + +#: tmp/old/wordpress/wp-admin/index.php:97 tmp/wordpress/wp-admin/index.php:97 +msgid "" +"Documentation on " +"Dashboard" +msgstr "" + +#: tmp/old/wordpress/wp-admin/index.php:118 +#: tmp/wordpress/wp-admin/index.php:118 +msgid "Dismiss the welcome panel" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:73 +#: tmp/wordpress/wp-admin/install.php:73 +msgid "WordPress › Installation" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:110 +#: tmp/old/wordpress/wp-admin/install.php:315 +#: tmp/wordpress/wp-admin/install.php:110 +#: tmp/wordpress/wp-admin/install.php:315 +msgctxt "Howdy" +msgid "Welcome" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:116 +#: tmp/old/wordpress/wp-admin/network/site-new.php:210 +#: tmp/old/wordpress/wp-admin/options-general.php:60 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3731 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:479 +#: tmp/wordpress/wp-admin/install.php:116 +#: tmp/wordpress/wp-admin/network/site-new.php:210 +#: tmp/wordpress/wp-admin/options-general.php:60 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3731 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:479 +msgid "Site Title" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:124 +#: tmp/wordpress/wp-admin/install.php:124 +msgid "User(s) already exists." +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:128 +#: tmp/wordpress/wp-admin/install.php:128 +msgid "" +"Usernames can have only alphanumeric characters, spaces, underscores, " +"hyphens, periods, and the @ symbol." +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:144 +#: tmp/old/wordpress/wp-admin/user-edit.php:548 +#: tmp/old/wordpress/wp-admin/user-new.php:440 +#: tmp/old/wordpress/wp-includes/script-loader.php:417 +#: tmp/wordpress/wp-admin/install.php:144 +#: tmp/wordpress/wp-admin/user-edit.php:548 +#: tmp/wordpress/wp-admin/user-new.php:440 +#: tmp/wordpress/wp-includes/script-loader.php:417 +msgid "Hide password" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:151 +#: tmp/old/wordpress/wp-admin/user-edit.php:175 +#: tmp/wordpress/wp-admin/install.php:151 +#: tmp/wordpress/wp-admin/user-edit.php:175 +msgid "Important:" +msgstr "" + +#. translators: The non-breaking space prevents 1Password from thinking the +#. text "log in" should trigger a password save prompt. +#: tmp/old/wordpress/wp-admin/install.php:153 +#: tmp/wordpress/wp-admin/install.php:153 +msgid "" +"You will need this password to log in. Please store it in a secure " +"location." +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:158 +#: tmp/old/wordpress/wp-admin/user-new.php:452 +#: tmp/wordpress/wp-admin/install.php:158 +#: tmp/wordpress/wp-admin/user-new.php:452 +msgid "Repeat Password" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:159 +#: tmp/old/wordpress/wp-admin/user-edit.php:384 +#: tmp/old/wordpress/wp-admin/user-edit.php:429 +#: tmp/old/wordpress/wp-admin/user-new.php:405 +#: tmp/old/wordpress/wp-admin/user-new.php:409 +#: tmp/old/wordpress/wp-admin/user-new.php:429 +#: tmp/old/wordpress/wp-admin/user-new.php:452 +#: tmp/wordpress/wp-admin/install.php:159 +#: tmp/wordpress/wp-admin/user-edit.php:384 +#: tmp/wordpress/wp-admin/user-edit.php:429 +#: tmp/wordpress/wp-admin/user-new.php:405 +#: tmp/wordpress/wp-admin/user-new.php:409 +#: tmp/wordpress/wp-admin/user-new.php:429 +#: tmp/wordpress/wp-admin/user-new.php:452 +msgid "(required)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:167 +#: tmp/old/wordpress/wp-admin/user-edit.php:567 +#: tmp/old/wordpress/wp-admin/user-new.php:458 +#: tmp/wordpress/wp-admin/install.php:167 +#: tmp/wordpress/wp-admin/user-edit.php:567 +#: tmp/wordpress/wp-admin/user-new.php:458 +msgid "Confirm Password" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:171 +#: tmp/old/wordpress/wp-admin/user-new.php:462 +#: tmp/old/wordpress/wp-includes/script-loader.php:412 +#: tmp/wordpress/wp-admin/install.php:171 +#: tmp/wordpress/wp-admin/user-new.php:462 +#: tmp/wordpress/wp-includes/script-loader.php:412 +msgid "Confirm use of weak password" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:177 +#: tmp/wordpress/wp-admin/install.php:177 +msgid "Your Email" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:179 +#: tmp/wordpress/wp-admin/install.php:179 +msgid "Double-check your email address before continuing." +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:182 +#: tmp/old/wordpress/wp-admin/install.php:185 +#: tmp/old/wordpress/wp-admin/options-reading.php:31 +#: tmp/old/wordpress/wp-admin/options-reading.php:111 +#: tmp/old/wordpress/wp-admin/options-reading.php:112 +#: tmp/wordpress/wp-admin/install.php:182 +#: tmp/wordpress/wp-admin/install.php:185 +#: tmp/wordpress/wp-admin/options-reading.php:31 +#: tmp/wordpress/wp-admin/options-reading.php:111 +#: tmp/wordpress/wp-admin/options-reading.php:112 +msgid "Site Visibility" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:182 +#: tmp/old/wordpress/wp-admin/install.php:185 +#: tmp/old/wordpress/wp-admin/options-reading.php:31 +#: tmp/old/wordpress/wp-admin/options-reading.php:111 +#: tmp/old/wordpress/wp-admin/options-reading.php:112 +#: tmp/wordpress/wp-admin/install.php:182 +#: tmp/wordpress/wp-admin/install.php:185 +#: tmp/wordpress/wp-admin/options-reading.php:31 +#: tmp/wordpress/wp-admin/options-reading.php:111 +#: tmp/wordpress/wp-admin/options-reading.php:112 +msgid "Search Engine Visibility" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:189 +#: tmp/old/wordpress/wp-admin/options-reading.php:115 +#: tmp/wordpress/wp-admin/install.php:189 +#: tmp/wordpress/wp-admin/options-reading.php:115 +msgid "Allow search engines to index this site" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:191 +#: tmp/old/wordpress/wp-admin/install.php:198 +#: tmp/old/wordpress/wp-admin/options-reading.php:117 +#: tmp/old/wordpress/wp-admin/options-reading.php:137 +#: tmp/wordpress/wp-admin/install.php:191 +#: tmp/wordpress/wp-admin/install.php:198 +#: tmp/wordpress/wp-admin/options-reading.php:117 +#: tmp/wordpress/wp-admin/options-reading.php:137 +msgid "Discourage search engines from indexing this site" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:192 +#: tmp/old/wordpress/wp-admin/options-reading.php:118 +#: tmp/wordpress/wp-admin/install.php:192 +#: tmp/wordpress/wp-admin/options-reading.php:118 +msgid "" +"Note: Neither of these options blocks access to your site — it is up " +"to search engines to honor your request." +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:199 +#: tmp/old/wordpress/wp-admin/options-reading.php:138 +#: tmp/wordpress/wp-admin/install.php:199 +#: tmp/wordpress/wp-admin/options-reading.php:138 +msgid "It is up to search engines to honor this request." +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:205 +#: tmp/wordpress/wp-admin/install.php:205 +msgid "Install WordPress" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:215 +#: tmp/old/wordpress/wp-includes/ms-functions.php:1367 +#: tmp/wordpress/wp-admin/install.php:215 +#: tmp/wordpress/wp-includes/ms-functions.php:1367 +msgid "Already Installed" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:216 +#: tmp/old/wordpress/wp-includes/ms-functions.php:1367 +#: tmp/wordpress/wp-admin/install.php:216 +#: tmp/wordpress/wp-includes/ms-functions.php:1367 +msgid "" +"You appear to have already installed WordPress. To reinstall please clear " +"your old database tables first." +msgstr "" + +#. translators: 1: WordPress version number, 2: Minimum required PHP version +#. number, 3: Minimum required MySQL version number, 4: Current PHP version +#. number, 5: Current MySQL version number +#: tmp/old/wordpress/wp-admin/install.php:237 +#: tmp/wordpress/wp-admin/install.php:237 +msgid "" +"You cannot install because WordPress %1$s requires PHP version %2$s or higher and MySQL version " +"%3$s or higher. You are running PHP version %4$s and MySQL version %5$s." +msgstr "" + +#. translators: 1: WordPress version number, 2: Minimum required PHP version +#. number, 3: Current PHP version number +#: tmp/old/wordpress/wp-admin/install.php:240 +#: tmp/wordpress/wp-admin/install.php:240 +msgid "" +"You cannot install because WordPress %1$s requires PHP version %2$s or higher. You are running " +"version %3$s." +msgstr "" + +#. translators: 1: WordPress version number, 2: Minimum required MySQL version +#. number, 3: Current MySQL version number +#: tmp/old/wordpress/wp-admin/install.php:243 +#: tmp/wordpress/wp-admin/install.php:243 +msgid "" +"You cannot install because WordPress %1$s requires MySQL version %2$s or higher. You are running " +"version %3$s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:248 +#: tmp/wordpress/wp-admin/install.php:248 +msgid "Insufficient Requirements" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:254 +#: tmp/old/wordpress/wp-admin/install.php:267 +#: tmp/wordpress/wp-admin/install.php:254 +#: tmp/wordpress/wp-admin/install.php:267 +msgid "Configuration Error" +msgstr "" + +#. translators: %s: wp-config.php +#: tmp/old/wordpress/wp-admin/install.php:257 +#: tmp/wordpress/wp-admin/install.php:257 +msgid "" +"Your %s file has an empty database table prefix, which is not supported." +msgstr "" + +#. translators: %s: DO_NOT_UPGRADE_GLOBAL_TABLES +#: tmp/old/wordpress/wp-admin/install.php:270 +#: tmp/wordpress/wp-admin/install.php:270 +msgid "The constant %s cannot be defined when installing WordPress." +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:316 +#: tmp/wordpress/wp-admin/install.php:316 +msgid "" +"Welcome to the famous five-minute WordPress installation process! Just fill " +"in the information below and you’ll be on your way to using the most " +"extendable and powerful personal publishing platform in the world." +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:318 +#: tmp/wordpress/wp-admin/install.php:318 +msgid "Information needed" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:319 +#: tmp/wordpress/wp-admin/install.php:319 +msgid "" +"Please provide the following information. Don’t worry, you can always " +"change these settings later." +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:350 +#: tmp/wordpress/wp-admin/install.php:350 +msgid "Please provide a valid username." +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:354 +#: tmp/wordpress/wp-admin/install.php:354 +msgid "The username you provided has invalid characters." +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:359 +#: tmp/wordpress/wp-admin/install.php:359 +msgid "Your passwords do not match. Please try again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:364 +#: tmp/wordpress/wp-admin/install.php:364 +msgid "You must provide an email address." +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:369 +#: tmp/wordpress/wp-admin/install.php:369 +msgid "" +"Sorry, that isn’t a valid email address. Email addresses look like " +"username@example.com." +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:388 +#: tmp/wordpress/wp-admin/install.php:388 +msgid "Success!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/install.php:390 +#: tmp/wordpress/wp-admin/install.php:390 +msgid "WordPress has been installed. Thank you, and enjoy!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/link-add.php:13 +#: tmp/wordpress/wp-admin/link-add.php:13 +msgid "Sorry, you are not allowed to add links to this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/link-add.php:15 +#: tmp/wordpress/wp-admin/link-add.php:15 +msgid "Add New Link" +msgstr "" + +#: tmp/old/wordpress/wp-admin/link-manager.php:53 +#: tmp/wordpress/wp-admin/link-manager.php:53 +msgid "" +"You can add links here to be displayed on your site, usually using Widgets. By default, links to several sites in the WordPress " +"community are included as examples." +msgstr "" + +#: tmp/old/wordpress/wp-admin/link-manager.php:54 +#: tmp/wordpress/wp-admin/link-manager.php:54 +msgid "" +"Links may be separated into Link Categories; these are different than the " +"categories used on your posts." +msgstr "" + +#: tmp/old/wordpress/wp-admin/link-manager.php:55 +#: tmp/wordpress/wp-admin/link-manager.php:55 +msgid "" +"You can customize the display of this screen using the Screen Options tab " +"and/or the dropdown filters above the links table." +msgstr "" + +#: tmp/old/wordpress/wp-admin/link-manager.php:59 +#: tmp/wordpress/wp-admin/link-manager.php:59 +msgid "Deleting Links" +msgstr "" + +#: tmp/old/wordpress/wp-admin/link-manager.php:61 +#: tmp/wordpress/wp-admin/link-manager.php:61 +msgid "" +"If you delete a link, it will be removed permanently, as Links do not have a " +"Trash function yet." +msgstr "" + +#: tmp/old/wordpress/wp-admin/link-manager.php:66 +#: tmp/wordpress/wp-admin/link-manager.php:66 +msgid "" +"Documentation on " +"Managing Links" +msgstr "" + +#: tmp/old/wordpress/wp-admin/link-manager.php:71 +#: tmp/wordpress/wp-admin/link-manager.php:71 +msgid "Links list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/link-manager.php:94 +#: tmp/wordpress/wp-admin/link-manager.php:94 +msgid "%s link deleted." +msgid_plural "%s links deleted" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/link-manager.php:102 +#: tmp/wordpress/wp-admin/link-manager.php:102 +msgid "Search Links" +msgstr "" + +#: tmp/old/wordpress/wp-admin/link-parse-opml.php:76 +#: tmp/old/wordpress/wp-admin/link-parse-opml.php:77 +#: tmp/old/wordpress/wp-includes/IXR/class-IXR-message.php:48 +#: tmp/old/wordpress/wp-includes/atomlib.php:125 +#: tmp/old/wordpress/wp-includes/feed.php:542 +#: tmp/wordpress/wp-admin/link-parse-opml.php:76 +#: tmp/wordpress/wp-admin/link-parse-opml.php:77 +#: tmp/wordpress/wp-includes/IXR/class-IXR-message.php:48 +#: tmp/wordpress/wp-includes/atomlib.php:125 +#: tmp/wordpress/wp-includes/feed.php:542 +msgid "" +"PHP's XML extension is not available. Please contact your hosting provider " +"to enable PHP's XML extension." +msgstr "" + +#. translators: 1: error message, 2: line number +#: tmp/old/wordpress/wp-admin/link-parse-opml.php:88 +#: tmp/old/wordpress/wp-includes/atomlib.php:149 +#: tmp/wordpress/wp-admin/link-parse-opml.php:88 +#: tmp/wordpress/wp-includes/atomlib.php:149 +msgid "XML Error: %1$s at line %2$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/link.php:104 tmp/wordpress/wp-admin/link.php:104 +msgid "Edit Link" +msgstr "" + +#: tmp/old/wordpress/wp-admin/link.php:109 tmp/wordpress/wp-admin/link.php:109 +msgid "Link not found." +msgstr "" + +#: tmp/old/wordpress/wp-admin/maint/repair.php:20 +#: tmp/wordpress/wp-admin/maint/repair.php:20 +msgid "WordPress › Database Repair" +msgstr "" + +#: tmp/old/wordpress/wp-admin/maint/repair.php:32 +#: tmp/wordpress/wp-admin/maint/repair.php:32 +msgid "Allow automatic database repair" +msgstr "" + +#. translators: %s: wp-config.php +#: tmp/old/wordpress/wp-admin/maint/repair.php:37 +#: tmp/wordpress/wp-admin/maint/repair.php:37 +msgid "" +"To allow use of this page to automatically repair database problems, please " +"add the following line to your %s file. Once this line is added to your " +"config, reload this page." +msgstr "" + +#: tmp/old/wordpress/wp-admin/maint/repair.php:66 +#: tmp/wordpress/wp-admin/maint/repair.php:66 +msgid "Check secret keys" +msgstr "" + +#. Translators: 1: wp-config.php; 2: Secret key service URL. +#: tmp/old/wordpress/wp-admin/maint/repair.php:69 +#: tmp/wordpress/wp-admin/maint/repair.php:69 +msgid "" +"While you are editing your %1$s file, take a moment to make sure you have " +"all 8 keys and that they are unique. You can generate these using the WordPress.org secret key service." +msgstr "" + +#: tmp/old/wordpress/wp-admin/maint/repair.php:74 +#: tmp/wordpress/wp-admin/maint/repair.php:74 +msgid "Database repair results" +msgstr "" + +#. translators: %s: table name +#: tmp/old/wordpress/wp-admin/maint/repair.php:104 +#: tmp/wordpress/wp-admin/maint/repair.php:104 +msgid "The %s table is okay." +msgstr "" + +#. translators: 1: table name, 2: error message, +#: tmp/old/wordpress/wp-admin/maint/repair.php:107 +#: tmp/wordpress/wp-admin/maint/repair.php:107 +msgid "" +"The %1$s table is not okay. It is reporting the following error: %2$s. " +"WordPress will attempt to repair this table…" +msgstr "" + +#. translators: %s: table name +#: tmp/old/wordpress/wp-admin/maint/repair.php:114 +#: tmp/wordpress/wp-admin/maint/repair.php:114 +msgid "Successfully repaired the %s table." +msgstr "" + +#. translators: 1: table name, 2: error message, +#: tmp/old/wordpress/wp-admin/maint/repair.php:117 +#: tmp/wordpress/wp-admin/maint/repair.php:117 +msgid "Failed to repair the %1$s table. Error: %2$s" +msgstr "" + +#. translators: %s: table name +#: tmp/old/wordpress/wp-admin/maint/repair.php:129 +#: tmp/wordpress/wp-admin/maint/repair.php:129 +msgid "The %s table is already optimized." +msgstr "" + +#. translators: %s: table name +#: tmp/old/wordpress/wp-admin/maint/repair.php:136 +#: tmp/wordpress/wp-admin/maint/repair.php:136 +msgid "Successfully optimized the %s table." +msgstr "" + +#. translators: 1: table name, 2: error message, +#: tmp/old/wordpress/wp-admin/maint/repair.php:139 +#: tmp/wordpress/wp-admin/maint/repair.php:139 +msgid "Failed to optimize the %1$s table. Error: %2$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/maint/repair.php:147 +#: tmp/wordpress/wp-admin/maint/repair.php:147 +msgid "" +"Some database problems could not be repaired. Please copy-and-paste the " +"following list of errors to the WordPress support forums " +"to get additional assistance." +msgstr "" + +#: tmp/old/wordpress/wp-admin/maint/repair.php:147 +#: tmp/wordpress/wp-admin/maint/repair.php:147 +msgid "https://wordpress.org/support/forum/how-to-and-troubleshooting" +msgstr "" + +#: tmp/old/wordpress/wp-admin/maint/repair.php:153 +#: tmp/wordpress/wp-admin/maint/repair.php:153 +msgid "" +"Repairs complete. Please remove the following line from wp-config.php to " +"prevent this page from being used by unauthorized users." +msgstr "" + +#: tmp/old/wordpress/wp-admin/maint/repair.php:157 +#: tmp/wordpress/wp-admin/maint/repair.php:157 +msgid "WordPress database repair" +msgstr "" + +#: tmp/old/wordpress/wp-admin/maint/repair.php:160 +#: tmp/wordpress/wp-admin/maint/repair.php:160 +msgid "" +"One or more database tables are unavailable. To allow WordPress to attempt " +"to repair these tables, press the “Repair Database” button. " +"Repairing can take a while, so please be patient." +msgstr "" + +#: tmp/old/wordpress/wp-admin/maint/repair.php:162 +#: tmp/wordpress/wp-admin/maint/repair.php:162 +msgid "" +"WordPress can automatically look for some common database problems and " +"repair them. Repairing can take a while, so please be patient." +msgstr "" + +#: tmp/old/wordpress/wp-admin/maint/repair.php:164 +#: tmp/wordpress/wp-admin/maint/repair.php:164 +msgid "Repair Database" +msgstr "" + +#: tmp/old/wordpress/wp-admin/maint/repair.php:165 +#: tmp/wordpress/wp-admin/maint/repair.php:165 +msgid "" +"WordPress can also attempt to optimize the database. This improves " +"performance in some situations. Repairing and optimizing the database can " +"take a long time and the database will be locked while optimizing." +msgstr "" + +#: tmp/old/wordpress/wp-admin/maint/repair.php:166 +#: tmp/wordpress/wp-admin/maint/repair.php:166 +msgid "Repair and Optimize Database" +msgstr "" + +#: tmp/old/wordpress/wp-admin/media-new.php:40 +#: tmp/wordpress/wp-admin/media-new.php:40 +msgid "Upload New Media" +msgstr "" + +#: tmp/old/wordpress/wp-admin/media-new.php:47 +#: tmp/wordpress/wp-admin/media-new.php:47 +msgid "" +"You can upload media files here without creating a post first. This allows " +"you to upload files to use with posts and pages later and/or to get a web " +"link for a particular file that you can share. There are three options for " +"uploading files:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/media-new.php:49 +#: tmp/wordpress/wp-admin/media-new.php:49 +msgid "" +"Drag and drop your files into the area below. Multiple " +"files are allowed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/media-new.php:50 +#: tmp/wordpress/wp-admin/media-new.php:50 +msgid "" +"Clicking Select Files opens a navigation window showing you " +"files in your operating system. Selecting Open after " +"clicking on the file you want activates a progress bar on the uploader " +"screen." +msgstr "" + +#: tmp/old/wordpress/wp-admin/media-new.php:51 +#: tmp/wordpress/wp-admin/media-new.php:51 +msgid "" +"Revert to the Browser Uploader by clicking the link below " +"the drag and drop box." +msgstr "" + +#: tmp/old/wordpress/wp-admin/media-new.php:56 +#: tmp/wordpress/wp-admin/media-new.php:56 +msgid "" +"Documentation " +"on Uploading Media Files" +msgstr "" + +#: tmp/old/wordpress/wp-admin/media-upload.php:38 +#: tmp/wordpress/wp-admin/media-upload.php:38 +msgid "Invalid item ID." +msgstr "" + +#: tmp/old/wordpress/wp-admin/media.php:23 +#: tmp/old/wordpress/wp-admin/media.php:57 tmp/wordpress/wp-admin/media.php:23 +#: tmp/wordpress/wp-admin/media.php:57 +msgid "Sorry, you are not allowed to edit this attachment." +msgstr "" + +#: tmp/old/wordpress/wp-admin/media.php:45 +#: tmp/old/wordpress/wp-includes/post.php:67 +#: tmp/wordpress/wp-admin/media.php:45 tmp/wordpress/wp-includes/post.php:67 +msgid "Edit Media" +msgstr "" + +#: tmp/old/wordpress/wp-admin/media.php:61 tmp/wordpress/wp-admin/media.php:61 +msgid "" +"You attempted to edit an attachment that doesn’t exist. Perhaps it was " +"deleted?" +msgstr "" + +#: tmp/old/wordpress/wp-admin/media.php:62 tmp/wordpress/wp-admin/media.php:62 +msgid "" +"You attempted to edit an item that isn’t an attachment. Please go back " +"and try again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/media.php:63 tmp/wordpress/wp-admin/media.php:63 +msgid "" +"You can’t edit this attachment because it is in the Trash. Please move " +"it out of the Trash and try again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/media.php:75 tmp/wordpress/wp-admin/media.php:75 +msgid "" +"This screen allows you to edit five fields for metadata in a file within the " +"media library." +msgstr "" + +#. translators: add new file +#: tmp/old/wordpress/wp-admin/media.php:110 +#: tmp/old/wordpress/wp-admin/menu.php:52 +#: tmp/old/wordpress/wp-admin/upload.php:80 +#: tmp/old/wordpress/wp-admin/upload.php:228 +#: tmp/wordpress/wp-admin/media.php:110 tmp/wordpress/wp-admin/menu.php:52 +#: tmp/wordpress/wp-admin/upload.php:80 tmp/wordpress/wp-admin/upload.php:228 +msgctxt "file" +msgid "Add New" +msgstr "" + +#: tmp/old/wordpress/wp-admin/media.php:116 +#: tmp/old/wordpress/wp-admin/media.php:125 +#: tmp/wordpress/wp-admin/media.php:116 tmp/wordpress/wp-admin/media.php:125 +msgid "Update Media" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu-header.php:238 +#: tmp/old/wordpress/wp-includes/script-loader.php:82 +#: tmp/wordpress/wp-admin/menu-header.php:238 +#: tmp/wordpress/wp-includes/script-loader.php:82 +msgid "Collapse Main menu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu-header.php:240 +#: tmp/wordpress/wp-admin/menu-header.php:240 +msgid "Collapse menu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu-header.php:246 +#: tmp/wordpress/wp-admin/menu-header.php:246 +msgid "Main menu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu-header.php:247 +#: tmp/wordpress/wp-admin/menu-header.php:247 +msgid "Skip to main content" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu-header.php:248 +#: tmp/old/wordpress/wp-includes/class-wp-admin-bar.php:418 +#: tmp/wordpress/wp-admin/menu-header.php:248 +#: tmp/wordpress/wp-includes/class-wp-admin-bar.php:418 +msgid "Skip to toolbar" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:25 +#: tmp/old/wordpress/wp-admin/network/menu.php:13 +#: tmp/old/wordpress/wp-includes/post-template.php:1334 +#: tmp/wordpress/wp-admin/menu.php:25 +#: tmp/wordpress/wp-admin/network/menu.php:13 +#: tmp/wordpress/wp-includes/post-template.php:1334 +msgid "Home" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:28 +#: tmp/old/wordpress/wp-admin/my-sites.php:35 +#: tmp/old/wordpress/wp-includes/admin-bar.php:429 +#: tmp/wordpress/wp-admin/menu.php:28 tmp/wordpress/wp-admin/my-sites.php:35 +#: tmp/wordpress/wp-includes/admin-bar.php:429 +msgid "My Sites" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:41 +#: tmp/old/wordpress/wp-admin/network/menu.php:17 +#: tmp/wordpress/wp-admin/menu.php:41 +#: tmp/wordpress/wp-admin/network/menu.php:17 +msgid "Updates %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:50 tmp/wordpress/wp-admin/menu.php:50 +msgid "Library" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:63 tmp/wordpress/wp-admin/menu.php:63 +msgctxt "admin menu" +msgid "All Links" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:66 +#: tmp/old/wordpress/wp-includes/taxonomy.php:111 +#: tmp/wordpress/wp-admin/menu.php:66 +#: tmp/wordpress/wp-includes/taxonomy.php:111 +msgid "Link Categories" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:75 tmp/wordpress/wp-admin/menu.php:75 +msgid "Comments %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:86 tmp/wordpress/wp-admin/menu.php:86 +msgid "All Comments" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:156 tmp/wordpress/wp-admin/menu.php:156 +msgid "Appearance" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:163 +#: tmp/old/wordpress/wp-admin/nav-menus.php:579 +#: tmp/old/wordpress/wp-includes/admin-bar.php:789 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:567 +#: tmp/wordpress/wp-admin/menu.php:163 tmp/wordpress/wp-admin/nav-menus.php:579 +#: tmp/wordpress/wp-includes/admin-bar.php:789 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:567 +msgid "Menus" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:192 +#: tmp/old/wordpress/wp-admin/network/menu.php:42 +#: tmp/wordpress/wp-admin/menu.php:192 +#: tmp/wordpress/wp-admin/network/menu.php:42 +msgctxt "theme editor" +msgid "Editor" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:202 +#: tmp/old/wordpress/wp-admin/network/menu.php:45 +#: tmp/wordpress/wp-admin/menu.php:202 +#: tmp/wordpress/wp-admin/network/menu.php:45 +msgid "Plugins %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:204 +#: tmp/old/wordpress/wp-admin/network/menu.php:49 +#: tmp/wordpress/wp-admin/menu.php:204 +#: tmp/wordpress/wp-admin/network/menu.php:49 +msgid "Installed Plugins" +msgstr "" + +#. translators: add new plugin +#: tmp/old/wordpress/wp-admin/menu.php:208 +#: tmp/old/wordpress/wp-admin/network/menu.php:50 +#: tmp/old/wordpress/wp-admin/plugins.php:504 +#: tmp/wordpress/wp-admin/menu.php:208 +#: tmp/wordpress/wp-admin/network/menu.php:50 +#: tmp/wordpress/wp-admin/plugins.php:504 +msgctxt "plugin" +msgid "Add New" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:209 +#: tmp/old/wordpress/wp-admin/network/menu.php:51 +#: tmp/wordpress/wp-admin/menu.php:209 +#: tmp/wordpress/wp-admin/network/menu.php:51 +msgctxt "plugin editor" +msgid "Editor" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:217 +#: tmp/old/wordpress/wp-admin/user/menu.php:14 +#: tmp/old/wordpress/wp-admin/user-edit.php:28 +#: tmp/wordpress/wp-admin/menu.php:217 tmp/wordpress/wp-admin/user/menu.php:14 +#: tmp/wordpress/wp-admin/user-edit.php:28 +msgid "Profile" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:221 +#: tmp/old/wordpress/wp-admin/network/menu.php:32 +#: tmp/wordpress/wp-admin/menu.php:221 +#: tmp/wordpress/wp-admin/network/menu.php:32 +msgid "All Users" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:223 +#: tmp/old/wordpress/wp-admin/menu.php:225 +#: tmp/old/wordpress/wp-admin/network/menu.php:33 +#: tmp/old/wordpress/wp-admin/network/users.php:220 +#: tmp/old/wordpress/wp-admin/user-edit.php:206 +#: tmp/old/wordpress/wp-admin/users.php:498 tmp/wordpress/wp-admin/menu.php:223 +#: tmp/wordpress/wp-admin/menu.php:225 +#: tmp/wordpress/wp-admin/network/menu.php:33 +#: tmp/wordpress/wp-admin/network/users.php:220 +#: tmp/wordpress/wp-admin/user-edit.php:206 +#: tmp/wordpress/wp-admin/users.php:498 +msgctxt "user" +msgid "Add New" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:228 +#: tmp/old/wordpress/wp-admin/menu.php:231 tmp/wordpress/wp-admin/menu.php:228 +#: tmp/wordpress/wp-admin/menu.php:231 +msgid "Your Profile" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:233 +#: tmp/old/wordpress/wp-admin/menu.php:235 +#: tmp/old/wordpress/wp-admin/network/site-users.php:313 +#: tmp/old/wordpress/wp-admin/network/site-users.php:336 +#: tmp/old/wordpress/wp-admin/network/user-new.php:85 +#: tmp/old/wordpress/wp-admin/network/user-new.php:91 +#: tmp/old/wordpress/wp-admin/user-new.php:172 +#: tmp/old/wordpress/wp-admin/user-new.php:280 +#: tmp/old/wordpress/wp-admin/user-new.php:380 +#: tmp/old/wordpress/wp-admin/user-new.php:501 +#: tmp/wordpress/wp-admin/menu.php:233 tmp/wordpress/wp-admin/menu.php:235 +#: tmp/wordpress/wp-admin/network/site-users.php:313 +#: tmp/wordpress/wp-admin/network/site-users.php:336 +#: tmp/wordpress/wp-admin/network/user-new.php:85 +#: tmp/wordpress/wp-admin/network/user-new.php:91 +#: tmp/wordpress/wp-admin/user-new.php:172 +#: tmp/wordpress/wp-admin/user-new.php:280 +#: tmp/wordpress/wp-admin/user-new.php:380 +#: tmp/wordpress/wp-admin/user-new.php:501 +msgid "Add New User" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:239 +#: tmp/old/wordpress/wp-admin/tools.php:12 tmp/wordpress/wp-admin/menu.php:239 +#: tmp/wordpress/wp-admin/tools.php:12 +msgid "Tools" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:240 tmp/wordpress/wp-admin/menu.php:240 +msgid "Available Tools" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:244 +#: tmp/old/wordpress/wp-admin/ms-delete-site.php:30 +#: tmp/wordpress/wp-admin/menu.php:244 +#: tmp/wordpress/wp-admin/ms-delete-site.php:30 +msgid "Delete Site" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:246 +#: tmp/old/wordpress/wp-admin/network/menu.php:56 +#: tmp/old/wordpress/wp-admin/network.php:52 +#: tmp/wordpress/wp-admin/menu.php:246 +#: tmp/wordpress/wp-admin/network/menu.php:56 +#: tmp/wordpress/wp-admin/network.php:52 +msgid "Network Setup" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:249 tmp/wordpress/wp-admin/menu.php:249 +msgctxt "settings screen" +msgid "General" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:250 tmp/wordpress/wp-admin/menu.php:250 +msgid "Writing" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:251 tmp/wordpress/wp-admin/menu.php:251 +msgid "Reading" +msgstr "" + +#: tmp/old/wordpress/wp-admin/menu.php:254 tmp/wordpress/wp-admin/menu.php:254 +msgid "Permalinks" +msgstr "" + +#: tmp/old/wordpress/wp-admin/ms-delete-site.php:13 +#: tmp/old/wordpress/wp-admin/my-sites.php:13 +#: tmp/old/wordpress/wp-admin/network/admin.php:17 +#: tmp/wordpress/wp-admin/ms-delete-site.php:13 +#: tmp/wordpress/wp-admin/my-sites.php:13 +#: tmp/wordpress/wp-admin/network/admin.php:17 +msgid "Multisite support is not enabled." +msgstr "" + +#: tmp/old/wordpress/wp-admin/ms-delete-site.php:16 +#: tmp/wordpress/wp-admin/ms-delete-site.php:16 +msgid "Sorry, you are not allowed to delete this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/ms-delete-site.php:21 +#: tmp/wordpress/wp-admin/ms-delete-site.php:21 +msgid "" +"Thank you for using %s, your site has been deleted. Happy trails to you " +"until we meet again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/ms-delete-site.php:23 +#: tmp/wordpress/wp-admin/ms-delete-site.php:23 +msgid "I'm sorry, the link you clicked is stale. Please select another option." +msgstr "" + +#. translators: Do not translate USERNAME, URL_DELETE, SITE_NAME: those are +#. placeholders. +#: tmp/old/wordpress/wp-admin/ms-delete-site.php:48 +#: tmp/wordpress/wp-admin/ms-delete-site.php:48 +msgid "" +"Howdy ###USERNAME###,\n" +"\n" +"You recently clicked the 'Delete Site' link on your site and filled in a\n" +"form on that page.\n" +"\n" +"If you really want to delete your site, click the link below. You will not\n" +"be asked to confirm again so only click this link if you are absolutely " +"certain:\n" +"###URL_DELETE###\n" +"\n" +"If you delete your site, please consider opening a new site here\n" +"some time in the future! (But remember your current site and username\n" +"are gone forever.)\n" +"\n" +"Thanks for using the site,\n" +"Webmaster\n" +"###SITE_NAME###" +msgstr "" + +#: tmp/old/wordpress/wp-admin/ms-delete-site.php:77 +#: tmp/wordpress/wp-admin/ms-delete-site.php:77 +msgid "Delete My Site" +msgstr "" + +#: tmp/old/wordpress/wp-admin/ms-delete-site.php:84 +#: tmp/wordpress/wp-admin/ms-delete-site.php:84 +msgid "" +"Thank you. Please check your email for a link to confirm your action. Your " +"site will not be deleted until this link is clicked." +msgstr "" + +#: tmp/old/wordpress/wp-admin/ms-delete-site.php:88 +#: tmp/wordpress/wp-admin/ms-delete-site.php:88 +msgid "" +"If you do not want to use your %s site any more, you can delete it using the " +"form below. When you click Delete My Site Permanently you " +"will be sent an email with a link in it. Click on this link to delete your " +"site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/ms-delete-site.php:89 +#: tmp/wordpress/wp-admin/ms-delete-site.php:89 +msgid "Remember, once deleted your site cannot be restored." +msgstr "" + +#. translators: %s: site address +#: tmp/old/wordpress/wp-admin/ms-delete-site.php:97 +#: tmp/wordpress/wp-admin/ms-delete-site.php:97 +msgid "" +"I'm sure I want to permanently disable my site, and I am aware I can never " +"get it back or use %s again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/ms-delete-site.php:101 +#: tmp/wordpress/wp-admin/ms-delete-site.php:101 +msgid "Delete My Site Permanently" +msgstr "" + +#: tmp/old/wordpress/wp-admin/my-sites.php:31 +#: tmp/wordpress/wp-admin/my-sites.php:31 +msgid "The primary site you chose does not exist." +msgstr "" + +#: tmp/old/wordpress/wp-admin/my-sites.php:42 +#: tmp/wordpress/wp-admin/my-sites.php:42 +msgid "" +"This screen shows an individual user all of their sites in this network, and " +"also allows that user to set a primary site. They can use the links under " +"each site to visit either the front end or the dashboard for that site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/my-sites.php:47 +#: tmp/wordpress/wp-admin/my-sites.php:47 +msgid "" +"Documentation on My Sites" +msgstr "" + +#: tmp/old/wordpress/wp-admin/my-sites.php:54 +#: tmp/old/wordpress/wp-admin/network/settings.php:94 +#: tmp/old/wordpress/wp-admin/network/sites.php:276 +#: tmp/old/wordpress/wp-admin/options-head.php:15 +#: tmp/old/wordpress/wp-admin/options.php:239 +#: tmp/wordpress/wp-admin/my-sites.php:54 +#: tmp/wordpress/wp-admin/network/settings.php:94 +#: tmp/wordpress/wp-admin/network/sites.php:276 +#: tmp/wordpress/wp-admin/options-head.php:15 +#: tmp/wordpress/wp-admin/options.php:239 +msgid "Settings saved." +msgstr "" + +#: tmp/old/wordpress/wp-admin/my-sites.php:64 +#: tmp/old/wordpress/wp-admin/network/menu.php:29 +#: tmp/old/wordpress/wp-admin/network/sites.php:293 +#: tmp/wordpress/wp-admin/my-sites.php:64 +#: tmp/wordpress/wp-admin/network/menu.php:29 +#: tmp/wordpress/wp-admin/network/sites.php:293 +msgctxt "site" +msgid "Add New" +msgstr "" + +#: tmp/old/wordpress/wp-admin/my-sites.php:71 +#: tmp/wordpress/wp-admin/my-sites.php:71 +msgid "You must be a member of at least one site to use this page." +msgstr "" + +#: tmp/old/wordpress/wp-admin/my-sites.php:102 +#: tmp/wordpress/wp-admin/my-sites.php:102 +msgid "Global Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:19 +#: tmp/wordpress/wp-admin/nav-menus.php:19 +msgid "Your theme does not support navigation menus or widgets." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:25 +#: tmp/old/wordpress/wp-admin/themes.php:15 +#: tmp/old/wordpress/wp-admin/widgets.php:18 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:512 +#: tmp/wordpress/wp-admin/nav-menus.php:25 tmp/wordpress/wp-admin/themes.php:15 +#: tmp/wordpress/wp-admin/widgets.php:18 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:512 +msgid "Sorry, you are not allowed to edit theme options on this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:245 +#: tmp/wordpress/wp-admin/nav-menus.php:245 +msgid "The menu item has been successfully deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:264 +#: tmp/wordpress/wp-admin/nav-menus.php:264 +msgid "The menu has been successfully deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:281 +#: tmp/wordpress/wp-admin/nav-menus.php:281 +msgid "Selected menus have been successfully deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:341 +#: tmp/old/wordpress/wp-admin/nav-menus.php:351 +#: tmp/wordpress/wp-admin/nav-menus.php:341 +#: tmp/wordpress/wp-admin/nav-menus.php:351 +msgid "Please enter a valid menu name." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:394 +#: tmp/wordpress/wp-admin/nav-menus.php:394 +msgid "Menu locations updated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:417 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:456 +#: tmp/wordpress/wp-admin/nav-menus.php:417 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:456 +msgid "Move up one" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:418 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:457 +#: tmp/wordpress/wp-admin/nav-menus.php:418 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:457 +msgid "Move down one" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:419 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:458 +#: tmp/wordpress/wp-admin/nav-menus.php:419 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:458 +msgid "Move to the top" +msgstr "" + +#. translators: %s: previous item name +#: tmp/old/wordpress/wp-admin/nav-menus.php:421 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:460 +#: tmp/wordpress/wp-admin/nav-menus.php:421 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:460 +msgid "Move under %s" +msgstr "" + +#. translators: %s: previous item name +#: tmp/old/wordpress/wp-admin/nav-menus.php:423 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:462 +#: tmp/wordpress/wp-admin/nav-menus.php:423 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:462 +msgid "Move out from under %s" +msgstr "" + +#. translators: %s: previous item name +#: tmp/old/wordpress/wp-admin/nav-menus.php:425 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:464 +#: tmp/wordpress/wp-admin/nav-menus.php:425 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:464 +msgid "Under %s" +msgstr "" + +#. translators: %s: previous item name +#: tmp/old/wordpress/wp-admin/nav-menus.php:427 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:466 +#: tmp/wordpress/wp-admin/nav-menus.php:427 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:466 +msgid "Out from under %s" +msgstr "" + +#. translators: 1: item name, 2: item position, 3: total number of items +#: tmp/old/wordpress/wp-admin/nav-menus.php:429 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:468 +#: tmp/wordpress/wp-admin/nav-menus.php:429 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:468 +msgid "%1$s. Menu item %2$d of %3$d." +msgstr "" + +#. translators: 1: item name, 2: item position, 3: parent item name +#: tmp/old/wordpress/wp-admin/nav-menus.php:431 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:470 +#: tmp/wordpress/wp-admin/nav-menus.php:431 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:470 +msgid "%1$s. Sub item number %2$d under %3$s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:517 +#: tmp/wordpress/wp-admin/nav-menus.php:517 +msgid "" +"Your theme does not natively support menus, but you can use them in sidebars " +"by adding a “Custom Menu” widget on the Widgets screen." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:520 +#: tmp/wordpress/wp-admin/nav-menus.php:520 +msgid "This screen is used for managing your custom navigation menus." +msgstr "" + +#. translators: 1: Widgets admin screen URL, 2 and 3: The name of the default +#. themes +#: tmp/old/wordpress/wp-admin/nav-menus.php:522 +#: tmp/wordpress/wp-admin/nav-menus.php:522 +msgid "" +"Menus can be displayed in locations defined by your theme, even used in " +"sidebars by adding a “Custom Menu” widget on the Widgets screen. If your theme does not support the custom menus " +"feature (the default themes, %2$s and %3$s, do), you can learn about adding " +"this support by following the Documentation link to the side." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:523 +#: tmp/old/wordpress/wp-admin/themes.php:73 +#: tmp/wordpress/wp-admin/nav-menus.php:523 +#: tmp/wordpress/wp-admin/themes.php:73 +msgid "From this screen you can:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:524 +#: tmp/wordpress/wp-admin/nav-menus.php:524 +msgid "Create, edit, and delete menus" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:525 +#: tmp/wordpress/wp-admin/nav-menus.php:525 +msgid "Add, organize, and modify individual menu items" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:533 +#: tmp/wordpress/wp-admin/nav-menus.php:533 +msgid "" +"The menu management box at the top of the screen is used to control which " +"menu is opened in the editor below." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:534 +#: tmp/wordpress/wp-admin/nav-menus.php:534 +msgid "" +"To edit an existing menu, choose a menu from the drop down and click " +"Select" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:535 +#: tmp/wordpress/wp-admin/nav-menus.php:535 +msgid "" +"If you haven’t yet created any menus, click the ’create " +"a new menu’ link to get started" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:536 +#: tmp/wordpress/wp-admin/nav-menus.php:536 +msgid "" +"You can assign theme locations to individual menus by selecting the " +"desired settings at the bottom of the menu editor. To assign menus " +"to all theme locations at once, visit the Manage Locations tab at the top of the screen." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:540 +#: tmp/wordpress/wp-admin/nav-menus.php:540 +msgid "Menu Management" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:544 +#: tmp/wordpress/wp-admin/nav-menus.php:544 +msgid "" +"Each custom menu may contain a mix of links to pages, categories, custom " +"URLs or other content types. Menu links are added by selecting items from " +"the expanding boxes in the left-hand column below." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:545 +#: tmp/wordpress/wp-admin/nav-menus.php:545 +msgid "" +"Clicking the arrow to the right of any menu item in the " +"editor will reveal a standard group of settings. Additional settings such as " +"link target, CSS classes, link relationships, and link descriptions can be " +"enabled and disabled via the Screen Options tab." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:546 +#: tmp/wordpress/wp-admin/nav-menus.php:546 +msgid "" +"Add one or several items at once by selecting the checkbox next to " +"each item and clicking Add to Menu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:547 +#: tmp/wordpress/wp-admin/nav-menus.php:547 +msgid "" +"To add a custom link, expand the Custom Links section, enter a URL " +"and link text, and click Add to Menu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:548 +#: tmp/wordpress/wp-admin/nav-menus.php:548 +msgid "" +"To reorganize menu items, drag and drop items with your mouse or use " +"your keyboard. Drag or move a menu item a little to the right to " +"make it a submenu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:549 +#: tmp/wordpress/wp-admin/nav-menus.php:549 +msgid "" +"Delete a menu item by expanding it and clicking the Remove link" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:553 +#: tmp/wordpress/wp-admin/nav-menus.php:553 +msgid "Editing Menus" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:557 +#: tmp/wordpress/wp-admin/nav-menus.php:557 +msgid "" +"This screen is used for globally assigning menus to locations defined by " +"your theme." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:558 +#: tmp/wordpress/wp-admin/nav-menus.php:558 +msgid "" +"To assign menus to one or more theme locations, select a menu from " +"each location’s drop down. When you’re finished, " +"click Save Changes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:559 +#: tmp/wordpress/wp-admin/nav-menus.php:559 +msgid "" +"To edit a menu currently assigned to a theme location, click the " +"adjacent ’Edit’ link" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:560 +#: tmp/wordpress/wp-admin/nav-menus.php:560 +msgid "" +"To add a new menu instead of assigning an existing one, click the " +"’Use new menu’ link. Your new menu will be " +"automatically assigned to that theme location" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:571 +#: tmp/wordpress/wp-admin/nav-menus.php:571 +msgid "" +"Documentation on Menus" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:589 +#: tmp/old/wordpress/wp-admin/widgets.php:362 +#: tmp/wordpress/wp-admin/nav-menus.php:589 +#: tmp/wordpress/wp-admin/widgets.php:362 +msgid "Manage with Live Preview" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:595 +#: tmp/wordpress/wp-admin/nav-menus.php:595 +msgid "Edit Menus" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:597 +#: tmp/wordpress/wp-admin/nav-menus.php:597 +msgid "Manage Locations" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:610 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:578 +#: tmp/wordpress/wp-admin/nav-menus.php:610 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:578 +msgid "Your theme supports one menu. Select which menu you would like to use." +msgstr "" + +#. translators: %s: number of menu locations +#: tmp/old/wordpress/wp-admin/nav-menus.php:612 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:581 +#: tmp/wordpress/wp-admin/nav-menus.php:612 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:581 +msgid "" +"Your theme supports %s menu. Select which menu appears in each location." +msgid_plural "" +"Your theme supports %s menus. Select which menu appears in each location." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:620 +#: tmp/wordpress/wp-admin/nav-menus.php:620 +msgid "Theme Location" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:621 +#: tmp/wordpress/wp-admin/nav-menus.php:621 +msgid "Assigned Menu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:630 +#: tmp/wordpress/wp-admin/nav-menus.php:630 +msgid "Select a Menu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:642 +#: tmp/wordpress/wp-admin/nav-menus.php:642 +msgctxt "menu" +msgid "Edit" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:642 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-location-control.php:80 +#: tmp/wordpress/wp-admin/nav-menus.php:642 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-location-control.php:80 +msgid "Edit selected menu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:648 +#: tmp/wordpress/wp-admin/nav-menus.php:648 +msgctxt "menu" +msgid "Use new menu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:673 +#: tmp/wordpress/wp-admin/nav-menus.php:673 +msgid "Edit your menu below, or create a new menu." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:678 +#: tmp/wordpress/wp-admin/nav-menus.php:678 +msgid "Select a menu to edit:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:719 +#: tmp/wordpress/wp-admin/nav-menus.php:719 +msgid "or create a new menu." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:760 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:418 +#: tmp/wordpress/wp-admin/nav-menus.php:760 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:418 +msgid "Menu Name" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:763 +#: tmp/old/wordpress/wp-admin/nav-menus.php:842 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-new-menu-control.php:36 +#: tmp/wordpress/wp-admin/nav-menus.php:763 +#: tmp/wordpress/wp-admin/nav-menus.php:842 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-new-menu-control.php:36 +msgid "Create Menu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:763 +#: tmp/old/wordpress/wp-admin/nav-menus.php:842 +#: tmp/wordpress/wp-admin/nav-menus.php:763 +#: tmp/wordpress/wp-admin/nav-menus.php:842 +msgid "Save Menu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:770 +#: tmp/wordpress/wp-admin/nav-menus.php:770 +msgid "Menu Structure" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:771 +#: tmp/wordpress/wp-admin/nav-menus.php:771 +msgid "" +"Edit your default menu by adding or removing items. Drag each item into the " +"order you prefer. Click Create Menu to save your changes." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:771 +#: tmp/wordpress/wp-admin/nav-menus.php:771 +msgid "" +"Drag each item into the order you prefer. Click the arrow on the right of " +"the item to reveal additional configuration options." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:784 +#: tmp/wordpress/wp-admin/nav-menus.php:784 +msgid "Give your menu a name, then click Create Menu." +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:790 +#: tmp/old/wordpress/wp-admin/network/settings.php:355 +#: tmp/wordpress/wp-admin/nav-menus.php:790 +#: tmp/wordpress/wp-admin/network/settings.php:355 +msgid "Menu Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:803 +#: tmp/wordpress/wp-admin/nav-menus.php:803 +msgid "Auto add pages" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:805 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-auto-add-control.php:47 +#: tmp/wordpress/wp-admin/nav-menus.php:805 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-auto-add-control.php:47 +msgid "Automatically add new top-level pages to this menu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:812 +#: tmp/wordpress/wp-admin/nav-menus.php:812 +msgid "Display location" +msgstr "" + +#. translators: %s: menu name +#: tmp/old/wordpress/wp-admin/nav-menus.php:820 +#: tmp/wordpress/wp-admin/nav-menus.php:820 +msgctxt "menu location" +msgid "(Currently set to: %s)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/nav-menus.php:838 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:61 +#: tmp/wordpress/wp-admin/nav-menus.php:838 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:61 +msgid "Delete Menu" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/index.php:22 +#: tmp/wordpress/wp-admin/network/index.php:22 +msgid "" +"Welcome to your Network Admin. This area of the Administration Screens is " +"used for managing all aspects of your Multisite Network." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/index.php:23 +#: tmp/wordpress/wp-admin/network/index.php:23 +msgid "From here you can:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/index.php:24 +#: tmp/wordpress/wp-admin/network/index.php:24 +msgid "Add and manage sites or users" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/index.php:25 +#: tmp/wordpress/wp-admin/network/index.php:25 +msgid "Install and activate themes or plugins" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/index.php:26 +#: tmp/wordpress/wp-admin/network/index.php:26 +msgid "Update your network" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/index.php:27 +#: tmp/wordpress/wp-admin/network/index.php:27 +msgid "Modify global network settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/index.php:35 +#: tmp/wordpress/wp-admin/network/index.php:35 +msgid "" +"The Right Now widget on this screen provides current user and site counts on " +"your network." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/index.php:36 +#: tmp/wordpress/wp-admin/network/index.php:36 +msgid "To add a new user, click Create a New User." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/index.php:37 +#: tmp/wordpress/wp-admin/network/index.php:37 +msgid "To add a new site, click Create a New Site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/index.php:38 +#: tmp/wordpress/wp-admin/network/index.php:38 +msgid "To search for a user or site, use the search boxes." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/index.php:39 +#: tmp/wordpress/wp-admin/network/index.php:39 +msgid "" +"To search for a user, enter an email address or username. " +"Use a wildcard to search for a partial username, such as user*." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/index.php:40 +#: tmp/wordpress/wp-admin/network/index.php:40 +msgid "To search for a site, enter the path or domain." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/index.php:44 +#: tmp/wordpress/wp-admin/network/index.php:44 +msgid "Quick Tasks" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/index.php:50 +#: tmp/wordpress/wp-admin/network/index.php:50 +msgid "" +"Documentation on the " +"Network Admin" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/index.php:51 +#: tmp/old/wordpress/wp-admin/network/site-info.php:31 +#: tmp/old/wordpress/wp-admin/network/site-new.php:30 +#: tmp/old/wordpress/wp-admin/network/site-settings.php:30 +#: tmp/old/wordpress/wp-admin/network/site-themes.php:30 +#: tmp/old/wordpress/wp-admin/network/site-users.php:33 +#: tmp/old/wordpress/wp-admin/network/sites.php:43 +#: tmp/old/wordpress/wp-admin/network/user-new.php:27 +#: tmp/old/wordpress/wp-admin/network/users.php:180 +#: tmp/wordpress/wp-admin/network/index.php:51 +#: tmp/wordpress/wp-admin/network/site-info.php:31 +#: tmp/wordpress/wp-admin/network/site-new.php:30 +#: tmp/wordpress/wp-admin/network/site-settings.php:30 +#: tmp/wordpress/wp-admin/network/site-themes.php:30 +#: tmp/wordpress/wp-admin/network/site-users.php:33 +#: tmp/wordpress/wp-admin/network/sites.php:43 +#: tmp/wordpress/wp-admin/network/user-new.php:27 +#: tmp/wordpress/wp-admin/network/users.php:180 +msgid "" +"Support Forums" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/menu.php:19 +#: tmp/wordpress/wp-admin/network/menu.php:19 +msgid "Updates" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/menu.php:22 +#: tmp/old/wordpress/wp-admin/network/upgrade.php:15 +#: tmp/old/wordpress/wp-admin/network/upgrade.php:39 +#: tmp/old/wordpress/wp-admin/network/upgrade.php:130 +#: tmp/wordpress/wp-admin/network/menu.php:22 +#: tmp/wordpress/wp-admin/network/upgrade.php:15 +#: tmp/wordpress/wp-admin/network/upgrade.php:39 +#: tmp/wordpress/wp-admin/network/upgrade.php:130 +msgid "Upgrade Network" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/menu.php:28 +#: tmp/wordpress/wp-admin/network/menu.php:28 +msgid "All Sites" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/menu.php:36 +#: tmp/wordpress/wp-admin/network/menu.php:36 +msgid "Themes %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/menu.php:40 +#: tmp/wordpress/wp-admin/network/menu.php:40 +msgid "Installed Themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/menu.php:41 +#: tmp/old/wordpress/wp-admin/network/themes.php:250 +#: tmp/wordpress/wp-admin/network/menu.php:41 +#: tmp/wordpress/wp-admin/network/themes.php:250 +msgctxt "theme" +msgid "Add New" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/menu.php:47 +#: tmp/old/wordpress/wp-admin/network/settings.php:377 +#: tmp/old/wordpress/wp-admin/plugins.php:427 +#: tmp/old/wordpress/wp-admin/update-core.php:225 +#: tmp/old/wordpress/wp-admin/update-core.php:237 +#: tmp/old/wordpress/wp-includes/admin-bar.php:473 +#: tmp/wordpress/wp-admin/network/menu.php:47 +#: tmp/wordpress/wp-admin/network/settings.php:377 +#: tmp/wordpress/wp-admin/plugins.php:427 +#: tmp/wordpress/wp-admin/update-core.php:225 +#: tmp/wordpress/wp-admin/update-core.php:237 +#: tmp/wordpress/wp-includes/admin-bar.php:473 +msgid "Plugins" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/menu.php:55 +#: tmp/old/wordpress/wp-admin/network/settings.php:19 +#: tmp/wordpress/wp-admin/network/menu.php:55 +#: tmp/wordpress/wp-admin/network/settings.php:19 +msgid "Network Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:28 +#: tmp/wordpress/wp-admin/network/settings.php:28 +msgid "" +"This screen sets and changes options for the network as a whole. The first " +"site is the main site in the network and network options are pulled from " +"that original site’s options." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:29 +#: tmp/wordpress/wp-admin/network/settings.php:29 +msgid "" +"Operational settings has fields for the network’s name and admin email." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:30 +#: tmp/wordpress/wp-admin/network/settings.php:30 +msgid "" +"Registration settings can disable/enable public signups. If you let others " +"sign up for a site, install spam plugins. Spaces, not commas, should " +"separate names banned as sites for this network." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:31 +#: tmp/wordpress/wp-admin/network/settings.php:31 +msgid "" +"New site settings are defaults applied when a new site is created in the " +"network. These include welcome email for when a new site or user account is " +"registered, and what᾿s put in the first post, page, comment, comment " +"author, and comment URL." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:32 +#: tmp/wordpress/wp-admin/network/settings.php:32 +msgid "" +"Upload settings control the size of the uploaded files and the amount of " +"available upload space for each site. You can change the default value for " +"specific sites when you edit a particular site. Allowed file types are also " +"listed (space separated only)." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:33 +#: tmp/old/wordpress/wp-admin/options-general.php:33 +#: tmp/wordpress/wp-admin/network/settings.php:33 +#: tmp/wordpress/wp-admin/options-general.php:33 +msgid "" +"You can set the language, and the translation files will be automatically " +"downloaded and installed (available if your filesystem is writable)." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:34 +#: tmp/wordpress/wp-admin/network/settings.php:34 +msgid "" +"Menu setting enables/disables the plugin menus from appearing for non super " +"admins, so that only super admins, not site admins, have access to activate " +"plugins." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:35 +#: tmp/wordpress/wp-admin/network/settings.php:35 +msgid "" +"Super admins can no longer be added on the Options screen. You must now go " +"to the list of existing users on Network Admin > Users and click on Username " +"or the Edit action link below that name. This goes to an Edit User page " +"where you can check a box to grant super admin privileges." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:40 +#: tmp/wordpress/wp-admin/network/settings.php:40 +msgid "" +"Documentation on Network Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:102 +#: tmp/wordpress/wp-admin/network/settings.php:102 +msgid "Operational Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:116 +#: tmp/wordpress/wp-admin/network/settings.php:116 +msgid "" +"This email address will receive notifications. Registration and support " +"emails will also come from this address." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:121 +#: tmp/wordpress/wp-admin/network/settings.php:121 +msgid "Registration Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:124 +#: tmp/wordpress/wp-admin/network/settings.php:124 +msgid "Allow new registrations" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:132 +#: tmp/wordpress/wp-admin/network/settings.php:132 +msgid "New registrations settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:133 +#: tmp/wordpress/wp-admin/network/settings.php:133 +msgid "Registration is disabled." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:134 +#: tmp/wordpress/wp-admin/network/settings.php:134 +msgid "User accounts may be registered." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:135 +#: tmp/wordpress/wp-admin/network/settings.php:135 +msgid "Logged in users may register new sites." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:136 +#: tmp/wordpress/wp-admin/network/settings.php:136 +msgid "Both sites and user accounts can be registered." +msgstr "" + +#. translators: 1: NOBLOGREDIRECT 2: wp-config.php +#: tmp/old/wordpress/wp-admin/network/settings.php:140 +#: tmp/wordpress/wp-admin/network/settings.php:140 +msgid "" +"If registration is disabled, please set %1$s in %2$s to a URL you will " +"redirect visitors to if they visit a non-existent site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:151 +#: tmp/wordpress/wp-admin/network/settings.php:151 +msgid "Registration notification" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:157 +#: tmp/wordpress/wp-admin/network/settings.php:157 +msgid "" +"Send the network admin an email notification every time someone registers a " +"site or user account." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:162 +#: tmp/wordpress/wp-admin/network/settings.php:162 +msgid "Add New Users" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:164 +#: tmp/wordpress/wp-admin/network/settings.php:164 +msgid "" +"Allow site administrators to add new users to their site via the \"Users " +"→ Add New\" page." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:169 +#: tmp/wordpress/wp-admin/network/settings.php:169 +msgid "Banned Names" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:173 +#: tmp/wordpress/wp-admin/network/settings.php:173 +msgid "" +"Users are not allowed to register these sites. Separate names by spaces." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:179 +#: tmp/wordpress/wp-admin/network/settings.php:179 +msgid "Limited Email Registrations" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:186 +#: tmp/wordpress/wp-admin/network/settings.php:186 +msgid "" +"If you want to limit site registrations to certain domains. One domain per " +"line." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:192 +#: tmp/wordpress/wp-admin/network/settings.php:192 +msgid "Banned Email Domains" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:197 +#: tmp/wordpress/wp-admin/network/settings.php:197 +msgid "" +"If you want to ban domains from site registrations. One domain per line." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:203 +#: tmp/wordpress/wp-admin/network/settings.php:203 +msgid "New Site Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:207 +#: tmp/wordpress/wp-admin/network/settings.php:207 +msgid "Welcome Email" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:212 +#: tmp/wordpress/wp-admin/network/settings.php:212 +msgid "The welcome email sent to new site owners." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:217 +#: tmp/wordpress/wp-admin/network/settings.php:217 +msgid "Welcome User Email" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:222 +#: tmp/wordpress/wp-admin/network/settings.php:222 +msgid "The welcome email sent to new users." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:227 +#: tmp/old/wordpress/wp-includes/deprecated.php:2671 +#: tmp/wordpress/wp-admin/network/settings.php:227 +#: tmp/wordpress/wp-includes/deprecated.php:2671 +msgid "First Post" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:232 +#: tmp/wordpress/wp-admin/network/settings.php:232 +msgid "The first post on a new site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:237 +#: tmp/wordpress/wp-admin/network/settings.php:237 +msgid "First Page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:242 +#: tmp/wordpress/wp-admin/network/settings.php:242 +msgid "The first page on a new site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:247 +#: tmp/wordpress/wp-admin/network/settings.php:247 +msgid "First Comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:252 +#: tmp/wordpress/wp-admin/network/settings.php:252 +msgid "The first comment on a new site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:257 +#: tmp/wordpress/wp-admin/network/settings.php:257 +msgid "First Comment Author" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:261 +#: tmp/wordpress/wp-admin/network/settings.php:261 +msgid "The author of the first comment on a new site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:266 +#: tmp/wordpress/wp-admin/network/settings.php:266 +msgid "First Comment Email" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:270 +#: tmp/wordpress/wp-admin/network/settings.php:270 +msgid "The email address of the first comment author on a new site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:275 +#: tmp/wordpress/wp-admin/network/settings.php:275 +msgid "First Comment URL" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:279 +#: tmp/wordpress/wp-admin/network/settings.php:279 +msgid "The URL for the first comment on a new site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:284 +#: tmp/wordpress/wp-admin/network/settings.php:284 +msgid "Upload Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:287 +#: tmp/wordpress/wp-admin/network/settings.php:287 +msgid "Site upload space" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:289 +#: tmp/wordpress/wp-admin/network/settings.php:289 +msgid "Limit total size of files uploaded to %s MB" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:297 +#: tmp/wordpress/wp-admin/network/settings.php:297 +msgid "Upload file types" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:301 +#: tmp/wordpress/wp-admin/network/settings.php:301 +msgid "Allowed file types. Separate types by spaces." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:307 +#: tmp/wordpress/wp-admin/network/settings.php:307 +msgid "Max upload file size" +msgstr "" + +#. translators: %s: File size in kilobytes +#: tmp/old/wordpress/wp-admin/network/settings.php:312 +#: tmp/wordpress/wp-admin/network/settings.php:312 +msgid "%s KB" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:317 +#: tmp/wordpress/wp-admin/network/settings.php:317 +msgid "Size in kilobytes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:328 +#: tmp/wordpress/wp-admin/network/settings.php:328 +msgid "Language Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:331 +#: tmp/wordpress/wp-admin/network/settings.php:331 +msgid "Default Language" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:358 +#: tmp/wordpress/wp-admin/network/settings.php:358 +msgid "Enable administration menus" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/settings.php:380 +#: tmp/wordpress/wp-admin/network/settings.php:380 +msgid "Enable menus" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-info.php:14 +#: tmp/old/wordpress/wp-admin/network/site-settings.php:14 +#: tmp/old/wordpress/wp-admin/network/site-users.php:14 +#: tmp/wordpress/wp-admin/network/site-info.php:14 +#: tmp/wordpress/wp-admin/network/site-settings.php:14 +#: tmp/wordpress/wp-admin/network/site-users.php:14 +msgid "Sorry, you are not allowed to edit this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-info.php:21 +#: tmp/old/wordpress/wp-admin/network/site-settings.php:20 +#: tmp/old/wordpress/wp-admin/network/site-themes.php:20 +#: tmp/old/wordpress/wp-admin/network/site-users.php:23 +#: tmp/wordpress/wp-admin/network/site-info.php:21 +#: tmp/wordpress/wp-admin/network/site-settings.php:20 +#: tmp/wordpress/wp-admin/network/site-themes.php:20 +#: tmp/wordpress/wp-admin/network/site-users.php:23 +msgid "" +"The menu is for editing information specific to individual sites, " +"particularly if the admin area of a site is unavailable." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-info.php:22 +#: tmp/old/wordpress/wp-admin/network/site-settings.php:21 +#: tmp/old/wordpress/wp-admin/network/site-themes.php:21 +#: tmp/old/wordpress/wp-admin/network/site-users.php:24 +#: tmp/wordpress/wp-admin/network/site-info.php:22 +#: tmp/wordpress/wp-admin/network/site-settings.php:21 +#: tmp/wordpress/wp-admin/network/site-themes.php:21 +#: tmp/wordpress/wp-admin/network/site-users.php:24 +msgid "" +"Info — The site URL is rarely edited as this can " +"cause the site to not work properly. The Registered date and Last Updated " +"date are displayed. Network admins can mark a site as archived, spam, " +"deleted and mature, to remove from public listings or disable." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-info.php:23 +#: tmp/old/wordpress/wp-admin/network/site-settings.php:22 +#: tmp/old/wordpress/wp-admin/network/site-themes.php:22 +#: tmp/old/wordpress/wp-admin/network/site-users.php:25 +#: tmp/wordpress/wp-admin/network/site-info.php:23 +#: tmp/wordpress/wp-admin/network/site-settings.php:22 +#: tmp/wordpress/wp-admin/network/site-themes.php:22 +#: tmp/wordpress/wp-admin/network/site-users.php:25 +msgid "" +"Users — This displays the users associated with this " +"site. You can also change their role, reset their password, or remove them " +"from the site. Removing the user from the site does not remove the user from " +"the network." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-info.php:24 +#: tmp/old/wordpress/wp-admin/network/site-settings.php:23 +#: tmp/old/wordpress/wp-admin/network/site-themes.php:23 +#: tmp/old/wordpress/wp-admin/network/site-users.php:26 +#: tmp/wordpress/wp-admin/network/site-info.php:24 +#: tmp/wordpress/wp-admin/network/site-settings.php:23 +#: tmp/wordpress/wp-admin/network/site-themes.php:23 +#: tmp/wordpress/wp-admin/network/site-users.php:26 +msgid "" +"Themes — This area shows themes that are not already " +"enabled across the network. Enabling a theme in this menu makes it " +"accessible to this site. It does not activate the theme, but allows it to " +"show in the site’s Appearance menu. To enable a theme for the entire " +"network, see the Network Themes screen." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-info.php:25 +#: tmp/old/wordpress/wp-admin/network/site-settings.php:24 +#: tmp/old/wordpress/wp-admin/network/site-themes.php:24 +#: tmp/old/wordpress/wp-admin/network/site-users.php:27 +#: tmp/wordpress/wp-admin/network/site-info.php:25 +#: tmp/wordpress/wp-admin/network/site-settings.php:24 +#: tmp/wordpress/wp-admin/network/site-themes.php:24 +#: tmp/wordpress/wp-admin/network/site-users.php:27 +msgid "" +"Settings — This page shows a list of all settings " +"associated with this site. Some are created by WordPress and others are " +"created by plugins you activate. Note that some fields are grayed out and " +"say Serialized Data. You cannot modify these values due to the way the " +"setting is stored in the database." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-info.php:30 +#: tmp/old/wordpress/wp-admin/network/site-new.php:29 +#: tmp/old/wordpress/wp-admin/network/site-settings.php:29 +#: tmp/old/wordpress/wp-admin/network/site-themes.php:29 +#: tmp/old/wordpress/wp-admin/network/site-users.php:32 +#: tmp/old/wordpress/wp-admin/network/sites.php:42 +#: tmp/wordpress/wp-admin/network/site-info.php:30 +#: tmp/wordpress/wp-admin/network/site-new.php:29 +#: tmp/wordpress/wp-admin/network/site-settings.php:29 +#: tmp/wordpress/wp-admin/network/site-themes.php:29 +#: tmp/wordpress/wp-admin/network/site-users.php:32 +#: tmp/wordpress/wp-admin/network/sites.php:42 +msgid "" +"Documentation on Site Management" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-info.php:37 +#: tmp/old/wordpress/wp-admin/network/site-settings.php:36 +#: tmp/old/wordpress/wp-admin/network/site-themes.php:57 +#: tmp/old/wordpress/wp-admin/network/site-users.php:52 +#: tmp/wordpress/wp-admin/network/site-info.php:37 +#: tmp/wordpress/wp-admin/network/site-settings.php:36 +#: tmp/wordpress/wp-admin/network/site-themes.php:57 +#: tmp/wordpress/wp-admin/network/site-users.php:52 +msgid "Invalid site ID." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-info.php:42 +#: tmp/old/wordpress/wp-admin/network/site-settings.php:40 +#: tmp/old/wordpress/wp-admin/network/site-themes.php:63 +#: tmp/old/wordpress/wp-admin/network/site-users.php:56 +#: tmp/wordpress/wp-admin/network/site-info.php:42 +#: tmp/wordpress/wp-admin/network/site-settings.php:40 +#: tmp/wordpress/wp-admin/network/site-themes.php:63 +#: tmp/wordpress/wp-admin/network/site-users.php:56 +msgid "The requested site does not exist." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-info.php:126 +#: tmp/wordpress/wp-admin/network/site-info.php:126 +msgid "Site info updated." +msgstr "" + +#. translators: %s: site name +#: tmp/old/wordpress/wp-admin/network/site-info.php:131 +#: tmp/old/wordpress/wp-admin/network/site-settings.php:84 +#: tmp/old/wordpress/wp-admin/network/site-themes.php:163 +#: tmp/old/wordpress/wp-admin/network/site-users.php:193 +#: tmp/wordpress/wp-admin/network/site-info.php:131 +#: tmp/wordpress/wp-admin/network/site-settings.php:84 +#: tmp/wordpress/wp-admin/network/site-themes.php:163 +#: tmp/wordpress/wp-admin/network/site-users.php:193 +msgid "Edit Site: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-info.php:164 +#: tmp/old/wordpress/wp-admin/network/site-info.php:171 +#: tmp/old/wordpress/wp-admin/network/site-new.php:198 +#: tmp/old/wordpress/wp-admin/options-general.php:74 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:427 +#: tmp/wordpress/wp-admin/network/site-info.php:164 +#: tmp/wordpress/wp-admin/network/site-info.php:171 +#: tmp/wordpress/wp-admin/network/site-new.php:198 +#: tmp/wordpress/wp-admin/options-general.php:74 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:427 +msgid "Site Address (URL)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-info.php:194 +#: tmp/wordpress/wp-admin/network/site-info.php:194 +msgid "Attributes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-info.php:197 +#: tmp/wordpress/wp-admin/network/site-info.php:197 +msgid "Set site attributes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-new.php:17 +#: tmp/wordpress/wp-admin/network/site-new.php:17 +msgid "Sorry, you are not allowed to add sites to this network." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-new.php:23 +#: tmp/wordpress/wp-admin/network/site-new.php:23 +msgid "" +"This screen is for Super Admins to add new sites to the network. This is not " +"affected by the registration settings." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-new.php:24 +#: tmp/wordpress/wp-admin/network/site-new.php:24 +msgid "" +"If the admin email for the new site does not exist in the database, a new " +"user will also be created." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-new.php:37 +#: tmp/wordpress/wp-admin/network/site-new.php:37 +msgid "Can’t create an empty site." +msgstr "" + +#. translators: %s: reserved names list +#: tmp/old/wordpress/wp-admin/network/site-new.php:51 +#: tmp/wordpress/wp-admin/network/site-new.php:51 +msgid "" +"The following words are reserved for use by WordPress functions and cannot " +"be used as blog names: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-new.php:77 +#: tmp/wordpress/wp-admin/network/site-new.php:77 +msgid "Missing or invalid site address." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-new.php:80 +#: tmp/wordpress/wp-admin/network/site-new.php:80 +msgid "Missing email address." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-new.php:85 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:610 +#: tmp/old/wordpress/wp-includes/rest-api.php:1079 +#: tmp/wordpress/wp-admin/network/site-new.php:85 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:610 +#: tmp/wordpress/wp-includes/rest-api.php:1079 +msgid "Invalid email address." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-new.php:110 +#: tmp/wordpress/wp-admin/network/site-new.php:110 +msgid "The domain or path entered conflicts with an existing username." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-new.php:115 +#: tmp/wordpress/wp-admin/network/site-new.php:115 +msgid "There was an error creating the user." +msgstr "" + +#. translators: %s: network name +#: tmp/old/wordpress/wp-admin/network/site-new.php:140 +#: tmp/wordpress/wp-admin/network/site-new.php:140 +msgid "[%s] New Site Created" +msgstr "" + +#. translators: 1: user login, 2: site url, 3: site name/title +#: tmp/old/wordpress/wp-admin/network/site-new.php:145 +#: tmp/wordpress/wp-admin/network/site-new.php:145 +msgid "" +"New site created by %1$s\n" +"\n" +"Address: %2$s\n" +"Name: %3$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-new.php:155 +#: tmp/wordpress/wp-admin/network/site-new.php:155 +msgctxt "email \"From\" field" +msgid "Site Admin" +msgstr "" + +#. translators: 1: dashboard url, 2: network admin edit url +#: tmp/old/wordpress/wp-admin/network/site-new.php:172 +#: tmp/wordpress/wp-admin/network/site-new.php:172 +msgid "" +"Site added. Visit Dashboard or Edit " +"Site" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-new.php:178 +#: tmp/old/wordpress/wp-admin/network/site-new.php:188 +#: tmp/wordpress/wp-admin/network/site-new.php:178 +#: tmp/wordpress/wp-admin/network/site-new.php:188 +msgid "Add New Site" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-new.php:205 +#: tmp/wordpress/wp-admin/network/site-new.php:205 +msgid "Only lowercase letters (a-z), numbers, and hyphens are allowed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-new.php:219 +#: tmp/old/wordpress/wp-admin/options-general.php:330 +#: tmp/wordpress/wp-admin/network/site-new.php:219 +#: tmp/wordpress/wp-admin/options-general.php:330 +msgid "Site Language" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-new.php:243 +#: tmp/wordpress/wp-admin/network/site-new.php:243 +msgid "Admin Email" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-new.php:247 +#: tmp/wordpress/wp-admin/network/site-new.php:247 +msgid "" +"A new user will be created if the above email address is not in the database." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-new.php:247 +#: tmp/wordpress/wp-admin/network/site-new.php:247 +msgid "The username and password will be mailed to this email address." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-new.php:259 +#: tmp/wordpress/wp-admin/network/site-new.php:259 +msgid "Add Site" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-settings.php:80 +#: tmp/wordpress/wp-admin/network/site-settings.php:80 +msgid "Site options updated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-themes.php:14 +#: tmp/wordpress/wp-admin/network/site-themes.php:14 +msgid "Sorry, you are not allowed to manage themes for this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-themes.php:34 +#: tmp/wordpress/wp-admin/network/site-themes.php:34 +msgid "Filter site themes list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-themes.php:35 +#: tmp/wordpress/wp-admin/network/site-themes.php:35 +msgid "Site themes list navigation" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-themes.php:36 +#: tmp/wordpress/wp-admin/network/site-themes.php:36 +msgid "Site themes list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-themes.php:183 +#: tmp/old/wordpress/wp-admin/network/themes.php:262 +#: tmp/wordpress/wp-admin/network/site-themes.php:183 +#: tmp/wordpress/wp-admin/network/themes.php:262 +msgid "Theme enabled." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-themes.php:185 +#: tmp/old/wordpress/wp-admin/network/themes.php:264 +#: tmp/wordpress/wp-admin/network/site-themes.php:185 +#: tmp/wordpress/wp-admin/network/themes.php:264 +msgid "%s theme enabled." +msgid_plural "%s themes enabled." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/network/site-themes.php:191 +#: tmp/old/wordpress/wp-admin/network/themes.php:270 +#: tmp/wordpress/wp-admin/network/site-themes.php:191 +#: tmp/wordpress/wp-admin/network/themes.php:270 +msgid "Theme disabled." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-themes.php:193 +#: tmp/old/wordpress/wp-admin/network/themes.php:272 +#: tmp/wordpress/wp-admin/network/site-themes.php:193 +#: tmp/wordpress/wp-admin/network/themes.php:272 +msgid "%s theme disabled." +msgid_plural "%s themes disabled." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/network/site-themes.php:197 +#: tmp/old/wordpress/wp-admin/network/themes.php:284 +#: tmp/wordpress/wp-admin/network/site-themes.php:197 +#: tmp/wordpress/wp-admin/network/themes.php:284 +msgid "No theme selected." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-themes.php:200 +#: tmp/wordpress/wp-admin/network/site-themes.php:200 +msgid "Network enabled themes are not shown on this screen." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-themes.php:203 +#: tmp/old/wordpress/wp-admin/network/themes.php:292 +#: tmp/old/wordpress/wp-admin/themes.php:139 +#: tmp/wordpress/wp-admin/network/site-themes.php:203 +#: tmp/wordpress/wp-admin/network/themes.php:292 +#: tmp/wordpress/wp-admin/themes.php:139 +msgid "Search Installed Themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:37 +#: tmp/wordpress/wp-admin/network/site-users.php:37 +msgid "Filter site users list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:38 +#: tmp/wordpress/wp-admin/network/site-users.php:38 +msgid "Site users list navigation" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:39 +#: tmp/wordpress/wp-admin/network/site-users.php:39 +msgid "Site users list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:118 +#: tmp/old/wordpress/wp-admin/users.php:317 +#: tmp/old/wordpress/wp-admin/users.php:352 +#: tmp/wordpress/wp-admin/network/site-users.php:118 +#: tmp/wordpress/wp-admin/users.php:317 tmp/wordpress/wp-admin/users.php:352 +msgid "Sorry, you are not allowed to remove users." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:142 +#: tmp/old/wordpress/wp-admin/users.php:113 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1064 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1074 +#: tmp/wordpress/wp-admin/network/site-users.php:142 +#: tmp/wordpress/wp-admin/users.php:113 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1064 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1074 +msgid "Sorry, you are not allowed to give users that role." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:155 +#: tmp/old/wordpress/wp-admin/users.php:134 +#: tmp/wordpress/wp-admin/network/site-users.php:155 +#: tmp/wordpress/wp-admin/users.php:134 +msgid "One of the selected users is not a member of this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:228 +#: tmp/old/wordpress/wp-admin/network/user-new.php:77 +#: tmp/old/wordpress/wp-admin/network/users.php:209 +#: tmp/old/wordpress/wp-admin/user-new.php:273 +#: tmp/wordpress/wp-admin/network/site-users.php:228 +#: tmp/wordpress/wp-admin/network/user-new.php:77 +#: tmp/wordpress/wp-admin/network/users.php:209 +#: tmp/wordpress/wp-admin/user-new.php:273 +msgid "User added." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:231 +#: tmp/wordpress/wp-admin/network/site-users.php:231 +msgid "User is already a member of this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:234 +#: tmp/wordpress/wp-admin/network/site-users.php:234 +msgid "Enter the username of an existing user." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:237 +#: tmp/old/wordpress/wp-admin/users.php:457 +#: tmp/wordpress/wp-admin/network/site-users.php:237 +#: tmp/wordpress/wp-admin/users.php:457 +msgid "Changed roles." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:240 +#: tmp/wordpress/wp-admin/network/site-users.php:240 +msgid "Select a user to change role." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:243 +#: tmp/old/wordpress/wp-admin/users.php:468 +#: tmp/wordpress/wp-admin/network/site-users.php:243 +#: tmp/wordpress/wp-admin/users.php:468 +msgid "User removed from this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:246 +#: tmp/wordpress/wp-admin/network/site-users.php:246 +msgid "Select a user to remove." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:249 +#: tmp/wordpress/wp-admin/network/site-users.php:249 +msgid "User created." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:252 +#: tmp/wordpress/wp-admin/network/site-users.php:252 +msgid "Enter the username and email." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:255 +#: tmp/wordpress/wp-admin/network/site-users.php:255 +msgid "Duplicated username or email address." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:284 +#: tmp/old/wordpress/wp-admin/user-new.php:282 +#: tmp/old/wordpress/wp-admin/user-new.php:315 +#: tmp/old/wordpress/wp-admin/user-new.php:373 +#: tmp/wordpress/wp-admin/network/site-users.php:284 +#: tmp/wordpress/wp-admin/user-new.php:282 +#: tmp/wordpress/wp-admin/user-new.php:315 +#: tmp/wordpress/wp-admin/user-new.php:373 +msgid "Add Existing User" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:300 +#: tmp/old/wordpress/wp-admin/network/user-new.php:129 +#: tmp/wordpress/wp-admin/network/site-users.php:300 +#: tmp/wordpress/wp-admin/network/user-new.php:129 +msgid "Add User" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/site-users.php:332 +#: tmp/old/wordpress/wp-admin/network/user-new.php:117 +#: tmp/wordpress/wp-admin/network/site-users.php:332 +#: tmp/wordpress/wp-admin/network/user-new.php:117 +msgid "A password reset link will be sent to the user via email." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:28 +#: tmp/wordpress/wp-admin/network/sites.php:28 +msgid "" +"Add New takes you to the Add New Site screen. You can search for a site by " +"Name, ID number, or IP address. Screen Options allows you to choose how many " +"sites to display on one page." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:29 +#: tmp/wordpress/wp-admin/network/sites.php:29 +msgid "" +"This is the main table of all sites on this network. Switch between list and " +"excerpt views by using the icons above the right side of the table." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:30 +#: tmp/wordpress/wp-admin/network/sites.php:30 +msgid "" +"Hovering over each site reveals seven options (three for the primary site):" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:31 +#: tmp/wordpress/wp-admin/network/sites.php:31 +msgid "An Edit link to a separate Edit Site screen." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:32 +#: tmp/wordpress/wp-admin/network/sites.php:32 +msgid "Dashboard leads to the Dashboard for that site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:33 +#: tmp/wordpress/wp-admin/network/sites.php:33 +msgid "" +"Deactivate, Archive, and Spam which lead to confirmation screens. These " +"actions can be reversed later." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:34 +#: tmp/wordpress/wp-admin/network/sites.php:34 +msgid "Delete which is a permanent action after the confirmation screens." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:35 +#: tmp/wordpress/wp-admin/network/sites.php:35 +msgid "Visit to go to the front-end site live." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:36 +#: tmp/wordpress/wp-admin/network/sites.php:36 +msgid "" +"The site ID is used internally, and is not shown on the front end of the " +"site or to users/viewers." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:37 +#: tmp/wordpress/wp-admin/network/sites.php:37 +msgid "Clicking on bold headings can re-sort this table." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:47 +#: tmp/wordpress/wp-admin/network/sites.php:47 +msgid "Sites list navigation" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:48 +#: tmp/wordpress/wp-admin/network/sites.php:48 +msgid "Sites list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:59 +#: tmp/wordpress/wp-admin/network/sites.php:59 +msgid "You are about to activate the site %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:60 +#: tmp/wordpress/wp-admin/network/sites.php:60 +msgid "You are about to deactivate the site %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:61 +#: tmp/wordpress/wp-admin/network/sites.php:61 +msgid "You are about to unarchive the site %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:62 +#: tmp/wordpress/wp-admin/network/sites.php:62 +msgid "You are about to archive the site %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:63 +#: tmp/wordpress/wp-admin/network/sites.php:63 +msgid "You are about to unspam the site %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:64 +#: tmp/wordpress/wp-admin/network/sites.php:64 +msgid "You are about to mark the site %s as spam." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:65 +#: tmp/wordpress/wp-admin/network/sites.php:65 +msgid "You are about to delete the site %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:66 +#: tmp/wordpress/wp-admin/network/sites.php:66 +msgid "You are about to mark the site %s as mature." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:67 +#: tmp/wordpress/wp-admin/network/sites.php:67 +msgid "You are about to mark the site %s as not mature." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:75 +#: tmp/wordpress/wp-admin/network/sites.php:75 +msgid "The requested action is not valid." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:91 +#: tmp/old/wordpress/wp-admin/network/sites.php:157 +#: tmp/wordpress/wp-admin/network/sites.php:91 +#: tmp/wordpress/wp-admin/network/sites.php:157 +msgid "Sorry, you are not allowed to change the current site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:100 +#: tmp/wordpress/wp-admin/network/sites.php:100 +msgid "Confirm your action" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:107 +#: tmp/wordpress/wp-admin/network/sites.php:107 +msgid "Confirm" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:144 +#: tmp/wordpress/wp-admin/network/sites.php:144 +msgid "Sorry, you are not allowed to delete the site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:233 +#: tmp/wordpress/wp-admin/network/sites.php:233 +msgid "Sites removed from spam." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:236 +#: tmp/wordpress/wp-admin/network/sites.php:236 +msgid "Sites marked as spam." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:239 +#: tmp/wordpress/wp-admin/network/sites.php:239 +msgid "Sites deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:242 +#: tmp/wordpress/wp-admin/network/sites.php:242 +msgid "Site deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:245 +#: tmp/wordpress/wp-admin/network/sites.php:245 +msgid "Sorry, you are not allowed to delete that site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:248 +#: tmp/wordpress/wp-admin/network/sites.php:248 +msgid "Site archived." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:251 +#: tmp/wordpress/wp-admin/network/sites.php:251 +msgid "Site unarchived." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:254 +#: tmp/wordpress/wp-admin/network/sites.php:254 +msgid "Site activated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:257 +#: tmp/wordpress/wp-admin/network/sites.php:257 +msgid "Site deactivated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:260 +#: tmp/wordpress/wp-admin/network/sites.php:260 +msgid "Site removed from spam." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/sites.php:263 +#: tmp/wordpress/wp-admin/network/sites.php:263 +msgid "Site marked as spam." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:14 +#: tmp/wordpress/wp-admin/network/themes.php:14 +msgid "Sorry, you are not allowed to manage network themes." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:73 +#: tmp/old/wordpress/wp-admin/update-core.php:351 +#: tmp/old/wordpress/wp-admin/update-core.php:399 +#: tmp/old/wordpress/wp-admin/update-core.php:714 +#: tmp/old/wordpress/wp-admin/update-core.php:719 +#: tmp/wordpress/wp-admin/network/themes.php:73 +#: tmp/wordpress/wp-admin/update-core.php:351 +#: tmp/wordpress/wp-admin/update-core.php:399 +#: tmp/wordpress/wp-admin/update-core.php:714 +#: tmp/wordpress/wp-admin/update-core.php:719 +msgid "Update Themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:90 +#: tmp/wordpress/wp-admin/network/themes.php:90 +msgid "Sorry, you are not allowed to delete themes for this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:125 +#: tmp/wordpress/wp-admin/network/themes.php:125 +msgid "Delete Theme" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:126 +#: tmp/wordpress/wp-admin/network/themes.php:126 +msgid "This theme may be active on other sites in the network." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:127 +#: tmp/wordpress/wp-admin/network/themes.php:127 +msgid "You are about to remove the following theme:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:129 +#: tmp/wordpress/wp-admin/network/themes.php:129 +msgid "Delete Themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:130 +#: tmp/wordpress/wp-admin/network/themes.php:130 +msgid "These themes may be active on other sites in the network." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:131 +#: tmp/wordpress/wp-admin/network/themes.php:131 +msgid "You are about to remove the following themes:" +msgstr "" + +#. translators: 1: theme name, 2: theme author +#: tmp/old/wordpress/wp-admin/network/themes.php:138 +#: tmp/wordpress/wp-admin/network/themes.php:138 +msgctxt "theme" +msgid "%1$s by %2$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:146 +#: tmp/wordpress/wp-admin/network/themes.php:146 +msgid "Are you sure you wish to delete this theme?" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:148 +#: tmp/wordpress/wp-admin/network/themes.php:148 +msgid "Are you sure you wish to delete these themes?" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:161 +#: tmp/wordpress/wp-admin/network/themes.php:161 +msgid "Yes, delete this theme" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:163 +#: tmp/wordpress/wp-admin/network/themes.php:163 +msgid "Yes, delete these themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:171 +#: tmp/wordpress/wp-admin/network/themes.php:171 +msgid "No, return me to the theme list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:222 +#: tmp/wordpress/wp-admin/network/themes.php:222 +msgid "" +"This screen enables and disables the inclusion of themes available to choose " +"in the Appearance menu for each site. It does not activate or deactivate " +"which theme a site is currently using." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:223 +#: tmp/wordpress/wp-admin/network/themes.php:223 +msgid "" +"If the network admin disables a theme that is in use, it can still remain " +"selected on that site. If another theme is chosen, the disabled theme will " +"not appear in the site’s Appearance > Themes screen." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:224 +#: tmp/wordpress/wp-admin/network/themes.php:224 +msgid "" +"Themes can be enabled on a site by site basis by the network admin on the " +"Edit Site screen (which has a Themes tab); get there via the Edit action " +"link on the All Sites screen. Only network admins are able to install or " +"edit themes." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:229 +#: tmp/wordpress/wp-admin/network/themes.php:229 +msgid "" +"Documentation on Network Themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:234 +#: tmp/old/wordpress/wp-admin/theme-install.php:147 +#: tmp/wordpress/wp-admin/network/themes.php:234 +#: tmp/wordpress/wp-admin/theme-install.php:147 +msgid "Filter themes list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:235 +#: tmp/wordpress/wp-admin/network/themes.php:235 +msgid "Themes list navigation" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:236 +#: tmp/old/wordpress/wp-admin/theme-install.php:217 +#: tmp/wordpress/wp-admin/network/themes.php:236 +#: tmp/wordpress/wp-admin/theme-install.php:217 +msgid "Themes list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:278 +#: tmp/old/wordpress/wp-admin/themes.php:171 +#: tmp/wordpress/wp-admin/network/themes.php:278 +#: tmp/wordpress/wp-admin/themes.php:171 +msgid "Theme deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:280 +#: tmp/wordpress/wp-admin/network/themes.php:280 +msgid "%s theme deleted." +msgid_plural "%s themes deleted." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:286 +#: tmp/wordpress/wp-admin/network/themes.php:286 +msgid "You cannot delete a theme while it is active on the main site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/themes.php:299 +#: tmp/old/wordpress/wp-admin/themes.php:310 +#: tmp/wordpress/wp-admin/network/themes.php:299 +#: tmp/wordpress/wp-admin/themes.php:310 +msgid "The following themes are installed but incomplete." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/upgrade.php:22 +#: tmp/wordpress/wp-admin/network/upgrade.php:22 +msgid "" +"Only use this screen once you have updated to a new version of WordPress " +"through Updates/Available Updates (via the Network Administration navigation " +"menu or the Toolbar). Clicking the Upgrade Network button will step through " +"each site in the network, five at a time, and make sure any database updates " +"are applied." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/upgrade.php:23 +#: tmp/wordpress/wp-admin/network/upgrade.php:23 +msgid "" +"If a version update to core has not happened, clicking this button won’" +"t affect anything." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/upgrade.php:24 +#: tmp/wordpress/wp-admin/network/upgrade.php:24 +msgid "" +"If this process fails for any reason, users logging in to their sites will " +"force the same update." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/upgrade.php:29 +#: tmp/wordpress/wp-admin/network/upgrade.php:29 +msgid "" +"Documentation on Upgrade Network" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/upgrade.php:67 +#: tmp/wordpress/wp-admin/network/upgrade.php:67 +msgid "All done!" +msgstr "" + +#. translators: 1: site url, 2: server error message +#: tmp/old/wordpress/wp-admin/network/upgrade.php:87 +#: tmp/wordpress/wp-admin/network/upgrade.php:87 +msgid "" +"Warning! Problem updating %1$s. Your server may not be able to connect to " +"sites running on it. Error message: %2$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/upgrade.php:111 +#: tmp/wordpress/wp-admin/network/upgrade.php:111 +msgid "" +"If your browser doesn’t start loading the next page automatically, " +"click this link:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/upgrade.php:111 +#: tmp/wordpress/wp-admin/network/upgrade.php:111 +msgid "Next Sites" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/upgrade.php:126 +#: tmp/wordpress/wp-admin/network/upgrade.php:126 +msgid "" +"WordPress has been updated! Before we send you on your way, we need to " +"individually upgrade the sites in your network." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/upgrade.php:129 +#: tmp/old/wordpress/wp-admin/upgrade.php:98 +#: tmp/wordpress/wp-admin/network/upgrade.php:129 +#: tmp/wordpress/wp-admin/upgrade.php:98 +msgid "" +"The database update process may take a little while, so please be patient." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/user-new.php:14 +#: tmp/old/wordpress/wp-admin/user-new.php:16 +#: tmp/old/wordpress/wp-admin/user-new.php:56 +#: tmp/wordpress/wp-admin/network/user-new.php:14 +#: tmp/wordpress/wp-admin/user-new.php:16 +#: tmp/wordpress/wp-admin/user-new.php:56 +msgid "Sorry, you are not allowed to add users to this network." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/user-new.php:20 +#: tmp/wordpress/wp-admin/network/user-new.php:20 +msgid "" +"Add User will set up a new user account on the network and send that person " +"an email with username and password." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/user-new.php:21 +#: tmp/wordpress/wp-admin/network/user-new.php:21 +msgid "" +"Users who are signed up to the network without a site are added as " +"subscribers to the main or primary dashboard site, giving them profile pages " +"to manage their accounts. These users will only see Dashboard and My Sites " +"in the main navigation until a site is created for them." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/user-new.php:26 +#: tmp/old/wordpress/wp-admin/network/users.php:179 +#: tmp/wordpress/wp-admin/network/user-new.php:26 +#: tmp/wordpress/wp-admin/network/users.php:179 +msgid "" +"Documentation on Network Users" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/user-new.php:37 +#: tmp/wordpress/wp-admin/network/user-new.php:37 +msgid "Cannot create an empty user." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/user-new.php:49 +#: tmp/wordpress/wp-admin/network/user-new.php:49 +msgid "Cannot add user." +msgstr "" + +#. translators: %s: edit page url +#: tmp/old/wordpress/wp-admin/network/user-new.php:80 +#: tmp/wordpress/wp-admin/network/user-new.php:80 +msgid "User added. Edit user" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/users.php:70 +#: tmp/wordpress/wp-admin/network/users.php:70 +msgid "" +"Warning! User cannot be modified. The user %s is a network administrator." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/users.php:169 +#: tmp/wordpress/wp-admin/network/users.php:169 +msgid "" +"This table shows all users across the network and the sites to which they " +"are assigned." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/users.php:170 +#: tmp/wordpress/wp-admin/network/users.php:170 +msgid "" +"Hover over any user on the list to make the edit links appear. The Edit link " +"on the left will take you to their Edit User profile page; the Edit link on " +"the right by any site name goes to an Edit Site screen for that site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/users.php:171 +#: tmp/wordpress/wp-admin/network/users.php:171 +msgid "" +"You can also go to the user’s profile page by clicking on the " +"individual username." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/users.php:172 +#: tmp/wordpress/wp-admin/network/users.php:172 +msgid "" +"You can sort the table by clicking on any of the table headings and switch " +"between list and excerpt views by using the icons above the users list." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/users.php:173 +#: tmp/wordpress/wp-admin/network/users.php:173 +msgid "" +"The bulk action will permanently delete selected users, or mark/unmark those " +"selected as spam. Spam users will have posts removed and will be unable to " +"sign up again with the same email addresses." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/users.php:174 +#: tmp/wordpress/wp-admin/network/users.php:174 +msgid "" +"You can make an existing user an additional super admin by going to the Edit " +"User profile page and checking the box to grant that privilege." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/users.php:184 +#: tmp/old/wordpress/wp-admin/users.php:73 +#: tmp/wordpress/wp-admin/network/users.php:184 +#: tmp/wordpress/wp-admin/users.php:73 +msgid "Filter users list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/users.php:185 +#: tmp/old/wordpress/wp-admin/users.php:74 +#: tmp/wordpress/wp-admin/network/users.php:185 +#: tmp/wordpress/wp-admin/users.php:74 +msgid "Users list navigation" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/users.php:186 +#: tmp/old/wordpress/wp-admin/users.php:75 +#: tmp/wordpress/wp-admin/network/users.php:186 +#: tmp/wordpress/wp-admin/users.php:75 +msgid "Users list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/users.php:197 +#: tmp/old/wordpress/wp-admin/users.php:440 +#: tmp/wordpress/wp-admin/network/users.php:197 +#: tmp/wordpress/wp-admin/users.php:440 +msgid "User deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/users.php:200 +#: tmp/wordpress/wp-admin/network/users.php:200 +msgid "Users marked as spam." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/users.php:203 +#: tmp/wordpress/wp-admin/network/users.php:203 +msgid "Users removed from spam." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network/users.php:206 +#: tmp/wordpress/wp-admin/network/users.php:206 +msgid "Users deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network.php:19 +#: tmp/old/wordpress/wp-admin/options-discussion.php:12 +#: tmp/old/wordpress/wp-admin/options-general.php:16 +#: tmp/old/wordpress/wp-admin/options-media.php:13 +#: tmp/old/wordpress/wp-admin/options-permalink.php:13 +#: tmp/old/wordpress/wp-admin/options-reading.php:13 +#: tmp/old/wordpress/wp-admin/options-writing.php:13 +#: tmp/wordpress/wp-admin/network.php:19 +#: tmp/wordpress/wp-admin/options-discussion.php:12 +#: tmp/wordpress/wp-admin/options-general.php:16 +#: tmp/wordpress/wp-admin/options-media.php:13 +#: tmp/wordpress/wp-admin/options-permalink.php:13 +#: tmp/wordpress/wp-admin/options-reading.php:13 +#: tmp/wordpress/wp-admin/options-writing.php:13 +msgid "Sorry, you are not allowed to manage options for this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network.php:29 +#: tmp/wordpress/wp-admin/network.php:29 +msgid "The Network creation panel is not for WordPress MU networks." +msgstr "" + +#. translators: 1: WP_ALLOW_MULTISITE 2: wp-config.php +#: tmp/old/wordpress/wp-admin/network.php:44 +#: tmp/wordpress/wp-admin/network.php:44 +msgid "" +"You must define the %1$s constant as true in your %2$s file to allow " +"creation of a Network." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network.php:55 +#: tmp/wordpress/wp-admin/network.php:55 +msgid "Create a Network of WordPress Sites" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network.php:59 +#: tmp/wordpress/wp-admin/network.php:59 +msgid "" +"This screen allows you to configure a network as having subdomains " +"(site1.example.com) or subdirectories (example.com/site1). Subdomains require wildcard subdomains to be enabled in Apache and " +"DNS records, if your host allows it." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network.php:60 +#: tmp/wordpress/wp-admin/network.php:60 +msgid "" +"Choose subdomains or subdirectories; this can only be switched afterwards by " +"reconfiguring your install. Fill out the network details, and click install. " +"If this does not work, you may have to add a wildcard DNS record (for " +"subdomains) or change to another setting in Permalinks (for subdirectories)." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network.php:61 +#: tmp/wordpress/wp-admin/network.php:61 +msgid "" +"The next screen for Network Setup will give you individually-generated lines " +"of code to add to your wp-config.php and .htaccess files. Make sure the " +"settings of your FTP client make files starting with a dot visible, so that " +"you can find .htaccess; you may have to create this file if it really is not " +"there. Make backup copies of those two files." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network.php:62 +#: tmp/wordpress/wp-admin/network.php:62 +msgid "" +"Add the designated lines of code to wp-config.php (just before /*..." +"stop editing...*/) and .htaccess (replacing the existing " +"WordPress rules)." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network.php:63 +#: tmp/wordpress/wp-admin/network.php:63 +msgid "" +"Once you add this code and refresh your browser, multisite should be " +"enabled. This screen, now in the Network Admin navigation menu, will keep an " +"archive of the added code. You can toggle between Network Admin and Site " +"Admin by clicking on the Network Admin or an individual site name under the " +"My Sites dropdown in the Toolbar." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network.php:64 +#: tmp/wordpress/wp-admin/network.php:64 +msgid "" +"The choice of subdirectory sites is disabled if this setup is more than a " +"month old because of permalink problems with “/blog/” from the " +"main site. This disabling will be addressed in a future version." +msgstr "" + +#: tmp/old/wordpress/wp-admin/network.php:66 +#: tmp/old/wordpress/wp-admin/network.php:77 +#: tmp/wordpress/wp-admin/network.php:66 tmp/wordpress/wp-admin/network.php:77 +msgid "" +"Documentation on " +"Creating a Network" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network.php:67 +#: tmp/old/wordpress/wp-admin/network.php:78 +#: tmp/wordpress/wp-admin/network.php:67 tmp/wordpress/wp-admin/network.php:78 +msgid "" +"Documentation " +"on the Network Screen" +msgstr "" + +#: tmp/old/wordpress/wp-admin/network.php:71 +#: tmp/wordpress/wp-admin/network.php:71 +msgid "Network" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:22 +#: tmp/wordpress/wp-admin/options-discussion.php:22 +msgid "" +"This screen provides many options for controlling the management and display " +"of comments and links to your posts/pages. So many, in fact, they won’" +"t all fit here! :) Use the documentation links to get information on what " +"each discussion setting does." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:23 +#: tmp/old/wordpress/wp-admin/options-general.php:35 +#: tmp/old/wordpress/wp-admin/options-media.php:24 +#: tmp/old/wordpress/wp-admin/options-permalink.php:23 +#: tmp/old/wordpress/wp-admin/options-permalink.php:32 +#: tmp/old/wordpress/wp-admin/options-permalink.php:39 +#: tmp/old/wordpress/wp-admin/options-reading.php:26 +#: tmp/old/wordpress/wp-admin/options-writing.php:22 +#: tmp/wordpress/wp-admin/options-discussion.php:23 +#: tmp/wordpress/wp-admin/options-general.php:35 +#: tmp/wordpress/wp-admin/options-media.php:24 +#: tmp/wordpress/wp-admin/options-permalink.php:23 +#: tmp/wordpress/wp-admin/options-permalink.php:32 +#: tmp/wordpress/wp-admin/options-permalink.php:39 +#: tmp/wordpress/wp-admin/options-reading.php:26 +#: tmp/wordpress/wp-admin/options-writing.php:22 +msgid "" +"You must click the Save Changes button at the bottom of the screen for new " +"settings to take effect." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:28 +#: tmp/wordpress/wp-admin/options-discussion.php:28 +msgid "" +"Documentation on Discussion Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:43 +#: tmp/old/wordpress/wp-admin/options-discussion.php:44 +#: tmp/wordpress/wp-admin/options-discussion.php:43 +#: tmp/wordpress/wp-admin/options-discussion.php:44 +msgid "Default article settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:47 +#: tmp/wordpress/wp-admin/options-discussion.php:47 +msgid "Attempt to notify any blogs linked to from the article" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:51 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:554 +#: tmp/wordpress/wp-admin/options-discussion.php:51 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:554 +msgid "" +"Allow link notifications from other blogs (pingbacks and trackbacks) on new " +"articles" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:55 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:549 +#: tmp/wordpress/wp-admin/options-discussion.php:55 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:549 +msgid "Allow people to post comments on new articles" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:57 +#: tmp/wordpress/wp-admin/options-discussion.php:57 +msgid "These settings may be overridden for individual articles." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:61 +#: tmp/old/wordpress/wp-admin/options-discussion.php:62 +#: tmp/wordpress/wp-admin/options-discussion.php:61 +#: tmp/wordpress/wp-admin/options-discussion.php:62 +msgid "Other comment settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:63 +#: tmp/wordpress/wp-admin/options-discussion.php:63 +msgid "Comment author must fill out name and email" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:67 +#: tmp/wordpress/wp-admin/options-discussion.php:67 +msgid "Users must be registered and logged in to comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:68 +#: tmp/wordpress/wp-admin/options-discussion.php:68 +msgid "(Signup has been disabled. Only members of this site can comment.)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:74 +#: tmp/wordpress/wp-admin/options-discussion.php:74 +msgid "Automatically close comments on articles older than %s days" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:97 +#: tmp/wordpress/wp-admin/options-discussion.php:97 +msgid "Enable threaded (nested) comments %s levels deep" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:106 +#: tmp/wordpress/wp-admin/options-discussion.php:106 +msgid "last" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:108 +#: tmp/wordpress/wp-admin/options-discussion.php:108 +msgid "first" +msgstr "" + +#. translators: 1: Form field control for number of top level comments per +#. page, 2: Form field control for the 'first' or 'last' page +#: tmp/old/wordpress/wp-admin/options-discussion.php:111 +#: tmp/wordpress/wp-admin/options-discussion.php:111 +msgid "" +"Break comments into pages with %1$s top level comments per page and the %2$s " +"page displayed by default" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:119 +#: tmp/wordpress/wp-admin/options-discussion.php:119 +msgid "older" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:121 +#: tmp/wordpress/wp-admin/options-discussion.php:121 +msgid "newer" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:123 +#: tmp/wordpress/wp-admin/options-discussion.php:123 +msgid "" +"Comments should be displayed with the %s comments at the top of each page" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:129 +#: tmp/old/wordpress/wp-admin/options-discussion.php:130 +#: tmp/wordpress/wp-admin/options-discussion.php:129 +#: tmp/wordpress/wp-admin/options-discussion.php:130 +msgid "Email me whenever" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:133 +#: tmp/wordpress/wp-admin/options-discussion.php:133 +msgid "Anyone posts a comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:137 +#: tmp/wordpress/wp-admin/options-discussion.php:137 +msgid "A comment is held for moderation" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:141 +#: tmp/old/wordpress/wp-admin/options-discussion.php:142 +#: tmp/wordpress/wp-admin/options-discussion.php:141 +#: tmp/wordpress/wp-admin/options-discussion.php:142 +msgid "Before a comment appears" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:145 +#: tmp/wordpress/wp-admin/options-discussion.php:145 +msgid "Comment must be manually approved" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:147 +#: tmp/wordpress/wp-admin/options-discussion.php:147 +msgid "Comment author must have a previously approved comment" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:151 +#: tmp/old/wordpress/wp-admin/options-discussion.php:152 +#: tmp/wordpress/wp-admin/options-discussion.php:151 +#: tmp/wordpress/wp-admin/options-discussion.php:152 +msgid "Comment Moderation" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:153 +#: tmp/wordpress/wp-admin/options-discussion.php:153 +msgid "" +"Hold a comment in the queue if it contains %s or more links. (A common " +"characteristic of comment spam is a large number of hyperlinks.)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:155 +#: tmp/wordpress/wp-admin/options-discussion.php:155 +msgid "" +"When a comment contains any of these words in its content, name, URL, email, " +"or IP, it will be held in the moderation queue. One word or IP per line. It " +"will match inside words, so “press” will match “" +"WordPress”." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:162 +#: tmp/old/wordpress/wp-admin/options-discussion.php:163 +#: tmp/wordpress/wp-admin/options-discussion.php:162 +#: tmp/wordpress/wp-admin/options-discussion.php:163 +msgid "Comment Blacklist" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:164 +#: tmp/wordpress/wp-admin/options-discussion.php:164 +msgid "" +"When a comment contains any of these words in its content, name, URL, email, " +"or IP, it will be put in the trash. One word or IP per line. It will match " +"inside words, so “press” will match “WordPress”." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:173 +#: tmp/wordpress/wp-admin/options-discussion.php:173 +msgid "Avatars" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:175 +#: tmp/wordpress/wp-admin/options-discussion.php:175 +msgid "" +"An avatar is an image that follows you from weblog to weblog appearing " +"beside your name when you comment on avatar enabled sites. Here you can " +"enable the display of avatars for people who comment on your site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:185 +#: tmp/old/wordpress/wp-admin/options-discussion.php:186 +#: tmp/wordpress/wp-admin/options-discussion.php:185 +#: tmp/wordpress/wp-admin/options-discussion.php:186 +msgid "Avatar Display" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:189 +#: tmp/wordpress/wp-admin/options-discussion.php:189 +msgid "Show Avatars" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:194 +#: tmp/old/wordpress/wp-admin/options-discussion.php:195 +#: tmp/wordpress/wp-admin/options-discussion.php:194 +#: tmp/wordpress/wp-admin/options-discussion.php:195 +msgid "Maximum Rating" +msgstr "" + +#. translators: Content suitability rating: +#. https://en.wikipedia.org/wiki/Motion_Picture_Association_of_America_film_rating_system +#: tmp/old/wordpress/wp-admin/options-discussion.php:200 +#: tmp/wordpress/wp-admin/options-discussion.php:200 +msgid "G — Suitable for all audiences" +msgstr "" + +#. translators: Content suitability rating: +#. https://en.wikipedia.org/wiki/Motion_Picture_Association_of_America_film_rating_system +#: tmp/old/wordpress/wp-admin/options-discussion.php:202 +#: tmp/wordpress/wp-admin/options-discussion.php:202 +msgid "PG — Possibly offensive, usually for audiences 13 and above" +msgstr "" + +#. translators: Content suitability rating: +#. https://en.wikipedia.org/wiki/Motion_Picture_Association_of_America_film_rating_system +#: tmp/old/wordpress/wp-admin/options-discussion.php:204 +#: tmp/wordpress/wp-admin/options-discussion.php:204 +msgid "R — Intended for adult audiences above 17" +msgstr "" + +#. translators: Content suitability rating: +#. https://en.wikipedia.org/wiki/Motion_Picture_Association_of_America_film_rating_system +#: tmp/old/wordpress/wp-admin/options-discussion.php:206 +#: tmp/wordpress/wp-admin/options-discussion.php:206 +msgid "X — Even more mature than above" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:217 +#: tmp/old/wordpress/wp-admin/options-discussion.php:218 +#: tmp/wordpress/wp-admin/options-discussion.php:217 +#: tmp/wordpress/wp-admin/options-discussion.php:218 +msgid "Default Avatar" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:220 +#: tmp/wordpress/wp-admin/options-discussion.php:220 +msgid "" +"For users without a custom avatar of their own, you can either display a " +"generic logo or a generated one based on their email address." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:224 +#: tmp/wordpress/wp-admin/options-discussion.php:224 +msgid "Mystery Person" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:225 +#: tmp/wordpress/wp-admin/options-discussion.php:225 +msgid "Blank" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:226 +#: tmp/wordpress/wp-admin/options-discussion.php:226 +msgid "Gravatar Logo" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:227 +#: tmp/wordpress/wp-admin/options-discussion.php:227 +msgid "Identicon (Generated)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:228 +#: tmp/wordpress/wp-admin/options-discussion.php:228 +msgid "Wavatar (Generated)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:229 +#: tmp/wordpress/wp-admin/options-discussion.php:229 +msgid "MonsterID (Generated)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-discussion.php:230 +#: tmp/wordpress/wp-admin/options-discussion.php:230 +msgid "Retro (Generated)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:18 +#: tmp/wordpress/wp-admin/options-general.php:18 +msgid "General Settings" +msgstr "" + +#. translators: date and time format for exact current time, mainly about +#. timezones, see https://secure.php.net/date +#: tmp/old/wordpress/wp-admin/options-general.php:21 +#: tmp/wordpress/wp-admin/options-general.php:21 +msgctxt "timezone date format" +msgid "Y-m-d H:i:s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:25 +#: tmp/wordpress/wp-admin/options-general.php:25 +msgid "" +"The fields on this screen determine some of the basics of your site setup." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:26 +#: tmp/wordpress/wp-admin/options-general.php:26 +msgid "" +"Most themes display the site title at the top of every page, in the title " +"bar of the browser, and as the identifying name for syndicated feeds. The " +"tagline is also displayed by many themes." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:29 +#: tmp/wordpress/wp-admin/options-general.php:29 +msgid "" +"The WordPress URL and the Site URL can be the same (example.com) or " +"different; for example, having the WordPress core files (example.com/" +"wordpress) in a subdirectory instead of the root directory." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:30 +#: tmp/wordpress/wp-admin/options-general.php:30 +msgid "" +"If you want site visitors to be able to register themselves, as opposed to " +"by the site administrator, check the membership box. A default user role can " +"be set for all new users, whether self-registered or registered by the site " +"admin." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:34 +#: tmp/wordpress/wp-admin/options-general.php:34 +msgid "UTC means Coordinated Universal Time." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:45 +#: tmp/wordpress/wp-admin/options-general.php:45 +msgid "" +"Documentation on General Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:64 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3742 +#: tmp/wordpress/wp-admin/options-general.php:64 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3742 +msgid "Tagline" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:66 +#: tmp/wordpress/wp-admin/options-general.php:66 +msgid "In a few words, explain what this site is about." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:70 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:422 +#: tmp/wordpress/wp-admin/options-general.php:70 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:422 +msgid "WordPress Address (URL)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:77 +#: tmp/wordpress/wp-admin/options-general.php:77 +msgid "" +"Enter the address here if you want your site home page to be " +"different from your WordPress installation directory." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:81 +#: tmp/old/wordpress/wp-admin/options-general.php:100 +#: tmp/wordpress/wp-admin/options-general.php:81 +#: tmp/wordpress/wp-admin/options-general.php:100 +msgid "Email Address" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:83 +#: tmp/old/wordpress/wp-includes/option.php:1762 +#: tmp/wordpress/wp-admin/options-general.php:83 +#: tmp/wordpress/wp-includes/option.php:1762 +msgid "This address is used for admin purposes, like new user notification." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:86 +#: tmp/old/wordpress/wp-admin/options-general.php:87 +#: tmp/wordpress/wp-admin/options-general.php:86 +#: tmp/wordpress/wp-admin/options-general.php:87 +msgid "Membership" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:89 +#: tmp/wordpress/wp-admin/options-general.php:89 +msgid "Anyone can register" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:93 +#: tmp/wordpress/wp-admin/options-general.php:93 +msgid "New User Default Role" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:102 +#: tmp/wordpress/wp-admin/options-general.php:102 +msgid "" +"This address is used for admin purposes. If you change this we will send you " +"an email at your new address to confirm it. The new address will not " +"become active until confirmed." +msgstr "" + +#. translators: %s: new admin email +#: tmp/old/wordpress/wp-admin/options-general.php:110 +#: tmp/wordpress/wp-admin/options-general.php:110 +msgid "There is a pending change of the admin email to %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:146 +#: tmp/wordpress/wp-admin/options-general.php:146 +msgid "Timezone" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:153 +#: tmp/wordpress/wp-admin/options-general.php:153 +msgid "" +"Choose either a city in the same timezone as you or a UTC timezone offset." +msgstr "" + +#. translators: 1: UTC abbreviation, 2: UTC time +#: tmp/old/wordpress/wp-admin/options-general.php:158 +#: tmp/wordpress/wp-admin/options-general.php:158 +msgid "Universal time (%1$s) is %2$s." +msgstr "" + +#. translators: %s: local time +#: tmp/old/wordpress/wp-admin/options-general.php:166 +#: tmp/wordpress/wp-admin/options-general.php:166 +msgid "Local time is %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:181 +#: tmp/wordpress/wp-admin/options-general.php:181 +msgid "This timezone is currently in daylight saving time." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:183 +#: tmp/wordpress/wp-admin/options-general.php:183 +msgid "This timezone is currently in standard time." +msgstr "" + +#. translators: %s: date and time +#: tmp/old/wordpress/wp-admin/options-general.php:205 +#: tmp/wordpress/wp-admin/options-general.php:205 +msgid "Daylight saving time begins on: %s." +msgstr "" + +#. translators: %s: date and time +#: tmp/old/wordpress/wp-admin/options-general.php:207 +#: tmp/wordpress/wp-admin/options-general.php:207 +msgid "Standard time begins on: %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:216 +#: tmp/wordpress/wp-admin/options-general.php:216 +msgid "This timezone does not observe daylight saving time." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:229 +#: tmp/old/wordpress/wp-admin/options-general.php:231 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:489 +#: tmp/wordpress/wp-admin/options-general.php:229 +#: tmp/wordpress/wp-admin/options-general.php:231 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:489 +msgid "Date Format" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:256 +#: tmp/old/wordpress/wp-admin/options-general.php:292 +#: tmp/wordpress/wp-admin/options-general.php:256 +#: tmp/wordpress/wp-admin/options-general.php:292 +msgid "Custom:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:256 +#: tmp/wordpress/wp-admin/options-general.php:256 +msgid "enter a custom date format in the following field" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:257 +#: tmp/wordpress/wp-admin/options-general.php:257 +msgid "Custom date format:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:259 +#: tmp/old/wordpress/wp-admin/options-general.php:295 +#: tmp/wordpress/wp-admin/options-general.php:259 +#: tmp/wordpress/wp-admin/options-general.php:295 +msgid "example:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:266 +#: tmp/old/wordpress/wp-admin/options-general.php:268 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:494 +#: tmp/wordpress/wp-admin/options-general.php:266 +#: tmp/wordpress/wp-admin/options-general.php:268 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:494 +msgid "Time Format" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:292 +#: tmp/wordpress/wp-admin/options-general.php:292 +msgid "enter a custom time format in the following field" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:293 +#: tmp/wordpress/wp-admin/options-general.php:293 +msgid "Custom time format:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:298 +#: tmp/wordpress/wp-admin/options-general.php:298 +msgid "" +"Documentation on date and time formatting." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:304 +#: tmp/wordpress/wp-admin/options-general.php:304 +msgid "Week Starts On" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-general.php:352 +#: tmp/old/wordpress/wp-admin/options-general.php:356 +#: tmp/wordpress/wp-admin/options-general.php:352 +#: tmp/wordpress/wp-admin/options-general.php:356 +msgid "The %s constant in your %s file is no longer needed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:15 +#: tmp/wordpress/wp-admin/options-media.php:15 +msgid "Media Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:18 +#: tmp/wordpress/wp-admin/options-media.php:18 +msgid "" +"You can set maximum sizes for images inserted into your written content; you " +"can also insert an image as Full Size." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:21 +#: tmp/wordpress/wp-admin/options-media.php:21 +msgid "" +"Uploading Files allows you to choose the folder and path for storing your " +"uploaded files." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:34 +#: tmp/wordpress/wp-admin/options-media.php:34 +msgid "" +"Documentation " +"on Media Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:48 +#: tmp/wordpress/wp-admin/options-media.php:48 +msgid "Image sizes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:49 +#: tmp/wordpress/wp-admin/options-media.php:49 +msgid "" +"The sizes listed below determine the maximum dimensions in pixels to use " +"when adding an image to the Media Library." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:53 +#: tmp/wordpress/wp-admin/options-media.php:53 +msgid "Thumbnail size" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:55 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1001 +#: tmp/old/wordpress/wp-includes/media-template.php:962 +#: tmp/wordpress/wp-admin/options-media.php:55 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1001 +#: tmp/wordpress/wp-includes/media-template.php:962 +msgid "Width" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:57 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1000 +#: tmp/old/wordpress/wp-includes/media-template.php:962 +#: tmp/wordpress/wp-admin/options-media.php:57 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1000 +#: tmp/wordpress/wp-includes/media-template.php:962 +msgid "Height" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:60 +#: tmp/wordpress/wp-admin/options-media.php:60 +msgid "" +"Crop thumbnail to exact dimensions (normally thumbnails are proportional)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:65 +#: tmp/old/wordpress/wp-admin/options-media.php:66 +#: tmp/wordpress/wp-admin/options-media.php:65 +#: tmp/wordpress/wp-admin/options-media.php:66 +msgid "Medium size" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:67 +#: tmp/old/wordpress/wp-admin/options-media.php:77 +#: tmp/wordpress/wp-admin/options-media.php:67 +#: tmp/wordpress/wp-admin/options-media.php:77 +msgid "Max Width" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:69 +#: tmp/old/wordpress/wp-admin/options-media.php:79 +#: tmp/wordpress/wp-admin/options-media.php:69 +#: tmp/wordpress/wp-admin/options-media.php:79 +msgid "Max Height" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:75 +#: tmp/old/wordpress/wp-admin/options-media.php:76 +#: tmp/wordpress/wp-admin/options-media.php:75 +#: tmp/wordpress/wp-admin/options-media.php:76 +msgid "Large size" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:92 +#: tmp/wordpress/wp-admin/options-media.php:92 +msgid "Embeds" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:99 +#: tmp/wordpress/wp-admin/options-media.php:99 +msgid "Uploading Files" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:106 +#: tmp/wordpress/wp-admin/options-media.php:106 +msgid "Store uploads in this folder" +msgstr "" + +#. translators: %s: wp-content/uploads +#: tmp/old/wordpress/wp-admin/options-media.php:110 +#: tmp/wordpress/wp-admin/options-media.php:110 +msgid "Default is %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:116 +#: tmp/wordpress/wp-admin/options-media.php:116 +msgid "Full URL path to files" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:118 +#: tmp/wordpress/wp-admin/options-media.php:118 +msgid "Configuring this is optional. By default, it should be blank." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-media.php:126 +#: tmp/wordpress/wp-admin/options-media.php:126 +msgid "Organize my uploads into month- and year-based folders" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:15 +#: tmp/old/wordpress/wp-admin/options-permalink.php:28 +#: tmp/wordpress/wp-admin/options-permalink.php:15 +#: tmp/wordpress/wp-admin/options-permalink.php:28 +msgid "Permalink Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:21 +#: tmp/wordpress/wp-admin/options-permalink.php:21 +msgid "" +"Permalinks are the permanent URLs to your individual pages and blog posts, " +"as well as your category and tag archives. A permalink is the web address " +"used to link to your content. The URL to each post should be permanent, and " +"never change — hence the name permalink." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:22 +#: tmp/wordpress/wp-admin/options-permalink.php:22 +msgid "" +"This screen allows you to choose your permalink structure. You can choose " +"from common settings or create custom URL structures." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:29 +#: tmp/wordpress/wp-admin/options-permalink.php:29 +msgid "" +"Permalinks can contain useful information, such as the post date, title, or " +"other elements. You can choose from any of the suggested permalink formats, " +"or you can craft your own if you select Custom Structure." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:30 +#: tmp/wordpress/wp-admin/options-permalink.php:30 +msgid "" +"If you pick an option other than Plain, your general URL path with structure " +"tags (terms surrounded by %) will also appear in the custom " +"structure field and your path can be further modified there." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:31 +#: tmp/wordpress/wp-admin/options-permalink.php:31 +msgid "" +"When you assign multiple categories or tags to a post, only one can show up " +"in the permalink: the lowest numbered category. This applies if your custom " +"structure includes %category% or %tag%." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:37 +#: tmp/wordpress/wp-admin/options-permalink.php:37 +msgid "Custom Structures" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:38 +#: tmp/wordpress/wp-admin/options-permalink.php:38 +msgid "" +"The Optional fields let you customize the “category” and “" +"tag” base names that will appear in archive URLs. For example, the " +"page listing all posts in the “Uncategorized” category could be " +"/topics/uncategorized instead of /category/uncategorized." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:44 +#: tmp/wordpress/wp-admin/options-permalink.php:44 +msgid "" +"Documentation on Permalinks Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:45 +#: tmp/wordpress/wp-admin/options-permalink.php:45 +msgid "" +"Documentation on " +"Using Permalinks" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:129 +#: tmp/wordpress/wp-admin/options-permalink.php:129 +msgid "Permalink structure updated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:133 +#: tmp/wordpress/wp-admin/options-permalink.php:133 +msgid "You should update your web.config now." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:135 +#: tmp/wordpress/wp-admin/options-permalink.php:135 +msgid "" +"Permalink structure updated. Remove write access on web.config file now!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:138 +#: tmp/wordpress/wp-admin/options-permalink.php:138 +msgid "You should update your .htaccess now." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:161 +#: tmp/wordpress/wp-admin/options-permalink.php:161 +msgid "" +"WordPress offers you the ability to create a custom URL structure for your " +"permalinks and archives. Custom URL structures can improve the aesthetics, " +"usability, and forward-compatibility of your links. A number of tags are available, and " +"here are some examples to get you started." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:174 +#: tmp/old/wordpress/wp-admin/options-permalink.php:194 +#: tmp/wordpress/wp-admin/options-permalink.php:174 +#: tmp/wordpress/wp-admin/options-permalink.php:194 +msgctxt "sample permalink base" +msgid "archives" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:178 +#: tmp/wordpress/wp-admin/options-permalink.php:178 +msgid "Common Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:181 +#: tmp/wordpress/wp-admin/options-permalink.php:181 +msgid "Plain" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:185 +#: tmp/wordpress/wp-admin/options-permalink.php:185 +msgid "Day and name" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:186 +#: tmp/old/wordpress/wp-admin/options-permalink.php:190 +#: tmp/old/wordpress/wp-admin/options-permalink.php:198 +#: tmp/wordpress/wp-admin/options-permalink.php:186 +#: tmp/wordpress/wp-admin/options-permalink.php:190 +#: tmp/wordpress/wp-admin/options-permalink.php:198 +msgctxt "sample permalink structure" +msgid "sample-post" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:189 +#: tmp/wordpress/wp-admin/options-permalink.php:189 +msgid "Month and name" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:193 +#: tmp/wordpress/wp-admin/options-permalink.php:193 +msgid "Numeric" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:197 +#: tmp/wordpress/wp-admin/options-permalink.php:197 +msgid "Post name" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:203 +#: tmp/wordpress/wp-admin/options-permalink.php:203 +msgid "Custom Structure" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:213 +#: tmp/wordpress/wp-admin/options-permalink.php:213 +msgid "Optional" +msgstr "" + +#. translators: %s is a placeholder that must come at the start of the URL. +#: tmp/old/wordpress/wp-admin/options-permalink.php:216 +#: tmp/wordpress/wp-admin/options-permalink.php:216 +msgid "" +"If you like, you may enter custom structures for your category and tag URLs " +"here. For example, using topics as your category base would " +"make your category links like %s/topics/uncategorized/. If you " +"leave these blank the defaults will be used." +msgstr "" + +#. translators: prefix for category permalinks +#: tmp/old/wordpress/wp-admin/options-permalink.php:220 +#: tmp/wordpress/wp-admin/options-permalink.php:220 +msgid "Category base" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:224 +#: tmp/wordpress/wp-admin/options-permalink.php:224 +msgid "Tag base" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:238 +#: tmp/wordpress/wp-admin/options-permalink.php:238 +msgid "" +"If your web.config file were writable, we could do this " +"automatically, but it isn’t so this is the url rewrite rule you should " +"have in your web.config file. Click in the field and press " +"CTRL + a to select all. Then insert this rule inside of the " +"/<configuration>/<system.webServer>/<rewrite>/<" +"rules> element in web.config file." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:243 +#: tmp/wordpress/wp-admin/options-permalink.php:243 +msgid "" +"If you temporarily make your web.config file writable for us to " +"generate rewrite rules automatically, do not forget to revert the " +"permissions after rule has been saved." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:245 +#: tmp/wordpress/wp-admin/options-permalink.php:245 +msgid "" +"If the root directory of your site were writable, we could do this " +"automatically, but it isn’t so this is the url rewrite rule you should " +"have in your web.config file. Create a new file, called " +"web.config in the root directory of your site. Click in the " +"field and press CTRL + a to select all. Then insert this code " +"into the web.config file." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:250 +#: tmp/wordpress/wp-admin/options-permalink.php:250 +msgid "" +"If you temporarily make your site’s root directory writable for us to " +"generate the web.config file automatically, do not forget to " +"revert the permissions after the file has been created." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:254 +#: tmp/wordpress/wp-admin/options-permalink.php:254 +msgid "" +"Documentation on Nginx " +"configuration." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-permalink.php:257 +#: tmp/wordpress/wp-admin/options-permalink.php:257 +msgid "" +"If your .htaccess file were writable, we could do this " +"automatically, but it isn’t so these are the mod_rewrite rules you " +"should have in your .htaccess file. Click in the field and " +"press CTRL + a to select all." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:15 +#: tmp/wordpress/wp-admin/options-reading.php:15 +msgid "Reading Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:23 +#: tmp/wordpress/wp-admin/options-reading.php:23 +msgid "" +"This screen contains the settings that affect the display of your content." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:24 +#: tmp/wordpress/wp-admin/options-reading.php:24 +msgid "" +"You can choose what’s displayed on the front page of your site. It can " +"be posts in reverse chronological order (classic blog), or a fixed/static " +"page. To set a static home page, you first need to create two Pages. One will become the front page, and the other will be where " +"your posts are displayed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:25 +#: tmp/wordpress/wp-admin/options-reading.php:25 +msgid "" +"You can also control the display of your content in RSS feeds, including the " +"maximum numbers of posts to display and whether to show full text or a " +"summary." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:32 +#: tmp/wordpress/wp-admin/options-reading.php:32 +msgid "" +"You can choose whether or not your site will be crawled by robots, ping " +"services, and spiders. If you want those services to ignore your site, click " +"the checkbox next to “Discourage search engines from indexing this " +"site” and click the Save Changes button at the bottom of the screen. " +"Note that your privacy is not complete; your site is still visible on the " +"web." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:33 +#: tmp/wordpress/wp-admin/options-reading.php:33 +msgid "" +"When this setting is in effect, a reminder is shown in the At a Glance box " +"of the Dashboard that says, “Search Engines Discouraged,” to " +"remind you that your site is not being crawled." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:38 +#: tmp/wordpress/wp-admin/options-reading.php:38 +msgid "" +"Documentation on Reading Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:53 +#: tmp/wordpress/wp-admin/options-reading.php:53 +msgid "Encoding for pages and feeds" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:70 +#: tmp/old/wordpress/wp-admin/options-reading.php:71 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4103 +#: tmp/wordpress/wp-admin/options-reading.php:70 +#: tmp/wordpress/wp-admin/options-reading.php:71 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4103 +msgid "Front page displays" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:74 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4107 +#: tmp/wordpress/wp-admin/options-reading.php:74 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4107 +msgid "Your latest posts" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:79 +#: tmp/wordpress/wp-admin/options-reading.php:79 +msgid "A static page (select below)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:83 +#: tmp/wordpress/wp-admin/options-reading.php:83 +msgid "Front page: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:84 +#: tmp/wordpress/wp-admin/options-reading.php:84 +msgid "Posts page: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:87 +#: tmp/wordpress/wp-admin/options-reading.php:87 +msgid "Warning: these pages should not be the same!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:93 +#: tmp/wordpress/wp-admin/options-reading.php:93 +msgid "Blog pages show at most" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:95 +#: tmp/wordpress/wp-admin/options-reading.php:95 +msgid "posts" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:99 +#: tmp/wordpress/wp-admin/options-reading.php:99 +msgid "Syndication feeds show the most recent" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:100 +#: tmp/wordpress/wp-admin/options-reading.php:100 +msgid "items" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:103 +#: tmp/old/wordpress/wp-admin/options-reading.php:104 +#: tmp/wordpress/wp-admin/options-reading.php:103 +#: tmp/wordpress/wp-admin/options-reading.php:104 +msgid "For each article in a feed, show" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:105 +#: tmp/wordpress/wp-admin/options-reading.php:105 +msgid "Full text" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-reading.php:106 +#: tmp/wordpress/wp-admin/options-reading.php:106 +msgid "Summary" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:15 +#: tmp/wordpress/wp-admin/options-writing.php:15 +msgid "Writing Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:21 +#: tmp/wordpress/wp-admin/options-writing.php:21 +msgid "" +"You can submit content in several different ways; this screen holds the " +"settings for all of them. The top section controls the editor within the " +"dashboard, while the rest control external publishing methods. For more " +"information on any of these methods, use the documentation links." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:29 +#: tmp/wordpress/wp-admin/options-writing.php:29 +msgid "Post Via Email" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:30 +#: tmp/wordpress/wp-admin/options-writing.php:30 +msgid "" +"Post via email settings allow you to send your WordPress install an email " +"with the content of your post. You must set up a secret email account with " +"POP3 access to use this, and any mail received at this address will be " +"posted, so it’s a good idea to keep this address very secret." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:38 +#: tmp/old/wordpress/wp-admin/options-writing.php:167 +#: tmp/wordpress/wp-admin/options-writing.php:38 +#: tmp/wordpress/wp-admin/options-writing.php:167 +msgid "Update Services" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:39 +#: tmp/wordpress/wp-admin/options-writing.php:39 +msgid "" +"If desired, WordPress will automatically alert various services of your new " +"posts." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:45 +#: tmp/wordpress/wp-admin/options-writing.php:45 +msgid "" +"Documentation on Writing Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:61 +#: tmp/old/wordpress/wp-admin/options-writing.php:62 +#: tmp/wordpress/wp-admin/options-writing.php:61 +#: tmp/wordpress/wp-admin/options-writing.php:62 +msgid "Formatting" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:65 +#: tmp/wordpress/wp-admin/options-writing.php:65 +msgid "" +"Convert emoticons like :-) and :-P to graphics on " +"display" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:66 +#: tmp/wordpress/wp-admin/options-writing.php:66 +msgid "WordPress should correct invalidly nested XHTML automatically" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:71 +#: tmp/wordpress/wp-admin/options-writing.php:71 +msgid "Default Post Category" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:83 +#: tmp/wordpress/wp-admin/options-writing.php:83 +msgid "Default Post Format" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:97 +#: tmp/wordpress/wp-admin/options-writing.php:97 +msgid "Default Link Category" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:116 +#: tmp/wordpress/wp-admin/options-writing.php:116 +msgid "Post via email" +msgstr "" + +#. translators: 1, 2, 3: examples of random email addresses +#: tmp/old/wordpress/wp-admin/options-writing.php:120 +#: tmp/wordpress/wp-admin/options-writing.php:120 +msgid "" +"To post to WordPress by email you must set up a secret email account with " +"POP3 access. Any mail received at this address will be posted, so it’s " +"a good idea to keep this address very secret. Here are three random strings " +"you could use: %1$s, %2$s, %3$s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:129 +#: tmp/wordpress/wp-admin/options-writing.php:129 +msgid "Mail Server" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:131 +#: tmp/wordpress/wp-admin/options-writing.php:131 +msgid "Port" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:136 +#: tmp/wordpress/wp-admin/options-writing.php:136 +msgid "Login Name" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:146 +#: tmp/wordpress/wp-admin/options-writing.php:146 +msgid "Default Mail Category" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:171 +#: tmp/wordpress/wp-admin/options-writing.php:171 +msgid "" +"When you publish a new post, WordPress automatically notifies the following " +"site update services. For more about this, see Update Services on the Codex. Separate " +"multiple service URLs with line breaks." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options-writing.php:177 +#: tmp/wordpress/wp-admin/options-writing.php:177 +msgid "" +"WordPress is not notifying any Update Services because of your site’s visibility settings." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options.php:50 +#: tmp/wordpress/wp-admin/options.php:50 +msgid "Sorry, you are not allowed to manage these options." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options.php:160 +#: tmp/wordpress/wp-admin/options.php:160 +msgid "ERROR: options page not found." +msgstr "" + +#: tmp/old/wordpress/wp-admin/options.php:164 +#: tmp/wordpress/wp-admin/options.php:164 +msgid "" +"Sorry, you are not allowed to modify unregistered settings for this site." +msgstr "" + +#. translators: %s: the option/setting +#: tmp/old/wordpress/wp-admin/options.php:204 +#: tmp/wordpress/wp-admin/options.php:204 +msgid "" +"The %s setting is unregistered. Unregistered settings are deprecated. See " +"https://codex.wordpress.org/Settings_API" +msgstr "" + +#: tmp/old/wordpress/wp-admin/options.php:253 +#: tmp/wordpress/wp-admin/options.php:253 +msgid "All Settings" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:18 +#: tmp/wordpress/wp-admin/plugin-editor.php:18 +msgid "Sorry, you are not allowed to edit plugins for this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:20 +#: tmp/wordpress/wp-admin/plugin-editor.php:20 +msgid "Edit Plugins" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:130 +#: tmp/wordpress/wp-admin/plugin-editor.php:130 +msgid "No such file exists! Double check the name and try again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:137 +#: tmp/wordpress/wp-admin/plugin-editor.php:137 +msgid "Files of this type are not editable." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:145 +#: tmp/wordpress/wp-admin/plugin-editor.php:145 +msgid "" +"You can use the editor to make changes to any of your plugins’ " +"individual PHP files. Be aware that if you make changes, plugins updates " +"will overwrite your customizations." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:146 +#: tmp/wordpress/wp-admin/plugin-editor.php:146 +msgid "" +"Choose a plugin to edit from the dropdown menu and click the Select button. " +"Click once on any file name to load it in the editor, and make your changes. " +"Don’t forget to save your changes (Update File) when you’re " +"finished." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:147 +#: tmp/wordpress/wp-admin/plugin-editor.php:147 +msgid "" +"The Documentation menu below the editor lists the PHP functions recognized " +"in the plugin file. Clicking Look Up takes you to a web page about that " +"particular function." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:148 +#: tmp/old/wordpress/wp-admin/theme-editor.php:30 +#: tmp/wordpress/wp-admin/plugin-editor.php:148 +#: tmp/wordpress/wp-admin/theme-editor.php:30 +msgid "" +"In the editing area the Tab key enters a tab character. To move below this " +"area by pressing Tab, press the Esc key followed by the Tab key. In some " +"cases the Esc key will need to be pressed twice before the Tab key will " +"allow you to continue." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:149 +#: tmp/wordpress/wp-admin/plugin-editor.php:149 +msgid "" +"If you want to make changes but don’t want them to be overwritten when " +"the plugin is updated, you may be ready to think about writing your own " +"plugin. For information on how to edit plugins, write your own from scratch, " +"or just better understand their anatomy, check out the links below." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:150 +#: tmp/old/wordpress/wp-admin/theme-editor.php:34 +#: tmp/wordpress/wp-admin/plugin-editor.php:150 +#: tmp/wordpress/wp-admin/theme-editor.php:34 +msgid "" +"Any edits to files from this screen will be reflected on all sites in the " +"network." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:155 +#: tmp/wordpress/wp-admin/plugin-editor.php:155 +msgid "" +"Documentation " +"on Editing Plugins" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:156 +#: tmp/wordpress/wp-admin/plugin-editor.php:156 +msgid "" +"Documentation on " +"Writing Plugins" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:171 +#: tmp/old/wordpress/wp-admin/theme-editor.php:145 +#: tmp/wordpress/wp-admin/plugin-editor.php:171 +#: tmp/wordpress/wp-admin/theme-editor.php:145 +msgid "Function Name…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:182 +#: tmp/old/wordpress/wp-admin/theme-editor.php:156 +#: tmp/wordpress/wp-admin/plugin-editor.php:182 +#: tmp/wordpress/wp-admin/theme-editor.php:156 +msgid "File edited successfully." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:184 +#: tmp/wordpress/wp-admin/plugin-editor.php:184 +msgid "" +"This plugin has been deactivated because your changes resulted in a " +"fatal error." +msgstr "" + +#. translators: %s: plugin file name +#: tmp/old/wordpress/wp-admin/plugin-editor.php:206 +#: tmp/wordpress/wp-admin/plugin-editor.php:206 +msgid "Editing %s (active)" +msgstr "" + +#. translators: %s: plugin file name +#: tmp/old/wordpress/wp-admin/plugin-editor.php:209 +#: tmp/wordpress/wp-admin/plugin-editor.php:209 +msgid "Browsing %s (active)" +msgstr "" + +#. translators: %s: plugin file name +#: tmp/old/wordpress/wp-admin/plugin-editor.php:214 +#: tmp/wordpress/wp-admin/plugin-editor.php:214 +msgid "Editing %s (inactive)" +msgstr "" + +#. translators: %s: plugin file name +#: tmp/old/wordpress/wp-admin/plugin-editor.php:217 +#: tmp/wordpress/wp-admin/plugin-editor.php:217 +msgid "Browsing %s (inactive)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:224 +#: tmp/wordpress/wp-admin/plugin-editor.php:224 +msgid "Select plugin to edit:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:246 +#: tmp/wordpress/wp-admin/plugin-editor.php:246 +msgid "Plugin Files" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:275 +#: tmp/old/wordpress/wp-admin/theme-editor.php:264 +#: tmp/wordpress/wp-admin/plugin-editor.php:275 +#: tmp/wordpress/wp-admin/theme-editor.php:264 +msgid "Documentation:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:275 +#: tmp/old/wordpress/wp-admin/theme-editor.php:266 +#: tmp/wordpress/wp-admin/plugin-editor.php:275 +#: tmp/wordpress/wp-admin/theme-editor.php:266 +msgid "Look Up" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:279 +#: tmp/wordpress/wp-admin/plugin-editor.php:279 +msgid "" +"Warning: Making changes to active plugins is not " +"recommended. If your changes cause a fatal error, the plugin will be " +"automatically deactivated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:285 +#: tmp/wordpress/wp-admin/plugin-editor.php:285 +msgid "Update File and Attempt to Reactivate" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:287 +#: tmp/old/wordpress/wp-admin/theme-editor.php:277 +#: tmp/wordpress/wp-admin/plugin-editor.php:287 +#: tmp/wordpress/wp-admin/theme-editor.php:277 +msgid "Update File" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-editor.php:292 +#: tmp/old/wordpress/wp-admin/theme-editor.php:279 +#: tmp/wordpress/wp-admin/plugin-editor.php:292 +#: tmp/wordpress/wp-admin/theme-editor.php:279 +msgid "" +"You need to make this file writable before you can save your changes. See the Codex " +"for more information." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-install.php:48 +#: tmp/wordpress/wp-admin/plugin-install.php:48 +msgid "Add Plugins" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-install.php:82 +#: tmp/wordpress/wp-admin/plugin-install.php:82 +msgid "" +"Plugins hook into WordPress to extend its functionality with custom " +"features. Plugins are developed independently from the core WordPress " +"application by thousands of developers all over the world. All plugins in " +"the official WordPress Plugin Directory are compatible " +"with the license WordPress uses." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-install.php:83 +#: tmp/wordpress/wp-admin/plugin-install.php:83 +msgid "" +"You can find new plugins to install by searching or browsing the directory " +"right here in your own Plugins section." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-install.php:83 +#: tmp/old/wordpress/wp-admin/plugins.php:396 +#: tmp/old/wordpress/wp-admin/theme-install.php:88 +#: tmp/old/wordpress/wp-admin/themes.php:78 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:968 +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:787 +#: tmp/wordpress/wp-admin/plugin-install.php:83 +#: tmp/wordpress/wp-admin/plugins.php:396 +#: tmp/wordpress/wp-admin/theme-install.php:88 +#: tmp/wordpress/wp-admin/themes.php:78 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:968 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:787 +msgid "The search results will be updated as you type." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-install.php:88 +#: tmp/wordpress/wp-admin/plugin-install.php:88 +msgid "Adding Plugins" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-install.php:90 +#: tmp/wordpress/wp-admin/plugin-install.php:90 +msgid "" +"If you know what you’re looking for, Search is your best bet. The " +"Search screen has options to search the WordPress Plugin Directory for a " +"particular Term, Author, or Tag. You can also search the directory by " +"selecting popular tags. Tags in larger type mean more plugins have been " +"labeled with that tag." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-install.php:91 +#: tmp/wordpress/wp-admin/plugin-install.php:91 +msgid "" +"If you just want to get an idea of what’s available, you can browse " +"Featured and Popular plugins by using the links above the plugins list. " +"These sections rotate regularly." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-install.php:92 +#: tmp/wordpress/wp-admin/plugin-install.php:92 +msgid "" +"You can also browse a user’s favorite plugins, by using the Favorites " +"link above the plugins list and entering their WordPress.org username." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-install.php:93 +#: tmp/wordpress/wp-admin/plugin-install.php:93 +msgid "" +"If you want to install a plugin that you’ve downloaded elsewhere, " +"click the Upload Plugin button above the plugins list. You will be prompted " +"to upload the .zip package, and once uploaded, you can activate the new " +"plugin." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-install.php:98 +#: tmp/wordpress/wp-admin/plugin-install.php:98 +msgid "" +"Documentation " +"on Installing Plugins" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-install.php:103 +#: tmp/old/wordpress/wp-admin/plugins.php:422 +#: tmp/wordpress/wp-admin/plugin-install.php:103 +#: tmp/wordpress/wp-admin/plugins.php:422 +msgid "Filter plugins list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-install.php:104 +#: tmp/old/wordpress/wp-admin/plugins.php:423 +#: tmp/wordpress/wp-admin/plugin-install.php:104 +#: tmp/wordpress/wp-admin/plugins.php:423 +msgid "Plugins list navigation" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-install.php:105 +#: tmp/old/wordpress/wp-admin/plugins.php:424 +#: tmp/wordpress/wp-admin/plugin-install.php:105 +#: tmp/wordpress/wp-admin/plugins.php:424 +msgid "Plugins list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugin-install.php:121 +#: tmp/wordpress/wp-admin/plugin-install.php:121 +msgid "Browse Plugins" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:33 +#: tmp/old/wordpress/wp-admin/plugins.php:72 +#: tmp/old/wordpress/wp-admin/plugins.php:150 +#: tmp/wordpress/wp-admin/plugins.php:33 tmp/wordpress/wp-admin/plugins.php:72 +#: tmp/wordpress/wp-admin/plugins.php:150 +msgid "Sorry, you are not allowed to activate plugins for this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:131 +#: tmp/old/wordpress/wp-admin/update-core.php:241 +#: tmp/old/wordpress/wp-admin/update-core.php:328 +#: tmp/old/wordpress/wp-admin/update-core.php:681 +#: tmp/old/wordpress/wp-admin/update-core.php:685 +#: tmp/wordpress/wp-admin/plugins.php:131 +#: tmp/wordpress/wp-admin/update-core.php:241 +#: tmp/wordpress/wp-admin/update-core.php:328 +#: tmp/wordpress/wp-admin/update-core.php:681 +#: tmp/wordpress/wp-admin/update-core.php:685 +msgid "Update Plugins" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:171 +#: tmp/old/wordpress/wp-admin/plugins.php:196 +#: tmp/wordpress/wp-admin/plugins.php:171 +#: tmp/wordpress/wp-admin/plugins.php:196 +msgid "Sorry, you are not allowed to deactivate plugins for this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:296 +#: tmp/wordpress/wp-admin/plugins.php:296 +msgid "Delete Plugin" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:298 +#: tmp/wordpress/wp-admin/plugins.php:298 +msgid "This plugin may be active on other sites in the network." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:300 +#: tmp/wordpress/wp-admin/plugins.php:300 +msgid "You are about to remove the following plugin:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:302 +#: tmp/wordpress/wp-admin/plugins.php:302 +msgid "Delete Plugins" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:304 +#: tmp/wordpress/wp-admin/plugins.php:304 +msgid "These plugins may be active on other sites in the network." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:306 +#: tmp/wordpress/wp-admin/plugins.php:306 +msgid "You are about to remove the following plugins:" +msgstr "" + +#. translators: 1: plugin name, 2: plugin author +#: tmp/old/wordpress/wp-admin/plugins.php:314 +#: tmp/wordpress/wp-admin/plugins.php:314 +msgid "%1$s by %2$s (will also delete its data)" +msgstr "" + +#. translators: 1: plugin name, 2: plugin author +#: tmp/old/wordpress/wp-admin/plugins.php:318 +#: tmp/wordpress/wp-admin/plugins.php:318 +msgctxt "plugin" +msgid "%1$s by %2$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:325 +#: tmp/wordpress/wp-admin/plugins.php:325 +msgid "Are you sure you wish to delete these files and data?" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:327 +#: tmp/wordpress/wp-admin/plugins.php:327 +msgid "Are you sure you wish to delete these files?" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:338 +#: tmp/wordpress/wp-admin/plugins.php:338 +msgid "Yes, delete these files and data" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:338 +#: tmp/wordpress/wp-admin/plugins.php:338 +msgid "Yes, delete these files" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:344 +#: tmp/wordpress/wp-admin/plugins.php:344 +msgid "No, return me to the plugin list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:395 +#: tmp/wordpress/wp-admin/plugins.php:395 +msgid "" +"Plugins extend and expand the functionality of WordPress. Once a plugin is " +"installed, you may activate it or deactivate it here." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:396 +#: tmp/wordpress/wp-admin/plugins.php:396 +msgid "" +"The search for installed plugins will search for terms in their name, " +"description, or author." +msgstr "" + +#. translators: %s: WordPress Plugin Directory URL +#: tmp/old/wordpress/wp-admin/plugins.php:399 +#: tmp/wordpress/wp-admin/plugins.php:399 +msgid "" +"If you would like to see more plugins to choose from, click on the “" +"Add New” button and you will be able to browse or search for " +"additional plugins from the WordPress Plugin Directory. " +"Plugins in the WordPress Plugin Directory are designed and developed by " +"third parties, and are compatible with the license WordPress uses. Oh, and " +"they’re free!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:405 +#: tmp/wordpress/wp-admin/plugins.php:405 +msgid "Troubleshooting" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:407 +#: tmp/wordpress/wp-admin/plugins.php:407 +msgid "" +"Most of the time, plugins play nicely with the core of WordPress and with " +"other plugins. Sometimes, though, a plugin’s code will get in the way " +"of another plugin, causing compatibility issues. If your site starts doing " +"strange things, this may be the problem. Try deactivating all your plugins " +"and re-activating them in various combinations until you isolate which " +"one(s) caused the issue." +msgstr "" + +#. translators: WP_PLUGIN_DIR constant value +#: tmp/old/wordpress/wp-admin/plugins.php:410 +#: tmp/wordpress/wp-admin/plugins.php:410 +msgid "" +"If something goes wrong with a plugin and you can’t use WordPress, " +"delete or rename that file in the %s directory and it will be automatically " +"deactivated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:417 +#: tmp/wordpress/wp-admin/plugins.php:417 +msgid "" +"Documentation on Managing Plugins" +msgstr "" + +#. translators: 1: plugin file 2: error message +#: tmp/old/wordpress/wp-admin/plugins.php:438 +#: tmp/wordpress/wp-admin/plugins.php:438 +msgid "" +"The plugin %1$s has been deactivated due to an error: %2$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:451 +#: tmp/wordpress/wp-admin/plugins.php:451 +msgid "" +"The plugin generated %d characters of unexpected output " +"during activation. If you notice “headers already sent” " +"messages, problems with syndication feeds or other issues, try deactivating " +"or removing this plugin." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:453 +#: tmp/wordpress/wp-admin/plugins.php:453 +msgid "" +"Plugin could not be activated because it triggered a fatal error." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:475 +#: tmp/wordpress/wp-admin/plugins.php:475 +msgid "Plugin could not be deleted due to an error: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:481 +#: tmp/wordpress/wp-admin/plugins.php:481 +msgid "The selected plugin has been deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:483 +#: tmp/wordpress/wp-admin/plugins.php:483 +msgid "The selected plugins have been deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:490 +#: tmp/wordpress/wp-admin/plugins.php:490 +msgid "Plugin activated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:492 +#: tmp/wordpress/wp-admin/plugins.php:492 +msgid "Selected plugins activated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:494 +#: tmp/wordpress/wp-admin/plugins.php:494 +msgid "Plugin deactivated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:496 +#: tmp/wordpress/wp-admin/plugins.php:496 +msgid "Selected plugins deactivated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:498 +#: tmp/wordpress/wp-admin/plugins.php:498 +msgid "All selected plugins are up to date." +msgstr "" + +#: tmp/old/wordpress/wp-admin/plugins.php:534 +#: tmp/wordpress/wp-admin/plugins.php:534 +msgid "Search Installed Plugins" +msgstr "" + +#: tmp/old/wordpress/wp-admin/post.php:72 tmp/wordpress/wp-admin/post.php:72 +msgid "Unable to submit this form, please refresh and try again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/post.php:120 tmp/wordpress/wp-admin/post.php:120 +msgid "" +"You can’t edit this item because it is in the Trash. Please restore it " +"and try again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/post.php:208 tmp/wordpress/wp-admin/post.php:208 +msgid "The item you are trying to move to the Trash no longer exists." +msgstr "" + +#: tmp/old/wordpress/wp-admin/post.php:218 tmp/wordpress/wp-admin/post.php:218 +msgid "You cannot move this item to the Trash. %s is currently editing." +msgstr "" + +#: tmp/old/wordpress/wp-admin/post.php:231 tmp/wordpress/wp-admin/post.php:231 +msgid "The item you are trying to restore from the Trash no longer exists." +msgstr "" + +#: tmp/old/wordpress/wp-admin/post.php:249 tmp/wordpress/wp-admin/post.php:249 +msgid "This item has already been deleted." +msgstr "" + +#. translators: 1: Post title +#: tmp/old/wordpress/wp-admin/revision.php:78 +#: tmp/wordpress/wp-admin/revision.php:78 +msgid "Compare Revisions of “%1$s”" +msgstr "" + +#: tmp/old/wordpress/wp-admin/revision.php:79 +#: tmp/wordpress/wp-admin/revision.php:79 +msgid "← Return to editor" +msgstr "" + +#: tmp/old/wordpress/wp-admin/revision.php:106 +#: tmp/wordpress/wp-admin/revision.php:106 +msgid "This screen is used for managing your content revisions." +msgstr "" + +#: tmp/old/wordpress/wp-admin/revision.php:107 +#: tmp/wordpress/wp-admin/revision.php:107 +msgid "" +"Revisions are saved copies of your post or page, which are periodically " +"created as you update your content. The red text on the left shows the " +"content that was removed. The green text on the right shows the content that " +"was added." +msgstr "" + +#: tmp/old/wordpress/wp-admin/revision.php:108 +#: tmp/wordpress/wp-admin/revision.php:108 +msgid "From this screen you can review, compare, and restore revisions:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/revision.php:109 +#: tmp/wordpress/wp-admin/revision.php:109 +msgid "" +"To navigate between revisions, drag the slider handle left or right or use the Previous or Next buttons." +msgstr "" + +#: tmp/old/wordpress/wp-admin/revision.php:110 +#: tmp/wordpress/wp-admin/revision.php:110 +msgid "" +"Compare two different revisions by selecting the “Compare any " +"two revisions” box to the side." +msgstr "" + +#: tmp/old/wordpress/wp-admin/revision.php:111 +#: tmp/wordpress/wp-admin/revision.php:111 +msgid "To restore a revision, click Restore This Revision." +msgstr "" + +#: tmp/old/wordpress/wp-admin/revision.php:120 +#: tmp/wordpress/wp-admin/revision.php:120 +msgid "" +"Revisions " +"Management" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:49 +#: tmp/wordpress/wp-admin/setup-config.php:49 +msgid "" +"Sorry, I need a wp-config-sample.php file to work from. Please re-upload " +"this file to your WordPress installation." +msgstr "" + +#. translators: %s: install.php +#: tmp/old/wordpress/wp-admin/setup-config.php:55 +#: tmp/wordpress/wp-admin/setup-config.php:55 +msgid "" +"The file 'wp-config.php' already exists. If you need to reset any of the " +"configuration items in this file, please delete it first. You may try installing now." +msgstr "" + +#. translators: %s: install.php +#: tmp/old/wordpress/wp-admin/setup-config.php:64 +#: tmp/wordpress/wp-admin/setup-config.php:64 +msgid "" +"The file 'wp-config.php' already exists one level above your WordPress " +"installation. If you need to reset any of the configuration items in this " +"file, please delete it first. You may try installing now." +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:98 +#: tmp/wordpress/wp-admin/setup-config.php:98 +msgid "WordPress › Setup Configuration File" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:144 +#: tmp/wordpress/wp-admin/setup-config.php:144 +msgid "Before getting started" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:145 +#: tmp/wordpress/wp-admin/setup-config.php:145 +msgid "" +"Welcome to WordPress. Before getting started, we need some information on " +"the database. You will need to know the following items before proceeding." +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:147 +#: tmp/wordpress/wp-admin/setup-config.php:147 +msgid "Database name" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:148 +#: tmp/wordpress/wp-admin/setup-config.php:148 +msgid "Database username" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:149 +#: tmp/wordpress/wp-admin/setup-config.php:149 +msgid "Database password" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:150 +#: tmp/wordpress/wp-admin/setup-config.php:150 +msgid "Database host" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:151 +#: tmp/wordpress/wp-admin/setup-config.php:151 +msgid "" +"Table prefix (if you want to run more than one WordPress in a single " +"database)" +msgstr "" + +#. translators: %s: wp-config.php +#: tmp/old/wordpress/wp-admin/setup-config.php:155 +#: tmp/wordpress/wp-admin/setup-config.php:155 +msgid "We’re going to use this information to create a %s file." +msgstr "" + +#. translators: 1: wp-config-sample.php, 2: wp-config.php +#: tmp/old/wordpress/wp-admin/setup-config.php:161 +#: tmp/wordpress/wp-admin/setup-config.php:161 +msgid "" +"If for any reason this automatic file creation doesn’t work, don’" +"t worry. All this does is fill in the database information to a " +"configuration file. You may also simply open %1$s in a text editor, fill in " +"your information, and save it as %2$s." +msgstr "" + +#. translators: %s: Codex URL +#: tmp/old/wordpress/wp-admin/setup-config.php:168 +#: tmp/wordpress/wp-admin/setup-config.php:168 +msgid "Need more help? We got it." +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:169 +#: tmp/old/wordpress/wp-load.php:83 tmp/wordpress/wp-admin/setup-config.php:169 +#: tmp/wordpress/wp-load.php:83 +msgid "https://codex.wordpress.org/Editing_wp-config.php" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:172 +#: tmp/wordpress/wp-admin/setup-config.php:172 +msgid "" +"In all likelihood, these items were supplied to you by your Web Host. If you " +"don’t have this information, then you will need to contact them before " +"you can continue. If you’re all ready…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:174 +#: tmp/wordpress/wp-admin/setup-config.php:174 +msgid "Let’s go!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:184 +#: tmp/wordpress/wp-admin/setup-config.php:184 +msgid "Set up your database connection" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:186 +#: tmp/wordpress/wp-admin/setup-config.php:186 +msgid "" +"Below you should enter your database connection details. If you’re not " +"sure about these, contact your host." +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:189 +#: tmp/wordpress/wp-admin/setup-config.php:189 +msgid "Database Name" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:191 +#: tmp/wordpress/wp-admin/setup-config.php:191 +msgid "The name of the database you want to use with WordPress." +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:195 +#: tmp/wordpress/wp-admin/setup-config.php:195 +msgctxt "example username" +msgid "username" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:196 +#: tmp/wordpress/wp-admin/setup-config.php:196 +msgid "Your database username." +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:200 +#: tmp/wordpress/wp-admin/setup-config.php:200 +msgctxt "example password" +msgid "password" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:201 +#: tmp/wordpress/wp-admin/setup-config.php:201 +msgid "Your database password." +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:204 +#: tmp/wordpress/wp-admin/setup-config.php:204 +msgid "Database Host" +msgstr "" + +#. translators: %s: localhost +#: tmp/old/wordpress/wp-admin/setup-config.php:208 +#: tmp/wordpress/wp-admin/setup-config.php:208 +msgid "" +"You should be able to get this info from your web host, if %s doesn’t " +"work." +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:212 +#: tmp/wordpress/wp-admin/setup-config.php:212 +msgid "Table Prefix" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:214 +#: tmp/wordpress/wp-admin/setup-config.php:214 +msgid "" +"If you want to run multiple WordPress installations in a single database, " +"change this." +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:282 +#: tmp/wordpress/wp-admin/setup-config.php:282 +msgid "ERROR: \"Table Prefix\" is invalid." +msgstr "" + +#. translators: %s: wp-config.php +#: tmp/old/wordpress/wp-admin/setup-config.php:360 +#: tmp/wordpress/wp-admin/setup-config.php:360 +msgid "Sorry, but I can’t write the %s file." +msgstr "" + +#. translators: %s: wp-config.php +#: tmp/old/wordpress/wp-admin/setup-config.php:364 +#: tmp/wordpress/wp-admin/setup-config.php:364 +msgid "You can create the %s manually and paste the following text into it." +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:371 +#: tmp/wordpress/wp-admin/setup-config.php:371 +msgid "After you’ve done that, click “Run the install.”" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:372 +#: tmp/old/wordpress/wp-admin/setup-config.php:404 +#: tmp/wordpress/wp-admin/setup-config.php:372 +#: tmp/wordpress/wp-admin/setup-config.php:404 +msgid "Run the install" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:401 +#: tmp/wordpress/wp-admin/setup-config.php:401 +msgid "Successful database connection" +msgstr "" + +#: tmp/old/wordpress/wp-admin/setup-config.php:402 +#: tmp/wordpress/wp-admin/setup-config.php:402 +msgid "" +"All right, sparky! You’ve made it through this part of the " +"installation. WordPress can now communicate with your database. If you are " +"ready, time now to…" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:18 +#: tmp/wordpress/wp-admin/theme-editor.php:18 +msgid "Sorry, you are not allowed to edit templates for this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:20 +#: tmp/wordpress/wp-admin/theme-editor.php:20 +msgid "Edit Themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:27 +#: tmp/wordpress/wp-admin/theme-editor.php:27 +msgid "" +"You can use the Theme Editor to edit the individual CSS and PHP files which " +"make up your theme." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:28 +#: tmp/wordpress/wp-admin/theme-editor.php:28 +msgid "" +"Begin by choosing a theme to edit from the dropdown menu and clicking the " +"Select button. A list then appears of the theme’s template files. " +"Clicking once on any file name causes the file to appear in the large Editor " +"box." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:29 +#: tmp/wordpress/wp-admin/theme-editor.php:29 +msgid "" +"For PHP files, you can use the Documentation dropdown to select from " +"functions recognized in that file. Look Up takes you to a web page with " +"reference material about that particular function." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:31 +#: tmp/wordpress/wp-admin/theme-editor.php:31 +msgid "After typing in your edits, click Update File." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:32 +#: tmp/wordpress/wp-admin/theme-editor.php:32 +msgid "" +"Advice: think very carefully about your site crashing if " +"you are live-editing the theme currently in use." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:33 +#: tmp/wordpress/wp-admin/theme-editor.php:33 +msgid "" +"Upgrading to a newer version of the same theme will override changes made " +"here. To avoid this, consider creating a child theme " +"instead." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:39 +#: tmp/wordpress/wp-admin/theme-editor.php:39 +msgid "" +"Documentation on " +"Theme Development" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:40 +#: tmp/old/wordpress/wp-admin/themes.php:118 +#: tmp/wordpress/wp-admin/theme-editor.php:40 +#: tmp/wordpress/wp-admin/themes.php:118 +msgid "" +"Documentation on Using " +"Themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:41 +#: tmp/wordpress/wp-admin/theme-editor.php:41 +msgid "" +"Documentation on " +"Editing Files" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:42 +#: tmp/wordpress/wp-admin/theme-editor.php:42 +msgid "" +"Documentation on " +"Template Tags" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:173 +#: tmp/wordpress/wp-admin/theme-editor.php:173 +msgid "Select theme to edit:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:192 +#: tmp/wordpress/wp-admin/theme-editor.php:192 +msgid "This theme is broken." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:210 +#: tmp/wordpress/wp-admin/theme-editor.php:210 +msgid "Templates" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:212 +#: tmp/wordpress/wp-admin/theme-editor.php:212 +msgid "This child theme inherits templates from a parent theme, %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:222 +#: tmp/wordpress/wp-admin/theme-editor.php:222 +msgctxt "Theme stylesheets in theme editor" +msgid "Styles" +msgstr "" + +#. translators: %s: file extension +#: tmp/old/wordpress/wp-admin/theme-editor.php:226 +#: tmp/wordpress/wp-admin/theme-editor.php:226 +msgid "%s files" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:252 +#: tmp/wordpress/wp-admin/theme-editor.php:252 +msgid "Oops, no such file exists! Double check the name and try again, merci." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-editor.php:273 +#: tmp/wordpress/wp-admin/theme-editor.php:273 +msgid "This is a file in your current parent theme." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:23 +#: tmp/wordpress/wp-admin/theme-install.php:23 +msgid "Add Themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:46 +#: tmp/old/wordpress/wp-admin/themes.php:138 +#: tmp/wordpress/wp-admin/theme-install.php:46 +#: tmp/wordpress/wp-admin/themes.php:138 +msgid "Add New Theme" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:47 +#: tmp/wordpress/wp-admin/theme-install.php:47 +msgid "Search Themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:48 +#: tmp/wordpress/wp-admin/theme-install.php:48 +msgid "Search themes..." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:49 +#: tmp/old/wordpress/wp-admin/theme-install.php:134 +#: tmp/old/wordpress/wp-admin/theme-install.php:136 +#: tmp/old/wordpress/wp-admin/update.php:258 +#: tmp/wordpress/wp-admin/theme-install.php:49 +#: tmp/wordpress/wp-admin/theme-install.php:134 +#: tmp/wordpress/wp-admin/theme-install.php:136 +#: tmp/wordpress/wp-admin/update.php:258 +msgid "Upload Theme" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:56 +#: tmp/old/wordpress/wp-admin/themes.php:141 +#: tmp/wordpress/wp-admin/theme-install.php:56 +#: tmp/wordpress/wp-admin/themes.php:141 +msgid "Number of Themes found: %d" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:57 +#: tmp/old/wordpress/wp-admin/theme-install.php:221 +#: tmp/old/wordpress/wp-admin/themes.php:142 +#: tmp/old/wordpress/wp-admin/themes.php:301 +#: tmp/wordpress/wp-admin/theme-install.php:57 +#: tmp/wordpress/wp-admin/theme-install.php:221 +#: tmp/wordpress/wp-admin/themes.php:142 tmp/wordpress/wp-admin/themes.php:301 +msgid "No themes found. Try a different search." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:59 +#: tmp/wordpress/wp-admin/theme-install.php:59 +msgid "Expand Sidebar" +msgstr "" + +#. translators: hidden accessibility text +#: tmp/old/wordpress/wp-admin/theme-install.php:61 +#: tmp/wordpress/wp-admin/theme-install.php:61 +msgid "Select one or more Theme features to filter by" +msgstr "" + +#. translators: %s: Theme Directory URL +#: tmp/old/wordpress/wp-admin/theme-install.php:85 +#: tmp/wordpress/wp-admin/theme-install.php:85 +msgid "" +"You can find additional themes for your site by using the Theme Browser/" +"Installer on this screen, which will display themes from the WordPress Theme Directory. These themes are designed and developed by " +"third parties, are available free of charge, and are compatible with the " +"license WordPress uses." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:88 +#: tmp/wordpress/wp-admin/theme-install.php:88 +msgid "" +"You can Search for themes by keyword, author, or tag, or can get more " +"specific and search by criteria listed in the feature filter." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:89 +#: tmp/wordpress/wp-admin/theme-install.php:89 +msgid "" +"Alternately, you can browse the themes that are Featured, Popular, or " +"Latest. When you find a theme you like, you can preview it or install it." +msgstr "" + +#. translators: %s: /wp-content/themes +#: tmp/old/wordpress/wp-admin/theme-install.php:92 +#: tmp/wordpress/wp-admin/theme-install.php:92 +msgid "" +"You can Upload a theme manually if you have already downloaded its ZIP " +"archive onto your computer (make sure it is from a trusted and original " +"source). You can also do it the old-fashioned way and copy a downloaded " +"theme’s folder via FTP into your %s directory." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:103 +#: tmp/wordpress/wp-admin/theme-install.php:103 +msgid "" +"Once you have generated a list of themes, you can preview and install any of " +"them. Click on the thumbnail of the theme you’re interested in " +"previewing. It will open up in a full-screen Preview page to give you a " +"better idea of how that theme will look." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:104 +#: tmp/wordpress/wp-admin/theme-install.php:104 +msgid "" +"To install the theme so you can preview it with your site’s content " +"and customize its theme options, click the \"Install\" button at the top of " +"the left-hand pane. The theme files will be downloaded to your website " +"automatically. When this is complete, the theme is now available for " +"activation, which you can do by clicking the \"Activate\" link, or by " +"navigating to your Manage Themes screen and clicking the \"Live Preview\" " +"link under any installed theme’s thumbnail image." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:108 +#: tmp/wordpress/wp-admin/theme-install.php:108 +msgid "Previewing and Installing" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:114 +#: tmp/wordpress/wp-admin/theme-install.php:114 +msgid "" +"Documentation on Adding New Themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:140 +#: tmp/wordpress/wp-admin/theme-install.php:140 +msgid "The Theme Installer screen requires JavaScript." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:156 +#: tmp/wordpress/wp-admin/theme-install.php:156 +msgctxt "themes" +msgid "Popular" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:158 +#: tmp/wordpress/wp-admin/theme-install.php:158 +msgctxt "themes" +msgid "Favorites" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:175 +#: tmp/wordpress/wp-admin/theme-install.php:175 +msgid "" +"If you have marked themes as favorites on WordPress.org, you can browse them " +"here." +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:187 +#: tmp/old/wordpress/wp-admin/theme-install.php:207 +#: tmp/wordpress/wp-admin/theme-install.php:187 +#: tmp/wordpress/wp-admin/theme-install.php:207 +msgid "Apply Filters" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:188 +#: tmp/old/wordpress/wp-admin/theme-install.php:208 +#: tmp/wordpress/wp-admin/theme-install.php:188 +#: tmp/wordpress/wp-admin/theme-install.php:208 +msgid "Clear current filters" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:211 +#: tmp/wordpress/wp-admin/theme-install.php:211 +msgid "Filtering by:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:213 +#: tmp/wordpress/wp-admin/theme-install.php:213 +msgid "Edit Filters" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:250 +#: tmp/wordpress/wp-admin/theme-install.php:250 +msgctxt "theme" +msgid "Details & Preview" +msgstr "" + +#. translators: %s: Theme name +#: tmp/old/wordpress/wp-admin/theme-install.php:263 +#: tmp/old/wordpress/wp-admin/themes.php:286 +#: tmp/old/wordpress/wp-admin/themes.php:419 +#: tmp/old/wordpress/wp-admin/themes.php:477 +#: tmp/old/wordpress/wp-includes/script-loader.php:701 +#: tmp/wordpress/wp-admin/theme-install.php:263 +#: tmp/wordpress/wp-admin/themes.php:286 tmp/wordpress/wp-admin/themes.php:419 +#: tmp/wordpress/wp-admin/themes.php:477 +#: tmp/wordpress/wp-includes/script-loader.php:701 +msgctxt "theme" +msgid "Activate %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:292 +#: tmp/wordpress/wp-admin/theme-install.php:292 +msgctxt "Button label for a theme" +msgid "Previous" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:293 +#: tmp/wordpress/wp-admin/theme-install.php:293 +msgctxt "Button label for a theme" +msgid "Next" +msgstr "" + +#: tmp/old/wordpress/wp-admin/theme-install.php:319 +#: tmp/wordpress/wp-admin/theme-install.php:319 +msgid "This theme has not been rated yet." +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:67 +#: tmp/wordpress/wp-admin/themes.php:67 +msgid "Manage Themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:72 +#: tmp/wordpress/wp-admin/themes.php:72 +msgid "" +"This screen is used for managing your installed themes. Aside from the " +"default theme(s) included with your WordPress installation, themes are " +"designed and developed by third parties." +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:74 +#: tmp/wordpress/wp-admin/themes.php:74 +msgid "Hover or tap to see Activate and Live Preview buttons" +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:75 +#: tmp/wordpress/wp-admin/themes.php:75 +msgid "" +"Click on the theme to see the theme name, version, author, description, " +"tags, and the Delete link" +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:76 +#: tmp/wordpress/wp-admin/themes.php:76 +msgid "" +"Click Customize for the current theme or Live Preview for any other theme to " +"see a live preview" +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:77 +#: tmp/wordpress/wp-admin/themes.php:77 +msgid "The current theme is displayed highlighted as the first theme." +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:78 +#: tmp/wordpress/wp-admin/themes.php:78 +msgid "" +"The search for installed themes will search for terms in their name, " +"description, author, or tag." +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:90 +#: tmp/wordpress/wp-admin/themes.php:90 +msgid "" +"Installing themes on Multisite can only be done from the Network Admin " +"section." +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:92 +#: tmp/wordpress/wp-admin/themes.php:92 +msgid "" +"If you would like to see more themes to choose from, click on the “Add " +"New” button and you will be able to browse or search for additional " +"themes from the WordPress Theme Directory. Themes in the " +"WordPress Theme Directory are designed and developed by third parties, and " +"are compatible with the license WordPress uses. Oh, and they’re free!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:97 +#: tmp/wordpress/wp-admin/themes.php:97 +msgid "Adding Themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:105 +#: tmp/wordpress/wp-admin/themes.php:105 +msgid "" +"Tap or hover on any theme then click the Live Preview button to see a live " +"preview of that theme and change theme options in a separate, full-screen " +"view. You can also find a Live Preview button at the bottom of the theme " +"details screen. Any installed theme can be previewed and customized in this " +"way." +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:106 +#: tmp/wordpress/wp-admin/themes.php:106 +msgid "" +"The theme being previewed is fully interactive — navigate to different " +"pages to see how the theme handles posts, archives, and other page " +"templates. The settings may differ depending on what theme features the " +"theme being previewed supports. To accept the new settings and activate the " +"theme all in one step, click the Save & Activate button above the menu." +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:107 +#: tmp/wordpress/wp-admin/themes.php:107 +msgid "" +"When previewing on smaller monitors, you can use the collapse icon at the " +"bottom of the left-hand pane. This will hide the pane, giving you more room " +"to preview your site in the new theme. To bring the pane back, click on the " +"collapse icon again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:111 +#: tmp/wordpress/wp-admin/themes.php:111 +msgid "Previewing and Customizing" +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:134 +#: tmp/wordpress/wp-admin/themes.php:134 +msgid "" +"Are you sure you want to delete this theme?\n" +"\n" +"Click 'Cancel' to go back, 'OK' to confirm the delete." +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:140 +#: tmp/wordpress/wp-admin/themes.php:140 +msgid "Search installed themes..." +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:158 +#: tmp/wordpress/wp-admin/themes.php:158 +msgctxt "Add new theme" +msgid "Add New" +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:163 +#: tmp/wordpress/wp-admin/themes.php:163 +msgid "The active theme is broken. Reverting to the default theme." +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:166 +#: tmp/wordpress/wp-admin/themes.php:166 +msgid "Settings saved and theme activated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:166 +#: tmp/old/wordpress/wp-admin/themes.php:168 +#: tmp/wordpress/wp-admin/themes.php:166 tmp/wordpress/wp-admin/themes.php:168 +msgid "Visit site" +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:168 +#: tmp/wordpress/wp-admin/themes.php:168 +msgid "New theme activated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:173 +#: tmp/wordpress/wp-admin/themes.php:173 +msgid "You cannot delete a theme while it has an active child theme." +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:256 +#: tmp/old/wordpress/wp-admin/themes.php:386 +#: tmp/wordpress/wp-admin/themes.php:256 tmp/wordpress/wp-admin/themes.php:386 +msgid "" +"New version available. " +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:258 +#: tmp/old/wordpress/wp-admin/themes.php:388 +#: tmp/wordpress/wp-admin/themes.php:258 tmp/wordpress/wp-admin/themes.php:388 +msgid "New version available." +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:263 +#: tmp/old/wordpress/wp-admin/themes.php:392 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-theme-control.php:105 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:70 +#: tmp/wordpress/wp-admin/themes.php:263 tmp/wordpress/wp-admin/themes.php:392 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-theme-control.php:105 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:70 +msgid "Theme Details" +msgstr "" + +#. translators: %s: theme name +#. translators: %s: Theme name +#. translators: %s: theme name +#: tmp/old/wordpress/wp-admin/themes.php:270 +#: tmp/old/wordpress/wp-admin/themes.php:404 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-theme-control.php:99 +#: tmp/wordpress/wp-admin/themes.php:270 tmp/wordpress/wp-admin/themes.php:404 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-theme-control.php:99 +msgid "Active: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:309 +#: tmp/wordpress/wp-admin/themes.php:309 +msgid "Broken Themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:318 +#: tmp/wordpress/wp-admin/themes.php:318 +msgctxt "theme name" +msgid "Name" +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:355 +#: tmp/wordpress/wp-admin/themes.php:355 +msgid "Install Parent Theme" +msgstr "" + +#: tmp/old/wordpress/wp-admin/themes.php:453 +#: tmp/wordpress/wp-admin/themes.php:453 +msgid "Update Available" +msgstr "" + +#: tmp/old/wordpress/wp-admin/tools.php:16 +#: tmp/old/wordpress/wp-admin/tools.php:40 +#: tmp/old/wordpress/wp-admin/tools.php:51 tmp/wordpress/wp-admin/tools.php:16 +#: tmp/wordpress/wp-admin/tools.php:40 tmp/wordpress/wp-admin/tools.php:51 +msgid "Press This" +msgstr "" + +#: tmp/old/wordpress/wp-admin/tools.php:17 tmp/wordpress/wp-admin/tools.php:17 +msgid "" +"Press This is a bookmarklet that makes it easy to blog about something you " +"come across on the web. You can use it to just grab a link, or to post an " +"excerpt. Press This will even allow you to choose from images included on " +"the page and use them in your post. Just drag the Press This link on this " +"screen to your bookmarks bar in your browser, and you’ll be on your " +"way to easier content creation. Clicking on it while on another website " +"opens a popup window with all these options." +msgstr "" + +#: tmp/old/wordpress/wp-admin/tools.php:22 tmp/wordpress/wp-admin/tools.php:22 +msgid "" +"Categories have hierarchy, meaning that you can nest sub-categories. Tags do " +"not have hierarchy and cannot be nested. Sometimes people start out using " +"one on their posts, then later realize that the other would work better for " +"their content." +msgstr "" + +#: tmp/old/wordpress/wp-admin/tools.php:23 tmp/wordpress/wp-admin/tools.php:23 +msgid "" +"The Categories and Tags Converter link on this screen will take you to the " +"Import screen, where that Converter is one of the plugins you can install. " +"Once that plugin is installed, the Activate Plugin & Run Importer link " +"will take you to a screen where you can choose to convert tags into " +"categories or vice versa." +msgstr "" + +#: tmp/old/wordpress/wp-admin/tools.php:28 tmp/wordpress/wp-admin/tools.php:28 +msgid "" +"Documentation on Tools" +msgstr "" + +#: tmp/old/wordpress/wp-admin/tools.php:41 tmp/wordpress/wp-admin/tools.php:41 +msgid "" +"Press This is a little tool that lets you grab bits of the web and create " +"new posts with ease." +msgstr "" + +#: tmp/old/wordpress/wp-admin/tools.php:42 tmp/wordpress/wp-admin/tools.php:42 +msgid "" +"Use Press This to clip text, images and videos from any web page. Then edit " +"and add more straight from Press This before you save or publish it in a " +"post on your site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/tools.php:46 tmp/wordpress/wp-admin/tools.php:46 +msgid "Install Press This" +msgstr "" + +#: tmp/old/wordpress/wp-admin/tools.php:47 tmp/wordpress/wp-admin/tools.php:47 +msgid "Bookmarklet" +msgstr "" + +#: tmp/old/wordpress/wp-admin/tools.php:48 tmp/wordpress/wp-admin/tools.php:48 +msgid "" +"Drag the bookmarklet below to your bookmarks bar. Then, when you’re on " +"a page you want to share, simply “press” it." +msgstr "" + +#: tmp/old/wordpress/wp-admin/tools.php:54 tmp/wordpress/wp-admin/tools.php:54 +msgid "Copy “Press This” bookmarklet code" +msgstr "" + +#: tmp/old/wordpress/wp-admin/tools.php:60 tmp/wordpress/wp-admin/tools.php:60 +msgid "" +"If you can’t drag the bookmarklet to your bookmarks, copy the " +"following code and create a new bookmark. Paste the code into the new " +"bookmark’s URL field." +msgstr "" + +#: tmp/old/wordpress/wp-admin/tools.php:67 tmp/wordpress/wp-admin/tools.php:67 +msgid "Direct link (best for mobile)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/tools.php:68 tmp/wordpress/wp-admin/tools.php:68 +msgid "" +"Follow the link to open Press This. Then add it to your device’s " +"bookmarks or home screen." +msgstr "" + +#: tmp/old/wordpress/wp-admin/tools.php:71 tmp/wordpress/wp-admin/tools.php:71 +msgid "Open Press This" +msgstr "" + +#: tmp/old/wordpress/wp-admin/tools.php:104 +#: tmp/wordpress/wp-admin/tools.php:104 +msgid "" +"If you want to convert your categories to tags (or vice versa), use the Categories and Tags Converter available from the Import " +"screen." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:23 +#: tmp/old/wordpress/wp-admin/update-core.php:637 +#: tmp/old/wordpress/wp-admin/update-core.php:665 +#: tmp/old/wordpress/wp-admin/update-core.php:698 +#: tmp/old/wordpress/wp-admin/update-core.php:733 +#: tmp/wordpress/wp-admin/update-core.php:23 +#: tmp/wordpress/wp-admin/update-core.php:637 +#: tmp/wordpress/wp-admin/update-core.php:665 +#: tmp/wordpress/wp-admin/update-core.php:698 +#: tmp/wordpress/wp-admin/update-core.php:733 +msgid "Sorry, you are not allowed to update this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:57 +#: tmp/wordpress/wp-admin/update-core.php:57 +msgid "" +"You are using a development version of WordPress. You can update to the " +"latest nightly build automatically:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:60 +#: tmp/wordpress/wp-admin/update-core.php:60 +msgid "If you need to re-install version %s, you can do so here:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:61 +#: tmp/wordpress/wp-admin/update-core.php:61 +msgid "Re-install Now" +msgstr "" + +#. translators: 1: WordPress version number, 2: Minimum required PHP version +#. number, 3: Minimum required MySQL version number, 4: Current PHP version +#. number, 5: Current MySQL version number +#: tmp/old/wordpress/wp-admin/update-core.php:72 +#: tmp/old/wordpress/wp-admin/upgrade.php:81 +#: tmp/wordpress/wp-admin/update-core.php:72 +#: tmp/wordpress/wp-admin/upgrade.php:81 +msgid "" +"You cannot update because WordPress %1$s requires PHP version %2$s or higher and MySQL version " +"%3$s or higher. You are running PHP version %4$s and MySQL version %5$s." +msgstr "" + +#. translators: 1: WordPress version number, 2: Minimum required PHP version +#. number, 3: Current PHP version number +#: tmp/old/wordpress/wp-admin/update-core.php:75 +#: tmp/old/wordpress/wp-admin/upgrade.php:83 +#: tmp/wordpress/wp-admin/update-core.php:75 +#: tmp/wordpress/wp-admin/upgrade.php:83 +msgid "" +"You cannot update because WordPress %1$s requires PHP version %2$s or higher. You are running " +"version %3$s." +msgstr "" + +#. translators: 1: WordPress version number, 2: Minimum required MySQL version +#. number, 3: Current MySQL version number +#: tmp/old/wordpress/wp-admin/update-core.php:78 +#: tmp/old/wordpress/wp-admin/upgrade.php:85 +#: tmp/wordpress/wp-admin/update-core.php:78 +#: tmp/wordpress/wp-admin/upgrade.php:85 +msgid "" +"You cannot update because WordPress %1$s requires MySQL version %2$s or higher. You are running " +"version %3$s." +msgstr "" + +#. translators: 1: WordPress version number, 2: WordPress version number +#. including locale if necessary +#: tmp/old/wordpress/wp-admin/update-core.php:81 +#: tmp/wordpress/wp-admin/update-core.php:81 +msgid "" +"You can update to WordPress %2$s automatically:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:105 +#: tmp/wordpress/wp-admin/update-core.php:105 +msgid "Hide this update" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:107 +#: tmp/wordpress/wp-admin/update-core.php:107 +msgid "Bring back this update" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:110 +#: tmp/wordpress/wp-admin/update-core.php:110 +msgid "" +"This localized version contains both the translation and various other " +"localization fixes. You can skip upgrading if you want to keep your current " +"translation." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:113 +#: tmp/wordpress/wp-admin/update-core.php:113 +msgid "" +"You are about to install WordPress %s in English (US). " +"There is a chance this update will break your translation. You may prefer to " +"wait for the localized version to be released." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:126 +#: tmp/old/wordpress/wp-admin/update-core.php:138 +#: tmp/wordpress/wp-admin/update-core.php:126 +#: tmp/wordpress/wp-admin/update-core.php:138 +msgid "Show hidden updates" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:127 +#: tmp/wordpress/wp-admin/update-core.php:127 +msgid "Hide hidden updates" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:165 +#: tmp/wordpress/wp-admin/update-core.php:165 +msgid "You have the latest version of WordPress." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:178 +#: tmp/wordpress/wp-admin/update-core.php:178 +msgid "Future security updates will be applied automatically." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:183 +#: tmp/wordpress/wp-admin/update-core.php:183 +msgid "" +"Important: before updating, please back up your database and files. For " +"help with updates, visit the Updating WordPress Codex page." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:187 +#: tmp/wordpress/wp-admin/update-core.php:187 +msgid "An updated version of WordPress is available." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:196 +#: tmp/wordpress/wp-admin/update-core.php:196 +msgid "BETA TESTERS:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:196 +#: tmp/wordpress/wp-admin/update-core.php:196 +msgid "" +"This site is set up to install updates of future beta versions automatically." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:210 +#: tmp/wordpress/wp-admin/update-core.php:210 +msgid "" +"While your site is being updated, it will be in maintenance mode. As soon as " +"your updates are complete, your site will return to normal." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:213 +#: tmp/wordpress/wp-admin/update-core.php:213 +msgid "Learn more about WordPress %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:226 +#: tmp/wordpress/wp-admin/update-core.php:226 +msgid "Your plugins are all up to date." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:238 +#: tmp/wordpress/wp-admin/update-core.php:238 +msgid "" +"The following plugins have new versions available. Check the ones you want " +"to update and then click “Update Plugins”." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:257 +#: tmp/old/wordpress/wp-admin/update-core.php:267 +#: tmp/wordpress/wp-admin/update-core.php:257 +#: tmp/wordpress/wp-admin/update-core.php:267 +msgid "Compatibility with WordPress %1$s: 100%% (according to its author)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:260 +#: tmp/old/wordpress/wp-admin/update-core.php:270 +#: tmp/wordpress/wp-admin/update-core.php:260 +#: tmp/wordpress/wp-admin/update-core.php:270 +msgid "" +"Compatibility with WordPress %1$s: %2$d%% (%3$d \"works\" votes out of %4$d " +"total)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:262 +#: tmp/old/wordpress/wp-admin/update-core.php:272 +#: tmp/wordpress/wp-admin/update-core.php:262 +#: tmp/wordpress/wp-admin/update-core.php:272 +msgid "Compatibility with WordPress %1$s: Unknown" +msgstr "" + +#. translators: %s: plugin version +#: tmp/old/wordpress/wp-admin/update-core.php:289 +#: tmp/wordpress/wp-admin/update-core.php:289 +msgid "View version %s details." +msgstr "" + +#. translators: 1: plugin version, 2: new version +#. translators: 1: theme version, 2: new version +#: tmp/old/wordpress/wp-admin/update-core.php:308 +#: tmp/old/wordpress/wp-admin/update-core.php:380 +#: tmp/wordpress/wp-admin/update-core.php:308 +#: tmp/wordpress/wp-admin/update-core.php:380 +msgid "You have version %1$s installed. Update to %2$s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:340 +#: tmp/wordpress/wp-admin/update-core.php:340 +msgid "Your themes are all up to date." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:347 +#: tmp/wordpress/wp-admin/update-core.php:347 +msgid "" +"The following themes have new versions available. Check the ones you want to " +"update and then click “Update Themes”." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:348 +#: tmp/wordpress/wp-admin/update-core.php:348 +msgid "" +"Please Note: Any customizations you have made to theme " +"files will be lost. Please consider using child themes " +"for modifications." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:411 +#: tmp/old/wordpress/wp-admin/update-core.php:419 +#: tmp/wordpress/wp-admin/update-core.php:411 +#: tmp/wordpress/wp-admin/update-core.php:419 +msgid "Translations" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:412 +#: tmp/wordpress/wp-admin/update-core.php:412 +msgid "Your translations are all up to date." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:421 +#: tmp/wordpress/wp-admin/update-core.php:421 +msgid "New translations are available." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:460 +#: tmp/wordpress/wp-admin/update-core.php:460 +msgid "Update WordPress" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:548 +#: tmp/old/wordpress/wp-admin/update-core.php:587 +#: tmp/wordpress/wp-admin/update-core.php:548 +#: tmp/wordpress/wp-admin/update-core.php:587 +msgid "WordPress Updates" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:551 +#: tmp/wordpress/wp-admin/update-core.php:551 +msgid "" +"On this screen, you can update to the latest version of WordPress, as well " +"as update your themes, plugins, and translations from the WordPress.org " +"repositories." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:552 +#: tmp/wordpress/wp-admin/update-core.php:552 +msgid "" +"If an update is available, you᾿ll see a notification appear in the " +"Toolbar and navigation menu." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:560 +#: tmp/wordpress/wp-admin/update-core.php:560 +msgid "" +"WordPress — Updating your WordPress installation is a " +"simple one-click procedure: just click on the “Update " +"Now” button when you are notified that a new version is " +"available." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:560 +#: tmp/wordpress/wp-admin/update-core.php:560 +msgid "" +"In most cases, WordPress will automatically apply maintenance and security " +"updates in the background for you." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:561 +#: tmp/wordpress/wp-admin/update-core.php:561 +msgid "" +"Themes and Plugins — To update individual themes or " +"plugins from this screen, use the checkboxes to make your selection, then " +"click on the appropriate “Update” button. To " +"update all of your themes or plugins at once, you can check the box at the " +"top of the section to select all before clicking the update button." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:564 +#: tmp/wordpress/wp-admin/update-core.php:564 +msgid "" +"Translations — The files translating WordPress into " +"your language are updated for you whenever any other updates occur. But if " +"these files are out of date, you can click the “Update " +"Translations” button." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:569 +#: tmp/wordpress/wp-admin/update-core.php:569 +msgid "How to Update" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:575 +#: tmp/wordpress/wp-admin/update-core.php:575 +msgid "" +"Documentation on Updating WordPress" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:592 +#: tmp/wordpress/wp-admin/update-core.php:592 +msgid "Please select one or more themes to update." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:594 +#: tmp/wordpress/wp-admin/update-core.php:594 +msgid "Please select one or more plugins to update." +msgstr "" + +#. translators: %1 date, %2 time. +#: tmp/old/wordpress/wp-admin/update-core.php:607 +#: tmp/wordpress/wp-admin/update-core.php:607 +msgid "Last checked on %1$s at %2$s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update-core.php:608 +#: tmp/wordpress/wp-admin/update-core.php:608 +msgid "Check Again" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update.php:80 +#: tmp/wordpress/wp-admin/update.php:80 +msgid "Plugin Reactivation" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update.php:82 +#: tmp/wordpress/wp-admin/update.php:82 +msgid "Plugin reactivated successfully." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update.php:85 +#: tmp/wordpress/wp-admin/update.php:85 +msgid "Plugin failed to reactivate due to a fatal error." +msgstr "" + +#: tmp/old/wordpress/wp-admin/update.php:128 +#: tmp/wordpress/wp-admin/update.php:128 +msgid "Installing Plugin: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update.php:156 +#: tmp/wordpress/wp-admin/update.php:156 +msgid "Installing Plugin from uploaded file: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update.php:231 +#: tmp/wordpress/wp-admin/update.php:231 +msgid "Install Themes" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update.php:236 +#: tmp/wordpress/wp-admin/update.php:236 +msgid "Installing Theme: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/update.php:264 +#: tmp/wordpress/wp-admin/update.php:264 +msgid "Installing Theme from uploaded file: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/upgrade.php:64 +#: tmp/wordpress/wp-admin/upgrade.php:64 +msgid "WordPress › Update" +msgstr "" + +#: tmp/old/wordpress/wp-admin/upgrade.php:75 +#: tmp/wordpress/wp-admin/upgrade.php:75 +msgid "No Update Required" +msgstr "" + +#: tmp/old/wordpress/wp-admin/upgrade.php:76 +#: tmp/wordpress/wp-admin/upgrade.php:76 +msgid "Your WordPress database is already up-to-date!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/upgrade.php:97 +#: tmp/wordpress/wp-admin/upgrade.php:97 +msgid "" +"WordPress has been updated! Before we send you on your way, we have to " +"update your database to the newest version." +msgstr "" + +#: tmp/old/wordpress/wp-admin/upgrade.php:99 +#: tmp/wordpress/wp-admin/upgrade.php:99 +msgid "Update WordPress Database" +msgstr "" + +#: tmp/old/wordpress/wp-admin/upgrade.php:110 +#: tmp/wordpress/wp-admin/upgrade.php:110 +msgid "Your WordPress database has been successfully updated!" +msgstr "" + +#: tmp/old/wordpress/wp-admin/upgrade.php:115 +#: tmp/wordpress/wp-admin/upgrade.php:115 +msgid "%s queries" +msgstr "" + +#: tmp/old/wordpress/wp-admin/upgrade.php:117 +#: tmp/wordpress/wp-admin/upgrade.php:117 +msgid "%s seconds" +msgstr "" + +#: tmp/old/wordpress/wp-admin/upload.php:50 +#: tmp/wordpress/wp-admin/upload.php:50 +msgid "" +"All the files you’ve uploaded are listed in the Media Library, with " +"the most recent uploads listed first." +msgstr "" + +#: tmp/old/wordpress/wp-admin/upload.php:51 +#: tmp/old/wordpress/wp-admin/upload.php:193 +#: tmp/wordpress/wp-admin/upload.php:51 tmp/wordpress/wp-admin/upload.php:193 +msgid "" +"You can view your media in a simple visual grid or a list with columns. " +"Switch between these views using the icons to the left above the media." +msgstr "" + +#: tmp/old/wordpress/wp-admin/upload.php:52 +#: tmp/wordpress/wp-admin/upload.php:52 +msgid "" +"To delete media items, click the Bulk Select button at the top of the " +"screen. Select any items you wish to delete, then click the Delete Selected " +"button. Clicking the Cancel Selection button takes you back to viewing your " +"media." +msgstr "" + +#: tmp/old/wordpress/wp-admin/upload.php:57 +#: tmp/old/wordpress/wp-includes/media-template.php:498 +#: tmp/old/wordpress/wp-includes/media.php:3452 +#: tmp/wordpress/wp-admin/upload.php:57 +#: tmp/wordpress/wp-includes/media-template.php:498 +#: tmp/wordpress/wp-includes/media.php:3452 +msgid "Attachment Details" +msgstr "" + +#: tmp/old/wordpress/wp-admin/upload.php:59 +#: tmp/wordpress/wp-admin/upload.php:59 +msgid "" +"Clicking an item will display an Attachment Details dialog, which allows you " +"to preview media and make quick edits. Any changes you make to the " +"attachment details will be automatically saved." +msgstr "" + +#: tmp/old/wordpress/wp-admin/upload.php:60 +#: tmp/wordpress/wp-admin/upload.php:60 +msgid "" +"Use the arrow buttons at the top of the dialog, or the left and right arrow " +"keys on your keyboard, to navigate between media items quickly." +msgstr "" + +#: tmp/old/wordpress/wp-admin/upload.php:61 +#: tmp/wordpress/wp-admin/upload.php:61 +msgid "" +"You can also delete individual items and access the extended edit screen " +"from the details dialog." +msgstr "" + +#: tmp/old/wordpress/wp-admin/upload.php:66 +#: tmp/old/wordpress/wp-admin/upload.php:210 +#: tmp/wordpress/wp-admin/upload.php:66 tmp/wordpress/wp-admin/upload.php:210 +msgid "" +"Documentation " +"on Media Library" +msgstr "" + +#. translators: %s: list view URL +#: tmp/old/wordpress/wp-admin/upload.php:87 +#: tmp/wordpress/wp-admin/upload.php:87 +msgid "" +"The grid view for the Media Library requires JavaScript. Switch to the list view." +msgstr "" + +#: tmp/old/wordpress/wp-admin/upload.php:191 +#: tmp/wordpress/wp-admin/upload.php:191 +msgid "" +"All the files you’ve uploaded are listed in the Media Library, with " +"the most recent uploads listed first. You can use the Screen Options tab to " +"customize the display of this screen." +msgstr "" + +#: tmp/old/wordpress/wp-admin/upload.php:192 +#: tmp/wordpress/wp-admin/upload.php:192 +msgid "" +"You can narrow the list by file type/status or by date using the dropdown " +"menus above the media table." +msgstr "" + +#: tmp/old/wordpress/wp-admin/upload.php:199 +#: tmp/wordpress/wp-admin/upload.php:199 +msgid "" +"Hovering over a row reveals action links: Edit, Delete Permanently, and " +"View. Clicking Edit or on the media file’s name displays a simple " +"screen to edit that individual file’s metadata. Clicking Delete " +"Permanently will delete the file from the media library (as well as from any " +"posts to which it is currently attached). View will take you to the display " +"page for that file." +msgstr "" + +#: tmp/old/wordpress/wp-admin/upload.php:203 +#: tmp/wordpress/wp-admin/upload.php:203 +msgid "Attaching Files" +msgstr "" + +#: tmp/old/wordpress/wp-admin/upload.php:205 +#: tmp/wordpress/wp-admin/upload.php:205 +msgid "" +"If a media file has not been attached to any content, you will see that in " +"the Uploaded To column, and can click on Attach to launch a small popup that " +"will allow you to search for existing content and attach the file." +msgstr "" + +#: tmp/old/wordpress/wp-admin/upload.php:215 +#: tmp/wordpress/wp-admin/upload.php:215 +msgid "Filter media items list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/upload.php:216 +#: tmp/wordpress/wp-admin/upload.php:216 +msgid "Media items list navigation" +msgstr "" + +#: tmp/old/wordpress/wp-admin/upload.php:217 +#: tmp/wordpress/wp-admin/upload.php:217 +msgid "Media items list" +msgstr "" + +#: tmp/old/wordpress/wp-admin/upload.php:246 +#: tmp/wordpress/wp-admin/upload.php:246 +msgid "Media file attached." +msgstr "" + +#. translators: %s: number of media files +#: tmp/old/wordpress/wp-admin/upload.php:249 +#: tmp/wordpress/wp-admin/upload.php:249 +msgid "%s media file attached." +msgid_plural "%s media files attached." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/upload.php:257 +#: tmp/wordpress/wp-admin/upload.php:257 +msgid "Media file detached." +msgstr "" + +#. translators: %s: number of media files +#: tmp/old/wordpress/wp-admin/upload.php:260 +#: tmp/wordpress/wp-admin/upload.php:260 +msgid "%s media file detached." +msgid_plural "%s media files detached." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/upload.php:268 +#: tmp/old/wordpress/wp-admin/upload.php:301 +#: tmp/wordpress/wp-admin/upload.php:268 tmp/wordpress/wp-admin/upload.php:301 +msgid "Media file permanently deleted." +msgstr "" + +#. translators: %s: number of media files +#: tmp/old/wordpress/wp-admin/upload.php:271 +#: tmp/wordpress/wp-admin/upload.php:271 +msgid "%s media file permanently deleted." +msgid_plural "%s media files permanently deleted." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/upload.php:279 +#: tmp/old/wordpress/wp-admin/upload.php:303 +#: tmp/wordpress/wp-admin/upload.php:279 tmp/wordpress/wp-admin/upload.php:303 +msgid "Media file moved to the trash." +msgstr "" + +#. translators: %s: number of media files +#: tmp/old/wordpress/wp-admin/upload.php:282 +#: tmp/wordpress/wp-admin/upload.php:282 +msgid "%s media file moved to the trash." +msgid_plural "%s media files moved to the trash." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/upload.php:291 +#: tmp/old/wordpress/wp-admin/upload.php:304 +#: tmp/wordpress/wp-admin/upload.php:291 tmp/wordpress/wp-admin/upload.php:304 +msgid "Media file restored from the trash." +msgstr "" + +#. translators: %s: number of media files +#: tmp/old/wordpress/wp-admin/upload.php:294 +#: tmp/wordpress/wp-admin/upload.php:294 +msgid "%s media file restored from the trash." +msgid_plural "%s media files restored from the trash." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-admin/upload.php:302 +#: tmp/wordpress/wp-admin/upload.php:302 +msgid "Error saving media file." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:22 +#: tmp/old/wordpress/wp-admin/user-edit.php:24 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2426 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:343 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:606 +#: tmp/old/wordpress/wp-includes/user.php:1417 +#: tmp/old/wordpress/wp-includes/user.php:1738 +#: tmp/old/wordpress/wp-includes/user.php:1744 +#: tmp/wordpress/wp-admin/user-edit.php:22 +#: tmp/wordpress/wp-admin/user-edit.php:24 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2426 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:343 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:606 +#: tmp/wordpress/wp-includes/user.php:1417 +#: tmp/wordpress/wp-includes/user.php:1738 +#: tmp/wordpress/wp-includes/user.php:1744 +msgid "Invalid user ID." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:28 +#: tmp/wordpress/wp-admin/user-edit.php:28 +msgid "Edit User" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:39 +#: tmp/wordpress/wp-admin/user-edit.php:39 +msgid "" +"Your profile contains information about you (your “account”) as " +"well as some personal options related to using WordPress." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:40 +#: tmp/wordpress/wp-admin/user-edit.php:40 +msgid "" +"You can change your password, turn on keyboard shortcuts, change the color " +"scheme of your WordPress administration screens, and turn off the WYSIWYG " +"(Visual) editor, among other things. You can hide the Toolbar (formerly " +"called the Admin Bar) from the front end of your site, however it cannot be " +"disabled on the admin screens." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:41 +#: tmp/wordpress/wp-admin/user-edit.php:41 +msgid "" +"You can select the language you wish to use while using the WordPress " +"administration screen without affecting the language site visitors see." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:42 +#: tmp/wordpress/wp-admin/user-edit.php:42 +msgid "" +"Your username cannot be changed, but you can use other fields to enter your " +"real name or a nickname, and change which name to display on your posts." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:43 +#: tmp/wordpress/wp-admin/user-edit.php:43 +msgid "" +"You can log out of other devices, such as your phone or a public computer, " +"by clicking the Log Out Everywhere Else button." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:44 +#: tmp/wordpress/wp-admin/user-edit.php:44 +msgid "" +"Required fields are indicated; the rest are optional. Profile information " +"will only be displayed if your theme is set up to do so." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:45 +#: tmp/wordpress/wp-admin/user-edit.php:45 +msgid "Remember to click the Update Profile button when you are finished." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:55 +#: tmp/wordpress/wp-admin/user-edit.php:55 +msgid "" +"Documentation on User Profiles" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:81 +#: tmp/old/wordpress/wp-admin/user-edit.php:114 +#: tmp/old/wordpress/wp-admin/user-edit.php:167 +#: tmp/old/wordpress/wp-admin/users.php:97 +#: tmp/old/wordpress/wp-admin/users.php:122 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2421 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:578 +#: tmp/wordpress/wp-admin/user-edit.php:81 +#: tmp/wordpress/wp-admin/user-edit.php:114 +#: tmp/wordpress/wp-admin/user-edit.php:167 tmp/wordpress/wp-admin/users.php:97 +#: tmp/wordpress/wp-admin/users.php:122 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2421 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:578 +msgid "Sorry, you are not allowed to edit this user." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:175 +#: tmp/wordpress/wp-admin/user-edit.php:175 +msgid "This user has super admin privileges." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:180 +#: tmp/wordpress/wp-admin/user-edit.php:180 +msgid "Profile updated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:182 +#: tmp/wordpress/wp-admin/user-edit.php:182 +msgid "User updated." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:185 +#: tmp/wordpress/wp-admin/user-edit.php:185 +msgid "← Back to Users" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:192 +#: tmp/wordpress/wp-admin/user-edit.php:192 +msgid "Error while saving the new email address. Please try again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:208 +#: tmp/old/wordpress/wp-admin/users.php:500 +#: tmp/wordpress/wp-admin/user-edit.php:208 +#: tmp/wordpress/wp-admin/users.php:500 +msgctxt "user" +msgid "Add Existing" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:229 +#: tmp/wordpress/wp-admin/user-edit.php:229 +msgid "Personal Options" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:234 +#: tmp/wordpress/wp-admin/user-edit.php:234 +msgid "Visual Editor" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:235 +#: tmp/wordpress/wp-admin/user-edit.php:235 +msgid "Disable the visual editor when writing" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:260 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1061 +#: tmp/wordpress/wp-admin/user-edit.php:260 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1061 +msgid "Keyboard Shortcuts" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:261 +#: tmp/wordpress/wp-admin/user-edit.php:261 +msgid "Enable keyboard shortcuts for comment moderation." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:261 +#: tmp/wordpress/wp-admin/user-edit.php:261 +msgid "" +"More information" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:265 +#: tmp/old/wordpress/wp-admin/user-edit.php:266 +#: tmp/old/wordpress/wp-includes/class-wp-admin-bar.php:420 +#: tmp/wordpress/wp-admin/user-edit.php:265 +#: tmp/wordpress/wp-admin/user-edit.php:266 +#: tmp/wordpress/wp-includes/class-wp-admin-bar.php:420 +msgid "Toolbar" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:269 +#: tmp/wordpress/wp-admin/user-edit.php:269 +msgid "Show Toolbar when viewing site" +msgstr "" + +#. translators: The user language selection field label +#: tmp/old/wordpress/wp-admin/user-edit.php:280 +#: tmp/wordpress/wp-admin/user-edit.php:280 +msgid "Language" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:339 +#: tmp/wordpress/wp-admin/user-edit.php:339 +msgid "Usernames cannot be changed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:355 +#: tmp/old/wordpress/wp-admin/user-edit.php:357 +#: tmp/wordpress/wp-admin/user-edit.php:355 +#: tmp/wordpress/wp-admin/user-edit.php:357 +msgid "— No role for this site —" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:366 +#: tmp/wordpress/wp-admin/user-edit.php:366 +msgid "Grant this user super admin privileges for the Network." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:368 +#: tmp/wordpress/wp-admin/user-edit.php:368 +msgid "" +"Super admin privileges cannot be removed because this user has the network " +"admin email." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:374 +#: tmp/old/wordpress/wp-admin/user-new.php:414 +#: tmp/wordpress/wp-admin/user-edit.php:374 +#: tmp/wordpress/wp-admin/user-new.php:414 +msgid "First Name" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:379 +#: tmp/old/wordpress/wp-admin/user-new.php:418 +#: tmp/wordpress/wp-admin/user-edit.php:379 +#: tmp/wordpress/wp-admin/user-new.php:418 +msgid "Last Name" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:384 +#: tmp/wordpress/wp-admin/user-edit.php:384 +msgid "Nickname" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:389 +#: tmp/wordpress/wp-admin/user-edit.php:389 +msgid "Display name publicly as" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:425 +#: tmp/wordpress/wp-admin/user-edit.php:425 +msgid "Contact Info" +msgstr "" + +#. translators: %s: new email +#: tmp/old/wordpress/wp-admin/user-edit.php:438 +#: tmp/wordpress/wp-admin/user-edit.php:438 +msgid "There is a pending change of your email to %s." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:453 +#: tmp/old/wordpress/wp-admin/user-new.php:422 +#: tmp/old/wordpress/wp-includes/comment-template.php:2200 +#: tmp/wordpress/wp-admin/user-edit.php:453 +#: tmp/wordpress/wp-admin/user-new.php:422 +#: tmp/wordpress/wp-includes/comment-template.php:2200 +msgid "Website" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:483 +#: tmp/wordpress/wp-admin/user-edit.php:483 +msgid "About Yourself" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:483 +#: tmp/wordpress/wp-admin/user-edit.php:483 +msgid "About the user" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:487 +#: tmp/wordpress/wp-admin/user-edit.php:487 +msgid "Biographical Info" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:489 +#: tmp/wordpress/wp-admin/user-edit.php:489 +msgid "" +"Share a little biographical information to fill out your profile. This may " +"be shown publicly." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:494 +#: tmp/wordpress/wp-admin/user-edit.php:494 +msgid "Profile Picture" +msgstr "" + +#. translators: %s: Gravatar URL +#: tmp/old/wordpress/wp-admin/user-edit.php:500 +#: tmp/wordpress/wp-admin/user-edit.php:500 +msgid "You can change your profile picture on Gravatar." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:501 +#: tmp/wordpress/wp-admin/user-edit.php:501 +msgid "https://en.gravatar.com/" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:537 +#: tmp/wordpress/wp-admin/user-edit.php:537 +msgid "Account Management" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:540 +#: tmp/wordpress/wp-admin/user-edit.php:540 +msgid "New Password" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:543 +#: tmp/wordpress/wp-admin/user-edit.php:543 +msgid "Generate Password" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:552 +#: tmp/old/wordpress/wp-admin/user-new.php:444 +#: tmp/wordpress/wp-admin/user-edit.php:552 +#: tmp/wordpress/wp-admin/user-new.php:444 +msgid "Cancel password change" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:560 +#: tmp/wordpress/wp-admin/user-edit.php:560 +msgid "Repeat New Password" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:563 +#: tmp/wordpress/wp-admin/user-edit.php:563 +msgid "Type your new password again." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:571 +#: tmp/wordpress/wp-admin/user-edit.php:571 +msgid "Confirm use of potentially weak password" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:580 +#: tmp/old/wordpress/wp-admin/user-edit.php:590 +#: tmp/old/wordpress/wp-admin/user-edit.php:600 +#: tmp/wordpress/wp-admin/user-edit.php:580 +#: tmp/wordpress/wp-admin/user-edit.php:590 +#: tmp/wordpress/wp-admin/user-edit.php:600 +msgid "Sessions" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:582 +#: tmp/old/wordpress/wp-admin/user-edit.php:592 +#: tmp/wordpress/wp-admin/user-edit.php:582 +#: tmp/wordpress/wp-admin/user-edit.php:592 +msgid "Log Out Everywhere Else" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:584 +#: tmp/wordpress/wp-admin/user-edit.php:584 +msgid "You are only logged in at this location." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:594 +#: tmp/wordpress/wp-admin/user-edit.php:594 +msgid "" +"Did you lose your phone or leave your account logged in at a public " +"computer? You can log out everywhere else, and stay logged in here." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:602 +#: tmp/wordpress/wp-admin/user-edit.php:602 +msgid "Log Out Everywhere" +msgstr "" + +#. translators: 1: User's display name. +#: tmp/old/wordpress/wp-admin/user-edit.php:606 +#: tmp/wordpress/wp-admin/user-edit.php:606 +msgid "Log %s out of all locations." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:655 +#: tmp/wordpress/wp-admin/user-edit.php:655 +msgid "Additional Capabilities" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:658 +#: tmp/wordpress/wp-admin/user-edit.php:658 +msgid "Capabilities" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:666 +#: tmp/wordpress/wp-admin/user-edit.php:666 +msgid "Denied: %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:679 +#: tmp/wordpress/wp-admin/user-edit.php:679 +msgid "Update Profile" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-edit.php:679 +#: tmp/wordpress/wp-admin/user-edit.php:679 +msgid "Update User" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:23 +#: tmp/old/wordpress/wp-admin/user-new.php:117 +#: tmp/wordpress/wp-admin/user-new.php:23 +#: tmp/wordpress/wp-admin/user-new.php:117 +msgid "Sorry, you are not allowed to create users." +msgstr "" + +#. translators: 1: Site name, 2: site URL, 3: role, 4: activation URL +#: tmp/old/wordpress/wp-admin/user-new.php:93 +#: tmp/wordpress/wp-admin/user-new.php:93 +msgid "" +"Hi,\n" +"\n" +"You've been invited to join '%1$s' at\n" +"%2$s with the role of %3$s.\n" +"\n" +"Please click the following link to confirm the invite:\n" +"%4$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:100 +#: tmp/wordpress/wp-admin/user-new.php:100 +msgid "[%s] Joining confirmation" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:179 +#: tmp/wordpress/wp-admin/user-new.php:179 +msgid "" +"To add a new user to your site, fill in the form on this screen and click " +"the Add New User button at the bottom." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:182 +#: tmp/wordpress/wp-admin/user-new.php:182 +msgid "" +"Because this is a multisite installation, you may add accounts that already " +"exist on the Network by specifying a username or email, and defining a role. " +"For more options, such as specifying a password, you have to be a Network " +"Administrator and use the hover link under an existing user’s name to " +"Edit the user profile under Network Admin > All Users." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:183 +#: tmp/wordpress/wp-admin/user-new.php:183 +msgid "" +"New users will receive an email letting them know they’ve been added " +"as a user for your site. This email will also contain their password. Check " +"the box if you don’t want the user to receive a welcome email." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:185 +#: tmp/wordpress/wp-admin/user-new.php:185 +msgid "" +"New users are automatically assigned a password, which they can change after " +"logging in. You can view or edit the assigned password by clicking the Show " +"Password button. The username cannot be changed once the user has been added." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:187 +#: tmp/wordpress/wp-admin/user-new.php:187 +msgid "" +"By default, new users will receive an email letting them know they’ve " +"been added as a user for your site. This email will also contain a password " +"reset link. Uncheck the box if you don’t want to send the new user a " +"welcome email." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:190 +#: tmp/wordpress/wp-admin/user-new.php:190 +msgid "" +"Remember to click the Add New User button at the bottom of this screen when " +"you are finished." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:200 +#: tmp/wordpress/wp-admin/user-new.php:200 +msgid "User Roles" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:201 +#: tmp/wordpress/wp-admin/user-new.php:201 +msgid "" +"Here is a basic overview of the different user roles and the permissions " +"associated with each one:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:203 +#: tmp/wordpress/wp-admin/user-new.php:203 +msgid "" +"Subscribers can read comments/comment/receive newsletters, etc. but cannot " +"create regular site content." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:204 +#: tmp/wordpress/wp-admin/user-new.php:204 +msgid "" +"Contributors can write and manage their posts but not publish posts or " +"upload media files." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:205 +#: tmp/wordpress/wp-admin/user-new.php:205 +msgid "" +"Authors can publish and manage their own posts, and are able to upload files." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:206 +#: tmp/wordpress/wp-admin/user-new.php:206 +msgid "" +"Editors can publish posts, manage posts as well as manage other people’" +"s posts, etc." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:207 +#: tmp/wordpress/wp-admin/user-new.php:207 +msgid "Administrators have access to all the administration features." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:213 +#: tmp/wordpress/wp-admin/user-new.php:213 +msgid "" +"Documentation " +"on Adding New Users" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:248 +#: tmp/wordpress/wp-admin/user-new.php:248 +msgid "" +"Invitation email sent to new user. A confirmation link must be clicked " +"before their account is created." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:251 +#: tmp/wordpress/wp-admin/user-new.php:251 +msgid "" +"Invitation email sent to user. A confirmation link must be clicked for them " +"to be added to your site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:255 +#: tmp/wordpress/wp-admin/user-new.php:255 +msgid "User has been added to your site." +msgstr "" + +#. translators: %s: edit page url +#: tmp/old/wordpress/wp-admin/user-new.php:258 +#: tmp/wordpress/wp-admin/user-new.php:258 +msgid "User has been added to your site. Edit user" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:262 +#: tmp/wordpress/wp-admin/user-new.php:262 +msgid "That user is already a member of this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:265 +#: tmp/old/wordpress/wp-includes/ms-functions.php:159 +#: tmp/wordpress/wp-admin/user-new.php:265 +#: tmp/wordpress/wp-includes/ms-functions.php:159 +msgid "The requested user does not exist." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:268 +#: tmp/old/wordpress/wp-includes/ms-functions.php:459 +#: tmp/wordpress/wp-admin/user-new.php:268 +#: tmp/wordpress/wp-includes/ms-functions.php:459 +msgid "Please enter a valid email address." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:317 +#: tmp/wordpress/wp-admin/user-new.php:317 +msgid "" +"Enter the email address of an existing user on this network to invite them " +"to this site. That person will be sent an email asking them to confirm the " +"invite." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:321 +#: tmp/wordpress/wp-admin/user-new.php:321 +msgid "" +"Enter the email address or username of an existing user on this network to " +"invite them to this site. That person will be sent an email asking them to " +"confirm the invite." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:322 +#: tmp/wordpress/wp-admin/user-new.php:322 +msgid "Email or Username" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:351 +#: tmp/old/wordpress/wp-admin/user-new.php:487 +#: tmp/wordpress/wp-admin/user-new.php:351 +#: tmp/wordpress/wp-admin/user-new.php:487 +msgid "Skip Confirmation Email" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:354 +#: tmp/old/wordpress/wp-admin/user-new.php:490 +#: tmp/wordpress/wp-admin/user-new.php:354 +#: tmp/wordpress/wp-admin/user-new.php:490 +msgid "Add the user without sending an email that requires their confirmation." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:382 +#: tmp/wordpress/wp-admin/user-new.php:382 +msgid "Create a brand new user and add them to this site." +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:434 +#: tmp/old/wordpress/wp-includes/script-loader.php:416 +#: tmp/wordpress/wp-admin/user-new.php:434 +#: tmp/wordpress/wp-includes/script-loader.php:416 +msgid "Show password" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:467 +#: tmp/wordpress/wp-admin/user-new.php:467 +msgid "Send User Notification" +msgstr "" + +#: tmp/old/wordpress/wp-admin/user-new.php:470 +#: tmp/wordpress/wp-admin/user-new.php:470 +msgid "Send the new user an email about their account." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:16 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2479 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:186 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:382 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:384 +#: tmp/wordpress/wp-admin/users.php:16 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2479 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:186 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:382 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:384 +msgid "Sorry, you are not allowed to list users." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:32 tmp/wordpress/wp-admin/users.php:32 +msgid "" +"This screen lists all the existing users for your site. Each user has one of " +"five defined roles as set by the site admin: Site Administrator, Editor, " +"Author, Contributor, or Subscriber. Users with roles other than " +"Administrator will see fewer options in the dashboard navigation when they " +"are logged in, based on their role." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:33 tmp/wordpress/wp-admin/users.php:33 +msgid "" +"To add a new user for your site, click the Add New button at the top of the " +"screen or Add New in the Users menu section." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:38 tmp/wordpress/wp-admin/users.php:38 +msgid "Screen Display" +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:39 tmp/wordpress/wp-admin/users.php:39 +msgid "You can customize the display of this screen in a number of ways:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:41 tmp/wordpress/wp-admin/users.php:41 +msgid "" +"You can hide/display columns based on your needs and decide how many users " +"to list per screen using the Screen Options tab." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:42 tmp/wordpress/wp-admin/users.php:42 +msgid "" +"You can filter the list of users by User Role using the text links above the " +"users list to show All, Administrator, Editor, Author, Contributor, or " +"Subscriber. The default view is to show all users. Unused User Roles are not " +"listed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:43 tmp/wordpress/wp-admin/users.php:43 +msgid "" +"You can view all posts made by a user by clicking on the number under the " +"Posts column." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:47 tmp/wordpress/wp-admin/users.php:47 +msgid "" +"Hovering over a row in the users list will display action links that allow " +"you to manage users. You can perform the following actions:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:49 tmp/wordpress/wp-admin/users.php:49 +msgid "" +"Edit takes you to the editable profile screen for that user. You can also " +"reach that screen by clicking on the username." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:52 tmp/wordpress/wp-admin/users.php:52 +msgid "" +"Remove allows you to remove a user from your site. It does not delete their " +"content. You can also remove multiple users at once by using Bulk Actions." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:54 tmp/wordpress/wp-admin/users.php:54 +msgid "" +"Delete brings you to the Delete Users screen for confirmation, where you can " +"permanently remove a user from your site and delete their content. You can " +"also delete multiple users at once by using Bulk Actions." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:67 tmp/wordpress/wp-admin/users.php:67 +msgid "" +"Documentation on " +"Managing Users" +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:68 tmp/wordpress/wp-admin/users.php:68 +msgid "" +"Descriptions " +"of Roles and Capabilities" +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:148 +#: tmp/old/wordpress/wp-admin/users.php:197 +#: tmp/wordpress/wp-admin/users.php:148 tmp/wordpress/wp-admin/users.php:197 +msgid "User deletion is not allowed from this screen." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:167 +#: tmp/old/wordpress/wp-admin/users.php:207 +#: tmp/wordpress/wp-admin/users.php:167 tmp/wordpress/wp-admin/users.php:207 +msgid "Sorry, you are not allowed to delete users." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:174 +#: tmp/wordpress/wp-admin/users.php:174 +msgid "Sorry, you are not allowed to delete that user." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:232 +#: tmp/wordpress/wp-admin/users.php:232 +msgid "Delete Users" +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:235 +#: tmp/wordpress/wp-admin/users.php:235 +msgid "Please select an option." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:240 +#: tmp/wordpress/wp-admin/users.php:240 +msgid "You have specified this user for deletion:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:242 +#: tmp/wordpress/wp-admin/users.php:242 +msgid "You have specified these users for deletion:" +msgstr "" + +#. translators: 1: user id, 2: user login +#: tmp/old/wordpress/wp-admin/users.php:252 +#: tmp/wordpress/wp-admin/users.php:252 +msgid "ID #%1$s: %2$s The current user will not be deleted." +msgstr "" + +#. translators: 1: user id, 2: user login +#: tmp/old/wordpress/wp-admin/users.php:255 +#: tmp/old/wordpress/wp-admin/users.php:388 +#: tmp/wordpress/wp-admin/users.php:255 tmp/wordpress/wp-admin/users.php:388 +msgid "ID #%1$s: %2$s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:267 +#: tmp/wordpress/wp-admin/users.php:267 +msgid "What should be done with content owned by this user?" +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:269 +#: tmp/wordpress/wp-admin/users.php:269 +msgid "What should be done with content owned by these users?" +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:297 +#: tmp/wordpress/wp-admin/users.php:297 +msgid "There are no valid users selected for deletion." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:309 +#: tmp/old/wordpress/wp-admin/users.php:344 +#: tmp/wordpress/wp-admin/users.php:309 tmp/wordpress/wp-admin/users.php:344 +msgid "You can’t remove users." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:366 +#: tmp/wordpress/wp-admin/users.php:366 +msgid "Remove Users from Site" +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:369 +#: tmp/wordpress/wp-admin/users.php:369 +msgid "You have specified this user for removal:" +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:371 +#: tmp/wordpress/wp-admin/users.php:371 +msgid "You have specified these users for removal:" +msgstr "" + +#. translators: 1: user id, 2: user login +#: tmp/old/wordpress/wp-admin/users.php:382 +#: tmp/wordpress/wp-admin/users.php:382 +msgid "ID #%1$s: %2$s The current user will not be removed." +msgstr "" + +#. translators: 1: user id, 2: user login +#: tmp/old/wordpress/wp-admin/users.php:385 +#: tmp/wordpress/wp-admin/users.php:385 +msgid "" +"ID #%1$s: %2$s Sorry, you are not allowed to remove this user." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:396 +#: tmp/wordpress/wp-admin/users.php:396 +msgid "Confirm Removal" +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:398 +#: tmp/wordpress/wp-admin/users.php:398 +msgid "There are no valid users selected for removal." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:442 +#: tmp/wordpress/wp-admin/users.php:442 +msgid "%s user deleted." +msgid_plural "%s users deleted." +msgstr[0] "" +msgstr[1] "" + +#. translators: %s: edit page url +#: tmp/old/wordpress/wp-admin/users.php:449 +#: tmp/wordpress/wp-admin/users.php:449 +msgid "New user created. Edit user" +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:453 +#: tmp/wordpress/wp-admin/users.php:453 +msgid "New user created." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:460 +#: tmp/wordpress/wp-admin/users.php:460 +msgid "The current user’s role must have user editing capabilities." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:461 +#: tmp/wordpress/wp-admin/users.php:461 +msgid "Other user roles have been changed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:464 +#: tmp/wordpress/wp-admin/users.php:464 +msgid "You can’t delete the current user." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:465 +#: tmp/wordpress/wp-admin/users.php:465 +msgid "Other users have been deleted." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:471 +#: tmp/wordpress/wp-admin/users.php:471 +msgid "You can't remove the current user." +msgstr "" + +#: tmp/old/wordpress/wp-admin/users.php:472 +#: tmp/wordpress/wp-admin/users.php:472 +msgid "Other users have been removed." +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:48 +#: tmp/old/wordpress/wp-includes/admin-bar.php:783 +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:421 +#: tmp/old/wordpress/wp-includes/functions.php:3705 +#: tmp/wordpress/wp-admin/widgets.php:48 +#: tmp/wordpress/wp-includes/admin-bar.php:783 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:421 +#: tmp/wordpress/wp-includes/functions.php:3705 +msgid "Widgets" +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:55 +#: tmp/wordpress/wp-admin/widgets.php:55 +msgid "" +"Widgets are independent sections of content that can be placed into any " +"widgetized area provided by your theme (commonly called sidebars). To " +"populate your sidebars/widget areas with individual widgets, drag and drop " +"the title bars into the desired area. By default, only the first widget area " +"is expanded. To populate additional widget areas, click on their title bars " +"to expand them." +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:56 +#: tmp/wordpress/wp-admin/widgets.php:56 +msgid "" +"The Available Widgets section contains all the widgets you can choose from. " +"Once you drag a widget into a sidebar, it will open to allow you to " +"configure its settings. When you are happy with the widget settings, click " +"the Save button and the widget will go live on your site. If you click " +"Delete, it will remove the widget." +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:60 +#: tmp/wordpress/wp-admin/widgets.php:60 +msgid "Removing and Reusing" +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:62 +#: tmp/wordpress/wp-admin/widgets.php:62 +msgid "" +"If you want to remove the widget but save its setting for possible future " +"use, just drag it into the Inactive Widgets area. You can add them back " +"anytime from there. This is especially helpful when you switch to a theme " +"with fewer or different widget areas." +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:63 +#: tmp/wordpress/wp-admin/widgets.php:63 +msgid "" +"Widgets may be used multiple times. You can give each widget a title, to " +"display on your site, but it’s not required." +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:64 +#: tmp/wordpress/wp-admin/widgets.php:64 +msgid "" +"Enabling Accessibility Mode, via Screen Options, allows you to use Add and " +"Edit buttons instead of using drag and drop." +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:68 +#: tmp/wordpress/wp-admin/widgets.php:68 +msgid "Missing Widgets" +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:70 +#: tmp/wordpress/wp-admin/widgets.php:70 +msgid "" +"Many themes show some sidebar widgets by default until you edit your " +"sidebars, but they are not automatically displayed in your sidebar " +"management tool. After you make your first widget change, you can re-add the " +"default widgets by adding them from the Available Widgets area." +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:71 +#: tmp/wordpress/wp-admin/widgets.php:71 +msgid "" +"When changing themes, there is often some variation in the number and setup " +"of widget areas/sidebars and sometimes these conflicts make the transition a " +"bit less smooth. If you changed themes and seem to be missing widgets, " +"scroll down on this screen to the Inactive Widgets area, where all of your " +"widgets and their settings will have been saved." +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:76 +#: tmp/wordpress/wp-admin/widgets.php:76 +msgid "" +"Documentation on Widgets" +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:81 +#: tmp/wordpress/wp-admin/widgets.php:81 +msgid "" +"The theme you are currently using isn’t widget-aware, meaning that it " +"has no sidebars that you are able to change. For information on making your " +"theme widget-aware, please follow these instructions." +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:97 +#: tmp/wordpress/wp-admin/widgets.php:97 +msgid "Inactive Sidebar (not used)" +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:100 +#: tmp/wordpress/wp-admin/widgets.php:100 +msgid "" +"This sidebar is no longer available and does not show anywhere on your site. " +"Remove each of the widgets below to fully remove this inactive sidebar." +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:114 +#: tmp/wordpress/wp-admin/widgets.php:114 +msgid "Inactive Widgets" +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:117 +#: tmp/wordpress/wp-admin/widgets.php:117 +msgid "" +"Drag widgets here to remove them from the sidebar but keep their settings." +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:271 +#: tmp/wordpress/wp-admin/widgets.php:271 +msgid "Widget %s" +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:282 +#: tmp/wordpress/wp-admin/widgets.php:282 +msgid "" +"Select both the sidebar for this widget and the position of the widget in " +"that sidebar." +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:284 +#: tmp/wordpress/wp-admin/widgets.php:284 +msgid "Position" +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:322 +#: tmp/wordpress/wp-admin/widgets.php:322 +msgid "Save Widget" +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:338 +#: tmp/old/wordpress/wp-includes/script-loader.php:614 +#: tmp/old/wordpress/wp-includes/script-loader.php:620 +#: tmp/wordpress/wp-admin/widgets.php:338 +#: tmp/wordpress/wp-includes/script-loader.php:614 +#: tmp/wordpress/wp-includes/script-loader.php:620 +msgid "Changes saved." +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:343 +#: tmp/wordpress/wp-admin/widgets.php:343 +msgid "Error in displaying the widget settings form." +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:388 +#: tmp/wordpress/wp-admin/widgets.php:388 +msgid "Available Widgets" +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:388 +#: tmp/wordpress/wp-admin/widgets.php:388 +msgctxt "removing-widget" +msgid "Deactivate" +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:392 +#: tmp/wordpress/wp-admin/widgets.php:392 +msgid "" +"To activate a widget drag it to a sidebar or click on it. To deactivate a " +"widget and delete its settings, drag it back." +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:428 +#: tmp/wordpress/wp-admin/widgets.php:428 +msgid "Clear Inactive Widgets" +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:438 +#: tmp/wordpress/wp-admin/widgets.php:438 +msgid "" +"This will clear all items from the inactive widgets list. You will not be " +"able to restore any customizations." +msgstr "" + +#: tmp/old/wordpress/wp-admin/widgets.php:506 +#: tmp/wordpress/wp-admin/widgets.php:506 +msgid "Add Widget" +msgstr "" + +#: tmp/old/wordpress/wp-comments-post.php:29 +#: tmp/wordpress/wp-comments-post.php:29 +msgid "Comment Submission Failure" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:72 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:72 +msgid "Comment History" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:95 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:97 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:95 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:97 +msgid "Akismet" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:125 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:125 +msgid "Remove this URL" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:126 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:126 +msgid "Removing..." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:127 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:127 +msgid "URL removed" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:128 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:128 +msgid "(undo)" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:129 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:129 +msgid "Re-adding..." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:158 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:169 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:180 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:158 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:169 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:180 +msgid "Akismet Setup" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:159 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:197 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:210 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:159 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:197 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:210 +msgid "Akismet filters out spam, so you can focus on more important things." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:160 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:160 +msgid "On this page, you are able to set up the Akismet plugin." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:167 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:167 +msgid "New to Akismet" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:170 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:170 +msgid "" +"You need to enter an API key to activate the Akismet service on your site." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:171 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:171 +msgid "Sign up for an account on %s to get an API Key." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:178 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:178 +msgid "Enter an API Key" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:181 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:181 +msgid "If you already have an API key" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:183 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:183 +msgid "Copy and paste the API key into the text field." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:184 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:184 +msgid "Click the Use this Key button." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:196 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:196 +msgid "Akismet Stats" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:198 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:198 +msgid "On this page, you are able to view stats on spam filtered on your site." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:209 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:220 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:232 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:209 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:220 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:232 +msgid "Akismet Configuration" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:211 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:211 +msgid "" +"On this page, you are able to enter/remove an API key, view account " +"information and view spam stats." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:221 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:70 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:221 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:70 +msgid "API Key" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:221 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:221 +msgid "Enter/remove an API key." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:222 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:222 +msgid "" +"Show the number of approved comments beside each comment author in the " +"comments list page." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:223 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:131 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:223 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:131 +msgid "Strictness" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:223 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:223 +msgid "" +"Choose to either discard the worst spam automatically or to always put all " +"spam in spam folder." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:230 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:179 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:230 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:179 +msgid "Account" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:233 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:187 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:233 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:187 +msgid "Subscription Type" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:233 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:233 +msgid "The Akismet subscription plan" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:234 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:234 +msgid "The subscription status - active, cancelled or suspended" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:243 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:243 +msgid "Akismet FAQ" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:244 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:244 +msgid "Akismet Support" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:311 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:311 +msgctxt "comments" +msgid "Spam" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:313 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:313 +msgid "" +"Akismet has protected your site from " +"%3$s spam comment." +msgid_plural "" +"Akismet has protected your site from " +"%3$s spam comments." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:323 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:323 +msgid "" +"Akismet has protected your site from %2$s spam comment " +"already. " +msgid_plural "" +"Akismet has protected your site from %2$s spam comments " +"already. " +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:329 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:329 +msgid "Akismet blocks spam from getting to your blog. " +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:335 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:335 +msgid "" +"There’s %1$s comment in your spam queue right now." +msgid_plural "" +"There are %1$s comments in your spam queue right now." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:341 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:341 +msgid "" +"There’s nothing in your spam queue at the moment." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:366 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:366 +msgid "Checking for Spam" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:367 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:367 +msgid "(%1$s...)" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:370 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:370 +msgid "Check for Spam" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:478 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:478 +msgid "Awaiting spam check" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:482 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:482 +msgid "Flagged as spam by Akismet" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:484 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:484 +msgid "Cleared by Akismet" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:488 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:488 +msgid "Flagged as spam by %s" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:490 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:490 +msgid "Un-spammed by %s" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:502 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:510 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:502 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:510 +msgid "View comment history" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:502 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:502 +msgid "History" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:525 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:525 +msgid "%s approved" +msgid_plural "%s approved" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:554 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:554 +msgid "Akismet re-checked and caught this comment as spam." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:557 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:557 +msgid "Akismet caught this comment as spam." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:560 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:560 +msgid "Akismet re-checked and cleared this comment." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:563 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:563 +msgid "Akismet cleared this comment." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:566 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:566 +msgid "Comment was caught by wp_blacklist_check." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:570 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:570 +msgid "%s reported this comment as spam." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:573 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:573 +msgid "This comment was reported as spam." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:578 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:578 +msgid "%s reported this comment as not spam." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:581 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:581 +msgid "This comment was reported as not spam." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:585 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:585 +msgid "Akismet caught this comment as spam during an automatic retry." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:588 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:588 +msgid "Akismet cleared this comment during an automatic retry." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:592 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:592 +msgid "" +"Akismet was unable to check this comment (response: %s) but will " +"automatically retry later." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:597 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:597 +msgid "Akismet was unable to recheck this comment (response: %s)." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:605 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:605 +msgid "Comment status was changed to %s" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:611 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:611 +msgid "%1$s changed the comment status to %2$s." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:820 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:820 +msgid "" +"Please check your Akismet configuration and contact your " +"web host if problems persist." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:922 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:922 +msgid "Cleaning up spam takes time." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:925 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:925 +msgid "Akismet has saved you %s day!" +msgid_plural "Akismet has saved you %s days!" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:927 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:927 +msgid "Akismet has saved you %d hour!" +msgid_plural "Akismet has saved you %d hours!" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:929 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:929 +msgid "Akismet has saved you %d minute!" +msgid_plural "Akismet has saved you %d minutes!" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:994 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:994 +msgid "" +"There were no comments to check. Akismet will only check comments in the " +"Pending queue." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:997 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:997 +msgid "Akismet checked %s comment." +msgid_plural "Akismet checked %s comments." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:1001 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:1001 +msgid "No comments were caught as spam." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:1004 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:1004 +msgid "%s comment was caught as spam." +msgid_plural "%s comments were caught as spam." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:1091 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:1091 +msgid "" +"Used by millions, Akismet is quite possibly the best way in the world to " +"protect your blog from spam. Your site is fully configured " +"and being protected, even while you sleep." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:1094 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-admin.php:1094 +msgid "" +"Used by millions, Akismet is quite possibly the best way in the world to " +"protect your blog from spam. It keeps your site protected " +"even while you sleep. To get started, just go to your Akismet Settings page to set up your API " +"key." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-cli.php:36 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-cli.php:36 +msgid "Comment #%d is spam." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-cli.php:39 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-cli.php:39 +msgid "Comment #%d is not spam." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-cli.php:43 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-cli.php:43 +msgid "Failed to connect to Akismet." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-cli.php:46 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-cli.php:46 +msgid "Comment #%d could not be checked." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-cli.php:84 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-cli.php:84 +msgid "Processed %d comment." +msgid_plural "Processed %d comments." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-cli.php:85 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-cli.php:85 +msgid "%d comment moved to Spam." +msgid_plural "%d comments moved to Spam." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-cli.php:88 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-cli.php:88 +msgid "%d comment could not be checked." +msgid_plural "%d comments could not be checked." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-widget.php:12 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-widget.php:12 +msgid "Akismet Widget" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-widget.php:13 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-widget.php:13 +msgid "Display the number of spam comments Akismet has caught" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-widget.php:69 +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-widget.php:90 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-widget.php:69 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-widget.php:90 +msgid "Spam Blocked" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-widget.php:74 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:276 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-nav-menu-widget.php:137 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-archives.php:157 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-calendar.php:104 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-categories.php:160 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-meta.php:111 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-pages.php:131 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-recent-comments.php:159 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-recent-posts.php:132 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-search.php:71 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-tag-cloud.php:122 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-text.php:109 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-widget.php:74 +#: tmp/wordpress/wp-includes/widgets/class-wp-nav-menu-widget.php:137 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-archives.php:157 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-calendar.php:104 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-categories.php:160 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-meta.php:111 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-pages.php:131 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-recent-comments.php:159 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-recent-posts.php:132 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-search.php:71 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-tag-cloud.php:122 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-text.php:109 +msgid "Title:" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet-widget.php:102 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet-widget.php:102 +msgid "" +"%1$s spam blocked by Akismet" +msgid_plural "" +"%1$s spam blocked by Akismet" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet.php:456 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet.php:456 +msgid "Comment not found." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet.php:1146 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet.php:1146 +msgid "Akismet %s requires WordPress %s or higher." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/class.akismet.php:1146 +#: tmp/wordpress/wp-content/plugins/akismet/class.akismet.php:1146 +msgid "" +"Please upgrade WordPress to a current version, or downgrade to version 2.4 of the Akismet plugin." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:22 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:22 +msgid "Statistics" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:26 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:26 +msgid "Detailed Stats" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:35 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:35 +msgid "Past six months" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:37 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:42 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:37 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:42 +msgid "Spam blocked" +msgid_plural "Spam blocked" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:40 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:40 +msgid "All time" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:45 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:45 +msgid "Accuracy" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:47 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:47 +msgid "%s missed spam" +msgid_plural "%s missed spam" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:49 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:49 +msgid "%s false positive" +msgid_plural "%s false positives" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:79 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:79 +msgid "SSL Status" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:86 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:89 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:86 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:89 +msgid "Disabled." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:89 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:89 +msgid "" +"Your Web server cannot make SSL requests; contact your Web host and ask them " +"to add support for SSL requests." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:95 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:95 +msgid "Temporarily disabled." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:95 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:95 +msgid "" +"Akismet encountered a problem with a previous SSL request and disabled it " +"temporarily. It will begin using SSL for requests again shortly." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:98 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:98 +msgid "Enabled." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:98 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:98 +msgid "All systems functional." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:112 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:112 +msgid "Show approved comments" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:125 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:125 +msgid "Show the number of approved comments beside each comment author" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:134 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/strict.php:3 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:134 +msgid "Akismet anti-spam strictness" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:135 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:135 +msgid "Silently discard the worst and most pervasive spam so I never see it." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:136 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:136 +msgid "Always put spam in the Spam folder for review." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:144 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:144 +msgid "" +"Spam in the spam folder older than 1 day is deleted " +"automatically." +msgid_plural "" +"Spam in the spam folder older than %2$d days is deleted " +"automatically." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:162 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:162 +msgid "Disconnect this account" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:199 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:199 +msgid "Cancelled" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:201 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:201 +msgid "Suspended" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:203 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:203 +msgid "Missing" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:205 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:205 +msgid "No Subscription Found" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:207 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:207 +msgid "Active" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:213 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:213 +msgid "Next Billing Date" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/config.php:224 +#: tmp/wordpress/wp-content/plugins/akismet/views/config.php:224 +msgid "Upgrade" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:8 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:8 +msgid "Set up your Akismet account" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:11 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:11 +msgid "" +"Almost done - configure Akismet and say goodbye to spam" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:17 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:17 +msgid "Akismet has detected a problem." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:18 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:18 +msgid "" +"Some comments have not yet been checked for spam by Akismet. They have been " +"temporarily held for moderation and will automatically be rechecked later." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:25 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:25 +msgid "Akismet Error Code: %s" +msgstr "" + +#. translators: the placeholder is a clickable URL that leads to more +#. information regarding an error code. +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:30 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:30 +msgid "For more information: %s" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:44 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:44 +msgid "Network functions are disabled." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:45 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:45 +msgid "" +"Your web host or server administrator has disabled PHP’s " +"gethostbynamel function. Akismet cannot work correctly " +"until this is fixed. Please contact your web host or firewall " +"administrator and give them this " +"information about Akismet’s system requirements." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:49 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:49 +msgid "Akismet can’t connect to your site." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:50 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:50 +msgid "" +"Your firewall may be blocking Akismet. Please contact your host and refer to " +"our guide about firewalls." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:54 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:54 +msgid "Please update your payment information." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:55 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:55 +msgid "" +"We cannot process your payment. Please update your payment details." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:59 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:59 +msgid "Your Akismet plan has been cancelled." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:60 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:60 +msgid "" +"Please visit your Akismet account page " +"to reactivate your subscription." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:64 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:64 +msgid "Your Akismet subscription is suspended." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:65 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:75 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:65 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:75 +msgid "" +"Please contact Akismet support for " +"assistance." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:70 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:70 +msgid "" +"You can help us fight spam and upgrade your account by contributing a token amount." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:74 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:74 +msgid "There is a problem with your API key." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:79 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:79 +msgid "You don’t have an Akismet plan." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:81 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:81 +msgid "" +"In 2012, Akismet began using subscription plans for all accounts (even free " +"ones). A plan has not been assigned to your account, and we’d " +"appreciate it if you’d sign into your " +"account and choose one." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:83 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:124 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:131 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:83 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:124 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:131 +msgid "" +"Please contact our support team with " +"any questions." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:99 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:99 +msgid "Akismet is now protecting your site from spam. Happy blogging!" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:101 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:101 +msgid "Would you like to check pending comments?" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:106 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:106 +msgid "The key you entered is invalid. Please double-check it." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:110 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:110 +msgid "" +"Your API key is no longer valid. Please enter a new key or contact " +"support@akismet.com." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:114 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:114 +msgid "The API key you entered could not be verified." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:115 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:115 +msgid "" +"The connection to akismet.com could not be established. Please refer to our guide about firewalls and check your " +"server configuration." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:120 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:120 +msgid "" +"You’re using your Akismet key on more sites than your Pro subscription " +"allows." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:122 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:122 +msgid "" +"Your Pro subscription allows the use of Akismet on only one site. Please purchase additional Pro subscriptions or " +"upgrade to an Enterprise subscription that allows the use of Akismet on " +"unlimited sites." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:127 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:127 +msgid "" +"You’re using Akismet on far too many sites for your Pro subscription." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/notice.php:129 +#: tmp/wordpress/wp-content/plugins/akismet/views/notice.php:129 +msgid "" +"To continue your service, upgrade to an " +"Enterprise subscription, which covers an unlimited number of sites." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:12 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:12 +msgid "Eliminate spam from your site" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:13 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:13 +msgid "Select one of the options below to get started." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:19 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:33 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:52 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:19 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:33 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:52 +msgid "Connect via Jetpack" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:20 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:53 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:20 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:53 +msgid "Use your Jetpack connection to activate Akismet." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:26 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:58 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:26 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:58 +msgid "Connect with Jetpack" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:29 +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:61 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:29 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:61 +msgid "You are connected as %s." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:39 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:39 +msgid "Reactivate Akismet" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:41 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:41 +msgid "Your subscription for %s is cancelled." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:45 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:45 +msgid "Connected via Jetpack" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:46 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:46 +msgid "Your subscription for %s is suspended." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:47 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:47 +msgid "No worries! Get in touch and we’ll sort this out." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:48 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:48 +msgid "Contact Akismet support" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:65 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:65 +msgid "Or sign up with a different email address" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:67 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:67 +msgid "Sign up with a different email address" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:69 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:69 +msgid "" +"Choose this option to use Akismet independently of your Jetpack connection." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:73 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:73 +msgid "Activate Akismet" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:75 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:75 +msgid "Get your API key" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:77 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:77 +msgid "Log in or sign up now." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:81 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:81 +msgid "Or enter an API key" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:82 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:82 +msgid "Already have your key? Enter it here." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:82 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:82 +msgid "(What is an API key?)" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/start.php:88 +#: tmp/wordpress/wp-content/plugins/akismet/views/start.php:88 +msgid "Connect with API key" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/stats.php:4 +#: tmp/wordpress/wp-content/plugins/akismet/views/stats.php:4 +msgid "Akismet Settings" +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/strict.php:8 +msgid "Strict: silently discard the worst and most pervasive spam." +msgstr "" + +#: tmp/old/wordpress/wp-content/plugins/akismet/views/strict.php:14 +msgid "Safe: always put spam in the Spam folder for review." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/404.php:17 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/404.php:21 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/404.php:17 +#: tmp/wordpress/wp-content/themes/twentyfifteen/404.php:17 +#: tmp/wordpress/wp-content/themes/twentyseventeen/404.php:21 +#: tmp/wordpress/wp-content/themes/twentysixteen/404.php:17 +msgid "Oops! That page can’t be found." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/404.php:21 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/404.php:21 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/404.php:24 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/404.php:21 +#: tmp/wordpress/wp-content/themes/twentyfifteen/404.php:21 +#: tmp/wordpress/wp-content/themes/twentyseventeen/404.php:24 +#: tmp/wordpress/wp-content/themes/twentysixteen/404.php:21 +msgid "It looks like nothing was found at this location. Maybe try a search?" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/author-bio.php:12 +#: tmp/wordpress/wp-content/themes/twentyfifteen/author-bio.php:12 +msgid "Published by" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/author-bio.php:34 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/biography.php:33 +#: tmp/wordpress/wp-content/themes/twentyfifteen/author-bio.php:34 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/biography.php:33 +msgid "View all posts by %s" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/comments.php:28 +#: tmp/wordpress/wp-content/themes/twentyfifteen/comments.php:28 +msgctxt "comments title" +msgid "One thought on “%2$s”" +msgid_plural "%1$s thoughts on “%2$s”" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/comments.php:53 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/comments.php:59 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/comments.php:75 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/comments.php:69 +#: tmp/old/wordpress/wp-includes/theme-compat/comments.php:66 +#: tmp/wordpress/wp-content/themes/twentyfifteen/comments.php:53 +#: tmp/wordpress/wp-content/themes/twentyseventeen/comments.php:75 +#: tmp/wordpress/wp-content/themes/twentysixteen/comments.php:69 +#: tmp/wordpress/wp-includes/theme-compat/comments.php:66 +msgid "Comments are closed." +msgstr "" + +#. translators: %s: Name of current post +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/content-link.php:31 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/content.php:33 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:238 +#: tmp/old/wordpress/wp-includes/embed.php:797 +#: tmp/old/wordpress/wp-includes/post-template.php:270 +#: tmp/wordpress/wp-content/themes/twentyfifteen/content-link.php:31 +#: tmp/wordpress/wp-content/themes/twentyfifteen/content.php:33 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:238 +#: tmp/wordpress/wp-includes/embed.php:797 +#: tmp/wordpress/wp-includes/post-template.php:270 +msgid "Continue reading %s" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/content-link.php:36 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/content-page.php:25 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/content.php:38 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/image.php:59 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-aside.php:53 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-audio.php:53 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-gallery.php:53 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-image.php:53 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-link.php:53 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-page.php:22 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-quote.php:53 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-video.php:53 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content.php:61 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/image.php:54 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/page/content-page.php:25 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-audio.php:85 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-gallery.php:71 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-image.php:61 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-video.php:83 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content.php:59 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/image.php:56 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/content-page.php:23 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/content-single.php:25 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/content.php:33 +#: tmp/old/wordpress/wp-includes/post-template.php:859 +#: tmp/wordpress/wp-content/themes/twentyfifteen/content-link.php:36 +#: tmp/wordpress/wp-content/themes/twentyfifteen/content-page.php:25 +#: tmp/wordpress/wp-content/themes/twentyfifteen/content.php:38 +#: tmp/wordpress/wp-content/themes/twentyfifteen/image.php:59 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/page/content-page.php:25 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-audio.php:85 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-gallery.php:71 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-image.php:61 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-video.php:83 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content.php:59 +#: tmp/wordpress/wp-content/themes/twentysixteen/image.php:56 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/content-page.php:23 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/content-single.php:25 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/content.php:33 +#: tmp/wordpress/wp-includes/post-template.php:859 +msgid "Pages:" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/content-none.php:15 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-none.php:12 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/search.php:21 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-none.php:17 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/content-none.php:13 +#: tmp/wordpress/wp-content/themes/twentyfifteen/content-none.php:15 +#: tmp/wordpress/wp-content/themes/twentyseventeen/search.php:21 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-none.php:17 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/content-none.php:13 +msgid "Nothing Found" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/content-none.php:22 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-none.php:18 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-none.php:23 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/content-none.php:19 +#: tmp/wordpress/wp-content/themes/twentyfifteen/content-none.php:22 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-none.php:23 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/content-none.php:19 +msgid "" +"Ready to publish your first post? Get started here." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/content-none.php:26 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-none.php:22 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/search.php:50 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/content-none.php:23 +#: tmp/wordpress/wp-content/themes/twentyfifteen/content-none.php:26 +#: tmp/wordpress/wp-content/themes/twentyseventeen/search.php:50 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/content-none.php:23 +msgid "" +"Sorry, but nothing matched your search terms. Please try again with some " +"different keywords." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/content-none.php:31 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-none.php:27 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-none.php:27 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/content-none.php:28 +#: tmp/wordpress/wp-content/themes/twentyfifteen/content-none.php:31 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-none.php:27 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/content-none.php:28 +msgid "" +"It seems we can’t find what you’re looking for. Perhaps " +"searching can help." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/footer.php:25 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/footer.php:21 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/footer/site-info.php:13 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/footer.php:51 +#: tmp/wordpress/wp-content/themes/twentyfifteen/footer.php:25 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/footer/site-info.php:13 +#: tmp/wordpress/wp-content/themes/twentysixteen/footer.php:51 +msgid "Proudly powered by %s" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/functions.php:85 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/header.php:52 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/functions.php:88 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/header.php:51 +#: tmp/wordpress/wp-content/themes/twentyfifteen/functions.php:85 +#: tmp/wordpress/wp-content/themes/twentysixteen/functions.php:88 +#: tmp/wordpress/wp-content/themes/twentysixteen/header.php:51 +msgid "Primary Menu" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/functions.php:86 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/functions.php:64 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/functions.php:194 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/functions.php:89 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/header.php:62 +#: tmp/wordpress/wp-content/themes/twentyfifteen/functions.php:86 +#: tmp/wordpress/wp-content/themes/twentyseventeen/functions.php:64 +#: tmp/wordpress/wp-content/themes/twentyseventeen/functions.php:194 +#: tmp/wordpress/wp-content/themes/twentysixteen/functions.php:89 +#: tmp/wordpress/wp-content/themes/twentysixteen/header.php:62 +msgid "Social Links Menu" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/functions.php:160 +#: tmp/wordpress/wp-content/themes/twentyfifteen/functions.php:160 +msgid "Widget Area" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/functions.php:162 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/functions.php:317 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/functions.php:158 +#: tmp/wordpress/wp-content/themes/twentyfifteen/functions.php:162 +#: tmp/wordpress/wp-content/themes/twentyseventeen/functions.php:317 +#: tmp/wordpress/wp-content/themes/twentysixteen/functions.php:158 +msgid "Add widgets here to appear in your sidebar." +msgstr "" + +#. Translators: If there are characters in your language that are not supported +#. by Noto Sans, translate this to 'off'. Do not translate into your own +#. language. +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/functions.php:188 +#: tmp/wordpress/wp-content/themes/twentyfifteen/functions.php:188 +msgctxt "Noto Sans font: on or off" +msgid "on" +msgstr "" + +#. Translators: If there are characters in your language that are not supported +#. by Noto Serif, translate this to 'off'. Do not translate into your own +#. language. +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/functions.php:196 +#: tmp/wordpress/wp-content/themes/twentyfifteen/functions.php:196 +msgctxt "Noto Serif font: on or off" +msgid "on" +msgstr "" + +#. Translators: If there are characters in your language that are not supported +#. by Inconsolata, translate this to 'off'. Do not translate into your own +#. language. +#. translators: If there are characters in your language that are not supported +#. by Inconsolata, translate this to 'off'. Do not translate into your own +#. language. +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/functions.php:204 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/functions.php:213 +#: tmp/wordpress/wp-content/themes/twentyfifteen/functions.php:204 +#: tmp/wordpress/wp-content/themes/twentysixteen/functions.php:213 +msgctxt "Inconsolata font: on or off" +msgid "on" +msgstr "" + +#. Translators: To add an additional character subset specific to your +#. language, translate this to 'greek', 'cyrillic', 'devanagari' or +#. 'vietnamese'. Do not translate into your own language. +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/functions.php:212 +#: tmp/wordpress/wp-content/themes/twentyfifteen/functions.php:212 +msgctxt "Add new subset (greek, cyrillic, devanagari, vietnamese)" +msgid "no-subset" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/functions.php:282 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/functions.php:284 +#: tmp/wordpress/wp-content/themes/twentyfifteen/functions.php:282 +#: tmp/wordpress/wp-content/themes/twentysixteen/functions.php:284 +msgid "expand child menu" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/functions.php:283 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/functions.php:285 +#: tmp/wordpress/wp-content/themes/twentyfifteen/functions.php:283 +#: tmp/wordpress/wp-content/themes/twentysixteen/functions.php:285 +msgid "collapse child menu" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/header.php:26 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/header.php:53 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/header.php:27 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/header.php:27 +#: tmp/wordpress/wp-content/themes/twentyfifteen/header.php:26 +#: tmp/wordpress/wp-content/themes/twentyseventeen/header.php:27 +#: tmp/wordpress/wp-content/themes/twentysixteen/header.php:27 +msgid "Skip to content" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/header.php:45 +#: tmp/wordpress/wp-content/themes/twentyfifteen/header.php:45 +msgid "Menu and widgets" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/image.php:24 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/image.php:65 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/image.php:24 +#: tmp/wordpress/wp-content/themes/twentyfifteen/image.php:24 +#: tmp/wordpress/wp-content/themes/twentysixteen/image.php:24 +msgid "Previous Image" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/image.php:24 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/image.php:66 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/image.php:25 +#: tmp/wordpress/wp-content/themes/twentyfifteen/image.php:24 +#: tmp/wordpress/wp-content/themes/twentysixteen/image.php:25 +msgid "Next Image" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/image.php:84 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/image.php:102 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/single.php:29 +#: tmp/wordpress/wp-content/themes/twentyfifteen/image.php:84 +#: tmp/wordpress/wp-content/themes/twentysixteen/image.php:102 +#: tmp/wordpress/wp-content/themes/twentysixteen/single.php:29 +msgctxt "Parent post link" +msgid "" +"Published in" +"%title" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/back-compat.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/back-compat.php:47 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/back-compat.php:60 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/back-compat.php:37 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/back-compat.php:47 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/back-compat.php:60 +msgid "" +"Twenty Fifteen requires at least WordPress version 4.1. You are running " +"version %s. Please upgrade and try again." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:44 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:130 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:44 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:130 +msgid "Base Color Scheme" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:59 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:59 +msgid "Header and Sidebar Text Color" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:60 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:76 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:81 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:60 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:76 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:81 +msgid "Applied to the header on small screens and the sidebar on wide screens." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:75 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:75 +msgid "Header and Sidebar Background Color" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:150 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:253 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3799 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-color-control.php:54 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-image-control.php:38 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-media-control.php:62 +#: tmp/old/wordpress/wp-includes/script-loader.php:719 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:150 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:253 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3799 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-color-control.php:54 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-image-control.php:38 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-media-control.php:62 +#: tmp/wordpress/wp-includes/script-loader.php:719 +msgid "Default" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:161 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:49 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:263 +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:788 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:161 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:49 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:263 +#: tmp/wordpress/wp-includes/class-wp-theme.php:788 +msgid "Dark" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:172 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:293 +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:788 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:172 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:293 +#: tmp/wordpress/wp-includes/class-wp-theme.php:788 +msgid "Yellow" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:183 +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:786 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:183 +#: tmp/wordpress/wp-includes/class-wp-theme.php:786 +msgid "Pink" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:194 +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:786 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:194 +#: tmp/wordpress/wp-includes/class-wp-theme.php:786 +msgid "Purple" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:205 +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:784 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php:205 +#: tmp/wordpress/wp-includes/class-wp-theme.php:784 +msgid "Blue" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:23 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/comments.php:34 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/comments.php:52 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:23 +msgid "Comment navigation" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:26 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:26 +msgid "Older Comments" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:30 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:30 +msgid "Newer Comments" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:49 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/content.php:14 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:49 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/content.php:14 +msgid "Featured" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:55 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:38 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:55 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:38 +msgctxt "Used before post format." +msgid "Format" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:76 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:79 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:76 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:79 +msgctxt "Used before publish date." +msgid "Posted on" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:85 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:25 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:85 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:25 +msgctxt "Used before post author name." +msgid "Author" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:91 +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:99 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-aside.php:17 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-audio.php:17 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-featured-post.php:28 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-gallery.php:17 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-image.php:17 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-link.php:17 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-quote.php:17 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-video.php:17 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content.php:19 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:95 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:103 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:91 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:99 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:95 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:103 +msgctxt "Used between list items, there is a space after the comma." +msgid ", " +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:94 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:98 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:94 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:98 +msgctxt "Used before category names." +msgid "Categories" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:102 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:106 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:102 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:106 +msgctxt "Used before tag names." +msgid "Tags" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:113 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/image.php:73 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:113 +#: tmp/wordpress/wp-content/themes/twentysixteen/image.php:73 +msgctxt "Used before full size attachment link." +msgid "Full size" +msgstr "" + +#. translators: %s: post title +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:123 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:50 +#: tmp/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php:123 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:50 +msgid "Leave a comment on %s" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/search.php:18 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/search.php:18 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/search.php:19 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/search.php:18 +#: tmp/wordpress/wp-content/themes/twentyfifteen/search.php:18 +#: tmp/wordpress/wp-content/themes/twentyseventeen/search.php:19 +#: tmp/wordpress/wp-content/themes/twentysixteen/search.php:18 +msgid "Search Results for: %s" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/single.php:33 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/functions.php:262 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/comments.php:67 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/single.php:32 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/single.php:34 +#: tmp/old/wordpress/wp-includes/script-loader.php:979 +#: tmp/old/wordpress/wp-signup.php:559 +#: tmp/wordpress/wp-content/themes/twentyfifteen/single.php:33 +#: tmp/wordpress/wp-content/themes/twentyseventeen/comments.php:67 +#: tmp/wordpress/wp-content/themes/twentyseventeen/single.php:32 +#: tmp/wordpress/wp-content/themes/twentysixteen/single.php:34 +#: tmp/wordpress/wp-includes/script-loader.php:979 +#: tmp/wordpress/wp-signup.php:559 +msgid "Next" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/single.php:34 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/single.php:35 +#: tmp/wordpress/wp-content/themes/twentyfifteen/single.php:34 +#: tmp/wordpress/wp-content/themes/twentysixteen/single.php:35 +msgid "Next post:" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/single.php:36 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/functions.php:261 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/comments.php:66 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/single.php:31 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/single.php:37 +#: tmp/old/wordpress/wp-includes/script-loader.php:980 +#: tmp/wordpress/wp-content/themes/twentyfifteen/single.php:36 +#: tmp/wordpress/wp-content/themes/twentyseventeen/comments.php:66 +#: tmp/wordpress/wp-content/themes/twentyseventeen/single.php:31 +#: tmp/wordpress/wp-content/themes/twentysixteen/single.php:37 +#: tmp/wordpress/wp-includes/script-loader.php:980 +msgid "Previous" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfifteen/single.php:37 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/single.php:38 +#: tmp/wordpress/wp-content/themes/twentyfifteen/single.php:37 +#: tmp/wordpress/wp-content/themes/twentysixteen/single.php:38 +msgid "Previous post:" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/404.php:17 +msgid "Not Found" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/archive.php:31 +msgid "Daily Archives: %s" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/archive.php:34 +msgid "Monthly Archives: %s" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/archive.php:34 +#: tmp/old/wordpress/wp-includes/general-template.php:1008 +#: tmp/old/wordpress/wp-includes/general-template.php:1477 +#: tmp/wordpress/wp-includes/general-template.php:1008 +#: tmp/wordpress/wp-includes/general-template.php:1477 +msgctxt "monthly archives date format" +msgid "F Y" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/archive.php:37 +msgid "Yearly Archives: %s" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/archive.php:37 +#: tmp/old/wordpress/wp-includes/general-template.php:1005 +#: tmp/old/wordpress/wp-includes/general-template.php:1474 +#: tmp/wordpress/wp-includes/general-template.php:1005 +#: tmp/wordpress/wp-includes/general-template.php:1474 +msgctxt "yearly archives date format" +msgid "Y" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/author.php:31 +msgid "All posts by %s" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/category.php:20 +msgid "Category Archives: %s" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/comments.php:27 +msgid "One thought on “%2$s”" +msgid_plural "%1$s thoughts on “%2$s”" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/comments.php:35 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/comments.php:53 +msgid "← Older Comments" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/comments.php:36 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/comments.php:54 +msgid "Newer Comments →" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-aside.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-audio.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-gallery.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-image.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-link.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-quote.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-video.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content.php:38 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:215 +msgid "Leave a comment" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-aside.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-audio.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-gallery.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-image.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-link.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-quote.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-video.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content.php:38 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:215 +#: tmp/old/wordpress/wp-includes/comment-template.php:922 +#: tmp/wordpress/wp-includes/comment-template.php:922 +msgid "1 Comment" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-aside.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-audio.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-gallery.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-image.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-link.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-quote.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-video.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content.php:38 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:215 +msgid "% Comments" +msgstr "" + +#. translators: %s: Name of current post +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-aside.php:48 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-audio.php:48 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-gallery.php:48 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-image.php:48 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-link.php:48 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-quote.php:48 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content-video.php:48 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/content.php:56 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/template-tags.php:222 +msgid "Continue reading %s " +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/functions.php:83 +msgid "Top primary menu" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/functions.php:84 +msgid "Secondary menu in left sidebar" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/functions.php:174 +msgid "Primary Sidebar" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/functions.php:176 +msgid "Main sidebar that appears on the left." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/functions.php:183 +msgid "Content Sidebar" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/functions.php:185 +msgid "Additional sidebar that appears on the right." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/functions.php:192 +msgid "Footer Widget Area" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/functions.php:194 +msgid "Appears in the footer section of the site." +msgstr "" + +#. Translators: If there are characters in your language that are not supported +#. by Lato, translate this to 'off'. Do not translate into your own language. +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/functions.php:216 +msgctxt "Lato font: on or off" +msgid "on" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/functions.php:379 +msgid "%d Article" +msgid_plural "%d Articles" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/functions.php:498 +#: tmp/old/wordpress/wp-includes/general-template.php:1016 +#: tmp/wordpress/wp-includes/general-template.php:1016 +msgid "Page %s" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/back-compat.php:37 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/back-compat.php:47 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/back-compat.php:60 +msgid "" +"Twenty Fourteen requires at least WordPress version 3.6. You are running " +"version %s. Please upgrade and try again." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php:37 +msgid "Site Title Color" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php:40 +msgid "Display Site Title & Tagline" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php:44 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php:45 +msgid "May only be visible on wide screens." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php:47 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php:48 +msgid "Background may only be visible on wide screens." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php:53 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/featured-content.php:403 +msgid "Featured Content" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php:54 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/featured-content.php:404 +msgid "" +"Use a tag to feature your posts. If no posts match the " +"tag, sticky posts will be displayed instead." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php:55 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php:145 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/featured-content.php:405 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/featured-content.php:414 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/featured-content.php:474 +msgctxt "featured content default tag slug" +msgid "featured" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php:73 +msgid "Grid" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php:74 +msgid "Slider" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php:142 +msgid "Twenty Fourteen" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php:145 +msgid "" +"The home page features your choice of up to 6 posts prominently displayed in " +"a grid or slider, controlled by a tag; you can change " +"the tag and layout in Appearance → Customize. If " +"no posts match the tag, sticky posts will be displayed " +"instead." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php:146 +msgid "" +"Enhance your site design by using Featured Images for " +"posts you’d like to stand out (also known as post thumbnails). This " +"allows you to associate an image with your post without inserting it. Twenty " +"Fourteen uses featured images for posts and pages—above the " +"title—and in the Featured Content area on the home page." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php:147 +msgid "" +"For an in-depth tutorial, and more tips and tricks, visit the Twenty Fourteen documentation." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/featured-content.php:426 +msgid "Tag Name" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/featured-content.php:431 +msgid "Don’t display tag on front end." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/template-tags.php:50 +msgid "← Previous" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/template-tags.php:51 +msgid "Next →" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/template-tags.php:58 +#: tmp/old/wordpress/wp-includes/link-template.php:2482 +#: tmp/old/wordpress/wp-includes/link-template.php:2536 +#: tmp/old/wordpress/wp-includes/link-template.php:2580 +#: tmp/wordpress/wp-includes/link-template.php:2482 +#: tmp/wordpress/wp-includes/link-template.php:2536 +#: tmp/wordpress/wp-includes/link-template.php:2580 +msgid "Posts navigation" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/template-tags.php:85 +#: tmp/old/wordpress/wp-includes/link-template.php:2414 +#: tmp/wordpress/wp-includes/link-template.php:2414 +msgid "Post navigation" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/template-tags.php:89 +msgid "Published In%title" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/template-tags.php:91 +msgid "Previous Post%title" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/template-tags.php:92 +msgid "Next Post%title" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:34 +msgid "Twenty Fourteen Ephemera" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:36 +msgid "" +"Use this widget to list your recent Aside, Quote, Video, Audio, Image, " +"Gallery, and Link posts." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:75 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/taxonomy-post_format.php:33 +#: tmp/old/wordpress/wp-includes/post.php:2287 +#: tmp/wordpress/wp-includes/post.php:2287 +msgid "Images" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:76 +msgid "More images" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:79 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/taxonomy-post_format.php:36 +msgid "Videos" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:80 +msgid "More videos" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:83 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/taxonomy-post_format.php:39 +#: tmp/old/wordpress/wp-includes/post.php:2288 +#: tmp/wordpress/wp-includes/post.php:2288 +msgid "Audio" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:84 +msgid "More audio" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:87 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/taxonomy-post_format.php:42 +msgid "Quotes" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:88 +msgid "More quotes" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:92 +msgid "More links" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:95 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/taxonomy-post_format.php:48 +msgid "Galleries" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:96 +msgid "More galleries" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:100 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/taxonomy-post_format.php:30 +msgid "Asides" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:101 +msgid "More asides" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:148 +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:193 +msgid "Continue reading " +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:183 +msgid "This gallery contains %2$s photo." +msgid_plural "" +"This gallery contains %2$s photos." +msgstr[0] "" +msgstr[1] "" + +#. translators: used with More archives link +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:227 +msgid "%s " +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:279 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-widget-recent-posts.php:135 +#: tmp/wordpress/wp-includes/widgets/class-wp-widget-recent-posts.php:135 +msgid "Number of posts to show:" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php:282 +msgid "Post format to show:" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyfourteen/tag.php:22 +msgid "Tag Archives: %s" +msgstr "" + +#. translators: %s: post title +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/comments.php:36 +#: tmp/wordpress/wp-content/themes/twentyseventeen/comments.php:36 +msgctxt "comments title" +msgid "One Reply to “%s”" +msgstr "" + +#. translators: 1: number of comments, 2: post title +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/comments.php:40 +#: tmp/wordpress/wp-content/themes/twentyseventeen/comments.php:40 +msgctxt "comments title" +msgid "%1$s Reply to “%2$s”" +msgid_plural "%1$s Replies to “%2$s”" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/footer.php:25 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/footer.php:28 +#: tmp/wordpress/wp-content/themes/twentyseventeen/footer.php:25 +#: tmp/wordpress/wp-content/themes/twentysixteen/footer.php:28 +msgid "Footer Social Links Menu" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/functions.php:63 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/functions.php:183 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/navigation/navigation-top.php:12 +#: tmp/wordpress/wp-content/themes/twentyseventeen/functions.php:63 +#: tmp/wordpress/wp-content/themes/twentyseventeen/functions.php:183 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/navigation/navigation-top.php:12 +msgid "Top Menu" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/functions.php:151 +#: tmp/wordpress/wp-content/themes/twentyseventeen/functions.php:151 +msgctxt "Theme starter content" +msgid "Espresso" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/functions.php:155 +#: tmp/wordpress/wp-content/themes/twentyseventeen/functions.php:155 +msgctxt "Theme starter content" +msgid "Sandwich" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/functions.php:159 +#: tmp/wordpress/wp-content/themes/twentyseventeen/functions.php:159 +msgctxt "Theme starter content" +msgid "Coffee" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/functions.php:269 +#: tmp/wordpress/wp-content/themes/twentyseventeen/functions.php:269 +msgctxt "Libre Franklin font: on or off" +msgid "on" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/functions.php:325 +#: tmp/wordpress/wp-content/themes/twentyseventeen/functions.php:325 +msgid "Footer 1" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/functions.php:327 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/functions.php:337 +#: tmp/wordpress/wp-content/themes/twentyseventeen/functions.php:327 +#: tmp/wordpress/wp-content/themes/twentyseventeen/functions.php:337 +msgid "Add widgets here to appear in your footer." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/functions.php:335 +#: tmp/wordpress/wp-content/themes/twentyseventeen/functions.php:335 +msgid "Footer 2" +msgstr "" + +#. translators: %s: Name of current post +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/functions.php:362 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/page/content-front-page-panels.php:43 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/page/content-front-page.php:44 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-audio.php:80 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-gallery.php:66 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-image.php:56 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-video.php:78 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content.php:54 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:184 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/content.php:28 +#: tmp/wordpress/wp-content/themes/twentyseventeen/functions.php:362 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/page/content-front-page-panels.php:43 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/page/content-front-page.php:44 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-audio.php:80 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-gallery.php:66 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-image.php:56 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content-video.php:78 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/post/content.php:54 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/template-tags.php:184 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/content.php:28 +msgid "Continue reading \"%s\"" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/functions.php:444 +#: tmp/wordpress/wp-content/themes/twentyseventeen/functions.php:444 +msgid "Expand child menu" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/functions.php:445 +#: tmp/wordpress/wp-content/themes/twentyseventeen/functions.php:445 +msgid "Collapse child menu" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/back-compat.php:39 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/back-compat.php:51 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/back-compat.php:66 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/back-compat.php:39 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/back-compat.php:51 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/back-compat.php:66 +msgid "" +"Twenty Seventeen requires at least WordPress version 4.7. You are running " +"version %s. Please upgrade and try again." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/custom-header.php:49 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/custom-header.php:49 +msgid "Default Header Image" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/custom-header.php:116 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/custom-header.php:116 +msgid "Play background video" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/custom-header.php:117 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/custom-header.php:117 +msgid "Pause background video" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:46 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:46 +msgid "Color Scheme" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:48 +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:788 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:48 +#: tmp/wordpress/wp-includes/class-wp-theme.php:788 +msgid "Light" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:50 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:50 +msgid "Custom" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:77 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:77 +msgid "Page Layout" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:80 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:80 +msgid "" +"When the two column layout is assigned, the page title is in one column and " +"content is in the other." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:83 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:130 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:83 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:130 +msgid "Two Column" +msgstr "" + +#. translators: %d is the front page section number +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:107 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:107 +msgid "Front Page Section %d Content" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:108 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/customizer.php:108 +msgid "" +"Select pages to feature in each area from the dropdowns. Add an image to a " +"section by setting a featured image in the page editor. Empty sections will " +"not be displayed." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/icon-functions.php:39 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/icon-functions.php:39 +msgid "Please define default parameters in the form of an array." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/icon-functions.php:44 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/icon-functions.php:44 +msgid "Please define an SVG icon filename." +msgstr "" + +#. translators: %s: post author +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/template-tags.php:21 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/template-tags.php:21 +msgid "by %s" +msgstr "" + +#. translators: %s: post date +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/template-tags.php:51 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/template-tags.php:51 +msgid "Posted on %s" +msgstr "" + +#. translators: %s: Name of current post +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/template-tags.php:117 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/image.php:84 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/content-page.php:37 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/content-search.php:28 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/content-search.php:43 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/content-single.php:45 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/template-parts/content.php:49 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/template-tags.php:117 +#: tmp/wordpress/wp-content/themes/twentysixteen/image.php:84 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/content-page.php:37 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/content-search.php:28 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/content-search.php:43 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/content-single.php:45 +#: tmp/wordpress/wp-content/themes/twentysixteen/template-parts/content.php:49 +msgid "Edit \"%s\"" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/inc/template-tags.php:154 +#: tmp/wordpress/wp-content/themes/twentyseventeen/inc/template-tags.php:154 +msgid "Front Page Section %1$s Placeholder" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/searchform.php:16 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/searchform.php:13 +#: tmp/old/wordpress/wp-includes/general-template.php:224 +#: tmp/old/wordpress/wp-includes/general-template.php:232 +#: tmp/wordpress/wp-content/themes/twentyseventeen/searchform.php:16 +#: tmp/wordpress/wp-content/themes/twentysixteen/searchform.php:13 +#: tmp/wordpress/wp-includes/general-template.php:224 +#: tmp/wordpress/wp-includes/general-template.php:232 +msgctxt "label" +msgid "Search for:" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/searchform.php:18 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/searchform.php:14 +#: tmp/old/wordpress/wp-includes/general-template.php:225 +#: tmp/wordpress/wp-content/themes/twentyseventeen/searchform.php:18 +#: tmp/wordpress/wp-content/themes/twentysixteen/searchform.php:14 +#: tmp/wordpress/wp-includes/general-template.php:225 +msgctxt "placeholder" +msgid "Search …" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/searchform.php:19 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/searchform.php:16 +#: tmp/old/wordpress/wp-includes/general-template.php:227 +#: tmp/old/wordpress/wp-includes/general-template.php:234 +#: tmp/wordpress/wp-content/themes/twentyseventeen/searchform.php:19 +#: tmp/wordpress/wp-content/themes/twentysixteen/searchform.php:16 +#: tmp/wordpress/wp-includes/general-template.php:227 +#: tmp/wordpress/wp-includes/general-template.php:234 +msgctxt "submit button" +msgid "Search" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/single.php:31 +#: tmp/old/wordpress/wp-includes/link-template.php:1779 +#: tmp/old/wordpress/wp-includes/link-template.php:2021 +#: tmp/wordpress/wp-content/themes/twentyseventeen/single.php:31 +#: tmp/wordpress/wp-includes/link-template.php:1779 +#: tmp/wordpress/wp-includes/link-template.php:2021 +msgid "Previous Post" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/single.php:32 +#: tmp/old/wordpress/wp-includes/link-template.php:1779 +#: tmp/old/wordpress/wp-includes/link-template.php:2021 +#: tmp/wordpress/wp-content/themes/twentyseventeen/single.php:32 +#: tmp/wordpress/wp-includes/link-template.php:1779 +#: tmp/wordpress/wp-includes/link-template.php:2021 +msgid "Next Post" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/header/site-branding.php:31 +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/navigation/navigation-top.php:20 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/header/site-branding.php:31 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/navigation/navigation-top.php:20 +msgid "Scroll down to content" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentyseventeen/template-parts/navigation/navigation-top.php:13 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/header.php:47 +#: tmp/old/wordpress/wp-includes/admin-bar.php:187 +#: tmp/wordpress/wp-content/themes/twentyseventeen/template-parts/navigation/navigation-top.php:13 +#: tmp/wordpress/wp-content/themes/twentysixteen/header.php:47 +#: tmp/wordpress/wp-includes/admin-bar.php:187 +msgid "Menu" +msgstr "" + +#. translators: %s: post title +#: tmp/old/wordpress/wp-content/themes/twentysixteen/comments.php:31 +#: tmp/wordpress/wp-content/themes/twentysixteen/comments.php:31 +msgctxt "comments title" +msgid "One thought on “%s”" +msgstr "" + +#. translators: 1: number of comments, 2: post title +#: tmp/old/wordpress/wp-content/themes/twentysixteen/comments.php:35 +#: tmp/wordpress/wp-content/themes/twentysixteen/comments.php:35 +msgctxt "comments title" +msgid "%1$s thought on “%2$s”" +msgid_plural "%1$s thoughts on “%2$s”" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-content/themes/twentysixteen/footer.php:17 +#: tmp/wordpress/wp-content/themes/twentysixteen/footer.php:17 +msgid "Footer Primary Menu" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentysixteen/functions.php:166 +#: tmp/wordpress/wp-content/themes/twentysixteen/functions.php:166 +msgid "Content Bottom 1" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentysixteen/functions.php:168 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/functions.php:178 +#: tmp/wordpress/wp-content/themes/twentysixteen/functions.php:168 +#: tmp/wordpress/wp-content/themes/twentysixteen/functions.php:178 +msgid "Appears at the bottom of the content on posts and pages." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentysixteen/functions.php:176 +#: tmp/wordpress/wp-content/themes/twentysixteen/functions.php:176 +msgid "Content Bottom 2" +msgstr "" + +#. translators: If there are characters in your language that are not supported +#. by Merriweather, translate this to 'off'. Do not translate into your own +#. language. +#: tmp/old/wordpress/wp-content/themes/twentysixteen/functions.php:203 +#: tmp/wordpress/wp-content/themes/twentysixteen/functions.php:203 +msgctxt "Merriweather font: on or off" +msgid "on" +msgstr "" + +#. translators: If there are characters in your language that are not supported +#. by Montserrat, translate this to 'off'. Do not translate into your own +#. language. +#: tmp/old/wordpress/wp-content/themes/twentysixteen/functions.php:208 +#: tmp/wordpress/wp-content/themes/twentysixteen/functions.php:208 +msgctxt "Montserrat font: on or off" +msgid "on" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/back-compat.php:41 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/back-compat.php:53 +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/back-compat.php:68 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/back-compat.php:41 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/back-compat.php:53 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/back-compat.php:68 +msgid "" +"Twenty Sixteen requires at least WordPress version 4.4. You are running " +"version %s. Please upgrade and try again." +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:145 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:145 +msgid "Page Background Color" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:160 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:160 +msgid "Link Color" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:172 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:172 +msgid "Main Text Color" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:184 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:184 +msgid "Secondary Text Color" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:273 +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:785 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:273 +#: tmp/wordpress/wp-includes/class-wp-theme.php:785 +msgid "Gray" +msgstr "" + +#: tmp/old/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:283 +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:786 +#: tmp/wordpress/wp-content/themes/twentysixteen/inc/customizer.php:283 +#: tmp/wordpress/wp-includes/class-wp-theme.php:786 +msgid "Red" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:120 +#: tmp/old/wordpress/wp-includes/admin-bar.php:138 +#: tmp/wordpress/wp-includes/admin-bar.php:120 +#: tmp/wordpress/wp-includes/admin-bar.php:138 +msgid "About WordPress" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:147 +#: tmp/wordpress/wp-includes/admin-bar.php:147 +msgid "WordPress.org" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:155 +#: tmp/wordpress/wp-includes/admin-bar.php:155 +msgid "Documentation" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:156 +#: tmp/wordpress/wp-includes/admin-bar.php:156 +msgid "https://codex.wordpress.org/" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:163 +#: tmp/wordpress/wp-includes/admin-bar.php:163 +msgid "Support Forums" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:171 +#: tmp/wordpress/wp-includes/admin-bar.php:171 +msgid "Feedback" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:172 +#: tmp/wordpress/wp-includes/admin-bar.php:172 +msgid "https://wordpress.org/support/forum/requests-and-feedback" +msgstr "" + +#. translators: %s: current user's display name +#: tmp/old/wordpress/wp-includes/admin-bar.php:217 +#: tmp/wordpress/wp-includes/admin-bar.php:217 +msgid "Howdy, %s" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:278 +#: tmp/wordpress/wp-includes/admin-bar.php:278 +msgid "Edit My Profile" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:286 +#: tmp/old/wordpress/wp-includes/class-wp-admin-bar.php:426 +#: tmp/wordpress/wp-includes/admin-bar.php:286 +#: tmp/wordpress/wp-includes/class-wp-admin-bar.php:426 +msgid "Log Out" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:336 +#: tmp/old/wordpress/wp-includes/admin-bar.php:541 +#: tmp/old/wordpress/wp-includes/deprecated.php:2790 +#: tmp/wordpress/wp-includes/admin-bar.php:336 +#: tmp/wordpress/wp-includes/admin-bar.php:541 +#: tmp/wordpress/wp-includes/deprecated.php:2790 +msgid "Visit Site" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:344 +#: tmp/wordpress/wp-includes/admin-bar.php:344 +msgid "Edit Site" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:442 +#: tmp/wordpress/wp-includes/admin-bar.php:442 +msgid "Network Admin" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:524 +#: tmp/old/wordpress/wp-includes/post.php:1375 +#: tmp/wordpress/wp-includes/admin-bar.php:524 +#: tmp/wordpress/wp-includes/post.php:1375 +msgid "New Post" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:533 +#: tmp/wordpress/wp-includes/admin-bar.php:533 +msgid "Manage Comments" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:567 +#: tmp/wordpress/wp-includes/admin-bar.php:567 +msgid "Shortlink" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:685 +#: tmp/wordpress/wp-includes/admin-bar.php:685 +msgctxt "add new from admin bar" +msgid "Link" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:705 +#: tmp/wordpress/wp-includes/admin-bar.php:705 +msgctxt "add new from admin bar" +msgid "User" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:710 +#: tmp/wordpress/wp-includes/admin-bar.php:710 +msgctxt "admin bar menu group label" +msgid "New" +msgstr "" + +#: tmp/old/wordpress/wp-includes/admin-bar.php:743 +#: tmp/wordpress/wp-includes/admin-bar.php:743 +msgid "%s comment awaiting moderation" +msgid_plural "%s comments awaiting moderation" +msgstr[0] "" +msgstr[1] "" + +#. translators: %s: get_the_author() +#. translators: %s: get_trackback_url() +#: tmp/old/wordpress/wp-includes/author-template.php:66 +#: tmp/old/wordpress/wp-includes/comment-template.php:1137 +#: tmp/wordpress/wp-includes/author-template.php:66 +#: tmp/wordpress/wp-includes/comment-template.php:1137 +msgid "Use %s instead if you do not want the value echoed." +msgstr "" + +#. translators: %s: author's display name +#: tmp/old/wordpress/wp-includes/author-template.php:194 +#: tmp/wordpress/wp-includes/author-template.php:194 +msgid "Visit %s’s website" +msgstr "" + +#. translators: %s: author's display name +#: tmp/old/wordpress/wp-includes/author-template.php:261 +#: tmp/old/wordpress/wp-includes/author-template.php:423 +#: tmp/wordpress/wp-includes/author-template.php:261 +#: tmp/wordpress/wp-includes/author-template.php:423 +msgid "Posts by %s" +msgstr "" + +#: tmp/old/wordpress/wp-includes/bookmark-template.php:83 +#: tmp/wordpress/wp-includes/bookmark-template.php:83 +msgid "Last updated: %s" +msgstr "" + +#: tmp/old/wordpress/wp-includes/bookmark-template.php:206 +#: tmp/wordpress/wp-includes/bookmark-template.php:206 +msgid "Bookmarks" +msgstr "" + +#. translators: 1: post type, 2: capability name +#: tmp/old/wordpress/wp-includes/capabilities.php:78 +#: tmp/old/wordpress/wp-includes/capabilities.php:139 +#: tmp/old/wordpress/wp-includes/capabilities.php:198 +#: tmp/old/wordpress/wp-includes/capabilities.php:235 +#: tmp/wordpress/wp-includes/capabilities.php:78 +#: tmp/wordpress/wp-includes/capabilities.php:139 +#: tmp/wordpress/wp-includes/capabilities.php:198 +#: tmp/wordpress/wp-includes/capabilities.php:235 +msgid "" +"The post type %1$s is not registered, so it may not be reliable to check the " +"capability \"%2$s\" against a post of that type." +msgstr "" + +#. translators: 1: "type => link", 2: "taxonomy => link_category" alternative +#: tmp/old/wordpress/wp-includes/category-template.php:352 +#: tmp/old/wordpress/wp-includes/category.php:46 +#: tmp/wordpress/wp-includes/category-template.php:352 +#: tmp/wordpress/wp-includes/category.php:46 +msgid "%1$s is deprecated. Use %2$s instead." +msgstr "" + +#: tmp/old/wordpress/wp-includes/category-template.php:524 +#: tmp/old/wordpress/wp-includes/taxonomy.php:511 +#: tmp/wordpress/wp-includes/category-template.php:524 +#: tmp/wordpress/wp-includes/taxonomy.php:511 +msgid "No categories" +msgstr "" + +#: tmp/old/wordpress/wp-includes/category-template.php:801 +#: tmp/old/wordpress/wp-includes/category-template.php:810 +#: tmp/wordpress/wp-includes/category-template.php:801 +#: tmp/wordpress/wp-includes/category-template.php:810 +msgid "%s topic" +msgid_plural "%s topics" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-includes/category-template.php:1107 +#: tmp/wordpress/wp-includes/category-template.php:1107 +msgid "Tags: " +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-http.php:268 +#: tmp/wordpress/wp-includes/class-http.php:268 +msgid "User has blocked requests through HTTP." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-http.php:281 +#: tmp/wordpress/wp-includes/class-http.php:281 +msgid "" +"Destination directory for file streaming does not exist or is not writable." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-http.php:534 +#: tmp/wordpress/wp-includes/class-http.php:534 +msgid "" +"There are no HTTP transports available which can complete the requested " +"request." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-http.php:965 +#: tmp/old/wordpress/wp-includes/class-wp-http-curl.php:232 +#: tmp/old/wordpress/wp-includes/class-wp-http-curl.php:271 +#: tmp/wordpress/wp-includes/class-http.php:965 +#: tmp/wordpress/wp-includes/class-wp-http-curl.php:232 +#: tmp/wordpress/wp-includes/class-wp-http-curl.php:271 +msgid "Too many redirects." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-pop3.php:92 +#: tmp/wordpress/wp-includes/class-pop3.php:92 +msgid "No server specified" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-pop3.php:100 +#: tmp/old/wordpress/wp-includes/class-pop3.php:112 +#: tmp/old/wordpress/wp-includes/class-pop3.php:133 +#: tmp/old/wordpress/wp-includes/class-pop3.php:256 +#: tmp/old/wordpress/wp-includes/class-pop3.php:310 +#: tmp/old/wordpress/wp-includes/class-pop3.php:321 +#: tmp/old/wordpress/wp-includes/class-pop3.php:369 +#: tmp/old/wordpress/wp-includes/class-pop3.php:403 +#: tmp/old/wordpress/wp-includes/class-pop3.php:436 +#: tmp/old/wordpress/wp-includes/class-pop3.php:535 +#: tmp/old/wordpress/wp-includes/class-pop3.php:558 +#: tmp/wordpress/wp-includes/class-pop3.php:100 +#: tmp/wordpress/wp-includes/class-pop3.php:112 +#: tmp/wordpress/wp-includes/class-pop3.php:133 +#: tmp/wordpress/wp-includes/class-pop3.php:256 +#: tmp/wordpress/wp-includes/class-pop3.php:310 +#: tmp/wordpress/wp-includes/class-pop3.php:321 +#: tmp/wordpress/wp-includes/class-pop3.php:369 +#: tmp/wordpress/wp-includes/class-pop3.php:403 +#: tmp/wordpress/wp-includes/class-pop3.php:436 +#: tmp/wordpress/wp-includes/class-pop3.php:535 +#: tmp/wordpress/wp-includes/class-pop3.php:558 +msgid "Error " +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-pop3.php:125 +#: tmp/wordpress/wp-includes/class-pop3.php:125 +msgid "no login ID submitted" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-pop3.php:128 +#: tmp/old/wordpress/wp-includes/class-pop3.php:148 +#: tmp/wordpress/wp-includes/class-pop3.php:128 +#: tmp/wordpress/wp-includes/class-pop3.php:148 +msgid "connection not established" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-pop3.php:145 +#: tmp/old/wordpress/wp-includes/class-pop3.php:181 +#: tmp/wordpress/wp-includes/class-pop3.php:145 +#: tmp/wordpress/wp-includes/class-pop3.php:181 +msgid "No password submitted" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-pop3.php:153 +#: tmp/wordpress/wp-includes/class-pop3.php:153 +msgid "Authentication failed" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-pop3.php:172 +#: tmp/old/wordpress/wp-includes/class-pop3.php:215 +#: tmp/old/wordpress/wp-includes/class-pop3.php:240 +#: tmp/old/wordpress/wp-includes/class-pop3.php:282 +#: tmp/old/wordpress/wp-includes/class-pop3.php:356 +#: tmp/old/wordpress/wp-includes/class-pop3.php:396 +#: tmp/old/wordpress/wp-includes/class-pop3.php:426 +#: tmp/old/wordpress/wp-includes/class-pop3.php:460 +#: tmp/old/wordpress/wp-includes/class-pop3.php:523 +#: tmp/old/wordpress/wp-includes/class-pop3.php:588 +#: tmp/wordpress/wp-includes/class-pop3.php:172 +#: tmp/wordpress/wp-includes/class-pop3.php:215 +#: tmp/wordpress/wp-includes/class-pop3.php:240 +#: tmp/wordpress/wp-includes/class-pop3.php:282 +#: tmp/wordpress/wp-includes/class-pop3.php:356 +#: tmp/wordpress/wp-includes/class-pop3.php:396 +#: tmp/wordpress/wp-includes/class-pop3.php:426 +#: tmp/wordpress/wp-includes/class-pop3.php:460 +#: tmp/wordpress/wp-includes/class-pop3.php:523 +#: tmp/wordpress/wp-includes/class-pop3.php:588 +msgid "No connection to server" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-pop3.php:178 +#: tmp/wordpress/wp-includes/class-pop3.php:178 +msgid "No login ID submitted" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-pop3.php:186 +#: tmp/wordpress/wp-includes/class-pop3.php:186 +msgid "No server banner" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-pop3.php:186 +#: tmp/old/wordpress/wp-includes/class-pop3.php:196 +#: tmp/wordpress/wp-includes/class-pop3.php:186 +#: tmp/wordpress/wp-includes/class-pop3.php:196 +msgid "abort" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-pop3.php:196 +#: tmp/wordpress/wp-includes/class-pop3.php:196 +msgid "apop authentication failed" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-pop3.php:333 +#: tmp/wordpress/wp-includes/class-pop3.php:333 +msgid "Premature end of list" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-pop3.php:466 +#: tmp/wordpress/wp-includes/class-pop3.php:466 +msgid "Empty command string" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-pop3.php:486 +#: tmp/wordpress/wp-includes/class-pop3.php:486 +msgid "connection does not exist" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-pop3.php:593 +#: tmp/wordpress/wp-includes/class-pop3.php:593 +msgid "No msg number submitted" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-pop3.php:599 +#: tmp/wordpress/wp-includes/class-pop3.php:599 +msgid "Command failed " +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-walker-category.php:137 +#: tmp/wordpress/wp-includes/class-walker-category.php:137 +msgid "Feed for all posts filed under %s" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-walker-comment.php:244 +#: tmp/wordpress/wp-includes/class-walker-comment.php:244 +msgid "Pingback:" +msgstr "" + +#. translators: %s: comment author link +#: tmp/old/wordpress/wp-includes/class-walker-comment.php:278 +#: tmp/old/wordpress/wp-includes/class-walker-comment.php:335 +#: tmp/wordpress/wp-includes/class-walker-comment.php:278 +#: tmp/wordpress/wp-includes/class-walker-comment.php:335 +msgid "%s says:" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-walker-comment.php:284 +#: tmp/old/wordpress/wp-includes/class-walker-comment.php:354 +#: tmp/wordpress/wp-includes/class-walker-comment.php:284 +#: tmp/wordpress/wp-includes/class-walker-comment.php:354 +msgid "Your comment is awaiting moderation." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-walker-comment.php:291 +#: tmp/wordpress/wp-includes/class-walker-comment.php:291 +msgid "(Edit)" +msgstr "" + +#. translators: %d: ID of a post +#: tmp/old/wordpress/wp-includes/class-walker-page-dropdown.php:74 +#: tmp/old/wordpress/wp-includes/class-walker-page.php:157 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:200 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:345 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php:292 +#: tmp/old/wordpress/wp-includes/nav-menu.php:731 +#: tmp/old/wordpress/wp-includes/nav-menu.php:809 +#: tmp/wordpress/wp-includes/class-walker-page-dropdown.php:74 +#: tmp/wordpress/wp-includes/class-walker-page.php:157 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:200 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:345 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php:292 +#: tmp/wordpress/wp-includes/nav-menu.php:731 +#: tmp/wordpress/wp-includes/nav-menu.php:809 +msgid "#%d (no title)" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-admin-bar.php:130 +#: tmp/wordpress/wp-includes/class-wp-admin-bar.php:130 +msgid "The menu ID should not be empty." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-control.php:596 +#: tmp/wordpress/wp-includes/class-wp-customize-control.php:596 +msgid "New page title" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-control.php:597 +#: tmp/wordpress/wp-includes/class-wp-customize-control.php:597 +msgid "New page title…" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:484 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:484 +msgid "Invalid changeset UUID" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:493 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:493 +msgid "Non-existent changeset UUID." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:1571 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:1571 +msgid "" +"Unauthorized. You may remove the customize_messenger_channel param to " +"preview as frontend." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:1790 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-selective-refresh.php:184 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:1790 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-selective-refresh.php:184 +msgid "Shift-click to edit this element." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:1791 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:1791 +msgid "This link is not live-previewable." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:1792 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:1792 +msgid "This form is not live-previewable." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:1999 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:1999 +msgid "Setting does not exist or is unrecognized." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:2004 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:2004 +msgid "Unauthorized to modify setting due to capability." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:2027 +#: tmp/old/wordpress/wp-includes/class-wp-customize-setting.php:549 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:2027 +#: tmp/wordpress/wp-includes/class-wp-customize-setting.php:549 +msgid "Invalid value." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:2356 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:2356 +msgid "There is %s invalid setting." +msgid_plural "There are %s invalid settings." +msgstr[0] "" +msgstr[1] "" + +#. translators: 1: panel id, 2: link to 'customize_loaded_components' filter +#. reference +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:2956 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:2956 +msgid "" +"Removing %1$s manually will cause PHP warnings. Use the %2$s filter instead." +msgstr "" + +#. translators: %s: document title from the preview +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3296 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3296 +msgid "Customize: %s" +msgstr "" + +#. translators: %s: document title from the preview +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3299 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3299 +msgid "Live Preview: %s" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3627 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3627 +msgid "Enter desktop preview mode" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3631 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3631 +msgid "Enter tablet preview mode" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3634 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3634 +msgid "Enter mobile preview mode" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3720 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3720 +msgid "Site Identity" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3755 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3832 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3755 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3832 +msgid "Display Site Title and Tagline" +msgstr "" + +#. translators: %s: site icon size in pixels +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3772 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3772 +msgid "" +"The Site Icon is used as a browser and app icon for your site. Icons must be " +"square, and at least %s pixels wide and tall." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3796 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3801 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3796 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3801 +msgid "Select logo" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3797 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3797 +msgid "Change logo" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3800 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3800 +msgid "No logo selected" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3802 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3802 +msgid "Choose logo" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3816 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3816 +msgid "Colors" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3839 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3839 +msgid "Header Text Color" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3861 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3861 +msgid "Header Media" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3862 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3862 +msgid "" +"If you add a video, the image will be used as a fallback while the video " +"loads." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3866 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3866 +msgid "" +"This theme doesn't support video headers on this page. Navigate to the front " +"page or another page that supports video headers." +msgstr "" + +#. translators: 1: .mp4, 2: header size in pixels +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3873 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3873 +msgid "" +"Upload your video in %1$s format and minimize its file size for best " +"results. Your theme recommends dimensions of %2$s pixels." +msgstr "" + +#. translators: 1: .mp4, 2: header width in pixels +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3880 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3880 +msgid "" +"Upload your video in %1$s format and minimize its file size for best " +"results. Your theme recommends a width of %2$s pixels." +msgstr "" + +#. translators: 1: .mp4, 2: header height in pixels +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3887 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3887 +msgid "" +"Upload your video in %1$s format and minimize its file size for best " +"results. Your theme recommends a height of %2$s pixels." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3940 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3940 +msgid "Header Video" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3946 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3949 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3946 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3949 +msgid "Select Video" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3947 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3947 +msgid "Change Video" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3948 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3948 +msgid "No video selected" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3950 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3950 +msgid "Choose Video" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:3958 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:3958 +msgid "Or, enter a YouTube URL:" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4000 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4000 +msgctxt "Background Preset" +msgid "Preset" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4004 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4004 +msgctxt "Default Preset" +msgid "Default" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4007 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4007 +msgctxt "Repeat Image" +msgid "Repeat" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4008 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4008 +msgctxt "Custom Preset" +msgid "Custom" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4044 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4044 +msgid "Original" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4092 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4092 +msgid "Your theme supports a static front page." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4108 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4108 +msgid "A static page" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4118 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4118 +msgid "Front page" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4130 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4130 +msgid "Posts page" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4138 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4138 +msgid "Additional CSS" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4142 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4142 +msgid "" +"CSS allows you to customize the appearance and layout of your site with " +"code. Separate CSS is saved for each of your themes. In the editing area the " +"Tab key enters a tab character. To move below this area by pressing Tab, " +"press the Esc key followed by the Tab key." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4143 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4143 +msgid "https://codex.wordpress.org/CSS" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4144 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4144 +msgid "Learn more about CSS" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4145 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4145 +msgid "(link opens in a new window)" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4151 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4151 +msgid "" +"You can add your own CSS here.\n" +"\n" +"Click the help icon above to learn more." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4236 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4236 +msgid "Invalid value for background repeat." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4240 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4240 +msgid "Invalid value for background attachment." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4244 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4244 +msgid "Invalid value for background position X." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4248 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4248 +msgid "Invalid value for background position Y." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4252 +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4256 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4252 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4256 +msgid "Invalid value for background size." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4261 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4261 +msgid "Unrecognized background setting." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4301 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4301 +msgid "" +"This video file is too large to use as a header video. Try a shorter video " +"or optimize the compression settings and re-upload a file that is less than " +"8MB. Or, upload your video to YouTube and link it with the option below." +msgstr "" + +#. translators: 1: .mp4, 2: .mov +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4307 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4307 +msgid "" +"Only %1$s or %2$s files may be used for header video. Please convert your " +"video file and try again, or, upload your video to YouTube and link it with " +"the option below." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-manager.php:4331 +#: tmp/wordpress/wp-includes/class-wp-customize-manager.php:4331 +msgid "Please enter a valid YouTube URL." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:161 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:414 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php:337 +#: tmp/old/wordpress/wp-includes/nav-menu.php:768 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:161 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:414 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php:337 +#: tmp/wordpress/wp-includes/nav-menu.php:768 +msgid "Custom Link" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:171 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php:335 +#: tmp/old/wordpress/wp-includes/nav-menu.php:746 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:171 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php:335 +#: tmp/wordpress/wp-includes/nav-menu.php:746 +msgid "Post Type Archive" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:412 +#: tmp/old/wordpress/wp-includes/script-loader.php:753 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:412 +#: tmp/wordpress/wp-includes/script-loader.php:753 +msgctxt "missing menu item navigation label" +msgid "(no label)" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:413 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-setting.php:447 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:413 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-setting.php:447 +msgctxt "Missing menu name." +msgid "(unnamed)" +msgstr "" + +#. translators: %s: menu location +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:417 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:417 +msgctxt "menu" +msgid "(Currently set to: %s)" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:419 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:419 +msgid "Menu item added" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:420 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:420 +msgid "Menu item deleted" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:421 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:421 +msgid "Menu created" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:422 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:422 +msgid "Menu deleted" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:423 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:423 +msgid "Menu item moved up" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:424 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:424 +msgid "Menu item moved down" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:425 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:425 +msgid "Menu item moved out of submenu" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:426 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:426 +msgid "Menu item is now a sub-item" +msgstr "" + +#. translators: ▸ is the unicode right-pointing triangle, and %s is the +#. section title in the Customizer +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:428 +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:958 +#: tmp/old/wordpress/wp-includes/class-wp-customize-section.php:246 +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:777 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:428 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:958 +#: tmp/wordpress/wp-includes/class-wp-customize-section.php:246 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:777 +msgid "Customizing ▸ %s" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:433 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:433 +msgid "Number of items found: %d" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:434 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:434 +msgid "Additional items found: %d" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:435 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:435 +msgid "Loading more results... please wait." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:436 +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:736 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:436 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:736 +msgid "Reorder mode enabled" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:437 +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:737 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:437 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:737 +msgid "Reorder mode closed" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:438 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:54 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:438 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:54 +msgid "Reorder menu items" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:439 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:439 +msgid "Close reorder mode" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:559 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:559 +msgid "" +"This panel is used for managing navigation menus for content you have " +"already published on your site. You can create menus and add items for " +"existing content such as pages, posts, categories, tags, formats, or custom " +"links." +msgstr "" + +#. translators: URL to the widgets panel of the customizer +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:562 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:562 +msgid "" +"Menus can be displayed in locations defined by your theme or in widget areas by adding a “Custom Menu” widget." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:564 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:564 +msgid "Menus can be displayed in locations defined by your theme." +msgstr "" + +#. translators: URL to the widgets panel of the customizer +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:585 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:585 +msgid "" +"You can also place menus in widget areas with the “" +"Custom Menu” widget." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:589 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:589 +msgid "Menu Locations" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:675 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:675 +msgid "Add a Menu" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:687 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:687 +msgid "New menu name" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:790 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:790 +msgid "Unknown post type" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:793 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:793 +msgid "Empty title" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:796 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:796 +msgid "Status is forbidden" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:878 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:878 +msgid "Post" +msgstr "" + +#. translators: %1$s is the post type name and %2$s is the error message. +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:883 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:883 +msgid "%1$s could not be created: %2$s" +msgstr "" + +#. translators: 1: Title of a menu item, 2: Type of a menu item +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:917 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:917 +msgid "Add to menu: %1$s (%2$s)" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:932 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:932 +msgid "Move one level up" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:933 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:933 +msgid "Move one level down" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:961 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:961 +msgid "Add Menu Items" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:966 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:966 +msgid "Search Menu Items" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:967 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:967 +msgid "Search menu items…" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:972 +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:786 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:972 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:786 +msgid "Clear Results" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:1018 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:1018 +msgid "No items" +msgstr "" + +#. translators: %s: Title of a section with menu items +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:1022 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:1022 +msgid "Toggle section: %s" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-nav-menus.php:1056 +#: tmp/wordpress/wp-includes/class-wp-customize-nav-menus.php:1056 +msgid "Toggle section: Custom Links" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-panel.php:347 +#: tmp/wordpress/wp-includes/class-wp-customize-panel.php:347 +msgid "Press return or enter to open this panel" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-section.php:248 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:55 +#: tmp/wordpress/wp-includes/class-wp-customize-section.php:248 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:55 +msgid "Customizing" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:422 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:422 +msgid "" +"Widgets are independent sections of content that can be placed into " +"widgetized areas provided by your theme (commonly called sidebars)." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:699 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:699 +msgid "Move to another area…" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:707 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:707 +msgid "Select an area to move this widget into:" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:708 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:708 +msgctxt "Move widget" +msgid "Move" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:729 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:729 +msgid "Save and preview changes before publishing them." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:731 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:731 +msgid "Trash widget by moving it to the inactive widgets sidebar." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:733 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:733 +msgid "Widget moved up" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:734 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:734 +msgid "Widget moved down" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:735 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:735 +msgid "" +"There are no widget areas on the page shown, however other pages in this " +"theme do have them." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:738 +#: tmp/old/wordpress/wp-includes/customize/class-wp-widget-area-customize-control.php:63 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:738 +#: tmp/wordpress/wp-includes/customize/class-wp-widget-area-customize-control.php:63 +msgid "Reorder widgets" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:739 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:739 +msgid "Number of widgets found: %d" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:740 +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:795 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:740 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:795 +msgid "No widgets found." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:779 +#: tmp/old/wordpress/wp-includes/customize/class-wp-widget-area-customize-control.php:61 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:779 +#: tmp/wordpress/wp-includes/customize/class-wp-widget-area-customize-control.php:61 +msgid "Add a Widget" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:783 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:783 +msgid "Search Widgets" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:784 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:784 +msgid "Search widgets…" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-customize-widgets.php:1127 +#: tmp/wordpress/wp-includes/class-wp-customize-widgets.php:1127 +msgid "Shift-click to edit this widget." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:180 +#: tmp/wordpress/wp-includes/class-wp-editor.php:180 +msgid "Visual" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:182 +#: tmp/wordpress/wp-includes/class-wp-editor.php:182 +msgctxt "Name for the Text editor tab (formerly HTML)" +msgid "Text" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:830 +#: tmp/wordpress/wp-includes/class-wp-editor.php:830 +msgid "New document" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:831 +#: tmp/wordpress/wp-includes/class-wp-editor.php:831 +msgctxt "TinyMCE" +msgid "Formats" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:833 +#: tmp/wordpress/wp-includes/class-wp-editor.php:833 +msgctxt "TinyMCE" +msgid "Headings" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:834 +#: tmp/wordpress/wp-includes/class-wp-editor.php:834 +msgid "Heading 1" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:835 +#: tmp/wordpress/wp-includes/class-wp-editor.php:835 +msgid "Heading 2" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:836 +#: tmp/wordpress/wp-includes/class-wp-editor.php:836 +msgid "Heading 3" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:837 +#: tmp/wordpress/wp-includes/class-wp-editor.php:837 +msgid "Heading 4" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:838 +#: tmp/wordpress/wp-includes/class-wp-editor.php:838 +msgid "Heading 5" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:839 +#: tmp/wordpress/wp-includes/class-wp-editor.php:839 +msgid "Heading 6" +msgstr "" + +#. translators: block tags +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:842 +#: tmp/wordpress/wp-includes/class-wp-editor.php:842 +msgctxt "TinyMCE" +msgid "Blocks" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:843 +#: tmp/wordpress/wp-includes/class-wp-editor.php:843 +msgid "Paragraph" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:844 +#: tmp/old/wordpress/wp-includes/script-loader.php:105 +#: tmp/wordpress/wp-includes/class-wp-editor.php:844 +#: tmp/wordpress/wp-includes/script-loader.php:105 +msgid "Blockquote" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:845 +#: tmp/wordpress/wp-includes/class-wp-editor.php:845 +msgctxt "HTML tag" +msgid "Div" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:846 +#: tmp/wordpress/wp-includes/class-wp-editor.php:846 +msgctxt "HTML tag" +msgid "Pre" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:847 +#: tmp/wordpress/wp-includes/class-wp-editor.php:847 +msgctxt "HTML tag" +msgid "Preformatted" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:848 +#: tmp/wordpress/wp-includes/class-wp-editor.php:848 +msgctxt "HTML tag" +msgid "Address" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:850 +#: tmp/wordpress/wp-includes/class-wp-editor.php:850 +msgctxt "HTML elements" +msgid "Inline" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:851 +#: tmp/wordpress/wp-includes/class-wp-editor.php:851 +msgid "Underline" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:852 +#: tmp/wordpress/wp-includes/class-wp-editor.php:852 +msgid "Strikethrough" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:853 +#: tmp/wordpress/wp-includes/class-wp-editor.php:853 +msgid "Subscript" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:854 +#: tmp/wordpress/wp-includes/class-wp-editor.php:854 +msgid "Superscript" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:855 +#: tmp/wordpress/wp-includes/class-wp-editor.php:855 +msgid "Clear formatting" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:856 +#: tmp/old/wordpress/wp-includes/script-loader.php:100 +#: tmp/wordpress/wp-includes/class-wp-editor.php:856 +#: tmp/wordpress/wp-includes/script-loader.php:100 +msgid "Bold" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:857 +#: tmp/old/wordpress/wp-includes/script-loader.php:102 +#: tmp/wordpress/wp-includes/class-wp-editor.php:857 +#: tmp/wordpress/wp-includes/script-loader.php:102 +msgid "Italic" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:858 +#: tmp/old/wordpress/wp-includes/script-loader.php:118 +#: tmp/wordpress/wp-includes/class-wp-editor.php:858 +#: tmp/wordpress/wp-includes/script-loader.php:118 +msgid "Code" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:859 +#: tmp/wordpress/wp-includes/class-wp-editor.php:859 +msgid "Source code" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:860 +#: tmp/wordpress/wp-includes/class-wp-editor.php:860 +msgid "Font Family" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:861 +#: tmp/wordpress/wp-includes/class-wp-editor.php:861 +msgid "Font Sizes" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:863 +#: tmp/wordpress/wp-includes/class-wp-editor.php:863 +msgid "Align center" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:864 +#: tmp/wordpress/wp-includes/class-wp-editor.php:864 +msgid "Align right" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:865 +#: tmp/wordpress/wp-includes/class-wp-editor.php:865 +msgid "Align left" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:866 +#: tmp/wordpress/wp-includes/class-wp-editor.php:866 +msgid "Justify" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:867 +#: tmp/wordpress/wp-includes/class-wp-editor.php:867 +msgid "Increase indent" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:868 +#: tmp/wordpress/wp-includes/class-wp-editor.php:868 +msgid "Decrease indent" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:870 +#: tmp/wordpress/wp-includes/class-wp-editor.php:870 +msgid "Cut" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:871 +#: tmp/wordpress/wp-includes/class-wp-editor.php:871 +msgid "Copy" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:872 +#: tmp/wordpress/wp-includes/class-wp-editor.php:872 +msgid "Paste" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:873 +#: tmp/wordpress/wp-includes/class-wp-editor.php:873 +msgid "Select all" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:880 +#: tmp/wordpress/wp-includes/class-wp-editor.php:880 +msgid "Visual aids" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:882 +#: tmp/old/wordpress/wp-includes/script-loader.php:112 +#: tmp/wordpress/wp-includes/class-wp-editor.php:882 +#: tmp/wordpress/wp-includes/script-loader.php:112 +msgid "Bulleted list" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:883 +#: tmp/old/wordpress/wp-includes/script-loader.php:114 +#: tmp/wordpress/wp-includes/class-wp-editor.php:883 +#: tmp/wordpress/wp-includes/script-loader.php:114 +msgid "Numbered list" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:884 +#: tmp/wordpress/wp-includes/class-wp-editor.php:884 +msgctxt "list style" +msgid "Square" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:885 +#: tmp/wordpress/wp-includes/class-wp-editor.php:885 +msgctxt "list style" +msgid "Default" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:886 +#: tmp/wordpress/wp-includes/class-wp-editor.php:886 +msgctxt "list style" +msgid "Circle" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:887 +#: tmp/wordpress/wp-includes/class-wp-editor.php:887 +msgctxt "list style" +msgid "Disc" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:888 +#: tmp/wordpress/wp-includes/class-wp-editor.php:888 +msgctxt "list style" +msgid "Lower Greek" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:889 +#: tmp/wordpress/wp-includes/class-wp-editor.php:889 +msgctxt "list style" +msgid "Lower Alpha" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:890 +#: tmp/wordpress/wp-includes/class-wp-editor.php:890 +msgctxt "list style" +msgid "Upper Alpha" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:891 +#: tmp/wordpress/wp-includes/class-wp-editor.php:891 +msgctxt "list style" +msgid "Upper Roman" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:892 +#: tmp/wordpress/wp-includes/class-wp-editor.php:892 +msgctxt "list style" +msgid "Lower Roman" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:895 +#: tmp/wordpress/wp-includes/class-wp-editor.php:895 +msgctxt "Name of link anchor (TinyMCE)" +msgid "Name" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:896 +#: tmp/wordpress/wp-includes/class-wp-editor.php:896 +msgctxt "Link anchor (TinyMCE)" +msgid "Anchor" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:897 +#: tmp/wordpress/wp-includes/class-wp-editor.php:897 +msgctxt "Link anchors (TinyMCE)" +msgid "Anchors" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:900 +#: tmp/wordpress/wp-includes/class-wp-editor.php:900 +msgid "Document properties" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:901 +#: tmp/wordpress/wp-includes/class-wp-editor.php:901 +msgid "Robots" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:903 +#: tmp/wordpress/wp-includes/class-wp-editor.php:903 +msgid "Keywords" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:904 +#: tmp/wordpress/wp-includes/class-wp-editor.php:904 +msgid "Encoding" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:909 +#: tmp/wordpress/wp-includes/class-wp-editor.php:909 +msgid "Insert/edit image" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:910 +#: tmp/wordpress/wp-includes/class-wp-editor.php:910 +msgid "General" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:912 +#: tmp/wordpress/wp-includes/class-wp-editor.php:912 +msgid "Source" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:913 +#: tmp/wordpress/wp-includes/class-wp-editor.php:913 +msgid "Border" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:914 +#: tmp/wordpress/wp-includes/class-wp-editor.php:914 +msgid "Constrain proportions" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:915 +#: tmp/wordpress/wp-includes/class-wp-editor.php:915 +msgid "Vertical space" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:916 +#: tmp/wordpress/wp-includes/class-wp-editor.php:916 +msgid "Image description" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:917 +#: tmp/wordpress/wp-includes/class-wp-editor.php:917 +msgid "Style" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:918 +#: tmp/wordpress/wp-includes/class-wp-editor.php:918 +msgid "Dimensions" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:919 +#: tmp/old/wordpress/wp-includes/script-loader.php:111 +#: tmp/wordpress/wp-includes/class-wp-editor.php:919 +#: tmp/wordpress/wp-includes/script-loader.php:111 +msgid "Insert image" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:920 +#: tmp/wordpress/wp-includes/class-wp-editor.php:920 +msgid "Insert date/time" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:921 +#: tmp/wordpress/wp-includes/class-wp-editor.php:921 +msgid "Insert/edit video" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:922 +#: tmp/wordpress/wp-includes/class-wp-editor.php:922 +msgid "Poster" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:923 +#: tmp/wordpress/wp-includes/class-wp-editor.php:923 +msgid "Alternative source" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:924 +#: tmp/wordpress/wp-includes/class-wp-editor.php:924 +msgid "Paste your embed code below:" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:925 +#: tmp/wordpress/wp-includes/class-wp-editor.php:925 +msgid "Insert video" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:926 +#: tmp/wordpress/wp-includes/class-wp-editor.php:926 +msgid "Embed" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:929 +#: tmp/wordpress/wp-includes/class-wp-editor.php:929 +msgid "Special character" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:930 +#: tmp/wordpress/wp-includes/class-wp-editor.php:930 +msgctxt "editor button" +msgid "Right to left" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:931 +#: tmp/wordpress/wp-includes/class-wp-editor.php:931 +msgctxt "editor button" +msgid "Left to right" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:932 +#: tmp/wordpress/wp-includes/class-wp-editor.php:932 +msgid "Emoticons" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:933 +#: tmp/wordpress/wp-includes/class-wp-editor.php:933 +msgid "Nonbreaking space" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:934 +#: tmp/wordpress/wp-includes/class-wp-editor.php:934 +msgid "Page break" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:935 +#: tmp/wordpress/wp-includes/class-wp-editor.php:935 +msgid "Paste as text" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:937 +#: tmp/wordpress/wp-includes/class-wp-editor.php:937 +msgid "Print" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:939 +#: tmp/old/wordpress/wp-includes/script-loader.php:352 +#: tmp/wordpress/wp-includes/class-wp-editor.php:939 +#: tmp/wordpress/wp-includes/script-loader.php:352 +msgid "Fullscreen" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:940 +#: tmp/wordpress/wp-includes/class-wp-editor.php:940 +msgid "Horizontal line" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:941 +#: tmp/wordpress/wp-includes/class-wp-editor.php:941 +msgid "Horizontal space" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:942 +#: tmp/wordpress/wp-includes/class-wp-editor.php:942 +msgid "Restore last draft" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:943 +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1444 +#: tmp/old/wordpress/wp-includes/script-loader.php:428 +#: tmp/wordpress/wp-includes/class-wp-editor.php:943 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1444 +#: tmp/wordpress/wp-includes/script-loader.php:428 +msgid "Insert/edit link" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:944 +#: tmp/wordpress/wp-includes/class-wp-editor.php:944 +msgid "Remove link" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:946 +#: tmp/wordpress/wp-includes/class-wp-editor.php:946 +msgid "Color" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:947 +#: tmp/wordpress/wp-includes/class-wp-editor.php:947 +msgid "Custom color" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:948 +#: tmp/wordpress/wp-includes/class-wp-editor.php:948 +msgctxt "label for custom color" +msgid "Custom..." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:949 +#: tmp/wordpress/wp-includes/class-wp-editor.php:949 +msgid "No color" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:952 +#: tmp/wordpress/wp-includes/class-wp-editor.php:952 +msgid "Could not find the specified string." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:953 +#: tmp/wordpress/wp-includes/class-wp-editor.php:953 +msgctxt "find/replace" +msgid "Replace" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:954 +#: tmp/wordpress/wp-includes/class-wp-editor.php:954 +msgctxt "find/replace" +msgid "Next" +msgstr "" + +#. translators: previous +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:956 +#: tmp/wordpress/wp-includes/class-wp-editor.php:956 +msgctxt "find/replace" +msgid "Prev" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:957 +#: tmp/wordpress/wp-includes/class-wp-editor.php:957 +msgctxt "find/replace" +msgid "Whole words" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:958 +#: tmp/wordpress/wp-includes/class-wp-editor.php:958 +msgid "Find and replace" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:959 +#: tmp/wordpress/wp-includes/class-wp-editor.php:959 +msgctxt "find/replace" +msgid "Replace with" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:960 +#: tmp/wordpress/wp-includes/class-wp-editor.php:960 +msgctxt "find/replace" +msgid "Find" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:961 +#: tmp/wordpress/wp-includes/class-wp-editor.php:961 +msgctxt "find/replace" +msgid "Replace all" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:962 +#: tmp/wordpress/wp-includes/class-wp-editor.php:962 +msgid "Match case" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:963 +#: tmp/wordpress/wp-includes/class-wp-editor.php:963 +msgid "Check Spelling" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:964 +#: tmp/wordpress/wp-includes/class-wp-editor.php:964 +msgctxt "spellcheck" +msgid "Finish" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:965 +#: tmp/wordpress/wp-includes/class-wp-editor.php:965 +msgctxt "spellcheck" +msgid "Ignore all" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:966 +#: tmp/wordpress/wp-includes/class-wp-editor.php:966 +msgctxt "spellcheck" +msgid "Ignore" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:967 +#: tmp/wordpress/wp-includes/class-wp-editor.php:967 +msgid "Add to Dictionary" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:970 +#: tmp/wordpress/wp-includes/class-wp-editor.php:970 +msgid "Insert table" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:971 +#: tmp/wordpress/wp-includes/class-wp-editor.php:971 +msgid "Delete table" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:972 +#: tmp/wordpress/wp-includes/class-wp-editor.php:972 +msgid "Table properties" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:973 +#: tmp/wordpress/wp-includes/class-wp-editor.php:973 +msgid "Table row properties" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:974 +#: tmp/wordpress/wp-includes/class-wp-editor.php:974 +msgid "Table cell properties" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:975 +#: tmp/wordpress/wp-includes/class-wp-editor.php:975 +msgid "Border color" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:977 +#: tmp/wordpress/wp-includes/class-wp-editor.php:977 +msgid "Row" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:978 +#: tmp/wordpress/wp-includes/class-wp-editor.php:978 +msgid "Rows" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:979 +#: tmp/wordpress/wp-includes/class-wp-editor.php:979 +msgctxt "table column" +msgid "Column" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:980 +#: tmp/wordpress/wp-includes/class-wp-editor.php:980 +msgctxt "table columns" +msgid "Cols" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:981 +#: tmp/wordpress/wp-includes/class-wp-editor.php:981 +msgctxt "table cell" +msgid "Cell" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:982 +#: tmp/wordpress/wp-includes/class-wp-editor.php:982 +msgid "Header cell" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:983 +#: tmp/wordpress/wp-includes/class-wp-editor.php:983 +msgctxt "table header" +msgid "Header" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:984 +#: tmp/wordpress/wp-includes/class-wp-editor.php:984 +msgctxt "table body" +msgid "Body" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:985 +#: tmp/wordpress/wp-includes/class-wp-editor.php:985 +msgctxt "table footer" +msgid "Footer" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:987 +#: tmp/wordpress/wp-includes/class-wp-editor.php:987 +msgid "Insert row before" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:988 +#: tmp/wordpress/wp-includes/class-wp-editor.php:988 +msgid "Insert row after" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:989 +#: tmp/wordpress/wp-includes/class-wp-editor.php:989 +msgid "Insert column before" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:990 +#: tmp/wordpress/wp-includes/class-wp-editor.php:990 +msgid "Insert column after" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:991 +#: tmp/wordpress/wp-includes/class-wp-editor.php:991 +msgid "Paste table row before" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:992 +#: tmp/wordpress/wp-includes/class-wp-editor.php:992 +msgid "Paste table row after" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:993 +#: tmp/wordpress/wp-includes/class-wp-editor.php:993 +msgid "Delete row" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:994 +#: tmp/wordpress/wp-includes/class-wp-editor.php:994 +msgid "Delete column" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:995 +#: tmp/wordpress/wp-includes/class-wp-editor.php:995 +msgid "Cut table row" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:996 +#: tmp/wordpress/wp-includes/class-wp-editor.php:996 +msgid "Copy table row" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:997 +#: tmp/wordpress/wp-includes/class-wp-editor.php:997 +msgid "Merge table cells" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:998 +#: tmp/wordpress/wp-includes/class-wp-editor.php:998 +msgid "Split table cell" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1004 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1004 +msgctxt "horizontal table cell alignment" +msgid "H Align" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1008 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1008 +msgctxt "table cell alignment attribute" +msgid "None" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1009 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1009 +msgctxt "vertical table cell alignment" +msgid "V Align" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1011 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1011 +msgid "Middle" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1014 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1014 +msgid "Row group" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1015 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1015 +msgid "Column group" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1016 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1016 +msgid "Row type" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1017 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1017 +msgid "Cell type" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1018 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1018 +msgid "Cell padding" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1019 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1019 +msgid "Cell spacing" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1020 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1020 +msgctxt "table cell scope attribute" +msgid "Scope" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1022 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1022 +msgctxt "TinyMCE" +msgid "Insert template" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1023 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1023 +msgctxt "TinyMCE" +msgid "Templates" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1025 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1025 +msgid "Background color" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1026 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1026 +msgid "Text color" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1027 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1027 +msgctxt "editor button" +msgid "Show blocks" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1028 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1028 +msgid "Show invisible characters" +msgstr "" + +#. translators: word count +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1031 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1031 +msgid "Words: %s" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1032 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1032 +msgid "" +"Paste is now in plain text mode. Contents will now be pasted as plain text " +"until you toggle this option off." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1032 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1032 +msgid "" +"If you’re looking to paste rich content from Microsoft Word, try " +"turning this option off. The editor will clean up text pasted from Word " +"automatically." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1033 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1033 +msgid "Rich Text Area. Press Alt-Shift-H for help." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1034 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1034 +msgid "Rich Text Area. Press Control-Option-H for help." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1035 +#: tmp/old/wordpress/wp-includes/script-loader.php:463 +#: tmp/old/wordpress/wp-includes/script-loader.php:574 +#: tmp/old/wordpress/wp-includes/script-loader.php:583 +#: tmp/old/wordpress/wp-includes/script-loader.php:752 +#: tmp/old/wordpress/wp-includes/theme.php:2969 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1035 +#: tmp/wordpress/wp-includes/script-loader.php:463 +#: tmp/wordpress/wp-includes/script-loader.php:574 +#: tmp/wordpress/wp-includes/script-loader.php:583 +#: tmp/wordpress/wp-includes/script-loader.php:752 +#: tmp/wordpress/wp-includes/theme.php:2969 +msgid "The changes you made will be lost if you navigate away from this page." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1036 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1036 +msgid "" +"Your browser does not support direct access to the clipboard. Please use " +"keyboard shortcuts or your browser’s edit menu instead." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1039 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1039 +msgctxt "TinyMCE menu" +msgid "Insert" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1040 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1040 +msgctxt "TinyMCE menu" +msgid "File" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1041 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1041 +msgctxt "TinyMCE menu" +msgid "Edit" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1042 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1042 +msgctxt "TinyMCE menu" +msgid "Tools" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1043 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1043 +msgctxt "TinyMCE menu" +msgid "View" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1044 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1044 +msgctxt "TinyMCE menu" +msgid "Table" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1045 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1045 +msgctxt "TinyMCE menu" +msgid "Format" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1048 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1048 +msgid "Toolbar Toggle" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1049 +#: tmp/old/wordpress/wp-includes/script-loader.php:120 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1049 +#: tmp/wordpress/wp-includes/script-loader.php:120 +msgid "Insert Read More tag" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1050 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1050 +msgid "Insert Page Break tag" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1051 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1051 +msgid "Read more..." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1052 +#: tmp/old/wordpress/wp-includes/script-loader.php:99 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1052 +#: tmp/wordpress/wp-includes/script-loader.php:99 +msgid "Distraction-free writing mode" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1053 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1053 +msgid "No alignment" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1056 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1056 +msgid "Paste URL or type to search" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1058 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1058 +msgid "Link options" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1062 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1062 +msgid "Default shortcuts," +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1063 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1063 +msgid "Additional shortcuts," +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1064 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1064 +msgid "Focus shortcuts:" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1065 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1065 +msgid "Inline toolbar (when an image, link or preview is selected)" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1066 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1066 +msgid "Editor menu (when enabled)" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1067 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1067 +msgid "Editor toolbar" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1068 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1068 +msgid "Elements path" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1069 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1069 +msgid "Ctrl + Alt + letter:" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1070 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1070 +msgid "Shift + Alt + letter:" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1071 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1071 +msgid "Cmd + letter:" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1072 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1072 +msgid "Ctrl + letter:" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1073 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1073 +msgid "Letter" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1074 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1074 +msgid "Action" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1075 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1075 +msgid "" +"Warning: the link has been inserted but may have errors. Please test it." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1077 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1077 +msgid "" +"To move focus to other buttons use Tab or the arrow keys. To return focus to " +"the editor press Escape or use one of the buttons." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1079 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1079 +msgid "" +"When starting a new paragraph with one of these formatting shortcuts " +"followed by a space, the formatting will be applied automatically. Press " +"Backspace or Escape to undo." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1081 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1081 +msgid "" +"The following formatting shortcuts are replaced when pressing Enter. Press " +"Escape or the Undo button to undo." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1083 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1083 +msgid "" +"The next group of formatting shortcuts are applied as you type or when you " +"insert them around plain text in the same paragraph. Press Escape or the " +"Undo button to undo." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1448 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1448 +msgid "Enter the destination URL" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1462 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1462 +msgid "Or link to existing content" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1479 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1479 +msgid "No search term specified. Showing recent items." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-editor.php:1480 +#: tmp/wordpress/wp-includes/class-wp-editor.php:1480 +msgid "Search or use up and down arrow keys to select an item." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-http-curl.php:189 +#: tmp/old/wordpress/wp-includes/class-wp-http-streams.php:228 +#: tmp/wordpress/wp-includes/class-wp-http-curl.php:189 +#: tmp/wordpress/wp-includes/class-wp-http-streams.php:228 +msgid "Could not open handle for fopen() to %s" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-http-curl.php:257 +#: tmp/old/wordpress/wp-includes/class-wp-http-streams.php:256 +#: tmp/wordpress/wp-includes/class-wp-http-curl.php:257 +#: tmp/wordpress/wp-includes/class-wp-http-streams.php:256 +msgid "Failed to write request to temporary file." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-http-streams.php:156 +#: tmp/old/wordpress/wp-includes/class-wp-http-streams.php:164 +#: tmp/wordpress/wp-includes/class-wp-http-streams.php:156 +#: tmp/wordpress/wp-includes/class-wp-http-streams.php:164 +msgid "The SSL certificate for the host could not be verified." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-gd.php:97 +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-imagick.php:139 +#: tmp/wordpress/wp-includes/class-wp-image-editor-gd.php:97 +#: tmp/wordpress/wp-includes/class-wp-image-editor-imagick.php:139 +msgid "File doesn’t exist?" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-gd.php:105 +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-imagick.php:161 +#: tmp/wordpress/wp-includes/class-wp-image-editor-gd.php:105 +#: tmp/wordpress/wp-includes/class-wp-image-editor-imagick.php:161 +msgid "File is not an image." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-gd.php:109 +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-imagick.php:232 +#: tmp/wordpress/wp-includes/class-wp-image-editor-gd.php:109 +#: tmp/wordpress/wp-includes/class-wp-image-editor-imagick.php:232 +msgid "Could not read image size." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-gd.php:172 +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-gd.php:197 +#: tmp/wordpress/wp-includes/class-wp-image-editor-gd.php:172 +#: tmp/wordpress/wp-includes/class-wp-image-editor-gd.php:197 +msgid "Image resize failed." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-gd.php:185 +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-imagick.php:266 +#: tmp/wordpress/wp-includes/class-wp-image-editor-gd.php:185 +#: tmp/wordpress/wp-includes/class-wp-image-editor-imagick.php:266 +msgid "Could not calculate resized image dimensions" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-gd.php:305 +#: tmp/wordpress/wp-includes/class-wp-image-editor-gd.php:305 +msgid "Image crop failed." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-gd.php:332 +#: tmp/wordpress/wp-includes/class-wp-image-editor-gd.php:332 +msgid "Image rotate failed." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-gd.php:362 +#: tmp/wordpress/wp-includes/class-wp-image-editor-gd.php:362 +msgid "Image flip failed." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-gd.php:400 +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-gd.php:408 +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-gd.php:412 +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-gd.php:415 +#: tmp/wordpress/wp-includes/class-wp-image-editor-gd.php:400 +#: tmp/wordpress/wp-includes/class-wp-image-editor-gd.php:408 +#: tmp/wordpress/wp-includes/class-wp-image-editor-gd.php:412 +#: tmp/wordpress/wp-includes/class-wp-image-editor-gd.php:415 +msgid "Image Editor Save Failed" +msgstr "" + +#. translators: %s: ImageMagick method name +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-imagick.php:706 +#: tmp/old/wordpress/wp-includes/class-wp-image-editor-imagick.php:711 +#: tmp/wordpress/wp-includes/class-wp-image-editor-imagick.php:706 +#: tmp/wordpress/wp-includes/class-wp-image-editor-imagick.php:711 +msgid "%s is required to strip image meta." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-image-editor.php:288 +#: tmp/wordpress/wp-includes/class-wp-image-editor.php:288 +msgid "Attempted to set image quality outside of the range [1,100]." +msgstr "" + +#. translators: weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:131 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:140 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:149 +#: tmp/wordpress/wp-includes/class-wp-locale.php:131 +#: tmp/wordpress/wp-includes/class-wp-locale.php:140 +#: tmp/wordpress/wp-includes/class-wp-locale.php:149 +msgid "Sunday" +msgstr "" + +#. translators: weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:132 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:141 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:150 +#: tmp/wordpress/wp-includes/class-wp-locale.php:132 +#: tmp/wordpress/wp-includes/class-wp-locale.php:141 +#: tmp/wordpress/wp-includes/class-wp-locale.php:150 +msgid "Monday" +msgstr "" + +#. translators: weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:133 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:142 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:151 +#: tmp/wordpress/wp-includes/class-wp-locale.php:133 +#: tmp/wordpress/wp-includes/class-wp-locale.php:142 +#: tmp/wordpress/wp-includes/class-wp-locale.php:151 +msgid "Tuesday" +msgstr "" + +#. translators: weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:134 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:143 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:152 +#: tmp/wordpress/wp-includes/class-wp-locale.php:134 +#: tmp/wordpress/wp-includes/class-wp-locale.php:143 +#: tmp/wordpress/wp-includes/class-wp-locale.php:152 +msgid "Wednesday" +msgstr "" + +#. translators: weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:135 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:144 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:153 +#: tmp/wordpress/wp-includes/class-wp-locale.php:135 +#: tmp/wordpress/wp-includes/class-wp-locale.php:144 +#: tmp/wordpress/wp-includes/class-wp-locale.php:153 +msgid "Thursday" +msgstr "" + +#. translators: weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:136 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:145 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:154 +#: tmp/wordpress/wp-includes/class-wp-locale.php:136 +#: tmp/wordpress/wp-includes/class-wp-locale.php:145 +#: tmp/wordpress/wp-includes/class-wp-locale.php:154 +msgid "Friday" +msgstr "" + +#. translators: weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:137 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:146 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:155 +#: tmp/wordpress/wp-includes/class-wp-locale.php:137 +#: tmp/wordpress/wp-includes/class-wp-locale.php:146 +#: tmp/wordpress/wp-includes/class-wp-locale.php:155 +msgid "Saturday" +msgstr "" + +#. translators: one-letter abbreviation of the weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:140 +#: tmp/wordpress/wp-includes/class-wp-locale.php:140 +msgctxt "Sunday initial" +msgid "S" +msgstr "" + +#. translators: one-letter abbreviation of the weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:141 +#: tmp/wordpress/wp-includes/class-wp-locale.php:141 +msgctxt "Monday initial" +msgid "M" +msgstr "" + +#. translators: one-letter abbreviation of the weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:142 +#: tmp/wordpress/wp-includes/class-wp-locale.php:142 +msgctxt "Tuesday initial" +msgid "T" +msgstr "" + +#. translators: one-letter abbreviation of the weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:143 +#: tmp/wordpress/wp-includes/class-wp-locale.php:143 +msgctxt "Wednesday initial" +msgid "W" +msgstr "" + +#. translators: one-letter abbreviation of the weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:144 +#: tmp/wordpress/wp-includes/class-wp-locale.php:144 +msgctxt "Thursday initial" +msgid "T" +msgstr "" + +#. translators: one-letter abbreviation of the weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:145 +#: tmp/wordpress/wp-includes/class-wp-locale.php:145 +msgctxt "Friday initial" +msgid "F" +msgstr "" + +#. translators: one-letter abbreviation of the weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:146 +#: tmp/wordpress/wp-includes/class-wp-locale.php:146 +msgctxt "Saturday initial" +msgid "S" +msgstr "" + +#. translators: three-letter abbreviation of the weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:149 +#: tmp/wordpress/wp-includes/class-wp-locale.php:149 +msgid "Sun" +msgstr "" + +#. translators: three-letter abbreviation of the weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:150 +#: tmp/wordpress/wp-includes/class-wp-locale.php:150 +msgid "Mon" +msgstr "" + +#. translators: three-letter abbreviation of the weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:151 +#: tmp/wordpress/wp-includes/class-wp-locale.php:151 +msgid "Tue" +msgstr "" + +#. translators: three-letter abbreviation of the weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:152 +#: tmp/wordpress/wp-includes/class-wp-locale.php:152 +msgid "Wed" +msgstr "" + +#. translators: three-letter abbreviation of the weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:153 +#: tmp/wordpress/wp-includes/class-wp-locale.php:153 +msgid "Thu" +msgstr "" + +#. translators: three-letter abbreviation of the weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:154 +#: tmp/wordpress/wp-includes/class-wp-locale.php:154 +msgid "Fri" +msgstr "" + +#. translators: three-letter abbreviation of the weekday +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:155 +#: tmp/wordpress/wp-includes/class-wp-locale.php:155 +msgid "Sat" +msgstr "" + +#. translators: month name +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:158 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:186 +#: tmp/wordpress/wp-includes/class-wp-locale.php:158 +#: tmp/wordpress/wp-includes/class-wp-locale.php:186 +msgid "January" +msgstr "" + +#. translators: month name +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:159 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:187 +#: tmp/wordpress/wp-includes/class-wp-locale.php:159 +#: tmp/wordpress/wp-includes/class-wp-locale.php:187 +msgid "February" +msgstr "" + +#. translators: month name +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:160 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:188 +#: tmp/wordpress/wp-includes/class-wp-locale.php:160 +#: tmp/wordpress/wp-includes/class-wp-locale.php:188 +msgid "March" +msgstr "" + +#. translators: month name +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:161 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:189 +#: tmp/wordpress/wp-includes/class-wp-locale.php:161 +#: tmp/wordpress/wp-includes/class-wp-locale.php:189 +msgid "April" +msgstr "" + +#. translators: month name +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:162 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:190 +#: tmp/wordpress/wp-includes/class-wp-locale.php:162 +#: tmp/wordpress/wp-includes/class-wp-locale.php:190 +msgid "May" +msgstr "" + +#. translators: month name +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:163 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:191 +#: tmp/wordpress/wp-includes/class-wp-locale.php:163 +#: tmp/wordpress/wp-includes/class-wp-locale.php:191 +msgid "June" +msgstr "" + +#. translators: month name +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:164 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:192 +#: tmp/wordpress/wp-includes/class-wp-locale.php:164 +#: tmp/wordpress/wp-includes/class-wp-locale.php:192 +msgid "July" +msgstr "" + +#. translators: month name +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:165 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:193 +#: tmp/wordpress/wp-includes/class-wp-locale.php:165 +#: tmp/wordpress/wp-includes/class-wp-locale.php:193 +msgid "August" +msgstr "" + +#. translators: month name +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:166 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:194 +#: tmp/wordpress/wp-includes/class-wp-locale.php:166 +#: tmp/wordpress/wp-includes/class-wp-locale.php:194 +msgid "September" +msgstr "" + +#. translators: month name +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:167 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:195 +#: tmp/wordpress/wp-includes/class-wp-locale.php:167 +#: tmp/wordpress/wp-includes/class-wp-locale.php:195 +msgid "October" +msgstr "" + +#. translators: month name +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:168 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:196 +#: tmp/wordpress/wp-includes/class-wp-locale.php:168 +#: tmp/wordpress/wp-includes/class-wp-locale.php:196 +msgid "November" +msgstr "" + +#. translators: month name +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:169 +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:197 +#: tmp/wordpress/wp-includes/class-wp-locale.php:169 +#: tmp/wordpress/wp-includes/class-wp-locale.php:197 +msgid "December" +msgstr "" + +#. translators: month name, genitive +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:172 +#: tmp/wordpress/wp-includes/class-wp-locale.php:172 +msgctxt "genitive" +msgid "January" +msgstr "" + +#. translators: month name, genitive +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:173 +#: tmp/wordpress/wp-includes/class-wp-locale.php:173 +msgctxt "genitive" +msgid "February" +msgstr "" + +#. translators: month name, genitive +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:174 +#: tmp/wordpress/wp-includes/class-wp-locale.php:174 +msgctxt "genitive" +msgid "March" +msgstr "" + +#. translators: month name, genitive +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:175 +#: tmp/wordpress/wp-includes/class-wp-locale.php:175 +msgctxt "genitive" +msgid "April" +msgstr "" + +#. translators: month name, genitive +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:176 +#: tmp/wordpress/wp-includes/class-wp-locale.php:176 +msgctxt "genitive" +msgid "May" +msgstr "" + +#. translators: month name, genitive +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:177 +#: tmp/wordpress/wp-includes/class-wp-locale.php:177 +msgctxt "genitive" +msgid "June" +msgstr "" + +#. translators: month name, genitive +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:178 +#: tmp/wordpress/wp-includes/class-wp-locale.php:178 +msgctxt "genitive" +msgid "July" +msgstr "" + +#. translators: month name, genitive +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:179 +#: tmp/wordpress/wp-includes/class-wp-locale.php:179 +msgctxt "genitive" +msgid "August" +msgstr "" + +#. translators: month name, genitive +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:180 +#: tmp/wordpress/wp-includes/class-wp-locale.php:180 +msgctxt "genitive" +msgid "September" +msgstr "" + +#. translators: month name, genitive +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:181 +#: tmp/wordpress/wp-includes/class-wp-locale.php:181 +msgctxt "genitive" +msgid "October" +msgstr "" + +#. translators: month name, genitive +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:182 +#: tmp/wordpress/wp-includes/class-wp-locale.php:182 +msgctxt "genitive" +msgid "November" +msgstr "" + +#. translators: month name, genitive +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:183 +#: tmp/wordpress/wp-includes/class-wp-locale.php:183 +msgctxt "genitive" +msgid "December" +msgstr "" + +#. translators: three-letter abbreviation of the month +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:186 +#: tmp/wordpress/wp-includes/class-wp-locale.php:186 +msgctxt "January abbreviation" +msgid "Jan" +msgstr "" + +#. translators: three-letter abbreviation of the month +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:187 +#: tmp/wordpress/wp-includes/class-wp-locale.php:187 +msgctxt "February abbreviation" +msgid "Feb" +msgstr "" + +#. translators: three-letter abbreviation of the month +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:188 +#: tmp/wordpress/wp-includes/class-wp-locale.php:188 +msgctxt "March abbreviation" +msgid "Mar" +msgstr "" + +#. translators: three-letter abbreviation of the month +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:189 +#: tmp/wordpress/wp-includes/class-wp-locale.php:189 +msgctxt "April abbreviation" +msgid "Apr" +msgstr "" + +#. translators: three-letter abbreviation of the month +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:190 +#: tmp/wordpress/wp-includes/class-wp-locale.php:190 +msgctxt "May abbreviation" +msgid "May" +msgstr "" + +#. translators: three-letter abbreviation of the month +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:191 +#: tmp/wordpress/wp-includes/class-wp-locale.php:191 +msgctxt "June abbreviation" +msgid "Jun" +msgstr "" + +#. translators: three-letter abbreviation of the month +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:192 +#: tmp/wordpress/wp-includes/class-wp-locale.php:192 +msgctxt "July abbreviation" +msgid "Jul" +msgstr "" + +#. translators: three-letter abbreviation of the month +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:193 +#: tmp/wordpress/wp-includes/class-wp-locale.php:193 +msgctxt "August abbreviation" +msgid "Aug" +msgstr "" + +#. translators: three-letter abbreviation of the month +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:194 +#: tmp/wordpress/wp-includes/class-wp-locale.php:194 +msgctxt "September abbreviation" +msgid "Sep" +msgstr "" + +#. translators: three-letter abbreviation of the month +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:195 +#: tmp/wordpress/wp-includes/class-wp-locale.php:195 +msgctxt "October abbreviation" +msgid "Oct" +msgstr "" + +#. translators: three-letter abbreviation of the month +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:196 +#: tmp/wordpress/wp-includes/class-wp-locale.php:196 +msgctxt "November abbreviation" +msgid "Nov" +msgstr "" + +#. translators: three-letter abbreviation of the month +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:197 +#: tmp/wordpress/wp-includes/class-wp-locale.php:197 +msgctxt "December abbreviation" +msgid "Dec" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:200 +#: tmp/wordpress/wp-includes/class-wp-locale.php:200 +msgid "am" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:201 +#: tmp/wordpress/wp-includes/class-wp-locale.php:201 +msgid "pm" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:202 +#: tmp/wordpress/wp-includes/class-wp-locale.php:202 +msgid "AM" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:203 +#: tmp/wordpress/wp-includes/class-wp-locale.php:203 +msgid "PM" +msgstr "" + +#. translators: $thousands_sep argument for +#. https://secure.php.net/number_format, default is , +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:209 +#: tmp/wordpress/wp-includes/class-wp-locale.php:209 +msgid "number_format_thousands_sep" +msgstr "" + +#. translators: $dec_point argument for https://secure.php.net/number_format, +#. default is . +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:222 +#: tmp/wordpress/wp-includes/class-wp-locale.php:222 +msgid "number_format_decimal_point" +msgstr "" + +#. translators: 'rtl' or 'ltr'. This sets the text direction for WordPress. +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:230 +#: tmp/wordpress/wp-includes/class-wp-locale.php:230 +msgctxt "text direction" +msgid "ltr" +msgstr "" + +#. translators: %s: Name of the directory (build) +#: tmp/old/wordpress/wp-includes/class-wp-locale.php:247 +#: tmp/wordpress/wp-includes/class-wp-locale.php:247 +msgid "The %s directory of the develop repository must be used for RTL." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-metadata-lazyloader.php:81 +#: tmp/old/wordpress/wp-includes/class-wp-metadata-lazyloader.php:122 +#: tmp/wordpress/wp-includes/class-wp-metadata-lazyloader.php:81 +#: tmp/wordpress/wp-includes/class-wp-metadata-lazyloader.php:122 +msgid "Invalid object type" +msgstr "" + +#. translators: This is a comma-separated list of very common words that should +#. be excluded from a search, like a, an, and the. These are usually called +#. "stopwords". You should not simply translate these individual words into +#. your language. Instead, look for and provide commonly accepted stopwords in +#. your language. +#: tmp/old/wordpress/wp-includes/class-wp-query.php:1419 +#: tmp/wordpress/wp-includes/class-wp-query.php:1419 +msgctxt "Comma-separated list of search stopwords in your language" +msgid "" +"about,an,are,as,at,be,by,com,for,from,how,in,is,it,of,on,or,that,the,this,to," +"was,what,when,where,who,will,with,www" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-query.php:1714 +#: tmp/wordpress/wp-includes/class-wp-query.php:1714 +msgid "" +"\"caller_get_posts\" is deprecated. Use \"ignore_sticky_posts\" instead." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-tax-query.php:658 +#: tmp/wordpress/wp-includes/class-wp-tax-query.php:658 +msgid "Inexistent terms." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-term.php:166 +#: tmp/wordpress/wp-includes/class-wp-term.php:166 +msgid "Term ID is shared between multiple taxonomies" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:244 +#: tmp/wordpress/wp-includes/class-wp-theme.php:244 +msgid "The theme directory \"%s\" does not exist." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:246 +#: tmp/wordpress/wp-includes/class-wp-theme.php:246 +msgid "Stylesheet is missing." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:250 +#: tmp/wordpress/wp-includes/class-wp-theme.php:250 +msgid "" +"ERROR: The themes directory is either empty or doesn’t exist. Please " +"check your installation." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:254 +#: tmp/wordpress/wp-includes/class-wp-theme.php:254 +msgid "Stylesheet is not readable." +msgstr "" + +#. translators: 1: index.php, 2: Codex URL, 3: style.css +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:274 +#: tmp/wordpress/wp-includes/class-wp-theme.php:274 +msgid "" +"Template is missing. Standalone themes need to have a %1$s template file. Child themes need to have a Template header in the %3$s " +"stylesheet." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:298 +#: tmp/wordpress/wp-includes/class-wp-theme.php:298 +msgid "The parent theme is missing. Please install the \"%s\" parent theme." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:310 +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:314 +#: tmp/wordpress/wp-includes/class-wp-theme.php:310 +#: tmp/wordpress/wp-includes/class-wp-theme.php:314 +msgid "The \"%s\" theme is not a valid parent theme." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:735 +#: tmp/old/wordpress/wp-includes/comment-template.php:31 +#: tmp/wordpress/wp-includes/class-wp-theme.php:735 +#: tmp/wordpress/wp-includes/comment-template.php:31 +msgid "Anonymous" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:784 +#: tmp/wordpress/wp-includes/class-wp-theme.php:784 +msgid "Black" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:784 +#: tmp/wordpress/wp-includes/class-wp-theme.php:784 +msgid "Brown" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:785 +#: tmp/wordpress/wp-includes/class-wp-theme.php:785 +msgid "Green" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:785 +#: tmp/wordpress/wp-includes/class-wp-theme.php:785 +msgid "Orange" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:787 +#: tmp/wordpress/wp-includes/class-wp-theme.php:787 +msgid "Silver" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:787 +#: tmp/wordpress/wp-includes/class-wp-theme.php:787 +msgid "Tan" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:787 +#: tmp/wordpress/wp-includes/class-wp-theme.php:787 +msgid "White" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:789 +#: tmp/wordpress/wp-includes/class-wp-theme.php:789 +msgid "Fixed Layout" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:789 +#: tmp/wordpress/wp-includes/class-wp-theme.php:789 +msgid "Fluid Layout" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:790 +#: tmp/wordpress/wp-includes/class-wp-theme.php:790 +msgid "Responsive Layout" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:790 +#: tmp/wordpress/wp-includes/class-wp-theme.php:790 +msgid "Blavatar" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:791 +#: tmp/wordpress/wp-includes/class-wp-theme.php:791 +msgid "Photoblogging" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-theme.php:791 +#: tmp/wordpress/wp-includes/class-wp-theme.php:791 +msgid "Seasonal" +msgstr "" + +#. translators: %s: WP_User->ID +#: tmp/old/wordpress/wp-includes/class-wp-user.php:277 +#: tmp/old/wordpress/wp-includes/class-wp-user.php:307 +#: tmp/old/wordpress/wp-includes/class-wp-user.php:346 +#: tmp/old/wordpress/wp-includes/class-wp-user.php:370 +#: tmp/wordpress/wp-includes/class-wp-user.php:277 +#: tmp/wordpress/wp-includes/class-wp-user.php:307 +#: tmp/wordpress/wp-includes/class-wp-user.php:346 +#: tmp/wordpress/wp-includes/class-wp-user.php:370 +msgid "Use %s instead." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-user.php:717 +#: tmp/wordpress/wp-includes/class-wp-user.php:717 +msgid "" +"Usage of user levels by plugins and themes is deprecated. Use roles and " +"capabilities instead." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:274 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:274 +msgid "XML-RPC services are disabled on this site." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:285 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:285 +msgid "Incorrect username or password." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:412 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:412 +msgid "Software Name" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:417 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:417 +msgid "Software Version" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:432 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:432 +msgid "Login Address (URL)" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:437 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:437 +msgid "The URL to the admin area" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:442 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:442 +msgid "Image default link type" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:447 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:447 +msgid "Image default size" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:452 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:452 +msgid "Image default align" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:467 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:467 +msgid "Post Thumbnail" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:474 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:474 +msgid "Time Zone" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:484 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:484 +msgid "Site Tagline" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:499 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:499 +msgid "Allow new users to sign up" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:504 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:504 +msgid "Thumbnail Width" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:509 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:509 +msgid "Thumbnail Height" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:514 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:514 +msgid "Crop thumbnail to exact dimensions" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:519 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:519 +msgid "Medium size image width" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:524 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:524 +msgid "Medium size image height" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:529 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:529 +msgid "Medium-Large size image width" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:534 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:534 +msgid "Medium-Large size image height" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:539 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:539 +msgid "Large size image width" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:544 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:544 +msgid "Large size image height" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:668 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:668 +msgid "Insufficient arguments passed to this XML-RPC method." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1265 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1265 +msgid "Sorry, you cannot stick a private post." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1273 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:500 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:644 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1273 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:500 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:644 +msgid "Sorry, you are not allowed to make posts sticky." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1311 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1570 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1636 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1734 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2665 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3545 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3549 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3686 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4233 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4297 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4300 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4303 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4477 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5208 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5505 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6018 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6072 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6191 +#: tmp/old/wordpress/wp-includes/post.php:3012 +#: tmp/old/wordpress/wp-includes/post.php:3546 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:331 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:693 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:370 +#: tmp/old/wordpress/wp-includes/revision.php:292 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1311 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1570 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1636 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1734 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2665 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3545 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3549 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3686 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4233 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4297 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4300 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4303 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4477 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5208 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5505 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6018 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6072 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6191 +#: tmp/wordpress/wp-includes/post.php:3012 +#: tmp/wordpress/wp-includes/post.php:3546 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:331 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:693 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:370 +#: tmp/wordpress/wp-includes/revision.php:292 +msgid "Invalid post ID." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1315 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5219 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1315 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5219 +msgid "The post type may not be changed." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1318 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4627 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1318 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4627 +msgid "Sorry, you are not allowed to post on this site." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1327 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1118 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1327 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1118 +msgid "Sorry, you are not allowed to create private posts in this post type." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1332 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1124 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1332 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1124 +msgid "Sorry, you are not allowed to publish posts in this post type." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1341 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1341 +msgid "" +"Sorry, you are not allowed to create password protected posts in this post " +"type." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1351 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4941 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1029 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1351 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4941 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1029 +msgid "Invalid author ID." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1397 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3946 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5085 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5450 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1397 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3946 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5085 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5450 +msgid "Invalid attachment ID." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1418 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1442 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1418 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1442 +msgid "Sorry, one of the given taxonomies is not supported by the post type." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1421 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1445 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1421 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1445 +msgid "" +"Sorry, you are not allowed to assign a term to one of the given taxonomies." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1429 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1979 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2070 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2142 +#: tmp/old/wordpress/wp-includes/taxonomy.php:1976 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1429 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1979 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2070 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2142 +#: tmp/wordpress/wp-includes/taxonomy.php:1976 +msgid "Invalid term ID." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1467 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1467 +msgid "" +"Ambiguous term name used in a hierarchical taxonomy. Please use term ID " +"instead." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1474 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1474 +msgid "" +"Sorry, you are not allowed to add a term to one of the given taxonomies." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1526 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4647 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5106 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1526 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4647 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5106 +msgid "Sorry, your entry could not be posted." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1575 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1575 +msgid "There is a revision of this post that is more recent." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1640 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4777 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:758 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:803 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1640 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4777 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:758 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:803 +msgid "Sorry, you are not allowed to delete this post." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1646 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4783 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:834 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:322 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1646 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4783 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:834 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:322 +msgid "The post cannot be deleted." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1891 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1989 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1891 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1989 +msgid "The term name cannot be empty." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1895 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1895 +msgid "This taxonomy is not hierarchical." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1904 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2003 +#: tmp/old/wordpress/wp-includes/taxonomy.php:1985 +#: tmp/old/wordpress/wp-includes/taxonomy.php:2605 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1904 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2003 +#: tmp/wordpress/wp-includes/taxonomy.php:1985 +#: tmp/wordpress/wp-includes/taxonomy.php:2605 +msgid "Parent term does not exist." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1921 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1921 +msgid "Sorry, your term could not be created." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1982 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:339 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:483 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1982 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:339 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:483 +msgid "Sorry, you are not allowed to edit this term." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:1994 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:1994 +msgid "This taxonomy is not hierarchical so you can't set a parent." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2020 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2020 +msgid "Sorry, editing the term failed." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2073 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:570 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2073 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:570 +msgid "Sorry, you are not allowed to delete this term." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2082 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2082 +msgid "Sorry, deleting the term failed." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2145 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2145 +msgid "Sorry, you are not allowed to assign this term." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2196 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2291 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2196 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2291 +msgid "Sorry, you are not allowed to assign terms in this taxonomy." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2495 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2495 +msgid "Invalid role." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2552 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2598 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2552 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2598 +msgid "Sorry, you are not allowed to edit your profile." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2632 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2632 +msgid "Sorry, the user cannot be updated." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2679 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2799 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2861 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2679 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2799 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2861 +msgid "Sorry, no such page." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2803 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2803 +msgid "Sorry, you are not allowed to delete this page." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:2808 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:2808 +msgid "Failed to delete the page." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3008 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3008 +msgid "" +"Sorry, you must be able to edit posts on this site in order to view tags." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3062 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3062 +msgid "Sorry, you are not allowed to add a category." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3090 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3092 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3090 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3092 +msgid "Sorry, the new category failed." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3137 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3137 +msgid "Sorry, you are not allowed to delete a category." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3184 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5751 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5973 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3184 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5751 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5973 +msgid "" +"Sorry, you must be able to edit posts on this site in order to view " +"categories." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3235 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3367 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3434 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3235 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3367 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3434 +msgid "Sorry, you are not allowed to moderate or edit this comment." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3288 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3445 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3288 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3445 +msgid "Invalid comment status." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3477 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3477 +msgid "Sorry, the comment could not be edited." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3531 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3531 +msgid "You must be registered to comment." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3553 +#: tmp/old/wordpress/wp-includes/comment.php:2983 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:473 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3553 +#: tmp/wordpress/wp-includes/comment.php:2983 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:473 +msgid "Sorry, comments are closed for this item." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3557 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3557 +msgid "Comment is required." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3591 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3591 +msgid "Comment author name and email are required." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3593 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3593 +msgid "A valid email address is required." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3608 +#: tmp/old/wordpress/wp-includes/script-loader.php:705 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3608 +#: tmp/wordpress/wp-includes/script-loader.php:705 +msgid "An unknown error occurred" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3649 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3730 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3762 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3794 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4032 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3649 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3730 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3762 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3794 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4032 +msgid "Sorry, you are not allowed access to details about this site." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3690 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3690 +msgid "Sorry, you are not allowed access to details of this post." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:3888 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:3888 +msgid "Sorry, you are not allowed to update options." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4240 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4310 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4240 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4310 +msgid "Sorry, revisions are disabled." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4434 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4434 +msgid "Sorry, you are not allowed to access user data on this site." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4541 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5923 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4541 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5923 +msgid "Either there are no posts, or something went wrong." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4701 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4773 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5605 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6139 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4701 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4773 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5605 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6139 +msgid "Sorry, no such post." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4710 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5384 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6194 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4710 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5384 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6194 +msgid "Sorry, you are not allowed to publish this post." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4725 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4725 +msgid "" +"For some strange yet very annoying reason, this post could not be edited." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4864 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4864 +msgid "Sorry, you are not allowed to publish pages on this site." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4875 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4888 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4893 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4875 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4888 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4893 +msgid "Sorry, you are not allowed to publish posts on this site." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:4901 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5225 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:4901 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5225 +msgid "Invalid post format." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5270 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5270 +msgid "Sorry, you are not allowed to change the post author as this user." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5275 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5275 +msgid "Sorry, you are not allowed to change the page author as this user." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5382 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5382 +msgid "Sorry, you are not allowed to publish this page." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5427 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5427 +msgid "Sorry, your entry could not be edited." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5820 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5820 +msgid "Sorry, you have used your space allocation." +msgstr "" + +#. translators: 1: file name, 2: error message +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:5841 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:5841 +msgid "Could not write file %1$s (%2$s)." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6251 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6251 +msgid "Is there no link to us?" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6286 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6293 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6300 +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6446 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6286 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6293 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6300 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6446 +msgid "" +"The specified target URL cannot be used as a target. It either doesn’t " +"exist, or it is not a pingback-enabled resource." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6296 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6296 +msgid "" +"The source URL and the target URL cannot both point to the same resource." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6304 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6304 +msgid "The pingback has already been registered." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6329 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6329 +msgid "The source URL does not exist." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6350 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6350 +msgid "We cannot find a title on that page." +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6387 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6387 +msgid "" +"The source URL does not contain a link to the target URL, and so cannot be " +"used as a source." +msgstr "" + +#. translators: 1: URL of the page linked from, 2: URL of the page linked to +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6420 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6420 +msgid "Pingback from %1$s to %2$s registered. Keep the web talking! :-)" +msgstr "" + +#: tmp/old/wordpress/wp-includes/class-wp-xmlrpc-server.php:6453 +#: tmp/wordpress/wp-includes/class-wp-xmlrpc-server.php:6453 +msgid "The specified target URL does not exist." +msgstr "" + +#. translators: If comment number in your language requires declension, +#. translate this to 'on'. Do not translate into your own language. +#: tmp/old/wordpress/wp-includes/comment-template.php:899 +#: tmp/wordpress/wp-includes/comment-template.php:899 +msgctxt "Comment number declension: on or off" +msgid "off" +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment-template.php:920 +#: tmp/wordpress/wp-includes/comment-template.php:920 +msgid "No Comments" +msgstr "" + +#. translators: %s: post title +#: tmp/old/wordpress/wp-includes/comment-template.php:1497 +#: tmp/wordpress/wp-includes/comment-template.php:1497 +msgid "No Comments on %s" +msgstr "" + +#. translators: %s: post title +#: tmp/old/wordpress/wp-includes/comment-template.php:1502 +#: tmp/wordpress/wp-includes/comment-template.php:1502 +msgid "1 Comment on %s" +msgstr "" + +#. translators: 1: Number of comments 2: post title +#: tmp/old/wordpress/wp-includes/comment-template.php:1507 +#: tmp/wordpress/wp-includes/comment-template.php:1507 +msgid "%1$s Comment on %2$s" +msgid_plural "%1$s Comments on %2$s" +msgstr[0] "" +msgstr[1] "" + +#. translators: %s: post title +#: tmp/old/wordpress/wp-includes/comment-template.php:1513 +#: tmp/wordpress/wp-includes/comment-template.php:1513 +msgid "Comments Off on %s" +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment-template.php:1522 +#: tmp/wordpress/wp-includes/comment-template.php:1522 +msgid "Enter your password to view comments." +msgstr "" + +#. translators: Comment reply button text. 1: Comment author name +#: tmp/old/wordpress/wp-includes/comment-template.php:1596 +#: tmp/wordpress/wp-includes/comment-template.php:1596 +msgid "Reply to %s" +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment-template.php:1597 +#: tmp/wordpress/wp-includes/comment-template.php:1597 +msgid "Log in to Reply" +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment-template.php:1709 +#: tmp/wordpress/wp-includes/comment-template.php:1709 +msgid "Leave a Comment" +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment-template.php:1710 +#: tmp/wordpress/wp-includes/comment-template.php:1710 +msgid "Log in to leave a Comment" +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment-template.php:1778 +#: tmp/wordpress/wp-includes/comment-template.php:1778 +msgid "Click here to cancel reply." +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment-template.php:1870 +#: tmp/old/wordpress/wp-includes/comment-template.php:2241 +#: tmp/wordpress/wp-includes/comment-template.php:1870 +#: tmp/wordpress/wp-includes/comment-template.php:2241 +msgid "Leave a Reply" +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment-template.php:1871 +#: tmp/old/wordpress/wp-includes/comment-template.php:2242 +#: tmp/wordpress/wp-includes/comment-template.php:1871 +#: tmp/wordpress/wp-includes/comment-template.php:2242 +msgid "Leave a Reply to %s" +msgstr "" + +#. translators: %s: login URL +#: tmp/old/wordpress/wp-includes/comment-template.php:2220 +#: tmp/wordpress/wp-includes/comment-template.php:2220 +msgid "You must be logged in to post a comment." +msgstr "" + +#. translators: 1: edit user link, 2: accessibility text, 3: user name, 4: +#. logout URL +#: tmp/old/wordpress/wp-includes/comment-template.php:2226 +#: tmp/wordpress/wp-includes/comment-template.php:2226 +msgid "" +"Logged in as %3$s. Log out?" +msgstr "" + +#. translators: %s: user name +#: tmp/old/wordpress/wp-includes/comment-template.php:2229 +#: tmp/wordpress/wp-includes/comment-template.php:2229 +msgid "Logged in as %s. Edit your profile." +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment-template.php:2233 +#: tmp/wordpress/wp-includes/comment-template.php:2233 +msgid "Your email address will not be published." +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment-template.php:2247 +#: tmp/wordpress/wp-includes/comment-template.php:2247 +msgid "Cancel reply" +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment-template.php:2248 +#: tmp/wordpress/wp-includes/comment-template.php:2248 +msgid "Post Comment" +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment.php:241 +#: tmp/wordpress/wp-includes/comment.php:241 +msgid "Unapproved" +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment.php:244 +#: tmp/wordpress/wp-includes/comment.php:244 +msgctxt "comment status" +msgid "Trash" +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment.php:658 +#: tmp/old/wordpress/wp-includes/comment.php:661 +#: tmp/old/wordpress/wp-includes/comment.php:664 +#: tmp/wordpress/wp-includes/comment.php:658 +#: tmp/wordpress/wp-includes/comment.php:661 +#: tmp/wordpress/wp-includes/comment.php:664 +msgid "" +"Duplicate comment detected; it looks as though you’ve already said " +"that!" +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment.php:714 +#: tmp/old/wordpress/wp-includes/comment.php:858 +#: tmp/old/wordpress/wp-includes/comment.php:861 +#: tmp/wordpress/wp-includes/comment.php:714 +#: tmp/wordpress/wp-includes/comment.php:858 +#: tmp/wordpress/wp-includes/comment.php:861 +msgid "You are posting comments too quickly. Slow down." +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment.php:1132 +#: tmp/wordpress/wp-includes/comment.php:1132 +msgid "ERROR: your name is too long." +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment.php:1136 +#: tmp/wordpress/wp-includes/comment.php:1136 +msgid "ERROR: your email address is too long." +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment.php:1140 +#: tmp/wordpress/wp-includes/comment.php:1140 +msgid "ERROR: your url is too long." +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment.php:1144 +#: tmp/wordpress/wp-includes/comment.php:1144 +msgid "ERROR: your comment is too long." +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment.php:2095 +#: tmp/wordpress/wp-includes/comment.php:2095 +msgid "Could not update comment status" +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment.php:3057 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:403 +#: tmp/old/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:420 +#: tmp/wordpress/wp-includes/comment.php:3057 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:403 +#: tmp/wordpress/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:420 +msgid "Sorry, you must be logged in to comment." +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment.php:3065 +#: tmp/wordpress/wp-includes/comment.php:3065 +msgid "ERROR: please fill the required fields (name, email)." +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment.php:3067 +#: tmp/wordpress/wp-includes/comment.php:3067 +msgid "ERROR: please enter a valid email address." +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment.php:3072 +#: tmp/wordpress/wp-includes/comment.php:3072 +msgid "ERROR: please type a comment." +msgstr "" + +#: tmp/old/wordpress/wp-includes/comment.php:3097 +#: tmp/wordpress/wp-includes/comment.php:3097 +msgid "" +"ERROR: The comment could not be saved. Please try again " +"later." +msgstr "" + +#: tmp/old/wordpress/wp-includes/cron.php:205 +#: tmp/wordpress/wp-includes/cron.php:205 +msgid "" +"This argument has changed to an array to match the behavior of the other " +"cron functions." +msgstr "" + +#: tmp/old/wordpress/wp-includes/cron.php:405 +#: tmp/wordpress/wp-includes/cron.php:405 +msgid "Once Hourly" +msgstr "" + +#: tmp/old/wordpress/wp-includes/cron.php:406 +#: tmp/wordpress/wp-includes/cron.php:406 +msgid "Twice Daily" +msgstr "" + +#: tmp/old/wordpress/wp-includes/cron.php:407 +#: tmp/wordpress/wp-includes/cron.php:407 +msgid "Once Daily" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-color-control.php:117 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-color-control.php:117 +msgid "Hex Value" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-custom-css-setting.php:171 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-custom-css-setting.php:171 +msgid "Markup is not allowed in CSS." +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-custom-css-setting.php:178 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-custom-css-setting.php:178 +msgid "" +"Your curly brackets {} are imbalanced. Make sure there is a " +"closing } for every opening {." +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-custom-css-setting.php:184 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-custom-css-setting.php:184 +msgid "" +"Your brackets [] are imbalanced. Make sure there is a closing " +"] for every opening [." +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-custom-css-setting.php:190 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-custom-css-setting.php:190 +msgid "" +"Your parentheses () are imbalanced. Make sure there is a " +"closing ) for every opening (." +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-custom-css-setting.php:196 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-custom-css-setting.php:196 +msgid "" +"Your double quotes \" are uneven. Make sure there is a closing " +"\" for every opening \"." +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-custom-css-setting.php:212 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-custom-css-setting.php:212 +msgid "" +"There is %s unclosed code comment. Close each comment with */." +msgid_plural "" +"There are %s unclosed code comments. Close each comment with */." +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-custom-css-setting.php:215 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-custom-css-setting.php:215 +msgid "" +"There is an extra */, indicating an end to a comment. Be sure " +"that there is an opening /* for every closing */." +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-custom-css-setting.php:219 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-custom-css-setting.php:219 +msgid "" +"Imbalanced/unclosed character errors can be caused by content: \"\"; declarations. You may need to remove this or add it to a custom CSS " +"file." +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:97 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:97 +msgid "Randomize uploaded headers" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:99 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:99 +msgid "Randomize suggested headers" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:108 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:108 +msgid "Set image" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:113 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:113 +msgid "Remove image" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:126 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:126 +msgid "Randomizing uploaded headers" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:128 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:128 +msgid "Randomizing suggested headers" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:140 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:140 +msgid "No image set" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:176 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:176 +msgid "" +"While you can crop images to your liking after clicking Add new " +"image, we recommend matching the size of your video." +msgstr "" + +#. translators: %s: header size in pixels +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:179 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:179 +msgid "" +"While you can crop images to your liking after clicking Add new " +"image, your theme recommends a header size of %s pixels." +msgstr "" + +#. translators: %s: header width in pixels +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:184 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:184 +msgid "" +"While you can crop images to your liking after clicking Add new " +"image, your theme recommends a header width of %s pixels." +msgstr "" + +#. translators: %s: header height in pixels +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:189 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:189 +msgid "" +"While you can crop images to your liking after clicking Add new " +"image, your theme recommends a header height of %s pixels." +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:198 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:198 +msgid "Current header" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:206 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:206 +msgid "Hide header image" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:206 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:206 +msgid "Hide image" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:207 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:207 +msgid "Add new header image" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:207 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:207 +msgid "Add new image" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:213 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:213 +msgctxt "custom headers" +msgid "Previously uploaded" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:220 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-header-image-control.php:220 +msgctxt "custom headers" +msgid "Suggested" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-image-control.php:36 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-image-control.php:36 +msgid "Change Image" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-image-control.php:39 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-image-control.php:39 +msgid "No image selected" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-media-control.php:60 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-media-control.php:65 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-media-control.php:60 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-media-control.php:65 +msgid "Select File" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-media-control.php:61 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-media-control.php:61 +msgid "Change File" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-media-control.php:64 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-media-control.php:64 +msgid "No file selected" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-media-control.php:66 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-media-control.php:66 +msgid "Choose File" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-auto-add-control.php:44 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menus-panel.php:88 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-auto-add-control.php:44 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menus-panel.php:88 +msgid "Menu Options" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:51 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:51 +msgid "Add or remove menu items" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:52 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:52 +msgid "Add Items" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:55 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:55 +msgctxt "Reorder menu items in Customizer" +msgid "Reorder" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:56 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:56 +msgctxt "Cancel reordering menu items in Customizer" +msgid "Done" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:58 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:58 +msgid "" +"When in reorder mode, additional controls to reorder menu items will be " +"available in the items list above." +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:67 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:67 +msgid "Display Location" +msgstr "" + +#. translators: %s: menu name +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:76 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-control.php:76 +msgctxt "menu location" +msgid "(Current: %s)" +msgstr "" + +#. translators: 1: Title of a menu item, 2: Type of a menu item +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:77 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:77 +msgid "Edit menu item: %1$s (%2$s)" +msgstr "" + +#. translators: 1: Title of a menu item, 2: Type of a menu item +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:81 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-item-control.php:81 +msgid "Remove Menu Item: %1$s (%2$s)" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-location-control.php:80 +#: tmp/old/wordpress/wp-includes/widgets/class-wp-nav-menu-widget.php:153 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-location-control.php:80 +#: tmp/wordpress/wp-includes/widgets/class-wp-nav-menu-widget.php:153 +msgid "Edit Menu" +msgstr "" + +#. translators: 1: original menu name, 2: duplicate count +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-nav-menu-setting.php:531 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-nav-menu-setting.php:531 +msgid "%1$s (%2$d)" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-partial.php:221 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-partial.php:221 +msgid "" +"Partial render must echo the content or return the content string (or " +"array), but not both." +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-selective-refresh.php:185 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-selective-refresh.php:185 +msgid "Click to edit this menu." +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-selective-refresh.php:186 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-selective-refresh.php:186 +msgid "Click to edit this widget." +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-selective-refresh.php:187 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-selective-refresh.php:187 +msgid "Click to edit the site title." +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-selective-refresh.php:188 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-selective-refresh.php:188 +msgid "Click to edit this element." +msgstr "" + +#. translators: %s: document.write() +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-selective-refresh.php:190 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-selective-refresh.php:190 +msgid "%s is forbidden" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-site-icon-control.php:70 +#: tmp/old/wordpress/wp-includes/media-template.php:1250 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-site-icon-control.php:70 +#: tmp/wordpress/wp-includes/media-template.php:1250 +msgid "Preview as a browser icon" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-site-icon-control.php:74 +#: tmp/old/wordpress/wp-includes/media-template.php:1257 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-site-icon-control.php:74 +#: tmp/wordpress/wp-includes/media-template.php:1257 +msgid "Preview as an app icon" +msgstr "" + +#. translators: Theme author name +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-theme-control.php:92 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-theme-control.php:92 +msgctxt "theme author" +msgid "By %s" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:43 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:62 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:43 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:62 +msgid "Active theme" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:45 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:64 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:45 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:64 +msgid "Previewing theme" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:50 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:50 +msgctxt "theme" +msgid "Change" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:75 +#: tmp/old/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:76 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:75 +#: tmp/wordpress/wp-includes/customize/class-wp-customize-themes-section.php:76 +msgid "Search installed themes…" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-widget-area-customize-control.php:64 +#: tmp/wordpress/wp-includes/customize/class-wp-widget-area-customize-control.php:64 +msgctxt "Reorder widgets in Customizer" +msgid "Reorder" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-widget-area-customize-control.php:65 +#: tmp/wordpress/wp-includes/customize/class-wp-widget-area-customize-control.php:65 +msgctxt "Cancel reordering widgets in Customizer" +msgid "Done" +msgstr "" + +#: tmp/old/wordpress/wp-includes/customize/class-wp-widget-area-customize-control.php:67 +#: tmp/wordpress/wp-includes/customize/class-wp-widget-area-customize-control.php:67 +msgid "" +"When in reorder mode, additional controls to reorder widgets will be " +"available in the widgets list above." +msgstr "" + +#. translators: Date query invalid date message: 1: invalid value, 2: type of +#. value, 3: minimum valid value, 4: maximum valid value +#: tmp/old/wordpress/wp-includes/date.php:410 +#: tmp/wordpress/wp-includes/date.php:410 +msgid "" +"Invalid value %1$s for %2$s. Expected value should be between %3$s and %4$s." +msgstr "" + +#. translators: 1: year, 2: month, 3: day of month +#: tmp/old/wordpress/wp-includes/date.php:440 +#: tmp/wordpress/wp-includes/date.php:440 +msgid "" +"The following values do not describe a valid date: year %1$s, month %2$s, " +"day %3$s." +msgstr "" + +#. translators: 1: month, 2: day of month +#: tmp/old/wordpress/wp-includes/date.php:457 +#: tmp/wordpress/wp-includes/date.php:457 +msgid "" +"The following values do not describe a valid date: month %1$s, day %2$s." +msgstr "" + +#: tmp/old/wordpress/wp-includes/deprecated.php:64 +#: tmp/wordpress/wp-includes/deprecated.php:64 +msgid "new WordPress Loop" +msgstr "" + +#: tmp/old/wordpress/wp-includes/deprecated.php:963 +#: tmp/wordpress/wp-includes/deprecated.php:963 +msgid "Last updated" +msgstr "" + +#: tmp/old/wordpress/wp-includes/deprecated.php:1840 +#: tmp/old/wordpress/wp-includes/post-template.php:1499 +#: tmp/wordpress/wp-includes/deprecated.php:1840 +#: tmp/wordpress/wp-includes/post-template.php:1499 +msgid "Missing Attachment" +msgstr "" + +#: tmp/old/wordpress/wp-includes/deprecated.php:2671 +#: tmp/wordpress/wp-includes/deprecated.php:2671 +msgid "Last Post" +msgstr "" + +#: tmp/old/wordpress/wp-includes/deprecated.php:3122 +#: tmp/old/wordpress/wp-includes/functions.php:2595 +#: tmp/wordpress/wp-includes/deprecated.php:3122 +#: tmp/wordpress/wp-includes/functions.php:2595 +msgid "Are you sure you want to do this?" +msgstr "" + +#. translators: %s: file name +#: tmp/old/wordpress/wp-includes/deprecated.php:3174 +#: tmp/wordpress/wp-includes/deprecated.php:3174 +msgid "File “%s” doesn’t exist?" +msgstr "" + +#: tmp/old/wordpress/wp-includes/deprecated.php:3178 +#: tmp/wordpress/wp-includes/deprecated.php:3178 +msgid "The GD image library is not installed." +msgstr "" + +#. translators: %s: file name +#: tmp/old/wordpress/wp-includes/deprecated.php:3187 +#: tmp/wordpress/wp-includes/deprecated.php:3187 +msgid "File “%s” is not an image." +msgstr "" + +#. translators: 1: post title, 2: site name +#: tmp/old/wordpress/wp-includes/embed.php:467 +#: tmp/wordpress/wp-includes/embed.php:467 +msgid "“%1$s” — %2$s" +msgstr "" + +#: tmp/old/wordpress/wp-includes/embed.php:951 +#: tmp/wordpress/wp-includes/embed.php:951 +msgid "%s Comment" +msgid_plural "%s Comments" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-includes/embed.php:975 +#: tmp/wordpress/wp-includes/embed.php:975 +msgid "Open sharing dialog" +msgstr "" + +#: tmp/old/wordpress/wp-includes/embed.php:992 +#: tmp/wordpress/wp-includes/embed.php:992 +msgid "Sharing options" +msgstr "" + +#: tmp/old/wordpress/wp-includes/embed.php:997 +#: tmp/wordpress/wp-includes/embed.php:997 +msgid "WordPress Embed" +msgstr "" + +#: tmp/old/wordpress/wp-includes/embed.php:1000 +#: tmp/wordpress/wp-includes/embed.php:1000 +msgid "HTML Embed" +msgstr "" + +#: tmp/old/wordpress/wp-includes/embed.php:1007 +#: tmp/wordpress/wp-includes/embed.php:1007 +msgid "Copy and paste this URL into your WordPress site to embed" +msgstr "" + +#: tmp/old/wordpress/wp-includes/embed.php:1014 +#: tmp/wordpress/wp-includes/embed.php:1014 +msgid "Copy and paste this code into your site to embed" +msgstr "" + +#: tmp/old/wordpress/wp-includes/embed.php:1019 +#: tmp/wordpress/wp-includes/embed.php:1019 +msgid "Close sharing dialog" +msgstr "" + +#. translators: Comments feed title. 1: Post title +#: tmp/old/wordpress/wp-includes/feed-atom-comments.php:33 +#: tmp/wordpress/wp-includes/feed-atom-comments.php:33 +msgid "Comments on %s" +msgstr "" + +#. translators: Comments feed title. 1: Site name, 2: Search query +#: tmp/old/wordpress/wp-includes/feed-atom-comments.php:36 +#: tmp/old/wordpress/wp-includes/feed-rss2-comments.php:41 +#: tmp/wordpress/wp-includes/feed-atom-comments.php:36 +#: tmp/wordpress/wp-includes/feed-rss2-comments.php:41 +msgid "Comments for %1$s searching on %2$s" +msgstr "" + +#. translators: Comments feed title. 1: Site name +#: tmp/old/wordpress/wp-includes/feed-atom-comments.php:39 +#: tmp/old/wordpress/wp-includes/feed-rss2-comments.php:44 +#: tmp/wordpress/wp-includes/feed-atom-comments.php:39 +#: tmp/wordpress/wp-includes/feed-rss2-comments.php:44 +msgid "Comments for %s" +msgstr "" + +#. translators: Individual comment title. 1: Post title, 2: Comment author name +#: tmp/old/wordpress/wp-includes/feed-atom-comments.php:81 +#: tmp/old/wordpress/wp-includes/feed-rss2-comments.php:80 +#: tmp/wordpress/wp-includes/feed-atom-comments.php:81 +#: tmp/wordpress/wp-includes/feed-rss2-comments.php:80 +msgid "Comment on %1$s by %2$s" +msgstr "" + +#. translators: Comment author title. 1: Comment author name +#: tmp/old/wordpress/wp-includes/feed-atom-comments.php:84 +#: tmp/old/wordpress/wp-includes/feed-rss2-comments.php:83 +#: tmp/wordpress/wp-includes/feed-atom-comments.php:84 +#: tmp/wordpress/wp-includes/feed-rss2-comments.php:83 +msgid "By: %s" +msgstr "" + +#. translators: Comments feed title. 1: Post title +#: tmp/old/wordpress/wp-includes/feed-rss2-comments.php:38 +#: tmp/wordpress/wp-includes/feed-rss2-comments.php:38 +msgid "Comments on: %s" +msgstr "" + +#: tmp/old/wordpress/wp-includes/feed-rss2-comments.php:91 +#: tmp/wordpress/wp-includes/feed-rss2-comments.php:91 +msgid "Protected Comments: Please enter your password to view comments." +msgstr "" + +#. translators: %s: 'document_title_separator' filter name +#: tmp/old/wordpress/wp-includes/feed.php:103 +#: tmp/old/wordpress/wp-includes/feed.php:129 +#: tmp/wordpress/wp-includes/feed.php:103 +#: tmp/wordpress/wp-includes/feed.php:129 +msgid "Use the %s filter instead." +msgstr "" + +#. translators: opening curly double quote +#: tmp/old/wordpress/wp-includes/formatting.php:88 +#: tmp/old/wordpress/wp-includes/formatting.php:4791 +#: tmp/wordpress/wp-includes/formatting.php:88 +#: tmp/wordpress/wp-includes/formatting.php:4791 +msgctxt "opening curly double quote" +msgid "“" +msgstr "" + +#. translators: closing curly double quote +#: tmp/old/wordpress/wp-includes/formatting.php:90 +#: tmp/wordpress/wp-includes/formatting.php:90 +msgctxt "closing curly double quote" +msgid "”" +msgstr "" + +#. translators: apostrophe, for example in 'cause or can't +#: tmp/old/wordpress/wp-includes/formatting.php:93 +#: tmp/wordpress/wp-includes/formatting.php:93 +msgctxt "apostrophe" +msgid "’" +msgstr "" + +#. translators: prime, for example in 9' (nine feet) +#: tmp/old/wordpress/wp-includes/formatting.php:96 +#: tmp/wordpress/wp-includes/formatting.php:96 +msgctxt "prime" +msgid "′" +msgstr "" + +#. translators: double prime, for example in 9" (nine inches) +#: tmp/old/wordpress/wp-includes/formatting.php:98 +#: tmp/wordpress/wp-includes/formatting.php:98 +msgctxt "double prime" +msgid "″" +msgstr "" + +#. translators: opening curly single quote +#: tmp/old/wordpress/wp-includes/formatting.php:101 +#: tmp/wordpress/wp-includes/formatting.php:101 +msgctxt "opening curly single quote" +msgid "‘" +msgstr "" + +#. translators: closing curly single quote +#: tmp/old/wordpress/wp-includes/formatting.php:103 +#: tmp/wordpress/wp-includes/formatting.php:103 +msgctxt "closing curly single quote" +msgid "’" +msgstr "" + +#. translators: en dash +#: tmp/old/wordpress/wp-includes/formatting.php:106 +#: tmp/wordpress/wp-includes/formatting.php:106 +msgctxt "en dash" +msgid "–" +msgstr "" + +#. translators: em dash +#: tmp/old/wordpress/wp-includes/formatting.php:108 +#: tmp/wordpress/wp-includes/formatting.php:108 +msgctxt "em dash" +msgid "—" +msgstr "" + +#. translators: This is a comma-separated list of words that defy the syntax of +#. quotations in normal use, for example... 'We do not have enough words yet' +#. ... is a typical quoted phrase. But when we write lines of code 'til we +#. have enough of 'em, then we need to insert apostrophes instead of quotes. +#: tmp/old/wordpress/wp-includes/formatting.php:122 +#: tmp/wordpress/wp-includes/formatting.php:122 +msgctxt "Comma-separated list of words to texturize in your language" +msgid "'tain't,'twere,'twas,'tis,'twill,'til,'bout,'nuff,'round,'cause,'em" +msgstr "" + +#: tmp/old/wordpress/wp-includes/formatting.php:125 +#: tmp/wordpress/wp-includes/formatting.php:125 +msgctxt "Comma-separated list of replacement words in your language" +msgid "" +"’tain’t,’twere,’twas,’tis,’twill,’" +"til,’bout,’nuff,’round,’cause,’em" +msgstr "" + +#. translators: Time difference between two dates, in minutes (min=minute). 1: +#. Number of minutes +#: tmp/old/wordpress/wp-includes/formatting.php:3227 +#: tmp/wordpress/wp-includes/formatting.php:3227 +msgid "%s min" +msgid_plural "%s mins" +msgstr[0] "" +msgstr[1] "" + +#: tmp/old/wordpress/wp-includes/formatting.php:3344 +#: tmp/old/wordpress/wp-includes/general-template.php:3344 +#: tmp/wordpress/wp-includes/formatting.php:3344 +#: tmp/wordpress/wp-includes/general-template.php:3344 +msgid "…" +msgstr "" + +#. translators: If your word count is based on single characters (e.g. East +#. Asian characters), enter 'characters_excluding_spaces' or +#. 'characters_including_spaces'. Otherwise, enter 'words'. Do not translate +#. into your own language. +#: tmp/old/wordpress/wp-includes/formatting.php:3355 +#: tmp/old/wordpress/wp-includes/script-loader.php:446 +#: tmp/wordpress/wp-includes/formatting.php:3355 +#: tmp/wordpress/wp-includes/script-loader.php:446 +msgctxt "Word count type. Do not translate!" +msgid "words" +msgstr "" + +#: tmp/old/wordpress/wp-includes/formatting.php:4058 +#: tmp/wordpress/wp-includes/formatting.php:4058 +msgid "" +"The email address entered did not appear to be a valid email address. Please " +"enter a valid email address." +msgstr "" + +#: tmp/old/wordpress/wp-includes/formatting.php:4164 +#: tmp/wordpress/wp-includes/formatting.php:4164 +msgid "" +"The WordPress address you entered did not appear to be a valid URL. Please " +"enter a valid URL." +msgstr "" + +#: tmp/old/wordpress/wp-includes/formatting.php:4177 +#: tmp/wordpress/wp-includes/formatting.php:4177 +msgid "" +"The Site address you entered did not appear to be a valid URL. Please enter " +"a valid URL." +msgstr "" + +#: tmp/old/wordpress/wp-includes/formatting.php:4232 +#: tmp/wordpress/wp-includes/formatting.php:4232 +msgid "" +"The timezone you have entered is not valid. Please select a valid timezone." +msgstr "" + +#. translators: %s: Codex URL +#: tmp/old/wordpress/wp-includes/formatting.php:4250 +#: tmp/wordpress/wp-includes/formatting.php:4250 +msgid "" +"A structure tag is required when using custom permalinks. Learn more" +msgstr "" + +#: tmp/old/wordpress/wp-includes/formatting.php:4251 +#: tmp/wordpress/wp-includes/formatting.php:4251 +msgid "" +"https://codex.wordpress.org/" +"Using_Permalinks#Choosing_your_permalink_structure" +msgstr "" + +#. translators: used to join items in a list with more than 2 items +#: tmp/old/wordpress/wp-includes/formatting.php:4482 +#: tmp/wordpress/wp-includes/formatting.php:4482 +msgid "%s, %s" +msgstr "" + +#. translators: used to join last two items in a list with more than 2 times +#: tmp/old/wordpress/wp-includes/formatting.php:4484 +#: tmp/wordpress/wp-includes/formatting.php:4484 +msgid "%s, and %s" +msgstr "" + +#. translators: used to join items in a list with only 2 items +#: tmp/old/wordpress/wp-includes/formatting.php:4486 +#: tmp/wordpress/wp-includes/formatting.php:4486 +msgid "%s and %s" +msgstr "" + +#. translators: If months in your language require a genitive case, translate +#. this to 'on'. Do not translate into your own language. +#: tmp/old/wordpress/wp-includes/functions.php:175 +#: tmp/wordpress/wp-includes/functions.php:175 +msgctxt "decline months names: on or off" +msgid "off" +msgstr "" + +#: tmp/old/wordpress/wp-includes/functions.php:1225 +#: tmp/wordpress/wp-includes/functions.php:1225 +msgid "ERROR: This is not a valid feed template." +msgstr "" + +#. translators: %s: database repair URL +#: tmp/old/wordpress/wp-includes/functions.php:1408 +#: tmp/wordpress/wp-includes/functions.php:1408 +msgid "" +"One or more database tables are unavailable. The database may need to be repaired." +msgstr "" + +#. translators: %s: directory path +#: tmp/old/wordpress/wp-includes/functions.php:1897 +#: tmp/old/wordpress/wp-includes/functions.php:2165 +#: tmp/wordpress/wp-includes/functions.php:1897 +#: tmp/wordpress/wp-includes/functions.php:2165 +msgid "" +"Unable to create directory %s. Is its parent directory writable by the " +"server?" +msgstr "" + +#: tmp/old/wordpress/wp-includes/functions.php:2127 +#: tmp/wordpress/wp-includes/functions.php:2127 +msgid "Empty filename" +msgstr "" + +#: tmp/old/wordpress/wp-includes/functions.php:2131 +#: tmp/wordpress/wp-includes/functions.php:2131 +msgid "Invalid file type" +msgstr "" + +#: tmp/old/wordpress/wp-includes/functions.php:2173 +#: tmp/wordpress/wp-includes/functions.php:2173 +msgid "Could not write file %s" +msgstr "" + +#. translators: %s: site name +#: tmp/old/wordpress/wp-includes/functions.php:2584 +#: tmp/wordpress/wp-includes/functions.php:2584 +msgid "You are attempting to log out of %s" +msgstr "" + +#. translators: %s: logout URL +#: tmp/old/wordpress/wp-includes/functions.php:2591 +#: tmp/wordpress/wp-includes/functions.php:2591 +msgid "Do you really want to log out?" +msgstr "" + +#: tmp/old/wordpress/wp-includes/functions.php:2600 +#: tmp/old/wordpress/wp-includes/ms-functions.php:1970 +#: tmp/wordpress/wp-includes/functions.php:2600 +#: tmp/wordpress/wp-includes/ms-functions.php:1970 +msgid "Please try again." +msgstr "" + +#: tmp/old/wordpress/wp-includes/functions.php:2605 +#: tmp/wordpress/wp-includes/functions.php:2605 +msgid "WordPress Failure Notice" +msgstr "" + +#: tmp/old/wordpress/wp-includes/functions.php:2725 +#: tmp/wordpress/wp-includes/functions.php:2725 +msgid "« Back" +msgstr "" + +#: tmp/old/wordpress/wp-includes/functions.php:2737 +#: tmp/old/wordpress/wp-load.php:92 +#: tmp/wordpress/wp-includes/functions.php:2737 tmp/wordpress/wp-load.php:92 +msgid "WordPress › Error" +msgstr "" + +#: tmp/old/wordpress/wp-includes/functions.php:3764 +#: tmp/wordpress/wp-includes/functions.php:3764 +msgid "Database Error" +msgstr "" + +#: tmp/old/wordpress/wp-includes/functions.php:3768 +#: tmp/old/wordpress/wp-includes/ms-load.php:462 +#: tmp/old/wordpress/wp-includes/wp-db.php:1583 +#: tmp/wordpress/wp-includes/functions.php:3768 +#: tmp/wordpress/wp-includes/ms-load.php:462 +#: tmp/wordpress/wp-includes/wp-db.php:1583 +msgid "Error establishing a database connection" +msgstr "" + +#. translators: 1: PHP function name, 2: version number, 3: alternative +#. function name +#. translators: 1: PHP file name, 2: version number, 3: alternative file name +#. translators: 1: WordPress hook name, 2: version number, 3: alternative hook +#. name +#: tmp/old/wordpress/wp-includes/functions.php:3829 +#: tmp/old/wordpress/wp-includes/functions.php:3957 +#: tmp/old/wordpress/wp-includes/functions.php:4080 +#: tmp/wordpress/wp-includes/functions.php:3829 +#: tmp/wordpress/wp-includes/functions.php:3957 +#: tmp/wordpress/wp-includes/functions.php:4080 +msgid "" +"%1$s is deprecated since version %2$s! Use %3$s instead." +msgstr "" + +#. translators: 1: PHP function name, 2: version number +#. translators: 1: PHP file name, 2: version number +#. translators: 1: WordPress hook name, 2: version number +#: tmp/old/wordpress/wp-includes/functions.php:3832 +#: tmp/old/wordpress/wp-includes/functions.php:3960 +#: tmp/old/wordpress/wp-includes/functions.php:4083 +#: tmp/wordpress/wp-includes/functions.php:3832 +#: tmp/wordpress/wp-includes/functions.php:3960 +#: tmp/wordpress/wp-includes/functions.php:4083 +msgid "" +"%1$s is deprecated since version %2$s with no alternative " +"available." +msgstr "" + +#. translators: 1: PHP class name, 2: PHP parent class name, 3: version number, +#. 4: __construct() method +#: tmp/old/wordpress/wp-includes/functions.php:3891 +#: tmp/wordpress/wp-includes/functions.php:3891 +msgid "" +"The called constructor method for %1$s in %2$s is deprecated since version %3$s! Use %4$s instead." +msgstr "" + +#. translators: 1: PHP class name, 2: version number, 3: __construct() method +#: tmp/old/wordpress/wp-includes/functions.php:3895 +#: tmp/wordpress/wp-includes/functions.php:3895 +msgid "" +"The called constructor method for %1$s is deprecated since " +"version %2$s! Use %3$s instead." +msgstr "" + +#. translators: 1: PHP function name, 2: version number, 3: optional message +#. regarding the change +#: tmp/old/wordpress/wp-includes/functions.php:4021 +#: tmp/wordpress/wp-includes/functions.php:4021 +msgid "" +"%1$s was called with an argument that is deprecated since " +"version %2$s! %3$s" +msgstr "" + +#. translators: 1: PHP function name, 2: version number +#: tmp/old/wordpress/wp-includes/functions.php:4024 +#: tmp/wordpress/wp-includes/functions.php:4024 +msgid "" +"%1$s was called with an argument that is deprecated since " +"version %2$s with no alternative available." +msgstr "" + +#. translators: %s: version number +#: tmp/old/wordpress/wp-includes/functions.php:4130 +#: tmp/wordpress/wp-includes/functions.php:4130 +msgid "(This message was added in version %s.)" +msgstr "" + +#. translators: %s: Codex URL +#: tmp/old/wordpress/wp-includes/functions.php:4133 +#: tmp/wordpress/wp-includes/functions.php:4133 +msgid "" +"Please see Debugging in WordPress for more information." +msgstr "" + +#: tmp/old/wordpress/wp-includes/functions.php:4134 +#: tmp/wordpress/wp-includes/functions.php:4134 +msgid "https://codex.wordpress.org/Debugging_in_WordPress" +msgstr "" + +#. translators: Developer debugging message. 1: PHP function name, 2: +#. Explanatory message, 3: Version information message +#: tmp/old/wordpress/wp-includes/functions.php:4137 +#: tmp/wordpress/wp-includes/functions.php:4137 +msgid "%1$s was called incorrectly. %2$s %3$s" +msgstr "" + +#: tmp/old/wordpress/wp-includes/functions.php:4619 +#: tmp/wordpress/wp-includes/functions.php:4619 +msgid "Select a city" +msgstr "" + +#: tmp/old/wordpress/wp-includes/functions.php:4672 +#: tmp/wordpress/wp-includes/functions.php:4672 +msgid "Manual Offsets" +msgstr "" + +#: tmp/old/wordpress/wp-includes/functions.php:5258 +#: tmp/wordpress/wp-includes/functions.php:5258 +msgid "Close dialog" +msgstr "" + +#: tmp/old/wordpress/wp-includes/functions.php:5269 +#: tmp/old/wordpress/wp-includes/script-loader.php:470 +#: tmp/wordpress/wp-includes/functions.php:5269 +#: tmp/wordpress/wp-includes/script-loader.php:470 +msgid "Session expired" +msgstr "" + +#: tmp/old/wordpress/wp-includes/functions.php:5270 +#: tmp/old/wordpress/wp-includes/user.php:280 +#: tmp/wordpress/wp-includes/functions.php:5270 +#: tmp/wordpress/wp-includes/user.php:280 +msgid "Please log in again." +msgstr "" + +#: tmp/old/wordpress/wp-includes/functions.php:5271 +#: tmp/wordpress/wp-includes/functions.php:5271 +msgid "" +"The login page will open in a new window. After logging in you can close it " +"and return to this page." +msgstr "" + +#. translators: 1: wp_enqueue_scripts, 2: admin_enqueue_scripts, 3: +#. login_enqueue_scripts +#: tmp/old/wordpress/wp-includes/functions.wp-scripts.php:43 +#: tmp/wordpress/wp-includes/functions.wp-scripts.php:43 +msgid "" +"Scripts and styles should not be registered or enqueued until the %1$s, " +"%2$s, or %3$s hooks." +msgstr "" + +#. translators: 1: