diff --git a/config/_file_loader.lua b/config/_file_loader.lua index e468afc2..5bb834cd 100644 --- a/config/_file_loader.lua +++ b/config/_file_loader.lua @@ -61,6 +61,7 @@ return { 'modules.data.alt-view', 'modules.data.tag', 'modules.data.bonus', + 'modules.data.language', --- GUI 'modules.gui.readme', diff --git a/locale/af/language.cfg b/locale/af/language.cfg new file mode 100644 index 00000000..a982afdd --- /dev/null +++ b/locale/af/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Afrikaans \ No newline at end of file diff --git a/locale/ar/language.cfg b/locale/ar/language.cfg new file mode 100644 index 00000000..833f20c0 --- /dev/null +++ b/locale/ar/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Arabic \ No newline at end of file diff --git a/locale/be/language.cfg b/locale/be/language.cfg new file mode 100644 index 00000000..fd8f0f6b --- /dev/null +++ b/locale/be/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Belarusian \ No newline at end of file diff --git a/locale/bg/language.cfg b/locale/bg/language.cfg new file mode 100644 index 00000000..1985ceda --- /dev/null +++ b/locale/bg/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Bulgarian \ No newline at end of file diff --git a/locale/ca/language.cfg b/locale/ca/language.cfg new file mode 100644 index 00000000..211ca301 --- /dev/null +++ b/locale/ca/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Catalan \ No newline at end of file diff --git a/locale/cs/language.cfg b/locale/cs/language.cfg new file mode 100644 index 00000000..89ec2658 --- /dev/null +++ b/locale/cs/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Czech \ No newline at end of file diff --git a/locale/da/language.cfg b/locale/da/language.cfg new file mode 100644 index 00000000..e2454eff --- /dev/null +++ b/locale/da/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Danish \ No newline at end of file diff --git a/locale/de/language.cfg b/locale/de/language.cfg new file mode 100644 index 00000000..11e71b2b --- /dev/null +++ b/locale/de/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=German \ No newline at end of file diff --git a/locale/el/language.cfg b/locale/el/language.cfg new file mode 100644 index 00000000..553440f3 --- /dev/null +++ b/locale/el/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Greek \ No newline at end of file diff --git a/locale/en/language.cfg b/locale/en/language.cfg new file mode 100644 index 00000000..0923519d --- /dev/null +++ b/locale/en/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=English \ No newline at end of file diff --git a/locale/eo/language.cfg b/locale/eo/language.cfg new file mode 100644 index 00000000..35d3efbc --- /dev/null +++ b/locale/eo/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Esperanto \ No newline at end of file diff --git a/locale/es-ES/language.cfg b/locale/es-ES/language.cfg new file mode 100644 index 00000000..e4bc1a25 --- /dev/null +++ b/locale/es-ES/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Spanish (Spain) \ No newline at end of file diff --git a/locale/et/language.cfg b/locale/et/language.cfg new file mode 100644 index 00000000..1538c565 --- /dev/null +++ b/locale/et/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Estonian \ No newline at end of file diff --git a/locale/eu/language.cfg b/locale/eu/language.cfg new file mode 100644 index 00000000..bdbd19e1 --- /dev/null +++ b/locale/eu/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Basque \ No newline at end of file diff --git a/locale/fa/language.cfg b/locale/fa/language.cfg new file mode 100644 index 00000000..76694535 --- /dev/null +++ b/locale/fa/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Persian \ No newline at end of file diff --git a/locale/fi/language.cfg b/locale/fi/language.cfg new file mode 100644 index 00000000..9e368467 --- /dev/null +++ b/locale/fi/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Finnish \ No newline at end of file diff --git a/locale/fil/language.cfg b/locale/fil/language.cfg new file mode 100644 index 00000000..37ef243b --- /dev/null +++ b/locale/fil/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Filipino \ No newline at end of file diff --git a/locale/fr/language.cfg b/locale/fr/language.cfg new file mode 100644 index 00000000..154152b0 --- /dev/null +++ b/locale/fr/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=French \ No newline at end of file diff --git a/locale/fy-NL/language.cfg b/locale/fy-NL/language.cfg new file mode 100644 index 00000000..e64dc9fc --- /dev/null +++ b/locale/fy-NL/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Frysian (Netherlands) \ No newline at end of file diff --git a/locale/ga-IE/language.cfg b/locale/ga-IE/language.cfg new file mode 100644 index 00000000..67ffe218 --- /dev/null +++ b/locale/ga-IE/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Irish (Ireland) \ No newline at end of file diff --git a/locale/he/language.cfg b/locale/he/language.cfg new file mode 100644 index 00000000..f8df0bfb --- /dev/null +++ b/locale/he/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Hebrew \ No newline at end of file diff --git a/locale/hr/language.cfg b/locale/hr/language.cfg new file mode 100644 index 00000000..2a77181f --- /dev/null +++ b/locale/hr/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Croatian \ No newline at end of file diff --git a/locale/hu/language.cfg b/locale/hu/language.cfg new file mode 100644 index 00000000..57fa8581 --- /dev/null +++ b/locale/hu/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Hungarian \ No newline at end of file diff --git a/locale/id/language.cfg b/locale/id/language.cfg new file mode 100644 index 00000000..124961a5 --- /dev/null +++ b/locale/id/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Indonesian \ No newline at end of file diff --git a/locale/is/language.cfg b/locale/is/language.cfg new file mode 100644 index 00000000..9666d186 --- /dev/null +++ b/locale/is/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Icelandic \ No newline at end of file diff --git a/locale/it/language.cfg b/locale/it/language.cfg new file mode 100644 index 00000000..e2d6dee9 --- /dev/null +++ b/locale/it/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Italian \ No newline at end of file diff --git a/locale/ja/language.cfg b/locale/ja/language.cfg new file mode 100644 index 00000000..57882daa --- /dev/null +++ b/locale/ja/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Japanese \ No newline at end of file diff --git a/locale/ka/language.cfg b/locale/ka/language.cfg new file mode 100644 index 00000000..43563b9a --- /dev/null +++ b/locale/ka/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Georgian \ No newline at end of file diff --git a/locale/kk/language.cfg b/locale/kk/language.cfg new file mode 100644 index 00000000..25aeec65 --- /dev/null +++ b/locale/kk/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Kazakh \ No newline at end of file diff --git a/locale/ko/language.cfg b/locale/ko/language.cfg new file mode 100644 index 00000000..663635aa --- /dev/null +++ b/locale/ko/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Korean \ No newline at end of file diff --git a/locale/lt/language.cfg b/locale/lt/language.cfg new file mode 100644 index 00000000..ee4d7da9 --- /dev/null +++ b/locale/lt/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Lithuanian \ No newline at end of file diff --git a/locale/lv/language.cfg b/locale/lv/language.cfg new file mode 100644 index 00000000..4f096125 --- /dev/null +++ b/locale/lv/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Latvian \ No newline at end of file diff --git a/locale/nl/language.cfg b/locale/nl/language.cfg new file mode 100644 index 00000000..a18053c7 --- /dev/null +++ b/locale/nl/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Dutch (Netherlands) \ No newline at end of file diff --git a/locale/no/language.cfg b/locale/no/language.cfg new file mode 100644 index 00000000..0d199729 --- /dev/null +++ b/locale/no/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Norwegian (Norway) \ No newline at end of file diff --git a/locale/pl/language.cfg b/locale/pl/language.cfg new file mode 100644 index 00000000..9af25416 --- /dev/null +++ b/locale/pl/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Polish \ No newline at end of file diff --git a/locale/pt-BR/language.cfg b/locale/pt-BR/language.cfg new file mode 100644 index 00000000..d26adbc0 --- /dev/null +++ b/locale/pt-BR/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Portuguese (Brazil) \ No newline at end of file diff --git a/locale/pt-PT/language.cfg b/locale/pt-PT/language.cfg new file mode 100644 index 00000000..9aa5012b --- /dev/null +++ b/locale/pt-PT/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Portuguese (Portugal) \ No newline at end of file diff --git a/locale/ro/language.cfg b/locale/ro/language.cfg new file mode 100644 index 00000000..d1383c6c --- /dev/null +++ b/locale/ro/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Romanian \ No newline at end of file diff --git a/locale/ru/language.cfg b/locale/ru/language.cfg new file mode 100644 index 00000000..2b4618d3 --- /dev/null +++ b/locale/ru/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Russian \ No newline at end of file diff --git a/locale/sk/language.cfg b/locale/sk/language.cfg new file mode 100644 index 00000000..40d4f55a --- /dev/null +++ b/locale/sk/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Slovak \ No newline at end of file diff --git a/locale/sl/language.cfg b/locale/sl/language.cfg new file mode 100644 index 00000000..7c8f942c --- /dev/null +++ b/locale/sl/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Slovenian \ No newline at end of file diff --git a/locale/sq/language.cfg b/locale/sq/language.cfg new file mode 100644 index 00000000..443e8d15 --- /dev/null +++ b/locale/sq/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Albanian \ No newline at end of file diff --git a/locale/sr/language.cfg b/locale/sr/language.cfg new file mode 100644 index 00000000..df25672a --- /dev/null +++ b/locale/sr/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Serbian \ No newline at end of file diff --git a/locale/sv-SE/language.cfg b/locale/sv-SE/language.cfg new file mode 100644 index 00000000..2ac069d8 --- /dev/null +++ b/locale/sv-SE/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Swedish (Sweden) \ No newline at end of file diff --git a/locale/th/language.cfg b/locale/th/language.cfg new file mode 100644 index 00000000..e2b08541 --- /dev/null +++ b/locale/th/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Thai \ No newline at end of file diff --git a/locale/tr/language.cfg b/locale/tr/language.cfg new file mode 100644 index 00000000..7f5ac7b8 --- /dev/null +++ b/locale/tr/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Turkish \ No newline at end of file diff --git a/locale/uk/language.cfg b/locale/uk/language.cfg new file mode 100644 index 00000000..cc7fad4e --- /dev/null +++ b/locale/uk/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Ukrainian \ No newline at end of file diff --git a/locale/vi/language.cfg b/locale/vi/language.cfg new file mode 100644 index 00000000..222c10f3 --- /dev/null +++ b/locale/vi/language.cfg @@ -0,0 +1,2 @@ +[language] +local-language=Vietnamese \ No newline at end of file diff --git a/modules/data/language.lua b/modules/data/language.lua new file mode 100644 index 00000000..3093f01f --- /dev/null +++ b/modules/data/language.lua @@ -0,0 +1,33 @@ +--- Stores the language used to join the server +-- @data Language + +local Event = require 'utils.event' ---@dep utils.event +local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data +local LocalLanguage = PlayerData.Settings:combine('LocalLanguage') +LocalLanguage:set_default("Unknown") + +--- Creates translation request on_load of a player +LocalLanguage:on_load(function(player_name, language) + local player = game.players[player_name] + player.request_translation("language.local-language") +end) + +--- Resolves translation request for language setting +Event.add(defines.events.on_string_translated, function(event) + -- Check if the translation request was for language setting + if event.localised_string ~= "language.local-language" then + return + end + + -- Check if the translation request was succesful + if not event.translated then + game.print("Could not detect your language settings") + -- Raise error + return + end + + -- Change LocalLanguage value for the player to the recognized one + local player = game.players[event.player_index] + local language = {event.result} + LocalLanguage:set(player, language) +end) \ No newline at end of file