/** * translateAlias * * @return void */ public static function translateAlias() { $easyset = \Ezset::getInstance(); $input = \JFactory::getApplication()->input; // Set translate language $SourceLan = $easyset->params->get('originLan'); $ResultLan = $easyset->params->get('tranLan', 'en'); // Get query $jform = $input->post->getRaw('jform', array()); if (!isset($jform) || !isset($jform['alias']) || !isset($jform['title'])) { return; } $alias = $jform['alias']; $title = $jform['title']; $titleTmp = explode('::', $jform['title']); if (!empty($titleTmp[1])) { $title = $titleTmp[0]; $alias = \JFilterOutput::stringURLSafe($titleTmp[1]); } if ('' == (string) trim($alias)) { $alias = LanguageHelper::translate($title, $SourceLan, $ResultLan); $alias = trim($alias); $alias = \JFilterOutput::stringURLSafe($alias); $alias = strtr($alias, static::$replace); $alias = trim($alias, '-'); } $jform['alias'] = $alias; $jform['title'] = $title; $input = \JFactory::getApplication()->input; $input->post->set('jform', $jform, 'method', true); $input->request->set('jform', $jform); }
/** * Method to test translate(). * * @return void * * @covers Windwalker\Helper\LanguageHelper::translate */ public function testTranslate() { if (!defined('WINDWALKER_TEST_GOOGLE_TRANSLATE') || !WINDWALKER_TEST_GOOGLE_TRANSLATE) { $this->markTestSkipped('Skip Google Translate test.'); } $testParagraph = 'admin article news'; $expectedResult = '管理員文章新聞'; $gTranslated = LanguageHelper::translate($testParagraph, 'en', 'zh-TW'); $this->assertEquals($expectedResult, $gTranslated); }
/** * tranAlias * * @param \stdClass $article * * @return void */ public function tranAlias(&$article) { $config = JFactory::getConfig(); if ($config->get('unicodeslugs')) { return; } $alias = $article->alias; $title = $article->title; $titleTmp = explode('::', $title); if (!empty($titleTmp[1])) { $title = $titleTmp[0]; $alias = $titleTmp[1]; } $alias = JFilterOutput::stringURLSafe($alias); if (trim($alias) == '') { $alias = \Windwalker\Helper\LanguageHelper::translate($article->title, null, 'en'); $alias = trim($alias); $alias = JFilterOutput::stringURLSafe($alias); $replace = array('aquot' => '', 'a39' => '', '--' => '-'); $alias = strtr($alias, $replace); $alias = trim($alias, '-'); } $article->title = trim($title); $article->alias = trim($alias); }