I18n: various "new data translation" fixes...
authorBastien Montagne <montagne29@wanadoo.fr>
Tue, 26 Mar 2013 14:33:53 +0000 (14:33 +0000)
committerBastien Montagne <montagne29@wanadoo.fr>
Tue, 26 Mar 2013 14:33:53 +0000 (14:33 +0000)
release/scripts/modules/bl_i18n_utils/utils_spell_check.py
source/blender/blenkernel/intern/node.c
source/blender/editors/gpencil/gpencil_edit.c
source/blender/editors/render/CMakeLists.txt
source/blender/editors/render/SConscript
source/blender/editors/render/render_shading.c
source/blender/editors/space_image/image_ops.c
source/blender/editors/space_node/node_add.c

index 574553d75b7905fcb093205f8a006b10313662af..3dbddc30f0d3feafadcf4374a94733df80034d46 100644 (file)
@@ -374,6 +374,7 @@ class SpellChecker():
         "fluidsim",
         "frameserver",
         "enum",
+        "gpencil",
         "idcol",
         "keyframe", "keyframes", "keyframing", "keyframed",
         "metaball", "metaballs", "mball",
index 1c1102d91bae0fa2dbca88926bfc2365912d097f..a1d9d8af627864c80a8a0f3b0524df7669cdbee0 100644 (file)
@@ -126,11 +126,11 @@ static void node_init(const struct bContext *C, bNodeTree *ntree, bNode *node)
        /* initialize the node name with the node label.
         * note: do this after the initfunc so nodes get their data set which may be used in naming
         * (node groups for example) */
-       /* XXX Do not use nodeLabel() here, it returns translated content, which should *only* be used
-        *     in UI, *never* in data...
+       /* XXX Do not use nodeLabel() here, it returns translated content for UI, which should *only* be used
+        *     in UI, *never* in data... Data have their own translation option!
         *     This solution may be a bit rougher than nodeLabel()'s returned string, but it's simpler
-        *     than adding a "no translate" flag to this func (and labelfunc() as well). */
-       BLI_strncpy(node->name, ntype->ui_name, NODE_MAXSTR);
+        *     than adding "do_translate" flags to this func (and labelfunc() as well). */
+       BLI_strncpy(node->name, DATA_(ntype->ui_name), NODE_MAXSTR);
        nodeUniqueName(ntree, node);
        
        node_add_sockets_from_type(ntree, node, ntype);
@@ -816,7 +816,7 @@ bNode *nodeAddStaticNode(const struct bContext *C, bNodeTree *ntree, int type)
        
        NODE_TYPES_BEGIN(ntype)
                if (ntype->type == type) {
-                       idname = ntype->idname;
+                       idname = DATA_(ntype->idname);
                        break;
                }
        NODE_TYPES_END
index e4c7a1edbcb9156c27d5ec42c0661f40ca1f3f5c..ad32c5fcccfaf004897b1014f0479cb230db8c37 100644 (file)
@@ -43,6 +43,8 @@
 #include "BLI_rand.h"
 #include "BLI_utildefines.h"
 
+#include "BLF_translation.h"
+
 #include "DNA_anim_types.h"
 #include "DNA_curve_types.h"
 #include "DNA_object_types.h"
@@ -229,7 +231,7 @@ static int gp_data_add_exec(bContext *C, wmOperator *op)
                bGPdata *gpd = (*gpd_ptr);
                
                id_us_min(&gpd->id);
-               *gpd_ptr = gpencil_data_addnew("GPencil");
+               *gpd_ptr = gpencil_data_addnew(DATA_("GPencil"));
        }
        
        /* notifiers */
@@ -312,10 +314,10 @@ static int gp_layer_add_exec(bContext *C, wmOperator *op)
                return OPERATOR_CANCELLED;
        }
        if (*gpd_ptr == NULL)
-               *gpd_ptr = gpencil_data_addnew("GPencil");
-               
+               *gpd_ptr = gpencil_data_addnew(DATA_("GPencil"));
+       
        /* add new layer now */
-       gpencil_layer_addnew(*gpd_ptr, "GP_Layer", 1);
+       gpencil_layer_addnew(*gpd_ptr, DATA_("GP_Layer"), 1);
        
        /* notifiers */
        WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
index 3c5fd0b4ef732215058812e5d6fc3a25b6f0f163..c0b9088017ec8cecd1ca899a6756c9d565a64a21 100644 (file)
@@ -68,4 +68,8 @@ if(WITH_HEADLESS)
        add_definitions(-DWITH_HEADLESS)
 endif()
 
+if(WITH_INTERNATIONAL)
+       add_definitions(-DWITH_INTERNATIONAL)
+endif()
+
 blender_add_lib(bf_editor_render "${SRC}" "${INC}" "${INC_SYS}")
index 73bc711edd92e72521c9f9837d94bf304494ea32..9350caf5a12f5d4b8d7249f6b17ba58f8f68ebdf 100644 (file)
@@ -35,6 +35,8 @@ incs += ' ../../gpu'
 incs += ' ../../makesrna ../../render/extern/include  #/intern/elbeem/extern'
 incs += ' ../../blenloader ../../bmesh ../../blenfont'
 
+defs = []
+
 if env['OURPLATFORM'] == 'linux':
     cflags='-pthread'
     incs += ' ../../../extern/binreloc/include'
@@ -54,4 +56,7 @@ if env['OURPLATFORM'] == 'darwin':
     if env['WITH_BF_OPENMP']:
        env.Append(CFLAGS=['-DPARALLEL=1'])
 
-env.BlenderLib ( 'bf_editors_render', sources, Split(incs), [], libtype=['core'], priority=[45])
+if env['WITH_BF_INTERNATIONAL']:
+    defs.append('WITH_INTERNATIONAL')
+
+env.BlenderLib('bf_editors_render', sources, Split(incs), defs, libtype=['core'], priority=[45])
index dc26bde68619e5def1271241cefb6f75f067a234..979ccf3cf023c3defec27c0ebebab0ced50be138 100644 (file)
@@ -428,10 +428,12 @@ static int new_texture_exec(bContext *C, wmOperator *UNUSED(op))
        PropertyRNA *prop;
 
        /* add or copy texture */
-       if (tex)
+       if (tex) {
                tex = BKE_texture_copy(tex);
-       else
+       }
+       else {
                tex = add_texture(bmain, DATA_("Texture"));
+       }
 
        /* hook into UI */
        uiIDContextProperty(C, &ptr, &prop);
@@ -480,7 +482,7 @@ static int new_world_exec(bContext *C, wmOperator *UNUSED(op))
                wo = BKE_world_copy(wo);
        }
        else {
-               wo = add_world(bmain, "World");
+               wo = add_world(bmain, DATA_("World"));
 
                if (BKE_scene_use_new_shading_nodes(scene)) {
                        ED_node_shader_default(C, &wo->id);
index 7e0767bfcfb9d221218d41cd31dd721550981db0..4a78c54e9c03bb6fadb537256243681a266e22aa 100644 (file)
@@ -1707,6 +1707,7 @@ void IMAGE_OT_reload(wmOperatorType *ot)
 }
 
 /********************** new image operator *********************/
+#define IMA_DEF_NAME N_("Untitled")
 
 static int image_new_exec(bContext *C, wmOperator *op)
 {
@@ -1717,7 +1718,8 @@ static int image_new_exec(bContext *C, wmOperator *op)
        Main *bmain;
        PointerRNA ptr, idptr;
        PropertyRNA *prop;
-       char name[MAX_ID_NAME - 2];
+       char _name[MAX_ID_NAME - 2];
+       char *name = _name;
        float color[4];
        int width, height, floatbuf, gen_type, alpha;
 
@@ -1727,7 +1729,12 @@ static int image_new_exec(bContext *C, wmOperator *op)
        obedit = CTX_data_edit_object(C);
        bmain = CTX_data_main(C);
 
-       RNA_string_get(op->ptr, "name", name);
+       prop = RNA_struct_find_property(op->ptr, "name");
+       RNA_property_string_get(op->ptr, prop, name);
+       if (!RNA_property_is_set(op->ptr, prop)) {
+               /* Default value, we can translate! */
+               name = (char *)DATA_(name);
+       }
        width = RNA_int_get(op->ptr, "width");
        height = RNA_int_get(op->ptr, "height");
        floatbuf = RNA_boolean_get(op->ptr, "float");
@@ -1775,8 +1782,9 @@ static int image_new_exec(bContext *C, wmOperator *op)
 /* XXX Note: the WM_operator_props_dialog_popup() doesn't work for uiIDContextProperty(), image is not being that way */
 static int image_new_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
 {
+       /* Better for user feedback. */
+       RNA_string_set(op->ptr, "name", DATA_(IMA_DEF_NAME));
        return WM_operator_props_dialog_popup(C, op, 15 * UI_UNIT_X, 5 * UI_UNIT_Y);
-
 }
 
 void IMAGE_OT_new(wmOperatorType *ot)
@@ -1797,7 +1805,7 @@ void IMAGE_OT_new(wmOperatorType *ot)
        ot->flag = OPTYPE_UNDO;
 
        /* properties */
-       RNA_def_string(ot->srna, "name", "untitled", MAX_ID_NAME - 2, "Name", "Image datablock name");
+       RNA_def_string(ot->srna, "name", IMA_DEF_NAME, MAX_ID_NAME - 2, "Name", "Image datablock name");
        RNA_def_int(ot->srna, "width", 1024, 1, INT_MAX, "Width", "Image width", 1, 16384);
        RNA_def_int(ot->srna, "height", 1024, 1, INT_MAX, "Height", "Image height", 1, 16384);
        prop = RNA_def_float_color(ot->srna, "color", 4, NULL, 0.0f, FLT_MAX, "Color", "Default fill color", 0.0f, 1.0f);
@@ -1809,6 +1817,8 @@ void IMAGE_OT_new(wmOperatorType *ot)
        RNA_def_boolean(ot->srna, "float", 0, "32 bit Float", "Create image with 32 bit floating point bit depth");
 }
 
+#undef IMA_DEF_NAME
+
 /********************* invert operators *********************/
 
 static int image_invert_poll(bContext *C)
index fb9e1221c383889b06c100a60de9c305940690b2..0201071ada453cc8f4ba1c34d5d3e895c4a29063 100644 (file)
@@ -83,7 +83,7 @@ bNode *node_add_node(const bContext *C, const char *idname, int type, float locx
        
        /* generics */
        node->locx = locx;
-       node->locy = locy + 60.0f;              // arbitrary.. so its visible, (0,0) is top of node
+       node->locy = locy + 60.0f;     /* arbitrary... so its visible, (0,0) is top of node */
        nodeSetSelected(node, TRUE);
        
        /* node location is mapped */
@@ -436,7 +436,8 @@ static int new_node_tree_exec(bContext *C, wmOperator *op)
        PointerRNA ptr, idptr;
        PropertyRNA *prop;
        const char *idname;
-       char treename[MAX_ID_NAME - 2] = "NodeTree";
+       char _treename[MAX_ID_NAME - 2];
+       char *treename = _treename;
        
        if (RNA_struct_property_is_set(op->ptr, "type")) {
                prop = RNA_struct_find_property(op->ptr, "type");
@@ -445,8 +446,12 @@ static int new_node_tree_exec(bContext *C, wmOperator *op)
        else if (snode)
                idname = snode->tree_idname;
        
-       if (RNA_struct_property_is_set(op->ptr, "name"))
+       if (RNA_struct_property_is_set(op->ptr, "name")) {
                RNA_string_get(op->ptr, "name", treename);
+       }
+       else {
+               treename = (char *)DATA_("NodeTree");
+       }
        
        if (!ntreeTypeFind(idname)) {
                BKE_reportf(op->reports, RPT_ERROR, "Node tree type %s undefined", idname);