$language) { $menu[] = array(__($q_config['language_name'][$language]), 'read', '?lang='.$language, '', 'menu-top', 'menu-language-'.$language, get_option('home').'/'.$q_config['flag_location'].$q_config['flag'][$language]); } $menu[] = array( '', 'read', '', '', 'wp-menu-separator-last' ); } function qtranslate_language_form($lang = '', $language_code = '', $language_name = '', $language_locale = '', $language_date_format = '', $language_time_format = '', $language_flag ='', $language_na_message = '', $language_default = '', $original_lang='') { global $q_config; ?>

ISO Language Code for the Language you want to insert. (Example: en)'); ?>

0){ ?>


strftime by default! Use %q for day suffix (st,nd,rd,th). (Example: %A %B %e%q, %Y)'); ?>

strftime by default! (Example: %I:%M %p)'); ?>



'Flag', 'name' => __('Name'), 'status' => __('Action'), 'status2' => '', 'status3' => '' ); } function qtranslate_conf() { global $q_config, $wpdb; // init some needed variables $error = ''; $original_lang = ''; $language_code = ''; $language_name = ''; $language_locale = ''; $language_date_format = ''; $language_time_format = ''; $language_na_message = ''; $language_flag = ''; $language_default = ''; $altered_table = false; // check if category names can be longer than 55 characters /*if($wpdb->terms != '') { $category_table_name = $wpdb->terms; } else { $category_table_name = $wpdb->categories; } $fields = $wpdb->get_results("DESCRIBE ".$category_table_name); foreach($fields as $field) { if(strtolower($field->Field)=='name') { // check field type if(preg_match("/varchar\(([0-9]+)\)/i",$field->Type,$match)) { // is varchar if(intval($match[1])<255){ // too small varchar, lets change it $wpdb->get_results("ALTER TABLE $wpdb->terms MODIFY `name` VARCHAR(255) NOT NULL DEFAULT ''"); $altered_table = true; } } } }*/ // check for action if(isset($_POST['qtranslate_reset']) && isset($_POST['qtranslate_reset2'])) { $message = _('qTranslate has been reset.'); } elseif(isset($_POST['default_language'])) { // save settings qtrans_checkSetting('default_language', true, QT_STRING, true); qtrans_checkSetting('flag_location', true, QT_STRING); qtrans_checkSetting('ignore_file_types', true, QT_STRING); qtrans_checkSetting('detect_browser_language', true, QT_BOOLEAN); qtrans_checkSetting('hide_untranslated', true, QT_BOOLEAN); qtrans_checkSetting('use_strftime', true, QT_BOOLEAN); qtrans_checkSetting('url_mode', true, QT_INTEGER); qtrans_checkSetting('auto_update_mo', true, QT_BOOLEAN); if($_POST['update_mo_now']=='1' && qtrans_updateGettextDatabases(true)) $message = __('Gettext databases updated.'); } if(isset($_POST['original_lang'])) { // validate form input if($_POST['language_na_message']=='') $error = __('The Language must have a Not-Available Message!'); if($_POST['language_time_format']=='') $error = __('The Language must have a Time Format!'); if($_POST['language_date_format']=='') $error = __('The Language must have a Date Format!'); if(strlen($_POST['language_locale'])<2) $error = __('The Language must have a Locale!'); if($_POST['language_name']=='') $error = __('The Language must have a name!'); if(strlen($_POST['language_code'])!=2) $error = __('Language Code has to be 2 characters long!'); if($_POST['original_lang']==''&&$error=='') { // new language if(isset($q_config['language_name'][$_POST['language_code']])) { $error = __('There is already a language with the same Language Code!'); } } if($_POST['original_lang']!=''&&$error=='') { // language update if($_POST['language_code']!=$_POST['original_lang']&&isset($q_config['language_name'][$_POST['language_code']])) { $error = __('There is already a language with the new Language Code!'); } else { // remove old language unset($q_config['language_name'][$_POST['original_lang']]); unset($q_config['flag'][$_POST['original_lang']]); unset($q_config['locale'][$_POST['original_lang']]); unset($q_config['date_format'][$_POST['original_lang']]); unset($q_config['time_format'][$_POST['original_lang']]); unset($q_config['not_available'][$_POST['original_lang']]); if(in_array($_POST['original_lang'],$q_config['enabled_languages'])) { // was enabled, so set modified one to enabled too for($i = 0; $i < sizeof($q_config['enabled_languages']); $i++) { if($q_config['enabled_languages'][$i] == $_POST['original_lang']) { $q_config['enabled_languages'][$i] = $_POST['language_code']; } } } if($_POST['original_lang']==$q_config['default_language']) // was default, so set modified the default $q_config['default_language'] = $_POST['language_code']; } } if($error=='') { // everything is fine, insert language $q_config['language_name'][$_POST['language_code']] = $_POST['language_name']; $q_config['flag'][$_POST['language_code']] = $_POST['language_flag']; $q_config['locale'][$_POST['language_code']] = $_POST['language_locale']; $q_config['date_format'][$_POST['language_code']] = $_POST['language_date_format']; $q_config['time_format'][$_POST['language_code']] = $_POST['language_time_format']; $q_config['not_available'][$_POST['language_code']] = $_POST['language_na_message']; } if($error!=''||isset($_GET['edit'])) { // get old values in the form $original_lang = $_POST['original_lang']; $language_code = $_POST['language_code']; $language_name = $_POST['language_name']; $language_locale = $_POST['language_locale']; $language_date_format = $_POST['language_date_format']; $language_time_format = $_POST['language_time_format']; $language_na_message = $_POST['language_na_message']; $language_flag = $_POST['language_flag']; $language_default = $_POST['language_default']; } } elseif(isset($_GET['convert'])){ // update language tags global $wpdb; $wpdb->show_errors(); foreach($q_config['enabled_languages'] as $lang) { $wpdb->query('UPDATE '.$wpdb->posts.' set post_title = REPLACE(post_title, "[lang_'.$lang.']","")'); $wpdb->query('UPDATE '.$wpdb->posts.' set post_title = REPLACE(post_title, "[/lang_'.$lang.']","")'); $wpdb->query('UPDATE '.$wpdb->posts.' set post_content = REPLACE(post_content, "[lang_'.$lang.']","")'); $wpdb->query('UPDATE '.$wpdb->posts.' set post_content = REPLACE(post_content, "[/lang_'.$lang.']","")'); } $message = "Database Update successful!"; } elseif(isset($_GET['edit'])){ $original_lang = $_GET['edit']; $language_code = $_GET['edit']; $language_name = $q_config['language_name'][$_GET['edit']]; $language_locale = $q_config['locale'][$_GET['edit']]; $language_date_format = $q_config['date_format'][$_GET['edit']]; $language_time_format = $q_config['time_format'][$_GET['edit']]; $language_na_message = $q_config['not_available'][$_GET['edit']]; $language_flag = $q_config['flag'][$_GET['edit']]; } elseif(isset($_GET['delete'])) { // validate delete (protect code) if($q_config['default_language']==$_GET['delete']) $error = 'Cannot delete Default Language!'; if(!isset($q_config['language_name'][$_GET['delete']])||strtolower($_GET['delete'])=='code') $error = 'No such language!'; if($error=='') { // everything seems fine, delete language unset($q_config['language_name'][$_GET['delete']]); unset($q_config['flag'][$_GET['delete']]); unset($q_config['locale'][$_GET['delete']]); unset($q_config['date_format'][$_GET['delete']]); unset($q_config['time_format'][$_GET['delete']]); unset($q_config['not_available'][$_GET['delete']]); if(qtrans_isEnabled($_GET['delete'])) { qtrans_disableLanguage($_GET['delete']); } } } elseif(isset($_GET['enable'])) { // enable validate if(!qtrans_enableLanguage($_GET['enable'])) { $error = __('Language is already enabled or invalid!'); } } elseif(isset($_GET['disable'])) { // enable validate if($_GET['disable']==$q_config['default_language']) $error = __('Cannot disable Default Language!'); if(!qtrans_isEnabled($_GET['disable'])) $error = __('Language is already disabled!'); if(!isset($q_config['language_name'][$_GET['disable']])) $error = __('No such language!'); if($error=='') { // everything seems fine, disable language qtrans_disableLanguage($_GET['disable']); } } if($q_config['auto_update_mo']) { if(!is_dir(ABSPATH.'wp-content/languages/') || !$ll = @fopen(ABSPATH.'wp-content/languages/qtranslate.test','a')) { $message = sprintf(__('Could not write to "%s", Gettext Databases could not be downloaded!'), ABSPATH.'wp-content/languages/'); } else { @fclose($ll); @unlink(ABSPATH.'wp-content/languages/qtranslate.test'); } } $everything_fine = ((isset($_POST['submit'])||isset($_GET['delete'])||isset($_GET['enable'])||isset($_GET['disable']))&&$error==''); if($everything_fine) { // settings might have changed, so save qtrans_saveConfig(); if(empty($message)) { $message = __('Options saved.'); } } // don't accidently delete/enable/disable twice $clean_uri = preg_replace("/&(delete|enable|disable)=[a-z]{2}/i","",$_SERVER['REQUEST_URI']); // Generate XHTML ?>

qTranslate FAQ and the Support Forum.'), 'http://www.qianqin.de/qtranslate/faq/', 'http://www.qianqin.de/qtranslate/forum/viewforum.php?f=3'); ?>

' . $q_config['language_name'][$language] . ' ' . $q_config['language_name'][$language] . "
\n"; } ?>














click here to convert posts to the new language tag format. This process is irreversible! Be sure to make a full database backup before clicking the link.'), $clean_uri.'&convert=true'); ?>

$language){ if($lang!='code') { ?>
<?php echo $language; ?> Flag