Testing the updated IM support in GTK+
In Improving input method support in GTK+-based apps, we talked about some work to update the list of compose sequences that GTK+ knows to the latest version that comes from Xorg. From 691 compose sequences, we now support over 5000.
The patch has landed in GTK+ (trunk), and here are instructions for testing.
- If you have not used jhbuild before, read the jhbuild instructions and install it.
- Add the following to your ~/.jhbuildrc file
branches['gtk+'] = None # Makes sure you build from the trunk of GTK+
- Install gtk+ using the command (see the comment of James on this post on how to avoid Step 5 below)
jhbuild build gtk+
- About 40 minutes later, and about 700MB of space (~600MB for source, ~100MB for installation of files) consumed, you should get a working copy of GTK+ 2.12.
- You can use this compiled version of GTK+ by running
jhbuild shell
This should give you a new shell, and whatever you run from here will use our fresh GTK+. Try running "gedit". You will notice that the theme is different; it uses the default theme due to the special GTK+. This shell has set special environment variables so that program that run will use the fresh GTK+. The rest of the libraries come from our distribution.
If you try to type compose sequences, you will notice no improvement. This is because at the moment jhbuild builds the branch 2.12 of GTK+ and not trunk. We need to download GTK+ from trunk and rebuild.cd ~/checkout/gnome2/ mv gtk+ gtk+-branch-2.12 svn co svn://svn.gnome.org/svn/gtk+/trunk gtk+ jhbuild build --no-network gtk+Perform Step 4 and get gedit running.
How to test?
- Setup a keyboard layout that supports a good variety of dead keys. My preference is GBr (United Kingdom). Here, AltGr+[];'#/ and AltGr+{}:@~? produce different dead keys. You press one of these combinations and then you press a letter. If such a combination exists, then it gets printed. For example, the old GTK+ produces öõóôòx åōőxxx. The new GTK+ produces öõóôòọ åōőǒŏȯ (12 dead keys).
- Setup Greek, Polytonic (Ancient Greek). The dead keys are [];' {}:@ AltGr+[] (10 dead keys). Produce characters such as ᾅᾂᾷῗὕὒᾥᾢῷ.
- Try compose sequences as described from the upstream file at XOrg. For example,
ComposeKey+( 1 0 ) produces ⑩. Try the same for 0-20, a-zA-Z.
- Other miscellaneous, Ṩǟấẫǡ (using GBr layout)
The next step would be to parse the list of compose sequences and produce a documentation file.
Keyboard layout for combining diacritics
Typically, if you want to type characters with accents, such as á, ë, ś, you need to configure a suitable keyboard layout that includes compose sequences for those characters. The produced characters are what we call as precomposed characters; which were included in the early stages of Unicode. Nowdays, the idea is that you do not need to define á as a distinct character because it can be represented as a and ´, where the latter is a combining diacritic.
When put together a character and a combining diacritic, they fuse together, producing a seemingly single character. á is a precomposed (really one character), while á is letter a and the combining diacritic called acute (two characters). You can type the latter á by
- Type a
- Press Ctrl+Shift+u, then type 301, then press space bar.
Western languages do not really require combining marks, so the existing keyboard layouts do not use them. Other scripts, such as the Congolese keyboard layout (based on Latin) make good use of them.
This is gedit showing off pango and DejaVu fonts (default font in major distributions).
Line 3 is a bit of an extreme, showing a sandwich of combining diacritics.
Line 4 shows the base character a with the combining diacritics from the Unicode range 0x300 to 0x315.
Both lines 3 and 4 were produced easily with a modified keyboard layout, which is show below.
Line 5 is just me being silly. You can have combining diacritics that enclose your base character.
$ cat /usr/share/X11/xkb/symbols/combining
partial alphanumeric_keys alternate_group
xkb_symbols "combining" {
name[Group1] = "Combining diacritics";
key.type[Group1] = "FOUR_LEVEL";
key <AD11> { [ NoSymbol, NoSymbol, 0x1000300, 0x1000301 ] }; // à á
key <AD12> { [ NoSymbol, NoSymbol, 0x1000302, 0x1000303 ] }; // â ã
key <AC10> { [ NoSymbol, NoSymbol, 0x1000304, 0x1000305 ] }; // ā a̅
key <AC11> { [ NoSymbol, NoSymbol, 0x1000306, 0x1000307 ] }; // ă ȧ
key <BKSL> { [ NoSymbol, NoSymbol, 0x1000308, 0x1000309 ] }; // ä ả
key <AB08> { [ NoSymbol, NoSymbol, 0x1000310, 0x1000311 ] }; // a̐ ȃ
key <AB09> { [ NoSymbol, NoSymbol, 0x1000312, 0x1000313 ] }; // a̒ a̓
key <AB10> { [ NoSymbol, NoSymbol, 0x1000314, 0x1000315 ] }; // a̔ a̕
};
$ diff -u /usr/share/X11/xkb/symbols/us.ORIGINAL /usr/share/X11/xkb/symbols/us
--- /usr/share/X11/xkb/symbols/us.ORIGINAL 2008-02-20 11:11:13.000000000 +0000
+++ /usr/share/X11/xkb/symbols/us 2008-02-20 13:02:07.000000000 +0000
@@ -492,3 +492,12 @@
name[Group1]= "U.S. English - Macintosh";
};
+partial alphanumeric_keys modifier_keys
+xkb_symbols "combining_us" {
+
+ include "us"
+ include "combining"
+
+ key.type[Group1] = "FOUR_LEVEL";
+ name[Group1] = "U.S. English - Combining";
+};
$ diff -u /usr/share/X11/xkb/rules/xorg.xml.ORIGINAL /usr/share/X11/xkb/rules/xorg.xml
--- /usr/share/X11/xkb/rules/xorg.xml.ORIGINAL 2008-02-20 11:27:00.000000000 +0000
+++ /usr/share/X11/xkb/rules/xorg.xml 2008-02-20 11:27:48.000000000 +0000
@@ -3643,6 +3643,12 @@
<description xml:lang="zh_TW">Macintosh</description>
</configItem>
</variant>
+ <variant>
+ <configItem>
+ <name>combining_us</name>
+ <description>Combining</description>
+ </configItem>
+ </variant>
</variantList>
</layout>
<layout>
$ _
Then, you select this keyboard layout (U.S. English) and variant (Combining) in the Keyboard Indicator applet.
Unlike dead keys, with combining diacritics you first type the base character (such as a) and then any combining diacritics.
Our sample layout variant puts the diacritics in the physical keys for [];'#,./. For example,
- a + AltGr+[ : à
- a + AltGr+Shift+[ : á
- a + AltGr+[ + AltGr+' : ằ
If your language has needs that can be solved with combining diacritics, this is how they are solved.
It is quite important to create keyboard layouts for all languages, and actually make good use of them.
Επιστροφή από GUADEC 2006
Σήμερα το πρωί επέστρεψα από το συνέδριο GNOME User and Developer European Conference (GUADEC).
Το συνέδριο ήταν μια πολύ καλή ευκαιρία για να συναντηθούν τα άτομα που εργάζονται στο ίδιο το γραφικό περιβάλλον GNOME και αλλά σημαντικά έργα όπως το Xorg.
Οι πρώτες δύο μέρες ήταν για warm up και υπήρχαν θέματα γενικά για το ελεύθερο λογισμικό. Υπήρξαν αναφορές για τοπικοποίηση ελεύθερου λογισμικού όπως OOo και Mozilla. Ο οργανισμός SIL International έκανε επίδειξη την δουλειά που κάνει με τη βιβλιοθήκη graphite, που επιτρέπει την απεικόνιση περίπλοκων γραφών (ινδικά, κτλ) καθώς και τη γραφή με τη χρήση combining marks. Για το τελευταίο, όταν π.χ. κάποιος γράφει ελληνικά μπορεί να χρησιμοποιήσει είτε χαρακτήρες precomposed (με τα σημάδια ήδη επάνω τους) είτε τους χαρακτήρες της αλφαβήτου με τα combining marks. Δοκιμάστε να γράψετε σε GNOME
α + Ctr-Shift-301 παράγει ά
Δηλαδή υπάρχει διαφορά στην κωδικοποίηση των ά και ά καθώς και μικρή διαφορά στην εμφάνιση τους. Σε παραδείγματα με πιο περίπλοκα σημάδια, το πρόβλημα αυτό είναι ακόμα πιο φανερό.

Με τη μηχανή graphite είναι δυνατό να αποδοθούν οι κατάλληλες πληροφορίες στις γραμματοσειρές για να γίνει η σωστή απεικόνιση.
Ακόμα, η βιβλιοθήκη KMFL επιτρέπει το εύκολο γράψιμο σε άλλες γλώσσες. Σε Ubuntu είναι διαθέσιμη ως συστατικό του SCIM.
Ο Federico Mena Quintero έκανε μια βασική παρουσίαση για τα πρώτα βήματα στο προγραμματισμό και στη δημιουργία επιρραμμάτων (patches). Στόχος της παρουσίασης ήταν να κάνει την τοπική κοινότητα να ξεκινήσει τον προγραμματισμό.
Την πρώτη ημέρα του Guadec ο Jeff Waugh άνοιξε το συνέδριο με παρουσίαση των βασικών στόχων του έργου GNOME. Στο προσκήνιο είναι ο Dave Neary.
![]()
Ο Alex Graveley παρουσίασε το Gimmie, ενός προγράμματος που μπορεί να αντικαταστήσει το ταμπλώ στο GNOME. Υπάρχει τώρα και ελληνική μετάφραση του πακέτου.
Ο Miguel κάθεται στα δεξιά (πράσινο t-shirt).
Η Kathy Sierra έκανε μια παρουσίαση με τίτλο How to make passionate users. Η παρουσίαση αυτή ήταν από της καλύτερες του συνεδρίου διότι παρουσίασε προβλήματα στη σωστή προβολή και διάδοση ελεύθερου λογισμικού. Συγκεκριμένα, πρέπει να υπάρχει μια ροή κατά τη διάρκεια της εκμάθησης ενός νέου πακέτου λογισμικού ώστε να γίνει η μετατροπή ενός νέου χρήστη σε ένα παθιασμένο χρήστη.
O Behdad έκανε μια παρουσίαση για το pango και τις γραμματοσειρές. Υπάρχει ένα ζήτημα για το θέμα της σωστής υποστήριξης ελληνικών στη διανομή Fedora Core Linux. Αυτή τη στιγμή η πιο κατάλληλη ελεύθερη γραμματοσειρά είναι η DejaVu. Δεν έγινε αναφορά στο ζήτημα αυτό, σε αυτό το σημείο.
O Robert Love έκανε μια παρουσίαση για το NetworkManager, που επιτρέπει εφαρμογές να διατηρούν μια σωστή σύνδεση με το δίκτυο. Το πακέτο αυτό είναι ιδιαίτερο σημαντικό όταν υπάρχουν πολλαπλά access points και θέλετε να υπάρχει αυτόματη ρύθμιση δικτύου. Στην ίδια παρουσίαση, ο Robert αναφέρθηκε και το πακέτο FUSE που επιτρέπει στους χρήστες να γράφουν τα δικά τους συστήματα αρχείων σε κατάσταση χρήστη (userspace).
Ο Damien Sandras παρουσίασε το Ekiga, πρόγραμμα επικοινωνίας μέσω φωνής και βίντεο. Φαίνεται ότι υπάρχει ανάγκη για βοήθεια στο θέμα της προώθησης του λογισμικού (μάρκετινγκ).
Ο Alexander Larsson παρουσίασε το νέο API για εκτυπώσεις σε GTK+. Υπήρξε συζήτηση για κάποιες επιλογές με το ενδεχόμενο να υπάρχουν άλλες επιλογές. Πάντως έγινε αναφορά ότι για τώρα δεν είναι εύκολη η αντιγραφή και επικόλληση του κειμένου μέσα από το νέο API.
Έπειτα, ο Federico έκανε το μεσημεριανό keynote με τίτλο How Much Faster? περιγράφοντας τις στρατηγικές βελτιστοποίησης του λογισμικού ώστε να μην υπάρχει παράξενα κολλήματα κατά τη χρήση (ζητήματα ροής από την παρουσίαση της Kathy). Υπάρχει ένα σημαντικό θέμα στην ανάλυση πακέτων λογισμικού όπως Evolution και Firefox για τη βελτιστοποίηση της χρήσης μνήμης και της διαδραστικότητάς τους.
O Glynn Foster παρουσίασε το πακέτο DTrace που επιτρέπει τον έλεγχο της λειτουργίας λογισμικού (χρειάζεται αλλαγές στον πυρήνα). Το DTrace είναι διαθέσιμο σε Solaris και FreeBSD. Είναι αρκετά καλό να το χρησιμοποιήσει κάποιος για την κατανόηση των προβλημάτων μνήμης/ταχύτητας των πακέτων ελεύθερου λογισμικού.
Την επόμενη μέρα, ο Lluis Sanchez παρουσίασε το MonoDevelop και τα νεώτερά του χαρακτηριστικά. Το MonoDevelop επιτρέπει την εύκολη δημιουργία εφαρμογών σε Mono αλλά και για άλλες γλώσσες.
Ο Jim Gettys παρουσίασε το έργο OLPC και αναφέρθηκε στις πληροφορίες που μπορεί να βρει κάποιος και από το www.laptop.org. Έβγαλα φωτογραφίες με τις διαφάνειες και θα τις βάλω κάπου σύντομα.
Ο Lluis Villa έκλεισε το συνέδριο GUADEC με μια πολύ δυνατή παρουσίαση. Ο Lluis ήταν bugmaster στο bugzilla.gnome.org και έχει προσφέρει αρκετά. Τώρα ξεκινά πτυχίο για δικηγόρος με αποτέλεσμα να είναι εκτός της σκηνής για τα επόμενα 4 χρόνια. Χρησιμοποίησε το στοιχείο αυτό για να αναφερθεί στο 2010 και σε τι πιστεύει να έχει γίνει μέχρι τότε. Το μήνυμά του ήταν ότι GNOME is about people.
Οι επόμενες δύο μέρες ήταν της μορφής After Hours workshop.
Υπήρξε μια συζήτηση για το OLPC από τον Jim Gettys. Έγινε αναφορά στην τοπικοποίηση και στα τυχόν προβλήματα καθώς και στο ζήτημα της ανάγκης hinting στις γραμματοσειρές.
Ακόμα, έγινε μια συζήτηση για το θέμα των γραμματοσειρών στη διανομή Fedora. Όπως είναι τώρα, όταν κάποιος εγκαταστήσει ελληνικά, έχει ένα αποτέλεσμα που μοιάζει με αυτό το χάλι. Ο λόγος για τον οποίο δεν έχει μπει άμεσα η γραμματοσειρά DejaVu στη διανομή Fedora είναι διότι η γραμματοσειρά αυτή περιλαμβάνει αραβικούς χαρακτήρες και μπορεί εν δυνάμει να δημιουργήσει πρόβλημα στους χρήστες από αραβικές χώρες. Ωστόσο, το ίδιο ζήτημα το έχουμε στα ελληνικά, και η πραγματική λύση είναι η επέκταση του υποσυστήματος fontconfig για να επιτρέπει τη μη-χρήση χαρακτήρων σε συγκεκριμένες γραμματοσειρές μέσω του αρχείου ρυθμίσεων /etc/fonts/fonts.conf
Ο Keith Package δήλωσε ότι θα δεχτεί επίρραμμα (patch) για την προσθήκη της νέας λειτουργίας, που θα απενεργοποιεί μια και καλή περιοχές χαρακτήρως σε συγκεκριμένες γραμματοσειρές. Κάτι τέτοιο είναι καλό για τα ελληνικά. Από την πλευρά του, οι Nicholas και Jay (sun.com) ετοίμασαν ένα επίρραμμα που υλοποιεί κάτι παραπλήσιο αλλά επιτρέπει εκείνους τους κακούς χαρακτήρες να είναι χρησιμοποιήσιμοι με απευθείας επιλογή. Κάτι τέτοιο ίσως είναι πιο θεμιτό διότι για π.χ. το κοινό που γράφει CJK και θέλουν τα ελληνικά που υπάρχουν στις γραμματοσειρές τους.
Ο Behdad από την πλευρά του δήλωσε ότι θα δεχτεί την DejaVu LGC. Τώρα είμαστε στο σημείο να κλείσει το ζήτημα με την επιλογή μιας ή και των δύο επιλογών.
Έκανα μια παρουσίαση για το θέμα της γραφής στο GNOME και συγκεκριμένα ότι είναι θεμιτό (desirable) να υπάρχει η δυνατότητα να μπορούν οι χρήστες να γράφουν ακόμα περισσότερους χαρακτήρες που υποστηρίζει το Unicode και οι γραμματοσειρές.
Η επιστροφή ήταν θεαματική. Προλάβαμε το αεροπλάνο με περιθώριο ~10 λεπτά. Το μέρος (venue) ήταν πολύ όμορφο και υπήρξε παραλία αρκετά κοντά...
Ένας από τους προσκεκλημένους ήταν από την Μογγολία. Του δώρισαν ένα βιβλίο για το Mono (εκείνο το μπλε βιβλίο) και έβαλε και τον Miguel να το υπογράψει ![]()
Το επόμενο Guadec θα γίνει στο Birmingham, στο H.B. Όσοι είστε στην Αγγλία αξίζει να πάτε.
How to easily modify a program in your Ubuntu?
Suppose we want to change the functionality of an Ubuntu application but we do not want to go into all the trouble of finding the source code, installing in /usr/local/, breaking dependencies with original versions and so on.
Let's change Character Map (gucharmap), and specifically change the default font size from 20pt to 14pt, so that when you start it there is more space in the character window. Currently Character Map does not offer an option to save this setting.
We get the source code of Character Map,
# apt-get source gucharmap
Then,
cd gucharmap-1.4.4/
and now we edit the file gucharmap/main.c
We know what to edit because we visited the GNOME CVS Website, at http://cvs.gnome.org/viewcvs/gucharmap/
and we examined the logs for the file http://cvs.gnome.org/viewcvs/gucharmap/gucharmap/main.c?view=log
which show that for Revision 1.69, the following change took place,
Log:
2004-02-01 Noah Levitt * gucharmap/gucharmap-table.c: Improve square size. * gucharmap/main.c: Increase default font size.
When we click on the link Diff to previous 1.68 of the above page, we pinpoint the change,
| version 1.68, Sun Feb 1 03:46:21 2004 UTC | version 1.69, Mon Feb 2 00:48:05 2004 UTC |
|---|---|
| Line 93 main (gint argc, gchar **argv) |
| Line 93 main (gint argc, gchar **argv) |
gint default_size = PANGO_PIXELS (1.5 * pango_font_description_get_size (window->style->font_desc));
gint default_size = PANGO_PIXELS (2.0 * pango_font_description_get_size (window->style->font_desc));
The change in the multiplier (from 1.5 to 2.0) changes the font size from 15pt to 20pt.
20pt is too big for us, therefore we edit the file gucharmap/main.c and change the 2.0 to 1.4 (14pt).
At this point we can compile the package using the command line
$ dpkg-buildpackage -rfakeroot -uc -b
dpkg-buildpackage: source package is gucharmap
dpkg-buildpackage: source version is 1:1.4.4-1ubuntu1
dpkg-buildpackage: source changed by Sebastien Bacher
dpkg-buildpackage: host architecture i386
fakeroot debian/rules clean..........
At this point it is possible that you will get an error that an essential package is missing. The above command line will name the missing files, therefore you can simply install by
# apt-get install package-name
In case you do not have the basic compiler packages, you would need to install the build-essential meta-package. Do
# apt-get install build-essential
Finally, after the dpkg-buildpackage command completes, it will create one or more .deb packages in the directory above gucharmap.
# cd ..
# ls -l *.deb
gucharmap_1.4.4-1ubuntu1_i386.deb
libgucharmap4_1.4.4-1ubuntu1_i386.deb
libgucharmap4-dev_1.4.4-1ubuntu1_i386.deb
#
You can now install them (over the original packages) by running
# dpkg -i gucharmap_1.4.4-1ubuntu1_i386.deb libgucharmap4_1.4.4-1ubuntu1_i386.deb libgucharmap4-dev_1.4.4-1ubuntu1_i386.deb
Now we start the Character Map from Applications/Accessories/ and we get the default character size of 14pt!
Is there something we should pay attention on top of this? Yes, we should investigate the GNOME Bugzilla in case there is relevant work on this issue. We visit
and specifically we click on the link Browse.
There, we select the package gucharmap (how do we know that Character Map is gucharmap? We either click on Help/About in Character Map which shows the internal name, or we run ps ax at a Applications/Accessories/Terminal while Character Map is running; the name gucharmap will pop up at the end of the long list.).
gucharmap is under the Desktop heading in the Browse list; or click on this direct link of bug reports on gucharmap.
If you start perusing the gucharmap bugs list, you will notice Bug #140414, titled remember settings. This report describes a superset of the problem we tried to solve above. That is, the bug report asks to enable Character Map to use the GNOME configuration database (gconf) so that it saves/remembers the user settings. However, this specific bug report is still pending.
The correct way to solve the configuration settings issue of gucharmap is to implement what is described in Bug #140414. If you have Ubuntu 6.06, you most likely have a very recent version of the source code of gucharmap. Therefore, the differences would be rather minimal. You can give it a go and try to get the gconf functionality in place.
You compile, install and test. If it works, you can make a patch of your changes; visit another directory and download a fresh copy of the source code using the apt-get source packagename command. Rename gucharmap-1.4.4 to gucharmap-1.4.4.ORIGINAL
# mv gucharmap-1.4.4 gucharmap-1.4.4.ORIGINAL
and make sure you clean the original gucharmap-1.4.4/ directory from compiled files (enter the directory were you did the source code changes and run make clean).
Finally, create a diff file,
# diff -ur ~/tmp/gucharmap-1.4.4.ORIGINAL ~/gucharmap-1.4.4/ > remember-settings.patch
In ideal terms, it is preferable if you could produce a patch for the latest version of gucharmap. That is, the version of gucharmap you get from http://cvs.gnome.org/viewcvs/gucharmap/. By doing so, the developers will love you because they will be able to simply apply the patch and limit the burden of adding the feature. Indeed, if it is too much effort to get a build system running, you can start off with simple patches and if you feel you are doing well with it, make the extra mile to have a build system. More on this in a future post.
Παν語
Η βιβλιοθήκη Παν語 (pango) επιτρέπει στις εφαρμογές να απεικονίζουν μια μεγάλη ποικιλία γλωσσών στο γραφικό περιβάλλον GNOME. Το όνομα προέρχεται από τις λέξεις Παν (ελληνικά: όλα) και 語 (γιαπωνέζικα: γλώσσα), δηλαδή όλες οι γλώσσες.
Ο Owen Taylor είναι ο βασικός συγγραφέας του Pango και αυτή τη στιγμή υπάρχει η διαδικασία ενημέρωσης του δικτυακού τόπου του λογισμικού.

Στη σελίδα παραδειγμάτων έχει προσθέσει το όνομα της βιβλιοθήκης με χρήση του Pango και ελεύθερων γραμματοσειρών, για τα ελληνικά έχει χρησιμοποιήσει MgOpen.
Asia Source 2005
Πρόσφατα είχα την ευκαιρία να παραβρεθώ στο Asia Source 2005, ένα γεγονός (event) που συγκεντρώνει άτομα από αναπτυσσόμενες χώρες και συγκεκριμένα μη-κερδοσκοπικούς οργανισμούς/μη-κυβερνητικούς οργανισμούς και τους εκπαιδεύει περί του ελεύθερου λογισμικού.
Η διάρκειά του ήταν 7 ημέρες και υπάρχαν 3 κατευθύνσεις (tracks), μία από τις οποίες ήταν και η τοπικοποίηση. Ήμουν "facilitator" στην κατεύθυνση της τοπικοποίησης, δηλαδή έπρεπε να βοηθήσω να διδάξουμε τις αρετές τις τοπικοποίησης σε μια ομάδα 10-15 ατόμων. Συνολικά είμασταν 5 facilitators για την τοπικοποίηση. Eίχαν καταφέρει να έρθουν 110 περίπου άτομα. Το μέρος που έγινε η εκδήλωση ήταν σε μια απομακρυσμένη περιοχή της Bangalore που κάνουν συχνά πολιτιστικές εκδηλώσεις και συγκεντρώσεις καλλιτεχνών.

Η εκδήλωση είχε τη μορφή ενός "team-building event" που ο καθένας είχε την ευκαιρία να γνωρίσει του άλλους και να μιλήσει μαζί τους. Μέσω της κοινωνικότητας και φιλίας είναι πιο εύκολο να κολλήσει η αγάπη για το ελεύθερο λογισμικό. Έτσι και έγινε. Υπήρξε η απαίτηση οι παρουσιάσεις να μην έχουν την μορφή διδασκαλίας ("lecture") παρά να υπάρχει συνεχής επικοινωνία και συμμετοχή με τους ενδιαφερόμενους.
Οι μαθητές αντιπροσώπευαν γλώσσες όπως χμερ (Καμπότζη), τέτουμ (ανατολικό τιμόρ), νεπαλέζικα, χίντι, κάνναντα (νότια ινδία), ινδονησιακά, βουρμέζικα (Βιρμανία), λουγκάντα, και ταϋλανδέζικα.

Εδώ βλέπετε ελληνικά, αραβικά, χίντι (ινδική γλώσσα), κάνναντα (ινδική γλώσσα), βουρμέζικα ("burmese"), μογγολικά και κμερ. Ένα μέρος της δουλειάς ήταν η μετάφραση του προγράμματος VLC, και το αποτέλεσμα φαίνεται εδώ.
Οι γλώσσες που μιλάνε στην Ν.Α. Ασία είναι γενικά συλλαβικές όπου τα φωνήεντα αντιπροσωπεύονται ως "τονικά" σημάδια (συγκρίνοντας με την ελληνική γλώσσα).
Για παράδειγμα, γράφουν "κ" και για να δηλώσουν τη συλλαβή "κα" βάζουν μια καμπύλη από πάνω κτλ. Για λόγους ευμορφίας, οι χαρακτήρες μπορεί να μαζεύονται μαζί για να γλυτώνουν χώρο, που το κάνουν κάπως πιο δύσκολο στην εμφάνιση στον υπολογιστή. Για παράδειγμα, για τη γλώσσα χμερ μόλις τώρα υλοποιήθηκε η υποστήριξη για το πακέτο pango και αναμένεται να εμφανιστεί για γενική χρήση στην επόμενη σταθερή έκδοση σε μερικούς μήνες.
Ένα ενδιαφέρον συμπέρασμα είναι ότι σε κάθε γλώσσα υπάρχουν παραδείγματα του γλωσσικού φαινομένου που ενώνει δύο συλλαβές σε μία. Για παράδειγμα, στα ελληνικά, η Κνωσός ήταν γνωστή ως ΚΟ-ΝΟ-ΣΟ στην εποχή της Γραμμικής Β. Μετά από χρήση και εκατοντάδες χρόνια, συμπτύχθηκε σε Κνωσός. Παραδείγματα στην Ασία: γράφουν κοραμαγκάλα ενώ προφέρουν κοραμαγκλά, γράφουν μπουμιπουτέρα ενώ προφέρουν μπουμιπούτρα.
Όπως σε όλο τον κόσμο, υπάρχει σύγχυση με την τοπικοποίηση, "μήπως πρέπει να μάθουμε αγγλικά και να μην ασχοληθούμε με την τοπικοποίηση;". Η τοπικοποίηση δεν προσπαθεί να κάνει τον πληθυσμό να μην μάθει αγγλικά, προσπαθεί να κάνει άτομα που για κάποιο λόγο δεν ξέρουν αγγλικά να χρησιμοποιήσουν ηλεκτρονικούς υπολογιστές και ότι πλεονεκτήματα προσφέρουν. Ένα άτομο συγκεκριμένα έκανε έντονα την ερώτηση, ο οποίος ασχολείται με λογισμικό για άτομα με ειδικές ανάγκες (χρήση λογισμικού για κείμενο-προς-ομιλία, πρόγραμμα festival, gnopernicus κτλ). Η θέση του ήταν ότι είναι καλύτερο να εκπαιδευτεί ο κόσμος να μάθει αγγλικά παρά να χρησιμοποιούν τις τοπικές γλώσσες. Όμως, όπως άτομα δουλεύουν στο ελεύθερο λογισμικό να γίνει προσβάσιμο για άτομα με ειδικές ανάγκες, έτσι γίνεται δουλειά για την τοπικοποίηση. Η πληροφορική σκοπό έχει να προσαρμόζεται με τις ανάγκες των ανθρώπων και όχι το αντίθετο.
Εκτός από την τοπικοποίηση, έκανα δύο απογευματινές παρουσιάσεις στην ασφάλεια πληροφοριακών συστημάτων.
DocBook XML και ελληνικά, περισσότερα
Στο Docbook XML και ελληνικά (ενημέρωση) έγινε αναφορά για τη δημιουργία αρχείου PDF με ελληνικά. Εδώ η μηχανή XSLT xsltproc μετατρέπει το αρχείο DocBook XML μέσω της μηχανής FO PassiveTex σε μορφή PDF, με όσους περιορισμούς έχει το LaTeX.
Για την παραγωγή των ελληνικών χαρακτήρων μέσω PassiveTex, γίνεται χρήση του περιβάλλοντος μαθηματικών του LaTeX (π.χ. \ensuremath{\alpha} για "α") με αποτέλεσμα να είναι μεν η τελική γραμματοσειρά κανονική (όχι η Symbol), να μην είναι όμως το αποτέλεσμα σωστή στοιχειοθεσία.
Η μηχανή FO xmlroff (περιλαμβάνει XSLT) παράγει ελληνικό (και πολυτονικό) κείμενο, το παραγόμενο .PDF είναι πολύ μεγάλο λόγω της ενσωμάτωσης γραμματοσειρών(;). Ωστόσο, χάρις στη βιβλιοθήκη pango μπορεί να απεικονίσει μεγάλη ποικιλία γλωσσών. Στο παράδειγμα απεικονίζονται ελληνικά/πολυτονικό, ρωσικά, αραβικά και ταμίλ.
Η μηχανές XSLT Xalan και FO FOP παράγουν καλό αποτέλεσμα, γρήγορα και το παραγόμενο PDF είναι αρκετά μικρό. Μπορεί εύκολα να καθορίσει γραμματοσειρά. Δείτε το κείμενο της αποκάλυψης με τη γραμματοσειρά Palatίno Lίnotype Unicode.
Γενικά, για να δοκιμάσετε την τύχη σας με τη διαδικασία δημιουργίας αρχείων PDF από XML ή FO, ξεκινήστε με μια μηχανή XSLT και μετά με μια μηχανή FO από τις λίστες XSL publishing tools.




