[Bf-blender-cvs] [3092e10] master: Fix T45003: some UI/i18n issues.

Bastien Montagne noreply at git.blender.org
Tue Jun 9 15:01:31 CEST 2015


Commit: 3092e1031d2194e9d6fcc8f157a6e0fcb5d1e45a
Author: Bastien Montagne
Date:   Tue Jun 9 14:57:29 2015 +0200
Branches: master
https://developer.blender.org/rB3092e1031d2194e9d6fcc8f157a6e0fcb5d1e45a

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.

===================================================================

M	source/blender/blenkernel/BKE_idcode.h
M	source/blender/blenkernel/intern/idcode.c
M	source/blender/editors/interface/interface_eyedropper.c
M	source/blender/editors/interface/interface_templates.c
M	source/blender/editors/space_image/image_buttons.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_idcode.h b/source/blender/blenkernel/BKE_idcode.h
index 10a3483..420df77 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 1b7a03e..091d8a6 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.
diff --git a/source/blender/editors/interface/interface_eyedropper.c b/source/blender/editors/interface/interface_eyedropper.c
index 4f77185..97aa865 100644
--- a/source/blender/editors/interface/interface_eyedropper.c
+++ b/source/blender/editors/interface/interface_eyedropper.c
@@ -36,6 +36,8 @@
 #include "BLI_blenlib.h"
 #include "BLI_math_vector.h"
 
+#include "BLF_translation.h"
+
 #include "BKE_context.h"
 #include "BKE_screen.h"
 #include "BKE_report.h"
@@ -435,7 +437,8 @@ static int datadropper_init(bContext *C, wmOperator *op)
 	type = RNA_property_pointer_type(&ddr->ptr, ddr->prop);
 	ddr->idcode = RNA_type_to_ID_code(type);
 	BLI_assert(ddr->idcode != 0);
-	ddr->idcode_name = BKE_idcode_to_name(ddr->idcode);
+	/* Note we can translate here (instead of on draw time), because this struct has very short lifetime. */
+	ddr->idcode_name = TIP_(BKE_idcode_to_name(ddr->idcode));
 
 	return true;
 }
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index bb4ae06..c3b58e2 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -370,35 +370,7 @@ static const cha

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list