Подршка » Проблеми » Srlatin: ćirilično "u" preslovljava u 000000

  • Pozdrav. Prilikom ažuriranja strana i članaka, u delu „Objavi“ i „Revizije“ preslovljavanje ne funkcioniše kako treba. Recimo u delu „Objavi“ piše: Objavljeno 27. oktobar 2010. 000000 15:37.

    Slika

    Isto se dešava i u delu „Revizije“. Kada se isključi srlatin dodatak, problem nestaje (normalno se pojavljuje ćirilično slovo u).

    Znam da problem nije „strašan“, ali meni iz nekog razloga baš smeta :). Nov sam kada je WordPress u pitanju, tako da nisam siguran u kom pravcu da tražim rešenje.

Посматрање 9 одговора - 1 до 9 (од укупно 9)
  • Thread Starter jmladen

    (@jmladen)

    Posle malo igranja sa Poedit-om, evo nekog mog zaključka. Ovaj problem nema direktne veze sa Srlatin dodatkom.
    Naime, u srpskom prevodu (sr_RS.po fajl) postoje 2 stringa tipa:M j, Y @ G:i koji su prevedeni sa j. F Y. у H:i. Pretpostavljam da ti stringovi služe kao argument neke od WordPress funkcija za format vremena (pretpostavljam, kao što rekoh nov sam kad je WordPress u pitanju). Kada u prevodu stoji ćirilično slovo „u“, sve prolazi bez problema. Ali kada tu stoji latinično slovo „u“, funkcija ga „obradi“.
    E sad, nisam hteo dublje da kopam iz prostog razloga: zapalo mi je za oko da engleska verzija WordPress-a tu koristi „@“, dok na drugim mestima koristi „at“. Probao sam da umesto ćiriličnog slova „u“, stavim „at“, i naravno i to je „obrađeno“ (ne dobije se „000000“, nego „pm31“). Dakle, tvorci WordPress-a su pribegli rešenju u formi „majmunčeta“. To je ujedno i moje trenutno rešenje (editovanje .po / .mo fajlova na ta dva mesta), što nije najsrećnije, ali je ipak lepše od „000000“.

    Уредник Avram

    (@avram)

    Samo eskejpuj slova, tj. stavi \у ili \a\t ili kako god, da PHP ne bi slovo/slova prihvatao kao format nego baš kao prosleđena slova.

    Thread Starter jmladen

    (@jmladen)

    Avrame, hvala na predlogu. Ne znam da li sam dobro shvatio, ali ono što sam probao je da snimim tako eskejpovan prevod, tj da u prevodu .po fajla umesto
    j. F Y. у H:i
    bude
    j. F Y. \у H:i.
    Međutim, Poedit onda neće da snimi .mo fajl, tj izbaci „fatal error“ na toj liniji koda (.po fajl bude snimljen, al .mo ne).

    Pitao bih još nešto. Da li negde postoji spisak fajlova koji su izmenjeni u našoj lokalizovanoj distribuciji WordPress-a, u odnosu na englesku verziju (pored „languges“ fajlova)? Naime, pošto ne koristim ćirilično pismo na blogu, razmišljam da izbegnem korišćenje Srlatin dodatka. Preslovljavanje fajlova mogu da izvedem u lokalu za par minuta, što je po meni bolje nego da ga server radi svaki put.

    Уредник Avram

    (@avram)

    A jesi probao sa duplim eskejpom? Tj. \\у ?

    Moguće je da poEdit pravi problem zato što njemu ta kosa crta prelama string (koji je, ako se dobro sećam, ograničen navodnicima – „) ali bi dve kose crte onda trebalo da reši problem pravljenja .mo fajla. Ali onda ne znam kako će se ponašati u samom Vordpresu :S

    Što se izmenjenih fajlova tiče, osim config.php fajla koji sadrži informacije o jeziku i po/mo fajlova, ne bi trebalo da je išta više menjano (osim možda poneki fajl neke teme). Mislim da je Milan kompetentniji da odgovori na tvoje pitanje.

    Što se preslovljavanja u lokalu tiče – svojevremeno sam i ja radio preslovljavanje u lokalu, ali pošto se novi stringovi dodaju (a poneki i brišu) sa skoro svakom verzijom Vordpresa, shvatio sam da je bolje koristiti dodatak koji će ceo proces automatizovati (a ne verujem da to troši mnogo resursa, to je ipak samo replace :))

    Thread Starter jmladen

    (@jmladen)

    Da, ovo je definitivno rešenje! Radi kako treba i u ćiriličnoj i u latiničnoj verziji, tj. i sa i bez Srlatin dodatka (možda bi trebalo izvršiti tu korekciju u sledećoj verziji našeg prevoda).

    Što se tiče izmenjenih fajlova, postoje još neki fajlovi pored ovih koje si pomenuo, ali nisam siguran da li se oni koriste samo u toku instalacije. Možda bih se potrudio i da pronađem sve te fajlove, ali mi je besmisleno da to radim sa svakom novom verzijom (jedino da napišem neku skriptu koja će da pretrči sve fajlove i traži ćirilična slova), zato me zanima da li negde postoji spisak tih fajlova (neki changelog ili tako nešto za našu lokalizovanu verziju). Što se tiče preslovljavanja, svestan sam da se vrše promene u svakoj verziji (dodavanje i brisanje stringova), kao i da je lakše održavati jednu lokalizaciju WordPress-a, tj da bih morao ga radim sa svakom novom verzijom. To međutim nije problem, ako znam koji su fajlovi u pitanju, pošto ceo posao može da odradi skripta, npr ($files = niz sa imenima fajlova; $replace = niz tipa ćirilično_slovo => latinično_slovo, kao onaj u Srlatin dodatku):

    foreach($files as $file){
     $content = file_get_contents($file);
     $content = str_replace(array_flip($replace), $replace, $content);
     file_put_contents($file, $content);
    }

    Samo treba iskopirati fajlove u folder sa skriptom (ako se pojavio neki novi dodati ga u niz) i kad skripta završi snimiti .mo fajlove od tako izmenjenih .po fajlova. To je par minuta, pa mi ne bi bilo teško da radim sa svakom verzijom. Sa temom opet nema problema, jer koristim svoju temu.

    Уредник Milan Dinić

    (@dimadin)

    Што се тиче проблема са почетка теме, ту не постоји никаква грешка у српској локализацији већ у самом Вордпресу, и ми не би требало да правимо никакве импровизације да би радило. Ја ћу ово пријавити пријавити да би се у наредним издањима отклонило (иначе, на прву лопту, не видим зашто овде прави проблем).

    Da li negde postoji spisak fajlova koji su izmenjeni u našoj lokalizovanoj distribuciji WordPress-a, u odnosu na englesku verziju (pored „languges“ fajlova)?

    Датотеке где не ради геттекст (тј. чије ниске нису у ПО датотеци) и које се морају „ручно“ превести су овде. Само не видим зашто ти ово треба. Ако желиш да убрзаш пресловљавање тако што ћеш га радити у локалу, једноставно пресловиш sr_RS.po датотеку из фасцикле wp-content/languages и затим из ње у неком програму направиш sr_RS.mo датотеку.

    Али онда ти пресловљавање неће радити за преводе додатака и тема, јер оне садрже одвојене преводе.

    Thread Starter jmladen

    (@jmladen)

    Milane, hvala na odgovoru. Takođe bi hteo da zahvalim i Avramu na rešenju.

    Slažem se da nije greška u srpskoj lokalizaciji. Što se tiče samog problema, neki moj zaključak je sledeći. Problematični string M j, Y @ G:i (u engleskoj verziji) služi kao argument nekoj funkciji za formatiranje datuma, recimo poput php funkcije date(). Većina latiničnih slova u tom stringu ima određeno značenje za funkciju, tako da ih funkcija „obradi“. To bi objasnilo zašto su tvorci WordPress-a improvizovali koristeći znak @, umesto da piše slovima „at“ (probao sam da zamenim @ sa „at“, i isto dolazi do problema). U našoj originalnoj lokalizaciji na tom mestu je slovo „у“, koje za funkciju nema nikakvo značenje. Kada je uključeno preslovljavanje, onda to slovo biva zamenjeno slovom „u“, koje za funkciju ima određeno značenje. Pretpostavljam da je to razlog, obzirom da „eskejpovanje“ funkcioniše kao i kod pomenute php funkcije date(). Dok ovo ne bude rešeno na neki sveobuhvatan način, rešenje koje je Avram predložio dobro funkcioniše u praksi.

    Što se tiče preslovljavanja u lokalu. Tema nije problem (ja sam je pisao), dodaci isto, jer ih većina i nema naš prevod pa sam i to napisao. Prvobitna ideja bila je da izvršim neke izmene u našem prevodu (isto pomoću skripte), pa kad već to radim, da uradim i preslovljavanje. Naime, u pitanju je sajt koji radim sa par prijatelja (oni slabije poznaju tehnički deo) i kada je sajt postavljen na probni server svi su imali ista pitanja (npr šta je „Natpis za kretanje“, „Navigation label“ u originalu, što bih ja izmenio u „Natpis u izborniku“). U međuvremenu sam odustao od izmene prevoda (ipak je lakše da im objasnim jer nema puno takvih mesta), a ideja o preslovljavanju u lokalu je i dalje tu (mada se verovatno ne dobija mnogo na performansama). Svestan sam da nikada svi neće biti zadovoljni zvaničnim prevodom, pa ne bih išao u tom pravcu (verovatno vam je takvih rasprava preko glave), osim ako postoji zvanična tema gde je moguće izneti predloge (nisam siguran da li je to tema „Predlozi bolje terminologije“ u delu „Lokalizacija“).

    Уредник Milan Dinić

    (@dimadin)

    Одлично си закључио ово што се тиче проблема са датумом, није ми то пало на памет. То даље значи да ћу ипак ја морати ручно да изменим, мада не знам да ли се ово дешава у другим језицима који изворно користе латиницу јер можда и они имају исто замену за @.

    Што се тиче превода за Navigation label, Натпис у изборнику изгледа као јасније решење. Међутим, током свог, сада већ вишегодишњег, рада са локализацијама, дошао сам до закључка да се треба држати исте терминологије у скоро свим случајевима, иако понекад би друго решење било боље? Зашто? Дешава се да се у наредном издању изврше измене и оно што је било логично раније, сада није.

    Наравно да никада сви неће бити задовољни било којим преводом, посебно преводом софтвера, међутим ја сам за добар део проблематичних израза потражио постојећа решења и гледао да превод одговара ономе што израз у изворном облику заиста и значи. Превод није обична транскрипција страних израза.

    Наравно да предлоге можеш навести, „Локализација“ за то и служи.

    Иначе, преведене изразе можеш изменити и путем филтера на исти начин на који се користе у додатку srlatin. Само и ту остаје проблем шта када изађе ново идање а изворне ниске се промене.

    Thread Starter jmladen

    (@jmladen)

    Vezano za originalni problem, sada sam pogledao nemčki prevod. Oni ignorišu bilo kakvu oznaku na tom mestu. Znanje nemačkog mi je malo izbledelo, ali prilično sam siguran da bi tu trebalo da bude „um“ (što bi odgovaralo engleskom „at“, odnosno našem „u“). Kod njih je string M j, Y @ G:i preveden sa d.m.Y H:i.

    Lokalizaciju definitivno ostavljam vama koji imate mnogo više iskustva na tom polju. Moj zaključak je da je prvobitno nezadovljstvo lokalizacijom, u dobroj meri posledica nedostatka volje za privikavanjem. Ja prvi put koristim softver koji je lokalizovan na naš jezik. U početku mi je mnogo više stvari delovalo neadekvatno prevedeno, za par dana se to svelo na pojedinačne slučajeve. To sigurno nije razlog da radim izmene prevoda, već je pravi način da se takvi slučajevi iznesu kao predlog.

Посматрање 9 одговора - 1 до 9 (од укупно 9)
  • Тема „Srlatin: ćirilično "u" preslovljava u 000000„ је закључана за нове одговоре.