Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/subsoap/defglot
A localization module for Defold
https://github.com/subsoap/defglot
Last synced: 3 months ago
JSON representation
A localization module for Defold
- Host: GitHub
- URL: https://github.com/subsoap/defglot
- Owner: subsoap
- License: cc0-1.0
- Created: 2017-08-17T06:11:50.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-11-13T01:29:01.000Z (about 1 year ago)
- Last Synced: 2024-10-10T13:06:38.671Z (4 months ago)
- Language: Lua
- Size: 257 KB
- Stars: 25
- Watchers: 2
- Forks: 6
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-defold - DefGlot
README
# DefGlot
A localization module for DefoldEasily support multiple translations of your game.
## Installation
You can use DefGlot in your own project by adding this project as a [Defold library dependency](http://www.defold.com/manuals/libraries/). Open your game.project file and in the dependencies field under project add:https://github.com/subsoap/defglot/archive/master.zip
Once added, you must require the main Lua module in your scripts via```
local defglot = require("defglot.defglot")
```Then add your list of languages, language data, init, and set GUI text based on current language.
```
function init(self)
defglot.language = "ru" -- if you do not define the language DefGlot will attempt to use OS lang
defglot.language_list.ru = "ru" -- add one or more langauges to in use language list
defglot.locale_data = require("example.main_locale") -- this is the locale data
defglot.init() -- you must init DefGlot so that it can ensure proper setup
defglot.set_text(gui.get_node("btn_start/label"))
defglot.set_text(gui.get_node("btn_about/label"))
defglot.set_text(gui.get_node("btn_exit/label"))
defglot.set_text(gui.get_node("btn_toggle_profiler/label"))
-- the toggle profiler text is missing so it will load missing string text in English
end```
DefGlot also works with GO labels but if you use it with labels you must always set a key as currently there is no label.get_text.
```
defglot.set_text("#label", "MY_KEY")```