Example #1
0
 public function testProcessTranslationsEnableKey()
 {
     $language = CMTest_TH::createLanguage('test');
     $languageKey = CM_Model_LanguageKey::create('Hello World');
     $this->assertSame(false, $languageKey->getJavascript());
     $site = CM_Site_Abstract::factory();
     $render = new CM_Frontend_Render(new CM_Frontend_Environment(null, null, $language));
     // Check that key is *not* included in the JS translations list
     $versionJavascript = CM_Model_Language::getVersionJavascript();
     $request = new CM_Http_Request_Get($render->getUrlResource('library-js', "translations/{$versionJavascript}.js"));
     $response = CM_Http_Response_Resource_Javascript_Library::createFromRequest($request, $site, $this->getServiceManager());
     $response->process();
     $this->assertNotContains('Hello World', $response->getContent());
     // Request JS-enabling of language key via RPC call
     $body = CM_Params::jsonEncode(['method' => 'CM_Model_Language.requestTranslationJs', 'params' => ['Hello World']]);
     $request = new CM_Http_Request_Post('/rpc', null, null, $body);
     $response = CM_Http_Response_RPC::createFromRequest($request, $site, $this->getServiceManager());
     $response->process();
     CMTest_TH::reinstantiateModel($languageKey);
     $this->assertSame(true, $languageKey->getJavascript());
     // Check that key *is* included in the JS translations list
     $versionJavascript = CM_Model_Language::getVersionJavascript();
     $request = new CM_Http_Request_Get($render->getUrlResource('library-js', "translations/{$versionJavascript}.js"));
     $response = CM_Http_Response_Resource_Javascript_Library::createFromRequest($request, $site, $this->getServiceManager());
     $response->process();
     $this->assertContains('Hello World', $response->getContent());
 }
Example #2
0
 public function testGetTreeCaching()
 {
     $this->assertNull(CM_Model_LanguageKey::getTree()->findNodeById('.foo'));
     CM_Model_LanguageKey::create('.foo');
     $this->assertNotNull(CM_Model_LanguageKey::getTree()->findNodeById('.foo'));
 }
Example #3
0
File: 51.php Project: cargomedia/cm
<?php

if (!CM_Model_LanguageKey::exists('Unable to detect location')) {
    CM_Model_LanguageKey::create('Unable to detect location');
}
Example #4
0
 public function testRpcRequestTranslationJs()
 {
     $languageKey = CM_Model_LanguageKey::create('foo');
     $this->assertFalse($languageKey->getJavascript());
     CM_Model_Language::rpc_requestTranslationJs('foo');
     $languageKey = CM_Model_LanguageKey::findByName('foo');
     $this->assertTrue($languageKey->getJavascript());
 }
Example #5
0
 /**
  * @param string     $phrase
  * @param array|null $variableNames
  * @param bool|null  $skipCacheLocal
  * @return string
  */
 public function getTranslation($phrase, array $variableNames = null, $skipCacheLocal = null)
 {
     $writeCache = false;
     $phrase = (string) $phrase;
     $cacheKey = CM_CacheConst::Language_Translations . '_languageId:' . $this->getId();
     $cache = CM_Cache_Local::getInstance();
     if ($skipCacheLocal || false === ($translations = $cache->get($cacheKey))) {
         $translations = $this->getTranslations()->getAssociativeArray();
         $writeCache = true;
     }
     if (!array_key_exists($phrase, $translations)) {
         CM_Model_LanguageKey::create($phrase, $variableNames);
         $translations[$phrase] = ['value' => $phrase, 'variables' => $variableNames];
         $writeCache = true;
     }
     if ($variableNames !== null) {
         sort($variableNames);
         if ($variableNames !== $translations[$phrase]['variables']) {
             $languageKey = CM_Model_LanguageKey::findByName($phrase);
             $languageKey->setVariables($variableNames);
             $translations[$phrase]['variables'] = $variableNames;
             $writeCache = true;
         }
     }
     if ($writeCache && !$skipCacheLocal) {
         $cache->set($cacheKey, $translations);
     }
     if (!isset($translations[$phrase]['value'])) {
         if (!$this->getBackup()) {
             return $phrase;
         }
         return $this->getBackup()->getTranslation($phrase, $variableNames, $skipCacheLocal);
     }
     return $translations[$phrase]['value'];
 }
Example #6
0
 public function testSetName()
 {
     $language = CMTest_TH::createLanguage();
     $key = CM_Model_LanguageKey::create('foo');
     $key->setName('bar');
     $this->assertSame('bar', $key->getName());
     $this->assertTrue(Functional\some($language->getTranslations()->getItems(), function ($translation) {
         return $translation['key'] === 'bar';
     }));
 }
Example #7
0
File: 52.php Project: cargomedia/cm
<?php

if (!CM_Model_LanguageKey::exists('No Internet connection')) {
    CM_Model_LanguageKey::create('No Internet connection');
}