0900-msg-reboot.lua — more Info in gluon-config-mode:reboot

Moin,

wir möchten gerne in site/i18n/de.po Informationen über die gewählte Community (technisch: „Domain“) anzeigen. Vermutlich geht das über 0900-msg-reboot.lua

renderer.render_string(msg, {
	hostname = hostname,
	site = site,
	sysconfig = sysconfig,
	contact = contact,
})

… aber so richtig erfolgreich waren wir bislang nicht.

Wie spricht man in site/i18n/de.po z. B. die „Domain“ an oder andere Werte aus site/site.conf bzw. site/domains/${xyz}.conf?

Übersetzungfiles (.pot und .po) sind sehr simple Werkzeuge; sie erlauben dir in dem Kontext in dem du sie aufrust, Strings abhängig von der gleichzeitig gewählten Sprache auszugeben oder auf einen default-String zurückzufallen, falls es für die gewählte Sprache und den gewählten String keine Übersetzung gibt.
Wichtig ist: die Übersetzungsfiles haben kein Verständnis vom Kontext in dem du sie aufrufst.

Es hindert dich aber nichts daran, da Lua-Code drin zu haben, den du nicht anständig escapest:

Wie du Informationen zur site in Lua abrufst findest du dann hier:
https://gluon.readthedocs.io/en/latest/dev/site_library.html

Viel Erfolg und einen schönen Abend,
Aiyion

1 „Gefällt mir“

Zum Vergleich noch die Strings, wie wir sie in Aachen haben

pubkey entspricht quasi „vpn aktiviert“ und ist das Gegenteil von novpn
Eins von beidem steht also am Anfang der Schlussseite nach dem Speichern im Config mode.

reboot wird immer angezeigt und kommt nach dem VPN String

welcome und contact-help sind auf der ersten Seite des Config Modes und erklären sich vermutlich von selbst

Ja, danke; da wir eine FW für verschiedene Communities bauen, brauchte ich noch ein paar Zusatzinfos, das habe ich u. a. in 0900-msg-reboot.lua (und entsprechend in site/domains/*.json) gelöst:

[…]
local communityname = string.gsub(util.exec(string.format("/lib/gluon/ffgt-geolocate/get_domain_name.sh %s", core_domain)),"\n", "") or "n/a"
local communitycontact = site.community_contact('info@4830.org')
[…]
renderer.render_string(msg, {
        hostname = hostname,
        site = site,
        sysconfig = sysconfig,
        contact = contact,
        ssid = ssid,
        domain = core_domain,
        community = communityname,
        communitycontact= communitycontact,
})
[…]

Den Namen der Community (domains_names[gluon.core.domain]) bekommt man bestimmt eleganter aus dem site-Datensatz raus, aber erstmal: Works for me :wink:

1 „Gefällt mir“