function updateLinkForm(&$form) { $field = new LanguageDropdownField('Language', _t('CMSMain.LANGUAGEDROPDOWNLABEL', 'Language')); $field->setValue(Translatable::get_current_locale()); $field->setForm($form); $form->Fields()->insertBefore($field, 'internal'); Requirements::javascript('translatable/javascript/HtmlEditorField.Translatable.js'); }
/** * Returns a form with all languages with languages already used appearing first. * * @return Form */ public function updateSearchForm(Form $form) { $member = Member::currentUser(); //check to see if the current user can switch langs or not if (Permission::checkMember($member, 'VIEW_LANGS')) { $field = new LanguageDropdownField('Locale', _t('CMSMain.LANGUAGEDROPDOWNLABEL', 'Language'), array(), 'SiteTree', 'Locale-English', singleton('SiteTree')); $field->setValue(Translatable::get_current_locale())->setForm($form); } else { // user doesn't have permission to switch langs // so just show a string displaying current language $field = new LiteralField('Locale', i18n::get_locale_name(Translatable::get_current_locale())); } $form->Fields()->unshift($field); }
/** * Returns a form with all languages with languages already used appearing first. * * @return Form */ function LangForm() { $member = Member::currentUser(); //check to see if the current user can switch langs or not if (Permission::checkMember($member, 'VIEW_LANGS')) { $field = new LanguageDropdownField('Locale', _t('CMSMain.LANGUAGEDROPDOWNLABEL', 'Language'), array(), 'SiteTree', 'Locale-English', singleton('SiteTree')); $field->setValue(Translatable::get_current_locale()); } else { // user doesn't have permission to switch langs // so just show a string displaying current language $field = new LiteralField('Locale', i18n::get_locale_name(Translatable::get_current_locale())); } $form = new Form($this->owner, 'LangForm', new FieldList($field), new FieldList(new FormAction('selectlang', _t('CMSMain_left.GO', 'Go')))); $form->unsetValidator(); $form->addExtraClass('nostyle'); return $form; }
/** * Returns all languages with languages already used appearing first. * Called by the SSViewer when rendering the template. */ function LangSelector() { $member = Member::currentUser(); $dropdown = new LanguageDropdownField('LangSelector', 'Language', array(), 'SiteTree', 'Locale-English', singleton('SiteTree')); $dropdown->setValue(Translatable::get_current_locale()); return $dropdown; }
/** * Returns all languages with languages already used appearing first. * Called by the SSViewer when rendering the template. */ function LangSelector() { $member = Member::currentUser(); //check to see if the current user can switch langs or not if (Permission::checkMember($member, 'VIEW_LANGS')) { $dropdown = new LanguageDropdownField('LangSelector', 'Language', array(), 'SiteTree', 'Locale-English'); $dropdown->setValue(Translatable::get_current_locale()); return $dropdown; } //user doesn't have permission to switch langs so just show a string displaying current language return i18n::get_locale_name(Translatable::get_current_locale()); }
/** * Creates and returns the language dropdown field * * @param DataObject $dataObj DataObject to get dropdown for * @param string $translatingClass Context class of the LanguageDropdownField * @param string $fieldName Name of the LanguageDropdownField * * @return LanguageDropdownField * * @author Sebastian Diel <*****@*****.**> * @since 21.12.2015 */ public static function prepareLanguageDropdownField($dataObj, $translatingClass = null, $fieldName = 'Locale') { $instance = null; $alreadyTranslatedLocales = array(); if (is_null($translatingClass)) { $translatingClass = $dataObj->ClassName; $instance = $dataObj; } if ($instance) { $alreadyTranslatedLocales = $instance->getTranslatedLocales(); unset($alreadyTranslatedLocales[$instance->Locale]); } $localeDropdown = new LanguageDropdownField($fieldName, _t('SilvercartConfig.TRANSLATION'), $alreadyTranslatedLocales, $translatingClass, 'Locale-Native', $instance); $currentLocale = Translatable::get_current_locale(); $localesWithTitle = $localeDropdown->getSource(); $usedLocalesWithTitle = Translatable::get_existing_content_languages('SiteTree'); $languageList = array(); $usedLanguageList = array(); foreach ($localesWithTitle as $locale => $title) { if (is_array($title)) { foreach ($title as $locale2 => $title2) { $title2 = self::getLanguageDisplayTitle($locale2, $currentLocale); if (array_key_exists($locale2, $usedLocalesWithTitle)) { $usedLanguageList[$locale2] = $title2; unset($languageList[$locale2]); } else { $languageList[$locale2] = $title2; } } } else { $title = self::getLanguageDisplayTitle($locale, $currentLocale); if (array_key_exists($locale, $usedLocalesWithTitle)) { $usedLanguageList[$locale] = $title; unset($languageList[$locale]); } else { $languageList[$locale] = $title; } } } asort($languageList); if (count($usedLanguageList)) { asort($usedLanguageList); $languageList = array(_t('Form.LANGAVAIL', "Available languages") => $usedLanguageList, _t('Form.LANGAOTHER', "Other languages") => $languageList); } $localeDropdown->setSource($languageList); $localeDropdown->setValue($dataObj->Locale); return $localeDropdown; }