From f3cea18ae8d22b0879e015151dadf6a91c7a5bc8 Mon Sep 17 00:00:00 2001 From: bradymiller Date: Sat, 1 Aug 2009 23:07:15 +0000 Subject: [PATCH] internationalization bug fixes --- interface/language/lang_constant.php | 41 ++++++++++++++ interface/language/lang_definition.php | 97 ++++++++++++++++++++++++++++++++++ interface/language/lang_language.php | 52 ++++++++++++++++++ interface/language/language.inc.php | 21 ++++++++ 4 files changed, 211 insertions(+) create mode 100644 interface/language/lang_constant.php create mode 100644 interface/language/lang_definition.php create mode 100644 interface/language/lang_language.php create mode 100644 interface/language/language.inc.php diff --git a/interface/language/lang_constant.php b/interface/language/lang_constant.php new file mode 100644 index 000000000..150a9d003 --- /dev/null +++ b/interface/language/lang_constant.php @@ -0,0 +1,41 @@ +'); + $err='y'; + } + if ($err=='y'){ + $val_constant=$myconst; + } else { + $sql="INSERT INTO lang_constants SET constant_name='".$myconst."'"; + SqlStatement ($sql); + echo xl('Constant','','',' ') . $myconst . xl('added','',' ','
'); + } + + + +// echo "$sql here "; +} + +?> + + + + + + + + + + + + +
+ diff --git a/interface/language/lang_definition.php b/interface/language/lang_definition.php new file mode 100644 index 000000000..79d02a068 --- /dev/null +++ b/interface/language/lang_definition.php @@ -0,0 +1,97 @@ + $value) { + $value = mysql_real_escape_string (trim($value)); + $sql .= " ('$key', "; + $sql .= "'" . $_POST['lang_id'] . "',"; + $sql .= "'" . $value . "'),"; + $go = 'yes'; + } + } + if ($go=='yes') { + $sql=substr($sql,0,-1); + if (SqlStatement($sql)) { + xl ("New Definition set added",'e'); + } + } + // query for updating preexistant definitions uses def_id because there is no def yet. + // echo ('
');	print_r($_POST['def_id']);	echo ('
'); + if (!empty($_POST['def_id'])) { + foreach ($_POST['def_id'] as $key => $value) { + $value = mysql_real_escape_string (trim($value)); + $sql = "UPDATE `lang_definitions` SET `definition` = '$value' WHERE `def_id`='$key' LIMIT 1"; + SqlStatement($sql); + } + } +} + +if ($_GET['edit'] != ''){ + $lang_id = (int)$_GET['edit']; + + $lang_filter = isset($_GET['filter']) ? $_GET['filter'] : ''; + $lang_filter .= '%'; + + $sql = "SELECT lc.cons_id, lc.constant_name, ld.def_id, ld.definition " . + "FROM lang_definitions AS ld " . + "RIGHT JOIN ( lang_constants AS lc, lang_languages AS ll ) ON " . + "( lc.cons_id = ld.cons_id AND ll.lang_id = ld.lang_id ) " . + "WHERE lc.constant_name LIKE '$lang_filter' AND ( ll.lang_id = 1 "; + if ($lang_id != 1) { + $sql .= "OR ll.lang_id = '$lang_id' "; + $what = "SELECT * from lang_languages where lang_id = $lang_id LIMIT 1"; + $res = SqlStatement($what); + $row = SqlFetchArray($res); + $lang_name = $row['lang_description']; + } + $sql .= ") ORDER BY lc.constant_name"; + + $res = SqlStatement($sql); + + echo (''); + // only english definitions + if ($lang_id==1) { + while ($row=SqlFetchArray($res)){ + echo (''); + // if there is no definition + if (empty($row['def_id'])){ + $cons_name = "cons_id[" . $row['cons_id'] . "]"; + // if there is a previous definition + } else { + $cons_name = "def_id[" . $row['def_id'] . "]"; + } + echo (''); + } + echo (''); + // english plus the other + } else { + while ($row=SqlFetchArray($res)){ + echo (''); + if ($row['definition']=='' OR $row['definition']=='NULL') { + $def="NULL" ; + } else { + $def=$row['definition']; + } + echo (''); + $row=SqlFetchArray($res); // jump one to get the second language selected + if ($row['def_id']=='' OR $row['def_id']=='NULL'){ + $cons_name="cons_id[".$row['cons_id']."]"; + // if there is a previous definition + } else { + $cons_name="def_id[".$row['def_id']."]";; + } + echo (''); + } + echo (''); + } + echo (''); + echo ('
'.$row['constant_name'].''); + echo ('
'.$row['constant_name'].''.$def.''); + echo ('
'); +} + +?> diff --git a/interface/language/lang_language.php b/interface/language/lang_language.php new file mode 100644 index 000000000..c4b06e9fc --- /dev/null +++ b/interface/language/lang_language.php @@ -0,0 +1,52 @@ +'); + $err='y'; + } +/* + $pat="^[a-Z]+\$"; + if (!check_pattern ($_POST['lang_name'],$pat)) { + echo ("Only letters accepted for description
"); + $err='y'; + } +*/ + $sql="SELECT * FROM lang_languages WHERE lang_code LIKE '%".$_POST['lang_code']."%' or lang_description LIKE '%".$_POST['lang_name']."' limit 1" ; + $res=SqlQuery($sql); + if ( $res ) { + xl ("Data Alike is already in database, please change code and/or description",'e','','
'); + $err='y'; + } + if ($err=='y'){ + $val_lang_code=$_POST['lang_code']; + $val_lang_name=$_POST['lang_name']; + } else { + $sql="INSERT INTO lang_languages SET lang_code='".$_POST['lang_code']."', lang_description='".$_POST['lang_name']."'"; + SqlStatement ($sql); + xl('Language definition added','e','','
'); + } +} + +?> + + + + + + + + + + + + + + + + +
:
:
diff --git a/interface/language/language.inc.php b/interface/language/language.inc.php new file mode 100644 index 000000000..e29a4167f --- /dev/null +++ b/interface/language/language.inc.php @@ -0,0 +1,21 @@ +\n\n"; + echo "

" . xl('You are not authorized for this.','e') . "

\n"; + echo "\n\n"; + exit(); + } + + + +function check_pattern ($data,$pat) { + if (ereg ($pat, $data)) { return TRUE ; } else { RETURN FALSE; } +} + +//$pat="^(19[0-9]{2}|20[0-1]{1}[0-9]{1})-(0[1-9]|1[0-2])-(0[1-9]{1}|1[0-9]{1}|2[0-9]{1}|3[0-1]{1})$"; + +?> -- 2.11.4.GIT