DGS Multilingual

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Description

  • 1. DGS has a built-in multilingual (multi-language) system.
  • 2. multilingual allows dynamic language changing and prevents non-essential GUI recreating or text reset by code.
  • 3. DGS multilingual system will specify the structure of Translation Table (Dictionary).

Usage 1 (Basic usage)

  • 0. Don't forget to import DGS Head or use "export.dgs:".
  • 1. A Translation Table (Dictionary) should be specified:
Dict = {
	TestText1="Welcome To DGS",
}
  • 2. And, send the dictionary into DGS:
dgsSetTranslationTable("testDict",Dict) --Name,Dictionary.
  • 3. Now, DGS knows that dictionary, we need to tell DGS we want to use it:
dgsSetAttachTranslation("testDict") --This is global setting to one resource
  • 3. Create a label:
label = dgsCreateLabel (0.51, 0.54, 0.16, 0.14, {"TestText"}, true )

Usage 2 (Basic usage)

  • 0. Don't forget to import DGS Head or use "export.dgs:".
  • 1. A Translation Table (Dictionary) should be specified:
Dict = {
	TestText1="Welcome To DGS",
}
  • 2. And, send the dictionary into DGS:
dgsSetTranslationTable("testDict",Dict) --Name,Dictionary.
  • 3. Now, DGS knows that dictionary, we can create a label and attach its text to the dictionary:
label = dgsCreateLabel (0.51, 0.54, 0.16, 0.14, {"TestText"}, true )
dgsAttachToTranslation(label,"testDict") --Only attach one element to the dictionary.

Or you can also do:

label = dgsCreateLabel (0.51, 0.54, 0.16, 0.14, "", true )
dgsAttachToTranslation(label,"testDict") --Only attach one element to the dictionary.
dgsSetText(label,{"TestText"})

Usage 3 (With parameters)

  • 0. Don't forget to import DGS Head or use "export.dgs:".
  • 1. A Translation Table (Dictionary) should be specified. And here we have an extra %rep% that takes the place of parameter:
Dict = {
	TestText1="Welcome To %rep%",
	TestText2="Welcome To %rep% %rep%",
}
  • 2. And, send the dictionary into DGS:
dgsSetTranslationTable("testDict",Dict) --Name,Dictionary.
  • 3. Now, DGS knows that dictionary, tell DGS we want to use it:
dgsSetAttachTranslation("testDict")
  • 4. Create a label, pass "DGS" as the argument
label1 = dgsCreateLabel (0.51, 0.54, 0.16, 0.14, {"TestText1","DGS"}, true )
label2 = dgsCreateLabel (0.51, 0.64, 0.16, 0.14, {"TestText2","DGS",":D"}, true )  -- 2 parameters.
label3 = dgsCreateLabel (0.51, 0.74, 0.16, 0.14, {"TestText2","DGS"}, true )  -- the rest unused '''%rep%''' will be deleted.

Usage 4 (High Level Translation)

  • 0. Don't forget to import DGS Head or use "export.dgs:".
  • 1. A Translation Table (Dictionary) should be specified. And DGS parameter support 2nd level translation:
Dict = {
	TestText="Welcome To %rep%. Have a good time %rep%",
	Smile=":)",
}
  • 2. And, send the dictionary into DGS:
dgsSetTranslationTable("testDict",Dict) --Name,Dictionary.
  • 3. Now, DGS knows that dictionary, tell DGS we want to use it:
dgsSetAttachTranslation("testDict")
  • 4. Create a label, and use 2nd level translation:
label = dgsCreateLabel (0.51, 0.54, 0.16, 0.14, {"TestText","DGS", {"Smile"}}, true )

or more

label = dgsCreateLabel (0.51, 0.54, 0.16, 0.14, {"TestText","DGS", {"TestText",{"TestText","Smile","Smile"},"Smile"}}, true )

Usage 5 (Language Change)

  • 0. Don't forget to import DGS Head or use "export.dgs:".
  • 1. A Translation Table (Dictionary) should be specified:
Dict1 = {
	TestText="Welcome To DGS",
}
Dict2 = {
	TestText="SGD oT emocleW",
}
  • 2. And, send the dictionary into DGS:
dgsSetTranslationTable("testDict",Dict1) --Name,Dictionary.
  • 3. Now, DGS knows that dictionary, tell DGS we want to use it:
dgsSetAttachTranslation("testDict")
  • 4. Create a label:
label = dgsCreateLabel (0.51, 0.54, 0.16, 0.14, {"TestText"}, true )
  • 4. Replace the dictionary (language changed), and you will see the text changed automatically:
dgsSetTranslationTable("testDict",Dict2)