public function testTranslateInput() { // prepare $api = $this->createRenderApi(array('interfaceLocale' => 'de')); $moduleInfo = $this->createModuleInfo(); $translator = new Translator($api, $moduleInfo); // execute/verify // fallback to en $this->assertEquals('this is en', $translator->translateInput('{"en": "this is en", "ch": "test"}')); // current lang $this->assertEquals('test', $translator->translateInput('{"en": "this is en", "de": "test"}')); // fallback to string (malformed json) $this->assertEquals('{"en": "this is en", "de": "test}', $translator->translateInput('{"en": "this is en", "de": "test}')); // first key (if not current lang and not en) - NOTE: there is no order so we just check that the json is unwrapped $this->assertEquals('this', $translator->translateInput('{"pl": "this", "ch": "this"}')); }
/** * Creates an assoc array from countryList textarea value * <code> * LOCALE: en * SRC: 'DE:{"de":"Deutschland","en":"Germany"}\nAT:Austria\nCH:Switzerland'; * RETURN: array( * 'DE' => 'Germany', * 'AT' => 'Austria', * 'CH' => 'Switzerland', * ) * </code> * * @return array */ public function getShippingCountries() { $countries = array(); $rows = explode("\n", $this->getShopSetting('countryList')); foreach ($rows as $rowCount => $row) { $data = explode(':', $row, 2); if (count($data) > 1 && strlen($data[0]) == 2) { $countries[strtoupper($data[0])] = $this->i18n->translateInput($data[1]); } } return $countries; }
/** * @param \Render\APIs\APIv1\RenderAPI $renderApi * @param Unit $unit * @param $moduleInfo * @param \Render\APIs\APIv1\Page $productPage * @param Translator $i18n * * @return HtmlTagBuilder|void */ private function getAddCartTag($renderApi, $unit, $moduleInfo, $productPage, $i18n) { $shopSettings = $renderApi->getWebsiteSettings('rz_shop'); $cartPageId = $shopSettings['cartPage']; if (!$cartPageId) { return HtmlTagBuilder::div(HtmlTagBuilder::button($i18n->translate('msg.noCartPage'))->set(array('style' => 'cursor: default;')))->set(array('class' => 'RUKZUKmissingInputHint')); } $cartText = $i18n->translateInput($renderApi->getFormValue($unit, 'cartText')); $cartUrl = $renderApi->getNavigation()->getPage($cartPageId)->getUrl(); return $this->displayCartButton($cartText, $productPage, $cartUrl, $renderApi->isEditMode() || $renderApi->isTemplate(), $i18n); }