Skip to content

Commit

Permalink
Improved localisation example
Browse files Browse the repository at this point in the history
  • Loading branch information
Björn Ritzl committed Apr 19, 2017
1 parent f637a56 commit 1596a23
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 97 deletions.
88 changes: 0 additions & 88 deletions examples/localization/input/game.input_binding
@@ -1,92 +1,4 @@
key_trigger {
input: KEY_UP
action: "up"
}
key_trigger {
input: KEY_DOWN
action: "down"
}
key_trigger {
input: KEY_SPACE
action: "trigger"
}
key_trigger {
input: KEY_LEFT
action: "left"
}
key_trigger {
input: KEY_RIGHT
action: "right"
}
mouse_trigger {
input: MOUSE_BUTTON_1
action: "touch"
}
gamepad_trigger {
input: GAMEPAD_LPAD_UP
action: "up"
}
gamepad_trigger {
input: GAMEPAD_LPAD_DOWN
action: "down"
}
gamepad_trigger {
input: GAMEPAD_LPAD_LEFT
action: "left"
}
gamepad_trigger {
input: GAMEPAD_LPAD_RIGHT
action: "right"
}
gamepad_trigger {
input: GAMEPAD_RPAD_LEFT
action: "left"
}
gamepad_trigger {
input: GAMEPAD_RPAD_RIGHT
action: "right"
}
gamepad_trigger {
input: GAMEPAD_RPAD_DOWN
action: "down"
}
gamepad_trigger {
input: GAMEPAD_RPAD_UP
action: "up"
}
gamepad_trigger {
input: GAMEPAD_LSTICK_LEFT
action: "left"
}
gamepad_trigger {
input: GAMEPAD_LSTICK_RIGHT
action: "right"
}
gamepad_trigger {
input: GAMEPAD_LSTICK_DOWN
action: "down"
}
gamepad_trigger {
input: GAMEPAD_LSTICK_UP
action: "up"
}
gamepad_trigger {
input: GAMEPAD_RSTICK_LEFT
action: "left"
}
gamepad_trigger {
input: GAMEPAD_RSTICK_RIGHT
action: "right"
}
gamepad_trigger {
input: GAMEPAD_RSTICK_DOWN
action: "down"
}
gamepad_trigger {
input: GAMEPAD_RSTICK_UP
action: "up"
}
touch_trigger {
input: TOUCH_MULTI
action: "multitouch"
}
6 changes: 3 additions & 3 deletions examples/localization/localization/localization.collection
Expand Up @@ -82,13 +82,13 @@ embedded_instances {
" x: 0.0\\n"
" y: 0.0\\n"
" z: 0.0\\n"
" w: 1.0\\n"
" w: 0.0\\n"
"}\\n"
"shadow {\\n"
" x: 0.0\\n"
" y: 0.0\\n"
" z: 0.0\\n"
" w: 1.0\\n"
" w: 0.0\\n"
"}\\n"
"leading: 1.0\\n"
"tracking: 0.0\\n"
Expand All @@ -101,7 +101,7 @@ embedded_instances {
"\"\n"
" position {\n"
" x: 0.0\n"
" y: 54.765\n"
" y: 60.924\n"
" z: 0.0\n"
" }\n"
" rotation {\n"
Expand Down
3 changes: 2 additions & 1 deletion examples/localization/localization/localization.script
@@ -1,4 +1,5 @@
local translate = require "localization.translate"
local translations = require "localization.translations"

local LANGUAGES = { "en", "se" }

Expand All @@ -9,6 +10,7 @@ end
function init(self)
msg.post(".", "acquire_input_focus")
self.language_index = 0
translate.add_translations(translations)
update_translation()
end

Expand All @@ -22,7 +24,6 @@ end

function on_input(self, action_id, action)
if action.released then
print("ooo", self.language_index)
self.language_index = (self.language_index + 1) % #LANGUAGES
translate.change_language(LANGUAGES[1 + self.language_index])
update_translation()
Expand Down
26 changes: 21 additions & 5 deletions examples/localization/localization/translate.lua
@@ -1,23 +1,39 @@
local translations = require "localization.translations"

local M = {
default_language = "en",
current_language = sys.get_sys_info().device_language or sys.get_sys_info().language
current_language = sys.get_sys_info().device_language or sys.get_sys_info().language,
translations = {},
}

--- Add translations
-- Translations should be in the format:
--
-- {
-- [language] = {
-- [key] = string,
-- }
-- }
-- @param translations
function M.add_translations(translations)
for language,translations_for_language in pairs(translations) do
M.translations[language] = M.translations[language] or {}
for key,translation in pairs(translations_for_language) do
M.translations[language][key] = translation
end
end
end

--- Change current language
-- @param language
function M.change_language(language)
M.current_language = language
end


--- Get translation for a specific key, optionally formatting it with
-- additional values
-- @param key The key containing the text to translate
-- @return The translated text
function M.translate(key, ...)
local t = translations[M.current_language] or translations[M.default_language]
local t = M.translations[M.current_language] or M.translations[M.default_language]
if not t or not t[key] then
return key
else
Expand Down

0 comments on commit 1596a23

Please sign in to comment.