improved the name of language variables and moved the languages management script in the ButtonMenu

This commit is contained in:
Luca Canali 2022-08-17 20:19:42 +02:00
parent 71183f09c2
commit 9042005c8b
211 changed files with 98 additions and 62 deletions

34
scenes/Language.gd Normal file
View file

@ -0,0 +1,34 @@
extends MenuButton
func _ready():
make_popup_menu() # generate items for popup menu
get_popup().connect("id_pressed", self, "_on_item_pressed")
check_current_items()
func make_popup_menu():
for lang in game.languages.values():
get_popup().add_check_item(lang)
func check_current_items():
var items_count = get_popup().get_item_count()
for i in range(items_count):
var idx = get_popup().get_item_index(i)
if get_popup().get_item_text(idx) == game.languages[game.os_lang]:
get_popup().set_item_checked(idx, true)
else:
get_popup().set_item_checked(idx, false)
func _on_item_pressed(id):
#get_popup().set_item_checked(id, true)
var lang = get_popup().get_item_text(id)
for key in game.languages.keys():
var value = tr(game.languages[key])
if value == lang:
game.os_lang = key
check_current_items()
TranslationServer.set_locale(game.os_lang)

View file

@ -13,7 +13,7 @@ func load(path):
var level_names = []
var dir = Directory.new()
dir.open("res://levels/" + game.lang + "/%s" % slug)
dir.open("res://levels/" + game.os_lang + "/%s" % slug)
dir.list_dir_begin()
while true:
@ -28,7 +28,7 @@ func load(path):
var final_level_sequence = []
var level_sequence = Array(helpers.read_file("res://levels/" + game.lang + "/%s/sequence" % slug, "").split("\n"))
var level_sequence = Array(helpers.read_file("res://levels/" + game.os_lang + "/%s/sequence" % slug, "").split("\n"))
for level in level_sequence:
if level == "":
@ -42,7 +42,7 @@ func load(path):
for l in final_level_sequence:
var level = Level.new()
level.load("res://levels/" + game.lang + "/%s/%s" % [slug, l])
level.load("res://levels/" + game.os_lang + "/%s/%s" % [slug, l])
levels.push_back(level)
func _to_string():

View file

@ -1,7 +1,7 @@
extends Node
var langs = {0: "en_EN", 1: "it_IT"} # Localizations allowed
var lang = OS.get_locale() # Variable for game localization
var languages = {"en": tr("ENGLISH"), "it": tr("ITALIAN")} # Localizations allowed
var os_lang = OS.get_locale_language() # Variable for game localization
var tmp_prefix = OS.get_user_data_dir() + "/tmp/"
var global_shell
@ -21,10 +21,10 @@ var state = {}
var mutex
func _ready():
# Check if present localization language
if not langs.values().has(lang):
lang = langs[0]
# Check if language traslation exist otherwise use the default language
if not languages.keys().has(os_lang):
os_lang = "en"
mutex = Mutex.new()
load_state()

View file

@ -3,14 +3,14 @@ extends Node
var chapters
func _ready():
var lang = game.lang
var lang = game.os_lang
reload()
func reload():
chapters = []
var dir = Directory.new()
dir.open("res://levels/" + game.lang)
dir.open("res://levels/" + game.os_lang)
dir.list_dir_begin()
var chapter_names = []
@ -27,7 +27,7 @@ func reload():
var final_chapter_sequence = []
var chapter_sequence = Array(helpers.read_file("res://levels/" + game.lang + "/sequence", "").split("\n"))
var chapter_sequence = Array(helpers.read_file("res://levels/" + game.os_lang + "/sequence", "").split("\n"))
for chapter in chapter_sequence:
if chapter == "":
@ -41,5 +41,5 @@ func reload():
for c in final_chapter_sequence:
var chapter = Chapter.new()
chapter.load("res://levels/" + game.lang + "/%s" % c)
chapter.load("res://levels/" + game.os_lang + "/%s" % c)
chapters.push_back(chapter)

View file

@ -1,14 +1,14 @@
extends Control
onready var popup = $VBoxContainer/Language
#onready var popup = $VBoxContainer/Language
func _ready():
check_correct_lang_item()
#check_correct_lang_item()
if !OS.has_feature("standalone") and !game.skipped_title:
game.skipped_title = true
get_tree().change_scene("res://scenes/level_select.tscn")
make_popup_items()
#make_popup_items()
func quit():
get_tree().quit()
@ -28,36 +28,36 @@ func sandbox():
# Check the apropriate locale
func check_correct_lang_item():
for i in game.langs.keys():
if game.lang == game.langs[i]:
popup.get_popup().set_item_checked(i, true)
#func check_correct_lang_item():
# for i in game.langs.keys():
# if game.lang == game.langs[i]:
# popup.get_popup().set_item_checked(i, true)
# Set all items to unchecked
func uncheck_all_item():
for i in game.langs.keys():
popup.get_popup().set_item_checked(i, false)
#func uncheck_all_item():
# for i in game.langs.keys():
# popup.get_popup().set_item_checked(i, false)
# Create popup items width allowed locales
func make_popup_items():
for i in game.langs.keys():
popup.get_popup().add_radio_check_item(game.langs[i], i)
uncheck_all_item()
check_correct_lang_item()
popup.get_popup().connect("id_pressed", self, "_on_item_pressed")
#func make_popup_items():
# for i in game.langs.keys():
# popup.get_popup().add_radio_check_item(game.langs[i], i)
#
# uncheck_all_item()
#
# check_correct_lang_item()
#
# popup.get_popup().connect("id_pressed", self, "_on_item_pressed")
# Change the translations and localizations of the cards and strings
func _on_item_pressed(id):
uncheck_all_item()
#func _on_item_pressed(id):
# uncheck_all_item()
popup.get_popup().set_item_checked(id, true)
game.lang = popup.get_popup().get_item_text(id)
# popup.get_popup().set_item_checked(id, true)
# game.lang = popup.get_popup().get_item_text(id)
TranslationServer.set_locale(game.lang)
# TranslationServer.set_locale(game.os_lang)

View file

@ -1,8 +1,9 @@
[gd_scene load_steps=5 format=2]
[gd_scene load_steps=6 format=2]
[ext_resource path="res://styles/theme.tres" type="Theme" id=1]
[ext_resource path="res://images/oh-my-git.png" type="Texture" id=2]
[ext_resource path="res://scenes/title.gd" type="Script" id=3]
[ext_resource path="res://scenes/Language.gd" type="Script" id=4]
[ext_resource path="res://fonts/default.tres" type="DynamicFont" id=5]
[node name="Title" type="Control"]
@ -19,8 +20,8 @@ margin_left = 790.778
margin_top = 594.135
margin_right = 1131.78
margin_bottom = 650.135
custom_fonts/font = ExtResource( 5 )
custom_colors/font_color = Color( 0.533333, 0.392157, 0.392157, 1 )
custom_fonts/font = ExtResource( 5 )
text = "by bleeptrack & blinry"
align = 1
__meta__ = {
@ -32,8 +33,8 @@ margin_left = 709.713
margin_top = 621.416
margin_right = 1209.71
margin_bottom = 677.416
custom_fonts/font = ExtResource( 5 )
custom_colors/font_color = Color( 0.533333, 0.392157, 0.392157, 1 )
custom_fonts/font = ExtResource( 5 )
text = "Original score by winniehell"
align = 1
__meta__ = {
@ -72,6 +73,7 @@ margin_right = 351.0
margin_bottom = 171.0
text = "LANGUAGE"
flat = false
script = ExtResource( 4 )
[node name="Sprite" type="Sprite" parent="."]