2 if ($_POST['check'] ||
$_POST['synchronize']){
3 // set up flag if only checking for changes (ie not performing synchronization)
9 // set up the mysql collation string to ensure case is sensitive in the mysql queries
10 if (!$disable_utf8_flag) {
11 $case_sensitive_collation = "COLLATE utf8_bin";
14 $case_sensitive_collation = "COLLATE latin_bin";
16 $difference = 0; //flag
19 // collect and display(synchronize) new custom languages
21 $sql = "SELECT lang_description FROM lang_languages";
22 $res = SqlStatement($sql);
24 while ($row=SqlFetchArray($res)){
25 $row_main[] = $row['lang_description'];
27 $sql = "SELECT lang_description FROM lang_custom";
28 $res = SqlStatement($sql);
29 $row_custom = array();
30 while ($row=SqlFetchArray($res)){
31 $row_custom[] = $row['lang_description'];
33 $custom_languages = array_diff(array_unique($row_custom),array_unique($row_main));
34 foreach ($custom_languages as $var) {
35 if ($var=='') continue;
36 echo xl('Following is a new custom language:')." ".$var."<BR>";
38 // add the new language (first collect the language code)
39 $sql = "SELECT lang_code FROM lang_custom WHERE constant_name='' AND lang_description='".add_escape_custom($var)."' ".$case_sensitive_collation." LIMIT 1";
40 $res = SqlStatement($sql);
41 $row = SqlFetchArray($res);
42 $sql="INSERT INTO lang_languages SET lang_code='".add_escape_custom($row['lang_code'])."', lang_description='".add_escape_custom($var)."'";
44 echo xl('Synchronized new custom language:')." ".$var."<BR><BR>";
50 // collect and display(synchronize) new custom constants
52 $sql = "SELECT constant_name FROM lang_constants";
53 $res = SqlStatement($sql);
55 while ($row=SqlFetchArray($res)){
56 $row_main[] = $row['constant_name'];
58 $sql = "SELECT constant_name FROM lang_custom";
59 $res = SqlStatement($sql);
60 $row_custom = array();
61 while ($row=SqlFetchArray($res)){
62 $row_custom[] = $row['constant_name'];
64 $custom_constants = array_diff(array_unique($row_custom),array_unique($row_main));
65 foreach ($custom_constants as $var) {
66 if ($var=='') continue;
67 echo xl('Following is a new custom constant:')." ".$var."<BR>";
69 // add the new constant
70 $sql="INSERT INTO lang_constants SET constant_name='".add_escape_custom($var)."'";
72 echo xl('Synchronized new custom constant:')." ".$var."<BR><BR>";
78 // collect and display(synchronize) custom definitions
80 $sql = "SELECT lang_description, lang_code, constant_name, definition FROM lang_custom WHERE lang_description != '' AND constant_name != ''";
81 $res = SqlStatement($sql);
82 while ($row=SqlFetchArray($res)){
84 // collect language id
85 $sql = "SELECT lang_id FROM lang_languages WHERE lang_description='".add_escape_custom($row['lang_description'])."' ".$case_sensitive_collation." LIMIT 1";
86 $res2 = SqlStatement($sql);
87 $row2 = SqlFetchArray($res2);
88 $language_id=$row2['lang_id'];
90 // collect constant id
91 $sql = "SELECT cons_id FROM lang_constants WHERE constant_name='".add_escape_custom($row['constant_name'])."' ".$case_sensitive_collation." LIMIT 1";
92 $res2 = SqlStatement($sql);
93 $row2 = SqlFetchArray($res2);
94 $constant_id=$row2['cons_id'];
96 // collect definition id (if it exists)
97 $sql = "SELECT def_id FROM lang_definitions WHERE cons_id='".add_escape_custom($constant_id)."' AND lang_id='".add_escape_custom($language_id)."' LIMIT 1";
98 $res2 = SqlStatement($sql);
99 $row2 = SqlFetchArray($res2);
100 $def_id=$row2['def_id'];
103 //definition exist, so check to see if different
104 $sql = "SELECT * FROM lang_definitions WHERE def_id = '".add_escape_custom($def_id)."' AND definition = '".add_escape_custom($row['definition'])."' ".$case_sensitive_collation;
105 $res_test = SqlStatement($sql);
106 if (SqlFetchArray($res_test)) {
107 //definition not different
111 //definition is different
112 echo xl('Following is a new definition (Language, Constant, Definition):')." ".$row['lang_description']." ".$row['constant_name']." ".$row['definition']."<BR>";
115 $sql = "UPDATE `lang_definitions` SET `definition` = '".add_escape_custom($row['definition'])."' WHERE `def_id`='".add_escape_custom($def_id)."' LIMIT 1";
117 echo xl('Synchronized new definition (Language, Constant, Definition):')." ".$row['lang_description']." ".$row['constant_name']." ".$row['definition']."<BR><BR>";
123 echo xl('Following is a new definition (Language, Constant, Definition):')." ".$row['lang_description']." ".$row['constant_name']." ".$row['definition']."<BR>";
126 $sql = "INSERT INTO lang_definitions (cons_id,lang_id,definition) VALUES ('".add_escape_custom($constant_id)."','".add_escape_custom($language_id)."','".add_escape_custom($row['definition'])."')";
128 echo xl('Synchronized new definition (Language, Constant, Definition):')." ".$row['lang_description']." ".$row['constant_name']." ".$row['definition']."<BR><BR>";
134 echo xl('The translation tables are synchronized.');
140 <FORM name
="manage_form" METHOD
=POST ACTION
="?m=manage" onsubmit
="return top.restoreSession()">
142 <TD
><INPUT TYPE
="submit" name
="check" value
="<?php xl('Check','e'); ?>"></TD
>
143 <TD
class="text">(<?php
xl('Check for differences of translations with custom language table.','e'); ?
>)</TD
>
147 <TD
><INPUT TYPE
="submit" name
="synchronize" value
="<?php xl('Synchronize','e'); ?>"></TD
>
148 <TD
class="text">(<?php
xl('Synchronize translations with custom language table.','e'); ?
>)</TD
>