[MEGA RELEASE]MultiLanguage System for Client

02/10/2015 07:03 rollback#16
Quote:
Originally Posted by hsomy View Post
How to translate quests?
You could ask the player which language he wants at his first login and save it in the database via mysql_query. Then youre running the select query before every quest starts and depending on the entry in your db the quest will start in another language.

EDIT:
example quest:

PHP Code:
quest firstlogin begin
    state start begin
        when login with pc
.get_level() == 1 begin
            say
("Language?")
            
local s select("Deutsch""English""Spanish")
            
mysql_query("INSERT INTO player.language (player_id, language_id) VALUES ("..pc.get_player_id..", "..s..");")
            
set_state(_COMPLETE_)
        
end
    end
    state _COMPLETE_ begin
    end
end


quest example begin
    state start begin
        when login 
or kill with pc.get_level() >= 25 begin
            local language 
mysql_query("SELECT language_id FROM player.language WHERE player_id = "..pc.get_player_id()..";")
            if 
language == 1 then
                set_state
(quest_german)
            elseif 
language == 2 then
                set_state
(quest_english)
            elseif 
language == 3 then
                set_state
(quest_spanish)
            
end
        end
    end
    state quest_german begin
        when letter begin
            send_letter
("Hallo Welt!")
        
end
        when button 
or info begin
            say
("Hallo Welt!")
            
say("Willkommen!")
        
end
    end
    state quest_english begin
        when letter begin
            send_letter
("Hello World!")
        
end
        when button 
or info begin
            say
("Hello World!")
            
say("Welcome!")
        
end
    end
    state quest_spanish begin
        when letter begin
            send_letter
("Hola mundo!")
        
end
        when button 
or info begin
            say
("Hola mundo!")
            
say("Bienvenida!")
        
end
    end
end 
02/10/2015 12:29 Alergix2#17
Danke ! Sehr nice!
02/10/2015 12:30 Lefloyd#18
Quote:
Originally Posted by [Sensenmann] View Post
You could ask the player which language he wants at his first login and save it in the database via mysql_query. Then youre running the select query before every quest starts and depending on the entry in your db the quest will start in another language.

EDIT:
example quest:

PHP Code:
quest firstlogin begin
    state start begin
        when login with pc
.get_level() == 1 begin
            say
("Language?")
            
local s select("Deutsch""English""Spanish")
            
mysql_query("INSERT INTO player.language (player_id, language_id) VALUES ("..pc.get_player_id..", "..s..");")
            
set_state(_COMPLETE_)
        
end
    end
    state _COMPLETE_ begin
    end
end


quest example begin
    state start begin
        when login 
or kill with pc.get_level() >= 25 begin
            local language 
mysql_query("SELECT language_id FROM player.language WHERE player_id = "..pc.get_player_id()..";")
            if 
language == 1 then
                set_state
(quest_german)
            elseif 
language == 2 then
                set_state
(quest_english)
            elseif 
language == 3 then
                set_state
(quest_spanish)
            
end
        end
    end
    state quest_german begin
        when letter begin
            send_letter
("Hallo Welt!")
        
end
        when button 
or info begin
            say
("Hallo Welt!")
            
say("Willkommen!")
        
end
    end
    state quest_english begin
        when letter begin
            send_letter
("Hello World!")
        
end
        when button 
or info begin
            say
("Hello World!")
            
say("Welcome!")
        
end
    end
    state quest_spanish begin
        when letter begin
            send_letter
("Hola mundo!")
        
end
        when button 
or info begin
            say
("Hola mundo!")
            
say("Bienvenida!")
        
end
    end
end 
I'd rather use the quest flags for this - you don't need to use querys everytime..^^
Quest1:
Code:
quest language begin
	state start begin
		when letter begin
			send_letter("Choose language")
		end
		when button or info begin
			say_title("Choose language")
			say("Hello "..pc.get_name().."!")
			say("You can choose your language of")
			say("your quests. The default language is")
			say("english as you can see but we have")
			say("more options to offer.")
			say("Please choose your main language.")
			say("")
			local lang = select("English", "German", "Exit")
			if lang == 3 then
				return
			end
			pc.setqf("lang", lang - 1)
			say_title("Language chosen")
			say("Thank you. We will save your selection")
			say("and the quests will be in this language")
			say("now.")
			say("")
			complete_quest()
		end
	end
	
	state __COMPLETE__ begin
	end
end
Example Quest 2 with language selection:
Code:
quest kill begin
	state start begin
		when letter begin
			local lang = pc.getf("language", "lang")
			if lang == 0 then
				send_letter("Quest 1")
			elseif lang == 1 then
				send_letter("Aufgabe 1")
			end
		end
		when button or info begin
			local lang = pc.getf("language", "lang")
			if lang == 0 then
				say_title("Quest 1")
				say("Go and kill five wilddogs.")
				say("Return to the smith if you have")
				say("successfully completed the task.")
				say("")
			elseif lang == 1 then
				say_title("Aufgabe 1")
				say("Töte fünf Wildhunde und kehre")
				say("danach zum Schmied zurück.")
				say("")
			end
		end
	end
end
(well I was too lazy to complete this quest q_q)

Kind Regards
02/10/2015 13:00 rollback#19
Quote:
Originally Posted by Lefloyd View Post
I'd rather use the quest flags for this - you don't need to use querys everytime..^^
Quest1:
[...](well I was too lazy to complete this quest q_q)

Kind Regards
Mit
PHP Code:
pc.getqf("questname""flagname"
kann man questflags aus anderen Quests auslesen? *-*
Wusste ich noch nicht, hätte es sonst auch so gemacht :D
02/10/2015 13:34 VeSpacco#20
How about the text like "You received item x"? It's seems that multilanguage system can't work in this way, or maybe we need to modify the show mode of those message!
02/10/2015 14:06 .Sanii#21
Quote:
Originally Posted by VeSpacco View Post
How about the text like "You received item x"? It's seems that multilanguage system can't work in this way, or maybe we need to modify the show mode of those message!
OH MY FKN GOD ! You wrote your own text to that topic? Im so proud!...

For this Strings you have the locale_string.txt ;)

b2t:

It`s a nice System! But Serverside i would prefer a Questfunc which reads variables in .txt or sth. like locale.lua

For ex.:

Code:
say(GetTextByLanguage("EXAMPLE_VALUE"))
and in the new "locale"-File sth like this:

Code:
#Syntax is not right i think, its only the idea ;)
{"de",
 "EXAMPLE_VALUE" : "Das ist ein Beispiel!",
}
{"en",
 "EXAMPLE_VALUE" : "This is an example!",
}
02/10/2015 15:41 VeSpacco#22
Quote:
Originally Posted by .Sanii View Post
OH MY FKN GOD ! You wrote your own text to that topic? Im so proud!...

For this Strings you have the locale_string.txt ;)

[/code]
Ahahah!

Yes, I've locale_string.txt, but it's "global", I think that: for make a multilanguage system for locale_string it's needed to modify the server code, and add a variable that represent the language of the player, and so the server choose the better locale_string for the right player, or the easiest way maybe can be a string like this "You have received the %s item - Usted ha recibido el artículo % s - Vous avez reçu l'élément % s...."
02/10/2015 15:49 .Sanii#23
A String like your example is possible, but it is bad splitting of the string.

i would say: if you have the source, modify the complete LC_TEXT Funktion which reads the locale_string in the gamesource, and use the players language variable.

Then you put in the strings in the File which example i have posted before, so you can use 1 file for quests and game and all languages ;)

Maybe i will try to make this in the next days ;)
02/10/2015 16:01 mirceaciurcea#24
nice eugen gj
02/10/2015 16:16 Lemmiwinks ##25
Das was mir auffällt ist das es Shiro2 gestern als erstes hatte und es 1 Tag später releasd wird. Welcher geniale Kopf hat es gerript x3? Oder habt ihr es auch türkischen Foren gezogen?

Gruß
02/10/2015 16:20 hsomy#26
Quote:
Originally Posted by Lefloyd View Post
I'd rather use the quest flags for this - you don't need to use querys everytime..^^
Quest1:
Code:
quest language begin
	state start begin
		when letter begin
			send_letter("Choose language")
		end
		when button or info begin
			say_title("Choose language")
			say("Hello "..pc.get_name().."!")
			say("You can choose your language of")
			say("your quests. The default language is")
			say("english as you can see but we have")
			say("more options to offer.")
			say("Please choose your main language.")
			say("")
			local lang = select("English", "German", "Exit")
			if lang == 3 then
				return
			end
			pc.setqf("lang", lang - 1)
			say_title("Language chosen")
			say("Thank you. We will save your selection")
			say("and the quests will be in this language")
			say("now.")
			say("")
			complete_quest()
		end
	end
	
	state __COMPLETE__ begin
	end
end
Example Quest 2 with language selection:
Code:
quest kill begin
	state start begin
		when letter begin
			local lang = pc.getf("language", "lang")
			if lang == 0 then
				send_letter("Quest 1")
			elseif lang == 1 then
				send_letter("Aufgabe 1")
			end
		end
		when button or info begin
			local lang = pc.getf("language", "lang")
			if lang == 0 then
				say_title("Quest 1")
				say("Go and kill five wilddogs.")
				say("Return to the smith if you have")
				say("successfully completed the task.")
				say("")
			elseif lang == 1 then
				say_title("Aufgabe 1")
				say("Töte fünf Wildhunde und kehre")
				say("danach zum Schmied zurück.")
				say("")
			end
		end
	end
end
(well I was too lazy to complete this quest q_q)

Kind Regards
Thanks for helping i'll use your quest i have one last question what about ox event? Is there chance to translate questions and show the users language
02/10/2015 17:40 rollback#27
Quote:
Originally Posted by Gummibären 123 View Post
Das was mir auffällt ist das es Shiro2 gestern als erstes hatte und es 1 Tag später releasd wird. Welcher geniale Kopf hat es gerript x3? Oder habt ihr es auch türkischen Foren gezogen?

Gruß
komisch ... der thread ist schon 1 jahr alt ;)
02/10/2015 22:22 Nick#28
Quote:
Originally Posted by [Sensenmann] View Post
Mit
PHP Code:
pc.getqf("questname""flagname"
kann man questflags aus anderen Quests auslesen? *-*
Wusste ich noch nicht, hätte es sonst auch so gemacht :D
Sollte soweit mit pc.getf(string questName, string flagName) möglich sein.
Quote:
Originally Posted by [Sensenmann] View Post
komisch ... der thread ist schon 1 jahr alt ;)
Weswegen das Thema bereits gemeldet worden ist. (closerequested)

lg