Changeset 833


Ignore:
Timestamp:
Aug 24, 2015, 11:19:26 PM (9 years ago)
Author:
chronos
Message:
  • Modified: Update only translation items which have modified text items during translation save.
  • Modified: Tabs replaced by spaces.
Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Modules/Translation/Save.php

    r832 r833  
    33class PageTranslationSave extends Page
    44{
    5         function Translate($Group, $TextID, $Complete, $Language)
    6         {
    7                 $Output = '';
    8                 $Table = $Group['TablePrefix'];
    9                 $CompleteText = array('nedokončený', 'dokončený');
    10 
    11                 // Get source text record from database by ID
    12                 $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE `ID`='.$TextID);
    13                 if($DbResult->num_rows > 0)
    14                 {
    15                         $SourceText = $DbResult->fetch_assoc();
    16 
    17                         // Get data for english original
    18                         $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`Entry`='.$SourceText['Entry'].') '.
    19                                         'AND (`Language` = '.$this->System->Config['OriginalLanguage'].') AND (`VersionStart` = '.$SourceText['VersionStart'].') '.
    20                                         'AND (`VersionEnd` = '.$SourceText['VersionEnd'].')');
    21                         if($DbResult->num_rows > 0)
    22                         {
    23                                 $EnglishText = $DbResult->fetch_assoc();
    24 
    25                                 // Get all similar english texts
    26                                 $Filter = array();
    27                                 foreach($Group['Items'] as $GroupItem)
    28                                         if(($GroupItem['Visible'] == 1))
    29                                                 $Filter[] = '(`'.$GroupItem['Column'].'` = "'.addslashes($EnglishText[$GroupItem['Column']]).'")';
    30                                         if(count($Filter) > 0) $Filter = ' AND ('.implode(' OR ', $Filter).')';
    31 
    32                                         $Query = 'SELECT * FROM `'.$Table.'` WHERE (`Language` = '.$this->System->Config['OriginalLanguage'].')'.$Filter;
    33                                         $DbResult = $this->Database->query($Query);
    34                                         while($EnglishFound = $DbResult->fetch_assoc())
    35                                         {
    36                                                 // Get user translation paired to found english item entry
    37                                                 //TODO: and need update sql
    38                                                 //SELECT T.ID,T.Take,sub1.ID,T.`VersionStart`,T.`VersionEnd`,sub1.`VersionStart` as OrigStart,sub1.`VersionEnd` as OrigEnd FROM `TextSpell` as T
    39                                                 //JOIN `TextSpell` as sub1 ON sub1.Language = 0 AND T.`Entry` = sub1.`Entry` AND T.`VersionStart` = sub1.`VersionStart`
    40                                                 //WHERE T.Language != 0 AND T.`VersionEnd` != sub1.`VersionEnd`
    41                                                 $DbResult2 = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`User` = '.$this->System->User->Id.
    42                                                                 ') AND (`Entry` = '.$EnglishFound['Entry'].') AND (`VersionStart` = '.$EnglishFound['VersionStart'].
    43                                                                 ') AND (`VersionEnd` = '.$EnglishFound['VersionEnd'].')');
    44                                                 if($DbResult2->num_rows > 0)
    45                                                 {
    46                                                         // Update existed user translation
    47                                                         $ExistedText = $DbResult2->fetch_assoc();
    48                                                         $Values = '`Language` = '.$Language;
    49 
    50                                                         $UpdateModifyTime = false;
    51                                                         $Completable = true;
    52                                                         $CompleteParts = $ExistedText['CompleteParts'];
    53                                                         foreach($Group['Items'] as $GroupItem)
    54                                                         {
    55                                                                 if($GroupItem['Visible'] == 1)
    56                                                                 {
    57                                                                         if($SourceText[$GroupItem['Column']] != $ExistedText[$GroupItem['Column']])
    58                                                                                 $UpdateModifyTime = true;
    59 
    60                                                                         if($EnglishFound[$GroupItem['Column']] == $EnglishText[$GroupItem['Column']])
    61                                                                         {
    62                                                                                 if(array_key_exists($GroupItem['Column'], $_POST))
    63                                                                                 {
    64                                                                                         $Values .= ', `'.$GroupItem['Column'].'` = "'.$_POST[$GroupItem['Column']].'"';
    65                                                                                         $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
    66                                                                                 }
    67                                                                         }
    68                                                                         if((($CompleteParts & (1 << ($GroupItem['Sequence'] - 1))) == 0) and
    69                                                                                         ($EnglishFound[$GroupItem['Column']] != '')) $Completable = false;
    70                                                                 }
    71                                                         }
    72                                                         if($Completable) $NewComplete = 1; // All parts of text are completed. Make entire text as completed
    73                                                         else $NewComplete = 0;
    74                                                         if($SourceText['ID'] == $ExistedText['ID'])
    75                                                         {
    76                                                                 $NewComplete = $Complete; // Our original user text, set complete according user choice
    77                                                                 if($Complete == 1)
    78                                                                 {
    79                                                                         foreach($Group['Items'] as $GroupItem)
    80                                                                                 if($GroupItem['Visible'] == 1) $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
    81                                                                 }
    82                                                         }
    83                                                         $Values .= ', `Complete`='.$NewComplete.', `CompleteParts` = '.$CompleteParts;
    84 
    85                                                         if($UpdateModifyTime) $Values .= ', `ModifyTime` = NOW()';
    86 
    87                                                         // Update user translation
    88                                                         $this->Database->query('UPDATE `'.$Table.'` SET '.$Values.' WHERE `ID` = '.$ExistedText['ID']);
    89 
    90                                                         $Output .= 'Změny v překladu <a href="'.$this->System->Link('/form.php?group='.
    91                                                                         $Group['Id'].'&amp;ID='.$ExistedText['ID']).'">'.$ExistedText['ID'].'</a> ('.
    92                                                                         $ExistedText['Entry'].') uloženy jako '.$CompleteText[$NewComplete].'.<br />';
    93                                                         $this->System->ModuleManager->Modules['Log']->WriteLog('Změny v překladu <a href="'.
    94                                                                         $this->System->Link('/form.php?group='.$Group['Id'].'&amp;ID='.$ExistedText['ID']).'">'.
    95                                                                         $ExistedText['ID'].'</a> ('.$ExistedText['Entry'].') uloženy jako '.$CompleteText[$NewComplete].'.', LOG_TYPE_TRANSLATION);
    96                                                 } else
    97                                                 {
    98                                                         // Insert new user translation
    99                                                         $Columns = '`Entry`, `VersionStart`, `VersionEnd`, `Language`, `User`, `Take`, `ModifyTime`';
    100                                                         $Values = $EnglishFound['Entry'].', '.$EnglishFound['VersionStart'].', '.
    101                                                                         $EnglishFound['VersionEnd'].', '.$Language.', '.$this->System->User->Id.', '.$EnglishFound['ID'].', NOW()';
    102 
    103                                                         $CompleteParts = 0;
    104                                                         $Completable = true;
    105                                                         foreach($Group['Items'] as $GroupItem)
    106                                                         {
    107                                                                 $Columns .= ', `'.$GroupItem['Column'].'`';
    108                                                                 if($GroupItem['Visible'] == 1)
    109                                                                 {
    110                                                                         if($EnglishFound[$GroupItem['Column']] == $EnglishText[$GroupItem['Column']])
    111                                                                         {
    112                                                                                 // Read form user data
    113                                                                                 if(array_key_exists($GroupItem['Column'], $_POST))
    114                                                                                 {
    115                                                                                         $Values .= ', "'.$_POST[$GroupItem['Column']].'"';
    116                                                                                         $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
    117                                                                                 } else $Values .= ', "'.addslashes($EnglishFound[$GroupItem['Column']]).'"';
    118                                                                         } else $Values .= ', "'.addslashes($EnglishFound[$GroupItem['Column']]).'"';
    119                                                                         if((($CompleteParts & (1 << ($GroupItem['Sequence'] - 1))) == 0) and ($EnglishFound[$GroupItem['Column']] != '')) $Completable = false;
    120                                                                 } else
    121                                                                 {
    122                                                                         // Read from english text
    123                                                                         $Values .= ', "'.$EnglishFound[$GroupItem['Column']].'"';
    124                                                                 }
    125                                                         }
    126                                                         if($Completable) $NewComplete = 1; // All parts of text are completed. Make entire text as completed
    127                                                         else $NewComplete = 0;
    128                                                         if($SourceText['ID'] == $EnglishFound['ID'])
    129                                                         {
    130                                                                 $NewComplete = $Complete; // Our original user text, set complete according user choice
    131                                                                 if($Complete == 1)
    132                                                                 {
    133                                                                         foreach($Group['Items'] as $GroupItem)
    134                                                                                 if($GroupItem['Visible'] == 1) $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
    135                                                                 }
    136                                                         }
    137                                                         $Columns .= ', `Complete`, `CompleteParts`';
    138                                                         $Values .= ', '.$NewComplete.', '.$CompleteParts;
    139                                                         $this->Database->query('INSERT INTO `'.$Table.'` ('.$Columns.') VALUES ('.$Values.')');
    140                                                         $LastID = $this->Database->insert_id;
    141 
    142                                                         $Output .= 'Text <a href="'.$this->System->Link('/form.php?group='.
    143                                                                         $Group['Id'].'&amp;ID='.$LastID).'">'.$LastID.'</a> ze skupiny <a href="TranslationList.php?group='.
    144                                                                         $Group['Id'].'&amp;user=0&amp;action=filter">'.$Group['Name'].'</a> uložen jako '.
    145                                                                         $CompleteText[$NewComplete].'. Převzat z <a href="form.php?group='.$Group['Id'].'&amp;ID='.$TextID.'">'.$TextID.'</a>.<br/>';
    146                                                         $this->System->ModuleManager->Modules['Log']->WriteLog('Text <a href="'.
    147                                                                         $this->System->Link('/form.php?group='.$Group['Id'].'&amp;ID='.$LastID).'">'.
    148                                                                         $LastID.'</a> ze skupiny <a href="TranslationList.php?group='.
    149                                                                         $Group['Id'].'&amp;user=0&amp;text=&amp;entry=&amp;action=filter">'.
    150                                                                         $Group['Name'].'</a> uložen jako '.$CompleteText[$NewComplete].
    151                                                                         '. Převzat z <a href="form.php?group='.$Group['Id'].'&amp;ID='.$TextID.'">'.$TextID.'</a>.', LOG_TYPE_TRANSLATION);
    152                                                 }
    153                                         }
    154                         } else $Output .= ShowMessage('Anglický originál k překladu nenalezen.', MESSAGE_CRITICAL);
    155                 } else $Output .= ShowMessage('Zadaná položka nenalezena.', MESSAGE_CRITICAL);
    156                 return($Output);
    157         }
     5  function Translate($Group, $TextID, $Complete, $Language)
     6  {
     7    $Output = '';
     8    $Table = $Group['TablePrefix'];
     9    $CompleteText = array('nedokončený', 'dokončený');
     10
     11    // Get source text record from database by ID
     12    $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE `ID`='.$TextID);
     13    if($DbResult->num_rows > 0)
     14    {
     15      $SourceText = $DbResult->fetch_assoc();
     16
     17      // Get data for english original
     18      $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`Entry`='.$SourceText['Entry'].') '.
     19          'AND (`Language` = '.$this->System->Config['OriginalLanguage'].') AND (`VersionStart` = '.$SourceText['VersionStart'].') '.
     20          'AND (`VersionEnd` = '.$SourceText['VersionEnd'].')');
     21      if($DbResult->num_rows > 0)
     22      {
     23        $EnglishText = $DbResult->fetch_assoc();
     24
     25        // Get all similar english texts
     26        $Filter = array();
     27        foreach($Group['Items'] as $GroupItem)
     28          if(($GroupItem['Visible'] == 1))
     29            $Filter[] = '(`'.$GroupItem['Column'].'` = "'.addslashes($EnglishText[$GroupItem['Column']]).'")';
     30          if(count($Filter) > 0) $Filter = ' AND ('.implode(' OR ', $Filter).')';
     31
     32          $Query = 'SELECT * FROM `'.$Table.'` WHERE (`Language` = '.$this->System->Config['OriginalLanguage'].')'.$Filter;
     33          $DbResult = $this->Database->query($Query);
     34          while($EnglishFound = $DbResult->fetch_assoc())
     35          {
     36            // Get user translation paired to found english item entry
     37            $DbResult2 = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`User` = '.$this->System->User->Id.
     38              ') AND (`Entry` = '.$EnglishFound['Entry'].') AND (`VersionStart` = '.$EnglishFound['VersionStart'].
     39              ') AND (`VersionEnd` = '.$EnglishFound['VersionEnd'].')');
     40            if($DbResult2->num_rows > 0)
     41            {
     42              // Update existed user translation
     43              $ExistedText = $DbResult2->fetch_assoc();
     44              $Modified = false;
     45              $Values = '`Language` = '.$Language;
     46              if($Language != $ExistedText['Language']) $Modified = true;
     47
     48              $Completable = true;
     49              $CompleteParts = $ExistedText['CompleteParts'];
     50              foreach($Group['Items'] as $GroupItem)
     51              {
     52                if($GroupItem['Visible'] == 1)
     53                {
     54                  if($EnglishFound[$GroupItem['Column']] == $EnglishText[$GroupItem['Column']])
     55                  {
     56                    if(array_key_exists($GroupItem['Column'], $_POST))
     57                    {
     58                      if($_POST[$GroupItem['Column']] != $ExistedText[$GroupItem['Column']])
     59                        $Modified = true;
     60
     61                      $Values .= ', `'.$GroupItem['Column'].'` = "'.$_POST[$GroupItem['Column']].'"';
     62                      $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
     63                    }
     64                  }
     65                  if((($CompleteParts & (1 << ($GroupItem['Sequence'] - 1))) == 0) and
     66                      ($EnglishFound[$GroupItem['Column']] != '')) $Completable = false;
     67                }
     68              }
     69              if($Completable) $NewComplete = 1; // All parts of text are completed. Make entire text as completed
     70                else $NewComplete = 0;
     71
     72              // Update completion status for saved translation item
     73              if($SourceText['ID'] == $ExistedText['ID'])
     74              {
     75                $NewComplete = $Complete; // Our original user text, set complete according user choice
     76                if($Complete == 1)
     77                {
     78                  foreach($Group['Items'] as $GroupItem)
     79                    if($GroupItem['Visible'] == 1) $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
     80                }
     81              }
     82              $Values .= ', `Complete`='.$NewComplete.', `CompleteParts` = '.$CompleteParts;
     83              if(($NewComplete != $ExistedText['Complete']) or ($CompleteParts != $ExistedText['CompleteParts']))
     84                $Modified = true;
     85
     86              $Values .= ', `ModifyTime` = NOW()';
     87              if($Modified)
     88              {
     89                // Update user translation
     90                $this->Database->query('UPDATE `'.$Table.'` SET '.$Values.' WHERE `ID` = '.$ExistedText['ID']);
     91
     92                $Output .= 'Změny v překladu <a href="'.$this->System->Link('/form.php?group='.
     93                  $Group['Id'].'&amp;ID='.$ExistedText['ID']).'">'.$ExistedText['ID'].'</a> ('.
     94                  $ExistedText['Entry'].') uloženy jako '.$CompleteText[$NewComplete].'.<br />';
     95                $this->System->ModuleManager->Modules['Log']->WriteLog('Změny v překladu <a href="'.
     96                  $this->System->Link('/form.php?group='.$Group['Id'].'&amp;ID='.$ExistedText['ID']).'">'.
     97                  $ExistedText['ID'].'</a> ('.$ExistedText['Entry'].') uloženy jako '.$CompleteText[$NewComplete].'.', LOG_TYPE_TRANSLATION);
     98              }
     99            } else
     100            {
     101              // Insert new user translation
     102              $Columns = '`Entry`, `VersionStart`, `VersionEnd`, `Language`, `User`, `Take`, `ModifyTime`';
     103              $Values = $EnglishFound['Entry'].', '.$EnglishFound['VersionStart'].', '.
     104                  $EnglishFound['VersionEnd'].', '.$Language.', '.$this->System->User->Id.', '.$EnglishFound['ID'].', NOW()';
     105
     106              $CompleteParts = 0;
     107              $Completable = true;
     108              foreach($Group['Items'] as $GroupItem)
     109              {
     110                $Columns .= ', `'.$GroupItem['Column'].'`';
     111                if($GroupItem['Visible'] == 1)
     112                {
     113                  if($EnglishFound[$GroupItem['Column']] == $EnglishText[$GroupItem['Column']])
     114                  {
     115                    // Read form user data
     116                    if(array_key_exists($GroupItem['Column'], $_POST))
     117                    {
     118                      $Values .= ', "'.$_POST[$GroupItem['Column']].'"';
     119                      $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
     120                    } else $Values .= ', "'.addslashes($EnglishFound[$GroupItem['Column']]).'"';
     121                  } else $Values .= ', "'.addslashes($EnglishFound[$GroupItem['Column']]).'"';
     122                  if((($CompleteParts & (1 << ($GroupItem['Sequence'] - 1))) == 0) and ($EnglishFound[$GroupItem['Column']] != '')) $Completable = false;
     123                } else
     124                {
     125                  // Read from english text
     126                  $Values .= ', "'.$EnglishFound[$GroupItem['Column']].'"';
     127                }
     128              }
     129              if($Completable) $NewComplete = 1; // All parts of text are completed. Make entire text as completed
     130              else $NewComplete = 0;
     131              if($SourceText['ID'] == $EnglishFound['ID'])
     132              {
     133                $NewComplete = $Complete; // Our original user text, set complete according user choice
     134                if($Complete == 1)
     135                {
     136                  foreach($Group['Items'] as $GroupItem)
     137                    if($GroupItem['Visible'] == 1) $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
     138                }
     139              }
     140              $Columns .= ', `Complete`, `CompleteParts`';
     141              $Values .= ', '.$NewComplete.', '.$CompleteParts;
     142              $this->Database->query('INSERT INTO `'.$Table.'` ('.$Columns.') VALUES ('.$Values.')');
     143              $LastID = $this->Database->insert_id;
     144
     145              $Output .= 'Text <a href="'.$this->System->Link('/form.php?group='.
     146                $Group['Id'].'&amp;ID='.$LastID).'">'.$LastID.'</a> ze skupiny <a href="TranslationList.php?group='.
     147                $Group['Id'].'&amp;user=0&amp;action=filter">'.$Group['Name'].'</a> uložen jako '.
     148                $CompleteText[$NewComplete].'. Převzat z <a href="form.php?group='.$Group['Id'].'&amp;ID='.$TextID.'">'.$TextID.'</a>.<br/>';
     149              $this->System->ModuleManager->Modules['Log']->WriteLog('Text <a href="'.
     150                $this->System->Link('/form.php?group='.$Group['Id'].'&amp;ID='.$LastID).'">'.
     151                $LastID.'</a> ze skupiny <a href="TranslationList.php?group='.
     152                $Group['Id'].'&amp;user=0&amp;text=&amp;entry=&amp;action=filter">'.
     153                $Group['Name'].'</a> uložen jako '.$CompleteText[$NewComplete].
     154                '. Převzat z <a href="form.php?group='.$Group['Id'].'&amp;ID='.$TextID.'">'.$TextID.'</a>.', LOG_TYPE_TRANSLATION);
     155            }
     156          }
     157      } else $Output .= ShowMessage('Anglický originál k překladu nenalezen.', MESSAGE_CRITICAL);
     158    } else $Output .= ShowMessage('Zadaná položka nenalezena.', MESSAGE_CRITICAL);
     159    return($Output);
     160  }
    158161
    159162  function Show()
     
    184187        $Output .= $this->ShowRedirection($GroupId, $Table, $TextID);
    185188
    186         // Update flag for experience info load
    187         //$this->Database->query('UPDATE `User` SET `NeedUpdate` = 1 WHERE `ID` = '.$this->System->User->Id);
    188189        UserLevelUpdate($this->System->User->Id);
    189190      } else $Output .= ShowMessage('Položka nenalezena', MESSAGE_CRITICAL);
    190191    } else
    191192    {
     193      // User automatically logged out. Show login dialog and allow to save retry.
    192194      if(array_key_exists('ID', $_POST) and array_key_exists('entry', $_POST) and array_key_exists('Language', $_POST) and array_key_exists('user', $_POST))
    193195      {
    194196        $Output .= 'Byli jste automaticky odhlášeni. Pro <strong>Uložení překladu</strong> se musíte přihlásit zde:<br /><br />'.
    195             '<form action="save.php?action=login&amp;group='.$GroupId.'" method="post"><div>'.
    196             '<input type="hidden" name="entry" value="'.$_POST['entry'].'" />'.
    197             '<input type="hidden" name="user" value="'.$_POST['user'].'" />'.
    198             '<input type="hidden" name="ID" value="'.$_POST['ID'].'" />'.
    199             '<input type="hidden" name="Language" value="'.$_POST['Language'].'" />';
     197          '<form action="save.php?action=login&amp;group='.$GroupId.'" method="post"><div>'.
     198          '<input type="hidden" name="entry" value="'.$_POST['entry'].'" />'.
     199          '<input type="hidden" name="user" value="'.$_POST['user'].'" />'.
     200          '<input type="hidden" name="ID" value="'.$_POST['ID'].'" />'.
     201          '<input type="hidden" name="Language" value="'.$_POST['Language'].'" />';
    200202
    201203        foreach($TranslationTree[$GroupId]['Items'] as $Index => $TextItem)
     
    205207        }
    206208        $Output .= '<table>'.
    207             '<tr>'.
    208             '<td>Jméno: <input type="text" name="LoginUser" size="13" /></td>'.
    209             '</tr><tr>'.
    210             '<td>Heslo: <input type="password" name="LoginPass" size="13" /></td>'.
    211             '</tr><tr>'.
    212             '<th><input type="submit" value="Přihlásit a uložit překlad" /></th>'.
    213             '</tr>'.
    214             '</table>';
     209          '<tr>'.
     210          '<td>Jméno: <input type="text" name="LoginUser" size="13" /></td>'.
     211          '</tr><tr>'.
     212          '<td>Heslo: <input type="password" name="LoginPass" size="13" /></td>'.
     213          '</tr><tr>'.
     214          '<th><input type="submit" value="Přihlásit a uložit překlad" /></th>'.
     215          '</tr>'.
     216          '</table>';
    215217      } else $Output = ShowMessage('Nezadány požadované údaje.', MESSAGE_CRITICAL);
    216218    }
     
    220222  function ShowRedirection($GroupId, $Table, $TextID)
    221223  {
    222         // Address and redirecting
    223         $Output = '<br />Překládat: <a href="TranslationList.php?group='.$GroupId.'&amp;state=1&amp;user=0&entry=">Nepřeložené</a> ';
    224 
    225         $prev = FollowingTran($TextID, $Table, $GroupId, True);
    226         $next = FollowingTran($TextID, $Table, $GroupId);
    227         $Output .= '<br /><br />';
    228         $DbResult = $this->Database->query('SELECT `Redirecting` FROM `User` WHERE `ID`='.$this->System->User->Id);
    229         $redirecting = $DbResult->fetch_assoc();
    230 
    231         switch($redirecting['Redirecting'])
    232         {
    233                 case 1:
    234                         $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
    235                                         'setTimeout("parent.location.href=\''.htmlspecialchars_decode('TranslationList.php?group='.$GroupId.'&amp;state=1&amp;user=0').'\'", 1500)'.
    236                                         '</script>';
    237                         break;
    238                 case 2:
    239                         if($next <> '')
    240                                 $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
    241                                                 'setTimeout("parent.location.href=\''.htmlspecialchars_decode($next).'\'", 1500)'.
    242                                                 '</script>';
    243                                 break;
    244                 case 3:
    245                         if($prev <> '')
    246                                 $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
    247                                                 'setTimeout("parent.location.href=\''.htmlspecialchars_decode($prev).'\'", 1500)'.
    248                                                 '</script>';
    249                                 break;
    250         }
    251 
    252         $Output .= 'Z této stránky můžete být automaticky přesměrování. Nastavit kam chcete být přesměrování si můžete v <a href="'.
    253           $this->System->Link('/Options.php').'" title="Nastavení uživatele">Nastavení</a>';
     224    // Address and redirecting
     225    $Output = '<br />Překládat: <a href="TranslationList.php?group='.$GroupId.'&amp;state=1&amp;user=0&entry=">Nepřeložené</a> ';
     226
     227    $prev = FollowingTran($TextID, $Table, $GroupId, True);
     228    $next = FollowingTran($TextID, $Table, $GroupId);
     229    $Output .= '<br /><br />';
     230    $DbResult = $this->Database->query('SELECT `Redirecting` FROM `User` WHERE `ID`='.$this->System->User->Id);
     231    $redirecting = $DbResult->fetch_assoc();
     232
     233    switch($redirecting['Redirecting'])
     234    {
     235      case 1:
     236        $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
     237          'setTimeout("parent.location.href=\''.htmlspecialchars_decode('TranslationList.php?group='.$GroupId.'&amp;state=1&amp;user=0').'\'", 1500)'.
     238          '</script>';
     239        break;
     240      case 2:
     241        if($next <> '')
     242          $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
     243            'setTimeout("parent.location.href=\''.htmlspecialchars_decode($next).'\'", 1500)'.
     244            '</script>';
     245          break;
     246      case 3:
     247        if($prev <> '')
     248          $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
     249            'setTimeout("parent.location.href=\''.htmlspecialchars_decode($prev).'\'", 1500)'.
     250            '</script>';
     251          break;
     252    }
     253
     254    $Output .= 'Z této stránky můžete být automaticky přesměrování. Nastavit kam chcete být přesměrování si můžete v <a href="'.
     255      $this->System->Link('/Options.php').'" title="Nastavení uživatele">Nastavení</a>';
    254256    return($Output);
    255257  }
  • trunk/Modules/Translation/TranslationList.php

    r831 r833  
    185185          }
    186186      if($Filter['State'] == CompletionState::All) {
    187         $Filter['SQL'] .= $UserFilter.$VersionFilter;
     187        $Filter['SQL'] .= $UserFilter.$VersionFilter;
    188188      } else
    189189      if($Filter['State'] == CompletionState::NotTranslated) {
    190         $Filter['SQL'] .= $VersionFilter.' AND (`T`.`Language` = '.$this->System->Config['OriginalLanguage'].') '.
     190        $Filter['SQL'] .= $VersionFilter.' AND (`T`.`Language` = '.$this->System->Config['OriginalLanguage'].') '.
    191191          'AND NOT EXISTS(SELECT 1 FROM `'.$Table.'` AS `Sub` WHERE '.
    192192          '(`Sub`.`Language` <> '.$this->System->Config['OriginalLanguage'].') '.$LanguageFilterSub.$UserFilter.
     
    195195      } else
    196196      if($Filter['State'] == CompletionState::Translated) {
    197         $Filter['SQL'] .= $UserFilter.$LanguageFilter.$VersionFilter.' AND (`T`.`Complete` = 1)';
     197        $Filter['SQL'] .= $UserFilter.$LanguageFilter.$VersionFilter.' AND (`T`.`Complete` = 1)';
    198198      } else
    199199      if($Filter['State'] == CompletionState::NotFinished) {
    200         $Filter['SQL'] .= $UserFilter.$LanguageFilter.$VersionFilter.' AND (`T`.`Language` != '.$this->System->Config['OriginalLanguage'].
     200        $Filter['SQL'] .= $UserFilter.$LanguageFilter.$VersionFilter.' AND (`T`.`Language` != '.$this->System->Config['OriginalLanguage'].
    201201      ') AND (`T`.`Complete` = 0)';
    202202      } else
    203203      if($Filter['State'] == CompletionState::Original) {
    204         $Filter['SQL'] .= $VersionFilter.' AND (`T`.`Language` = '.$this->System->Config['OriginalLanguage'].')';
     204        $Filter['SQL'] .= $VersionFilter.' AND (`T`.`Language` = '.$this->System->Config['OriginalLanguage'].')';
    205205      } else
    206206      if($Filter['State'] == CompletionState::NotFinishedNotTranslated) {
    207         $Filter['SQL'] .= $UserFilter.$VersionFilter.$WithoutAlter.
     207        $Filter['SQL'] .= $UserFilter.$VersionFilter.$WithoutAlter.
    208208      ' AND (`T`.`Language` != '.$this->System->Config['OriginalLanguage'].
    209209      ') AND (`T`.`Complete` = 0)';
  • trunk/Modules/Translation/UserLevel.php

    r830 r833  
    3838
    3939      $IDtran = $System->Database->query('SELECT *, `T2`.`Language` AS `Language_Take`'.$TakeColumns.' FROM `'.$Group['TablePrefix'].'` AS `T` '.
    40         'LEFT JOIN `'.$Group['TablePrefix'].'` AS `T2` ON `T2`.`ID` = `T`.`Take` '.
    41         'WHERE (`T`.`User` = '.$UserId.') AND (`T`.`Complete` = 1) AND (`T`.`Take` IS NOT NULL) '.$GroupBy);
     40        'LEFT JOIN `'.$Group['TablePrefix'].'` AS `T2` ON `T2`.`ID` = `T`.`Take` '.
     41        'WHERE (`T`.`User` = '.$UserId.') AND (`T`.`Complete` = 1) AND (`T`.`Take` IS NOT NULL) '.$GroupBy);
    4242      while($Line = $IDtran->fetch_array())
    4343      {
  • trunk/includes/UTF8.php

    r820 r833  
    2121  ISO8859-1: iso1
    2222  Windows1257: win1257
    23  
     23
    2424  example:  $new_string=to_utf8($some_string,"win1250");
    2525*/
     
    2828/*
    2929  translation table - actually, it's array where key is hexadecimal number of
    30   character in ISO8859-2/Windows1250 and value is its two byte representation in UTF-8 
     30  character in ISO8859-2/Windows1250 and value is its two byte representation in UTF-8
    3131*/
    3232
    33 class Encoding 
     33class Encoding
    3434{
    3535  function __construct()
    3636  {
    37         $this->CharTable = array(
     37    $this->CharTable = array(
    3838  'iso2' => array(
    39         0x80=>"\xc2\x80",
    40         0x81=>"\xc2\x81",
    41         0x82=>"\xc2\x82",
    42         0x83=>"\xc2\x83",
    43         0x84=>"\xc2\x84",
    44         0x85=>"\xc2\x85",
    45         0x86=>"\xc2\x86",
    46         0x87=>"\xc2\x87",
    47         0x88=>"\xc2\x88",
    48         0x89=>"\xc2\x89",
    49         0x8A=>"\xc2\x8a",
    50         0x8B=>"\xc2\x8b",
    51         0x8C=>"\xc2\x8c",
    52         0x8D=>"\xc2\x8d",
    53         0x8E=>"\xc2\x8e",
    54         0x8F=>"\xc2\x8f",
    55         0x90=>"\xc2\x90",
    56         0x91=>"\xc2\x91",
    57         0x92=>"\xc2\x92",
    58         0x93=>"\xc2\x93",
    59         0x94=>"\xc2\x94",
    60         0x95=>"\xc2\x95",
    61         0x96=>"\xc2\x96",
    62         0x97=>"\xc2\x97",
    63         0x98=>"\xc2\x98",
    64         0x99=>"\xc2\x99",
    65         0x9A=>"\xc2\x9a",
    66         0x9B=>"\xc2\x9b",
    67         0x9C=>"\xc2\x9c",
    68         0x9D=>"\xc2\x9d",
    69         0x9E=>"\xc2\x9e",
    70         0x9F=>"\xc2\x9f",
    71         0xA0=>"\xc2\xa0",
    72         0xA1=>"\xc4\x84",
    73         0xA2=>"\xcb\x98",
    74         0xA3=>"\xc5\x81",
    75         0xA4=>"\xc2\xa4",
    76         0xA5=>"\xc4\xbd",
    77         0xA6=>"\xc5\x9a",
    78         0xA7=>"\xc2\xa7",
    79         0xA8=>"\xc2\xa8",
    80         0xA9=>"\xc5\xa0",
    81         0xAA=>"\xc5\x9e",
    82         0xAB=>"\xc5\xa4",
    83         0xAC=>"\xc5\xb9",
    84         0xAD=>"\xc2\xad",
    85         0xAE=>"\xc5\xbd",
    86         0xAF=>"\xc5\xbb",
    87         0xB0=>"\xc2\xb0",
    88         0xB1=>"\xc4\x85",
    89         0xB2=>"\xcb\x9b",
    90         0xB3=>"\xc5\x82",
    91         0xB4=>"\xc2\xb4",
    92         0xB5=>"\xc4\xbe",
    93         0xB6=>"\xc5\x9b",
    94         0xB7=>"\xcb\x87",
    95         0xB8=>"\xc2\xb8",
    96         0xB9=>"\xc5\xa1",
    97         0xBA=>"\xc5\x9f",
    98         0xBB=>"\xc5\xa5",
    99         0xBC=>"\xc5\xba",
    100         0xBD=>"\xcb\x9d",
    101         0xBE=>"\xc5\xbe",
    102         0xBF=>"\xc5\xbc",
    103         0xC0=>"\xc5\x94",
    104         0xC1=>"\xc3\x81",
    105         0xC2=>"\xc3\x82",
    106         0xC3=>"\xc4\x82",
    107         0xC4=>"\xc3\x84",
    108         0xC5=>"\xc4\xb9",
    109         0xC6=>"\xc4\x86",
    110         0xC7=>"\xc3\x87",
    111         0xC8=>"\xc4\x8c",
    112         0xC9=>"\xc3\x89",
    113         0xCA=>"\xc4\x98",
    114         0xCB=>"\xc3\x8b",
    115         0xCC=>"\xc4\x9a",
    116         0xCD=>"\xc3\x8d",
    117         0xCE=>"\xc3\x8e",
    118         0xCF=>"\xc4\x8e",
    119         0xD0=>"\xc4\x90",
    120         0xD1=>"\xc5\x83",
    121         0xD2=>"\xc5\x87",
    122         0xD3=>"\xc3\x93",
    123         0xD4=>"\xc3\x94",
    124         0xD5=>"\xc5\x90",
    125         0xD6=>"\xc3\x96",
    126         0xD7=>"\xc3\x97",
    127         0xD8=>"\xc5\x98",
    128         0xD9=>"\xc5\xae",
    129         0xDA=>"\xc3\x9a",
    130         0xDB=>"\xc5\xb0",
    131         0xDC=>"\xc3\x9c",
    132         0xDD=>"\xc3\x9d",
    133         0xDE=>"\xc5\xa2",
    134         0xDF=>"\xc3\x9f",
    135         0xE0=>"\xc5\x95",
    136         0xE1=>"\xc3\xa1",
    137         0xE2=>"\xc3\xa2",
    138         0xE3=>"\xc4\x83",
    139         0xE4=>"\xc3\xa4",
    140         0xE5=>"\xc4\xba",
    141         0xE6=>"\xc4\x87",
    142         0xE7=>"\xc3\xa7",
    143         0xE8=>"\xc4\x8d",
    144         0xE9=>"\xc3\xa9",
    145         0xEA=>"\xc4\x99",
    146         0xEB=>"\xc3\xab",
    147         0xEC=>"\xc4\x9b",
    148         0xED=>"\xc3\xad",
    149         0xEE=>"\xc3\xae",
    150         0xEF=>"\xc4\x8f",
    151         0xF0=>"\xc4\x91",
    152         0xF1=>"\xc5\x84",
    153         0xF2=>"\xc5\x88",
    154         0xF3=>"\xc3\xb3",
    155         0xF4=>"\xc3\xb4",
    156         0xF5=>"\xc5\x91",
    157         0xF6=>"\xc3\xb6",
    158         0xF7=>"\xc3\xb7",
    159         0xF8=>"\xc5\x99",
    160         0xF9=>"\xc5\xaf",
    161         0xFA=>"\xc3\xba",
    162         0xFB=>"\xc5\xb1",
    163         0xFC=>"\xc3\xbc",
    164         0xFD=>"\xc3\xbd",
    165         0xFE=>"\xc5\xa3",
    166         0xFF=>"\xcb\x99"
     39  0x80=>"\xc2\x80",
     40  0x81=>"\xc2\x81",
     41  0x82=>"\xc2\x82",
     42  0x83=>"\xc2\x83",
     43  0x84=>"\xc2\x84",
     44  0x85=>"\xc2\x85",
     45  0x86=>"\xc2\x86",
     46  0x87=>"\xc2\x87",
     47  0x88=>"\xc2\x88",
     48  0x89=>"\xc2\x89",
     49  0x8A=>"\xc2\x8a",
     50  0x8B=>"\xc2\x8b",
     51  0x8C=>"\xc2\x8c",
     52  0x8D=>"\xc2\x8d",
     53  0x8E=>"\xc2\x8e",
     54  0x8F=>"\xc2\x8f",
     55  0x90=>"\xc2\x90",
     56  0x91=>"\xc2\x91",
     57  0x92=>"\xc2\x92",
     58  0x93=>"\xc2\x93",
     59  0x94=>"\xc2\x94",
     60  0x95=>"\xc2\x95",
     61  0x96=>"\xc2\x96",
     62  0x97=>"\xc2\x97",
     63  0x98=>"\xc2\x98",
     64  0x99=>"\xc2\x99",
     65  0x9A=>"\xc2\x9a",
     66  0x9B=>"\xc2\x9b",
     67  0x9C=>"\xc2\x9c",
     68  0x9D=>"\xc2\x9d",
     69  0x9E=>"\xc2\x9e",
     70  0x9F=>"\xc2\x9f",
     71  0xA0=>"\xc2\xa0",
     72  0xA1=>"\xc4\x84",
     73  0xA2=>"\xcb\x98",
     74  0xA3=>"\xc5\x81",
     75  0xA4=>"\xc2\xa4",
     76  0xA5=>"\xc4\xbd",
     77  0xA6=>"\xc5\x9a",
     78  0xA7=>"\xc2\xa7",
     79  0xA8=>"\xc2\xa8",
     80  0xA9=>"\xc5\xa0",
     81  0xAA=>"\xc5\x9e",
     82  0xAB=>"\xc5\xa4",
     83  0xAC=>"\xc5\xb9",
     84  0xAD=>"\xc2\xad",
     85  0xAE=>"\xc5\xbd",
     86  0xAF=>"\xc5\xbb",
     87  0xB0=>"\xc2\xb0",
     88  0xB1=>"\xc4\x85",
     89  0xB2=>"\xcb\x9b",
     90  0xB3=>"\xc5\x82",
     91  0xB4=>"\xc2\xb4",
     92  0xB5=>"\xc4\xbe",
     93  0xB6=>"\xc5\x9b",
     94  0xB7=>"\xcb\x87",
     95  0xB8=>"\xc2\xb8",
     96  0xB9=>"\xc5\xa1",
     97  0xBA=>"\xc5\x9f",
     98  0xBB=>"\xc5\xa5",
     99  0xBC=>"\xc5\xba",
     100  0xBD=>"\xcb\x9d",
     101  0xBE=>"\xc5\xbe",
     102  0xBF=>"\xc5\xbc",
     103  0xC0=>"\xc5\x94",
     104  0xC1=>"\xc3\x81",
     105  0xC2=>"\xc3\x82",
     106  0xC3=>"\xc4\x82",
     107  0xC4=>"\xc3\x84",
     108  0xC5=>"\xc4\xb9",
     109  0xC6=>"\xc4\x86",
     110  0xC7=>"\xc3\x87",
     111  0xC8=>"\xc4\x8c",
     112  0xC9=>"\xc3\x89",
     113  0xCA=>"\xc4\x98",
     114  0xCB=>"\xc3\x8b",
     115  0xCC=>"\xc4\x9a",
     116  0xCD=>"\xc3\x8d",
     117  0xCE=>"\xc3\x8e",
     118  0xCF=>"\xc4\x8e",
     119  0xD0=>"\xc4\x90",
     120  0xD1=>"\xc5\x83",
     121  0xD2=>"\xc5\x87",
     122  0xD3=>"\xc3\x93",
     123  0xD4=>"\xc3\x94",
     124  0xD5=>"\xc5\x90",
     125  0xD6=>"\xc3\x96",
     126  0xD7=>"\xc3\x97",
     127  0xD8=>"\xc5\x98",
     128  0xD9=>"\xc5\xae",
     129  0xDA=>"\xc3\x9a",
     130  0xDB=>"\xc5\xb0",
     131  0xDC=>"\xc3\x9c",
     132  0xDD=>"\xc3\x9d",
     133  0xDE=>"\xc5\xa2",
     134  0xDF=>"\xc3\x9f",
     135  0xE0=>"\xc5\x95",
     136  0xE1=>"\xc3\xa1",
     137  0xE2=>"\xc3\xa2",
     138  0xE3=>"\xc4\x83",
     139  0xE4=>"\xc3\xa4",
     140  0xE5=>"\xc4\xba",
     141  0xE6=>"\xc4\x87",
     142  0xE7=>"\xc3\xa7",
     143  0xE8=>"\xc4\x8d",
     144  0xE9=>"\xc3\xa9",
     145  0xEA=>"\xc4\x99",
     146  0xEB=>"\xc3\xab",
     147  0xEC=>"\xc4\x9b",
     148  0xED=>"\xc3\xad",
     149  0xEE=>"\xc3\xae",
     150  0xEF=>"\xc4\x8f",
     151  0xF0=>"\xc4\x91",
     152  0xF1=>"\xc5\x84",
     153  0xF2=>"\xc5\x88",
     154  0xF3=>"\xc3\xb3",
     155  0xF4=>"\xc3\xb4",
     156  0xF5=>"\xc5\x91",
     157  0xF6=>"\xc3\xb6",
     158  0xF7=>"\xc3\xb7",
     159  0xF8=>"\xc5\x99",
     160  0xF9=>"\xc5\xaf",
     161  0xFA=>"\xc3\xba",
     162  0xFB=>"\xc5\xb1",
     163  0xFC=>"\xc3\xbc",
     164  0xFD=>"\xc3\xbd",
     165  0xFE=>"\xc5\xa3",
     166  0xFF=>"\xcb\x99"
    167167  ),
    168168  'win1250' => array(
    169         0x80=>"\xc2\x80",
    170         0x81=>"\xc2\x81",
    171         0x82=>"\xe2\x80\x9a",
    172         0x83=>"\xc2\x83",
    173         0x84=>"\xe2\x80\x9e",
    174         0x85=>"\xe2\x80\xa6",
    175         0x86=>"\xe2\x80\xa0",
    176         0x87=>"\xe2\x80\xa1",
    177         0x88=>"\xc2\x88",
    178         0x89=>"\xe2\x80\xb0",
    179         0x8a=>"\xc5\xa0",
    180         0x8b=>"\xe2\x80\xb9",
    181         0x8c=>"\xc5\x9a",
    182         0x8d=>"\xc5\xa4",
    183         0x8e=>"\xc5\xbd",
    184         0x8f=>"\xc5\xb9",
    185         0x90=>"\xc2\x90",
    186         0x91=>"\xe2\x80\x98",
    187         0x92=>"\xe2\x80\x99",
    188         0x93=>"\xe2\x80\x9c",
    189         0x94=>"\xe2\x80\x9d",
    190         0x95=>"\xe2\x80\xa2",
    191         0x96=>"\xe2\x80\x93",
    192         0x97=>"\xe2\x80\x94",
    193         0x98=>"\xe2\x80\x98",
    194         0x99=>"\xe2\x84\xa2",
    195         0x9a=>"\xc5\xa1",
    196         0x9b=>"\xe2\x80\xba",
    197         0x9c=>"\xc5\x9b",
    198         0x9d=>"\xc5\xa5",
    199         0x9e=>"\xc5\xbe",
    200         0x9f=>"\xc5\xba",
    201         0xa0=>"\xc2\xa0",
    202         0xa1=>"\xcb\x87",
    203         0xa2=>"\xcb\x98",
    204         0xa3=>"\xc5\x81",
    205         0xa4=>"\xc2\xa4",
    206         0xa5=>"\xc4\x84",
    207         0xa6=>"\xc2\xa6",
    208         0xa7=>"\xc2\xa7",
    209         0xa8=>"\xc2\xa8",
    210         0xa9=>"\xc2\xa9",
    211         0xaa=>"\xc5\x9e",
    212         0xab=>"\xc2\xab",
    213         0xac=>"\xc2\xac",
    214         0xad=>"\xc2\xad",
    215         0xae=>"\xc2\xae",
    216         0xaf=>"\xc5\xbb",
    217         0xb0=>"\xc2\xb0",
    218         0xb1=>"\xc2\xb1",
    219         0xb2=>"\xcb\x9b",
    220         0xb3=>"\xc5\x82",
    221         0xb4=>"\xc2\xb4",
    222         0xb5=>"\xc2\xb5",
    223         0xb6=>"\xc2\xb6",
    224         0xb7=>"\xc2\xb7",
    225         0xb8=>"\xc2\xb8",
    226         0xb9=>"\xc4\x85",
    227         0xba=>"\xc5\x9f",
    228         0xbb=>"\xc2\xbb",
    229         0xbc=>"\xc4\xbd",
    230         0xbd=>"\xcb\x9d",
    231         0xbe=>"\xc4\xbe",
    232         0xbf=>"\xc5\xbc",
    233         0xc0=>"\xc5\x94",
    234         0xc1=>"\xc3\x81",
    235         0xc2=>"\xc3\x82",
    236         0xc3=>"\xc4\x82",
    237         0xc4=>"\xc3\x84",
    238         0xc5=>"\xc4\xb9",
    239         0xc6=>"\xc4\x86",
    240         0xc7=>"\xc3\x87",
    241         0xc8=>"\xc4\x8c",
    242         0xc9=>"\xc3\x89",
    243         0xca=>"\xc4\x98",
    244         0xcb=>"\xc3\x8b",
    245         0xcc=>"\xc4\x9a",
    246         0xcd=>"\xc3\x8d",
    247         0xce=>"\xc3\x8e",
    248         0xcf=>"\xc4\x8e",
    249         0xd0=>"\xc4\x90",
    250         0xd1=>"\xc5\x83",
    251         0xd2=>"\xc5\x87",
    252         0xd3=>"\xc3\x93",
    253         0xd4=>"\xc3\x94",
    254         0xd5=>"\xc5\x90",
    255         0xd6=>"\xc3\x96",
    256         0xd7=>"\xc3\x97",
    257         0xd8=>"\xc5\x98",
    258         0xd9=>"\xc5\xae",
    259         0xda=>"\xc3\x9a",
    260         0xdb=>"\xc5\xb0",
    261         0xdc=>"\xc3\x9c",
    262         0xdd=>"\xc3\x9d",
    263         0xde=>"\xc5\xa2",
    264         0xdf=>"\xc3\x9f",
    265         0xe0=>"\xc5\x95",
    266         0xe1=>"\xc3\xa1",
    267         0xe2=>"\xc3\xa2",
    268         0xe3=>"\xc4\x83",
    269         0xe4=>"\xc3\xa4",
    270         0xe5=>"\xc4\xba",
    271         0xe6=>"\xc4\x87",
    272         0xe7=>"\xc3\xa7",
    273         0xe8=>"\xc4\x8d",
    274         0xe9=>"\xc3\xa9",
    275         0xea=>"\xc4\x99",
    276         0xeb=>"\xc3\xab",
    277         0xec=>"\xc4\x9b",
    278         0xed=>"\xc3\xad",
    279         0xee=>"\xc3\xae",
    280         0xef=>"\xc4\x8f",
    281         0xf0=>"\xc4\x91",
    282         0xf1=>"\xc5\x84",
    283         0xf2=>"\xc5\x88",
    284         0xf3=>"\xc3\xb3",
    285         0xf4=>"\xc3\xb4",
    286         0xf5=>"\xc5\x91",
    287         0xf6=>"\xc3\xb6",
    288         0xf7=>"\xc3\xb7",
    289         0xf8=>"\xc5\x99",
    290         0xf9=>"\xc5\xaf",
    291         0xfa=>"\xc3\xba",
    292         0xfb=>"\xc5\xb1",
    293         0xfc=>"\xc3\xbc",
    294         0xfd=>"\xc3\xbd",
    295         0xfe=>"\xc5\xa3",
    296         0xff=>"\xcb\x99"
     169  0x80=>"\xc2\x80",
     170  0x81=>"\xc2\x81",
     171  0x82=>"\xe2\x80\x9a",
     172  0x83=>"\xc2\x83",
     173  0x84=>"\xe2\x80\x9e",
     174  0x85=>"\xe2\x80\xa6",
     175  0x86=>"\xe2\x80\xa0",
     176  0x87=>"\xe2\x80\xa1",
     177  0x88=>"\xc2\x88",
     178  0x89=>"\xe2\x80\xb0",
     179  0x8a=>"\xc5\xa0",
     180  0x8b=>"\xe2\x80\xb9",
     181  0x8c=>"\xc5\x9a",
     182  0x8d=>"\xc5\xa4",
     183  0x8e=>"\xc5\xbd",
     184  0x8f=>"\xc5\xb9",
     185  0x90=>"\xc2\x90",
     186  0x91=>"\xe2\x80\x98",
     187  0x92=>"\xe2\x80\x99",
     188  0x93=>"\xe2\x80\x9c",
     189  0x94=>"\xe2\x80\x9d",
     190  0x95=>"\xe2\x80\xa2",
     191  0x96=>"\xe2\x80\x93",
     192  0x97=>"\xe2\x80\x94",
     193  0x98=>"\xe2\x80\x98",
     194  0x99=>"\xe2\x84\xa2",
     195  0x9a=>"\xc5\xa1",
     196  0x9b=>"\xe2\x80\xba",
     197  0x9c=>"\xc5\x9b",
     198  0x9d=>"\xc5\xa5",
     199  0x9e=>"\xc5\xbe",
     200  0x9f=>"\xc5\xba",
     201  0xa0=>"\xc2\xa0",
     202  0xa1=>"\xcb\x87",
     203  0xa2=>"\xcb\x98",
     204  0xa3=>"\xc5\x81",
     205  0xa4=>"\xc2\xa4",
     206  0xa5=>"\xc4\x84",
     207  0xa6=>"\xc2\xa6",
     208  0xa7=>"\xc2\xa7",
     209  0xa8=>"\xc2\xa8",
     210  0xa9=>"\xc2\xa9",
     211  0xaa=>"\xc5\x9e",
     212  0xab=>"\xc2\xab",
     213  0xac=>"\xc2\xac",
     214  0xad=>"\xc2\xad",
     215  0xae=>"\xc2\xae",
     216  0xaf=>"\xc5\xbb",
     217  0xb0=>"\xc2\xb0",
     218  0xb1=>"\xc2\xb1",
     219  0xb2=>"\xcb\x9b",
     220  0xb3=>"\xc5\x82",
     221  0xb4=>"\xc2\xb4",
     222  0xb5=>"\xc2\xb5",
     223  0xb6=>"\xc2\xb6",
     224  0xb7=>"\xc2\xb7",
     225  0xb8=>"\xc2\xb8",
     226  0xb9=>"\xc4\x85",
     227  0xba=>"\xc5\x9f",
     228  0xbb=>"\xc2\xbb",
     229  0xbc=>"\xc4\xbd",
     230  0xbd=>"\xcb\x9d",
     231  0xbe=>"\xc4\xbe",
     232  0xbf=>"\xc5\xbc",
     233  0xc0=>"\xc5\x94",
     234  0xc1=>"\xc3\x81",
     235  0xc2=>"\xc3\x82",
     236  0xc3=>"\xc4\x82",
     237  0xc4=>"\xc3\x84",
     238  0xc5=>"\xc4\xb9",
     239  0xc6=>"\xc4\x86",
     240  0xc7=>"\xc3\x87",
     241  0xc8=>"\xc4\x8c",
     242  0xc9=>"\xc3\x89",
     243  0xca=>"\xc4\x98",
     244  0xcb=>"\xc3\x8b",
     245  0xcc=>"\xc4\x9a",
     246  0xcd=>"\xc3\x8d",
     247  0xce=>"\xc3\x8e",
     248  0xcf=>"\xc4\x8e",
     249  0xd0=>"\xc4\x90",
     250  0xd1=>"\xc5\x83",
     251  0xd2=>"\xc5\x87",
     252  0xd3=>"\xc3\x93",
     253  0xd4=>"\xc3\x94",
     254  0xd5=>"\xc5\x90",
     255  0xd6=>"\xc3\x96",
     256  0xd7=>"\xc3\x97",
     257  0xd8=>"\xc5\x98",
     258  0xd9=>"\xc5\xae",
     259  0xda=>"\xc3\x9a",
     260  0xdb=>"\xc5\xb0",
     261  0xdc=>"\xc3\x9c",
     262  0xdd=>"\xc3\x9d",
     263  0xde=>"\xc5\xa2",
     264  0xdf=>"\xc3\x9f",
     265  0xe0=>"\xc5\x95",
     266  0xe1=>"\xc3\xa1",
     267  0xe2=>"\xc3\xa2",
     268  0xe3=>"\xc4\x83",
     269  0xe4=>"\xc3\xa4",
     270  0xe5=>"\xc4\xba",
     271  0xe6=>"\xc4\x87",
     272  0xe7=>"\xc3\xa7",
     273  0xe8=>"\xc4\x8d",
     274  0xe9=>"\xc3\xa9",
     275  0xea=>"\xc4\x99",
     276  0xeb=>"\xc3\xab",
     277  0xec=>"\xc4\x9b",
     278  0xed=>"\xc3\xad",
     279  0xee=>"\xc3\xae",
     280  0xef=>"\xc4\x8f",
     281  0xf0=>"\xc4\x91",
     282  0xf1=>"\xc5\x84",
     283  0xf2=>"\xc5\x88",
     284  0xf3=>"\xc3\xb3",
     285  0xf4=>"\xc3\xb4",
     286  0xf5=>"\xc5\x91",
     287  0xf6=>"\xc3\xb6",
     288  0xf7=>"\xc3\xb7",
     289  0xf8=>"\xc5\x99",
     290  0xf9=>"\xc5\xaf",
     291  0xfa=>"\xc3\xba",
     292  0xfb=>"\xc5\xb1",
     293  0xfc=>"\xc3\xbc",
     294  0xfd=>"\xc3\xbd",
     295  0xfe=>"\xc5\xa3",
     296  0xff=>"\xcb\x99"
    297297  ),
    298298  'iso1' => array(
    299         0xA0=>"\xc2\xa0",
    300         0xA1=>"\xc2\xa1",
    301         0xA2=>"\xc2\xa2",
    302         0xA3=>"\xc2\xa3",
    303         0xA4=>"\xc2\xa4",
    304         0xA5=>"\xc2\xa5",
    305         0xA6=>"\xc2\xa6",
    306         0xA7=>"\xc2\xa7",
    307         0xA8=>"\xc2\xa8",
    308         0xA9=>"\xc2\xa9",
    309         0xAA=>"\xc2\xaa",
    310         0xAB=>"\xc2\xab",
    311         0xAC=>"\xc2\xac",
    312         0xAD=>"\xc2\xad",
    313         0xAE=>"\xc2\xae",
    314         0xAF=>"\xc2\xaf",
    315         0xB0=>"\xc2\xb0",
    316         0xB1=>"\xc2\xb1",
    317         0xB2=>"\xc2\xb2",
    318         0xB3=>"\xc2\xb3",
    319         0xB4=>"\xc2\xb4",
    320         0xB5=>"\xc2\xb5",
    321         0xB6=>"\xc2\xb6",
    322         0xB7=>"\xc2\xb7",
    323         0xB8=>"\xc2\xb8",
    324         0xB9=>"\xc2\xb9",
    325         0xBA=>"\xc2\xba",
    326         0xBB=>"\xc2\xbb",
    327         0xBC=>"\xc2\xbc",
    328         0xBD=>"\xc2\xbd",
    329         0xBE=>"\xc2\xbe",
    330         0xBF=>"\xc2\xbf",
    331         0xC0=>"\xc3\x80",
    332         0xC1=>"\xc3\x81",
    333         0xC2=>"\xc3\x82",
    334         0xC3=>"\xc3\x83",
    335         0xC4=>"\xc3\x84",
    336         0xC5=>"\xc3\x85",
    337         0xC6=>"\xc3\x86",
    338         0xC7=>"\xc3\x87",
    339         0xC8=>"\xc3\x88",
    340         0xC9=>"\xc3\x89",
    341         0xCA=>"\xc3\x8a",
    342         0xCB=>"\xc3\x8b",
    343         0xCC=>"\xc3\x8c",
    344         0xCD=>"\xc3\x8d",
    345         0xCE=>"\xc3\x8e",
    346         0xCF=>"\xc3\x8f",
    347         0xD0=>"\xc3\x90",
    348         0xD1=>"\xc3\x91",
    349         0xD2=>"\xc3\x92",
    350         0xD3=>"\xc3\x93",
    351         0xD4=>"\xc3\x94",
    352         0xD5=>"\xc3\x95",
    353         0xD6=>"\xc3\x96",
    354         0xD7=>"\xc3\x97",
    355         0xD8=>"\xc3\x98",
    356         0xD9=>"\xc3\x99",
    357         0xDA=>"\xc3\x9a",
    358         0xDB=>"\xc3\x9b",
    359         0xDC=>"\xc3\x9c",
    360         0xDD=>"\xc3\x9d",
    361         0xDE=>"\xc3\x9e",
    362         0xDF=>"\xc3\x9f",
    363         0xE0=>"\xc3\xa0",
    364         0xE1=>"\xc3\xa1",
    365         0xE2=>"\xc3\xa2",
    366         0xE3=>"\xc3\xa3",
    367         0xE4=>"\xc3\xa4",
    368         0xE5=>"\xc3\xa5",
    369         0xE6=>"\xc3\xa6",
    370         0xE7=>"\xc3\xa7",
    371         0xE8=>"\xc3\xa8",
    372         0xE9=>"\xc3\xa9",
    373         0xEA=>"\xc3\xaa",
    374         0xEB=>"\xc3\xab",
    375         0xEC=>"\xc3\xac",
    376         0xED=>"\xc3\xad",
    377         0xEE=>"\xc3\xae",
    378         0xEF=>"\xc3\xaf",
    379         0xF0=>"\xc3\xb0",
    380         0xF1=>"\xc3\xb1",
    381         0xF2=>"\xc3\xb2",
    382         0xF3=>"\xc3\xb3",
    383         0xF4=>"\xc3\xb4",
    384         0xF5=>"\xc3\xb5",
    385         0xF6=>"\xc3\xb6",
    386         0xF7=>"\xc3\xb7",
    387         0xF8=>"\xc3\xb8",
    388         0xF9=>"\xc3\xb9",
    389         0xFA=>"\xc3\xba",
    390         0xFB=>"\xc3\xbb",
    391         0xFC=>"\xc3\xbc",
    392         0xFD=>"\xc3\xbd",
    393         0xFE=>"\xc3\xbe"
     299  0xA0=>"\xc2\xa0",
     300  0xA1=>"\xc2\xa1",
     301  0xA2=>"\xc2\xa2",
     302  0xA3=>"\xc2\xa3",
     303  0xA4=>"\xc2\xa4",
     304  0xA5=>"\xc2\xa5",
     305  0xA6=>"\xc2\xa6",
     306  0xA7=>"\xc2\xa7",
     307  0xA8=>"\xc2\xa8",
     308  0xA9=>"\xc2\xa9",
     309  0xAA=>"\xc2\xaa",
     310  0xAB=>"\xc2\xab",
     311  0xAC=>"\xc2\xac",
     312  0xAD=>"\xc2\xad",
     313  0xAE=>"\xc2\xae",
     314  0xAF=>"\xc2\xaf",
     315  0xB0=>"\xc2\xb0",
     316  0xB1=>"\xc2\xb1",
     317  0xB2=>"\xc2\xb2",
     318  0xB3=>"\xc2\xb3",
     319  0xB4=>"\xc2\xb4",
     320  0xB5=>"\xc2\xb5",
     321  0xB6=>"\xc2\xb6",
     322  0xB7=>"\xc2\xb7",
     323  0xB8=>"\xc2\xb8",
     324  0xB9=>"\xc2\xb9",
     325  0xBA=>"\xc2\xba",
     326  0xBB=>"\xc2\xbb",
     327  0xBC=>"\xc2\xbc",
     328  0xBD=>"\xc2\xbd",
     329  0xBE=>"\xc2\xbe",
     330  0xBF=>"\xc2\xbf",
     331  0xC0=>"\xc3\x80",
     332  0xC1=>"\xc3\x81",
     333  0xC2=>"\xc3\x82",
     334  0xC3=>"\xc3\x83",
     335  0xC4=>"\xc3\x84",
     336  0xC5=>"\xc3\x85",
     337  0xC6=>"\xc3\x86",
     338  0xC7=>"\xc3\x87",
     339  0xC8=>"\xc3\x88",
     340  0xC9=>"\xc3\x89",
     341  0xCA=>"\xc3\x8a",
     342  0xCB=>"\xc3\x8b",
     343  0xCC=>"\xc3\x8c",
     344  0xCD=>"\xc3\x8d",
     345  0xCE=>"\xc3\x8e",
     346  0xCF=>"\xc3\x8f",
     347  0xD0=>"\xc3\x90",
     348  0xD1=>"\xc3\x91",
     349  0xD2=>"\xc3\x92",
     350  0xD3=>"\xc3\x93",
     351  0xD4=>"\xc3\x94",
     352  0xD5=>"\xc3\x95",
     353  0xD6=>"\xc3\x96",
     354  0xD7=>"\xc3\x97",
     355  0xD8=>"\xc3\x98",
     356  0xD9=>"\xc3\x99",
     357  0xDA=>"\xc3\x9a",
     358  0xDB=>"\xc3\x9b",
     359  0xDC=>"\xc3\x9c",
     360  0xDD=>"\xc3\x9d",
     361  0xDE=>"\xc3\x9e",
     362  0xDF=>"\xc3\x9f",
     363  0xE0=>"\xc3\xa0",
     364  0xE1=>"\xc3\xa1",
     365  0xE2=>"\xc3\xa2",
     366  0xE3=>"\xc3\xa3",
     367  0xE4=>"\xc3\xa4",
     368  0xE5=>"\xc3\xa5",
     369  0xE6=>"\xc3\xa6",
     370  0xE7=>"\xc3\xa7",
     371  0xE8=>"\xc3\xa8",
     372  0xE9=>"\xc3\xa9",
     373  0xEA=>"\xc3\xaa",
     374  0xEB=>"\xc3\xab",
     375  0xEC=>"\xc3\xac",
     376  0xED=>"\xc3\xad",
     377  0xEE=>"\xc3\xae",
     378  0xEF=>"\xc3\xaf",
     379  0xF0=>"\xc3\xb0",
     380  0xF1=>"\xc3\xb1",
     381  0xF2=>"\xc3\xb2",
     382  0xF3=>"\xc3\xb3",
     383  0xF4=>"\xc3\xb4",
     384  0xF5=>"\xc3\xb5",
     385  0xF6=>"\xc3\xb6",
     386  0xF7=>"\xc3\xb7",
     387  0xF8=>"\xc3\xb8",
     388  0xF9=>"\xc3\xb9",
     389  0xFA=>"\xc3\xba",
     390  0xFB=>"\xc3\xbb",
     391  0xFC=>"\xc3\xbc",
     392  0xFD=>"\xc3\xbd",
     393  0xFE=>"\xc3\xbe"
    394394  ),
    395395  'win1257' => array(
    396         0x80=>"\xe2\x82\xac",
    397         0x81=>"\xc0\x4",
    398         0x82=>"\xe2\x80\x9a",
    399         0x83=>"\xc0\x4",
    400         0x84=>"\xe2\x80\x9e",
    401         0x85=>"\xe2\x80\xa6",
    402         0x86=>"\xe2\x80\xa0",
    403         0x87=>"\xe2\x80\xa1",
    404         0x88=>"\xc0\x4",
    405         0x89=>"\xe2\x80\xb0",
    406         0x8A=>"\xc0\x4",
    407         0x8B=>"\xe2\x80\xb9",
    408         0x8C=>"\xc0\x4",
    409         0x8D=>"\xc2\xa8",
    410         0x8E=>"\xcb\x87",
    411         0x8F=>"\xc2\xb8",
    412         0x90=>"\xc0\x4",
    413         0x91=>"\xe2\x80\x98",
    414         0x92=>"\xe2\x80\x99",
    415         0x93=>"\xe2\x80\x9c",
    416         0x94=>"\xe2\x80\x9d",
    417         0x95=>"\xe2\x80\xa2",
    418         0x96=>"\xe2\x80\x93",
    419         0x97=>"\xe2\x80\x94",
    420         0x98=>"\xc0\x4",
    421         0x99=>"\xe2\x84\xa2",
    422         0x9A=>"\xc0\x4",
    423         0x9B=>"\xe2\x80\xba",
    424         0x9C=>"\xc0\x4",
    425         0x9D=>"\xc2\xaf",
    426         0x9E=>"\xcb\x9b",
    427         0x9F=>"\xc0\x4",
    428         0xA0=>"\xc2\xa0",
    429         0xA1=>"\xc0\x4",
    430         0xA2=>"\xc2\xa2",
    431         0xA3=>"\xc2\xa3",
    432         0xA4=>"\xc2\xa4",
    433         0xA5=>"\xc0\x4",
    434         0xA6=>"\xc2\xa6",
    435         0xA7=>"\xc2\xa7",
    436         0xA8=>"\xc3\x98",
    437         0xA9=>"\xc2\xa9",
    438         0xAA=>"\xc5\x96",
    439         0xAB=>"\xc2\xab",
    440         0xAC=>"\xc2\xac",
    441         0xAD=>"\xc2\xad",
    442         0xAE=>"\xc2\xae",
    443         0xAF=>"\xc3\x86",
    444         0xB0=>"\xc2\xb0",
    445         0xB1=>"\xc2\xb1",
    446         0xB2=>"\xc2\xb2",
    447         0xB3=>"\xc2\xb3",
    448         0xB4=>"\xc2\xb4",
    449         0xB5=>"\xc2\xb5",
    450         0xB6=>"\xc2\xb6",
    451         0xB7=>"\xc2\xb7",
    452         0xB8=>"\xc3\xb8",
    453         0xB9=>"\xc2\xb9",
    454         0xBA=>"\xc5\x97",
    455         0xBB=>"\xc2\xbb",
    456         0xBC=>"\xc2\xbc",
    457         0xBD=>"\xc2\xbd",
    458         0xBE=>"\xc2\xbe",
    459         0xBF=>"\xc3\xa6",
    460         0xC0=>"\xc4\x84",
    461         0xC1=>"\xc4\xae",
    462         0xC2=>"\xc4\x80",
    463         0xC3=>"\xc4\x86",
    464         0xC4=>"\xc3\x84",
    465         0xC5=>"\xc3\x85",
    466         0xC6=>"\xc4\x98",
    467         0xC7=>"\xc4\x92",
    468         0xC8=>"\xc4\x8c",
    469         0xC9=>"\xc3\x89",
    470         0xCA=>"\xc5\xb9",
    471         0xCB=>"\xc4\x96",
    472         0xCC=>"\xc4\xa2",
    473         0xCD=>"\xc4\xb6",
    474         0xCE=>"\xc4\xaa",
    475         0xCF=>"\xc4\xbb",
    476         0xD0=>"\xc5\xa0",
    477         0xD1=>"\xc5\x83",
    478         0xD2=>"\xc5\x85",
    479         0xD3=>"\xc3\x93",
    480         0xD4=>"\xc5\x8c",
    481         0xD5=>"\xc3\x95",
    482         0xD6=>"\xc3\x96",
    483         0xD7=>"\xc3\x97",
    484         0xD8=>"\xc5\xb2",
    485         0xD9=>"\xc5\x81",
    486         0xDA=>"\xc5\x9a",
    487         0xDB=>"\xc5\xaa",
    488         0xDC=>"\xc3\x9c",
    489         0xDD=>"\xc5\xbb",
    490         0xDE=>"\xc5\xbd",
    491         0xDF=>"\xc3\x9f",
    492         0xE0=>"\xc4\x85",
    493         0xE1=>"\xc4\xaf",
    494         0xE2=>"\xc4\x81",
    495         0xE3=>"\xc4\x87",
    496         0xE4=>"\xc3\xa4",
    497         0xE5=>"\xc3\xa5",
    498         0xE6=>"\xc4\x99",
    499         0xE7=>"\xc4\x93",
    500         0xE8=>"\xc4\x8d",
    501         0xE9=>"\xc3\xa9",
    502         0xEA=>"\xc5\xba",
    503         0xEB=>"\xc4\x97",
    504         0xEC=>"\xc4\xa3",
    505         0xED=>"\xc4\xb7",
    506         0xEE=>"\xc4\xab",
    507         0xEF=>"\xc4\xbc",
    508         0xF0=>"\xc5\xa1",
    509         0xF1=>"\xc5\x84",
    510         0xF2=>"\xc5\x86",
    511         0xF3=>"\xc3\xb3",
    512         0xF4=>"\xc5\x8d",
    513         0xF5=>"\xc3\xb5",
    514         0xF6=>"\xc3\xb6",
    515         0xF7=>"\xc3\xb7",
    516         0xF8=>"\xc5\xb3",
    517         0xF9=>"\xc5\x82",
    518         0xFA=>"\xc5\x9b",
    519         0xFB=>"\xc5\xab",
    520         0xFC=>"\xc3\xbc",
    521         0xFD=>"\xc5\xbc",
    522         0xFE=>"\xc5\xbe",
    523         0xFF=>"\xcb\x99"
     396  0x80=>"\xe2\x82\xac",
     397  0x81=>"\xc0\x4",
     398  0x82=>"\xe2\x80\x9a",
     399  0x83=>"\xc0\x4",
     400  0x84=>"\xe2\x80\x9e",
     401  0x85=>"\xe2\x80\xa6",
     402  0x86=>"\xe2\x80\xa0",
     403  0x87=>"\xe2\x80\xa1",
     404  0x88=>"\xc0\x4",
     405  0x89=>"\xe2\x80\xb0",
     406  0x8A=>"\xc0\x4",
     407  0x8B=>"\xe2\x80\xb9",
     408  0x8C=>"\xc0\x4",
     409  0x8D=>"\xc2\xa8",
     410  0x8E=>"\xcb\x87",
     411  0x8F=>"\xc2\xb8",
     412  0x90=>"\xc0\x4",
     413  0x91=>"\xe2\x80\x98",
     414  0x92=>"\xe2\x80\x99",
     415  0x93=>"\xe2\x80\x9c",
     416  0x94=>"\xe2\x80\x9d",
     417  0x95=>"\xe2\x80\xa2",
     418  0x96=>"\xe2\x80\x93",
     419  0x97=>"\xe2\x80\x94",
     420  0x98=>"\xc0\x4",
     421  0x99=>"\xe2\x84\xa2",
     422  0x9A=>"\xc0\x4",
     423  0x9B=>"\xe2\x80\xba",
     424  0x9C=>"\xc0\x4",
     425  0x9D=>"\xc2\xaf",
     426  0x9E=>"\xcb\x9b",
     427  0x9F=>"\xc0\x4",
     428  0xA0=>"\xc2\xa0",
     429  0xA1=>"\xc0\x4",
     430  0xA2=>"\xc2\xa2",
     431  0xA3=>"\xc2\xa3",
     432  0xA4=>"\xc2\xa4",
     433  0xA5=>"\xc0\x4",
     434  0xA6=>"\xc2\xa6",
     435  0xA7=>"\xc2\xa7",
     436  0xA8=>"\xc3\x98",
     437  0xA9=>"\xc2\xa9",
     438  0xAA=>"\xc5\x96",
     439  0xAB=>"\xc2\xab",
     440  0xAC=>"\xc2\xac",
     441  0xAD=>"\xc2\xad",
     442  0xAE=>"\xc2\xae",
     443  0xAF=>"\xc3\x86",
     444  0xB0=>"\xc2\xb0",
     445  0xB1=>"\xc2\xb1",
     446  0xB2=>"\xc2\xb2",
     447  0xB3=>"\xc2\xb3",
     448  0xB4=>"\xc2\xb4",
     449  0xB5=>"\xc2\xb5",
     450  0xB6=>"\xc2\xb6",
     451  0xB7=>"\xc2\xb7",
     452  0xB8=>"\xc3\xb8",
     453  0xB9=>"\xc2\xb9",
     454  0xBA=>"\xc5\x97",
     455  0xBB=>"\xc2\xbb",
     456  0xBC=>"\xc2\xbc",
     457  0xBD=>"\xc2\xbd",
     458  0xBE=>"\xc2\xbe",
     459  0xBF=>"\xc3\xa6",
     460  0xC0=>"\xc4\x84",
     461  0xC1=>"\xc4\xae",
     462  0xC2=>"\xc4\x80",
     463  0xC3=>"\xc4\x86",
     464  0xC4=>"\xc3\x84",
     465  0xC5=>"\xc3\x85",
     466  0xC6=>"\xc4\x98",
     467  0xC7=>"\xc4\x92",
     468  0xC8=>"\xc4\x8c",
     469  0xC9=>"\xc3\x89",
     470  0xCA=>"\xc5\xb9",
     471  0xCB=>"\xc4\x96",
     472  0xCC=>"\xc4\xa2",
     473  0xCD=>"\xc4\xb6",
     474  0xCE=>"\xc4\xaa",
     475  0xCF=>"\xc4\xbb",
     476  0xD0=>"\xc5\xa0",
     477  0xD1=>"\xc5\x83",
     478  0xD2=>"\xc5\x85",
     479  0xD3=>"\xc3\x93",
     480  0xD4=>"\xc5\x8c",
     481  0xD5=>"\xc3\x95",
     482  0xD6=>"\xc3\x96",
     483  0xD7=>"\xc3\x97",
     484  0xD8=>"\xc5\xb2",
     485  0xD9=>"\xc5\x81",
     486  0xDA=>"\xc5\x9a",
     487  0xDB=>"\xc5\xaa",
     488  0xDC=>"\xc3\x9c",
     489  0xDD=>"\xc5\xbb",
     490  0xDE=>"\xc5\xbd",
     491  0xDF=>"\xc3\x9f",
     492  0xE0=>"\xc4\x85",
     493  0xE1=>"\xc4\xaf",
     494  0xE2=>"\xc4\x81",
     495  0xE3=>"\xc4\x87",
     496  0xE4=>"\xc3\xa4",
     497  0xE5=>"\xc3\xa5",
     498  0xE6=>"\xc4\x99",
     499  0xE7=>"\xc4\x93",
     500  0xE8=>"\xc4\x8d",
     501  0xE9=>"\xc3\xa9",
     502  0xEA=>"\xc5\xba",
     503  0xEB=>"\xc4\x97",
     504  0xEC=>"\xc4\xa3",
     505  0xED=>"\xc4\xb7",
     506  0xEE=>"\xc4\xab",
     507  0xEF=>"\xc4\xbc",
     508  0xF0=>"\xc5\xa1",
     509  0xF1=>"\xc5\x84",
     510  0xF2=>"\xc5\x86",
     511  0xF3=>"\xc3\xb3",
     512  0xF4=>"\xc5\x8d",
     513  0xF5=>"\xc3\xb5",
     514  0xF6=>"\xc3\xb6",
     515  0xF7=>"\xc3\xb7",
     516  0xF8=>"\xc5\xb3",
     517  0xF9=>"\xc5\x82",
     518  0xFA=>"\xc5\x9b",
     519  0xFB=>"\xc5\xab",
     520  0xFC=>"\xc3\xbc",
     521  0xFD=>"\xc5\xbc",
     522  0xFE=>"\xc5\xbe",
     523  0xFF=>"\xcb\x99"
    524524  ),
    525525);
     
    529529  {
    530530    $Result = '';
    531     for($I = 0; $I < strlen($String); $I++) 
     531    for($I = 0; $I < strlen($String); $I++)
    532532    {
    533533       if(ord($String[$I]) < 128) $Result .= $String[$I];
  • trunk/includes/Version.php

    r832 r833  
    66// and system will need database update.
    77
    8 $Revision = 832; // Subversion revision
     8$Revision = 833; // Subversion revision
    99$DatabaseRevision = 811; // Database structure revision
    1010$ReleaseTime = '2015-08-24';
Note: See TracChangeset for help on using the changeset viewer.