Skip to content

Commit 447df41

Browse files
committed
fix(languages): Move language setting declaration to after language supporte exists
1 parent 4e24a1c commit 447df41

2 files changed

Lines changed: 15 additions & 23 deletions

File tree

core/languages.lua

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
--- SILE language class.
22
-- @interfaces languages
33

4-
local loadkit = require("loadkit")
54
local cldr = require("cldr")
5+
local loadkit = require("loadkit")
6+
local setenv = require("rusile").setenv
67

78
loadkit.register("ftl", function (file)
89
local contents = assert(file:read("*a"))
@@ -54,6 +55,19 @@ SILE.languageSupport = {
5455
end,
5556
}
5657

58+
SILE.settings:declare({
59+
parameter = "document.language",
60+
type = "string",
61+
default = "en",
62+
hook = function (language)
63+
SILE.languageSupport.loadLanguage(language)
64+
fluent:set_locale(language)
65+
os.setlocale(language)
66+
setenv("LANG", language)
67+
end,
68+
help = "Locale for localized language support",
69+
})
70+
5771
SILE.registerCommand("language", function (options, content)
5872
local main = SU.required(options, "main", "language setting")
5973
SILE.languageSupport.loadLanguage(main)

core/settings.lua

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
local setenv = require("rusile").setenv
2-
31
--- core settings instance
42
--- @module SILE.settings
53

@@ -17,26 +15,6 @@ function settings:_init ()
1715
self.defaults = {}
1816
self.hooks = {}
1917

20-
self:declare({
21-
parameter = "document.language",
22-
type = "string",
23-
default = "en",
24-
hook = function (language)
25-
if SILE.scratch.loaded_languages and not SILE.scratch.loaded_languages[language] then
26-
SU.warn(([[
27-
Setting document.language to '%s', but support for '%s' has not been loaded
28-
29-
Consider invoking \language[main=%s] which loads language support before
30-
setting it or manually calling SILE.languageSupport.loadLanguage("%s").
31-
]]):format(language, language, language, language))
32-
end
33-
fluent:set_locale(language)
34-
os.setlocale(language)
35-
setenv("LANG", language)
36-
end,
37-
help = "Locale for localized language support",
38-
})
39-
4018
self:declare({
4119
parameter = "document.parindent",
4220
type = "glue",

0 commit comments

Comments
 (0)