diff --git a/doc/classes/EditorNode3DGizmo.xml b/doc/classes/EditorNode3DGizmo.xml
index 7597489601e5..6d481d145eb1 100644
--- a/doc/classes/EditorNode3DGizmo.xml
+++ b/doc/classes/EditorNode3DGizmo.xml
@@ -45,6 +45,7 @@
Override this method to return the name of an edited handle (handles must have been previously added by [method add_handles]). Handles can be named for reference to the user when editing.
The [param secondary] argument is [code]true[/code] when the requested handle is secondary (see [method add_handles] for more information).
+ [b]Note:[/b] By convention, the first word of the name should be capitalized, while the rest should be in lowercase. For example, [code]"Inner radius"[/code].
diff --git a/doc/classes/EditorNode3DGizmoPlugin.xml b/doc/classes/EditorNode3DGizmoPlugin.xml
index 6a91e3559d7c..1c26645efddf 100644
--- a/doc/classes/EditorNode3DGizmoPlugin.xml
+++ b/doc/classes/EditorNode3DGizmoPlugin.xml
@@ -70,6 +70,7 @@
Override this method to provide gizmo's handle names. The [param secondary] argument is [code]true[/code] when the requested handle is secondary (see [method EditorNode3DGizmo.add_handles] for more information). Called for this plugin's active gizmos.
+ [b]Note:[/b] By convention, the first word of the name should be capitalized, while the rest should be in lowercase. For example, [code]"Inner radius"[/code].
diff --git a/editor/plugins/gizmos/audio_stream_player_3d_gizmo_plugin.cpp b/editor/plugins/gizmos/audio_stream_player_3d_gizmo_plugin.cpp
index 610ac60fc838..c8338a6cccab 100644
--- a/editor/plugins/gizmos/audio_stream_player_3d_gizmo_plugin.cpp
+++ b/editor/plugins/gizmos/audio_stream_player_3d_gizmo_plugin.cpp
@@ -61,7 +61,7 @@ int AudioStreamPlayer3DGizmoPlugin::get_priority() const {
}
String AudioStreamPlayer3DGizmoPlugin::get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id, bool p_secondary) const {
- return "Emission Radius";
+ return TTR("Emission radius");
}
Variant AudioStreamPlayer3DGizmoPlugin::get_handle_value(const EditorNode3DGizmo *p_gizmo, int p_id, bool p_secondary) const {
diff --git a/editor/plugins/gizmos/camera_3d_gizmo_plugin.cpp b/editor/plugins/gizmos/camera_3d_gizmo_plugin.cpp
index f8a83322ebab..b6e60c505c21 100644
--- a/editor/plugins/gizmos/camera_3d_gizmo_plugin.cpp
+++ b/editor/plugins/gizmos/camera_3d_gizmo_plugin.cpp
@@ -61,9 +61,9 @@ String Camera3DGizmoPlugin::get_handle_name(const EditorNode3DGizmo *p_gizmo, in
Camera3D *camera = Object::cast_to(p_gizmo->get_node_3d());
if (camera->get_projection() == Camera3D::PROJECTION_PERSPECTIVE) {
- return "FOV";
+ return TTR("FOV");
} else {
- return "Size";
+ return TTR("Size");
}
}
diff --git a/editor/plugins/gizmos/collision_shape_3d_gizmo_plugin.cpp b/editor/plugins/gizmos/collision_shape_3d_gizmo_plugin.cpp
index 957979bc2dc6..b90dab9e3ec2 100644
--- a/editor/plugins/gizmos/collision_shape_3d_gizmo_plugin.cpp
+++ b/editor/plugins/gizmos/collision_shape_3d_gizmo_plugin.cpp
@@ -107,7 +107,7 @@ String CollisionShape3DGizmoPlugin::get_handle_name(const EditorNode3DGizmo *p_g
}
if (Object::cast_to(*s)) {
- return "Radius";
+ return TTR("Radius");
}
if (Object::cast_to(*s)) {
@@ -123,7 +123,7 @@ String CollisionShape3DGizmoPlugin::get_handle_name(const EditorNode3DGizmo *p_g
}
if (Object::cast_to(*s)) {
- return "Length";
+ return TTR("Length");
}
return "";
diff --git a/editor/plugins/gizmos/light_3d_gizmo_plugin.cpp b/editor/plugins/gizmos/light_3d_gizmo_plugin.cpp
index 56bfae69b95e..6fd9b287e6ea 100644
--- a/editor/plugins/gizmos/light_3d_gizmo_plugin.cpp
+++ b/editor/plugins/gizmos/light_3d_gizmo_plugin.cpp
@@ -64,9 +64,9 @@ int Light3DGizmoPlugin::get_priority() const {
String Light3DGizmoPlugin::get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id, bool p_secondary) const {
if (p_id == 0) {
- return "Radius";
+ return TTR("Radius");
} else {
- return "Aperture";
+ return TTR("Aperture");
}
}
diff --git a/editor/plugins/gizmos/occluder_instance_3d_gizmo_plugin.cpp b/editor/plugins/gizmos/occluder_instance_3d_gizmo_plugin.cpp
index fbe72b5f803f..016c3248b689 100644
--- a/editor/plugins/gizmos/occluder_instance_3d_gizmo_plugin.cpp
+++ b/editor/plugins/gizmos/occluder_instance_3d_gizmo_plugin.cpp
@@ -61,11 +61,11 @@ String OccluderInstance3DGizmoPlugin::get_handle_name(const EditorNode3DGizmo *p
}
if (Object::cast_to(*o)) {
- return "Radius";
+ return TTR("Radius");
}
if (Object::cast_to(*o) || Object::cast_to(*o)) {
- return "Size";
+ return TTR("Size");
}
return "";
diff --git a/editor/plugins/gizmos/reflection_probe_gizmo_plugin.cpp b/editor/plugins/gizmos/reflection_probe_gizmo_plugin.cpp
index 483220b74abe..aff999d1e40f 100644
--- a/editor/plugins/gizmos/reflection_probe_gizmo_plugin.cpp
+++ b/editor/plugins/gizmos/reflection_probe_gizmo_plugin.cpp
@@ -69,11 +69,11 @@ String ReflectionProbeGizmoPlugin::get_handle_name(const EditorNode3DGizmo *p_gi
}
switch (p_id) {
case 6:
- return "Origin X";
+ return TTR("Origin X");
case 7:
- return "Origin Y";
+ return TTR("Origin Y");
case 8:
- return "Origin Z";
+ return TTR("Origin Z");
}
return "";
}
diff --git a/editor/plugins/gizmos/soft_body_3d_gizmo_plugin.cpp b/editor/plugins/gizmos/soft_body_3d_gizmo_plugin.cpp
index d3c6c6de4f44..dd3138b2b663 100644
--- a/editor/plugins/gizmos/soft_body_3d_gizmo_plugin.cpp
+++ b/editor/plugins/gizmos/soft_body_3d_gizmo_plugin.cpp
@@ -92,7 +92,7 @@ void SoftBody3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
}
String SoftBody3DGizmoPlugin::get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id, bool p_secondary) const {
- return "SoftBody3D pin point";
+ return TTR("SoftBody3D pin point");
}
Variant SoftBody3DGizmoPlugin::get_handle_value(const EditorNode3DGizmo *p_gizmo, int p_id, bool p_secondary) const {
diff --git a/editor/plugins/gizmos/visible_on_screen_notifier_3d_gizmo_plugin.cpp b/editor/plugins/gizmos/visible_on_screen_notifier_3d_gizmo_plugin.cpp
index 2d40e66811c4..647ec1854fdb 100644
--- a/editor/plugins/gizmos/visible_on_screen_notifier_3d_gizmo_plugin.cpp
+++ b/editor/plugins/gizmos/visible_on_screen_notifier_3d_gizmo_plugin.cpp
@@ -58,17 +58,17 @@ int VisibleOnScreenNotifier3DGizmoPlugin::get_priority() const {
String VisibleOnScreenNotifier3DGizmoPlugin::get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id, bool p_secondary) const {
switch (p_id) {
case 0:
- return "Size X";
+ return TTR("Size X");
case 1:
- return "Size Y";
+ return TTR("Size Y");
case 2:
- return "Size Z";
+ return TTR("Size Z");
case 3:
- return "Pos X";
+ return TTR("Position X");
case 4:
- return "Pos Y";
+ return TTR("Position Y");
case 5:
- return "Pos Z";
+ return TTR("Position Z");
}
return "";
diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp
index 1132ecbe632a..7481e269b342 100644
--- a/editor/plugins/node_3d_editor_plugin.cpp
+++ b/editor/plugins/node_3d_editor_plugin.cpp
@@ -690,7 +690,7 @@ void Node3DEditorViewport::cancel_transform() {
collision_reposition = false;
finish_transform();
- set_message(TTR("Transform Aborted."), 3);
+ set_message(TTR("Transform aborted"), 3);
}
void Node3DEditorViewport::_update_shrink() {
@@ -1794,24 +1794,24 @@ void Node3DEditorViewport::_sinput(const Ref &p_event) {
switch (_edit.plane) {
case TRANSFORM_VIEW: {
_edit.plane = TRANSFORM_X_AXIS;
- set_message(TTR("X-Axis Transform."), 2);
+ set_message(TTR("X axis transform"), 2);
view_type = VIEW_TYPE_USER;
_update_name();
} break;
case TRANSFORM_X_AXIS: {
_edit.plane = TRANSFORM_Y_AXIS;
- set_message(TTR("Y-Axis Transform."), 2);
+ set_message(TTR("Y axis transform"), 2);
} break;
case TRANSFORM_Y_AXIS: {
_edit.plane = TRANSFORM_Z_AXIS;
- set_message(TTR("Z-Axis Transform."), 2);
+ set_message(TTR("Z axis transform"), 2);
} break;
case TRANSFORM_Z_AXIS: {
_edit.plane = TRANSFORM_VIEW;
// TRANSLATORS: This refers to the transform of the view plane.
- set_message(TTR("View Plane Transform."), 2);
+ set_message(TTR("View plane transform"), 2);
} break;
case TRANSFORM_YZ:
@@ -2112,7 +2112,10 @@ void Node3DEditorViewport::_sinput(const Ref &p_event) {
_edit.gizmo->set_handle(_edit.gizmo_handle, _edit.gizmo_handle_secondary, camera, m->get_position());
Variant v = _edit.gizmo->get_handle_value(_edit.gizmo_handle, _edit.gizmo_handle_secondary);
String n = _edit.gizmo->get_handle_name(_edit.gizmo_handle, _edit.gizmo_handle_secondary);
- set_message(n + ": " + String(v));
+ if (v.get_type() == Variant::VECTOR3 || v.get_type() == Variant::VECTOR3I) {
+ v = _get_coordinates_string(v, "m");
+ }
+ set_message(n + " " + String(v));
} else if (m->get_button_mask().has_flag(MouseButtonMask::LEFT)) {
NavigationMode change_nav_from_shortcut = _get_nav_mode_from_shortcut_check(NAVIGATION_LEFT_MOUSE, shortcut_check_sets, false);
@@ -2430,7 +2433,7 @@ void Node3DEditorViewport::_sinput(const Ref &p_event) {
}
if (!AnimationPlayerEditor::get_singleton()->get_track_editor()->has_keying()) {
- set_message(TTR("Keying is disabled (no key inserted)."));
+ set_message(TTR("Keying is disabled (no key inserted)"));
return;
}
@@ -2445,7 +2448,7 @@ void Node3DEditorViewport::_sinput(const Ref &p_event) {
spatial_editor->emit_signal(SNAME("transform_key_request"), sp, "", sp->get_transform());
}
- set_message(TTR("Animation Key Inserted."));
+ set_message(TTR("Animation key inserted"));
}
if (ED_IS_SHORTCUT("spatial_editor/cancel_transform", p_event) && _edit.mode != TRANSFORM_NONE) {
cancel_transform();
@@ -2841,6 +2844,16 @@ void Node3DEditorViewport::set_message(const String &p_message, float p_time) {
message_time = p_time;
}
+// Returns a string designed for fixed-width fonts (more readable than
+// `vformat()`'s `%v` for this purpose, with no parentheses surrounding the coordinates).
+String Node3DEditorViewport::_get_coordinates_string(Vector3 p_coords, String p_suffix, int p_digits) const {
+ // Add a space of additional padding for positive numbers, so that the `-`
+ // sign can display without reflowing numbers.
+ return "X: " + String(p_coords.x >= 0.0 ? " " : "") + rtos(p_coords.x).pad_decimals(p_digits) + " " + p_suffix +
+ "\t\t Y: " + String(p_coords.y >= 0.0 ? " " : "") + rtos(p_coords.y).pad_decimals(p_digits) + " " + p_suffix +
+ "\t\t Z: " + String(p_coords.z >= 0.0 ? " " : "") + rtos(p_coords.z).pad_decimals(p_digits) + " " + p_suffix;
+}
+
void Node3DEditorPlugin::edited_scene_changed() {
for (uint32_t i = 0; i < Node3DEditor::VIEWPORTS_COUNT; i++) {
Node3DEditorViewport *viewport = Node3DEditor::get_singleton()->get_editor_viewport(i);
@@ -3188,8 +3201,7 @@ void Node3DEditorViewport::_notification(int p_what) {
if (!ruler->is_inside_tree()) {
double snap = EDITOR_GET("interface/inspector/default_float_step");
int snap_step_decimals = Math::range_step_decimals(snap);
- set_message(TTR("Translating:") + " (" + String::num(selected_node->get_global_position().x, snap_step_decimals) + ", " +
- String::num(selected_node->get_global_position().y, snap_step_decimals) + ", " + String::num(selected_node->get_global_position().z, snap_step_decimals) + ")");
+ set_message(TTR("Translating") + " " + _get_coordinates_string(selected_node->get_global_position(), "m", snap_step_decimals));
}
selected_node->set_global_position(spatial_editor->snap_point(_get_instance_position(_edit.mouse_pos, selected_node)));
@@ -3210,8 +3222,7 @@ void Node3DEditorViewport::_notification(int p_what) {
preview_node_pos = spatial_editor->snap_point(_get_instance_position(preview_node_viewport_pos, preview_node));
double snap = EDITOR_GET("interface/inspector/default_float_step");
int snap_step_decimals = Math::range_step_decimals(snap);
- set_message(TTR("Instantiating:") + " (" + String::num(preview_node_pos.x, snap_step_decimals) + ", " +
- String::num(preview_node_pos.y, snap_step_decimals) + ", " + String::num(preview_node_pos.z, snap_step_decimals) + ")");
+ set_message(TTR("Instantiating") + " " + _get_coordinates_string(preview_node_pos, "m", snap_step_decimals));
Transform3D preview_gl_transform = Transform3D(Basis(), preview_node_pos);
preview_node->set_global_transform(preview_gl_transform);
if (!preview_node->is_visible()) {
@@ -3374,12 +3385,11 @@ void Node3DEditorViewport::_draw() {
RID ci = surface->get_canvas_item();
if (message_time > 0) {
- Ref font = get_theme_font(SceneStringName(font), SNAME("Label"));
- int font_size = get_theme_font_size(SceneStringName(font_size), SNAME("Label"));
- Point2 msgpos = Point2(10 * EDSCALE, get_size().y - 14 * EDSCALE);
- font->draw_string(ci, msgpos + Point2(1, 1), message, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, Color(0, 0, 0, 0.8));
- font->draw_string(ci, msgpos + Point2(-1, -1), message, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, Color(0, 0, 0, 0.8));
- font->draw_string(ci, msgpos, message, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, Color(1, 1, 1, 1));
+ const Ref &font = get_theme_font("expression", EditorStringName(EditorFonts));
+ const int font_size = get_theme_font_size(SceneStringName(font_size), SNAME("Label"));
+ const Point2 msgpos = Point2(10 * EDSCALE, get_size().y - 14 * EDSCALE);
+ font->draw_string_outline(ci, msgpos, message, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, Math::round(6 * EDSCALE), Color(0, 0, 0, 0.5));
+ font->draw_string(ci, msgpos, message, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size, Color(1, 1, 1));
}
if (_edit.mode == TRANSFORM_ROTATE && _edit.show_rotation_line) {
@@ -3515,7 +3525,7 @@ void Node3DEditorViewport::_menu_option(int p_option) {
case VIEW_TOP: {
cursor.y_rot = 0;
cursor.x_rot = Math::PI / 2.0;
- set_message(TTR("Top View."), 2);
+ set_message(TTR("Top view"), 2);
view_type = VIEW_TYPE_TOP;
_set_auto_orthogonal();
_update_name();
@@ -3524,7 +3534,7 @@ void Node3DEditorViewport::_menu_option(int p_option) {
case VIEW_BOTTOM: {
cursor.y_rot = 0;
cursor.x_rot = -Math::PI / 2.0;
- set_message(TTR("Bottom View."), 2);
+ set_message(TTR("Bottom view"), 2);
view_type = VIEW_TYPE_BOTTOM;
_set_auto_orthogonal();
_update_name();
@@ -3533,7 +3543,7 @@ void Node3DEditorViewport::_menu_option(int p_option) {
case VIEW_LEFT: {
cursor.x_rot = 0;
cursor.y_rot = Math::PI / 2.0;
- set_message(TTR("Left View."), 2);
+ set_message(TTR("Left view"), 2);
view_type = VIEW_TYPE_LEFT;
_set_auto_orthogonal();
_update_name();
@@ -3542,7 +3552,7 @@ void Node3DEditorViewport::_menu_option(int p_option) {
case VIEW_RIGHT: {
cursor.x_rot = 0;
cursor.y_rot = -Math::PI / 2.0;
- set_message(TTR("Right View."), 2);
+ set_message(TTR("Right view"), 2);
view_type = VIEW_TYPE_RIGHT;
_set_auto_orthogonal();
_update_name();
@@ -3551,7 +3561,7 @@ void Node3DEditorViewport::_menu_option(int p_option) {
case VIEW_FRONT: {
cursor.x_rot = 0;
cursor.y_rot = 0;
- set_message(TTR("Front View."), 2);
+ set_message(TTR("Front view"), 2);
view_type = VIEW_TYPE_FRONT;
_set_auto_orthogonal();
_update_name();
@@ -3560,7 +3570,7 @@ void Node3DEditorViewport::_menu_option(int p_option) {
case VIEW_REAR: {
cursor.x_rot = 0;
cursor.y_rot = Math::PI;
- set_message(TTR("Rear View."), 2);
+ set_message(TTR("Rear view"), 2);
view_type = VIEW_TYPE_REAR;
_set_auto_orthogonal();
_update_name();
@@ -5011,7 +5021,7 @@ bool Node3DEditorViewport::can_drop_data_fw(const Point2 &p_point, const Variant
}
if (is_cyclical_dep) {
- set_message(vformat(TTR("Can't instantiate: %s."), vformat(TTR("Circular dependency found at %s"), error_file)));
+ set_message(vformat(TTR("Can't instantiate: %s"), vformat(TTR("Circular dependency found at %s"), error_file)));
return false;
}
@@ -5247,8 +5257,7 @@ void Node3DEditorViewport::update_transform(bool p_shift) {
motion_snapped.snapf(snap);
// This might not be necessary anymore after issue #288 is solved (in 4.0?).
// TRANSLATORS: Refers to changing the scale of a node in the 3D editor.
- set_message(TTR("Scaling:") + " (" + String::num(motion_snapped.x, snap_step_decimals) + ", " +
- String::num(motion_snapped.y, snap_step_decimals) + ", " + String::num(motion_snapped.z, snap_step_decimals) + ")");
+ set_message(TTR("Scaling") + " " + _get_coordinates_string(motion_snapped, "", snap_step_decimals));
if (local_coords) {
// TODO: needed?
motion = _edit.original.basis.inverse().xform(motion);
@@ -5318,8 +5327,8 @@ void Node3DEditorViewport::update_transform(bool p_shift) {
Vector3 motion_snapped = motion;
motion_snapped.snapf(snap);
// TRANSLATORS: Refers to changing the position of a node in the 3D editor.
- set_message(TTR("Translating:") + " (" + String::num(motion_snapped.x, snap_step_decimals) + ", " +
- String::num(motion_snapped.y, snap_step_decimals) + ", " + String::num(motion_snapped.z, snap_step_decimals) + ")");
+ set_message(TTR("Translating") + " " + _get_coordinates_string(motion_snapped, "m", snap_step_decimals) +
+ "\t\t (" + rtos(motion_snapped.length()).pad_decimals(snap_step_decimals) + " m)");
if (local_coords) {
motion = spatial_editor->get_gizmo_transform().basis.inverse().xform(motion);
}
@@ -5397,7 +5406,9 @@ void Node3DEditorViewport::update_transform(bool p_shift) {
snap = spatial_editor->get_rotate_snap();
}
angle = Math::snapped(Math::rad_to_deg(angle), snap);
- set_message(vformat(TTR("Rotating %s degrees."), String::num(angle, snap_step_decimals)));
+ // Add a space of additional padding for positive numbers, so that
+ // the `-` sign can display without reflowing numbers.
+ set_message(vformat(TTR(U"Rotating %s%.2f°"), angle >= 0.0 ? " " : "", angle));
angle = Math::deg_to_rad(angle);
bool local_coords = (spatial_editor->are_local_coords_enabled() && _edit.plane != TRANSFORM_VIEW); // Disable local transformation for TRANSFORM_VIEW
@@ -5454,17 +5465,19 @@ void Node3DEditorViewport::update_transform_numeric() {
switch (_edit.mode) {
case TRANSFORM_TRANSLATE:
motion *= value;
- set_message(vformat(TTR("Translating %s."), motion));
+ set_message(vformat(TTR("Translating %s (%.3f m)"), _get_coordinates_string(motion, "m"), motion.length()));
break;
case TRANSFORM_ROTATE:
extra = Math::deg_to_rad(value);
- set_message(vformat(TTR("Rotating %f degrees."), value));
+ // Add a space of additional padding for positive numbers, so that
+ // the `-` sign can display without reflowing numbers.
+ set_message(vformat(TTR(U"Rotating %s%.2f°"), value >= 0.0 ? " " : "", value));
break;
case TRANSFORM_SCALE:
// To halve the size of an object in Blender, you scale it by 0.5.
// Doing the same in Godot is considered scaling it by -0.5.
motion *= (value - 1.0);
- set_message(vformat(TTR("Scaling %s."), motion));
+ set_message(vformat(TTR("Scaling %s"), _get_coordinates_string(motion)));
break;
case TRANSFORM_NONE:
ERR_FAIL_MSG("_edit.mode cannot be TRANSFORM_NONE in update_transform_numeric.");
diff --git a/editor/plugins/node_3d_editor_plugin.h b/editor/plugins/node_3d_editor_plugin.h
index dc193eda8b76..c17b4f7f7fe2 100644
--- a/editor/plugins/node_3d_editor_plugin.h
+++ b/editor/plugins/node_3d_editor_plugin.h
@@ -451,6 +451,7 @@ class Node3DEditorViewport : public Control {
double message_time;
void set_message(const String &p_message, float p_time = 5);
+ String _get_coordinates_string(Vector3 p_coords, String p_suffix = "", int p_digits = 3) const;
void _view_settings_confirmed(real_t p_interp_delta);
void _update_camera(real_t p_interp_delta);
diff --git a/editor/plugins/path_3d_editor_plugin.cpp b/editor/plugins/path_3d_editor_plugin.cpp
index c600a5061e65..b8eadfbe8f47 100644
--- a/editor/plugins/path_3d_editor_plugin.cpp
+++ b/editor/plugins/path_3d_editor_plugin.cpp
@@ -50,18 +50,18 @@ String Path3DGizmo::get_handle_name(int p_id, bool p_secondary) const {
// Primary handles: position.
if (!p_secondary) {
- return TTR("Curve Point #") + itos(p_id);
+ return TTR("Curve point #") + itos(p_id);
}
// Secondary handles: in, out, tilt.
const HandleInfo info = _secondary_handles_info[p_id];
switch (info.type) {
case HandleType::HANDLE_TYPE_IN:
- return TTR("Handle In #") + itos(info.point_idx);
+ return TTR("In handle #") + itos(info.point_idx);
case HandleType::HANDLE_TYPE_OUT:
- return TTR("Handle Out #") + itos(info.point_idx);
+ return TTR("Out handle #") + itos(info.point_idx);
case HandleType::HANDLE_TYPE_TILT:
- return TTR("Handle Tilt #") + itos(info.point_idx);
+ return TTR("Tilt handle #") + itos(info.point_idx);
}
return "";
diff --git a/modules/csg/editor/csg_gizmos.cpp b/modules/csg/editor/csg_gizmos.cpp
index 88173d19ddcd..b0e767f43330 100644
--- a/modules/csg/editor/csg_gizmos.cpp
+++ b/modules/csg/editor/csg_gizmos.cpp
@@ -191,7 +191,7 @@ String CSGShape3DGizmoPlugin::get_handle_name(const EditorNode3DGizmo *p_gizmo,
CSGShape3D *cs = Object::cast_to(p_gizmo->get_node_3d());
if (Object::cast_to(cs)) {
- return "Radius";
+ return TTR("Radius");
}
if (Object::cast_to(cs)) {
@@ -199,11 +199,11 @@ String CSGShape3DGizmoPlugin::get_handle_name(const EditorNode3DGizmo *p_gizmo,
}
if (Object::cast_to(cs)) {
- return p_id == 0 ? "Radius" : "Height";
+ return p_id == 0 ? TTR("Radius") : TTR("Height");
}
if (Object::cast_to(cs)) {
- return p_id == 0 ? "InnerRadius" : "OuterRadius";
+ return p_id == 0 ? TTR("Inner radius") : TTR("Outer radius");
}
return "";
diff --git a/modules/navigation_3d/editor/navigation_link_3d_gizmo_plugin.cpp b/modules/navigation_3d/editor/navigation_link_3d_gizmo_plugin.cpp
index 139a2afe8afc..77e588ca16ec 100644
--- a/modules/navigation_3d/editor/navigation_link_3d_gizmo_plugin.cpp
+++ b/modules/navigation_3d/editor/navigation_link_3d_gizmo_plugin.cpp
@@ -204,7 +204,7 @@ void NavigationLink3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
}
String NavigationLink3DGizmoPlugin::get_handle_name(const EditorNode3DGizmo *p_gizmo, int p_id, bool p_secondary) const {
- return p_id == 0 ? TTR("Start Position") : TTR("End Position");
+ return p_id == 0 ? TTR("Start position") : TTR("End position");
}
Variant NavigationLink3DGizmoPlugin::get_handle_value(const EditorNode3DGizmo *p_gizmo, int p_id, bool p_secondary) const {