Allows servers to set a preferred language and attempt to load locale files in any resources using the module.
Locale files should use the ISO Language Code (opens in a new tab) and be saved as ./locales/langcode.json
Setup
To change the preferred language from English, add the convar to your server.cfg and change en to the desired language code.
setr ox:locale enCreate a locales directory and a file for your language.
{
"grand_theft_auto": "grand theft auto",
"male": "male",
"female": "female",
"suspect_sex": "suspect is %s"
}{
"grand_theft_auto": "vol de voiture",
"male": "homme",
"female": "femme",
"suspect_sex": "le suspect est %s"
}files {
'locales/*.json'
}Usage
Initialise the locale module in your resource (once).
lib.locale()Format your strings with the new locale global. Additional arguments can be sent to format the locale output.
locale(str, ...)- str:
string - vararg?:
stringornumber
-- Load the locale module
lib.locale()
SetInterval(function()
print(locale('grand_theft_auto'))
print(locale('suspect_sex', locale('male')))
end, 5000)Phrases
You can create a locale string that references other locales to construct a phrase, rather than calling locale multiple times.
{
"hello": "hello %s",
"my_name_is": "my name is %s",
"hello_my_name_is": "${hello}! ${my_name_is}."
}print(locale('hello_my_name_is', 'doka', 'linden'))lib.getLocale
Gets a locale string from another resource and adds it to the dict.
lib.getLocale(resource, key)- resource:
string - key:
string