<?php /** * Retrieves an associative array of languages to which * this plugin is translated. * * @return array Array of languages. */ function wpcf7_l10n() { static $l10n = array(); if ( ! empty( $l10n ) ) { return $l10n; } if ( ! is_admin() ) { return $l10n; } require_once( ABSPATH . 'wp-admin/includes/translation-install.php' ); $api = translations_api( 'plugins', array( 'slug' => 'contact-form-7', 'version' => WPCF7_VERSION, ) ); if ( is_wp_error( $api ) or empty( $api['translations'] ) ) { return $l10n; } foreach ( (array) $api['translations'] as $translation ) { if ( ! empty( $translation['language'] ) and ! empty( $translation['english_name'] ) ) { $l10n[$translation['language']] = $translation['english_name']; } } return $l10n; } /** * Returns true if the given locale code looks valid. * * @param string $locale Locale code. */ function wpcf7_is_valid_locale( $locale ) { if ( ! is_string( $locale ) ) { return false; } $pattern = '/^[a-z]{2,3}(?:_[a-zA-Z_]{2,})?$/'; return (bool) preg_match( $pattern, $locale ); } /** * Returns true if the given locale is an RTL language. */ function wpcf7_is_rtl( $locale = '' ) { static $rtl_locales = array( 'ar' => 'Arabic', 'ary' => 'Moroccan Arabic', 'azb' => 'South Azerbaijani', 'fa_IR' => 'Persian', 'haz' => 'Hazaragi', 'he_IL' => 'Hebrew', 'ps' => 'Pashto', 'ug_CN' => 'Uighur', ); if ( empty( $locale ) and function_exists( 'is_rtl' ) ) { return is_rtl(); } if ( empty( $locale ) ) { $locale = determine_locale(); } return isset( $rtl_locales[$locale] ); } /** * Loads a translation file into the plugin's text domain. * * @param string $locale Locale code. * @return bool True on success, false on failure. */ function wpcf7_load_textdomain( $locale = '' ) { $mofile = path_join( WP_LANG_DIR . '/plugins/', sprintf( '%s-%s.mo', WPCF7_TEXT_DOMAIN, $locale ) ); return load_textdomain( WPCF7_TEXT_DOMAIN, $mofile, $locale ); } /** * Unloads translations for the plugin's text domain. * * @param bool $reloadable Whether the text domain can be loaded * just-in-time again. * @return bool True on success, false on failure. */ function wpcf7_unload_textdomain( $reloadable = false ) { return unload_textdomain( WPCF7_TEXT_DOMAIN, $reloadable ); } /** * Switches translation locale, calls the callback, then switches back * to the original locale. * * @param string $locale Locale code. * @param callable $callback The callable to be called. * @param mixed $args Parameters to be passed to the callback. * @return mixed The return value of the callback. */ function wpcf7_switch_locale( $locale, callable $callback, ...$args ) { static $available_locales = null; if ( ! isset( $available_locales ) ) { $available_locales = array_merge( array( 'en_US' ), get_available_languages() ); } $previous_locale = determine_locale(); $do_switch_locale = ( $locale !== $previous_locale && in_array( $locale, $available_locales, true ) && in_array( $previous_locale, $available_locales, true ) ); if ( $do_switch_locale ) { wpcf7_unload_textdomain(); switch_to_locale( $locale ); wpcf7_load_textdomain( $locale ); } $result = call_user_func( $callback, ...$args ); if ( $do_switch_locale ) { wpcf7_unload_textdomain( true ); restore_previous_locale(); wpcf7_load_textdomain( $previous_locale ); } return $result; }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
block-editor | Folder | 0755 |
|
|
config-validator | Folder | 0755 |
|
|
css | Folder | 0755 |
|
|
js | Folder | 0755 |
|
|
swv | Folder | 0755 |
|
|
capabilities.php | File | 834 B | 0644 |
|
contact-form-functions.php | File | 10.25 KB | 0644 |
|
contact-form-template.php | File | 5.69 KB | 0644 |
|
contact-form.php | File | 29.96 KB | 0644 |
|
controller.php | File | 3.03 KB | 0644 |
|
file.php | File | 10.13 KB | 0644 |
|
form-tag.php | File | 13.42 KB | 0644 |
|
form-tags-manager.php | File | 14.23 KB | 0644 |
|
formatting.php | File | 12.44 KB | 0644 |
|
functions.php | File | 15.46 KB | 0644 |
|
html-formatter.php | File | 16.32 KB | 0644 |
|
integration.php | File | 8.73 KB | 0644 |
|
l10n.php | File | 3.37 KB | 0644 |
|
mail.php | File | 15.36 KB | 0644 |
|
pipe.php | File | 1.87 KB | 0644 |
|
pocket-holder.php | File | 325 B | 0644 |
|
rest-api.php | File | 12.71 KB | 0644 |
|
shortcodes.php | File | 2.65 KB | 0644 |
|
special-mail-tags.php | File | 6.07 KB | 0644 |
|
submission.php | File | 21.61 KB | 0644 |
|
upgrade.php | File | 3 KB | 0644 |
|
validation-functions.php | File | 6.29 KB | 0644 |
|
validation.php | File | 3.22 KB | 0644 |
|