tranid
Version:
Node.js based chromium devtools for generating translation id
85 lines (64 loc) • 2.32 kB
Markdown
# tranid
Node.js based chromium devtools for generating translation id
## Installation
```sh
$ [sudo] npm install -g tranid
```
## Usage
### <abbr title="Command Line Interface">CLI</abbr>
```
Usage:
tranid [OPTIONS] grd_or_grdp_file [message_name... or translation_id...]
Options:
-h, --help: Help
-v, --version : Version
Arguments:
grd_or_grdp_file: grd file or grdp file or - (stands for STDIN)
message_name...: zero or more message names (for generating translation ids)
or
translation_id...: zero or more translation ids (for finding corresponding message names)
```
* Generating translation id for used in xtb files:
```sh
$ tranid chromium_strings.grd
IDS_PROFILES_DISCONNECT_MANAGED_PROFILE_TEXT 918373042641772655
IDS_PRODUCT_NAME 7337881442233988129
IDS_SHORT_PRODUCT_NAME 7337881442233988129
IDS_SXS_SHORTCUT_NAME 6061155539545534980
......
```
Generate translation ids of all message names in chromium_strings.grd
```sh
$ tranid chromium_strings.grd IDS_PRODUCT_NAME IDS_TASK_MANAGER_TITLE IDS_SETTINGS_ABOUT_PROGRAM
IDS_PRODUCT_NAME 7337881442233988129
IDS_TASK_MANAGER_TITLE 7223968959479464213
IDS_SETTINGS_ABOUT_PROGRAM 1185134272377778587 (settings_chromium_strings.grdp)
IDS_SETTINGS_ABOUT_PROGRAM 7549178288319965365 (settings_chromium_strings.grdp)
```
Generate translation ids of IDS_PRODUCT_NAME, IDS_TASK_MANAGER_TITLE and IDS_SETTINGS_ABOUT_PROGRAM in chromium_strings.grd
Note: for convenience, tranid also search included grdp files.
* Given translation id, find corresponding message names:
```sh
$ tranid chromium_strings.grd 7337881442233988129
IDS_PRODUCT_NAME 7337881442233988129
IDS_SHORT_PRODUCT_NAME 7337881442233988129
IDS_ACCNAME_APP 7337881442233988129
......
```
### <abbr title="As Nodejs Module Interface">As Nodejs Module</abbr>
```js
const {tranid} = require('tranid')
const FS = require('fs')
FS.readFile('generated_resources.grd', 'utf8', function(err, data) {
if (err)
throw err
// usage: tranid(grd_content, message_names or translation_ids)
const [list, parts] = tranid(data, ['IDS_PRODUCT_NAME', 'IDS_TASK_MANAGER_TITLE'])
for (const [name, tid] of list) {
console.log(`${name} ${tid}`)
}
if (parts.length > 0) {
console.log(`found part files: ${parts}`)
}
}
```