The docs/packaging were largely un-rebranded Hush3 content, with several docs stating facts that are wrong for DragonX. This rewrites them against the verified DragonX source state. Corrections (not just branding): - PoW: RandomX (CPU), not Equihash/ASIC — README, overview.md, randomx.md - Privacy: private from genesis (ac_private=1, Sapling@height1), not "as of block 340000" — overview.md, payment-api.md - Removed the false "coinbase must be shielded" consensus claim (shield-coinbase.md, payment-api.md); coinbase is directly spendable - Fixed default fee 0.0001 (was 0.0010000, 10x); stratum port 22769 (was 19031) - datadir ~/.hush/DRAGONX, DRAGONX.conf, dragonxd/dragonx-cli/dragonx-tx, git.dragonx.is throughout; branch model dev->dragonx - Softened the inherited dPoW reorg claim (no live DragonX notary infra) Packaging: fix build-debian-package.sh + gen-manpages.sh to use the dragonx binaries/manpages; rename bash-completions to dragonx*; drop hush-arrakis-chain from the package. Keep /usr/share/hush (hardcoded in the binary for params). Also: README links/logo, ObsidianDragon + SilentDragonXAndroid wallets, networking/init/dev-process/contrib/util rebrand, and leftover helper scripts. Delete legacy duplicates (hushd.* init/service, HUSH3.conf examples, OLD_WALLETS.md, hsc.md) and rename hush-uri.bat -> dragonx-uri.bat. Out of scope (noted, not changed): historical changelog/copyright, the Hush mainnet airdrop snapshot, seed data files, depends/ source mirrors, and the in-code strCurrencyUnits="HUSH". Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
66 lines
3.0 KiB
Markdown
66 lines
3.0 KiB
Markdown
# Translation Strings Policy
|
|
|
|
This document provides guidelines for internationalization of dragonxd full node software.
|
|
|
|
## How to translate?
|
|
|
|
To mark a message as translatable
|
|
|
|
- In non-GUI source code (under `src`): use `_("...")`
|
|
|
|
No internationalization is used for e.g. developer scripts outside `src`.
|
|
|
|
## Strings to be translated
|
|
|
|
On a high level, these strings are to be translated:
|
|
|
|
- GUI strings, anything that appears in a dialog or window
|
|
|
|
- Command-line option documentation
|
|
|
|
### GUI strings
|
|
|
|
Anything that appears to the user in the GUI is to be translated. This includes labels, menu items, button texts, tooltips and window titles.
|
|
This includes messages passed to the GUI through the UI interface through `InitMessage`, `ThreadSafeMessageBox` or `ShowProgress`.
|
|
|
|
### Command-line options
|
|
|
|
Documentation for the command line options in the output of `--help` should be translated as well.
|
|
|
|
Make sure that default values do not end up in the string, but use string formatting like `strprintf(_("Threshold for disconnecting misbehaving peers (default: %u)"), 100)`. Putting default values in strings has led to accidental translations in the past, and forces the string to be retranslated every time the value changes.
|
|
|
|
Do not translate messages that are only shown to developers, such as those that only appear when `--help-debug` is used.
|
|
|
|
## General recommendations
|
|
|
|
### Avoid unnecessary translation strings
|
|
|
|
Try not to burden translators with translating messages that are e.g. slight variations of other messages.
|
|
In the GUI, avoid the use of text where an icon or symbol will do.
|
|
Make sure that placeholder texts in forms don't end up in the list of strings to be translated (use `<string notr="true">`).
|
|
|
|
### Make translated strings understandable
|
|
|
|
Try to write translation strings in an understandable way, for both the user and the translator. Avoid overly technical or detailed messages
|
|
|
|
### Do not translate internal errors
|
|
|
|
Do not translate internal errors, or log messages, or messages that appear on the RPC interface. If an error is to be shown to the user,
|
|
use a generic message, then log the detailed message to the log. E.g. "Error: A fatal internal error occurred, see debug.log for details".
|
|
This helps troubleshooting; if the error is the same for everyone, the likelihood is increased that it can be found using a search engine.
|
|
|
|
### Avoid fragments
|
|
|
|
Avoid dividing up a message into fragments. Translators see every string separately, so may misunderstand the context if the messages are not self-contained.
|
|
|
|
### Avoid HTML in translation strings
|
|
|
|
There have been difficulties with use of HTML in translation strings; translators should not be able to accidentally affect the formatting of messages.
|
|
This may sometimes be at conflict with the recommendation in the previous section.
|
|
|
|
### String freezes
|
|
|
|
During a string freeze (often before a major release), no translation strings are to be added, modified or removed.
|
|
|
|
This can be checked by executing `make translate` in the `src` directory, then verifying that `bitcoin_en.ts` remains unchanged.
|