diff --git a/gamedata/configs/text/eng/ui_st_ixray_editors.xml b/gamedata/configs/text/eng/ui_st_ixray_editors.xml
index 6ef110fc31..c59724414a 100644
--- a/gamedata/configs/text/eng/ui_st_ixray_editors.xml
+++ b/gamedata/configs/text/eng/ui_st_ixray_editors.xml
@@ -1,5 +1,16 @@
+
Preferences
@@ -1062,9 +1073,6 @@
Text Editor
-
- Clear
-
[none]
@@ -1372,13 +1380,13 @@
Object '%s', surface '%s' contain undefined game material.
- CustomObject: '%s' - motion has different version. Load failed.
+ Custom Object: '%s' - motion has different version. Load failed.
- SoundSource: '%s' has no sounds.
+ Sound Source: '%s' has no sounds.
- SoundEnvironment: '%s' inner and outer environment must be different.
+ Sound Environment: '%s' inner and outer environment must be different.
Scene hasn't sound environment geometry.
@@ -1401,4 +1409,1015 @@
Can't create Portal from one edge!\nPlease check geometry\nfrom '%s' to '%s'
+
+ ! Only one selected way point supported.
+
+
+ Are you sure to rename selected objects?
+
+
+ %d - objects are renamed.
+
+
+ Scene sharing violation
+
+
+ Level loading...
+
+
+ Need to rebuild CFORM
+
+
+ Need to rebuild AI-Map
+
+
+ Need to rebuild game graph
+
+
+ Are you sure to export Sound Occlusion Model?
+
+
+ Are you sure to export HOM?
+
+
+ Are you sure to export details?
+
+
+ Are you sure to export puddles?
+
+
+ Are you sure to export game?
+
+
+ Are you sure to export ai-map?
+
+
+ Are you sure to build level?
+
+
+ Redo buffer empty
+
+
+ Undo buffer empty
+
+
+ Fragment saving...
+
+
+ Fragment loading...
+
+
+ Scene must be empty before refreshing library!
+
+
+ Can't load map '%s'
+
+
+ Model [
+
+
+ ] not found. Do you want to select it from library?
+
+
+ ! visual [%s] has no animation [%s]
+
+
+ ! Can't create entity:
+
+
+ Spawn Point: '%s' must contain attached shape.
+
+
+ Spawn point: Unsupported version.
+
+
+ Spawn point: Unsupported spawn version.
+
+
+ Spawn point: Can't load Spawn Data.
+
+
+ ! Invalid spawn data:
+
+
+ Profile (spawn section)
+
+
+ Respawn Point\Profile
+
+
+ Respawn Point\Team
+
+
+ Respawn Point\Spawn Type
+
+
+ Environment Modificator\Radius
+
+
+ Environment Modificator\Power
+
+
+ Environment Modificator\View Distance
+
+
+ Environment Modificator\View Distance\
+
+
+ Environment Modificator\Fog Color
+
+
+ Environment Modificator\Fog Color\
+
+
+ Environment Modificator\Fog Density
+
+
+ Environment Modificator\Fog Density\
+
+
+ Environment Modificator\Ambient Color
+
+
+ Environment Modificator\Ambient Color\
+
+
+ Environment Modificator\Sky Color
+
+
+ Environment Modificator\Sky Color\
+
+
+ Environment Modificator\Hemi Color
+
+
+ Environment Modificator\Hemi Color\
+
+
+ Last mesh deleted.\nSector has no meshes and will be removed.
+
+
+ Capturing unused face...
+
+
+ Sector Item contains object '%s' - can't load.\nObject not found.
+
+
+ Sector Item contains object '%s' - can't load.\nObject is dynamic.
+
+
+ Sector Item contains object '%s' mesh '%s' - can't load.\nMesh not found.
+
+
+ Sector Item contains unnamed object - can't load
+
+
+ CSector: Unsupported version.
+
+
+ Contents\Objects
+
+
+ Contents\Meshes
+
+
+ Contents\Faces
+
+
+ Color
+
+
+ Change LevelMap to
+
+
+ * ERROR: Sector: '%s' - face count less than 4!
+
+
+ * ERROR: Sector: '%s' - can't find any renderable face!
+
+
+ Duplicate object name already exists: '%s'
+
+
+ Can't calculate bounding box. Nothing selected or some object unsupported this function.
+
+
+ Critical render error. Please report this to IX-Ray Team! \n[Type B] - Tools: '%s' Object: '%s'
+
+
+ Critical render error. Please report this to IX-Ray Team! \n[Type B] - Tools: '%s'
+
+
+ CSceneObject: '%s' not found in library
+
+
+ Object [
+
+
+ ] not found. Do you want to replace it with [
+
+
+ ] or you want to select another object from library?
+
+
+ Skipping bad version of level options.
+
+
+ Skipping bad version of build params.
+
+
+ Skipping invalid version of level part: '%s\%s.part'
+
+
+ Skipping corrupted version of level part: '%s\%s.part'
+
+
+ Saving time: %3.2f sec
+
+
+ EScene: loading '%s'
+
+
+ EScene: unsupported file version. Can't load Level.
+
+
+ EScene: %d objects loaded, %3.2f sec
+
+
+ EScene: Can't find snap object '%s'.
+
+
+ Can't find file: '%s'
+
+
+ Skipping old version of level options.\nCheck level options after loading.
+
+
+ Loading objects...
+
+
+ EScene: Failed to load selection.
+
+
+ EScene: loading part %s...
+
+
+ Failed to open clipboard
+
+
+ No data in clipboard
+
+
+ CFORM is empty!\nCheck log.
+
+
+ AI-Map is empty!\nCheck log.
+
+
+ Game graph is empty!\nCheck log.
+
+
+ ! Failed build spawn! \nCheck log.
+
+
+ Unable to build the level!
+
+
+ Unable to save file level.ai.temp!\nCheck log.
+
+
+ Scene: initialized
+
+
+ Scene: cleared
+
+
+ ERROR: Bounding box [%s]
+
+
+ The scene has been modified. Do you want to save your changes?
+
+
+ ERROR: Validate '%s' failed!
+
+
+ ! Level doesn't contain HOM objects!
+
+
+ * ERROR: Can't find any Spawn Object.
+
+
+ * ERROR: Can't find any Light Object.
+
+
+ * ERROR: Can't find any Scene Object.
+
+
+ * ERROR: Can't find any Glow Object.
+
+
+ * ERROR: Found duplicate object name.
+
+
+ * ERROR: Scene has non compatible shaders. Check log.
+
+
+ * ERROR: Can't find static geometry.
+
+
+ * ERROR: Particle System has no reference.
+
+
+ Validation successful.
+
+
+ Scene\Name
+
+
+ Scene\Name prefix
+
+
+ Scene\Build options\Level path
+
+
+ Scene\Build options\Custom data
+
+
+ Scene\Map version
+
+
+ Scene\Build options\Quality
+
+
+ Scene\Build options\Lighting\Hemisphere quality [0-3]
+
+
+ Scene\Build options\Lighting\Sun shadow quality [0-3]
+
+
+ Scene\Build options\Optimizing\Normal smooth angle
+
+
+ Scene\Build options\Optimizing\Weld distance (m)
+
+
+ Scene\Build options\Lighting\Pixel per meter
+
+
+ Scene\Build options\Lighting\Error (LM collapsing)
+
+
+ Scene\Build options\Lighting\Error (LM zero)
+
+
+ Scene\Build options\Lighting\Jitter samples
+
+
+ ! CForm is empty!
+
+
+ ! subst for '%s' already exist -'%s'
+
+
+ Portal: Degenerate portal found.
+
+
+ Check portal orientation: '%s'
+
+
+ CPortal: Unsupported version.
+
+
+ Portal: Can't find required sectors.\nObject '%s' can't load.
+
+
+ Unable to create portal '%s'.\nInvalid portal. (vertices count less than 3)
+
+
+ Scene\Targets\Enable
+
+
+ Scene\Targets\Read Only
+
+
+ Freeze objects
+
+
+ Unique,Reference
+
+
+ CGlow: Unsupported version.
+
+
+ Radius
+
+
+ Invalid face found at pos: [%3.2f,%3.2f,%3.2f]
+
+
+ Breakable object cannot handle more than 63 parts.
+
+
+ Degenerate part found (Texture '%s').
+
+
+ Part [texture '%s'] have %d duplicate(degenerate) face(s).
+
+
+
+ Simplify Parts...
+
+
+ ESoundSource: Unsupported version.
+
+
+ ESoundSource: Can't load Sound Source '%s'. Unsupported version.
+
+
+ Custom\Controls
+
+
+ Play,Stop,Simulate
+
+
+ Source\Sound name
+
+
+ Source\Frequency
+
+
+ Source\Volume
+
+
+ Source\Min dist
+
+
+ Source\Max dist
+
+
+ Source\Max ai dist
+
+
+ Game\Active time\Hint
+
+
+ Zero - play sound looped round the clock.
+
+
+ Game\Active time\From
+
+
+ Game\Active time\To
+
+
+ Game\Play time\Hint
+
+
+ Zero - play sound once.
+
+
+ Game\Play time\From
+
+
+ Game\Play time\To
+
+
+ Game\Pause delta\Hint
+
+
+ Zero - play sound looped.
+
+
+ Game\Pause delta\From
+
+
+ Game\Pause delta\To
+
+
+ ESoundEnvironment: Unsupported version.
+
+
+ Environment Inner
+
+
+ Environment Outer
+
+
+ Shape usage
+
+
+ common
+
+
+ level bound
+
+
+ %s tools: Unsupported version.
+
+
+ Select one Way object.
+
+
+ Static Wallmark: Unsupported version.
+
+
+ ERROR: Invalid wallmark (Contain more than %d vertices). Removed.
+
+
+ Select texture before adding wallmark.
+
+
+ Fill and activate snap list.
+
+
+ Invalid wallmark vertex count. [Min: %d. Max: %d].
+
+
+ Common\Draw Wallmarks
+
+
+ Common\Alignment
+
+
+ Common\Width
+
+
+ Common\Height
+
+
+ Common\Rotate
+
+
+ Common\Shader
+
+
+ Common\Texture
+
+
+ By Camera
+
+
+ By World Axis
+
+
+ Wallmarks: Invalid or missing shader '%s'.
+
+
+ ! incorrect ActorRP teamID [%d] for CTA
+
+
+ ! incorrect AF teamID [%d] for CTA
+
+
+ Nothing selected.
+
+
+ Select one shape.
+
+
+ Attach impossible.
+
+
+ Common\Draw Solid
+
+
+ Common\Draw Simple Model
+
+
+ Removed '%d' portal(s).
+
+
+ Object '%s', surface '%s' contain invalid game material.
+
+
+ Object '%s', surface '%s' contain undefined game material.
+
+
+ Can't find engine shader '%s'. Object '%s', surface '%s'. Export interrupted.
+
+
+ Object '%s', surface '%s' contain static engine shader - '%s'. Export interrupted.
+
+
+ Export breakable objects...
+
+
+ Prepare geometry...
+
+
+ Export Parts...
+
+
+ Invalid breakable object.
+
+
+ Can't export invalid part #%d
+
+
+ Export climable objects...
+
+
+ Invalid climable object found. [%3.2f, %3.2f, %3.2f]
+
+
+ Duplicate object position '%s'-'%s' with reference '%s'.
+
+
+ ! There is no texture '%s'
+
+
+ Scale\Proportional
+
+
+ Scale\Minimum
+
+
+ Scale\Maximum
+
+
+ Rotate\Minimum
+
+
+ Rotate\Maximum
+
+
+ TUI_ControlObjectAdd:: Can't load reference object.
+
+
+ Common\Sun Shadow\Visible
+
+
+ Common\Sun Shadow\Altitude
+
+
+ Common\Sun Shadow\Longitude
+
+
+ Common\Controls\Draw Name
+
+
+ Common\Controls\Count
+
+
+ Common\Controls\System
+
+
+ Common\Controls\User
+
+
+ Rename,Remove
+
+
+ %s: '%s' - Invalid light control.
+
+
+ Duplicate name found.
+
+
+ Invalid control name.
+
+
+ Can't ungroup object: '%s'.
+
+
+ Group '%s' successfully created.\nContain %d object(s)
+
+
+ Group can't be created.
+
+
+ Can't reload group: '%s'.
+
+
+ No object(s) selected.
+
+
+ Process multiple objects?
+
+
+ Can't write file [%s]
+
+
+ Can't make screenshot.
+
+
+ Select 1 Group object.
+
+
+ Common\Test Visibility
+
+
+ Common\Draw Cross
+
+
+ profile (ltx)
+
+
+ Volume Type
+
+
+ Emitter
+
+
+ Occlusion
+
+
+ Snap list empty!
+
+
+ Base texture empty!
+
+
+ Updating bounding boxes...
+
+
+ Invalid base texture!
+
+
+ Object list empty!
+
+
+ Updating objects...
+
+
+ Can't open file '%s'.
+
+
+ EDetailManager: unsupported version.
+
+
+ EDetailManager: Some objects removed. Reinitialize objects.
+
+
+ EDetailManager: Can't find snap object '%s'.
+
+
+ EDetailManager: Can't find base texture '%s'.
+
+
+ Making details...
+
+
+ merge textures
+
+
+ export geometry
+
+
+ Bad object or object not found '%s'.
+
+
+ export slots
+
+
+ Texture changed. Reinitialize objects.
+
+
+ Objects per square
+
+
+ Base Texture
+
+
+ Common\Draw objects
+
+
+ Common\Draw base texture
+
+
+ Common\Base texture blended
+
+
+ Common\Draw slot boxes
+
+
+ Loading %s(stream)...
+
+
+ Loading %s(ltx)...
+
+
+ Loading %s...
+
+
+ !!! Error _name = %s, %s, %s
+
+
+ !!! Try FIX name
+
+
+ Fill object list and try again.
+
+
+ Can't align position.
+
+
+ Building nodes...
+
+
+ Append at least one node.
+
+
+ Prepare collision model...
+
+
+ Building collision model...
+
+
+ - building time: %.3f
+
+
+ Fill snap list before generating slots!
+
+
+ Smoothing nodes...
+
+
+ Node: has wrong link [%3.2f, %3.2f, %3.2f], {%d,%d,%d,%d}
+
+
+ AI-Map: Unsupported version.
+
+
+ AI-Map: Can't find snap object '%s'.
+
+
+ Can't create node.
+
+
+ Removing nodes...
+
+
+ erasing nodes
+
+
+ updating hash
+
+
+ end
+
+
+ Common\Draw Nodes
+
+
+ Common\Slow Calculate Mode
+
+
+ Common\Visible Radius
+
+
+ Common\Smooth Height
+
+
+ Params\Brush Size
+
+
+ Params\Can Up
+
+
+ Params\Can Down
+
+
+ Play,Stop
+
+
+ Range
+
+
+ Attenuation\Constant
+
+
+ Attenuation\Linear
+
+
+ Attenuation\Quadratic
+
+
+ Attenuation\Auto
+
+
+ Linear,Quadratic
+
+
+ Attenuation\Graphic
+
+
+ Usage\Light Map
+
+
+ Usage\Dynamic
+
+
+ Usage\Animated
+
+
+ Fuzzy
+
+
+ Fuzzy\Count
+
+
+ Fuzzy\Generate
+
+
+ Random
+
+
+ Fuzzy\Shape
+
+
+ Fuzzy\Radius
+
+
+ Fuzzy\Half Dimension
+
+
+ Spot R1\Cone Angle
+
+
+ Spot R1\Texture
+
+
+ Type
+
+
+ Brightness
+
+
+ Light Control
+
+
+ Use in render
+
+
+ CLight: Unsupported version.
+
+
+ Can't find light animation: %s
+
+
+ CLight: Can't load sun.
+
+
+ From Time
+
+
+ To Time
+
+
+ Speed (m/sec)
+
+
+ Flags\Motionable
+
+
+ Motion\Hint
+
+
+ Motion\Files
+
+
+ Make KEY only on Parent CS
+
+
+ Import,Export
+
+
+ Motion\Commands
+
+
+ + K,- K,Scale,Norm,Clamp
+
+
+ Motion\Controls
+
+
+ Motion\Flags\Auto Key
+
+
+ Motion\Flags\Camera View
+
+
+ Motion\Start Frame (sec)
+
+
+ Motion\End Frame (sec)
+
+
+ Motion\Current Frame (sec)
+
+
+ Motion\Change Key Time (sec)
+
+
+ Motion\Key Count
+
+
+ Motion\Length (sec)
+
+
+ Light
+
diff --git a/gamedata/configs/text/rus/ui_st_ixray_editors.xml b/gamedata/configs/text/rus/ui_st_ixray_editors.xml
index 6ef110fc31..c59724414a 100644
--- a/gamedata/configs/text/rus/ui_st_ixray_editors.xml
+++ b/gamedata/configs/text/rus/ui_st_ixray_editors.xml
@@ -1,5 +1,16 @@
+
Preferences
@@ -1062,9 +1073,6 @@
Text Editor
-
- Clear
-
[none]
@@ -1372,13 +1380,13 @@
Object '%s', surface '%s' contain undefined game material.
- CustomObject: '%s' - motion has different version. Load failed.
+ Custom Object: '%s' - motion has different version. Load failed.
- SoundSource: '%s' has no sounds.
+ Sound Source: '%s' has no sounds.
- SoundEnvironment: '%s' inner and outer environment must be different.
+ Sound Environment: '%s' inner and outer environment must be different.
Scene hasn't sound environment geometry.
@@ -1401,4 +1409,1015 @@
Can't create Portal from one edge!\nPlease check geometry\nfrom '%s' to '%s'
+
+ ! Only one selected way point supported.
+
+
+ Are you sure to rename selected objects?
+
+
+ %d - objects are renamed.
+
+
+ Scene sharing violation
+
+
+ Level loading...
+
+
+ Need to rebuild CFORM
+
+
+ Need to rebuild AI-Map
+
+
+ Need to rebuild game graph
+
+
+ Are you sure to export Sound Occlusion Model?
+
+
+ Are you sure to export HOM?
+
+
+ Are you sure to export details?
+
+
+ Are you sure to export puddles?
+
+
+ Are you sure to export game?
+
+
+ Are you sure to export ai-map?
+
+
+ Are you sure to build level?
+
+
+ Redo buffer empty
+
+
+ Undo buffer empty
+
+
+ Fragment saving...
+
+
+ Fragment loading...
+
+
+ Scene must be empty before refreshing library!
+
+
+ Can't load map '%s'
+
+
+ Model [
+
+
+ ] not found. Do you want to select it from library?
+
+
+ ! visual [%s] has no animation [%s]
+
+
+ ! Can't create entity:
+
+
+ Spawn Point: '%s' must contain attached shape.
+
+
+ Spawn point: Unsupported version.
+
+
+ Spawn point: Unsupported spawn version.
+
+
+ Spawn point: Can't load Spawn Data.
+
+
+ ! Invalid spawn data:
+
+
+ Profile (spawn section)
+
+
+ Respawn Point\Profile
+
+
+ Respawn Point\Team
+
+
+ Respawn Point\Spawn Type
+
+
+ Environment Modificator\Radius
+
+
+ Environment Modificator\Power
+
+
+ Environment Modificator\View Distance
+
+
+ Environment Modificator\View Distance\
+
+
+ Environment Modificator\Fog Color
+
+
+ Environment Modificator\Fog Color\
+
+
+ Environment Modificator\Fog Density
+
+
+ Environment Modificator\Fog Density\
+
+
+ Environment Modificator\Ambient Color
+
+
+ Environment Modificator\Ambient Color\
+
+
+ Environment Modificator\Sky Color
+
+
+ Environment Modificator\Sky Color\
+
+
+ Environment Modificator\Hemi Color
+
+
+ Environment Modificator\Hemi Color\
+
+
+ Last mesh deleted.\nSector has no meshes and will be removed.
+
+
+ Capturing unused face...
+
+
+ Sector Item contains object '%s' - can't load.\nObject not found.
+
+
+ Sector Item contains object '%s' - can't load.\nObject is dynamic.
+
+
+ Sector Item contains object '%s' mesh '%s' - can't load.\nMesh not found.
+
+
+ Sector Item contains unnamed object - can't load
+
+
+ CSector: Unsupported version.
+
+
+ Contents\Objects
+
+
+ Contents\Meshes
+
+
+ Contents\Faces
+
+
+ Color
+
+
+ Change LevelMap to
+
+
+ * ERROR: Sector: '%s' - face count less than 4!
+
+
+ * ERROR: Sector: '%s' - can't find any renderable face!
+
+
+ Duplicate object name already exists: '%s'
+
+
+ Can't calculate bounding box. Nothing selected or some object unsupported this function.
+
+
+ Critical render error. Please report this to IX-Ray Team! \n[Type B] - Tools: '%s' Object: '%s'
+
+
+ Critical render error. Please report this to IX-Ray Team! \n[Type B] - Tools: '%s'
+
+
+ CSceneObject: '%s' not found in library
+
+
+ Object [
+
+
+ ] not found. Do you want to replace it with [
+
+
+ ] or you want to select another object from library?
+
+
+ Skipping bad version of level options.
+
+
+ Skipping bad version of build params.
+
+
+ Skipping invalid version of level part: '%s\%s.part'
+
+
+ Skipping corrupted version of level part: '%s\%s.part'
+
+
+ Saving time: %3.2f sec
+
+
+ EScene: loading '%s'
+
+
+ EScene: unsupported file version. Can't load Level.
+
+
+ EScene: %d objects loaded, %3.2f sec
+
+
+ EScene: Can't find snap object '%s'.
+
+
+ Can't find file: '%s'
+
+
+ Skipping old version of level options.\nCheck level options after loading.
+
+
+ Loading objects...
+
+
+ EScene: Failed to load selection.
+
+
+ EScene: loading part %s...
+
+
+ Failed to open clipboard
+
+
+ No data in clipboard
+
+
+ CFORM is empty!\nCheck log.
+
+
+ AI-Map is empty!\nCheck log.
+
+
+ Game graph is empty!\nCheck log.
+
+
+ ! Failed build spawn! \nCheck log.
+
+
+ Unable to build the level!
+
+
+ Unable to save file level.ai.temp!\nCheck log.
+
+
+ Scene: initialized
+
+
+ Scene: cleared
+
+
+ ERROR: Bounding box [%s]
+
+
+ The scene has been modified. Do you want to save your changes?
+
+
+ ERROR: Validate '%s' failed!
+
+
+ ! Level doesn't contain HOM objects!
+
+
+ * ERROR: Can't find any Spawn Object.
+
+
+ * ERROR: Can't find any Light Object.
+
+
+ * ERROR: Can't find any Scene Object.
+
+
+ * ERROR: Can't find any Glow Object.
+
+
+ * ERROR: Found duplicate object name.
+
+
+ * ERROR: Scene has non compatible shaders. Check log.
+
+
+ * ERROR: Can't find static geometry.
+
+
+ * ERROR: Particle System has no reference.
+
+
+ Validation successful.
+
+
+ Scene\Name
+
+
+ Scene\Name prefix
+
+
+ Scene\Build options\Level path
+
+
+ Scene\Build options\Custom data
+
+
+ Scene\Map version
+
+
+ Scene\Build options\Quality
+
+
+ Scene\Build options\Lighting\Hemisphere quality [0-3]
+
+
+ Scene\Build options\Lighting\Sun shadow quality [0-3]
+
+
+ Scene\Build options\Optimizing\Normal smooth angle
+
+
+ Scene\Build options\Optimizing\Weld distance (m)
+
+
+ Scene\Build options\Lighting\Pixel per meter
+
+
+ Scene\Build options\Lighting\Error (LM collapsing)
+
+
+ Scene\Build options\Lighting\Error (LM zero)
+
+
+ Scene\Build options\Lighting\Jitter samples
+
+
+ ! CForm is empty!
+
+
+ ! subst for '%s' already exist -'%s'
+
+
+ Portal: Degenerate portal found.
+
+
+ Check portal orientation: '%s'
+
+
+ CPortal: Unsupported version.
+
+
+ Portal: Can't find required sectors.\nObject '%s' can't load.
+
+
+ Unable to create portal '%s'.\nInvalid portal. (vertices count less than 3)
+
+
+ Scene\Targets\Enable
+
+
+ Scene\Targets\Read Only
+
+
+ Freeze objects
+
+
+ Unique,Reference
+
+
+ CGlow: Unsupported version.
+
+
+ Radius
+
+
+ Invalid face found at pos: [%3.2f,%3.2f,%3.2f]
+
+
+ Breakable object cannot handle more than 63 parts.
+
+
+ Degenerate part found (Texture '%s').
+
+
+ Part [texture '%s'] have %d duplicate(degenerate) face(s).
+
+
+
+ Simplify Parts...
+
+
+ ESoundSource: Unsupported version.
+
+
+ ESoundSource: Can't load Sound Source '%s'. Unsupported version.
+
+
+ Custom\Controls
+
+
+ Play,Stop,Simulate
+
+
+ Source\Sound name
+
+
+ Source\Frequency
+
+
+ Source\Volume
+
+
+ Source\Min dist
+
+
+ Source\Max dist
+
+
+ Source\Max ai dist
+
+
+ Game\Active time\Hint
+
+
+ Zero - play sound looped round the clock.
+
+
+ Game\Active time\From
+
+
+ Game\Active time\To
+
+
+ Game\Play time\Hint
+
+
+ Zero - play sound once.
+
+
+ Game\Play time\From
+
+
+ Game\Play time\To
+
+
+ Game\Pause delta\Hint
+
+
+ Zero - play sound looped.
+
+
+ Game\Pause delta\From
+
+
+ Game\Pause delta\To
+
+
+ ESoundEnvironment: Unsupported version.
+
+
+ Environment Inner
+
+
+ Environment Outer
+
+
+ Shape usage
+
+
+ common
+
+
+ level bound
+
+
+ %s tools: Unsupported version.
+
+
+ Select one Way object.
+
+
+ Static Wallmark: Unsupported version.
+
+
+ ERROR: Invalid wallmark (Contain more than %d vertices). Removed.
+
+
+ Select texture before adding wallmark.
+
+
+ Fill and activate snap list.
+
+
+ Invalid wallmark vertex count. [Min: %d. Max: %d].
+
+
+ Common\Draw Wallmarks
+
+
+ Common\Alignment
+
+
+ Common\Width
+
+
+ Common\Height
+
+
+ Common\Rotate
+
+
+ Common\Shader
+
+
+ Common\Texture
+
+
+ By Camera
+
+
+ By World Axis
+
+
+ Wallmarks: Invalid or missing shader '%s'.
+
+
+ ! incorrect ActorRP teamID [%d] for CTA
+
+
+ ! incorrect AF teamID [%d] for CTA
+
+
+ Nothing selected.
+
+
+ Select one shape.
+
+
+ Attach impossible.
+
+
+ Common\Draw Solid
+
+
+ Common\Draw Simple Model
+
+
+ Removed '%d' portal(s).
+
+
+ Object '%s', surface '%s' contain invalid game material.
+
+
+ Object '%s', surface '%s' contain undefined game material.
+
+
+ Can't find engine shader '%s'. Object '%s', surface '%s'. Export interrupted.
+
+
+ Object '%s', surface '%s' contain static engine shader - '%s'. Export interrupted.
+
+
+ Export breakable objects...
+
+
+ Prepare geometry...
+
+
+ Export Parts...
+
+
+ Invalid breakable object.
+
+
+ Can't export invalid part #%d
+
+
+ Export climable objects...
+
+
+ Invalid climable object found. [%3.2f, %3.2f, %3.2f]
+
+
+ Duplicate object position '%s'-'%s' with reference '%s'.
+
+
+ ! There is no texture '%s'
+
+
+ Scale\Proportional
+
+
+ Scale\Minimum
+
+
+ Scale\Maximum
+
+
+ Rotate\Minimum
+
+
+ Rotate\Maximum
+
+
+ TUI_ControlObjectAdd:: Can't load reference object.
+
+
+ Common\Sun Shadow\Visible
+
+
+ Common\Sun Shadow\Altitude
+
+
+ Common\Sun Shadow\Longitude
+
+
+ Common\Controls\Draw Name
+
+
+ Common\Controls\Count
+
+
+ Common\Controls\System
+
+
+ Common\Controls\User
+
+
+ Rename,Remove
+
+
+ %s: '%s' - Invalid light control.
+
+
+ Duplicate name found.
+
+
+ Invalid control name.
+
+
+ Can't ungroup object: '%s'.
+
+
+ Group '%s' successfully created.\nContain %d object(s)
+
+
+ Group can't be created.
+
+
+ Can't reload group: '%s'.
+
+
+ No object(s) selected.
+
+
+ Process multiple objects?
+
+
+ Can't write file [%s]
+
+
+ Can't make screenshot.
+
+
+ Select 1 Group object.
+
+
+ Common\Test Visibility
+
+
+ Common\Draw Cross
+
+
+ profile (ltx)
+
+
+ Volume Type
+
+
+ Emitter
+
+
+ Occlusion
+
+
+ Snap list empty!
+
+
+ Base texture empty!
+
+
+ Updating bounding boxes...
+
+
+ Invalid base texture!
+
+
+ Object list empty!
+
+
+ Updating objects...
+
+
+ Can't open file '%s'.
+
+
+ EDetailManager: unsupported version.
+
+
+ EDetailManager: Some objects removed. Reinitialize objects.
+
+
+ EDetailManager: Can't find snap object '%s'.
+
+
+ EDetailManager: Can't find base texture '%s'.
+
+
+ Making details...
+
+
+ merge textures
+
+
+ export geometry
+
+
+ Bad object or object not found '%s'.
+
+
+ export slots
+
+
+ Texture changed. Reinitialize objects.
+
+
+ Objects per square
+
+
+ Base Texture
+
+
+ Common\Draw objects
+
+
+ Common\Draw base texture
+
+
+ Common\Base texture blended
+
+
+ Common\Draw slot boxes
+
+
+ Loading %s(stream)...
+
+
+ Loading %s(ltx)...
+
+
+ Loading %s...
+
+
+ !!! Error _name = %s, %s, %s
+
+
+ !!! Try FIX name
+
+
+ Fill object list and try again.
+
+
+ Can't align position.
+
+
+ Building nodes...
+
+
+ Append at least one node.
+
+
+ Prepare collision model...
+
+
+ Building collision model...
+
+
+ - building time: %.3f
+
+
+ Fill snap list before generating slots!
+
+
+ Smoothing nodes...
+
+
+ Node: has wrong link [%3.2f, %3.2f, %3.2f], {%d,%d,%d,%d}
+
+
+ AI-Map: Unsupported version.
+
+
+ AI-Map: Can't find snap object '%s'.
+
+
+ Can't create node.
+
+
+ Removing nodes...
+
+
+ erasing nodes
+
+
+ updating hash
+
+
+ end
+
+
+ Common\Draw Nodes
+
+
+ Common\Slow Calculate Mode
+
+
+ Common\Visible Radius
+
+
+ Common\Smooth Height
+
+
+ Params\Brush Size
+
+
+ Params\Can Up
+
+
+ Params\Can Down
+
+
+ Play,Stop
+
+
+ Range
+
+
+ Attenuation\Constant
+
+
+ Attenuation\Linear
+
+
+ Attenuation\Quadratic
+
+
+ Attenuation\Auto
+
+
+ Linear,Quadratic
+
+
+ Attenuation\Graphic
+
+
+ Usage\Light Map
+
+
+ Usage\Dynamic
+
+
+ Usage\Animated
+
+
+ Fuzzy
+
+
+ Fuzzy\Count
+
+
+ Fuzzy\Generate
+
+
+ Random
+
+
+ Fuzzy\Shape
+
+
+ Fuzzy\Radius
+
+
+ Fuzzy\Half Dimension
+
+
+ Spot R1\Cone Angle
+
+
+ Spot R1\Texture
+
+
+ Type
+
+
+ Brightness
+
+
+ Light Control
+
+
+ Use in render
+
+
+ CLight: Unsupported version.
+
+
+ Can't find light animation: %s
+
+
+ CLight: Can't load sun.
+
+
+ From Time
+
+
+ To Time
+
+
+ Speed (m/sec)
+
+
+ Flags\Motionable
+
+
+ Motion\Hint
+
+
+ Motion\Files
+
+
+ Make KEY only on Parent CS
+
+
+ Import,Export
+
+
+ Motion\Commands
+
+
+ + K,- K,Scale,Norm,Clamp
+
+
+ Motion\Controls
+
+
+ Motion\Flags\Auto Key
+
+
+ Motion\Flags\Camera View
+
+
+ Motion\Start Frame (sec)
+
+
+ Motion\End Frame (sec)
+
+
+ Motion\Current Frame (sec)
+
+
+ Motion\Change Key Time (sec)
+
+
+ Motion\Key Count
+
+
+ Motion\Length (sec)
+
+
+ Light
+
diff --git a/src/Editors/LevelEditor/Editor/Entry/CustomObjectAnimation.cpp b/src/Editors/LevelEditor/Editor/Entry/CustomObjectAnimation.cpp
index 8504fb9762..170024d8d6 100644
--- a/src/Editors/LevelEditor/Editor/Entry/CustomObjectAnimation.cpp
+++ b/src/Editors/LevelEditor/Editor/Entry/CustomObjectAnimation.cpp
@@ -208,9 +208,9 @@ void CCustomObject::OnMotionCommandsClick(ButtonValue* value, bool& bModif, boo
m_FromTime = m_MotionParams->min_t;
m_ToTime = m_MotionParams->max_t;
m_ScaleFactor = 1.f;
- PHelper().CreateFloat (items,"From Time", &m_FromTime, m_FromTime, m_ToTime, 1.f/30.f, 3);
- PHelper().CreateFloat (items,"To Time", &m_ToTime, m_FromTime, m_ToTime, 1.f/30.f, 3);
- PHelper().CreateFloat (items,"Scale", &m_ScaleFactor, -1000.f, 1000.f);
+ PHelper().CreateFloat (items,g_pStringTable->translate("ed_st_from_time").c_str(), &m_FromTime, m_FromTime, m_ToTime, 1.f / 30.f, 3);
+ PHelper().CreateFloat (items,g_pStringTable->translate("ed_st_to_time").c_str(), &m_ToTime, m_FromTime, m_ToTime, 1.f / 30.f, 3);
+ PHelper().CreateFloat (items,g_pStringTable->translate("ed_st_scale").c_str(), &m_ScaleFactor, -1000.f, 1000.f);
UIPropertiesModal::Show(items);
m_ButtonId = 2;
EDevice->seqDrawUI.Add(this);
@@ -221,9 +221,9 @@ void CCustomObject::OnMotionCommandsClick(ButtonValue* value, bool& bModif, boo
m_FromTime = m_MotionParams->min_t;
m_ToTime = m_MotionParams->max_t;
m_Speed=5.f;
- PHelper().CreateFloat (items,"From Time", &m_FromTime, m_FromTime, m_ToTime, 1.f/30.f, 3);
- PHelper().CreateFloat (items,"To Time", &m_ToTime, m_FromTime, m_ToTime, 1.f/30.f, 3);
- PHelper().CreateFloat (items,"Speed (m/sec)", &m_Speed, 0.f, 100.f);
+ PHelper().CreateFloat (items,g_pStringTable->translate("ed_st_from_time").c_str(), &m_FromTime, m_FromTime, m_ToTime, 1.f / 30.f, 3);
+ PHelper().CreateFloat (items,g_pStringTable->translate("ed_st_to_time").c_str(), &m_ToTime, m_FromTime, m_ToTime, 1.f / 30.f, 3);
+ PHelper().CreateFloat (items,g_pStringTable->translate("ed_st_speed_m_sec").c_str(), &m_Speed, 0.f, 100.f);
UIPropertiesModal::Show(items);
m_ButtonId = 3;
EDevice->seqDrawUI.Add(this);
@@ -306,31 +306,31 @@ void CCustomObject::OnTransformChange(PropValue* value)
void CCustomObject::AnimationFillProp(LPCSTR pref, PropItemVec& items)
{
- PropValue* V = PHelper().CreateFlag32(items,PrepareKey(pref,"Flags\\Motionable"),&m_CO_Flags, flMotion);
+ PropValue* V = PHelper().CreateFlag32(items,PrepareKey(pref,g_pStringTable->translate("ed_st_motionable").c_str()),&m_CO_Flags, flMotion);
V->OnChangeEvent.bind(this,&CCustomObject::OnMotionableChange);
if (Motionable()){
- PHelper().CreateCaption (items,PrepareKey(pref,"Motion\\Hint"), "Make KEY only on Parent CS");
- ButtonValue* B = PHelper().CreateButton (items,PrepareKey(pref,"Motion\\Files"), "Import,Export", 0);
+ PHelper().CreateCaption (items,PrepareKey(pref,g_pStringTable->translate("ed_st_motion_hint").c_str()), g_pStringTable->translate("ed_st_motion_hint_msg").c_str());
+ ButtonValue* B = PHelper().CreateButton (items,PrepareKey(pref,g_pStringTable->translate("ed_st_motion_files").c_str()), g_pStringTable->translate("ed_st_import_export").c_str(), 0);
B->OnBtnClickEvent.bind(this,&CCustomObject::OnMotionFilesClick);
- B = PHelper().CreateButton (items,PrepareKey(pref,"Motion\\Commands"), "+ K,- K,Scale,Norm,Clamp", 0);
+ B = PHelper().CreateButton (items,PrepareKey(pref,g_pStringTable->translate("ed_st_motion_commands").c_str()), g_pStringTable->translate("ed_st_motion_commands_btn").c_str(), 0);
B->OnBtnClickEvent.bind(this,&CCustomObject::OnMotionCommandsClick);
- B = PHelper().CreateButton (items,PrepareKey(pref,"Motion\\Controls"), " |<<, +<<, <<, >, ||, >>, >>+, >>|", 0);
+ B = PHelper().CreateButton (items,PrepareKey(pref,g_pStringTable->translate("ed_st_motion_controls").c_str()), " |<<, +<<, <<, >, ||, >>, >>+, >>|", 0);
B->OnBtnClickEvent.bind(this,&CCustomObject::OnMotionControlClick);
- PHelper().CreateFlag32 (items,PrepareKey(pref,"Motion\\Flags\\Auto Key"), &m_CO_Flags, flAutoKey);
- V = PHelper().CreateFlag32 (items,PrepareKey(pref,"Motion\\Flags\\Camera View"), &m_CO_Flags, flCameraView);
+ PHelper().CreateFlag32 (items,PrepareKey(pref,g_pStringTable->translate("ed_st_auto_key").c_str()), &m_CO_Flags, flAutoKey);
+ V = PHelper().CreateFlag32 (items,PrepareKey(pref,g_pStringTable->translate("ed_st_camera_view").c_str()), &m_CO_Flags, flCameraView);
V->OnChangeEvent.bind(this,&CCustomObject::OnMotionCameraViewChange);
- V = PHelper().CreateFloat (items,PrepareKey(pref,"Motion\\Start Frame (sec)"), &m_MotionParams->min_t, -10000.f, m_MotionParams->max_t, 1.f/30.f, 3);
+ V = PHelper().CreateFloat (items,PrepareKey(pref,g_pStringTable->translate("ed_st_start_frame").c_str()), &m_MotionParams->min_t, -10000.f, m_MotionParams->max_t, 1.f/30.f, 3);
V->OnChangeEvent.bind(this,&CCustomObject::OnMotionFrameChange);
- V = PHelper().CreateFloat (items,PrepareKey(pref,"Motion\\End Frame (sec)"), &m_MotionParams->max_t, m_MotionParams->min_t, 10000.f, 1.f/30.f, 3);
+ V = PHelper().CreateFloat (items,PrepareKey(pref,g_pStringTable->translate("ed_st_end_frame").c_str()), &m_MotionParams->max_t, m_MotionParams->min_t, 10000.f, 1.f/30.f, 3);
V->OnChangeEvent.bind(this,&CCustomObject::OnMotionFrameChange);
- V = PHelper().CreateFloat (items,PrepareKey(pref,"Motion\\Current Frame (sec)"), &m_MotionParams->t_current, -10000.f, 10000.f, 1.f/30.f, 3);
+ V = PHelper().CreateFloat (items,PrepareKey(pref,g_pStringTable->translate("ed_st_current_frame").c_str()), &m_MotionParams->t_current, -10000.f, 10000.f, 1.f/30.f, 3);
V->OnChangeEvent.bind(this,&CCustomObject::OnMotionCurrentFrameChange);
- V = PHelper().CreateFloat (items,PrepareKey(pref,"Motion\\ChangeKeyTime(sec)"), &m_MotionParams->tmp, -10000.f, 10000.f, 1.f/30.f, 3);
+ V = PHelper().CreateFloat (items,PrepareKey(pref,g_pStringTable->translate("ed_st_change_key_time").c_str()), &m_MotionParams->tmp, -10000.f, 10000.f, 1.f/30.f, 3);
V->OnChangeEvent.bind(this,&CCustomObject::OnMotionKeyTimeChange);
- PHelper().CreateCaption (items,PrepareKey(pref,"Motion\\Key Count"), shared_str().printf("%d",m_Motion->KeyCount()));
- PHelper().CreateCaption (items,PrepareKey(pref,"Motion\\Length (sec)"), shared_str().printf("%3.2f",m_Motion->GetLength()));
+ PHelper().CreateCaption (items,PrepareKey(pref,g_pStringTable->translate("ed_st_key_count").c_str()), shared_str().printf("%d",m_Motion->KeyCount()));
+ PHelper().CreateCaption (items,PrepareKey(pref,g_pStringTable->translate("ed_st_motion_length").c_str()), shared_str().printf("%3.2f",m_Motion->GetLength()));
}
}
diff --git a/src/Editors/LevelEditor/Editor/Entry/EditObjectExportLWO.cpp b/src/Editors/LevelEditor/Editor/Entry/EditObjectExportLWO.cpp
index c9e0654a9e..1bfd9cfc63 100644
--- a/src/Editors/LevelEditor/Editor/Entry/EditObjectExportLWO.cpp
+++ b/src/Editors/LevelEditor/Editor/Entry/EditObjectExportLWO.cpp
@@ -38,7 +38,7 @@ bool CEditableObject::ExportLWO(LPCSTR fname)
int im_idx=FindLPCSTR(images,S->_Texture());
R_ASSERT(im_idx>=0);
LPCSTR vm_name=S->_VMap();
- F->Wsurface(S->_Name(),S->m_Flags.is(CSurface::sf2Sided),(u16)im_idx,(vm_name&&vm_name[0])?vm_name:"Texture",S->_ShaderName(),S->_ShaderXRLCName());
+ F->Wsurface(S->_Name(),S->m_Flags.is(CSurface::sf2Sided),(u16)im_idx,(vm_name&&vm_name[0])?vm_name:g_pStringTable->translate("ed_st_texture").c_str(), S->_ShaderName(), S->_ShaderXRLCName());
}
// meshes/layers
for (EditMeshIt mesh_it=FirstMesh(); mesh_it!=LastMesh(); mesh_it++){
diff --git a/src/Editors/LevelEditor/Editor/Entry/Glow/glow.cpp b/src/Editors/LevelEditor/Editor/Entry/Glow/glow.cpp
index f396430169..739caa42b0 100644
--- a/src/Editors/LevelEditor/Editor/Entry/Glow/glow.cpp
+++ b/src/Editors/LevelEditor/Editor/Entry/Glow/glow.cpp
@@ -131,7 +131,7 @@ bool CGlow::LoadLTX(CInifile& ini, LPCSTR sect_name)
if(version!=GLOW_VERSION)
{
- ELog.DlgMsg( mtError, "CGlow: Unsupported version.");
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_glow_unsupported_ver").c_str());
return false;
}
@@ -168,8 +168,9 @@ bool CGlow::LoadStream(IReader& F)
u16 version = 0;
R_ASSERT(F.r_chunk(GLOW_CHUNK_VERSION,&version));
- if((version!=0x0011)&&(version!=GLOW_VERSION)){
- ELog.DlgMsg( mtError, "CGlow: Unsupported version.");
+ if((version!=0x0011)&&(version!=GLOW_VERSION))
+ {
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_glow_unsupported_ver").c_str());
return false;
}
@@ -225,9 +226,9 @@ void CGlow::FillProp(LPCSTR pref, PropItemVec& items)
{
inherited::FillProp(pref, items);
PropValue* V=0;
- V=PHelper().CreateChoose (items,PrepareKey(pref,"Texture"), &m_TexName, smTexture); V->OnChangeEvent.bind(this,&CGlow::ShaderChange);
- V=PHelper().CreateChoose (items,PrepareKey(pref,"Shader"), &m_ShaderName, smEShader); V->OnChangeEvent.bind(this,&CGlow::ShaderChange);
- PHelper().CreateFloat (items,PrepareKey(pref,"Radius"), &m_fRadius, 0.01f,10000.f);
+ V=PHelper().CreateChoose (items,PrepareKey(pref,g_pStringTable->translate("ed_st_texture").c_str()), &m_TexName, smTexture); V->OnChangeEvent.bind(this,&CGlow::ShaderChange);
+ V=PHelper().CreateChoose (items,PrepareKey(pref,g_pStringTable->translate("ed_st_shader").c_str()), &m_ShaderName, smEShader); V->OnChangeEvent.bind(this,&CGlow::ShaderChange);
+ PHelper().CreateFloat (items,PrepareKey(pref,g_pStringTable->translate("ed_st_radius").c_str()), &m_fRadius, 0.01f,10000.f);
//. PHelper().CreateFlag(items,PHelper().PrepareKey(pref,"Fixed size"), &m_Flags, gfFixedSize);
}
diff --git a/src/Editors/LevelEditor/Editor/Entry/Group/GroupObject.cpp b/src/Editors/LevelEditor/Editor/Entry/Group/GroupObject.cpp
index a1a6064817..1b7a85ea9f 100644
--- a/src/Editors/LevelEditor/Editor/Entry/Group/GroupObject.cpp
+++ b/src/Editors/LevelEditor/Editor/Entry/Group/GroupObject.cpp
@@ -397,7 +397,7 @@ void CGroupObject::FillProp(LPCSTR pref, PropItemVec& items)
V->OnChangeEvent.bind(this,&CGroupObject::ReferenceChange);
ButtonValue* B;
- B=PHelper().CreateButton (items,PrepareKey(pref,"FreezeObjects"), "Unique,Reference",0);
+ B=PHelper().CreateButton (items,PrepareKey(pref,g_pStringTable->translate("ed_st_freeze_objects").c_str()), g_pStringTable->translate("ed_st_uniq_ref").c_str(), 0);
B->OnBtnClickEvent.bind (this,&CGroupObject::OnFreezeAllClick);
for (ObjectsInGroup::iterator it=m_ObjectsInGroup.begin(); it!=m_ObjectsInGroup.end(); ++it)
diff --git a/src/Editors/LevelEditor/Editor/Entry/Light/ELight_IO.cpp b/src/Editors/LevelEditor/Editor/Entry/Light/ELight_IO.cpp
index 0079709971..3d498a2b11 100644
--- a/src/Editors/LevelEditor/Editor/Entry/Light/ELight_IO.cpp
+++ b/src/Editors/LevelEditor/Editor/Entry/Light/ELight_IO.cpp
@@ -75,7 +75,7 @@ bool CLight::LoadLTX(CInifile& ini, LPCSTR sect_name)
if(version!=LIGHT_VERSION)
{
- ELog.DlgMsg( mtError, "CLight: Unsupported version.");
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_light_unsupported_ver").c_str());
return false;
}
@@ -100,7 +100,7 @@ bool CLight::LoadLTX(CInifile& ini, LPCSTR sect_name)
{
m_pAnimRef = LALib.FindItem(anm);
if (!m_pAnimRef)
- ELog.Msg(mtError, "Can't find light animation: %s",anm);
+ ELog.Msg(mtError, g_pStringTable->translate("ed_st_cant_find_la").c_str(), anm);
}
m_FalloffTex = ini.r_string (sect_name, "fallof_texture");
@@ -153,7 +153,7 @@ bool CLight::LoadStream(IReader& F)
string1024 buf;
R_ASSERT(F.r_chunk(LIGHT_CHUNK_VERSION,&version));
if((version!=0x0010)&&(version!=LIGHT_VERSION)){
- ELog.DlgMsg( mtError, "CLight: Unsupported version.");
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_light_unsupported_ver").c_str());
return false;
}
@@ -197,7 +197,7 @@ bool CLight::LoadStream(IReader& F)
{
ESceneLightTool* lt = dynamic_cast(FParentTools); VERIFY(lt);
lt->m_SunShadowDir.set(FRotation.x,FRotation.y);
- ELog.DlgMsg( mtError, "CLight: Can't load sun.");
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_cant_load_sun").c_str());
return false;
}
@@ -205,7 +205,7 @@ bool CLight::LoadStream(IReader& F)
{
F.r_stringZ(buf,sizeof(buf));
m_pAnimRef = LALib.FindItem(buf);
- if (!m_pAnimRef) ELog.Msg(mtError, "Can't find light animation: %s",buf);
+ if (!m_pAnimRef) ELog.Msg(mtError, g_pStringTable->translate("ed_st_cant_find_la").c_str(), buf);
}
if (F.find_chunk(LIGHT_CHUNK_FALLOFF_TEXTURE))
diff --git a/src/Editors/LevelEditor/Editor/Entry/Light/ELight_props.cpp b/src/Editors/LevelEditor/Editor/Entry/Light/ELight_props.cpp
index 2770d2cad9..fd2cc15445 100644
--- a/src/Editors/LevelEditor/Editor/Entry/Light/ELight_props.cpp
+++ b/src/Editors/LevelEditor/Editor/Entry/Light/ELight_props.cpp
@@ -147,19 +147,19 @@ void CLight::OnPointDataTestEqual(CanvasValue* a, CanvasValue* b, bool& res)
void CLight::FillAttProp(LPCSTR pref, PropItemVec& items)
{
PropValue* V;
- V=PHelper().CreateFloat (items, PrepareKey(pref, "Range"), &m_Range, 0.1f,1000.f);
+ V=PHelper().CreateFloat (items, PrepareKey(pref, g_pStringTable->translate("ed_st_range").c_str()), &m_Range, 0.1f,1000.f);
V->OnChangeEvent.bind (this,&CLight::OnPointDataChange);
- V=PHelper().CreateFloat (items, PrepareKey(pref, "Attenuation\\Constant"), &m_Attenuation0,0.f,1.f,0.0001f,6);
+ V=PHelper().CreateFloat (items, PrepareKey(pref, g_pStringTable->translate("ed_st_light_constant").c_str()), &m_Attenuation0,0.f,1.f,0.0001f,6);
V->OnChangeEvent.bind (this,&CLight::OnPointDataChange);
- V=PHelper().CreateFloat (items, PrepareKey(pref, "Attenuation\\Linear"), &m_Attenuation1,0.f,1.f,0.0001f,6);
+ V=PHelper().CreateFloat (items, PrepareKey(pref, g_pStringTable->translate("ed_st_light_linear").c_str()), &m_Attenuation1,0.f,1.f,0.0001f,6);
V->OnChangeEvent.bind (this,&CLight::OnPointDataChange);
- V=PHelper().CreateFloat (items, PrepareKey(pref, "Attenuation\\Quadratic"), &m_Attenuation2,0.f,1.f,0.0001f,6);
+ V=PHelper().CreateFloat (items, PrepareKey(pref, g_pStringTable->translate("ed_st_light_quadratic").c_str()), &m_Attenuation2,0.f,1.f,0.0001f,6);
V->OnChangeEvent.bind (this,&CLight::OnPointDataChange);
ButtonValue* B=0;
- B=PHelper().CreateButton(items, PrepareKey(pref, "Attenuation\\Auto"),"Linear,Quadratic",0);
+ B=PHelper().CreateButton(items, PrepareKey(pref, g_pStringTable->translate("ed_st_light_auto").c_str()),g_pStringTable->translate("ed_st_linear_quadratic").c_str(), 0);
B->OnBtnClickEvent.bind (this,&CLight::OnAutoClick);
CanvasValue* C=0;
- C=PHelper().CreateCanvas (items, PrepareKey(pref, "Attenuation\\Graphic"), "", 64);
+ C=PHelper().CreateCanvas (items, PrepareKey(pref, g_pStringTable->translate("ed_st_light_graphic").c_str()), "", 64);
C->tag = (size_t)this;
C->OnDrawCanvasEvent.bind(this,&CLight::OnAttenuationDraw);
C->OnTestEqual.bind (this,&CLight::OnPointDataTestEqual);
@@ -173,31 +173,31 @@ xr_token fuzzy_shape_types[]={
void CLight::FillPointProp(LPCSTR pref, PropItemVec& items)
{
// flags
- PHelper().CreateFlag32(items, PrepareKey(pref,"Usage\\LightMap"), &m_Flags, ELight::flAffectStatic);
- PHelper().CreateFlag32(items, PrepareKey(pref,"Usage\\Dynamic"), &m_Flags, ELight::flAffectDynamic);
- PHelper().CreateFlag32(items, PrepareKey(pref,"Usage\\Animated"), &m_Flags, ELight::flProcedural);
+ PHelper().CreateFlag32(items, PrepareKey(pref,g_pStringTable->translate("ed_st_light_lm").c_str()), &m_Flags, ELight::flAffectStatic);
+ PHelper().CreateFlag32(items, PrepareKey(pref,g_pStringTable->translate("ed_st_light_dynamic").c_str()), &m_Flags, ELight::flAffectDynamic);
+ PHelper().CreateFlag32(items, PrepareKey(pref,g_pStringTable->translate("ed_st_light_animated").c_str()), &m_Flags, ELight::flProcedural);
// PHelper().CreateFlag32 (items, PrepareKey(pref,"Flags\\Breakable"),&m_Flags, CLight::flBreaking);
FillAttProp (pref,items);
PropValue* P=0;
ButtonValue* B=0;
- P=PHelper().CreateFlag32(items, PrepareKey(pref, "Fuzzy"), &m_Flags, ELight::flPointFuzzy);
+ P=PHelper().CreateFlag32(items, PrepareKey(pref, g_pStringTable->translate("ed_st_fuzzy").c_str()), &m_Flags, ELight::flPointFuzzy);
P->OnChangeEvent.bind (this,&CLight::OnFuzzyFlagChange);
if (m_Flags.is(ELight::flPointFuzzy)){
VERIFY (m_FuzzyData);
- P=PHelper().CreateS16 (items, PrepareKey(pref, "Fuzzy\\Count"), &m_FuzzyData->m_PointCount,1,100);
+ P=PHelper().CreateS16 (items, PrepareKey(pref, g_pStringTable->translate("ed_st_fuzzy_count").c_str()), &m_FuzzyData->m_PointCount,1,100);
P->OnChangeEvent.bind (this,&CLight::OnFuzzyDataChange);
- B=PHelper().CreateButton (items, PrepareKey(pref, "Fuzzy\\Generate"),"Random",0);
+ B=PHelper().CreateButton (items, PrepareKey(pref, g_pStringTable->translate("ed_st_fuzzy_generate").c_str()),g_pStringTable->translate("ed_st_random").c_str(), 0);
B->OnBtnClickEvent.bind (this,&CLight::OnFuzzyGenerateClick);
- P=PHelper().CreateToken8 (items, PrepareKey(pref, "Fuzzy\\Shape"), (u8*)&m_FuzzyData->m_ShapeType, fuzzy_shape_types);
+ P=PHelper().CreateToken8 (items, PrepareKey(pref, g_pStringTable->translate("ed_st_fuzzy_shape").c_str()), (u8*)&m_FuzzyData->m_ShapeType, fuzzy_shape_types);
P->OnChangeEvent.bind (this,&CLight::OnFuzzyTypeChange);
switch (m_FuzzyData->m_ShapeType){
case CLight::SFuzzyData::fstSphere:
- P=PHelper().CreateFloat(items, PrepareKey(pref, "Fuzzy\\Radius"), &m_FuzzyData->m_SphereRadius,0.01f,100.f,0.01f,2);
+ P=PHelper().CreateFloat(items, PrepareKey(pref, g_pStringTable->translate("ed_st_fuzzy_radius").c_str()), &m_FuzzyData->m_SphereRadius,0.01f,100.f,0.01f,2);
P->OnChangeEvent.bind (this,&CLight::OnFuzzyDataChange);
break;
case CLight::SFuzzyData::fstBox:
- P=PHelper().CreateVector(items, PrepareKey(pref, "Fuzzy\\Half Dimension"),&m_FuzzyData->m_BoxDimension,0.01f,100.f,0.01f,2);
+ P=PHelper().CreateVector(items, PrepareKey(pref, g_pStringTable->translate("ed_st_fuzzy_half_dim").c_str()),&m_FuzzyData->m_BoxDimension,0.01f,100.f,0.01f,2);
P->OnChangeEvent.bind (this,&CLight::OnFuzzyDataChange);
break;
}
@@ -208,14 +208,14 @@ void CLight::FillPointProp(LPCSTR pref, PropItemVec& items)
void CLight::FillSpotProp(LPCSTR pref, PropItemVec& items)
{
// flags
- PHelper().CreateFlag32(items, PrepareKey(pref,"Usage\\LightMap"), &m_Flags, ELight::flAffectStatic);
- PHelper().CreateFlag32(items, PrepareKey(pref,"Usage\\Dynamic"), &m_Flags, ELight::flAffectDynamic);
- PHelper().CreateFlag32(items, PrepareKey(pref,"Usage\\Animated"), &m_Flags, ELight::flProcedural);
+ PHelper().CreateFlag32(items, PrepareKey(pref,g_pStringTable->translate("ed_st_light_lm").c_str()), &m_Flags, ELight::flAffectStatic);
+ PHelper().CreateFlag32(items, PrepareKey(pref,g_pStringTable->translate("ed_st_light_dynamic").c_str()), &m_Flags, ELight::flAffectDynamic);
+ PHelper().CreateFlag32(items, PrepareKey(pref,g_pStringTable->translate("ed_st_light_animated").c_str()), &m_Flags, ELight::flProcedural);
// PHelper().CreateFlag32 (items, PHelper().PrepareKey(pref,"Flags\\Breakable"),&m_Flags, CLight::flBreaking);
FillAttProp (pref,items);
- PHelper().CreateAngle (items, PrepareKey(pref, "Spot R1\\Cone Angle"), &m_Cone, 0.1f,deg2rad(120.f),0.01f,2);
- PHelper().CreateChoose (items, PrepareKey(pref, "Spot R1\\Texture"), &m_FalloffTex, smTexture);
+ PHelper().CreateAngle (items, PrepareKey(pref, g_pStringTable->translate("ed_st_spot_cone_angle").c_str()), &m_Cone, 0.1f,deg2rad(120.f),0.01f,2);
+ PHelper().CreateChoose (items, PrepareKey(pref, g_pStringTable->translate("ed_st_spot_texture").c_str()), &m_FalloffTex, smTexture);
}
@@ -231,22 +231,22 @@ void CLight::FillProp(LPCSTR pref, PropItemVec& items)
PropValue* V=0;
- V=PHelper().CreateToken32 (items, PrepareKey(pref,"Type"), (u32*)&m_Type,token_light_type);
+ V=PHelper().CreateToken32 (items, PrepareKey(pref,g_pStringTable->translate("ed_st_type").c_str()), (u32*)&m_Type,token_light_type);
V->OnChangeEvent.bind (this,&CLight::OnTypeChange);
- V=PHelper().CreateFColor(items, PrepareKey(pref,"Color"), &m_Color);
+ V=PHelper().CreateFColor(items, PrepareKey(pref,g_pStringTable->translate("ed_st_color").c_str()), &m_Color);
V->OnChangeEvent.bind (this,&CLight::OnNeedUpdate);
- V=PHelper().CreateFloat (items, PrepareKey(pref,"Brightness"), &m_Brightness,-3.f,3.f,0.1f,2);
+ V=PHelper().CreateFloat (items, PrepareKey(pref,g_pStringTable->translate("ed_st_brightness").c_str()), &m_Brightness,-3.f,3.f,0.1f,2);
V->OnChangeEvent.bind (this,&CLight::OnPointDataChange);
ESceneLightTool* lt = dynamic_cast(FParentTools); VERIFY(lt);
- PHelper().CreateRToken32(items,PrepareKey(pref,"Light Control"), &m_LControl, &*lt->lcontrols.begin(), lt->lcontrols.size());
+ PHelper().CreateRToken32(items,PrepareKey(pref,g_pStringTable->translate("ed_st_light_ctrl").c_str()), &m_LControl, &*lt->lcontrols.begin(), lt->lcontrols.size());
switch(m_Type){
case ELight::ltPoint: FillPointProp (pref, items); break;
case ELight::ltSpot: FillSpotProp (pref, items); break;
default: THROW;
}
- PHelper().CreateBOOL (items, PrepareKey(pref,"Use In D3D"), &m_UseInD3D);
+ PHelper().CreateBOOL (items, PrepareKey(pref,g_pStringTable->translate("ed_st_use_in_d3d").c_str()), &m_UseInD3D);
}
void CLight::OnTypeChange(PropValue* value)
diff --git a/src/Editors/LevelEditor/Editor/Entry/Particles/EParticlesObject.cpp b/src/Editors/LevelEditor/Editor/Entry/Particles/EParticlesObject.cpp
index 65644b0c83..a79d2b559c 100644
--- a/src/Editors/LevelEditor/Editor/Entry/Particles/EParticlesObject.cpp
+++ b/src/Editors/LevelEditor/Editor/Entry/Particles/EParticlesObject.cpp
@@ -293,7 +293,7 @@ void EParticlesObject::FillProp(LPCSTR pref, PropItemVec& items)
V=PHelper().CreateChoose (items,PrepareKey(pref, g_pStringTable->translate("ed_st_reference").c_str()),&m_RefName, smParticles);
V->OnChangeEvent.bind (this,&EParticlesObject::OnRefChange);
ButtonValue* B;
- B=PHelper().CreateButton (items,PrepareKey(pref,g_pStringTable->translate("ed_st_controls").c_str()), "Play,Stop",0);
+ B=PHelper().CreateButton (items,PrepareKey(pref,g_pStringTable->translate("ed_st_controls").c_str()), g_pStringTable->translate("ed_st_play_stop").c_str(), 0);
B->OnBtnClickEvent.bind (this,&EParticlesObject::OnControlClick);
m_GameType.FillProp (pref, items);
diff --git a/src/Editors/LevelEditor/Editor/Entry/Portal/portal.cpp b/src/Editors/LevelEditor/Editor/Entry/Portal/portal.cpp
index 890d26542b..6e0b0f900e 100644
--- a/src/Editors/LevelEditor/Editor/Entry/Portal/portal.cpp
+++ b/src/Editors/LevelEditor/Editor/Entry/Portal/portal.cpp
@@ -143,7 +143,7 @@ bool CPortal::Update(bool bLoadMode){
float m=m_Normal.magnitude();
if (fabsf(m)<=EPS_S){
Tools->m_DebugDraw.AppendWireFace(m_Vertices[0],m_Vertices[1],m_Vertices[2]);
- ELog.Msg(mtError,"Portal: Degenerate portal found.");
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_degenerate_portal").c_str());
SetValid(false);
return false;
}
@@ -174,7 +174,7 @@ bool CPortal::Update(bool bLoadMode){
else if (atranslate("ed_st_portal_orientation").c_str(), GetName());
}
return true;
@@ -389,7 +389,7 @@ bool CPortal::LoadLTX(CInifile& ini, LPCSTR sect_name)
if( version!=PORTAL_VERSION )
{
- ELog.Msg( mtError, "CPortal: Unsupported version.");
+ ELog.Msg( mtError, g_pStringTable->translate("ed_st_portal_unsupported_ver").c_str());
return false;
}
@@ -403,7 +403,7 @@ bool CPortal::LoadLTX(CInifile& ini, LPCSTR sect_name)
if (!m_SectorBack||!m_SectorFront)
{
- ELog.Msg( mtError, "Portal: Can't find required sectors.\nObject '%s' can't load.", GetName());
+ ELog.Msg( mtError,g_pStringTable->translate("ed_st_portal_no_sectors").c_str(), GetName());
return false;
}
@@ -417,7 +417,7 @@ bool CPortal::LoadLTX(CInifile& ini, LPCSTR sect_name)
}
if (cnt<3)
{
- ELog.Msg( mtError, "Portal: '%s' can't create.\nInvalid portal. (m_Vertices.size()<3)", GetName());
+ ELog.Msg( mtError, g_pStringTable->translate("ed_st_portal_not_enough_vert").c_str(), GetName());
return false;
}
@@ -450,7 +450,7 @@ bool CPortal::LoadStream(IReader& F)
string64 buf;
R_ASSERT(F.r_chunk(PORTAL_CHUNK_VERSION,&version));
if( version!=PORTAL_VERSION ){
- ELog.Msg( mtError, "CPortal: Unsupported version.");
+ ELog.Msg( mtError, g_pStringTable->translate("ed_st_portal_unsupported_ver").c_str());
return false;
}
@@ -466,7 +466,7 @@ bool CPortal::LoadStream(IReader& F)
}
if (!m_SectorBack||!m_SectorFront){
- ELog.Msg( mtError, "Portal: Can't find required sectors.\nObject '%s' can't load.", GetName());
+ ELog.Msg( mtError,g_pStringTable->translate("ed_st_portal_no_sectors").c_str(), GetName());
return false;
}
@@ -475,7 +475,7 @@ bool CPortal::LoadStream(IReader& F)
F.r (m_Vertices.data(), m_Vertices.size()*sizeof(Fvector));
if (m_Vertices.size()<3){
- ELog.Msg( mtError, "Portal: '%s' can't create.\nInvalid portal. (m_Vertices.size()<3)", GetName());
+ ELog.Msg( mtError, g_pStringTable->translate("ed_st_portal_not_enough_vert").c_str(), GetName());
return false;
}
diff --git a/src/Editors/LevelEditor/Editor/Entry/Sector/sector.cpp b/src/Editors/LevelEditor/Editor/Entry/Sector/sector.cpp
index 10605abc06..e54f8f34b5 100644
--- a/src/Editors/LevelEditor/Editor/Entry/Sector/sector.cpp
+++ b/src/Editors/LevelEditor/Editor/Entry/Sector/sector.cpp
@@ -91,7 +91,7 @@ int CSector::DelMesh (CSceneObject* O, CEditableMesh* M)
}
if (sector_items.empty()){
res = 2;
- ELog.Msg(mtInformation,"Last mesh deleted.\nSector has no meshes and will be removed.");
+ ELog.Msg(mtInformation,g_pStringTable->translate("ed_st_last_mesh_deleted").c_str());
DeleteThis();
}
return res;
@@ -323,7 +323,7 @@ void CSector::CaptureAllUnusedMeshes()
CSceneObject *obj=NULL;
ObjectList& lst=Scene->ListObj(OBJCLASS_SCENEOBJECT);
// ignore dynamic objects
- SPBItem* pb = UI->ProgressStart(lst.size(),"Capturing unused face...");
+ SPBItem* pb = UI->ProgressStart(lst.size(),g_pStringTable->translate("ed_st_capture_unused_face").c_str());
for(ObjectIt _F = lst.begin();_F!=lst.end();_F++){
pb->Inc();
obj = (CSceneObject*)(*_F);
@@ -385,14 +385,14 @@ void CSector::LoadSectorDef( IReader* F )
sitem.object=(CSceneObject*)Scene->FindObjectByName(o_name,OBJCLASS_SCENEOBJECT);
if (sitem.object==NULL)
{
- ELog.Msg (mtError,"Sector Item contains object '%s' - can't load.\nObject not found.",o_name);
+ ELog.Msg (mtError,g_pStringTable->translate("ed_st_sector_obj_not_found").c_str(), o_name);
m_bHasLoadError = true;
return;
}
if (!(sitem.object->IsStatic()||sitem.object->IsMUStatic()))
{
- ELog.Msg(mtError,"Sector Item contains object '%s' - can't load.\nObject is dynamic.",o_name);
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_sector_obj_dynamic").c_str(), o_name);
m_bHasLoadError = true;
return;
}
@@ -401,7 +401,7 @@ void CSector::LoadSectorDef( IReader* F )
sitem.mesh=sitem.object->GetReference()->FindMeshByName(m_name);
if (sitem.mesh==0)
{
- ELog.Msg(mtError,"Sector Item contains object '%s' mesh '%s' - can't load.\nMesh not found.",o_name,m_name);
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_sector_mesh_not_found").c_str(), o_name, m_name);
m_bHasLoadError = true;
return;
}
@@ -423,19 +423,19 @@ void CSector::LoadSectorDefLTX( CInifile& ini, LPCSTR sect_name, u32 item_idx )
// sector item
o_name = ini.r_string(sect_name, buff);
if(!o_name)
- ELog.Msg (mtError,"Sector Item contains not nnamed object - can't load");
+ ELog.Msg (mtError,g_pStringTable->translate("ed_st_sector_obj_unnamed").c_str());
sitem.object=(CSceneObject*)Scene->FindObjectByName(o_name,OBJCLASS_SCENEOBJECT);
if (sitem.object==NULL)
{
- ELog.Msg (mtError,"Sector Item contains object '%s' - can't load.\nObject not found.",o_name);
+ ELog.Msg(mtError, g_pStringTable->translate("ed_st_sector_mesh_not_found").c_str(), o_name, m_name);
m_bHasLoadError = true;
return;
}
if (!(sitem.object->IsStatic()||sitem.object->IsMUStatic()))
{
- ELog.Msg(mtError,"Sector Item contains object '%s' - can't load.\nObject is dynamic.",o_name);
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_sector_obj_dynamic").c_str(), o_name);
m_bHasLoadError = true;
return;
}
@@ -446,7 +446,7 @@ void CSector::LoadSectorDefLTX( CInifile& ini, LPCSTR sect_name, u32 item_idx )
sitem.mesh=sitem.object->GetReference()->FindMeshByName(m_name);
if (sitem.mesh==0)
{
- ELog.Msg(mtError,"Sector Item contains object '%s' mesh '%s' - can't load.\nMesh not found.",o_name,m_name);
+ ELog.Msg(mtError, g_pStringTable->translate("ed_st_sector_mesh_not_found").c_str(), o_name, m_name);
m_bHasLoadError = true;
return;
}
@@ -459,7 +459,7 @@ bool CSector::LoadLTX(CInifile& ini, LPCSTR sect_name)
u32 version = ini.r_u32 (sect_name, "version");
if( version<0x0011)
{
- ELog.Msg( mtError, "CSector: Unsupported version.");
+ ELog.Msg( mtError, g_pStringTable->translate("ed_st_sector_unsupported_ver").c_str());
return false;
}
@@ -516,7 +516,7 @@ bool CSector::LoadStream(IReader& F)
char buf[1024];
R_ASSERT(F.r_chunk(SECTOR_CHUNK_VERSION,&version));
if( version!=SECTOR_VERSION ){
- ELog.Msg( mtError, "CSector: Unsupported version.");
+ ELog.Msg( mtError, g_pStringTable->translate("ed_st_sector_unsupported_ver").c_str());
return false;
}
@@ -593,13 +593,13 @@ xr_token level_sub_map[] =
void CSector::FillProp(LPCSTR pref, PropItemVec& items)
{
inherited::FillProp(pref,items);
- PHelper().CreateFColor(items, PrepareKey(pref,"Color"), §or_color);
+ PHelper().CreateFColor(items, PrepareKey(pref,g_pStringTable->translate("ed_st_color").c_str()), §or_color);
int faces, objects, meshes;
GetCounts(&objects,&meshes,&faces);
- PHelper().CreateCaption(items,PrepareKey(pref,GetName(),"Contents\\Objects"), xr_string::ToString(objects).c_str());
- PHelper().CreateCaption(items,PrepareKey(pref, GetName(),"Contents\\Meshes"), xr_string::ToString(meshes).c_str());
- PHelper().CreateCaption(items,PrepareKey(pref, GetName(),"Contents\\Faces"), xr_string::ToString(faces).c_str());
- PHelper().CreateToken8(items, PrepareKey(pref, GetName(),"Change LevelMap to"), &m_map_idx, level_sub_map);
+ PHelper().CreateCaption(items,PrepareKey(pref,GetName(),g_pStringTable->translate("ed_st_sector_objects").c_str()), xr_string::ToString(objects).c_str());
+ PHelper().CreateCaption(items,PrepareKey(pref, GetName(),g_pStringTable->translate("ed_st_sector_meshes").c_str()), xr_string::ToString(meshes).c_str());
+ PHelper().CreateCaption(items,PrepareKey(pref, GetName(),g_pStringTable->translate("ed_st_sector_faces").c_str()), xr_string::ToString(faces).c_str());
+ PHelper().CreateToken8(items, PrepareKey(pref, GetName(),g_pStringTable->translate("ed_st_change_levelmap").c_str()), &m_map_idx, level_sub_map);
}
@@ -618,7 +618,7 @@ bool CSector::Validate(bool bMsg)
int f_cnt;
GetCounts (0,0,&f_cnt);
if (f_cnt<=4){
- if (bMsg) ELog.Msg(mtError,"*ERROR: Sector: '%s' - face count < 4!",GetName());
+ if (bMsg) ELog.Msg(mtError,g_pStringTable->translate("ed_st_sector_not_enough_faces").c_str(), GetName());
bRes = false;
}
// verify shader compatibility
@@ -631,7 +631,7 @@ bool CSector::Validate(bool bMsg)
}
}
if (!bRenderableFound){
- if (bMsg) ELog.Msg(mtError,"*ERROR: Sector: '%s' - can't find any renderable face!", GetName());
+ if (bMsg) ELog.Msg(mtError,g_pStringTable->translate("ed_st_sector_no_renderable_faces").c_str(), GetName());
bRes = false;
}
return bRes;
diff --git a/src/Editors/LevelEditor/Editor/Entry/Shape/EShape.cpp b/src/Editors/LevelEditor/Editor/Entry/Shape/EShape.cpp
index 85a4f415b3..754a5c079a 100644
--- a/src/Editors/LevelEditor/Editor/Entry/Shape/EShape.cpp
+++ b/src/Editors/LevelEditor/Editor/Entry/Shape/EShape.cpp
@@ -11,7 +11,7 @@
#define SHAPE_CHUNK_SHAPES 0x0001
#define SHAPE_CHUNK_DATA 0x0002
-
+// St4lker0k765: Is it even needed? Because in the code there is no refs for this token...
xr_token shape_type_tok[]=
{
{ "common", eShapeCommon },
@@ -408,7 +408,7 @@ void CEditShape::SaveStream(IWriter& F)
void CEditShape::FillProp(LPCSTR pref, PropItemVec& values)
{
inherited::FillProp(pref,values);
- PHelper().CreateCaption (values, PrepareKey(pref,"Shape usage"),m_shape_type==eShapeCommon?"common":"level bound");
+ PHelper().CreateCaption (values, PrepareKey(pref,g_pStringTable->translate("ed_st_shape_usage").c_str()),m_shape_type==eShapeCommon?g_pStringTable->translate("ed_st_shape_common").c_str() : g_pStringTable->translate("ed_st_shape_level_bound").c_str());
}
void CEditShape::Render(int priority, bool strictB2F)
diff --git a/src/Editors/LevelEditor/Editor/Entry/Sound/ESound_Environment.cpp b/src/Editors/LevelEditor/Editor/Entry/Sound/ESound_Environment.cpp
index 5c5e7265c6..30fb87f45a 100644
--- a/src/Editors/LevelEditor/Editor/Entry/Sound/ESound_Environment.cpp
+++ b/src/Editors/LevelEditor/Editor/Entry/Sound/ESound_Environment.cpp
@@ -46,7 +46,7 @@ bool ESoundEnvironment::LoadLTX(CInifile& ini, LPCSTR sect_name)
if(version!=SOUND_ENV_VERSION)
{
- ELog.DlgMsg (mtError, "ESoundSource: Unsupported version.");
+ ELog.DlgMsg (mtError, g_pStringTable->translate("ed_st_sound_env_unsupported_ver").c_str());
return false;
}
inherited::LoadLTX (ini, sect_name);
@@ -73,7 +73,7 @@ bool ESoundEnvironment::LoadStream(IReader& F)
R_ASSERT(F.r_chunk(SOUND_CHUNK_VERSION,&version));
if(version!=SOUND_ENV_VERSION){
- ELog.DlgMsg( mtError, "ESoundSource: Unsupported version.");
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_sound_env_unsupported_ver").c_str());
return false;
}
inherited::LoadStream (F);
@@ -111,9 +111,9 @@ void ESoundEnvironment::FillProp(LPCSTR pref, PropItemVec& values)
{
inherited::FillProp (pref, values);
PropValue* P;
- P=PHelper().CreateChoose (values, PrepareKey(pref,"Environment Inner"), &m_EnvInner, smSoundEnv);
+ P=PHelper().CreateChoose (values, PrepareKey(pref,g_pStringTable->translate("ed_st_inner_env").c_str()), &m_EnvInner, smSoundEnv);
P->OnChangeEvent.bind (this,&ESoundEnvironment::OnChangeEnvs);
- P=PHelper().CreateChoose (values, PrepareKey(pref,"Environment Outer"), &m_EnvOuter, smSoundEnv);
+ P=PHelper().CreateChoose (values, PrepareKey(pref,g_pStringTable->translate("ed_st_outer_env").c_str()), &m_EnvOuter, smSoundEnv);
P->OnChangeEvent.bind (this,&ESoundEnvironment::OnChangeEnvs);
}
diff --git a/src/Editors/LevelEditor/Editor/Entry/Sound/ESound_Source.cpp b/src/Editors/LevelEditor/Editor/Entry/Sound/ESound_Source.cpp
index c662163bfc..3c4b6016ea 100644
--- a/src/Editors/LevelEditor/Editor/Entry/Sound/ESound_Source.cpp
+++ b/src/Editors/LevelEditor/Editor/Entry/Sound/ESound_Source.cpp
@@ -110,7 +110,7 @@ bool ESoundSource::LoadLTX(CInifile& ini, LPCSTR sect_name)
if(version!=SOUND_SOURCE_VERSION)
{
- ELog.Msg( mtError, "ESoundSource: Unsupported version.");
+ ELog.Msg( mtError, g_pStringTable->translate("ed_st_sound_src_unsupported_ver").c_str());
return false;
}
@@ -176,7 +176,7 @@ bool ESoundSource::LoadStream(IReader& F)
if(F.r_chunk(SOUND_CHUNK_VERSION,&version)){
if(version!=SOUND_SOURCE_VERSION){
- ELog.Msg( mtError, "ESoundSource: Unsupported version.");
+ ELog.Msg(mtError, g_pStringTable->translate("ed_st_sound_src_unsupported_ver").c_str());
return false;
}
}else return false;
@@ -208,7 +208,7 @@ bool ESoundSource::LoadStream(IReader& F)
m_Params.max_ai_distance= F.r_float();
}else{
if (!F.find_chunk(SOUND_CHUNK_SOURCE_PARAMS)){
- ELog.DlgMsg( mtError, "ESoundSource: Can't load Sound Source '%s'. Unsupported version.",*m_WAVName);
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_sound_src_invalid_ver").c_str(), *m_WAVName);
return false;
}
m_Params.base_volume = 1.f;
@@ -303,30 +303,31 @@ void ESoundSource::FillProp(LPCSTR pref, PropItemVec& values)
{
inherited::FillProp (pref,values);
ButtonValue* B;
- B=PHelper().CreateButton (values, PrepareKey(pref,"Custom\\Controls"), "Play,Stop,Simulate",0);
+ B=PHelper().CreateButton (values, PrepareKey(pref,g_pStringTable->translate("ed_st_custom_controls").c_str()), g_pStringTable->translate("ed_st_play_stop_simulate").c_str(), 0);
B->OnBtnClickEvent.bind (this,&ESoundSource::OnControlClick);
PropValue* V;
- V=PHelper().CreateChoose (values,PrepareKey(pref,"Source\\WAVE name"), &m_WAVName, smSoundSource);
+ V=PHelper().CreateChoose (values,PrepareKey(pref,g_pStringTable->translate("ed_st_wave_name").c_str()), &m_WAVName, smSoundSource);
V->OnChangeEvent.bind (this,&ESoundSource::OnChangeWAV);
- V=PHelper().CreateFloat (values,PrepareKey(pref,"Source\\Frequency"), &m_Params.freq, 0.0f,2.f);
+ V=PHelper().CreateFloat (values,PrepareKey(pref,g_pStringTable->translate("ed_st_sound_freq").c_str()), &m_Params.freq, 0.0f,2.f);
V->OnChangeEvent.bind (this,&ESoundSource::OnChangeSource);
- V=PHelper().CreateFloat (values,PrepareKey(pref,"Source\\Volume"), &m_Params.volume, 0.0f,1.f);
+ V=PHelper().CreateFloat (values,PrepareKey(pref,g_pStringTable->translate("ed_st_sound_volume").c_str()), &m_Params.volume, 0.0f,1.f);
V->OnChangeEvent.bind (this,&ESoundSource::OnChangeSource);
- V=PHelper().CreateFloat (values,PrepareKey(pref,"Source\\Min dist"), &m_Params.min_distance, 0.1f, 1000.f, 0.1f, 1);
+ V=PHelper().CreateFloat (values,PrepareKey(pref,g_pStringTable->translate("ed_st_sound_min_dist").c_str()), &m_Params.min_distance, 0.1f, 1000.f, 0.1f, 1);
V->Owner()->Enable (FALSE);
- V=PHelper().CreateFloat (values,PrepareKey(pref,"Source\\Max dist"), &m_Params.max_distance, 0.1f, 1000.f, 0.1f, 1);
+ V=PHelper().CreateFloat (values,PrepareKey(pref,g_pStringTable->translate("ed_st_sound_max_dist").c_str()), &m_Params.max_distance, 0.1f, 1000.f, 0.1f, 1);
V->Owner()->Enable (FALSE);
- V=PHelper().CreateFloat (values,PrepareKey(pref,"Source\\Max ai dist"), &m_Params.max_ai_distance, 0.1f, 1000.f, 0.1f, 1);
+ V=PHelper().CreateFloat (values,PrepareKey(pref,g_pStringTable->translate("ed_st_sound_max_ai_dist").c_str()), &m_Params.max_ai_distance, 0.1f, 1000.f, 0.1f, 1);
V->Owner()->Enable (FALSE);
- PHelper().CreateCaption (values,PrepareKey(pref,"Game\\Active time\\Hint"), "Zero - play sound looped round the clock.");
- PHelper().CreateTime (values,PrepareKey(pref,"Game\\Active time\\From"), &m_ActiveTime.x);
- PHelper().CreateTime (values,PrepareKey(pref,"Game\\Active time\\To"), &m_ActiveTime.y);
- PHelper().CreateCaption (values,PrepareKey(pref,"Game\\Play time\\Hint"), "Zero - play sound once.");
- PHelper().CreateTime (values,PrepareKey(pref,"Game\\Play time\\From"), &m_PlayTime.x);
- PHelper().CreateTime (values,PrepareKey(pref,"Game\\Play time\\To"), &m_PlayTime.y);
- PHelper().CreateCaption (values,PrepareKey(pref,"Game\\Pause delta\\Hint"), "Zero - play sound looped.");
- PHelper().CreateTime (values,PrepareKey(pref,"Game\\Pause delta\\From"), &m_RandomPause.x);
- PHelper().CreateTime (values,PrepareKey(pref,"Game\\Pause delta\\To"), &m_RandomPause.y);
+#pragma todo("Fix time for sounds!")
+ PHelper().CreateCaption (values,PrepareKey(pref,g_pStringTable->translate("ed_st_active_time_hint").c_str()), g_pStringTable->translate("ed_st_active_time_hint_msg").c_str());
+ PHelper().CreateTime (values,PrepareKey(pref,g_pStringTable->translate("ed_st_active_time_from").c_str()), &m_ActiveTime.x);
+ PHelper().CreateTime (values,PrepareKey(pref,g_pStringTable->translate("ed_st_active_time_to").c_str()), &m_ActiveTime.y);
+ PHelper().CreateCaption (values,PrepareKey(pref,g_pStringTable->translate("ed_st_play_time_hint").c_str()), g_pStringTable->translate("ed_st_play_time_hint_msg").c_str());
+ PHelper().CreateTime (values,PrepareKey(pref,g_pStringTable->translate("ed_st_play_time_from").c_str()), &m_PlayTime.x);
+ PHelper().CreateTime (values,PrepareKey(pref,g_pStringTable->translate("ed_st_play_time_to").c_str()), &m_PlayTime.y);
+ PHelper().CreateCaption (values,PrepareKey(pref,g_pStringTable->translate("ed_st_pause_delta_hint").c_str()), g_pStringTable->translate("ed_st_pause_delta_hint_msg").c_str());
+ PHelper().CreateTime (values,PrepareKey(pref,g_pStringTable->translate("ed_st_pause_delta_from").c_str()), &m_RandomPause.x);
+ PHelper().CreateTime (values,PrepareKey(pref,g_pStringTable->translate("ed_st_pause_delta_to").c_str()), &m_RandomPause.y);
// V=PHelper().CreateFlag32 (values,PHelper().PrepareKey(pref,"Looped"), &m_Flags, flLooped);
// V->OnChangeEvent = OnChangeSource;
}
diff --git a/src/Editors/LevelEditor/Editor/Entry/Spawn/SpawnPoint.cpp b/src/Editors/LevelEditor/Editor/Entry/Spawn/SpawnPoint.cpp
index 3dd241e40c..4875a685a9 100644
--- a/src/Editors/LevelEditor/Editor/Entry/Spawn/SpawnPoint.cpp
+++ b/src/Editors/LevelEditor/Editor/Entry/Spawn/SpawnPoint.cpp
@@ -67,7 +67,7 @@ void CLE_Visual::OnChangeVisual ()
if(NULL==visual && !g_tmp_lock)
{
- xr_string _msg = "Model [" + xr_string(source->visual_name.c_str())+"] not found. Do you want to select it from library?";
+ xr_string _msg = g_pStringTable->translate("ed_st_model_not_found_1").c_str() + xr_string(source->visual_name.c_str()) + g_pStringTable->translate("ed_st_model_not_found_2").c_str();
int mr = ELog.DlgMsg(mtConfirmation,mbYes |mbNo, _msg.c_str());
LPCSTR _new_val = 0;
g_tmp_lock = true;
@@ -132,7 +132,7 @@ void CLE_Visual::PlayAnimationFirstFrame()
KA->PlayCycle (M);
PauseAnimation ();
}else
- Msg("! visual [%s] has no animation [%s]", source->visual_name.c_str(), source->startup_animation.c_str());
+ Msg(g_pStringTable->translate("ed_st_visual_no_anim").c_str(), source->visual_name.c_str(), source->startup_animation.c_str());
}
if (K)
K->CalculateBones();
@@ -243,7 +243,7 @@ void CSpawnPoint::SSpawnData::Create(LPCSTR _entity_ref)
}
else
{
- Log("!Can't create entity: ", _entity_ref);
+ Log(g_pStringTable->translate("ed_st_cant_create_entity").c_str(), _entity_ref);
}
m_owner->SetRenderIfSelected(pSettings->line_exist(_entity_ref, "$render_if_selected"));
@@ -354,7 +354,7 @@ bool CSpawnPoint::SSpawnData::ExportGame(SExportStreams* F, CSpawnPoint* owner)
ISE_Shape* cform = m_Data->shape();
// SHAPE
if (cform&&!(owner->m_AttachedObject&&(owner->m_AttachedObject->FClassID==OBJCLASS_SHAPE))){
- ELog.DlgMsg (mtError,"Spawn Point: '%s' must contain attached shape.",owner->GetName());
+ ELog.DlgMsg (mtError,g_pStringTable->translate("ed_st_obj_must_have_shape").c_str(), owner->GetName());
return false;
}
if (cform){
@@ -394,7 +394,7 @@ void CSpawnPoint::SSpawnData::PreExportSpawn(CSpawnPoint* owner)
ISE_Shape* cform = m_Data->shape();
// SHAPE
if (cform && !(owner->m_AttachedObject && (owner->m_AttachedObject->FClassID == OBJCLASS_SHAPE))) {
- ELog.DlgMsg(mtError, "Spawn Point: '%s' must contain attached shape.", owner->GetName());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_obj_must_have_shape").c_str(), owner->GetName());
;
}
if (cform) {
@@ -1007,7 +1007,7 @@ bool CSpawnPoint::LoadLTX(CInifile& ini, LPCSTR sect_name)
if(version<0x0014)
{
- ELog.Msg( mtError, "SPAWNPOINT: Unsupported version.");
+ ELog.Msg( mtError, g_pStringTable->translate("ed_st_spawn_unsupported").c_str());
return false;
}
@@ -1016,7 +1016,7 @@ bool CSpawnPoint::LoadLTX(CInifile& ini, LPCSTR sect_name)
if (m_Type>=ptMaxType)
{
- ELog.Msg( mtError, "SPAWNPOINT: Unsupported spawn version.");
+ ELog.Msg( mtError, g_pStringTable->translate("ed_st_spawn_unsupported_ver").c_str());
return false;
}
switch (m_Type)
@@ -1027,7 +1027,7 @@ bool CSpawnPoint::LoadLTX(CInifile& ini, LPCSTR sect_name)
xr_strconcat(buff, sect_name, "_spawndata");
if (!m_SpawnData.LoadLTX(ini, buff))
{
- ELog.Msg( mtError, "SPAWNPOINT: Can't load Spawn Data.");
+ ELog.Msg( mtError, g_pStringTable->translate("ed_st_spawn_cant_load").c_str());
return false;
}
SetValid (true);
@@ -1127,7 +1127,7 @@ bool CSpawnPoint::LoadStream(IReader& F)
R_ASSERT(F.r_chunk(SPAWNPOINT_CHUNK_VERSION,&version));
if(version<0x0014)
{
- ELog.Msg( mtError, "SPAWNPOINT: Unsupported version.");
+ ELog.Msg(mtError, g_pStringTable->translate("ed_st_spawn_unsupported").c_str());
return false;
}
@@ -1138,7 +1138,7 @@ bool CSpawnPoint::LoadStream(IReader& F)
{
if (!m_SpawnData.LoadStream(F))
{
- ELog.Msg( mtError, "SPAWNPOINT: Can't load Spawn Data.");
+ ELog.Msg(mtError, g_pStringTable->translate("ed_st_spawn_cant_load").c_str());
return false;
}
SetValid (true);
@@ -1146,7 +1146,7 @@ bool CSpawnPoint::LoadStream(IReader& F)
}else{
if (F.find_chunk(SPAWNPOINT_CHUNK_TYPE)) m_Type = (EPointType)F.r_u32();
if (m_Type>=ptMaxType){
- ELog.Msg( mtError, "SPAWNPOINT: Unsupported spawn version.");
+ ELog.Msg(mtError, g_pStringTable->translate("ed_st_spawn_unsupported_ver").c_str());
return false;
}
switch (m_Type){
@@ -1262,7 +1262,7 @@ bool CSpawnPoint::ExportGame(SExportStreams* F)
if (m_SpawnData.m_Data->validate()){
m_SpawnData.ExportGame (F,this);
}else{
- Log ("!Invalid spawn data:",GetName());
+ Log (g_pStringTable->translate("ed_st_invalid_spawn_data").c_str(), GetName());
return false;
}
}else{
@@ -1379,7 +1379,7 @@ void CSpawnPoint::FillProp(LPCSTR pref, PropItemVec& items)
{
shared_str pref1 = PrepareKey(pref,m_SpawnData.m_Data->name());
m_SpawnData.m_Profile = SectionToEditor(m_SpawnData.m_Data->name());
- ChooseValue* C = PHelper().CreateChoose(items,PrepareKey(pref1.c_str(),"Profile (spawn section)"),&m_SpawnData.m_Profile,smCustom,0,0,1,cfFullExpand);
+ ChooseValue* C = PHelper().CreateChoose(items,PrepareKey(pref1.c_str(),g_pStringTable->translate("ed_st_spawn_profile").c_str()),&m_SpawnData.m_Profile,smCustom,0,0,1,cfFullExpand);
C->OnChooseFillEvent.bind (this,&CSpawnPoint::OnFillChooseItems);
C->OnChangeEvent.bind (this,&CSpawnPoint::OnProfileChange);
m_SpawnData.FillProp (pref,items);
@@ -1391,52 +1391,52 @@ void CSpawnPoint::FillProp(LPCSTR pref, PropItemVec& items)
if(m_RP_Type==rptItemSpawn)
{
- ChooseValue* C = PHelper().CreateChoose(items,PrepareKey(pref,"Respawn Point\\Profile"),&m_rpProfile,smCustom,0,0,10,cfMultiSelect);
+ ChooseValue* C = PHelper().CreateChoose(items,PrepareKey(pref,g_pStringTable->translate("ed_st_respawn_profile").c_str()),&m_rpProfile,smCustom,0,0,10,cfMultiSelect);
C->OnChooseFillEvent.bind (this,&CSpawnPoint::OnFillRespawnItemProfile);
}else
{
- PHelper().CreateU8 (items, PrepareKey(pref,"Respawn Point\\Team"), &m_RP_TeamID, 0,32);
+ PHelper().CreateU8 (items, PrepareKey(pref,g_pStringTable->translate("ed_st_respawn_team").c_str()), &m_RP_TeamID, 0,32);
}
- Token8Value* TV = PHelper().CreateToken8 (items, PrepareKey(pref,"Respawn Point\\Spawn Type"), &m_RP_Type, rpoint_type);
+ Token8Value* TV = PHelper().CreateToken8 (items, PrepareKey(pref,g_pStringTable->translate("ed_st_respawn_type").c_str()), &m_RP_Type, rpoint_type);
TV->OnChangeEvent.bind (this,&CSpawnPoint::OnRPointTypeChange);
m_GameType.FillProp (pref, items);
}break;
case ptEnvMod:{
- PHelper().CreateFloat (items, PrepareKey(pref,"Environment Modificator\\Radius"), &m_EM_Radius, EPS_L,10000.f);
- PHelper().CreateFloat (items, PrepareKey(pref,"Environment Modificator\\Power"), &m_EM_Power, EPS,1000.f);
+ PHelper().CreateFloat (items, PrepareKey(pref,g_pStringTable->translate("ed_st_env_mod_radius").c_str()), &m_EM_Radius, EPS_L,10000.f);
+ PHelper().CreateFloat (items, PrepareKey(pref,g_pStringTable->translate("ed_st_env_mod_power").c_str()), &m_EM_Power, EPS,1000.f);
Flag16Value* FV = NULL;
- FV = PHelper().CreateFlag16(items, PrepareKey(pref,"Environment Modificator\\View Distance"), &m_EM_Flags, eViewDist);
+ FV = PHelper().CreateFlag16(items, PrepareKey(pref,g_pStringTable->translate("ed_st_env_mod_view_dist").c_str()), &m_EM_Flags, eViewDist);
FV->OnChangeEvent.bind (this,&CSpawnPoint::OnEnvModFlagChange);
if(m_EM_Flags.test(eViewDist))
- PHelper().CreateFloat(items, PrepareKey(pref,"Environment Modificator\\View Distance\\ "), &m_EM_ViewDist, EPS_L,10000.f);
+ PHelper().CreateFloat(items, PrepareKey(pref,g_pStringTable->translate("ed_st_env_mod_view_dist_2").c_str()), &m_EM_ViewDist, EPS_L,10000.f);
- FV = PHelper().CreateFlag16(items, PrepareKey(pref,"Environment Modificator\\Fog Color"), &m_EM_Flags, eFogColor);
+ FV = PHelper().CreateFlag16(items, PrepareKey(pref,g_pStringTable->translate("ed_st_env_mod_fog_color").c_str()), &m_EM_Flags, eFogColor);
FV->OnChangeEvent.bind (this,&CSpawnPoint::OnEnvModFlagChange);
if(m_EM_Flags.test(eFogColor))
- PHelper().CreateColor (items, PrepareKey(pref,"Environment Modificator\\Fog Color\\ "), &m_EM_FogColor);
+ PHelper().CreateColor (items, PrepareKey(pref,g_pStringTable->translate("ed_st_env_mod_fog_color_2").c_str()), &m_EM_FogColor);
- FV = PHelper().CreateFlag16(items, PrepareKey(pref,"Environment Modificator\\Fog Density"), &m_EM_Flags, eFogDensity);
+ FV = PHelper().CreateFlag16(items, PrepareKey(pref,g_pStringTable->translate("ed_st_env_mod_fog_density").c_str()), &m_EM_Flags, eFogDensity);
FV->OnChangeEvent.bind (this,&CSpawnPoint::OnEnvModFlagChange);
if(m_EM_Flags.test(eFogDensity))
- PHelper().CreateFloat (items, PrepareKey(pref,"Environment Modificator\\Fog Density\\ "), &m_EM_FogDensity, 0.f,10000.f);
+ PHelper().CreateFloat (items, PrepareKey(pref,g_pStringTable->translate("ed_st_env_mod_fog_density_2").c_str()), &m_EM_FogDensity, 0.f,10000.f);
- FV = PHelper().CreateFlag16(items, PrepareKey(pref,"Environment Modificator\\Ambient Color"), &m_EM_Flags, eAmbientColor);
+ FV = PHelper().CreateFlag16(items, PrepareKey(pref,g_pStringTable->translate("ed_st_env_mod_ambient_color").c_str()), &m_EM_Flags, eAmbientColor);
FV->OnChangeEvent.bind (this,&CSpawnPoint::OnEnvModFlagChange);
if(m_EM_Flags.test(eAmbientColor))
- PHelper().CreateColor (items, PrepareKey(pref,"Environment Modificator\\Ambient Color\\ "), &m_EM_AmbientColor);
+ PHelper().CreateColor (items, PrepareKey(pref,g_pStringTable->translate("ed_st_env_mod_ambient_color_2").c_str()), &m_EM_AmbientColor);
- FV = PHelper().CreateFlag16(items, PrepareKey(pref,"Environment Modificator\\Sky Color"), &m_EM_Flags, eSkyColor);
+ FV = PHelper().CreateFlag16(items, PrepareKey(pref,g_pStringTable->translate("ed_st_env_mod_sky_color").c_str()), &m_EM_Flags, eSkyColor);
FV->OnChangeEvent.bind (this,&CSpawnPoint::OnEnvModFlagChange);
if(m_EM_Flags.test(eSkyColor))
- PHelper().CreateColor (items, PrepareKey(pref,"Environment Modificator\\Sky Color\\ "), &m_EM_SkyColor);
+ PHelper().CreateColor (items, PrepareKey(pref,g_pStringTable->translate("ed_st_env_mod_sky_color_2").c_str()), &m_EM_SkyColor);
- FV = PHelper().CreateFlag16(items, PrepareKey(pref,"Environment Modificator\\Hemi Color"), &m_EM_Flags, eHemiColor);
+ FV = PHelper().CreateFlag16(items, PrepareKey(pref,g_pStringTable->translate("ed_st_env_mod_hemi_color").c_str()), &m_EM_Flags, eHemiColor);
FV->OnChangeEvent.bind (this,&CSpawnPoint::OnEnvModFlagChange);
if(m_EM_Flags.test(eHemiColor))
- PHelper().CreateColor (items, PrepareKey(pref,"Environment Modificator\\Hemi Color\\ "), &m_EM_HemiColor);
+ PHelper().CreateColor (items, PrepareKey(pref,g_pStringTable->translate("ed_st_env_mod_hemi_color_2").c_str()), &m_EM_HemiColor);
}break;
default: THROW;
}
diff --git a/src/Editors/LevelEditor/Editor/Entry/StaticObject/SceneObjectIO.cpp b/src/Editors/LevelEditor/Editor/Entry/StaticObject/SceneObjectIO.cpp
index d5f6deb9db..2ac1f75461 100644
--- a/src/Editors/LevelEditor/Editor/Entry/StaticObject/SceneObjectIO.cpp
+++ b/src/Editors/LevelEditor/Editor/Entry/StaticObject/SceneObjectIO.cpp
@@ -21,7 +21,7 @@ bool CSceneObject::LoadLTX(CInifile& ini, LPCSTR sect_name)
if (!SetReference(ref_name.c_str()))
{
- ELog.Msg ( mtError, "CSceneObject: '%s' not found in library", ref_name.c_str() );
+ ELog.Msg ( mtError, g_pStringTable->translate("ed_st_obj_not_found").c_str(), ref_name.c_str());
bRes = false;
int mr = mrNone;
@@ -30,7 +30,7 @@ bool CSceneObject::LoadLTX(CInifile& ini, LPCSTR sect_name)
if(b_found)
{
xr_string _message;
- _message = "Object ["+ref_name+"] not found. Relace it with ["+_new_name+"] or select other from library?";
+ _message = g_pStringTable->translate("ed_st_obj_not_found_replace_1").c_str() +ref_name+ g_pStringTable->translate("ed_st_obj_not_found_replace_2").c_str() + _new_name + g_pStringTable->translate("ed_st_obj_not_found_replace_3").c_str();
mr = ELog.DlgMsg(mtConfirmation,mbYes |mbNo, _message.c_str());
if(mrYes==mr)
{
@@ -170,7 +170,7 @@ bool CSceneObject::LoadStream(IReader& F)
if (!SetReference(buf))
{
- ELog.Msg ( mtError, "CSceneObject: '%s' not found in library", buf );
+ ELog.Msg ( mtError, g_pStringTable->translate("ed_st_obj_not_found").c_str(), buf);
bRes = false;
int mr = mrNone;
@@ -179,7 +179,7 @@ bool CSceneObject::LoadStream(IReader& F)
if(b_found)
{
xr_string _message;
- _message = "Object ["+xr_string(buf)+"] not found. Relace it with ["+_new_name+"] or select other from library?";
+ _message = g_pStringTable->translate("ed_st_obj_not_found_replace_1").c_str() + xr_string(buf) + g_pStringTable->translate("ed_st_obj_not_found_replace_2").c_str() + _new_name + g_pStringTable->translate("ed_st_obj_not_found_replace_3").c_str();
mr = ELog.DlgMsg(mtConfirmation,mbYes |mbNo, _message.c_str());
if(mrYes==mr)
{
diff --git a/src/Editors/LevelEditor/Editor/Entry/WayPoint/WayPoint.cpp b/src/Editors/LevelEditor/Editor/Entry/WayPoint/WayPoint.cpp
index da7faa3084..803498d639 100644
--- a/src/Editors/LevelEditor/Editor/Entry/WayPoint/WayPoint.cpp
+++ b/src/Editors/LevelEditor/Editor/Entry/WayPoint/WayPoint.cpp
@@ -469,7 +469,7 @@ void CWayObject::MoveTo(const Fvector& pos, const Fvector& up)
CWayPoint* sel_point = 0;
for (WPIt it=m_WayPoints.begin(); it!=m_WayPoints.end(); it++)
if ((*it)->m_bSelected){
- if (sel_point){ Msg("!Only one selected way point supported."); return; }
+ if (sel_point){ Msg(g_pStringTable->translate("ed_st_only_one_way_point").c_str()); return; }
sel_point=*it;
}
if (sel_point) sel_point->m_vPosition.set(pos);
diff --git a/src/Editors/LevelEditor/Editor/Scene/SceneIO.cpp b/src/Editors/LevelEditor/Editor/Scene/SceneIO.cpp
index 38cc0632fb..6fb2a03960 100644
--- a/src/Editors/LevelEditor/Editor/Scene/SceneIO.cpp
+++ b/src/Editors/LevelEditor/Editor/Scene/SceneIO.cpp
@@ -105,7 +105,7 @@ void st_LevelOptions::ReadLTX(CInifile& ini)
u32 vers_op = ini.r_u32(section, "version");
if( vers_op < 0x00000008 )
{
- ELog.DlgMsg( mtError, "Skipping bad version of level options." );
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_level_opt_bad_ver").c_str() );
return;
}
@@ -152,7 +152,7 @@ void st_LevelOptions::Read(IReader& F)
DWORD vers = F.r_u32( );
if( vers < 0x00000008 )
{
- ELog.DlgMsg( mtError, "Skipping bad version of level options." );
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_level_opt_bad_ver").c_str() );
return;
}
@@ -175,7 +175,7 @@ void st_LevelOptions::Read(IReader& F)
if (F.find_chunk(CHUNK_BUILD_PARAMS))
F.r(&m_BuildParams, sizeof(m_BuildParams));
}else{
- ELog.DlgMsg (mtError, "Skipping bad version of build params.");
+ ELog.DlgMsg (mtError, g_pStringTable->translate("ed_st_build_params_bad_ver").c_str());
m_BuildParams.Init();
}
@@ -234,7 +234,7 @@ BOOL EScene::LoadLevelPartLTX(ESceneToolBase* M, LPCSTR mn)
if (guid!=m_GUID)
{
- ELog.DlgMsg (mtError,"Skipping invalid version of level part: '%s\\%s.part'",EFS.ExtractFileName(map_name).c_str(),M->ClassName());
+ ELog.DlgMsg (mtError,g_pStringTable->translate("ed_st_level_part_invalid_ver").c_str(), EFS.ExtractFileName(map_name).c_str(), M->ClassName());
return FALSE;
}
// read data
@@ -271,7 +271,7 @@ BOOL EScene::LoadLevelPartStream(ESceneToolBase* M, LPCSTR map_name)
if (guid != m_GUID)
{
- ELog.DlgMsg(mtError, "Skipping invalid version of level part: '%s\\%s.part'", EFS.ExtractFileName(map_name).c_str(), M->ClassName());
+ ELog.DlgMsg (mtError,g_pStringTable->translate("ed_st_level_part_invalid_ver").c_str(), EFS.ExtractFileName(map_name).c_str(), M->ClassName());
FS.r_close(R);
return FALSE;
}
@@ -284,7 +284,7 @@ BOOL EScene::LoadLevelPartStream(ESceneToolBase* M, LPCSTR map_name)
}
else
{
- ELog.DlgMsg(mtError, "Skipping corrupted version of level part: '%s\\%s.part'", EFS.ExtractFileName(map_name).c_str(), M->ClassName());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_level_part_corrupted").c_str(), EFS.ExtractFileName(map_name).c_str(), M->ClassName());
FS.r_close(R);
return FALSE;
}
@@ -428,7 +428,7 @@ void EScene::SaveLTX(LPCSTR map_name, bool bForUndo, bool bForceSaveAll)
if (!bForUndo)
{
m_RTFlags.set (flRT_Unsaved,FALSE);
- Msg ("Saving time: %3.2f sec",T.GetElapsed_sec());
+ Msg (g_pStringTable->translate("ed_st_save_time").c_str(), T.GetElapsed_sec());
}
}
@@ -773,7 +773,7 @@ bool EScene::LoadLTX(LPCSTR map_name, bool bUndo)
DWORD version = 0;
if (!map_name||(0==map_name[0])) return false;
- xr_string Name = "IXR: Level Editor [";
+ xr_string Name = "IX-Ray Level Editor [";
Name += map_name;
Name += "]";
@@ -782,7 +782,7 @@ bool EScene::LoadLTX(LPCSTR map_name, bool bUndo)
xr_string full_name;
full_name = map_name;
- ELog.Msg( mtInformation, "EScene: loading '%s'", map_name);
+ ELog.Msg( mtInformation, g_pStringTable->translate("ed_st_escene_loading").c_str(), map_name);
;
if (FS.TryLoad(full_name.c_str()))
{
@@ -795,7 +795,7 @@ bool EScene::LoadLTX(LPCSTR map_name, bool bUndo)
if (version!=CURRENT_FILE_VERSION)
{
- ELog.DlgMsg( mtError, "EScene: unsupported file version. Can't load Level.");
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_escene_unsupported").c_str());
UI->UpdateScene();
return false;
}
@@ -840,14 +840,14 @@ bool EScene::LoadLTX(LPCSTR map_name, bool bUndo)
{
CCustomObject* O = FindObjectByName(Si->first.c_str(),OBJCLASS_SCENEOBJECT);
if (!O)
- ELog.Msg(mtError,"EScene: Can't find snap object '%s'.",Si->second.c_str());
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_escene_cant_find_snap").c_str(), Si->second.c_str());
else
m_ESO_SnapObjects.push_back(O);
}
UpdateSnapList();
}
- Msg("EScene: %d objects loaded, %3.2f sec", ObjCount(), T.GetElapsed_sec() );
+ Msg(g_pStringTable->translate("ed_st_obj_load_stats").c_str(), ObjCount(), T.GetElapsed_sec());
UI->UpdateScene(true);
@@ -859,7 +859,7 @@ bool EScene::LoadLTX(LPCSTR map_name, bool bUndo)
return true;
}else
{
- ELog.Msg(mtError,"Can't find file: '%s'",map_name);
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_cant_find_file").c_str(), map_name);
}
return false;
}
@@ -870,7 +870,7 @@ bool EScene::Load(LPCSTR map_name, bool bUndo)
if (!map_name||(0==map_name[0])) return false;
- xr_string Name = "IXR: Level Editor [";
+ xr_string Name = "IX-Ray Level Editor [";
Name += map_name;
Name += "]";
@@ -879,7 +879,7 @@ bool EScene::Load(LPCSTR map_name, bool bUndo)
xr_string full_name;
full_name = map_name;
- ELog.Msg( mtInformation, "EScene: loading '%s'", map_name);
+ ELog.Msg( mtInformation, g_pStringTable->translate("ed_st_escene_loading").c_str(), map_name);
if ( FS.TryLoad(full_name.c_str()))
{
CTimer T; T.Start();
@@ -891,7 +891,7 @@ bool EScene::Load(LPCSTR map_name, bool bUndo)
R_ASSERT (F->r_chunk(CHUNK_VERSION, &version));
if (version!=CURRENT_FILE_VERSION)
{
- ELog.DlgMsg( mtError, "EScene: unsupported file version. Can't load Level.");
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_escene_unsupported").c_str());
UI->UpdateScene();
FS.r_close(F);
return false;
@@ -905,7 +905,7 @@ bool EScene::Load(LPCSTR map_name, bool bUndo)
LOP->close ();
}else
{
- ELog.DlgMsg (mtError, "Skipping old version of level options.\nCheck level options after loading.");
+ ELog.DlgMsg (mtError, g_pStringTable->translate("ed_st_level_opt_old_ver").c_str());
}
//
@@ -938,7 +938,7 @@ bool EScene::Load(LPCSTR map_name, bool bUndo)
if (F->find_chunk(CHUNK_OBJECT_COUNT))
obj_cnt = F->r_u32();
- SPBItem* pb = UI->ProgressStart(obj_cnt,"Loading objects...");
+ SPBItem* pb = UI->ProgressStart(obj_cnt,g_pStringTable->translate("ed_st_loading_obj").c_str());
ReadObjectsStream (*F,CHUNK_OBJECT_LIST, TAppendObject(this, &EScene::OnLoadAppendObject),pb);
UI->ProgressEnd (pb);
@@ -973,7 +973,7 @@ bool EScene::Load(LPCSTR map_name, bool bUndo)
F->r_stringZ (buf);
CCustomObject* O = FindObjectByName(buf.c_str(),OBJCLASS_SCENEOBJECT);
if (!O)
- ELog.Msg(mtError,"EScene: Can't find snap object '%s'.",buf.c_str());
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_escene_cant_find_snap").c_str(), buf.c_str());
else
m_ESO_SnapObjects.push_back(O);
@@ -982,7 +982,7 @@ bool EScene::Load(LPCSTR map_name, bool bUndo)
UpdateSnapList();
}
- Msg("EScene: %d objects loaded, %3.2f sec", ObjCount(), T.GetElapsed_sec() );
+ Msg(g_pStringTable->translate("ed_st_obj_load_stats").c_str(), ObjCount(), T.GetElapsed_sec());
UI->UpdateScene(true);
@@ -996,7 +996,7 @@ bool EScene::Load(LPCSTR map_name, bool bUndo)
return true;
}else
{
- ELog.Msg(mtError,"Can't find file: '%s'",map_name);
+ ELog.Msg(mtError, g_pStringTable->translate("ed_st_cant_find_file").c_str(), map_name);
}
return false;
}
@@ -1064,7 +1064,7 @@ bool EScene::LoadSelection( LPCSTR fname )
xr_string full_name;
full_name = fname;
- ELog.Msg( mtInformation, "EScene: loading part %s...", fname );
+ ELog.Msg( mtInformation, g_pStringTable->translate("ed_st_loading_part").c_str(), fname);
bool res = true;
@@ -1076,7 +1076,7 @@ bool EScene::LoadSelection( LPCSTR fname )
// Version
R_ASSERT(F->r_chunk(CHUNK_VERSION, &version));
if (version!=CURRENT_FILE_VERSION){
- ELog.DlgMsg( mtError, "EScene: unsupported file version. Can't load Level.");
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_escene_unsupported").c_str());
UI->UpdateScene();
FS.r_close(F);
return false;
@@ -1085,7 +1085,7 @@ bool EScene::LoadSelection( LPCSTR fname )
// Objects
if (!ReadObjectsStream(*F,CHUNK_OBJECT_LIST, TAppendObject (this,&EScene::OnLoadSelectionAppendObject),0))
{
- ELog.DlgMsg(mtError,"EScene. Failed to load selection.");
+ ELog.DlgMsg(mtError,g_pStringTable->translate("ed_st_escene_sel_load_fail").c_str());
res = false;
}
@@ -1130,7 +1130,7 @@ void EScene::CopySelection( ObjClassID classfilter )
SetClipboardData( clipformat, hmem );
CloseClipboard();
} else {
- ELog.DlgMsg( mtError, "Failed to open clipboard" );
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_cant_open_clipboard").c_str() );
GlobalFree( hmem );
}
}
@@ -1146,13 +1146,13 @@ void EScene::PasteSelection()
LoadSelection( sceneclipdata->m_FileName );
GlobalUnlock( hmem );
} else {
- ELog.DlgMsg( mtError, "No data in clipboard" );
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_clipboard_nodata").c_str() );
}
CloseClipboard();
} else {
- ELog.DlgMsg( mtError, "Failed to open clipboard" );
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_cant_open_clipboard").c_str() );
}
}
@@ -1172,13 +1172,13 @@ void EScene::DuplicateSelection(ObjClassID classfilter)
LoadSelection( sceneclipdata->m_FileName );
GlobalUnlock( hmem );
} else {
- ELog.DlgMsg( mtError, "No data in clipboard" );
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_clipboard_nodata").c_str() );
}
CloseClipboard();
} else {
- ELog.DlgMsg( mtError, "Failed to open clipboard" );
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_cant_open_clipboard").c_str() );
}
}
diff --git a/src/Editors/LevelEditor/Editor/Scene/SceneRender.cpp b/src/Editors/LevelEditor/Editor/Scene/SceneRender.cpp
index e32fd306db..54bd87b465 100644
--- a/src/Editors/LevelEditor/Editor/Scene/SceneRender.cpp
+++ b/src/Editors/LevelEditor/Editor/Scene/SceneRender.cpp
@@ -17,7 +17,7 @@ doug_lea_allocator g_render_lua_allocator("render:lua");
try{\
(N->val)->RenderRoot(P,B);\
}catch(...){\
- ELog.DlgMsg(mtError, "Please notify AlexMX!!! Critical error has occured in render routine!!! [Type B] - Tools: '%s' Object: '%s'",(N->val)->FParentTools->ClassName(),(N->val)->GetName());\
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_render_err_1").c_str(),(N->val)->FParentTools->ClassName(),(N->val)->GetName());\
}\
}
@@ -40,7 +40,7 @@ void object_StrictB2F_3(EScene::mapObject_Node *N){RENDER_OBJECT(3,true);}
try{\
(*s_it)->OnRenderRoot(P,B);\
}catch(...){\
- ELog.DlgMsg(mtError, "Please notify AlexMX!!! Critical error has occured in render routine!!! [Type B] - Tools: '%s'",(*s_it)->ClassName());\
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_render_err_2").c_str(),(*s_it)->ClassName());\
}\
}\
}
diff --git a/src/Editors/LevelEditor/Editor/Scene/SceneSelection.cpp b/src/Editors/LevelEditor/Editor/Scene/SceneSelection.cpp
index 616a754e8a..269ec56358 100644
--- a/src/Editors/LevelEditor/Editor/Scene/SceneSelection.cpp
+++ b/src/Editors/LevelEditor/Editor/Scene/SceneSelection.cpp
@@ -153,6 +153,6 @@ void EScene::ZoomExtents( ObjClassID cls, BOOL bSel )
if (mt) mt->GetBBox(BB,bSel);
}
if (BB.is_valid()) EDevice->m_Camera.ZoomExtents(BB);
- else ELog.Msg(mtError,"Can't calculate bounding box. Nothing selected or some object unsupported this function.");
+ else ELog.Msg(mtError,g_pStringTable->translate("ed_st_cant_calculate_bound_box").c_str());
}
diff --git a/src/Editors/LevelEditor/Editor/Scene/SceneUtil.cpp b/src/Editors/LevelEditor/Editor/Scene/SceneUtil.cpp
index 1a6077982a..ac9176164d 100644
--- a/src/Editors/LevelEditor/Editor/Scene/SceneUtil.cpp
+++ b/src/Editors/LevelEditor/Editor/Scene/SceneUtil.cpp
@@ -47,7 +47,7 @@ bool EScene::FindDuplicateName()
ObjectList& lst = mt->GetObjects();
for(ObjectIt _F = lst.begin();_F!=lst.end();_F++)
if (FindObjectByName((*_F)->GetName(), *_F)){
- ELog.DlgMsg(mtError,"Duplicate object name already exists: '%s'",(*_F)->GetName());
+ ELog.DlgMsg(mtError,g_pStringTable->translate("ed_st_duplicate_obj_exists").c_str(), (*_F)->GetName());
return true;
}
}
diff --git a/src/Editors/LevelEditor/Editor/Scene/scene.cpp b/src/Editors/LevelEditor/Editor/Scene/scene.cpp
index 6f67290e06..cc227096cc 100644
--- a/src/Editors/LevelEditor/Editor/Scene/scene.cpp
+++ b/src/Editors/LevelEditor/Editor/Scene/scene.cpp
@@ -88,7 +88,7 @@ void EScene::OnCreate()
m_LastAvailObject = 0;
m_LevelOp.Reset ();
- ELog.Msg ( mtInformation, "Scene: initialized" );
+ ELog.Msg ( mtInformation, g_pStringTable->translate("ed_st_scene_init").c_str() );
m_Valid = true;
m_RTFlags.zero ();
ExecCommand (COMMAND_UPDATE_CAPTION);
@@ -102,7 +102,7 @@ void EScene::OnDestroy()
//TProperties::DestroyForm(m_SummaryInfo);
Unload (FALSE);
UndoClear ();
- ELog.Msg ( mtInformation, "Scene: cleared" );
+ ELog.Msg ( mtInformation, g_pStringTable->translate("ed_st_scene_clear").c_str() );
m_LastAvailObject = 0;
m_Valid = false;
DestroySceneTools ();
@@ -330,7 +330,7 @@ void EScene::Clear(BOOL bEditableToolsOnly)
m_game_graph.clear();
m_RTFlags.set(flIsBuildedAIMap | flIsBuildedGameGraph | flIsBuildedCForm, FALSE);
- SDL_SetWindowTitle(g_AppInfo.Window, "IXR: Level Editor");
+ SDL_SetWindowTitle(g_AppInfo.Window, "IX-Ray Level Editor");
}
const Fvector& EScene::GetCameraPosition() const
@@ -358,7 +358,7 @@ bool EScene::GetBox(Fbox& box, ObjectList& lst)
if (bb.max.x > 100000.0f || bb.max.y > 100000.0f || bb.max.z > 100000.0f)
{
- ELog.Msg(mtError, "ERROR: Bounding box [%s]", Obj->GetName());
+ ELog.Msg(mtError, g_pStringTable->translate("ed_st_bounding_box_err").c_str(), Obj->GetName());
continue;
}
@@ -422,11 +422,11 @@ bool EScene::IsModified()
bool EScene::IfModified()
{
if (locked()){
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str() );
return false;
}
if (m_RTFlags.is(flRT_Unsaved) && (ObjCount()||!Tools->GetEditFileName().empty())){
- int mr = ELog.DlgMsg(mtConfirmation, "The scene has been modified. Do you want to save your changes?");
+ int mr = ELog.DlgMsg(mtConfirmation, g_pStringTable->translate("ed_st_save_prompt").c_str());
switch(mr){
case mrYes: if (!ExecCommand(COMMAND_SAVE)) return false; break;
case mrNo:{
@@ -487,7 +487,7 @@ bool EScene::Validate(bool bNeedOkMsg, bool bTestPortal, bool bTestHOM, bool bTe
for (; t_it!=t_end; t_it++){
if (t_it->second){
if (!t_it->second->Validate(bFullTest)){
- ELog.Msg(mtError,"ERROR: Validate '%s' failed!",t_it->second->ClassDesc());
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_validate_failed").c_str(), t_it->second->ClassDesc());
bRes = false;
}
}
@@ -506,30 +506,30 @@ bool EScene::Validate(bool bNeedOkMsg, bool bTestPortal, bool bTestHOM, bool bTe
if (O->m_objectFlags.is(CEditableObject::eoHOM)){ bHasHOM = true; break; }
}
if (!bHasHOM)
- Msg("!Level doesn't contain HOM objects!");
+ Msg(g_pStringTable->translate("ed_st_no_hom_obj").c_str());
//. if (mrNo==ELog.DlgMsg(mtConfirmation,mbYes |mbNo,"Level doesn't contain HOM.\nContinue anyway?"))
//. return false;
}
if (ObjCount(OBJCLASS_SPAWNPOINT)==0){
- ELog.Msg(mtError,"*ERROR: Can't find any Spawn Object.");
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_no_spawn").c_str());
bRes = false;
}
if (ObjCount(OBJCLASS_LIGHT)==0){
- ELog.Msg(mtError,"*ERROR: Can't find any Light Object.");
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_no_lights").c_str());
bRes = false;
}
if (ObjCount(OBJCLASS_SCENEOBJECT)==0){
- ELog.Msg(mtError,"*ERROR: Can't find any Scene Object.");
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_no_objects").c_str());
bRes = false;
}
if (bTestGlow){
if (ObjCount(OBJCLASS_GLOW)==0){
- ELog.Msg(mtError,"*ERROR: Can't find any Glow Object.");
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_no_glow").c_str());
bRes = false;
}
}
if (FindDuplicateName()){
- ELog.Msg(mtError,"*ERROR: Found duplicate object name.");
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_duplicate_name_exist").c_str());
bRes = false;
}
@@ -552,11 +552,11 @@ bool EScene::Validate(bool bNeedOkMsg, bool bTestPortal, bool bTestHOM, bool bTe
}
}
if (!res){
- ELog.Msg (mtError,"*ERROR: Scene has non compatible shaders. See log.");
+ ELog.Msg (mtError,g_pStringTable->translate("ed_st_uncompatible_shaders").c_str());
bRes = false;
}
if (0==static_obj){
- ELog.Msg (mtError,"*ERROR: Can't find static geometry.");
+ ELog.Msg (mtError,g_pStringTable->translate("ed_st_no_geom").c_str());
bRes = false;
}
}
@@ -569,16 +569,16 @@ bool EScene::Validate(bool bNeedOkMsg, bool bTestPortal, bool bTestHOM, bool bTe
for(ObjectIt it=lst.begin();it!=lst.end();it++){
EParticlesObject* S = (EParticlesObject*)(*it);
if (!S->GetParticles()){
- ELog.Msg(mtError,"*ERROR: Particle System hasn't reference.");
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_no_particle_ref").c_str());
bRes = false;
}
}
}
if (bRes){
- if (bNeedOkMsg) ELog.DlgMsg(mtInformation,"Validation OK!");
+ if (bNeedOkMsg) ELog.DlgMsg(mtInformation,g_pStringTable->translate("ed_st_validation_success").c_str());
}else{
- ELog.DlgMsg(mtInformation,"Validation FAILED!");
+ ELog.DlgMsg(mtInformation,g_pStringTable->translate("ed_st_validation_failed").c_str());
}
return bRes;
}
@@ -649,37 +649,37 @@ void EScene::OnNameChange(PropValue* sender)
void EScene::FillProp(LPCSTR pref, PropItemVec& items, ObjClassID cls_id)
{
- PHelper().CreateCaption (items,PrepareKey(pref,"Scene\\Name"), LTools->m_LastFileName.c_str());
+ PHelper().CreateCaption (items,PrepareKey(pref,g_pStringTable->translate("ed_st_scene_name").c_str()), LTools->m_LastFileName.c_str());
- PHelper().CreateRText (items,PrepareKey(pref,"Scene\\Name prefix"), &m_LevelOp.m_LevelPrefix);
+ PHelper().CreateRText (items,PrepareKey(pref,g_pStringTable->translate("ed_st_scene_name_prefix").c_str()), &m_LevelOp.m_LevelPrefix);
PropValue* V;
- auto NaneProp = PHelper().CreateRText (items,PrepareKey(pref,"Scene\\Build options\\Level path"), &m_LevelOp.m_FNLevelPath);
+ auto NaneProp = PHelper().CreateRText (items,PrepareKey(pref,g_pStringTable->translate("ed_st_level_path").c_str()), &m_LevelOp.m_FNLevelPath);
NaneProp->OnChangeEvent.bind(this, &EScene::OnNameChange);
- PHelper().CreateRText (items,PrepareKey(pref,"Scene\\Build options\\Custom data"), &m_LevelOp.m_BOPText);
- PHelper().CreateRText (items,PrepareKey(pref,"Scene\\Map version"), &m_LevelOp.m_map_version);
+ PHelper().CreateRText (items,PrepareKey(pref,g_pStringTable->translate("ed_st_scene_custom_data").c_str()), &m_LevelOp.m_BOPText);
+ PHelper().CreateRText (items,PrepareKey(pref,g_pStringTable->translate("ed_st_map_version").c_str()), &m_LevelOp.m_map_version);
m_LevelOp.m_mapUsage.FillProp("Scene\\Usage", items);
// common
ButtonValue* B;
- B=PHelper().CreateButton (items,PrepareKey(pref,"Scene\\Build options\\Quality"), "Draft,High,Custom",0);
+ B=PHelper().CreateButton (items,PrepareKey(pref,g_pStringTable->translate("ed_st_scene_quality").c_str()), "Draft,High,Custom",0);
B->OnBtnClickEvent.bind (this,&EScene::OnBuildControlClick);
BOOL enabled = (m_LevelOp.m_BuildParams.m_quality==ebqCustom);
- V=PHelper().CreateU8 (items,PrepareKey(pref,"Scene\\Build options\\Lighting\\Hemisphere quality [0-3]"), &m_LevelOp.m_LightHemiQuality, 0,3); V->Owner()->Enable(enabled);
- V=PHelper().CreateU8 (items,PrepareKey(pref,"Scene\\Build options\\Lighting\\Sun shadow quality [0-3]"), &m_LevelOp.m_LightSunQuality, 0,3); V->Owner()->Enable(enabled);
+ V=PHelper().CreateU8 (items,PrepareKey(pref,g_pStringTable->translate("ed_st_hemi_quality").c_str()), &m_LevelOp.m_LightHemiQuality, 0,3); V->Owner()->Enable(enabled);
+ V=PHelper().CreateU8 (items,PrepareKey(pref,g_pStringTable->translate("ed_st_sun_shadow_quality").c_str()), &m_LevelOp.m_LightSunQuality, 0,3); V->Owner()->Enable(enabled);
// Build Options
// Normals & optimization
- V=PHelper().CreateFloat (items,PrepareKey(pref,"Scene\\Build options\\Optimizing\\Normal smooth angle"), &m_LevelOp.m_BuildParams.m_sm_angle, 0.f,180.f); V->Owner()->Enable(enabled);
- V=PHelper().CreateFloat (items,PrepareKey(pref,"Scene\\Build options\\Optimizing\\Weld distance (m)"), &m_LevelOp.m_BuildParams.m_weld_distance, 0.f,1.f,0.001f,4); V->Owner()->Enable(enabled);
+ V=PHelper().CreateFloat (items,PrepareKey(pref,g_pStringTable->translate("ed_st_normal_smooth_angle").c_str()), &m_LevelOp.m_BuildParams.m_sm_angle, 0.f,180.f); V->Owner()->Enable(enabled);
+ V=PHelper().CreateFloat (items,PrepareKey(pref,g_pStringTable->translate("ed_st_weld_dist").c_str()), &m_LevelOp.m_BuildParams.m_weld_distance, 0.f,1.f,0.001f,4); V->Owner()->Enable(enabled);
// Light maps
- V=PHelper().CreateFloat (items,PrepareKey(pref,"Scene\\Build options\\Lighting\\Pixel per meter"), &m_LevelOp.m_BuildParams.m_lm_pixels_per_meter, 0.f,20.f); V->Owner()->Enable(enabled);
- V=PHelper().CreateU32 (items,PrepareKey(pref,"Scene\\Build options\\Lighting\\Error (LM collapsing)"), &m_LevelOp.m_BuildParams.m_lm_rms, 0,255); V->Owner()->Enable(enabled);
- V=PHelper().CreateU32 (items,PrepareKey(pref,"Scene\\Build options\\Lighting\\Error (LM zero)"), &m_LevelOp.m_BuildParams.m_lm_rms_zero, 0,255); V->Owner()->Enable(enabled);
- V=PHelper().CreateToken32 (items,PrepareKey(pref,"Scene\\Build options\\Lighting\\Jitter samples"), &m_LevelOp.m_BuildParams.m_lm_jitter_samples, js_token); V->Owner()->Enable(enabled);
+ V=PHelper().CreateFloat (items,PrepareKey(pref,g_pStringTable->translate("ed_st_pixel_per_meter").c_str()), &m_LevelOp.m_BuildParams.m_lm_pixels_per_meter, 0.f,20.f); V->Owner()->Enable(enabled);
+ V=PHelper().CreateU32 (items,PrepareKey(pref,g_pStringTable->translate("ed_st_error_lm_collapse").c_str()), &m_LevelOp.m_BuildParams.m_lm_rms, 0,255); V->Owner()->Enable(enabled);
+ V=PHelper().CreateU32 (items,PrepareKey(pref,g_pStringTable->translate("ed_st_error_lm_zero").c_str()), &m_LevelOp.m_BuildParams.m_lm_rms_zero, 0,255); V->Owner()->Enable(enabled);
+ V=PHelper().CreateToken32 (items,PrepareKey(pref,g_pStringTable->translate("ed_st_jitter_samples").c_str()), &m_LevelOp.m_BuildParams.m_lm_jitter_samples, js_token); V->Owner()->Enable(enabled);
// tools options
{
@@ -832,7 +832,7 @@ bool EScene::BuildCForm()
{
if (!m_cfrom_builder.build())
{
- Msg("! CForm is empty!");
+ Msg(g_pStringTable->translate("ed_st_cform_empty_log").c_str());
return false;
}
m_RTFlags.set(flIsBuildedCForm, TRUE);
@@ -865,7 +865,7 @@ void EScene::RegisterSubstObjectName(const xr_string& _from, const xr_string& _t
xr_string _tmp;
bool b = GetSubstObjectName(_from, _tmp);
if(b)
- Msg("! subst for '%s' already exist -'%s'",_from.c_str(), _tmp.c_str());
+ Msg(g_pStringTable->translate("ed_st_subst_exist").c_str(), _from.c_str(), _tmp.c_str());
TSubstPairs_it It = m_subst_pairs.begin();
TSubstPairs_it It_e = m_subst_pairs.end();
diff --git a/src/Editors/LevelEditor/Editor/Scene/scene_spawn.cpp b/src/Editors/LevelEditor/Editor/Scene/scene_spawn.cpp
index 1b2e4b4eea..820e59bf8a 100644
--- a/src/Editors/LevelEditor/Editor/Scene/scene_spawn.cpp
+++ b/src/Editors/LevelEditor/Editor/Scene/scene_spawn.cpp
@@ -7,7 +7,7 @@ bool EScene::BuildSpawn()
{
if (!BuildCForm())
{
- ELog.DlgMsg(mtError, mbOK, "CFrom is empty!\nSee log.");
+ ELog.DlgMsg(mtError, mbOK, g_pStringTable->translate("ed_st_cform_empty").c_str());
return false;
}
}
@@ -15,7 +15,7 @@ bool EScene::BuildSpawn()
{
if (!BuildAIMap())
{
- ELog.DlgMsg(mtError, mbOK, "AIMap is empty!\nSee log.");
+ ELog.DlgMsg(mtError, mbOK, g_pStringTable->translate("ed_st_ai_map_empty").c_str());
return false;
}
}
@@ -23,7 +23,7 @@ bool EScene::BuildSpawn()
{
if (!BuildGameGraph())
{
- ELog.DlgMsg(mtError, mbOK, "GameGraph is empty!\nSee log.");
+ ELog.DlgMsg(mtError, mbOK, g_pStringTable->translate("ed_st_game_graph_empty").c_str());
return false;
}
}
@@ -32,7 +32,7 @@ bool EScene::BuildSpawn()
CGameSpawnConstructor SpawnConstructor;
if (!SpawnConstructor.build(Scene->m_LevelOp.m_FNLevelPath.c_str(), m_spawn_data, Scene->m_LevelOp.m_FNLevelPath.c_str(), true))
{
- ELog.DlgMsg(mtError, mbOK, "! Failed build spawn! \nSee log.");
+ ELog.DlgMsg(mtError, mbOK, g_pStringTable->translate("ed_st_spawn_failed").c_str());
UI->CloseConsole();
return false;
}
@@ -58,7 +58,7 @@ bool EScene::BuildForPCPlay()
!FS.exist("$game_levels$", N4)
)
{
- ELog.DlgMsg(mtError, mbOK, "Level is not builded!");
+ ELog.DlgMsg(mtError, mbOK, g_pStringTable->translate("ed_st_level_build_failed").c_str());
return false;
}
@@ -66,7 +66,7 @@ bool EScene::BuildForPCPlay()
{
if (!BuildCForm())
{
- ELog.DlgMsg(mtError, mbOK, "CFrom is empty!\nSee log.");
+ ELog.DlgMsg(mtError, mbOK, g_pStringTable->translate("ed_st_cform_empty").c_str());
return false;
}
}
@@ -74,7 +74,7 @@ bool EScene::BuildForPCPlay()
{
if (!BuildAIMap())
{
- ELog.DlgMsg(mtError, mbOK, "AIMap is empty!\nSee log.");
+ ELog.DlgMsg(mtError, mbOK, g_pStringTable->translate("ed_st_ai_map_empty").c_str());
return false;
}
}
@@ -82,21 +82,21 @@ bool EScene::BuildForPCPlay()
{
if (!BuildGameGraph())
{
- ELog.DlgMsg(mtError, mbOK, "GameGraph is empty!\nSee log.");
+ ELog.DlgMsg(mtError, mbOK, g_pStringTable->translate("ed_st_game_graph_empty").c_str());
return false;
}
}
UI->ShowConsole();
if (!m_level_graph.save_temp())
{
- ELog.DlgMsg(mtError, mbOK, "level.ai.temp can't save!\nSee log.");
+ ELog.DlgMsg(mtError, mbOK, g_pStringTable->translate("ed_st_level_ai_temp_cant_save").c_str());
return false;
}
CGameSpawnConstructor SpawnConstructor;
if (!SpawnConstructor.build(Scene->m_LevelOp.m_FNLevelPath.c_str(),"editor", Scene->m_LevelOp.m_FNLevelPath.c_str(), true))
{
- ELog.DlgMsg(mtError, mbOK, "! Failed build spawn! \nSee log.");
+ ELog.DlgMsg(mtError, mbOK, g_pStringTable->translate("ed_st_spawn_failed").c_str());
UI->CloseConsole();
return false;
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/AIMap/ESceneAIMapTools.cpp b/src/Editors/LevelEditor/Editor/Tools/AIMap/ESceneAIMapTools.cpp
index d8ef4c8b56..cd2b5209fa 100644
--- a/src/Editors/LevelEditor/Editor/Tools/AIMap/ESceneAIMapTools.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/AIMap/ESceneAIMapTools.cpp
@@ -228,7 +228,7 @@ void ESceneAIMapTool::DenumerateNodes()
(((u32)(*it)->n2n2==InvalidNode))&&
(((u32)(*it)->n3n3==InvalidNode))&&
(((u32)(*it)->n4n4==InvalidNode)))){
- ELog.Msg(mtError,"Node: has wrong link [%3.2f, %3.2f, %3.2f], {%d,%d,%d,%d}",VPUSH((*it)->Pos),(*it)->n1,(*it)->n2,(*it)->n3,(*it)->n4);
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_node_has_wrong_link").c_str(), VPUSH((*it)->Pos), (*it)->n1, (*it)->n2, (*it)->n3, (*it)->n4);
(*it)->n1 = 0;
(*it)->n2 = 0;
(*it)->n3 = 0;
@@ -301,7 +301,7 @@ bool ESceneAIMapTool::LoadStream(IReader& F)
R_ASSERT(F.r_chunk(AIMAP_CHUNK_VERSION,&version));
if( version!=AIMAP_VERSION ){
- ELog.DlgMsg( mtError, "AIMap: Unsupported version.");
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_ai_map_unsupported_ver").c_str());
return false;
}
@@ -338,7 +338,7 @@ bool ESceneAIMapTool::LoadStream(IReader& F)
for (int i=0; iFindObjectByName(buf.c_str(),OBJCLASS_SCENEOBJECT);
- if (!O) ELog.Msg(mtError,"AIMap: Can't find snap object '%s'.",buf.c_str());
+ if (!O) ELog.Msg(mtError,g_pStringTable->translate("ed_st_ai_map_cant_find_snap").c_str(), buf.c_str());
else m_SnapObjects.push_back(O);
}
}
@@ -441,7 +441,7 @@ int ESceneAIMapTool::AddNode(const Fvector& pos, bool bIgnoreConstraints, bool b
if (bAutoLink) UpdateLinks(N,bIgnoreConstraints);
return 1;
}else{
- ELog.Msg (mtError,"Can't create node.");
+ ELog.Msg (mtError,g_pStringTable->translate("ed_st_cant_create_node").c_str());
return 0;
}
}else{
@@ -500,16 +500,16 @@ void ESceneAIMapTool::RemoveSelection()
if (m_Nodes.size()==(u32)SelectionCount(true)){
Clear (true);
}else{
- SPBItem* pb = UI->ProgressStart(3,"Removing nodes...");
+ SPBItem* pb = UI->ProgressStart(3,g_pStringTable->translate("ed_st_removing_nodes").c_str());
// remove link to sel nodes
- pb->Inc("erasing nodes");
+ pb->Inc(g_pStringTable->translate("erasing nodes").c_str());
// remove sel nodes
AINodeIt result = std::remove_if(m_Nodes.begin(), m_Nodes.end(), delete_sel_node_pred());
m_Nodes.erase (result,m_Nodes.end());
- pb->Inc("updating hash");
+ pb->Inc(g_pStringTable->translate("ed_st_updating_hash").c_str());
hash_Clear ();
hash_FillFromNodes ();
- pb->Inc("end");
+ pb->Inc(g_pStringTable->translate("ed_st_ai_map_end").c_str());
UI->ProgressEnd(pb);
}
}break;
@@ -546,14 +546,14 @@ int ESceneAIMapTool::SelectionCount(bool testflag)
void ESceneAIMapTool::FillProp(LPCSTR pref, PropItemVec& items)
{
- PHelper().CreateFlag32 (items, PrepareKey(pref,"Common\\Draw Nodes"), &m_Flags, flHideNodes, 0,0, FlagValueCustom::flInvertedDraw);
- PHelper().CreateFlag32 (items, PrepareKey(pref,"Common\\Slow Calculate Mode"), &m_Flags, flSlowCalculate);
- PHelper().CreateFloat (items, PrepareKey(pref,"Common\\Visible Radius"), &m_VisRadius, 10.f, 250.f);
- PHelper().CreateFloat (items, PrepareKey(pref,"Common\\Smooth Height"), &m_SmoothHeight,0.1f, 100.f);
+ PHelper().CreateFlag32 (items, PrepareKey(pref,g_pStringTable->translate("ed_st_ai_map_draw_nodes").c_str()), &m_Flags, flHideNodes, 0,0, FlagValueCustom::flInvertedDraw);
+ PHelper().CreateFlag32 (items, PrepareKey(pref,g_pStringTable->translate("ed_st_ai_map_slow_calc").c_str()), &m_Flags, flSlowCalculate);
+ PHelper().CreateFloat (items, PrepareKey(pref,g_pStringTable->translate("ed_st_ai_map_vis_radius").c_str()), &m_VisRadius, 10.f, 250.f);
+ PHelper().CreateFloat (items, PrepareKey(pref,g_pStringTable->translate("ed_st_ai_map_smooth_height").c_str()), &m_SmoothHeight,0.1f, 100.f);
- PHelper().CreateU32 (items, PrepareKey(pref,"Params\\Brush Size"), &m_BrushSize, 1, 100);
- PHelper().CreateFloat (items, PrepareKey(pref,"Params\\Can Up"), &m_Params.fCanUP, 0.f, 10.f);
- PHelper().CreateFloat (items, PrepareKey(pref,"Params\\Can Down"), &m_Params.fCanDOWN, 0.f, 10.f);
+ PHelper().CreateU32 (items, PrepareKey(pref,g_pStringTable->translate("ed_st_ai_map_brush_size").c_str()), &m_BrushSize, 1, 100);
+ PHelper().CreateFloat (items, PrepareKey(pref,g_pStringTable->translate("ed_st_ai_map_can_up").c_str()), &m_Params.fCanUP, 0.f, 10.f);
+ PHelper().CreateFloat (items, PrepareKey(pref,g_pStringTable->translate("ed_st_ai_map_can_down").c_str()), &m_Params.fCanDOWN, 0.f, 10.f);
}
void ESceneAIMapTool::GetBBox(Fbox& bb, bool bSelOnly)
diff --git a/src/Editors/LevelEditor/Editor/Tools/AIMap/ESceneAIMapTools_Generate.cpp b/src/Editors/LevelEditor/Editor/Tools/AIMap/ESceneAIMapTools_Generate.cpp
index 9055f9f1df..df229613ee 100644
--- a/src/Editors/LevelEditor/Editor/Tools/AIMap/ESceneAIMapTools_Generate.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/AIMap/ESceneAIMapTools_Generate.cpp
@@ -396,7 +396,7 @@ int ESceneAIMapTool::BuildNodes(const Fvector& pos, int sz, bool bIC)
cnt=Scene->RayQuery(PQ,Pos,Dir,3,CDB::OPT_ONLYNEAREST|CDB::OPT_CULL,GetSnapList());
if (0==cnt) {
- ELog.Msg (mtInformation,"Can't align position.");
+ ELog.Msg (mtInformation,g_pStringTable->translate("ed_st_cant_align_pos").c_str());
return 0;
} else {
Pos.y = Pos.y - PQ.r_begin()->range;
@@ -411,7 +411,7 @@ int ESceneAIMapTool::BuildNodes(const Fvector& pos, int sz, bool bIC)
float estimated_nodes = (2*sz-1)*(2*sz-1);
SPBItem* pb = 0;
- if (estimated_nodes>1024) pb = UI->ProgressStart(1, "Building nodes...");
+ if (estimated_nodes>1024) pb = UI->ProgressStart(1, g_pStringTable->translate("ed_st_building_nodes").c_str());
float radius = sz*m_Params.fPatchSize-EPS_L;
// General cycle
for (int k=0; k<(int)m_Nodes.size(); k++){
@@ -475,7 +475,7 @@ void ESceneAIMapTool::BuildNodes(bool bFromSelectedOnly)
m_AIBBox.getsize (LevelSize);
float estimated_nodes = (LevelSize.x/m_Params.fPatchSize)*(LevelSize.z/m_Params.fPatchSize);
- SPBItem* pb = UI->ProgressStart(1, "Building nodes...");
+ SPBItem* pb = UI->ProgressStart(1, g_pStringTable->translate("ed_st_building_nodes").c_str());
// General cycle
for (int k=0; k<(int)m_Nodes.size(); k++){
SAINode* N = m_Nodes[k];
@@ -588,7 +588,7 @@ bool ESceneAIMapTool::GenerateMap(bool bFromSelectedOnly)
if (!GetSnapList()->empty()){
if (!RealUpdateSnapList()) return false;
if (m_Nodes.empty()){
- ELog.DlgMsg(mtError,"Append at least one node.");
+ ELog.DlgMsg(mtError,g_pStringTable->translate("ed_st_append_one_node").c_str());
return false;
}
@@ -615,7 +615,7 @@ bool ESceneAIMapTool::GenerateMap(bool bFromSelectedOnly)
}
}
- SPBItem* pb = UI->ProgressStart(mesh_cnt,"Prepare collision model...");
+ SPBItem* pb = UI->ProgressStart(mesh_cnt,g_pStringTable->translate("ed_st_prepare_collision").c_str());
CDB::Collector* CL = ETOOLS::create_collector();
Fvector verts[3];
@@ -661,7 +661,7 @@ bool ESceneAIMapTool::GenerateMap(bool bFromSelectedOnly)
UI->ProgressEnd(pb);
- UI->SetStatus ("Building collision model...");
+ UI->SetStatus (g_pStringTable->translate("ed_st_build_collision").c_str());
// create CFModel
m_CFModel = ETOOLS::create_model_cl(CL);
ETOOLS::destroy_collector(CL);
@@ -675,7 +675,7 @@ tm.Start();
tm.GetElapsed_sec();
Scene->unlock ();
//. Log("-test time: ", g_tm.GetElapsed_sec());
- Msg("-building time: %.3f",tm.GetElapsed_sec());
+ Msg(g_pStringTable->translate("ed_st_build_time").c_str(),tm.GetElapsed_sec());
//. Msg("-Rate: %3.2f Count: %d",(g_tm.GetElapsed_sec()/tm.GetElapsed_sec())*100.f,g_tm.count);
// unload CFModel
@@ -686,7 +686,7 @@ tm.GetElapsed_sec();
UI->SetStatus ("");
}else{
- ELog.DlgMsg(mtError,"Fill snap list before generating slots!");
+ ELog.DlgMsg(mtError,g_pStringTable->translate("ed_st_fill_snap_list").c_str());
}
return bRes;
}
@@ -842,7 +842,7 @@ void ESceneAIMapTool::MakeLinks(u8 side_flag, EMode mode, bool bIgnoreConstraint
void ESceneAIMapTool::ResetNodes()
{
- SPBItem* pb = UI->ProgressStart(m_Nodes.size(), "Smoothing nodes...");
+ SPBItem* pb = UI->ProgressStart(m_Nodes.size(), g_pStringTable->translate("ed_st_smoothing_nodes").c_str());
int n_cnt = 0;
@@ -860,7 +860,7 @@ void ESceneAIMapTool::ResetNodes()
#define merge(pt) if (fsimilar(P.y,REF.y,m_SmoothHeight)) { c++; pt.add(P); }
void ESceneAIMapTool::SmoothNodes()
{
- SPBItem* pb = UI->ProgressStart(m_Nodes.size(), "Smoothing nodes...");
+ SPBItem* pb = UI->ProgressStart(m_Nodes.size(), g_pStringTable->translate("ed_st_smoothing_nodes").c_str());
AINodeVec smoothed; smoothed.reserve(m_Nodes.size());
U8Vec mark; mark.assign (m_Nodes.size(),0);
diff --git a/src/Editors/LevelEditor/Editor/Tools/AIMap/ESceneAIMapTools_Pick.cpp b/src/Editors/LevelEditor/Editor/Tools/AIMap/ESceneAIMapTools_Pick.cpp
index fc97fcbf26..5b95deabc1 100644
--- a/src/Editors/LevelEditor/Editor/Tools/AIMap/ESceneAIMapTools_Pick.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/AIMap/ESceneAIMapTools_Pick.cpp
@@ -36,7 +36,7 @@ bool ESceneAIMapTool::PickObjects(Fvector& dest, const Fvector& start, const Fve
return true;
}
}else{
- ELog.DlgMsg(mtInformation,"Fill object list and try again.");
+ ELog.DlgMsg(mtInformation,g_pStringTable->translate("ed_st_fill_obj_list").c_str());
}
return false;
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/Base/ESceneCustomOTools.cpp b/src/Editors/LevelEditor/Editor/Tools/Base/ESceneCustomOTools.cpp
index 94e94b29c9..da71930972 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Base/ESceneCustomOTools.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Base/ESceneCustomOTools.cpp
@@ -286,8 +286,8 @@ CCustomObject* ESceneCustomOTool::FindObjectByName(LPCSTR name, CCustomObject* p
if (!_name || _name == "" || _name == " ")
{
- Msg("!!! Error _name = %s, %s, %s", Scene->GetOTool(CO->FClassID)->ClassName(), CO->GetName(), CO->FName);
- Msg("!!! Try FIX name");
+ Msg(g_pStringTable->translate("ed_st_invalid_name").c_str(), Scene->GetOTool(CO->FClassID)->ClassName(), CO->GetName(), CO->FName);
+ Msg(g_pStringTable->translate("ed_st_try_fix_name").c_str());
CO->SetName(Scene->GetOTool(CO->FClassID)->ClassName());
_name = CO->GetName();
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/Base/ESceneCustomOToolsIO.cpp b/src/Editors/LevelEditor/Editor/Tools/Base/ESceneCustomOToolsIO.cpp
index 25e4b1e84f..214ee80169 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Base/ESceneCustomOToolsIO.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Base/ESceneCustomOToolsIO.cpp
@@ -32,7 +32,7 @@ bool ESceneCustomOTool::LoadSelection(IReader& F)
F.r_chunk (CHUNK_OBJECT_COUNT,&count);
string256 Data = {};
- sprintf(Data, "Loading %s(stream)...", ClassDesc());
+ sprintf(Data, g_pStringTable->translate("ed_st_loading_stream").c_str(), ClassDesc());
SPBItem* pb = UI->ProgressStart(count, Data);
Scene->ReadObjectsStream (F,CHUNK_OBJECTS, EScene::TAppendObject(this, &ESceneCustomOTool::OnLoadSelectionAppendObject),pb);
@@ -67,7 +67,7 @@ bool ESceneCustomOTool::LoadLTX(CInifile& ini)
u32 count = ini.r_u32("main", "objects_count");
string256 Data = {};
- sprintf(Data, "Loading %s(ltx)...", ClassDesc());
+ sprintf(Data, g_pStringTable->translate("ed_st_loading_ltx").c_str(), ClassDesc());
SPBItem* pb = UI->ProgressStart(count, Data);
@@ -101,7 +101,7 @@ bool ESceneCustomOTool::LoadStream(IReader& F)
F.r_chunk (CHUNK_OBJECT_COUNT,&count);
string256 Data = {};
- sprintf(Data, "Loading %s...", ClassDesc());
+ sprintf(Data, g_pStringTable->translate("ed_st_loading_class").c_str(), ClassDesc());
SPBItem* pb = UI->ProgressStart(count, Data);
Scene->ReadObjectsStream (F,CHUNK_OBJECTS, EScene::TAppendObject(this, &ESceneCustomOTool::OnLoadAppendObject),pb);
diff --git a/src/Editors/LevelEditor/Editor/Tools/Details/ESceneDOTools.cpp b/src/Editors/LevelEditor/Editor/Tools/Details/ESceneDOTools.cpp
index 0ecf1b9f31..1e071244f1 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Details/ESceneDOTools.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Details/ESceneDOTools.cpp
@@ -184,7 +184,7 @@ bool EDetailManager::ImportColorIndices(LPCSTR fname)
FS.r_close (F);
return true;
}else{
- ELog.DlgMsg (mtError,"Can't open file '%s'.",fname);
+ ELog.DlgMsg (mtError,g_pStringTable->translate("ed_st_cant_open_file").c_str(), fname);
return false;
}
}
@@ -312,7 +312,7 @@ bool EDetailManager::LoadStream(IReader& F)
u32 version = F.r_u32();
if (version!=DETMGR_VERSION){
- ELog.Msg(mtError,"EDetailManager: unsupported version.");
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_detail_unsupported_ver").c_str());
return false;
}
@@ -330,7 +330,7 @@ bool EDetailManager::LoadStream(IReader& F)
// objects
if (!LoadColorIndices(F)){
- ELog.DlgMsg (mtError,"EDetailManager: Some objects removed. Reinitialize objects.",buf);
+ ELog.DlgMsg (mtError,g_pStringTable->translate("ed_st_detail_reinit_obj").c_str(), buf);
InvalidateSlots ();
}
@@ -345,7 +345,7 @@ bool EDetailManager::LoadStream(IReader& F)
for (int i=0; iFindObjectByName(buf,OBJCLASS_SCENEOBJECT);
- if (!O) ELog.Msg(mtError,"EDetailManager: Can't find snap object '%s'.",buf);
+ if (!O) ELog.Msg(mtError,g_pStringTable->translate("ed_st_detail_cant_find_snap").c_str(), buf);
else m_SnapObjects.push_back(O);
}
}
@@ -361,7 +361,7 @@ bool EDetailManager::LoadStream(IReader& F)
m_Base.CreateShader();
m_RTFlags.set(flRTGenerateBaseMesh,TRUE);
}else{
- ELog.Msg(mtError,"EDetailManager: Can't find base texture '%s'.",buf);
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_detail_cant_find_tex").c_str(), buf);
ClearSlots();
ClearBase();
}
@@ -432,10 +432,10 @@ bool EDetailManager::Export(LPCSTR path)
xr_string fn = xr_string(path)+"build.details";
bool bRes=true;
- SPBItem* pb = UI->ProgressStart(5,"Making details...");
+ SPBItem* pb = UI->ProgressStart(5,g_pStringTable->translate("ed_st_making_details").c_str());
CMemoryWriter F;
- pb->Inc ("merge textures");
+ pb->Inc (g_pStringTable->translate("ed_st_merge_textures").c_str());
Fvector2Vec offsets;
Fvector2Vec scales;
boolVec rotated;
@@ -468,7 +468,7 @@ bool EDetailManager::Export(LPCSTR path)
int res = ImageLib.CreateMergedTexture(textures, do_tex_name.c_str(), STextureParams::tfDXT5, 256, 2048, 256, 2048, offsets, scales, rotated, remap);
if (1!=res) bRes=FALSE;
- pb->Inc ("export geometry");
+ pb->Inc (g_pStringTable->translate("ed_st_export_geom").c_str());
// objects
int object_idx = 0;
if (bRes){
@@ -478,7 +478,7 @@ bool EDetailManager::Export(LPCSTR path)
if (remap_object[it-objects.begin()]!=u8(-1)){
F.open_chunk (object_idx++);
if (!((EDetail*)(*it))->m_pRefs){
- ELog.DlgMsg(mtError, "Bad object or object not found '%s'.", ((EDetail*)(*it))->m_sRefs.c_str());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_bad_obj").c_str(), ((EDetail*)(*it))->m_sRefs.c_str());
bRes=false;
}else{
LPCSTR tex_name = ((EDetail*)(*it))->GetTextureName();
@@ -496,7 +496,7 @@ bool EDetailManager::Export(LPCSTR path)
F.close_chunk ();
}
- pb->Inc ("export slots");
+ pb->Inc (g_pStringTable->translate("ed_st_export_slots").c_str());
// slots
if (bRes){
xr_vector dt_slots(slot_cnt); dt_slots.assign(dtSlots,dtSlots+slot_cnt);
@@ -542,20 +542,20 @@ void EDetailManager::OnBaseTextureChange(PropValue* prop)
{
m_Base.OnImageChange (prop);
InvalidateSlots ();
- ELog.DlgMsg (mtInformation,"Texture changed. Reinitialize objects.");
+ ELog.DlgMsg (mtInformation,g_pStringTable->translate("ed_st_tex_changed").c_str());
}
void EDetailManager::FillProp(LPCSTR pref, PropItemVec& items)
{
PropValue* P;
- P=PHelper().CreateFloat (items, PrepareKey(pref,"Objects per square"), &ps_r__Detail_density);
+ P=PHelper().CreateFloat (items, PrepareKey(pref,g_pStringTable->translate("ed_st_obj_per_square").c_str()), &ps_r__Detail_density);
P->OnChangeEvent.bind (this,&EDetailManager::OnDensityChange);
- P=PHelper().CreateChoose(items, PrepareKey(pref,"Base Texture"), &m_Base.name, smTexture);
+ P=PHelper().CreateChoose(items, PrepareKey(pref,g_pStringTable->translate("ed_st_base_tex").c_str()), &m_Base.name, smTexture);
P->OnChangeEvent.bind (this,&EDetailManager::OnBaseTextureChange);
- PHelper().CreateFlag32 (items, PrepareKey(pref,"Common\\Draw objects"), &m_Flags, flObjectsDraw);
- PHelper().CreateFlag32 (items, PrepareKey(pref,"Common\\Draw base texture"), &m_Flags, flBaseTextureDraw);
- PHelper().CreateFlag32 (items, PrepareKey(pref,"Common\\Base texture blended"), &m_Flags, flBaseTextureBlended);
- PHelper().CreateFlag32 (items, PrepareKey(pref,"Common\\Draw slot boxes"), &m_Flags, flSlotBoxesDraw);
+ PHelper().CreateFlag32 (items, PrepareKey(pref,g_pStringTable->translate("ed_st_detail_draw_obj").c_str()), &m_Flags, flObjectsDraw);
+ PHelper().CreateFlag32 (items, PrepareKey(pref,g_pStringTable->translate("ed_st_detail_draw_tex").c_str()), &m_Flags, flBaseTextureDraw);
+ PHelper().CreateFlag32 (items, PrepareKey(pref,g_pStringTable->translate("ed_st_detail_base_tex_blend").c_str()), &m_Flags, flBaseTextureBlended);
+ PHelper().CreateFlag32 (items, PrepareKey(pref,g_pStringTable->translate("ed_st_detail_draw_slots").c_str()), &m_Flags, flSlotBoxesDraw);
}
bool EDetailManager::GetSummaryInfo(SSceneSummary* inf)
diff --git a/src/Editors/LevelEditor/Editor/Tools/Details/ESceneDOTools_Generate.cpp b/src/Editors/LevelEditor/Editor/Tools/Details/ESceneDOTools_Generate.cpp
index 66414c29ff..59b2b97a4c 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Details/ESceneDOTools_Generate.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Details/ESceneDOTools_Generate.cpp
@@ -80,11 +80,11 @@ void EDetailManager::FindClosestIndex(const Fcolor& C, SIndexDistVec& best)
bool EDetailManager::Initialize()
{
if (m_SnapObjects.empty()){
- ELog.DlgMsg(mtError,"Snap list empty!");
+ ELog.DlgMsg(mtError,g_pStringTable->translate("ed_st_snap_list_empty").c_str());
return false;
}
if (!m_Base.Valid()){
- ELog.DlgMsg(mtError,"Base texture empty!");
+ ELog.DlgMsg(mtError,g_pStringTable->translate("ed_st_base_tex_empty").c_str());
return false;
}
if (!UpdateHeader()) return false;
@@ -97,12 +97,12 @@ bool EDetailManager::Initialize()
bool EDetailManager::Reinitialize()
{
if (m_SnapObjects.empty()){
- ELog.DlgMsg(mtError,"Snap list empty!");
- return false;
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_snap_list_empty").c_str());
+ return false;
}
if (!m_Base.Valid()){
- ELog.DlgMsg(mtError,"Base texture empty!");
- return false;
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_base_tex_empty").c_str());
+ return false;
}
InvalidateCache();
@@ -192,7 +192,7 @@ bool EDetailManager::UpdateSlots()
xr_free (dtSlots);
dtSlots = xr_alloc(dtH.size_x*dtH.size_z);
- SPBItem* pb = UI->ProgressStart(dtH.size_x*dtH.size_z,"Updating bounding boxes...");
+ SPBItem* pb = UI->ProgressStart(dtH.size_x*dtH.size_z,g_pStringTable->translate("ed_st_update_bound_box").c_str());
for (u32 z=0; ztranslate("ed_st_invalid_base_tex").c_str());
return false;
}
if (objects.empty()){
- ELog.DlgMsg(mtError,"Object list empty!");
+ ELog.DlgMsg(mtError,g_pStringTable->translate("ed_st_obj_list_empty").c_str());
return false;
}
// update objects
- SPBItem* pb = UI->ProgressStart(dtH.size_x*dtH.size_z,"Updating objects...");
+ SPBItem* pb = UI->ProgressStart(dtH.size_x*dtH.size_z,g_pStringTable->translate("ed_st_update_obj").c_str());
for (u32 z=0; ztranslate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
@@ -67,7 +67,7 @@ bool ESceneFogVolumeTool::LoadSelection(IReader& F)
R_ASSERT(F.r_chunk(TOOL_CHUNK_VERSION,&version));
if( version!=FOG_VOL_TOOLS_VERSION )
{
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
@@ -86,8 +86,8 @@ bool ESceneFogVolumeTool::LoadLTX(CInifile& ini)
u32 version = ini.r_u32("main","version");
if( version!=FOG_VOL_TOOLS_VERSION )
{
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
- return false;
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
+ return false;
}
inherited::LoadLTX(ini);
@@ -265,11 +265,11 @@ void EFogVolume::FillPropObjects(LPCSTR pref, PropItemVec& values)
inherited::FillProp (pref, values);
PropValue* P;
- P=PHelper().CreateToken8 (values, PrepareKey(pref,"VolumeType"), &m_volumeType, fog_vol_type);
+ P=PHelper().CreateToken8 (values, PrepareKey(pref,g_pStringTable->translate("ed_st_fog_type").c_str()), &m_volumeType, fog_vol_type);
P->OnChangeEvent.bind (this,&EFogVolume::OnChangeEnvs);
if(m_volumeType==fvEmitter)
- P=PHelper().CreateRText (values, PrepareKey(pref,"profile (ltx)"), &m_volume_profile);
+ P=PHelper().CreateRText (values, PrepareKey(pref,g_pStringTable->translate("ed_st_fog_profile").c_str()), &m_volume_profile);
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/Glow/ESceneGlowTools.cpp b/src/Editors/LevelEditor/Editor/Tools/Glow/ESceneGlowTools.cpp
index 73d26d6f78..2a79f8315a 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Glow/ESceneGlowTools.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Glow/ESceneGlowTools.cpp
@@ -16,8 +16,8 @@ void ESceneGlowTool::RemoveControls()
void ESceneGlowTool::FillProp(LPCSTR pref, PropItemVec& items)
{
- PHelper().CreateFlag32(items, PrepareKey(pref,"Common\\Test Visibility"), &m_Flags, flTestVisibility);
- PHelper().CreateFlag32(items, PrepareKey(pref,"Common\\Draw Cross"), &m_Flags, flDrawCross);
+ PHelper().CreateFlag32(items, PrepareKey(pref,g_pStringTable->translate("ed_st_test_vis").c_str()), &m_Flags, flTestVisibility);
+ PHelper().CreateFlag32(items, PrepareKey(pref,g_pStringTable->translate("ed_st_draw_cross").c_str()), &m_Flags, flDrawCross);
inherited::FillProp(pref, items);
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/Glow/ESceneGlowToolsIO.cpp b/src/Editors/LevelEditor/Editor/Tools/Glow/ESceneGlowToolsIO.cpp
index cac65215c1..c713ef0c79 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Glow/ESceneGlowToolsIO.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Glow/ESceneGlowToolsIO.cpp
@@ -15,7 +15,7 @@ bool ESceneGlowTool::LoadLTX(CInifile& ini)
if( version!=GLOW_TOOLS_VERSION )
{
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
@@ -41,7 +41,7 @@ bool ESceneGlowTool::LoadStream(IReader& F)
u16 version = 0;
if(F.r_chunk(CHUNK_VERSION,&version))
if( version!=GLOW_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
@@ -71,7 +71,7 @@ bool ESceneGlowTool::LoadSelection(IReader& F)
u16 version = 0;
R_ASSERT(F.r_chunk(CHUNK_VERSION,&version));
if( version!=GLOW_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/Glow/ESceneGroupToolsIO.cpp b/src/Editors/LevelEditor/Editor/Tools/Glow/ESceneGroupToolsIO.cpp
index 43e671ba64..78780cc117 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Glow/ESceneGroupToolsIO.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Glow/ESceneGroupToolsIO.cpp
@@ -14,7 +14,7 @@ bool ESceneGroupTool::LoadStream(IReader& F)
if(F.r_chunk(CHUNK_VERSION,&version))
if( version!=GROUP_TOOLS_VERSION )
{
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
@@ -30,7 +30,7 @@ bool ESceneGroupTool::LoadLTX(CInifile& ini)
if( version!=GROUP_TOOLS_VERSION )
{
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
if (!inherited::LoadLTX(ini)) return false;
@@ -60,7 +60,7 @@ bool ESceneGroupTool::LoadSelection(IReader& F)
R_ASSERT(F.r_chunk(CHUNK_VERSION,&version));
if( version!=GROUP_TOOLS_VERSION )
{
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/Group/ESceneGroupTools.cpp b/src/Editors/LevelEditor/Editor/Tools/Group/ESceneGroupTools.cpp
index be28c32767..d47890fee2 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Group/ESceneGroupTools.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Group/ESceneGroupTools.cpp
@@ -37,14 +37,14 @@ void ESceneGroupTool::UngroupObjects(bool bUndo)
xr_delete (obj);
bModif = true;
}else
- ELog.DlgMsg (mtError,"Can't ungroup object: '%s'.",obj->GetName());
+ ELog.DlgMsg (mtError,g_pStringTable->translate("ed_st_cant_ungroup").c_str(), obj->GetName());
}
}
if (bUndo&&bModif)
Scene->UndoSave();
}
if (0==sel_cnt)
- ELog.Msg (mtError,"Nothing selected.");
+ ELog.Msg (mtError,g_pStringTable->translate("ed_st_nothing_selected").c_str());
}
@@ -70,11 +70,11 @@ void ESceneGroupTool::GroupObjects(bool bUndo)
if (group->ObjectInGroupCount())
{
- ELog.DlgMsg(mtInformation,"Group '%s' successfully created.\nContain %d object(s)",group->GetName(),group->ObjectInGroupCount());
+ ELog.DlgMsg(mtInformation,g_pStringTable->translate("ed_st_group_created").c_str(), group->GetName(), group->ObjectInGroupCount());
Scene->AppendObject(group, bUndo);
}else
{
- ELog.DlgMsg (mtError,"Group can't be created.");
+ ELog.DlgMsg (mtError,g_pStringTable->translate("ed_st_cant_create_group").c_str());
xr_delete (group);
}
}
@@ -133,7 +133,7 @@ void ESceneGroupTool::OnDrawUI()
if (m_ChooseIt == m_Objects.end())
{
if (0 == m_ChooseCnt)
- ELog.Msg(mtError, "Nothing selected.");
+ ELog.Msg(mtError, g_pStringTable->translate("ed_st_nothing_selected").c_str());
else
Scene->UndoSave();
EDevice->seqDrawUI.Remove(this);
@@ -180,7 +180,7 @@ void ESceneGroupTool::ReloadRefsSelectedObject()
bModif = true;
}else
{
- ELog.Msg (mtError,"Can't reload group: '%s'.",obj->GetName());
+ ELog.Msg (mtError,g_pStringTable->translate("ed_st_cant_reload_group").c_str(), obj->GetName());
}
}
}
@@ -191,7 +191,7 @@ void ESceneGroupTool::ReloadRefsSelectedObject()
Scene->LoadToolLTX (OBJCLASS_PORTAL, temp_file_name_portal);
}
if (0==sel_cnt)
- ELog.Msg (mtError,"Nothing selected.");
+ ELog.Msg (mtError,g_pStringTable->translate("ed_st_nothing_selected").c_str());
}
@@ -200,12 +200,12 @@ void ESceneGroupTool::SaveSelectedObject()
u32 scnt = SelectionCount(true);
if(scnt==0)
{
- ELog.DlgMsg(mtError,"No object(s) selected.");
+ ELog.DlgMsg(mtError,g_pStringTable->translate("ed_st_no_obj_selected").c_str());
return;
}else
if(scnt>1)
{
- if(mrYes != ELog.DlgMsg(mtConfirmation, mbYes | mbNo, "Process multiple objects?") )
+ if(mrYes != ELog.DlgMsg(mtConfirmation, mbYes | mbNo, g_pStringTable->translate("ed_st_process_multiple").c_str()) )
return;
}
@@ -237,7 +237,7 @@ void ESceneGroupTool::SaveSelectedObject()
obj->SaveStream (*W);
FS.w_close (W);
}else
- ELog.DlgMsg (mtError, "Cant write file [%s]", fn.c_str());
+ ELog.DlgMsg (mtError, g_pStringTable->translate("ed_st_cant_write").c_str(), fn.c_str());
}
}
}
@@ -300,13 +300,13 @@ void ESceneGroupTool::MakeThumbnail()
tex.Save (FS.get_file_age(fn));
}else
{
- ELog.DlgMsg (mtError,"Can't make screenshot.");
+ ELog.DlgMsg (mtError,g_pStringTable->translate("ed_st_cant_make_screenshot").c_str());
}
object->Select (true);
// restore render params
psDeviceFlags = old_flag;
}else
{
- ELog.DlgMsg (mtError,"Select 1 GroupObject.");
+ ELog.DlgMsg (mtError,g_pStringTable->translate("ed_st_sel_one_group_obj").c_str());
}
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/Light/ESceneLightTools.cpp b/src/Editors/LevelEditor/Editor/Tools/Light/ESceneLightTools.cpp
index 50ce31726f..5575e66e3a 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Light/ESceneLightTools.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Light/ESceneLightTools.cpp
@@ -164,7 +164,6 @@ void ESceneLightTool::OnControlAppendClick(ButtonValue* sender, bool& bDataModif
void ESceneLightTool::OnControlRenameRemoveClick(ButtonValue* V, bool& bDataModified, bool& bSafe)
{
- R_ASSERT(!"�������� �� �����������");
/* xr_string item_name = V->Owner()->Item()->Text;
switch (V->btn_num){
case 0:{
@@ -192,21 +191,21 @@ void ESceneLightTool::FillProp(LPCSTR pref, PropItemVec& items)
//. PHelper().CreateRToken32(items, PrepareKey(pref,"Common\\Hemisphere\\Light Control"), &m_HemiControl, &*lcontrols.begin(), lcontrols.size());
// sun
- PHelper().CreateFlag32 (items, PrepareKey(pref,"Common\\Sun Shadow\\Visible"), &m_Flags, flShowSun);
- PHelper().CreateAngle (items, PrepareKey(pref,"Common\\Sun Shadow\\Altitude"), &m_SunShadowDir.x, -PI_DIV_2,0);
- PHelper().CreateAngle (items, PrepareKey(pref,"Common\\Sun Shadow\\Longitude"), &m_SunShadowDir.y, 0,PI_MUL_2);
+ PHelper().CreateFlag32 (items, PrepareKey(pref,g_pStringTable->translate("ed_st_sun_shadow_visible").c_str()), &m_Flags, flShowSun);
+ PHelper().CreateAngle (items, PrepareKey(pref,g_pStringTable->translate("ed_st_sun_shadow_altitude").c_str()), &m_SunShadowDir.x, -PI_DIV_2,0);
+ PHelper().CreateAngle (items, PrepareKey(pref,g_pStringTable->translate("ed_st_sun_shadow_longitude").c_str()), &m_SunShadowDir.y, 0,PI_MUL_2);
// light controls
- PHelper().CreateFlag32 (items, PrepareKey(pref,"Common\\Controls\\Draw Name"), &m_Flags, flShowControlName);
- PHelper().CreateCaption (items,PrepareKey(pref,"Common\\Controls\\Count"), shared_str().printf("%d",lcontrols.size()));
+ PHelper().CreateFlag32 (items, PrepareKey(pref,g_pStringTable->translate("ed_st_sun_draw_name").c_str()), &m_Flags, flShowControlName);
+ PHelper().CreateCaption (items,PrepareKey(pref,g_pStringTable->translate("ed_st_sun_count").c_str()), shared_str().printf("%d",lcontrols.size()));
// B=PHelper().CreateButton(items,PHelper().PrepareKey(pref,"Common\\Controls\\Edit"), "Append", ButtonValue::flFirstOnly);
// B->OnBtnClickEvent = OnControlAppendClick;
RTokenVecIt _I = lcontrols.begin();
RTokenVecIt _E = lcontrols.end();
for (;_I!=_E; _I++){
if (_I->equal(LCONTROL_HEMI)||_I->equal(LCONTROL_STATIC)||_I->equal(LCONTROL_SUN)){
- PHelper().CreateCaption(items, PrepareKey(pref,"Common\\Controls\\System",*_I->name),"");
+ PHelper().CreateCaption(items, PrepareKey(pref,g_pStringTable->translate("ed_st_system").c_str(), *_I->name), "");
}else{
- B=PHelper().CreateButton(items, PrepareKey(pref,"Common\\Controls\\User",*_I->name),"Rename,Remove",ButtonValue::flFirstOnly);
+ B=PHelper().CreateButton(items, PrepareKey(pref,g_pStringTable->translate("ed_st_user").c_str(), *_I->name), g_pStringTable->translate("ed_st_rename_remove").c_str(), ButtonValue::flFirstOnly);
B->OnBtnClickEvent.bind (this,&ESceneLightTool::OnControlRenameRemoveClick);
}
}
@@ -263,7 +262,7 @@ bool ESceneLightTool::Validate(bool full_test)
CLight* L = dynamic_cast(*it);
if (!L->GetLControlName()){
bRes=false;
- ELog.Msg(mtError,"%s: '%s' - Invalid light control.",ClassDesc(),L->GetName());
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_invalid_light_ctrl").c_str(), ClassDesc(), L->GetName());
}
}
return bRes;
@@ -300,10 +299,10 @@ void ESceneLightTool::OnDrawUI()
if (ok)
{
if (FindLightControl(result.c_str())) {
- ELog.DlgMsg(mtError, "Duplicate name found.");
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_duplicate_name").c_str());
}
else if (result.empty() || result.find("\\")!=result.npos) {
- ELog.DlgMsg(mtError, "Invalid control name.");
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_invalid_ctrl_name").c_str());
}
else {
RTokenVecIt it = FindLightControlIt(result.c_str());
diff --git a/src/Editors/LevelEditor/Editor/Tools/Light/ESceneLightTools.h b/src/Editors/LevelEditor/Editor/Tools/Light/ESceneLightTools.h
index 5125cf789c..d5628ade12 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Light/ESceneLightTools.h
+++ b/src/Editors/LevelEditor/Editor/Tools/Light/ESceneLightTools.h
@@ -48,7 +48,7 @@ class ESceneLightTool: public ESceneCustomOTool
// definition
IC LPCSTR ClassName (){return "light";}
- IC LPCSTR ClassDesc (){return "Light";}
+ IC LPCSTR ClassDesc (){return g_pStringTable->translate("ed_st_light").c_str();}
IC int RenderPriority (){return 10;}
// IO
diff --git a/src/Editors/LevelEditor/Editor/Tools/Light/ESceneLightToolsIO.cpp b/src/Editors/LevelEditor/Editor/Tools/Light/ESceneLightToolsIO.cpp
index 49bba13d78..eab007e988 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Light/ESceneLightToolsIO.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Light/ESceneLightToolsIO.cpp
@@ -18,8 +18,8 @@ bool ESceneLightTool::LoadLTX(CInifile& ini)
u32 version = ini.r_u32("main", "version");
if( version!=LIGHT_TOOLS_VERSION )
{
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
- return false;
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
+ return false;
}
inherited::LoadLTX(ini);
@@ -65,7 +65,7 @@ bool ESceneLightTool::LoadStream(IReader& F)
u16 version = 0;
if(F.r_chunk(CHUNK_VERSION,&version))
if( version!=LIGHT_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
@@ -132,7 +132,7 @@ bool ESceneLightTool::LoadSelection(IReader& F)
u16 version = 0;
R_ASSERT(F.r_chunk(CHUNK_VERSION,&version));
if( version!=LIGHT_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/Particles/EScenePSControls.cpp b/src/Editors/LevelEditor/Editor/Tools/Particles/EScenePSControls.cpp
index bfa9412178..ccc1428636 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Particles/EScenePSControls.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Particles/EScenePSControls.cpp
@@ -9,11 +9,11 @@ bool TUI_ControlPSAdd::AfterAppendCallback(TShiftState Shift, CCustomObject* ob
EParticlesObject* pg= dynamic_cast(obj); R_ASSERT(pg);
LPCSTR ref_name = ((UIParticlesTool*)parent_tool->pForm)->Current();
if (!ref_name){
- ELog.DlgMsg(mtInformation,"Nothing selected.");
+ ELog.DlgMsg(mtInformation,g_pStringTable->translate("ed_st_nothing_selected").c_str());
return false;
}
if (!pg->Compile(ref_name)){
- ELog.DlgMsg(mtInformation,"Can't compile particle system '%s'.",ref_name);
+ ELog.DlgMsg(mtInformation,g_pStringTable->translate("ed_st_cant_compile_ps").c_str(), ref_name);
return false;
}
return true;
diff --git a/src/Editors/LevelEditor/Editor/Tools/Particles/EScenePSToolsIO.cpp b/src/Editors/LevelEditor/Editor/Tools/Particles/EScenePSToolsIO.cpp
index 100ad26dcc..042c6e4170 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Particles/EScenePSToolsIO.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Particles/EScenePSToolsIO.cpp
@@ -13,8 +13,8 @@ bool EScenePSTool::LoadLTX(CInifile& ini)
u32 version = ini.r_u32("main","version");
if( version!=PS_TOOLS_VERSION )
{
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
- return false;
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
+ return false;
}
inherited::LoadLTX(ini);
@@ -31,7 +31,7 @@ bool EScenePSTool::LoadStream(IReader& F)
u16 version = 0;
if(F.r_chunk(CHUNK_VERSION,&version))
if( version!=PS_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
@@ -54,7 +54,7 @@ bool EScenePSTool::LoadSelection(IReader& F)
u16 version = 0;
R_ASSERT(F.r_chunk(CHUNK_VERSION,&version));
if( version!=PS_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/Portal/EScenePortalTools.cpp b/src/Editors/LevelEditor/Editor/Tools/Portal/EScenePortalTools.cpp
index 1d385b4c75..7926b1f5dd 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Portal/EScenePortalTools.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Portal/EScenePortalTools.cpp
@@ -19,7 +19,7 @@ void EScenePortalTool::RemoveControls()
void EScenePortalTool::FillProp(LPCSTR pref, PropItemVec& items)
{
- PHelper().CreateFlag32(items, PrepareKey(pref,"Common\\Draw Simple Model"),&m_Flags, flDrawSimpleModel);
+ PHelper().CreateFlag32(items, PrepareKey(pref,g_pStringTable->translate("ed_st_draw_simple_model").c_str()),&m_Flags, flDrawSimpleModel);
inherited::FillProp (pref, items);
}
@@ -129,7 +129,7 @@ void EScenePortalTool::RemoveSimilar()
{
xr_delete(*p_del);
}
- ELog.DlgMsg(mtInformation,"Removed '%d' portal(s).",p_lst_del.size());
+ ELog.DlgMsg(mtInformation,g_pStringTable->translate("ed_st_removed_portals_count").c_str(), p_lst_del.size());
p_lst_del.clear();
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/Portal/EScenePortalToolsIO.cpp b/src/Editors/LevelEditor/Editor/Tools/Portal/EScenePortalToolsIO.cpp
index 236eef3407..eb408ab896 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Portal/EScenePortalToolsIO.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Portal/EScenePortalToolsIO.cpp
@@ -13,8 +13,8 @@ bool EScenePortalTool::LoadLTX(CInifile& ini)
u32 version = ini.r_u32("main","version");
if( version!=PORTAL_TOOLS_VERSION )
{
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
- return false;
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
+ return false;
}
inherited::LoadLTX(ini);
@@ -35,7 +35,7 @@ bool EScenePortalTool::LoadStream(IReader& F)
u16 version = 0;
if(F.r_chunk(CHUNK_VERSION,&version))
if( version!=PORTAL_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
@@ -65,7 +65,7 @@ bool EScenePortalTool::LoadSelection(IReader& F)
u16 version = 0;
R_ASSERT(F.r_chunk(CHUNK_VERSION,&version));
if( version!=PORTAL_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/Sector/ESceneSectorTools.cpp b/src/Editors/LevelEditor/Editor/Tools/Sector/ESceneSectorTools.cpp
index 480b469ebf..f8a97680b5 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Sector/ESceneSectorTools.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Sector/ESceneSectorTools.cpp
@@ -85,7 +85,7 @@ void ESceneSectorTool::OnBeforeObjectChange(CCustomObject* O)
void ESceneSectorTool::FillProp(LPCSTR pref, PropItemVec& items)
{
- PHelper().CreateFlag32(items, PrepareKey(pref,"Common\\Draw Solid"),&m_Flags, flDrawSolid);
+ PHelper().CreateFlag32(items, PrepareKey(pref,g_pStringTable->translate("ed_st_draw_solid").c_str()),&m_Flags, flDrawSolid);
inherited::FillProp (pref, items);
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/Sector/ESceneSectorToolsIO.cpp b/src/Editors/LevelEditor/Editor/Tools/Sector/ESceneSectorToolsIO.cpp
index 07afa3be11..1b1128f0db 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Sector/ESceneSectorToolsIO.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Sector/ESceneSectorToolsIO.cpp
@@ -13,8 +13,8 @@ bool ESceneSectorTool::LoadLTX(CInifile& ini)
u32 version = ini.r_u32("main","version");
if( version!=SECTOR_TOOLS_VERSION )
{
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
- return false;
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
+ return false;
}
inherited::LoadLTX(ini);
@@ -37,7 +37,7 @@ bool ESceneSectorTool::LoadStream(IReader& F)
u16 version = 0;
if(F.r_chunk(CHUNK_VERSION,&version))
if( version!=SECTOR_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
@@ -67,7 +67,7 @@ bool ESceneSectorTool::LoadSelection(IReader& F)
u16 version = 0;
R_ASSERT(F.r_chunk(CHUNK_VERSION,&version));
if( version!=SECTOR_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/Shape/ESceneShapeControls.cpp b/src/Editors/LevelEditor/Editor/Tools/Shape/ESceneShapeControls.cpp
index 82ead7cf03..79d0356329 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Shape/ESceneShapeControls.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Shape/ESceneShapeControls.cpp
@@ -32,7 +32,7 @@ bool TUI_ControlShapeAdd::Start(TShiftState Shift)
if (from){
ObjectList lst;
int cnt = Scene->GetQueryObjects(lst,OBJCLASS_SHAPE,1,1,0);
- if (1!=cnt) ELog.DlgMsg(mtError,"Select one shape.");
+ if (1!=cnt) ELog.DlgMsg(mtError,g_pStringTable->translate("ed_st_select_one_shape").c_str());
else{
CEditShape* base = dynamic_cast(lst.back()); R_ASSERT(base);
if (base!=from){
diff --git a/src/Editors/LevelEditor/Editor/Tools/Shape/ESceneShapeToolsIO.cpp b/src/Editors/LevelEditor/Editor/Tools/Shape/ESceneShapeToolsIO.cpp
index 9eefa28ccf..aee017fe78 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Shape/ESceneShapeToolsIO.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Shape/ESceneShapeToolsIO.cpp
@@ -12,8 +12,8 @@ bool ESceneShapeTool::LoadLTX(CInifile& ini)
u32 version = ini.r_u32("main","version");
if( version!=SHAPE_TOOLS_VERSION )
{
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
- return false;
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
+ return false;
}
inherited::LoadLTX(ini);
@@ -31,7 +31,7 @@ bool ESceneShapeTool::LoadStream(IReader& F)
u16 version = 0;
if(F.r_chunk(CHUNK_VERSION,&version))
if( version!=SHAPE_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
@@ -54,7 +54,7 @@ bool ESceneShapeTool::LoadSelection(IReader& F)
u16 version = 0;
R_ASSERT(F.r_chunk(CHUNK_VERSION,&version));
if( version!=SHAPE_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/Sound/ESceneSoundEnvToolsIO.cpp b/src/Editors/LevelEditor/Editor/Tools/Sound/ESceneSoundEnvToolsIO.cpp
index 3363cddd04..c61e20622f 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Sound/ESceneSoundEnvToolsIO.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Sound/ESceneSoundEnvToolsIO.cpp
@@ -13,8 +13,8 @@ bool ESceneSoundEnvTool::LoadLTX(CInifile& ini)
u32 version = ini.r_u32("main","version");
if( version!=SOUND_ENV_TOOLS_VERSION )
{
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
- return false;
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
+ return false;
}
inherited::LoadLTX(ini);
@@ -32,7 +32,7 @@ bool ESceneSoundEnvTool::LoadStream(IReader& F)
u16 version = 0;
if(F.r_chunk(CHUNK_VERSION,&version))
if( version!=SOUND_ENV_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
@@ -55,7 +55,7 @@ bool ESceneSoundEnvTool::LoadSelection(IReader& F)
u16 version = 0;
R_ASSERT(F.r_chunk(CHUNK_VERSION,&version));
if( version!=SOUND_ENV_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/Sound/ESceneSoundSrcToolsIO.cpp b/src/Editors/LevelEditor/Editor/Tools/Sound/ESceneSoundSrcToolsIO.cpp
index df9cb2ee35..5ebeeb3e88 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Sound/ESceneSoundSrcToolsIO.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Sound/ESceneSoundSrcToolsIO.cpp
@@ -12,8 +12,8 @@ bool ESceneSoundSrcTool::LoadLTX(CInifile& ini)
u32 version = ini.r_u32("main","version");
if( version!=SOUND_SRC_TOOLS_VERSION )
{
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
- return false;
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
+ return false;
}
inherited::LoadLTX(ini);
@@ -31,7 +31,7 @@ bool ESceneSoundSrcTool::LoadStream(IReader& F)
u16 version = 0;
if(F.r_chunk(CHUNK_VERSION,&version))
if( version!=SOUND_SRC_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
@@ -54,7 +54,7 @@ bool ESceneSoundSrcTool::LoadSelection(IReader& F)
u16 version = 0;
R_ASSERT(F.r_chunk(CHUNK_VERSION,&version));
if( version!=SOUND_SRC_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/Spawn/ESceneSpawnControls.cpp b/src/Editors/LevelEditor/Editor/Tools/Spawn/ESceneSpawnControls.cpp
index fee39cc71b..af17e1f70a 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Spawn/ESceneSpawnControls.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Spawn/ESceneSpawnControls.cpp
@@ -9,7 +9,7 @@ bool TUI_ControlSpawnAdd::AppendCallback(SBeforeAppendCallbackParams* p)
{
LPCSTR ref_name = ((UISpawnTool*)parent_tool->pForm)->Current();
if (!ref_name){
- ELog.DlgMsg(mtInformation,"Nothing selected.");
+ ELog.DlgMsg(mtInformation,"ed_st_nothing_selected");
return false;
}
if(Scene->LevelPrefix().c_str())
@@ -30,7 +30,7 @@ bool TUI_ControlSpawnAdd::Start(TShiftState Shift)
if (from&&from->FClassID!=OBJCLASS_SPAWNPOINT){
ObjectList lst;
int cnt = Scene->GetQueryObjects(lst,OBJCLASS_SPAWNPOINT,1,1,0);
- if (1!=cnt) ELog.DlgMsg(mtError,"Select one shape.");
+ if (1!=cnt) ELog.DlgMsg(mtError,g_pStringTable->translate("ed_st_select_one_shape").c_str());
else{
CSpawnPoint* base = dynamic_cast(lst.back()); R_ASSERT(base);
if (base->AttachObject(from)){
@@ -39,11 +39,11 @@ bool TUI_ControlSpawnAdd::Start(TShiftState Shift)
ResetActionToSelect ();
}
}else{
- ELog.DlgMsg(mtError,"Attach impossible.");
+ ELog.DlgMsg(mtError,g_pStringTable->translate("ed_st_cant_attach_shape").c_str());
}
}
}else{
- ELog.DlgMsg(mtError,"Attach impossible.");
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_cant_attach_shape").c_str());
}
}else{
DefaultAddObject(Shift, TBeforeAppendCallback(this,& TUI_ControlSpawnAdd::AppendCallback));
diff --git a/src/Editors/LevelEditor/Editor/Tools/Spawn/ESceneSpawnTools.cpp b/src/Editors/LevelEditor/Editor/Tools/Spawn/ESceneSpawnTools.cpp
index 28720df20b..14f720744c 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Spawn/ESceneSpawnTools.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Spawn/ESceneSpawnTools.cpp
@@ -39,7 +39,7 @@ CEditableObject* ESceneSpawnTool::get_draw_visual(u8 _RP_TeamID, u8 _RP_Type, co
if(_GameType.MatchType(eGameIDCaptureTheArtefact))
{
if(_RP_TeamID==0)
- Msg("! incorrect ActorRP teamID [%d] for CTA",_RP_TeamID);
+ Msg(g_pStringTable->translate("ed_st_cta_invalid_actorrp").c_str(), _RP_TeamID);
else
if(_RP_TeamID==1)
ret = m_draw_RP_visuals[4];
@@ -70,7 +70,7 @@ CEditableObject* ESceneSpawnTool::get_draw_visual(u8 _RP_TeamID, u8 _RP_Type, co
if(_RP_TeamID==2)
ret = m_draw_RP_visuals[1];
else
- Msg("! incorrect AF teamID [%d] for CTA",_RP_TeamID);
+ Msg(g_pStringTable->translate("ed_st_cta_invalid_af").c_str(),_RP_TeamID);
}else
if(_GameType.MatchType(eGameIDArtefactHunt))
{
diff --git a/src/Editors/LevelEditor/Editor/Tools/Spawn/ESceneSpawnTools.h b/src/Editors/LevelEditor/Editor/Tools/Spawn/ESceneSpawnTools.h
index ea30b9d77e..2ae652c3ff 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Spawn/ESceneSpawnTools.h
+++ b/src/Editors/LevelEditor/Editor/Tools/Spawn/ESceneSpawnTools.h
@@ -41,7 +41,7 @@ class ESceneSpawnTool: public ESceneCustomOTool
// definition
IC LPCSTR ClassName (){return "spawn";}
- IC LPCSTR ClassDesc (){return "Spawn Element";}
+ IC LPCSTR ClassDesc (){return g_pStringTable->translate("ed_st_spawn_elements").c_str();}
IC int RenderPriority (){return 1;}
void FillProp (LPCSTR pref, PropItemVec& items);
diff --git a/src/Editors/LevelEditor/Editor/Tools/Spawn/ESceneSpawnToolsIO.cpp b/src/Editors/LevelEditor/Editor/Tools/Spawn/ESceneSpawnToolsIO.cpp
index b6f37f579f..ab9dd864df 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Spawn/ESceneSpawnToolsIO.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Spawn/ESceneSpawnToolsIO.cpp
@@ -14,7 +14,7 @@ bool ESceneSpawnTool::LoadLTX(CInifile& ini)
u32 version = ini.r_u32("main","version");
if( version!=SPAWN_TOOLS_VERSION )
{
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
@@ -39,7 +39,7 @@ bool ESceneSpawnTool::LoadStream(IReader& F)
u16 version = 0;
if(F.r_chunk(CHUNK_VERSION,&version))
if( version!=SPAWN_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
@@ -69,7 +69,7 @@ bool ESceneSpawnTool::LoadSelection(IReader& F)
u16 version = 0;
R_ASSERT(F.r_chunk(CHUNK_VERSION,&version));
if( version!=SPAWN_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/StaticObject/ESceneObjectControls.cpp b/src/Editors/LevelEditor/Editor/Tools/StaticObject/ESceneObjectControls.cpp
index 92a6311180..fd0c889a71 100644
--- a/src/Editors/LevelEditor/Editor/Tools/StaticObject/ESceneObjectControls.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/StaticObject/ESceneObjectControls.cpp
@@ -18,7 +18,7 @@ bool TUI_ControlObjectAdd::Start(TShiftState Shift)
}else{
N = ((UIObjectTool*)parent_tool->pForm)->Current();
if(!N){
- ELog.DlgMsg(mtInformation,"Nothing selected.");
+ ELog.DlgMsg(mtInformation,g_pStringTable->translate("ed_st_nothing_selected").c_str());
return false;
}
}
@@ -28,7 +28,7 @@ bool TUI_ControlObjectAdd::Start(TShiftState Shift)
CSceneObject *obj = new CSceneObject((LPVOID)0,namebuffer);
CEditableObject* ref = obj->SetReference(N);
if (!ref){
- ELog.DlgMsg(mtError,"TUI_ControlObjectAdd:: Can't load reference object.");
+ ELog.DlgMsg(mtError,g_pStringTable->translate("ed_st_cant_load_reference").c_str());
xr_delete(obj);
return false;
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/StaticObject/ESceneObjectTools.cpp b/src/Editors/LevelEditor/Editor/Tools/StaticObject/ESceneObjectTools.cpp
index d7699e48dd..172f154f3c 100644
--- a/src/Editors/LevelEditor/Editor/Tools/StaticObject/ESceneObjectTools.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/StaticObject/ESceneObjectTools.cpp
@@ -38,7 +38,7 @@ bool ESceneObjectTool::Validate(bool full_test)
if (A->RefCompare(B->GetReference())){
if (A->GetPosition().similar(B->GetPosition(),EPS_L)){
bRes = false;
- ELog.Msg(mtError,"Duplicate object position '%s'-'%s' with reference '%s'.",A->GetName(),B->GetName(),A->RefName());
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_duplicate_obj_pos").c_str(), A->GetName(), B->GetName(), A->RefName());
}
}
}
@@ -52,12 +52,12 @@ bool ESceneObjectTool::Validate(bool full_test)
//. FS.update_path (fn,_textures_,EFS.ChangeFileExt(l_name,".tga").c_str());
FS.update_path (fn,_game_textures_,EFS.ChangeFileExt(l_name,".dds").c_str());
age = FS.get_file_age(fn);
- if(age==-1) Msg("!There is no texture '%s'", fn);
+ if(age==-1) Msg(g_pStringTable->translate("ed_st_no_texture").c_str(), fn);
l_name += "_nm";
//. FS.update_path (fn,_textures_,EFS.ChangeFileExt(l_name,".tga").c_str());
FS.update_path (fn,_game_textures_,EFS.ChangeFileExt(l_name,".dds").c_str());
age_nm = FS.get_file_age(fn);
- if(age_nm==-1) Msg("!There is no texture '%s'", fn);
+ if(age_nm==-1) Msg(g_pStringTable->translate("ed_st_no_texture").c_str(), fn);
if(age_nm==-1 || age==-1)
bRes = false;
@@ -90,27 +90,27 @@ void ESceneObjectTool::FillAppendRandomPropertiesBegin(bool bUpdateOnly)
PropValue* V;
PropItemVec items;
- V=PHelper().CreateFlag32 (items,"Scale", &m_Flags, flAppendRandomScale);
+ V=PHelper().CreateFlag32 (items,g_pStringTable->translate("ed_st_scale").c_str(), &m_Flags, flAppendRandomScale);
V->OnChangeEvent.bind (this,&ESceneObjectTool::OnChangeAppendRandomFlags);
if (m_Flags.is(flAppendRandomScale)){
- V=PHelper().CreateFlag32 (items,"Scale\\Proportional",&m_Flags, flAppendRandomScaleProportional);
+ V=PHelper().CreateFlag32 (items,g_pStringTable->translate("ed_st_scale_proportional").c_str(), &m_Flags, flAppendRandomScaleProportional);
V->OnChangeEvent.bind (this,&ESceneObjectTool::OnChangeAppendRandomFlags);
if (m_Flags.is(flAppendRandomScaleProportional)){
- PHelper().CreateFloat (items,"Scale\\Minimum", &m_AppendRandomMinScale.x,0.001f,1000.f,0.001f,3);
- PHelper().CreateFloat (items,"Scale\\Maximum", &m_AppendRandomMaxScale.x,0.001f,1000.f,0.001f,3);
+ PHelper().CreateFloat (items,g_pStringTable->translate("ed_st_scale_minimum").c_str(), &m_AppendRandomMinScale.x, 0.001f, 1000.f, 0.001f, 3);
+ PHelper().CreateFloat (items,g_pStringTable->translate("ed_st_scale_maximum").c_str(), &m_AppendRandomMaxScale.x, 0.001f, 1000.f, 0.001f, 3);
}else{
- PHelper().CreateVector (items,"Scale\\Minimum", &m_AppendRandomMinScale,0.001f,1000.f,0.001f,3);
- PHelper().CreateVector (items,"Scale\\Maximum", &m_AppendRandomMaxScale,0.001f,1000.f,0.001f,3);
+ PHelper().CreateVector (items, g_pStringTable->translate("ed_st_scale_minimum").c_str(), &m_AppendRandomMinScale,0.001f,1000.f,0.001f,3);
+ PHelper().CreateVector (items, g_pStringTable->translate("ed_st_scale_maximum").c_str(), &m_AppendRandomMaxScale,0.001f,1000.f,0.001f,3);
}
}
- V=PHelper().CreateFlag32 (items,"Rotate", &m_Flags, flAppendRandomRotation);
+ V=PHelper().CreateFlag32 (items,g_pStringTable->translate("ed_st_rotate").c_str(), &m_Flags, flAppendRandomRotation);
V->OnChangeEvent.bind (this,&ESceneObjectTool::OnChangeAppendRandomFlags);
if (m_Flags.is(flAppendRandomRotation)){
- PHelper().CreateAngle3 (items,"Rotate\\Minimum", &m_AppendRandomMinRotation);
- PHelper().CreateAngle3 (items,"Rotate\\Maximum", &m_AppendRandomMaxRotation);
+ PHelper().CreateAngle3 (items,g_pStringTable->translate("ed_st_rotate_minimum").c_str(), &m_AppendRandomMinRotation);
+ PHelper().CreateAngle3 (items,g_pStringTable->translate("ed_st_rotate_maximum").c_str(), &m_AppendRandomMaxRotation);
}
- V=PHelper().CreateChoose (items,"Objects",&m_AppendRandomObjectsStr,smObject,0,0,32);
+ V=PHelper().CreateChoose (items,g_pStringTable->translate("ed_st_objects").c_str(), &m_AppendRandomObjectsStr, smObject, 0, 0, 32);
V->OnChangeEvent.bind (this,&ESceneObjectTool::OnChangeAppendRandomFlags);
if (bUpdateOnly)
UIPropertiesModal::GetProperties()->AssignItems(items);
diff --git a/src/Editors/LevelEditor/Editor/Tools/StaticObject/ESceneObjectToolsExportBreakable.cpp b/src/Editors/LevelEditor/Editor/Tools/StaticObject/ESceneObjectToolsExportBreakable.cpp
index dbf429a199..f52ddee400 100644
--- a/src/Editors/LevelEditor/Editor/Tools/StaticObject/ESceneObjectToolsExportBreakable.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/StaticObject/ESceneObjectToolsExportBreakable.cpp
@@ -15,13 +15,13 @@ IC bool build_mesh(const Fmatrix& parent, CEditableMesh* mesh, CGeomPartExtracto
CSurface* surf = sp_it->first;
int gm_id = surf->_GameMtl();
if (gm_id==GAMEMTL_NONE_ID){
- ELog.DlgMsg (mtError,"Object '%s', surface '%s' contain invalid game material.",mesh->Parent()->m_LibName.c_str(),surf->_Name());
+ ELog.DlgMsg (mtError,g_pStringTable->translate("ed_st_obj_invalid_mat").c_str(), mesh->Parent()->m_LibName.c_str(), surf->_Name());
bResult = FALSE;
break;
}
SGameMtl* M = GameMaterialLibraryEditors->GetMaterialByID(gm_id);
if (0==M){
- ELog.DlgMsg (mtError,"Object '%s', surface '%s' contain undefined game material.",mesh->Parent()->m_LibName.c_str(),surf->_Name());
+ ELog.DlgMsg (mtError,g_pStringTable->translate("ed_st_obj_unknown_mat").c_str(), mesh->Parent()->m_LibName.c_str(), surf->_Name());
bResult = FALSE;
break;
}
@@ -31,12 +31,12 @@ IC bool build_mesh(const Fmatrix& parent, CEditableMesh* mesh, CGeomPartExtracto
if (!ignore_shader){
IBlender* B = EDevice->Resources->_FindBlender(surf->_ShaderName());
if (FALSE==B){
- ELog.Msg (mtError,"Can't find engine shader '%s'. Object '%s', surface '%s'. Export interrupted.",surf->_ShaderName(),mesh->Parent()->m_LibName.c_str(),surf->_Name());
+ ELog.Msg (mtError,g_pStringTable->translate("ed_st_obj_no_shader").c_str(), surf->_ShaderName(), mesh->Parent()->m_LibName.c_str(), surf->_Name());
bResult = FALSE;
break;
}
if (TRUE==B->canBeLMAPped()){
- ELog.Msg (mtError,"Object '%s', surface '%s' contain static engine shader - '%s'. Export interrupted.",mesh->Parent()->m_LibName.c_str(),surf->_Name(),surf->_ShaderName());
+ ELog.Msg (mtError,g_pStringTable->translate("ed_st_obj_wrong_shader").c_str(), mesh->Parent()->m_LibName.c_str(), surf->_Name(), surf->_ShaderName());
bResult = FALSE;
break;
}
@@ -75,10 +75,10 @@ bool ESceneObjectTool::ExportBreakableObjects(SExportStreams* F)
extractor = new CGeomPartExtractor();
extractor->Initialize(bb,EPS_L,2);
- UI->SetStatus ("Export breakable objects...");
+ UI->SetStatus (g_pStringTable->translate("ed_st_export_breakable").c_str());
// collect verts&&faces
{
- SPBItem* pb = UI->ProgressStart(m_Objects.size(),"Prepare geometry...");
+ SPBItem* pb = UI->ProgressStart(m_Objects.size(),g_pStringTable->translate("ed_st_prepare_geom").c_str());
for (ObjectIt it=m_Objects.begin(); it!=m_Objects.end(); it++){
pb->Inc();
CSceneObject* obj = dynamic_cast(*it); VERIFY(obj);
@@ -95,7 +95,7 @@ bool ESceneObjectTool::ExportBreakableObjects(SExportStreams* F)
// export parts
if (bResult){
SBPartVec& parts = extractor->GetParts();
- SPBItem* pb = UI->ProgressStart(parts.size(),"Export Parts...");
+ SPBItem* pb = UI->ProgressStart(parts.size(),g_pStringTable->translate("ed_st_export_parts").c_str());
for (SBPartVecIt p_it=parts.begin(); p_it!=parts.end(); p_it++){
pb->Inc();
SBPart* P = *p_it;
@@ -107,7 +107,7 @@ bool ESceneObjectTool::ExportBreakableObjects(SExportStreams* F)
xr_string fn = Scene->LevelPath() + sn;
IWriter* W = FS.w_open(fn.c_str()); R_ASSERT(W);
if (!P->Export(*W,1)){
- ELog.DlgMsg (mtError,"Invalid breakable object.");
+ ELog.DlgMsg (mtError,g_pStringTable->translate("ed_st_invalid_breakable").c_str());
bResult = false;
break;
}
@@ -142,7 +142,7 @@ bool ESceneObjectTool::ExportBreakableObjects(SExportStreams* F)
g_SEFactoryManager->destroy_entity (m_Data);
}
}else{
- ELog.Msg(mtError,"Can't export invalid part #%d",p_it-parts.begin());
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_cant_export_invalid_part").c_str(), p_it - parts.begin());
}
}
UI->ProgressEnd(pb);
@@ -185,10 +185,10 @@ bool ESceneObjectTool::ExportClimableObjects(SExportStreams* F)
extractor = new CGeomPartExtractor();
extractor->Initialize (bb,EPS_L,int_max);
- UI->SetStatus ("Export climable objects...");
+ UI->SetStatus (g_pStringTable->translate("ed_st_export_climable_obj").c_str());
// collect verts&&faces
{
- SPBItem* pb = UI->ProgressStart(m_Objects.size(), "Prepare geometry...");
+ SPBItem* pb = UI->ProgressStart(m_Objects.size(), g_pStringTable->translate("ed_st_prepare_geom").c_str());
for (ObjectIt it=m_Objects.begin(); it!=m_Objects.end(); it++)
{
pb->Inc();
@@ -216,7 +216,7 @@ bool ESceneObjectTool::ExportClimableObjects(SExportStreams* F)
if (bResult)
{
SBPartVec& parts = extractor->GetParts();
- SPBItem* pb = UI->ProgressStart(parts.size(),"Export Parts...");
+ SPBItem* pb = UI->ProgressStart(parts.size(),g_pStringTable->translate("ed_st_export_parts").c_str());
for (SBPartVecIt p_it=parts.begin(); p_it!=parts.end(); p_it++)
{
pb->Inc ();
@@ -259,7 +259,7 @@ bool ESceneObjectTool::ExportClimableObjects(SExportStreams* F)
// orientate object
if (!OrientToNorm(local_normal,P->m_OBB.m_rotate,P->m_OBB.m_halfsize))
{
- ELog.Msg(mtError,"Invalid climable object found. [%3.2f, %3.2f, %3.2f]",VPUSH(P->m_RefOffset));
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_invalid_climable").c_str(), VPUSH(P->m_RefOffset));
}
else
{
@@ -287,7 +287,7 @@ bool ESceneObjectTool::ExportClimableObjects(SExportStreams* F)
}
}else
{
- ELog.Msg(mtError,"Can't export invalid part #%d",p_it-parts.begin());
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_cant_export_invalid_part").c_str(), p_it - parts.begin());
}
}
UI->ProgressEnd (pb);
diff --git a/src/Editors/LevelEditor/Editor/Tools/StaticObject/ESceneObjectToolsIO.cpp b/src/Editors/LevelEditor/Editor/Tools/StaticObject/ESceneObjectToolsIO.cpp
index e6d1492d53..cd8ad5bc56 100644
--- a/src/Editors/LevelEditor/Editor/Tools/StaticObject/ESceneObjectToolsIO.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/StaticObject/ESceneObjectToolsIO.cpp
@@ -12,8 +12,8 @@ bool ESceneObjectTool::LoadLTX(CInifile& ini)
u32 version = ini.r_u32("main", "version");
if( version!=OBJECT_TOOLS_VERSION )
{
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
- return false;
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
+ return false;
}
inherited::LoadLTX (ini);
@@ -70,7 +70,7 @@ bool ESceneObjectTool::LoadStream(IReader& F)
u16 version = 0;
if(F.r_chunk(CHUNK_VERSION,&version)){
if( version!=OBJECT_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
}
@@ -129,7 +129,7 @@ bool ESceneObjectTool::LoadSelection(IReader& F)
u16 version = 0;
R_ASSERT(F.r_chunk(CHUNK_VERSION,&version));
if( version!=OBJECT_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/Wallmark/ESceneWallmarkTools.cpp b/src/Editors/LevelEditor/Editor/Tools/Wallmark/ESceneWallmarkTools.cpp
index 37f496df8c..b213593a4f 100644
--- a/src/Editors/LevelEditor/Editor/Tools/Wallmark/ESceneWallmarkTools.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/Wallmark/ESceneWallmarkTools.cpp
@@ -321,7 +321,7 @@ bool ESceneWallmarkTool::LoadStream(IReader& F)
if(version!=0x0003 && version!=WM_VERSION)
{
- ELog.Msg( mtError, "Static Wallmark: Unsupported version.");
+ ELog.Msg( mtError, g_pStringTable->translate("ed_st_wallmark_unsupported_ver").c_str());
return false;
}
@@ -411,7 +411,7 @@ bool ESceneWallmarkTool::LoadStream(IReader& F)
for (WMVecIt w_it=slot->items.begin(); w_it!=slot->items.end(); w_it++){
wallmark*& W = *w_it;
if (W->verts.size()>MAX_WALLMARK_VERTEX_COUNT){
- ELog.Msg (mtError,"ERROR: Invalid wallmark (Contain more than %d vertices). Removed.", MAX_WALLMARK_VERTEX_COUNT);
+ ELog.Msg (mtError,g_pStringTable->translate("ed_st_wallmark_more_than_max_vert").c_str(), MAX_WALLMARK_VERTEX_COUNT);
wm_destroy (W);
W = 0;
}
@@ -657,11 +657,11 @@ BOOL ESceneWallmarkTool::AddWallmark_internal(const Fvector& start, const Fvecto
*/
if (0==sh.size()){
- ELog.DlgMsg (mtError,"Select texture before add wallmark.");
+ ELog.DlgMsg (mtError,g_pStringTable->translate("ed_st_wallmark_no_texture").c_str());
return FALSE;
}
if (0==tx.size()){
- ELog.DlgMsg (mtError,"Select texture before add wallmark.");
+ ELog.DlgMsg (mtError,g_pStringTable->translate("ed_st_wallmark_no_texture").c_str());
return FALSE;
}
// pick contact poly
@@ -669,7 +669,7 @@ BOOL ESceneWallmarkTool::AddWallmark_internal(const Fvector& start, const Fvecto
float dist = UI->ZFar();
ObjectList* snap_list = Scene->GetSnapList(false);
if (!snap_list){
- ELog.DlgMsg (mtError,"Fill and activate snap list.");
+ ELog.DlgMsg (mtError,g_pStringTable->translate("ed_st_activate_snap_list").c_str());
return FALSE;
}
// pick contact poly
@@ -717,7 +717,7 @@ BOOL ESceneWallmarkTool::AddWallmark_internal(const Fvector& start, const Fvecto
// calc sphere
if ((W->verts.size()<3) || (W->verts.size()>MAX_WALLMARK_VERTEX_COUNT)) {
- ELog.DlgMsg (mtError,"Invalid wallmark vertex count. [Min: %d. Max: %d].",3,MAX_WALLMARK_VERTEX_COUNT);
+ ELog.DlgMsg (mtError,g_pStringTable->translate("ed_st_invalid_wm_vert_count").c_str(), 3, MAX_WALLMARK_VERTEX_COUNT);
wm_destroy (W);
return FALSE;
}else{
@@ -790,13 +790,13 @@ BOOL ESceneWallmarkTool::MoveSelectedWallmarkTo(const Fvector& start, const Fvec
void ESceneWallmarkTool::FillPropObjects(LPCSTR pref, PropItemVec& items)
{
- PHelper().CreateFlag32 (items, PrepareKey(pref,"Common\\Draw Wallmarks"), &m_Flags, flDrawWallmark);
- PHelper().CreateFlag32 (items, PrepareKey(pref,"Common\\Alignment"), &m_Flags, flAxisAlign, "By Camera", "By World Axis");
- PHelper().CreateFloat (items, PrepareKey(pref,"Common\\Width"), &m_MarkWidth, 0.01f, 10.f);
- PHelper().CreateFloat (items, PrepareKey(pref,"Common\\Height"), &m_MarkHeight, 0.01f, 10.f);
- PHelper().CreateAngle (items, PrepareKey(pref,"Common\\Rotate"), &m_MarkRotate);
- PHelper().CreateChoose (items, PrepareKey(pref,"Common\\Shader"), &m_ShName, smEShader);
- PHelper().CreateChoose (items, PrepareKey(pref,"Common\\Texture"), &m_TxName, smTexture);
+ PHelper().CreateFlag32 (items, PrepareKey(pref,g_pStringTable->translate("ed_st_wm_draw").c_str()), &m_Flags, flDrawWallmark);
+ PHelper().CreateFlag32 (items, PrepareKey(pref,g_pStringTable->translate("ed_st_wm_align").c_str()), &m_Flags, flAxisAlign, g_pStringTable->translate("ed_st_by_camera").c_str(), g_pStringTable->translate("ed_st_by_world_axis").c_str());
+ PHelper().CreateFloat (items, PrepareKey(pref,g_pStringTable->translate("ed_st_wm_width").c_str()), &m_MarkWidth, 0.01f, 10.f);
+ PHelper().CreateFloat (items, PrepareKey(pref,g_pStringTable->translate("ed_st_wm_height").c_str()), &m_MarkHeight, 0.01f, 10.f);
+ PHelper().CreateAngle (items, PrepareKey(pref,g_pStringTable->translate("ed_st_wm_rotate").c_str()), &m_MarkRotate);
+ PHelper().CreateChoose (items, PrepareKey(pref,g_pStringTable->translate("ed_st_wm_shader").c_str()), &m_ShName, smEShader);
+ PHelper().CreateChoose (items, PrepareKey(pref,g_pStringTable->translate("ed_st_wm_texture").c_str()), &m_TxName, smTexture);
}
@@ -809,7 +809,7 @@ bool ESceneWallmarkTool::Validate(bool)
if (slot->items.size()){
IBlender* B = EDevice->Resources->_FindBlender(*slot->sh_name);
if (!B||B->canBeLMAPped()){
- ELog.Msg (mtError,"Wallmarks: Invalid or missing shader '%s'.",*slot->sh_name);
+ ELog.Msg (mtError,g_pStringTable->translate("ed_st_wm_invalid_shader").c_str(), *slot->sh_name);
bRes = false;
}
}
diff --git a/src/Editors/LevelEditor/Editor/Tools/WayPoint/ESceneWayControls.cpp b/src/Editors/LevelEditor/Editor/Tools/WayPoint/ESceneWayControls.cpp
index 98df96b15e..d9014af077 100644
--- a/src/Editors/LevelEditor/Editor/Tools/WayPoint/ESceneWayControls.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/WayPoint/ESceneWayControls.cpp
@@ -31,7 +31,7 @@ bool TUI_ControlWayPointAdd::Start(TShiftState Shift)
ObjectList lst; Scene->GetQueryObjects(lst,OBJCLASS_WAY,1,1,-1);
UIWayTool* frame=(UIWayTool*)parent_tool->pForm;
if (1!=lst.size()){
- ELog.DlgMsg(mtInformation,"Select one WayObject.");
+ ELog.DlgMsg(mtInformation,g_pStringTable->translate("ed_st_sel_one_way_obj").c_str());
return false;
}
Fvector p;
diff --git a/src/Editors/LevelEditor/Editor/Tools/WayPoint/ESceneWayToolsIO.cpp b/src/Editors/LevelEditor/Editor/Tools/WayPoint/ESceneWayToolsIO.cpp
index 429addf0b1..9bda5d676b 100644
--- a/src/Editors/LevelEditor/Editor/Tools/WayPoint/ESceneWayToolsIO.cpp
+++ b/src/Editors/LevelEditor/Editor/Tools/WayPoint/ESceneWayToolsIO.cpp
@@ -12,7 +12,7 @@ bool ESceneWayTool::LoadLTX(CInifile& ini)
u32 version = ini.r_u32("main","version");
if( version!=WAY_TOOLS_VERSION )
{
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
@@ -33,7 +33,7 @@ bool ESceneWayTool::LoadStream(IReader& F)
if(F.r_chunk(CHUNK_VERSION,&version))
if( version!=WAY_TOOLS_VERSION )
{
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
@@ -56,7 +56,7 @@ bool ESceneWayTool::LoadSelection(IReader& F)
u16 version = 0;
R_ASSERT(F.r_chunk(CHUNK_VERSION,&version));
if( version!=WAY_TOOLS_VERSION ){
- ELog.DlgMsg( mtError, "%s tools: Unsupported version.",ClassDesc());
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_tools_unsupported_ver").c_str(), ClassDesc());
return false;
}
diff --git a/src/Editors/LevelEditor/Editor/UI_LevelMain.cpp b/src/Editors/LevelEditor/Editor/UI_LevelMain.cpp
index f6b473cef7..08753d28cd 100644
--- a/src/Editors/LevelEditor/Editor/UI_LevelMain.cpp
+++ b/src/Editors/LevelEditor/Editor/UI_LevelMain.cpp
@@ -137,7 +137,7 @@ CCommandVar CLevelTool::CommandMultiRenameObjects(CCommandVar p1, CCommandVar p2
{
if( !Scene->locked() )
{
- if (mrYes==ELog.DlgMsg(mtConfirmation, mbYes |mbNo, "Are you sure to rename selected objects?"))
+ if (mrYes==ELog.DlgMsg(mtConfirmation, mbYes |mbNo, g_pStringTable->translate("ed_st_rename_sel_msg").c_str()))
{
int cnt = Scene->MultiRenameObjects();
if (cnt)
@@ -145,11 +145,11 @@ CCommandVar CLevelTool::CommandMultiRenameObjects(CCommandVar p1, CCommandVar p2
ExecCommand (COMMAND_UPDATE_PROPERTIES);
Scene->UndoSave();
}
- ELog.DlgMsg ( mtInformation, "%d - objects are renamed.", cnt );
+ ELog.DlgMsg ( mtInformation, g_pStringTable->translate("ed_st_renamed_objects").c_str(), cnt);
}
}else
{
- ELog.DlgMsg ( mtError, "Scene sharing violation" );
+ ELog.DlgMsg ( mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str() );
}
return FALSE;
}
@@ -184,7 +184,7 @@ CCommandVar CommandLoad(CCommandVar p1, CCommandVar p2)
if (!Scene->IfModified())
return FALSE;
- UI->SetStatus ("Level loading...");
+ UI->SetStatus (g_pStringTable->translate("ed_st_level_load").c_str());
ExecCommand (COMMAND_CLEAR);
FS.TryLoad(temp_fn.c_str());
IReader* R = FS.r_open (temp_fn.c_str());
@@ -220,7 +220,7 @@ CCommandVar CommandLoad(CCommandVar p1, CCommandVar p2)
EPrefs->AppendRecentFile(temp_fn.c_str());
}else
{
- ELog.DlgMsg ( mtError, "Can't load map '%s'", temp_fn.c_str() );
+ ELog.DlgMsg ( mtError, g_pStringTable->translate("ed_st_cant_load_map").c_str(), temp_fn.c_str());
LTools->m_LastFileName = "";
}
// update props
@@ -228,7 +228,7 @@ CCommandVar CommandLoad(CCommandVar p1, CCommandVar p2)
UI->RedrawScene ();
}
} else {
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
return TRUE;
@@ -279,7 +279,7 @@ CCommandVar CommandSave(CCommandVar p1, CCommandVar p2)
}
}
} else {
- ELog.DlgMsg ( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
}
@@ -301,7 +301,7 @@ CCommandVar CommandClear(CCommandVar p1, CCommandVar p2)
Scene->UndoSave ();
return TRUE;
} else {
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
}
@@ -387,7 +387,7 @@ CCommandVar CommandValidateScene(CCommandVar p1, CCommandVar p2)
Scene->Validate (true,true,true,true,true,true);
return TRUE;
} else {
- ELog.DlgMsg ( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
}
@@ -397,7 +397,7 @@ CCommandVar CommandCleanLibrary(CCommandVar p1, CCommandVar p2)
Lib.CleanLibrary();
return TRUE;
}else{
- ELog.DlgMsg (mtError, "Scene must be empty before refreshing library!");
+ ELog.DlgMsg (mtError, g_pStringTable->translate("ed_st_scene_must_be_empty_refresh").c_str());
return FALSE;
}
}
@@ -417,7 +417,7 @@ CCommandVar CommandCut(CCommandVar p1, CCommandVar p2)
Scene->UndoSave ();
return TRUE;
} else {
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
return FALSE;
@@ -428,8 +428,8 @@ CCommandVar CommandCopy(CCommandVar p1, CCommandVar p2)
Scene->CopySelection(LTools->CurrentClassID());
return TRUE;
} else {
- ELog.DlgMsg ( mtError, "Scene sharing violation" );
- return FALSE;
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
+ return FALSE;
}
return FALSE;
}
@@ -441,7 +441,7 @@ CCommandVar CommandPaste(CCommandVar p1, CCommandVar p2)
Scene->UndoSave ();
return TRUE;
} else {
- ELog.DlgMsg ( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
return FALSE;
@@ -455,8 +455,8 @@ CCommandVar CommandDuplicate(CCommandVar p1, CCommandVar p2)
return TRUE;
}
else {
- ELog.DlgMsg(mtError, "Scene sharing violation");
- return FALSE;
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
+ return FALSE;
}
return FALSE;
}
@@ -471,7 +471,7 @@ CCommandVar CommandLoadSelection(CCommandVar p1, CCommandVar p2)
LPCSTR maps_path = FS.get_path(_maps_)->m_Path;
if (fn.c_str()==strstr(fn.c_str(),maps_path))
LTools->m_LastSelectionName = fn.c_str()+xr_strlen(maps_path);
- UI->SetStatus ("Fragment loading...");
+ UI->SetStatus (g_pStringTable->translate("ed_st_fragment_load").c_str());
Scene->LoadSelection(fn.c_str());
@@ -483,7 +483,7 @@ CCommandVar CommandLoadSelection(CCommandVar p1, CCommandVar p2)
return TRUE;
}
} else {
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
}
return FALSE;
}
@@ -495,13 +495,13 @@ CCommandVar CommandSaveSelection(CCommandVar p1, CCommandVar p2)
LPCSTR maps_path = FS.get_path(_maps_)->m_Path;
if (fn.c_str()==strstr(fn.c_str(),maps_path))
LTools->m_LastSelectionName = fn.c_str()+xr_strlen(maps_path);
- UI->SetStatus ("Fragment saving...");
+ UI->SetStatus (g_pStringTable->translate("ed_st_fragment_save").c_str());
Scene->SaveSelection(LTools->CurrentClassID(),fn.c_str());
UI->ResetStatus ();
return TRUE;
}
} else {
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
}
return FALSE;
}
@@ -509,14 +509,14 @@ CCommandVar CommandSaveSelection(CCommandVar p1, CCommandVar p2)
CCommandVar CommandUndo(CCommandVar p1, CCommandVar p2)
{
if( !Scene->locked() ){
- if( !Scene->Undo() ) ELog.DlgMsg( mtInformation, "Undo buffer empty" );
+ if( !Scene->Undo() ) ELog.DlgMsg( mtInformation, g_pStringTable->translate("ed_st_undo_empty_buf").c_str() );
else{
LTools->Reset ();
ExecCommand (COMMAND_CHANGE_ACTION, etaSelect);
return TRUE;
}
} else {
- ELog.DlgMsg ( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
}
return FALSE;
}
@@ -524,14 +524,14 @@ CCommandVar CommandUndo(CCommandVar p1, CCommandVar p2)
CCommandVar CommandRedo(CCommandVar p1, CCommandVar p2)
{
if( !Scene->locked() ){
- if( !Scene->Redo() ) ELog.DlgMsg( mtInformation, "Redo buffer empty" );
+ if( !Scene->Redo() ) ELog.DlgMsg( mtInformation, g_pStringTable->translate("ed_st_redo_empty_buf").c_str() );
else{
LTools->Reset ();
ExecCommand (COMMAND_CHANGE_ACTION, etaSelect);
return TRUE;
}
} else {
- ELog.DlgMsg ( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
}
return FALSE;
}
@@ -542,7 +542,7 @@ CCommandVar CommandClearSceneSummary(CCommandVar p1, CCommandVar p2)
Scene->ClearSummaryInfo ();
return TRUE;
} else {
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
}
@@ -552,7 +552,7 @@ CCommandVar CommandCollectSceneSummary(CCommandVar p1, CCommandVar p2)
Scene->CollectSummaryInfo();
return TRUE;
} else {
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
}
@@ -562,7 +562,7 @@ CCommandVar CommandShowSceneSummary(CCommandVar p1, CCommandVar p2)
Scene->ShowSummaryInfo();
return TRUE;
} else {
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
}
@@ -572,7 +572,7 @@ CCommandVar CommandExportSceneSummary(CCommandVar p1, CCommandVar p2)
Scene->ExportSummaryInfo(xr_string(p1).c_str());
return TRUE;
} else {
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
}
@@ -598,7 +598,7 @@ CCommandVar CommandOptions(CCommandVar p1, CCommandVar p2)
ExecCommand (COMMAND_SHOW_PROPERTIES, p1, p2);
return TRUE;
} else {
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
}
@@ -606,10 +606,10 @@ CCommandVar CommandOptions(CCommandVar p1, CCommandVar p2)
CCommandVar CommandBuild(CCommandVar p1, CCommandVar p2)
{
if( !Scene->locked() ){
- if (mrYes==ELog.DlgMsg(mtConfirmation, mbYes |mbNo, "Are you sure to build level?"))
+ if (mrYes==ELog.DlgMsg(mtConfirmation, mbYes |mbNo, g_pStringTable->translate("ed_st_level_export").c_str()))
return Builder.Compile(false);
}else{
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
}
return FALSE;
}
@@ -627,60 +627,60 @@ CCommandVar CommandMakeGizmo(CCommandVar p1, CCommandVar p2)
CCommandVar CommandMakeAIMap(CCommandVar p1, CCommandVar p2)
{
if( !Scene->locked() ){
- if (mrYes==ELog.DlgMsg(mtConfirmation, mbYes |mbNo, "Are you sure to export ai-map?"))
+ if (mrYes==ELog.DlgMsg(mtConfirmation, mbYes |mbNo, g_pStringTable->translate("ed_st_ai_map_export").c_str()))
return Builder.MakeAIMap( );
}else{
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
}
return FALSE;
}
CCommandVar CommandMakeGame(CCommandVar p1, CCommandVar p2)
{
if( !Scene->locked() ){
- if (mrYes==ELog.DlgMsg(mtConfirmation, mbYes |mbNo, "Are you sure to export game?"))
+ if (mrYes==ELog.DlgMsg(mtConfirmation, mbYes |mbNo, g_pStringTable->translate("ed_st_game_export").c_str()))
return Builder.MakeGame( );
}else{
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
}
return FALSE;
}
CCommandVar CommandMakePuddles(CCommandVar p1, CCommandVar p2)
{
if( !Scene->locked() ){
- if (mrYes==ELog.DlgMsg(mtConfirmation, mbYes |mbNo, "Are you sure to export puddles?"))
+ if (mrYes==ELog.DlgMsg(mtConfirmation, mbYes |mbNo, g_pStringTable->translate("ed_st_puddles_export").c_str()))
return Builder.MakePuddles( );
}else{
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
}
return FALSE;
}
CCommandVar CommandMakeDetails(CCommandVar p1, CCommandVar p2)
{
if( !Scene->locked() ){
- if (mrYes==ELog.DlgMsg(mtConfirmation, mbYes |mbNo, "Are you sure to export details?"))
+ if (mrYes==ELog.DlgMsg(mtConfirmation, mbYes |mbNo, g_pStringTable->translate("ed_st_details_export").c_str()))
return Builder.MakeDetails();
}else{
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
}
return FALSE;
}
CCommandVar CommandMakeHOM(CCommandVar p1, CCommandVar p2)
{
if( !Scene->locked() ){
- if (mrYes==ELog.DlgMsg(mtConfirmation, mbYes |mbNo, "Are you sure to export HOM?"))
+ if (mrYes==ELog.DlgMsg(mtConfirmation, mbYes |mbNo, g_pStringTable->translate("ed_st_hom_export").c_str()))
return Builder.MakeHOM();
}else{
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg(mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
}
return FALSE;
}
CCommandVar CommandMakeSOM(CCommandVar p1, CCommandVar p2)
{
if( !Scene->locked() ){
- if (mrYes==ELog.DlgMsg(mtConfirmation, mbYes |mbNo, "Are you sure to export Sound Occlusion Model?"))
+ if (mrYes==ELog.DlgMsg(mtConfirmation, mbYes |mbNo, g_pStringTable->translate("ed_st_som_export").c_str()))
return Builder.MakeSOM();
}else{
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
}
return FALSE;
}
@@ -690,7 +690,7 @@ CCommandVar CommandInvertSelectionAll(CCommandVar p1, CCommandVar p2)
Scene->InvertSelection (LTools->CurrentClassID());
return TRUE;
} else {
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
}
return FALSE;
}
@@ -701,7 +701,7 @@ CCommandVar CommandSelectAll(CCommandVar p1, CCommandVar p2)
Scene->SelectObjects (true,LTools->CurrentClassID());
return TRUE;
} else {
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
}
return FALSE;
}
@@ -712,7 +712,7 @@ CCommandVar CommandDeselectAll(CCommandVar p1, CCommandVar p2)
Scene->SelectObjects (false,LTools->CurrentClassID());
return TRUE;
} else {
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
}
@@ -724,7 +724,7 @@ CCommandVar CommandDeleteSelection(CCommandVar p1, CCommandVar p2)
Scene->UndoSave ();
return TRUE;
} else {
- ELog.DlgMsg( mtError, "Scene sharing violation" );
+ ELog.DlgMsg( mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
}
@@ -737,7 +737,7 @@ CCommandVar CommandHideUnsel(CCommandVar p1, CCommandVar p2)
ExecCommand (COMMAND_UPDATE_PROPERTIES);
return TRUE;
} else {
- ELog.DlgMsg ( mtError, "Scene sharing violation" );
+ ELog.DlgMsg ( mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
}
@@ -749,7 +749,7 @@ CCommandVar CommandHideSel(CCommandVar p1, CCommandVar p2)
ExecCommand (COMMAND_UPDATE_PROPERTIES);
return TRUE;
} else {
- ELog.DlgMsg ( mtError, "Scene sharing violation" );
+ ELog.DlgMsg ( mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
}
@@ -761,7 +761,7 @@ CCommandVar CommandHideAll(CCommandVar p1, CCommandVar p2)
ExecCommand (COMMAND_UPDATE_PROPERTIES);
return TRUE;
}else{
- ELog.DlgMsg ( mtError, "Scene sharing violation" );
+ ELog.DlgMsg ( mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
}
@@ -771,7 +771,7 @@ CCommandVar CommandSetSnapObjects(CCommandVar p1, CCommandVar p2)
Scene->SetSnapList ();
return TRUE;
}else{
- ELog.DlgMsg ( mtError, "Scene sharing violation" );
+ ELog.DlgMsg ( mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
}
@@ -781,7 +781,7 @@ CCommandVar CommandAddSelSnapObjects(CCommandVar p1, CCommandVar p2)
Scene->AddSelToSnapList ();
return TRUE;
}else{
- ELog.DlgMsg ( mtError, "Scene sharing violation" );
+ ELog.DlgMsg ( mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
}
@@ -791,7 +791,7 @@ CCommandVar CommandDelSelSnapObjects(CCommandVar p1, CCommandVar p2)
Scene->DelSelFromSnapList();
return TRUE;
}else{
- ELog.DlgMsg ( mtError, "Scene sharing violation" );
+ ELog.DlgMsg ( mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str());
return FALSE;
}
}
@@ -801,7 +801,7 @@ CCommandVar CommandClearSnapObjects(CCommandVar p1, CCommandVar p2)
Scene->ClearSnapList (true);
return TRUE;
}else{
- ELog.DlgMsg ( mtError, "Scene sharing violation" );
+ ELog.DlgMsg ( mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str() );
return FALSE;
}
}
@@ -811,7 +811,7 @@ CCommandVar CommandSelectSnapObjects(CCommandVar p1, CCommandVar p2)
Scene->SelectSnapList ();
return TRUE;
}else{
- ELog.DlgMsg ( mtError, "Scene sharing violation" );
+ ELog.DlgMsg ( mtError, g_pStringTable->translate("ed_st_scene_share_vilation").c_str() );
return FALSE;
}
}
@@ -1355,15 +1355,15 @@ void CLevelMain::OnStats(CGameFont* font)
font->SetHeight(14);
if (!Scene->m_RTFlags.is(EScene::flIsBuildedCForm))
{
- font->OutNext("NEED REBUILD CFORM");
+ font->OutNext(g_pStringTable->translate("ed_st_cform_rebuild_msg").c_str());
}
if (!Scene->m_RTFlags.is(EScene::flIsBuildedAIMap))
{
- font->OutNext("NEED REBUILD AIMAP");
+ font->OutNext(g_pStringTable->translate("ed_st_ai_map_rebuild_msg").c_str());
}
if (!Scene->m_RTFlags.is(EScene::flIsBuildedGameGraph))
{
- font->OutNext("NEED REBUILD GAME GRAPH");
+ font->OutNext(g_pStringTable->translate("ed_st_game_graph_rebuild_msg").c_str());
}
diff --git a/src/Editors/LevelEditor/Editor/Utils/GeometryPartExtractor.cpp b/src/Editors/LevelEditor/Editor/Utils/GeometryPartExtractor.cpp
index bc0be79dec..784dea5651 100644
--- a/src/Editors/LevelEditor/Editor/Utils/GeometryPartExtractor.cpp
+++ b/src/Editors/LevelEditor/Editor/Utils/GeometryPartExtractor.cpp
@@ -75,7 +75,7 @@ bool SBPart::prepare (SBAdjVec& adjs, u32 bone_face_min)
for (auto f_it=m_Faces.begin(); f_it!=m_Faces.end(); f_it++){
SBFace* F = (*f_it);
if (F->adjs.empty()){
- ELog.Msg(mtError,"Error face found at pos: [%3.2f,%3.2f,%3.2f]",VPUSH(F->o[0]));
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_invalid_face_found").c_str(), VPUSH(F->o[0]));
Tools->m_DebugDraw.AppendWireFace(F->o[0],F->o[1],F->o[2]);
m_bValid = false;
}
@@ -193,7 +193,7 @@ bool SBPart::Export (IWriter& F, u8 infl)
{
VERIFY (!m_Bones.empty());
if (m_Bones.size()>63){
- ELog.Msg(mtError,"Breakable object cannot handle more than 63 parts.");
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_br_obj_more_than_63_parts").c_str());
return false;
}
@@ -236,12 +236,12 @@ bool SBPart::Export (IWriter& F, u8 infl)
for (SplitIt split_it=m_Splits.begin(); split_it!=m_Splits.end(); split_it++)
{
if (!split_it->valid()){
- ELog.Msg(mtError,"Degenerate part found (Texture '%s').",*split_it->m_Texture);
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_degenerate_texture").c_str(), *split_it->m_Texture);
bRes = false;
break;
}
if (0!=split_it->invalid_faces){
- ELog.Msg(mtError,"Part [texture '%s'] have %d duplicate(degenerate) face(s).",*split_it->m_Texture,split_it->invalid_faces);
+ ELog.Msg(mtError,g_pStringTable->translate("ed_st_texture_duplicated_faces").c_str(), *split_it->m_Texture, split_it->invalid_faces);
}
// calculate T&B components
split_it->CalculateTB();
@@ -388,7 +388,7 @@ BOOL CGeomPartExtractor::Process()
}
// extract parts
{
- SPBItem* pb = UI->ProgressStart(m_Faces.size(),"Extract Parts...");
+ SPBItem* pb = UI->ProgressStart(m_Faces.size(),g_pStringTable->translate("ed_st_extract_parts").c_str());
for (SBFaceVecIt f_it=m_Faces.begin(); f_it!=m_Faces.end(); f_it++){
pb->Inc();
SBFace* F = *f_it;
@@ -402,7 +402,7 @@ BOOL CGeomPartExtractor::Process()
}
// simplify parts
{
- SPBItem* pb = UI->ProgressStart(m_Parts.size(),"Simplify Parts...");
+ SPBItem* pb = UI->ProgressStart(m_Parts.size(),g_pStringTable->translate("ed_st_simplify_parts").c_str());
for (SBPartVecIt p_it=m_Parts.begin(); p_it!=m_Parts.end(); p_it++){
pb->Inc();
(*p_it)->prepare (m_Adjs,m_PerBoneFaceCountMin);
diff --git a/src/Editors/LevelEditor/Editor/Utils/LevelPreferences.cpp b/src/Editors/LevelEditor/Editor/Utils/LevelPreferences.cpp
index f1f0c2e0af..aea86a892a 100644
--- a/src/Editors/LevelEditor/Editor/Utils/LevelPreferences.cpp
+++ b/src/Editors/LevelEditor/Editor/Utils/LevelPreferences.cpp
@@ -61,11 +61,11 @@ void CLevelPreferences::FillProp(PropItemVec& items)
for (; _I!=_E; _I++)
if (_I->second&&(_I->first!=OBJCLASS_DUMMY)){
if (_I->second->AllowEnabling()){
- PropValue* V = PHelper().CreateFlag32(items,PrepareKey("Scene\\Targets\\Enable",_I->second->ClassDesc()), &_I->second->m_EditFlags, ESceneToolBase::flEnable);
+ PropValue* V = PHelper().CreateFlag32(items,PrepareKey(g_pStringTable->translate("ed_st_scene_targets_enable").c_str(), _I->second->ClassDesc()), &_I->second->m_EditFlags, ESceneToolBase::flEnable);
V->tag = _I->second->FClassID;
V->OnChangeEvent.bind(this,&CLevelPreferences::OnEnabledChange);
}
- PropValue* V = PHelper().CreateFlag32(items,PrepareKey("Scene\\Targets\\Read Only",_I->second->ClassDesc()), &_I->second->m_EditFlags, ESceneToolBase::flForceReadonly);
+ PropValue* V = PHelper().CreateFlag32(items,PrepareKey(g_pStringTable->translate("ed_st_scene_targets_read_only").c_str(), _I->second->ClassDesc()), &_I->second->m_EditFlags, ESceneToolBase::flForceReadonly);
V->tag = _I->second->FClassID;
V->OnChangeEvent.bind(this,&CLevelPreferences::OnReadonlyChange);
}