• Psst! Ano, Ty! Ještě nejsi zaregistrovaný na našem herním fóru? Přicházíš tak o možnost zapojit se do diskuzí a navíc si tu můžeš zkrátit čekání například při výstavbě nové budovy či jednotek. Zaregistruj se ještě dnes pomocí následujícího odkazu:

    » Vytvořit účet na fóru

Neplatné znaky v názvu vesnice

Stav
Uzavřeno pro další odpovědi.

DeletedUser

Guest
Aby se překlad pokazil při nahrávání na server je blbost. Když se soubor nenahraje celý, tak je prostě nekompletní a nejde, ne že to bude měnit znaky jak chce.

U toho překladu "Útok x Support" to chápu. Pokud to totiž nenajde český překlad, tak se použije anglický.

No a k těm znakům. Nebudu tu vysvětlovat php, stačí regularní výrazy.

Pokud napíšu ([a-z]*) tak to znamená, že znaky a-z se budou opakovat libovolně 0 a vícekrát. Pokud ale na začátek do hranaté závorky napíšu ^ tak to znamená, že kterýkoliv ze znaků v hranaté závorce tam nesmí být. a-z reprezentuje znaky anglické abecedy, protože české to neumí, tak se dopisují zvlášť.

Hádám, že inno použilo první variantu, což bych bral jako tu horší. Ta je spíš na něco, co má mít přesný tvar jako třeba e-mail. Jednodušší je vypsat co se prostě objevovat nemá a je hotovo.

Ochrana na neplatné znaky se používá dost často, jinak by šlo hacknout databázi. Takže závorky a lomítka se většinou zakazují.

Tož celé moje vyprávění. Doufám, že na pochopení principu to stačilo. :)
 

DeletedUser33829

Guest
Mezi neplatné znaky to řadí několik písmen české abecedy, ale lomítka to mezi neplatné znaky neřadí. Mám takhle pojmenované všechny vesnice na světě 22.:)
 

DeletedUser

Guest
Protože se to v dnešní době escapuje. Takže "Moje ves /8/" je v db jako "Moje ves \/8\/". :)
 

DeletedUser33829

Guest
Obrácené lomítko „\“ to mezi neplatné řadí.
 

DeletedUser

Guest
Tuším, jak mohou fungovat překlady textu... Když jsem dělal vícejazyčný web, měl jsem k tomu "slovník" - soubor .po nebo .mo a tam byl seznam slov a na co se mají pak překládat. Pokud v něm byla chyba, text se nepřeložil. Přesně jak píšeš. Sice nevím, jak je možné, že se tam ty chyby vnáší, ale to nic nemění na tom, že by se ten soubor hodil taky čas od času opravit.

Ad RV a escapování: Samozřejmě, že lze vyescapovat všecko. Takže se divím, že s tím dělají takové problémy. Ale o to by zas tak nešlo. Pravděpodobně vypadá zmíněná varianta ([a-z]*) a nějaké další znaky k tomu. To a-z se ale nejspíš interpretuje podle LOCALE nebo nějaké takové věci. A tam bych viděl zakopanýho psa. Nikdo tam nejspíš neměnil jen tak ty další znaky... Prostě tam je nějakej RV na to, co se akceptuje do názvu vsi, ale při interpretaci se použilo jiné nastavení, které se nějak rozhasilo. Tomu napovídá fakt, že na SK DK lze použít ä, ale už ne ř (musel jsem tam mít vesnice Antonín Dvorák místo Dvořák :( ). A na španělských to nebralo žádné háčky, jen čárky a tu jejich vlnku nad N...
Prostě to vezme LOCALE a vyhodnotí to, co je písmeno podle daného národního prostředí. Ale i v tom by mohli mít pořádek.
 

DeletedUser

Guest
Proto se u pcre píše "(\w+)". Což značí jakýkoliv znak slova. Tam už by čeština měla projít, jelikož unicode ji obsahuje. Pokud teda kódování mají v utf8, což ale je dnes už standard.
 

DeletedUser

Guest
Názvy vesnic se kódují podobně jak URL. Místo mezery se dělá znak '+' a ostatní znaky se dělají přes % a Unicode kód.
Takže nevím, kde je furt chyba...

:shout BTW MOHL BY TO NĚKDO PROSÍM UŽ OPRAVIT?
Obligátní Vesnice barbarů mají kroužkované U a ničemu to nevadí, ale já si to do názvu dát nemůžu. To je to fakt takový problém, že se na to bude čekat měsíce?

Děkuji.
 

DeletedUser

Guest
Jako URL bych to určitě neviděl, to už by bylo INNO hodně zoufalé. Do databáze se většinou ukládá s typem VARCHAR a akorát přes mysql_real_escape_string se to ošetří. Nevím proč s tím INNO dělá taková caviky. :D
 

DeletedUser

Guest
Já jsem tak usuzoval z těch dat světa, leč to je asi nějaký export... Ale je to koneckonců jedno. Zatím tu chybu nikdo neopravil a zajímalo by mě, zda o tom Inno aspoň ví...
 

DeletedUser

Guest
To je jen serializovaný export z db.

S chybou se budou muset naučit hráči nejspíš žít. Inno radši inovuje než opravuje. :)
 
Stav
Uzavřeno pro další odpovědi.
Nahoru