Hi all,
A follow-up to last week's introduction of these three extensions: all three now speak German. The current releases — weewx-skyfield 1.13, weewx-celestial 7.3 and weewx-loopdata 6.4 — make every bundled page translatable through WeeWX's own lang-file mechanisms, and a complete German translation ships with each one.
First, a thank-you: Christian (peters77) reviewed the German translations — body names, moon phases, compass points, all 88 constellation names, and every string on the three sample reports — and ran all three on his own station. The screenshots below are his. Danke, Christian!
One line in weewx.conf:
[StdReport]
[[Defaults]]
lang = de
switches every skin that ships German — WeeWX's own Seasons skin included — in one go. Or set lang = de on an individual report's stanza ([[SkyfieldReport]], [[CelestialReport]], [[LoopDataReport]]) to switch just that page. English reports render exactly as before.
Here is what you get (Christian's screenshots):
weewx-skyfield — the Sky page:
weewx-celestial — the Celestial page:
weewx-loopdata — the sample gauges report:
The machinery is not just for the bundled pages — two almanac tags let any skin, in any language, render localized names (weewx-skyfield 1.13+, no PyEphem needed):
$almanac.<body>.label — the body's display name, translated by your report.$almanac.<body>.constellation.label — the translated name of the constellation the body currently stands in.For German, none of this needs configuring: the shipped lang files already carry the sun, moon, planets and all 88 constellations, so the bundled skins translate the moment you set lang = de — and a skin of your own picks up the same names by copying the shipped de.conf into its lang/ directory (the recipe is in the manual).
You only define names yourself for a language that doesn't ship yet, or for names of your own choosing (a named star, say). They go in the report's [Almanac] section — the same section that holds moon_phases — in skin.conf or a lang file; constellations in an [[Constellations]] subsection, keyed by IAU abbreviation. Say you want French:
[Almanac]
sun = Soleil
moon = Lune
polaris = Étoile polaire
[[Constellations]]
Leo = Lion
Psc = Poissons
With that in place:
$almanac.moon.label renders Lune$almanac.polaris.label renders Étoile polaire — this works for every body and all 412 IAU-named stars$almanac.saturn.constellation.label renders Poissons while Saturn stands in Pisces$almanac.saturn.constellation itself still renders the Latin Pisces in every language, so templates that compare it keep working; the IAU abbreviation is $almanac.saturn.constellation.abbrAnything you don't define falls back to English (Latin for constellations), so a partial list is fine.
The same names work live: list almanac.moon.label or almanac.saturn.constellation.label as weewx-loopdata fields and they are published to loop-data.txt in the language of loopdata's target report, ready for your page's javascript.
A lang file is a self-contained, no-code contribution: each skin ships lang/en.conf as its reference dictionary, and a translation is that file with the right-hand sides in your language — partial is fine, every missing string falls back to English. If there is demand for more languages, I'd be happy to do the work if you are willing to review the translated text.
Thanks,
John



On Jul 28, 2026, at 3:00 PM, John Kline <jo...@johnkline.com> wrote:
Hi all,
A follow-up to last week's introduction of these three extensions: all three now speak German. The current releases — weewx-skyfield 1.13, weewx-celestial 7.3 and weewx-loopdata 6.4 — make every bundled page translatable through WeeWX's own lang-file mechanisms, and a complete German translation ships with each one.
- https://github.com/chaunceygardiner/weewx-skyfield
- https://github.com/chaunceygardiner/weewx-celestial
- https://github.com/chaunceygardiner/weewx-loopdata
First, a thank-you: Christian (peters77) reviewed the German translations — body names, moon phases, compass points, all 88 constellation names, and every string on the three sample reports — and ran all three on his own station. The screenshots below are his. Danke, Christian!
One line in weewx.conf:
[StdReport] [[Defaults]] lang = deswitches every skin that ships German — WeeWX's own Seasons skin included — in one go. Or set
lang = deon an individual report's stanza ([[SkyfieldReport]],[[CelestialReport]],[[LoopDataReport]]) to switch just that page. English reports render exactly as before.
Here is what you get (Christian's screenshots):
weewx-skyfield — the Sky page:
weewx-celestial — the Celestial page:
weewx-loopdata — the sample gauges report: