To calculate the values
you convert the original value using the orientation matrix to the world space :
values = intended_value * Orientation_matrix
in the script this would be ( moving 1 unit on the X-axis of the view ) :
import bpy
from mathutils import *
for area in bpy.context.screen.areas:
if area.type == 'VIEW_3D':
viewport = area.regions[4]
v_m = area.spaces[0].region_3d.view_matrix #orientation matrix
#vector conversion from view space to world space
values = Vector((1,0,0))*v_m
#the translation is done in global orientation without any constraints
bpy.ops.transform.translate(value=values)
#bpy.context.object.location += values #another way to translate
print(values)
for bmesh operator (the calculation is done inside the operator ) you pass the translation vector and the matrix of the space used for this translation :
import bpy
import bmesh
from mathutils import *
#get the view matrix
v_m = None
for area in bpy.context.screen.areas:
if area.type == 'VIEW_3D':
viewport = area.regions[4]
v_m = area.spaces[0].region_3d.view_matrix
#create a bmesh
obj = bpy.context.active_object
bpy.ops.object.mode_set(mode='EDIT')
bm = bmesh.new()
bm.from_mesh(obj.data)
#translation
vec = Vector((1,0,0)) #one unit on the X-axis
all_verts = bm.verts #the vertices to be translated
bmesh.ops.translate(bm, vec =(1,0,0), space = v_m, verts = all_verts)
bpy.ops.object.mode_set(mode='OBJECT')
bm.to_mesh(obj.data)