public function testGetLanguageList()
 {
     $lang = new Zend_Translate(Zend_Translate::AN_ARRAY, array('msg1' => 'Message 1'), 'en');
     $lang->addTranslation(array('msg1' => 'Message 1 (ru)'), 'ru');
     $this->assertEquals(count($lang->getList()), 2);
     $this->assertTrue(in_array('en', $lang->getList()));
     $this->assertTrue(in_array('ru', $lang->getList()));
 }
Example #2
0
 /** Changes the currently active locale
  * @param string $locale The locale to activate (for example: 'en_US')
  * @param bool $coreOnly = false Set to true to load only the core translation files, set to false (default) to load also packages and site locale translations
  */
 public function setLocale($locale, $coreOnly = false)
 {
     $localeNeededLoading = false;
     if ($locale == 'en_US' && !ENABLE_TRANSLATE_LOCALE_EN_US) {
         if (isset($this->translate)) {
             unset($this->translate);
         }
         return;
     }
     if (is_dir(DIR_LANGUAGES . '/' . $locale)) {
         $languageDir = DIR_LANGUAGES . '/' . $locale;
     } elseif (is_dir(DIR_LANGUAGES_CORE . '/' . $locale)) {
         $languageDir = DIR_LANGUAGES_CORE . '/' . $locale;
     } else {
         return;
     }
     $options = array('adapter' => 'gettext', 'content' => $languageDir, 'locale' => $locale, 'disableNotices' => true, 'ignore' => array('.', 'messages.po'));
     if (defined('TRANSLATE_OPTIONS')) {
         $_options = unserialize(TRANSLATE_OPTIONS);
         if (is_array($_options)) {
             $options = array_merge($options, $_options);
         }
     }
     if (!isset($this->translate)) {
         $this->translate = new Zend_Translate($options);
         $localeNeededLoading = true;
     } else {
         if (!in_array($locale, $this->translate->getList())) {
             $this->translate->addTranslation($options);
             $localeNeededLoading = true;
         }
         $this->translate->setLocale($locale);
     }
     if (!$coreOnly) {
         $this->addSiteInterfaceLanguage($locale);
         global $config_check_failed;
         if (!(isset($config_check_failed) && $config_check_failed)) {
             foreach (PackageList::get(1)->getPackages() as $p) {
                 $pkg = Loader::package($p->getPackageHandle());
                 if (is_object($pkg)) {
                     $pkg->setupPackageLocalization($locale, null, $this->translate);
                 }
             }
         }
     }
     if ($localeNeededLoading) {
         Events::fire('on_locale_load', $locale);
     }
 }
 /**
  * @group ZF-2736
  */
 public function testDoubleReroutingForTranslations()
 {
     $translate = new Zend_Translate(array('adapter' => Zend_Translate::AN_ARRAY, 'content' => dirname(__FILE__) . '/Translate/Adapter/_files/testarray/', 'locale' => 'auto', 'scan' => Zend_Translate::LOCALE_FILENAME, 'ignore' => array('.', 'ignoreme', 'LC_TEST'), 'route' => array('ja' => 'en_US', 'en_US' => 'ja')));
     $translate2 = new Zend_Translate(array('adapter' => Zend_Translate::AN_CSV, 'content' => dirname(__FILE__) . '/Translate/Adapter/_files/translation_en.csv', 'locale' => 'en_US'));
     $translate->addTranslation($translate2);
     $langs = $translate->getList();
     $this->assertFalse(array_key_exists('de_DE', $langs));
     $this->assertTrue(array_key_exists('ja', $langs));
     $this->assertTrue(array_key_exists('en_US', $langs));
     $this->assertEquals('Message 5 (en)', $translate->translate('Message 5', 'ja'));
     $this->assertEquals('Message 5 (en)', $translate->translate('Message 5', 'ja'));
 }
 public function testFileSearch()
 {
     $lang = new Zend_Translate(Zend_Translate::AN_CSV, dirname(__FILE__) . '/Translate/_files/test2', null, array('scan' => Zend_Translate::LOCALE_FILENAME));
     $this->assertEquals(2, count($lang->getList()));
     $this->assertTrue(in_array('de_AT', $lang->getList()));
     $this->assertTrue(in_array('de_DE', $lang->getList()));
 }
// global vars
global $errors, $locale, $languages;
// autoloader for zend classes
require_once 'Zend/Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('Zend');
// prepare language object
if (isset($_POST['language'])) {
    $currentLang = $_POST['language'];
} else {
    $currentLang = 'en';
}
$locale = new Zend_Translate('csv', 'application/locale', 'en', array('scan' => Zend_Translate::LOCALE_DIRECTORY, 'delimiter' => "|"));
// get languages
$languages = array();
foreach ($locale->getList() as $lang) {
    $languages[$lang] = $locale->translate($lang);
}
// set language
try {
    $languageLocale = new Zend_Locale(Zend_Locale::BROWSER);
    if (in_array($languageLocale->getLanguage(), $locale->getList())) {
        $currentLang = $languageLocale->getLanguage();
        $locale->setLocale($languageLocale);
    }
} catch (Exception $e) {
    $currentLang = 'en';
    $locale->setLocale(new Zend_Locale('en'));
}
// get config
$configDist = new Zend_Config_Ini(CONFIG_DIST_PATH);
<?php

$options = array('scan' => Zend_Translate::LOCALE_FILENAME);
$translate = new Zend_Translate('array', APPPATH . 'languages/', null, $options);
// $translate->setLocale('en_US');
// $translate->setLocale('nl');
var_dump($translate->getList());
var_dump($translate->getLocale());
echo $translate->_('ADMIN');
Example #7
0
 /**
  * Translations & languages
  */
 protected function _initSetTranslations()
 {
     $session = new Zend_Session_Namespace('Default');
     $available_languages = array();
     // load all php files from languages folder
     foreach (glob(APPLICATION_PATH . '/languages/*.php') as $file) {
         unset($data, $init);
         require_once $file;
         if (!isset($translate)) {
             $translate = new Zend_Translate('array', $data, $init['short']);
         }
         $translate->addTranslation($data, $init['short']);
         $available_languages[$init['short']] = $init['name'];
     }
     if (empty($available_languages)) {
         die('Error: language file is missing ' . APPLICATION_PATH . '/languages/*.php');
     }
     // init Zend_Locale
     $locale = new Zend_Locale();
     // set default language from options
     $default_language = Zend_Registry::get('config')->get('default_language');
     if (!in_array($default_language, $translate->getList())) {
         // in case someone forgot to update settings -> general
         reset($available_languages);
         $default_language = key($available_languages);
     }
     $translate->setLocale($default_language);
     $locale->setLocale($default_language);
     Zend_Registry::set('locale', $default_language);
     // set current language based on user session
     if ($session->language && in_array($session->language, $translate->getList())) {
         $translate->setLocale($session->language);
         $locale->setLocale($session->language);
         Zend_Registry::set('locale', $session->language);
     }
     // push translator to registry
     Zend_Registry::set('Zend_Translate', $translate);
     // push translator to views
     $this->_view->translate = $translate;
     // push translator to forms
     Zend_Form::setDefaultTranslator($translate);
     // sort default as first & save array for forms
     $available_languages_sorted = array();
     if (isset($available_languages[$default_language])) {
         $available_languages_sorted = array($default_language => $available_languages[$default_language]);
         unset($available_languages[$default_language]);
     }
     $available_languages_sorted = array_merge($available_languages_sorted, $available_languages);
     Zend_Registry::set('languages_array', $available_languages_sorted);
 }
Example #8
0
 /**
  * ZF-7941
  */
 public function testEmptyTranslation()
 {
     $lang = new Zend_Translate(Zend_Translate::AN_ARRAY, null, null, array('disableNotices' => true));
     $this->assertEquals(0, count($lang->getList()));
 }