From: <sam...@us...> - 2011-09-05 20:47:26
|
Revision: 36960 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=36960&view=rev Author: sampaioprimo Date: 2011-09-05 20:47:20 +0000 (Mon, 05 Sep 2011) Log Message: ----------- new get_strings.php: support custom language file name Modified Paths: -------------- trunk/get_strings2.php trunk/lib/language/GetStrings.php trunk/lib/test/language/GetStringsEndToEndTest.php trunk/lib/test/language/GetStringsTest.php Modified: trunk/get_strings2.php =================================================================== --- trunk/get_strings2.php 2011-09-05 20:46:23 UTC (rev 36959) +++ trunk/get_strings2.php 2011-09-05 20:47:20 UTC (rev 36960) @@ -18,7 +18,9 @@ * Command line examples: * - php get_strings.php * - php get_strings.php lang=pt-br outputFiles=true - * - php get_strings.php baseDir=lib/ excludeDirs=lib/core/Zend,lib/captcha includeFiles=captchalib.php,index.php + * - php get_strings.php baseDir=lib/ excludeDirs=lib/core/Zend,lib/captcha includeFiles=captchalib.php,index.php fileName=language_r.php + * + * Note: baseDir and fileName parameters are available in command line mode only * * * If you want to know the translation progression for your language, just visit : http://i18n.tiki.org/status @@ -84,6 +86,10 @@ if ($request->hasProperty('includeFiles')) { $includeFiles = explode(',', $request->getProperty('includeFiles')); } + + if ($request->hasProperty('fileName')) { + $options['fileName'] = $request->getProperty('fileName'); + } } $getStrings = new Language_GetStrings(new Language_CollectFiles, new Language_WriteFile, $options); Modified: trunk/lib/language/GetStrings.php =================================================================== --- trunk/lib/language/GetStrings.php 2011-09-05 20:46:23 UTC (rev 36959) +++ trunk/lib/language/GetStrings.php 2011-09-05 20:47:20 UTC (rev 36960) @@ -37,6 +37,13 @@ protected $languages = array(); /** + * Name of the file that contain the + * translations. + * @var string + */ + protected $fileName = 'language.php'; + + /** * @var Language_CollectFiles */ public $collectFiles; @@ -101,6 +108,10 @@ } else { $this->setLanguages(); } + + if (isset($options['fileName'])) { + $this->fileName = $options['fileName']; + } } /** @@ -276,14 +287,14 @@ $languages = $this->languages; foreach ($languages as $lang) { - $langPath = $this->baseDir . '/lang/' . $lang . '/language.php'; + $langPath = $this->baseDir . '/lang/' . $lang . '/' . $this->fileName; $this->writeFile->writeStringsToFile($strings, $langPath, $this->outputFiles); } } /** * Return all available languages (check for the - * existence of a language.php file). + * existence of a language file). * @return array all language codes */ protected function getAllLanguages() @@ -296,7 +307,7 @@ } $path = $dirs->path . '/' . $entry; - if (is_dir($path) && file_exists($path . '/language.php')) { + if (is_dir($path) && file_exists($path . '/' . $this->fileName)) { $languages[] = $entry; } } Modified: trunk/lib/test/language/GetStringsEndToEndTest.php =================================================================== --- trunk/lib/test/language/GetStringsEndToEndTest.php 2011-09-05 20:46:23 UTC (rev 36959) +++ trunk/lib/test/language/GetStringsEndToEndTest.php 2011-09-05 20:47:20 UTC (rev 36960) @@ -23,7 +23,7 @@ $dir1 = new vfsStreamDirectory('dir1'); $dir2 = new vfsStreamDirectory('dir2'); $dir3 = new vfsStreamDirectory('lang'); - $langDir = new vfsStreamDirectory('es'); + $this->langDir = new vfsStreamDirectory('es'); $file1 = new vfsStreamFile('file1.tpl'); $file1->setContent(file_get_contents(__DIR__ . '/fixtures/test_collecting_strings.tpl')); @@ -36,8 +36,8 @@ $dir1->addChild($file1); $dir2->addChild($file2); - $dir3->addChild($langDir); - $langDir->addChild($langFile); + $dir3->addChild($this->langDir); + $this->langDir->addChild($langFile); $root->addChild($dir1); $root->addChild($dir2); @@ -56,4 +56,23 @@ file_get_contents(vfsStream::url('root/lang/es/language.php')) ); } + + public function testGetStrings_endToEnd_customLanguageFileName() + { + $fileName = 'language_r.php'; + + $langFile = new vfsStreamFile($fileName); + $langFile->setContent(file_get_contents(__DIR__ . '/fixtures/language_end_to_end_test_original.php')); + $this->langDir->addChild($langFile); + + $obj = new Language_GetStrings(new Language_CollectFiles, new Language_WriteFile, array('baseDir' => vfsStream::url('root'), 'fileName' => 'language_r.php')); + $obj->addFileType(new Language_FileType_Php); + $obj->addFileType(new Language_FileType_Tpl); + $obj->run(); + + $this->assertEquals( + file_get_contents(__DIR__ . '/fixtures/language_end_to_end_test_modified.php'), + file_get_contents(vfsStream::url("root/lang/es/$fileName")) + ); + } } Modified: trunk/lib/test/language/GetStringsTest.php =================================================================== --- trunk/lib/test/language/GetStringsTest.php 2011-09-05 20:46:23 UTC (rev 36959) +++ trunk/lib/test/language/GetStringsTest.php 2011-09-05 20:47:20 UTC (rev 36960) @@ -264,6 +264,16 @@ $obj->writeToFiles($strings); } + public function testWriteToFiles_shouldUseCustomFileName() + { + $strings = array('string1', 'string2', 'string3', 'string4'); + + $this->writeFile->expects($this->once())->method('writeStringsToFile')->with($strings, $this->stringContains('language_r.php'), false); + + $obj = new Language_GetStrings($this->collectFiles, $this->writeFile, array('baseDir' => $this->baseDir, 'lang' => 'es', 'fileName' => 'language_r.php')); + $obj->writeToFiles($strings); + } + public function testScanFiles_shouldReturnStringsFromFiles() { $files = array('file1', 'file2', 'file3'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |