DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   Transliteracija - Prvo slovo imena ili prezimena (http://www.devprotalk.com/showthread.php?t=5625)

Ilija Studen 19. 06. 2008. 11:44

Transliteracija - Prvo slovo imena ili prezimena
 
Klasična paginacija kod kontakata ne radi pošto su ljudi navikli da su isti organizovani po prvom slovu prezimena (Outlook fazon - lista slova pa se filtrira po tome). Engleski je boza, ali me zanimaju drugi jezici. Перица Перошки treba da ide po P, a ne pod specijalne karakere.

Šta mogu da koristim za transliteraciju, a da, po mogućstvu, ne zahteva dodatne ekstenzije?

jablan 19. 06. 2008. 12:12

A što misliš da "Perica" i "Перица" treba da idu pod isto slovo?

Ilija Studen 19. 06. 2008. 13:57

Hm, nisam baš razmišljao o tome. Ajd za početak:

1. Širina na kojoj se prikazuje navigacija je ograničena i voleo bih da karaktere znam unapred. Iz tog razloga bih se ograničio samo na engleski alfabet.
2. Podržavamo i MySQL stariji od 4.1 tako da nemaju sve baze unicode collation. Korišćenje karaktera van engleskog alfabeta bi malo otežalo sortiranje.

Uglavno, želim da imam stvar pod kontrolom kako bi jednostavno radila i ne bi pravila nepredviđene probleme koje treba podržavati.

jablan 19. 06. 2008. 14:04

Hm, pa mapiranje proizvoljnog ne-engleskog karaktera na engleski alfabet je svakako "problem koji treba podržavati". :( Mislim da ćeš svakako imati dosta problema ako ti baza ne podržava Unikod, pa ne možeš tek tako da uradiš DISTINCT na sva prva slova (što bih ja radio).

ivanhoe 19. 06. 2008. 16:51

sem ako radis nesto za domace trziste bas i nema smisla da radis transliteraciju za druge jezike, u vecini drugih jezika su to zaista razlicita slova (u percepciji ljudi), ljudi nece ocekivati da ona budu pod istom stavkom.

srdjevic 19. 06. 2008. 22:08

Citat:

Originalno napisao Ilija Studen (Napišite 56558)
1. Širina na kojoj se prikazuje navigacija je ograničena i voleo bih da karaktere znam unapred. Iz tog razloga bih se ograničio samo na engleski alfabet.

Sta zelis ovim da kazes? Mislim da nisi bas u pravu za ovo, te se nadam da te samo nisam najbolje razumeo... :)

zira 19. 06. 2008. 23:23

Ne vjerujem da, u slucaju internacionalne aplikacije, mozes znati opseg slova koja ce biti u upotrebi, od evropskih latinica i cirilica sa svim akcentima, do kineskih i arapskih... to nece raditi "automatski" :) Pogotovo ako tvoj klijent iz Hong Konga radi i sa Kinom i sa USA, pa su zapisi mijesano, malo kineskih malo engleskih.

Vjerovatno bi jedan brzi search box sa auto suggest funkcionalnoscu rijesio ovo elegantnije :)

Pedja 22. 06. 2008. 10:21

Ilija, tesko da ces skoro videti neko elegantno resenje jer to mora da bude omoguceno na sistemskom nivou.

Najjednostanvnije je da za to polje napravis jos jedno paralelno polju koje ces kad god se upisuje vrednostu u prvo polje da u drugo upises vrednost koja ce proci kroz neku tvoju funkciju za normalnizaciju, pa ces tako cirilicni tekst prevesti u latinicni, ili cak u engelsku abecedu, na nacin da ce, pretraga, filtiriranje, sorttranje ili sta vec, raditi po tom drugom polju.

Drugi nacin je da napises custom podrsku za ovaj problem i kompajliras ga u sam MySQL i tu je samo pitanje koliko se to isplati raditi i koliko je siroko primenljivo, s obzirom da to znaci kastomizaciju MySQL servera na nivou koji je obicno tesko izvesti na vecini hosting servisa.

Ovo jeste specifican zahtev naseg jezika da se cirilicna i latinicna slova ne razlikuju odnosno da se prilikom sortiranja ili pretrage potpuno ignorise da li je tekst cirilican ili latinican.

Ilija Studen 22. 06. 2008. 10:37

Citat:

Originalno napisao Pedja (Napišite 56632)
Najjednostanvnije je da za to polje napravis jos jedno paralelno polju koje ces kad god se upisuje vrednostu u prvo polje da u drugo upises vrednost koja ce proci kroz neku tvoju funkciju za normalnizaciju, pa ces tako cirilicni tekst prevesti u latinicni, ili cak u engelsku abecedu, na nacin da ce, pretraga, filtiriranje, sorttranje ili sta vec, raditi po tom drugom polju.

To i jeste plan. Prilikom upisa PHP izvlači prvo slovo i upisuje ga u zasebno polje na osnovu koga se kasnije korisnici grupišu. Nisam gadljiv na ekstra polja u bazi dokle god to radi svugde...

Primer gde se transliteracija u englesku abecedu jako koristi su slugovi za postove. Svi karakteri naslova posta se automatski prebacuju u englesku abecedu kako bi se dobili lepi URL-ovi nafilovani sa ključnim rečima. Jedina razlika je što meni treba samo prvo slovo, a ne ceo string... No dobro, pogledaću kako je to rešeno u WordPressu i contact management skriptama.

PS: U pravu ste da smo specifičan slučaj gde transliteracija lepo radi (plus recimo jezici kao što nemački, ruski itd - lako se prebacuju), ali da to nije univerzalno rešenje. Šta da radim sa Japancima... :D

Petar Marić 22. 06. 2008. 10:58

Ili Arapima i Jevrejima - u njihovim pismima se reči pišu zdesna ulevo (rtl) ;)


Vreme je GMT +2. Trenutno vreme je 12:56.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.