-
Notifications
You must be signed in to change notification settings - Fork 29
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Internationalization -- conversion of strings from bitcoin core
- Loading branch information
Showing
3 changed files
with
151 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
#!/usr/bin/python | ||
''' | ||
Extract _("...") strings for translation and convert to Qt4 stringdefs so that | ||
they can be picked up by Qt linguist. | ||
''' | ||
from subprocess import Popen, PIPE | ||
|
||
OUT_CPP="src/qt/bitcoinstrings.cpp" | ||
EMPTY=['""'] | ||
|
||
def parse_po(text): | ||
""" | ||
Parse 'po' format produced by xgettext. | ||
Return a list of (msgid,msgstr) tuples. | ||
""" | ||
messages = [] | ||
msgid = [] | ||
msgstr = [] | ||
in_msgid = False | ||
in_msgstr = False | ||
|
||
for line in text.split('\n'): | ||
line = line.rstrip('\r') | ||
if line.startswith('msgid '): | ||
if in_msgstr: | ||
messages.append((msgid, msgstr)) | ||
in_msgstr = False | ||
# message start | ||
in_msgid = True | ||
|
||
msgid = [line[6:]] | ||
elif line.startswith('msgstr '): | ||
in_msgid = False | ||
in_msgstr = True | ||
msgstr = [line[7:]] | ||
elif line.startswith('"'): | ||
if in_msgid: | ||
msgid.append(line) | ||
if in_msgstr: | ||
msgstr.append(line) | ||
|
||
if in_msgstr: | ||
messages.append((msgid, msgstr)) | ||
|
||
return messages | ||
|
||
files = ['src/base58.h', 'src/bignum.h', 'src/db.cpp', 'src/db.h', 'src/externui.h', 'src/headers.h', 'src/init.cpp', 'src/init.h', 'src/irc.cpp', 'src/irc.h', 'src/key.h', 'src/main.cpp', 'src/main.h', 'src/net.cpp', 'src/net.h', 'src/noui.h', 'src/rpc.cpp', 'src/rpc.h', 'src/script.cpp', 'src/script.h', 'src/serialize.h', 'src/strlcpy.h', 'src/uint256.h', 'src/util.cpp', 'src/util.h'] | ||
|
||
# xgettext -n --keyword=_ $FILES | ||
child = Popen(['xgettext','--output=-','-n','--keyword=_'] + files, stdout=PIPE) | ||
(out, err) = child.communicate() | ||
|
||
messages = parse_po(out) | ||
|
||
f = open(OUT_CPP, 'w') | ||
f.write('#include <QtGlobal>\n') | ||
f.write('// Automatically generated by extract_strings.py\n') | ||
f.write('static const char *bitcoin_strings[] = {') | ||
for (msgid, msgstr) in messages: | ||
if msgid != EMPTY: | ||
f.write('QT_TRANSLATE_NOOP("bitcoin-core", %s),\n' % ('\n'.join(msgid))) | ||
f.write('};') | ||
f.close() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
#include <QtGlobal> | ||
// Automatically generated by extract_strings.py | ||
static const char *bitcoin_strings[] = {QT_TRANSLATE_NOOP("bitcoin-core", "Bitcoin version"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Usage:"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Send command to -server or bitcoind\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "List commands\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Get help for a command\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Options:\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Specify configuration file (default: bitcoin.conf)\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Specify pid file (default: bitcoind.pid)\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Generate coins\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Don't generate coins\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Start minimized\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Specify data directory\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Specify connection timeout (in milliseconds)\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Connect through socks4 proxy\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Allow DNS lookups for addnode and connect\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Add a node to connect to\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Connect only to the specified node\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Don't accept connections from outside\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Don't attempt to use UPnP to map the listening port\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Attempt to use UPnP to map the listening port\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Fee per KB to add to transactions you send\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Accept command line and JSON-RPC commands\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Run in the background as a daemon and accept commands\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Use the test network\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Username for JSON-RPC connections\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Password for JSON-RPC connections\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Listen for JSON-RPC connections on <port> (default: 8332)\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Allow JSON-RPC connections from specified IP address\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Send commands to node running on <ip> (default: 127.0.0.1)\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Set key pool size to <n> (default: 100)\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Rescan the block chain for missing wallet transactions\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "" | ||
"\n" | ||
"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Use OpenSSL (https) for JSON-RPC connections\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Server certificate file (default: server.cert)\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Server private key (default: server.pem)\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "" | ||
"Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:" | ||
"@STRENGTH)\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "This help message\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "" | ||
"Cannot obtain a lock on data directory %s. Bitcoin is probably already " | ||
"running."), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Error loading addr.dat \n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Error loading blkindex.dat \n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Error loading wallet.dat \n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Invalid -proxy address"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount for -paytxfee=<amount>"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "" | ||
"Warning: -paytxfee is set very high. This is the transaction fee you will " | ||
"pay if you send a transaction."), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Warning: Disk space is low "), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "" | ||
"Error: This transaction requires a transaction fee of at least %s because of " | ||
"its amount, complexity, or use of recently received funds "), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Error: Transaction creation failed "), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Sending..."), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "" | ||
"Error: The transaction was rejected. This might happen if some of the coins " | ||
"in your wallet were already spent, such as if you used a copy of wallet.dat " | ||
"and coins were spent in the copy but not marked as spent here."), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Insufficient funds"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "Invalid bitcoin address"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "" | ||
"Unable to bind to port %d on this computer. Bitcoin is probably already " | ||
"running."), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "To use the %s option"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "" | ||
"Warning: %s, you must set rpcpassword=<password>\n" | ||
"in the configuration file: %s\n" | ||
"If the file does not exist, create it with owner-readable-only file " | ||
"permissions.\n"), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "" | ||
"You must set rpcpassword=<password> in the configuration file:\n" | ||
"%s\n" | ||
"If the file does not exist, create it with owner-readable-only file " | ||
"permissions."), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "" | ||
"Warning: Please check that your computer's date and time are correct. If " | ||
"your clock is wrong Bitcoin will not work properly."), | ||
QT_TRANSLATE_NOOP("bitcoin-core", "-beta"), | ||
}; |