This commit is contained in:
root@pico committed 2015-05-01 21:20:47 +02:00
1 parent 70d2335bba
commit 7428b67da5
1086 files changed
+94145 -59082

No files matched your search

+89 -34
View File
@@ -76,7 +76,7 @@ function get_locale() {
*
* If there is no translation, or the text domain isn't loaded, the original text is returned.
*
* <strong>Note:</strong> Don't use translate() directly, use __() or related functions.
* *Note:* Don't use {@see translate()} directly, use `{@see __()} or related functions.
*
* @since 2.2.0
*
@@ -87,6 +87,7 @@ function get_locale() {
function translate( $text, $domain = 'default' ) {
$translations = get_translations_for_domain( $domain );
$translations = $translations->translate( $text );
/**
* Filter text with its translation.
*
@@ -364,15 +365,14 @@ function _nx($single, $plural, $number, $context, $domain = 'default') {
* strings and use them later.
*
* Example:
* <code>
* $messages = array(
* 'post' => _n_noop('%s post', '%s posts'),
* 'page' => _n_noop('%s pages', '%s pages')
* );
* ...
* $message = $messages[$type];
* $usable_text = sprintf( translate_nooped_plural( $message, $count ), $count );
* </code>
*
* $messages = array(
* 'post' => _n_noop( '%s post', '%s posts' ),
* 'page' => _n_noop( '%s pages', '%s pages' ),
* );
* ...
* $message = $messages[ $type ];
* $usable_text = sprintf( translate_nooped_plural( $message, $count ), $count );
*
* @since 2.5.0
*
@@ -389,6 +389,11 @@ function _n_noop( $singular, $plural, $domain = null ) {
* Register plural strings with context in POT file, but don't translate them.
*
* @since 2.8.0
* @param string $singular
* @param string $plural
* @param string $context
* @param string|null $domain
* @return array
*/
function _nx_noop( $singular, $plural, $context, $domain = null ) {
return array( 0 => $singular, 1 => $plural, 2 => $context, 'singular' => $singular, 'plural' => $plural, 'context' => $context, 'domain' => $domain );
@@ -532,7 +537,8 @@ function unload_textdomain( $domain ) {
*
* @since 1.5.0
*
* @param string $locale Optional. Locale to load. Defaults to get_locale().
* @param string $locale Optional. Locale to load. Default is the value of {@see get_locale()}.
* @return bool Whether the textdomain was loaded.
*/
function load_default_textdomain( $locale = null ) {
if ( null === $locale ) {
@@ -588,7 +594,7 @@ function load_plugin_textdomain( $domain, $deprecated = false, $plugin_rel_path
if ( false !== $plugin_rel_path ) {
$path = WP_PLUGIN_DIR . '/' . trim( $plugin_rel_path, '/' );
} else if ( false !== $deprecated ) {
} elseif ( false !== $deprecated ) {
_deprecated_argument( __FUNCTION__, '2.7' );
$path = ABSPATH . trim( $deprecated, '/' );
} else {
@@ -661,7 +667,7 @@ function load_theme_textdomain( $domain, $path = false ) {
$path = get_template_directory();
// Load the textdomain according to the theme
$mofile = "{$path}/{$locale}.mo";
$mofile = untrailingslashit( $path ) . "/{$locale}.mo";
if ( $loaded = load_textdomain( $domain, $mofile ) )
return $loaded;
@@ -699,7 +705,7 @@ function load_child_theme_textdomain( $domain, $path = false ) {
* @since 2.8.0
*
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
* @return Translations A Translations instance.
* @return NOOP_Translations A Translations instance.
*/
function get_translations_for_domain( $domain ) {
global $l10n;
@@ -797,16 +803,23 @@ function wp_get_installed_translations( $type ) {
$language_data = array();
foreach ( $files as $file ) {
if ( '.' === $file[0] || is_dir( $file ) )
if ( '.' === $file[0] || is_dir( $file ) ) {
continue;
if ( substr( $file, -3 ) !== '.po' )
}
if ( substr( $file, -3 ) !== '.po' ) {
continue;
if ( ! preg_match( '/(?:(.+)-)?([A-Za-z_]{2,6}).po/', $file, $match ) )
}
if ( ! preg_match( '/(?:(.+)-)?([A-Za-z_]{2,6}).po/', $file, $match ) ) {
continue;
}
if ( ! in_array( substr( $file, 0, -3 ) . '.mo', $files ) ) {
continue;
}
list( , $textdomain, $language ) = $match;
if ( '' === $textdomain )
if ( '' === $textdomain ) {
$textdomain = 'default';
}
$language_data[ $textdomain ][ $language ] = wp_get_pomo_file_data( WP_LANG_DIR . "$dir/$file" );
}
return $language_data;
@@ -842,24 +855,36 @@ function wp_get_pomo_file_data( $po_file ) {
* @see get_available_languages()
* @see wp_get_available_translations()
*
* @param array $args Optional arguments. Default empty array.
* @param string|array $args {
* Optional. Array or string of arguments for outputting the language selector.
*
* @type string $id ID attribute of the select element. Default empty.
* @type string $name Name attribute of the select element. Default empty.
* @type array $languages List of installed languages, contain only the locales.
* Default empty array.
* @type array $translations List of available translations. Default result of
* {@see wp_get_available_translations()}.
* @type string $selected Language which should be selected. Default empty.
* @type bool $show_available_translations Whether to show available translations. Default true.
* }
*/
function wp_dropdown_languages( $args = array() ) {
require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
$args = wp_parse_args( $args, array(
'id' => '',
'name' => '',
'languages' => array(),
'selected' => ''
'id' => '',
'name' => '',
'languages' => array(),
'translations' => array(),
'selected' => '',
'show_available_translations' => true,
) );
if ( empty( $args['languages'] ) ) {
return false;
$translations = $args['translations'];
if ( empty( $translations ) ) {
require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
$translations = wp_get_available_translations();
}
$translations = wp_get_available_translations();
/*
* $args['languages'] should only contain the locales. Find the locale in
* $translations to get the native name. Fall back to locale.
@@ -871,8 +896,11 @@ function wp_dropdown_languages( $args = array() ) {
$languages[] = array(
'language' => $translation['language'],
'native_name' => $translation['native_name'],
'lang' => $translation['iso'][1],
'lang' => current( $translation['iso'] ),
);
// Remove installed language from available translations.
unset( $translations[ $locale ] );
} else {
$languages[] = array(
'language' => $locale,
@@ -882,20 +910,47 @@ function wp_dropdown_languages( $args = array() ) {
}
}
$translations_available = ( ! empty( $translations ) && $args['show_available_translations'] );
printf( '<select name="%s" id="%s">', esc_attr( $args['name'] ), esc_attr( $args['id'] ) );
// Holds the HTML markup.
$structure = array();
// List installed languages.
echo '<option value="" lang="en">English (United States)</option>';
if ( $translations_available ) {
$structure[] = '<optgroup label="' . esc_attr_x( 'Installed', 'translations' ) . '">';
}
$structure[] = '<option value="" lang="en" data-installed="1">English (United States)</option>';
foreach ( $languages as $language ) {
$selected = selected( $language['language'], $args['selected'], false );
printf(
'<option value="%s" lang="%s"%s>%s</option>',
$structure[] = sprintf(
'<option value="%s" lang="%s"%s data-installed="1">%s</option>',
esc_attr( $language['language'] ),
esc_attr( $language['lang'] ),
$selected,
selected( $language['language'], $args['selected'], false ),
esc_html( $language['native_name'] )
);
}
if ( $translations_available ) {
$structure[] = '</optgroup>';
}
// List available translations.
if ( $translations_available ) {
$structure[] = '<optgroup label="' . esc_attr_x( 'Available', 'translations' ) . '">';
foreach ( $translations as $translation ) {
$structure[] = sprintf(
'<option value="%s" lang="%s"%s>%s</option>',
esc_attr( $translation['language'] ),
esc_attr( current( $translation['iso'] ) ),
selected( $translation['language'], $args['selected'], false ),
esc_html( $translation['native_name'] )
);
}
$structure[] = '</optgroup>';
}
echo join( "\n", $structure );
echo '</select>';
}