Skip to content

Update to support Chinese language (adding registration in i18n.js)#1092

Merged
MichaelWheeley merged 16 commits into
accius:Stagingfrom
Oukagen:resolve-conflicts
Jun 23, 2026
Merged

Update to support Chinese language (adding registration in i18n.js)#1092
MichaelWheeley merged 16 commits into
accius:Stagingfrom
Oukagen:resolve-conflicts

Conversation

@Oukagen

@Oukagen Oukagen commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

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!

accius and others added 15 commits May 6, 2026 23:38
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>
…uth detection"

This reverts commit e95faf6. The proxy fix was cherry-picked to main
prematurely. It will be validated on Staging first and reach main on the
normal release schedule. The fix remains intact on Staging (e7826d9).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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!
@MichaelWheeley

MichaelWheeley commented Jun 21, 2026

Copy link
Copy Markdown
Collaborator

@Oukagen please change target of PR from accius:main to accius:Staging
p.s. click on the pencil/edit button as if you were going to edit the title of this PR, then the target becomes available to change

@accius accius left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@accius accius changed the base branch from main to Staging June 22, 2026 13:47
@accius

accius commented Jun 22, 2026

Copy link
Copy Markdown
Owner

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>
@Oukagen

Oukagen commented Jun 23, 2026

Copy link
Copy Markdown
Contributor Author

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

@MichaelWheeley MichaelWheeley merged commit 1fd2d5e into accius:Staging Jun 23, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants