[ vilyu @ 14.07.2003. 14:58 ] @
Cao. Planiram da napravim Content Management System koji bi podrzao sajtove koji imaju prevod na 2 ili vise jezika. E sad, organizacija sajta bi bila po kategorijama, tako da bi npr. strana screenshot-ova mog programa bila odredjena sledecim poljima u bazi: p1=products, p2=my_program, p3=screenshots, lang=en. Kako bih koristio mod_rewrite za parsiranje URL-a, ove vrednosti nece biti iste za neki drugi jezik na koji je sajt preveden, a ja zelim da kad korisnik dodje na stranu screenshots klikom na link: Srpski predje direktno na srpsku verziju iste strane. Problem je u sledecem: ja mogu da stranu na engleskom obelezim id-om koji bi bio isti za tu stranu i na drugim jezicima, ali kako to da pri kreiranju verzije sajta na drugom jeziku izvedem elegantno svojim buducim CMS-om? Znaci, da li moram prvo da napravim jednu verziju, pa da svugde stavim dugme: prevedi ovu stranu na npr. engleski, pa onda CMS upise na obe strane isti ID i tako kaze koja strana na engleskom odgovara kojoj strani na srpskom i tako za svaku stranu (srpski, translate, upisi, vrati se na srpski, translate, ...).

Svaki komentar je dobro dosao. Hvala unapred.
[ del-boy @ 14.07.2003. 16:02 ] @
Ne znam da li sam dobro razumeo ali ako jesam ja bih uradio ovo:

Napravio jedan fajl sa definisanim promenjivim za svaku recenicu, rec ili text (zavisi sta ti treba) i onda na prvoj strani pitao posetioce koji jezik hoce pa kada izaberu includujem odgovarajuci fajl. Njegovo ime stavim ili u cookie (pa ce sledeci put biti automatski jezik koji je korisnik izabrao) ili u sesiju ili u URL.

Nadam se da sam pomogao
[ vilyu @ 14.07.2003. 17:15 ] @
Prvenstveno je problem u procesu kreiranja n-tog jezika, tj. kako ga povezati sa prevodom na ostale jezike na najelegantniji nacin. Da li da napravim jednu verziju, pa da za svaku stranu kliknem prevedi na engleski, pa da CMS poveze srpski i engleski a ja za tu stranicu unesem sadrzaj na engleskom i tako za svaku stranicu i jezik, ili postoji bolje resenje?

Da li postoji neki nacin da borowse-ujem do stranice prevoda, pa da u neko id polje unesem isti broj? Nesto kao na Yahoo-u sto se u pop-up-u bira attachment? Ali kako se to sa pop-up-om onda izvodi? Kako uopste vi u bazi povezujete dvojezicni/visejezicni sajt?
[ tOwk @ 14.07.2003. 17:27 ] @
Meni nije jasno šta je zapravo problem.

Evo, baš smo nedavno razgovarali o obradi adresa. Ono što bih ja preporučio je sledeće:

— adresa sadrži oznaku jezika, npr. /sr/1567, ili /1567/sr (ili bilo koja od brojnih mogućnosti) za članak 1567. na srpskom jeziku. Ako koristiš imena kao identifikatore članaka (npr. „about“, „prices“ itd.) preporučujem da koristiš jedinstvene identifikatore, a ne da ih prevodiš (u „o-nama“, „cene“...), i to iz više razloga (posetioc kada jednom shvati kako se formiraju URL-ovi, može i sam da zameni /en/ sa /de/ ili nešto slično; zatim, smanjuješ potrebu za držanjem tabele mapiranja identifikatora sa svakog jezika na sve druge)

— kada adresa ne sadrži oznaku jezika (znači ne sadrži npr. dvoslovni ISO 639 kod), onda isporučuješ „podrazumevanu verziju“ i to tako što bar u nekoj meri poštuješ „Accept-Language“ zaglavlje (npr. ako ono sadrži samo engleski jezik, onda ga ne poštuješ (isporučuješ jezik koji veruješ da će razumeti što šira ciljna populacija, npr. srpski ili engleski), a ako sadrži više jezika, onda znači da je neko to podešavao, i ima smisla koristiti ga


Ok, ovo su samo neke ideje kako to uraditi, ali to je moguće na mnogoo načina, pa zaista ne vidim šta je problem. Problem je da ustanoviš o kakvom obrascu korišćenja će se raditi (da li će biti svega nekoliko jezika, ili će se dodavati prevodi proizvoljno?) i da u skladu sa tim formulišeš zahteve i rešenja.
[ vilyu @ 14.07.2003. 17:34 ] @
Ja sam zeleo da za razlicite jezike bude razlicita putanja do stranice, znaci prevedena. Ali izgleda da to znatno otezava posao. Mozda cu da uvedem pomocnu tabelu u kojoj bi bilo: name=gallery, id=2; name=galerija, id=2, pa bi na taj nacin url mogao da se prevede, ali o tome tek moram da razmislim da li moze da profunkcionise.

U svakom slucaju hvala na trudu, a ako jos nekom padne na pamet neka ideja, nek se ne ustrucava da je kaze.:)
[ Goran Rakić @ 19.07.2003. 02:11 ] @
Ako baš želiš da u rewrite-ovanom URL-u stoji „about“ u engleskoj, a „o_nama“ u srpskoj verziji onda moraš imati tabelu linkova koja treba da ima polja:

langcode trans id
en about 1
sr o_nama 1

E sada, kada uhvatiš parametar tri za about, i jezik en imaš da je id jednako 1. (proveravaj i jedno i drugu jer dve stvari na dva jezika mogu biti iste) Kada to imaš upotrebiš taj id za pribavljanje univerzalnog parametra.

Sada imaš šablon stranicu bez teksta sa varijablama gde trebaju da se pojave fiksne rečni, dok je dinamički sadržaj već preveden prilikom unošenja na sve varijante. To lepo izmenjaš, a oko prevoda fiksnog dela možeš koristiti neke „lang“ datoteke ili, moja preporuka, gettext ako imaš uslova.


Kada korisnik dođe na stranicu, ti mu predstavi neku predefinisanu verziju, zavisno već od Accept-Language HTTP zaglavlja ili ako ono nije postavljeno (ili nije u opsegu) na neku verziju a staviš negde u uglu listu podržanih jezika i daš izbor.
[ vilyu @ 19.07.2003. 14:57 ] @
Da, do tog sam zakljucka i ja dosao, ali me je interesovalo da li i drugi tako rade, odnosno da li se to radi, kako bih pravio nesto sto je provereno dobro, a ne da pravim neka svoja kvazi resenja. Tvoj post mi je mnogo pomogao u odlucivanju oko sistema koji cu primeniti. Hvala.