Thanks for getting back to me, and no rush at all.
Yes — you're right that this affects every locale. Because the hard-coded localised_name on a prototype overrides the matching .cfg entry, no locale can translate those strings, regardless of what's in locale/<lang>/. So fixing the Lua side once will unblock all languages, not just zh-CN.
On the Simplified Chinese side: thanks for asking. Since the current translations were produced with an online translator, there are likely a few things worth cleaning up — most commonly official Factorio terminology (e.g. "roboport" → 机器人指令平台, "cargo wagon" → 货运车厢, "equipment grid" → 装备栏) and consistency of terms across the file. I'd be happy to review the existing zh-CN file and send you a corrected version, or provide a fresh one once the Lua strings are moved to locale keys.
Suggested order of work, so we don't step on each other:
You refactor the hard-coded strings to locale keys and add the en entries (this is the part that unblocks every locale).
I review the current zh-CN file, fix terminology/consistency, and add translations for any new keys you introduce.
I send you the updated zh-CN .cfg as a PR or as a file you can drop in.
If you'd prefer, I can also prepare step 1 as a PR (Lua changes + en entries only, no gameplay changes) so you only need to review it. Either way works — just let me know which you'd rather do.
One small note for step 1: fusion-locomotive-exoskeleton-limit already has an entry in the .cfg, but the hard-coded strings in settings.lua override it. And fusion-locomotive-enable-nuclear-locomotive has no [mod-setting-name] / [mod-setting-description] entry at all, so it will need one added when the hard-coded strings are removed.
Thanks again for being open to this — happy to help however is most useful.