Innehållsförteckning
En aspekt som måste beaktas är korrekt definiera databasstrukturen. Även om det kan finnas olika sätt att spara posterna, måste vi se hur informationen ska struktureras, det här är vad som kallas databasnormaliseringsprocessen, som är en studie av sambandet mellan tabellerna. Det första vi måste vara tydliga med är att även om vi har posterna i databasen kommer det inte att bli en frågabelastning, eftersom vi kommer att använda MySQL: s egen cache för att få posterna cachade, låt oss säga att det inte är vettigt att få namnet på en stad i varje fråga om den alltid kommer att kallas densamma, det vill säga, vi kommer att konfigurera vår cachestorlek baserat på volymen som vår databas kan generera. Om du vill ändra cachestorleken måste du använda query_cache_size eftersom det är MySQL -variabeln som styr den totala cachestorleken.Vi kommer att skapa relationen mellan poster med InnoDB och användning av främmande nycklar för att relatera tabeller, så till exempel kommer vi att ha en tabell som heter Länder och ett fält är språk -id och en annan tabell med språk med översättningar kommer att vara, den här sista tabellen kommer att vara den som har de poster som kommer att översättas namn på länderna på olika språk.
Från PHP Sättet vi kontrollerar språket är genom att använda sessioner, i det här fallet sparar vi post -ID för databastabellen för att identifiera användarens språk, vi kan göra det genom geografisk plats eller använda ett standardspråk för webben och sedan ändrar användaren det.
Vi lägger en session med språk -id:
$ _SESSION ['languageid'] = 1 eller $ _SESSION ['languageid'] = 'es';
Tack vare denna sessionsvariabel, när vi frågar i databasen kommer vi att använda en WHERE -klausul som denna för att fråga efter poster enligt språket.
Välj * från länder WHERE languageid = '". $ _ SESSION [' languageid ']."' Välj * från produkter WHERE languageid = '". $ _ SESSION [' languageid ']."'
Baserat på denna metod måste vi förbereda vår design för att anpassa sig till språk, skapa hela designen för att acceptera dynamiskt innehåll. Till exempel i mysql för sidans titel kommer vi att ha ett fält för varje språk:
title = det här är mitt produktspråk = är title = det här är mitt produktspråk = sv
Precis som mysql -frågan ger det definierade språket kan vi generera innehållet.
Exempelvis skulle sidans titel se ut så här:
En också dynamisk länk med det alternativa attributet:
Vi kan också göra det för olika delar av webben som knappar:
Detta gör att vi kan abstrahera från användarens språk för att visa innehåll anpassat efter land och till och med olika sektioner. Förutom Mysql kan samma metod användas med text- eller xml -filer enligt behoven i varje projekt.