Δημοσιεύτηκε: 08 Φεβ 2012, 17:48
Να υπενθυμίσω (νομίζω κάποιος το ανέφερε πιο πριν) ότι στο 1.03a ( http://www.box.com/s/ab162jsl07akhokasjil ) χρειάζεται κάπου στην αρχή του αρχείου gtk_tic.c να προσθέσετε:
Διόρθωσα λίγο το Makefile, είχε ένα μικρό προβληματάκι με το .pot αρχείο: https://gist.github.com/1766764
Αυτό είναι το locale μου:
Το LANGUAGE δίνει προτεραιότητα. Το gettext θα ψάξει πρώτα για την τιμή που έχει στο LANGUAGE:
http://www.gnu.org/software/gettext/man ... E-variable
«Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called LANGUAGE. GNU gettext gives preference to LANGUAGE over LC_ALL and LANG for the purpose of message handling, but you still need to have LANG (or LC_ALL) set to the primary language»
Το LANGUAGE έχει ήδη τεθεί και έχει τιμή "en_US:en". Το gettext υπολογίζω πως θα ψάξει πρώτα για τα αγγλικά.
strace με LANGUAGE=el_GR.UTF-8:
Χωρίς LANGUAGE, με LANG=el_GR.UTF-8 και LC_ALL=el_GR.UTF-8:
Στο δεύτερο φαίνεται πως ψάχνει αμέσως για en_US, όπως είναι η τιμή στο locale.
- Κώδικας: Επιλογή όλων
#include <locale.h>
Διόρθωσα λίγο το Makefile, είχε ένα μικρό προβληματάκι με το .pot αρχείο: https://gist.github.com/1766764
migf1 έγραψε:
Βέβαια, προσωπικά έχω απορία στο γιατί χρειάζεται να μπει και το /gtk_tic σtην LANGUAGE, καθώς επίσης και γιατί χρειάζεται και η LANGUAGE και δεν αρκούν οι ήδη υπάρχουσες LC_* και LANG.
Αυτό είναι το locale μου:
- Κώδικας: Επιλογή όλων
$ locale
LANG=en_GB.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE=en_US.UTF-8
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES=en_US.UTF-8
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=
Το LANGUAGE δίνει προτεραιότητα. Το gettext θα ψάξει πρώτα για την τιμή που έχει στο LANGUAGE:
http://www.gnu.org/software/gettext/man ... E-variable
«Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called LANGUAGE. GNU gettext gives preference to LANGUAGE over LC_ALL and LANG for the purpose of message handling, but you still need to have LANG (or LC_ALL) set to the primary language»
Το LANGUAGE έχει ήδη τεθεί και έχει τιμή "en_US:en". Το gettext υπολογίζω πως θα ψάξει πρώτα για τα αγγλικά.
strace με LANGUAGE=el_GR.UTF-8:
- Κώδικας: Επιλογή όλων
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
open("/home/forger/Desktop/gtk_tic_103a/lang/el_GR.UTF-8/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/forger/Desktop/gtk_tic_103a/lang/el_GR.utf8/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/forger/Desktop/gtk_tic_103a/lang/el_GR/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/forger/Desktop/gtk_tic_103a/lang/el.UTF-8/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/forger/Desktop/gtk_tic_103a/lang/el.utf8/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/forger/Desktop/gtk_tic_103a/lang/el/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = 3
open("/usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache", O_RDONLY) = 3
open("/usr/share/locale/el_GR.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el_GR.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el_GR/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el_GR.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el_GR.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el_GR/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el/LC_MESSAGES/gtk20.mo", O_RDONLY) = 3
open("/usr/share/locale/el_GR.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el_GR.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el_GR/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/el/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el_GR.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el_GR.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el_GR/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/el/LC_MESSAGES/libc.mo", O_RDONLY) = 3
Χωρίς LANGUAGE, με LANG=el_GR.UTF-8 και LC_ALL=el_GR.UTF-8:
- Κώδικας: Επιλογή όλων
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
open("/home/forger/Desktop/gtk_tic_103a/lang/en_US/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/forger/Desktop/gtk_tic_103a/lang/en/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en_US/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en/LC_MESSAGES/gtk_tic.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
Στο δεύτερο φαίνεται πως ψάχνει αμέσως για en_US, όπως είναι η τιμή στο locale.