function _l10n_chooser($permitted_langs) { $count = 0; $langs = MLPLanguageHandler::get_site_langs(); $o[] = '<div class="l10n_extensions"><fieldset><legend>' . gTxt('l10n-show_langs') . '</legend>' . n; $use_cookies = gps('l10n_filter_method') !== 'post'; # # See if there are any languages selected. If not, select them all -- to give the user something to look at! # $showlangs = array(); $rendition_count = 0; $count = 0; foreach ($langs as $lang) { $table = _l10n_make_textpattern_name(array('long' => $lang)); $lang_rendition_count = safe_count($table, L10N_COL_LANG . "='{$lang}'"); $lang_has_renditions = $lang_rendition_count > 0; $rw = ''; if ($use_cookies) { $checked = cs($lang) ? 'checked' : ''; } else { $checked = gps($lang) ? 'checked' : ''; } $lang_name = MLPLanguageHandler::get_native_name_of_lang($lang); if (!in_array($lang, $permitted_langs)) { $rw = 'disabled="disabled"'; $checked = ''; } elseif (!$lang_has_renditions) { $rw = 'disabled="disabled"'; $checked = 'checked'; } $showlangs[$lang]['lang_name'] = $lang_name; $showlangs[$lang]['rw'] = $rw; $showlangs[$lang]['checked'] = $checked; if (!empty($checked)) { $rendition_count += $lang_rendition_count; } } $override_check = false; if ($rendition_count === 0) { $override_check = true; } foreach ($showlangs as $lang => $record) { $dir = MLPLanguageHandler::get_lang_direction($lang); $rtl = $dir == 'rtl'; extract($record); $checked = $override_check ? 'checked' : $checked; if ($rtl) { $o[] = t . '<span dir="rtl">'; } $o[] = t . '<input type="checkbox" class="checkbox" ' . $rw . ' ' . $checked . ' value="' . $lang . '" name="' . $lang . '" id="' . $lang . '"/>' . n; $o[] = t . '<label for="' . $lang . '">' . $lang_name . '</label>' . n; if ($rtl) { $o[] = t . '</span>'; } } $o[] = hInput('l10n_filter_method', 'post'); $o[] = t . '<input type="submit" value="' . gTxt('go') . '" class="smallerbox" />' . n; $o[] = '</fieldset></div>' . n; $o = join('', $o); return $o; }
function do_fleshout_dirs(&$langs) { $result = array(); if (is_array($langs) and !empty($langs)) { foreach ($langs as $code) { $code = trim($code); $tmp = MLPLanguageHandler::get_lang_direction($code); $result[$code] = $tmp; } } return $result; }
function l10n_get_lang_dir($atts) { /* Outputs the direction (rtl/ltr) of the current language. Use in page/forms to output the direction needed by xhtml elements. */ global $l10n_language; extract(lAtts(array('type' => 'short'), $atts)); if (!$l10n_language) { $lang = MLPLanguageHandler::compact_code(MLPLanguageHandler::get_site_default_lang()); } else { $lang = $l10n_language; } $dir = MLPLanguageHandler::get_lang_direction($lang[$type]); return $dir; }