jbe/bsw@0: function locale._get_translation_table() jbe/bsw@0: local language_code = locale.get("lang") jbe/bsw@0: if language_code then jbe/bsw@0: if type(language_code) ~= "string" then jbe/bsw@0: error('locale.get("lang") does not return a string.') jbe/bsw@0: end jbe/bsw@0: local translation_table = locale._translation_tables[language_code] jbe/bsw@0: if translation_table then jbe/bsw@0: return translation_table jbe/bsw@0: end jbe@209: local filename = encode.file_path(WEBMCP_BASE_PATH, "locale", "translations." .. language_code .. ".lua") jbe@64: local func jbe@64: if _ENV then jbe@64: func = assert(loadfile(filename), nil, {}) jbe@64: else jbe@64: func = assert(loadfile(filename)) jbe@64: setfenv(func, {}) jbe@64: end jbe/bsw@0: translation_table = func() jbe/bsw@0: if type(translation_table) ~= "table" then jbe/bsw@0: error("Translation file did not return a table.") jbe/bsw@0: end jbe/bsw@0: locale._translation_tables[language_code] = translation_table jbe/bsw@0: return translation_table jbe/bsw@0: else jbe/bsw@0: return locale._empty_translation_table jbe/bsw@0: end jbe/bsw@0: end