web/wp-includes/l10n.php
changeset 204 09a1c134465b
parent 194 32102edaa81b
--- a/web/wp-includes/l10n.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/l10n.php	Wed Dec 19 17:46:52 2012 -0800
@@ -65,7 +65,7 @@
  * @return string Translated text
  */
 function translate( $text, $domain = 'default' ) {
-	$translations = &get_translations_for_domain( $domain );
+	$translations = get_translations_for_domain( $domain );
 	return apply_filters( 'gettext', $translations->translate( $text ), $text, $domain );
 }
 
@@ -78,7 +78,7 @@
 }
 
 function translate_with_gettext_context( $text, $context, $domain = 'default' ) {
-	$translations = &get_translations_for_domain( $domain );
+	$translations = get_translations_for_domain( $domain );
 	return apply_filters( 'gettext_with_context', $translations->translate( $text, $context ), $text, $context, $domain );
 }
 
@@ -236,7 +236,7 @@
  * @return string Either $single or $plural translated text
  */
 function _n( $single, $plural, $number, $domain = 'default' ) {
-	$translations = &get_translations_for_domain( $domain );
+	$translations = get_translations_for_domain( $domain );
 	$translation = $translations->translate_plural( $single, $plural, $number );
 	return apply_filters( 'ngettext', $translation, $single, $plural, $number, $domain );
 }
@@ -249,7 +249,7 @@
  *
  */
 function _nx($single, $plural, $number, $context, $domain = 'default') {
-	$translations = &get_translations_for_domain( $domain );
+	$translations = get_translations_for_domain( $domain );
 	$translation = $translations->translate_plural( $single, $plural, $number, $context );
 	return apply_filters( 'ngettext_with_context', $translation, $single, $plural, $number, $context, $domain );
 }
@@ -332,7 +332,6 @@
 		return true;
 	}
 
-	//print( $domain."  ". $mofile."<br>");
 	do_action( 'load_textdomain', $domain, $mofile );
 
 	$mofile = apply_filters( 'load_textdomain_mofile', $mofile, $domain );
@@ -460,9 +459,16 @@
 function load_theme_textdomain( $domain, $path = false ) {
 	$locale = apply_filters( 'theme_locale', get_locale(), $domain );
 
-	$path = ( empty( $path ) ) ? get_template_directory() : $path;
+	if ( ! $path )
+		$path = get_template_directory();
 
-	$mofile = "$path/$locale.mo";
+	// Load the textdomain from the Theme provided location, or theme directory first
+	$mofile = "{$path}/{$locale}.mo";
+	if ( $loaded = load_textdomain($domain, $mofile) )
+		return $loaded;
+
+	// Else, load textdomain from the Language directory
+	$mofile = WP_LANG_DIR . "/themes/{$domain}-{$locale}.mo";
 	return load_textdomain($domain, $mofile);
 }
 
@@ -479,12 +485,9 @@
  * @param string $domain Unique identifier for retrieving translated strings
  */
 function load_child_theme_textdomain( $domain, $path = false ) {
-	$locale = apply_filters( 'theme_locale', get_locale(), $domain );
-
-	$path = ( empty( $path ) ) ? get_stylesheet_directory() : $path;
-
-	$mofile = "$path/$locale.mo";
-	return load_textdomain($domain, $mofile);
+	if ( ! $path )
+		$path = get_stylesheet_directory();
+	return load_theme_textdomain( $domain, $path );
 }
 
 /**
@@ -494,7 +497,7 @@
  * @param string $domain
  * @return object A Translation instance
  */
-function &get_translations_for_domain( $domain ) {
+function get_translations_for_domain( $domain ) {
 	global $l10n;
 	if ( !isset( $l10n[$domain] ) ) {
 		$l10n[$domain] = new NOOP_Translations;