Translations

This commit is contained in:
Rendo 2025-12-17 16:59:21 +05:00
commit b79e87c7ca
30 changed files with 279 additions and 101 deletions

View file

@ -2,16 +2,26 @@ extends Node
const PLAYER_CFG = "user://client_settings"
signal locale_changed(StringName)
var NICKNAME: StringName = "MyNameIs"
var SENSITIVITY: float = 0.004
var TOGGLE_CROUCH: bool = false
var TOGGLE_SCOPE: bool = false
var TOGGLE_WALK: bool = false
var LOCALE: StringName = "automatic":
set(value):
LOCALE = value
locale_changed.emit(value)
TranslationServer.set_locale(value)
func _ready() -> void:
load_settings()
multiplayer.connected_to_server.connect(send_client_data)
if LOCALE == "automatic":
TranslationServer.set_locale(OS.get_locale_language())
func _exit_tree() -> void:
save_settings()
@ -33,6 +43,7 @@ func save_settings() -> void:
var compacted_toggles = 1 * int(TOGGLE_CROUCH) | 2 * int(TOGGLE_SCOPE) | 4 * int(TOGGLE_WALK)
file.store_line(str(compacted_toggles))
file.store_line(TranslationServer.get_locale())
func load_settings() -> void:
var file = FileAccess.open(PLAYER_CFG,FileAccess.READ)
@ -47,3 +58,5 @@ func load_settings() -> void:
TOGGLE_CROUCH = compacted_toggles & 1
TOGGLE_SCOPE = compacted_toggles & 2
TOGGLE_WALK = compacted_toggles & 4
LOCALE = file.get_line()

View file

@ -13,25 +13,40 @@ grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="PanelContainer" type="PanelContainer" parent="CenterContainer"]
[node name="PanelContainer" type="TabContainer" parent="CenterContainer"]
custom_minimum_size = Vector2(512, 256)
layout_mode = 2
tab_alignment = 1
current_tab = 3
script = ExtResource("1_xqyus")
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/PanelContainer"]
[node name="gameplay" type="VBoxContainer" parent="CenterContainer/PanelContainer"]
visible = false
layout_mode = 2
metadata/_tab_index = 0
[node name="video" type="VBoxContainer" parent="CenterContainer/PanelContainer"]
visible = false
layout_mode = 2
metadata/_tab_index = 1
[node name="FullscreenButton" type="CheckButton" parent="CenterContainer/PanelContainer/video"]
layout_mode = 2
text = "fullscreen"
[node name="controls" type="VBoxContainer" parent="CenterContainer/PanelContainer"]
visible = false
layout_mode = 2
metadata/_tab_index = 2
[node name="Sensitivity" type="HBoxContainer" parent="CenterContainer/PanelContainer/controls"]
layout_mode = 2
[node name="FullscreenButton" type="CheckButton" parent="CenterContainer/PanelContainer/VBoxContainer"]
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/controls/Sensitivity"]
layout_mode = 2
text = "Полный экран"
text = "sensitivity"
[node name="Sensitivity" type="HBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/VBoxContainer/Sensitivity"]
layout_mode = 2
text = "Чувствительность"
[node name="SensitivitySlider" type="HSlider" parent="CenterContainer/PanelContainer/VBoxContainer/Sensitivity"]
[node name="SensitivitySlider" type="HSlider" parent="CenterContainer/PanelContainer/controls/Sensitivity"]
unique_name_in_owner = true
custom_minimum_size = Vector2(256, 0)
layout_mode = 2
@ -41,7 +56,7 @@ max_value = 0.02
step = 0.001
value = 0.001
[node name="SensitivityBox" type="SpinBox" parent="CenterContainer/PanelContainer/VBoxContainer/Sensitivity"]
[node name="SensitivityBox" type="SpinBox" parent="CenterContainer/PanelContainer/controls/Sensitivity"]
unique_name_in_owner = true
layout_mode = 2
max_value = 0.1
@ -50,14 +65,30 @@ value = 0.02
allow_greater = true
allow_lesser = true
[node name="GameplayMainAudio" type="HBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer"]
[node name="StopSession" type="Button" parent="CenterContainer/PanelContainer/controls"]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Окончить сессию"
[node name="LeaveButton" type="Button" parent="CenterContainer/PanelContainer/controls"]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Покинуть сессию"
[node name="audio" type="VBoxContainer" parent="CenterContainer/PanelContainer"]
layout_mode = 2
metadata/_tab_index = 3
[node name="GameplayMainAudio" type="HBoxContainer" parent="CenterContainer/PanelContainer/audio"]
layout_mode = 2
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/VBoxContainer/GameplayMainAudio"]
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/audio/GameplayMainAudio"]
layout_mode = 2
text = "Геймплейные звуки"
text = "audio_gameplay"
[node name="GameplayMainSlider" type="HSlider" parent="CenterContainer/PanelContainer/VBoxContainer/GameplayMainAudio"]
[node name="GameplayMainSlider" type="HSlider" parent="CenterContainer/PanelContainer/audio/GameplayMainAudio"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
@ -65,22 +96,9 @@ max_value = 1.0
step = 0.01
value = 1.0
[node name="StopSession" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer"]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Окончить сессию"
[node name="LeaveButton" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer"]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Покинуть сессию"
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/FullscreenButton" to="CenterContainer/PanelContainer" method="_on_fullscreen_button_pressed"]
[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/FullscreenButton" to="CenterContainer/PanelContainer" method="_on_fullscreen_button_toggled"]
[connection signal="value_changed" from="CenterContainer/PanelContainer/VBoxContainer/Sensitivity/SensitivitySlider" to="CenterContainer/PanelContainer" method="_on_sensitivity_slider_value_changed"]
[connection signal="value_changed" from="CenterContainer/PanelContainer/VBoxContainer/Sensitivity/SensitivityBox" to="CenterContainer/PanelContainer" method="_on_sensitivity_box_value_changed"]
[connection signal="value_changed" from="CenterContainer/PanelContainer/VBoxContainer/GameplayMainAudio/GameplayMainSlider" to="CenterContainer/PanelContainer" method="_on_gameplay_main_slider_value_changed"]
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/StopSession" to="CenterContainer/PanelContainer" method="_on_stop_session_pressed"]
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/LeaveButton" to="CenterContainer/PanelContainer" method="_on_leave_button_pressed"]
[connection signal="toggled" from="CenterContainer/PanelContainer/video/FullscreenButton" to="CenterContainer/PanelContainer" method="_on_fullscreen_button_toggled"]
[connection signal="value_changed" from="CenterContainer/PanelContainer/controls/Sensitivity/SensitivitySlider" to="CenterContainer/PanelContainer" method="_on_sensitivity_slider_value_changed"]
[connection signal="value_changed" from="CenterContainer/PanelContainer/controls/Sensitivity/SensitivityBox" to="CenterContainer/PanelContainer" method="_on_sensitivity_box_value_changed"]
[connection signal="pressed" from="CenterContainer/PanelContainer/controls/StopSession" to="CenterContainer/PanelContainer" method="_on_stop_session_pressed"]
[connection signal="pressed" from="CenterContainer/PanelContainer/controls/LeaveButton" to="CenterContainer/PanelContainer" method="_on_leave_button_pressed"]
[connection signal="value_changed" from="CenterContainer/PanelContainer/audio/GameplayMainAudio/GameplayMainSlider" to="CenterContainer/PanelContainer" method="_on_gameplay_main_slider_value_changed"]