Cześć. W ramach nauki wykonuję stronę wielojęzyczną (langi trzymam w MariaDB, wyświetlam przez php) i mam problem z wyświeleniem wartości. Chciałbym stworzyć zapytanie sql, które wyświetli mi poprawną wartość translation wg podanego w kodzie na sztywno name. Coś typu $lang['localization'] wyświetlające name localization dla naszego określonego language_code.
id | language_code | name | translation |
---|---|---|---|
1 | en | localization | Localization |
2 | en | type | Type |
3 | pl | localization | Lokalizacja |
4 | pl | type | Typ |
Jedyne działające rozwiązanie jakie mi przychodzi do głowy to zrobić tabelę w ten sposób:
id | language_code | localization | type |
---|---|---|---|
1 | en | Localization | Type |
2 | pl | Lokalizacja | Typ |
3 | es | Localización | Tipo |
Użyć zapytania:
SELECT _translation_other.location, _translation_other.type
FROM `_translation_other`
WHERE _translation_other.language_code = 'pl'
I wypluć to w ten sposób:
if($result = mysqli_query($db_connection, $sql_idk)) {
$row = mysqli_fetch_array($result);
echo '<h3>'. $row['location'] .'</h3>';
echo '<h3>'. $row['type'] .'</h3>';
}
Działa, ale co jeśli będe miał dużo tekstów? Będe miał wtedy kolumn od groma, a nie wiem, czy jest to ok.
Teraz tak myśle, że mogę zrobić osobną tabelę (różniącą się jedynie suffixem) dla każdego z języków. Które rozwiązanie będzie lepsze?