merge from trunk r37405
authorXiao Xiangquan <xiaoxiangquan@gmail.com>
Wed, 15 Jun 2011 08:28:56 +0000 (08:28 +0000)
committerXiao Xiangquan <xiaoxiangquan@gmail.com>
Wed, 15 Jun 2011 08:28:56 +0000 (08:28 +0000)
47 files changed:
1  2 
intern/ghost/intern/GHOST_DisplayManagerNULL.h
intern/ghost/intern/GHOST_SystemNULL.h
intern/ghost/intern/GHOST_WindowNULL.h
release/bin/.blender/fonts/unifont.ttf.gz
release/scripts/startup/bl_ui/space_userpref.py
release/scripts/startup/bl_ui/space_view3d.py
release/scripts/startup/bl_ui/space_view3d_toolbar.py
source/blender/blenlib/intern/path_util.c
source/blender/editors/animation/CMakeLists.txt
source/blender/editors/animation/SConscript
source/blender/editors/animation/anim_markers.c
source/blender/editors/armature/CMakeLists.txt
source/blender/editors/armature/SConscript
source/blender/editors/curve/CMakeLists.txt
source/blender/editors/curve/SConscript
source/blender/editors/datafiles/CMakeLists.txt
source/blender/editors/mesh/CMakeLists.txt
source/blender/editors/mesh/SConscript
source/blender/editors/object/CMakeLists.txt
source/blender/editors/object/SConscript
source/blender/editors/object/object_add.c
source/blender/editors/physics/CMakeLists.txt
source/blender/editors/physics/SConscript
source/blender/editors/screen/area.c
source/blender/editors/screen/screen_ops.c
source/blender/editors/sculpt_paint/CMakeLists.txt
source/blender/editors/sculpt_paint/SConscript
source/blender/editors/sculpt_paint/paint_utils.c
source/blender/editors/space_file/file_draw.c
source/blender/editors/space_file/file_ops.c
source/blender/editors/space_file/file_panels.c
source/blender/editors/space_graph/CMakeLists.txt
source/blender/editors/space_graph/SConscript
source/blender/editors/space_info/info_ops.c
source/blender/editors/space_logic/CMakeLists.txt
source/blender/editors/space_logic/SConscript
source/blender/editors/space_sequencer/CMakeLists.txt
source/blender/editors/space_sequencer/SConscript
source/blender/editors/space_view3d/view3d_edit.c
source/blender/editors/transform/CMakeLists.txt
source/blender/editors/uvedit/CMakeLists.txt
source/blender/editors/uvedit/SConscript
source/blender/windowmanager/intern/wm_files.c
source/blender/windowmanager/intern/wm_init_exit.c
source/blender/windowmanager/intern/wm_operators.c
source/creator/CMakeLists.txt
source/gameengine/GamePlayer/ghost/GPG_ghost.cpp

index 0000000000000000000000000000000000000000,ba4a36ee3d1f3f17e9527412e7dd645d9e90343a..e0bd224b2165ea6787fb0a38ffc810287dd2557c
mode 000000,100644..100755
--- /dev/null
@@@ -1,0 -1,51 +1,51 @@@
 - * $Id$
+ /*
++ * $Id: GHOST_DisplayManagerNULL.h 37194 2011-06-05 00:10:20Z gsrb3d $
+  * ***** BEGIN GPL LICENSE BLOCK *****
+  *
+  * This program is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU General Public License
+  * as published by the Free Software Foundation; either version 2
+  * of the License, or (at your option) any later version.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  * GNU General Public License for more details.
+  *
+  * You should have received a copy of the GNU General Public License
+  * along with this program; if not, write to the Free Software Foundation,
+  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+  *
+  * Contributor(s): Campbell Barton
+  *
+  * ***** END GPL LICENSE BLOCK *****
+  */
+ /** \file ghost/intern/GHOST_DisplayManagerNULL.h
+  *  \ingroup GHOST
+  * Declaration of GHOST_DisplayManagerNULL class.
+  */
+ #ifndef _GHOST_DISPLAY_MANAGER_NULL_H_
+ #define _GHOST_DISPLAY_MANAGER_NULL_H_
+ #include "GHOST_DisplayManager.h"
+ #include "GHOST_SystemNULL.h"
+ class GHOST_SystemNULL;
+ class GHOST_DisplayManagerNULL : public GHOST_DisplayManager
+ {
+ public:
+       GHOST_DisplayManagerNULL( GHOST_SystemNULL *system ) : GHOST_DisplayManager(), m_system(system) { /* nop */ }
+       GHOST_TSuccess getNumDisplays( GHOST_TUns8& numDisplays ) const { return GHOST_kFailure; }
+       GHOST_TSuccess getNumDisplaySettings( GHOST_TUns8 display, GHOST_TInt32& numSettings ) const{  return GHOST_kFailure; }
+       GHOST_TSuccess getDisplaySetting( GHOST_TUns8 display, GHOST_TInt32 index, GHOST_DisplaySetting& setting ) const { return GHOST_kFailure; }
+       GHOST_TSuccess getCurrentDisplaySetting( GHOST_TUns8 display, GHOST_DisplaySetting& setting ) const { return getDisplaySetting(display,GHOST_TInt32(0),setting); }
+       GHOST_TSuccess setCurrentDisplaySetting( GHOST_TUns8 display, const GHOST_DisplaySetting& setting ){ return GHOST_kSuccess; }
+ private :
+       GHOST_SystemNULL * m_system;
+ };
+ #endif /* _GHOST_DISPLAY_MANAGER_NULL_H_ */
index 0000000000000000000000000000000000000000,3bc68b45b0d7a338056fd8c142a0c1a646164208..de2cd97b192c59e43dd2e122f6064483c23b8995
mode 000000,100644..100755
--- /dev/null
@@@ -1,0 -1,93 +1,93 @@@
 - * $Id$
+ /*
++ * $Id: GHOST_SystemNULL.h 37194 2011-06-05 00:10:20Z gsrb3d $
+  * ***** BEGIN GPL LICENSE BLOCK *****
+  *
+  * This program is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU General Public License
+  * as published by the Free Software Foundation; either version 2
+  * of the License, or (at your option) any later version.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  * GNU General Public License for more details.
+  *
+  * You should have received a copy of the GNU General Public License
+  * along with this program; if not, write to the Free Software Foundation,
+  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+  *
+  * Contributor(s): Campbell Barton
+  *
+  * ***** END GPL LICENSE BLOCK *****
+  */
+ /** \file ghost/intern/GHOST_SystemNULL.h
+  *  \ingroup GHOST
+  * Declaration of GHOST_SystemNULL class.
+  */
+ #ifndef _GHOST_SYSTEM_NULL_H_
+ #define _GHOST_SYSTEM_NULL_H_
+ #include "GHOST_System.h"
+ #include "../GHOST_Types.h"
+ #include "GHOST_DisplayManagerNULL.h"
+ #include "GHOST_WindowNULL.h"
+ class GHOST_WindowNULL;
+ class GHOST_SystemNULL : public GHOST_System {
+ public:
+       GHOST_SystemNULL( ) : GHOST_System() { /* nop */ }
+       ~GHOST_SystemNULL() { /* nop */ }
+       bool processEvents(bool waitForEvent) { return false; }
+       int toggleConsole(int action) { return 0; }
+       GHOST_TSuccess getModifierKeys(GHOST_ModifierKeys& keys) const { return GHOST_kSuccess; }
+       GHOST_TSuccess getButtons(GHOST_Buttons& buttons) const { return GHOST_kSuccess; }
+       GHOST_TUns8 *getClipboard(bool selection) const { return NULL; }
+       void putClipboard(GHOST_TInt8 *buffer, bool selection) const { /* nop */ }
+       GHOST_TUns64 getMilliSeconds( ) const { return 0; }
+       GHOST_TUns8 getNumDisplays( ) const { return GHOST_TUns8(1); }
+       GHOST_TSuccess getCursorPosition( GHOST_TInt32& x, GHOST_TInt32& y ) const { return GHOST_kFailure; }
+       GHOST_TSuccess setCursorPosition( GHOST_TInt32 x, GHOST_TInt32 y ) { return GHOST_kFailure; }
+       void getMainDisplayDimensions( GHOST_TUns32& width, GHOST_TUns32& height ) const { /* nop */ }
+       GHOST_TSuccess init() {
+               GHOST_TSuccess success = GHOST_System::init();
+               if (success) {
+                       m_displayManager = new GHOST_DisplayManagerNULL(this);
+                       if (m_displayManager) {
+                               return GHOST_kSuccess;
+                       }
+               }
+               return GHOST_kFailure;
+       }
+       GHOST_IWindow* createWindow(
+           const STR_String& title,
+           GHOST_TInt32 left,
+           GHOST_TInt32 top,
+           GHOST_TUns32 width,
+           GHOST_TUns32 height,
+           GHOST_TWindowState state,
+           GHOST_TDrawingContextType type,
+           bool stereoVisual,
+           const GHOST_TUns16 numOfAASamples,
+           const GHOST_TEmbedderWindowID parentWindow
+           ) {
+               return new GHOST_WindowNULL (this, title, left, top, width, height, state, parentWindow, type, stereoVisual, 1);
+       }
+ };
+ #endif
index 0000000000000000000000000000000000000000,0ec3c6f57003ace473f08c868007c89dfab32ee4..ff3967baa9373852a2481821f750fc7e466b121f
mode 000000,100644..100755
--- /dev/null
@@@ -1,0 -1,96 +1,96 @@@
 - * $Id$
+ /*
++ * $Id: GHOST_WindowNULL.h 37194 2011-06-05 00:10:20Z gsrb3d $
+  * ***** BEGIN GPL LICENSE BLOCK *****
+  *
+  * This program is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU General Public License
+  * as published by the Free Software Foundation; either version 2
+  * of the License, or (at your option) any later version.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  * GNU General Public License for more details.
+  *
+  * You should have received a copy of the GNU General Public License
+  * along with this program; if not, write to the Free Software Foundation,
+  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+  *
+  * Contributor(s): Campbell Barton
+  *
+  * ***** END GPL LICENSE BLOCK *****
+  */
+ /** \file ghost/intern/GHOST_WindowNULL.h
+  *  \ingroup GHOST
+  * Declaration of GHOST_WindowNULL class.
+  */
+ #ifndef _GHOST_WINDOWNULL_H_
+ #define _GHOST_WINDOWNULL_H_
+ #include "GHOST_Window.h"
+ #include <map>
+ class STR_String;
+ class GHOST_SystemNULL;
+ class GHOST_WindowNULL : public GHOST_Window
+ {
+ public:
+       const GHOST_TabletData* GetTabletData() { return NULL; }
+       GHOST_WindowNULL(
+               GHOST_SystemNULL *system,
+               const STR_String& title,
+               GHOST_TInt32 left,
+               GHOST_TInt32 top,
+               GHOST_TUns32 width,
+               GHOST_TUns32 height,
+               GHOST_TWindowState state,
+               const GHOST_TEmbedderWindowID parentWindow,
+               GHOST_TDrawingContextType type,
+               const bool stereoVisual,
+               const GHOST_TUns16 numOfAASamples
+               ) :
+               GHOST_Window(title,left,top,width,height,state,type,stereoVisual,numOfAASamples),
+               m_system (system)
+       {
+               setTitle(title);
+       }
+ protected:
+       GHOST_TSuccess installDrawingContext( GHOST_TDrawingContextType type ){ return GHOST_kSuccess; }
+       GHOST_TSuccess removeDrawingContext( ){ return GHOST_kSuccess; }
+       GHOST_TSuccess setWindowCursorGrab( GHOST_TGrabCursorMode mode ){ return GHOST_kSuccess; }
+       GHOST_TSuccess setWindowCursorShape( GHOST_TStandardCursor shape ){ return GHOST_kSuccess; }
+       GHOST_TSuccess setWindowCustomCursorShape( GHOST_TUns8 bitmap[16][2], GHOST_TUns8 mask[16][2], int hotX, int hotY ) { return GHOST_kSuccess; }
+       GHOST_TSuccess setWindowCustomCursorShape( GHOST_TUns8 *bitmap, GHOST_TUns8 *mask, int sizex, int sizey, int hotX, int hotY, int fg_color, int bg_color ){ return GHOST_kSuccess; }
+       bool getValid( ) const { return true; }
+       void setTitle( const STR_String& title ){ /* nothing */ }
+       void getTitle( STR_String& title ) const { title= "untitled"; }
+       void getWindowBounds( GHOST_Rect& bounds ) const { getClientBounds(bounds); }
+       void getClientBounds( GHOST_Rect& bounds ) const { /* nothing */ }
+       GHOST_TSuccess setClientWidth( GHOST_TUns32 width ){ return GHOST_kFailure; }
+       GHOST_TSuccess setClientHeight( GHOST_TUns32 height ){ return GHOST_kFailure;  }
+       GHOST_TSuccess setClientSize( GHOST_TUns32 width, GHOST_TUns32 height ){ return GHOST_kFailure;  }
+       void screenToClient( GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY ) const { outX = inX; outY = inY; }
+       void clientToScreen( GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY ) const { outX = inX; outY = inY; }
+       GHOST_TSuccess swapBuffers( ){ return GHOST_kFailure; }
+       GHOST_TSuccess activateDrawingContext( ){ return GHOST_kFailure; }
+       ~GHOST_WindowNULL( ){ /* nothing */ }
+       GHOST_TSuccess setWindowCursorVisibility( bool visible ){ return GHOST_kSuccess; }
+       GHOST_TSuccess setState(GHOST_TWindowState state)  { return GHOST_kSuccess; }
+       GHOST_TWindowState getState() const     { return GHOST_kWindowStateNormal; }
+       GHOST_TSuccess invalidate()  { return GHOST_kSuccess; }
+       GHOST_TSuccess setOrder(GHOST_TWindowOrder order) { return GHOST_kSuccess; }
+ private :
+       GHOST_SystemNULL * m_system;
+ };
+ #endif // _GHOST_WINDOWNULL_H_
index 8d10371899c3e95af6693b67d8e991c20b867b28,0000000000000000000000000000000000000000..8d10371899c3e95af6693b67d8e991c20b867b28
mode 100755,000000..100755
Binary files differ
index e34755ae72eb7aff6fb8ab83d7f5dde3df3c160a,f018785a925a91cc944ae0f1b21ebc35b1291366..265debd10f47d2a1fae1e481288d4ebc8d98cb31
@@@ -22,7 -22,7 +22,7 @@@ import o
  import addon_utils
  
  from bpy.props import StringProperty, BoolProperty, EnumProperty
--
++from blf import gettext as _
  
  def ui_items_general(col, context):
      """ General UI Theme Settings (User Interface)
@@@ -126,7 -126,7 +126,7 @@@ class USERPREF_MT_appconfigs(bpy.types.
      preset_operator = "wm.appconfig_activate"
  
      def draw(self, context):
--        props = self.layout.operator("wm.appconfig_default", text="Blender (default)")
++        props = self.layout.operator("wm.appconfig_default", text=_("Blender (default)"))
  
          # now draw the presets
          bpy.types.Menu.draw_preset(self, context)
@@@ -141,12 -141,12 +141,12 @@@ class USERPREF_MT_splash(bpy.types.Menu
          row = split.row()
          row.label("")
          row = split.row()
--        row.label("Interaction:")
++        row.label(_("Interaction:"))
          # XXX, no redraws
          # text = bpy.path.display_name(context.window_manager.keyconfigs.active.name)
          # if not text:
          #     text = "Blender (default)"
--        row.menu("USERPREF_MT_appconfigs", text="Preset")
++        row.menu("USERPREF_MT_appconfigs", text=_("Preset"))
  
  
  class USERPREF_PT_interface(bpy.types.Panel):
index 0583dc7e4be22986f34a3463ae86903e25ec249f,02004283264ead9fc3c2deeceb23b4627282ee50..775243a74d2693b730816bbd321334694c1edee4
@@@ -19,7 -19,7 +19,6 @@@
  # <pep8 compliant>
  import bpy
  
--
  class VIEW3D_HT_header(bpy.types.Header):
      bl_space_type = 'VIEW_3D'
  
index 503a1d806ac698d1075663df59f9e352c47a6750,503a1d806ac698d1075663df59f9e352c47a6750..3e263876e3d11524b71611ab368a87471e8a7958
@@@ -19,7 -19,7 +19,6 @@@
  # <pep8 compliant>
  import bpy
  
--
  class View3DPanel():
      bl_space_type = 'VIEW_3D'
      bl_region_type = 'TOOLS'
index 8fc1ec429cce8f0c4bf11e5db3d1d4c31389f3cf,a3c1d035d9b4bdb49117f7de9541e86234246e54..51387b8b3f3d77633bb9da27538b6d7cb82e0ce4
@@@ -21,6 -21,6 +21,7 @@@
  
  set(INC
        ../include
++      ../../blenfont
        ../../blenkernel
        ../../blenloader
        ../../blenlib
index 96b05b8bcccbc89e479dca36d1f281ef5e8a3603,96b05b8bcccbc89e479dca36d1f281ef5e8a3603..61cf0890bc71a7f430961a0326ef6c45b697108b
@@@ -3,7 -3,7 +3,7 @@@ Import ('env'
  
  sources = env.Glob('*.c')
  
--incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../makesrna ../../imbuf'
++incs = '../include ../../blenfont ../../blenlib ../../blenkernel ../../makesdna ../../makesrna ../../imbuf'
  incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include ../../blenloader'
  
  env.BlenderLib ( 'bf_editors_animation', sources, Split(incs), [], libtype=['core'], priority=[125] )
index 3234254f745a1692c843de27e1e5b331bc8663bb,2db6e2784604f560cdfba5f133d4b4c4fb0970f5..0b675ffb4d9ed08e10a0b6043f8c469684ec4fd7
@@@ -21,6 -21,6 +21,7 @@@
  
  set(INC
        ../include
++      ../../blenfont
        ../../blenkernel
        ../../blenloader
        ../../blenlib
index beabd912a2031aaaccc628889724e022ff5dbd96,beabd912a2031aaaccc628889724e022ff5dbd96..d790a392407f62bac7a1d1e82089211c64fd34cb
@@@ -3,7 -3,7 +3,7 @@@ Import ('env'
  
  sources = env.Glob('*.c')
  
--incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf ../../blenloader'
++incs = '../include ../../blenfont ../../blenlib ../../blenkernel ../../makesdna ../../imbuf ../../blenloader'
  incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
  incs += ' ../../gpu ../../makesrna #/intern/opennl/extern'
  
index a73fb9502a67705c6df97316a283731e736f1e5b,dfc7e336e84fee5a182f6781f785bc5eb809c917..bc3d167c17ed974ae4e467fc1cf42a87f6f6af12
@@@ -21,6 -21,6 +21,7 @@@
  
  set(INC
        ../include
++      ../../blenfont
        ../../blenkernel
        ../../blenloader
        ../../blenlib
index efb56ce54668891e568157dbbb7996e36c34635c,efb56ce54668891e568157dbbb7996e36c34635c..c23773f7fb09bd5de619c476e378c450fe84acd7
@@@ -3,7 -3,7 +3,7 @@@ Import ('env'
  
  sources = env.Glob('*.c')
  
--incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
++incs = '../include ../../blenfont ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
  incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
  incs += ' ../../gpu ../../blenloader'
  incs += ' ../../makesrna ../../render/extern/include  #/intern/elbeem/extern'
index b0c74ca12fc4f7b6f2aa536c7d75f35632c89430,ae86905a91d7ef1d9ec482e5422ea46d27c2320d..feac4301c4a485824f9e1220ba262bd729c2dd20
  # ***** END GPL LICENSE BLOCK *****
  
  set(INC
 -
 +      ../../blenlib
 +      ../../../../intern/guardedalloc
  )
+ set(INC_SYS
+ )
  set(SRC
        Bfont.c
-       add.png.c
        bfont.ttf.c
-       blenderbuttons.c
-       blob.png.c
-       blur.png.c
        bmonofont.ttf.c
-       clay.png.c
-       clone.png.c
-       crease.png.c
-       darken.png.c
-       draw.png.c
-       fill.png.c
-       flatten.png.c
-       grab.png.c
-       inflate.png.c
-       layer.png.c
-       lighten.png.c
-       mix.png.c
-       multiply.png.c
-       nudge.png.c
-       pinch.png.c
-       preview.blend.c
-       prvicons.c
-       scrape.png.c
-       smear.png.c
-       smooth.png.c
-       snake_hook.png.c
-       soften.png.c
-       splash.png.c
 +      bunifont.ttf.c
        startup.blend.c
-       subtract.png.c
-       texdraw.png.c
-       thumb.png.c
-       twist.png.c
-       vertexdraw.png.c
+       preview.blend.c
  )
  
- blender_add_lib(bf_editor_datafiles "${SRC}" "${INC}")
+ if(NOT WITH_HEADLESS)
+       list(APPEND SRC
+               splash.png.c
+               blenderbuttons.c
+               # brushes
+               add.png.c
+               blob.png.c
+               blur.png.c
+               clay.png.c
+               clone.png.c
+               crease.png.c
+               darken.png.c
+               draw.png.c
+               fill.png.c
+               flatten.png.c
+               grab.png.c
+               inflate.png.c
+               layer.png.c
+               lighten.png.c
+               mix.png.c
+               multiply.png.c
+               nudge.png.c
+               pinch.png.c
+               prvicons.c
+               scrape.png.c
+               smear.png.c
+               smooth.png.c
+               snake_hook.png.c
+               soften.png.c
+               subtract.png.c
+               texdraw.png.c
+               thumb.png.c
+               twist.png.c
+               vertexdraw.png.c
+       )
+ endif()
+ blender_add_lib(bf_editor_datafiles "${SRC}" "${INC}" "${INC_SYS}")
index a03bf173425b01b1abe7515ba70278f6b9d10ddc,bd8789b9eeff291748818e2c949622d02681ca82..1b08f9cff5cd852b97bcbd87c198d9cb82ed88ff
@@@ -21,6 -21,6 +21,7 @@@
  
  set(INC
        ../include
++      ../../blenfont
        ../../blenkernel
        ../../blenloader
        ../../blenlib
index 34936c025bcb85c95d8bf103eb8d45748c46435f,34936c025bcb85c95d8bf103eb8d45748c46435f..c1b37ec53cd6fecb0a4f44c4fb9b0799f3b37c2d
@@@ -3,7 -3,7 +3,7 @@@ Import ('env'
  
  sources = env.Glob('*.c')
  
--incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
++incs = '../include ../../blenfont ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
  incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
  incs += ' ../../gpu ../../blenloader'
  incs += ' ../../makesrna ../../render/extern/include  #/intern/elbeem/extern'
index 47cb4d009381747150f7d348cecf58643097aba9,4d50b78b7a1b8a579241110f7e3650f8a71405fb..dae83ad61b5e40f3baea932b2736008bf35687e8
@@@ -21,6 -21,6 +21,7 @@@
  
  set(INC
        ../include
++      ../../blenfont
        ../../blenkernel
        ../../blenloader
        ../../blenlib
index 660643fbb0fc2793b0f2ae783e4c462ebd798f79,660643fbb0fc2793b0f2ae783e4c462ebd798f79..9460530d5aaa2e5fd28095ac8b185d9559a6ee93
@@@ -3,7 -3,7 +3,7 @@@ Import ('env'
  
  sources = env.Glob('*.c')
  
--incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
++incs = '../include ../../blenfont ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
  incs += ' ../../windowmanager #/intern/guardedalloc ../../blenloader'
  incs += ' ../../makesrna ../../python ../../ikplugin'
  incs += ' ../../render/extern/include ../../gpu' # for object_bake.c
index 8d51d6eec378e3139eec1eec730989b37faafefe,1badccffe3b8c5982b39c1ace47fe8e34aa1b567..2aa05427223f57288a35dc8b029a7c9e3bad1df7
@@@ -21,6 -21,6 +21,7 @@@
  
  set(INC
        ../include
++      ../../blenfont
        ../../blenkernel
        ../../blenloader
        ../../blenlib
index 274819c918cb078aa597a8c2ff03760ce3178fb8,274819c918cb078aa597a8c2ff03760ce3178fb8..e5f5e6d1b09360bbcc713d6d6d85ae2ce17b9a68
@@@ -3,7 -3,7 +3,7 @@@ Import ('env'
  
  sources = env.Glob('*.c')
  
--incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
++incs = '../include ../../blenfont ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
  incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
  incs += ' ../../gpu ../../blenloader'
  incs += ' ../../makesrna ../../render/extern/include  #/intern/elbeem/extern'
index a1a4f33d00818dbdf70b3e1b5b4b4d9395a18d9c,4d531e78ec0815f46e4555fe0be2e279ca5521de..a1ba861f477f51b7a9b88384de2271b86bd2551e
@@@ -43,6 -43,6 +43,8 @@@
  #include "BLI_rand.h"
  #include "BLI_utildefines.h"
  
++#include "BLF_api.h"
++
  #include "BKE_context.h"
  #include "BKE_global.h"
  #include "BKE_screen.h"
@@@ -1208,13 -1225,13 +1227,12 @@@ int ED_area_header_switchbutton(const b
        int xco= 8;
        
        but= uiDefIconTextButC(block, ICONTEXTROW, 0, ICON_VIEW3D, 
-                                                  editortype_pup(), xco, yco, XIC+10, YIC
+                                                  editortype_pup(), xco, yco, UI_UNIT_X+10, UI_UNIT_Y
                                                   &(sa->butspacetype), 1.0, SPACEICONMAX, 0, 0, 
--                                                 "Displays current editor type. "
--                                                 "Click for menu of available types");
++                                                 _("Displays current editor type. Click for menu of available types"));
        uiButSetFunc(but, spacefunc, NULL, NULL);
        
-       return xco + XIC + 14;
+       return xco + UI_UNIT_X + 14;
  }
  
  int ED_area_header_standardbuttons(const bContext *C, uiBlock *block, int yco)
index f454dd9ce02975e9e8c2a4c396cfd5f572107700,68326edfb113822d5a95cbabb96d852766db3e3c..af4bce5ceda38c77af6b3c4e3e133baa0044313d
@@@ -40,6 -40,6 +40,8 @@@
  #include "BLI_dlrbTree.h"
  #include "BLI_utildefines.h"
  
++#include "BLF_api.h"
++
  #include "DNA_armature_types.h"
  #include "DNA_lattice_types.h"
  #include "DNA_object_types.h"
@@@ -3118,7 -3141,7 +3143,7 @@@ static void SCREEN_OT_userpref_show(str
  {
        /* identifiers */
        ot->name= "Show/Hide User Preferences";
--      ot->description= "Show/hide user preferences";
++      ot->description= _("Show/hide user preferences");
        ot->idname= "SCREEN_OT_userpref_show";
        
        /* api callbacks */
index 248b6ea2b94418cfe04bff72ea1eb407edb8fe08,6ecbc9c5eecdd02e9ac977522dbdfd794d5812d6..6d82dff428311a84fd65892281ae950f6bff4f54
@@@ -21,6 -21,6 +21,7 @@@
  
  set(INC
        ../include
++      ../../blenfont
        ../../blenkernel
        ../../blenloader
        ../../imbuf
index 90b56ded2cdc1f41202878968dfab3e1a32682b2,90b56ded2cdc1f41202878968dfab3e1a32682b2..f6b206d455591673dfed356821c9fa88c85f3a12
@@@ -5,7 -5,7 +5,7 @@@ sources = env.Glob('*.c'
  
  defs = []
  
--incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
++incs = '../include ../../blenfont ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
  incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
  incs += ' ../../render/extern/include'
  incs += ' ../../gpu ../../makesrna ../../blenloader'
index 09f5c32bea0a71c5faa7c83cc85ebfb24349651e,09f5c32bea0a71c5faa7c83cc85ebfb24349651e..b3d690373f8ec26624fb65f1f03b6d7cd4a682dd
@@@ -15,6 -15,6 +15,8 @@@
  #include "BLI_math.h"
  #include "BLI_utildefines.h"
  
++#include "BLF_api.h"
++
  #include "BKE_brush.h"
  #include "BKE_context.h"
  #include "BKE_DerivedMesh.h"
@@@ -322,8 -322,8 +324,8 @@@ static int paint_select_linked_pick_inv
  
  void PAINT_OT_face_select_linked_pick(wmOperatorType *ot)
  {
--      ot->name= "Select Linked Pick";
--      ot->description= "Select linked faces";
++      ot->name= _("Select Linked Pick");
++      ot->description= _("Select linked faces");
        ot->idname= "PAINT_OT_face_select_linked_pick";
  
        ot->invoke= paint_select_linked_pick_invoke;
  
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
  
--      RNA_def_boolean(ot->srna, "extend", 0, "Extend", "Extend the existing selection");
++      RNA_def_boolean(ot->srna, "extend", 0, _("Extend"), _("Extend the existing selection"));
  }
  
  
@@@ -390,8 -390,8 +392,8 @@@ static int face_select_hide_exec(bConte
  
  void PAINT_OT_face_select_hide(wmOperatorType *ot)
  {
--      ot->name= "Face Select Hide";
--      ot->description= "Hide selected faces";
++      ot->name= _("Face Select Hide");
++      ot->description= _("Hide selected faces");
        ot->idname= "PAINT_OT_face_select_hide";
  
        ot->exec= face_select_hide_exec;
  
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
  
--      RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "Hide unselected rather than selected objects.");
++      RNA_def_boolean(ot->srna, "unselected", 0, _("Unselected"), _("Hide unselected rather than selected objects."));
  }
  
  static int face_select_reveal_exec(bContext *C, wmOperator *UNUSED(op))
  
  void PAINT_OT_face_select_reveal(wmOperatorType *ot)
  {
--      ot->name= "Face Select Reveal";
--      ot->description= "Reveal hidden faces";
++      ot->name= _("Face Select Reveal");
++      ot->description= _("Reveal hidden faces");
        ot->idname= "PAINT_OT_face_select_reveal";
  
        ot->exec= face_select_reveal_exec;
  
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
  
--      RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "Hide unselected rather than selected objects.");
++      RNA_def_boolean(ot->srna, "unselected", 0, _("Unselected"), _("Hide unselected rather than selected objects."));
  }
index 903af649caabd406bce0218ff1be0d6f3b823932,a6fee35919755d2a29ab53a26cb3059e22a7455b..d07b57cd7586aadba794048d2da97f587118d431
@@@ -230,9 -224,9 +224,9 @@@ void file_draw_buttons(const bContext *
                uiDefButO(block, BUT, "FILE_OT_execute", WM_OP_EXEC_REGION_WIN, params->title,
                        max_x - loadbutton, line1_y, loadbutton, btn_h, 
                        params->title);
--              uiDefButO(block, BUT, "FILE_OT_cancel", WM_OP_EXEC_REGION_WIN, "Cancel",
++              uiDefButO(block, BUT, "FILE_OT_cancel", WM_OP_EXEC_REGION_WIN, _("Cancel"),
                        max_x - loadbutton, line2_y, loadbutton, btn_h, 
--                      "Cancel");
++                      _("Cancel"));
        }
        
        uiEndBlock(C, block);
index 9662b4b401fea1c161985f7aed09e6d846dbd288,a5d516a14175fac69e3708c8aa633f248af3feaf..265e80b42add1871186d5308c88f0c5afb5f8b46
@@@ -44,6 -44,6 +44,8 @@@
  #include "BLI_winstuff.h"
  #endif
  
++#include "BLF_api.h"
++
  #include "ED_screen.h"
  #include "ED_fileselect.h"
  
@@@ -458,7 -459,7 +461,7 @@@ void FILE_OT_bookmark_add(wmOperatorTyp
  {
        /* identifiers */
        ot->name= "Add Bookmark";
--      ot->description= "Add a bookmark for the selected/active directory";
++      ot->description= _("Add a bookmark for the selected/active directory");
        ot->idname= "FILE_OT_bookmark_add";
        
        /* api callbacks */
@@@ -1049,8 -1050,8 +1052,8 @@@ int file_directory_new_exec(bContext *C
  void FILE_OT_directory_new(struct wmOperatorType *ot)
  {
        /* identifiers */
--      ot->name= "Create New Directory";
--      ot->description= "Create a new directory";
++      ot->name= _("Create New Directory");
++      ot->description= _("Create a new directory");
        ot->idname= "FILE_OT_directory_new";
        
        /* api callbacks */
@@@ -1147,8 -1148,8 +1150,8 @@@ int file_filename_exec(bContext *C, wmO
  void FILE_OT_directory(struct wmOperatorType *ot)
  {
        /* identifiers */
--      ot->name= "Enter Directory Name";
--      ot->description= "Enter a directory name";
++      ot->name= _("Enter Directory Name");
++      ot->description= _("Enter a directory name");
        ot->idname= "FILE_OT_directory";
        
        /* api callbacks */
  void FILE_OT_refresh(struct wmOperatorType *ot)
  {
        /* identifiers */
--      ot->name= "Refresh Filelist";
--      ot->description= "Refresh the file list";
++      ot->name= _("Refresh Filelist");
++      ot->description= _("Refresh the file list");
        ot->idname= "FILE_OT_refresh";
        
        /* api callbacks */
index 959b1ddf1b54f09e7af8d42518276137a54a31e6,959b1ddf1b54f09e7af8d42518276137a54a31e6..f3c38836058f0535891266466106dee9782cc701
@@@ -37,6 -37,6 +37,8 @@@
  #include "BLI_blenlib.h"
  #include "BLI_utildefines.h"
  
++#include "BLF_api.h"
++
  #include "DNA_screen_types.h"
  #include "DNA_space_types.h"
  #include "DNA_userdef_types.h"
@@@ -144,7 -144,7 +146,7 @@@ static void file_panel_bookmarks(const 
  
        if(sfile) {
                row= uiLayoutRow(pa->layout, 0);
--              uiItemO(row, "Add", ICON_ZOOMIN, "file.bookmark_add");
++              uiItemO(row, _("Add"), ICON_ZOOMIN, "file.bookmark_add");
                uiItemL(row, NULL, ICON_NONE);
  
                file_panel_category(C, pa, FS_CATEGORY_BOOKMARKS, &sfile->bookmarknr, ICON_BOOKMARKS, 1, 0);
@@@ -205,25 -205,25 +207,25 @@@ void file_panels_register(ARegionType *
  
        pt= MEM_callocN(sizeof(PanelType), "spacetype file system directories");
        strcpy(pt->idname, "FILE_PT_system");
--      strcpy(pt->label, "System");
++      strcpy(pt->label, _("System"));
        pt->draw= file_panel_system;
        BLI_addtail(&art->paneltypes, pt);
  
        pt= MEM_callocN(sizeof(PanelType), "spacetype file bookmarks");
        strcpy(pt->idname, "FILE_PT_bookmarks");
--      strcpy(pt->label, "Bookmarks");
++      strcpy(pt->label, _("Bookmarks"));
        pt->draw= file_panel_bookmarks;
        BLI_addtail(&art->paneltypes, pt);
  
        pt= MEM_callocN(sizeof(PanelType), "spacetype file recent directories");
        strcpy(pt->idname, "FILE_PT_recent");
--      strcpy(pt->label, "Recent");
++      strcpy(pt->label, _("Recent"));
        pt->draw= file_panel_recent;
        BLI_addtail(&art->paneltypes, pt);
  
        pt= MEM_callocN(sizeof(PanelType), "spacetype file operator properties");
        strcpy(pt->idname, "FILE_PT_operator");
--      strcpy(pt->label, "Operator");
++      strcpy(pt->label, _("Operator"));
        pt->poll= file_panel_operator_poll;
        pt->draw_header= file_panel_operator_header;
        pt->draw= file_panel_operator;
index 59f2b22516d58474cc691edaa97a7132f63fd987,f5548097db23803967a9ba8f6137b8e5ac85213b..774d37941542dca25fd207fd5583186ec0ec0978
@@@ -21,6 -21,6 +21,7 @@@
  
  set(INC
        ../include
++      ../../blenfont
        ../../blenkernel
        ../../blenloader
        ../../blenlib
index 75d0927192ba350c05ec06ba816505d945ffacfc,75d0927192ba350c05ec06ba816505d945ffacfc..fe8846d2c3022811987bb8486a5ecaa9bef48642
@@@ -3,7 -3,7 +3,7 @@@ Import ('env'
  
  sources = env.Glob('*.c')
  
--incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../makesrna ../../imbuf'
++incs = '../include ../../blenfont ../../blenlib ../../blenkernel ../../makesdna ../../makesrna ../../imbuf'
  incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
  incs += ' #/intern/audaspace/intern ../../blenloader'
  
index d58fb7b11f0557403cb6e6d6990de56508ebd481,d58fb7b11f0557403cb6e6d6990de56508ebd481..0fb17498443e75b4f6cc9c1da96e1da081e33631
@@@ -45,6 -45,6 +45,8 @@@
  #include "BLI_bpath.h"
  #include "BLI_utildefines.h"
  
++#include "BLF_api.h"
++
  #include "BKE_context.h"
  #include "BKE_global.h"
  #include "BKE_image.h"
@@@ -211,7 -211,7 +213,7 @@@ static int make_paths_relative_exec(bCo
  void FILE_OT_make_paths_relative(wmOperatorType *ot)
  {
        /* identifiers */
--      ot->name= "Make All Paths Relative";
++      ot->name= _("Make All Paths Relative");
        ot->idname= "FILE_OT_make_paths_relative";
        
        /* api callbacks */
@@@ -243,7 -243,7 +245,7 @@@ static int make_paths_absolute_exec(bCo
  void FILE_OT_make_paths_absolute(wmOperatorType *ot)
  {
        /* identifiers */
--      ot->name= "Make All Paths Absolute";
++      ot->name= _("Make All Paths Absolute");
        ot->idname= "FILE_OT_make_paths_absolute";
        
        /* api callbacks */
@@@ -266,7 -266,7 +268,7 @@@ static int report_missing_files_exec(bC
  void FILE_OT_report_missing_files(wmOperatorType *ot)
  {
        /* identifiers */
--      ot->name= "Report Missing Files";
++      ot->name= _("Report Missing Files");
        ot->idname= "FILE_OT_report_missing_files";
        
        /* api callbacks */
@@@ -299,7 -299,7 +301,7 @@@ static int find_missing_files_invoke(bC
  void FILE_OT_find_missing_files(wmOperatorType *ot)
  {
        /* identifiers */
--      ot->name= "Find Missing Files";
++      ot->name= _("Find Missing Files");
        ot->idname= "FILE_OT_find_missing_files";
        
        /* api callbacks */
index 6323ef779c2b45c5e4003f1c9e141f6a808317cb,cd24cb5e5d00fe9ecf1ff3ff866ee471ad19c58e..39b44f882036760bb8f3ae64ef0c564c1c6b70bf
@@@ -21,6 -21,6 +21,7 @@@
  
  set(INC
        ../include
++      ../../blenfont
        ../../blenkernel
        ../../blenloader
        ../../blenlib
index 6beb3ecb48fc7d317cce61e9f0ccaef6f46ce80b,6beb3ecb48fc7d317cce61e9f0ccaef6f46ce80b..fb2504ab97423741b30ba0a344695dc3c872767e
@@@ -3,7 -3,7 +3,7 @@@ Import ('env'
  
  sources = env.Glob('*.c')
  
--incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
++incs = '../include ../../blenfont ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
  incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
  incs += ' ../../makesrna ../interface ../../blenloader'
  
index 9dc0b7a4258eebe265c72ebe7ade2acadf18d903,d5f367194713f70cc6c15b0727742a939449f5d9..702b8d17efd0aa2290cf4294bf7a7d546456e7a3
@@@ -21,6 -21,6 +21,7 @@@
  
  set(INC
        ../include
++      ../../blenfont
        ../../blenkernel
        ../../blenloader
        ../../blenlib
index 65bbf90055667436dca5ddd2b5d302d6f094ad65,65bbf90055667436dca5ddd2b5d302d6f094ad65..53248fa001f116e5df80eb94d52a7518e312d281
@@@ -3,7 -3,7 +3,7 @@@ Import ('env'
  
  sources = env.Glob('*.c')
  
--incs = '../include ../../blenlib ../../blenkernel ../../blenfont ../../makesdna ../../imbuf'
++incs = '../include ../../blenfont ../../blenlib ../../blenkernel ../../blenfont ../../makesdna ../../imbuf'
  incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
  incs += ' ../../makesrna ../../blenloader'
  incs += ' #/intern/audaspace/intern'
index 31aae28dd614ad37c4749493054d5cb883668fa1,9ff73767b4c4753cd6d5aa89f7661ab69d43dcbd..016aacecb4be06cb49aa499110f8a7a5387fbf6c
@@@ -2256,7 -2289,7 +2289,7 @@@ void VIEW3D_OT_zoom_camera_1_to_1(wmOpe
  }
  
  /* ********************* Changing view operator ****************** */
--
++/* XXX add _() to strings */
  static EnumPropertyItem prop_view_items[] = {
        {RV3D_VIEW_FRONT, "FRONT", 0, "Front", "View From the Front"},
        {RV3D_VIEW_BACK, "BACK", 0, "Back", "View From the Back"},
@@@ -2480,6 -2513,6 +2513,7 @@@ void VIEW3D_OT_viewnumpad(wmOperatorTyp
        RNA_def_boolean(ot->srna, "align_active", 0, "Align Active", "Align to the active objects axis");
  }
  
++/* XXX add _() for strings */
  static EnumPropertyItem prop_view_orbit_items[] = {
        {V3D_VIEW_STEPLEFT, "ORBITLEFT", 0, "Orbit Left", "Orbit the view around to the Left"},
        {V3D_VIEW_STEPRIGHT, "ORBITRIGHT", 0, "Orbit Right", "Orbit the view around to the Right"},
@@@ -2547,6 -2580,6 +2581,7 @@@ void VIEW3D_OT_view_orbit(wmOperatorTyp
        RNA_def_enum(ot->srna, "type", prop_view_orbit_items, 0, "Orbit", "Direction of View Orbit");
  }
  
++/* XXX add _() for strings */
  static EnumPropertyItem prop_view_pan_items[] = {
        {V3D_VIEW_PANLEFT, "PANLEFT", 0, "Pan Left", "Pan the view to the Left"},
        {V3D_VIEW_PANRIGHT, "PANRIGHT", 0, "Pan Right", "Pan the view to the Right"},
index 1455dc789c740a699bf753c24dcdee439180660e,8eb8d538396d01771781bd7ed185b0fe611f2620..3d9c238470e60ca22cbdb5526f939f5f2f1f3721
@@@ -21,6 -21,6 +21,7 @@@
  
  set(INC
        ../include
++      ../../blenfont
        ../../blenkernel
        ../../blenloader
        ../../blenlib
index 60d730e8c52fe52d7486aeda2828484a47c97d1e,11e1703d84c465ffb1162545a8e347594c0e68e6..d25ee20e5b58303a0637de78fc01f2f05e882950
@@@ -21,6 -21,6 +21,7 @@@
  
  set(INC
        ../include
++      ../../blenfont
        ../../blenkernel
        ../../blenloader
        ../../blenlib
index 2523de005d0b726dd622299768d51e21761da06f,2523de005d0b726dd622299768d51e21761da06f..695aa217b5ef95bcf27421f168c487bf607bc197
@@@ -3,7 -3,7 +3,7 @@@ Import ('env'
  
  sources = env.Glob('*.c')
  
--incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
++incs = '../include ../../blenfont ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
  incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
  incs += ' ../../makesrna #/intern/opennl/extern ../../gpu ../../blenloader'
  
index 1f005ba6021f69a3d41c3bc06833a1ecd106542a,c088d0d2d4324a816452c6bf5fc1e527545a2f82..1ac31a1786edf724366d275e88238a33e6a93b29
@@@ -58,6 -58,6 +58,8 @@@
  #include "BLI_linklist.h"
  #include "BLI_utildefines.h"
  
++#include "BLF_api.h"
++
  #include "DNA_anim_types.h"
  #include "DNA_ipo_types.h" // XXX old animation system
  #include "DNA_object_types.h"
index 4acf5157ff1ec04e7cf085a5868c09215efd305e,2e4148ca51d1d8bd42238996db8eaa0c0d080bc2..583518a4eac84135f932f9b7cc6663af1176198c
@@@ -126,24 -126,19 +126,23 @@@ void WM_init(bContext *C, int argc, con
                wm_init_cursor_data();
        }
        GHOST_CreateSystemPaths();
-       
 +      BLF_init(11, U.dpi); /* Please update source/gamengine/GamePlayer/GPG_ghost.cpp if you change this */
 +      BLF_lang_init();
 +      // use default settings
 +      BLF_lang_encoding("");
 +      BLF_lang_set("");
 +
        wm_operatortype_init();
+       
        set_free_windowmanager_cb(wm_close_and_free);   /* library.c */
        set_blender_test_break_cb(wm_window_testbreak); /* blender.c */
        DAG_editors_update_cb(ED_render_id_flush_update); /* depsgraph.c */
+       
        ED_spacetypes_init();   /* editors/space_api/spacetype.c */
+       
        ED_file_init();                 /* for fsmenu */
-       ED_init_node_butfuncs();
+       ED_init_node_butfuncs();        
 -      
 -      BLF_init(11, U.dpi); /* Please update source/gamengine/GamePlayer/GPG_ghost.cpp if you change this */
 -      BLF_lang_init();
 +
        /* get the default database, plus a wm */
        WM_read_homefile(C, NULL, G.factory_startup);
  
index bb9804273eec85a8ac0977d4420cf146c43b36bd,06d049d2cb5121a207b9153f847f0780fa6aa884..f8bf4ed57bf07354ef22557e16b3ac652c4817ff
@@@ -800,47 -799,47 +800,47 @@@ void WM_operator_properties_filesel(wmO
  
  
        if(flag & WM_FILESEL_FILEPATH)
--              RNA_def_string_file_path(ot->srna, "filepath", "", FILE_MAX, "File Path", "Path to file");
++              RNA_def_string_file_path(ot->srna, "filepath", "", FILE_MAX, _("File Path"), _("Path to file"));
  
        if(flag & WM_FILESEL_DIRECTORY)
--              RNA_def_string_dir_path(ot->srna, "directory", "", FILE_MAX, "Directory", "Directory of the file");
++              RNA_def_string_dir_path(ot->srna, "directory", "", FILE_MAX, _("Directory"), _("Directory of the file"));
  
        if(flag & WM_FILESEL_FILENAME)
--              RNA_def_string_file_name(ot->srna, "filename", "", FILE_MAX, "File Name", "Name of the file");
++              RNA_def_string_file_name(ot->srna, "filename", "", FILE_MAX, _("File Name"), _("Name of the file"));
  
        if (action == FILE_SAVE) {
--              prop= RNA_def_boolean(ot->srna, "check_existing", 1, "Check Existing", "Check and warn on overwriting existing files");
++              prop= RNA_def_boolean(ot->srna, "check_existing", 1, _("Check Existing"), _("Check and warn on overwriting existing files"));
                RNA_def_property_flag(prop, PROP_HIDDEN);
        }
        
--      prop= RNA_def_boolean(ot->srna, "filter_blender", (filter & BLENDERFILE), "Filter .blend files", "");
++      prop= RNA_def_boolean(ot->srna, "filter_blender", (filter & BLENDERFILE), _("Filter .blend files"), "");
        RNA_def_property_flag(prop, PROP_HIDDEN);
--      prop= RNA_def_boolean(ot->srna, "filter_image", (filter & IMAGEFILE), "Filter image files", "");
++      prop= RNA_def_boolean(ot->srna, "filter_image", (filter & IMAGEFILE), _("Filter image files"), "");
        RNA_def_property_flag(prop, PROP_HIDDEN);
--      prop= RNA_def_boolean(ot->srna, "filter_movie", (filter & MOVIEFILE), "Filter movie files", "");
++      prop= RNA_def_boolean(ot->srna, "filter_movie", (filter & MOVIEFILE), _("Filter movie files"), "");
        RNA_def_property_flag(prop, PROP_HIDDEN);
--      prop= RNA_def_boolean(ot->srna, "filter_python", (filter & PYSCRIPTFILE), "Filter python files", "");
++      prop= RNA_def_boolean(ot->srna, "filter_python", (filter & PYSCRIPTFILE), _("Filter python files"), "");
        RNA_def_property_flag(prop, PROP_HIDDEN);
--      prop= RNA_def_boolean(ot->srna, "filter_font", (filter & FTFONTFILE), "Filter font files", "");
++      prop= RNA_def_boolean(ot->srna, "filter_font", (filter & FTFONTFILE), _("Filter font files"), "");
        RNA_def_property_flag(prop, PROP_HIDDEN);
--      prop= RNA_def_boolean(ot->srna, "filter_sound", (filter & SOUNDFILE), "Filter sound files", "");
++      prop= RNA_def_boolean(ot->srna, "filter_sound", (filter & SOUNDFILE), _("Filter sound files"), "");
        RNA_def_property_flag(prop, PROP_HIDDEN);
--      prop= RNA_def_boolean(ot->srna, "filter_text", (filter & TEXTFILE), "Filter text files", "");
++      prop= RNA_def_boolean(ot->srna, "filter_text", (filter & TEXTFILE), _("Filter text files"), "");
        RNA_def_property_flag(prop, PROP_HIDDEN);
--      prop= RNA_def_boolean(ot->srna, "filter_btx", (filter & BTXFILE), "Filter btx files", "");
++      prop= RNA_def_boolean(ot->srna, "filter_btx", (filter & BTXFILE), _("Filter btx files"), "");
        RNA_def_property_flag(prop, PROP_HIDDEN);
--      prop= RNA_def_boolean(ot->srna, "filter_collada", (filter & COLLADAFILE), "Filter COLLADA files", "");
++      prop= RNA_def_boolean(ot->srna, "filter_collada", (filter & COLLADAFILE), _("Filter COLLADA files"), "");
        RNA_def_property_flag(prop, PROP_HIDDEN);
--      prop= RNA_def_boolean(ot->srna, "filter_folder", (filter & FOLDERFILE), "Filter folders", "");
++      prop= RNA_def_boolean(ot->srna, "filter_folder", (filter & FOLDERFILE), _("Filter folders"), "");
        RNA_def_property_flag(prop, PROP_HIDDEN);
  
        prop= RNA_def_int(ot->srna, "filemode", type, FILE_LOADLIB, FILE_SPECIAL, 
--              "File Browser Mode", "The setting for the file browser mode to load a .blend file, a library or a special file",
++              _("File Browser Mode"), _("The setting for the file browser mode to load a .blend file, a library or a special file"),
                FILE_LOADLIB, FILE_SPECIAL);
        RNA_def_property_flag(prop, PROP_HIDDEN);
  
        if(flag & WM_FILESEL_RELPATH)
--              RNA_def_boolean(ot->srna, "relative_path", (U.flag & USER_RELPATHS) ? 1:0, "Relative Path", "Select the file relative to the blend file");
++              RNA_def_boolean(ot->srna, "relative_path", (U.flag & USER_RELPATHS) ? 1:0, _("Relative Path"), _("Select the file relative to the blend file"));
  }
  
  void WM_operator_properties_select_all(wmOperatorType *ot) {
                        {0, NULL, 0, NULL, NULL}
        };
  
--      RNA_def_enum(ot->srna, "action", select_all_actions, SEL_TOGGLE, "Action", "Selection action to execute");
++      RNA_def_enum(ot->srna, "action", select_all_actions, SEL_TOGGLE, _("Action"), _("Selection action to execute"));
  }
  
  void WM_operator_properties_gesture_border(wmOperatorType *ot, int extend)
  {
--      RNA_def_int(ot->srna, "gesture_mode", 0, INT_MIN, INT_MAX, "Gesture Mode", "", INT_MIN, INT_MAX);
--      RNA_def_int(ot->srna, "xmin", 0, INT_MIN, INT_MAX, "X Min", "", INT_MIN, INT_MAX);
--      RNA_def_int(ot->srna, "xmax", 0, INT_MIN, INT_MAX, "X Max", "", INT_MIN, INT_MAX);
--      RNA_def_int(ot->srna, "ymin", 0, INT_MIN, INT_MAX, "Y Min", "", INT_MIN, INT_MAX);
--      RNA_def_int(ot->srna, "ymax", 0, INT_MIN, INT_MAX, "Y Max", "", INT_MIN, INT_MAX);
++      RNA_def_int(ot->srna, "gesture_mode", 0, INT_MIN, INT_MAX, _("Gesture Mode"), "", INT_MIN, INT_MAX);
++      RNA_def_int(ot->srna, "xmin", 0, INT_MIN, INT_MAX, _("X Min"), "", INT_MIN, INT_MAX);
++      RNA_def_int(ot->srna, "xmax", 0, INT_MIN, INT_MAX, _("X Max"), "", INT_MIN, INT_MAX);
++      RNA_def_int(ot->srna, "ymin", 0, INT_MIN, INT_MAX, _("Y Min"), "", INT_MIN, INT_MAX);
++      RNA_def_int(ot->srna, "ymax", 0, INT_MIN, INT_MAX, _("Y Max"), "", INT_MIN, INT_MAX);
  
        if(extend)
--              RNA_def_boolean(ot->srna, "extend", 1, "Extend", "Extend selection instead of deselecting everything first");
++              RNA_def_boolean(ot->srna, "extend", 1, _("Extend"), _("Extend selection instead of deselecting everything first"));
  }
  
  void WM_operator_properties_gesture_straightline(wmOperatorType *ot, int cursor)
  {
--      RNA_def_int(ot->srna, "xstart", 0, INT_MIN, INT_MAX, "X Start", "", INT_MIN, INT_MAX);
--      RNA_def_int(ot->srna, "xend", 0, INT_MIN, INT_MAX, "X End", "", INT_MIN, INT_MAX);
--      RNA_def_int(ot->srna, "ystart", 0, INT_MIN, INT_MAX, "Y Start", "", INT_MIN, INT_MAX);
--      RNA_def_int(ot->srna, "yend", 0, INT_MIN, INT_MAX, "Y End", "", INT_MIN, INT_MAX);
++      RNA_def_int(ot->srna, "xstart", 0, INT_MIN, INT_MAX, _("X Start"), "", INT_MIN, INT_MAX);
++      RNA_def_int(ot->srna, "xend", 0, INT_MIN, INT_MAX, _("X End"), "", INT_MIN, INT_MAX);
++      RNA_def_int(ot->srna, "ystart", 0, INT_MIN, INT_MAX, _("Y Start"), "", INT_MIN, INT_MAX);
++      RNA_def_int(ot->srna, "yend", 0, INT_MIN, INT_MAX, _("Y End"), "", INT_MIN, INT_MAX);
        
        if(cursor)
--              RNA_def_int(ot->srna, "cursor", cursor, 0, INT_MAX, "Cursor", "Mouse cursor style to use during the modal operator", 0, INT_MAX);
++              RNA_def_int(ot->srna, "cursor", cursor, 0, INT_MAX, _("Cursor"), _("Mouse cursor style to use during the modal operator"), 0, INT_MAX);
  }
  
  
@@@ -982,7 -990,7 +991,7 @@@ static uiBlock *wm_block_create_dialog(
                col= uiLayoutColumn(layout, FALSE);
                col_block= uiLayoutGetBlock(col);
                /* Create OK button, the callback of which will execute op */
-               btn= uiDefBut(col_block, BUT, 0, _("OK"), 0, -30, 0, 20, NULL, 0, 0, 0, 0, "");
 -              btn= uiDefBut(col_block, BUT, 0, "OK", 0, -30, 0, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
++              btn= uiDefBut(col_block, BUT, 0, _("OK"), 0, -30, 0, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
                uiButSetFunc(btn, dialog_exec_cb, op, col_block);
        }
  
@@@ -1101,7 -1109,7 +1110,7 @@@ static void WM_OT_debug_menu(wmOperator
        ot->exec= wm_debug_menu_exec;
        ot->poll= WM_operator_winactive;
        
--      RNA_def_int(ot->srna, "debug_value", 0, -10000, 10000, "Debug Value", "", INT_MIN, INT_MAX);
++      RNA_def_int(ot->srna, "debug_value", 0, -10000, 10000, _("Debug Value"), "", INT_MIN, INT_MAX);
  }
  
  
@@@ -1684,9 -1705,9 +1706,9 @@@ static int wm_link_append_exec(bContex
  
  static void WM_OT_link_append(wmOperatorType *ot)
  {
--      ot->name= "Link/Append from Library";
++      ot->name= _("Link/Append from Library");
        ot->idname= "WM_OT_link_append";
 -      ot->description= "Link or Append from a Library .blend file";
 +      ot->description= _("Link or Append from a Library .blend file");
        
        ot->invoke= wm_link_append_invoke;
        ot->exec= wm_link_append_exec;
  
        WM_operator_properties_filesel(ot, FOLDERFILE|BLENDERFILE, FILE_LOADLIB, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_DIRECTORY|WM_FILESEL_FILENAME| WM_FILESEL_RELPATH);
        
--      RNA_def_boolean(ot->srna, "link", 1, "Link", "Link the objects or datablocks rather than appending");
--      RNA_def_boolean(ot->srna, "autoselect", 1, "Select", "Select the linked objects");
--      RNA_def_boolean(ot->srna, "active_layer", 1, "Active Layer", "Put the linked objects on the active layer");
--      RNA_def_boolean(ot->srna, "instance_groups", 1, "Instance Groups", "Create instances for each group as a DupliGroup");
++      RNA_def_boolean(ot->srna, "link", 1, _("Link"), _("Link the objects or datablocks rather than appending"));
++      RNA_def_boolean(ot->srna, "autoselect", 1, _("Select"), _("Select the linked objects"));
++      RNA_def_boolean(ot->srna, "active_layer", 1, _("Active Layer"), _("Put the linked objects on the active layer"));
++      RNA_def_boolean(ot->srna, "instance_groups", 1, _("Instance Groups"), _("Create instances for each group as a DupliGroup"));
  
        RNA_def_collection_runtime(ot->srna, "files", &RNA_OperatorFileListElement, "Files", "");
  }     
@@@ -1788,9 -1809,9 +1810,9 @@@ static void untitled(char *name
                char *c= BLI_last_slash(name);
                
                if(c)
--                      strcpy(&c[1], "untitled.blend");
++                      strcpy(&c[1], _("untitled.blend"));
                else
--                      strcpy(name, "untitled.blend");
++                      strcpy(name, _("untitled.blend"));
        }
  }
  
@@@ -1875,9 -1896,9 +1897,9 @@@ static int blend_save_check(bContext *U
  
  static void WM_OT_save_as_mainfile(wmOperatorType *ot)
  {
--      ot->name= "Save As Blender File";
++      ot->name= _("Save As Blender File");
        ot->idname= "WM_OT_save_as_mainfile";
 -      ot->description="Save the current file in the desired location";
 +      ot->description=_("Save the current file in the desired location");
        
        ot->invoke= wm_save_as_mainfile_invoke;
        ot->exec= wm_save_as_mainfile_exec;
        /* ommit window poll so this can work in background mode */
  
        WM_operator_properties_filesel(ot, FOLDERFILE|BLENDERFILE, FILE_BLENDER, FILE_SAVE, WM_FILESEL_FILEPATH);
--      RNA_def_boolean(ot->srna, "compress", 0, "Compress", "Write compressed .blend file");
--      RNA_def_boolean(ot->srna, "relative_remap", 1, "Remap Relative", "Remap relative paths when saving in a different directory");
--      RNA_def_boolean(ot->srna, "copy", 0, "Save Copy", "Save a copy of the actual working state but does not make saved file active.");
++      RNA_def_boolean(ot->srna, "compress", 0, _("Compress"), _("Write compressed .blend file"));
++      RNA_def_boolean(ot->srna, "relative_remap", 1, _("Remap Relative"), _("Remap relative paths when saving in a different directory"));
++      RNA_def_boolean(ot->srna, "copy", 0, _("Save Copy"), _("Save a copy of the actual working state but does not make saved file active."));
  }
  
  /* *************** save file directly ******** */
@@@ -3149,7 -3211,7 +3212,7 @@@ static int radial_control_modal(bContex
  
  static void WM_OT_radial_control(wmOperatorType *ot)
  {
--      ot->name= "Radial Control";
++      ot->name= _("Radial Control");
        ot->idname= "WM_OT_radial_control";
  
        ot->invoke= radial_control_invoke;
@@@ -3297,7 -3360,7 +3361,7 @@@ static void WM_OT_redraw_timer(wmOperat
        ot->poll= WM_operator_winactive;
  
        ot->prop= RNA_def_enum(ot->srna, "type", redraw_timer_type_items, 0, "Type", "");
--      RNA_def_int(ot->srna, "iterations", 10, 1,INT_MAX, "Iterations", "Number of times to redraw", 1,1000);
++      RNA_def_int(ot->srna, "iterations", 10, 1,INT_MAX, _("Iterations"), _("Number of times to redraw"), 1,1000);
  
  }
  
index 4bb0437ed6f67fb459972db2ec96840fb0c40869,85fda11bd6695a4ed2bfd3f8e1bfd6cc5618eba3..a7a0458a2f3441b303b0fd7e29deb03770de4ce7
@@@ -346,9 -350,7 +350,9 @@@ if(UNIX AND NOT APPLE
                )
  
                install(
 -                      DIRECTORY ${CMAKE_SOURCE_DIR}/release/bin/.blender/locale
 +                      DIRECTORY
 +                                      ${CMAKE_SOURCE_DIR}/release/bin/.blender/locale
-                                       ${CMAKE_SOURCE_DIR}/release/datafiles/fonts
++                                      ${CMAKE_SOURCE_DIR}/release/bin/.blender/fonts
                        DESTINATION ${TARGETDIR_VER}/datafiles
                        PATTERN ".svn" EXCLUDE
                )
@@@ -423,9 -425,7 +427,9 @@@ elseif(WIN32
                        DESTINATION ${TARGETDIR_VER}/config
                )
                install(
 -                      DIRECTORY ${CMAKE_SOURCE_DIR}/release/bin/.blender/locale
 +                      DIRECTORY
 +                                      ${CMAKE_SOURCE_DIR}/release/bin/.blender/locale
-                                       ${CMAKE_SOURCE_DIR}/release/datafiles/fonts
++                                      ${CMAKE_SOURCE_DIR}/release/bin/.blender/fonts
                        DESTINATION ${TARGETDIR_VER}/datafiles
                        PATTERN ".svn" EXCLUDE
                )
@@@ -681,9 -658,7 +662,9 @@@ elseif(APPLE
                )
  
                install_dir(
 -                      ${CMAKE_SOURCE_DIR}/release/bin/.blender/locale/
 +                      DIRECTORY
 +                                      ${CMAKE_SOURCE_DIR}/release/bin/.blender/locale
-                                       ${CMAKE_SOURCE_DIR}/release/datafiles/fonts
++                                      ${CMAKE_SOURCE_DIR}/release/bin/.blender/fonts
                        \${TARGETDIR_VER}/datafiles/locale
                )
        endif()