i18n(site): convert Hugo i18n TOML->go-i18n JSON for Weblate

Weblate has no native Hugo-TOML format. The strings are already the go-i18n
structure ([key]/other=), so convert site/i18n/{en,es}.toml -> {en,es}.json
({"key":{"other":"..."}}) — Hugo 0.140 reads it identically (verified with the
pinned hugomods/hugo:exts-0.140.2 image). Enables a 'site' Weblate component.

Update TRANSLATIONS.md: site is now a component (go-i18n-json), not deferred.
This commit is contained in:
vjrj 2026-07-15 19:42:54 +02:00
parent 7d5f26ff4a
commit 7150e337eb
5 changed files with 300 additions and 234 deletions

140
site/i18n/en.json Normal file
View file

@ -0,0 +1,140 @@
{
"skipToContent": {
"other": "Skip to content"
},
"navAbout": {
"other": "About"
},
"navLegal": {
"other": "Legal"
},
"navHome": {
"other": "Home"
},
"screenshotsTitle": {
"other": "A look inside"
},
"getItTitle": {
"other": "Get Tane"
},
"getItComingSoon": {
"other": "Publishing to app stores soon. Meanwhile, Tane is free software you can build and run today."
},
"legalIntro": {
"other": "The plain-language documents that govern Tane. Short version: your data stays on your device, Tane is only a tool, and you are responsible for the seeds you share."
},
"footerFreeSoftware": {
"other": "Free software (AGPL-3.0). No ads, no commissions, no data selling."
},
"footerPublishedBy": {
"other": "Published by"
},
"footerContact": {
"other": "Contact"
},
"backToHome": {
"other": "Back to home"
},
"statusBadge": {
"other": "Beta"
},
"statusTitle": {
"other": "Where Tane is right now"
},
"statusBody": {
"other": "The inventory works today: keep your seeds offline, encrypted, with no account. The neighbourly sharing layer (offers, messaging, trust) is being built now. Everything already works with zero network."
},
"screenCapHome": {
"other": "Home — your bank and the market, one tap away"
},
"screenCapInventory": {
"other": "Inventory — your seeds, grouped by family"
},
"screenCapMarket": {
"other": "Market — give, swap or sell with people nearby"
},
"screenCapCalendar": {
"other": "Calendar — what to sow this month"
},
"screenCapDetail": {
"other": "Variety — years, quantities, origin, germination"
},
"rtlNoteTitle": {
"other": "International by design"
},
"rtlNoteBody": {
"other": "Right-to-left and non-Latin scripts are first-class. Here is the inventory mirrored for RTL."
},
"collabTitle": {
"other": "Get involved"
},
"collabIntro": {
"other": "Tane has no business model — it lives on volunteers, communities and public tech grants. You can help:"
},
"collabTranslateT": {
"other": "Translate"
},
"collabTranslateB": {
"other": "Bring Tane to your language. Translation files are simple; patches are welcome."
},
"collabTestT": {
"other": "Try it with a seed group"
},
"collabTestB": {
"other": "Use it in a real seed network or fair and tell us what breaks or what's missing."
},
"collabCodeT": {
"other": "Contribute code"
},
"collabCodeB": {
"other": "Flutter/Dart, free software. Design docs and tests included."
},
"collabFundT": {
"other": "Support it"
},
"collabFundB": {
"other": "No ads, no commissions. Help fund the work or point us to grants for the commons."
},
"collabContact": {
"other": "Write to us"
},
"faqTitle": {
"other": "Questions"
},
"faqFreeQ": {
"other": "Is it free?"
},
"faqFreeA": {
"other": "Yes. Free software (AGPL-3.0), no ads, no commissions, no data selling."
},
"faqAccountQ": {
"other": "Do I need an account?"
},
"faqAccountA": {
"other": "No account, no sign-up, no server. Your data stays on your device."
},
"faqOfflineQ": {
"other": "Does it work offline?"
},
"faqOfflineA": {
"other": "Fully. The internet only enriches it; everything essential works with no connection."
},
"faqLegalQ": {
"other": "Is it legal to share seeds?"
},
"faqLegalA": {
"other": "Giving and swapping between growers is broadly allowed; selling can be regulated. You are responsible for what you share — see the notice on seed legality."
},
"faqDataQ": {
"other": "What about my privacy?"
},
"faqDataA": {
"other": "Data is encrypted on your device and only what you explicitly share ever leaves it. See the privacy policy."
},
"aboutCta": {
"other": "Learn what Tane is"
},
"footerSource": {
"other": "Source code"
}
}