Changeset 420
- Timestamp:
- Apr 7, 2010, 10:42:01 AM (15 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 1 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/form.php
r393 r420 3 3 include('includes/global.php'); 4 4 5 function ColorNames($Text,$names) { 6 7 // $buff[] = array($Line['ID'],GetIDbyName($Table),$Line[$Column],$Line['Tran']); 5 function ColorNames($Text, $names) 6 { 7 8 // $buff[] = array($Line['ID'],GetIDbyName($Table),$Line[$Column],$Line['Tran']); 8 9 foreach($names as $Line) { 9 10 11 12 10 if ($Line[3] <> '') { 11 $Text = str_replace($Line[2],'<span Title="Byl nalezen překlad: '.$Line[3].'" class="edit">'.$Line[2].'</span>',$Text); 12 $Text = str_replace(strtolower($Line[2]),'<span Title="Byl nalezen překlad: '.$Line[3].'" class="edit">'.$Line[2].'</span>',$Text); 13 } else { 13 14 $Text = str_replace($Line[2],'<span Title="Jméno bylo nalezeno v názvech a můžete ho přeložit. Začnete kliknutím na: Vyhledat v názvech" class="edit">'.$Line[2].'</span>',$Text); 14 15 $Text = str_replace(strtolower($Line[2]),'<span Title="Jméno bylo nalezeno v názvech a můžete ho přeložit. Začnete kliknutím na: Vyhledat v názvech" class="edit">'.$Line[2].'</span>',$Text); 15 16 } 16 17 } 17 18 return $Text; 18 19 } 19 20 … … 22 23 $GroupId = LoadGroupIdParameter(); 23 24 $Table = $TranslationTree[$GroupId]['TablePrefix']; 24 if(array_key_exists('action', $_GET)) $Action = $_GET['action']; else $Action = ''; 25 if(array_key_exists('action', $_GET)) $Action = $_GET['action']; 26 else $Action = ''; 25 27 26 28 if(array_key_exists('ID', $_GET)) … … 30 32 $DbResult = $Database->SQLCommand('SELECT * FROM `'.$Table.'` WHERE `ID` = '.$TextID); 31 33 $Line = mysql_fetch_assoc($DbResult); 32 if(!$Line) die('Překlad nenalezen.');34 if(!$Line) ErrorMessage('Překlad nenalezen.'); 33 35 34 36 $DbResult = $Database->SQLCommand('SELECT * FROM `'.$Table.'` WHERE `Language` = 0 AND `Entry` = '.$Line['Entry'].' AND `VersionEnd` = '.$Line['VersionEnd'].' LIMIT 1'); 35 37 $LineAJ = mysql_fetch_assoc($DbResult); 36 if(!$Line) die('Anglický originál k překladu nenalezen.');38 if(!$Line) ErrorMessage('Anglický originál k překladu nenalezen.'); 37 39 38 40 $IDUser = $Database->SQLCommand('SELECT * FROM `User` WHERE `ID` = '.$Line['User']); -
trunk/readme.txt
r392 r420 1 Webový překládací systém WoWpřeklad 2 =================================== 3 1 4 1) Informace o revizích a zdrojové kódy 2 5 … … 12 15 V konfiguraci serveru apache v httpd.conf je u této složky nutno nastavit: 13 16 14 <Directory " ${path}/www/wow/quests/banners/">15 Allowoverride All17 <Directory "/var/www/html/wowpreklad/banners/"> 18 Allowoverride All 16 19 </Directory> 17 20 … … 31 34 6) Import textů 32 35 33 Zdrojové soubory pro import jsou umístěny ve složce source. Zde jsou pak umístěny podsložky pojmenované jako jednotlivé verze hry. V těchto podsložká jsou dále podsložky dbc, sql _mangos a lua, ze kterých je prováděn import dat. Dále je zde podsložka pro program wowme.exe, který existuje pro kažnou verzi hry jiný.36 Zdrojové soubory pro import jsou umístěny ve složce source. Zde jsou pak umístěny podsložky pojmenované jako jednotlivé verze hry. V těchto podsložká jsou dále podsložky dbc, sql a lua, ze kterých je prováděn import dat. 34 37 35 38 36 7) Tabulka mangos.command nemá číselné id a proto je nutné je pro import doplnit. 37 38 To lze to provést pomocí SQL povelů: 39 40 ALTER TABLE `command` DROP PRIMARY KEY , 41 ADD UNIQUE ( 42 `name` 43 ); 44 ALTER TABLE `command` ADD `entry` INT NOT NULL AUTO_INCREMENT FIRST , 45 ADD PRIMARY KEY ( entry ) ; 46 47 Číslo id ve sloupci entry je však přiděleno dynamicky a pro různé verze mangosu by byly čísla generovány jinak. Proto je nutno při aktualizacích čísla přebrat synchronizovat vůči starým verzím. 39 7) Při startu systému je potřeba spustit skript export/process_task.php pro zpracování delé trvajících úloh exportů. 40 Proces musí být spuštěn pod uživatelem stejným jako web server (apache), kvůli správnému nastavování oprávnění při vytváření souborů ve složce tmp a kvůli bezpečnosti. 48 41 49 42 50 8) Při startu systému je potřeba spustit skript export/process_task.php pro zpracování delé trvajících úloh exportů. 51 Proces musí být spuštěn pod uživatelem stejným jako web server (apache), kvůli správnému nastavování oprávnění. 52 53 9) Nastavit pravidelné spouštění skripu každý den v noci 54 export/process_aowow_export.php - převod překladů do systému AoWoW 43 8) Nastavit pravidelné spouštění skriptu pro aktualizaci překladů v systému AoWoW. Každý den v noci nechat spouštět export/process_aowow_export.php 55 44 56 45 Vytvořte spouštěcí skript /etc/cron.daily/wowpreklad_aowow_export.sh 57 46 #!/bin/sh 58 cd / adresa/k/wowprekladu/export/47 cd /var/www/html/wowprekladu/export/ 59 48 php process_aowow_export.php 60 49 -
trunk/registrace.php
r418 r420 47 47 <tr><td colspan="2">Pozorně si přečtěte <a href="info.php">pokyny k překladu</a> a řiďte se jimi. Překládat je nutno včetně háčků a čárek!</td></tr> 48 48 <tr> 49 <td>Jsi člověk? </td> 50 <td><input type="checkbox" name="sc" /></td> 51 </tr> 52 <tr> 49 53 <td>Jméno:</td> 50 54 <td><input type="text" name="user" /></td> … … 61 65 <td>Email: </td> 62 66 <td><input type="text" name="Email" /></td> 63 </tr>64 <tr>65 <td>Jsi člověk? </td>66 <td><input type="checkbox" name="sc" /></td>67 67 </tr> 68 68 <tr> -
trunk/save.php
r417 r420 1 1 <?php 2 2 3 include ('includes/global.php');3 include_once('includes/global.php'); 4 4 5 5 ShowPage(); … … 9 9 10 10 $GroupId = LoadGroupIdParameter(); 11 $Table = $TranslationTree[$GroupId]['TablePrefix']; 12 if(array_key_exists('entry', $_POST) and $User->Licence(LICENCE_USER)) 11 $Group = $TranslationTree[$GroupId]; 12 $Table = $Group['TablePrefix']; 13 if($User->Licence(LICENCE_USER)) 13 14 { 14 $Entry = $_POST['entry'] * 1; // Make numeric 15 $TextID = $_POST['ID'] * 1; 16 $Language = $_POST['Language'] * 1; 17 if(array_key_exists('End', $_POST)) $Complete = 1; 18 else $Complete = 0; 15 if(array_key_exists('ID', $_POST) and is_numeric($_POST['ID'])) 16 { 17 $Entry = $_POST['entry'] * 1; 18 $TextID = $_POST['ID'] * 1; 19 $Language = $_POST['Language'] * 1; 20 if(array_key_exists('End', $_POST)) $Complete = 1; 21 else $Complete = 0; 22 23 // Get source text record from database by ID 24 $DbResult = $System->Database->query('SELECT * FROM `'.$Table.'` WHERE `ID`='.$TextID); 25 if($DbResult->num_rows > 0) 26 { 27 $SourceText = $DbResult->fetch_assoc(); 28 29 // Get data for english original 30 $DbResult = $System->Database->query('SELECT * FROM `'.$Table.'` WHERE (`Entry`='.$SourceText['Entry'].') AND (`Language` = 0) AND (`VersionStart` = '.$SourceText['VersionStart'].') AND (`VersionEnd` = '.$SourceText['VersionEnd'].')'); 31 if($DbResult->num_rows > 0) 32 { 33 $EnglishText = $DbResult->fetch_assoc(); 34 35 // Get all similar english texts 36 $Filter = ''; 37 foreach($Group['Items'] as $GroupItem) 38 if($GroupItem['Visible'] == 1) 39 $Filter .= ' AND (`'.$GroupItem['Column'].'` = "'.$EnglishText[$GroupItem['Column']].'")'; 40 41 $DbResult = $System->Database->query('SELECT * FROM `'.$Table.'` WHERE (`Language` = 0)'.$Filter); 42 while($DbRow = $DbResult->fetch_assoc()) 43 { 44 // Get user translation paired to found english item entry 45 $DbResult2 = $System->Database->query('SELECT * FROM `'.$Table.'` WHERE (`User` = '.$User->Id.') AND (`Entry` = '.$DbRow['Entry'].') AND (`VersionStart` = '.$SourceText['VersionStart'].') AND (`VersionEnd` = '.$SourceText['VersionEnd'].')'); 46 if($DbResult2->num_rows > 0) 47 { 48 $ExistedText = $DbResult2->fetch_assoc(); 49 $Values = '`Language` = '.$Language.', `Complete`='.$Complete; 50 foreach($Group['Items'] as $GroupItem) 51 { 52 if($GroupItem['Visible'] == 1) 53 if(array_key_exists($GroupItem['Column'], $_POST)) 54 $Values .= ', `'.$GroupItem['Column'].'` = "'.$_POST[$GroupItem['Column']].'"'; 55 } 56 57 // Update user translation 58 $System->Database->query('UPDATE `'.$Table.'` SET '.$Values.' WHERE `ID` = '.$ExistedText['ID']); 59 60 echo('Změny v překladu <a href="form.php?group='.$GroupId.'&ID='.$ExistedText['ID'].'">'.$ExistedText['ID'].'</a> ('.$ExistedText['Entry'].') uloženy!<br />'); 61 WriteLog('Změny v překladu <a href="form.php?group='.$GroupId.'&ID='.$ExistedText['ID'].'">'.$ExistedText['ID'].'</a> ('.$ExistedText['Entry'].') uloženy.', LOG_TYPE_TRANSLATION); 62 } else 63 { 64 // Insert new user translation 65 $Columns = '`Entry`, `VersionStart`, `VersionEnd`, `Language`, `Complete`, `User`, `Take`'; 66 $Values = $DbRow['Entry'].', '.$DbRow['VersionStart'].', '.$DbRow['VersionEnd'].', '.$Language.', '.$Complete.', '.$User->Id.', '.$SourceText['ID']; 67 foreach($Group['Items'] as $GroupItem) 68 { 69 if($GroupItem['Visible'] == 1) 70 { 71 // Read form user data 72 if(array_key_exists($GroupItem['Column'], $_POST)) 73 { 74 $Columns .= ', `'.$GroupItem['Column'].'`'; 75 $Values .= ', "'.$_POST[$GroupItem['Column']].'"'; 76 } 77 } else 78 { 79 // Read from english text 80 $Columns .= ', `'.$GroupItem['Column'].'`'; 81 $Values .= ', "'.$DbRow[$GroupItem['Column']].'"'; 82 } 83 } 84 $System->Database->query('INSERT INTO `'.$Table.'` ('.$Columns.') VALUES ('.$Values.')'); 85 $LastID = $System->Database->insert_id; 86 87 echo('Text <a href="form.php?group='.$GroupId.'&ID='.$LastID.'">'.$LastID.'</a> ze skupiny <a href="TranslationList.php?group='.$GroupId.'&action=filter">'.$TranslationTree[$GroupId]['Name'].'</a> uložen! Převzat z <a href="form.php?group='.$GroupId.'&ID='.$TextID.'">'.$TextID.'</a>.<br/>'); 88 WriteLog('Text <a href="form.php?group='.$GroupId.'&ID='.$LastID.'">'.$LastID.'</a> ze skupiny <a href="TranslationList.php?group='.$GroupId.'&action=filter">'.$TranslationTree[$GroupId]['Name'].'</a> uložen! Převzat z <a href="form.php?group='.$GroupId.'&ID='.$TextID.'">'.$TextID.'</a>.', LOG_TYPE_TRANSLATION); 89 } 90 } 91 } else echo('Anglický originál k překladu nenalezen.'); 92 } else echo('Zadaná položka nenalezena.'); 19 93 20 $DbResult = $Database->SQLCommand('SELECT * FROM `'.$Table.'` WHERE (`Language` = 0) AND (`Entry` = '.$Entry.')'); 21 if(mysql_num_rows($DbResult) == 0) ErrorMessage('Neznámé Id položky'); 22 $LineAJ = mysql_fetch_array($DbResult); 23 $LineTake = mysql_fetch_array($Database->SQLCommand('SELECT `VersionEnd`, `VersionStart` FROM `'.$Table.'` WHERE `ID` = '.$TextID)); 24 if(mysql_num_rows($DbResult) == 0) ErrorMessage('Neznámé Id položky'); 25 $DbResult = $Database->SQLCommand('SELECT * FROM `'.$Table.'` WHERE (`User`='.$User->Id.') AND (`Entry` = '.$Entry.') AND (`VersionStart` = '.$LineTake['VersionStart'].') AND (`VersionEnd` = '.$LineTake['VersionEnd'].')'); 26 $Line = mysql_fetch_array($DbResult); 27 if(!$Line) 28 { 29 // Načtení hodnot formuláře 30 $Columns = '`Language` , `User` , `Complete` , `Take` , `VersionStart` , `VersionEnd`'; 31 $Values = $Language.','.$User->Id.','.$Complete.','.$TextID.','.$LineTake['VersionStart'].','.$LineTake['VersionEnd']; 32 foreach($TranslationTree[$GroupId]['Items'] as $GroupItem) 33 { 34 if(array_key_exists($GroupItem['Column'], $_POST)) 35 { 36 if (($GroupItem['Column'] <> 'ShortCut') and ($GroupItem['Column'] <> 'Rank')) 37 { 38 $Columns .= ', `'.$GroupItem['Column'].'`'; 39 $Values .= ', "'.@$_POST[$GroupItem['Column']].'"'; 40 } 41 } 42 } 43 //echo('INSERT INTO `'.$Table.'` ('.$Columns.') VALUES ('.$Values.')'); 44 // $Database->SQLCommand('INSERT INTO `'.$Table.'` (`Entry`, '.$Columns.') VALUES ('.$Entry.','.$Values.')'); 45 // $LastID = mysql_insert_id(); 46 47 // Kontrolování stejných textů 48 $Where = '(`Language` = 0)'; 49 foreach($TranslationTree[$GroupId]['Items'] as $GroupItem) 50 { 51 if(($GroupItem['Column'] <> 'ShortCut') and ($GroupItem['Column'] <> 'Rank')) 52 { 53 if(array_key_exists($GroupItem['Column'], $_POST)) 54 $Where .= ' AND (`'.$GroupItem['Column'].'` = "'.addslashes($LineAJ[$GroupItem['Column']]).'")'; 55 else $Where .= ' AND (`'.$GroupItem['Column'].'` = "")'; 56 } 57 if($GroupItem['Column'] == 'Rank') 58 { 59 if(array_key_exists('Rank', $_POST)) 60 { 61 $Rank = substr($_POST['Rank'], 0 ,strpos($_POST['Rank'],' ')); 62 if(strlen($Rank) <= 2) 63 $Rank = substr($_POST['Rank'], strpos($_POST['Rank'],' ') + 1); 64 } else $Rank = 'Úroveň'; 65 } 66 } 67 68 $SameTranID = $Database->SQLCommand('SELECT * FROM '.$Table.' WHERE '.$Where); 69 while($SameTranLine = mysql_fetch_assoc($SameTranID)) 70 { 71 $Line = mysql_fetch_array($Database->SQLCommand('SELECT * FROM `'.$Table.'` WHERE (`User`='.$User->Id.') AND (`Entry` = '.$SameTranLine['Entry'].') AND (`VersionStart` = '.$LineTake['VersionStart'].') AND (`VersionEnd` = '.$LineTake['VersionEnd'].')')); 72 if(!$Line) 73 { 74 if($GroupItem['Column'] <> 'ShortCut') 75 { 76 if(isset($Rank)) 77 { 78 $Rank_number = substr($SameTranLine['Rank'], strpos($SameTranLine['Rank'],' ') + 1); 79 if($Rank_number <> '') $Rank_cur = $Rank.' '.$Rank_number; 80 else $Rank_cur = $SameTranLine['Rank']; 81 $Database->SQLCommand('INSERT INTO `'.$Table.'` (`Entry`, '.$Columns.', `Rank`) VALUES ('.$SameTranLine['Entry'].','.$Values.',"'.$Rank_cur.'")'); 82 } else 83 { 84 $Database->SQLCommand('INSERT INTO `'.$Table.'` (`Entry`, '.$Columns.') VALUES ('.$SameTranLine['Entry'].','.$Values.')'); 85 } 86 } else 87 { 88 $Database->SQLCommand('INSERT INTO `'.$Table.'` (`Entry`, '.$Columns.', `ShortCut`) VALUES ('.$SameTranLine['Entry'].','.$Values.',"'.$SameTranLine['ShortCut'].'")'); 89 } 90 $LastIDs[] = mysql_insert_id(); 91 } 92 } 93 94 echo('Překlad <a href="form.php?group='.$GroupId.'&ID='.$TextID.'">'.$TextID.'</a> ('.$Entry.') uložen!<br />'); 95 foreach($LastIDs as $LastID) 96 { 97 if(count($LastIDs) > 1) echo('Nalezen stejný překlad, systémově přeložen: <a href="form.php?group='.$GroupId.'&ID='.$LastID.'">'.$LastID.'</a> Převzat z: <a href="form.php?group='.$GroupId.'&ID='.$TextID.'">'.$TextID.'</a><br />'); 98 WriteLog('Text <a href="form.php?group='.$GroupId.'&ID='.$LastID.'">'.$LastID.'</a> ze skupiny <a href="TranslationList.php?group='.$GroupId.'&action=filter">'.$TranslationTree[$GroupId]['Name'].'</a> uložen! Převzat z <a href="form.php?group='.$GroupId.'&ID='.$TextID.'">'.$TextID.'</a>.', LOG_TYPE_TRANSLATION); 99 } 100 } else 101 { 102 $sql = 'UPDATE '.$Table.' SET `Complete` = '.$Complete; 103 foreach($TranslationTree[$GroupId]['Items'] as $GroupItem) 104 if(array_key_exists($GroupItem['Column'], $_POST)) 105 $sql .= ', `'.$GroupItem['Column'].'`="'.$_POST[$GroupItem['Column']].'"'; 106 $sql .= ', `Language` = '.$Language.' WHERE (`ID` = '.$TextID.') AND (`Language` <> 0)'; 107 //echo($sql); 108 $Database->SQLCommand($sql); 109 // echo $sql.'<br />'; 110 echo('Změny v překladu <a href="form.php?group='.$GroupId.'&ID='.$TextID.'">'.$TextID.'</a> ('.$Entry.') uloženy!<br />'); 111 WriteLog('Změny v překladu <a href="form.php?group='.$GroupId.'&ID='.$TextID.'">'.$TextID.'</a> ('.$Entry.') uloženy!', LOG_TYPE_TRANSLATION); 112 } 94 113 95 // Address and redirecting 114 96 echo('<br />Překládat: <a href="TranslationList.php?group='.$GroupId.'&action=notran">Nepřeložené</a> '); … … 144 126 // Aktualizace informace o nutnosti načíst XP 145 127 $Database->SQLCommand('UPDATE `User` SET `NeedUpdate` = 1 WHERE `ID` = '.$User->Id); 128 } else echo('Položka nenalezena'); 146 129 } else 147 130 { 148 if(array_key_exists(' entry', $_POST))131 if(array_key_exists('ID', $_POST)) 149 132 { 150 133 echo('Byli jste automaticky odhlášeni. Pro <strong>Uložení překladu</strong> se musíte přihlásit zde:<br /><br />');
Note:
See TracChangeset
for help on using the changeset viewer.