translations_api( string $type, array|object $args = null )
Retrieve translations from WordPress Translation API.
Description Description
Parameters Parameters
- $type
-
(string) (Required) Type of translations. Accepts 'plugins', 'themes', 'core'.
- $args
-
(array|object) (Optional) Translation API arguments. Optional.
Default value: null
Return Return
(object|WP_Error) On success an object of translations, WP_Error on failure.
Source Source
File: wp-admin/includes/translation-install.php
function translations_api( $type, $args = null ) { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version if ( ! in_array( $type, array( 'plugins', 'themes', 'core' ) ) ) { return new WP_Error( 'invalid_type', __( 'Invalid translation type.' ) ); } /** * Allows a plugin to override the WordPress.org Translation Installation API entirely. * * @since 4.0.0 * * @param bool|array $result The result object. Default false. * @param string $type The type of translations being requested. * @param object $args Translation API arguments. */ $res = apply_filters( 'translations_api', false, $type, $args ); if ( false === $res ) { $url = $http_url = 'http://api.wordpress.org/translations/' . $type . '/1.0/'; if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) { $url = set_url_scheme( $url, 'https' ); } $options = array( 'timeout' => 3, 'body' => array( 'wp_version' => $wp_version, 'locale' => get_locale(), 'version' => $args['version'], // Version of plugin, theme or core ), ); if ( 'core' !== $type ) { $options['body']['slug'] = $args['slug']; // Plugin or theme slug } $request = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $request ) ) { trigger_error( sprintf( /* translators: %s: support forums URL */ __( '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 <a href="%s">support forums</a>.' ), __( 'https://wordpress.org/support/' ) ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $request = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $request ) ) { $res = new WP_Error( 'translations_api_failed', sprintf( /* translators: %s: support forums URL */ __( '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 <a href="%s">support forums</a>.' ), __( 'https://wordpress.org/support/' ) ), $request->get_error_message() ); } else { $res = json_decode( wp_remote_retrieve_body( $request ), true ); if ( ! is_object( $res ) && ! is_array( $res ) ) { $res = new WP_Error( 'translations_api_failed', sprintf( /* translators: %s: support forums URL */ __( '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 <a href="%s">support forums</a>.' ), __( 'https://wordpress.org/support/' ) ), wp_remote_retrieve_body( $request ) ); } } } /** * Filters the Translation Installation API response results. * * @since 4.0.0 * * @param object|WP_Error $res Response object or WP_Error. * @param string $type The type of translations being requested. * @param object $args Translation API arguments. */ return apply_filters( 'translations_api_result', $res, $type, $args ); }
Expand full source code Collapse full source code View on Trac
Changelog Changelog
Version | Description |
---|---|
4.0.0 | Introduced. |
User Contributed Notes User Contributed Notes
You must log in before being able to contribute a note or feedback.
This function queries the WP translation database for a given project. For example, the Contact Form 7 plugin maintains its translations here. To find out which translation locales are available, you can use the
translations_api
function,This will return an array of available translations for the plugin v4.4.1.