Example #1
0
 /**
  * Get translations by their strings.
  *
  * @param string $key
  * @param string|null $lang
  *
  * @throws \BadFunctionCallException
  *
  * @return string
  */
 function trans($key, $lang = null)
 {
     if (!function_exists('pll__')) {
         throw new BadFunctionCallException('Please active the Polylang plugin.');
     }
     if ($lang) {
         return pll_translate_string($key, $lang);
     }
     return pll__($key);
 }
 /**
  * Add translation strings to translatable strings
  *
  * @param array $parameter ["domain" => "wpsolr facel label", "name" => "categories", "text" => "my categories"]
  */
 function get_translation_string($string, $parameter)
 {
     if (empty($parameter['language'])) {
         // Translate with current language
         $result = pll__($parameter['name']);
     } else {
         // Translate with parameter language
         $result = pll_translate_string($parameter['name'], $parameter['language']);
     }
     return $result;
 }
 /**
  * @used-by  Filters\"gform_field_validation"
  * @param    array  $result
  * @param    mixed  $value
  * @param    array  $form
  * @param    array  $field
  */
 public function gform_field_validation($result, $value, $form, $field)
 {
     $this->pll_set_language($this->default_lang);
     if (!$result['is_valid']) {
         $result['message'] = pll_translate_string($result['message'], $this->current_lang);
     }
     $this->pll_reset_language();
     return $result;
 }
function eme_translate($value, $lang = '')
{
    //if (empty($lang))
    //   $lang=eme_detect_lang();
    if (function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage') && function_exists('qtrans_use')) {
        if (empty($lang)) {
            return qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($value);
        } else {
            return qtrans_use($lang, $value);
        }
    } elseif (function_exists('ppqtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage') && function_exists('ppqtrans_use')) {
        if (empty($lang)) {
            return ppqtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($value);
        } else {
            return ppqtrans_use($lang, $value);
        }
    } elseif (function_exists('qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage') && function_exists('qtranxf_use')) {
        if (empty($lang)) {
            return qtranxf_useCurrentLanguageIfNotFoundUseDefaultLanguage($value);
        } else {
            return qtranxf_use($lang, $value);
        }
    } elseif (function_exists('pll_translate_string') && function_exists('pll__')) {
        if (empty($lang)) {
            return pll__($value);
        } else {
            return pll_translate_string($value, $lang);
        }
    } else {
        return $value;
    }
}
Example #5
0
$chall = '';
while ($row = pg_fetch_object($prg)) {
    if ($chall != $row->hallname && strlen($chall) > 1) {
        $bg .= "</table>\n";
        $en .= "</table>\n";
    }
    if ($cdate != $row->dt) {
        $cdate = $row->dt;
        $bg .= "<h2>{$cdate}</h2>\n";
        $en .= "<h2>{$cdate}</h2>\n";
    }
    if ($chall != $row->hallname) {
        $chall = $row->hallname;
        echo pll_translate_string($chall, 'en_US') . "\n";
        $en .= "<table><caption>" . pll_translate_string($chall, 'en') . " Hall</caption><tbody>";
        $bg .= "<table><caption>Š—Š°Š»Š° " . pll_translate_string($chall, 'bg') . "</caption><tbody>";
    }
    $bg .= '<tr><td class="time">' . $row->start . ' - ' . $row->end . '</td>';
    $bg .= '<td><span class="lecture-title"><a href="javascript: void0">' . htmlentities($row->title) . '</a></span><br/>';
    $bg .= '<a class="vt-p" href="/bg/schedule-3/speakers/#' . htmlentities($row->spname) . '">' . htmlentities($row->spname) . '</a><br/>';
    $bg .= '<font color="#' . $row->tcolor . '">' . $row->tname . '</font>';
    $bg .= '<div class="lecture-description">' . htmlentities($row->abstract) . '</div></td></tr>';
    $en .= '<tr><td class="time">' . $row->start . ' - ' . $row->end . '</td>';
    $en .= '<td><span class="lecture-title"><a href="javascript: void0">' . htmlentities($row->title) . '</a></span><br/>';
    $en .= '<a class="vt-p" href="/en/schedule/speakers/#' . htmlentities($row->spname) . '">' . htmlentities($row->spname) . '</a><br/>';
    $en .= '<font color="#' . $row->tcolor . '">' . $row->tname . '</font>';
    $en .= '<div class="lecture-description">' . htmlentities($row->abstract) . '</div></td></tr>';
    /*
    		<tr>
    			<td class="time">10:15 ā€“ 11:00</td>
    			<td><span class="lecture-title"><a href="javascript: void0">Open-source hardware Š¾Ń‚ Š‘ŃŠŠ»Š³Š°Ń€Šøя</a></span>
Example #6
0
 /**
  * Correct Polylang Switcher Links
  *
  * Add the correct endpoint translations for polylang switcher links
  *
  * @global \WP $wp
  * @param string $link link
  * @param string $slug langauge
  *
  * @return string final link
  */
 public function correctPolylangSwitcherLinks($link, $slug)
 {
     global $wp;
     $endpoints = WC()->query->get_query_vars();
     foreach ($endpoints as $key => $value) {
         if (isset($wp->query_vars[$key])) {
             $link = str_replace($value, pll_translate_string($key, $slug), $link);
             break;
         }
     }
     return $link;
 }
 /**
  * Apply translations with Polylang.
  *
  * @used-by Actions\"acf/get_valid_field"
  */
 public function acf_get_valid_field($field)
 {
     global $polylang;
     if ($this->current_lang === $this->default_lang) {
         return $field;
     }
     if (isset($this->_fields[$field['key']][$this->current_lang])) {
         return $this->_fields[$field['key']][$this->current_lang];
     }
     /** Trick Polylang into loading from the proper language file. Current one is set by get_locale() */
     $this->pll_set_language($this->default_lang);
     $field_keys = $this->_get_field_keys();
     $this->inject_strings($field, $field_keys);
     switch ($field['type']) {
         case 'text':
         case 'textarea':
         case 'number':
         case 'email':
         case 'url':
         case 'password':
         case 'select':
             if (isset($field['placeholder']) && '' != $field['placeholder']) {
                 $field['placeholder'] = pll_translate_string($field['placeholder'], $this->current_lang);
             }
             break;
         case 'text':
         case 'textarea':
         case 'number':
         case 'email':
         case 'url':
         case 'password':
             $affix_keys = $this->_get_affix_keys();
             foreach ($affix_keys as $key) {
                 if (isset($field[$key]) && '' != $field[$key]) {
                     $field[$key] = pll_translate_string($field[$key], $this->current_lang);
                 }
             }
             break;
         case 'true_false':
         case 'message':
             if (isset($field['message']) && '' != $field['message']) {
                 $field['message'] = pll_translate_string($field['message'], $this->current_lang);
             }
         case 'select':
         case 'checkbox':
         case 'radio':
         case 'true_false':
             if (!empty($field['choices'])) {
                 foreach ($field['choices'] as &$choice) {
                     $choice = pll_translate_string($choice, $this->current_lang);
                 }
             }
             break;
         case 'google_map':
             $location_keys = $this->_get_location_keys();
             foreach ($location_keys as $key) {
                 if (isset($field[$key]) && '' != $field[$key]) {
                     $field[$key] = pll_translate_string($field[$key], $this->current_lang);
                 }
             }
             break;
         case 'date_picker':
             $date_keys = $this->_get_date_keys();
             foreach ($date_keys as $key) {
                 if (isset($field[$key]) && '' != $field[$key]) {
                     $field[$key] = pll_translate_string($field[$key], $this->current_lang);
                 }
             }
             break;
         case 'repeater':
         case 'flexible_content':
             if (isset($field['button_label']) && '' != $field['button_label']) {
                 $field['button_label'] = pll_translate_string($field['button_label'], $this->current_lang);
             }
         case 'flexible_content':
             if (!empty($field['layouts'])) {
                 foreach ($field['layouts'] as &$layout) {
                     $prefix = $_prefix . $field['key'] . '.layouts.' . $layout['key'] . '.';
                     $data[$prefix . 'label'] = ['string' => $choice, 'multiline' => false];
                     $layout['label'] = pll_translate_string($layout['label'], $this->current_lang);
                 }
             }
             break;
     }
     $this->pll_reset_language();
     $this->_fields[$field['id']][$this->current_lang] = $field;
     return $field;
 }
Example #8
0
 $price = get_post_meta($bid, 'price', true);
 $room = get_post_meta($bid, 'room', true);
 $adults = get_post_meta($bid, 'adults', true);
 $children = get_post_meta($bid, 'children', true);
 $message = get_post_meta($bid, 'message', true);
 $token = get_post_meta($bid, 'token', true);
 $lang = get_post_meta($bid, 'lang', true);
 $address = get_post_meta($bid, 'email', true);
 $from = mytheme_get_option('place_name') . ' <' . $address . '>';
 $email_bcc = get_bloginfo('admin_email');
 $e_subject = sprintf(pll_translate_string(booking_get_option('bookingwp_confirmed_email_subject'), $lang), $name);
 // Configuration option.
 $request_language = $lang;
 $intro_text = sprintf(pll_translate_string(booking_get_option('bookingwp_confirmed_email'), $request_language), $name);
 $reservation_details = booking_details($bid);
 $cancellation_policy = sprintf(pll_translate_string(booking_get_option('bookingwp_cancellation_policy'), $request_language), $name);
 $email_content = $intro_text;
 $email_content .= $reservation_details;
 $email_content .= "<hr/>" . PHP_EOL . PHP_EOL;
 $email_content .= "<h5>Cancellation Policy</h5><small>" . $cancellation_policy . "</small>";
 $msg = wordwrap($e_body, 70);
 $e_body = build_email($email_content);
 $headers[] = "From: {$from}" . PHP_EOL;
 $headers[] = "Bcc: {$email_bcc}" . PHP_EOL;
 //customer voucher
 wp_mail($address, $e_subject, $e_body, $headers);
 //admin card
 $owner_subject = __('Conferma Prenotazione #', 'wpbooking') . $bid;
 $owner_address = mytheme_get_option('email');
 $from = mytheme_get_option('place_name') . ' <' . $address . '>';
 $email_content_owner = "<b>Card:</b> {$encrypted}<br />";
Example #9
0
// pll_register_string('URL ConheƧa a Rede', 'conheca-a-rede-tim-tec', 'timtec');
add_action('generate_rewrite_rules', function ($wp_rewrite) {
    $new_rules = [];
    foreach (pll_languages_list() as $lcode) {
        //    $str_courses = pll_translate_string('cursos', $lcode);
        //    $new_rules["^$lcode/$str_courses/?$"] = "index.php?template=courses";
        //    $str_conselho = pll_translate_string('conselho', $lcode);
        //    $new_rules["^$lcode/$str_conselho/?$"] = "index.php?template=conselho";
        //
        //    $str_software = pll_translate_string('software', $lcode);
        //    $new_rules["^$lcode/$str_software/?$"] = "index.php?template=software";
        //
        //    $str_redes = pll_translate_string('redes', $lcode);
        //    $new_rules["^$lcode/$str_redes/?$"] = "index.php?template=redes";
        //
        $str_noticias = pll_translate_string('noticias', $lcode);
        $new_rules["^{$lcode}/{$str_noticias}/?\$"] = "index.php?post_type=post";
        //
        //    $str_suporte = pll_translate_string('suporte', $lcode);
        //    $new_rules["^$lcode/$str_suporte/?$"] = "index.php?template=suporte";
        //
        //    $str_cadastro = pll_translate_string('cadastro', $lcode);
        //    $new_rules["^$lcode/$str_cadastro/?$"] = "index.php?template=cadastro";
        //
        ////    $str_contato = pll_translate_string('contato', $lcode);
        ////    $new_rules["^$lcode/$str_contato/?$"] = "index.php?template=contato";
        //
        //
        //    $str_manuais = pll_translate_string('manuais', $lcode);
        //    $new_rules["^$lcode/$str_manuais/?$"] = "index.php?template=manuais";
        //
Example #10
0
 /**
  * Get post type and taxonomy slugs.
  */
 public function set_translated_slugs()
 {
     $plugin = '';
     // check if WPML or Polylang is active
     include_once ABSPATH . 'wp-admin/includes/plugin.php';
     if (is_plugin_active('polylang/polylang.php') && class_exists('Polylang')) {
         global $polylang;
         $plugin = 'Polylang';
     } elseif (is_plugin_active('sitepress-multilingual-cms/sitepress.php') && is_plugin_active('wpml-string-translation/plugin.php' && class_exists('SitePress'))) {
         global $sitepress;
         $plugin = 'WPML';
     }
     if (empty($plugin)) {
         return;
     }
     $languages = array();
     $default = '';
     // Polylang
     if ($plugin === 'Polylang' && array_key_exists('polylang', $GLOBALS)) {
         global $polylang;
         // get registered languages
         $registered_languages = $polylang->model->get_languages_list();
         if (!empty($registered_languages)) {
             foreach ($registered_languages as $language) {
                 $languages[] = $language->slug;
             }
         }
         // get default language
         $default = pll_default_language();
         // WPML
     } elseif ($plugin === 'WPML' && array_key_exists('sitepress', $GLOBALS)) {
         global $sitepress;
         // get registered languages
         $registered_languages = icl_get_languages();
         if (!empty($registered_languages)) {
             foreach ($registered_languages as $language) {
                 $languages[] = $language['language_code'];
             }
         }
         // get default language
         $default = $sitepress->get_default_language();
         $current = $sitepress->get_current_language();
     }
     if (!empty($languages)) {
         foreach ($languages as $language) {
             $slugs = array();
             if ($plugin === 'Polylang' && function_exists('pll_translate_string')) {
                 // get language strings
                 $slugs['event_rewrite_base'] = pll_translate_string(untrailingslashit(esc_html(Events_Maker()->options['permalinks']['event_rewrite_base'])), $language);
                 $slugs['event_rewrite_slug'] = pll_translate_string(untrailingslashit(esc_html(Events_Maker()->options['permalinks']['event_rewrite_slug'])), $language);
                 $slugs['event_categories_rewrite_slug'] = pll_translate_string(untrailingslashit(esc_html(Events_Maker()->options['permalinks']['event_categories_rewrite_slug'])), $language);
                 $slugs['event_locations_rewrite_slug'] = pll_translate_string(untrailingslashit(esc_html(Events_Maker()->options['permalinks']['event_locations_rewrite_slug'])), $language);
                 if (Events_Maker()->options['general']['use_tags'] === true) {
                     $slugs['event_tags_rewrite_slug'] = pll_translate_string(untrailingslashit(esc_html(Events_Maker()->options['permalinks']['event_tags_rewrite_slug'])), $language);
                 }
                 if (Events_Maker()->options['general']['use_organizers'] === true) {
                     $slugs['event_organizers_rewrite_slug'] = pll_translate_string(untrailingslashit(esc_html(Events_Maker()->options['permalinks']['event_organizers_rewrite_slug'])), $language);
                 }
             } elseif ($plugin === 'WPML' && function_exists('icl_t')) {
                 $sitepress->switch_lang($language, true);
                 $has_translation = null;
                 // required by WPML icl_t() function
                 $slugs['event_rewrite_base'] = icl_t('Events Maker', 'Event rewrite base', untrailingslashit(esc_html(Events_Maker()->options['permalinks']['event_rewrite_base'])), $has_translation, false, $language);
                 $slugs['event_rewrite_slug'] = icl_t('Events Maker', 'Event rewrite slug', untrailingslashit(esc_html(Events_Maker()->options['permalinks']['event_rewrite_slug'])), $has_translation, false, $language);
                 $slugs['event_categories_rewrite_slug'] = icl_t('Events Maker', 'Event Categories rewrite slug', untrailingslashit(esc_html(Events_Maker()->options['permalinks']['event_categories_rewrite_slug'])), $has_translation, false, $language);
                 $slugs['event_locations_rewrite_slug'] = icl_t('Events Maker', 'Event Locations rewrite slug', untrailingslashit(esc_html(Events_Maker()->options['permalinks']['event_locations_rewrite_slug'])), $has_translation, false, $language);
                 if (Events_Maker()->options['general']['use_tags'] === true) {
                     $slugs['event_tags_rewrite_slug'] = icl_t('Events Maker', 'Event Tags rewrite slug', untrailingslashit(esc_html(Events_Maker()->options['permalinks']['event_tags_rewrite_slug'])), $has_translation, false, $language);
                 }
                 if (Events_Maker()->options['general']['use_organizers'] === true) {
                     $slugs['event_organizers_rewrite_slug'] = icl_t('Events Maker', 'Event Organizers rewrite slug', untrailingslashit(esc_html(Events_Maker()->options['permalinks']['event_organizers_rewrite_slug'])), $has_translation, false, $language);
                 }
             }
             $slugs = apply_filters('em_translated_taxonomy_rewrite_slugs_' . $language, $slugs);
             // set translated post type slugs
             $this->post_type_slugs['event'][$language] = array('has_archive' => $slugs['event_rewrite_base'], 'rewrite' => array('slug' => $slugs['event_rewrite_base'] . '/' . $slugs['event_rewrite_slug']));
             // set translated taxonomy slugs
             $this->taxonomy_slugs['event-category'][$language] = $slugs['event_rewrite_base'] . '/' . $slugs['event_categories_rewrite_slug'];
             $this->taxonomy_slugs['event-location'][$language] = $slugs['event_rewrite_base'] . '/' . $slugs['event_locations_rewrite_slug'];
             if (Events_Maker()->options['general']['use_tags'] === true) {
                 $this->taxonomy_slugs['event-tag'][$language] = $slugs['event_rewrite_base'] . '/' . $slugs['event_tags_rewrite_slug'];
             }
             if (Events_Maker()->options['general']['use_organizers'] === true) {
                 $this->taxonomy_slugs['event-organizer'][$language] = $slugs['event_rewrite_base'] . '/' . $slugs['event_organizers_rewrite_slug'];
             }
         }
         // switch back to current language
         if ($plugin === 'WPML') {
             $sitepress->switch_lang($current, true);
         }
     }
 }
Example #11
0
 function icl_translate($context, $name, $string = false, $bool = false, &$has_translation = null, $lang = null)
 {
     // FIXME WPML can automatically registers the string based on an option
     if (empty($string)) {
         $string = PLL_WPML_Compat::instance()->get_string_by_context_and_name($context, $name);
     }
     return empty($lang) ? pll__($string) : pll_translate_string($string, $lang);
 }
Example #12
0
function send_confirmation($bid)
{
    $name = get_post_meta($bid, 'name', true);
    $email = get_post_meta($bid, 'email', true);
    $phone = get_post_meta($bid, 'phone', true);
    $checkin = get_post_meta($bid, 'checkin', true);
    $checkout = get_post_meta($bid, 'checkout', true);
    $price = get_post_meta($bid, 'price', true);
    $room = get_post_meta($bid, 'room', true);
    $adults = get_post_meta($bid, 'adults', true);
    $children = get_post_meta($bid, 'children', true);
    $message = get_post_meta($bid, 'message', true);
    $token = get_post_meta($bid, 'token', true);
    $lang = get_post_meta($bid, 'lang', true);
    $address = get_post_meta($bid, 'email', true);
    $from = mytheme_get_option('place_name') . ' <' . $address . '>';
    $email_bcc = get_bloginfo('admin_email');
    $e_subject = sprintf(pll_translate_string(booking_get_option('bookingwp_confirmed_email_subject'), $lang), $name);
    // Configuration option.
    $request_language = $lang;
    $intro_text = sprintf(pll_translate_string(booking_get_option('bookingwp_confirmed_email'), $request_language), $name);
    $reservation_details = booking_details($bid);
    $cancellation_policy = sprintf(pll_translate_string(booking_get_option('bookingwp_cancellation_policy'), $request_language), $name);
    $email_content = $intro_text;
    $email_content .= $reservation_details;
    $email_content .= "<hr/>" . PHP_EOL . PHP_EOL;
    $email_content .= "<h5>Cancellation Policy</h5><small>" . $cancellation_policy . "</small>";
    $msg = wordwrap($e_body, 70);
    $e_body = build_email($email_content);
    $headers[] = "From: {$from}" . PHP_EOL;
    $headers[] = "Bcc: {$email_bcc}" . PHP_EOL;
    //customer voucher
    wp_mail($address, $e_subject, $e_body, $headers);
}
 /**
  * Load ACF data to boilerplate option
  *
  * Bypass ACF saving procedure.
  *
  * @param  mixed  $value    The value found in the database
  * @param  mixed  $post_id  The $post_id from which the value was loaded
  * @param  array  $field    The field array holding all the field options
  * @return $value
  */
 public static function load_option($value, $post_id, $field)
 {
     $cl = acf_get_setting('current_language');
     if (in_array($post_id, ['options', "options_{$cl}"])) {
         $boilerplate_options = get_option('boilerplate', []);
         if (empty($boilerplate_options['acf_options'])) {
             $boilerplate_options['acf_options'] = [];
         }
         $acf_options =& $boilerplate_options['acf_options'];
         static::save_field_references($acf_options);
         # $key = $post_id . '_' . $field['name'];
         $key = $field['name'];
         if (isset($acf_options[$key])) {
             $value = $acf_options[$key];
             if (function_exists('pll_translate_string')) {
                 if (is_array($value)) {
                     foreach ($value as &$v) {
                         $v = pll_translate_string($v, pll_current_language());
                     }
                 } else {
                     $value = pll_translate_string($value, pll_current_language());
                 }
             }
             // no value? try default_value
             if ($value === null && isset($field['default_value'])) {
                 $value = $field['default_value'];
                 if (function_exists('pll_translate_string')) {
                     if (is_array($value)) {
                         foreach ($value as &$v) {
                             $v = pll_translate_string($v, pll_current_language());
                         }
                     } else {
                         $value = pll_translate_string($value, pll_current_language());
                     }
                 }
             }
             // if value was duplicated, it may now be a serialized string!
             $value = maybe_unserialize($value);
         }
     }
     return $value;
 }
 /**
  * Parse $source and inject strings
  *
  * @param   mixed   $source
  * @param   array   $keys
  * @return  array   $source
  */
 public function inject_strings(&$source, $keys)
 {
     foreach ($keys as $key => $multiline) {
         $namespaces = explode('.', $key);
         $property =& $source;
         foreach ($namespaces as $name) {
             if (isset($property[$name])) {
                 if (is_array($property[$name])) {
                     $property =& $property[$name];
                 } elseif ('' != $property[$name]) {
                     $property[$name] = pll_translate_string($property[$name], $this->current_lang);
                 }
             }
         }
     }
     return $source;
 }