$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;
?>
'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'); ?>
$language){ if($lang!='code') { ?>
.'/'.$q_config['flag_location'].$q_config['flag'][$lang]; ?>) |
|
|
|
|