Skip to content
My-DeniaPublic

About

WuwaTerm, an unofficial fan tool for Wuthering Waves (鸣潮): look up the game's official Chinese and English terms, translate sentences with names locked, and review existing translations. No-account public beta.

Topics

Resources

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

WuwaTerm: get Wuthering Waves terms right, in Chinese and English

Official Chinese and English terminology for the game Wuthering Waves (鸣潮): look up a term, translate a sentence without the names getting paraphrased, or check a translation you already have.
查询《鸣潮》中英官方术语,整句翻译时保留官方译名,并用词典核对已有译文。

Try the public beta · Self-host · Windows client · HTTP API · Docs
English · 简体中文

Latest release CI Python 3.11+ MIT License

Note

WuwaTerm is an unofficial, independent fan project. It is not affiliated with, authorized by, or endorsed by Kuro Games, and it uses no official game art. Wuthering Waves game data and in-game terminology are © Kuro Games.

Why WuwaTerm

WuwaTerm is for anyone who reads or writes about Wuthering Waves across Chinese and English: fan translators, guide and wiki writers, and community admins.

A general-purpose translator sees game names as ordinary words, so an official name can come back paraphrased, or rendered differently from one sentence to the next. WuwaTerm checks a dictionary built from the game's own text data first. When the whole query is a term, you get the dictionary's official string back byte for byte, with no model involved. When it is a sentence, the matching terms are locked before any text reaches a language model and put back unchanged afterwards.

The WuwaTerm public beta: looking up 声骸 returns the official English Echo, and translating 今汐装备了声骸 keeps both official names
The public beta, captured 2026-09-13 (the interface then offered Chinese only; it now offers Chinese and English). You can type in either language. 声骸 is listed twice because the game uses the term in two categories.

What you can do

  • Look up a term in either direction. Type Chinese or English and get the official pair. Short romanised queries such as shenghai can also match by pinyin.
  • Translate a sentence with the names locked. The direction is detected from the script, or you choose it. If a locked term goes missing or comes back altered, you get an error instead of a wrong name.
  • Review a translation you already have. Paste the source and your translation; WuwaTerm shows which official terms are confirmed and which need a look, and offers the official pair for each. It checks terminology only, not sentence meaning, and never calls a model.
  • Pick up where you left off. The review workbench downloads your draft as a manuscript file on your own computer, and you import it later to continue. The page cannot confirm the download reached disk. Ordinary leave and refresh ask first when the work cannot be restored from the manuscript imported in this visit. A crash or forced quit can still discard the page. There are no accounts and no cloud copy of your manuscript.

The review workbench: 今汐 is confirmed as Jinhsi, while 声骸 needs a look and the official Echo is offered
Review on the public beta: “Jinhsi” is confirmed; no official rendering of 声骸 is found in the translation, so the workbench offers “Echo”. Where it had to shorten a candidate list, the report says so instead of claiming a complete check. The image is cropped.

Where it runs

Surface What it does What you need
Public web beta Lookup, translation, review, manuscript files A browser
Telegram bot Lookup, translation, auto-translating a linked channel Your own server and bot token
Windows client Lookup, translation A server address and device token
HTTP API Lookup, translation, review Your own server

Outside the public beta, sentence translation also needs an OpenAI-compatible model configured on the server.

How it works

How WuwaTerm works: dictionary hits return official strings without a model; free text is term-locked before an OpenAI-compatible model translates it; the dictionary is built locally from pinned public game-text data

Telegram commands and the HTTP API share one dictionary-first application layer, and the public beta and the Windows client reach it through the API. Linked-channel auto-translation has its own orchestration over the same dictionary lookup and term locking. The terminology database is a local SQLite file you build from a pinned public copy of the game's text data; it is never shipped in a release or container image. The model is optional: without one, dictionary lookups still work. Modules, trust boundaries and request flows are mapped in Architecture.

Get started

Try it now

Open the public beta. There is no sign-up. The interface offers Chinese and English, first visits start in Chinese, and you can type English; lookups show both languages. Everyone shares the same first-come daily limits, counted separately for lookups, translations and reviews and reset at 00:00 UTC, so it can be busy or run out, and there is no SLA. Please do not paste personal or sensitive text. Limits are in Public Beta Site and privacy details in Privacy and LLM.

Run your own

The self-hosting guide goes from a checkout at a release tag to a first lookup: Docker Compose on Linux (or Python 3.11+ from source), about 2 GB of disk for the upstream data, and your own Telegram bot token and OpenAI-compatible endpoint if you want those features.

Windows client

Download WuwaTerm-<client version>-windows-x64.zip from the latest release, not the “Source code” archive. It is a portable, unsigned build, so Windows SmartScreen asks you to choose “More info” and then “Run anyway”. The client talks to a WuwaTerm server through its API and needs a device token from whoever runs that server; it does not connect to the public beta. See the client guide (in Chinese).

Telegram bot

There is no shared public bot. Run the bot on your own server with your own BotFather token, then authorize the groups it may serve.

You send The bot replies with
/tr 声骸 Echo
/tr Echo 声骸
/tr --to en 今汐装备了声骸 the sentence in English, names locked

Commands, group authorization and linked-channel auto-translation are covered in Telegram Behavior.

HTTP API

Versioned /v1 routes cover terms, translations and reviews, each authenticated with a revocable device token. The committed contract is docs/api/openapi.json, and the self-hosting guide walks through a first lookup and translation.

Documentation

For users For self-hosters For contributors
Public Beta Site Self-Hosting Contributing
Windows client (in Chinese) Support Matrix Architecture
Telegram Behavior Data Refresh Decision records
Privacy and LLM HTTP API contract Validation

Every guide is listed in the documentation index.

Under the hood

  • Python 3.11+ with python-telegram-bot (long polling) and FastAPI, over a SQLite dictionary that the serving containers mount read-only.
  • Architecture rules that CI enforces: the application layer imports no presentation code, and the API contract is drift-checked against a committed OpenAPI snapshot (ADR 0009).
  • Revocable device credentials for the API, stored only as salted scrypt verifiers (ADR 0010).
  • Transactional updates in the maintainer's deployment tooling: the new image, and for data updates a candidate database, is verified before the running service is touched, and an ordinary failure restores the previous image, database and commit pointer (ADR 0008).
  • A Windows client in PySide6 that holds no translation logic (ADR 0011), and a public beta built as a Cloudflare Worker that proxies the same API.

Project status

WuwaTerm is a personal hobby project, maintained on a best-effort basis. The latest tagged release is on the Releases page; main moves ahead of it, and CHANGELOG.md marks what is unreleased. The public beta promises no fixed availability or response time. Where to ask questions and what to expect is in SUPPORT.md.

Contributing

  • Getting a wrong result? Open a bug report with your query, what WuwaTerm returned and what the game shows. A term that is wrong in the game data itself has to be fixed upstream (SUPPORT.md).
  • Want to change code or docs? Read CONTRIBUTING.md. Local validation has one entry point: python scripts/validate.py.
  • Found a security problem? Report it privately as described in SECURITY.md.

License and data

The source code is released under the MIT License, © 2026 My-Denia. The license covers this project's code only. Wuthering Waves game data and in-game terminology are © Kuro Games and are not redistributed here: the dictionary is built on your own machine from a pinned public data source, as described in Data Refresh. The WuwaTerm logo and the images in this README are original to this project or screenshots of its own interface, and contain no game art (asset notes).

About

WuwaTerm, an unofficial fan tool for Wuthering Waves (鸣潮): look up the game's official Chinese and English terms, translate sentences with names locked, and review existing translations. No-account public beta.

Topics

Resources

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages