Marco, you may also need to delete and recreate the original ones that you accidentally duplicated as it probably changed the end result of them.
Keep this in mind, when you create a new language key in the Admin Panel you are writing directly to the Database, and this in turn changes the results for any entry. It's not the same as running an SQL where you create a table and then insert into that table, this time you rewrote the table.
Instead, what you did was changed the table. You will need to find out what it was originally and rewrite it back to what it was before you. To help you out, note the error it's giving you:
adm/lang_file.php Line 182
function implodeNonEmpty($strGlue, $arr) {
foreach ($arr as $key => $val)
if (strlen($val) <= 0) unset($arr[$key]);
return implode($strGlue, $arr);
}
if ( strlen($searchText) > 0 ) {
$searchText = addslashes($searchText);
$likeWildcards = array ('%', '_');
$likeWildcardsEscaped = array('\%', '\_');
$searchText = str_replace($likeWildcards, $likeWildcardsEscaped, $searchText);
$arrWords = preg_split("/\s+/", $searchText, -1, PREG_SPLIT_NO_EMPTY);
foreach( $arrWords as $key => $val )
$arrWords[$key] = strtoupper( $val );
$sqlSearchInKeys = $searchInKeys ? sqlLikeClause('UPPER(`LocalizationKeys`.`Key`)', $arrWords, $groupWords) : '';
$sqlSearchInStrings = $searchInStrings ? sqlLikeClause('UPPER(`LocalizationStrings`.`String`)', $arrWords, $groupWords) : '';
$sqlSearchInParams = $searchInParams ? sqlLikeClause('UPPER(`LocalizationStringParams`.`Description`)', $arrWords, $groupWords) : '';
$sqlSearchClause = implodeNonEmpty(' OR ', array($sqlSearchInKeys, $sqlSearchInStrings, $sqlSearchInParams));
$sqlSearchClause = "($sqlSearchClause)";
} else
$sqlSearchClause = '';
$sqlSearchInCategories = sqlInClause('`LocalizationCategories`.`ID`', $arrCategoryIDs);
$sqlSearchInLanguages = sqlInClause('`LocalizationLanguages`.`ID`', $arrLanguageIDs);
$sqlWhereClause = implodeNonEmpty(' AND ', array($sqlSearchClause, $sqlSearchInCategories, $sqlSearchInLanguages));
if ( strlen($sqlWhereClause) )
$sqlWhereClause = "WHERE $sqlWhereClause ";
else
$sqlWhereClause = '';
$sql = "
SELECT DISTINCT
`LocalizationStrings`.`IDKey` AS `IDKey`,
`LocalizationStrings`.`IDLanguage` AS `IDLanguage`,
`LocalizationKeys`.`Key` AS `Key`,
`LocalizationStrings`.`String` AS `String`,
`LocalizationLanguages`.`Title` AS `Language`,
`LocalizationCategories`.`Name` AS `Category`
FROM `LocalizationStringParams`
RIGHT JOIN `LocalizationKeys` ON
(`LocalizationStringParams`.`IDKey` = `LocalizationKeys`.`ID`)
LEFT JOIN `LocalizationStrings` ON
(`LocalizationStrings`.`IDKey` = `LocalizationKeys`.`ID`)
LEFT JOIN `LocalizationCategories` ON
(`LocalizationKeys`.`IDCategory` = `LocalizationCategories`.`ID`)
LEFT JOIN `LocalizationLanguages` ON
(`LocalizationStrings`.`IDLanguage` = `LocalizationLanguages`.`ID`)
$sqlWhereClause
ORDER BY
`Language`, `Category`, `Key`";
$resSearchResult = db_res($sql); (Line 182 Here)
return $resSearchResult;
}
adm/lang_file.php Line 825
function deleteLanguageKey()
{
$langKeyID = (int)$_POST['DeleteLangKey'];
$resKey = db_res('SELECT `Key` FROM `LocalizationKeys` WHERE `ID` = '.$langKeyID);
if ( !mysql_num_rows($resKey) )
return '<font color="red">Error: language key not found.</font>';
db_res('DELETE FROM `LocalizationKeys` WHERE `ID`='.$langKeyID);
db_res('DELETE FROM `LocalizationStrings` WHERE `IDKey` = '.$langKeyID);
db_res('DELETE FROM `LocalizationStringParams` WHERE `IDKey` = '.$langKeyID);
if (!compileLanguage())
return '<font color="red">Error: could not recompile language files.</font>';
$arrKey = mysql_fetch_assoc($resKey);
return '<font color="green">The <b>'.htmlspecialchars($arrKey['Key']).'</b> language key has been successfully removed.</font>';
}
if ( isset($_POST['DeleteLangKey']) )
$resultMsg = deleteLanguageKey();
global
$searchString,
$searchCombineWordsAs,
$searchInKeys,
$searchInStrings,
$searchInParams,
$searchCategories,
$searchLanguages;
$res = findLangStrings(
$searchString,
$searchCombineWordsAs,
$searchInKeys,
$searchInStrings,
$searchInParams,
$searchCategories,
$searchLanguages); (Line 825)
ob_start();
?>
adm/lang_file.php Line 1364
<?
ContentBlockFoot();
echo manageLanguagesBlock();
echo searchBlock();
echo stringTableBlock($_GET['showMoreThanMax']=='yes' ? true : false); (Line 1364)
BottomCode();
Basically, this is saying that it can't search the language files because of a change you made to them. Try these steps:
1. Attempt to recompile the language and see what the end results are: If it works your getting off easy.
2. Go into your SQL Databases and ask it to check & repair the tables. Again, if it works your getting of easy.
3. Locate the item you duplicated and get it back to what it was originally before your changes.
**Also, have you tried running your site in english since this started? Curious if this is across the board in all language files or just the German language. I have listed the full sections of code where the errors are appearing in a Base/unmodified D6.1.6 system. Please note also, your file path is showing:
adm/lang_file.php
The unmodified shows it as admin/lang_file.php
Is there a reason you have changed the directory name from admin to adm ? Curious on this as it may also be part of the problem your incurring, if you have not changed everything that reflects the admin/ directory to adm/ It's easy to miss something in a process like this and not even realize it.