diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2015-06-09 15:57:29 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2015-06-09 16:00:56 +0300 |
commit | 3092e1031d2194e9d6fcc8f157a6e0fcb5d1e45a (patch) | |
tree | 3a3319641de3e0781a3bb6242ff3bd561446f5da /source/blender/blenkernel | |
parent | af980a20a46c9c865418cf60ddaf669e37587bfb (diff) |
Fix T45003: some UI/i18n issues.
* Do not translate renderlayers' names, those are data, not UI (defined by user).
* Translate passes' names, even in button itself (menu items were already translated).
* Translate 'ID type' in ID eyedropper helper message.
Also, added i18n context to IDType private struct, and `BKE_idcode_to_translation_context()`
helper, much more generic and easy to maintain than the private util in interface_template.c.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_idcode.h | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/idcode.c | 87 |
2 files changed, 53 insertions, 35 deletions
diff --git a/source/blender/blenkernel/BKE_idcode.h b/source/blender/blenkernel/BKE_idcode.h index 10a34838662..420df77ff1e 100644 --- a/source/blender/blenkernel/BKE_idcode.h +++ b/source/blender/blenkernel/BKE_idcode.h @@ -34,6 +34,7 @@ const char *BKE_idcode_to_name(int code); const char *BKE_idcode_to_name_plural(int code); +const char *BKE_idcode_to_translation_context(int code); int BKE_idcode_from_name(const char *name); bool BKE_idcode_is_linkable(int code); bool BKE_idcode_is_valid(int code); diff --git a/source/blender/blenkernel/intern/idcode.c b/source/blender/blenkernel/intern/idcode.c index 1b7a03ec80e..091d8a6ea17 100644 --- a/source/blender/blenkernel/intern/idcode.c +++ b/source/blender/blenkernel/intern/idcode.c @@ -37,11 +37,15 @@ #include "BLI_utildefines.h" +#include "BLF_translation.h" + #include "BKE_idcode.h" typedef struct { unsigned short code; const char *name, *plural; + + const char *i18n_context; int flags; #define IDTYPE_FLAGS_ISLINKABLE (1 << 0) @@ -50,41 +54,41 @@ typedef struct { /* plural need to match rna_main.c's MainCollectionDef */ /* WARNING! Keep it in sync with i18n contexts in BLF_translation.h */ static IDType idtypes[] = { - { ID_AC, "Action", "actions", IDTYPE_FLAGS_ISLINKABLE }, - { ID_AR, "Armature", "armatures", IDTYPE_FLAGS_ISLINKABLE }, - { ID_BR, "Brush", "brushes", IDTYPE_FLAGS_ISLINKABLE }, - { ID_CA, "Camera", "cameras", IDTYPE_FLAGS_ISLINKABLE }, - { ID_CU, "Curve", "curves", IDTYPE_FLAGS_ISLINKABLE }, - { ID_GD, "GPencil", "grease_pencil", IDTYPE_FLAGS_ISLINKABLE }, /* rename gpencil */ - { ID_GR, "Group", "groups", IDTYPE_FLAGS_ISLINKABLE }, - { ID_ID, "ID", "ids", 0 }, /* plural is fake */ - { ID_IM, "Image", "images", IDTYPE_FLAGS_ISLINKABLE }, - { ID_IP, "Ipo", "ipos", IDTYPE_FLAGS_ISLINKABLE }, /* deprecated */ - { ID_KE, "Key", "shape_keys", 0 }, - { ID_LA, "Lamp", "lamps", IDTYPE_FLAGS_ISLINKABLE }, - { ID_LI, "Library", "libraries", 0 }, - { ID_LS, "FreestyleLineStyle", "linestyles", IDTYPE_FLAGS_ISLINKABLE }, - { ID_LT, "Lattice", "lattices", IDTYPE_FLAGS_ISLINKABLE }, - { ID_MA, "Material", "materials", IDTYPE_FLAGS_ISLINKABLE }, - { ID_MB, "Metaball", "metaballs", IDTYPE_FLAGS_ISLINKABLE }, - { ID_MC, "MovieClip", "movieclips", IDTYPE_FLAGS_ISLINKABLE }, - { ID_ME, "Mesh", "meshes", IDTYPE_FLAGS_ISLINKABLE }, - { ID_MSK, "Mask", "masks", IDTYPE_FLAGS_ISLINKABLE }, - { ID_NT, "NodeTree", "node_groups", IDTYPE_FLAGS_ISLINKABLE }, - { ID_OB, "Object", "objects", IDTYPE_FLAGS_ISLINKABLE }, - { ID_PA, "ParticleSettings", "particles", 0 }, - { ID_PAL, "Palettes", "palettes", IDTYPE_FLAGS_ISLINKABLE }, - { ID_PC, "PaintCurve", "paint_curves", IDTYPE_FLAGS_ISLINKABLE }, - { ID_SCE, "Scene", "scenes", IDTYPE_FLAGS_ISLINKABLE }, - { ID_SCR, "Screen", "screens", 0 }, - { ID_SEQ, "Sequence", "sequences", 0 }, /* not actually ID data */ - { ID_SPK, "Speaker", "speakers", IDTYPE_FLAGS_ISLINKABLE }, - { ID_SO, "Sound", "sounds", IDTYPE_FLAGS_ISLINKABLE }, - { ID_TE, "Texture", "textures", IDTYPE_FLAGS_ISLINKABLE }, - { ID_TXT, "Text", "texts", IDTYPE_FLAGS_ISLINKABLE }, - { ID_VF, "VFont", "fonts", IDTYPE_FLAGS_ISLINKABLE }, - { ID_WO, "World", "worlds", IDTYPE_FLAGS_ISLINKABLE }, - { ID_WM, "WindowManager", "window_managers", 0 }, + { ID_AC, "Action", "actions", BLF_I18NCONTEXT_ID_ACTION, IDTYPE_FLAGS_ISLINKABLE }, + { ID_AR, "Armature", "armatures", BLF_I18NCONTEXT_ID_ARMATURE, IDTYPE_FLAGS_ISLINKABLE }, + { ID_BR, "Brush", "brushes", BLF_I18NCONTEXT_ID_BRUSH, IDTYPE_FLAGS_ISLINKABLE }, + { ID_CA, "Camera", "cameras", BLF_I18NCONTEXT_ID_CAMERA, IDTYPE_FLAGS_ISLINKABLE }, + { ID_CU, "Curve", "curves", BLF_I18NCONTEXT_ID_CURVE, IDTYPE_FLAGS_ISLINKABLE }, + { ID_GD, "GPencil", "grease_pencil", BLF_I18NCONTEXT_ID_GPENCIL, IDTYPE_FLAGS_ISLINKABLE }, /* rename gpencil */ + { ID_GR, "Group", "groups", BLF_I18NCONTEXT_ID_GROUP, IDTYPE_FLAGS_ISLINKABLE }, + { ID_ID, "ID", "ids", BLF_I18NCONTEXT_ID_ID, 0 }, /* plural is fake */ + { ID_IM, "Image", "images", BLF_I18NCONTEXT_ID_IMAGE, IDTYPE_FLAGS_ISLINKABLE }, + { ID_IP, "Ipo", "ipos", "", IDTYPE_FLAGS_ISLINKABLE }, /* deprecated */ + { ID_KE, "Key", "shape_keys", BLF_I18NCONTEXT_ID_SHAPEKEY, 0 }, + { ID_LA, "Lamp", "lamps", BLF_I18NCONTEXT_ID_LAMP, IDTYPE_FLAGS_ISLINKABLE }, + { ID_LI, "Library", "libraries", BLF_I18NCONTEXT_ID_LIBRARY, 0 }, + { ID_LS, "FreestyleLineStyle", "linestyles", BLF_I18NCONTEXT_ID_FREESTYLELINESTYLE, IDTYPE_FLAGS_ISLINKABLE }, + { ID_LT, "Lattice", "lattices", BLF_I18NCONTEXT_ID_LATTICE, IDTYPE_FLAGS_ISLINKABLE }, + { ID_MA, "Material", "materials", BLF_I18NCONTEXT_ID_MATERIAL, IDTYPE_FLAGS_ISLINKABLE }, + { ID_MB, "Metaball", "metaballs", BLF_I18NCONTEXT_ID_METABALL, IDTYPE_FLAGS_ISLINKABLE }, + { ID_MC, "MovieClip", "movieclips", BLF_I18NCONTEXT_ID_MOVIECLIP, IDTYPE_FLAGS_ISLINKABLE }, + { ID_ME, "Mesh", "meshes", BLF_I18NCONTEXT_ID_MESH, IDTYPE_FLAGS_ISLINKABLE }, + { ID_MSK, "Mask", "masks", BLF_I18NCONTEXT_ID_MASK, IDTYPE_FLAGS_ISLINKABLE }, + { ID_NT, "NodeTree", "node_groups", BLF_I18NCONTEXT_ID_NODETREE, IDTYPE_FLAGS_ISLINKABLE }, + { ID_OB, "Object", "objects", BLF_I18NCONTEXT_ID_OBJECT, IDTYPE_FLAGS_ISLINKABLE }, + { ID_PA, "ParticleSettings", "particles", BLF_I18NCONTEXT_ID_PARTICLESETTINGS, 0 }, + { ID_PAL, "Palettes", "palettes", BLF_I18NCONTEXT_ID_PALETTE, IDTYPE_FLAGS_ISLINKABLE }, + { ID_PC, "PaintCurve", "paint_curves", BLF_I18NCONTEXT_ID_PAINTCURVE, IDTYPE_FLAGS_ISLINKABLE }, + { ID_SCE, "Scene", "scenes", BLF_I18NCONTEXT_ID_SCENE, IDTYPE_FLAGS_ISLINKABLE }, + { ID_SCR, "Screen", "screens", BLF_I18NCONTEXT_ID_SCREEN, 0 }, + { ID_SEQ, "Sequence", "sequences", BLF_I18NCONTEXT_ID_SEQUENCE, 0 }, /* not actually ID data */ + { ID_SPK, "Speaker", "speakers", BLF_I18NCONTEXT_ID_SPEAKER, IDTYPE_FLAGS_ISLINKABLE }, + { ID_SO, "Sound", "sounds", BLF_I18NCONTEXT_ID_SOUND, IDTYPE_FLAGS_ISLINKABLE }, + { ID_TE, "Texture", "textures", BLF_I18NCONTEXT_ID_TEXTURE, IDTYPE_FLAGS_ISLINKABLE }, + { ID_TXT, "Text", "texts", BLF_I18NCONTEXT_ID_TEXT, IDTYPE_FLAGS_ISLINKABLE }, + { ID_VF, "VFont", "fonts", BLF_I18NCONTEXT_ID_VFONT, IDTYPE_FLAGS_ISLINKABLE }, + { ID_WO, "World", "worlds", BLF_I18NCONTEXT_ID_WORLD, IDTYPE_FLAGS_ISLINKABLE }, + { ID_WM, "WindowManager", "window_managers", BLF_I18NCONTEXT_ID_WINDOWMANAGER, 0 }, }; static IDType *idtype_from_name(const char *str) @@ -176,6 +180,19 @@ const char *BKE_idcode_to_name_plural(int code) } /** + * Convert an idcode into its translations' context. + * + * \param code The code to convert. + * \return A static string representing the i18n context of the code. + */ +const char *BKE_idcode_to_translation_context(int code) +{ + IDType *idt = idtype_from_code(code); + BLI_assert(idt); + return idt ? idt->i18n_context : BLF_I18NCONTEXT_DEFAULT; +} + +/** * Return an ID code and steps the index forward 1. * * \param index start as 0. |