-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Transliteracija iz latinice u ćirilicu? #1
Comments
To je gotovo nemoguće. recimo dj nije uvek ђ u recimo reči djed i sl. Iz ćirilice u latinicu je daleko sigurnije. Takođe i strane reči bi onda preslovljavao u ćirilicu i onda qwy i sl. bi ostalo u latinici ... gomila problema. Ako neko ima ideju kako da se to implementira sigurno, otvoren sam za predloge. Ali po mom mišljenju nije vredno truda. |
Znam. I ja sam pravio razne transliteratore. Naravno da ne može da uradi 100% ali je velika stvar ako uradi onih 99.9%. podrazumeva se da onaj ko korsiti tvoj dodatak mora da pregleda tekst i dotera ako nešto nije u redu. Nije ovo totalno automatizovana transltieracija na kojoj niko naknadno ne intervenise. U većini slučajeva gde se ovaj tvoj dodatak upotrebljava, verovatnije je da će da posao završava i 100%. Dosta slučajeva kada je transliteracija dvosmislena može da se reši podešavanejm izuzetaka unapred. Mogu da ti pomognem oko toga. Ono što sam ja radio je i PHP ali je princip, sigurno primenljiv i u ovom slučaju. |
Pa ajd, daj neki primer koda u PHP-u, lako se to pretaba u JS. |
Dodao sam opciju, ali ne preslovljava dobro ... ja sam prvobitno radio za svaki član niza da konvertuje iz liste, ali je bilo jako sporo pa sam prebacio da ide slovo po slovo da bi radilo instant. Zapravo bi trebalo da se ne radi split sadržaja texta nego cela reča pa sa .replace, ali kao što sam rekao biće dosta sporo. Tačnije ako je stranica velika zna browser kompletno da se zapuca na slabijim mašinama. Ali eto, barem nešto :D |
Da, tako sam ja radio, imam niz u kome su pojedinačna slova ali mogu da budu i više slova i onda sam naveo kombinacije slova kada se dj ne preslovljava u đ na primer... Pogledaj ovo što sam nekad davno napravio: https://ult.datavoyage.com/ Ako ti je sporo da radiš sa rečima, onda napravi dva niza, Ostavi taj za konverziju pojedinačnih slova jer je brz, i napravi dodatni za konverziju reči, i kombinacija slova. Izuzetaka ima malo tako da će i to što sporije radi sa rečima biti manji problem. Baš sam juče prebacivao jedan tekst sa latinice na ćirilicu i to je čak bila mešana ijekavica i starinski govor sa sve 'ođe', 'đe ćeš' i slično. Naravno da sam morao da ga ručno pregledam i sredim ali je mnogo toga moglo da se reši unaped programski, da se uštedi vreme. Kada radiš preslovljavanje prvo radi reči i delove reči. Pa kad njih uradiš tek onda pusti konverziju svih slova. Kada uradiš izuzetke prvo onda ti ostaje čist tekst u kome slobodno možeš da radiš preslovljavanje slovo na slovo. Ako reč sadrži bilo koje slovo koje nije iz naše abecede onda celu reč ostavi kako je, jer to verovatno strana reč i ne treba da se prebacuje na ćirilicu. Doduše, ja sam u rečnik stavljao da se na primer Windows preslovljava u Виндоуз. То ти омогућава она табела речи. Не мора да садржи само изузетке за наша слова, него и стране речи које треба транслитеровати по нашем правопису, или комбинације речи који се често појављују Takođe ćeš naići i na slučajeve kada je latinično slovo koje je digraf na početku rečenice pa i to treba predvideti. Treba verovatno da imaš i mogućnost da naznačiš da li je pravilo cela reč ili deo reči. Na primer 'anjon' se preslovljava u 'анјон' ali se 'kanjon' preslovljava u 'кањон'. E sad ima smisla da se to tretira kao delovi reči, jer ti rešava gomilu slučajeva sa padežima, množinom i jedninom, rodovima i slično, da ne moraš za svaki oblik da unosiš pravilo. Možda da u pravila uvedeš oznaku za početak reči, pa ako pravilo sadrži tu oznaku, onda tražiš taj niz slova samo na početku reči. Tako će ti pravilo '^anjon' rešavati slučajeve 'anjon', 'anjona', 'anjoni', 'anjonom' i slično ali ne i 'kanjon' i bilo koju drugu varijantu sa tim korenom. "одје", "vdje" => "vдје", "vanjez" => "ванјез", "^anjon" => "анјон", "Microsoft" => "Мајкрософт", "Windows" => "Виндоуз", "New York" => "Њујорк", "Viena" => "Беч", "email" => "имејл", "Linux" => "Линукс", "Dj" => "Ђ", "Lj" => "Љ", ); ?>Možeš da predvidiš i opciju da prilikom preslovljavanja korisnik navede da li hoće da dj preslovljava u ђ. U ijekavici se to ne radi, a u tom slučaju, u tekstu đ mora svakako biti zapisano kao đ a ne dj. Možeš i da napraviš opciju da korisnik sam dodaje izuzetke, kad naiđe na njih, a i da te izuzetke pošalje tebi da možeš da ih ubaciš u dodatak. Možda je najprostije da pravila preslovljavanja budu u json formatu tako da ih je lako ažurirati i distribuirati. Sad mi pade na pamet da možda pravila za preslovljavanje okačimo u json formatu na github, tako da ko god se bavi ovim problemom može da dodaje pravila i izuzetke. Ja bih onda napravio PHP biblioteku koja će da koristi ista ta pravila. Neko treći može da to uradi za druge platforme. To bi bilo baš moćno i vrlo korisno. Kao što rekoh, izuzetaka ima malo. U stvari ćeš imati više stranih reči sa specifičnim preslovljavanjem u ćirilicu nego samih izuzetaka u na srpskom jeziku. U stvari listu stranih reči sa preslovljavanjem je možda bolje da imaš kao odvojen niz da bi korisnik mogao da bira da li hoće preslovljavanje takvih reči ili želi da ostanu u originalu, pošto je i jedno i drugo realna potreba. Погледај и https://extensions.libreoffice.org/en/extensions/show/oootranslit. Он ради прилично добро. U njegovom sorsu ćeš naći dosta izuzetaka, kao na primer: strIZ() = Array("тањуг", "Тањуг", "аџиве", "наџе", "оџиве", "оџвака", "оџури", "џубори", "оњукциј", "оњугациј", "њукциј", "њекциј", "ТАЊУГ", "НАЏИВЕ", "НАЏЕ", "ОЏИВЕ", "ОЏВАКА", "ОЏУРИ", "ЏУБОРИ", "ОЊУКЦИЈ", "ОЊУГАЦИЈ", "ЊУКЦИЈ", "ЊЕКЦИЈ", "АЊЕЗИЧН", "ањезичн") Primeti da je Uroš prvo radio slovnu transliteraciju pa onda u rezultatu tražio neispravne reči i vraćao ih u ispravan oblik. Ne znam što je tako radio, al radi mu posao. |
E da, trebalo bi da iam opcija da se radi preslovljavanje samo označenog tekst na stranici, ne uvek cele stranice. To je u stvari najčešće potrebno, bar meni. |
Hoće li biti dodata opcija da se radi transliteracija iz latinice u ćirilicu?
The text was updated successfully, but these errors were encountered: