Coming from ConvertZ
RustZ is modelled on ConvertZ 8.02 and ConCmd 1.5. This page shows how the two map onto each other and where they behave differently.
Mapping
| ConvertZ / ConCmd | RustZ |
|---|---|
ConvertZ.exe | rustz (the app) |
ConCmd.exe | rustz-cli |
ConCmd.ini, ConvertZ.ini | RustZ.ini; the [Data] keys are the same — see Settings file |
b5fix.dat, gbfix.dat, BI_TradFix.dat, BI_SimFix.dat | Built into the ConvertZ engine (the 8.02 BI versions) |
| User fix lists | The custom dictionary (different format and meaning — see below) |
| Clipboard conversion, the always-on toolbar | Clipboard conversion on the text page, and running in the background |
| Folder and file name conversion | Rename files (Traditional ⇄ Simplified) |
In batch files, replacing ConCmd with rustz-cli usually just works:
rem before
ConCmd D:\Projects\app.js /o:UTF8
rem after
rustz-cli D:\Projects\app.js /o:UTF8Differences in behaviour
| ConCmd | RustZ | |
|---|---|---|
| Script conversion | Per character + fix lists | OpenCC phrases by default; use /e:convertz for ConvertZ's results |
No /f: | Converts according to the target encoding | Converts only text that really is the other script (a Traditional UTF-8 file written as Big5 is left as it is) |
| Backup name | name.bak (replaces the extension) | original-name.bak (appended), so a.txt and a.js never share a backup; an existing backup is never overwritten (.1.bak, .2.bak…) |
| Switch prefix | / or - | /; - only on Windows, because on macOS/Linux a file named -y could act as a switch |
| Undecodable bytes | Written as is | Not overwritten in place without a backup unless /force is given; exit code 1 when files are skipped |
| UTF-8 BOM | AddBOMtoUTF8=1 in ConCmd.ini | Off by default (as in ConvertZ 8.01 and later); /bom or the settings file turns it on |
| Second argument already exists | Overwritten | Needs /y, so shell-expanded wildcards cannot turn an input into an output |
| Several inputs | One pattern | Also several file names, each overwritten in place |
| Unchanged files | Rewritten | Not rewritten; the modification time stays |
| Binary files | Skipped by extension | Also detected by content: files with NUL bytes are skipped (unless /i: is given) |
| Writing | In place | Temporary file, then rename |
| Platforms | Windows | macOS, Windows, Linux |
Fix lists are not custom dictionaries
A ConvertZ fix list matches text after per-character conversion: the left column is "what the conversion got wrong", the right column the correct form, and it works in one direction. RustZ's custom dictionary matches the original text: a "Simplified ↔ Traditional" pair used in both directions, ahead of the built-in dictionaries.
So old fix lists cannot be imported as they are. The fix lists built into ConvertZ 8.02 are all in the ConvertZ engine already; any rules you added yourself need rewriting as Simplified<Tab>Traditional lines for the custom dictionary.
Not ported yet
- ID3, APE and Ogg tag conversion for audio files.
- Hotkeys, copying before conversion and pasting after it.
- Repairing the encoding of file names (ConvertZ's Big5(asc) and GBK(asc) modes); Rename files converts the script only.
- The built-in fix list editor (use the custom dictionary instead).