Ελληνικά στο Wine

Αλέξανδρος Διαμαντίδης adia at hellug.gr
Tue May 22 08:32:19 EEST 2007


* George Notaras [2007-05-12 19:50]:
> Αν μπορούσες να δώσεις κάποιες παραπάνω πληροφορίες για το τι περίπου
> ψάχνει κανείς σε όλα αυτά που ξερνάει το wine.
> 
> Πχ. τρέχω ένα ελληνικό προγραμματάκι (WhitePagesDirect.exe[1]) ως εξής:
> 
> $ WINEDEBUG=font wine WhitePagesDirect.exe &> zzzzz.log

Συγνώμη για την καθυστερημένη απάντηση, είχα αρκετές μέρες να διαβάσω
την LGU. Λοιπόν, το πιο εύκολο είναι να ψάξεις μέσα στο log για γραμμές
που λένε OpenFontFile, και μετά να πας λίγες γραμμές πίσω, εκεί που λέει
WineEngCreateFontInstance. Για παράδειγμα, τρέχοντας το WhitePagesDirect
όπως παραπάνω...

trace:font:CreateFontIndirectW (-13 0 0 0 0 0 0 0 161) L"MS Shell Dlg" Bold   => 0x1c4
trace:font:WineEngCreateFontInstance L"MS Shell Dlg", h=-13, it=0, weight=700, PandF=00, charset=161 orient 0 escapement 0
trace:font:WineEngCreateFontInstance not in cache
trace:font:WineEngCreateFontInstance substituting L"MS Shell Dlg" -> L"Tahoma"
trace:font:WineEngCreateFontInstance (it=0, bd=0) is selected for (it=0, bd=1)
trace:font:WineEngCreateFontInstance 13 is better for -13 diff was 0
trace:font:WineEngCreateFontInstance (it=0, bd=0) is selected for (it=0, bd=1)
trace:font:WineEngCreateFontInstance 16 is better for -13 diff was 2
trace:font:WineEngCreateFontInstance (it=0, bd=0) is selected for (it=0, bd=1)
trace:font:WineEngCreateFontInstance Chosen: L"MS Sans Serif" L"Regular" (/usr/bin/../lib/../share/wine/fonts/sserifeg.fon:1)
trace:font:OpenFontFile "/usr/bin/../lib/../share/wine/fonts/sserifeg.fon", 1, 13 x 13

Αυτό που καταλαβαίνω από το παραπάνω είναι ότι το πρόγραμμα ζητάει τη
γραμματοσειρά "MS Shell Dlg", και τελικά ανοίγει το αρχείο
"/usr/bin/../lib/../share/wine/fonts/sserifeg.fon". Το περίεργο είναι
ότι είχα βάλει στο registry μια εγγραφή που λέει «αντί για την "MS Shell
Dlg" θέλω την "Tahoma"» και φαίνεται ότι το λαμβάνει υπόψιν του,
κρίνοντας από την τρίτη γραμμή. όμως τελικά δεν ανοίγει αυτήν αλλά την
sserifeg.fon. Η sserifeg όπως φαίνεται είναι μια γραμματοσειρά bitmap
του Wine, αλλά δυστυχώς από τις τις γραμματοσειρές bitmap του Wine
ελληνικά περιέχει μόνο η system. Αυτό που έκανα ήταν να πάω στο
/usr/share/wine/fonts και να μετονομάσω την sserifeg.fon σε
sserifeg.fon.bak ώστε να μην την ανοίγει το Wine, και πραγματικά το
πρόγραμμα εμφανίστηκε κανονικά μετά. Το αστείο είναι ότι το log λέει
τώρα:

trace:font:WineEngCreateFontInstance L"MS Shell Dlg", h=-13, it=0, weight=700, PandF=00, charset=161 orient 0 escapement 0
trace:font:WineEngCreateFontInstance substituting L"MS Shell Dlg" -> L"Tahoma"
trace:font:WineEngCreateFontInstance Chosen: L"Georgia" L"Bold" (/usr/share/fonts/corefonts/georgiab.ttf:0)
trace:font:OpenFontFile "/usr/share/fonts/corefonts/georgiab.ttf", 0, 0x -13

Δηλαδή ανοίγει τελικά την "Georgia". Πιθανόν να φταίει εκείνο το
"Bold" - δεν ξέρω μήπως πρέπει να μπει διαφορετική εγγραφή στο registry
για την MS Shell Dlg Bold, την MS Shell Dlg Italic κλπ.

Ελπίζω να βοήθησα. Πάντως κάποιος πρέπει να πάει και να προσθέσει
ελληνικά στις γραμματοσειρές του Wine, στις bitmap δεν είναι δύσκολο.
Είμαι σίγουρος ότι το ίδιο πρόβλημα το έχει αντιμετωπίσει πολύς κόσμος
και είναι κρίμα.

Α, και κάτι που σκέφτηκα: αυτό που κάνει το WhitePagesDirect είναι πολύ
χρήσιμο, και πρέπει να γίνεται πολύ εύκολα με κάποιο σκριπτάκι. Θα το
κοιτάξω...

-- 
Αλέξανδρος Διαμαντίδης * adia at hellug.gr




More information about the Linux-greek-users mailing list