Inspirován lákavým nadpisem jsem si začal hrát s Lua/Löve.
Nahlížím však, že Lua je, pokud se textu týče, přísně 8bitová a Löve
0.5.0 se – zdá se – také problémem diakritiky netrápí. Nepodařilo
se mi ve Windows® správně zobrazit Žluťoučkého koně nejenom
v Unicode, ale ani s cp1250 a s fonty arial.ttf
,
arialuni.ttf
, arialun0.ttf
.
Nerad bych znovu vynalézal kolo. Podělí se někdo (autor) o fungující řešení… prosím?
Jinak děkuji autorovi a redakci za nasměrování na tento opravdu zajímavý výtvor.
(Mimochodem název Löve je pro googling velmi nešťastný. Ačkoliv použijete znak ö, zaplaví vás místo informací láska, proto prosím, nekamenujte mě, že jsem možná dost nehledal.)
Ano, Lua skutečně pracuje s osmibitovými znaky v řetězcích, takže s Unicode (na Windows spíše s UCS-2) může být problém. Vyzkouším dnes večer češtinu s Löve na Windows a poreferuji tady v diskusi o výsledku.
Jinak opravdu hledání Googlem vrací spíše kuriozity typu „I think I'm falling in love – Lua is the new perl“ než použitelné výsledky :-), podobně jako při hledání informací k jazyku Logo (to je zde však o mnoho déle než Google) nebo k Expression Language (ovšem tady Sun s názvem střelil úplně vedle, toto je skoro nehledatelné :-)
Testy nabodeníček na Windows jsou prozatím negativní, evidentně se cestou Lua->Löve->(SDL+FreeType) nikde nepřenáší informace o stránce, pouze čistý osmibitový text, tj. znaky s kódy 0–255.
To je pro naše nabodeníčka špatné, protože ve fontech typu OpenType (to jsou AFAIK všechny Vámi zmiňované) jsou v první stránce pouze znaky latinky + akcenty pro západoevropské jazyky, což je vidět i po spuštění následujícího skriptu (nový font se přidá snadno – musí se, abychom to zbytečně nekomplikovali, zkopírovat do adresáře s „hrou“ a změnit řádek s love.graphics.newFont).
Asi (docela jsem si tím jistý :-) by pomohlo použití původních ne-Unicode fontů, například „Arial CE“ apod.
Pokud někdo takový font vlastní (je například ve starých Windows 3.11, snad i v 95kách), může prosím vyzkoušet následující skriptík?:
function load()
local font = love.graphics.newFont(love.default_font, 30)
–local font = love.graphics.newFont(„DejaVuLGCSansMono.ttf“, 30)
– nahradit jméno fontu je „CE“ variantou a odkomentovat
– local font = love.graphics.newFont(„arial.ttf“, 30)
love.graphics.setFont(font);
love.graphics.setColor(200, 200, 200); end
direction = 0
function draw()
love.graphics.setColor(200, 200, 200);
for y = 0, 7 do
local str = ""
for x = 0, 31 do
str = str .. string.char(x+y32)
end
love.graphics.draw(str, 20, 40+y40);
end
love.graphics.setColor(255, 200, 200);
love.graphics.draw(„Příliš žluťoučký kůň úpěl ďábelské
ódy…“, 30, 500);
love.graphics.draw(„Press escape to exit.“, 30, 540); end
function keypressed(key)
if key == love.key_escape then
love.system.exit()
end end
Existuje alespoň jeden snadno dosažitelný font s CE v názvu, se kterým čeština ve Windows XP funguje správně.