Merge pull request #73195 from timothyqiu/weblate-comments
Improvements and fixes based on Weblate comments
This commit is contained in:
commit
b2584629c8
|
@ -344,7 +344,7 @@ static const _BuiltinActionDisplayName _builtin_action_display_names[] = {
|
||||||
{ "ui_text_add_selection_for_next_occurrence", TTRC("Add Selection for Next Occurrence") },
|
{ "ui_text_add_selection_for_next_occurrence", TTRC("Add Selection for Next Occurrence") },
|
||||||
{ "ui_text_clear_carets_and_selection", TTRC("Clear Carets and Selection") },
|
{ "ui_text_clear_carets_and_selection", TTRC("Clear Carets and Selection") },
|
||||||
{ "ui_text_toggle_insert_mode", TTRC("Toggle Insert Mode") },
|
{ "ui_text_toggle_insert_mode", TTRC("Toggle Insert Mode") },
|
||||||
{ "ui_text_submit", TTRC("Text Submitted") },
|
{ "ui_text_submit", TTRC("Submit Text") },
|
||||||
{ "ui_graph_duplicate", TTRC("Duplicate Nodes") },
|
{ "ui_graph_duplicate", TTRC("Duplicate Nodes") },
|
||||||
{ "ui_graph_delete", TTRC("Delete Nodes") },
|
{ "ui_graph_delete", TTRC("Delete Nodes") },
|
||||||
{ "ui_filedialog_up_one_level", TTRC("Go Up One Level") },
|
{ "ui_filedialog_up_one_level", TTRC("Go Up One Level") },
|
||||||
|
|
|
@ -1140,7 +1140,7 @@
|
||||||
<return type="float" />
|
<return type="float" />
|
||||||
<param index="0" name="x" type="float" />
|
<param index="0" name="x" type="float" />
|
||||||
<description>
|
<description>
|
||||||
Returns [code]-1.0[/code] if [param x] is negative, [code]1.0[/code] if [param x] is positive, and [code]0.0[/code] if if [param x] is zero.
|
Returns [code]-1.0[/code] if [param x] is negative, [code]1.0[/code] if [param x] is positive, and [code]0.0[/code] if [param x] is zero.
|
||||||
[codeblock]
|
[codeblock]
|
||||||
sign(-6.5) # Returns -1.0
|
sign(-6.5) # Returns -1.0
|
||||||
sign(0.0) # Returns 0.0
|
sign(0.0) # Returns 0.0
|
||||||
|
|
|
@ -96,7 +96,7 @@
|
||||||
[b]Note:[/b] Unlike [BaseMaterial3D] whose filter mode can be adjusted on a per-material basis, the filter mode for [Decal] textures is set globally with [member ProjectSettings.rendering/textures/decals/filter].
|
[b]Note:[/b] Unlike [BaseMaterial3D] whose filter mode can be adjusted on a per-material basis, the filter mode for [Decal] textures is set globally with [member ProjectSettings.rendering/textures/decals/filter].
|
||||||
</member>
|
</member>
|
||||||
<member name="texture_emission" type="Texture2D" setter="set_texture" getter="get_texture">
|
<member name="texture_emission" type="Texture2D" setter="set_texture" getter="get_texture">
|
||||||
[Texture2D] with the emission [Color] of the Decal. Either this or the [member texture_emission] must be set for the Decal to be visible. Use the alpha channel like a mask to smoothly blend the edges of the decal with the underlying object.
|
[Texture2D] with the emission [Color] of the Decal. Either this or the [member texture_albedo] must be set for the Decal to be visible. Use the alpha channel like a mask to smoothly blend the edges of the decal with the underlying object.
|
||||||
[b]Note:[/b] Unlike [BaseMaterial3D] whose filter mode can be adjusted on a per-material basis, the filter mode for [Decal] textures is set globally with [member ProjectSettings.rendering/textures/decals/filter].
|
[b]Note:[/b] Unlike [BaseMaterial3D] whose filter mode can be adjusted on a per-material basis, the filter mode for [Decal] textures is set globally with [member ProjectSettings.rendering/textures/decals/filter].
|
||||||
</member>
|
</member>
|
||||||
<member name="texture_normal" type="Texture2D" setter="set_texture" getter="get_texture">
|
<member name="texture_normal" type="Texture2D" setter="set_texture" getter="get_texture">
|
||||||
|
|
|
@ -1052,7 +1052,7 @@
|
||||||
[codeblock]
|
[codeblock]
|
||||||
print("I caught %d fishes!" % 2) # Prints "I caught 2 fishes!"
|
print("I caught %d fishes!" % 2) # Prints "I caught 2 fishes!"
|
||||||
|
|
||||||
var my_message = "Travelling to %s, at %2.2f per second."
|
var my_message = "Travelling to %s, at %2.2f km/h."
|
||||||
var location = "Deep Valley"
|
var location = "Deep Valley"
|
||||||
var speed = 40.3485
|
var speed = 40.3485
|
||||||
print(my_message % [location, speed]) # Prints "Travelling to Deep Valley, at 40.35 km/h."
|
print(my_message % [location, speed]) # Prints "Travelling to Deep Valley, at 40.35 km/h."
|
||||||
|
|
|
@ -505,7 +505,7 @@
|
||||||
<return type="bool" />
|
<return type="bool" />
|
||||||
<param index="0" name="expr" type="String" />
|
<param index="0" name="expr" type="String" />
|
||||||
<description>
|
<description>
|
||||||
Does a simple expression match, where [code]*[/code] matches zero or more arbitrary characters and [code]?[/code] matches any single character except a period ([code].[/code]). An empty string or empty expression always evaluates to [code]false[/code].
|
Does a simple expression match (also called "glob" or "globbing"), where [code]*[/code] matches zero or more arbitrary characters and [code]?[/code] matches any single character except a period ([code].[/code]). An empty string or empty expression always evaluates to [code]false[/code].
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
<method name="matchn" qualifiers="const">
|
<method name="matchn" qualifiers="const">
|
||||||
|
|
|
@ -6623,7 +6623,7 @@ AnimationTrackEditor::AnimationTrackEditor() {
|
||||||
|
|
||||||
optimize_dialog = memnew(ConfirmationDialog);
|
optimize_dialog = memnew(ConfirmationDialog);
|
||||||
add_child(optimize_dialog);
|
add_child(optimize_dialog);
|
||||||
optimize_dialog->set_title(TTR("Anim. Optimizer"));
|
optimize_dialog->set_title(TTR("Animation Optimizer"));
|
||||||
VBoxContainer *optimize_vb = memnew(VBoxContainer);
|
VBoxContainer *optimize_vb = memnew(VBoxContainer);
|
||||||
optimize_dialog->add_child(optimize_vb);
|
optimize_dialog->add_child(optimize_vb);
|
||||||
|
|
||||||
|
@ -6632,19 +6632,19 @@ AnimationTrackEditor::AnimationTrackEditor() {
|
||||||
optimize_velocity_error->set_min(0.001);
|
optimize_velocity_error->set_min(0.001);
|
||||||
optimize_velocity_error->set_step(0.001);
|
optimize_velocity_error->set_step(0.001);
|
||||||
optimize_velocity_error->set_value(0.01);
|
optimize_velocity_error->set_value(0.01);
|
||||||
optimize_vb->add_margin_child(TTR("Max. Velocity Error:"), optimize_velocity_error);
|
optimize_vb->add_margin_child(TTR("Max Velocity Error:"), optimize_velocity_error);
|
||||||
optimize_angular_error = memnew(SpinBox);
|
optimize_angular_error = memnew(SpinBox);
|
||||||
optimize_angular_error->set_max(1.0);
|
optimize_angular_error->set_max(1.0);
|
||||||
optimize_angular_error->set_min(0.001);
|
optimize_angular_error->set_min(0.001);
|
||||||
optimize_angular_error->set_step(0.001);
|
optimize_angular_error->set_step(0.001);
|
||||||
optimize_angular_error->set_value(0.01);
|
optimize_angular_error->set_value(0.01);
|
||||||
optimize_vb->add_margin_child(TTR("Max. Angular Error:"), optimize_angular_error);
|
optimize_vb->add_margin_child(TTR("Max Angular Error:"), optimize_angular_error);
|
||||||
optimize_precision_error = memnew(SpinBox);
|
optimize_precision_error = memnew(SpinBox);
|
||||||
optimize_precision_error->set_max(6);
|
optimize_precision_error->set_max(6);
|
||||||
optimize_precision_error->set_min(1);
|
optimize_precision_error->set_min(1);
|
||||||
optimize_precision_error->set_step(1);
|
optimize_precision_error->set_step(1);
|
||||||
optimize_precision_error->set_value(3);
|
optimize_precision_error->set_value(3);
|
||||||
optimize_vb->add_margin_child(TTR("Max. Precision Error:"), optimize_precision_error);
|
optimize_vb->add_margin_child(TTR("Max Precision Error:"), optimize_precision_error);
|
||||||
|
|
||||||
optimize_dialog->set_ok_button_text(TTR("Optimize"));
|
optimize_dialog->set_ok_button_text(TTR("Optimize"));
|
||||||
optimize_dialog->connect("confirmed", callable_mp(this, &AnimationTrackEditor::_edit_menu_pressed).bind(EDIT_OPTIMIZE_ANIMATION_CONFIRM));
|
optimize_dialog->connect("confirmed", callable_mp(this, &AnimationTrackEditor::_edit_menu_pressed).bind(EDIT_OPTIMIZE_ANIMATION_CONFIRM));
|
||||||
|
@ -6735,7 +6735,7 @@ AnimationTrackEditor::AnimationTrackEditor() {
|
||||||
|
|
||||||
//
|
//
|
||||||
bake_dialog = memnew(ConfirmationDialog);
|
bake_dialog = memnew(ConfirmationDialog);
|
||||||
bake_dialog->set_title(TTR("Anim. Baker"));
|
bake_dialog->set_title(TTR("Animation Baker"));
|
||||||
bake_dialog->connect("confirmed", callable_mp(this, &AnimationTrackEditor::_edit_menu_pressed).bind(EDIT_BAKE_ANIMATION_CONFIRM));
|
bake_dialog->connect("confirmed", callable_mp(this, &AnimationTrackEditor::_edit_menu_pressed).bind(EDIT_BAKE_ANIMATION_CONFIRM));
|
||||||
add_child(bake_dialog);
|
add_child(bake_dialog);
|
||||||
GridContainer *bake_grid = memnew(GridContainer);
|
GridContainer *bake_grid = memnew(GridContainer);
|
||||||
|
|
|
@ -624,7 +624,9 @@ EditorProfiler::EditorProfiler() {
|
||||||
hb->add_child(memnew(Label(TTR("Time:"))));
|
hb->add_child(memnew(Label(TTR("Time:"))));
|
||||||
|
|
||||||
display_time = memnew(OptionButton);
|
display_time = memnew(OptionButton);
|
||||||
|
// TRANSLATORS: This is an option in the profiler to display the time spent in a function, including the time spent in other functions called by that function.
|
||||||
display_time->add_item(TTR("Inclusive"));
|
display_time->add_item(TTR("Inclusive"));
|
||||||
|
// TRANSLATORS: This is an option in the profiler to display the time spent in a function, exincluding the time spent in other functions called by that function.
|
||||||
display_time->add_item(TTR("Self"));
|
display_time->add_item(TTR("Self"));
|
||||||
display_time->set_tooltip_text(TTR("Inclusive: Includes time from other functions called by this function.\nUse this to spot bottlenecks.\n\nSelf: Only count the time spent in the function itself, not in other functions called by that function.\nUse this to find individual functions to optimize."));
|
display_time->set_tooltip_text(TTR("Inclusive: Includes time from other functions called by this function.\nUse this to spot bottlenecks.\n\nSelf: Only count the time spent in the function itself, not in other functions called by that function.\nUse this to find individual functions to optimize."));
|
||||||
display_time->connect("item_selected", callable_mp(this, &EditorProfiler::_combo_changed));
|
display_time->connect("item_selected", callable_mp(this, &EditorProfiler::_combo_changed));
|
||||||
|
|
|
@ -247,7 +247,8 @@ Error EditorExportPlatform::_save_pack_file(void *p_userdata, const String &p_pa
|
||||||
|
|
||||||
pd->file_ofs.push_back(sd);
|
pd->file_ofs.push_back(sd);
|
||||||
|
|
||||||
if (pd->ep->step(TTR("Storing File:") + " " + p_path, 2 + p_file * 100 / p_total, false)) {
|
// TRANSLATORS: This is an editor progress label describing the storing of a file.
|
||||||
|
if (pd->ep->step(vformat(TTR("Storing File: %s"), p_path), 2 + p_file * 100 / p_total, false)) {
|
||||||
return ERR_SKIP;
|
return ERR_SKIP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2267,6 +2267,7 @@ Node *ResourceImporterScene::pre_import(const String &p_source_file, const HashM
|
||||||
Ref<EditorSceneFormatImporter> importer;
|
Ref<EditorSceneFormatImporter> importer;
|
||||||
String ext = p_source_file.get_extension().to_lower();
|
String ext = p_source_file.get_extension().to_lower();
|
||||||
|
|
||||||
|
// TRANSLATORS: This is an editor progress label.
|
||||||
EditorProgress progress("pre-import", TTR("Pre-Import Scene"), 0);
|
EditorProgress progress("pre-import", TTR("Pre-Import Scene"), 0);
|
||||||
progress.step(TTR("Importing Scene..."), 0);
|
progress.step(TTR("Importing Scene..."), 0);
|
||||||
|
|
||||||
|
|
|
@ -1134,6 +1134,7 @@ void AnimationPlayerEditor::_animation_duplicate() {
|
||||||
|
|
||||||
name_dialog_op = TOOL_DUPLICATE_ANIM;
|
name_dialog_op = TOOL_DUPLICATE_ANIM;
|
||||||
name_dialog->set_title(TTR("Duplicate Animation"));
|
name_dialog->set_title(TTR("Duplicate Animation"));
|
||||||
|
// TRANSLATORS: This is a label for the new name field in the "Duplicate Animation" dialog.
|
||||||
name_title->set_text(TTR("Duplicated Animation Name:"));
|
name_title->set_text(TTR("Duplicated Animation Name:"));
|
||||||
name->set_text(new_name);
|
name->set_text(new_name);
|
||||||
name_dialog->popup_centered(Size2(300, 90));
|
name_dialog->popup_centered(Size2(300, 90));
|
||||||
|
|
|
@ -78,7 +78,7 @@ bool Cast2DEditor::forward_canvas_gui_input(const Ref<InputEvent> &p_event) {
|
||||||
}
|
}
|
||||||
} else if (pressed) {
|
} else if (pressed) {
|
||||||
EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton();
|
EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton();
|
||||||
undo_redo->create_action(TTR("Set target_position"));
|
undo_redo->create_action(TTR("Set Target Position"));
|
||||||
undo_redo->add_do_property(node, "target_position", target_position);
|
undo_redo->add_do_property(node, "target_position", target_position);
|
||||||
undo_redo->add_do_method(canvas_item_editor, "update_viewport");
|
undo_redo->add_do_method(canvas_item_editor, "update_viewport");
|
||||||
undo_redo->add_undo_property(node, "target_position", original_target_position);
|
undo_redo->add_undo_property(node, "target_position", original_target_position);
|
||||||
|
|
|
@ -1666,6 +1666,7 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
|
||||||
} break;
|
} break;
|
||||||
case TRANSFORM_Z_AXIS: {
|
case TRANSFORM_Z_AXIS: {
|
||||||
_edit.plane = TRANSFORM_VIEW;
|
_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;
|
} break;
|
||||||
|
@ -4956,6 +4957,7 @@ Node3DEditorViewport::Node3DEditorViewport(Node3DEditor *p_spatial_editor, int p
|
||||||
view_menu->get_popup()->add_separator();
|
view_menu->get_popup()->add_separator();
|
||||||
view_menu->get_popup()->add_check_shortcut(ED_SHORTCUT("spatial_editor/view_lock_rotation", TTR("Lock View Rotation")), VIEW_LOCK_ROTATION);
|
view_menu->get_popup()->add_check_shortcut(ED_SHORTCUT("spatial_editor/view_lock_rotation", TTR("Lock View Rotation")), VIEW_LOCK_ROTATION);
|
||||||
view_menu->get_popup()->add_separator();
|
view_menu->get_popup()->add_separator();
|
||||||
|
// TRANSLATORS: "Normal" as in "normal life", not "normal vector".
|
||||||
view_menu->get_popup()->add_radio_check_shortcut(ED_SHORTCUT("spatial_editor/view_display_normal", TTR("Display Normal")), VIEW_DISPLAY_NORMAL);
|
view_menu->get_popup()->add_radio_check_shortcut(ED_SHORTCUT("spatial_editor/view_display_normal", TTR("Display Normal")), VIEW_DISPLAY_NORMAL);
|
||||||
view_menu->get_popup()->add_radio_check_shortcut(ED_SHORTCUT("spatial_editor/view_display_wireframe", TTR("Display Wireframe")), VIEW_DISPLAY_WIREFRAME);
|
view_menu->get_popup()->add_radio_check_shortcut(ED_SHORTCUT("spatial_editor/view_display_wireframe", TTR("Display Wireframe")), VIEW_DISPLAY_WIREFRAME);
|
||||||
view_menu->get_popup()->add_radio_check_shortcut(ED_SHORTCUT("spatial_editor/view_display_overdraw", TTR("Display Overdraw")), VIEW_DISPLAY_OVERDRAW);
|
view_menu->get_popup()->add_radio_check_shortcut(ED_SHORTCUT("spatial_editor/view_display_overdraw", TTR("Display Overdraw")), VIEW_DISPLAY_OVERDRAW);
|
||||||
|
|
|
@ -412,7 +412,7 @@ void ProjectSettingsEditor::_action_renamed(const String &p_old_name, const Stri
|
||||||
Dictionary action = GLOBAL_GET(old_property_name);
|
Dictionary action = GLOBAL_GET(old_property_name);
|
||||||
|
|
||||||
EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton();
|
EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton();
|
||||||
undo_redo->create_action(TTR("Rename Input Action Event"));
|
undo_redo->create_action(TTR("Rename Input Action"));
|
||||||
// Do: clear old, set new
|
// Do: clear old, set new
|
||||||
undo_redo->add_do_method(ProjectSettings::get_singleton(), "clear", old_property_name);
|
undo_redo->add_do_method(ProjectSettings::get_singleton(), "clear", old_property_name);
|
||||||
undo_redo->add_do_method(ProjectSettings::get_singleton(), "set", new_property_name, action);
|
undo_redo->add_do_method(ProjectSettings::get_singleton(), "set", new_property_name, action);
|
||||||
|
|
|
@ -1197,6 +1197,7 @@ GridMapEditor::GridMapEditor() {
|
||||||
options->get_popup()->add_item(TTR("Cursor Back Rotate Z"), MENU_OPTION_CURSOR_BACK_ROTATE_Z, KeyModifierMask::SHIFT + Key::D);
|
options->get_popup()->add_item(TTR("Cursor Back Rotate Z"), MENU_OPTION_CURSOR_BACK_ROTATE_Z, KeyModifierMask::SHIFT + Key::D);
|
||||||
options->get_popup()->add_item(TTR("Cursor Clear Rotation"), MENU_OPTION_CURSOR_CLEAR_ROTATION, Key::W);
|
options->get_popup()->add_item(TTR("Cursor Clear Rotation"), MENU_OPTION_CURSOR_CLEAR_ROTATION, Key::W);
|
||||||
options->get_popup()->add_separator();
|
options->get_popup()->add_separator();
|
||||||
|
// TRANSLATORS: This is a toggle to select after pasting the new content.
|
||||||
options->get_popup()->add_check_item(TTR("Paste Selects"), MENU_OPTION_PASTE_SELECTS);
|
options->get_popup()->add_check_item(TTR("Paste Selects"), MENU_OPTION_PASTE_SELECTS);
|
||||||
options->get_popup()->add_separator();
|
options->get_popup()->add_separator();
|
||||||
options->get_popup()->add_item(TTR("Duplicate Selection"), MENU_OPTION_SELECTION_DUPLICATE, KeyModifierMask::CTRL + Key::C);
|
options->get_popup()->add_item(TTR("Duplicate Selection"), MENU_OPTION_SELECTION_DUPLICATE, KeyModifierMask::CTRL + Key::C);
|
||||||
|
|
|
@ -8780,7 +8780,7 @@ Error ShaderLanguage::_parse_shader(const HashMap<StringName, FunctionInfo> &p_f
|
||||||
--texture_uniforms;
|
--texture_uniforms;
|
||||||
--texture_binding;
|
--texture_binding;
|
||||||
if (OS::get_singleton()->get_current_rendering_method() == "gl_compatibility") {
|
if (OS::get_singleton()->get_current_rendering_method() == "gl_compatibility") {
|
||||||
_set_error(RTR("'hint_normal_roughness_texture is not supported in gl_compatibility shaders."));
|
_set_error(RTR("'hint_normal_roughness_texture' is not supported in gl_compatibility shaders."));
|
||||||
return ERR_PARSE_ERROR;
|
return ERR_PARSE_ERROR;
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|
Loading…
Reference in New Issue