Il giorno lun, 30/10/2006 alle 01.21 +0000, Jamie McCracken ha scritto:
Luca Ferretti wrote:Il giorno gio, 26/10/2006 alle 10.32 +0200, Luca Ferretti ha scritto:Following my email on desktop-devel list, here is the updated patch to add support for translation in tracker. As Jamie said on desktop-devel list, there are 2 requests to match: * the only component that need l10n is the search toolDoh! This is not true. Console tools need also i18n for --help and messages....I assume its just needed for the --help stuff in the command line tools? as trackerd is norammly going to be an invisible process I dont think this needs i18n? Do other daemons like gnome-vfs-daemon print out i18n messages? I would like to avoid i18n in trackerd if possible thanks anyway for your hard work in this area
Note: Jamie, the patch in the previous mail (that I forgot to send to ml too) was wrong, due to an accidental NULL removal. OK, the final patch is attached here. I've just commited on cvs some needed stuff to apply and test it (po/POTFILES*, po/ChangeLog and po/it.po). You just have to update your cvs sandbox and apply the attached patch to test it (more later). ## What the patch does ## The attached patch will apply some changes to some files, as follow: * Makefile.am - Add po directory to SUBDIRS variable, no needs to make it conditional, cause the l10n/i18n support is available for non-GNOME stuff too. * src/tracker-search-tool.c - add N_() and _() macros to enable translations, plus change some strings for service selection (All file ... Development ... Plain text) for HIG compliance (no title capitalization) and homogeneous appearance. * src/libtracker/tracker-search.c - Add N_() and _() macros to enable translations (--help stuff end error messages), plus some changes, i.e 1. use "THIS" appearance, not "this" for replaceable values (for example --service=SERVICE) as should be suggested somewhere by GNU coding style. At least this is the style used by coreutils (try `ls --help`) 2. use the first capital letter for error message (for example s/no\ results/No\ results); honestly, to match GNU coding style[1] we should use "%s: error message\n", where %s is the command that was invoked. Are you ok to do it? * configure.in - Most of changes are here. See next section for details ## How the l10n support was won ## The "framework" changes are in configure.in: * add generation of "config.h" file. This is really useful, 'cause it's simple to generate and to make available in C source. This file is used in l10n to "transport" the TRACKER_LOCALE and GETTEXT_PACKAGE definitions. TRACKER_LOCALE is the #define used to store the path to locale directory, GETTEXT_PACKAGE is the name of .mo file in locale directory. Both those variable are generate by the... * ... gettext/intltool stuff, that now are out of "if $have_gnome" statement. This is needed because l10n is applied to non-GNOME stuff too. Here is the ALL_LINGUAS variable where lang codes of available translations should be added. NOTE: the recent switch from ALL_LINGUAS to po/LINGUAS is GNOME modules was rejected here (by now), 'cause this will force us to depend on the latest intltool. * Finally a couple of cosmetic change to some PKG_CHECK_MODULES to make them more readable. ## How add l10n support to executables ## In short, add bindtextdomain (GETTEXT_PACKAGE, TRACKER_LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); in main(). For a more detailed info, see Biblio. ## What is missing ## The attached patch will simply add a minimum support. As you can see only tracker-seach and tracker-search-tool will gain l10n/i18n. All other stuff is intentionally excluded by now. The framework is here, ready to be applied to CVS, but there are some stuff to discuss before translators could start they work: 1. what we should translate 2. how messages should be IMHO we should translate command line options and error/info message from command line tools (stuff in src/libtracker/). The trackerd daemon should provide translations only for command line option. The log/error/info message should be in C locale, so it will be more simple for developers track issues. IMHO. About the style of message, I still have to read the "L10N Guidelines for Developers": moreover this is stuff for another thread. More reports and works on it in the next days (or weeks...) ## Testing ## I like to apply the patch to CVS, so all people can test it (sandboxes without GNOME, with old auto*, old gettext...). OK to commit? Meanwhile to test it, update you cvs checkout, apply the patch, rebuild tracker starting from autogen.sh, install it, then invoke tracked-search or tracker-search-tool using LANG=it LANGUAGE=it_IT tracker-search --help to see Italian message. ## Biblio ## * Internationalising GNOME applications http://www.gnome.org/~malcolm/i18n/ * L10N Guidelines for Developers http://developer.gnome.org/doc/tutorials/gnome-i18n/developer.html [1] http://www.gnu.org/prep/standards/html_node/Errors.html#Errors
Attachment:
tracker-l10n.diff
Description: Text Data