diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2013-03-24 16:13:13 +0400 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2013-03-24 16:13:13 +0400 |
commit | 385c72f5f26ae9c86bf40c127c44216ceea0e6c1 (patch) | |
tree | 6c0432578abee5437adc94e96b5a91c593b866b4 /source/blender/blenfont | |
parent | 5841d1c8145ba50addeb17fa0231705d949d8b3d (diff) | |
parent | b5ce1b1a23a3befbcc4cd3c67a5ec6a76d77aa5a (diff) |
Merged changes in the trunk up to revision 55546.
Conflicts resolved:
source/blenderplayer/bad_level_call_stubs/SConscript
Partly reverted changes to intern/cycles/blender/addon/ui.py in revision 52899
to make it easier to merge trunk changes.
Diffstat (limited to 'source/blender/blenfont')
-rw-r--r-- | source/blender/blenfont/BLF_translation.h | 13 | ||||
-rw-r--r-- | source/blender/blenfont/intern/blf.c | 1 | ||||
-rw-r--r-- | source/blender/blenfont/intern/blf_lang.c | 6 | ||||
-rw-r--r-- | source/blender/blenfont/intern/blf_translation.c | 37 |
4 files changed, 49 insertions, 8 deletions
diff --git a/source/blender/blenfont/BLF_translation.h b/source/blender/blenfont/BLF_translation.h index 19746f7d5b4..dc72c77b3bf 100644 --- a/source/blender/blenfont/BLF_translation.h +++ b/source/blender/blenfont/BLF_translation.h @@ -71,13 +71,16 @@ void BLF_free_unifont(void); unsigned char *BLF_get_unifont_mono(int *unifont_size); void BLF_free_unifont_mono(void); +bool BLF_is_default_context(const char *msgctxt); const char *BLF_pgettext(const char *msgctxt, const char *msgid); /* translation */ bool BLF_translate_iface(void); bool BLF_translate_tooltips(void); +bool BLF_translate_new_dataname(void); const char *BLF_translate_do_iface(const char *msgctxt, const char *msgid); const char *BLF_translate_do_tooltip(const char *msgctxt, const char *msgid); +const char *BLF_translate_do_new_dataname(const char *msgctxt, const char *msgid); /* The "translation-marker" macro. */ @@ -89,19 +92,23 @@ const char *BLF_translate_do_tooltip(const char *msgctxt, const char *msgid); /*# define _(msgid) BLF_gettext(msgid) */ # define IFACE_(msgid) BLF_translate_do_iface(NULL, msgid) # define TIP_(msgid) BLF_translate_do_tooltip(NULL, msgid) +# define DATA_(msgid) BLF_translate_do_new_dataname(NULL, msgid) # define CTX_IFACE_(context, msgid) BLF_translate_do_iface(context, msgid) # define CTX_TIP_(context, msgid) BLF_translate_do_tooltip(context, msgid) +# define CTX_DATA_(context, msgid) BLF_translate_do_new_dataname(context, msgid) #else /*# define _(msgid) msgid */ # define IFACE_(msgid) msgid # define TIP_(msgid) msgid +# define DATA_(msgid) msgid # define CTX_IFACE_(context, msgid) msgid # define CTX_TIP_(context, msgid) msgid +# define CTX_DATA_(context, msgid) msgid #endif /* Helper macro, when we want to define a same msgid for multiple msgctxt... * Does nothing in C, but is "parsed" by our i18n py tools. - * XXX Currently limited to at most 16 contexts at most + * XXX Currently limited to at most 16 contexts at once * (but you can call it several times with the same msgid, should you need more contexts!). */ #define BLF_I18N_MSGID_MULTI_CTXT(msgid, ...) @@ -122,7 +129,7 @@ const char *BLF_translate_do_tooltip(const char *msgctxt, const char *msgid); * with the same char! */ #define BLF_I18NCONTEXT_DEFAULT NULL -#define BLF_I18NCONTEXT_DEFAULT_BPY "*" +#define BLF_I18NCONTEXT_DEFAULT_BPYRNA "*" /* Default context for operator names/labels. */ #define BLF_I18NCONTEXT_OPERATOR_DEFAULT "Operator" @@ -175,7 +182,7 @@ typedef struct #define BLF_I18NCONTEXTS_DESC { \ BLF_I18NCONTEXTS_ITEM(BLF_I18NCONTEXT_DEFAULT, "default_real"), \ - BLF_I18NCONTEXTS_ITEM(BLF_I18NCONTEXT_DEFAULT_BPY, "default"), \ + BLF_I18NCONTEXTS_ITEM(BLF_I18NCONTEXT_DEFAULT_BPYRNA, "default"), \ BLF_I18NCONTEXTS_ITEM(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "operator_default"), \ BLF_I18NCONTEXTS_ITEM(BLF_I18NCONTEXT_ID_ACTION, "id_action"), \ BLF_I18NCONTEXTS_ITEM(BLF_I18NCONTEXT_ID_ARMATURE, "id_armature"), \ diff --git a/source/blender/blenfont/intern/blf.c b/source/blender/blenfont/intern/blf.c index e7e277b7b34..6523aa87473 100644 --- a/source/blender/blenfont/intern/blf.c +++ b/source/blender/blenfont/intern/blf.c @@ -619,6 +619,7 @@ void BLF_width_and_height_default(const char *str, float *width, float *height) return; } + BLF_size(global_font_default, global_font_points, global_font_dpi); BLF_width_and_height(global_font_default, str, width, height); } diff --git a/source/blender/blenfont/intern/blf_lang.c b/source/blender/blenfont/intern/blf_lang.c index d1c037b0358..65abfc52ee5 100644 --- a/source/blender/blenfont/intern/blf_lang.c +++ b/source/blender/blenfont/intern/blf_lang.c @@ -207,8 +207,10 @@ void BLF_lang_free(void) #endif } -#define ULANGUAGE ((U.language >= 0 && U.language < num_locales) ? U.language : 0) -#define LOCALE(_id) (locales ? locales[(_id)] : "") +#ifdef WITH_INTERNATIONAL +# define ULANGUAGE ((U.language >= 0 && U.language < num_locales) ? U.language : 0) +# define LOCALE(_id) (locales ? locales[(_id)] : "") +#endif void BLF_lang_set(const char *str) { diff --git a/source/blender/blenfont/intern/blf_translation.c b/source/blender/blenfont/intern/blf_translation.c index 4e9408c512a..57f442f8bfc 100644 --- a/source/blender/blenfont/intern/blf_translation.c +++ b/source/blender/blenfont/intern/blf_translation.c @@ -125,15 +125,22 @@ void BLF_free_unifont_mono(void) #endif } +bool BLF_is_default_context(const char *msgctxt) +{ + /* We use the "short" test, a more complete one could be: + * return (!msgctxt || !msgctxt[0] || !strcmp(msgctxt == BLF_I18NCONTEXT_DEFAULT_BPYRNA)) + */ + /* Note: trying without the void string check for now, it *should* not be necessary... */ + return (!msgctxt || msgctxt[0] == BLF_I18NCONTEXT_DEFAULT_BPYRNA[0]); +} + const char *BLF_pgettext(const char *msgctxt, const char *msgid) { #ifdef WITH_INTERNATIONAL const char *ret = msgid; if (msgid && msgid[0]) { - /*if (msgctxt && !strcmp(msgctxt, BLF_I18NCONTEXT_DEFAULT_BPY_INTERN)) { */ - if (msgctxt && (!msgctxt[0] || msgctxt[0] == BLF_I18NCONTEXT_DEFAULT_BPY[0])) { - /* BLF_I18NCONTEXT_DEFAULT_BPY context is reserved and considered the same as default NULL one. */ + if (BLF_is_default_context(msgctxt)) { msgctxt = BLF_I18NCONTEXT_DEFAULT; } ret = bl_locale_pgettext(msgctxt, msgid); @@ -170,6 +177,15 @@ bool BLF_translate_tooltips(void) #endif } +bool BLF_translate_new_dataname(void) +{ +#ifdef WITH_INTERNATIONAL + return (U.transopts & USER_DOTRANSLATE) && (U.transopts & USER_TR_NEWDATANAME); +#else + return false; +#endif +} + const char *BLF_translate_do_iface(const char *msgctxt, const char *msgid) { #ifdef WITH_INTERNATIONAL @@ -199,3 +215,18 @@ const char *BLF_translate_do_tooltip(const char *msgctxt, const char *msgid) return msgid; #endif } + +const char *BLF_translate_do_new_dataname(const char *msgctxt, const char *msgid) +{ +#ifdef WITH_INTERNATIONAL + if (BLF_translate_new_dataname()) { + return BLF_pgettext(msgctxt, msgid); + } + else { + return msgid; + } +#else + (void)msgctxt; + return msgid; +#endif +} |