jbe/bsw@0: --[[-- jbe/bsw@0: locale.do_with( jbe/bsw@0: locale_options, -- table with locale information (as if passed to locale.set(...)) jbe/bsw@0: function() jbe/bsw@0: ... -- code to be executed with the given locale settings jbe/bsw@0: end jbe/bsw@0: ) jbe/bsw@0: jbe/bsw@0: This function executes code with temporarily changed locale settings. See locale.set(...) for correct usage of 'locale_options'. jbe/bsw@0: jbe/bsw@0: --]]-- jbe/bsw@0: jbe/bsw@0: function locale.do_with(locale_options, block) jbe@262: local old_data = table.new(locale._current_data) jbe@262: if locale_options.reset then jbe@262: locale._current_data = {} jbe@262: end jbe@262: for key, value in pairs(locale_options) do jbe@262: if key ~= "reset" then jbe@262: locale._current_data[key] = value jbe@262: end jbe/bsw@0: end jbe/bsw@0: locale.set(locale_options) jbe/bsw@0: block() jbe@262: locale._current_data = old_data jbe/bsw@0: end