Re: GIMP menu items
- From: Karl Eichwalder <keichwa gmx net>
- To: Sven Neumann <sven gimp org>
- Cc: Ole Laursen <olau hardworking dk>, gnome-i18n gnome org
- Subject: Re: GIMP menu items
- Date: Sat, 15 Mar 2003 07:45:49 +0100
Sven Neumann <sven@gimp.org> writes:
> However we wrote this code some years ago and perhaps in the meantime
> someone has come up with a more elegant way to handle menu
> translation. I'd be happy to hear about it.
It's okay to see the complete path in msgid, but the translator must be
allowed to leave out all parts but the last. This is what the gettext
manual proposes:
File: gettext.info, Node: GUI program problems, Next: Optimized gettext, Prev: Plural forms, Up: gettext
How to use `gettext' in GUI programs
[...]
To enlengthen the strings a uniform method should be used. E.g., in
the example above the strings could be chosen as
Menu|File
Menu|Printer
Menu|File|Open
Menu|File|New
Menu|Printer|Select
Menu|Printer|Open
Menu|Printer|Connect
Now all the strings are different and if now instead of `gettext'
the following little wrapper function is used, everything works just
fine:
char *
sgettext (const char *msgid)
{
char *msgval = gettext (msgid);
if (msgval == msgid)
msgval = strrchr (msgid, '|') + 1;
return msgval;
}
What this little function does is to recognize the case when no
translation is available. This can be done very efficiently by a
pointer comparison since the return value is the input value. If there
is no translation we know that the input string is in the format we used
for the Menu entries and therefore contains a `|' character. We simply
search for the last occurrence of this character and return a pointer
to the character following it. That's it!
[end of quote]
--
ke@suse.de (work) / keichwa@gmx.net (home): |
http://www.gnu.franken.de/ke/ | ,__o
Free Translation Project: | _-\_<,
http://www.iro.umontreal.ca/contrib/po/HTML/ | (*)/'(*)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]