diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2012-03-16 19:39:25 +0400 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2012-03-16 19:39:25 +0400 |
commit | 2caa507b7eaa7d55a0be7bda513f08ecfe4791f1 (patch) | |
tree | 86e65a98805030b6191643571c2eea1962da9ea7 /source/blender/blenfont | |
parent | 4e6669cee38ed81dc2e9be52f2900885295506f3 (diff) |
i18n stuff: adds translation_context to RNA structs (used for there ui name), and a first default "Operator" one for all operators' label.
The fact is, operators' label are nearly always verbs, while properties labels are nearly always nouns. So this should already solve many translations' problems regarding noun/verb confusion.
This commit also simplifies a bit i18n usage:
*Now IFACE_ and TIP_ macros (or there context versions, CTX_IFACE_/TIP_) are used nearly everywhere (with one exception, where code is a bit complex and needs to manually test whether ui/tip translations is allowed, so no need to redo it later through those macros).
*Also, those macros are now defined to NOP in case WITH_INTERNATIONAL is false, which avoid testing that define everywhere in code!
Diffstat (limited to 'source/blender/blenfont')
-rw-r--r-- | source/blender/blenfont/BLF_translation.h | 20 | ||||
-rw-r--r-- | source/blender/blenfont/intern/blf_translation.c | 20 |
2 files changed, 29 insertions, 11 deletions
diff --git a/source/blender/blenfont/BLF_translation.h b/source/blender/blenfont/BLF_translation.h index 4e09eb60928..5e2fee36af0 100644 --- a/source/blender/blenfont/BLF_translation.h +++ b/source/blender/blenfont/BLF_translation.h @@ -61,15 +61,25 @@ void BLF_lang_encoding(const char *str); /* translation */ int BLF_translate_iface(void); int BLF_translate_tooltips(void); -const char *BLF_translate_do_iface(const char *msgid); -const char *BLF_translate_do_tooltip(const char *msgid); +const char *BLF_translate_do_iface(const char *contex, const char *msgid); +const char *BLF_translate_do_tooltip(const char *contex, const char *msgid); -/* #define _(msgid) BLF_gettext(msgid) */ /* The "translation-marker" macro. */ #define N_(msgid) msgid /* Those macros should be used everywhere in UI code. */ -#define IFACE_(msgid) BLF_translate_do_iface(msgid) -#define TIP_(msgid) BLF_translate_do_tooltip(msgid) +#ifdef WITH_INTERNATIONAL +/* #define _(msgid) BLF_gettext(msgid) */ + #define IFACE_(msgid) BLF_translate_do_iface(NULL, msgid) + #define TIP_(msgid) BLF_translate_do_tooltip(NULL, msgid) + #define CTX_IFACE_(context, msgid) BLF_translate_do_iface(context, msgid) + #define CTX_TIP_(context, msgid) BLF_translate_do_tooltip(context, msgid) +#else +/* #define _(msgid) msgid */ + #define IFACE_(msgid) msgid + #define TIP_(msgid) msgid + #define CTX_IFACE_(context, msgid) msgid + #define CTX_TIP_(context, msgid) msgid +#endif #endif /* __BLF_TRANSLATION_H__ */ diff --git a/source/blender/blenfont/intern/blf_translation.c b/source/blender/blenfont/intern/blf_translation.c index 457545eeb17..dd9fe57fa82 100644 --- a/source/blender/blenfont/intern/blf_translation.c +++ b/source/blender/blenfont/intern/blf_translation.c @@ -154,11 +154,15 @@ int BLF_translate_tooltips(void) #endif } -const char *BLF_translate_do_iface(const char *msgid) +const char *BLF_translate_do_iface(const char *context, const char *msgid) { #ifdef WITH_INTERNATIONAL - if (BLF_translate_iface()) - return BLF_gettext(msgid); + if(BLF_translate_iface()) { + if (context) + return BLF_pgettext(context, msgid); + else + return BLF_gettext(msgid); + } else return msgid; #else @@ -166,11 +170,15 @@ const char *BLF_translate_do_iface(const char *msgid) #endif } -const char *BLF_translate_do_tooltip(const char *msgid) +const char *BLF_translate_do_tooltip(const char *context, const char *msgid) { #ifdef WITH_INTERNATIONAL - if (BLF_translate_tooltips()) - return BLF_gettext(msgid); + if(BLF_translate_tooltips()) { + if (context) + return BLF_pgettext(context, msgid); + else + return BLF_gettext(msgid); + } else return msgid; #else |