diff --git a/imports/locale/shared.lua b/imports/locale/shared.lua index e11190c..1ae4e63 100644 --- a/imports/locale/shared.lua +++ b/imports/locale/shared.lua @@ -26,6 +26,6 @@ end AddEventHandler('ox_lib:setLocale', loadLocale) return function() - local lang = IsDuplicityVersion() and lib.getServerLocale() or GetExternalKvpString('ox_lib', 'locale') or 'en' + local lang = lib.service == 'server' and lib.getServerLocale() or GetExternalKvpString('ox_lib', 'locale') or 'en' loadLocale(lang) end diff --git a/resource/locale/server.lua b/resource/locale/server.lua index 3e5a635..d47806f 100644 --- a/resource/locale/server.lua +++ b/resource/locale/server.lua @@ -1,3 +1,26 @@ +do + local locales = {} + local system = os.getenv('OS') + local command = system and system:match('Windows') and 'dir "' or 'ls "' + local path = GetResourcePath(lib.name) + local types = path:gsub('//', '/') .. '/locales' + local suffix = command == 'dir "' and '/" /b' or '/"' + local dir = io.popen(command .. types .. suffix) + + if dir then + for line in dir:lines() do + local file = line:gsub('([%a%-]+).json', '%1') + + if file then + locales[#locales+1] = file + end + end + dir:close() + end + + GlobalState.locales = locales +end + RegisterCommand('serverlocale', function(_, args, _) if args?[1] then SetResourceKvp('locale', args[1]) diff --git a/resource/main.lua b/resource/main.lua index d559307..5f1add1 100644 --- a/resource/main.lua +++ b/resource/main.lua @@ -1,10 +1,12 @@ -lib = setmetatable({}, { +lib = setmetatable({ + name = 'ox_lib' +}, { __newindex = function(self, name, fn) exports(name, fn) rawset(self, name, fn) end }) -if not LoadResourceFile('ox_lib', 'web/build/index.html') then +if not LoadResourceFile(lib.name, 'web/build/index.html') then error('Unable to load UI. Build ox_lib or download the latest release.\n ^3https://github.com/overextended/ox_lib/releases/latest/download/ox_lib.zip^0') end