Spisie treści
Jednym z aspektów, który należy wziąć pod uwagę, jest: poprawnie zdefiniuj strukturę bazy danych. Chociaż mogą istnieć różne sposoby zapisywania rekordów, będziemy musieli zobaczyć, jak powinny być zorganizowane informacje, jest to tak zwany proces normalizacji bazy danych, który jest badaniem relacji między tabelami. Pierwszą rzeczą, o której musimy jasno powiedzieć, jest to, że nawet jeśli mamy rekordy w bazie danych, nie zostanie ona obciążona zapytaniami, ponieważ użyjemy własnej pamięci podręcznej MySQL, aby przechowywać rekordy w pamięci podręcznej, powiedzmy, że nie ma sensu uzyskiwać nazwę miasta w każdym zapytaniu, jeśli zawsze będzie się nazywać tak samo, to znaczy, skonfigurujemy rozmiar naszej pamięci podręcznej na podstawie objętości, jaką może wygenerować nasza baza danych. Jeśli chcesz zmienić rozmiar pamięci podręcznej, musisz użyć query_cache_size, ponieważ jest to zmienna MySQL, która kontroluje całkowity rozmiar pamięci podręcznej.Stworzymy relację rekordów z InnoDB i użycie kluczy obcych do powiązania tabel, więc np. będziemy mieli tabelę o nazwie Kraje i polem będzie identyfikator języka a kolejna tabela z językami z tłumaczeniami będzie, ta ostatnia tabela będzie tą, która ma zapisy, które będą tłumaczone nazwy krajów w różnych językach.
Z PHP Sposób, w jaki kontrolujemy język, polega na użyciu sesji, w tym przypadku zapisujemy identyfikator rekordu tabeli bazy danych, aby zidentyfikować język użytkownika, możemy to zrobić przez geolokalizację lub użyć domyślnego języka dla sieci, a następnie użytkownik go zmienia.
Umieszczamy sesję z identyfikatorem języka:
$ _SESSION ['languageid'] = 1 lub $ _SESSION ['languageid'] = 'es';
Dzięki tej zmiennej sesji, gdy odpytujemy bazę danych, użyjemy takiej klauzuli WHERE, aby zapytać o rekordy zgodnie z językiem.
Wybierz * z Krajów WHERE languageid = '". $ _ SESSION [' languageid ']."' Wybierz * z produktów WHERE languageid = '". $ _ SESSION [' languageid ']."'
W oparciu o tę metodę musimy przygotować nasz projekt, aby dostosować się do języków, tworząc cały projekt, aby zaakceptować dynamiczną treść. Na przykład w mysql dla tytułu strony będziemy mieli pole dla każdego języka:
title = to język mojego produktu = to title = to język mojego produktu = en
Tak jak zapytanie mysql przynosi zdefiniowany język, tak możemy wygenerować treść.
Na przykład tytuł strony będzie wyglądał tak:
Również dynamiczny link z alternatywnym atrybutem:
Możemy to również zrobić dla różnych elementów sieci, takich jak przyciski:
Pozwala nam to abstrahować od języka użytkownika, aby wyświetlać treści dostosowane do kraju, a nawet różnych sekcji. Oprócz Mysql ta sama metoda może być używana z plikami tekstowymi lub xml w zależności od potrzeb każdego projektu.