Example #1
0
/** Translate text (plural form).
* @param string $singular The singular form.
* @param string $plural The plural form.
* @param int $number The number.
* @param mixed ... Unlimited optional number of arguments: if specified they'll be used for printf
* @return string Returns the translated text.
* @example t2('%d child', '%d children', $n) will return translated '%d child' if $n is 1, translated '%d children' otherwise.
* @example t2('%d child', '%d children', $n, $n) will return translated '1 child' if $n is 1, translated '2 children' if $n is 2.
*/
function t2($singular, $plural, $number) {
	$zt = Localization::getTranslate();
	if(is_object($zt)) {
		$translated = $zt->plural($singular, $plural, $number);
	} else {
		$translated = ($number == 1) ? $singular : $plural;
	}
	if(func_num_args() == 3) {
		return $translated;
	}
	$arg = array();
	for($i = 3; $i < func_num_args(); $i++) {
		$arg[] = func_get_arg($i);
	}
	return vsprintf($translated, $arg);
}
/** Translate text (simple form) with a context.
* @param string $context A context, useful for translators to better understand the meaning of the text to be translated.
* @param string $text The text to be translated.
* @param mixed ... Unlimited optional number of arguments: if specified they'll be used for printf.
* @return string Returns the translated text.
* @example tc('Recipient', 'To %s') will return translation for 'To %s' (example for Italian 'A %s').
* @example tc('End date', 'To %s') will return translation for 'To %s' (example for Italian 'Fino al %s').
* @example tc('Recipient', 'To %s', 'John') will return translation for 'To %s' (example: 'A %s'), using 'John' for printf (so the final result will be 'A John' for Italian).
* @example tc('End date', 'To %s', '01/01/2000') will return translation for 'To %s' (example: 'Fino al %s'), using '01/01/2000' for printf (so the final result will be 'Fino al 01/01/2000' for Italian).
*/
function tc($context, $text)
{
    $zt = Localization::getTranslate();
    if (is_object($zt)) {
        $msgid = $context . "" . $text;
        $msgtxt = $zt->_($msgid);
        if ($msgtxt != $msgid) {
            $text = $msgtxt;
        }
    }
    if (func_num_args() == 2) {
        return $text;
    }
    $arg = array();
    for ($i = 2; $i < func_num_args(); $i++) {
        $arg[] = func_get_arg($i);
    }
    return vsprintf($text, $arg);
}
Example #3
0
	function t($text) {
		$zt = Localization::getTranslate();
		if (func_num_args() == 1) {
			if (is_object($zt)) {
				return $zt->_($text);
			} else {
				return $text;
			}
		}
		
		$arg = array();
	    for($i = 1 ; $i < func_num_args(); $i++) {
	        $arg[] = func_get_arg($i); 
	    }
		if (is_object($zt)) {
			return vsprintf($zt->_($text), $arg);
		} else {
			return vsprintf($text, $arg);
		}
	}
 public function setupLocalization(LocalizablePackageInterface $package, $locale = null, $translate = 'current')
 {
     if ($translate === 'current') {
         $translate = \Localization::getTranslate();
     }
     if (is_object($translate)) {
         if (!isset($locale) || !strlen($locale)) {
             $locale = Localization::activeLocale();
         }
         $languageFile = $package->getTranslationFile($locale);
         if (is_file($languageFile)) {
             $translate->addTranslationFile('gettext', $languageFile);
         }
     }
 }
Example #5
0
 /** Loads package translation files into zend translate
  * @param string $folder = null The directory name containing the locale file to load (for example: 'en_US'). If empty we'll use the locale identifier of $translate
  * @param string $locale = null The identifier of the locale to activate (for example: 'en_US'). If empty we'll use $folder
  * @param string|Zend_Translate $translate = 'current' The Zend_Translate instance that holds the translations (set to 'current' to use the current one)
  */
 public function setupPackageLocalization($folder = NULL, $locale = NULL, $translate = 'current')
 {
     if ($translate === 'current') {
         $translate = Localization::getTranslate();
     }
     if (is_object($translate)) {
         $path = $this->getPackagePath() . '/' . DIRNAME_LANGUAGES;
         if (!isset($folder) || !strlen($folder)) {
             $folder = $translate->getLocale();
         }
         if (!isset($locale)) {
             $locale = $folder;
         }
         if (file_exists($path . '/' . $folder . '/LC_MESSAGES/messages.mo')) {
             $translate->addTranslation($path . '/' . $folder . '/LC_MESSAGES/messages.mo', $locale);
         }
     }
 }
Example #6
0
		public function init() {Localization::getTranslate();}
Example #7
0
	/**
	 * Loads package translation files into zend translate 
	 * @param string $locale
	 * @param string $key
	 * @return void
	*/
	public function setupPackageLocalization($locale = NULL, $key = NULL) {
		$translate = Localization::getTranslate();
		if (is_object($translate)) {
			$path = $this->getPackagePath() . '/' . DIRNAME_LANGUAGES;
			if(!isset($locale) || !strlen($locale)) {
				$locale = ACTIVE_LOCALE;
			}
			
			if(!isset($key)) {
				$key = $locale;
			}
			
			if (file_exists($path . '/' . $locale . '/LC_MESSAGES/messages.mo')) {
				$translate->addTranslation($path . '/' . $locale . '/LC_MESSAGES/messages.mo', $key);
			}
		}
	}
Example #8
0
	public function setupPackageLocalization() {
		$translate = Localization::getTranslate();
		if (is_object($translate)) {
			$path = $this->getPackagePath() . '/' . DIRNAME_LANGUAGES;
			if (file_exists($path . '/' . LOCALE . '/LC_MESSAGES/messages.mo')) {
				$translate->addTranslation($path . '/' . LOCALE . '/LC_MESSAGES/messages.mo', LOCALE);
			}
		}
	}