Jump to content
php.lv forumi

CMS vairāku valodu atbalsts


bfj

Recommended Posts

Sveicināti, man ir radusies dilemma.

 

Nekādi nevaru tikt skaidrībā, kā realizēt vairāku valodu atbalstu ar dinamiskiem datiem. Situācija ir sekojoša. Lapas administrācijas daļā nodrošināta iespēja veidot dažādas lapas sadaļas, to saturu (tiek izmantots WYSIWYG teksta redaktors), formas (atbilstoši arī to laukus). Jābūt iespējai katru no tām (sadaļas, saturs, formas) veidot vairākās valodās. Ja lietotājs aizpilda admin daļā veidoto formu, tad jābūt iespējai aizpildīt laukus visās valodās, kurās veidota forma, ne tikai rādīt lauku nosaukumus izvēlētajā valodā (lauks lv: "blabla", lauks en: "blablabla"). Vēl lapā ir paredzēta meklēšana pēc aizpildīto formu datiem (nefiltrējot, pēc kura lauka) un šo aizpildījumu arī varētu būt samērā daudz, tā kā jādomā arī par ātrdarbību.

 

+ vēl jāņem vērā arī tas, ka admin daļā jābūt iespējai pievienot jaunu valodu. Pašai admin daļai arī jābūt vairāku valodu atbalstam, bet ar to problēmu nav, jo dati ir statiski un tiek glabāti valodu "resursu" failos. Problēma ir ar lietotāju ievadītiem un admin daļā veidotiem (dinamiskiem) datiem.

 

Esmu izkristalizējis dažus uzmetuma variantus, taču kaut kā neliekas, ka eju pareizā virzienā.

 

Šis gan vairāk attiektos uz datubāzi, taču no tā arī izriet risinājums iekš PHP.

 

Būtu ļoti pateicīgs, ja kāds padalītos pieredzē un dotu jebkādu padomu.

Edited by bfj
Link to comment
Share on other sites

Sveiks!

Par daudzvalodām vajadzīgo DB struktūru nesen spriedām šeit:

http://php.lv/f/topic/14023-daudzvalodu-atbalsts-identiskam-saturam

Ir jāizdala divas lietas: interfeisa vairākvalodu atbalsts (resursu faili vai DB) un satura vairākvalodu atbalsts (visticamāk tikai DB).

Attiecībā uz ievadi vairākām valodām uzreiz: Esmu redzējis, piemēram, šādu WYSIWYG komponenti - tai uzreiz viena teksta ievades lauka ietvaros, var pārslēgties starp valodām:

http://spaweditor.com/en/disp.php/en_products/en_spaw/en_spaw_demo - kā redzi tur ir tabi (cilnes ;) ), kas ļauj pārslēgties starp vairākākām daļām/valodām.

Link to comment
Share on other sites

Kur problēma? Ja tev dati ir simetriski - respektīvi - vajadzīgs katrā valodā vienkārši tulkojums (kas ir visloģiskākais), nevis atsevišķi veidots saturs katrā valodā, tad vienkārši katrai db tabulai, kur veidojas saturs, pievieno lauku "Lang", kurš satur valodas alias, piemēram, "lv" vai "en" vai "ru" utt... Atlasot pieprasījumus no datubāzes ņem vērā valodas parametru. Atgādināšu tikai, ka tik un tā katram ierakstam nepieciešams savs ID - vienīgais unikālais identifikators, bet šai gadījumā vari veidot kombinēto ID - ID+Lang - unikālai jābūt kombinācijai ID (vienalga ko tur raksti) un Lang (valodas parametrs). Tad varēsi viegli pārslēgties simetriski no konkrētas lapas vienā valodā uz otru. Šai variantā ir iespējams arī bezgalīgs valodu skaits un to jebkurā gadījumā var papildināt! Var pat uztaisīt (ar FK palīdzību) datubāzē, ka dzēšot konkrētu valodu, izdzēšās visi ieraksti, kas ir šai valodā ievietoti datubāzē. Kā to izdarīt tehniski sīkāk izskaidrot nav laika.

Link to comment
Share on other sites

Paldies par padomiem. Jau sāk veidoties jaunas idejas :)

 

Var pat uztaisīt (ar FK palīdzību) datubāzē, ka dzēšot konkrētu valodu, izdzēšās visi ieraksti, kas ir šai valodā ievietoti datubāzē.

Ar šo varētu būt domāts ON DELETE (vai ON UPDATE) CASCADE?

 

 

Attiecībā uz ievadi vairākām valodām uzreiz: Esmu redzējis, piemēram, šādu WYSIWYG komponenti - tai uzreiz viena teksta ievades lauka ietvaros, var pārslēgties starp valodām:

http://spaweditor.co...aw/en_spaw_demo - kā redzi tur ir tabi (cilnes ;) ), kas ļauj pārslēgties starp vairākākām daļām/valodām.

Žēl, ka tas redaktors ir par maksu (manā gadījumā :) ). Laikam būs vien pašam jāmodificē jau esošais.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...