Mercurial Hosting > reactionary
diff src/lib/Shared.luan @ 91:76baf48ea36b
add translation
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 02 May 2025 17:17:52 -0600 |
parents | c385a4f75b10 |
children | 7a56c17befab |
line wrap: on
line diff
--- a/src/lib/Shared.luan Wed Apr 23 20:10:03 2025 -0600 +++ b/src/lib/Shared.luan Fri May 02 17:17:52 2025 -0600 @@ -1,27 +1,52 @@ local Luan = require "luan:Luan.luan" local error = Luan.error local ipairs = Luan.ipairs or error() +local pairs = Luan.pairs or error() +local Time = require "luan:Time.luan" +local Http = require "luan:http/Http.luan" +local Site_translator = require "luan:gpt/Site_translator.luan" +local get_lang = Site_translator.get_lang or error() +local languages = Site_translator.languages or error() local Shared = {} +Http.not_found_handler = Site_translator.not_found_handler or error() + +local started = Time.now() + function Shared.head() %> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> - @import "/site.css"; + @import "/site.css?s=<%=started%>"; </style> + <script src="/site.js?s=<%=started%>"></script> <% end local function header(crumbs) + local lang = get_lang() + local home + if lang == "en" then + home = "/" + else + home = "/"..lang.."/" + end %> <div header> <span breadcrumbs> - <a href="/">Reactionary Software</a> + <a href="<%=home%>">Reactionary Software</a> <% for _, crumb in ipairs(crumbs or {}) do %> / <%=crumb%> <% end %> + - <select onchange="setLanguage(value)"> +<% for code, name in pairs(languages) do + local selected = code==lang and "selected" or "" +%> + <option value="<%=code%>" <%=selected%> ><%=name%></option> +<% end %> + </select> </span> <span>by <a href="https://linkmy.style/fschmidt">fschmidt</a></span> </div> @@ -30,11 +55,20 @@ Shared.header = header function Shared.existing_header() - header{[[<a href="/existing.html">Existing</a>]]} + header{[[<a href="existing.html">Existing</a>]]} end function Shared.needed_header() - header{[[<a href="/needed.html">Needed</a>]]} + header{[[<a href="needed.html">Needed</a>]]} +end + +function Shared.luan_url() + local url = "https://www.luan.software" + local lang = get_lang() + if lang ~= "en" then + url = url.."/"..lang + end + return url end return Shared