Update to support Chinese language (adding registration in i18n.js)#1092
Conversation
Release v26.3.1 — Staging → main
Hotfix: guard PropagationPanel against empty/invalid timeZone (RangeError on first load)
…g_line787 [Hotfix main] bug fix spelling of console.debug
Release v26.3.2 — pre-Hamvention drop (MeshCom + VOACAP hotfix)
whatsnew(26.3.2): correct MeshCom contributor attribution
Cuts Staging into main for the v26.3.3 release.
…ction
The socket idle timeout (60s) was the shortest of all failure timers, so
any 60s gap between spots — normal on quiet bands overnight — tore down a
healthy connection. Keepalive (120s) was too slow to prevent it and the
180s activity watchdog (the graceful node-failover) never got to run.
- socket timeout 60s -> 300s, as a last-resort TCP backstop; the 180s
activity watchdog now owns failover as designed
- keepalive 120s -> 60s so the connection stays warm
- destroy the socket in the 'timeout' handler — Node does not auto-close
on timeout, leaving a zombie socket that kept feeding data and
spuriously reset the failover counter after [RECONNECT]
- mark authenticated on first spot; the DXSpider prompt has no trailing
newline so prompt-based detection never matched, and sh/dx output lines
("...de Helmut<DF4IY>") false-matched the prompt regex
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Release v26.4.0
Release v26.4.1 — restore AMSAT + SatNOGS satellite fallbacks
chore: gitignore macOS Finder dups + cleanup
…lare req.ip resolved to the Cloudflare colo IP (CF -> Railway -> app is two hops, but trust proxy = 1), collapsing every real user into ~20 hashed buckets. /api/health concurrent users, unique-visitor stats, per-IP rate limits, presence lockout, PSK SSE limit, and rig-bridge long-poll cap all suffered the same bug. Added getClientIP() helper that prefers CF-Connecting-IP when CF-Ray is also present (CF strips both at its edge, so requiring CF-Ray prevents spoofing through the direct Railway origin URL); falls back to req.ip otherwise. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ip-prod fix(stats): resolve real client IP via CF-Connecting-IP behind Cloudflare (prod hotfix)
The shared DX Spider proxy logged in as OPENHAMCLOCK-56 — not a valid amateur callsign — so nodes rejected it. The proxy ignored the rejection, fired sh/dx 30 and set/dx anyway (read by the node as further bad logins), and reconnect-looped every 10s. A cluster sysop flagged this as abuse and threatened to block our IP. - Default login callsign is now K0CJH (valid); refuse to start on any invalid CALLSIGN instead of spamming nodes with junk logins. - Detect login-rejection responses and stop immediately: no follow-up commands, tear the socket down, back off. - Exponential reconnect backoff (10s base, capped at 5min) replaces the fixed 10s loop. - Remove dxc.nc7j.com (NC7J/NG7M, ArcConnect) from both the proxy and the in-app route node lists, and from the config default, at the sysop's request. Do not re-add. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Hi, I previously submitted the zh.json file, but it didn't show up as an option in the UI because I hadn't registered it in src/lang/i18n.js. I have now updated i18n.js to correctly import the Chinese translation file and register it within the LANGUAGES array and resources object. This should now enable the Chinese language option in the settings. Thank you for your time and for maintaining this project!
|
@Oukagen please change target of PR from accius:main to accius:Staging |
accius
left a comment
There was a problem hiding this comment.
The registration itself is correct: the import, the LANGUAGES entry, and the resources entry all line up, and zh.json is present in the tree so the import resolves. This is the missing half of the earlier zh.json submission and it does enable the option in settings.
One process note rather than a code issue: this PR targets main. Contributions to this project go through the Staging branch first and reach main on the normal release schedule. Could you retarget this to Staging. The build-and-push check also shows cancelled here, which a fresh run against Staging would clear up.
K0CJH
|
this PR has been updated to target staging branch correctly, however there are conflicts now. can you look at the conflicts and update the PR? Thank you! once that's done we will be able to push this to staging. |
Signed-off-by: Oukagen <123290441+Oukagen@users.noreply.github.com>
|
Thank you both for your help! I'm not very familiar with GitHub and coding, so I really appreciate your patience. I've resolved the conflicts as you asked. Please let me know if there's anything else that needs to be fixed.😸 @MichaelWheeley @accius |
Hi,
I previously submitted the zh.json file, but it didn't show up as an option in the UI because I hadn't registered it in src/lang/i18n.js.
I have now updated i18n.js to correctly import the Chinese translation file and register it within the LANGUAGES array and resources object. This should now enable the Chinese language option in the settings.
Thank you for your time and for maintaining this project!