tranid
Node.js based chromium devtools for generating translation id
Installation
$ [sudo] npm install -g tranid
Usage
CLI
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:
$ 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
$ 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:
$ tranid chromium_strings.grd 7337881442233988129 IDS_PRODUCT_NAME 7337881442233988129 IDS_SHORT_PRODUCT_NAME 7337881442233988129 IDS_ACCNAME_APP 7337881442233988129 ......
As Nodejs Module
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}`)
}
}