diff --git a/res/layouts/pages/languages.xml.lua b/res/layouts/pages/languages.xml.lua
index a064c68c..2e3710e9 100644
--- a/res/layouts/pages/languages.xml.lua
+++ b/res/layouts/pages/languages.xml.lua
@@ -9,10 +9,9 @@ function on_open()
table.sort(names)
local panel = document.root
- for _,k in ipairs(names) do
- panel:add(string.format(
- "",
- string.format("core.set_setting('ui.language', %q) menu:back()", invlocales[k]), k
+ for _,name in ipairs(names) do
+ panel:add(gui.template(
+ "language", {id=invlocales[name], name=name}
))
end
panel:add("")
diff --git a/res/layouts/templates/language.xml b/res/layouts/templates/language.xml
new file mode 100644
index 00000000..fea34b31
--- /dev/null
+++ b/res/layouts/templates/language.xml
@@ -0,0 +1,4 @@
+