Razgovor sa korisnikom:Biblbroks

Iz Wikipedije, slobodne enciklopedije
Idi na navigaciju Idi na pretragu

Ako je prebacivanje na latinicu problem, vrati na ćirilicu, samo ostavi "kategorija:" i šablone na latinici. --OC Ripper 10:22, 9 jun-липањ 2011 (CEST)

Ovisi o pregledniku (browseru). Za Firefox ima add-on pod nazivom Preslovar. On je najbolji od svih. --OC Ripper 10:56, 9 jun-липањ 2011 (CEST)
,a ako ne koristiš firefox tada imaš ovu internet stranicu--Rjecina2 07:55, 11 jun-липањ 2011 (CEST)

Nacionalizacija istorije[uredi izvor]

Da li bi bio ljubazan da mi odgovoriš na koji način si došao do teksta ovog članka? Ne moraš da mi odgovoriš ukoliko ne želiš, ali me baš interesuje kako si od preko 40.000 članaka naleteo baš na taj. Da li je to bilo zato što ti ga je neki prijatelj preporučio, video si link ka njemu na nekom sajtu (kom) ili na neki drugi način (koji)? Čisto statistike radi. Izvini ukoliko sam te ovim svojim pitanjem omeo u uređivanju vikipedije. --Antidiskriminator 17:24, 6 srpanj-јул 2011 (CEST)

Hvala na odgovoru i izvini na smetnji.--Antidiskriminator 18:36, 6 srpanj-јул 2011 (CEST)
Ne smeta mi što si pratio moje uređivanje već mi je malo neprijatno što si to uradio sada kada si blokiran na sr.wiki. --Antidiskriminator 22:37, 6 srpanj-јул 2011 (CEST)
Uh u pravu si. Pogrešio sam. Izvini. Bio sam jedno vreme na wiki odmoru i nisam primetio ovu poruku ranije pa mi se učinilo da su se tvoje izmene u članku koji sam napisao podudarile sa tvojom blokadom. Izvini molim te.
Na sh wiki skoro da nisam aktivan tako da nema bog zna šta da se vidi. Aktivniji sam na en wiki gde nažalost ne mogu da doprinesem onoliko koliko bih želeo zbog nedovoljno dobrog poznavanja engleskog jezika. Za sada. --Antidiskriminator 23:58, 6 srpanj-јул 2011 (CEST)
Hvala na savjetu. :) Onemogućila sam sve dodatke u Firefoxu pa se odlogirala nekoliko puta svaki put omogućujući po par dodataka, i čini mi se da onaj koji se zove Karma Blocker onemogućava HotCat (ne znam zašto, ali znam da je KB sigurnosni dodatak). Sad mi sve radi kako treba.--Vatrena ptica 18:19, 2 avgust-коловоз 2011 (CEST)

Predsednik Kosova[uredi izvor]

Moram priznati da tvoj POV u ovom tekstu (ili slični POVovi na drugim wiki) nema nikakvog smisla pošto je reč o dva različita pitanje.

  • Prvo pitanje glasi:Da li postoji pozicija predsednika Kosova ? Odgovor je DA.
  • Drugo pitanje glasi: Da li je Kosovo država ?

S svim ovim želim reći da nitko ne osporava funkciju predsednika Abhazije, Pridnjestrovlja i sličnih polupriznatih ili nepriznatih državica (na drugim wiki),a osporava se samo ona predsednika Kosova što nema smisla ?!--Rjecina2 12:11, 8 rujan-септембар 2011 (CEST)

Maleni ispravak očitog nesporazuma
Kada sam pričao o predsednicima Abhazije, Pridnjestrovlja i sličnih polupriznatih ili nepriznatih državica mislio sam na baš sve wiki projekte, a ne na naše južnoslovenske wiki--Rjecina2 19:27, 11 rujan-септембар 2011 (CEST)
Praktički sve te takozvane državice imaju više valuta (minimalno vlastitu i države koja ju podržava) + aktivnu stranu telefonsku mrežu to jest internacionalni broj od države koja ju priznaje.
Jedina specifičnost za Kosovo su snage UNa i veliki broj evropskih država koje Kosovo priznaju.
Po pitanju taga POV za dužnost predsednika Kosova (o čemu smo ovde pričali) moje lično mišljenje je da on na žalost postoji svagde (na svim wiki) samo zbog korisnika iz Srbije, pošto na primer Gruzijci ne osporavaju postojanje položaja predsednika Abhazije, Kiprani onu predsednika Severnog Kipra itd.--Rjecina2 21:17, 11 rujan-септембар 2011 (CEST)
Onda bi bilo poželjno to nekako sredit da se makne tag POV ?--Rjecina2 21:37, 11 rujan-септембар 2011 (CEST)
Ha-ha, Boga ti dičijeg... baksuze jedan, zar me ne prepoznaješ!? Nemoj da me urekneš! Kako vidim, još jedared si se našao na ivici toga da budeš blokiran. Samo napred, daću ti spomenicu ako ih izbaciš iz takta. :-) Srećom pa nisi zverka, dobićeš najviše nedelju dana. Inače, tipovi poput tebe i Antidiskriminatora su mi omiljeni, ali šteta što nismo toliko bliski da jedni drugima ne uzimamo za zlo tu i tamo neku u afektu izgovorenu reč. Lijep ostatak dana želim!--Еπαμинонδα★Рαζгоβоρ 15:40, 2 oktobar-листопад 2011 (CEST)

Ha-ha, deder pazi koja dosetka: izvrtanje smisla reči - to se može samo u srpsko(hrvatsko)m/hrvatsko(srpsko)m, jer već ove naše domaće Švabe znaju tačno kako se zove ona stvarčica na vrhu pertle. Deder, reci mi, kako mi to zovemo da im se nasmejem u lice kad se budem vraćao doma?

Biblbroks, najozbiljnije ti kažem, ti si fenomen ovog stol(j)eća! Podsećaš me na nešto čemu je istekao rok trajanja, ali što ne bih bacio i sve da mi se usmrdi u frižideru, na nešto poput onih starih epizoda Star Warsa sa Čubakom i Dart Vejderom. Iako sam predstavnik one nesrećne neizdefinisane/neizdeklarisane/neopredeljene generacije koja je rođena baš u trenu kad je od SFR Jugoslavije preostalo samo SR Jugoslavija, gajim jake simpatije prema svemu što ima veze sa pređašnjom državom i ozbiljno mislim da prilikom ovog popisa stanovništva za maternji uzmem da mi je srpskohrvatski odnosno hrvatskosrpski. Stoga možeš komotno da se oslobodiš one predrasude prema meni, jer na kraj pameti da mi je da te prozivam idiotom kao pojedini. Dobro mi stoj!--Еπαμинонδα★Рαζгоβоρ 16:09, 2 oktobar-листопад 2011 (CEST)

Pošto sam na granici da nešto ovde učinim:
Trebaš li pomoć po pitanju ovog korisnika ?--Rjecina2 17:42, 2 oktobar-листопад 2011 (CEST)

Anarhizam i umetnost vs. Discharge[uredi izvor]

Discharge je najstariji članak na sh.wiki, a ne Anarhizam i umetnost, koji je od 11. srpnja 2005. do 10. siječnja 2010. bio preusmjeravanje (preusmjerenje). Pozdrav, --Vatrena ptica 23:22, 3 oktobar-листопад 2011 (CEST)

Pljačka[uredi izvor]

Pobogu gde si video rat bez pljačke civila koje se "oslobađa". Jednom davno sam ti video realistički "ratni vic" koji ide u stilu:

  • oslobodioc: Zašto ti ne slaviš s nama ?
  • seljak: Zašto bi slavio ?
  • oslobodioc: Pa mi smo te oslobodili !!
  • seljak: Ovo je treći put da me neka vojska oslobađa,a jedino od čega sam oslobođen su moje kokoši
ps. mogu komentirati i nešto slično iz vlastitog iskustva !?--Rjecina2 16:00, 25 oktobar-листопад 2011 (CEST)
Pretpostavljam da čovek ne treba biti genije da pogodi što se dogodilo s imovinom ljudi u našim ratovima na područjima koja su bila jednom, dva ili više puta "oslobađana" (ovde govorim samo o imovini, a ne o direktnim ljudskim patnjama).
Prva "oslobodilačka vojska" bi došla i oslobodila ljude ili "prazne kuće" od njihove imovine.
Kada bi potom došla druga "oslobodilačka vojska" ona bi oslobodila ono što je prva ostavila.
Konkretan primer tih mojih reči bi bio da je prva vojska na primer oslobodila televizije i slično, a druga bi ako nema ničeg drugog oslobodila barem vrata, prozore itd.....
Tako je bilo pre 5.000 godina, tako je bilo pre 15 godina, tako je bilo jučer u Libiji, a tako će biti i za 5.000 godina pošto je u ljudskoj prirodi da kada ima moć (u ovom slučaju oružje) onda će ju čovek iskoristiti za vlastito bogaćenje, uživanje.
Moderne zapadne humanističke gluposti imaju jednake šanse za uspeh u zaustavljanju toga kao i neoliberalizam da stvori uspešni kapitalistički, demokratski sistem. Tehnički te humanističke gluposti sprečavaju uopće zaustavljanje te "dobre stare pljačke" jer onemogućavaju rad prekih vojnih sudova, tehničkih legalnih streljanja kriminalaca u uniformama, a to je historijsko dokazano jedini praktični način slanja poruke vojnicima da ne smiju pljačkati, silovati i ubijati civile--Rjecina2 12:07, 26 oktobar-листопад 2011 (CEST)
Rekao bih da sam realist, a ne cinik pošto znam ljudsku prirodu....
Video si da nisam revertirao tvoju promenu.
Lepo je vidjeti da ljudi čitaju što pišem :)--Rjecina2 14:23, 26 oktobar-листопад 2011 (CEST)

Discharge vs. Anarhizam i umetnost (ponovno)[uredi izvor]

Na suradničkoj stranici Rebelmousea nigdje na njegovom vlastitom popisu članaka koje je napisao nigdje ne stoji Anarhizam i umetnost, tj. Anarhistička umetnost.

  1. Jesi li pogledao povijest izmjena stranice Anarhistička umetnost?
  2. Znaš li što je preusmjeravanje (#REDIRECT)?
  3. Čudo da nisi Anarhizam i kulturu proglasio za najstariji „članak”.

Pozdrav, --Vatrena ptica 22:56, 29. октобра-listopada 2011. (CEST)

Srbija[uredi izvor]

Sad se čini uredu. Hvala :) --Biljezim se sa štovanjem,Poe 22:10, 8 studeni-новембар 2011 (CET)

Primorska i Panonska[uredi izvor]

Kada je pojam uveden je potpuno nevažno iako je on neupitno historijski revizionizam kao i na primer pojam Vizantija ili delovi pojmova iz srpske historije.

Činjenica je da su knezovi ove države tokom vremena koristili drugačije titule počevši od kneza Gačana preko kneza Dalmacije pa na kraju kneza Hrvata (od Trpimira). Historijski gledano Primorska Hrvatska je u stvarnosti Hrvatska dok je Panonska Hrvatska izmišljena historijska tvorevina koja je kada bi kratkotrajno nastala (i ubrzo potom bila uništena) nosila ime Donja Panonija--Rjecina2 19:54, 22 studeni-новембар 2011 (CET)

Trpimir i svi nakon njega su bili kneževi Hrvata pa bi onda po modernoj definiciji ta država bila Hrvatska kao što je država kojom vladaju kraljevi Srba Srbija ! Pretpostavljam da se slažeš s takvom logikom ?--Rjecina2 20:02, 22 studeni-новембар 2011 (CET)

Pravna definicija[uredi izvor]

Koja je pravna definicija osobe koja špijunira ili vrši neke druge slične radnje protiv vlastite države za neku drugu državu ? Tehnički ako ćemo tjerati mak na konac pa nećemo uzimati u obzir njihovo državljanstvo pošto nije navedeno u izvoru oni su neupitno plaćenici ?--Rjecina2 21:57, 22 studeni-новембар 2011 (CET)

Nakon pregledavanja drugih wiki ispadne da je tvoja promena ispravna.....--Rjecina2 22:21, 22 studeni-новембар 2011 (CET)
update novosti koje tamo nisam napisao (brodska diplomatija):
SAD je poslao 2 nosača aviona s pratećim brodovima pred obale Irana 12.11.
Rusija je poslala brodove za elektronično ratovanje u Siriju radi "zaštite" Sirije 17.11.. Pretpostavlja se da brodovi dolaze kako bi zaustavili brodove s oružjem za pobunjenike koje šalju "nepoznate države ili organizacije"
Kanada je donesla odluku da njen krstarica korištena u napadu na Libiju ostane u Mediteranu zbog "kontrole brodova osumnjičenih za internacionalni terorizam" i "moguće intervencije u Siriji". Prvo službeno priznanje priprema za invaziju Sirije !? 21.11.
Ministar vanjskih poslova Velike Britanije s sastao s članovima Sirijskog nacionalno saveta koji je nakon sastanka pozvao na "internacionalnu zaštitu Sirijskih civila" 21.11.
Jordanski kralj se također 21.11. sastao s Mahmoud Abbas kako bi ga pitao za njegove mišljenje na događaje u Siriji.--Rjecina2 23:15, 23 studeni-новембар 2011 (CET)
Volio bih da budem iznenađen, ali sirijska vlada ima dugoročnu istu onu šansu kakvu je imala libijska pošto je tamošnja pobuna isto tako "spontana".
U političkom pogledu ja nisam protiv amerikanaca (iako tako izgleda) nego imam jednostavno razmišljanje da niti jedna država nema pravo vršiti agresiju na drugu državu. Jedini potencijalni izuzetak tog pravila bio bi pokušaj genocida neke nacionalne skupine--Rjecina2 00:52, 24 studeni-новембар 2011 (CET)
,a mi ti možemo samo gledati.
Ne znam da li si čitao jedan istiniti vic koji sam davno napisao na wiki i moj pogled na našu sadašnjost.
Krajem sedamdesetih godina američki novinari su bili maltretirali sovjetskog ambasadora s tamošnjim "kršenjima ljudskih prava". Osnovna optužba koju su bacali je bila da u SSSR svi moraju isto razmišljati pa je jednog dana ambasador pukao i izjavio:
"To nije istina. Čovjek može razmišljati kako želi. Ako razmišlja protiv službenog mišljenja biti će u zatvoru, ali nitko mu neće oduzeti pravo da misli što želi" (to je bilo nešto u tom stilu)
Moje skromno mišljenje glasi da danas u "našim" demokratijama niti u zatvoru ne možeš misliti što želiš zbog stalnog bombardiranja propagandom "slobodnih medija".--Rjecina2 13:55, 26 studeni-новембар 2011 (CET)
Istina, ali barem po meni u komunizmu se nisu pretvarali (što je prednost). Oni bi rekli "To je istina" i kraj priče. Ovdje tobože imamo slobodne medije, pravo na slobodno mišljenje, pravo na ovo i ono, ali u stvarnosti smo po pitanju medija ostali o komunizmu. Pretpostavljam da se s tim slažeš ? (ja sam pesimist)
Govoreći iz Hrvatske najbolji primjer tih naših demokratskih sloboda je govor našeg premijera nakon ulaska u NATO kada je rekao:"Da smo pitali ljude na referendumu kao što su neki tražili mi ne bi ovdje bili"--Rjecina2 15:10, 26 studeni-новембар 2011 (CET)

Raspad SFRJ[uredi izvor]

Rat u Hrvatskoj ili ako hoćeš preciznije rat Hrvatske i SFRJ završava 2.1.1992. tako da ratni budžet što donosi Jugoslavija oko 15 dana ranije nema nikakvog smisla (po pitanju Hrvatske)--Rjecina2 14:01, 26 studeni-новембар 2011 (CET)

Možeš li mi objasniti priču o Jovanu Vladimiru. Koliko god se trudio na wikipedijama i raznim sajtovima ja nikako ne mogu naći neki podatak da je on stvarno ikada vladao ?--Rjecina2 15:59, 26 studeni-новембар 2011 (CET)

Ratovi u bivšoj Jugoslaviji[uredi izvor]

Kako bi se izbegao edit war, najbolje da pitam šta te smeta u navođenju žrtava? Očito je da su postojale dve strane: srpsko-crnogorska i ostalih država (Slo, Hrv, BiH, Kos). Bilo je iznimaka (Franko Simatović je Hrvat, no opet je na MKSJ-u optužen kao deo srbijanske strane; Jovan Divjak je Srbin, no borio se za BiH i protiv RS), no one samo potvrđuju pravilo. Kad su u konfliktu strane A i B - ako deo ljudi sa strane B prešao na stranu A, ona je opet strana A. JNA je napala Sloveniju, no izuzev Srba i Crnogoraca, rezervisti su masovno dezertovali. Ista stvar sa Hrvatskom, Bošnjaci nisu hteli sudelovati a Makedonci su samo delomično sudelovali (onaj Makedonac je čak smenjen tekom opsade Vukovara i zamenio ga je - Života Panić). A o ratu u BiH ni ne treba trošiti previše reči. Pogledaj izveštaj UN-a: Military operations in BiH and Croatia by the JNA, BSA, and SKA have essentially been a function of the political- military goal of securing territories that link Serbia proper with Serb-inhabited areas in BiH (along the Drina and Sava rivers) and Serb-inhabited areas in Croatia. The Serb goal was to achieve a territorial and defensible link between areas constituting a «Greater Serbia». JNA, RSK i RS su slušali Beograd, a Beograd je tad bio pod kontrolom Miloševića.--Tolerantnost 14:11, 28 studeni-новембар 2011 (CET)

Odlazak[uredi izvor]

Pretpostavljam da ćeš se složiti kako pre ili kasnije mora doći vreme kada čovek mora ići dalje na svom putu. Mene je strah kada pogledam koliko vremena sam izgubio na wikipedija projektu !?

Hvala na lepim rečima, ali moramo se složiti da je sh wiki OC Ripper. Ja ne znam od kuda njemu toliko snage da ovoliko na njoj radi. Moglo bi se reći da sam mu ja ovde samo asistirao--Rjecina2 09:59, 13 siječanj-јануар 2012 (CET)

Pokušaj se po principu strpljen-spašen dogovoriti oko teksta.--Rjecina2 10:15, 13 siječanj-јануар 2012 (CET)
Kada se nađeš u wiki problemu uvek moraš misliti na minimalno 2 stvari.
  • 1) da postoje pakosni ljudi koji nešto rade samo zbog pakosti
  • 2) malena pričica za bolje shvatiti:
Svemir razmišlja na glas:Ja sam najveći, sve što postoji i što će postojat nalazi se unutar mene. Ništa ne može biti veće od mene
Može, može - javi se ljudska glupost
Ja ponekad panično reagiram, pa na tren zaboravim ta dva osnovna pravila tako da definitivno nisam anđelčić :) --Rjecina2 11:07, 13 siječanj-јануар 2012 (CET)


Monopoly[uredi izvor]

Biblbroks, da li si i ti nekoć igrao Monopoly, baš bih volio znati :)

Posebno me zanima da li si igrao ikad onu slovenačku verziju (žuta podloga). :-)

Bila je i igra koju su nazvali Raspad Jugoslavije (valjda od istog proizvođača))

Srdačan pozdrav -- 199.19.105.156

Slovenski jezik[uredi izvor]

Pogrješno si zaključio da sam ja zaključala članak; ustvari sam onemogućila premještanje koje nije u duhu sh.wiki zajednice, vraćanjem naslova na onaj izvorni koji je odredio OC Ripper. Nisi naveo nikakve argumente i čak napadaš neregistrirane korisnike. Pozdrav. --Vatrena ptica 21:54, 15 siječanj-јануар 2012 (CET)

Washington[uredi izvor]

Nemoj se brinuti oko kompjuterskog stručnjaka iz Washingtona pošto niti jedan argument koji napišeš on nikada neće prihvatiti,a blokirati ga ne može niti cela wiki organizacija.

Pošto se smatram razumnom osobom ne razumem pripadnike naših naroda koji žive u SADu, Nemačkoj itd...,a žele da se mi ovde ponovno počnemo klati.

Broj takve "gospode" koja koriste internet za slanje poruka o međunacionalnoj mržnji je "zanimljiv"--Rjecina2 19:44, 17 siječanj-јануар 2012 (CET)

Talijanska wiki nije bila zamračena, nego je samo imala obavjest preko celog ekrana na koju se moralo kliknut (na pravom mestu).
Imam ti "super" vest iz Hrvatske.
Vijeće za telekomunikacije je doneslo odluku da Hrvati ne razumeju neke tamo istočne jezike, pa traži da od sada srpski filmovi budu titlovani :)--Rjecina2 09:07, 21 siječanj-јануар 2012 (CET)
Pa link nije problem pošto su kulturno govoreći postali predmet zezancije [1] !?--Rjecina2 13:24, 22 siječanj-јануар 2012 (CET)
Pošto si pratio moje pisanje u tekstu znanstvena fantastika koji će na kraju postat naučna fantastika, kaži svoje mišljenje o delu teksta istorija naučne fantastike --Rjecina2 14:13, 22 siječanj-јануар 2012 (CET)

Pisanje imena[uredi izvor]

Čisto za informaciju ja sam da se imena pišu u skladu s hrvatskosrpskim ili srpskohrvatskim jezikom kakav je bio do 1991. Od ovog pisanja imena češkim, poljskim ili nekim sasma sedmim slovima mi se diže kosa na glavi pošto je to barem po meni novi izum koji nema nikakve veze s sh jezik.

Na žalost koliko sam shvatio to pridržavanje stvarnog sh jezika ovde ima šanse da preživi kao i pahulja snega u paklu....--Rjecina2 19:43, 10 februar-вељача 2012 (CET)

Hvala, hvala....
Čestitam na tekstu meseca februara (pogledaj korisničku stranicu), a ja sam mislio ići i pred streljački vod 100 % siguran da sam ga ja napisao ?????--Rjecina2 (razgovor) 17:17, 1 ožujak-март 2012 (CET)

Premještanje[uredi izvor]

Zašto ja nemam tu opciju? Meni između zvjezdice i polja za pretragu postoji samo opcija "statistika"! Koh-i-Noor (razgovor) 00:55, 4 ožujak-март 2012 (CET)

A, ako je tako, onda ćemo čekati! Koh-i-Noor (razgovor) 01:03, 4 ožujak-март 2012 (CET)


:)[uredi izvor]

Hvala lijepa :) --Biljezim se sa štovanjem,Poe 22:41, 18 ožujak-март 2012 (CET)

Da ti pravo kažem, slažem se s apsolutno svime što si napisao. Članak sam stavio na 7 dana čisto pro forma, otključao bi ga ili sutra ili nakon par dana, ali sam ga zaključao preventivno da ne bi bio revert rat. Nemam ja ništa protiv ničijeg mišljenja, ali izmjene su previše puta revertane, sukobi su previše puta izbili i ovdje sam reagirao i kao korisnik i kao admin. Članak ću otključati jer mislim da sam sada prenio poruku da se ove stvari rješavaju. Ukoliko opet bude sukoba i konflikata, znamo kako riješiti sad :) Kritika je sasvim na mjestu :D --Biljezim se sa štovanjem,Poe 21:46, 10 svibanj-мај 2012 (CEST)
Pa to da će se članak zaključati na kraći rok (dan-dva) i uputiti suradnike na konstrukvitni dijalog na stranici za razgovor, da se izbjegne revert rat :D Pretpostavio sam da će biti nejasno XD --Biljezim se sa štovanjem,Poe 21:56, 10 svibanj-мај 2012 (CEST)
Ne znam jesi li pratio zadnju (oko Dinama) raspravu? Anto se postepeno javi svako malo i onda napravi neke izmjene na koje, prvo, reagira Rječina, pa onda opet Anto, pa se tako unedogled korigiraju dok Ripper ne presudi je li relevantno ili ne. Neovisno postoje li strasti ili ne, to ne da nije konstruktivno nego je kontraproduktivno. Što ako netko radi referat o Franji po našoj Wiki? U 13 sati nađe jedno, u 13:10 drugo i do 13:30 ima 6 različitih verzija? Neće biti nikakvih nerviranja i problema, samo ću suradnike uputiiti da se dogovore na stranici za razgovor i onda dogovorneu verziju postave u članak (što sam, uostalom, učinio i sad). Ako se dese problemi i revert rat, onda ide zaključavanje, sve do tog trenutka je korektno što se mene tiče --Biljezim se sa štovanjem,Poe 22:03, 10 svibanj-мај 2012 (CEST)
Vjeruj mi, u 8. razredu sam imao kolegicu u razredu koja je DOSLOVNO od riječi do riječi isprintala i iščitala moj članak o predsjedniku Wilsonu i ova ju je odbila. Zašto? Ne jer je kopija Wiki, nego jer ga je čitala, a ne naučila. Ma nije problem prosuđivati, ali ta prosudba može ići i na stranici za razgovor gdje neće biti revert rata, a ne na samom članku da se on stalno siluje i mijenja. Sadržaj enciklopedije trebao bi biti stalan (kod Wiki je to više-manje), pa tako i Francek treba da bude stalan, a ne da se stalno mijenja jer je kontroverzna tema. Hr.wiki je takve članke zaključavala na duži period, ja sam ovim želio izbjeći upravo to, a to će, ukoliko se stalno silovanje sadržaja članka nastavi, biti jedina opcija. Članci moraju biti otvoreni onima koji unose konstruktivne izmjene, a ne onima koji će se sporiti oko jedne ili dvije riječi koje su već napisane ili koje oni planiraju unijeti --Biljezim se sa štovanjem,Poe 22:14, 10 svibanj-мај 2012 (CEST)
Koliko god se ja s tim slagao, to je realnost i na to treba paziti. Ja sam odavno rekao (čak su me i moji protivnici na hr.wiki citirali s tim) da sam ovdje došao učiti i drugima omogućiti učenje i usvajanje znanja. Rekao sam ti da sam ovo zaključao više preventivno nego iz stvarne namjere jer se protivi mojoj metodi rada omogućavanje rada onima koji nemaju konstruktivnih namjera. Ne tvrdim da je to Anto, dapače, čovjek se trudi, to je očito, ali ukoliko njegov rad rezultira konfliktom, onda se to mora spriječiti. Zasad sam ih lijepo upitio na to da bilo kakve razmirice od sada ili u buduće rješavaju na stranici za razgovor i vjerujem kako problema neće biti. Ali ne želim dopustiti uređivački rat. Doduše, postoji i ona plebiscitarna opcija pa pitajmo njih dvojicu što misle: Hoće li se oni "klati" u članku ili smatraju da je moje rješenje bolje. Ukoliko pak njima toliko ne smeta (uostalom, Rječina je admin), onda se i ja mogu povući jer ovaj članak (mada na internetu takvošto ne postoji), nije "moj" i ne spada u krug mojih interesa --Biljezim se sa štovanjem,Poe 22:32, 10 svibanj-мај 2012 (CEST)
Možda samo pušem na hladno, ali vrijeme će pokazati. Svakako, učinio sam što sam učinio, dao sam upute koje sam dao, vrijeme će pokazati je li bilo opravdano ili ne --Biljezim se sa štovanjem,Poe 23:41, 10 svibanj-мај 2012 (CEST)

Ćirilica[uredi izvor]

Članci su sljedeći: paleozoik, kambrij, ordovicij, silur, devon, karbon, perm; mislim da su i sljedeći (nisam provjeravala) - fanerozoik, prekambrij, had (eon), arhaik odnosno arhej, proterozoik, sve sa ovog šablona: http://sh.wikipedia.org/wiki/Šablon:Proterozoic_Footer , zatim mezozoik, trijas, jura (period), kreda (period), sve sa ovog šablona: http://sh.wikipedia.org/wiki/Šablon:Triassic_Footer i ovog: http://sh.wikipedia.org/wiki/Šablon:Jurassic_Footer i ovog: http://sh.wikipedia.org/wiki/Šablon:Cretaceous_Footer ; zatim kenozoik, paleogen, neogen, sve sa ova dva šablona: http://sh.wikipedia.org/wiki/Šablon:Paleogene_Footer i http://sh.wikipedia.org/wiki/Šablon:Neogene_Footer . To bi bilo to ja mislim. --Duma (razgovor) 22:57, 29 svibanj-мај 2012 (CEST)

I hvala za pomoć :) --Duma (razgovor) 23:01, 29 svibanj-мај 2012 (CEST)

OK, hvala za pomoć, koristit ću tu stranicu :) --Duma (razgovor) 23:22, 30 svibanj-мај 2012 (CEST)

Pa, mnoga sela nemaju Kategorija:Nepoznate geografske koordinate (BiH) --BokicaK (razgovor) 16:15, 20 srpanj-јул 2012 (CEST)

Pa najbolje botom. Moj bot je običan pywikipediabot- ja samo kažem šta hoću da napiše. A nemam odakle da vadim koordinate. --BokicaK (razgovor) 18:45, 20 srpanj-јул 2012 (CEST)

Za masovan unos treba ti standardiyovan obrazac (čitaj tabela) --BokicaK (razgovor) 18:49, 20 srpanj-јул 2012 (CEST)

Ne verujem da je tezi od C++. Inace postoje botovi koji rade taj posao. Na engleskoj vikipediji je to AnomieBot. --BokicaK (razgovor) 01:58, 21 srpanj-јул 2012 (CEST)

Inace botovi mogu bitipisani u bilo kom jeziku. Znam neke pisane u C++. --BokicaK (razgovor) 08:25, 22 srpanj-јул 2012 (CEST)


Nemoj sa srpske, nisu azururuani, podaci su od popisa iz 1999. --BokicaK (razgovor) 07:01, 23 srpanj-јул 2012 (CEST)

Evropski saobraćaj[uredi izvor]

Jel mogu da završim evropski saobraćaj do kraja pa da počnem praviti svoje članke? Pozdrav! --Javi se (razgovor) 18:27, 30 srpanj-јул 2012 (CEST)

Nije meni problem. No sugestija o Saobraćaju u Srbiji umesto Saobraćaju Srbije - šta ćeš sa njom? Ona je prema mom mišljenju sasma na mestu. --Biblbroks (razgovor) 18:39, 30 srpanj-јул 2012 (CEST)

Vidi ovako nemam sad vremena imam drugih problema nevezanih za Wikipediju koji su mi iskrsli pa ću srediti za nekoliko nedelja ako ne tada onda počinjem prvog septembra da sređujem. Pozdrav! --Javi se (razgovor) 23:45, 31 srpanj-јул 2012 (CEST)

Okupacija Albanije[uredi izvor]

Oni podaci nisu javni i svi iskusni wiki južnoslovenski korisnici ih znaju, ali ajde pobrisao sam. Nisam niti približno očekivao onakvu reakciju ili da sam davao tajne podatke......--Rjecina2 (razgovor) 15:50, 15 avgust-коловоз 2012 (CEST)

To je potpuno u redu prebacit tekst pa ga "neutralizirati", ali samo kopirat tekstove (ili hrpu njih) kao što to radi kolega pa da ih mi ostali moramo neutralizirati ili oni ostanu kod nas kako su prebačeni je neprihvatljivo zar ne ?
Ako Ripper zna kako bolje izvesti ono brisanje stranice neka slobodno proba, pošto ja to nisam znao.....--Rjecina2 (razgovor) 19:21, 16 avgust-коловоз 2012 (CEST)
Ja i mladi filozof smo ovde od početnog naivnijeg doba kada smo verovali da će se na wikipediji moći slobodno pisati i da će ona biti NPOV. Dio te naivnosti je bilo i pisanje od kuda smo.
Imaš email.--Rjecina2 (razgovor) 07:42, 18 avgust-коловоз 2012 (CEST)

Greška[uredi izvor]

Došlo je do greške. Pozdrav! -- Kolega2357 Razgovor 23:35, 8 rujan-септембар 2012 (CEST)

Bibl, nije u pitanju samo kopiranje članaka i niko ne kaže zbog toga, jer sam i ja kopirao sopstvene članke sa sr.viki a i drugih korisnika i prebacivao ovde. Već je u pitanju upravo ta pristojnost, ja napravim članak o Đokoviću na nekoj drugoj Vikipediji i kao po narudžbini se pojavi dotični i prekopira ceo članak tj eventualno doda samo sliku Federera i to je eto njegov rad, uništava ceo moj trud, da li je to u redu? Da se razumemo ja nemam ništa protiv bilo koga pa ni protiv Rodžera Federera, ali neka se onda on potrudi i napravi članak sam, a ne tako da samo prekopira, jednostavno nije u redu da li me razumeš? Kako bi se ti osećao da sam napraviš neku kuću i sad ti ja dođem i kažem pola kuće je moje i uopšte me ne interesuje ko je sagradio (ovo je samo primer naravno), a da sam te lepo pitao ti bi me možda i primio u tu kuću, shvataš šta hoću da kažem? Takođe svako dobro.--Soundwaweserb (razgovor) 23:24, 30 rujan-септембар 2012 (CEST)

Još samo da dodam u vezi dotičnog kolege, ako si primetio on samo kopira članke ne samo ovde i na drugim projektima i to je ceo njegov rad, nijedan nije napisao sam i svojim rečima, nijedan. Ja nisam imao vremena da gledam njegov doprinos jer uređujem i radim neke druge stvari, ali kada sam malo bolje pogledao video sam da je to ustvari jako problematičan korisnik, više puta su ga opominjali ali ne vredi, sa takvima ne želim da imam nikakve veze i izbegavam ih. Pozdrav i svako dobro.--Soundwaweserb (razgovor) 23:38, 30 rujan-септембар 2012 (CEST)

Nije stvar samo u pristojnosti.
Kada sam Kolegu blokirao on se žalio na meti, a presuda je osim potvrde mog bloka glasila (pored ostalog):
you can not simply copy and paste them there without mentioning in the summary from where they come from[2]
Znači mora se pisati od kuda su tekstovi preuzeti :)--Rjecina2 (razgovor) 09:01, 1 oktobar-листопад 2012 (CEST)

Obavijest o slikama[uredi izvor]

Shodno s objavljenim izvještajem na Pijaci i odrađenim poslom, ovom prilikom obaviještavam Vas kako jedan dio vaših postavljenih datoteka ne zadovoljava sve kriterije. Radi se o 25 datoteka koje možete pronaći ovdje. Shodno broju vaših slika i procjeni o uštedi vremena, rok za sređivanje vaših slika je 5 dana, odnosno 18. listopada 2012..

Slike morate srediti sukladno naputcima objašnjenima na Pijaci. Ukoliko niste u mogućnosti srediti slike u doglednom roku ili imate kakvih poteškoća i nejasnoća ili Vam je potrebna pomoć, slobodni ste kontaktirati me za pomoć na mojoj stranici za razgovorom. --Biljezim se sa štovanjem,Poe 19:07, 12 oktobar-листопад 2012 (CEST)


Koordinate[uredi izvor]

Mozeš li da prebaciš koordinate sa jdne vikipedije na drugu? --BokicaK (razgovor) 06:55, 30 oktobar-листопад 2012 (CET)

Da. --BokicaK (razgovor) 02:31, 9 studeni-новембар 2012 (CET)

Uf, ne mogu ti preporuciti. Pitaj Dungodunga. --BokicaK (razgovor) 20:20, 9 studeni-новембар 2012 (CET)

Немам ни то. Питај Дунга. Са француске википедије, нпр. --BokicaK (razgovor) 09:42, 10 studeni-новембар 2012 (CET)

Nisam ja nista programirao od nule. Samo sam menjao postojeci kod.--BokicaK (razgovor) 01:16, 11 studeni-новембар 2012 (CET)

Ako sam ja skontao, programeru nece biti tesko. Ali ti ne moras python koristiti, mozes i C++ --BokicaK (razgovor) 21:52, 11 studeni-новембар 2012 (CET)

Ja sam cakao http://svn.wikimedia.org/viewvc/pywikipedia/trunk/pywikipedia/commons_link.py?revision=9692&view=markup --BokicaK (razgovor) 02:54, 12 studeni-новембар 2012 (CET)

Nisam tajnovit nego ne znam bolan. Prvo ne znam sta je bez konteksta, drugo ti je da doda sablon Commonscat a %s je neka vrednost. Ne moras koristiti python. --BokicaK (razgovor) 03:23, 14 studeni-новембар 2012 (CET)

Prokljuvio. Pa ucio sam programiranje na fakultetu. Ja neznam nijednog C++ bota na drugim ivkipedijama (ne kazem da ne postoje). Mogu ti dati adresu mailing liste gde možeš pitati pywikipedia-l et lists.wikimedia.org --BokicaK (razgovor) 16:14, 15 studeni-новембар 2012 (CET)

Znam, ali ne pitaj me da ti ih preporucim. --BokicaK (razgovor) 05:56, 18 studeni-новембар 2012 (CET)

SR Wiki[uredi izvor]

Ma pusti ti njih šta oni pričaju na SR Wiki, o sebi ne vode računa a znaju o drugima. Pozdrav! -- Kolega2357 Razgovor 18:35, 4 decembar-просинац 2012 (CET)

Shvatam. Ali ne razmumem zašto sam onda blokiran na SR Wiki nisam im ništa uradio. -- Kolega2357 Razgovor 14:28, 5 decembar-просинац 2012 (CET)

Translator za ćirilicu[uredi izvor]

<?php
/**
 * Contains the LanguageConverter class and ConverterRule class
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 * http://www.gnu.org/copyleft/gpl.html
 *
 * @file
 * @ingroup Language
 */

/**
 * Base class for language conversion.
 * @ingroup Language
 *
 * @author Zhengzhu Feng <zhengzhu@gmail.com>
 * @maintainers fdcn <fdcn64@gmail.com>, shinjiman <shinjiman@gmail.com>, PhiLiP <philip.npc@gmail.com>
 */
class LanguageConverter {

	/**
	 * languages supporting variants
	 * @since 1.20
	 * @var array
	 */
	static public $languagesWithVariants = array(
		'gan',
		'iu',
		'kk',
		'ku',
		'shi',
		'sr',
		'tg',
		'uz',
		'zh',
	);

	var $mMainLanguageCode;
	var $mVariants, $mVariantFallbacks, $mVariantNames;
	var $mTablesLoaded = false;
	var $mTables;
	// 'bidirectional' 'unidirectional' 'disable' for each variant
	var $mManualLevel;

	/**
	 * @var String: memcached key name
	 */
	var $mCacheKey;

	var $mLangObj;
	var $mFlags;
	var $mDescCodeSep = ':', $mDescVarSep = ';';
	var $mUcfirst = false;
	var $mConvRuleTitle = false;
	var $mURLVariant;
	var $mUserVariant;
	var $mHeaderVariant;
	var $mMaxDepth = 10;
	var $mVarSeparatorPattern;

	const CACHE_VERSION_KEY = 'VERSION 6';

	/**
	 * Constructor
	 *
	 * @param $langobj Language: the Language Object
	 * @param $maincode String: the main language code of this language
	 * @param $variants Array: the supported variants of this language
	 * @param $variantfallbacks Array: the fallback language of each variant
	 * @param $flags Array: defining the custom strings that maps to the flags
	 * @param $manualLevel Array: limit for supported variants
	 */
	public function __construct( $langobj, $maincode, $variants = array(),
								$variantfallbacks = array(), $flags = array(),
								$manualLevel = array() ) {
		global $wgDisabledVariants;
		$this->mLangObj = $langobj;
		$this->mMainLanguageCode = $maincode;
		$this->mVariants = array_diff( $variants, $wgDisabledVariants );
		$this->mVariantFallbacks = $variantfallbacks;
		$this->mVariantNames = Language::fetchLanguageNames();
		$this->mCacheKey = wfMemcKey( 'conversiontables', $maincode );
		$defaultflags = array(
			// 'S' show converted text
			// '+' add rules for alltext
			// 'E' the gave flags is error
			// these flags above are reserved for program
			'A' => 'A',	  // add rule for convert code (all text convert)
			'T' => 'T',	  // title convert
			'R' => 'R',	  // raw content
			'D' => 'D',	  // convert description (subclass implement)
			'-' => '-',	  // remove convert (not implement)
			'H' => 'H',	  // add rule for convert code
						  // (but no display in placed code)
			'N' => 'N'	  // current variant name
		);
		$this->mFlags = array_merge( $defaultflags, $flags );
		foreach ( $this->mVariants as $v ) {
			if ( array_key_exists( $v, $manualLevel ) ) {
				$this->mManualLevel[$v] = $manualLevel[$v];
			} else {
				$this->mManualLevel[$v] = 'bidirectional';
			}
			$this->mFlags[$v] = $v;
		}
	}

	/**
	 * Get all valid variants.
	 * Call this instead of using $this->mVariants directly.
	 *
	 * @return Array: contains all valid variants
	 */
	public function getVariants() {
		return $this->mVariants;
	}

	/**
	 * In case some variant is not defined in the markup, we need
	 * to have some fallback. For example, in zh, normally people
	 * will define zh-hans and zh-hant, but less so for zh-sg or zh-hk.
	 * when zh-sg is preferred but not defined, we will pick zh-hans
	 * in this case. Right now this is only used by zh.
	 *
	 * @param $variant String: the language code of the variant
	 * @return String|array: The code of the fallback language or the
	 *				 main code if there is no fallback
	 */
	public function getVariantFallbacks( $variant ) {
		if ( isset( $this->mVariantFallbacks[$variant] ) ) {
			return $this->mVariantFallbacks[$variant];
		}
		return $this->mMainLanguageCode;
	}

	/**
	 * Get the title produced by the conversion rule.
	 * @return String: The converted title text
	 */
	public function getConvRuleTitle() {
		return $this->mConvRuleTitle;
	}

	/**
	 * Get preferred language variant.
	 * @return String: the preferred language code
	 */
	public function getPreferredVariant() {
		global $wgDefaultLanguageVariant, $wgUser;

		$req = $this->getURLVariant();

		if ( $wgUser->isLoggedIn() && !$req ) {
			$req = $this->getUserVariant();
		} elseif ( !$req ) {
			$req = $this->getHeaderVariant();
		}

		if ( $wgDefaultLanguageVariant && !$req ) {
			$req = $this->validateVariant( $wgDefaultLanguageVariant );
		}

		// This function, unlike the other get*Variant functions, is
		// not memoized (i.e. there return value is not cached) since
		// new information might appear during processing after this
		// is first called.
		if ( $this->validateVariant( $req ) ) {
			return $req;
		}
		return $this->mMainLanguageCode;
	}

	/**
	 * Get default variant.
	 * This function would not be affected by user's settings or headers
	 * @return String: the default variant code
	 */
	public function getDefaultVariant() {
		global $wgDefaultLanguageVariant;

		$req = $this->getURLVariant();

		if ( $wgDefaultLanguageVariant && !$req ) {
			$req = $this->validateVariant( $wgDefaultLanguageVariant );
		}

		if ( $req ) {
			return $req;
		}
		return $this->mMainLanguageCode;
	}

	/**
	 * Validate the variant
	 * @param $variant String: the variant to validate
	 * @return Mixed: returns the variant if it is valid, null otherwise
	 */
	public function validateVariant( $variant = null ) {
		if ( $variant !== null && in_array( $variant, $this->mVariants ) ) {
			return $variant;
		}
		return null;
	}

	/**
	 * Get the variant specified in the URL
	 *
	 * @return Mixed: variant if one found, false otherwise.
	 */
	public function getURLVariant() {
		global $wgRequest;

		if ( $this->mURLVariant ) {
			return $this->mURLVariant;
		}

		// see if the preference is set in the request
		$ret = $wgRequest->getText( 'variant' );

		if ( !$ret ) {
			$ret = $wgRequest->getVal( 'uselang' );
		}

		return $this->mURLVariant = $this->validateVariant( $ret );
	}

	/**
	 * Determine if the user has a variant set.
	 *
	 * @return Mixed: variant if one found, false otherwise.
	 */
	protected function getUserVariant() {
		global $wgUser;

		// memoizing this function wreaks havoc on parserTest.php
		/*
		if ( $this->mUserVariant ) {
			return $this->mUserVariant;
		}
		*/

		// Get language variant preference from logged in users
		// Don't call this on stub objects because that causes infinite
		// recursion during initialisation
		if ( $wgUser->isLoggedIn() )  {
			$ret = $wgUser->getOption( 'variant' );
		} else {
			// figure out user lang without constructing wgLang to avoid
			// infinite recursion
			$ret = $wgUser->getOption( 'language' );
		}

		return $this->mUserVariant = $this->validateVariant( $ret );
	}

	/**
	 * Determine the language variant from the Accept-Language header.
	 *
	 * @return Mixed: variant if one found, false otherwise.
	 */
	protected function getHeaderVariant() {
		global $wgRequest;

		if ( $this->mHeaderVariant ) {
			return $this->mHeaderVariant;
		}

		// see if some supported language variant is set in the
		// HTTP header.
		$languages = array_keys( $wgRequest->getAcceptLang() );
		if ( empty( $languages ) ) {
			return null;
		}

		$fallbackLanguages = array();
		foreach ( $languages as $language ) {
			$this->mHeaderVariant = $this->validateVariant( $language );
			if ( $this->mHeaderVariant ) {
				break;
			}

			// To see if there are fallbacks of current language.
			// We record these fallback variants, and process
			// them later.
			$fallbacks = $this->getVariantFallbacks( $language );
			if ( is_string( $fallbacks ) && $fallbacks !== $this->mMainLanguageCode ) {
				$fallbackLanguages[] = $fallbacks;
			} elseif ( is_array( $fallbacks ) ) {
				$fallbackLanguages =
					array_merge( $fallbackLanguages, $fallbacks );
			}
		}

		if ( !$this->mHeaderVariant ) {
			// process fallback languages now
			$fallback_languages = array_unique( $fallbackLanguages );
			foreach ( $fallback_languages as $language ) {
				$this->mHeaderVariant = $this->validateVariant( $language );
				if ( $this->mHeaderVariant ) {
					break;
				}
			}
		}

		return $this->mHeaderVariant;
	}

	/**
	 * Dictionary-based conversion.
	 * This function would not parse the conversion rules.
	 * If you want to parse rules, try to use convert() or
	 * convertTo().
	 *
	 * @param $text String the text to be converted
	 * @param $toVariant bool|string the target language code
	 * @return String the converted text
	 */
	public function autoConvert( $text, $toVariant = false ) {
		wfProfileIn( __METHOD__ );

		$this->loadTables();

		if ( !$toVariant ) {
			$toVariant = $this->getPreferredVariant();
			if ( !$toVariant ) {
				wfProfileOut( __METHOD__ );
				return $text;
			}
		}

		if( $this->guessVariant( $text, $toVariant ) ) {
			wfProfileOut( __METHOD__ );
			return $text;
		}

		/* we convert everything except:
		   1. HTML markups (anything between < and >)
		   2. HTML entities
		   3. placeholders created by the parser
		*/
		global $wgParser;
		if ( isset( $wgParser ) && $wgParser->UniqPrefix() != '' ) {
			$marker = '|' . $wgParser->UniqPrefix() . '[\-a-zA-Z0-9]+';
		} else {
			$marker = '';
		}

		// this one is needed when the text is inside an HTML markup
		$htmlfix = '|<[^>]+$|^[^<>]*>';

		// disable convert to variants between <code></code> tags
		$codefix = '<code>.+?<\/code>|';
		// disable convertsion of <script type="text/javascript"> ... </script>
		$scriptfix = '<script.*?>.*?<\/script>|';
		// disable conversion of <pre xxxx> ... 

$prefix = '<pre.*?>.*?<\/pre>|';

$reg = '/' . $codefix . $scriptfix . $prefix . '<[^>]+>|&[a-zA-Z#][a-z0-9]+;' . $marker . $htmlfix . '/s'; $startPos = 0; $sourceBlob = ; $literalBlob = ;

// Guard against delimiter nulls in the input $text = str_replace( "\000", , $text );

$markupMatches = null; $elementMatches = null; while ( $startPos < strlen( $text ) ) { if ( preg_match( $reg, $text, $markupMatches, PREG_OFFSET_CAPTURE, $startPos ) ) { $elementPos = $markupMatches[0][1]; $element = $markupMatches[0][0]; } else { $elementPos = strlen( $text ); $element = ; }

// Queue the part before the markup for translation in a batch $sourceBlob .= substr( $text, $startPos, $elementPos - $startPos ) . "\000";

// Advance to the next position $startPos = $elementPos + strlen( $element );

// Translate any alt or title attributes inside the matched element if ( $element !== && preg_match( '/^(<[^>\s]*)\s([^>]*)(.*)$/', $element, $elementMatches ) ) { $attrs = Sanitizer::decodeTagAttributes( $elementMatches[2] ); $changed = false; foreach ( array( 'title', 'alt' ) as $attrName ) { if ( !isset( $attrs[$attrName] ) ) { continue; } $attr = $attrs[$attrName]; // Don't convert URLs if ( !strpos( $attr, '://' ) ) { $attr = $this->translate( $attr, $toVariant ); }

// Remove HTML tags to avoid disrupting the layout $attr = preg_replace( '/<[^>]+>/', , $attr ); if ( $attr !== $attrs[$attrName] ) { $attrs[$attrName] = $attr; $changed = true; } } if ( $changed ) { $element = $elementMatches[1] . Html::expandAttributes( $attrs ) . $elementMatches[3]; } } $literalBlob .= $element . "\000"; }

// Do the main translation batch $translatedBlob = $this->translate( $sourceBlob, $toVariant );

// Put the output back together $translatedIter = StringUtils::explode( "\000", $translatedBlob ); $literalIter = StringUtils::explode( "\000", $literalBlob ); $output = ; while ( $translatedIter->valid() && $literalIter->valid() ) { $output .= $translatedIter->current(); $output .= $literalIter->current(); $translatedIter->next(); $literalIter->next(); }

wfProfileOut( __METHOD__ ); return $output; }

/** * Translate a string to a variant. * Doesn't parse rules or do any of that other stuff, for that use * convert() or convertTo(). * * @param $text String: text to convert * @param $variant String: variant language code * @return String: translated text */ public function translate( $text, $variant ) { wfProfileIn( __METHOD__ ); // If $text is empty or only includes spaces, do nothing // Otherwise translate it if ( trim( $text ) ) { $this->loadTables(); $text = $this->mTables[$variant]->replace( $text ); } wfProfileOut( __METHOD__ ); return $text; }

/** * Call translate() to convert text to all valid variants. * * @param $text String: the text to be converted * @return Array: variant => converted text */ public function autoConvertToAllVariants( $text ) { wfProfileIn( __METHOD__ ); $this->loadTables();

$ret = array(); foreach ( $this->mVariants as $variant ) { $ret[$variant] = $this->translate( $text, $variant ); }

wfProfileOut( __METHOD__ ); return $ret; }

/** * Convert link text to all valid variants. * In the first, this function only convert text outside the * "-{" "}-" markups. Since the "{" and "}" are not allowed in * titles, the text will get all converted always. * So I removed this feature and deprecated the function. * * @param $text String: the text to be converted * @return Array: variant => converted text * @deprecated since 1.17 Use autoConvertToAllVariants() instead */ public function convertLinkToAllVariants( $text ) { return $this->autoConvertToAllVariants( $text ); }

/** * Apply manual conversion rules. * * @param $convRule ConverterRule Object of ConverterRule */ protected function applyManualConv( $convRule ) { // Use syntax -{T|zh-cn:TitleCN; zh-tw:TitleTw}- to custom // title conversion. // Bug 24072: $mConvRuleTitle was overwritten by other manual // rule(s) not for title, this breaks the title conversion. $newConvRuleTitle = $convRule->getTitle(); if ( $newConvRuleTitle ) { // So I add an empty check for getTitle() $this->mConvRuleTitle = $newConvRuleTitle; }

// merge/remove manual conversion rules to/from global table $convTable = $convRule->getConvTable(); $action = $convRule->getRulesAction(); foreach ( $convTable as $variant => $pair ) { if ( !$this->validateVariant( $variant ) ) { continue; }

if ( $action == 'add' ) { foreach ( $pair as $from => $to ) { // to ensure that $from and $to not be left blank // so $this->translate() could always return a string if ( $from || $to ) { // more efficient than array_merge(), about 2.5 times. $this->mTables[$variant]->setPair( $from, $to ); } } } elseif ( $action == 'remove' ) { $this->mTables[$variant]->removeArray( $pair ); } } }

/** * Auto convert a Title object to a readable string in the * preferred variant. * * @param $title Title a object of Title * @return String: converted title text */ public function convertTitle( $title ) { $variant = $this->getPreferredVariant(); $index = $title->getNamespace(); if ( $index === NS_MAIN ) { $text = ; } else { // first let's check if a message has given us a converted name $nsConvMsg = wfMessage( 'conversion-ns' . $index )->inContentLanguage(); if ( $nsConvMsg->exists() ) { $text = $nsConvMsg->plain(); } else { // the message does not exist, try retrieve it from the current // variant's namespace names. $langObj = $this->mLangObj->factory( $variant ); $text = $langObj->getFormattedNsText( $index ); } $text .= ':'; } $text .= $title->getText(); $text = $this->translate( $text, $variant ); return $text; }

/** * Convert text to different variants of a language. The automatic * conversion is done in autoConvert(). Here we parse the text * marked with -{}-, which specifies special conversions of the * text that can not be accomplished in autoConvert(). * * Syntax of the markup: * -{code1:text1;code2:text2;...}- or * -{flags|code1:text1;code2:text2;...}- or * -{text}- in which case no conversion should take place for text * * @param $text String: text to be converted * @return String: converted text */ public function convert( $text ) { $variant = $this->getPreferredVariant(); return $this->convertTo( $text, $variant ); }

/** * Same as convert() except a extra parameter to custom variant. * * @param $text String: text to be converted * @param $variant String: the target variant code * @return String: converted text */ public function convertTo( $text, $variant ) { global $wgDisableLangConversion; if ( $wgDisableLangConversion ) { return $text; } return $this->recursiveConvertTopLevel( $text, $variant ); }

/** * Recursively convert text on the outside. Allow to use nested * markups to custom rules. * * @param $text String: text to be converted * @param $variant String: the target variant code * @param $depth Integer: depth of recursion * @return String: converted text */ protected function recursiveConvertTopLevel( $text, $variant, $depth = 0 ) { $startPos = 0; $out = ; $length = strlen( $text ); $shouldConvert = !$this->guessVariant( $text, $variant );

while ( $startPos < $length ) { $pos = strpos( $text, '-{', $startPos );

if ( $pos === false ) { // No more markup, append final segment $fragment = substr( $text, $startPos ); $out .= $shouldConvert? $this->autoConvert( $fragment, $variant ): $fragment; return $out; }

// Markup found // Append initial segment $fragment = substr( $text, $startPos, $pos - $startPos ); $out .= $shouldConvert? $this->autoConvert( $fragment, $variant ): $fragment;

// Advance position $startPos = $pos;

// Do recursive conversion $out .= $this->recursiveConvertRule( $text, $variant, $startPos, $depth + 1 ); }

return $out; }

/** * Recursively convert text on the inside. * * @param $text String: text to be converted * @param $variant String: the target variant code * @param $startPos int * @param $depth Integer: depth of recursion * * @throws MWException * @return String: converted text */ protected function recursiveConvertRule( $text, $variant, &$startPos, $depth = 0 ) { // Quick sanity check (no function calls) if ( $text[$startPos] !== '-' || $text[$startPos + 1] !== '{' ) { throw new MWException( __METHOD__ . ': invalid input string' ); }

$startPos += 2; $inner = ; $warningDone = false; $length = strlen( $text );

while ( $startPos < $length ) { $m = false; preg_match( '/-\{|\}-/', $text, $m, PREG_OFFSET_CAPTURE, $startPos ); if ( !$m ) { // Unclosed rule break; }

$token = $m[0][0]; $pos = $m[0][1];

// Markup found // Append initial segment $inner .= substr( $text, $startPos, $pos - $startPos );

// Advance position $startPos = $pos;

switch ( $token ) { case '-{': // Check max depth if ( $depth >= $this->mMaxDepth ) { $inner .= '-{'; if ( !$warningDone ) { $inner .= '' . wfMessage( 'language-converter-depth-warning' ) ->numParams( $this->mMaxDepth )->inContentLanguage()->text() . ''; $warningDone = true; } $startPos += 2; continue; } // Recursively parse another rule $inner .= $this->recursiveConvertRule( $text, $variant, $startPos, $depth + 1 ); break; case '}-': // Apply the rule $startPos += 2; $rule = new ConverterRule( $inner, $this ); $rule->parse( $variant ); $this->applyManualConv( $rule ); return $rule->getDisplay(); default: throw new MWException( __METHOD__ . ': invalid regex match' ); } }

// Unclosed rule if ( $startPos < $length ) { $inner .= substr( $text, $startPos ); } $startPos = $length; return '-{' . $this->autoConvert( $inner, $variant ); }

/** * If a language supports multiple variants, it is possible that * non-existing link in one variant actually exists in another variant. * This function tries to find it. See e.g. LanguageZh.php * * @param $link String: the name of the link * @param $nt Mixed: the title object of the link * @param $ignoreOtherCond Boolean: to disable other conditions when * we need to transclude a template or update a category's link * @return Null, the input parameters may be modified upon return */ public function findVariantLink( &$link, &$nt, $ignoreOtherCond = false ) { # If the article has already existed, there is no need to # check it again, otherwise it may cause a fault. if ( is_object( $nt ) && $nt->exists() ) { return; }

global $wgDisableLangConversion, $wgDisableTitleConversion, $wgRequest, $wgUser; $isredir = $wgRequest->getText( 'redirect', 'yes' ); $action = $wgRequest->getText( 'action' ); $linkconvert = $wgRequest->getText( 'linkconvert', 'yes' ); $disableLinkConversion = $wgDisableLangConversion || $wgDisableTitleConversion; $linkBatch = new LinkBatch();

$ns = NS_MAIN;

if ( $disableLinkConversion || ( !$ignoreOtherCond && ( $isredir == 'no' || $action == 'edit' || $action == 'submit' || $linkconvert == 'no' || $wgUser->getOption( 'noconvertlink' ) == 1 ) ) ) { return; }

if ( is_object( $nt ) ) { $ns = $nt->getNamespace(); }

$variants = $this->autoConvertToAllVariants( $link ); if ( !$variants ) { // give up return; }

$titles = array();

foreach ( $variants as $v ) { if ( $v != $link ) { $varnt = Title::newFromText( $v, $ns ); if ( !is_null( $varnt ) ) { $linkBatch->addObj( $varnt ); $titles[] = $varnt; } } }

// fetch all variants in single query $linkBatch->execute();

foreach ( $titles as $varnt ) { if ( $varnt->getArticleID() > 0 ) { $nt = $varnt; $link = $varnt->getText(); break; } } }

/** * Returns language specific hash options. * * @return string */ public function getExtraHashOptions() { $variant = $this->getPreferredVariant(); return '!' . $variant; }

/** * Guess if a text is written in a variant. This should be implemented in subclasses. * * @param string $text the text to be checked * @param string $variant language code of the variant to be checked for * @return bool true if $text appears to be written in $variant, false if not * * @author Nikola Smolenski <smolensk@eunet.rs> * @since 1.19 */ public function guessVariant($text, $variant) { return false; }

/** * Load default conversion tables. * This method must be implemented in derived class. * * @private * @throws MWException */ function loadDefaultTables() { $name = get_class( $this ); throw new MWException( "Must implement loadDefaultTables() method in class $name" ); }

/** * Load conversion tables either from the cache or the disk. * @private * @param $fromCache Boolean: load from memcached? Defaults to true. */ function loadTables( $fromCache = true ) { global $wgLangConvMemc;

if ( $this->mTablesLoaded ) { return; }

wfProfileIn( __METHOD__ ); $this->mTablesLoaded = true; $this->mTables = false; if ( $fromCache ) { wfProfileIn( __METHOD__ . '-cache' ); $this->mTables = $wgLangConvMemc->get( $this->mCacheKey ); wfProfileOut( __METHOD__ . '-cache' ); } if ( !$this->mTables || !array_key_exists( self::CACHE_VERSION_KEY, $this->mTables ) ) { wfProfileIn( __METHOD__ . '-recache' ); // not in cache, or we need a fresh reload. // We will first load the default tables // then update them using things in MediaWiki:Conversiontable/* $this->loadDefaultTables(); foreach ( $this->mVariants as $var ) { $cached = $this->parseCachedTable( $var ); $this->mTables[$var]->mergeArray( $cached ); }

$this->postLoadTables(); $this->mTables[self::CACHE_VERSION_KEY] = true;

$wgLangConvMemc->set( $this->mCacheKey, $this->mTables, 43200 ); wfProfileOut( __METHOD__ . '-recache' ); } wfProfileOut( __METHOD__ ); }

/** * Hook for post processing after conversion tables are loaded. */ function postLoadTables() { }

/** * Reload the conversion tables. * * @private */ function reloadTables() { if ( $this->mTables ) { unset( $this->mTables ); } $this->mTablesLoaded = false; $this->loadTables( false ); }

/** * Parse the conversion table stored in the cache. * * The tables should be in blocks of the following form: * -{ * word => word ; * word => word ; * ... * }- * * To make the tables more manageable, subpages are allowed * and will be parsed recursively if $recursive == true. * * @param $code String: language code * @param $subpage String: subpage name * @param $recursive Boolean: parse subpages recursively? Defaults to true. * * @return array */ function parseCachedTable( $code, $subpage = , $recursive = true ) { static $parsed = array();

$key = 'Conversiontable/' . $code; if ( $subpage ) { $key .= '/' . $subpage; } if ( array_key_exists( $key, $parsed ) ) { return array(); }

$parsed[$key] = true;

if ( $subpage === ) { $txt = MessageCache::singleton()->get( 'conversiontable', true, $code ); } else { $txt = false; $title = Title::makeTitleSafe( NS_MEDIAWIKI, $key ); if ( $title && $title->exists() ) { $revision = Revision::newFromTitle( $title ); if ( $revision ) { $txt = $revision->getRawText(); } } }

# Nothing to parse if there's no text if ( $txt === false || $txt === null || $txt === ) { return array(); }

// get all subpage links of the form // ... $linkhead = $this->mLangObj->getNsText( NS_MEDIAWIKI ) . ':Conversiontable'; $subs = StringUtils::explode( '[[', $txt ); $sublinks = array(); foreach ( $subs as $sub ) { $link = explode( ']]', $sub, 2 ); if ( count( $link ) != 2 ) { continue; } $b = explode( '|', $link[0], 2 ); $b = explode( '/', trim( $b[0] ), 3 ); if ( count( $b ) == 3 ) { $sublink = $b[2]; } else { $sublink = ; }

if ( $b[0] == $linkhead && $b[1] == $code ) { $sublinks[] = $sublink; } }

// parse the mappings in this page $blocks = StringUtils::explode( '-{', $txt ); $ret = array(); $first = true; foreach ( $blocks as $block ) { if ( $first ) { // Skip the part before the first -{ $first = false; continue; } $mappings = explode( '}-', $block, 2 ); $stripped = str_replace( array( "'", '"', '*', '#' ), , $mappings[0] ); $table = StringUtils::explode( ';', $stripped ); foreach ( $table as $t ) { $m = explode( '=>', $t, 3 ); if ( count( $m ) != 2 ) { continue; } // trim any trailling comments starting with '//' $tt = explode( '//', $m[1], 2 ); $ret[trim( $m[0] )] = trim( $tt[0] ); } }

// recursively parse the subpages if ( $recursive ) { foreach ( $sublinks as $link ) { $s = $this->parseCachedTable( $code, $link, $recursive ); $ret = array_merge( $ret, $s ); } }

if ( $this->mUcfirst ) { foreach ( $ret as $k => $v ) { $ret[$this->mLangObj->ucfirst( $k )] = $this->mLangObj->ucfirst( $v ); } } return $ret; }

/** * Enclose a string with the "no conversion" tag. This is used by * various functions in the Parser. * * @param $text String: text to be tagged for no conversion * @param $noParse Boolean: unused * @return String: the tagged text */ public function markNoConversion( $text, $noParse = false ) { # don't mark if already marked if ( strpos( $text, '-{' ) || strpos( $text, '}-' ) ) { return $text; }

$ret = "-{R|$text}-"; return $ret; }

/** * Convert the sorting key for category links. This should make different * keys that are variants of each other map to the same key. * * @param $key string * * @return string */ function convertCategoryKey( $key ) { return $key; }

/** * Hook to refresh the cache of conversion tables when * MediaWiki:Conversiontable* is updated. * @private * * @param $article Article object * @param $user Object: User object for the current user * @param $text String: article text (?) * @param $summary String: edit summary of the edit * @param $isMinor Boolean: was the edit marked as minor? * @param $isWatch Boolean: did the user watch this page or not? * @param $section * @param $flags int Bitfield * @param $revision Object: new Revision object or null * @return Boolean: true */ function OnArticleSaveComplete( $article, $user, $text, $summary, $isMinor, $isWatch, $section, $flags, $revision ) { $titleobj = $article->getTitle(); if ( $titleobj->getNamespace() == NS_MEDIAWIKI ) { $title = $titleobj->getDBkey(); $t = explode( '/', $title, 3 ); $c = count( $t ); if ( $c > 1 && $t[0] == 'Conversiontable' ) { if ( $this->validateVariant( $t[1] ) ) { $this->reloadTables(); } } } return true; }

/** * Armour rendered math against conversion. * Escape special chars in parsed math text. (in most cases are img elements) * * @param $text String: text to armour against conversion * @return String: armoured text where { and } have been converted to * { and } */ public function armourMath( $text ) { // convert '-{' and '}-' to '-{' and '}-' to prevent // any unwanted markup appearing in the math image tag. $text = strtr( $text, array( '-{' => '-{', '}-' => '}-' ) ); return $text; }

/** * Get the cached separator pattern for ConverterRule::parseRules() */ function getVarSeparatorPattern() { if ( is_null( $this->mVarSeparatorPattern ) ) { // varsep_pattern for preg_split: // text should be splited by ";" only if a valid variant // name exist after the markup, for example: // -{zh-hans:xxx;zh-hant:\ // yyy;}- // we should split it as: // array( // [0] => 'zh-hans:xxx' // [1] => 'zh-hant:yyy' // [2] => // ) $pat = '/;\s*(?='; foreach ( $this->mVariants as $variant ) { // zh-hans:xxx;zh-hant:yyy $pat .= $variant . '\s*:|'; // xxx=>zh-hans:yyy; xxx=>zh-hant:zzz $pat .= '[^;]*?=>\s*' . $variant . '\s*:|'; } $pat .= '\s*$)/'; $this->mVarSeparatorPattern = $pat; } return $this->mVarSeparatorPattern; } }

/**

* Parser for rules of language conversion , parse rules in -{ }- tag.
* @ingroup Language
* @author fdcn <fdcn64@gmail.com>, PhiLiP <philip.npc@gmail.com>
*/

class ConverterRule { var $mText; // original text in -{text}- var $mConverter; // LanguageConverter object var $mRuleDisplay = ; var $mRuleTitle = false; var $mRules = ;// string : the text of the rules var $mRulesAction = 'none'; var $mFlags = array(); var $mVariantFlags = array(); var $mConvTable = array(); var $mBidtable = array();// array of the translation in each variant var $mUnidtable = array();// array of the translation in each variant

/** * Constructor * * @param $text String: the text between -{ and }- * @param $converter LanguageConverter object */ public function __construct( $text, $converter ) { $this->mText = $text; $this->mConverter = $converter; }

/** * Check if variants array in convert array. * * @param $variants Array or string: variant language code * @return String: translated text */ public function getTextInBidtable( $variants ) { $variants = (array)$variants; if ( !$variants ) { return false; } foreach ( $variants as $variant ) { if ( isset( $this->mBidtable[$variant] ) ) { return $this->mBidtable[$variant]; } } return false; }

/** * Parse flags with syntax -{FLAG| ... }- * @private */ function parseFlags() { $text = $this->mText; $flags = array(); $variantFlags = array();

$sepPos = strpos( $text, '|' ); if ( $sepPos !== false ) { $validFlags = $this->mConverter->mFlags; $f = StringUtils::explode( ';', substr( $text, 0, $sepPos ) ); foreach ( $f as $ff ) { $ff = trim( $ff ); if ( isset( $validFlags[$ff] ) ) { $flags[$validFlags[$ff]] = true; } } $text = strval( substr( $text, $sepPos + 1 ) ); }

if ( !$flags ) { $flags['S'] = true; } elseif ( isset( $flags['R'] ) ) { $flags = array( 'R' => true );// remove other flags } elseif ( isset( $flags['N'] ) ) { $flags = array( 'N' => true );// remove other flags } elseif ( isset( $flags['-'] ) ) { $flags = array( '-' => true );// remove other flags } elseif ( count( $flags ) == 1 && isset( $flags['T'] ) ) { $flags['H'] = true; } elseif ( isset( $flags['H'] ) ) { // replace A flag, and remove other flags except T $temp = array( '+' => true, 'H' => true ); if ( isset( $flags['T'] ) ) { $temp['T'] = true; } if ( isset( $flags['D'] ) ) { $temp['D'] = true; } $flags = $temp; } else { if ( isset( $flags['A'] ) ) { $flags['+'] = true; $flags['S'] = true; } if ( isset( $flags['D'] ) ) { unset( $flags['S'] ); } // try to find flags like "zh-hans", "zh-hant" // allow syntaxes like "-{zh-hans;zh-hant|XXXX}-" $variantFlags = array_intersect( array_keys( $flags ), $this->mConverter->mVariants ); if ( $variantFlags ) { $variantFlags = array_flip( $variantFlags ); $flags = array(); } } $this->mVariantFlags = $variantFlags; $this->mRules = $text; $this->mFlags = $flags; }

/** * Generate conversion table. * @private */ function parseRules() { $rules = $this->mRules; $bidtable = array(); $unidtable = array(); $variants = $this->mConverter->mVariants; $varsep_pattern = $this->mConverter->getVarSeparatorPattern();

$choice = preg_split( $varsep_pattern, $rules );

foreach ( $choice as $c ) { $v = explode( ':', $c, 2 ); if ( count( $v ) != 2 ) { // syntax error, skip continue; } $to = trim( $v[1] ); $v = trim( $v[0] ); $u = explode( '=>', $v, 2 ); // if $to is empty, strtr() could return a wrong result if ( count( $u ) == 1 && $to && in_array( $v, $variants ) ) { $bidtable[$v] = $to; } elseif ( count( $u ) == 2 ) { $from = trim( $u[0] ); $v = trim( $u[1] ); if ( array_key_exists( $v, $unidtable ) && !is_array( $unidtable[$v] ) && $to && in_array( $v, $variants ) ) { $unidtable[$v] = array( $from => $to ); } elseif ( $to && in_array( $v, $variants ) ) { $unidtable[$v][$from] = $to; } } // syntax error, pass if ( !isset( $this->mConverter->mVariantNames[$v] ) ) { $bidtable = array(); $unidtable = array(); break; } } $this->mBidtable = $bidtable; $this->mUnidtable = $unidtable; }

/** * @private * * @return string */ function getRulesDesc() { $codesep = $this->mConverter->mDescCodeSep; $varsep = $this->mConverter->mDescVarSep; $text = ; foreach ( $this->mBidtable as $k => $v ) { $text .= $this->mConverter->mVariantNames[$k] . "$codesep$v$varsep"; } foreach ( $this->mUnidtable as $k => $a ) { foreach ( $a as $from => $to ) { $text .= $from . '⇒' . $this->mConverter->mVariantNames[$k] . "$codesep$to$varsep"; } } return $text; }

/** * Parse rules conversion. * @private * * @param $variant * * @return string */ function getRuleConvertedStr( $variant ) { $bidtable = $this->mBidtable; $unidtable = $this->mUnidtable;

if ( count( $bidtable ) + count( $unidtable ) == 0 ) { return $this->mRules; } else { // display current variant in bidirectional array $disp = $this->getTextInBidtable( $variant ); // or display current variant in fallbacks if ( !$disp ) { $disp = $this->getTextInBidtable( $this->mConverter->getVariantFallbacks( $variant ) ); } // or display current variant in unidirectional array if ( !$disp && array_key_exists( $variant, $unidtable ) ) { $disp = array_values( $unidtable[$variant] ); $disp = $disp[0]; } // or display frist text under disable manual convert if ( !$disp && $this->mConverter->mManualLevel[$variant] == 'disable' ) { if ( count( $bidtable ) > 0 ) { $disp = array_values( $bidtable ); $disp = $disp[0]; } else { $disp = array_values( $unidtable ); $disp = array_values( $disp[0] ); $disp = $disp[0]; } } return $disp; } }

/** * Generate conversion table for all text. * @private */ function generateConvTable() { // Special case optimisation if ( !$this->mBidtable && !$this->mUnidtable ) { $this->mConvTable = array(); return; }

$bidtable = $this->mBidtable; $unidtable = $this->mUnidtable; $manLevel = $this->mConverter->mManualLevel;

$vmarked = array(); foreach ( $this->mConverter->mVariants as $v ) { /* for bidirectional array fill in the missing variants, if any, with fallbacks */ if ( !isset( $bidtable[$v] ) ) { $variantFallbacks = $this->mConverter->getVariantFallbacks( $v ); $vf = $this->getTextInBidtable( $variantFallbacks ); if ( $vf ) { $bidtable[$v] = $vf; } }

if ( isset( $bidtable[$v] ) ) { foreach ( $vmarked as $vo ) { // use syntax: -{A|zh:WordZh;zh-tw:WordTw}- // or -{H|zh:WordZh;zh-tw:WordTw}- // or -{-|zh:WordZh;zh-tw:WordTw}- // to introduce a custom mapping between // words WordZh and WordTw in the whole text if ( $manLevel[$v] == 'bidirectional' ) { $this->mConvTable[$v][$bidtable[$vo]] = $bidtable[$v]; } if ( $manLevel[$vo] == 'bidirectional' ) { $this->mConvTable[$vo][$bidtable[$v]] = $bidtable[$vo]; } } $vmarked[] = $v; } /* for unidirectional array fill to convert tables */ if ( ( $manLevel[$v] == 'bidirectional' || $manLevel[$v] == 'unidirectional' ) && isset( $unidtable[$v] ) ) { if ( isset( $this->mConvTable[$v] ) ) { $this->mConvTable[$v] = array_merge( $this->mConvTable[$v], $unidtable[$v] ); } else { $this->mConvTable[$v] = $unidtable[$v]; } } } }

/** * Parse rules and flags. * @param $variant String: variant language code */ public function parse( $variant = null ) { if ( !$variant ) { $variant = $this->mConverter->getPreferredVariant(); }

$this->parseFlags(); $flags = $this->mFlags;

// convert to specified variant // syntax: -{zh-hans;zh-hant[;...]|<text to convert>}- if ( $this->mVariantFlags ) { // check if current variant in flags if ( isset( $this->mVariantFlags[$variant] ) ) { // then convert <text to convert> to current language $this->mRules = $this->mConverter->autoConvert( $this->mRules, $variant ); } else { // if current variant no in flags, // then we check its fallback variants. $variantFallbacks = $this->mConverter->getVariantFallbacks( $variant ); if( is_array( $variantFallbacks ) ) { foreach ( $variantFallbacks as $variantFallback ) { // if current variant's fallback exist in flags if ( isset( $this->mVariantFlags[$variantFallback] ) ) { // then convert <text to convert> to fallback language $this->mRules = $this->mConverter->autoConvert( $this->mRules, $variantFallback ); break; } } } } $this->mFlags = $flags = array( 'R' => true ); }

if ( !isset( $flags['R'] ) && !isset( $flags['N'] ) ) { // decode => HTML entities modified by Sanitizer::removeHTMLtags $this->mRules = str_replace( '=>', '=>', $this->mRules ); $this->parseRules(); } $rules = $this->mRules;

if ( !$this->mBidtable && !$this->mUnidtable ) { if ( isset( $flags['+'] ) || isset( $flags['-'] ) ) { // fill all variants if text in -{A/H/-|text} without rules foreach ( $this->mConverter->mVariants as $v ) { $this->mBidtable[$v] = $rules; } } elseif ( !isset( $flags['N'] ) && !isset( $flags['T'] ) ) { $this->mFlags = $flags = array( 'R' => true ); } }

$this->mRuleDisplay = false; foreach ( $flags as $flag => $unused ) { switch ( $flag ) { case 'R': // if we don't do content convert, still strip the -{}- tags $this->mRuleDisplay = $rules; break; case 'N': // process N flag: output current variant name $ruleVar = trim( $rules ); if ( isset( $this->mConverter->mVariantNames[$ruleVar] ) ) { $this->mRuleDisplay = $this->mConverter->mVariantNames[$ruleVar]; } else { $this->mRuleDisplay = ; } break; case 'D': // process D flag: output rules description $this->mRuleDisplay = $this->getRulesDesc(); break; case 'H': // process H,- flag or T only: output nothing $this->mRuleDisplay = ; break; case '-': $this->mRulesAction = 'remove'; $this->mRuleDisplay = ; break; case '+': $this->mRulesAction = 'add'; $this->mRuleDisplay = ; break; case 'S': $this->mRuleDisplay = $this->getRuleConvertedStr( $variant ); break; case 'T': $this->mRuleTitle = $this->getRuleConvertedStr( $variant ); $this->mRuleDisplay = ; break; default: // ignore unknown flags (but see error case below) } } if ( $this->mRuleDisplay === false ) { $this->mRuleDisplay = '' . wfMessage( 'converter-manual-rule-error' )->inContentLanguage()->escaped() . ''; }

$this->generateConvTable(); }

/** * @todo FIXME: code this function :) */ public function hasRules() { // TODO: }

/** * Get display text on markup -{...}- * @return string */ public function getDisplay() { return $this->mRuleDisplay; }

/** * Get converted title. * @return string */ public function getTitle() { return $this->mRuleTitle; }

/** * Return how deal with conversion rules. * @return string */ public function getRulesAction() { return $this->mRulesAction; }

/** * Get conversion table. (bidirectional and unidirectional * conversion table) * @return array */ public function getConvTable() { return $this->mConvTable; }

/** * Get conversion rules string. * @return string */ public function getRules() { return $this->mRules; }

/** * Get conversion flags. * @return array */ public function getFlags() { return $this->mFlags; } }

Ovo ti je na primer kod za to iz MediaWiki. -- Kolega2357 Razgovor 23:52, 19 decembar-просинац 2012 (CET)

To sam našao kada sam instalirao MediaWiki software. -- Kolega2357 Razgovor 07:01, 20 decembar-просинац 2012 (CET)

Mora da instaliraš MediaWiki na srpskom jeziku preko Xampp programa i da detaljno proučiš to. -- Kolega2357 Razgovor 15:58, 20 decembar-просинац 2012 (CET)

Holodomor[uredi izvor]

Ne možeš zamisliti koliko sam svjestan sukoba interesa u ovom pitanju zbog čega na sve strane molim administratore ove wiki da budu medijatori. Da nema tog mog sukoba interesa nego da se na primer svađaju Dejvid i Wikiwind+Edgar ja bi ovaj dvojac blokirao. Ako pitaš zašto odgovor bi bio:

"Blokada wikiwinda zbog Wikipedia:Harassment kakav nikad još nismo imali na sh wiki. Dokaz bi bio ovaj 6.4.2013., Narančasta revolucija 31.3. - 3.4. i potom Holodomor (4.4.-)" - U prevodu svojim akcijama u zadnjih 15 dana korisnik wikiwind je pokazao da je kontrolirao istoriju editiranja jednog korisnika nakon čega je krenuo u akciju. Ako to nije wikipedia:Harassment volio bih da mi netko da bolju definiciju. Normalno na to dodaj onu pretnju da će se administratoru oduzeti ovlasti ako kazni korisnik koji unosi lažne izvore u tekst.

Normalno Edgara bi blokirao zbog unošenja netočnih izvora u tekst, zle namjere i meatpuppetry (pojednostavljeno). Za mene najluđe u celoj priči je da se svađamo se oko teksta 7 dana,a Edgar zabranjuje stavljanje oznake POV na njega dok se ne objasni razlog ???????????

Jednostavno ja čekam i čekam i čekam da se netko pojavio tko bi bio medijator dok se stvar dodatno ne pogorša--Rjecina2 (razgovor) 12:11, 11 april-травањ 2013 (CEST)

Jesi dobio moj mail poslao sam još otkada? -- Kolega2357 Razgovor 20:59, 12 svibanj-мај 2013 (CEST)

Poslaću ti za 5 minuta opet budi tu molim te. -- Kolega2357 Razgovor 21:05, 12 svibanj-мај 2013 (CEST)

Ja se mogu ukloniti od uređivanja, nije to problem, a sankciju nisam izrekao zbog uređivanja članka, već zbog njegovog ophođenja s drugim suradnicima. Uz sve to, ja članak nisam uređivao već sam samo ukazivao na njegove nedostatke... ako budem imao namjeru uređivati članak to ću i učiniti. Kužim implikacije koje imaš na umu i kužim problematiku, ali nije ovo prvi put da optužuje i da napada druge kolege. Svakako, onakav članak nije zadovoljavao kriterije Wikipedije, bio je pristran i ja sam to propisano označio. On je taj koji je započeo dilemu oko "svojatanja" članka, nekon čega je počeo vrijeđati i napadati. Da ne govorim o tome da je prvo napravio invalid revert pa onda dodao radove kako bi osigurao sebi pogotno stanje i onda se oko toga prepirao... oprosti, znam da se ne moramo složiti niti išta, ali mislim da je, nakon svih incidenata, sada pretjerao... nitko ga nije napadao, nitko ga nije optuživao, a njegova prva replika bila je agresivno deranje... unatoč svemu, smatram da je moja odluka apsolutno objektivna i apsolutno uredu, ali uvijek dopuštam i drugačije mišljenje, svakako, ako je ono argumentirano i mirno izrečeno --Biljezim se sa štovanjem,Poe 01:40, 14 jun-липањ 2013 (CEST)
Takva argumentacija, dakako... stoji, ali ponavljam, sam članak s blokadom nema nikakve veze, kao što je i objašnjeno. Da Rječina nije nastavio napadati kolegu i mene, do bloka ne bi došlo, neovisno o uređivanjima --Biljezim se sa štovanjem,Poe 23:26, 19 jun-липањ 2013 (CEST)

Wikipedia:Pijaca-Пијаца#Nove_korisni.C4.8Dke_grupe_.28molim_pro.C4.8Ditati_detalje.29[uredi izvor]

Jel možeš da glasaš ovde? -- Kolega2357 Razgovor 20:32, 14 jun-липањ 2013 (CEST)

Korisnik:Kolega2357-Bot/Dobrodošlica[uredi izvor]

Ako si zainteresovana možeš ovde staviti poptis tako bot može pozdravljati korisnike u tvoje ime. Pozdrav! -- Kolega2357 Razgovor 21:32, 14 jun-липањ 2013 (CEST)

en:WP:CANVASS[uredi izvor]

Sa ovom porukom si zakasnio već sam dobio jednu od Wikiwinda, to što ja korisnicima Wikipedije šaljem e-mailove i kakva je sadržina tih mailova to tebe ne treba da zanima. -- Kolega2357 Razgovor 00:34, 18 jun-липањ 2013 (CEST)

To je revizija koja napravljena juče bot je prestao da radi sa tom funkcijom vidiš li ti koji je datum na reviziji? -- Kolega2357 Razgovor 23:36, 19 jun-липањ 2013 (CEST)

Primam tvoje izvinjenje poslao sam ti mail juče ali sam zaboravio da te obavestim o tome. Pozdrav! -- Kolega2357 Razgovor 23:40, 19 jun-липањ 2013 (CEST)

Ovako ja jesam pogrešio ali sam mu se izvinio posle. -- Kolega2357 Razgovor 00:44, 9 srpanj-јул 2013 (CEST)

Ja sam se korisniku dva puta izvinuo nisam imao nameru da ga uvredim jeste da između nas ima nesuglasica ali Bože moj ne postoji Wikipedija gde nema nesuglasica između korisnika. Pozdrav! -- Kolega2357 Razgovor 00:54, 9 srpanj-јул 2013 (CEST)

Da te obavestim aktivirane su nove korisničke grupe. -- Kolega2357 Razgovor 00:57, 9 srpanj-јул 2013 (CEST)

Wikipedia:Pijaca-Пијаца#Flood_flag[uredi izvor]

Pozivam te da se izjasniš ovde ako hoćeš. Pozdrav! -- Kolega2357 Razgovor 02:01, 23 srpanj-јул 2013 (CEST)

Revert[uredi izvor]

Uočio sam da si dva puta revertirao ovdje[3]. Međutim, nije mi jasan razlog tome, pa bih zamolio da pojasniš.--Seiya (razgovor) 14:45, 30 studeni-новембар 2013 (CET)

Dobrodošlica[uredi izvor]

Kada nekom napišeš dobrodošlicu bio bi red da se onda i potpišeš. Face-smile.svg --Kolega2357 Razgovor 11:33, 8 februar-вељача 2014 (CET)

Vratio sam ipak na stari naziv Pijaca u obe verzije da ne ispadne kako je samovoljno promenjen naziv pa ako hoćeš možemo svi da diskutujemo o tome da promeni naziv. Pozdrav! Face-smile.svg --Kolega2357 Razgovor 23:33, 12 februar-вељача 2014 (CET)

Srpskohrvatska wikipedija[uredi izvor]

Vratio sam neke tvoje promene u članku Srpskohrvatska Wikipedija jer se ne slažem s njima. Predlažem da se, ako imaš primedbe na članak, one prvo rasprave na stranici za razgovor, a smatram da bi to svakako trebalo ukloniti u slučaju uklanjanja većih delova teksta. --Igor Windsor (razgovor) 19:41, 14 svibanj-мај 2014 (CEST)

Re: Novi link za Geohack[uredi izvor]

Vidim gdje je problem – u tome što se negativna vrijednost množi sa stupnjevima, minutama i sekundama. Iz tog razloga prvi link ne radi, ali drugi radi (primjeti izbrisana dva zadnja minusa):

Prvo što mi je palo na pamet jest da se minute i sekunde stave u neku funkciju tako da vrijednost uvijek bude pozitivna, ali pretragom parsera i sličnog alata nisam našao ništa takvo pa problem nije riješen. Inače se radi o kopiji srpskog šablona s kakvima ja imam izuzetno malo iskustva, stoga je najbolje da se pita BokicaK. --Orijentolog (razgovor) 20:40, 25 decembar-просинац 2014 (CET)

Pomoć[uredi izvor]

Korisnik:Edgar Allan Poe me napada bez razloga, nikoga nisam uvredio svojim komentarom, samo izneo svoj stav [4], koji se njemu ne sviđa. Zbog njega se ovde neprekidno sprovodi cenzura, tražim pomoć da se zaustave takvi napadi koji samo štete sh.wikipediji.--Soundwaweserb (razgovor) 22:44, 15 mart-ожујак 2015 (CET)

Engleski[uredi izvor]

Sorry nisam vidio da je nevidljiv. Nadam se da ćemo brzo naći rješenje. --Munja-x86 (razgovor) 21:10, 18 maj-свибањ 2015 (CEST)

Ćirilica na naslovnici[uredi izvor]

Do promjene je došlo *isključivo* iz tehničkih razloga, i u pitanju je *privremeno* rješenje. No, s obzirom da ima ljudi koji se bune, a vidim da si i ti među njima, mislim da bi u najmanju ruku bilo primjereno izaći im u susret, odnosno vratiti stvari na staro (iako to nije potpuno moguće). --OC Ripper (razgovor) 08:33, 15 februar 2016 (CET)

Welcome[uredi izvor]

Bio bi i red da se potpises na dobrodoslicu. Face-grin.svg Face-grin-braces.svg Face-grin.svg Face-grin-braces.svg --Kolega2357 (razgovor) 00:42, 26 maj 2016 (CEST)

Jel znas ti da ubacis potpis u sablon? --Kolega2357 (razgovor) 01:12, 26 maj 2016 (CEST)

Nisam strucnjak za sablone. --Kolega2357 (razgovor) 01:32, 26 maj 2016 (CEST)

Poruke[uredi izvor]

Ne bih nanovo ulazio u aktualnu polemiku, ali u svim dosadašnjim slučajevima je uklanjanje bilo revertano. Da, nigdje eksplicitno ne stoji ni zabrana ni odobrenje, ali u svim slučajevima, koliko se ja sjećam (a dozvoljavam da me se tu demantira), uklanjanje je revertano tako da nema ničeg nedopuštenog u mom potezu. Mada, ja ne shvaćam zašto je cijeli ovaj slučaj uopće toliko bitan i što su se ljudi uhvatili njega, kad je očigledno da je sve lično motivirano --Biljezim se sa štovanjem,Poe 14:35, 26 novembar 2016 (CET)

Samo sam rekao - praksa je takva i, neovisno o željama, sadržaj koji ni na koji način nije neprimjeren nema osnovu biti uklanjan. Što bi bilo kad bi bilo je već hipotetska situacija u koju ja ne bih detaljno ulazio. A što se tolerancije i novih korisnika tiče, prepuštam tebi fino da uvjeravaš onakvog korisnika zašto je njegov sadržaj neprimjeren i nedozvoljen prema pravilima ove Wikipedije, pa mi tu objašnjavaj dvjesto puta istu stvar i da je njegov članak obrisan jer je ne sređen, a ne jer on misli da si ti glup :D Rado ću ti predati tu štafetu :) --Biljezim se sa štovanjem,Poe 21:19, 28 novembar 2016 (CET)

Jezik interfejsa[uredi izvor]

FYI: [5]. --Nemo bis (razgovor) 21:05, 17 januar 2017 (CET)

Janevistan[uredi izvor]

Poštovani G-dine Biblbroks. Nezavisno što se imenski prostor razlikuje od ličnog, sam sadržaj Janevistana nije samo uvredljiv samo za prof. Igora Janeva, već i za Vladu i narod Republike Makedonije. Najljubaznije bih Vas zamolila da ovakav neprimeren sadržaj ukolnite sa Vašeg sajta. S poštovanjem,Вукица Кртолица (razgovor) 01:40, 18 juni 2017 (CEST)

Pat i Mat[uredi izvor]

Čuj, doista hvala na podršci i replikama, kako kolegi i meni, tako i projektu, ali čini mi se da bi ova dva meštra iz A je to trebalo pustiti na miru. Jednom kad njihov raison d'etre, olitiga besmisleno nedogledno raspravljanje radi liječenja vlastitog frustriranog ega, prestane, vjerojatno će se i oni ukloniti. Ako misle da mogu ukinuti projekt od gotovo pola milijuna članaka, neki od kojih su jedinstveni u odnosu na sve Wikipedije, projekt koji je u Srbiji nagrađen - neka to pokušaju :) Mislim da daljnje odgovaranje njihovom spamu nema smisla :)

Postat će nam kao i onaj Janevljev IP koji se stalno mijenja pa spamma stranicu za razgovor Jimmyja Walesa --E.A.Poe 21:21, 18 juni 2017 (CEST)

Хвала колега на позиву. Пуно поздрављам и вашег војсковођу Едгара и молим Вас да му пренесете да ни њему его није бољи. Не, ми нећемо спамовати Џимба Велса господине Едгаре. Zoranzoki21 (razgovor) 21:27, 18 juni 2017 (CEST)
Svakako, ako već i nastavljate raspravu, molim vas da to radite na vašim ličnim stranicama za razgovor. Niti Ripper niti ja više nemamo veze s ovim replikama pa nema smisla da se one realiziraju na našim stranicama za razgovor --E.A.Poe 21:32, 18 juni 2017 (CEST)
Колега Едгаре. Рипер има везе и те како. Он је фотокопир. Zoranzoki21 (razgovor) 21:39, 18 juni 2017 (CEST)

Библброксе, јесте искрено је. Спамовати Џимба нећемо. Zoranzoki21 (razgovor) 21:39, 18 juni 2017 (CEST)

Виипедија на српском језику. Ма каква српскохрватска. Српскохрватски језик више званично не постоји. Не знам како је уопште направљена ова копирница. Под којим ПиБ бројем се водите? Ми се водимо под бројем 104765157 а Ви? Zoranzoki21 (razgovor) 21:47, 18 juni 2017 (CEST)
Па шта ако пише на енглеској Википедији? ВИКИПЕДИЈА НА СРПСКОМ ЈЕЗИКУ!!!!!! НЕ ВИКИПЕДИЈА НА СРПСКОЈ ВАРИЈАНТИ СРПСКОХРВАТСКОГ ЈЕЗИКА!!!!!!!!!!!! Zoranzoki21 (razgovor) 21:57, 18 juni 2017 (CEST)
Svako dobro i Vama takođe. Zoranzoki21 (razgovor) 22:32, 18 juni 2017 (CEST)

Janevistan i popularnost. Pitanje o koristima za Janeva iz stranice Janevistan[uredi izvor]

Poštovanje. Mene bi zanimalo, dali je upravo članak Janevistan podigao popularnost Janevu. Koliko vidim ovaj članak njemu kao da ide u prilog, a ne obratno. Sve to oko Janevistana je upravo suprotno cilju koji se hteo postići. Ako ovako gledamo, njegov interes je bio da članak ostane tu gde jeste što duže, a ne da bude obrisan. Interesantno je i to da na stranici za razgovor Jimmy Walesa njegovi "spameri" nisu rivertovani, što je tamo uobičajna praksa za anonimuse koji tužakaju druge projekte. Dali je on na neki način učetvovao u pravljenju Janevistana?79.101.150.146 10:17, 19 juni 2017 (CEST)

Nije upućen tebi. Ti si uputio meni, a ja sam modifikovao jer na svakom projektu znači i na ovom. Zoranzoki21 (razgovor) 12:46, 2 juli 2017 (CEST)