diff --git a/classes/base.lua b/classes/base.lua index c51df53e9e..ae3fb8ad80 100644 --- a/classes/base.lua +++ b/classes/base.lua @@ -45,6 +45,7 @@ class.packages = {} function class:_init (options) if self == options then options = {} end + SILE.languageSupport.loadLanguage('und') -- preload for unlocalized fallbacks self:declareOptions() self:registerRawHandlers() self:registerCommands() diff --git a/core/languages.lua b/core/languages.lua index 7cd72e3940..fd084fdd1b 100644 --- a/core/languages.lua +++ b/core/languages.lua @@ -65,6 +65,12 @@ SILE.registerCommand("fluent", function (options, content) message = entry:format(options) else SU.warn(string.format("No localized message for %s found in locale %s", key, locale)) + fluent:set_locale('und') + entry = fluent:get_message(key) + if entry then + message = entry:format(options) + end + fluent:set_locale(locale) end SILE.processString(("%s"):format(message), "xml") end, nil, nil, true) diff --git a/i18n/und.ftl b/i18n/und.ftl index d08774c06a..63efe2fb03 100644 --- a/i18n/und.ftl +++ b/i18n/und.ftl @@ -1 +1,3 @@ hello = Namárië { $name }! + +tableofcontents-not-generated = Rerun SILE to process the table of contents!