[ Index ]

PHP Cross Reference of Limb3

title

Body

[close]

/i18n/tests/cases/translation/ -> lmbI18NTranslationTest.class.php (source)

   1  <?php
   2  /*
   3   * Limb PHP Framework
   4   *
   5   * @link http://limb-project.com 
   6   * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
   7   * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
   8   */
   9  lmb_require('limb/i18n/common.inc.php');
  10  lmb_require('limb/i18n/src/translation/lmbQtDictionaryBackend.class.php');
  11  lmb_require('limb/fs/src/lmbFs.class.php');
  12  
  13  class lmbI18NTranslationTest extends UnitTestCase
  14  {
  15    function setUp()
  16    {
  17      lmbFs :: mkdir(LIMB_VAR_DIR . '/translations');
  18    }
  19  
  20    function tearDown()
  21    {
  22      lmbFs :: rm(LIMB_VAR_DIR . '/translations');
  23    }
  24  
  25    function testTranslate()
  26    {
  27      $toolkit = lmbToolkit :: save();
  28      $back = new lmbQtDictionaryBackend();
  29      $back->setSearchPath($translations_dir = LIMB_VAR_DIR . '/translations');
  30      $toolkit->setDictionaryBackend($back);
  31  
  32      $xml = <<< EOD
  33  <?xml version="1.0"?>
  34  <!DOCTYPE TS><TS>
  35  <context>
  36  <message>
  37      <source>Hello</source>
  38      <translation>Привет</translation>
  39  </message>
  40  </context>
  41  </TS>
  42  EOD;
  43      file_put_contents($translations_dir . '/foo.ru_RU.ts', $xml);
  44  
  45      $toolkit->setLocale('ru_RU');
  46      $this->assertEqual(lmb_i18n('Hello', 'foo'), 'Привет');
  47  
  48      lmbToolkit :: restore();
  49    }
  50  
  51    function testTranslateDefaultContext()
  52    {
  53      $toolkit = lmbToolkit :: save();
  54      $back = new lmbQtDictionaryBackend();
  55      $back->setSearchPath($translations_dir = LIMB_VAR_DIR . '/translations');
  56      $toolkit->setDictionaryBackend($back);
  57  
  58      $xml = <<< EOD
  59  <?xml version="1.0"?>
  60  <!DOCTYPE TS><TS>
  61  <context>
  62  <message>
  63      <source>Hello</source>
  64      <translation>Привет</translation>
  65  </message>
  66  </context>
  67  </TS>
  68  EOD;
  69      file_put_contents($translations_dir . '/default.ru_RU.ts', $xml);
  70  
  71      $toolkit->setLocale('ru_RU');
  72      $this->assertEqual(lmb_i18n('Hello'), 'Привет');
  73  
  74      lmbToolkit :: restore();
  75    }
  76  
  77    function testTranslateSubstituteParameters()
  78    {
  79      $toolkit = lmbToolkit :: save();
  80      $back = new lmbQtDictionaryBackend();
  81      $back->setSearchPath($translations_dir = LIMB_VAR_DIR . '/translations');
  82      $toolkit->setDictionaryBackend($back);
  83  
  84      $xml = <<< EOD
  85  <?xml version="1.0"?>
  86  <!DOCTYPE TS><TS>
  87  <context>
  88  <message>
  89      <source>Hello {name}</source>
  90      <translation>Привет {name}</translation>
  91  </message>
  92  </context>
  93  </TS>
  94  EOD;
  95      file_put_contents($translations_dir . '/foo.ru_RU.ts', $xml);
  96  
  97      $toolkit->setLocale('ru_RU');
  98      $this->assertEqual(lmb_i18n('Hello {name}', array('{name}' => 'Bob'), 'foo'), 'Привет Bob');
  99  
 100      lmbToolkit :: restore();
 101    }
 102  
 103    function testTranslateSubstituteParametersDefaultContext()
 104    {
 105      $toolkit = lmbToolkit :: save();
 106      $back = new lmbQtDictionaryBackend();
 107      $back->setSearchPath($translations_dir = LIMB_VAR_DIR . '/translations');
 108      $toolkit->setDictionaryBackend($back);
 109  
 110      $xml = <<< EOD
 111  <?xml version="1.0"?>
 112  <!DOCTYPE TS><TS>
 113  <context>
 114  <message>
 115      <source>Hello {name}</source>
 116      <translation>Привет {name}</translation>
 117  </message>
 118  </context>
 119  </TS>
 120  EOD;
 121      file_put_contents($translations_dir . '/default.ru_RU.ts', $xml);
 122  
 123      $toolkit->setLocale('ru_RU');
 124      $this->assertEqual(lmb_i18n('Hello {name}', array('{name}' => 'Bob')), 'Привет Bob');
 125  
 126      lmbToolkit :: restore();
 127    }
 128  }
 129  
 130  ?>


Generated: Sat Nov 22 03:48:54 2008 Cross-referenced by PHPXref 0.7