Obsah
Jeden aspekt, který je třeba vzít v úvahu, je správně definovat strukturu databáze. Ačkoli mohou existovat různé způsoby ukládání záznamů, budeme muset zjistit, jak by měly být informace strukturovány, tomu se říká proces normalizace databáze, což je studie vztahů mezi tabulkami. První věc, o které musíme mít jasno, je, že i když máme záznamy v databázi, neutrpí načítání dotazů, protože k ukládání záznamů do mezipaměti použijeme vlastní mezipaměť MySQL, řekněme, že nemá smysl získávat název města v každém dotazu, pokud se bude vždy nazývat stejně, to znamená, že velikost mezipaměti nakonfigurujeme na základě objemu, který může naše databáze generovat. Pokud chcete změnit velikost mezipaměti, musíte použít query_cache_size, protože je to proměnná MySQL, která řídí celkovou velikost mezipaměti.Vytvoříme vztah záznamů s InnoDB a použití cizích klíčů k propojení tabulek, takže například budeme mít tabulku nazvanou Země a pole bude ID jazyka a další tabulka s jazyky s překlady bude, tato poslední tabulka bude ta, která má záznamy, které budou přeloženy, název zemí v různých jazycích.
Z PHP Jazyk ovládáme pomocí relací, v tomto případě uložíme ID záznamu databázové tabulky k identifikaci jazyka uživatele, můžeme to provést pomocí geolokace nebo použít výchozí jazyk pro web a poté jej uživatel změní.
Vložili jsme relaci s ID jazyka:
$ _SESSION ['languageid'] = 1 nebo $ _SESSION ['languageid'] = 'es';
Díky této proměnné relace použijeme při dotazování na databázi klauzuli WHERE k dotazování záznamů podle jazyka.
Vyberte * ze zemí WHERE languageid = '". $ _ SESSION [' languageid ']."' Vyberte * z produktů WHERE languageid = '". $ _ SESSION [' languageid ']."'
Na základě této metody musíme připravit náš návrh tak, aby se přizpůsobil jazykům, a vytvořit tak celý design, aby přijímal dynamický obsah. Například v mysql pro název stránky budeme mít pole pro každý jazyk:
title = toto je můj produktový jazyk = je název = toto je můj produktový jazyk = cs
Stejně jako dotaz mysql přináší definovaný jazyk, můžeme generovat obsah.
Například název stránky by vypadal takto:
Také dynamický odkaz s alternativním atributem:
Můžeme to také udělat pro různé prvky webu, jako jsou tlačítka:
To nám umožňuje abstrahovat z jazyka uživatele a zobrazit obsah přizpůsobený podle země a dokonce i různých sekcí. Kromě Mysql lze stejnou metodu použít s textovými nebo xml soubory podle potřeb každého projektu.