Jump to content
php.lv forumi

Tabulaa vairaakas valodas vai atseviski


azpage

Recommended Posts

Kaa labaak veidot daudzvalodu saitu? No droshiibas puses, labaak ir vienaa tabulaa saglabaat vairakas valodas, vai katru valodu atseviskaa tabulaa? Manupraat, droshaaks ir 2. variants. Tachu ja tiek viedotas tabulas katrai valodai atseviski, tad sanaak, ka vajag papildus tabulas, kuras savienu katru tabulu lauku ID numurus, nju piem (2.variants):

 

grupa_lv

id

nosaukums

pozicija

 

grupa_ru

id

nosaukums

pozicija

 

grupa_en

id

nosaukums

pozicija

 

grupa

id

gr_lv_id

gr_ru_id

gr_en_id

 

Tabula, kas savienu visas tabulas savaa starpaa, var jau pienjemt ka visaas tabulaas pie vienaadiem datu tipiem id numuriem vajadzeetu buut vienaadiem, bet ja nu ..., tad ir ....

 

 

Kaadu variantu Juus ieteiktu, vai varbuut kaadu citu ?

Link to comment
Share on other sites

no droshiibas puses labāk glabāt atsevišķās - nogāž latviešu, paliek krievu ;)

atkarīgs no tā, kā vēlas klients - kopējā struktūra / raksti - tuvāk variantam ar vienotām tabulām, kur mainās lang kolonna. vieglāk - atsevišķas tabulas, un pašā sākumā tabulu nosaukumiem tiek pielikts valodas indexx e.g. $tClient='clients_'.$inner_lang, tālāk visur kods vienāds - "SELECT & FROM $tClient", pretēji visur jāliek "WHERE `lang`='".$inner_lang."'"

Link to comment
Share on other sites

Nju par datu nolasiishanu buut taakaa skaidrs, klients pasaka ko vajag, nevis kaa realizeet, taa kaa tas paliek uz maniem pleciem. Nesapratu, kuru varientu ieteici - raksti - tuvāk variantam ar vienotaam tabulaam - tu domaaji pirmo variantu?

 

Nju pateikshu godiigi, ka man 1. variants nepatiik, jo MySQL datubaazei, cik es zinu ne visai patiik UTF8, tapec prasas 2. variants, bet kaa lai tad tas valodas apvienoju, piem. kad pariet uz citu valodu, lai paliek tajaa pashaa lapaa, tikai nosaukumi mainaas ?

Link to comment
Share on other sites

Tas atkarīgs no lapas / struktūras.

Proti ja latviešu, krievu u.c. valodas lapas koks / materiāli ir identiski, tad vienkāršāk un manuprāt ērtāk ir glabāt katram elementam tulkojumus tajā pašā ierakstā dažādos laukos (tad var ērti pārslēgties -> lasīt šo rakstu angliski utt).

 

Taču ja struktūra pilnīgi atsķirās tad var izmantot tikai vienu nosaukuma / satura lauku (pat obligāti netaisot vairākas tabulas) un datus glabāt utf. Tādējādi var saglabāt unikālus id katram objektam un lapas adrese paliek gaužām vienkārša. Pretēji tam ka tev jāpadod vēl teiksim ?lang=lv mainīgais tu vari padot tikai 'id' un jau secināt kādā valodā tas ir.

Link to comment
Share on other sites

Nu redz. Ja mysqlā netiek izmantots UTF8, tad LENGTH(), u.c. ar stringu garumu saistītās fjas uzskatīs, ka teksts glabājas formātā viens simbols = vients baits. Un atgriezīs nekorektas vērtības, ja teksts saturēs multi-byte simbolus (lv, ru burtus). A bet 4.1 versijai utf-8 kodējumā glabājot datus, tādu problēmu nebūs.

(gan jau tu to visu zini, bet tas tā - citiem, kurus tas interesē)

Link to comment
Share on other sites

  • 5 weeks later...

es par otro variantu, bet mazliet modificētu!

Es izmantoju tādu metodi, ka katrai valodai ir sava datubāze.

Tas ir datubāzes saucās piemēram dati_lv, dati_ru, dati_en.

Atkarībā no izvēlētās valodas, tiek pielikti sie lv, en ,vai ru!

Nezinu protams cik tas ir korekti izejot no programmēšanas valodas!

Valodas piereģistrēšanai izmantoju sessijas!

Link to comment
Share on other sites

no droshiibas puses labāk glabāt atsevišķās - nogāž latviešu, paliek krievu

He, domā haķeris būs tik žēlīgs un nedzēsīs visu DB ?

Link to comment
Share on other sites

×
×
  • Create New...