2004-04-16 03:56:04 +02:00
|
|
|
<?php
|
2005-01-30 00:17:10 +01:00
|
|
|
function get_locale() {
|
|
|
|
global $locale;
|
2004-04-26 04:00:08 +02:00
|
|
|
|
2005-01-30 00:17:10 +01:00
|
|
|
if (isset($locale))
|
2006-12-03 22:09:24 +01:00
|
|
|
return apply_filters( 'locale', $locale );
|
2005-01-30 00:17:10 +01:00
|
|
|
|
|
|
|
// WPLANG is defined in wp-config.
|
2006-01-10 23:53:40 +01:00
|
|
|
if (defined('WPLANG'))
|
|
|
|
$locale = WPLANG;
|
2006-02-12 08:53:23 +01:00
|
|
|
|
2006-01-10 23:53:40 +01:00
|
|
|
if (empty($locale))
|
2007-01-18 18:40:05 +01:00
|
|
|
$locale = '';
|
2004-04-16 03:56:04 +02:00
|
|
|
|
2005-01-30 00:17:10 +01:00
|
|
|
$locale = apply_filters('locale', $locale);
|
2004-12-13 05:39:26 +01:00
|
|
|
|
2005-01-30 00:17:10 +01:00
|
|
|
return $locale;
|
|
|
|
}
|
2004-04-16 03:56:04 +02:00
|
|
|
|
2007-04-12 23:15:44 +02:00
|
|
|
function translate($text, $domain) {
|
2004-10-18 04:27:35 +02:00
|
|
|
global $l10n;
|
|
|
|
|
2006-01-10 23:53:40 +01:00
|
|
|
if (isset($l10n[$domain]))
|
|
|
|
return apply_filters('gettext', $l10n[$domain]->translate($text), $text);
|
|
|
|
else
|
2004-10-18 04:27:35 +02:00
|
|
|
return $text;
|
2004-04-16 03:56:04 +02:00
|
|
|
}
|
|
|
|
|
2007-04-12 23:15:44 +02:00
|
|
|
// Return a translated string.
|
|
|
|
function __($text, $domain = 'default') {
|
|
|
|
return translate($text, $domain);
|
|
|
|
}
|
|
|
|
|
2004-04-16 03:56:04 +02:00
|
|
|
// Echo a translated string.
|
2004-10-18 04:27:35 +02:00
|
|
|
function _e($text, $domain = 'default') {
|
2007-04-12 23:15:44 +02:00
|
|
|
echo translate($text, $domain);
|
2004-04-16 03:56:04 +02:00
|
|
|
}
|
|
|
|
|
2007-03-22 04:34:23 +01:00
|
|
|
function _c($text, $domain = 'default') {
|
2007-04-12 23:15:44 +02:00
|
|
|
$whole = translate($text, $domain);
|
|
|
|
$last_bar = strrpos($whole, '|');
|
|
|
|
if ( false == $last_bar ) {
|
|
|
|
return $whole;
|
|
|
|
} else {
|
|
|
|
return substr($whole, 0, $last_bar);
|
|
|
|
}
|
2007-03-22 04:34:23 +01:00
|
|
|
}
|
|
|
|
|
2004-04-16 03:56:04 +02:00
|
|
|
// Return the plural form.
|
2004-10-18 04:27:35 +02:00
|
|
|
function __ngettext($single, $plural, $number, $domain = 'default') {
|
|
|
|
global $l10n;
|
|
|
|
|
|
|
|
if (isset($l10n[$domain])) {
|
2007-04-12 23:15:44 +02:00
|
|
|
return apply_filters('ngettext', $l10n[$domain]->ngettext($single, $plural, $number), $single, $plural, $number);
|
2004-10-18 04:27:35 +02:00
|
|
|
} else {
|
2005-03-17 19:15:18 +01:00
|
|
|
if ($number != 1)
|
|
|
|
return $plural;
|
|
|
|
else
|
|
|
|
return $single;
|
2004-10-18 04:27:35 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function load_textdomain($domain, $mofile) {
|
|
|
|
global $l10n;
|
|
|
|
|
2006-01-10 23:53:40 +01:00
|
|
|
if (isset($l10n[$domain]))
|
2004-10-19 02:18:12 +02:00
|
|
|
return;
|
|
|
|
|
2006-01-10 23:53:40 +01:00
|
|
|
if ( is_readable($mofile))
|
|
|
|
$input = new CachedFileReader($mofile);
|
|
|
|
else
|
2004-10-18 04:27:35 +02:00
|
|
|
return;
|
|
|
|
|
|
|
|
$l10n[$domain] = new gettext_reader($input);
|
|
|
|
}
|
|
|
|
|
2004-10-19 02:18:12 +02:00
|
|
|
function load_default_textdomain() {
|
2005-01-30 00:17:10 +01:00
|
|
|
$locale = get_locale();
|
2007-01-18 18:40:05 +01:00
|
|
|
if ( empty($locale) )
|
|
|
|
$locale = 'en_US';
|
|
|
|
|
2006-09-21 22:46:39 +02:00
|
|
|
$mofile = ABSPATH . LANGDIR . "/$locale.mo";
|
2006-02-12 08:53:23 +01:00
|
|
|
|
2004-10-19 02:18:12 +02:00
|
|
|
load_textdomain('default', $mofile);
|
|
|
|
}
|
|
|
|
|
2006-09-21 22:46:39 +02:00
|
|
|
function load_plugin_textdomain($domain, $path = false) {
|
2005-01-30 00:17:10 +01:00
|
|
|
$locale = get_locale();
|
2007-01-18 18:40:05 +01:00
|
|
|
if ( empty($locale) )
|
|
|
|
$locale = 'en_US';
|
|
|
|
|
2006-09-21 22:46:39 +02:00
|
|
|
if ( false === $path )
|
|
|
|
$path = PLUGINDIR;
|
2006-02-12 08:53:23 +01:00
|
|
|
|
2005-09-17 00:30:03 +02:00
|
|
|
$mofile = ABSPATH . "$path/$domain-$locale.mo";
|
2004-10-18 04:27:35 +02:00
|
|
|
load_textdomain($domain, $mofile);
|
|
|
|
}
|
|
|
|
|
|
|
|
function load_theme_textdomain($domain) {
|
2005-01-30 00:17:10 +01:00
|
|
|
$locale = get_locale();
|
2007-01-18 18:40:05 +01:00
|
|
|
if ( empty($locale) )
|
|
|
|
$locale = 'en_US';
|
2006-02-12 08:53:23 +01:00
|
|
|
|
2004-10-18 06:38:49 +02:00
|
|
|
$mofile = get_template_directory() . "/$locale.mo";
|
2004-10-18 04:27:35 +02:00
|
|
|
load_textdomain($domain, $mofile);
|
2004-04-16 03:56:04 +02:00
|
|
|
}
|
2004-04-17 07:01:10 +02:00
|
|
|
|
2006-09-21 22:46:39 +02:00
|
|
|
?>
|