Преглед на файлове

multi-language support added

Frans van Daalen преди 5 години
родител
ревизия
f57b77e23e
променени са 36 файла, в които са добавени 30551 реда и са изтрити 396 реда
  1. 1 0
      src/core/USettings.pas
  2. 4884 0
      src/default.po
  3. 1 1
      src/gui-classic/UFRMAbout.lfm
  4. 3 1
      src/gui-classic/UFRMAbout.pas
  5. 1 2
      src/gui-classic/UFRMNewPrivateKeyType.lfm
  6. 3 1
      src/gui-classic/UFRMNewPrivateKeyType.pas
  7. 1 2
      src/gui-classic/UFRMNodesIp.lfm
  8. 3 1
      src/gui-classic/UFRMNodesIp.pas
  9. 1 1
      src/gui-classic/UFRMOperation.lfm
  10. 3 1
      src/gui-classic/UFRMOperation.pas
  11. 139 100
      src/gui-classic/UFRMPascalCoinWalletConfig.dfm
  12. 16 11
      src/gui-classic/UFRMPascalCoinWalletConfig.lfm
  13. 18 1
      src/gui-classic/UFRMPascalCoinWalletConfig.pas
  14. 1 2
      src/gui-classic/UFRMPayloadDecoder.lfm
  15. 3 1
      src/gui-classic/UFRMPayloadDecoder.pas
  16. 50 0
      src/gui-classic/UFRMSelectLanguage.dfm
  17. 72 0
      src/gui-classic/UFRMSelectLanguage.pas
  18. 15 16
      src/gui-classic/UFRMWallet.lfm
  19. 9 1
      src/gui-classic/UFRMWallet.pas
  20. 1 2
      src/gui-classic/UFRMWalletKeys.lfm
  21. 3 1
      src/gui-classic/UFRMWalletKeys.pas
  22. 4307 0
      src/libraries/gnugettext/gnugettext.pas
  23. BIN
      src/libssl-1_1.dll
  24. BIN
      src/locale/de/LC_MESSAGES/default.mo
  25. 4638 0
      src/locale/de/LC_MESSAGES/default.po
  26. BIN
      src/locale/en/LC_MESSAGES/default.mo
  27. 4638 0
      src/locale/en/LC_MESSAGES/default.po
  28. BIN
      src/locale/fr/LC_MESSAGES/default.mo
  29. 4638 0
      src/locale/fr/LC_MESSAGES/default.po
  30. BIN
      src/locale/nl/LC_MESSAGES/default.mo
  31. 4642 0
      src/locale/nl/LC_MESSAGES/default.po
  32. 206 247
      src/pascalcoin_wallet_classic.dproj
  33. 769 0
      src/pascalcoin_wallet_classic.dsk
  34. 11 4
      src/pascalcoin_wallet_classic.lpi
  35. 747 0
      src/pascalcoin_wallet_classic.~dsk
  36. 727 0
      src/pascalcoin_wallet_experimental.dsk

+ 1 - 0
src/core/USettings.pas

@@ -53,6 +53,7 @@ const
   CT_PARAM_ShowHashRateAs = 'ShowHashRateAs';
   CT_PARAM_AllowDownloadNewCheckpointIfOlderThan = 'AllowDownloadNewCheckpointIfOlderThan';
   CT_PARAM_MinFutureBlocksToDownloadNewSafebox = 'MinFutureBlocksToDownloadNewSafebox';
+  CT_PARAM_UILanguage = 'UILanguage';
 
 type
 

+ 4884 - 0
src/default.po

@@ -0,0 +1,4884 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# 
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2020-03-30 19:19\n"
+"PO-Revision-Date: 2020-03-30 19:19\n"
+"Last-Translator: Somebody <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: dxgettext 1.2.2\n"
+
+#. FRMAbout..Caption
+#: gui-classic/UFRMAbout.dfm:7
+msgid "About..."
+msgstr ""
+
+#. FRMAbout..Font.Name
+#: gui-classic/UFRMAbout.dfm:14
+#. FRMAbout..Label1..Font.Name
+#: gui-classic/UFRMAbout.dfm:130
+#. FRMAbout..lblBuild..Font.Name
+#: gui-classic/UFRMAbout.dfm:143
+#. FRMAbout..lblProtocolVersion..Font.Name
+#: gui-classic/UFRMAbout.dfm:156
+#. FRMAbout..Label3..Font.Name
+#: gui-classic/UFRMAbout.dfm:176
+#. FRMAbout..Label4..Font.Name
+#: gui-classic/UFRMAbout.dfm:190
+#. FRMAbout..Label5..Font.Name
+#: gui-classic/UFRMAbout.dfm:205
+#. FRMAccountSelect..Font.Name
+#: gui-classic/UFRMAccountSelect.dfm:12
+#. FRMDiagnosticTool..Font.Name
+#: gui-classic/UFRMDiagnosticTool.dfm:11
+#. FRMHashLock..Font.Name
+#: gui-classic/UFRMHashLock.dfm:12
+#. FRMHashLock..lblError..Font.Name
+#: gui-classic/UFRMHashLock.dfm:34
+#. FRMHashLock..GroupBox2..meHashLockData..Font.Name
+#: gui-classic/UFRMHashLock.dfm:117
+#. FRMMemoText..Font.Name
+#: gui-classic/UFRMMemoText.dfm:12
+#. FRMMemoText..Memo..Font.Name
+#: gui-classic/UFRMMemoText.dfm:50
+#. FRMNewPrivateKeyType..Font.Name
+#: gui-classic/UFRMNewPrivateKeyType.dfm:13
+#. FRMNodesIp..Font.Name
+#: gui-classic/UFRMNodesIp.dfm:13
+#. FRMOperation..Font.Name
+#: gui-classic/UFRMOperation.dfm:13
+#. FRMOperation..lblAccountBalance..Font.Name
+#: gui-classic/UFRMOperation.dfm:40
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblEncryptionErrors..Font.Name
+#: gui-classic/UFRMOperation.dfm:196
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..memoPayload..Font.Name
+#: gui-classic/UFRMOperation.dfm:259
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblTransactionErrors..Font.Name
+#: gui-classic/UFRMOperation.dfm:332
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblChangeKeyErrors..Font.Name
+#: gui-classic/UFRMOperation.dfm:410
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewOwnerErrors..Font.Name
+#: gui-classic/UFRMOperation.dfm:427
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblListAccountErrors..Font.Name
+#: gui-classic/UFRMOperation.dfm:539
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsDelistAccount..lblDelistErrors..Font.Name
+#: gui-classic/UFRMOperation.dfm:783
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyAccountErrors..Font.Name
+#: gui-classic/UFRMOperation.dfm:825
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..Label2..Font.Name
+#: gui-classic/UFRMOperation.dfm:851
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeInfoErrors..Font.Name
+#: gui-classic/UFRMOperation.dfm:978
+#. FRMOperation..PageControlLocked..tsGlobalError..lblGlobalErrors..Font.Name
+#: gui-classic/UFRMOperation.dfm:1065
+#. FRMOperation..PageControlLocked..tsGlobalError..bbPassword..Font.Name
+#: gui-classic/UFRMOperation.dfm:1080
+#. FRMOperation..memoAccounts..Font.Name
+#: gui-classic/UFRMOperation.dfm:1149
+#. FRMOperation..ebSenderAccount..Font.Name
+#: gui-classic/UFRMOperation.dfm:1167
+#. FRMOperationsExplorer..Font.Name
+#: gui-classic/UFRMOperationsExplorer.dfm:12
+#. FRMPascalCoinWalletConfig..Font.Name
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:13
+#. FRMPascalCoinWalletConfig..Label4..Font.Name
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:66
+#. FRMPascalCoinWalletConfig..Label7..Font.Name
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:110
+#. FRMPascalCoinWalletConfig..bbUpdatePassword..Font.Name
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:200
+#. FRMPayloadDecoder..Font.Name
+#: gui-classic/UFRMPayloadDecoder.dfm:14
+#. FRMPayloadDecoder..lblBlock..Font.Name
+#: gui-classic/UFRMPayloadDecoder.dfm:37
+#. FRMPayloadDecoder..lblDateTime..Font.Name
+#: gui-classic/UFRMPayloadDecoder.dfm:50
+#. FRMPayloadDecoder..lblOperationTxt..Font.Name
+#: gui-classic/UFRMPayloadDecoder.dfm:78
+#. FRMPayloadDecoder..lblAmount..Font.Name
+#: gui-classic/UFRMPayloadDecoder.dfm:99
+#. FRMPayloadDecoder..lblFee..Font.Name
+#: gui-classic/UFRMPayloadDecoder.dfm:119
+#. FRMPayloadDecoder..lblSender..Font.Name
+#: gui-classic/UFRMPayloadDecoder.dfm:146
+#. FRMPayloadDecoder..lblReceiver..Font.Name
+#: gui-classic/UFRMPayloadDecoder.dfm:166
+#. FRMPayloadDecoder..lblReceiverInfo..Font.Name
+#: gui-classic/UFRMPayloadDecoder.dfm:179
+#. FRMPayloadDecoder..PageControl..tsDecoded..lblDecodedMethod..Font.Name
+#: gui-classic/UFRMPayloadDecoder.dfm:214
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoDecoded..Font.Name
+#: gui-classic/UFRMPayloadDecoder.dfm:234
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoOriginalPayloadInHexa..Font.Name
+#: gui-classic/UFRMPayloadDecoder.dfm:253
+#. FRMPayloadDecoder..ebOphash..Font.Name
+#: gui-classic/UFRMPayloadDecoder.dfm:416
+#. FRMDiagnosticTool..Font.Name
+#: gui-classic/UFRMRandomHashUtil.dfm:11
+#. FRMRandomOperations..Font.Name
+#: gui-classic/UFRMRandomOperations.dfm:11
+#. FRMRandomOperations..pnlTop..lblTopCaption..Font.Name
+#: gui-classic/UFRMRandomOperations.dfm:44
+#. FRMRPCCalls..Font.Name
+#: gui-classic/UFRMRPCCalls.dfm:12
+#. FRMRPCCalls..pnlTop..lblTopCaption..Font.Name
+#: gui-classic/UFRMRPCCalls.dfm:50
+#. FRMSaleAccounts..Font.Name
+#: gui-classic/UFRMSaleAccounts.dfm:12
+#. FRMSaleAccounts..lblAccountBalance..Font.Name
+#: gui-classic/UFRMSaleAccounts.dfm:57
+#. FRMSaleAccounts..memoAccounts..Font.Name
+#: gui-classic/UFRMSaleAccounts.dfm:84
+#. FRMSaleAccounts..ebSenderAccount..Font.Name
+#: gui-classic/UFRMSaleAccounts.dfm:103
+#. FRMWallet..Font.Name
+#: gui-classic/UFRMWallet.dfm:13
+#. FRMWallet..pnlTop..lblTimeAverageAux..Font.Name
+#: gui-classic/UFRMWallet.dfm:284
+#. FRMWallet..pnlTop..Label16..Font.Name
+#: gui-classic/UFRMWallet.dfm:299
+#. FRMWallet..pnlTop..lblBlocksFound..Font.Name
+#: gui-classic/UFRMWallet.dfm:315
+#. FRMWallet..pnlTop..lblReceivedMessages..Font.Name
+#: gui-classic/UFRMWallet.dfm:333
+#. FRMWallet..pnlTop..lblBuild..Font.Name
+#: gui-classic/UFRMWallet.dfm:349
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsTop..Font.Name
+#: gui-classic/UFRMWallet.dfm:658
+#. FRMWallet..PageControl..tsPendingOperations..pnlPendingOperations..Label10..Font.Name
+#: gui-classic/UFRMWallet.dfm:870
+#. FRMWallet..PageControl..tsMessages..Label14..Font.Name
+#: gui-classic/UFRMWallet.dfm:1183
+#. FRMWallet..PageControl..tsMessages..memoMessages..Font.Name
+#: gui-classic/UFRMWallet.dfm:1216
+#. FRMWalletKeys..Font.Name
+#: gui-classic/UFRMWalletKeys.dfm:13
+#. FRMWalletKeys..lblKeysEncrypted..Font.Name
+#: gui-classic/UFRMWalletKeys.dfm:66
+#. FRMWalletKeys..memoPrivateKey..Font.Name
+#: gui-classic/UFRMWalletKeys.dfm:155
+#. FRMWalletKeys..bbUpdatePassword..Font.Name
+#: gui-classic/UFRMWalletKeys.dfm:504
+#. FRMDiagnosticTool..Font.Name
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:11
+msgid "Tahoma"
+msgstr ""
+
+#. FRMAbout..Label1..Caption
+#: gui-classic/UFRMAbout.dfm:126
+#. FRMWallet..Caption
+#: gui-classic/UFRMWallet.dfm:4
+msgid "Pascal full node Wallet (Classic GUI)"
+msgstr ""
+
+#. FRMAbout..lblBuild..Caption
+#: gui-classic/UFRMAbout.dfm:139
+msgid "Build:"
+msgstr ""
+
+#. FRMAbout..lblProtocolVersion..Caption
+#: gui-classic/UFRMAbout.dfm:152
+msgid "Protocol:"
+msgstr ""
+
+#. FRMAbout..Label2..Caption
+#: gui-classic/UFRMAbout.dfm:165
+msgid "Source Code:"
+msgstr ""
+
+#. FRMAbout..Label3..Caption
+#: gui-classic/UFRMAbout.dfm:172
+msgid "Check For New Versions:"
+msgstr ""
+
+#. FRMAbout..Label4..Caption
+#: gui-classic/UFRMAbout.dfm:186
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:252
+msgid "https://github.com/PascalCoin/PascalCoin"
+msgstr ""
+
+#. FRMAbout..Label5..Caption
+#: gui-classic/UFRMAbout.dfm:201
+msgid "https://sourceforge.net/projects/pascalcoin"
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:220
+msgid "Copyright (c) 2016 - 2019 PascalCoin "
+"developers"
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:221
+msgid "Based on Albert Molina original source "
+"code"
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:225
+msgid "Pascal (aka Pascal Coin) is P2P cryptocurrency without the need for "
+"historical "
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:228
+msgid "operations. This software comprises a node within the Pascal "
+"network."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:232
+msgid "Distributed under the MIT software license, see the accompanying file "
+"LICENSE  or "
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:233
+msgid "visit http://www.opensource.org/licenses/mit-license.php."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:237
+msgid "THIS IS EXPERIMENTAL SOFTWARE. Use it for educational purposes "
+"only."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:241
+msgid "This product includes software developed by the OpenSSL Project and "
+"Denis "
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:244
+msgid "Grinyuk (https://github.com/Arvur/OpenSSL-Delphi), some cryptographic "
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:247
+msgid "functions inspirated in code written by Ladar Levison and Marco "
+"Ferrante, and "
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:248
+msgid "Synapse Socket code copyright of Lukas "
+"Gebauer."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:251
+msgid "Original source code is written in Pascal Language and is available "
+"at "
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:254
+msgid "If you like it, consider a donation using "
+"BitCoin:"
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:255
+msgid "16K3HCZRhFUtM8GdWRcfKeaa6KsuyxZaYk"
+msgstr ""
+
+#. FRMAbout..bbClose..Caption
+#: gui-classic/UFRMAbout.dfm:266
+#. FRMPayloadDecoder..bbClose..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:353
+#. FRMWallet..MainMenu..miProject..MiClose..Caption
+#: gui-classic/UFRMWallet.dfm:1273
+msgid "Close"
+msgstr ""
+
+#. FRMAccountSelect..Caption
+#: gui-classic/UFRMAccountSelect.dfm:5
+msgid "Accounts"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbOnlyForSale..Caption
+#: gui-classic/UFRMAccountSelect.dfm:33
+msgid "Only for sale or swap"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..bbSearch..Caption
+#: gui-classic/UFRMAccountSelect.dfm:41
+msgid "Search"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbOnlyForPrivateSaleToMe..Caption
+#: gui-classic/UFRMAccountSelect.dfm:107
+msgid "Only for private sale to me"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbAccountsBalance..Caption
+#: gui-classic/UFRMAccountSelect.dfm:115
+msgid "Accounts Balance"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbMyAccounts..Caption
+#: gui-classic/UFRMAccountSelect.dfm:123
+msgid "My Accounts"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbOnlyForPublicSale..Caption
+#: gui-classic/UFRMAccountSelect.dfm:141
+msgid "Only for public sale"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbAccountsName..Caption
+#: gui-classic/UFRMAccountSelect.dfm:165
+msgid "Accounts name"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..Label17..Caption
+#: gui-classic/UFRMAccountSelect.dfm:192
+#. FRMWallet..pnlTop..Label5..Caption
+#: gui-classic/UFRMWallet.dfm:261
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..Label17..Caption
+#: gui-classic/UFRMWallet.dfm:543
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..Label20..Caption
+#: gui-classic/UFRMWallet.dfm:685
+msgid "Accounts:"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..lblAccountsCount..Caption
+#: gui-classic/UFRMAccountSelect.dfm:201
+#. FRMAccountSelect..pnlBottom..lblAccountsBalance..Caption
+#: gui-classic/UFRMAccountSelect.dfm:219
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblPayloadLength..Caption
+#: gui-classic/UFRMOperation.dfm:207
+#. FRMPayloadDecoder..lblDateTime..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:46
+#. FRMPayloadDecoder..lblOperationTxt..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:74
+#. FRMPayloadDecoder..lblAmount..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:95
+#. FRMPayloadDecoder..lblFee..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:115
+#. FRMPayloadDecoder..lblReceiver..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:162
+#. FRMWallet..pnlTop..lblCurrentBlock..Caption
+#: gui-classic/UFRMWallet.dfm:144
+#. FRMWallet..pnlTop..lblOperationsPending..Caption
+#: gui-classic/UFRMWallet.dfm:180
+#. FRMWallet..pnlTop..lblMinersClients..Caption
+#: gui-classic/UFRMWallet.dfm:198
+#. FRMWallet..pnlTop..lblCurrentDifficulty..Caption
+#: gui-classic/UFRMWallet.dfm:216
+#. FRMWallet..pnlTop..lblTimeAverage..Caption
+#: gui-classic/UFRMWallet.dfm:225
+#. FRMWallet..pnlTop..lblCurrentAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:270
+#. FRMWallet..pnlTop..lblTimeAverageAux..Caption
+#: gui-classic/UFRMWallet.dfm:279
+#. FRMWallet..pnlTop..lblBlocksFound..Caption
+#: gui-classic/UFRMWallet.dfm:310
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..lblAccountsCount..Caption
+#: gui-classic/UFRMWallet.dfm:561
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..lblAccountsBalance..Caption
+#: gui-classic/UFRMWallet.dfm:570
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..lblSelectedAccountsCount..Caption
+#: gui-classic/UFRMWallet.dfm:694
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..lblSelectedAccountsBalance..Caption
+#: gui-classic/UFRMWallet.dfm:712
+msgid "000"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..Label19..Caption
+#: gui-classic/UFRMAccountSelect.dfm:210
+#. FRMOperation..lblBalanceCaption..Caption
+#: gui-classic/UFRMOperation.dfm:50
+#. FRMSaleAccounts..lblBalanceCaption..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:73
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..Label19..Caption
+#: gui-classic/UFRMWallet.dfm:552
+msgid "Balance:"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..bbSelect..Caption
+#: gui-classic/UFRMAccountSelect.dfm:229
+msgid "Select"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..bbTypeStats..Caption
+#: gui-classic/UFRMAccountSelect.dfm:249
+msgid "Type stats"
+msgstr ""
+
+#. FRMDiagnosticTool..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:4
+#. FRMDiagnosticTool..Caption
+#: gui-classic/UFRMRandomHashUtil.dfm:4
+#. FRMDiagnosticTool..Caption
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:4
+msgid "FRMDiagnosticTool"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:25
+#. FRMDiagnosticTool..btnRH..Caption
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:25
+msgid "Start Random Hash"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:34
+#. FRMDiagnosticTool..btnRH2..Caption
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:34
+msgid "Start Random Hash 2"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2C..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:51
+#. FRMDiagnosticTool..btnRH2C..Caption
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:51
+msgid "Start Random Hash 2 (Cached)"
+msgstr ""
+
+#. FRMDiagnosticTool..btnEntropy..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:60
+#. FRMDiagnosticTool..btnEntropy..Caption
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:60
+msgid "Entropy Tests"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2NonceScan..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:69
+#. FRMDiagnosticTool..btnRH2NonceScan..Caption
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:69
+msgid "Start Random Hash 2 (Nonce Scan)"
+msgstr ""
+
+#. FRMDiagnosticTool..txtScanLevel..TextHint
+#: gui-classic/UFRMDiagnosticTool.dfm:79
+#. FRMDiagnosticTool..txtScanLevel..TextHint
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:79
+msgid "Enter Scan Level (2-4)"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRHC..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:86
+#. FRMDiagnosticTool..btnRHC..Caption
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:86
+msgid "Start Random Hash (Cached)"
+msgstr ""
+
+#. FRMHashLock..Caption
+#: gui-classic/UFRMHashLock.dfm:5
+msgid "Atomic Swap Hash-Lock "
+msgstr ""
+
+#. FRMHashLock..lblError..Caption
+#: gui-classic/UFRMHashLock.dfm:29
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblEncryptionErrors..Caption
+#: gui-classic/UFRMOperation.dfm:191
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblTransactionErrors..Caption
+#: gui-classic/UFRMOperation.dfm:327
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblChangeKeyErrors..Caption
+#: gui-classic/UFRMOperation.dfm:405
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewOwnerErrors..Caption
+#: gui-classic/UFRMOperation.dfm:422
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblListAccountErrors..Caption
+#: gui-classic/UFRMOperation.dfm:534
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsDelistAccount..lblDelistErrors..Caption
+#: gui-classic/UFRMOperation.dfm:778
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyAccountErrors..Caption
+#: gui-classic/UFRMOperation.dfm:820
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeInfoErrors..Caption
+#: gui-classic/UFRMOperation.dfm:973
+msgid "Errors detected"
+msgstr ""
+
+#. FRMHashLock..btnSet..Caption
+#: gui-classic/UFRMHashLock.dfm:56
+msgid "Set Hash-Lock"
+msgstr ""
+
+#. FRMHashLock..GroupBox1..Caption
+#: gui-classic/UFRMHashLock.dfm:67
+msgid "Mode"
+msgstr ""
+
+#. FRMHashLock..GroupBox1..rbHashLock....Caption
+#: gui-classic/UFRMHashLock.dfm:76
+msgid "Hash-Lock - the 32 byte hash-lock provided to you by the "
+"counterparty"
+msgstr ""
+
+#. FRMHashLock..GroupBox1..rbHashLockKey....Caption
+#: gui-classic/UFRMHashLock.dfm:86
+msgid "Hash-Lock Key - a secret that will be hashed to create the 32 byte "
+"hash-lock"
+msgstr ""
+
+#. FRMHashLock..GroupBox2..Caption
+#: gui-classic/UFRMHashLock.dfm:96
+msgid "Data"
+msgstr ""
+
+#. FRMHashLock..GroupBox2..Label2..Caption
+#: gui-classic/UFRMHashLock.dfm:106
+msgid "Please enter the hash lock data as a hexadecimal "
+"string"
+msgstr ""
+
+#. FRMMemoText..Caption
+#: gui-classic/UFRMMemoText.dfm:5
+msgid "Information"
+msgstr ""
+
+#. FRMMemoText..Memo....Lines.Strings
+#: gui-classic/UFRMMemoText.dfm:53
+msgid "Memo"
+msgstr ""
+
+#. FRMNewPrivateKeyType..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:6
+msgid "New Private Key"
+msgstr ""
+
+#. FRMNewPrivateKeyType..Label1..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:26
+msgid "Name"
+msgstr ""
+
+#. FRMNewPrivateKeyType..ebName..Text
+#: gui-classic/UFRMNewPrivateKeyType.dfm:34
+msgid "ebName"
+msgstr ""
+
+#. FRMNewPrivateKeyType..rgKeyType..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:41
+msgid " Key Type: "
+msgstr ""
+
+#. FRMNewPrivateKeyType..rgKeyType....Items.Strings
+#: gui-classic/UFRMNewPrivateKeyType.dfm:43
+msgid "asdf"
+msgstr ""
+
+#. FRMNewPrivateKeyType..bbOk..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:51
+#. FRMNodesIp..bbOk..Caption
+#: gui-classic/UFRMNodesIp.dfm:42
+#. FRMChangeLanguage..bbOk..Caption
+#: gui-classic/UFRMSelectLanguage.dfm:18
+#. FRMChangeLanguage..bbOk..Caption
+#: lib/i386-win32/ufrmselectlanguage.dfm:18
+msgid "OK"
+msgstr ""
+
+#. FRMNodesIp..Caption
+#: gui-classic/UFRMNodesIp.dfm:6
+msgid "Nodes IP"
+msgstr ""
+
+#. FRMNodesIp..Label1..Caption
+#: gui-classic/UFRMNodesIp.dfm:25
+msgid "Available Nodes Ip to connect"
+msgstr ""
+
+#. FRMNodesIp..memoNodesIp....Lines.Strings
+#: gui-classic/UFRMNodesIp.dfm:33
+msgid "memoNodesIp"
+msgstr ""
+
+#. FRMNodesIp..cbTryOnlyWithThisServers..Caption
+#: gui-classic/UFRMNodesIp.dfm:82
+msgid "Try to connect ONLY with this servers"
+msgstr ""
+
+#. FRMOperation..Caption
+#: gui-classic/UFRMOperation.dfm:6
+msgid "New Operation"
+msgstr ""
+
+#. FRMOperation..lblAccountCaption..Caption
+#: gui-classic/UFRMOperation.dfm:26
+#. FRMSaleAccounts..lblAccountCaption..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:25
+msgid "Account:"
+msgstr ""
+
+#. FRMOperation..lblAccountBalance..Caption
+#: gui-classic/UFRMOperation.dfm:35
+#. FRMSaleAccounts..lblAccountBalance..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:53
+msgid "lblAccountBalance"
+msgstr ""
+
+#. FRMOperation..lblAccountsCount..Caption
+#: gui-classic/UFRMOperation.dfm:59
+#. FRMSaleAccounts..lblAccountsCount..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:66
+msgid "XXX"
+msgstr ""
+
+#. FRMOperation..bbExecute..Caption
+#: gui-classic/UFRMOperation.dfm:68
+#. FRMOperation..ActionList..actExecute..Caption
+#: gui-classic/UFRMOperation.dfm:1179
+#. FRMSaleAccounts..bbExecute..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:178
+#. FRMSaleAccounts..ActionList..actExecute..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:215
+msgid "Execute (F12)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..lblFee..Caption
+#: gui-classic/UFRMOperation.dfm:113
+msgid "Operation Fee"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..lblSignerAccount..Caption
+#: gui-classic/UFRMOperation.dfm:122
+msgid "Signer account (Fee payer)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..Caption
+#: gui-classic/UFRMOperation.dfm:165
+msgid " Payload: "
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblEncryptPassword..Caption
+#: gui-classic/UFRMOperation.dfm:172
+msgid "Password:"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..Label4..Caption
+#: gui-classic/UFRMOperation.dfm:181
+msgid "Payload Data"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbEncryptedWithEC..Caption
+#: gui-classic/UFRMOperation.dfm:216
+msgid "Encrypted with dest account public key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbEncrptedWithPassword..Caption
+#: gui-classic/UFRMOperation.dfm:227
+msgid "Encrypted with password"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbNotEncrypted..Caption
+#: gui-classic/UFRMOperation.dfm:237
+msgid "Dont encrypt (Public payload)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbEncryptedWithOldEC..Caption
+#: gui-classic/UFRMOperation.dfm:272
+msgid "Encrypted with old public key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..cbPayloadAsHex..Caption
+#: gui-classic/UFRMOperation.dfm:282
+msgid "As Hex"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..Caption
+#: gui-classic/UFRMOperation.dfm:302
+msgid "Transaction"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblDestAccount..Caption
+#: gui-classic/UFRMOperation.dfm:308
+msgid "Destination account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblAmount..Caption
+#: gui-classic/UFRMOperation.dfm:317
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyAmount..Caption
+#: gui-classic/UFRMOperation.dfm:810
+msgid "Amount"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..Caption
+#: gui-classic/UFRMOperation.dfm:387
+msgid "Change Key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewPrivateKey..Caption
+#: gui-classic/UFRMOperation.dfm:394
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyNewKey..Caption
+#: gui-classic/UFRMOperation.dfm:837
+msgid "New private key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewOwnerPublicKey..Caption
+#: gui-classic/UFRMOperation.dfm:437
+msgid "New owners public key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..rbChangeKeyWithAnother..Caption
+#: gui-classic/UFRMOperation.dfm:446
+msgid "Change private key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..rbChangeKeyTransferAccountToNewOwner..Caption
+#: gui-classic/UFRMOperation.dfm:514
+msgid "Transfer account to a new owner"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..Caption
+#: gui-classic/UFRMOperation.dfm:526
+msgid "List Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblPrice..Caption
+#: gui-classic/UFRMOperation.dfm:550
+msgid "Sale Price"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblSeller..Caption
+#: gui-classic/UFRMOperation.dfm:560
+msgid "Seller Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblNewKey..Caption
+#: gui-classic/UFRMOperation.dfm:604
+msgid "Buyer Key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblTimeLock..Caption
+#: gui-classic/UFRMOperation.dfm:614
+msgid "Time-Lock"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblHashLock..Caption
+#: gui-classic/UFRMOperation.dfm:623
+msgid "Hash-Lock"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForPublicSale..Caption
+#: gui-classic/UFRMOperation.dfm:699
+msgid "List for Public Sale"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForPrivateSale..Caption
+#: gui-classic/UFRMOperation.dfm:707
+msgid "List for Private Sale"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForAccountSwap..Caption
+#: gui-classic/UFRMOperation.dfm:715
+msgid "List for Atomic Account Swap"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForCoinSwap..Caption
+#: gui-classic/UFRMOperation.dfm:723
+msgid "List for Atomic Coin Swap"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebPrice..TextHint
+#: gui-classic/UFRMOperation.dfm:732
+msgid "PASC Quantity"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebSellerAccount..TextHint
+#: gui-classic/UFRMOperation.dfm:740
+msgid "Account Number"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebNewKey..TextHint
+#: gui-classic/UFRMOperation.dfm:748
+msgid "BASE58 Encoded Public Key Of New Owner"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebTimeLock..Hint
+#: gui-classic/UFRMOperation.dfm:755
+msgid "Block Number "
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebTimeLock..TextHint
+#: gui-classic/UFRMOperation.dfm:759
+msgid "Block number"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsDelistAccount..Caption
+#: gui-classic/UFRMOperation.dfm:770
+msgid "Delist Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..Caption
+#: gui-classic/UFRMOperation.dfm:790
+msgid "Buy Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblAccountToBuy..Caption
+#: gui-classic/UFRMOperation.dfm:799
+msgid "Account to Buy"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..Label2..Caption
+#: gui-classic/UFRMOperation.dfm:846
+msgid "any over-payment will remain on bought "
+"account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..Caption
+#: gui-classic/UFRMOperation.dfm:966
+msgid "Change Info"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeName..Caption
+#: gui-classic/UFRMOperation.dfm:990
+msgid "Change name"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeType..Caption
+#: gui-classic/UFRMOperation.dfm:1001
+msgid "Change type"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeAccountData..Caption
+#: gui-classic/UFRMOperation.dfm:1012
+msgid "Change Data"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..ebChangeName..TextHint
+#: gui-classic/UFRMOperation.dfm:1022
+msgid "Account name (null or 3..64 chars)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..ebChangeType..TextHint
+#: gui-classic/UFRMOperation.dfm:1030
+msgid "0..65535"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..ebChangeAccountData..TextHint
+#: gui-classic/UFRMOperation.dfm:1038
+msgid "Hexadecimal value (0..32 bytes)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsGlobalError..lblGlobalErrors..Caption
+#: gui-classic/UFRMOperation.dfm:1060
+msgid "????"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsGlobalError..bbPassword..Caption
+#: gui-classic/UFRMOperation.dfm:1076
+#. FRMWalletKeys..bbUpdatePassword..Caption
+#: gui-classic/UFRMWalletKeys.dfm:500
+msgid "Password"
+msgstr ""
+
+#. FRMOperation..memoAccounts....Lines.Strings
+#: gui-classic/UFRMOperation.dfm:1152
+#. FRMOperation..memoAccounts....Lines.Strings
+#: gui-classic/UFRMOperation.dfm:1153
+#. FRMSaleAccounts..memoAccounts....Lines.Strings
+#: gui-classic/UFRMSaleAccounts.dfm:87
+#. FRMSaleAccounts..memoAccounts....Lines.Strings
+#: gui-classic/UFRMSaleAccounts.dfm:88
+msgid "123456-11 (0.0000); 123456-11 (0.0000); "
+msgstr ""
+
+#. FRMOperation..ebSenderAccount..Text
+#: gui-classic/UFRMOperation.dfm:1171
+#. FRMSaleAccounts..ebSenderAccount..Text
+#: gui-classic/UFRMSaleAccounts.dfm:107
+msgid "ebSenderAccount"
+msgstr ""
+
+#. FRMOperationsExplorer..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:5
+msgid "Operations Explorer Tool"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlTop..lblTopCaption....Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:58
+msgid "You can use this tool to explore operations, also you can copy/paste "
+"operations as a RAW (Use Ctrl+I to Import). This tool allows to "
+"generate a Multioperation, send to third party the RAW, add more "
+"txs... and then sign. Once Everybody has signed, you will be able to "
+"EXECUTE OPERATION to be added to network nodes. "
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlExport..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:85
+msgid "pnlExport"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlExport..Label1..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:94
+msgid "Operation as RAW:"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlInfo..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:115
+msgid "pnlInfo"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlInfo..pnlInfoOptions..Label2..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:139
+msgid "Multioperation actions:"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlInfo..pnlInfoOptions..bbRandom..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:188
+msgid "RANDOM OPERATIONS"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:199
+msgid "Tools"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..MiImportOperationsFromTxt..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:201
+msgid "Import Operations from RAW"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..MiDivider1..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:206
+#. FRMOperationsExplorer..mMenu..MiActions..MenuItem6..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:224
+#. FRMWallet..MainMenu..miProject..miN1..Caption
+#: gui-classic/UFRMWallet.dfm:1254
+#. FRMWallet..MainMenu..miProject..N1..Caption
+#: gui-classic/UFRMWallet.dfm:1270
+#. FRMWallet..MainMenu..MiOperations..N2..Caption
+#: gui-classic/UFRMWallet.dfm:1310
+#. FRMWallet..MainMenu..MiOperations..N3..Caption
+#: gui-classic/UFRMWallet.dfm:1327
+msgid "-"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..miLoadFromBlockchain..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:209
+msgid "Load Operations from Blockchain"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..MiLoadOperationsFromBlockchainFile..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:214
+msgid "Load Operations from Blockchain file"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiActions..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:219
+msgid "Actions"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActExecuteOperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:244
+msgid "Execute Operation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActAddTxToMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:249
+msgid "Add Tx to Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..AddOpChangeToMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:254
+msgid "Add OpChange to Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActRemoveAccountFromMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:259
+msgid "Remove Account from Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActSignMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:264
+msgid "Sign Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActAddTx..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:269
+msgid "Add Tx"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActAddOpChange..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:274
+msgid "Add OpChange"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActRemove..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:279
+msgid "Remove"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActSign..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:284
+msgid "Sign"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:6
+#. FRMWallet..MainMenu..miProject..miOptions..Caption
+#: gui-classic/UFRMWallet.dfm:1257
+msgid "Options"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label1..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:25
+msgid "Default fee for operation"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label2..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:34
+msgid "Internet Server Port"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..lblDefaultInternetServerPort..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:43
+#. FRMPascalCoinWalletConfig..lblDefaultJSONRPCMinerServerPort..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:87
+msgid "(Default XXXX)"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label3..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:52
+msgid "Miner Name:"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label4..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:61
+msgid "This name will be included in each new block you "
+"mine!"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label5..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:78
+msgid "JSON-RPC Port"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label6..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:96
+msgid "Allowed IP's"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label7..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:105
+msgid "Ip's separated by semicolon or empty for "
+"all"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbJSONRPCMinerServerActive..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:122
+msgid "JSON-RPC Server Miner (TCP/IP, no HTTP)"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbSaveLogFiles..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:139
+msgid "Save log file"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbShowLogs..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:148
+msgid "Show logs"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..bbUpdatePassword..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:196
+msgid "Wallet Password"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..ebMinerName..Text
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:265
+msgid "ebMinerName"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbShowModalMessages..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:272
+msgid "Show modal messages"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:301
+msgid " Miner Server Private Key: "
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..rbGenerateANewPrivateKeyEachBlock..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:308
+msgid "Generate a new private key for each generated "
+"block"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..rbUseARandomKey..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:316
+msgid "Use a random existing key"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..rbMineAllwaysWithThisKey..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:324
+msgid "Always mine with this key:"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbSaveDebugLogs..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:341
+msgid "Save debug logs too"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..bbOpenDataFolder..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:349
+msgid "Open Data Folder"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbJSONRPCPortEnabled..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:393
+msgid "JSON-RPC Server port enabled (HTTP)"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..ebJSONRPCAllowedIPs..Text
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:403
+msgid "ebJSONRPCAllowedIPs"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbDownloadNewCheckpoint..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:410
+msgid "Download new Checkpoint if blockchain older "
+"than..."
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..bbChangeLanguage..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:428
+msgid "Change UI language"
+msgstr ""
+
+#. FRMPayloadDecoder..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:7
+msgid "Operation Information/Decoder"
+msgstr ""
+
+#. FRMPayloadDecoder..Label1..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:26
+msgid "Block/Op:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblBlock..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:33
+msgid "000000/0000"
+msgstr ""
+
+#. FRMPayloadDecoder..Label6..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:59
+msgid "Date Time:"
+msgstr ""
+
+#. FRMPayloadDecoder..Label2..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:66
+msgid "Operation:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblAmountCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:88
+msgid "Amount:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblFeeCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:108
+msgid "Fee:"
+msgstr ""
+
+#. FRMPayloadDecoder..Label4..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:128
+msgid "OpHash"
+msgstr ""
+
+#. FRMPayloadDecoder..lblSenderCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:135
+msgid "Sender:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblSender..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:142
+msgid "9999999-99"
+msgstr ""
+
+#. FRMPayloadDecoder..lblReceiverCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:155
+msgid "Receiver:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblReceiverInfo..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:175
+msgid "(Receiver info)"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:192
+msgid "Payload"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..Label7..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:202
+msgid "Decoded Payload:"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..lblDecodedMethod..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:210
+msgid "(Method)"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..Label3..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:223
+msgid "Original Payload in Hexadecimal:"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoDecoded....Lines.Strings
+#: gui-classic/UFRMPayloadDecoder.dfm:237
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoOriginalPayloadInHexa....Lines.Strings
+#: gui-classic/UFRMPayloadDecoder.dfm:256
+msgid "memoDecoded"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..cbShowAsHexadecimal..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:267
+msgid "Show as hexadecimal"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:273
+msgid "Decode methods"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..lblPasswordsInfo..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:280
+msgid "lblPasswordsInfo"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..cbMethodPublicPayload..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:287
+msgid "Not encrypted (Public payload)"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..cbUsingPrivateKeys..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:296
+msgid "Using Private keys of my Wallet"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..cbUsingPasswords..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:305
+msgid "Using Passwords of the list"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..bbSaveMethods..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:323
+msgid "Save"
+msgstr ""
+
+#. FRMPayloadDecoder..bbFind..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:376
+msgid "&Find"
+msgstr ""
+
+#. FRMPayloadDecoder..ebOphash..Text
+#: gui-classic/UFRMPayloadDecoder.dfm:420
+msgid "12345678901234567890123456789012345678901234567890123456789012"
+msgstr ""
+
+#. FRMDiagnosticTool..txtLog..Text
+#: gui-classic/UFRMRandomHashUtil.dfm:26
+msgid "txtLog"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH..Caption
+#: gui-classic/UFRMRandomHashUtil.dfm:33
+msgid "Random Hash"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2..Caption
+#: gui-classic/UFRMRandomHashUtil.dfm:41
+msgid "Random Hash 2"
+msgstr ""
+
+#. FRMRandomOperations..Caption
+#: gui-classic/UFRMRandomOperations.dfm:4
+#. FRMRandomOperations..pnlClient..pnlTop1..bbRandomOperations..Caption
+#: gui-classic/UFRMRandomOperations.dfm:73
+msgid "Random Operations"
+msgstr ""
+
+#. FRMRandomOperations..pnlTop..lblTopCaption....Caption
+#: gui-classic/UFRMRandomOperations.dfm:39
+msgid "WARNING! This form will generate RANDOM operations using your private "
+"keys!!!"
+msgstr ""
+
+#. FRMRandomOperations..pnlClient..mLogs....Lines.Strings
+#: gui-classic/UFRMRandomOperations.dfm:85
+msgid "mLogs"
+msgstr ""
+
+#. FRMRPCCalls..Caption
+#: gui-classic/UFRMRPCCalls.dfm:5
+#. FRMWallet..MainMenu..miProject..MiRPCCalls..Caption
+#: gui-classic/UFRMWallet.dfm:1266
+msgid "RPC Calls"
+msgstr ""
+
+#. FRMRPCCalls..pnlTop..lblTopCaption....Caption
+#: gui-classic/UFRMRPCCalls.dfm:45
+msgid "WARNING! Execute only calls you understand. Execute unknown calls "
+"provided by third person can cause that you lost your "
+"keys/balance!"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..Label1..Caption
+#: gui-classic/UFRMRPCCalls.dfm:83
+msgid "Method"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..Label2..Caption
+#: gui-classic/UFRMRPCCalls.dfm:92
+msgid "Server"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..ebMethod..Text
+#: gui-classic/UFRMRPCCalls.dfm:102
+msgid "ebMethod"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..pageControl..tsKeyNames..Caption
+#: gui-classic/UFRMRPCCalls.dfm:113
+msgid "Key/Value Params"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..pageControl..tsJSONParams..Caption
+#: gui-classic/UFRMRPCCalls.dfm:130
+msgid "Params as JSON"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..bbSendCommand..Caption
+#: gui-classic/UFRMRPCCalls.dfm:148
+msgid "&Send"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..ebServerURL..Text
+#: gui-classic/UFRMRPCCalls.dfm:195
+msgid "ebServerURL"
+msgstr ""
+
+#. FRMRPCCalls..pnlInfo..pnlInfoBottom..pnlLastCall..Label3..Caption
+#: gui-classic/UFRMRPCCalls.dfm:244
+msgid "Last call result:"
+msgstr ""
+
+#. FRMRPCCalls..pnlInfo..pnlInfoBottom..pnlLastCall..lblLastCallResultState..Caption
+#: gui-classic/UFRMRPCCalls.dfm:253
+msgid "STATE"
+msgstr ""
+
+#. FRMSaleAccounts..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:5
+msgid "Sale accounts"
+msgstr ""
+
+#. FRMSaleAccounts..Label1..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:32
+msgid "Sale price:"
+msgstr ""
+
+#. FRMSaleAccounts..Label2..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:39
+msgid "Locked until block:"
+msgstr ""
+
+#. FRMSaleAccounts..Label3..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:46
+msgid "Seller account (where to pay)"
+msgstr ""
+
+#. FRMSaleAccounts..ebSalePrice..Text
+#: gui-classic/UFRMSaleAccounts.dfm:115
+#. FRMSaleAccounts..ebSellerAccount..Text
+#: gui-classic/UFRMSaleAccounts.dfm:170
+msgid "Edit1"
+msgstr ""
+
+#. FRMSaleAccounts..ebLockedUntilBlock..Text
+#: gui-classic/UFRMSaleAccounts.dfm:123
+msgid "ebLockedUntilBlock"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:130
+msgid " Sell options: "
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..lblNewOwnerPublicKey..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:137
+msgid "New owner's public key"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..rbEveryoneCanBuy..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:144
+msgid "Everyone can buy"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..rbReservedForAPublickKey..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:152
+msgid "Reserved for only one public key (private)"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..ebNewOwnerPublicKey..Text
+#: gui-classic/UFRMSaleAccounts.dfm:161
+msgid "ebDestAccount"
+msgstr ""
+
+#. FRMChangeLanguage..Caption
+#: gui-classic/UFRMSelectLanguage.dfm:8
+#. FRMChangeLanguage..Caption
+#: lib/i386-win32/ufrmselectlanguage.dfm:8
+msgid "Language Selection"
+msgstr ""
+
+#. FRMChangeLanguage..bbCancel..Caption
+#: gui-classic/UFRMSelectLanguage.dfm:28
+#. FRMChangeLanguage..bbCancel..Caption
+#: lib/i386-win32/ufrmselectlanguage.dfm:28
+msgid "Cancel"
+msgstr ""
+
+#. FRMChangeLanguage..Label1..Caption
+#: gui-classic/UFRMSelectLanguage.dfm:46
+#. FRMChangeLanguage..Label1..Caption
+#: lib/i386-win32/ufrmselectlanguage.dfm:46
+msgid "Select your preferred language"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblCurrentBlockCaption..Caption
+#: gui-classic/UFRMWallet.dfm:135
+msgid "Total Blocks:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblCurrentBlockTimeCaption..Caption
+#: gui-classic/UFRMWallet.dfm:153
+msgid "Current Block Age:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblCurrentBlockTime..Caption
+#: gui-classic/UFRMWallet.dfm:162
+msgid "000 seconds ago"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblOperationsPendingCaption..Caption
+#: gui-classic/UFRMWallet.dfm:171
+msgid "Pending Operations:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblMiningStatusCaption..Caption
+#: gui-classic/UFRMWallet.dfm:189
+msgid "Miner Clients:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblCurrentDifficultyCaption..Caption
+#: gui-classic/UFRMWallet.dfm:207
+msgid "Current Target:"
+msgstr ""
+
+#. FRMWallet..pnlTop..Label4..Caption
+#: gui-classic/UFRMWallet.dfm:234
+msgid "Time average:"
+msgstr ""
+
+#. FRMWallet..pnlTop..Label8..Caption
+#: gui-classic/UFRMWallet.dfm:243
+msgid "Node Status:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblNodeStatus..Caption
+#: gui-classic/UFRMWallet.dfm:252
+msgid "???"
+msgstr ""
+
+#. FRMWallet..pnlTop..Label16..Caption
+#: gui-classic/UFRMWallet.dfm:294
+msgid "Blocks Found:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblBlocksFound..Hint
+#: gui-classic/UFRMWallet.dfm:309
+msgid "Blocks found while Miner is running..."
+msgstr ""
+
+#. FRMWallet..pnlTop..lblReceivedMessages..Caption
+#: gui-classic/UFRMWallet.dfm:328
+msgid "Received Messages"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblBuild..Caption
+#: gui-classic/UFRMWallet.dfm:344
+msgid "Build"
+msgstr ""
+
+#. FRMWallet..StatusBar......Text
+#: gui-classic/UFRMWallet.dfm:363
+msgid "Server Active"
+msgstr ""
+
+#. FRMWallet..StatusBar......Text
+#: gui-classic/UFRMWallet.dfm:367
+msgid "Connection status"
+msgstr ""
+
+#. FRMWallet..StatusBar......Text
+#: gui-classic/UFRMWallet.dfm:371
+msgid "Blocks"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:385
+msgid "Account Explorer"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..Label18..Caption
+#: gui-classic/UFRMWallet.dfm:406
+#. FRMWallet..MainMenu..MiOperations..MiFindaccount..Caption
+#: gui-classic/UFRMWallet.dfm:1295
+msgid "Find account"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..cbExploreMyAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:458
+msgid "Explore accounts with one of my Wallet "
+"Keys"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..bbChangeKeyName..Caption
+#: gui-classic/UFRMWallet.dfm:476
+msgid "Change Key name"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..cbFilterAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:485
+msgid "Filter accounts by balance"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..ebFilterAccountByBalanceMin..Hint
+#: gui-classic/UFRMWallet.dfm:494
+msgid "Min balance"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..ebFilterAccountByBalanceMax..Hint
+#: gui-classic/UFRMWallet.dfm:504
+msgid "Max balance"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..bbAccountsRefresh..Caption
+#: gui-classic/UFRMWallet.dfm:580
+msgid "Refresh"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsAccountOperations..Caption
+#: gui-classic/UFRMWallet.dfm:622
+msgid "Account Operations"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:634
+msgid "Selected Accounts For Batch Operation"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsTop..Label15..Caption
+#: gui-classic/UFRMWallet.dfm:667
+msgid "Select multiple accounts to execute massive "
+"operations"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..Label22..Caption
+#: gui-classic/UFRMWallet.dfm:703
+msgid "Accounts Balance:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsAdd..Caption
+#: gui-classic/UFRMWallet.dfm:730
+msgid ">"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsAddAll..Caption
+#: gui-classic/UFRMWallet.dfm:738
+msgid ">>"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsDel..Caption
+#: gui-classic/UFRMWallet.dfm:746
+msgid "<"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsDelAll..Caption
+#: gui-classic/UFRMWallet.dfm:754
+msgid "<<"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..bbSelectedAccountsOperation..Caption
+#: gui-classic/UFRMWallet.dfm:763
+#. FRMWallet..MainMenu..MiOperations..Caption
+#: gui-classic/UFRMWallet.dfm:1278
+msgid "Operations"
+msgstr ""
+
+#. FRMWallet..PageControl..tsPendingOperations..Caption
+#: gui-classic/UFRMWallet.dfm:829
+msgid "Pending Operations"
+msgstr ""
+
+#. FRMWallet..PageControl..tsPendingOperations..pnlPendingOperations..Label10....Caption
+#: gui-classic/UFRMWallet.dfm:865
+msgid "Here you can see Operations transmited/received from other nodes that "
+"will be included in next block. There is no guarantee that other "
+"nodes will include them when mining, so it's important that you mine "
+"too to help include Operations to the main "
+"BlockChain"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Caption
+#: gui-classic/UFRMWallet.dfm:879
+msgid "Block Explorer"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..Label9..Caption
+#: gui-classic/UFRMWallet.dfm:898
+#. FRMWallet..PageControl..tsOperations..Panel1..Label2..Caption
+#: gui-classic/UFRMWallet.dfm:994
+msgid "Filter by blocks range"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..lblHashRateBackBlocks..Caption
+#: gui-classic/UFRMWallet.dfm:907
+msgid "HashRate back blocks"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..lblHashRateBackBlocks1..Caption
+#: gui-classic/UFRMWallet.dfm:916
+msgid "Units"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits..Text
+#: gui-classic/UFRMWallet.dfm:955
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:960
+msgid "Mh/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:959
+msgid "Kh/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:961
+msgid "Gh/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:962
+msgid "Th/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsOperations..Caption
+#: gui-classic/UFRMWallet.dfm:975
+#. FRMWallet..MainMenu..MiOperations..MiOperationsExplorer..Caption
+#: gui-classic/UFRMWallet.dfm:1305
+msgid "Operations Explorer"
+msgstr ""
+
+#. FRMWallet..PageControl..tsLogs..Caption
+#: gui-classic/UFRMWallet.dfm:1027
+msgid "Logs"
+msgstr ""
+
+#. FRMWallet..PageControl..tsLogs..pnlTopLogs..cbShowDebugLogs..Caption
+#: gui-classic/UFRMWallet.dfm:1046
+msgid "Show Debug Logs"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Caption
+#: gui-classic/UFRMWallet.dfm:1062
+msgid "Node Stats"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Label3..Caption
+#: gui-classic/UFRMWallet.dfm:1076
+msgid "Active Connections:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Label6..Caption
+#: gui-classic/UFRMWallet.dfm:1086
+msgid "Known Node Servers:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Label7..Caption
+#: gui-classic/UFRMWallet.dfm:1096
+msgid "Blacklisted Nodes"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Caption
+#: gui-classic/UFRMWallet.dfm:1135
+msgid "Messages"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Label11..Caption
+#: gui-classic/UFRMWallet.dfm:1149
+msgid "Messages:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Label12..Caption
+#: gui-classic/UFRMWallet.dfm:1158
+msgid "Message to send:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Label13..Caption
+#: gui-classic/UFRMWallet.dfm:1167
+msgid "Available Connections:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Label14....Caption
+#: gui-classic/UFRMWallet.dfm:1178
+msgid "(Messages will be encrypted, so only dest connection will be able to "
+"read it)"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..bbSendAMessage..Caption
+#: gui-classic/UFRMWallet.dfm:1203
+msgid "Send a Message"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..memoMessageToSend....Lines.Strings
+#: gui-classic/UFRMWallet.dfm:1232
+msgid "memoMessageToSend"
+msgstr ""
+
+#. FRMWallet..MainMenu..miProject..Caption
+#: gui-classic/UFRMWallet.dfm:1247
+msgid "Project"
+msgstr ""
+
+#. FRMWallet..MainMenu..miProject..miPrivatekeys..Caption
+#: gui-classic/UFRMWallet.dfm:1249
+msgid "Private Keys"
+msgstr ""
+
+#. FRMWallet..MainMenu..miProject..IPnodes1..Caption
+#: gui-classic/UFRMWallet.dfm:1262
+msgid "Available Node List"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..miNewOperation..Caption
+#: gui-classic/UFRMWallet.dfm:1280
+msgid "New single Operation"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiFindOperationbyOpHash..Caption
+#: gui-classic/UFRMWallet.dfm:1285
+msgid "Find Operation by OpHash"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiDecodePayload..Caption
+#: gui-classic/UFRMWallet.dfm:1290
+msgid "Decode Payload"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiAccountInformation..Caption
+#: gui-classic/UFRMWallet.dfm:1300
+msgid "Account Information"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiAddaccounttoSelected..Caption
+#: gui-classic/UFRMWallet.dfm:1313
+msgid "Add account to selected"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiRemoveaccountfromselected..Caption
+#: gui-classic/UFRMWallet.dfm:1318
+msgid "Remove account from selected"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiMultiaccountoperation..Caption
+#: gui-classic/UFRMWallet.dfm:1323
+msgid "Multi account operation"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiFindpreviousaccountwithhighbalance..Caption
+#: gui-classic/UFRMWallet.dfm:1330
+msgid "Find previous account with high balance"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiFindnextaccountwithhighbalance..Caption
+#: gui-classic/UFRMWallet.dfm:1335
+msgid "Find next account with high balance"
+msgstr ""
+
+#. FRMWallet..MainMenu..miAbout..Caption
+#: gui-classic/UFRMWallet.dfm:1341
+msgid "About"
+msgstr ""
+
+#. FRMWallet..MainMenu..miAbout..miAboutPascalCoin..Caption
+#: gui-classic/UFRMWallet.dfm:1343
+msgid "About Pascal Coin..."
+msgstr ""
+
+#. FRMWalletKeys..Caption
+#: gui-classic/UFRMWalletKeys.dfm:6
+msgid "Wallet keys"
+msgstr ""
+
+#. FRMWalletKeys..lblEncryptionTypeCaption..Caption
+#: gui-classic/UFRMWalletKeys.dfm:25
+msgid "Encryption type:"
+msgstr ""
+
+#. FRMWalletKeys..lblEncryptionType..Caption
+#: gui-classic/UFRMWalletKeys.dfm:32
+#. FRMWalletKeys..lblKeyName..Caption
+#: gui-classic/UFRMWalletKeys.dfm:47
+msgid "000000000"
+msgstr ""
+
+#. FRMWalletKeys..lblKeyNameCaption..Caption
+#: gui-classic/UFRMWalletKeys.dfm:39
+msgid "Key name:"
+msgstr ""
+
+#. FRMWalletKeys..lblPrivateKeyCaption..Caption
+#: gui-classic/UFRMWalletKeys.dfm:54
+msgid "Public Key:"
+msgstr ""
+
+#. FRMWalletKeys..lblKeysEncrypted..Caption
+#: gui-classic/UFRMWalletKeys.dfm:62
+msgid "lblKeysEncrypted"
+msgstr ""
+
+#. FRMWalletKeys..bbExportPrivateKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:85
+msgid "Export Private key"
+msgstr ""
+
+#. FRMWalletKeys..memoPrivateKey....Lines.Strings
+#: gui-classic/UFRMWalletKeys.dfm:158
+msgid "memoPrivateKey"
+msgstr ""
+
+#. FRMWalletKeys..bbChangeName..Caption
+#: gui-classic/UFRMWalletKeys.dfm:169
+msgid "Change Name"
+msgstr ""
+
+#. FRMWalletKeys..bbImportPrivateKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:178
+msgid "Import Private key"
+msgstr ""
+
+#. FRMWalletKeys..bbExportPublicKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:240
+msgid "Export Public key"
+msgstr ""
+
+#. FRMWalletKeys..bbImportPublicKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:306
+msgid "Import Public key"
+msgstr ""
+
+#. FRMWalletKeys..bbGenerateNewKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:372
+msgid "Generate a new Key"
+msgstr ""
+
+#. FRMWalletKeys..bbDelete..Caption
+#: gui-classic/UFRMWalletKeys.dfm:434
+msgid "Delete"
+msgstr ""
+
+#. FRMWalletKeys..bbExportAllWalletKeys..Caption
+#: gui-classic/UFRMWalletKeys.dfm:568
+msgid "Export all Wallet Keys to a file"
+msgstr ""
+
+#. FRMWalletKeys..bbImportKeysFile..Caption
+#: gui-classic/UFRMWalletKeys.dfm:634
+msgid "Import a Wallet Keys File"
+msgstr ""
+
+#. FRMWalletKeys..bbLock..Caption
+#: gui-classic/UFRMWalletKeys.dfm:700
+msgid "Lock"
+msgstr ""
+
+#. FRMWalletKeys..SaveDialog..DefaultExt
+#: gui-classic/UFRMWalletKeys.dfm:758
+#. FRMWalletKeys..OpenDialog..DefaultExt
+#: gui-classic/UFRMWalletKeys.dfm:765
+msgid "dat"
+msgstr ""
+
+#. FRMWalletKeys..SaveDialog..Filter
+#: gui-classic/UFRMWalletKeys.dfm:759
+msgid "Wallet keys file|*.dat|All files|*.*"
+msgstr ""
+
+#. FRMWalletKeys..OpenDialog..Filter
+#: gui-classic/UFRMWalletKeys.dfm:766
+msgid "Wallet keys file (*.dat)|*.dat|All files "
+"(*.*)|*.*"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedHash
+#: core/URandomHash.pas:267
+#. Programmer's name for it: SUnSupportedHash
+#: core/URandomHash2.pas:219
+msgid "Unsupported Hash Selected"
+msgstr ""
+
+#. Programmer's name for it: SInvalidRound
+#: core/URandomHash.pas:268
+#. Programmer's name for it: SInvalidRound
+#: core/URandomHash2.pas:220
+msgid "Round must be between 0 and N inclusive"
+msgstr ""
+
+#. Programmer's name for it: SOverlappingArgs
+#: core/URandomHash.pas:269
+#. Programmer's name for it: SOverlappingArgs
+#: core/URandomHash2.pas:221
+msgid "Overlapping read/write regions"
+msgstr ""
+
+#. Programmer's name for it: SBufferTooSmall
+#: core/URandomHash.pas:270
+#. Programmer's name for it: SBufferTooSmall
+#: core/URandomHash2.pas:222
+msgid "Buffer too small to apply memory transform"
+msgstr ""
+
+#. Programmer's name for it: SBlockHeaderTooSmallForNonce
+#: core/URandomHash.pas:271
+#. Programmer's name for it: SBlockHeaderTooSmallForNonce
+#: core/URandomHash2.pas:223
+msgid "Buffer too small to contain nonce"
+msgstr ""
+
+#. Programmer's name for it: SAESEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:37
+#. Programmer's name for it: SAESEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:37
+msgid "AES Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SInputBuffertooShort
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:38
+#. Programmer's name for it: SInputBuffertooShort
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:38
+#. Programmer's name for it: SInputBufferTooShort
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:39
+#. Programmer's name for it: SInputBuffertooShort
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:39
+#. Programmer's name for it: SInputBuffertooShort
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:35
+#. Programmer's name for it: SInputBuffertooShort
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:43
+#. Programmer's name for it: SInputBuffertooShort
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:36
+#. Programmer's name for it: SInputBuffertooShort
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:36
+msgid "Input Buffer too Short"
+msgstr ""
+
+#. Programmer's name for it: SOutputBuffertooShort
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:39
+#. Programmer's name for it: SOutputBuffertooShort
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:39
+#. Programmer's name for it: SOutputBufferTooShort
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:40
+#. Programmer's name for it: SOutputBuffertooShort
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:40
+#. Programmer's name for it: SOutputBufferTooSmall
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:39
+#. Programmer's name for it: SOutputBufferTooSmall
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:32
+#. Programmer's name for it: SOutputBufferTooSmall
+#: libraries/cryptolib4pascal/ClpPaddedBufferedBlockCipher.pas:40
+#. Programmer's name for it: SOutputBuffertooShort
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:36
+#. Programmer's name for it: SOutputBuffertooShort
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:44
+#. Programmer's name for it: SOutputBuffertooShort
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:37
+#. Programmer's name for it: SOutputBuffertooShort
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:37
+msgid "Output Buffer too Short"
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterAESInit
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:40
+#. Programmer's name for it: SInvalidParameterAESInit
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:40
+msgid "Invalid Parameter Passed to AES Init - "
+"\"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:41
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:41
+msgid "Key Length not 128/192/256 bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidOperation
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:42
+#. Programmer's name for it: SInvalidOperation
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:42
+msgid "Should Never Get Here"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpAESPRNGRandom.pas:40
+msgid "AES RNG Seed Length must be either one of these \"128/192/256 "
+"bits\"."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpAgreementUtilities.pas:43
+msgid "Raw Agreement Algorithm \"%s\" Not Recognised."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpAgreementUtilities.pas:45
+msgid "Basic Agreement Algorithm \"%s\" Not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SArgon2TypeInvalid
+#: libraries/cryptolib4pascal/ClpArgon2ParametersGenerator.pas:41
+msgid "Selected Argon2Type is Invalid"
+msgstr ""
+
+#. Programmer's name for it: SArgon2VersionInvalid
+#: libraries/cryptolib4pascal/ClpArgon2ParametersGenerator.pas:42
+msgid "Selected Argon2Version is Invalid"
+msgstr ""
+
+#. Programmer's name for it: SArgon2MemoryCostTypeInvalid
+#: libraries/cryptolib4pascal/ClpArgon2ParametersGenerator.pas:43
+msgid "Selected Argon2MemoryCostType is Invalid"
+msgstr ""
+
+#. Programmer's name for it: SInvalidLength
+#: libraries/cryptolib4pascal/ClpArrayUtils.pas:30
+msgid "%d \" > \" %d"
+msgstr ""
+
+#. Programmer's name for it: SDataOverflow
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:43
+msgid "Data Overflow"
+msgstr ""
+
+#. Programmer's name for it: SDataOverflow
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:45
+msgid "Corrupted Stream - Invalid High Tag Number "
+"Found"
+msgstr ""
+
+#. Programmer's name for it: SEOFFound
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:46
+msgid "EOF Found Inside Tag Value"
+msgstr ""
+
+#. Programmer's name for it: SInvalidEnd
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:47
+msgid "EOF Found When Length Expected"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDerLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:48
+msgid "DER Length More Than 4 Bytes: %d"
+msgstr ""
+
+#. Programmer's name for it: SEndOfStream
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:49
+msgid "EOF Found Reading Length"
+msgstr ""
+
+#. Programmer's name for it: SNegativeLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:50
+msgid "Corrupted Stream - Negative Length Found"
+msgstr ""
+
+#. Programmer's name for it: SOutOfBoundsLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:51
+msgid "Corrupted stream - Out of Bounds Length "
+"Found"
+msgstr ""
+
+#. Programmer's name for it: SUnknownTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:52
+msgid "Unknown Tag \" %d \" Encountered"
+msgstr ""
+
+#. Programmer's name for it: SEndOfContent
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:53
+msgid "Unexpected End-of-Contents Marker"
+msgstr ""
+
+#. Programmer's name for it: SIndefiniteLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:54
+msgid "Indefinite Length Primitive Encoding "
+"Encountered"
+msgstr ""
+
+#. Programmer's name for it: SUnknownBerObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:55
+msgid "Unknown BER Object Encountered"
+msgstr ""
+
+#. Programmer's name for it: SCorruptedStream
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:56
+msgid "Corrupted Stream Detected: %s"
+msgstr ""
+
+#. Programmer's name for it: SInvalidLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:57
+msgid "Negative Lengths not Allowed\", \"Length\""
+msgstr ""
+
+#. Programmer's name for it: SEndOfStreamTwo
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:58
+msgid "DEF Length  %d \" TObject truncated by \" "
+"%d"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBufferLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:59
+msgid "Buffer Length Not Right For Data"
+msgstr ""
+
+#. Programmer's name for it: SMalformedContent
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:60
+msgid "Malformed End-of-Contents Marker"
+msgstr ""
+
+#. Programmer's name for it: SExtraData
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:62
+msgid "Extra Data Found After Object"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedObjectStream
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:63
+msgid "Cannot Recognise Object in Stream"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedObjectByteArray
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:64
+msgid "Cannot Recognise Object in ByteArray"
+msgstr ""
+
+#. Programmer's name for it: SIllegalObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:65
+msgid "Illegal Object in GetInstance:  %s, "
+"\"obj\""
+msgstr ""
+
+#. Programmer's name for it: SStrNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:66
+msgid "\"Str\" Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SProcessingError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:67
+msgid "Error Processing Object : \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:68
+msgid "Object Implicit - Explicit Expected."
+msgstr ""
+
+#. Programmer's name for it: SUnknownObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:69
+msgid "Unknown object in GetInstance:  %s, "
+"\"obj\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSequence
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:70
+msgid "\"Failed to Construct Sequence from byte array: \" "
+"%s"
+msgstr ""
+
+#. Programmer's name for it: SImplicitObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:71
+msgid "Implicitly Tagged Object"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:72
+msgid "Implicit Tagging for Tag:  %d"
+msgstr ""
+
+#. Programmer's name for it: SUnknownObjectBER
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:73
+msgid "Unknown BER Object Encountered: $%x"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTagging
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:74
+msgid "Implicit Tagging not Implemented"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTagging
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:76
+msgid "Sequences Must Use Constructed Encoding (see X.690 "
+"8.9.1/8.10.1)"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTagging
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:78
+msgid "Sets Must Use Constructed Encoding (see X.690 "
+"8.11.1/8.12.1)"
+msgstr ""
+
+#. Programmer's name for it: SMalformedObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:79
+msgid "Malformed Object %s"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:80
+msgid "Unsupported Tag Number"
+msgstr ""
+
+#. Programmer's name for it: SConvertError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:81
+msgid "EIOCryptoLibException Converting Stream to Byte Array: "
+"%s"
+msgstr ""
+
+#. Programmer's name for it: SEncodingError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:82
+msgid "Encoding Error in GetInstance:  %s  "
+"\"obj\""
+msgstr ""
+
+#. Programmer's name for it: SDataNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:83
+msgid "\"data\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidRange
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:84
+msgid "Must be in the Range 0 to 7\", \"padBits\""
+msgstr ""
+
+#. Programmer's name for it: SPadBitError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:85
+msgid "If \"data\" is Empty, \"padBits\" Must be "
+"0"
+msgstr ""
+
+#. Programmer's name for it: SUnalignedData
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:86
+msgid "Attempt to Get non-octet Aligned Data from BIT "
+"STRING\""
+msgstr ""
+
+#. Programmer's name for it: STruncatedBitString
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:87
+msgid "Truncated BIT STRING Detected\", \"octets\""
+msgstr ""
+
+#. Programmer's name for it: SNotImplemented
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:88
+msgid "Not Implemented %s"
+msgstr ""
+
+#. Programmer's name for it: SUnConstructedTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:89
+msgid "Explicit Tags Must be Constructed (see X.690 "
+"8.14.2)"
+msgstr ""
+
+#. Programmer's name for it: SParsingError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:90
+msgid "%s"
+msgstr ""
+
+#. Programmer's name for it: SEmptyInput
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:91
+msgid "Input Cannot be Empty \"astr\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidValue
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:92
+msgid "Byte Value Should Have 1 Byte in it', "
+"\"val\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidBooleanValue
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:93
+msgid "BOOLEAN Value Should Have 1 Byte in it\", "
+"\"Value\""
+msgstr ""
+
+#. Programmer's name for it: SMalformedEnumerated
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:94
+msgid "Malformed Enumerated"
+msgstr ""
+
+#. Programmer's name for it: SZeroLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:95
+msgid "Enumerated has Zero Length, \"enc\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidEncoding
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:96
+msgid "Invalid Encoding Value: %d"
+msgstr ""
+
+#. Programmer's name for it: SFewObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:97
+msgid "Too Few Objects in Input Vector, \"v\""
+msgstr ""
+
+#. Programmer's name for it: SVectorTooLarge
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:98
+msgid "Input Vector too Large\", \"vector\""
+msgstr ""
+
+#. Programmer's name for it: SVectorTooLarge
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:100
+msgid "No Tagged Object Found in Vector. Structure Doesn 't Seem to be of "
+"Type External, \"Vector\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidEncodingValue
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:101
+msgid "Invalid Encoding Value"
+msgstr ""
+
+#. Programmer's name for it: SObjectNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:102
+msgid " \"obj\" Can't be Nil"
+msgstr ""
+
+#. Programmer's name for it: SValueNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:103
+msgid " \"value\" Can't be Nil"
+msgstr ""
+
+#. Programmer's name for it: SMalformedInteger
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:104
+msgid "Malformed Integer"
+msgstr ""
+
+#. Programmer's name for it: SIdentifierNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:105
+msgid "Identifier Cannot be Empty"
+msgstr ""
+
+#. Programmer's name for it: SInvalidOID
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:106
+msgid "\"String \" %s is \" not an OID\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidBranchId
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:107
+msgid "\"String \" %s \" not a valid OID branch\", "
+"\"branchID\""
+msgstr ""
+
+#. Programmer's name for it: SIllegalCharacters
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:108
+msgid "String Contains Illegal Characters \"str\""
+msgstr ""
+
+#. Programmer's name for it: SExpectedPublicKey
+#: libraries/cryptolib4pascal/ClpAsymmetricCipherKeyPair.pas:30
+msgid "Expected a Public Key \"publicParameter\""
+msgstr ""
+
+#. Programmer's name for it: SExpectedPrivateKey
+#: libraries/cryptolib4pascal/ClpAsymmetricCipherKeyPair.pas:31
+msgid "Expected a Private Key \"privateParameter\""
+msgstr ""
+
+#. Programmer's name for it: SOutputBufferTooSmall
+#: libraries/cryptolib4pascal/ClpBaseKdfBytesGenerator.pas:36
+#. Programmer's name for it: SOutputBufferTooSmall
+#: libraries/cryptolib4pascal/ClpPascalCoinECIESKdfBytesGenerator.pas:34
+msgid "Output Buffer too Small"
+msgstr ""
+
+#. Programmer's name for it: SOutputLengthTooLarge
+#: libraries/cryptolib4pascal/ClpBaseKdfBytesGenerator.pas:37
+msgid "Output Length too Large"
+msgstr ""
+
+#. Programmer's name for it: SKDFParameterNotFound
+#: libraries/cryptolib4pascal/ClpBaseKdfBytesGenerator.pas:38
+#. Programmer's name for it: SKDFParameterNotFound
+#: libraries/cryptolib4pascal/ClpPascalCoinECIESKdfBytesGenerator.pas:35
+msgid "KDF Parameters Required For KDF Generator"
+msgstr ""
+
+#. Programmer's name for it: SDivisionByZero
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:36
+msgid "Division by Zero Error"
+msgstr ""
+
+#. Programmer's name for it: SModulusPositive
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:37
+msgid "Modulus must be Positive"
+msgstr ""
+
+#. Programmer's name for it: SNotRelativelyPrime
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:38
+msgid "Numbers not Relatively Prime."
+msgstr ""
+
+#. Programmer's name for it: SNegativeValue
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:39
+msgid "Cannot be Called on Value < 0"
+msgstr ""
+
+#. Programmer's name for it: SNegativeExponent
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:40
+msgid "Negative Exponent"
+msgstr ""
+
+#. Programmer's name for it: SResultTooLarge
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:41
+msgid "Result too Large"
+msgstr ""
+
+#. Programmer's name for it: SNegativeBitPosition
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:42
+msgid "Bit Position must not be Negative"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBitAddress
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:43
+msgid "Bit Address less than Zero"
+msgstr ""
+
+#. Programmer's name for it: SZeroLengthBigInteger
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:44
+msgid "Zero length BigInteger"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSign
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:45
+msgid "Invalid Sign Value"
+msgstr ""
+
+#. Programmer's name for it: SNegativeSizeInBits
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:46
+msgid "sizeInBits must be non-negative"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBitLength
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:47
+msgid "bitLength < 2"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBase
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:48
+msgid "Only bases 2, 8, 10, or 16 allowed"
+msgstr ""
+
+#. Programmer's name for it: SBadCharacterRadix8
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:49
+msgid "Bad Character in radix 8 string: %s"
+msgstr ""
+
+#. Programmer's name for it: SBadCharacterRadix2
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:50
+msgid "Bad Character in radix 2 string: %s"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedBase
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:51
+msgid "Only bases 2, 8, 10, 16 are allowed"
+msgstr ""
+
+#. Programmer's name for it: SInvalidLength
+#: libraries/cryptolib4pascal/ClpBigIntegers.pas:31
+msgid "Standard Length Exceeded, \"n\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidMinValue
+#: libraries/cryptolib4pascal/ClpBigIntegers.pas:32
+msgid "\"min\" may not be greater than \"max\"\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:37
+msgid "Initialisation Vector Must be the Same Length as Block "
+"Size"
+msgstr ""
+
+#. Programmer's name for it: SInvalidChangeState
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:38
+msgid "Cannot Change Encrypting State Without Providing "
+"Key."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterArgument
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:42
+msgid "CTR/SIC Mode Requires ParametersWithIV"
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterArgument
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:44
+msgid "CTR/SIC mode requires IV no greater than: %u "
+"bytes"
+msgstr ""
+
+#. Programmer's name for it: SInvalidTooSmallIVLength
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:45
+msgid "CTR/SIC mode requires IV of at least: %u "
+"bytes"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedCipher
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:47
+msgid "CtsBlockCipher Can Only Accept ECB or CBC "
+"Ciphers"
+msgstr ""
+
+#. Programmer's name for it: SNegativeInputLength
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:48
+#. Programmer's name for it: SInvalidLength
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:36
+#. Programmer's name for it: SNegativeInputLength
+#: libraries/cryptolib4pascal/ClpPaddedBufferedBlockCipher.pas:42
+msgid "Can't Have a Negative Input Length!"
+msgstr ""
+
+#. Programmer's name for it: SCTSDoFinalError
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:49
+msgid "Need at Least One Block of Input For "
+"CTS"
+msgstr ""
+
+#. Programmer's name for it: SBlowfishEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:36
+msgid "Blowfish Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SBlowfishEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:38
+msgid "Invalid Parameter Passed to Blowfish Init - "
+"\"%s\""
+msgstr ""
+
+#. Programmer's name for it: SOutputBuffertooShort
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:42
+msgid "Key Length must be between 32 - 448 bits and divisible by "
+"8."
+msgstr ""
+
+#. Programmer's name for it: SInputNil
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:37
+msgid "Input Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SCipherNil
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:38
+msgid "Cipher Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SDataNotBlockSizeAligned
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:40
+msgid "Data not Block Size Aligned"
+msgstr ""
+
+#. Programmer's name for it: SOutputBufferTooSmallForDoFinal
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:41
+msgid "Output Buffer too Short for DoFinal()"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBufferSize
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:33
+#. Programmer's name for it: SInvalidBufferSize
+#: libraries/hashlib4pascal/HlpHash.pas:17
+msgid "\"BufferSize\" Must Be Greater Than Zero"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBufferSize
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:35
+msgid "Input and Output Streams Must not Point to the Same Stream "
+"Instance"
+msgstr ""
+
+#. Programmer's name for it: SUnAssignedInputStream
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:36
+#. Programmer's name for it: SUnAssignedStream
+#: libraries/hashlib4pascal/HlpHash.pas:18
+msgid "Input Stream Is Unassigned"
+msgstr ""
+
+#. Programmer's name for it: SUnAssignedOutputStream
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:37
+msgid "Output Stream Is Unassigned"
+msgstr ""
+
+#. Programmer's name for it: SPositionOutOfRange
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:38
+msgid "Current Position Is Out Of Range"
+msgstr ""
+
+#. Programmer's name for it: SPositionOutOfRange
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:40
+msgid "Stream Position (or Stream Length to Process) Is Out Of "
+"Range"
+msgstr ""
+
+#. Programmer's name for it: SCipherNil
+#: libraries/cryptolib4pascal/ClpBufferedStreamCipher.pas:34
+msgid "Cipher Instance Cannot be Nil"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpCipherKeyGenerator.pas:34
+msgid "Strength must be a Positive Value, \"defaultStrength\""
+msgstr ""
+
+#. Programmer's name for it: SParametersNil
+#: libraries/cryptolib4pascal/ClpCipherKeyGenerator.pas:35
+msgid "Parameters Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SGeneratorNotInitialized
+#: libraries/cryptolib4pascal/ClpCipherKeyGenerator.pas:36
+msgid "Generator has not been Initialised"
+msgstr ""
+
+#. Programmer's name for it: SMechanismNil
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:56
+#. Programmer's name for it: SMechanismNil
+#: libraries/cryptolib4pascal/ClpDigestUtilities.pas:42
+#. Programmer's name for it: SMechanismNil
+#: libraries/cryptolib4pascal/ClpSignerUtilities.pas:69
+msgid "Mechanism Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNil
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:57
+#. Programmer's name for it: SAlgorithmNil
+#: libraries/cryptolib4pascal/ClpParameterUtilities.pas:37
+#. Programmer's name for it: SAlgorithmNil
+#: libraries/cryptolib4pascal/ClpSignerUtilities.pas:70
+msgid "Algorithm Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedCipher
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:58
+msgid "Cipher \"%s\" Not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedCipher
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:60
+msgid "Warning: SIC-Mode Can Become a TwoTime-Pad if the Blocksize of the "
+"Cipher is Too Small. Use a Cipher With a Block Size of at Least 128 "
+"bits (e.g. AES)"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedCipher
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:62
+msgid "Modes and Paddings Not Used for Stream "
+"Ciphers"
+msgstr ""
+
+#. Programmer's name for it: SEncodingInstanceNil
+#: libraries/cryptolib4pascal/ClpConverters.pas:33
+#. Programmer's name for it: SEncodingInstanceNil
+#: libraries/hashlib4pascal/HlpConverters.pas:16
+msgid "Encoding Instance Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SNegativeOffset
+#: libraries/cryptolib4pascal/ClpCryptoApiRandomGenerator.pas:32
+msgid "Start Offset Cannot be Negative, \"Start\""
+msgstr ""
+
+#. Programmer's name for it: SArrayTooSmall
+#: libraries/cryptolib4pascal/ClpCryptoApiRandomGenerator.pas:33
+msgid "Byte Array Too Small For Requested Offset and "
+"Length"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpCurve25519Custom.pas:40
+msgid "Value Invalid for Curve25519FieldElement "
+"\"%s\""
+msgstr ""
+
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#: libraries/cryptolib4pascal/ClpCurve25519Custom.pas:41
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#: libraries/cryptolib4pascal/ClpSecP256K1Custom.pas:41
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#: libraries/cryptolib4pascal/ClpSecP256R1Custom.pas:41
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#: libraries/cryptolib4pascal/ClpSecP384R1Custom.pas:41
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#: libraries/cryptolib4pascal/ClpSecP521R1Custom.pas:41
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#: libraries/cryptolib4pascal/ClpSecT283Custom.pas:42
+msgid "Exactly One of the Field Elements is "
+"Nil"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:45
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:38
+msgid "Diffie-Hellman Public Key has Wrong "
+"Parameters."
+msgstr ""
+
+#. Programmer's name for it: SNotDHPrivateKeyParameters
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:46
+#. Programmer's name for it: SNotDHPrivateKeyParameters
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:39
+msgid "DHEngine Expects DHPrivateKeyParameters"
+msgstr ""
+
+#. Programmer's name for it: SMessageNotInitialized
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:47
+msgid "Message not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SSharedKeyInvalid
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:48
+#. Programmer's name for it: SSharedKeyInvalid
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:41
+msgid "Shared Key Can't be 1"
+msgstr ""
+
+#. Programmer's name for it: SDHPublicKeyWeak
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:49
+#. Programmer's name for it: SDHPublicKeyWeak
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:42
+msgid "Diffie-Hellman Public Key is Weak"
+msgstr ""
+
+#. Programmer's name for it: SDHPublicKeyNil
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:50
+msgid "DH Public Key Parameter Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNotInitialized
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:40
+msgid "Agreement Algorithm not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SParametersCannotBeNil
+#: libraries/cryptolib4pascal/ClpDHBasicKeyPairGenerator.pas:42
+#. Programmer's name for it: SParametersCannotBeNil
+#: libraries/cryptolib4pascal/ClpDHKeyPairGenerator.pas:42
+#. Programmer's name for it: SParametersCannotBeNil
+#: libraries/cryptolib4pascal/ClpDsaKeyPairGenerator.pas:44
+msgid "\"parameters\" Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SPNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:33
+msgid "P Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SGNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:34
+#. Programmer's name for it: SGNil
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:35
+msgid "G Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SQNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:35
+#. Programmer's name for it: SQNil
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:37
+#. Programmer's name for it: SQNil
+#: libraries/cryptolib4pascal/ClpECPublicKeyParameters.pas:35
+msgid "Q Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SJNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:36
+msgid "J Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SBadSequenceSize
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:37
+#. Programmer's name for it: SBadSequenceSize
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:34
+#. Programmer's name for it: SBadSequenceSize
+#: libraries/cryptolib4pascal/ClpDsaParameter.pas:32
+msgid "Bad Sequence Size \"seq\": %d"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDHDomainParameters
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:38
+msgid "Invalid DHDomainParameters: %s"
+msgstr ""
+
+#. Programmer's name for it: SPUnInitialized
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:33
+#. Programmer's name for it: SPUnInitialized
+#: libraries/cryptolib4pascal/ClpDsaParameters.pas:32
+msgid "\"P\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SGUnInitialized
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:34
+#. Programmer's name for it: SGUnInitialized
+#: libraries/cryptolib4pascal/ClpDsaParameters.pas:34
+msgid "\"G\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SMustBeOddPrime
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:35
+msgid "Field must be an Odd Prime, \"P\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidGeneratorRange
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:36
+msgid "Generator must in the Range [2, p - 2], "
+"\"G\""
+msgstr ""
+
+#. Programmer's name for it: SQTooBigToBeAFactor
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:37
+msgid "Q too Big to be a Factor of (P - 1), "
+"\"Q\""
+msgstr ""
+
+#. Programmer's name for it: SMTooBig
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:38
+msgid "M value must be < BitLength of P, \"M\""
+msgstr ""
+
+#. Programmer's name for it: SLErrorOne
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:39
+msgid "when L value specified, it must be less than bitlength(P), "
+"\"L\""
+msgstr ""
+
+#. Programmer's name for it: SLErrorTwo
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:40
+msgid "when L value specified, it may not be less than m value, "
+"\"L\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSubGroupFactor
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:41
+msgid "Subgroup factor must be >= 2, \"j\""
+msgstr ""
+
+#. Programmer's name for it: SXUnInitialized
+#: libraries/cryptolib4pascal/ClpDHPrivateKeyParameters.pas:33
+#. Programmer's name for it: SXUnInitialized
+#: libraries/cryptolib4pascal/ClpDsaPrivateKeyParameters.pas:32
+msgid "\"X\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SYUnInitialized
+#: libraries/cryptolib4pascal/ClpDHPublicKeyParameters.pas:33
+#. Programmer's name for it: SYUnInitialized
+#: libraries/cryptolib4pascal/ClpDsaPublicKeyParameters.pas:32
+msgid "\"Y\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDHPublicKey
+#: libraries/cryptolib4pascal/ClpDHPublicKeyParameters.pas:34
+msgid "Invalid DH public key \"Y\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidYInCorrectGroup
+#: libraries/cryptolib4pascal/ClpDHPublicKeyParameters.pas:35
+#. Programmer's name for it: SInvalidYInCorrectGroup
+#: libraries/cryptolib4pascal/ClpDsaPublicKeyParameters.pas:33
+msgid "\"Y\" Value Does Not Appear To Be In Correct "
+"Group"
+msgstr ""
+
+#. Programmer's name for it: SSeedNil
+#: libraries/cryptolib4pascal/ClpDHValidationParameters.pas:30
+#. Programmer's name for it: SSeedNil
+#: libraries/cryptolib4pascal/ClpDsaValidationParameters.pas:30
+msgid "\"Seed\" Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SSeedNil
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:32
+msgid "Seed Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SPGenCounterNil
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:33
+msgid "PGenCounter Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDHValidationParams
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:35
+msgid "Invalid DHValidationParams: %s"
+msgstr ""
+
+#. Programmer's name for it: SOutputBufferTooShort
+#: libraries/cryptolib4pascal/ClpDigest.pas:31
+#. Programmer's name for it: SOutputBufferTooShort
+#: libraries/cryptolib4pascal/ClpHMac.pas:34
+#. Programmer's name for it: SOutputBufferTooShort
+#: libraries/hashlib4pascal/HlpBlake2B.pas:27
+#. Programmer's name for it: SOutputBufferTooShort
+#: libraries/hashlib4pascal/HlpBlake2S.pas:27
+#. Programmer's name for it: SOutputBufferTooShort
+#: libraries/hashlib4pascal/HlpSHA3.pas:29
+msgid "Output Buffer Too Short"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedDigest
+#: libraries/cryptolib4pascal/ClpDigestUtilities.pas:43
+msgid "Digest \"%s\" not recognised."
+msgstr ""
+
+#. Programmer's name for it: SPrivateKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:41
+#. Programmer's name for it: SPrivateKey
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:40
+msgid "Signing Requires Private Key."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:42
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:41
+msgid "Verification Requires Public Key."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:44
+msgid "DSADigestSigner not Initialized for Signature "
+"Generation."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:46
+msgid "DSADigestSigner not Initialized for "
+"Verification"
+msgstr ""
+
+#. Programmer's name for it: SEncodingError
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:47
+#. Programmer's name for it: SEncodingError
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:46
+msgid "Unable to Encode Signature"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDsaParameter
+#: libraries/cryptolib4pascal/ClpDsaParameter.pas:33
+msgid "Invalid DsaParameter: %s"
+msgstr ""
+
+#. Programmer's name for it: SQUnInitialized
+#: libraries/cryptolib4pascal/ClpDsaParameters.pas:33
+msgid "\"Q\" Cannot Be Uninitialized"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:44
+msgid "L Values Must be Between 1024 and 3072 and a Multiple of "
+"1024"
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:45
+msgid "N Must be \" %d \" for L = \" %d \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:46
+msgid "N Must be \" %d \" or \" %d \" for L = \" %d "
+"\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:48
+msgid "Digest Output Size Too Small for Value of N Which is \" %d "
+"\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:50
+msgid "Can Only Use SHA-1 For Generating FIPS 186-2 "
+"Parameters"
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:52
+msgid "Size Must Be From %d - %d and a multiple of %d, "
+"\"%d\""
+msgstr ""
+
+#. Programmer's name for it: SDSAPrivateKeyNotFound
+#: libraries/cryptolib4pascal/ClpDsaSigner.pas:44
+msgid "DSA Private Key Required For Signing"
+msgstr ""
+
+#. Programmer's name for it: SDSAPublicKeyNotFound
+#: libraries/cryptolib4pascal/ClpDsaSigner.pas:45
+msgid "DSA Public Key Required For Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:43
+msgid "Point and Scalar Arrays Should be Non-Null, and of Equal, Non-Zero, "
+"Length"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointLocation
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:44
+msgid "Point Must be on the Same Curve"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:45
+msgid "Invalid Point, \"P\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidResult
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:46
+msgid "Invalid Result"
+msgstr ""
+
+#. Programmer's name for it: SInvalidResult
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:48
+#: libraries/cryptolib4pascal/ClpMultipliers.pas:46
+msgid "Fixed-Point Comb Doesn't Support Scalars Larger Than The Curve "
+"Order"
+msgstr ""
+
+#. Programmer's name for it: SInvalidValue
+#: libraries/cryptolib4pascal/ClpECC.pas:52
+msgid "Value Invalid in Fp Field Element, \" x "
+"\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidValue2
+#: libraries/cryptolib4pascal/ClpECC.pas:53
+msgid "Value Invalid in F2m Field Element, "
+"\"x\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value
+#: libraries/cryptolib4pascal/ClpECC.pas:54
+msgid "k2 must be smaller than k3"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:55
+msgid "k2 must be larger than 0"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:57
+msgid "Field elements are not both instances of "
+"F2mFieldElement"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:59
+msgid "Field elements are not elements of the same field "
+"F2m"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:61
+msgid "One of the F2m field elements has incorrect "
+"representation"
+msgstr ""
+
+#. Programmer's name for it: SEvenValue
+#: libraries/cryptolib4pascal/ClpECC.pas:62
+msgid "Even Value of Q"
+msgstr ""
+
+#. Programmer's name for it: STraceInternalErrorCalculation
+#: libraries/cryptolib4pascal/ClpECC.pas:63
+msgid "Internal Error in Trace Calculation"
+msgstr ""
+
+#. Programmer's name for it: SHalfTraceUndefinedForM
+#: libraries/cryptolib4pascal/ClpECC.pas:64
+msgid "Half-Trace Only Defined For Odd M"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCoordinateSystem
+#: libraries/cryptolib4pascal/ClpECC.pas:65
+msgid "UnSupported Coordinate System"
+msgstr ""
+
+#. Programmer's name for it: SCurrentCurve
+#: libraries/cryptolib4pascal/ClpECC.pas:66
+msgid "Implementation returned Current Curve"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointCoordinates
+#: libraries/cryptolib4pascal/ClpECC.pas:67
+msgid "Invalid Point Coordinates"
+msgstr ""
+
+#. Programmer's name for it: SInvalidAffineCoordinates
+#: libraries/cryptolib4pascal/ClpECC.pas:68
+msgid "not valid for affine coordinates, \"iso\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointOnCurve
+#: libraries/cryptolib4pascal/ClpECC.pas:69
+msgid "must be non-null and on this curve, "
+"\"point\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointOnCurve2
+#: libraries/cryptolib4pascal/ClpECC.pas:70
+msgid "Entries must be null or on this curve, "
+"\"points\""
+msgstr ""
+
+#. Programmer's name for it: SPointsNil
+#: libraries/cryptolib4pascal/ClpECC.pas:71
+msgid "points"
+msgstr ""
+
+#. Programmer's name for it: SInvalidRangeSpecified
+#: libraries/cryptolib4pascal/ClpECC.pas:72
+msgid "Invalid Range Specified\", \"points\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointCompression
+#: libraries/cryptolib4pascal/ClpECC.pas:73
+msgid "Invalid Point Compression"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK1
+#: libraries/cryptolib4pascal/ClpECC.pas:74
+msgid "k1 must be > 0"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK3
+#: libraries/cryptolib4pascal/ClpECC.pas:75
+msgid "k3 must be 0 if k2 == 0"
+msgstr ""
+
+#. Programmer's name for it: SK2K1MisMatch
+#: libraries/cryptolib4pascal/ClpECC.pas:76
+msgid "k2 must be > k1"
+msgstr ""
+
+#. Programmer's name for it: SK3K2Mismatch
+#: libraries/cryptolib4pascal/ClpECC.pas:77
+msgid "k3 must be > k2"
+msgstr ""
+
+#. Programmer's name for it: SInvalidInfinityEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:78
+msgid "Invalid Infinity Encoding, \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:79
+msgid "Invalid Point Encoding %u"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:81
+msgid "Incorrect Length for infinity encoding\", "
+"\"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:83
+msgid "Incorrect Length for Compressed Encoding\", "
+"\"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:84
+msgid "Invalid Point"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:86
+msgid "Incorrect Length for UnCompressed Encoding\", "
+"\"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:88
+msgid "Incorrect Length for Hybrid Encoding\", "
+"\"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:90
+msgid "Inconsistent Y Coordinate in Hybrid Encoding\", "
+"\"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SUnknownCoordSystem
+#: libraries/cryptolib4pascal/ClpECC.pas:91
+msgid "Unknown Coordinate System"
+msgstr ""
+
+#. Programmer's name for it: SPointNotInNormalForm
+#: libraries/cryptolib4pascal/ClpECC.pas:92
+msgid "Point not in Normal Form"
+msgstr ""
+
+#. Programmer's name for it: SNotProjectiveCoordSystem
+#: libraries/cryptolib4pascal/ClpECC.pas:93
+msgid "Not a Projective Coordinate System"
+msgstr ""
+
+#. Programmer's name for it: SCannotBeNegative
+#: libraries/cryptolib4pascal/ClpECC.pas:94
+msgid "Cannot be Negative, \"e\""
+msgstr ""
+
+#. Programmer's name for it: SNilFieldElement
+#: libraries/cryptolib4pascal/ClpECC.pas:95
+msgid "Exactly one of the Field Elements is "
+"Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedOperation
+#: libraries/cryptolib4pascal/ClpECC.pas:96
+msgid "Constant-time Lookup not Supported"
+msgstr ""
+
+#. Programmer's name for it: SInvalidRange
+#: libraries/cryptolib4pascal/ClpECCompUtilities.pas:43
+msgid "Must be in the Range [2, 16], \"width\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidRange2
+#: libraries/cryptolib4pascal/ClpECCompUtilities.pas:44
+msgid "Must be in the Range [2, 8], \"width\""
+msgstr ""
+
+#. Programmer's name for it: SWrongDomainParameter
+#: libraries/cryptolib4pascal/ClpECDHBasicAgreement.pas:39
+msgid "ECDH Public Key has Wrong Domain Parameters"
+msgstr ""
+
+#. Programmer's name for it: SInvalidAgreementValue
+#: libraries/cryptolib4pascal/ClpECDHBasicAgreement.pas:40
+msgid "Infinity is not a Valid Agreement Value for "
+"ECDH"
+msgstr ""
+
+#. Programmer's name for it: SInfinityInvalidPublicKey
+#: libraries/cryptolib4pascal/ClpECDHBasicAgreement.pas:41
+msgid "Infinity is not a Valid Public Key for "
+"ECDH"
+msgstr ""
+
+#. Programmer's name for it: SWrongDomainParameter
+#: libraries/cryptolib4pascal/ClpECDHCBasicAgreement.pas:39
+msgid "ECDHC Public Key has Wrong Domain Parameters"
+msgstr ""
+
+#. Programmer's name for it: SInvalidAgreementValue
+#: libraries/cryptolib4pascal/ClpECDHCBasicAgreement.pas:40
+msgid "Infinity is not a Valid Agreement Value for "
+"ECDHC"
+msgstr ""
+
+#. Programmer's name for it: SInfinityInvalidPublicKey
+#: libraries/cryptolib4pascal/ClpECDHCBasicAgreement.pas:41
+msgid "Infinity is not a Valid Public Key for "
+"ECDHC"
+msgstr ""
+
+#. Programmer's name for it: SCurveNil
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:33
+msgid "Curve Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SScalarNil
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:34
+msgid "Scalar Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SBigIntegerNotInitialized
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:36
+#. Programmer's name for it: SBigIntegerNotInitialized
+#: libraries/cryptolib4pascal/ClpECPrivateKeyParameters.pas:32
+msgid "BigInteger Not Initialized \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SQInfinity
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:38
+msgid "Point at Infinity \"Q\""
+msgstr ""
+
+#. Programmer's name for it: SQPointNotOnCurve
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:39
+msgid "Point Not on Curve \"Q\""
+msgstr ""
+
+#. Programmer's name for it: SScalarInvalidRange
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:40
+msgid "Scalar is not in the Interval [1, n - "
+"1]"
+msgstr ""
+
+#. Programmer's name for it: SECPublicKeyNotFound
+#: libraries/cryptolib4pascal/ClpECDsaSigner.pas:47
+#. Programmer's name for it: SECPublicKeyNotFound
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:47
+#. Programmer's name for it: SECPublicKeyNotFound
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:45
+msgid "EC Public Key Required for Verification"
+msgstr ""
+
+#. Programmer's name for it: SECPrivateKeyNotFound
+#: libraries/cryptolib4pascal/ClpECDsaSigner.pas:48
+#. Programmer's name for it: SECPrivateKeyNotFound
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:48
+#. Programmer's name for it: SECPrivateKeyNotFound
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:46
+msgid "EC Private Key Required for Signing"
+msgstr ""
+
+#. Programmer's name for it: SSenderPublicKeyInvalid
+#: libraries/cryptolib4pascal/ClpECIESPublicKeyParser.pas:35
+msgid "Sender's Public Key Invalid."
+msgstr ""
+
+#. Programmer's name for it: SSenderPublicKeyInvalid
+#: libraries/cryptolib4pascal/ClpECIESPublicKeyParser.pas:37
+msgid "Sender's Public Key has Invalid Point Encoding "
+"\"%x\""
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNil
+#: libraries/cryptolib4pascal/ClpECKeyPairGenerator.pas:56
+#. Programmer's name for it: SAlgorithmNil
+#: libraries/cryptolib4pascal/ClpECKeyParameters.pas:39
+msgid "Algorithm Cannot be Empty"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeySize
+#: libraries/cryptolib4pascal/ClpECKeyPairGenerator.pas:57
+msgid "Unknown Key Size \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SParameterNil
+#: libraries/cryptolib4pascal/ClpECKeyParameters.pas:40
+msgid "Parameter Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedAlgorithm
+#: libraries/cryptolib4pascal/ClpECKeyParameters.pas:41
+msgid "Unrecognised Algorithm: \" %s, \"Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedForSigning
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:49
+#. Programmer's name for it: SNotInitializedForSigning
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:47
+msgid "Not Initialised For Signing"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedForVerifying
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:50
+#. Programmer's name for it: SNotInitializedForVerifying
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:48
+msgid "Not Initialised For Verifying"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedForVerifying
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:52
+msgid "Not Initialised For Verifying/Recovery"
+msgstr ""
+
+#. Programmer's name for it: SInputTooLargeForECNRKey
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:53
+msgid "Input Too Large For ECNR Key."
+msgstr ""
+
+#. Programmer's name for it: SSignatureGenerationError
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:49
+msgid "An Error Occurred During Signature Generation"
+msgstr ""
+
+#. Programmer's name for it: SSignatureGenerationError
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:51
+msgid "Only FP (Prime Field) Curves are Allowed for This Schnorr "
+"Implementation"
+msgstr ""
+
+#. Programmer's name for it: SInvalidCtx
+#: libraries/cryptolib4pascal/ClpEd25519.pas:40
+msgid "ctx"
+msgstr ""
+
+#. Programmer's name for it: SDigestError
+#: libraries/cryptolib4pascal/ClpEd25519.pas:41
+msgid "Digest Produced Insufficient Data"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPrivateKey
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:38
+msgid "EOF encountered in middle of Ed25519Blake2B private "
+"key"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedAlgorithm
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:39
+#. Programmer's name for it: SUnsupportedAlgorithm
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:39
+msgid "Unsupported Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SCtxNotNil
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:40
+#. Programmer's name for it: SCtxNotNil
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:40
+msgid "Ctx must be Nil for Ed25519 Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SMsgLen
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:41
+#. Programmer's name for it: SMsgLen
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:41
+msgid "MsgLen must be Equal to \"PreHashSize\" for Ed25519ph "
+"Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPublicKey
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPublicKeyParameters.pas:34
+msgid "EOF encountered in middle of Ed25519Blake2B public "
+"key"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BSigner.pas:37
+msgid "Ed25519Blake2BSigner not Initialised for Signature "
+"Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BSigner.pas:39
+msgid "Ed25519Blake2BSigner not Initialised for "
+"Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxBlake2BSigner.pas:37
+msgid "Ed25519CtxBlake2BSigner not Initialised for Signature "
+"Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxBlake2BSigner.pas:39
+msgid "Ed25519CtxBlake2BSigner not Initialised for "
+"Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxSigner.pas:37
+msgid "Ed25519CtxSigner not Initialised for Signature "
+"Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxSigner.pas:39
+msgid "Ed25519CtxSigner not Initialised for "
+"Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhBlake2BSigner.pas:37
+msgid "Ed25519PhBlake2BSigner not Initialised for Signature "
+"Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhBlake2BSigner.pas:39
+msgid "Ed25519PhBlake2BSigner not Initialised for "
+"Verification"
+msgstr ""
+
+#. Programmer's name for it: SPreHashDigestFailed
+#: libraries/cryptolib4pascal/ClpEd25519PhBlake2BSigner.pas:40
+#. Programmer's name for it: SPreHashDigestFailed
+#: libraries/cryptolib4pascal/ClpEd25519PhSigner.pas:40
+msgid "PreHash Digest Failed"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhSigner.pas:37
+msgid "Ed25519PhSigner not Initialised for Signature "
+"Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhSigner.pas:39
+msgid "Ed25519PhSigner not Initialised for "
+"Verification"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPrivateKey
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:38
+msgid "EOF encountered in middle of Ed25519 private "
+"key"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPublicKey
+#: libraries/cryptolib4pascal/ClpEd25519PublicKeyParameters.pas:34
+msgid "EOF encountered in middle of Ed25519 public "
+"key"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Signer.pas:37
+msgid "Ed25519Signer not Initialised for Signature "
+"Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Signer.pas:39
+msgid "Ed25519Signer not Initialised for Verification"
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacteristic
+#: libraries/cryptolib4pascal/ClpFiniteFields.pas:35
+msgid "Must be >= 2 , \" characteristic \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacteristic
+#: libraries/cryptolib4pascal/ClpFiniteFields.pas:37
+msgid "Irreducible polynomials in GF(2) must have constant term, "
+"\"exponents\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacteristic
+#: libraries/cryptolib4pascal/ClpFiniteFields.pas:39
+msgid "Polynomial Exponents must be montonically increasing\", "
+"\"exponents\""
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:52
+msgid "KeyGenerator \"%s\" not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:54
+msgid "KeyGenerator \"%s\" ( \"%s\" ) not Supported."
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:56
+msgid "KeyPairGenerator \"%s\" not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:58
+msgid "KeyPairGenerator \"%s\" ( \"%s\" ) not Supported."
+msgstr ""
+
+#. Programmer's name for it: SSizeTooBigHKDF
+#: libraries/cryptolib4pascal/ClpHkdfBytesGenerator.pas:39
+msgid "HKDF Cannot Generate More Than 255 Blocks of HashLen "
+"Size"
+msgstr ""
+
+#. Programmer's name for it: SSizeTooBigHKDF2
+#: libraries/cryptolib4pascal/ClpHkdfBytesGenerator.pas:40
+msgid "HKDF May Only Be Used For 255 * HashLen Bytes of "
+"Output"
+msgstr ""
+
+#. Programmer's name for it: SSizeTooBigHKDF2
+#: libraries/cryptolib4pascal/ClpHkdfBytesGenerator.pas:42
+msgid "HKDF Parameters Required For \"HkdfBytesGenerator\", "
+"\"parameters\""
+msgstr ""
+
+#. Programmer's name for it: SIKMNil
+#: libraries/cryptolib4pascal/ClpHkdfParameters.pas:30
+msgid "\"ikm\" is Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedOperation
+#: libraries/cryptolib4pascal/ClpHMacDsaKCalculator.pas:42
+#. Programmer's name for it: SUnSupportedOperation
+#: libraries/cryptolib4pascal/ClpRandomDsaKCalculator.pas:34
+msgid "Operation not Supported"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:54
+msgid "Must be Passed Recipient's Public EC Key for "
+"Encryption"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:56
+msgid "Must be Passed Recipient's Private EC Key for "
+"Decryption"
+msgstr ""
+
+#. Programmer's name for it: SIAlgorithmParameterSpecNil
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:57
+msgid "Parameter Spec Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnableToProcessBlock
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:58
+msgid "Unable to Process Block. \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SIESParameterSpecError
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:59
+msgid "Must be Passed IES Parameter Spec"
+msgstr ""
+
+#. Programmer's name for it: SNonceInvalidLength
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:60
+msgid "Nonce in IES Parameters Needs to be \"%s\" Bytes "
+"Long"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESEngine.pas:53
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:45
+msgid "Unable to Recover Ephemeral Public Key: "
+"\"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESEngine.pas:55
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:47
+msgid "Length of Input Must be Greater than the MAC and V "
+"Combined"
+msgstr ""
+
+#. Programmer's name for it: SInvalidMAC
+#: libraries/cryptolib4pascal/ClpIESEngine.pas:56
+#. Programmer's name for it: SInvalidMAC
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:48
+msgid "Invalid MAC"
+msgstr ""
+
+#. Programmer's name for it: SRandomNil
+#: libraries/cryptolib4pascal/ClpKeyGenerationParameters.pas:30
+msgid "Random Class Instance Can't Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SInvalidStrength
+#: libraries/cryptolib4pascal/ClpKeyGenerationParameters.pas:31
+msgid "Strength Must Be Greater Than Zero But Was Given "
+"%d"
+msgstr ""
+
+#. Programmer's name for it: SKeyNil
+#: libraries/cryptolib4pascal/ClpKeyParameter.pas:31
+msgid "Key Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyOffSet
+#: libraries/cryptolib4pascal/ClpKeyParameter.pas:32
+msgid "Invalid Key OffSet"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/cryptolib4pascal/ClpKeyParameter.pas:33
+msgid "Invalid Key Length"
+msgstr ""
+
+#. Programmer's name for it: SInvalidF2MFieldValue
+#: libraries/cryptolib4pascal/ClpLongArray.pas:34
+msgid "Invalid F2M Field value, \"bigInt\""
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedMac
+#: libraries/cryptolib4pascal/ClpMacUtilities.pas:40
+msgid "Mac \"%s\" not recognised."
+msgstr ""
+
+#. Programmer's name for it: SCannotBeZero
+#: libraries/cryptolib4pascal/ClpMod.pas:35
+msgid "cannot be 0, \"x\""
+msgstr ""
+
+#. Programmer's name for it: SCurveUnknownGroupOrder
+#: libraries/cryptolib4pascal/ClpMultipliers.pas:47
+msgid "Need Curve With Known Group Order, \"curve\""
+msgstr ""
+
+#. Programmer's name for it: SInCompatiblePoint
+#: libraries/cryptolib4pascal/ClpMultipliers.pas:48
+msgid "Only AbstractF2mPoint can be used in "
+"WTauNafMultiplier"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:72
+msgid "An Error Occured while generating random data using MS Windows "
+"Cryptography API."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:76
+msgid "An Error Occured while generating random data using "
+"SecRandomCopyBytes API."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:80
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:84
+msgid "An Error Occured while generating random data using getRandom "
+"API"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:88
+msgid "An Error Occured while generating random data using arc4random_buf "
+"API."
+msgstr ""
+
+#. Programmer's name for it: SIncompleteLastBlockInDecryption
+#: libraries/cryptolib4pascal/ClpPaddedBufferedBlockCipher.pas:41
+msgid "Last Block Incomplete in Decryption"
+msgstr ""
+
+#. Programmer's name for it: SCorruptedPadBlock
+#: libraries/cryptolib4pascal/ClpPaddingModes.pas:32
+msgid "Pad Block Corrupted"
+msgstr ""
+
+#. Programmer's name for it: SIVNil
+#: libraries/cryptolib4pascal/ClpParametersWithIV.pas:31
+msgid "IV Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SParameters
+#: libraries/cryptolib4pascal/ClpParametersWithRandom.pas:32
+msgid "Parameters"
+msgstr ""
+
+#. Programmer's name for it: SRandom
+#: libraries/cryptolib4pascal/ClpParametersWithRandom.pas:33
+msgid "Random"
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpParameterUtilities.pas:38
+msgid "Algorithm \"%s\" not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SKDFParameterNotFound
+#: libraries/cryptolib4pascal/ClpPascalCoinECIESKdfBytesGenerator.pas:37
+msgid "Specified Hash Cannot Produce Sufficient Data for the Specified "
+"Operation."
+msgstr ""
+
+#. Programmer's name for it: SCipherCannotbeNilInThisMode
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:49
+msgid "Cipher Cannot be Nil in This Mode."
+msgstr ""
+
+#. Programmer's name for it: SBufferNil
+#: libraries/cryptolib4pascal/ClpRandom.pas:30
+msgid "Buffer Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SMaxValueNegative
+#: libraries/cryptolib4pascal/ClpRandom.pas:31
+msgid "maxValue Must be Positive"
+msgstr ""
+
+#. Programmer's name for it: SInvalidMinValue
+#: libraries/cryptolib4pascal/ClpRandom.pas:32
+msgid "minValue Cannot be Greater Than maxValue"
+msgstr ""
+
+#. Programmer's name for it: SUnknownAlgorithm
+#: libraries/cryptolib4pascal/ClpRandomNumberGenerator.pas:31
+msgid "Unknown Random Generation Algorithm "
+"Requested"
+msgstr ""
+
+#. Programmer's name for it: SUnknownAlgorithm
+#: libraries/cryptolib4pascal/ClpRandomNumberGenerator.pas:33
+msgid "Random Number Generator Output Buffer Cannot Be "
+"Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedBlock
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:37
+msgid "Unknown Blocksize to Rijndael"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:38
+msgid "Key Length not 128/160/192/224/256 bits."
+msgstr ""
+
+#. Programmer's name for it: SRijndaelEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:39
+msgid "Rijndael Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SRijndaelEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:41
+msgid "Invalid Parameter Passed to Rijndael Init - "
+"\"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidRound
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:38
+msgid "\"rounds\" Must be a Positive, Even Number"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeySize
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:39
+msgid "%s Requires 128 bit or 256 bit key"
+msgstr ""
+
+#. Programmer's name for it: SMaxByteExceeded
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:40
+msgid "2^70 Byte Limit per IV; Change IV"
+msgstr ""
+
+#. Programmer's name for it: SMaxByteExceededTwo
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:41
+msgid "2^70 byte limit per IV would be exceeded; Change "
+"IV"
+msgstr ""
+
+#. Programmer's name for it: SEngineNotInitialized
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:42
+msgid "%s not Initialized"
+msgstr ""
+
+#. Programmer's name for it: SRoundsMustbeEven
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:45
+#. Programmer's name for it: SRoundsMustBeEven
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:37
+msgid "Number of Rounds Must be Even"
+msgstr ""
+
+#. Programmer's name for it: SIVRequired
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:47
+msgid "%s Init Requires an IV, \"parameters\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidIV
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:48
+msgid "%s Requires exactly %d bytes of IV"
+msgstr ""
+
+#. Programmer's name for it: SInvalidIV
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:50
+msgid "%s Init Parameters must Contain a KeyParameter (or null for "
+"Re-Init)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidIV
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:52
+msgid "KeyParameter can not be null for First "
+"Initialisation"
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameters
+#: libraries/cryptolib4pascal/ClpScalarSplitParameters.pas:30
+msgid "\"%s\" must consist of exactly 2 (initialized) "
+"values"
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:43
+msgid "SchnorrDigestSigner not Initialized for Signature "
+"Generation."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:45
+msgid "SchnorrDigestSigner not Initialized for "
+"Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP256K1Custom.pas:40
+msgid "Value Invalid for SecP256K1FieldElement "
+"\"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP256R1Custom.pas:40
+msgid "Value Invalid for SecP256R1FieldElement "
+"\"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP384R1Custom.pas:40
+msgid "Value Invalid for SecP384R1FieldElement "
+"\"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP521R1Custom.pas:40
+msgid "Value Invalid for SecP521R1FieldElement "
+"\"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecT283Custom.pas:41
+msgid "Value Invalid for SecT283FieldElement "
+"\"%s\""
+msgstr ""
+
+#. Programmer's name for it: SUnRecognisedPRNGAlgorithm
+#: libraries/cryptolib4pascal/ClpSecureRandom.pas:43
+msgid "Unrecognised PRNG Algorithm: %s \"algorithm\""
+msgstr ""
+
+#. Programmer's name for it: SCannotBeNegative
+#: libraries/cryptolib4pascal/ClpSecureRandom.pas:44
+msgid "Cannot be Negative  \"maxValue\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidMaxValue
+#: libraries/cryptolib4pascal/ClpSecureRandom.pas:45
+msgid "maxValue Cannot be Less Than minValue"
+msgstr ""
+
+#. Programmer's name for it: SMalformedSignature
+#: libraries/cryptolib4pascal/ClpSignersEncodings.pas:35
+msgid "Malformed signature, \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SValueOutOfRange
+#: libraries/cryptolib4pascal/ClpSignersEncodings.pas:36
+msgid "Value out of range, \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidEncodingLength
+#: libraries/cryptolib4pascal/ClpSignersEncodings.pas:37
+msgid "Encoding has incorrect length, \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedAlgorithm
+#: libraries/cryptolib4pascal/ClpSignerUtilities.pas:71
+msgid "Signer \" %s \" not recognised."
+msgstr ""
+
+#. Programmer's name for it: SInvalidScale
+#: libraries/cryptolib4pascal/ClpSimpleBigDecimal.pas:29
+#. Programmer's name for it: SNegativeScale
+#: libraries/cryptolib4pascal/ClpSimpleBigDecimal.pas:32
+msgid "Scale may not be Negative"
+msgstr ""
+
+#. Programmer's name for it: SInvalidScale
+#: libraries/cryptolib4pascal/ClpSimpleBigDecimal.pas:31
+msgid "Only SimpleBigDecimal of Same Scale Allowed in Arithmetic "
+"Operations"
+msgstr ""
+
+#. Programmer's name for it: SSpeckEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:35
+#. Programmer's name for it: SSpeckLegacyEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:35
+msgid "%s Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:38
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:38
+msgid "Invalid Argument Encountered."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:39
+msgid "Invalid Parameter Passed to Speck Init - "
+"\"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:41
+msgid "Speck32 requires a key of 64 bits but input was \"%d\" "
+"bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:43
+msgid "Speck48 requires a key of 72 or 96 bits but input was \"%d\" "
+"bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:45
+msgid "Speck64 requires a key of 96 or 128 bits but input was \"%d\" "
+"bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:47
+msgid "Speck96 requires a key of 96 or 144 bits but input was \"%d\" "
+"bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:49
+msgid "Speck128 requires a key of 128, 192 or 256 bits but input was \"%d\" "
+"bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:40
+msgid "Invalid Parameter Passed to SpeckLegacy Init - "
+"\"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:42
+msgid "Speck32Legacy requires a key of 64 bits but input was \"%d\" "
+"bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:44
+msgid "Speck48Legacy requires a key of 72 or 96 bits but input was \"%d\" "
+"bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:46
+msgid "Speck64Legacy requires a key of 96 or 128 bits but input was \"%d\" "
+"bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:48
+msgid "Speck96Legacy requires a key of 96 or 144 bits but input was \"%d\" "
+"bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:50
+msgid "Speck128Legacy requires a key of 128, 192 or 256 bits but input was "
+"\"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidMU
+#: libraries/cryptolib4pascal/ClpTnaf.pas:34
+msgid "mu must be 1 or -1"
+msgstr ""
+
+#. Programmer's name for it: SDifferentScales
+#: libraries/cryptolib4pascal/ClpTnaf.pas:35
+msgid "lambda0 and lambda1 do not have same "
+"scale"
+msgstr ""
+
+#. Programmer's name for it: SNoKoblitzCurve
+#: libraries/cryptolib4pascal/ClpTnaf.pas:36
+msgid "No Koblitz curve (ABC), TNAF multiplication not "
+"possible"
+msgstr ""
+
+#. Programmer's name for it: SNotKoblitzCurve
+#: libraries/cryptolib4pascal/ClpTnaf.pas:37
+msgid "si is defined for Koblitz curves only"
+msgstr ""
+
+#. Programmer's name for it: SInvalidCoFactor
+#: libraries/cryptolib4pascal/ClpTnaf.pas:38
+msgid "h (Cofactor) must be 2 or 4"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpX25519Agreement.pas:36
+msgid "The Init Parameter does not Contain the Private "
+"Key"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPrivateKey
+#: libraries/cryptolib4pascal/ClpX25519PrivateKeyParameters.pas:37
+msgid "EOF encountered in middle of X25519 private "
+"key"
+msgstr ""
+
+#. Programmer's name for it: SAgreementCalculationFailed
+#: libraries/cryptolib4pascal/ClpX25519PrivateKeyParameters.pas:38
+msgid "X25519 Agreement Failed"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPublicKey
+#: libraries/cryptolib4pascal/ClpX25519PublicKeyParameters.pas:34
+msgid "EOF encountered in middle of X25519 public "
+"key"
+msgstr ""
+
+#. Programmer's name for it: SInconsistentKValues
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:36
+msgid "Inconsistent K Values"
+msgstr ""
+
+#. Programmer's name for it: SCurveNil
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:37
+msgid "Curve"
+msgstr ""
+
+#. Programmer's name for it: SNotImplementedECCurve
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:38
+msgid "This Type of ECCurve is not Implemented"
+msgstr ""
+
+#. Programmer's name for it: SFieldIDNil
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:39
+msgid "FieldID"
+msgstr ""
+
+#. Programmer's name for it: SSeqNil
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:40
+msgid "Seq"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCurveOne
+#: libraries/cryptolib4pascal/ClpX9ECParameters.pas:38
+msgid "Only trinomial and pentomial curves are "
+"supported"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCurveTwo
+#: libraries/cryptolib4pascal/ClpX9ECParameters.pas:39
+msgid "\"curve\" is of an unsupported type"
+msgstr ""
+
+#. Programmer's name for it: SBadVersion
+#: libraries/cryptolib4pascal/ClpX9ECParameters.pas:40
+msgid "Bad Version in X9ECParameters"
+msgstr ""
+
+#. Programmer's name for it: SNullKeyReInit
+#: libraries/cryptolib4pascal/ClpXSalsa20Engine.pas:33
+msgid "%s Doesn't Support Re-Init with Null "
+"Key"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeySize
+#: libraries/cryptolib4pascal/ClpXSalsa20Engine.pas:34
+msgid "%s Requires a 256 bit Key"
+msgstr ""
+
+#. Programmer's name for it: SArgumentOutOfRange
+#: libraries/generics.collections/generics.strings.pas:26
+msgid "Argument out of range"
+msgstr ""
+
+#. Programmer's name for it: SArgumentNilNode
+#: libraries/generics.collections/generics.strings.pas:27
+msgid "Node is nil"
+msgstr ""
+
+#. Programmer's name for it: SDuplicatesNotAllowed
+#: libraries/generics.collections/generics.strings.pas:28
+msgid "Duplicates not allowed in dictionary"
+msgstr ""
+
+#. Programmer's name for it: SCollectionInconsistency
+#: libraries/generics.collections/generics.strings.pas:29
+msgid "Collection inconsistency"
+msgstr ""
+
+#. Programmer's name for it: SCollectionDuplicate
+#: libraries/generics.collections/generics.strings.pas:30
+msgid "Collection does not allow duplicates"
+msgstr ""
+
+#. Programmer's name for it: SDictionaryKeyDoesNotExist
+#: libraries/generics.collections/generics.strings.pas:31
+msgid "Dictionary key does not exist"
+msgstr ""
+
+#. Programmer's name for it: SItemNotFound
+#: libraries/generics.collections/generics.strings.pas:32
+msgid "Item not found"
+msgstr ""
+
+#. Programmer's name for it: SInvalidConfigLength
+#: libraries/hashlib4pascal/HlpBlake2B.pas:22
+#. Programmer's name for it: SInvalidConfigLength
+#: libraries/hashlib4pascal/HlpBlake2S.pas:22
+msgid "Config Length Must Be 8 Words"
+msgstr ""
+
+#. Programmer's name for it: SConfigNil
+#: libraries/hashlib4pascal/HlpBlake2B.pas:23
+#. Programmer's name for it: SConfigNil
+#: libraries/hashlib4pascal/HlpBlake2S.pas:23
+msgid "Config Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SConfigNil
+#: libraries/hashlib4pascal/HlpBlake2B.pas:25
+#. Programmer's name for it: SConfigNil
+#: libraries/hashlib4pascal/HlpBlake2S.pas:25
+msgid "XOFSize in Bits must be Multiples of 8 and be Between %u and %u "
+"Bytes."
+msgstr ""
+
+#. Programmer's name for it: SOutputLengthInvalid
+#: libraries/hashlib4pascal/HlpBlake2B.pas:26
+#. Programmer's name for it: SOutputLengthInvalid
+#: libraries/hashlib4pascal/HlpBlake2S.pas:26
+#. Programmer's name for it: SOutputLengthInvalid
+#: libraries/hashlib4pascal/HlpSHA3.pas:28
+msgid "Output Length is above the Digest Length"
+msgstr ""
+
+#. Programmer's name for it: SMaximumOutputLengthExceeded
+#: libraries/hashlib4pascal/HlpBlake2B.pas:28
+msgid "\"Maximum Length is 2^32 blocks of 64 "
+"bytes"
+msgstr ""
+
+#. Programmer's name for it: SWritetoXofAfterReadError
+#: libraries/hashlib4pascal/HlpBlake2B.pas:29
+#. Programmer's name for it: SWritetoXofAfterReadError
+#: libraries/hashlib4pascal/HlpBlake2S.pas:29
+#. Programmer's name for it: SWritetoXofAfterReadError
+#: libraries/hashlib4pascal/HlpSHA3.pas:30
+msgid "\"%s\" Write to Xof after Read not Allowed"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:16
+msgid "BLAKE2B HashSize must be restricted to one of the following [1 .. "
+"64], \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:17
+msgid "\"Key\" Length Must Not Be Greater Than 64, "
+"\"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:19
+msgid "\"Personalisation\" Length Must Be Equal To 16, "
+"\"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:20
+msgid "\"Salt\" Length Must Be Equal To 16, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:23
+msgid "FanOut Value Should be Between [0 .. 255] for "
+"Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:25
+msgid "MaxDepth Value Should be Between [1 .. 255] for "
+"Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:27
+msgid "NodeDepth Value Should be Between [0 .. 255] for "
+"Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:29
+msgid "InnerHashSize Value Should be Between [0 .. 64] for "
+"Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:31
+msgid "NodeOffset Value Should be Between [0 .. (2^64-1)] for "
+"Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:34
+msgid "Tree Inner Hash Size Must Not Be Greater Than 64, "
+"\"%d\""
+msgstr ""
+
+#. Programmer's name for it: SMaximumOutputLengthExceeded
+#: libraries/hashlib4pascal/HlpBlake2S.pas:28
+msgid "\"Maximum Length is 2^32 blocks of 32 "
+"bytes"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:16
+msgid "BLAKE2S HashSize must be restricted to one of the following [1 .. "
+"32], \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:17
+msgid "\"Key\" Length Must Not Be Greater Than 32, "
+"\"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:19
+msgid "\"Personalisation\" Length Must Be Equal To 8, "
+"\"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:20
+msgid "\"Salt\" Length Must Be Equal To 8, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:23
+msgid "FanOut Value Should be Between [0 .. 255] for "
+"Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:25
+msgid "MaxDepth Value Should be Between [1 .. 255] for "
+"Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:27
+msgid "NodeDepth Value Should be Between [0 .. 255] for "
+"Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:29
+msgid "InnerHashSize Value Should be Between [0 .. 32] for "
+"Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:31
+msgid "NodeOffset Value Should be Between [0 .. (2^48-1)] for "
+"Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:34
+msgid "Tree Inner Hash Size Must Not Be Greater Than 32, "
+"\"%d\""
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCRCType
+#: libraries/hashlib4pascal/HlpCRC.pas:22
+msgid "UnSupported CRC Type: \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SWidthOutOfRange
+#: libraries/hashlib4pascal/HlpCRC.pas:23
+msgid "Width Must be Between 3 and 64. \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SIndexOutOfRange
+#: libraries/hashlib4pascal/HlpHash.pas:16
+msgid "Current Index Is Out Of Range"
+msgstr ""
+
+#. Programmer's name for it: SFileNotExist
+#: libraries/hashlib4pascal/HlpHash.pas:19
+msgid "Specified File Not Found"
+msgstr ""
+
+#. Programmer's name for it: SCloneNotYetImplemented
+#: libraries/hashlib4pascal/HlpHash.pas:20
+msgid "Clone Not Yet Implemented For \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SHashBufferMessage
+#: libraries/hashlib4pascal/HlpHashBuffer.pas:13
+msgid "HashBuffer, Length: %d, Position: %d, IsEmpty: "
+"%s"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:27
+msgid "Current Data Structure cannot be Represented as an \"Int32\" "
+"Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:29
+msgid "Current Data Structure cannot be Represented as an \"UInt8\" "
+"Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:31
+msgid "Current Data Structure cannot be Represented as an \"UInt16\" "
+"Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:33
+msgid "Current Data Structure cannot be Represented as an \"UInt32\" "
+"Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:35
+msgid "Current Data Structure cannot be Represented as an \"UInt64\" "
+"Type."
+msgstr ""
+
+#. Programmer's name for it: SInvalidHavalRound
+#: libraries/hashlib4pascal/HlpHaval.pas:25
+msgid "Haval Round Must be 3, 4 or 5"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHavalRound
+#: libraries/hashlib4pascal/HlpHaval.pas:27
+msgid "Haval HashSize Must be Either 128 bit(16 byte), 160 bit(20 byte), 192 "
+"bit(24 byte), 224 bit(28 byte) or 256 bit(32 "
+"byte)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpMurmur2.pas:24
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpMurmur2_64.pas:21
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpMurmurHash3_x64_128.pas:22
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpMurmurHash3_x86_128.pas:22
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpMurmurHash3_x86_32.pas:22
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpSipHash.pas:23
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpXXHash32.pas:19
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpXXHash64.pas:19
+msgid "KeyLength Must Be Equal to %d"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpNullable.pas:16
+msgid "Cannot assign non-null pointer to nullable "
+"type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpNullable.pas:18
+msgid "Unsupported Type: Only supports Integers, Int64, Floats and "
+"Strings."
+msgstr ""
+
+#. Programmer's name for it: SGetNullValue
+#: libraries/hashlib4pascal/HlpNullable.pas:19
+msgid "Attempted to get a null value."
+msgstr ""
+
+#. Programmer's name for it: SHashSizeNotImplemented
+#: libraries/hashlib4pascal/HlpNullDigest.pas:18
+msgid "HashSize Not Implemented For \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeNotImplemented
+#: libraries/hashlib4pascal/HlpNullDigest.pas:19
+msgid "BlockSize Not Implemented For \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidOutputByteCount
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:32
+msgid "\"(AByteCount)\" Argument Less Than \"%d\"."
+msgstr ""
+
+#. Programmer's name for it: SBlockInstanceNotInitialized
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:33
+msgid "Block Instance not Initialized"
+msgstr ""
+
+#. Programmer's name for it: SInputLengthInvalid
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:34
+msgid "Input Length \"%d\" is not Equal to BlockSize "
+"\"%d\""
+msgstr ""
+
+#. Programmer's name for it: SLanesTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:35
+msgid "Lanes Must be Greater Than \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SLanesTooBig
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:36
+msgid "Lanes Must be Less Than \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SMemoryTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:37
+msgid "Memory is Less Than: \"%d\", Expected "
+"\"%d\""
+msgstr ""
+
+#. Programmer's name for it: SIterationsTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:38
+msgid "Iterations is Less Than: \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SIterationsTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:40
+msgid "Argon2 Parameter Builder Not Initialized"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:31
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:18
+msgid "\"(AByteCount)\" Argument must be a value greater than "
+"zero."
+msgstr ""
+
+#. Programmer's name for it: SInvalidCost
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:32
+msgid "Cost parameter must be > 1 and a power of "
+"2."
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeAndCostIncompatible
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:33
+msgid "Cost parameter must be > 1 and < 65536."
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:34
+msgid "Block size must be >= 1."
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:36
+msgid "Parallelism parameter must be >= 1 and <= %d (based on block size of "
+"%d)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidIndex
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:19
+msgid "Invalid start or end index in the internal "
+"buffer"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedIHashInstance
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:20
+msgid "\"IHash\" instance is uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SIterationtooSmall
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:21
+msgid "Iteration must be greater than zero."
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashMode
+#: libraries/hashlib4pascal/HlpSHA3.pas:25
+msgid "Only \"[%s]\" HashModes are Supported"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashMode
+#: libraries/hashlib4pascal/HlpSHA3.pas:27
+msgid "XOFSize in Bits must be Multiples of 8 and be Greater than Zero "
+"Bytes"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpSnefru.pas:24
+msgid "Snefru Security Level Cannot be Less than 1. Standard Level is "
+"8"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpSnefru.pas:26
+msgid "Snefru HashSize Must be Either 128 bit(16 byte) or 256 bit(32 "
+"byte)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashSize
+#: libraries/hashlib4pascal/HlpSnefru.pas:27
+msgid "Specified HashSize Is Invalid or UnSupported "
+"\"%d\""
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpTiger.pas:22
+msgid "Tiger HashSize Must be Either 128 bit(16 byte), 160 bit(20 byte) or "
+"192 bit(24 byte)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashRound
+#: libraries/hashlib4pascal/HlpTiger.pas:23
+#. Programmer's name for it: SInvalidHashRound
+#: libraries/hashlib4pascal/HlpTiger2.pas:23
+msgid "Specified HashRound Is Invalid or UnSupported "
+"\"%d\""
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpTiger2.pas:22
+msgid "Tiger2 HashSize Must be Either 128 bit(16 byte), 160 bit(20 byte) or "
+"192 bit(24 byte)"
+msgstr ""
+
+#. Programmer's name for it: sInvalidIPAddress
+#: libraries/mormot-min/SynCommons.pas:18356
+msgid "\"%s\" is an invalid IP v4 address"
+msgstr ""
+
+#. Programmer's name for it: sInvalidEmailAddress
+#: libraries/mormot-min/SynCommons.pas:18357
+msgid "\"%s\" is an invalid email address"
+msgstr ""
+
+#. Programmer's name for it: sInvalidPattern
+#: libraries/mormot-min/SynCommons.pas:18358
+msgid "\"%s\" does not match the expected pattern"
+msgstr ""
+
+#. Programmer's name for it: sCharacter01n
+#: libraries/mormot-min/SynCommons.pas:18359
+msgid "character,character,characters"
+msgstr ""
+
+#. Programmer's name for it: sInvalidTextLengthMin
+#: libraries/mormot-min/SynCommons.pas:18360
+msgid "Expect at least %d %s"
+msgstr ""
+
+#. Programmer's name for it: sInvalidTextLengthMax
+#: libraries/mormot-min/SynCommons.pas:18361
+msgid "Expect up to %d %s"
+msgstr ""
+
+#. Programmer's name for it: sInvalidTextChar
+#: libraries/mormot-min/SynCommons.pas:18364
+msgid "Expect at least %d %s %s,Expect up to %d %s "
+"%s,alphabetical,digital,punctuation,lowercase,uppercase,space,Too "
+"much spaces on the left,Too much spaces on the "
+"right"
+msgstr ""
+
+#. Programmer's name for it: sValidationFailed
+#: libraries/mormot-min/SynCommons.pas:18365
+msgid "\"%s\" rule failed"
+msgstr ""
+
+#. Programmer's name for it: sValidationFieldVoid
+#: libraries/mormot-min/SynCommons.pas:18366
+msgid "An unique key field must not be void"
+msgstr ""
+
+#. Programmer's name for it: sValidationFieldDuplicate
+#: libraries/mormot-min/SynCommons.pas:18367
+msgid "Value already used for this unique key "
+"field"
+msgstr ""
+
+#. Programmer's name for it: Sneed_dict
+#: libraries/paszlib/paszlib_zbase.pas:409
+msgid "need dictionary"
+msgstr ""
+
+#. Programmer's name for it: Sstream_end
+#: libraries/paszlib/paszlib_zbase.pas:410
+msgid "stream end"
+msgstr ""
+
+#. Programmer's name for it: Sfile_error
+#: libraries/paszlib/paszlib_zbase.pas:411
+msgid "file error"
+msgstr ""
+
+#. Programmer's name for it: Sstream_error
+#: libraries/paszlib/paszlib_zbase.pas:412
+msgid "stream error"
+msgstr ""
+
+#. Programmer's name for it: Sdata_error
+#: libraries/paszlib/paszlib_zbase.pas:413
+msgid "data error"
+msgstr ""
+
+#. Programmer's name for it: Smem_error
+#: libraries/paszlib/paszlib_zbase.pas:414
+msgid "insufficient memory"
+msgstr ""
+
+#. Programmer's name for it: Sbuf_error
+#: libraries/paszlib/paszlib_zbase.pas:415
+msgid "buffer error"
+msgstr ""
+
+#. Programmer's name for it: Sversion_error
+#: libraries/paszlib/paszlib_zbase.pas:416
+msgid "incompatible version"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHexCharacter
+#: libraries/simplebaselib4pascal/SbpBase16.pas:12
+msgid "Invalid hex character: \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidTextLength
+#: libraries/simplebaselib4pascal/SbpBase16.pas:13
+msgid "Text cannot be odd length \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpBase32.pas:16
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpBase58.pas:16
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpBase64.pas:16
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpBase85.pas:16
+msgid "Alphabet Instance cannot be Nil \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpBase85.pas:18
+msgid "Unexpected Shortcut Character In The Middle Of a Regular "
+"Block"
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:12
+msgid "\"%s\" Cannot Be Nil."
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:14
+msgid "Required Alphabet Length is \"%d\" but Provided Alphabet is \"%d\" "
+"Characters Long."
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacter
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:15
+msgid "Alphabet Contains Character \"%s (%d)\" Above "
+"\"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidInput
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:16
+msgid "Invalid character value in input \"%s\""
+msgstr ""
+
+#. Programmer's name for it: sAColumnsCantBeNil
+#: libraries/sphere10/UCommon.Data.pas:246
+msgid "AColumns can't be nil!"
+msgstr ""
+
+#. Programmer's name for it: sTooManyValues
+#: libraries/sphere10/UCommon.Data.pas:247
+msgid "Too many values"
+msgstr ""
+
+#. Programmer's name for it: sInvalidUTF8String
+#: libraries/sphere10/UCommon.Data.pas:248
+msgid "Invalid UTF8 string"
+msgstr ""
+
+#. Programmer's name for it: sBadNumericExpression
+#: libraries/sphere10/UCommon.Data.pas:249
+msgid "Bad numeric expression"
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedNumberFormat
+#: libraries/sphere10/UCommon.Data.pas:250
+msgid "Unexpected number format"
+msgstr ""
+
+#. Programmer's name for it: sBadSyntaxForEscapeCharacter
+#: libraries/sphere10/UCommon.Data.pas:251
+msgid "Bad syntax for escape character \"\\\""
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedCharInExpression
+#: libraries/sphere10/UCommon.Data.pas:252
+msgid "Unexpected char in expression"
+msgstr ""
+
+#. Programmer's name for it: sInvaildExpression_CharDetectedAfterClosingBracket
+#: libraries/sphere10/UCommon.Data.pas:253
+msgid "Invaild expression (char detected after closing "
+"bracket)"
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedTokenFound
+#: libraries/sphere10/UCommon.Data.pas:254
+msgid "Unexpected token found : \"%s\""
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedStringLiteralInExpression
+#: libraries/sphere10/UCommon.Data.pas:255
+msgid "Unexpected string literal in expression"
+msgstr ""
+
+#. Programmer's name for it: sBadlyClosedBetweenExpression
+#: libraries/sphere10/UCommon.Data.pas:256
+msgid "Badly closed \"between\" expression"
+msgstr ""
+
+#. Programmer's name for it: sMissingNumberInExpression
+#: libraries/sphere10/UCommon.Data.pas:257
+msgid "Missing number in expression"
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedOccurrenceOf_Found
+#: libraries/sphere10/UCommon.Data.pas:258
+msgid "Unexpected occurrence of \"%s\" found"
+msgstr ""
+
+#. Programmer's name for it: sBadBetweenExpression_UnexpectedToken
+#: libraries/sphere10/UCommon.Data.pas:259
+msgid "Bad \"between\" expression. Unexpected "
+"\"%s\""
+msgstr ""
+
+#. Programmer's name for it: sExpressionError_NoValue
+#: libraries/sphere10/UCommon.Data.pas:260
+msgid "Expression error (no value)"
+msgstr ""
+
+#. Programmer's name for it: sNotImplemented
+#: libraries/sphere10/UCommon.pas:468
+msgid "Not implemented"
+msgstr ""
+
+#. Programmer's name for it: sInvalidParameter_OutOfBounds
+#: libraries/sphere10/UCommon.pas:469
+msgid "Invalid Parameter: %s out of bounds"
+msgstr ""
+
+#. Programmer's name for it: sLogDebug
+#: libraries/sphere10/UCommon.pas:470
+msgid "DEBUG"
+msgstr ""
+
+#. Programmer's name for it: sLogInfo
+#: libraries/sphere10/UCommon.pas:471
+msgid "INFO"
+msgstr ""
+
+#. Programmer's name for it: sLogWarn
+#: libraries/sphere10/UCommon.pas:472
+msgid "WARNING"
+msgstr ""
+
+#. Programmer's name for it: sLogError
+#: libraries/sphere10/UCommon.pas:473
+msgid "ERROR"
+msgstr ""
+
+#. Programmer's name for it: sTotal
+#: libraries/sphere10/UVisualGrid.pas:475
+msgid "Total: %d"
+msgstr ""
+
+#. Programmer's name for it: sStandardSearch
+#: libraries/sphere10/UVisualGrid.pas:476
+msgid "Standard Search"
+msgstr ""
+
+#. Programmer's name for it: sMultiColumnSearch
+#: libraries/sphere10/UVisualGrid.pas:477
+msgid "Multi-Column Search"
+msgstr ""
+
+#. Programmer's name for it: sPageSize
+#: libraries/sphere10/UVisualGrid.pas:478
+msgid "Page size:"
+msgstr ""
+
+#. Programmer's name for it: sSearchExpression
+#: libraries/sphere10/UVisualGrid.pas:479
+msgid "Search expression"
+msgstr ""
+
+#. Programmer's name for it: sDataLoading
+#: libraries/sphere10/UVisualGrid.pas:480
+msgid "DATA LOADING"
+msgstr ""
+
+#. Programmer's name for it: sExpression
+#: libraries/sphere10/UVisualGrid.pas:481
+msgid "Expression"
+msgstr ""
+
+#. Programmer's name for it: sImproperColumnIndex
+#: libraries/sphere10/UVisualGrid.pas:482
+msgid "Improper column index. Max expected is %d but %d "
+"found."
+msgstr ""
+

+ 1 - 1
src/gui-classic/UFRMAbout.lfm

@@ -15,7 +15,7 @@ object FRMAbout: TFRMAbout
   Font.Name = 'Tahoma'
   OnCreate = FormCreate
   Position = poOwnerFormCenter
-  LCLVersion = '1.8.0.6'
+  LCLVersion = '2.0.2.0'
   object Image1: TImage
     Left = 15
     Height = 64

+ 3 - 1
src/gui-classic/UFRMAbout.pas

@@ -69,7 +69,7 @@ uses
 {$IFDEF Use_OpenSSL}
   UOpenSSL,
 {$ENDIF}
-  UNode;
+  UNode,gnugettext;
 
 {$IFnDEF FPC}
   {$R *.dfm}
@@ -79,6 +79,8 @@ uses
 
 procedure TFRMAbout.FormCreate(Sender: TObject);
 begin
+  TranslateComponent(self);
+  //
   lblBuild.Caption :=  'Build: '+CT_ClientAppVersion+' OpenSSL: '+{$IFDEF Use_OpenSSL}IntToHex(OpenSSLVersion,8){$ELSE}'NONE'{$ENDIF}+' Compiler: '{$IFDEF FPC}+'FPC'{$IFDEF CPU32}+' 32b'{$ELSE}+' 64b'{$ENDIF}{$ELSE}+'Delphi'{$IFDEF CPU32BITS}+' 32b'{$ELSE}+' 64b'{$ENDIF}{$ENDIF};
   lblProtocolVersion.Caption := Format('BlockChain Protocol: %d (%d)  -  Net Protocol: %d (%d)',[TNode.Node.Bank.SafeBox.CurrentProtocol,CT_BlockChain_Protocol_Available,
     CT_NetProtocol_Version, CT_NetProtocol_Available]);

+ 1 - 2
src/gui-classic/UFRMNewPrivateKeyType.lfm

@@ -15,8 +15,7 @@ object FRMNewPrivateKeyType: TFRMNewPrivateKeyType
   OnCreate = FormCreate
   OnDestroy = FormDestroy
   Position = poOwnerFormCenter
-  LCLVersion = '1.8.4.0'
-  Visible = False
+  LCLVersion = '2.0.2.0'
   object Label1: TLabel
     Left = 30
     Height = 13

+ 3 - 1
src/gui-classic/UFRMNewPrivateKeyType.pas

@@ -57,7 +57,7 @@ type
 implementation
 
 uses
-  UAccounts, UConst ;
+  UAccounts, UConst,gnugettext ;
 
 {$IFnDEF FPC}
   {$R *.dfm}
@@ -82,6 +82,8 @@ procedure TFRMNewPrivateKeyType.FormCreate(Sender: TObject);
 Var l : TList<Word>;
   i : Integer;
 begin
+  TranslateComponent(self);
+  //
   FGeneratedPrivateKey := Nil;
   FWalletKeys := Nil;
   ebName.Text := DateTimeToStr(now);

+ 1 - 2
src/gui-classic/UFRMNodesIp.lfm

@@ -14,8 +14,7 @@ object FRMNodesIp: TFRMNodesIp
   Font.Name = 'Tahoma'
   OnCreate = FormCreate
   Position = poOwnerFormCenter
-  LCLVersion = '1.8.4.0'
-  Visible = False
+  LCLVersion = '2.0.2.0'
   object Label1: TLabel
     Left = 30
     Height = 13

+ 3 - 1
src/gui-classic/UFRMNodesIp.pas

@@ -54,7 +54,7 @@ type
 implementation
 
 uses
-  UNetProtocol, UNode, UConst, USettings;
+  UNetProtocol, UNode, UConst, USettings,gnugettext;
 
 {$IFnDEF FPC}
   {$R *.dfm}
@@ -112,6 +112,8 @@ end;
 
 procedure TFRMNodesIp.FormCreate(Sender: TObject);
 begin
+  TranslateComponent(self);
+  //
   FAppParams := Nil;
   PrepareData;
 end;

+ 1 - 1
src/gui-classic/UFRMOperation.lfm

@@ -15,7 +15,7 @@ object FRMOperation: TFRMOperation
   OnCreate = FormCreate
   OnDestroy = FormDestroy
   Position = poOwnerFormCenter
-  LCLVersion = '1.8.0.6'
+  LCLVersion = '2.0.2.0'
   object lblAccountCaption: TLabel
     Left = 25
     Height = 13

+ 3 - 1
src/gui-classic/UFRMOperation.pas

@@ -192,7 +192,7 @@ implementation
 
 uses
   UConst, UOpTransaction, UFRMNewPrivateKeyType, UFRMWalletKeys, UFRMHashLock,
-  UCommon, UPCDataTypes, ULog, UGUIUtils;
+  UCommon, UPCDataTypes, ULog, UGUIUtils,gnugettext;
 
 {$IFnDEF FPC}
   {$R *.dfm}
@@ -530,6 +530,8 @@ end;
 
 procedure TFRMOperation.FormCreate(Sender: TObject);
 begin
+  TranslateComponent(self);
+  //
   FDisabled := false;
   FWalletKeys := Nil;
   FSenderAccounts := TOrderedCardinalList.Create;

+ 139 - 100
src/gui-classic/UFRMPascalCoinWalletConfig.dfm

@@ -1,10 +1,10 @@
 object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
-  Left = 0
-  Top = 0
+  Left = 462
+  Top = 234
   BorderIcons = [biSystemMenu]
   BorderStyle = bsSingle
   Caption = 'Options'
-  ClientHeight = 540
+  ClientHeight = 581
   ClientWidth = 374
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
@@ -12,17 +12,19 @@ object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
   Font.Height = -11
   Font.Name = 'Tahoma'
   Font.Style = []
-  OldCreateOrder = False
+  OldCreateOrder = True
   Position = poOwnerFormCenter
   OnCreate = FormCreate
   PixelsPerInch = 96
   TextHeight = 13
   object Label1: TLabel
     Left = 30
-    Top = 405
+    Top = 403
     Width = 120
     Height = 13
     Caption = 'Default fee for operation'
+    Color = clBtnFace
+    ParentColor = False
   end
   object Label2: TLabel
     Left = 30
@@ -30,6 +32,8 @@ object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
     Width = 98
     Height = 13
     Caption = 'Internet Server Port'
+    Color = clBtnFace
+    ParentColor = False
   end
   object lblDefaultInternetServerPort: TLabel
     Left = 248
@@ -37,6 +41,8 @@ object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
     Width = 70
     Height = 13
     Caption = '(Default XXXX)'
+    Color = clBtnFace
+    ParentColor = False
   end
   object Label3: TLabel
     Left = 15
@@ -44,33 +50,43 @@ object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
     Width = 60
     Height = 13
     Caption = 'Miner Name:'
+    Color = clBtnFace
+    ParentColor = False
   end
   object Label4: TLabel
     Left = 90
-    Top = 91
+    Top = 90
     Width = 259
     Height = 13
     Caption = 'This name will be included in each new block you mine!'
-    Font.Charset = DEFAULT_CHARSET
+    Color = clBtnFace
+    Font.Charset = ANSI_CHARSET
     Font.Color = clGray
     Font.Height = -11
     Font.Name = 'Tahoma'
+    Font.Pitch = fpVariable
     Font.Style = []
+    Font.Quality = fqDraft
+    ParentColor = False
     ParentFont = False
   end
   object Label5: TLabel
     Left = 30
-    Top = 231
+    Top = 226
     Width = 73
     Height = 13
     Caption = 'JSON-RPC Port'
+    Color = clBtnFace
+    ParentColor = False
   end
   object lblDefaultJSONRPCMinerServerPort: TLabel
     Left = 248
-    Top = 231
+    Top = 226
     Width = 70
     Height = 13
     Caption = '(Default XXXX)'
+    Color = clBtnFace
+    ParentColor = False
   end
   object Label6: TLabel
     Left = 24
@@ -78,31 +94,37 @@ object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
     Width = 57
     Height = 13
     Caption = 'Allowed IP'#39's'
+    Color = clBtnFace
+    ParentColor = False
   end
   object Label7: TLabel
-    Left = 92
-    Top = 182
+    Left = 90
+    Top = 183
     Width = 209
     Height = 13
     Caption = 'Ip'#39's separated by semicolon or empty for all'
-    Font.Charset = DEFAULT_CHARSET
+    Color = clBtnFace
+    Font.Charset = ANSI_CHARSET
     Font.Color = clGray
     Font.Height = -11
     Font.Name = 'Tahoma'
+    Font.Pitch = fpVariable
     Font.Style = []
+    Font.Quality = fqDraft
+    ParentColor = False
     ParentFont = False
   end
   object cbJSONRPCMinerServerActive: TCheckBox
     Left = 15
-    Top = 205
-    Width = 261
-    Height = 17
+    Top = 200
+    Width = 225
+    Height = 19
     Caption = 'JSON-RPC Server Miner (TCP/IP, no HTTP)'
     TabOrder = 6
   end
   object ebDefaultFee: TEdit
     Left = 170
-    Top = 402
+    Top = 400
     Width = 56
     Height = 21
     Alignment = taRightJustify
@@ -111,36 +133,36 @@ object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
   end
   object cbSaveLogFiles: TCheckBox
     Left = 15
-    Top = 429
-    Width = 97
-    Height = 17
+    Top = 427
+    Width = 78
+    Height = 19
     Caption = 'Save log file'
     TabOrder = 13
     OnClick = cbSaveLogFilesClick
   end
   object cbShowLogs: TCheckBox
     Left = 15
-    Top = 467
-    Width = 97
-    Height = 17
+    Top = 465
+    Width = 68
+    Height = 19
     Caption = 'Show logs'
     TabOrder = 15
   end
   object bbOk: TBitBtn
-    Left = 176
-    Top = 490
+    Left = 184
+    Top = 530
     Width = 75
-    Height = 25
+    Height = 30
     Kind = bkOK
     NumGlyphs = 2
     TabOrder = 18
     OnClick = bbOkClick
   end
   object bbCancel: TBitBtn
-    Left = 266
-    Top = 490
+    Left = 274
+    Top = 530
     Width = 75
-    Height = 25
+    Height = 30
     Kind = bkCancel
     NumGlyphs = 2
     TabOrder = 19
@@ -152,7 +174,7 @@ object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
     Height = 21
     Associate = ebInternetServerPort
     Min = 1
-    Max = 40000
+    Max = 25000
     Position = 4004
     TabOrder = 3
     Thousands = False
@@ -169,7 +191,7 @@ object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
   object bbUpdatePassword: TBitBtn
     Left = 15
     Top = 14
-    Width = 336
+    Width = 337
     Height = 38
     Caption = 'Wallet Password'
     Font.Charset = DEFAULT_CHARSET
@@ -244,67 +266,67 @@ object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
   end
   object cbShowModalMessages: TCheckBox
     Left = 170
-    Top = 429
-    Width = 171
-    Height = 17
+    Top = 427
+    Width = 127
+    Height = 19
     Caption = 'Show modal messages'
     TabOrder = 16
   end
   object udJSONRPCMinerServerPort: TUpDown
     Left = 226
-    Top = 228
+    Top = 223
     Width = 16
     Height = 21
     Associate = ebJSONRPCMinerServerPort
     Min = 1
-    Max = 40000
-    Position = 1
+    Max = 25000
+    Position = 4009
     TabOrder = 8
     Thousands = False
   end
   object ebJSONRPCMinerServerPort: TEdit
     Left = 170
-    Top = 228
+    Top = 223
     Width = 56
     Height = 21
     Alignment = taRightJustify
     TabOrder = 7
-    Text = '1'
+    Text = '4009'
   end
   object gbMinerPrivateKey: TGroupBox
-    Left = 15
-    Top = 255
+    Left = 8
+    Top = 250
     Width = 334
     Height = 121
     Caption = ' Miner Server Private Key: '
     TabOrder = 9
     object rbGenerateANewPrivateKeyEachBlock: TRadioButton
-      Left = 20
-      Top = 20
-      Width = 301
-      Height = 17
+      Left = 18
+      Top = 6
+      Width = 277
+      Height = 19
       Caption = 'Generate a new private key for each generated block'
       TabOrder = 0
     end
     object rbUseARandomKey: TRadioButton
-      Left = 20
-      Top = 40
-      Width = 216
-      Height = 17
+      Left = 18
+      Top = 26
+      Width = 146
+      Height = 19
       Caption = 'Use a random existing key'
       TabOrder = 1
     end
     object rbMineAllwaysWithThisKey: TRadioButton
-      Left = 20
-      Top = 61
-      Width = 216
-      Height = 17
+      Left = 18
+      Top = 47
+      Width = 146
+      Height = 19
       Caption = 'Always mine with this key:'
       TabOrder = 2
     end
     object cbPrivateKeyToMine: TComboBox
-      Left = 45
-      Top = 85
+      Left = 43
+      Top = 71
       Width = 266
       Height = 21
       Style = csDropDownList
@@ -313,65 +335,82 @@ object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
   end
   object cbSaveDebugLogs: TCheckBox
     Left = 31
-    Top = 447
-    Width = 97
-    Height = 17
+    Top = 445
+    Width = 118
+    Height = 19
     Caption = 'Save debug logs too'
     TabOrder = 14
   end
   object bbOpenDataFolder: TBitBtn
-    Left = 15
-    Top = 490
-    Width = 120
-    Height = 25
-    Caption = 'Open Data folder'
+    Left = 16
+    Top = 530
+    Width = 131
+    Height = 30
+    Caption = 'Open Data Folder'
     Glyph.Data = {
-      36030000424D3603000000000000360000002800000010000000100000000100
-      18000000000000030000120B0000120B00000000000000000000FF00FF078DBE
-      078DBE078DBE078DBE078DBE078DBE078DBE078DBE078DBE078DBE078DBE078D
-      BEFF00FFFF00FFFF00FF078DBE25A1D171C6E884D7FA66CDF965CDF965CDF965
-      CDF965CDF865CDF965CDF866CEF93AADD81999C9FF00FFFF00FF078DBE4CBCE7
-      39A8D1A0E2FB6FD4FA6FD4F96ED4FA6FD4F96FD4FA6FD4FA6FD4FA6ED4F93EB1
-      D9C9F0F3078DBEFF00FF078DBE72D6FA078DBEAEE9FC79DCFB79DCFB79DCFB79
-      DCFB79DCFB7ADCFB79DCFA79DCFA44B5D9C9F0F3078DBEFF00FF078DBE79DDFB
-      1899C79ADFF392E7FC84E4FB83E4FC83E4FC84E4FC83E4FC83E4FB84E5FC48B9
-      DAC9F0F31496C4FF00FF078DBE82E3FC43B7DC65C2E0ABF0FC8DEBFC8DEBFC8D
-      EBFD8DEBFD8DEBFC8DEBFD8DEBFC4CBBDAC9F0F3C9F0F3078DBE078DBE8AEAFC
-      77DCF3219CC7FEFFFFC8F7FDC9F7FDC9F7FDC9F7FEC8F7FEC9F7FDC8F7FE9BD5
-      E6EAFEFED2F3F8078DBE078DBE93F0FE93F0FD1697C5078DBE078DBE078DBE07
-      8DBE078DBE078DBE078DBE078DBE078DBE078DBE078DBE078DBE078DBE9BF5FE
-      9AF6FE9AF6FE9BF5FD9BF6FE9AF6FE9BF5FE9AF6FD9BF5FE9AF6FE9AF6FE0989
-      BAFF00FFFF00FFFF00FF078DBEFEFEFEA0FBFFA0FBFEA0FBFEA1FAFEA1FBFEA0
-      FAFEA1FBFEA1FBFFA0FBFFA1FBFF0989BAFF00FFFF00FFFF00FFFF00FF078DBE
-      FEFEFEA5FEFFA5FEFFA5FEFF078DBE078DBE078DBE078DBE078DBE078DBEFF00
-      FFFF00FFFF00FFFF00FFFF00FFFF00FF078DBE078DBE078DBE078DBEFF00FFFF
-      00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
-      FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
-      FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
-      00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF
-      FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
-      FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF
-      00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF}
+      36040000424D3604000000000000360000002800000010000000100000000100
+      2000000000000004000064000000640000000000000000000000078DBE4D078D
+      BEFF078DBEFF078DBEFF078DBEFF078DBEFF078DBEFF078DBEFF078DBEFF078D
+      BEFF078DBEFF078DBEFF078DBEFF078DBEFFFFFFFF00FFFFFF00078DBEFF25A1
+      D1FF70C6E7FF6BCFF9FF66CDF9FF65CDF9FF65CDF9FF65CDF9FF65CDF8FF65CD
+      F9FF65CDF8FF66CEF9FF39ADD8FF078DBEFF078DBE4DFFFFFF00078DBEFF4CBC
+      E7FF5EB8DAFF94DFFBFF6FD4FAFF6FD4F9FF6ED4FAFF6FD4F9FF6FD4FAFF6FD4
+      FAFF6FD4FAFF6ED4F9FF3EB1D9FF84D7EBFF078DBEFFFFFFFF00078DBEFF72D6
+      FAFF1593C2FFB6ECFDFF7DDDFBFF79DCFBFF79DCFBFF79DCFBFF79DCFBFF7ADC
+      FBFF79DCFAFF79DCFAFF44B5D9FFAEF1F9FF078DBEFFFFFFFF00078DBEFF79DD
+      FBFF1899C7FF94DDF3FFA2EBFCFF84E4FBFF83E4FCFF83E4FCFF84E4FCFF83E4
+      FCFF83E4FBFF84E5FCFF48B9DAFFB3F4F9FF078DBEFF078DBE4D078DBEFF82E3
+      FCFF43B7DCFF4BB9DBFFBFF4FDFF8EEBFCFF8DEBFCFF8DEBFDFF8DEBFDFF8DEB
+      FCFF8DEBFDFF8DEBFCFF4CBBDAFFB6F7F9FF6DCAE0FF078DBEFF078DBEFF8AEA
+      FCFF77DCF3FF1496C3FFFFFFFFFFC9F8FEFFC9F8FEFFC9F8FEFFC9F8FFFFC9F7
+      FFFFC9F8FEFFC9F8FFFF9CD6E7FFDFFAFBFFDBF7FAFF078DBEFF078DBEFF93F0
+      FEFF93F0FDFF1697C5FF078DBEFF078DBEFF078DBEFF078DBEFF078DBEFF078D
+      BEFF078DBEFF078DBEFF078DBEFF078DBEFF078DBEFF078DBEFF078DBEFF9BF5
+      FEFF9AF6FEFF9AF6FEFF9BF5FDFF9BF6FEFF9AF6FEFF9BF5FEFF9AF6FDFF9BF5
+      FEFF9AF6FEFF9AF6FEFF0989BAFFFFFFFF00FFFFFF00FFFFFF00078DBEFFFEFE
+      FEFFA0FBFFFFA0FBFEFFA0FBFEFFA1FAFEFFA1FBFEFFA0FAFEFFA1FBFEFFA1FB
+      FFFFA0FBFFFFA1FBFFFF0989BAFFFFFFFF00FFFFFF00FFFFFF00078DBE4D078D
+      BEFFFEFEFEFFA5FEFFFFA5FEFFFFA5FEFFFF078DBEFF078DBEFF078DBEFF078D
+      BEFF078DBEFF078DBEFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00078D
+      BE4D078DBEFF078DBEFF078DBEFF078DBEFF078DBE4DFFFFFF00FFFFFF00FFFF
+      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00}
     TabOrder = 17
     OnClick = bbOpenDataFolderClick
   end
   object cbJSONRPCPortEnabled: TCheckBox
     Left = 15
-    Top = 139
-    Width = 261
-    Height = 17
+    Top = 136
+    Width = 205
+    Height = 19
     Caption = 'JSON-RPC Server port enabled (HTTP)'
     TabOrder = 4
     OnClick = cbJSONRPCPortEnabledClick
   end
   object ebJSONRPCAllowedIPs: TEdit
     Left = 90
-    Top = 158
+    Top = 159
     Width = 261
     Height = 21
     TabOrder = 5
     Text = 'ebJSONRPCAllowedIPs'
   end
+  object cbDownloadNewCheckpoint: TCheckBox
+    Left = 16
+    Top = 373
+    Width = 271
+    Height = 19
+    Caption = 'Download new Checkpoint if blockchain older than...'
+    TabOrder = 10
+    OnClick = cbDownloadNewCheckpointClick
+  end
   object ebMinFutureBlocksToDownloadNewSafebox: TEdit
     Left = 296
     Top = 373
@@ -381,13 +420,13 @@ object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
     TabOrder = 11
     Text = '0'
   end
-  object cbDownloadNewCheckpoint: TCheckBox
-    Left = 16
-    Top = 373
-    Width = 271
-    Height = 19
-    Caption = 'Download new Checkpoint if blockchain older than...'
-    TabOrder = 10
-    OnClick = cbDownloadNewCheckpointClick
+  object bbChangeLanguage: TBitBtn
+    Left = 15
+    Top = 488
+    Width = 131
+    Height = 30
+    Caption = 'Change UI language'
+    TabOrder = 20
+    OnClick = bbChangeLanguageClick
   end
 end

+ 16 - 11
src/gui-classic/UFRMPascalCoinWalletConfig.lfm

@@ -1,12 +1,12 @@
 object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
   Left = 462
-  Height = 551
+  Height = 581
   Top = 234
   Width = 374
   BorderIcons = [biSystemMenu]
   BorderStyle = bsSingle
   Caption = 'Options'
-  ClientHeight = 551
+  ClientHeight = 581
   ClientWidth = 374
   Color = clBtnFace
   Font.Color = clWindowText
@@ -14,7 +14,6 @@ object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
   Font.Name = 'Tahoma'
   OnCreate = FormCreate
   Position = poOwnerFormCenter
-  LCLVersion = '1.8.0.6'
   object Label1: TLabel
     Left = 30
     Height = 13
@@ -115,23 +114,22 @@ object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
   object bbOk: TBitBtn
     Left = 184
     Height = 30
-    Top = 500
+    Top = 530
     Width = 75
+    Caption = 'OK'
     Kind = bkOK
     ModalResult = 1
     OnClick = bbOkClick
-    Caption = 'OK'
     TabOrder = 18
   end
   object bbCancel: TBitBtn
     Left = 274
     Height = 30
-    Top = 500
+    Top = 530
     Width = 75
-    Cancel = True
+    Caption = 'Cancel'
     Kind = bkCancel
     ModalResult = 2
-    Caption = 'Cancel'
     TabOrder = 19
   end
   object udInternetServerPort: TUpDown
@@ -145,7 +143,6 @@ object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
     Position = 4004
     TabOrder = 3
     Thousands = False
-    Wrap = False
   end
   object ebInternetServerPort: TEdit
     Left = 170
@@ -251,7 +248,6 @@ object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
     Position = 4009
     TabOrder = 8
     Thousands = False
-    Wrap = False
   end
   object ebJSONRPCMinerServerPort: TEdit
     Left = 170
@@ -316,7 +312,7 @@ object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
   object bbOpenDataFolder: TBitBtn
     Left = 16
     Height = 30
-    Top = 500
+    Top = 530
     Width = 131
     Caption = 'Open Data Folder'
     Glyph.Data = {
@@ -416,4 +412,13 @@ object FRMPascalCoinWalletConfig: TFRMPascalCoinWalletConfig
     TabOrder = 11
     Text = '0'
   end
+  object bbChangeLanguage: TBitBtn
+    Left = 15
+    Height = 30
+    Top = 488
+    Width = 131
+    Caption = 'Change UI language'
+    OnClick = bbChangeLanguageClick
+    TabOrder = 20
+  end
 end

+ 18 - 1
src/gui-classic/UFRMPascalCoinWalletConfig.pas

@@ -39,6 +39,7 @@ type
   { TFRMPascalCoinWalletConfig }
 
   TFRMPascalCoinWalletConfig = class(TForm)
+     bbChangeLanguage: TBitBtn;
     cbJSONRPCMinerServerActive: TCheckBox;
     cbDownloadNewCheckpoint: TCheckBox;
     ebDefaultFee: TEdit;
@@ -72,6 +73,7 @@ type
     ebJSONRPCAllowedIPs: TEdit;
     Label6: TLabel;
     Label7: TLabel;
+    procedure bbChangeLanguageClick(Sender: TObject);
     procedure cbDownloadNewCheckpointClick(Sender: TObject);
     procedure FormCreate(Sender: TObject);
     procedure bbOkClick(Sender: TObject);
@@ -82,6 +84,7 @@ type
   private
     FAppParams: TAppParams;
     FWalletKeys: TWalletKeys;
+    FNewUILanguage:String;
     procedure SetAppParams(const Value: TAppParams);
     procedure SetWalletKeys(const Value: TWalletKeys);
     Procedure UpdateWalletConfig;
@@ -94,7 +97,7 @@ type
 
 implementation
 
-uses UConst, UAccounts, ULog, UCrypto, UNode, USettings, UGUIUtils, UNetProtocol;
+uses UConst, UAccounts, ULog, UCrypto, UNode, USettings, UGUIUtils, UNetProtocol, UFRMSelectLanguage,gnugettext;
 
 {$IFnDEF FPC}
   {$R *.dfm}
@@ -141,6 +144,7 @@ begin
     AppParams.ParamByName[CT_PARAM_MinFutureBlocksToDownloadNewSafebox].SetAsInteger(i);
     AppParams.ParamByName[CT_PARAM_AllowDownloadNewCheckpointIfOlderThan].SetAsBoolean(i>200);
   end else AppParams.ParamByName[CT_PARAM_AllowDownloadNewCheckpointIfOlderThan].SetAsBoolean(False);
+  AppParams.ParamByName[CT_PARAM_UILanguage].SetAsString(FNewUILanguage);
 
   ModalResult := MrOk;
 end;
@@ -194,6 +198,8 @@ end;
 
 procedure TFRMPascalCoinWalletConfig.FormCreate(Sender: TObject);
 begin
+  TranslateComponent(self);
+  //
   lblDefaultInternetServerPort.Caption := Format('(Default %d)',[CT_NetServer_Port]);
   udInternetServerPort.Position := CT_NetServer_Port;
   ebDefaultFee.Text := TAccountComp.FormatMoney(0);
@@ -212,6 +218,17 @@ begin
   UpdateWalletConfig;
 end;
 
+procedure TFRMPascalCoinWalletConfig.bbChangeLanguageClick(Sender: TObject);
+begin
+   fNewUILanguage := AppParams.ParamByName[CT_PARAM_UILanguage].GetAsString(GetCurrentLanguage);
+   fNewUILanguage := SelectUILanguage(fNewUILanguage);
+   if fNewUILanguage<>AppParams.ParamByName[CT_PARAM_UILanguage].GetAsString(GetCurrentLanguage) then // new language selected
+   begin
+     UseLanguage(fNewUILanguage);
+     RetranslateComponent(Self);
+   end;
+end;
+
 procedure TFRMPascalCoinWalletConfig.SetAppParams(const Value: TAppParams);
 Var i : Integer;
 begin

+ 1 - 2
src/gui-classic/UFRMPayloadDecoder.lfm

@@ -15,8 +15,7 @@ object FRMPayloadDecoder: TFRMPayloadDecoder
   Font.Name = 'Tahoma'
   OnCreate = FormCreate
   Position = poOwnerFormCenter
-  LCLVersion = '1.8.4.0'
-  Visible = False
+  LCLVersion = '2.0.2.0'
   object Label1: TLabel
     Left = 20
     Height = 13

+ 3 - 1
src/gui-classic/UFRMPayloadDecoder.pas

@@ -106,7 +106,7 @@ implementation
   {$R *.lfm}
 {$ENDIF}
 
-Uses UNode, UTime, UPCEncryption, UAccounts, UFRMMemoText, UBaseTypes;
+Uses UNode, UTime, UPCEncryption, UAccounts, UFRMMemoText, UBaseTypes,gnugettext;
 
 { TFRMPayloadDecoder }
 
@@ -220,6 +220,8 @@ end;
 
 procedure TFRMPayloadDecoder.FormCreate(Sender: TObject);
 begin
+  TranslateComponent(self);
+  //
   FSemaphor := true;
   try
     FWalletKeys := Nil;

+ 50 - 0
src/gui-classic/UFRMSelectLanguage.dfm

@@ -0,0 +1,50 @@
+object FRMChangeLanguage: TFRMChangeLanguage
+  Left = 2170
+  Height = 451
+  Top = 250
+  Width = 374
+  BorderIcons = [biSystemMenu]
+  BorderStyle = bsSingle
+  Caption = 'Language Selection'
+  ClientHeight = 451
+  ClientWidth = 374
+  OnCreate = FormCreate
+  Position = poOwnerFormCenter
+  LCLVersion = '2.0.2.0'
+  object bbOk: TBitBtn
+    Left = 184
+    Height = 30
+    Top = 400
+    Width = 75
+    Caption = 'OK'
+    Kind = bkOK
+    ModalResult = 1
+    TabOrder = 0
+  end
+  object bbCancel: TBitBtn
+    Left = 274
+    Height = 30
+    Top = 400
+    Width = 75
+    Caption = 'Cancel'
+    Kind = bkCancel
+    ModalResult = 2
+    TabOrder = 1
+  end
+  object lbxAvailableLanguages: TListBox
+    Left = 15
+    Height = 328
+    Top = 56
+    Width = 337
+    ItemHeight = 0
+    TabOrder = 2
+  end
+  object Label1: TLabel
+    Left = 16
+    Height = 15
+    Top = 24
+    Width = 161
+    Caption = 'Select your preferred language'
+    ParentColor = False
+  end
+end

+ 72 - 0
src/gui-classic/UFRMSelectLanguage.pas

@@ -0,0 +1,72 @@
+unit UFRMSelectLanguage;
+
+{$IFDEF FPC}
+  {$MODE Delphi}
+{$ENDIF}
+
+interface
+
+uses
+   Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Buttons, StdCtrls,gnugettext;
+
+type
+
+   { TFRMChangeLanguage }
+
+   TFRMChangeLanguage = class(TForm)
+      bbCancel: TBitBtn;
+      bbOk: TBitBtn;
+      Label1: TLabel;
+      lbxAvailableLanguages: TListBox;
+      procedure FormCreate(Sender: TObject);
+   private
+   public
+   end;
+
+   function SelectUILanguage(LanguageCode:String):string;
+
+implementation
+
+  {$R *.dfm}
+var
+  SelectedLanguageCode : string;
+
+function SelectUILanguage(LanguageCode:String):string;
+begin
+  result := LanguageCode;
+  SelectedLanguageCode := LanguageCode;
+  with TFRMChangeLanguage.Create(nil) do
+  try
+    if (ShowModal=MrOk) and (lbxAvailableLanguages.ItemIndex<>-1) then
+       result := NativeLanguageToCode(lbxAvailableLanguages.Items[lbxAvailableLanguages.ItemIndex]);
+  finally
+    free;
+  end;
+end;
+
+{ TFRMChangeLanguage }
+
+procedure TFRMChangeLanguage.FormCreate(Sender: TObject);
+var
+  lst : TStringlist;
+  s :string;
+  i,y :integer;
+begin
+   UseLanguage(SelectedLanguageCode);
+   TranslateComponent(self);
+   // fill listbox with available languages
+   lst := TStringlist.Create;
+   lbxAvailableLanguages.clear;
+   DefaultInstance.GetListOfLanguages('default',lst);
+   For i:=0 to lst.count-1 do
+   begin
+      y := lbxAvailableLanguages.Items.add(CodeToNativeLanguage(lst[i]));
+      if lst[i]=SelectedLanguageCode then lbxAvailableLanguages.ItemIndex:=y;
+   end;
+   if (lbxAvailableLanguages.ItemIndex=-1) and (lbxAvailableLanguages.Items.Count>0) then lbxAvailableLanguages.ItemIndex :=0;
+   lst.free;
+   //
+end;
+
+end.
+

+ 15 - 16
src/gui-classic/UFRMWallet.lfm

@@ -4,7 +4,7 @@ object FRMWallet: TFRMWallet
   Top = 201
   Width = 865
   Caption = 'Pascal full node Wallet (Classic GUI)'
-  ClientHeight = 580
+  ClientHeight = 600
   ClientWidth = 865
   Color = clBtnFace
   Constraints.MinHeight = 600
@@ -16,7 +16,6 @@ object FRMWallet: TFRMWallet
   OnCreate = FormCreate
   OnDestroy = FormDestroy
   Position = poScreenCenter
-  LCLVersion = '1.8.0.6'
   object pnlTop: TPanel
     Left = 0
     Height = 91
@@ -312,7 +311,7 @@ object FRMWallet: TFRMWallet
   object StatusBar: TStatusBar
     Left = 0
     Height = 23
-    Top = 557
+    Top = 577
     Width = 865
     Panels = <    
       item
@@ -332,7 +331,7 @@ object FRMWallet: TFRMWallet
   end
   object PageControl: TPageControl
     Left = 0
-    Height = 466
+    Height = 486
     Top = 91
     Width = 865
     ActivePage = tsMyAccounts
@@ -342,11 +341,11 @@ object FRMWallet: TFRMWallet
     OnChange = PageControlChange
     object tsMyAccounts: TTabSheet
       Caption = 'Account Explorer'
-      ClientHeight = 440
+      ClientHeight = 460
       ClientWidth = 857
       object Splitter1: TSplitter
         Left = 400
-        Height = 374
+        Height = 394
         Top = 66
         Width = 5
       end
@@ -472,17 +471,17 @@ object FRMWallet: TFRMWallet
       end
       object pnlAccounts: TPanel
         Left = 0
-        Height = 374
+        Height = 394
         Top = 66
         Width = 400
         Align = alLeft
         BevelOuter = bvNone
-        ClientHeight = 374
+        ClientHeight = 394
         ClientWidth = 400
         TabOrder = 1
         object dgAccounts: TDrawGrid
           Left = 0
-          Height = 340
+          Height = 360
           Top = 0
           Width = 400
           Align = alClient
@@ -496,7 +495,7 @@ object FRMWallet: TFRMWallet
         object pnlAccountsInfo: TPanel
           Left = 0
           Height = 34
-          Top = 340
+          Top = 360
           Width = 400
           Align = alBottom
           BevelOuter = bvNone
@@ -577,7 +576,7 @@ object FRMWallet: TFRMWallet
       end
       object pcAccountsOptions: TPageControl
         Left = 405
-        Height = 374
+        Height = 394
         Top = 66
         Width = 452
         ActivePage = tsMultiSelectAccounts
@@ -604,12 +603,12 @@ object FRMWallet: TFRMWallet
         end
         object tsMultiSelectAccounts: TTabSheet
           Caption = 'Selected Accounts For Batch Operation'
-          ClientHeight = 348
+          ClientHeight = 368
           ClientWidth = 444
           ImageIndex = 1
           object dgSelectedAccounts: TDrawGrid
             Left = 41
-            Height = 291
+            Height = 311
             Top = 31
             Width = 320
             Align = alLeft
@@ -646,7 +645,7 @@ object FRMWallet: TFRMWallet
           object pnlSelectedAccountsBottom: TPanel
             Left = 0
             Height = 26
-            Top = 322
+            Top = 342
             Width = 444
             Align = alBottom
             BevelOuter = bvNone
@@ -688,12 +687,12 @@ object FRMWallet: TFRMWallet
           end
           object pnlSelectedAccountsLeft: TPanel
             Left = 0
-            Height = 291
+            Height = 311
             Top = 31
             Width = 41
             Align = alLeft
             BevelOuter = bvNone
-            ClientHeight = 291
+            ClientHeight = 311
             ClientWidth = 41
             TabOrder = 3
             object sbSelectedAccountsAdd: TSpeedButton

+ 9 - 1
src/gui-classic/UFRMWallet.pas

@@ -326,7 +326,7 @@ implementation
   {$R *.lfm}
 {$ENDIF}
 
-Uses UFolderHelper,
+Uses UFolderHelper,gnugettext,
 {$IFDEF Use_OpenSSL}
   UOpenSSL,
 {$ENDIF}
@@ -1268,6 +1268,8 @@ end;
 procedure TFRMWallet.FormCreate(Sender: TObject);
 Var i : Integer;
 begin
+  TranslateComponent(Self);
+  //
   {$IFNDEF FPC}
   {$IFDEF TESTNET}
   System.ReportMemoryLeaksOnShutdown := True; // Delphi memory leaks testing
@@ -1336,6 +1338,11 @@ begin
   FBlockChainGrid.DrawGrid := dgBlockChainExplorer;
   // FWalletKeys.OnChanged.Add( OnWalletChanged );
   LoadAppParams;
+  // use language from the params and retranslate if needed
+  // might be better to move this a bit earlier in the formcreate routine
+  UseLanguage(FAppParams.ParamByName[CT_PARAM_UILanguage].GetAsString(GetCurrentLanguage));
+  RetranslateComponent(Self);
+  //
   UpdatePrivateKeys;
   UpdateBlockChainState;
   UpdateConnectionStatus;
@@ -2015,6 +2022,7 @@ begin
     if ShowModal=MrOk then begin
       SaveAppParams;
       UpdateConfigChanged;
+      RetranslateComponent(self);
     end;
   finally
     free;

+ 1 - 2
src/gui-classic/UFRMWalletKeys.lfm

@@ -14,8 +14,7 @@ object FRMWalletKeys: TFRMWalletKeys
   Font.Name = 'Tahoma'
   OnCreate = FormCreate
   Position = poOwnerFormCenter
-  LCLVersion = '1.8.4.0'
-  Visible = False
+  LCLVersion = '2.0.2.0'
   object lblEncryptionTypeCaption: TLabel
     Left = 30
     Height = 13

+ 3 - 1
src/gui-classic/UFRMWalletKeys.pas

@@ -96,7 +96,7 @@ uses
   LCLIntf, LCLType,
 {$ENDIF}
   UCrypto, UAccounts, UFRMNewPrivateKeyType, UBaseTypes, UPCEncryption,
-  UCommon, UGUIUtils;
+  UCommon, UGUIUtils,gnugettext;
 
 {$IFnDEF FPC}
   {$R *.dfm}
@@ -493,6 +493,8 @@ end;
 
 procedure TFRMWalletKeys.FormCreate(Sender: TObject);
 begin
+  TranslateComponent(self);
+  //
   lbWalletKeys.Sorted := true;
   FWalletKeys := Nil;
   UpdateWalletKeys;

+ 4307 - 0
src/libraries/gnugettext/gnugettext.pas

@@ -0,0 +1,4307 @@
+{*------------------------------------------------------------------------------
+  GNU gettext translation system for Delphi, Kylix, C++ Builder and others.
+  All parts of the translation system are kept in this unit.
+
+  @author Lars B. Dybdahl and others
+  @version $LastChangedRevision: 220 $
+  @see http://dybdahl.dk/dxgettext/
+-------------------------------------------------------------------------------}
+unit gnugettext;
+
+(**************************************************************)
+(*                                                            *)
+(*  (C) Copyright by Lars B. Dybdahl and others               *)
+(*  E-mail: [email protected], phone +45 70201241               *)
+(*                                                            *)
+(*  Contributors: Peter Thornqvist, Troy Wolbrink,            *)
+(*                Frank Andreas de Groot, Igor Siticov,       *)
+(*                Jacques Garcia Vazquez, Igor Gitman,        *)
+(*                Arvid Winkelsdorf,                          *)
+(*                Thomas Mueller (dummzeuch)                  *)
+(*                Olivier Sannier (obones)                    *)
+(*                                                            *)
+(*  See http://dybdahl.dk/dxgettext/ for more information     *)
+(*                                                            *)
+(**************************************************************)
+
+// Information about this file:
+// $LastChangedDate: 2010-08-25 15:40:17 +0200 (on, 25 aug 2010) $
+// $LastChangedRevision: 220 $
+// $HeadURL: http://svn.berlios.de/svnroot/repos/dxgettext/trunk/dxgettext/sample/gnugettext.pas $
+
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// The names of any contributor may not be used to endorse or promote
+// products derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// fvd
+// 2020-03-26 Added DebugLogToString
+// 2020-03-26 Lazarus support improved
+// 2020-03-26 Added language code to native name routine
+//
+
+interface
+
+// If the conditional define DXGETTEXTDEBUG is defined, debugging log is activated.
+// Use DefaultInstance.DebugLogToFile() to write the log to a file.
+{.$define DXGETTEXTDEBUG}
+
+{$IFDEF FPC}
+//{$mode objfpc}{$H+}
+  {$mode delphi}
+{$ENDIF}
+
+// ### LO - Workaround aka hack for programs compiled with German Delphi
+//
+// If the current OS Language is not German, immediately add a Delphi RTL domain
+// to the resource domains and bind the text domain to a fixed German->English
+// translation.
+// Using a fixed German->English translation because the OS
+// Language may not be one of the installed translations.
+// Otherwise the German RTL resourcestrings will not be translated.
+// This results in German menu shortcuts 'Strg+', 'Umsch+' instead of
+// 'Ctrl+', 'Shift+' and so on.
+//
+// Since there is no way to automatically determine whether the compiling version
+// is German, you must enable the following conditional define to enable it.
+// Be warned: This has not been thoroughly tested.
+// Default is turned off.
+{.$define dx_German_Delphi_fix}  
+
+// if the conditional define dx_SupportsResources is defined the .mo files
+// can also be added to the executable as Windows resources
+// Be warned: This has not been thoroughly tested.
+// Default is turned off.
+{.$define dx_SupportsResources}
+
+{$ifdef VER140}
+  // Delphi 6
+  {$DEFINE dx_Hinstance_is_Integer}
+  {$DEFINE dx_NativeInt_is_Integer}
+  {$DEFINE dx_NativeUInt_is_Cardinal}
+{$endif}
+{$ifdef VER150}
+  // Delphi 7
+  {$DEFINE dx_has_Unsafe_Warnings}
+  {$DEFINE dx_Hinstance_is_Integer}
+  {$DEFINE dx_NativeInt_is_Integer}
+  {$DEFINE dx_NativeUInt_is_Cardinal}
+{$endif}
+{$ifdef VER160}
+  // Delphi 8
+  {$DEFINE dx_has_Unsafe_Warnings}
+  {$DEFINE dx_has_WideStrings}
+  {$DEFINE dx_Hinstance_is_Integer}
+  {$DEFINE dx_NativeInt_is_Integer}
+  {$DEFINE dx_NativeUInt_is_Cardinal}
+{$endif}
+{$ifdef VER170}
+  // Delphi 2005
+  {$DEFINE dx_has_Unsafe_Warnings}
+  {$DEFINE dx_has_WideStrings}
+  {$DEFINE dx_Hinstance_is_Integer}
+  {$DEFINE dx_NativeInt_is_Integer}
+  {$DEFINE dx_NativeUInt_is_Cardinal}
+{$endif}
+{$ifdef VER180}
+  {$ifndef VER185}
+  // Delphi 2006
+  {$DEFINE dx_has_Unsafe_Warnings}
+  {$DEFINE dx_has_WideStrings}
+  {$DEFINE dx_Hinstance_is_Integer}
+  {$DEFINE dx_NativeInt_is_Integer}
+  {$DEFINE dx_NativeUInt_is_Cardinal}
+  {$DEFINE dx_has_Inline}
+  {$endif}
+{$endif}
+{$ifdef VER185}
+  // Delphi 2007
+  {$DEFINE dx_has_Unsafe_Warnings}
+  {$DEFINE dx_has_WideStrings}
+  {$DEFINE dx_Hinstance_is_Integer}
+  {$DEFINE dx_NativeInt_is_Integer}
+  {$DEFINE dx_NativeUInt_is_Cardinal}
+  {$DEFINE dx_has_Inline}
+{$endif}
+// there was no VER190 ??
+{$ifdef VER200}
+  // Delphi 2009, first version with Unicode
+  {$DEFINE dx_has_Unsafe_Warnings}
+  {$DEFINE dx_has_WideStrings}
+  {$DEFINE dx_Hinstance_is_Integer}
+  {$DEFINE dx_NativeInt_is_Integer}
+  {$DEFINE dx_NativeUInt_is_Cardinal}
+  {$DEFINE dx_has_Inline}
+  {$DEFINE dx_StringList_has_OwnsObjects}
+  {$DEFINE dx_has_LpVoid}
+{$endif}
+{$ifdef VER210}
+  // Delphi 2010
+  {$DEFINE dx_has_Unsafe_Warnings}
+  {$DEFINE dx_has_WideStrings}
+  {$DEFINE dx_Hinstance_is_Integer}
+  {$DEFINE dx_NativeInt_is_Integer}
+  {$DEFINE dx_NativeUInt_is_Cardinal}
+  {$DEFINE dx_has_Inline}
+  {$DEFINE dx_StringList_has_OwnsObjects}
+  {$DEFINE dx_has_LpVoid}
+{$endif}
+{$ifdef VER220}
+  // Delphi 2011/XE
+  {$DEFINE dx_has_Unsafe_Warnings}
+  {$DEFINE dx_has_WideStrings}
+  {$DEFINE dx_Hinstance_is_Integer}
+  {$DEFINE dx_NativeInt_is_Integer}
+  {$DEFINE dx_NativeUInt_is_Cardinal}
+  {$DEFINE dx_has_Inline}
+  {$DEFINE dx_has_LpVoid}
+  {$DEFINE dx_StringList_has_OwnsObjects}
+{$endif}
+{$ifdef VER230}
+  // Delphi 2012/XE2
+  {$DEFINE dx_has_Unsafe_Warnings}
+  {$DEFINE dx_has_WideStrings}
+  {$DEFINE dx_StringList_has_OwnsObjects}
+  {$DEFINE dx_has_Inline}
+  {$DEFINE dx_has_LpVoid}
+  {$DEFINE dx_has_VclThemes}
+{$endif}
+{$ifdef VER240}
+  // Delphi 2013/XE3
+  {$DEFINE dx_has_Unsafe_Warnings}
+  {$DEFINE dx_has_WideStrings}
+  {$DEFINE dx_StringList_has_OwnsObjects}
+  {$DEFINE dx_GetStrProp_reads_unicode}
+  {$DEFINE dx_has_Inline}
+  {$DEFINE dx_has_LpVoid}
+  {$DEFINE dx_has_VclThemes}
+{$endif}
+{$IFNDEF FPC}
+{$if CompilerVersion > 24}
+  // Delphi XE4, XE5, XE6, XE7 (and newer)
+  {$DEFINE dx_has_Unsafe_Warnings}
+  {$DEFINE dx_has_WideStrings}
+  {$DEFINE dx_StringList_has_OwnsObjects}
+  {$DEFINE dx_GetStrProp_reads_unicode}
+  {$DEFINE dx_has_Inline}
+  {$DEFINE dx_has_LpVoid}
+  {$DEFINE dx_has_VclThemes}
+  {$DEFINE dx_midstr_in_AnsiStrings}
+{$ifend}
+{$ENDIF}
+
+{$ifdef dx_has_Unsafe_Warnings}
+  {$WARN UNSAFE_TYPE OFF}
+  {$WARN UNSAFE_CODE OFF}
+  {$WARN UNSAFE_CAST OFF}
+{$endif dx_has_Unsafe_Warnings}
+
+uses
+{$ifdef MSWINDOWS}
+  Windows,
+{$else}
+  Libc,
+{$ifdef FPC}
+  CWString,
+{$endif}
+{$endif}
+{$IFDEF dx_midstr_in_AnsiStrings}
+  System.AnsiStrings,
+{$ENDIF dx_midstr_in_AnsiStrings}
+{$IFDEF dx_has_WideStrings}
+  WideStrings,
+{$ENDIF dx_has_WideStrings}
+  Types, Classes, StrUtils, SysUtils, TypInfo;
+
+(*****************************************************************************)
+(*                                                                           *)
+(*  MAIN API                                                                 *)
+(*                                                                           *)
+(*****************************************************************************)
+const
+  LanguageCodeArr : array [0..4,0..1] of string =
+    (
+       ('en','English'),
+       ('fr','français'),
+       ('nl','Nederlands'),
+       ('de','Deutsch'),
+       ('es','español')
+    );
+
+type
+  {$IFNDEF UNICODE}
+  UnicodeString=WideString;
+  RawUtf8String=AnsiString;
+  RawByteString=AnsiString;
+  {$ELSE}
+  RawUtf8String=RawByteString;
+  {$ENDIF}
+  DomainString=string;
+  LanguageString=string;
+  ComponentNameString=string;
+  FilenameString=string;
+  MsgIdString=UnicodeString;
+  TranslatedUnicodeString=UnicodeString;
+
+// Main GNU gettext functions. See documentation for instructions on how to use them.
+function _(const szMsgId: MsgIdString): TranslatedUnicodeString;
+function gettext(const szMsgId: MsgIdString): TranslatedUnicodeString;
+function gettext_NoExtract(const szMsgId: MsgIdString): TranslatedUnicodeString;
+function gettext_NoOp(const szMsgId: MsgIdString): TranslatedUnicodeString;
+function dgettext(const szDomain: DomainString; const szMsgId: MsgIdString): TranslatedUnicodeString;
+function dgettext_NoExtract(const szDomain: DomainString; const szMsgId: MsgIdString): TranslatedUnicodeString;
+function dgettext_NoOp(const szDomain: DomainString; const szMsgId: MsgIdString): TranslatedUnicodeString;
+function dngettext(const szDomain: DomainString; const singular,plural: MsgIdString; Number:longint): TranslatedUnicodeString;
+function ngettext(const singular,plural: MsgIdString; Number:longint): TranslatedUnicodeString;
+function ngettext_NoExtract(const singular,plural: MsgIdString; Number:longint): TranslatedUnicodeString;
+procedure textdomain(const szDomain: DomainString);
+function getcurrenttextdomain: DomainString;
+procedure bindtextdomain(const szDomain: DomainString; const szDirectory: FilenameString);
+
+// Set language to use
+procedure UseLanguage(LanguageCode: LanguageString);
+function GetCurrentLanguage:LanguageString;
+
+// language code to native language
+function CodeToNativeLanguage(LanguageCode:LanguageString):String;
+// native language to language code
+function NativeLanguageToCode(NativeLanguage:String):LanguageString;
+
+// Translates a component (form, frame etc.) to the currently selected language.
+// Put TranslateComponent(self) in the OnCreate event of all your forms.
+// See the manual for documentation on these functions
+type
+  TTranslator=procedure (obj:TObject) of object;
+
+procedure TP_Ignore(AnObject:TObject; const name:ComponentNameString);
+procedure TP_IgnoreClass (IgnClass:TClass);
+procedure TP_IgnoreClassProperty (IgnClass:TClass;const propertyname:ComponentNameString);
+procedure TP_GlobalIgnoreClass (IgnClass:TClass);
+function TP_TryGlobalIgnoreClass (IgnClass:TClass): boolean;
+procedure TP_GlobalIgnoreClassProperty (IgnClass:TClass;const propertyname:ComponentNameString);
+procedure TP_GlobalHandleClass (HClass:TClass;Handler:TTranslator);
+procedure TP_Remember(AnObject: TObject; PropName:ComponentNameString; OldValue:TranslatedUnicodeString);
+procedure TranslateComponent(AnObject: TComponent; const TextDomain:DomainString='');
+procedure RetranslateComponent(AnObject: TComponent; const TextDomain:DomainString='');
+
+// Add more domains that resourcestrings can be extracted from. If a translation
+// is not found in the default domain, this domain will be searched, too.
+// This is useful for adding mo files for certain runtime libraries and 3rd
+// party component libraries
+procedure AddDomainForResourceString (const domain:DomainString);
+procedure RemoveDomainForResourceString (const domain:DomainString);
+
+// Add more domains that component strings can be extracted from. If a translation
+// is not found in the default domain, this domain will be searched, too.
+// This is useful when an application inherits components from a 3rd
+// party component libraries
+procedure AddDomainForComponent (const domain:DomainString);
+procedure RemoveDomainForComponent (const domain:DomainString);
+
+// Unicode-enabled way to get resourcestrings, automatically translated
+// Use like this: ws:=LoadResStringW(@NameOfResourceString);
+{$IFNDEF FPC}
+function LoadResString(ResStringRec: PResStringRec): widestring;
+function LoadResStringW(ResStringRec: PResStringRec): UnicodeString;
+{$ENDIF}
+
+// This returns an empty string if not translated or translator name is not specified.
+function GetTranslatorNameAndEmail:TranslatedUnicodeString;
+
+
+(*****************************************************************************)
+(*                                                                           *)
+(*  ADVANCED FUNCTIONALITY                                                   *)
+(*                                                                           *)
+(*****************************************************************************)
+
+const
+  DefaultTextDomain = 'default';
+
+var
+  ExecutableFilename: FilenameString; // This is set to paramstr(0) or the name of the DLL you are creating.
+
+const
+  PreferExternal             = False;       // Set to true, to prefer external *.mo over embedded translation
+  UseMemoryMappedFiles       = True;        // Set to False, to use the mo-file as independent copy in memory (you can update the file while it is in use)
+  ReReadMoFileOnSameLanguage = False;       // Set to True, to reread mo-file if the current language is selected again
+
+const
+  // Subversion source code version control version information
+  VCSVersion='$LastChangedRevision: 220 $';
+
+type
+  EGnuGettext=class(Exception);
+  EGGProgrammingError=class(EGnuGettext);
+  EGGComponentError=class(EGnuGettext);
+  EGGIOError=class(EGnuGettext);
+  EGGAnsi2WideConvError=class(EGnuGettext);
+
+// This function will turn resourcestring hooks on or off, eventually with BPL file support.
+// Please do not activate BPL file support when the package is in design mode.
+const AutoCreateHooks=true;
+procedure HookIntoResourceStrings (enabled:boolean=true; SupportPackages:boolean=false);
+
+
+
+
+(*****************************************************************************)
+(*                                                                           *)
+(*  CLASS based implementation.                                              *)
+(*  Use TGnuGettextInstance to have more than one language                   *)
+(*  in your application at the same time                                     *)
+(*                                                                           *)
+(*****************************************************************************)
+
+type
+  TOnDebugLine = Procedure (Sender: TObject; const Line: String; var Discard: Boolean) of Object;  // Set Discard to false if output should still go to ordinary debug log
+  TGetPluralForm=function (Number:Longint):Integer;
+  TDebugLogger=procedure (line: ansistring) of object;
+
+{*------------------------------------------------------------------------------
+  Handles .mo files, in separate files or inside the exe file.
+  Don't use this class. It's for internal use.
+-------------------------------------------------------------------------------}
+  TMoFile=
+    class /// Threadsafe. Only constructor and destructor are writing to memory
+    private
+      doswap: boolean;
+    public
+      Users:Integer; /// Reference count. If it reaches zero, this object should be destroyed.
+      constructor Create (const filename: FilenameString;
+                          const Offset: int64; Size: int64;
+                          const xUseMemoryMappedFiles: Boolean;
+                          const ResName: string);
+      destructor Destroy; override;
+      function gettext(const msgid: RawUtf8String;var found:boolean): RawUtf8String; // uses mo file and utf-8
+      property isSwappedArchitecture:boolean read doswap;
+    private
+      N, O, T: Cardinal; /// Values defined at http://www.linuxselfhelp.com/gnu/gettext/html_chapter/gettext_6.html
+      startindex,startstep:integer;
+      FUseMemoryMappedFiles: Boolean;
+      mo: THandle;
+      momapping: THandle;
+      momemoryHandle:PAnsiChar;
+      momemory: PAnsiChar;
+      function autoswap32(i: cardinal): cardinal;
+      function CardinalInMem(baseptr: PAnsiChar; Offset: Cardinal): Cardinal;
+    end;
+
+{*------------------------------------------------------------------------------
+  Handles all issues regarding a specific domain.
+  Don't use this class. It's for internal use.
+-------------------------------------------------------------------------------}
+  TDomain=
+    class
+    private
+      Enabled:boolean;
+      vDirectory: FilenameString;
+      procedure setDirectory(const dir: FilenameString);
+    public
+      DebugLogger:TDebugLogger;
+      Domain: DomainString;
+      property Directory: FilenameString read vDirectory write setDirectory;
+      constructor Create;
+      destructor Destroy; override;
+      // Set parameters
+      procedure SetLanguageCode (const langcode:LanguageString);
+      procedure SetFilename (const filename:FilenameString); // Bind this domain to a specific file
+      // Get information
+      procedure GetListOfLanguages(list:TStrings);
+      function GetTranslationProperty(Propertyname: ComponentNameString): TranslatedUnicodeString;
+      function gettext(const msgid: RawUtf8String): RawUtf8String; // uses mo file and utf-8
+    private
+      mofile:TMoFile;
+      SpecificFilename:FilenameString;
+      curlang: LanguageString;
+      OpenHasFailedBefore: boolean;
+      procedure OpenMoFile;
+      procedure CloseMoFile;
+    end;
+
+{*------------------------------------------------------------------------------
+  Helper class for invoking events.
+-------------------------------------------------------------------------------}
+  TExecutable=
+    class
+      procedure Execute; virtual; abstract;
+    end;
+
+{*------------------------------------------------------------------------------
+  Interface to implement if you want to register as a language change listener
+-------------------------------------------------------------------------------}
+  IGnuGettextInstanceWhenNewLanguageListener = interface
+    procedure WhenNewLanguage (const LanguageID:LanguageString);
+  end;
+    
+{*------------------------------------------------------------------------------
+  The main translation engine.
+-------------------------------------------------------------------------------}
+  TGnuGettextInstance=
+    class
+    private
+      fOnDebugLine:TOnDebugLine;
+    public
+      Enabled:Boolean;      /// Set this to false to disable translations
+      DesignTimeCodePage:Integer;  /// See MultiByteToWideChar() in Win32 API for documentation
+      SearchAllDomains: Boolean;  /// Should gettext and ngettext look in all other known domains after the current one
+
+      constructor Create;
+      destructor Destroy; override;
+      procedure UseLanguage(LanguageCode: LanguageString);
+      procedure GetListOfLanguages (const domain:DomainString; list:TStrings); // Puts list of language codes, for which there are translations in the specified domain, into list
+      {$ifndef UNICODE}
+      function gettext(const szMsgId: ansistring): TranslatedUnicodeString; overload; virtual;
+      function ngettext(const singular,plural:ansistring;Number:longint):TranslatedUnicodeString; overload; virtual;
+      {$endif}
+      function gettext(const szMsgId: MsgIdString): TranslatedUnicodeString; overload; virtual;
+      function gettext_NoExtract(const szMsgId: MsgIdString): TranslatedUnicodeString;
+      function gettext_NoOp(const szMsgId: MsgIdString): TranslatedUnicodeString;
+      function ngettext(const singular,plural:MsgIdString;Number:longint):TranslatedUnicodeString; overload; virtual;
+      function ngettext_NoExtract(const singular,plural:MsgIdString;Number:longint):TranslatedUnicodeString;
+      function GetCurrentLanguage:LanguageString;
+      function GetTranslationProperty (const Propertyname:ComponentNameString):TranslatedUnicodeString;
+      function GetTranslatorNameAndEmail:TranslatedUnicodeString;
+
+      // Form translation tools, these are not threadsafe. All TP_ procs must be called just before TranslateProperites()
+      procedure TP_Ignore(AnObject:TObject; const name:ComponentNameString);
+      procedure TP_IgnoreClass (IgnClass:TClass);
+      procedure TP_IgnoreClassProperty (IgnClass:TClass;propertyname:ComponentNameString);
+      function TP_TryGlobalIgnoreClass (IgnClass:TClass): boolean;
+      procedure TP_GlobalIgnoreClass (IgnClass:TClass);
+      procedure TP_GlobalIgnoreClassProperty (IgnClass:TClass;propertyname:ComponentNameString);
+      procedure TP_GlobalHandleClass (HClass:TClass;Handler:TTranslator);
+      procedure TP_Remember(AnObject: TObject; PropName:ComponentNameString; OldValue:TranslatedUnicodeString);
+      procedure TranslateProperties(AnObject: TObject; textdomain:DomainString='');
+      procedure TranslateComponent(AnObject: TComponent; const TextDomain:DomainString='');
+      procedure RetranslateComponent(AnObject: TComponent; const TextDomain:DomainString='');
+
+      // Multi-domain functions
+      {$ifndef UNICODE}
+      function dgettext(const szDomain: DomainString; const szMsgId: ansistring): TranslatedUnicodeString; overload; virtual;
+      function dngettext(const szDomain: DomainString; const singular,plural:ansistring;Number:longint):TranslatedUnicodeString; overload; virtual;
+      {$endif}
+      function dgettext(const szDomain: DomainString; const szMsgId: MsgIdString): TranslatedUnicodeString; overload; virtual;
+      function dgettext_NoExtract(const szDomain: DomainString; const szMsgId: MsgIdString): TranslatedUnicodeString;
+      function dgettext_NoOp(const szDomain: DomainString; const szMsgId: MsgIdString): TranslatedUnicodeString;
+      function dngettext(const szDomain: DomainString; const singular,plural:MsgIdString;Number:longint):TranslatedUnicodeString; overload; virtual;
+      function dngettext_NoExtract(const szDomain: DomainString; const singular,plural:MsgIdString;Number:longint):TranslatedUnicodeString;
+      procedure txtdomain(const szDomain: DomainString);
+      function getcurrenttextdomain: DomainString;
+      procedure bindtextdomain(const szDomain: DomainString; const szDirectory: FilenameString);
+      procedure bindtextdomainToFile (const szDomain: DomainString; const filename: FilenameString); // Also works with files embedded in exe file
+
+      // Windows API functions
+      {$IFNDEF FPC}
+      function LoadResString(ResStringRec: PResStringRec): UnicodeString;
+      {$ENDIF}
+
+      // Output all log info to this file. This may only be called once.
+      procedure DebugLogToFile (const filename:FilenameString; append:boolean=false);
+      procedure DebugLogPause (PauseEnabled:boolean);
+      property  OnDebugLine: TOnDebugLine read fOnDebugLine write fOnDebugLine; // If set, all debug output goes here
+      function DebugLogToString(Empty:Boolean = true):String;
+      {$ifndef UNICODE}
+      // Conversion according to design-time character set
+      function ansi2wideDTCP (const s:AnsiString):MsgIdString;  // Convert using Design Time Code Page
+      {$endif}
+
+      procedure RegisterWhenNewLanguageListener(Listener: IGnuGettextInstanceWhenNewLanguageListener);
+      procedure UnregisterWhenNewLanguageListener(Listener: IGnuGettextInstanceWhenNewLanguageListener);
+    protected
+      procedure TranslateStrings (sl:TStrings;const TextDomain:DomainString);
+      {$IFDEF dx_has_WideStrings}
+      procedure TranslateWideStrings (sl: TWideStrings;const TextDomain:DomainString);
+      {$ENDIF dx_has_WideStrings}
+
+      // Override these three, if you want to inherited from this class
+      // to create a new class that handles other domain and language dependent
+      // issues
+      procedure WhenNewLanguage (const LanguageID:LanguageString); virtual;         // Override to know when language changes
+      procedure WhenNewDomain (const TextDomain:DomainString); virtual; // Override to know when text domain changes. Directory is purely informational
+      procedure WhenNewDomainDirectory (const TextDomain:DomainString;const Directory:FilenameString); virtual; // Override to know when any text domain's directory changes. It won't be called if a domain is fixed to a specific file.
+    private
+      curlang: LanguageString;
+      curGetPluralForm:TGetPluralForm;
+      curmsgdomain: DomainString;
+      savefileCS: TMultiReadExclusiveWriteSynchronizer;
+      savefile: TextFile;
+      savememory: TStringList;
+      DefaultDomainDirectory:FilenameString;
+      domainlist: TStringList;     /// List of domain names. Objects are TDomain.
+      TP_IgnoreList:TStringList;   /// Temporary list, reset each time TranslateProperties is called
+      TP_ClassHandling:TList;      /// Items are TClassMode. If a is derived from b, a comes first
+      TP_GlobalClassHandling:TList;      /// Items are TClassMode. If a is derived from b, a comes first
+      TP_Retranslator:TExecutable; /// Cast this to TTP_Retranslator
+      fWhenNewLanguageListeners: TInterfaceList;  /// List of all registered WhenNewLanguage listeners
+      {$ifdef DXGETTEXTDEBUG}
+      DebugLogCS:TMultiReadExclusiveWriteSynchronizer;
+      DebugLog:TStream;
+      DebugLogOutputPaused:Boolean;
+      {$endif}
+      function TP_CreateRetranslator:TExecutable;  // Must be freed by caller!
+      procedure FreeTP_ClassHandlingItems;
+      function ClassIsIgnored(AClass:TClass): Boolean;
+      {$ifdef DXGETTEXTDEBUG}
+      procedure DebugWriteln(line: ansistring);
+      {$endif}
+      procedure TranslateProperty(AnObject: TObject; PropInfo: PPropInfo;
+        TodoList: TStrings; const TextDomain:DomainString);
+      function Getdomain(const domain:DomainString; const sDefaultDomainDirectory:FilenameString; const sCurLang: LanguageString): TDomain;  // Translates a single property of an object
+    end;
+
+const
+  LOCALE_SISO639LANGNAME = $59;    // Used by Lazarus software development tool
+  LOCALE_SISO3166CTRYNAME = $5A;   // Used by Lazarus software development tool
+
+var
+  DefaultInstance:TGnuGettextInstance;  /// Default instance of the main API for singlethreaded applications.
+
+implementation
+
+{$ifdef dx_has_VclThemes}
+uses
+  Vcl.Themes;
+{$endif dx_has_VclThemes}
+
+{$ifndef MSWINDOWS}
+{$ifndef LINUX}
+  'This version of gnugettext.pas is only meant to be compiled with Kylix 3,'
+  'Delphi 6, Delphi 7 and later versions. If you use other versions, please'
+  'get the gnugettext.pas version from the Delphi 5 directory.'
+{$endif}
+{$endif}
+
+{$ifdef dx_NativeUInt_is_Cardinal}
+type
+  NativeUInt = cardinal;
+{$endif}
+
+(**************************************************************************)
+// Some comments on the implementation:
+// This unit should be independent of other units where possible.
+// It should have a small footprint in any way.
+(**************************************************************************)
+// TMultiReadExclusiveWriteSynchronizer is used instead of TCriticalSection
+// because it makes this unit independent of the SyncObjs unit
+(**************************************************************************)
+
+{$B-,R+,I+,Q+}
+
+type
+  TTP_RetranslatorItem=
+    class
+      obj:TObject;
+      Propname:ComponentNameString;
+      OldValue:TranslatedUnicodeString;
+    end;
+  TTP_Retranslator=
+    class (TExecutable)
+      TextDomain:DomainString;
+      Instance:TGnuGettextInstance;
+      constructor Create;
+      destructor Destroy; override;
+      procedure Remember (obj:TObject; PropName:ComponentNameString; OldValue:TranslatedUnicodeString);
+      procedure Execute; override;
+    private
+      list:TList;
+    end;
+  TEmbeddedFileInfo=
+    class
+      offset,size:int64;
+    end;
+{$IFDEF dx_SupportsResources}
+  TResourceFileInfo = class
+  public
+    ResourceName: string;
+    constructor Create(const _ResourceName: string);
+  end;
+{$ENDIF dx_SupportsResources}
+  TFileLocator=
+    class // This class finds files even when embedded inside executable
+      constructor Create;
+      destructor Destroy; override;
+      function FindSignaturePos(const signature: RawByteString; str: TFileStream): Int64;
+      procedure Analyze;  // List files embedded inside executable
+      function FileExists (filename:FilenameString):boolean;
+      function GetMoFile (filename:FilenameString;DebugLogger:TDebugLogger):TMoFile;
+      procedure ReleaseMoFile (mofile:TMoFile);
+    private
+      basedirectory:FilenameString;
+      filelist:TStringList; //Objects are TEmbeddedFileInfo. Filenames are relative to .exe file
+{$IFDEF dx_SupportsResources}
+      FResourceList: TStringList; // Objects are TResourceFileInfo, Filenames are relative to .exe file
+{$ENDIF dx_SupportsResources}
+      MoFilesCS:TMultiReadExclusiveWriteSynchronizer;
+      MoFiles:TStringList; // Objects are filenames+offset, objects are TMoFile
+      function ReadInt64 (str:TStream):int64;
+    end;
+  TGnuGettextComponentMarker=
+    class (TComponent)
+    public
+      LastLanguage:LanguageString;
+      Retranslator:TExecutable;
+      destructor Destroy; override;
+    end;
+  TClassMode=
+    class
+      HClass:TClass;
+      SpecialHandler:TTranslator;
+      PropertiesToIgnore:TStringList; // This is ignored if Handler is set
+      constructor Create;
+      destructor Destroy; override;
+    end;
+  TRStrinfo = record
+    strlength, stroffset: cardinal;
+  end;
+  TStrInfoArr = array[0..10000000] of TRStrinfo;
+  PStrInfoArr = ^TStrInfoArr;
+  TCharArray5=array[0..4] of ansichar;
+  THook=  // Replaces a runtime library procedure with a custom procedure
+    class
+    public
+      constructor Create (OldProcedure, NewProcedure: pointer; FollowJump:boolean=false);
+      destructor Destroy; override;  // Restores unhooked state
+      procedure Reset (FollowJump:boolean=false); // Disables and picks up patch points again
+      procedure Disable;
+      procedure Enable;
+    private
+      oldproc,newproc:Pointer;
+      Patch:TCharArray5;
+      Original:TCharArray5;
+      PatchPosition:PAnsiChar;
+      procedure Shutdown; // Same as destroy, except that object is not destroyed
+    end;
+
+  PProxyClassData = ^TProxyClassData;
+  TProxyClassData = record
+    SelfPtr: TClass;
+    IntfTable: Pointer;
+    AutoTable: Pointer;
+    InitTable: Pointer;
+    TypeInfo: PTypeInfo;
+    FieldTable: Pointer;
+    MethodTable: Pointer;
+    DynamicTable: Pointer;
+    ClassName: PShortString;
+    InstanceSize: Integer;
+    Parent: ^TClass;
+  end;
+
+  THookedObjects=
+    class(TList)
+    private
+      interceptorClassDatas:TList;
+
+      function findInterceptorClassData(aClass:TClass):Pointer;
+
+      procedure BeforeDestructionHook;
+      function GetBeforeDestructionHookAddress: Pointer;
+    public
+      constructor Create;
+      destructor Destroy; override;
+
+      procedure Proxify(obj:TObject);
+      procedure Unproxify(obj:TObject);
+    end;
+
+var
+  // System information
+  Win32PlatformIsUnicode:boolean=False;
+  
+  // Information about files embedded inside .exe file
+  FileLocator:TFileLocator;
+
+  // Hooks into runtime library functions
+  ResourceStringDomainListCS:TMultiReadExclusiveWriteSynchronizer;
+  ResourceStringDomainList:TStringList;
+  ComponentDomainListCS:TMultiReadExclusiveWriteSynchronizer;
+  ComponentDomainList:TStringList;
+  HookLoadResString:THook;
+  HookLoadStr:THook;
+  HookFmtLoadStr:THook;
+  HookedObjects:THookedObjects;
+  KnownRetranslators:TList;
+
+{$IFDEF LINUX}
+function GGGetEnvironmentVariable (name : AnsiString):string;
+begin
+  Result:=SysUtils.GetEnvironmentVariable(name);
+end;
+{$ELSE}
+function GGGetEnvironmentVariable(const Name:widestring):widestring;
+var
+  Len: integer;
+  W : WideString;
+begin
+  Result := '';
+  SetLength(W,1);
+  Len := Windows.GetEnvironmentVariableW(PWideChar(Name), PWideChar(W), 1);
+  if Len > 0 then begin
+    SetLength(Result, Len - 1);
+    Windows.GetEnvironmentVariableW(PWideChar(Name), PWideChar(Result), Len);
+  end;
+end;
+{$ENDIF}
+
+{$IFDEF FPC}
+Function gnutrans(Name,Value : AnsiString; Hash : Longint; arg:pointer) : AnsiString;
+var
+  s: widestring;
+begin
+  S:=DefaultInstance.gettext(value);
+  result := Utf8ToAnsi(s);
+end;
+
+procedure TranslateAllResourceStrings;
+var I,J : Longint;
+    S   : WideString;
+begin
+  {$ifdef DXGETTEXTDEBUG}
+//  DefaultInstance.DebugWriteln('TranslateAllResourceStrings (ResourceStringTableCount='+IntToStr(ResourceStringTable.Count)+')');
+  {$endif}
+  SetResourceStrings(@gnuTrans,nil);
+{
+  for I:=0 to ResourceStringTableCount-1 do
+  begin
+    for J:=0 to ResourceStringCount(i)-1 do
+    begin
+      S:=DefaultInstance.gettext(GetResourceStringDefaultValue(I,J));
+      SetResourceStringValue(I,J,S);
+    end;
+  end;
+}
+end;
+{$ENDIF}
+
+function StripCRRawMsgId (s:RawUtf8String):RawUtf8String;
+var
+  i:integer;
+begin
+  i:=1;
+  while i<=length(s) do begin
+    if s[i]=#13 then delete (s,i,1) else inc (i);
+  end;
+  Result:=s;
+end;
+
+{$ifdef dx_midstr_in_AnsiStrings}
+function MidStr(const AText: RawUtf8String; const AStart, ACount: Integer): RawUtf8String; overload; inline;
+begin
+  Result := System.AnsiStrings.MidStr(AText, AStart, ACount);
+end;
+{$endif dx_midstr_in_AnsiStrings}
+
+function EnsureLineBreakInTranslatedString (s:RawUtf8String):RawUtf8String;
+{$ifdef MSWINDOWS}
+var
+  i:integer;
+{$endif}
+begin
+  {$ifdef MSWINDOWS}
+  Assert (sLinebreak=ansistring(#13#10));
+  i:=1;
+  while i<=length(s) do begin
+    if (s[i]=#10) and (MidStr(s,i-1,1)<>#13) then begin
+      insert (#13,s,i);
+      inc (i,2);
+    end else
+      inc (i);
+  end;
+  {$endif}
+  Result:=s;
+end;
+
+function IsWriteProp(Info: PPropInfo): Boolean;
+begin
+  Result := Assigned(Info) and (Info^.SetProc <> nil);
+end;
+
+function ResourceStringGettext(MsgId: MsgIdString): TranslatedUnicodeString;
+var
+  i:integer;
+begin
+  if (MsgID='') or (ResourceStringDomainListCS=nil) then begin
+    // This only happens during very complicated program startups that fail,
+    // or when Msgid=''
+    Result:=MsgId;
+    exit;
+  end;
+  ResourceStringDomainListCS.BeginRead;
+  try
+    for i:=0 to ResourceStringDomainList.Count-1 do begin
+      Result:=dgettext(ResourceStringDomainList.Strings[i], MsgId);
+      if Result<>MsgId then
+        break;
+    end;
+  finally
+    ResourceStringDomainListCS.EndRead;
+  end;
+end;
+
+function ComponentGettext(MsgId: MsgIdString; Instance: TGnuGettextInstance = nil): TranslatedUnicodeString;
+var
+  i:integer;
+begin
+  if (MsgID='') or (ComponentDomainListCS=nil) then begin
+    // This only happens during very complicated program startups that fail,
+    // or when Msgid=''
+    Result:=MsgId;
+    exit;
+  end;
+
+  // First, get the value from the default domain
+  if Assigned(Instance) then
+    Result:=Instance.dgettext(Instance.curmsgdomain, MsgId)
+  else
+    Result:=dgettext(DefaultInstance.curmsgdomain, MsgId);
+  if Result<>MsgId then
+    exit;
+
+  // If it was not in the default domain, then go through the others
+  ComponentDomainListCS.BeginRead;
+  try
+    for i:=0 to ComponentDomainList.Count-1 do begin
+      if Assigned(Instance) then
+        Result:=Instance.dgettext(ComponentDomainList.Strings[i], MsgId)
+      else
+        Result:=dgettext(ComponentDomainList.Strings[i], MsgId);
+      if Result<>MsgId then
+        break;
+    end;
+  finally
+    ComponentDomainListCS.EndRead;
+  end;
+end;
+
+function gettext(const szMsgId: MsgIdString): TranslatedUnicodeString;
+begin
+  Result := DefaultInstance.gettext(szMsgId);
+end;
+
+function gettext_NoExtract(const szMsgId: MsgIdString): TranslatedUnicodeString;
+begin
+  // This one is very useful for translating text in variables.
+  // This can sometimes be necessary, and by using this function,
+  // the source code scanner will not trigger warnings.
+  Result := gettext(szMsgId);
+end;
+
+function gettext_NoOp(const szMsgId: MsgIdString): TranslatedUnicodeString;
+begin
+  //*** With this function Strings can be added to the po-file without beeing
+  //    ResourceStrings (dxgettext will add the string and this function will
+  //    return it without a change)
+  //    see gettext manual
+  //      4.7 - Special Cases of Translatable Strings
+  //      http://www.gnu.org/software/hello/manual/gettext/Special-cases.html#Special-cases
+  Result := DefaultInstance.gettext_NoOp(szMsgId);
+end;
+
+{*------------------------------------------------------------------------------
+  This is the main translation procedure used in programs. It takes a parameter,
+  looks it up in the translation dictionary, and returns the translation.
+  If no translation is found, the parameter is returned.
+
+  @param szMsgId The text, that should be displayed if no translation is found.
+-------------------------------------------------------------------------------}
+function _(const szMsgId: MsgIdString): TranslatedUnicodeString;
+begin
+  Result:=DefaultInstance.gettext(szMsgId);
+end;
+
+{*------------------------------------------------------------------------------
+  Translates a text, using a specified translation domain.
+  If no translation is found, the parameter is returned.
+
+  @param szDomain Which translation domain that should be searched for a translation.
+  @param szMsgId The text, that should be displayed if no translation is found.
+-------------------------------------------------------------------------------}
+function dgettext(const szDomain: DomainString; const szMsgId: MsgIdString): TranslatedUnicodeString;
+begin
+  Result:=DefaultInstance.dgettext(szDomain, szMsgId);
+end;
+
+function dgettext_NoExtract(const szDomain: DomainString; const szMsgId: MsgIdString): TranslatedUnicodeString;
+begin
+  // This one is very useful for translating text in variables.
+  // This can sometimes be necessary, and by using this function,
+  // the source code scanner will not trigger warnings.
+  Result := dgettext(szDomain, szMsgId);
+end;
+
+function dgettext_NoOp(const szDomain: DomainString; const szMsgId: MsgIdString): TranslatedUnicodeString;
+begin
+  //*** With this function Strings can be added to the po-file without beeing
+  //    ResourceStrings (dxgettext will add the string and this function will
+  //    return it without a change)
+  //    see gettext manual
+  //      4.7 - Special Cases of Translatable Strings
+  //      http://www.gnu.org/software/hello/manual/gettext/Special-cases.html#Special-cases
+  Result := DefaultInstance.dgettext_NoOp(szDomain, szMsgId);
+end;
+
+function dngettext(const szDomain: DomainString; const singular,plural: MsgIdString; Number:longint): TranslatedUnicodeString;
+begin
+  Result:=DefaultInstance.dngettext(szDomain,singular,plural,Number);
+end;
+
+function ngettext(const singular,plural: MsgIdString; Number:longint): TranslatedUnicodeString;
+begin
+  Result:=DefaultInstance.ngettext(singular,plural,Number);
+end;
+
+function ngettext_NoExtract(const singular,plural: MsgIdString; Number:longint): TranslatedUnicodeString;
+begin
+  // This one is very useful for translating text in variables.
+  // This can sometimes be necessary, and by using this function,
+  // the source code scanner will not trigger warnings.
+  Result := ngettext(singular, plural, Number);
+end;
+
+procedure textdomain(const szDomain: Domainstring);
+begin
+  DefaultInstance.txtdomain(szDomain);
+end;
+
+procedure SetGettextEnabled (enabled:boolean);
+begin
+  DefaultInstance.Enabled:=enabled;
+end;
+
+function getcurrenttextdomain: DomainString;
+begin
+  Result:=DefaultInstance.getcurrenttextdomain;
+end;
+
+procedure bindtextdomain(const szDomain: DomainString; const szDirectory: FilenameString);
+begin
+  DefaultInstance.bindtextdomain(szDomain, szDirectory);
+end;
+
+procedure TP_Ignore(AnObject:TObject; const name:FilenameString);
+begin
+  DefaultInstance.TP_Ignore(AnObject, name);
+end;
+
+procedure TP_GlobalIgnoreClass (IgnClass:TClass);
+begin
+  DefaultInstance.TP_GlobalIgnoreClass(IgnClass);
+end;
+
+function TP_TryGlobalIgnoreClass (IgnClass:TClass): boolean;
+begin
+  Result := DefaultInstance.TP_TryGlobalIgnoreClass (IgnClass);
+end;
+
+procedure TP_IgnoreClass (IgnClass:TClass);
+begin
+  DefaultInstance.TP_IgnoreClass(IgnClass);
+end;
+
+procedure TP_IgnoreClassProperty (IgnClass:TClass;const propertyname:ComponentNameString);
+begin
+  DefaultInstance.TP_IgnoreClassProperty(IgnClass,propertyname);
+end;
+
+procedure TP_GlobalIgnoreClassProperty (IgnClass:TClass;const propertyname:ComponentNameString);
+begin
+  DefaultInstance.TP_GlobalIgnoreClassProperty(IgnClass,propertyname);
+end;
+
+procedure TP_GlobalHandleClass (HClass:TClass;Handler:TTranslator);
+begin
+  DefaultInstance.TP_GlobalHandleClass (HClass, Handler);
+end;
+
+procedure TP_Remember(AnObject: TObject; PropName:ComponentNameString; OldValue:TranslatedUnicodeString);
+begin
+  DefaultInstance.TP_Remember(AnObject, PropName, OldValue);
+end;
+
+procedure TranslateComponent(AnObject: TComponent; const TextDomain:DomainString='');
+begin
+  DefaultInstance.TranslateComponent(AnObject, TextDomain);
+end;
+
+procedure RetranslateComponent(AnObject: TComponent; const TextDomain:DomainString='');
+begin
+  DefaultInstance.RetranslateComponent(AnObject, TextDomain);
+end;
+
+{$ifdef MSWINDOWS}
+
+// These constants are only used in Windows 95
+// Thanks to Frank Andreas de Groot for this table
+const
+  IDAfrikaans                 = $0436;  IDAlbanian                  = $041C;
+  IDArabicAlgeria             = $1401;  IDArabicBahrain             = $3C01;
+  IDArabicEgypt               = $0C01;  IDArabicIraq                = $0801;
+  IDArabicJordan              = $2C01;  IDArabicKuwait              = $3401;
+  IDArabicLebanon             = $3001;  IDArabicLibya               = $1001;
+  IDArabicMorocco             = $1801;  IDArabicOman                = $2001;
+  IDArabicQatar               = $4001;  IDArabic                    = $0401;
+  IDArabicSyria               = $2801;  IDArabicTunisia             = $1C01;
+  IDArabicUAE                 = $3801;  IDArabicYemen               = $2401;
+  IDArmenian                  = $042B;  IDAssamese                  = $044D;
+  IDAzeriCyrillic             = $082C;  IDAzeriLatin                = $042C;
+  IDBasque                    = $042D;  IDByelorussian              = $0423;
+  IDBengali                   = $0445;  IDBulgarian                 = $0402;
+  IDBurmese                   = $0455;  IDCatalan                   = $0403;
+  IDChineseHongKong           = $0C04;  IDChineseMacao              = $1404;
+  IDSimplifiedChinese         = $0804;  IDChineseSingapore          = $1004;
+  IDTraditionalChinese        = $0404;  IDCroatian                  = $041A;
+  IDCzech                     = $0405;  IDDanish                    = $0406;
+  IDBelgianDutch              = $0813;  IDDutch                     = $0413;
+  IDEnglishAUS                = $0C09;  IDEnglishBelize             = $2809;
+  IDEnglishCanadian           = $1009;  IDEnglishCaribbean          = $2409;
+  IDEnglishIreland            = $1809;  IDEnglishJamaica            = $2009;
+  IDEnglishNewZealand         = $1409;  IDEnglishPhilippines        = $3409;
+  IDEnglishSouthAfrica        = $1C09;  IDEnglishTrinidad           = $2C09;
+  IDEnglishUK                 = $0809;  IDEnglishUS                 = $0409;
+  IDEnglishZimbabwe           = $3009;  IDEstonian                  = $0425;
+  IDFaeroese                  = $0438;  IDFarsi                     = $0429;
+  IDFinnish                   = $040B;  IDBelgianFrench             = $080C;
+  IDFrenchCameroon            = $2C0C;  IDFrenchCanadian            = $0C0C;
+  IDFrenchCotedIvoire         = $300C;  IDFrench                    = $040C;
+  IDFrenchLuxembourg          = $140C;  IDFrenchMali                = $340C;
+  IDFrenchMonaco              = $180C;  IDFrenchReunion             = $200C;
+  IDFrenchSenegal             = $280C;  IDSwissFrench               = $100C;
+  IDFrenchWestIndies          = $1C0C;  IDFrenchZaire               = $240C;
+  IDFrisianNetherlands        = $0462;  IDGaelicIreland             = $083C;
+  IDGaelicScotland            = $043C;  IDGalician                  = $0456;
+  IDGeorgian                  = $0437;  IDGermanAustria             = $0C07;
+  IDGerman                    = $0407;  IDGermanLiechtenstein       = $1407;
+  IDGermanLuxembourg          = $1007;  IDSwissGerman               = $0807;
+  IDGreek                     = $0408;  IDGujarati                  = $0447;
+  IDHebrew                    = $040D;  IDHindi                     = $0439;
+  IDHungarian                 = $040E;  IDIcelandic                 = $040F;
+  IDIndonesian                = $0421;  IDItalian                   = $0410;
+  IDSwissItalian              = $0810;  IDJapanese                  = $0411;
+  IDKannada                   = $044B;  IDKashmiri                  = $0460;
+  IDKazakh                    = $043F;  IDKhmer                     = $0453;
+  IDKirghiz                   = $0440;  IDKonkani                   = $0457;
+  IDKorean                    = $0412;  IDLao                       = $0454;
+  IDLatvian                   = $0426;  IDLithuanian                = $0427;
+  IDMacedonian                = $042F;  IDMalaysian                 = $043E;
+  IDMalayBruneiDarussalam     = $083E;  IDMalayalam                 = $044C;
+  IDMaltese                   = $043A;  IDManipuri                  = $0458;
+  IDMarathi                   = $044E;  IDMongolian                 = $0450;
+  IDNepali                    = $0461;  IDNorwegianBokmol           = $0414;
+  IDNorwegianNynorsk          = $0814;  IDOriya                     = $0448;
+  IDPolish                    = $0415;  IDBrazilianPortuguese       = $0416;
+  IDPortuguese                = $0816;  IDPunjabi                   = $0446;
+  IDRhaetoRomanic             = $0417;  IDRomanianMoldova           = $0818;
+  IDRomanian                  = $0418;  IDRussianMoldova            = $0819;
+  IDRussian                   = $0419;  IDSamiLappish               = $043B;
+  IDSanskrit                  = $044F;  IDSerbianCyrillic           = $0C1A;
+  IDSerbianLatin              = $081A;  IDSesotho                   = $0430;
+  IDSindhi                    = $0459;  IDSlovak                    = $041B;
+  IDSlovenian                 = $0424;  IDSorbian                   = $042E;
+  IDSpanishArgentina          = $2C0A;  IDSpanishBolivia            = $400A;
+  IDSpanishChile              = $340A;  IDSpanishColombia           = $240A;
+  IDSpanishCostaRica          = $140A;  IDSpanishDominicanRepublic  = $1C0A;
+  IDSpanishEcuador            = $300A;  IDSpanishElSalvador         = $440A;
+  IDSpanishGuatemala          = $100A;  IDSpanishHonduras           = $480A;
+  IDMexicanSpanish            = $080A;  IDSpanishNicaragua          = $4C0A;
+  IDSpanishPanama             = $180A;  IDSpanishParaguay           = $3C0A;
+  IDSpanishPeru               = $280A;  IDSpanishPuertoRico         = $500A;
+  IDSpanishModernSort         = $0C0A;  IDSpanish                   = $040A;
+  IDSpanishUruguay            = $380A;  IDSpanishVenezuela          = $200A;
+  IDSutu                      = $0430;  IDSwahili                   = $0441;
+  IDSwedishFinland            = $081D;  IDSwedish                   = $041D;
+  IDTajik                     = $0428;  IDTamil                     = $0449;
+  IDTatar                     = $0444;  IDTelugu                    = $044A;
+  IDThai                      = $041E;  IDTibetan                   = $0451;
+  IDTsonga                    = $0431;  IDTswana                    = $0432;
+  IDTurkish                   = $041F;  IDTurkmen                   = $0442;
+  IDUkrainian                 = $0422;  IDUrdu                      = $0420;
+  IDUzbekCyrillic             = $0843;  IDUzbekLatin                = $0443;
+  IDVenda                     = $0433;  IDVietnamese                = $042A;
+  IDWelsh                     = $0452;  IDXhosa                     = $0434;
+  IDZulu                      = $0435;
+
+function GetWindowsLanguage: WideString;
+var
+  langid: Cardinal;
+  langcode: WideString;
+  CountryName: array[0..4] of widechar;
+  LanguageName: array[0..4] of widechar;
+  works: boolean;
+begin
+  // The return value of GetLocaleInfo is compared with 3 = 2 characters and a zero
+  works := 3 = GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SISO639LANGNAME, LanguageName, SizeOf(LanguageName));
+  works := works and (3 = GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SISO3166CTRYNAME, CountryName, SizeOf(CountryName)));
+  if works then begin
+    // Windows 98, Me, NT4, 2000, XP and newer
+    LangCode := PWideChar(@(LanguageName[0]));
+    if lowercase(LangCode)='no' then LangCode:='nb';
+    LangCode:=LangCode + '_' + PWideChar(@CountryName[0]);
+  end else begin
+    // This part should only happen on Windows 95.
+    langid := GetThreadLocale;
+    case langid of
+      IDBelgianDutch: langcode := 'nl_BE';
+      IDBelgianFrench: langcode := 'fr_BE';
+      IDBrazilianPortuguese: langcode := 'pt_BR';
+      IDDanish: langcode := 'da_DK';
+      IDDutch: langcode := 'nl_NL';
+      IDEnglishUK: langcode := 'en_GB';
+      IDEnglishUS: langcode := 'en_US';
+      IDFinnish: langcode := 'fi_FI';
+      IDFrench: langcode := 'fr_FR';
+      IDFrenchCanadian: langcode := 'fr_CA';
+      IDGerman: langcode := 'de_DE';
+      IDGermanLuxembourg: langcode := 'de_LU';
+      IDGreek: langcode := 'el_GR';
+      IDIcelandic: langcode := 'is_IS';
+      IDItalian: langcode := 'it_IT';
+      IDKorean: langcode := 'ko_KO';
+      IDNorwegianBokmol: langcode := 'nb_NO';
+      IDNorwegianNynorsk: langcode := 'nn_NO';
+      IDPolish: langcode := 'pl_PL';
+      IDPortuguese: langcode := 'pt_PT';
+      IDRussian: langcode := 'ru_RU';
+      IDSpanish, IDSpanishModernSort: langcode := 'es_ES';
+      IDSwedish: langcode := 'sv_SE';
+      IDSwedishFinland: langcode := 'sv_FI';
+    else
+      langcode := 'C';
+    end;
+  end;
+  Result := langcode;
+end;
+{$endif}
+
+// find the native language full name from the languagecode
+function CodeToNativeLanguage(LanguageCode:LanguageString):String;
+var
+  I : Integer;
+begin
+  result := LanguageCode;
+   For i:=Low(LanguageCodeArr) to High(LanguageCodeArr) do
+      if LanguageCode=LanguageCodeArr[i,0] then
+        begin
+          result := LanguageCodeArr[i,1];
+          break;
+        end;
+end;
+
+// find the langauge code from native language full name
+function NativeLanguageToCode(NativeLanguage:String):LanguageString;
+var
+  I : Integer;
+begin
+  result := NativeLanguage;
+   For i:=Low(LanguageCodeArr) to High(LanguageCodeArr) do
+      if NativeLanguage=LanguageCodeArr[i,1] then
+        begin
+          result := LanguageCodeArr[i,0];
+          break;
+        end;
+end;
+
+{$IFNDEF FPC}
+{$ifndef UNICODE}
+function LoadResStringA(ResStringRec: PResStringRec): ansistring;
+begin
+  Result:=DefaultInstance.LoadResString(ResStringRec);
+end;
+{$endif}
+{$ENDIF}
+
+function GetTranslatorNameAndEmail:TranslatedUnicodeString;
+begin
+  Result:=DefaultInstance.GetTranslatorNameAndEmail;
+end;
+
+procedure UseLanguage(LanguageCode: LanguageString);
+begin
+  DefaultInstance.UseLanguage(LanguageCode);
+end;
+
+type
+{$ifdef dx_Hinstance_is_Integer}
+  THInstanceType = Integer;
+{$else dx_Hinstance_is_Integer}
+  THInstanceType = NativeInt;
+{$endif dx_Hinstance_is_Integer}
+
+{$ifdef dx_NativeInt_is_Integer}
+  TNativeInt = Integer;
+{$else dx_NativeInt_is_Integer}
+  TNativeInt = NativeInt;
+{$endif dx_NativeInt_is_Integer}
+
+type
+  PStrData = ^TStrData;
+  TStrData = record
+    Ident: TNativeInt;
+    Str: String;
+  end;
+
+{$IFNDEF FPC}
+function SysUtilsEnumStringModules(Instance: THInstanceType; Data: Pointer): Boolean;
+{$IFDEF MSWINDOWS}
+var
+  Buffer: array [0..1023] of Char; // WideChar in Delphi 2009, AnsiChar before that
+begin
+  with PStrData(Data)^ do begin
+    SetString(Str, Buffer,
+      LoadString(Instance, Ident, @Buffer[0], sizeof(Buffer)));
+    Result := Str = '';
+  end;
+end;
+{$ENDIF}
+{$IFDEF LINUX}
+var
+  rs:TResStringRec;
+  Module:HModule;
+begin
+  Module:=Instance;
+  rs.Module:=@Module;
+  with PStrData(Data)^ do begin
+    rs.Identifier:=Ident;
+    Str:=System.LoadResString(@rs);
+    Result:=Str='';
+  end;
+end;
+{$ENDIF}
+
+function SysUtilsFindStringResource(Ident: TNativeInt): string;
+var
+  StrData: TStrData;
+begin
+  StrData.Ident := Ident;
+  StrData.Str := '';
+  EnumResourceModules(SysUtilsEnumStringModules, @StrData);
+  Result := StrData.Str;
+end;
+
+function SysUtilsLoadStr(Ident: Integer): string;
+begin
+  {$ifdef DXGETTEXTDEBUG}
+  DefaultInstance.DebugWriteln ('Sysutils.LoadRes('+IntToStr(ident)+') called');
+  {$endif}
+  Result := ResourceStringGettext(SysUtilsFindStringResource(Ident));
+end;
+
+function SysUtilsFmtLoadStr(Ident: Integer; const Args: array of const): string;
+begin
+  {$ifdef DXGETTEXTDEBUG}
+  DefaultInstance.DebugWriteln ('Sysutils.FmtLoadRes('+IntToStr(ident)+',Args) called');
+  {$endif}
+  FmtStr(Result, ResourceStringGettext(SysUtilsFindStringResource(Ident)),Args);
+end;
+
+function LoadResString(ResStringRec: PResStringRec): widestring;
+begin
+  Result:=DefaultInstance.LoadResString(ResStringRec);
+end;
+
+function LoadResStringW(ResStringRec: PResStringRec): UnicodeString;
+begin
+  Result:=DefaultInstance.LoadResString(ResStringRec);
+end;
+{$ENDIF}
+
+
+function GetCurrentLanguage:LanguageString;
+begin
+  Result:=DefaultInstance.GetCurrentLanguage;
+end;
+
+{ TDomain }
+
+procedure TDomain.CloseMoFile;
+begin
+  if mofile<>nil then begin
+    FileLocator.ReleaseMoFile(mofile);
+    mofile:=nil;
+  end;
+  OpenHasFailedBefore:=False;
+end;
+
+destructor TDomain.Destroy;
+begin
+  CloseMoFile;
+  inherited;
+end;
+
+{$ifdef mswindows}
+function GetLastWinError:widestring;
+var
+  errcode:Cardinal;
+begin
+  SetLength (Result,2000);
+  errcode:=GetLastError();
+  Windows.FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM,nil,errcode,0,PWideChar(Result),2000,nil);
+  Result:=PWideChar(Result);
+end;
+{$endif}
+
+procedure TDomain.OpenMoFile;
+var
+  filename: FilenameString;
+begin
+  // Check if it is already open
+  if mofile<>nil then
+    exit;
+
+  // Check if it has been attempted to open the file before
+  if OpenHasFailedBefore then
+    exit;
+
+  if SpecificFilename<>'' then begin
+    filename:=SpecificFilename;
+    {$ifdef DXGETTEXTDEBUG}
+    DebugLogger ('Domain '+domain+' is bound to specific file '+filename);
+    {$endif}
+  end else begin
+    filename := Directory + curlang + PathDelim + 'LC_MESSAGES' + PathDelim + domain + '.mo';
+    if (not FileLocator.FileExists(filename)) and (not fileexists(filename)) then begin
+      {$ifdef DXGETTEXTDEBUG}
+      DebugLogger ('Domain '+domain+': File does not exist, neither embedded or in file system: '+filename);
+      {$endif}
+      filename := Directory + MidStr(curlang, 1, 2) + PathDelim + 'LC_MESSAGES' + PathDelim + domain + '.mo';
+      {$ifdef DXGETTEXTDEBUG}
+      DebugLogger ('Domain '+domain+' will attempt to use this file: '+filename);
+      {$endif}
+    end else begin
+      {$ifdef DXGETTEXTDEBUG}
+      if FileLocator.FileExists(filename) then
+        DebugLogger ('Domain '+domain+' will attempt to use this embedded file: '+filename)
+      else
+        DebugLogger ('Domain '+domain+' will attempt to use this file that was found on the file system: '+filename);
+      {$endif}
+    end;
+  end;
+  if (not FileLocator.FileExists(filename)) and (not fileexists(filename)) then begin
+    {$ifdef DXGETTEXTDEBUG}
+    DebugLogger ('Domain '+domain+' failed to locate the file: '+filename);
+    {$endif}
+    OpenHasFailedBefore:=True;
+    exit;
+  end;
+  {$ifdef DXGETTEXTDEBUG}
+  DebugLogger ('Domain '+domain+' now accesses the file.');
+  {$endif}
+  mofile:=FileLocator.GetMoFile(filename, DebugLogger);
+
+  {$ifdef DXGETTEXTDEBUG}
+  if mofile.isSwappedArchitecture then
+    DebugLogger ('.mo file is swapped (comes from another CPU architecture)');
+  {$endif}
+
+  // Check, that the contents of the file is utf-8
+  if pos('CHARSET=UTF-8',uppercase(GetTranslationProperty('Content-Type')))=0 then begin
+    CloseMoFile;
+    {$ifdef DXGETTEXTDEBUG}
+    DebugLogger ('The translation for the language code '+curlang+' (in '+filename+') does not have charset=utf-8 in its Content-Type. Translations are turned off.');
+    {$endif}
+    {$ifdef MSWINDOWS}
+    MessageBoxW(0,PWideChar(widestring('The translation for the language code '+curlang+' (in '+filename+') does not have charset=utf-8 in its Content-Type. Translations are turned off.')),'Localization problem',MB_OK);
+    {$else}
+    writeln (stderr,'The translation for the language code '+curlang+' (in '+filename+') does not have charset=utf-8 in its Content-Type. Translations are turned off.');
+    {$endif}
+    Enabled:=False;
+  end;
+end;
+
+{$IFDEF UNICODE}
+function utf8decode (s:RawByteString):UnicodeString; {$ifdef dx_has_Inline}inline;{$endif}
+begin
+  Result:=UTF8ToWideString(s);
+end;
+{$endif}
+
+function TDomain.GetTranslationProperty(
+  Propertyname: ComponentNameString): TranslatedUnicodeString;
+var
+  sl:TStringList;
+  i:integer;
+  s:string;
+begin
+  Propertyname:=uppercase(Propertyname)+': ';
+  sl:=TStringList.Create;    
+  try
+    sl.Text:=utf8decode(gettext(''));
+    for i:=0 to sl.Count-1 do begin
+      s:=sl.Strings[i];
+      if uppercase(MidStr(s,1,length(Propertyname)))=Propertyname then begin
+        Result:=trim(MidStr(s,length(PropertyName)+1,maxint));
+
+        {$ifdef DXGETTEXTDEBUG}
+        DebugLogger ('GetTranslationProperty('+PropertyName+') returns '''+Result+'''.');
+        {$endif}
+        exit;
+      end;
+    end;
+  finally
+    FreeAndNil (sl);
+  end;
+  Result:='';
+  {$ifdef DXGETTEXTDEBUG}
+  DebugLogger ('GetTranslationProperty('+PropertyName+') did not find any value. An empty string is returned.');
+  {$endif}
+end;
+
+procedure TDomain.setDirectory(const dir: FilenameString);
+begin
+  vDirectory := IncludeTrailingPathDelimiter(dir);
+  SpecificFilename:='';
+  CloseMoFile;
+end;
+
+procedure AddDomainForResourceString (const domain:DomainString);
+begin
+  {$ifdef DXGETTEXTDEBUG}
+  DefaultInstance.DebugWriteln ('Extra domain for resourcestring: '+domain);
+  {$endif}
+  ResourceStringDomainListCS.BeginWrite;
+  try
+    if ResourceStringDomainList.IndexOf(domain)=-1 then
+      ResourceStringDomainList.Add (domain);
+  finally
+    ResourceStringDomainListCS.EndWrite;
+  end;
+end;
+
+procedure RemoveDomainForResourceString (const domain:DomainString);
+var
+  i:integer;
+begin
+  {$ifdef DXGETTEXTDEBUG}
+  DefaultInstance.DebugWriteln ('Remove domain for resourcestring: '+domain);
+  {$endif}
+  ResourceStringDomainListCS.BeginWrite;
+  try
+    i:=ResourceStringDomainList.IndexOf(domain);
+    if i<>-1 then
+      ResourceStringDomainList.Delete (i);
+  finally
+    ResourceStringDomainListCS.EndWrite;
+  end;
+end;
+
+procedure AddDomainForComponent (const domain:DomainString);
+begin
+  {$ifdef DXGETTEXTDEBUG}
+  DefaultInstance.DebugWriteln ('Extra domain for component: '+domain);
+  {$endif}
+  ComponentDomainListCS.BeginWrite;
+  try
+    if ComponentDomainList.IndexOf(domain)=-1 then
+      ComponentDomainList.Add (domain);
+  finally
+    ComponentDomainListCS.EndWrite;
+  end;
+end;
+
+procedure RemoveDomainForComponent (const domain:DomainString);
+var
+  i:integer;
+begin
+  {$ifdef DXGETTEXTDEBUG}
+  DefaultInstance.DebugWriteln ('Remove domain for component: '+domain);
+  {$endif}
+  ComponentDomainListCS.BeginWrite;
+  try
+    i:=ComponentDomainList.IndexOf(domain);
+    if i<>-1 then
+      ComponentDomainList.Delete (i);
+  finally
+    ComponentDomainListCS.EndWrite;
+  end;
+end;
+
+procedure TDomain.SetLanguageCode(const langcode: LanguageString);
+begin
+  CloseMoFile;
+  curlang:=langcode;
+end;
+
+function GetPluralForm2EN(Number: Integer): Integer;
+begin
+  Number:=abs(Number);
+  if Number=1 then Result:=0 else Result:=1;
+end;
+
+function GetPluralForm1(Number: Integer): Integer;
+begin
+  Result:=0;
+end;
+
+function GetPluralForm2FR(Number: Integer): Integer;
+begin
+  Number:=abs(Number);
+  if (Number=1) or (Number=0) then Result:=0 else Result:=1;
+end;
+
+function GetPluralForm3LV(Number: Integer): Integer;
+begin
+  Number:=abs(Number);
+  if (Number mod 10=1) and (Number mod 100<>11) then
+    Result:=0
+  else
+    if Number<>0 then Result:=1
+                 else Result:=2;
+end;
+
+function GetPluralForm3GA(Number: Integer): Integer;
+begin
+  Number:=abs(Number);
+  if Number=1 then Result:=0
+  else if Number=2 then Result:=1
+  else Result:=2;
+end;
+
+function GetPluralForm3LT(Number: Integer): Integer;
+var
+  n1,n2:byte;
+begin
+  Number:=abs(Number);
+  n1:=Number mod 10;
+  n2:=Number mod 100;
+  if (n1=1) and (n2<>11) then
+    Result:=0
+  else
+    if (n1>=2) and ((n2<10) or (n2>=20)) then Result:=1
+    else Result:=2;
+end;
+
+function GetPluralForm3PL(Number: Integer): Integer;
+var
+  n1,n2:byte;
+begin
+  Number:=abs(Number);
+  n1:=Number mod 10;
+  n2:=Number mod 100;
+
+  if Number=1 then Result:=0 
+  else if (n1>=2) and (n1<=4) and ((n2<10) or (n2>=20)) then Result:=1
+  else Result:=2;
+end;
+
+function GetPluralForm3RU(Number: Integer): Integer;
+var
+  n1,n2:byte;
+begin
+  Number:=abs(Number);
+  n1:=Number mod 10;
+  n2:=Number mod 100;
+  if (n1=1) and (n2<>11) then
+    Result:=0
+  else
+    if (n1>=2) and (n1<=4) and ((n2<10) or (n2>=20)) then Result:=1
+    else Result:=2;
+end;
+
+function GetPluralForm3SK(Number: Integer): Integer;
+begin
+  Number:=abs(Number);
+  if number=1 then Result:=0
+  else if (number<5) and (number<>0) then Result:=1
+  else Result:=2;
+end;
+
+function GetPluralForm4SL(Number: Integer): Integer;
+var
+  n2:byte;
+begin
+  Number:=abs(Number);
+  n2:=Number mod 100;
+  if n2=1 then Result:=0
+  else
+  if n2=2 then Result:=1
+  else
+  if (n2=3) or (n2=4) then Result:=2
+  else
+    Result:=3;
+end;
+
+procedure TDomain.GetListOfLanguages(list: TStrings);
+var
+  sr:TSearchRec;
+  more:boolean;
+  filename, path:FilenameString;
+  langcode:LanguageString;
+  i, j:integer;
+begin
+  list.Clear;
+
+  // Iterate through filesystem
+  more:=FindFirst (Directory+'*',faAnyFile,sr)=0;
+  try
+    while more do begin
+      if (sr.Attr and faDirectory<>0) and (sr.name<>'.') and (sr.name<>'..') then begin
+        filename := Directory + sr.Name + PathDelim + 'LC_MESSAGES' + PathDelim + domain + '.mo';
+        if fileexists(filename) then begin
+          langcode:=lowercase(sr.name);
+          if list.IndexOf(langcode)=-1 then
+            list.Add(langcode);
+        end;
+      end;
+      more:=FindNext (sr)=0;
+    end;
+  finally
+    FindClose (sr);
+  end;
+
+  // Iterate through embedded files
+  for i:=0 to FileLocator.filelist.Count-1 do begin
+    filename:=FileLocator.basedirectory+FileLocator.filelist.Strings[i];
+    path:=Directory;
+    {$ifdef MSWINDOWS}
+    path:=uppercase(path);
+    filename:=uppercase(filename);
+    {$endif}
+    j:=length(path);
+    if MidStr(filename,1,j)=path then begin
+      path:=PathDelim + 'LC_MESSAGES' + PathDelim + domain + '.mo';
+      {$ifdef MSWINDOWS}
+      path:=uppercase(path);
+      {$endif}
+      if MidStr(filename,length(filename)-length(path)+1,length(path))=path then begin
+        langcode:=lowercase(MidStr(filename,j+1,length(filename)-length(path)-j));
+        langcode:=LeftStr(langcode,3)+uppercase(MidStr(langcode,4,maxint));
+        if list.IndexOf(langcode)=-1 then
+          list.Add(langcode);
+      end;
+    end;
+  end;
+end;
+
+procedure TDomain.SetFilename(const filename: FilenameString);
+begin
+  CloseMoFile;
+  vDirectory := '';
+  SpecificFilename:=filename;
+end;
+
+function TDomain.gettext(const msgid: RawUtf8String): RawUtf8String;
+var
+  found:boolean;
+begin
+  if not Enabled then begin
+    Result:=msgid;
+    exit;
+  end;
+  if (mofile=nil) and (not OpenHasFailedBefore) then
+    OpenMoFile;
+  if mofile=nil then begin
+    {$ifdef DXGETTEXTDEBUG}
+    DebugLogger('.mo file is not open. Not translating "'+msgid+'"');
+    {$endif}
+    Result := msgid;
+  end else begin
+    Result:=mofile.gettext(msgid,found);
+    {$ifdef DXGETTEXTDEBUG}
+    if found then
+      DebugLogger ('Found in .mo ('+Domain+'): "'+utf8encode(msgid)+'"->"'+utf8encode(Result)+'"')
+    else
+      DebugLogger ('Translation not found in .mo file ('+Domain+') : "'+utf8encode(msgid)+'"');
+    {$endif}
+  end;
+end;
+
+constructor TDomain.Create;
+begin
+  inherited Create;
+  Enabled:=True;
+end;
+
+{ TGnuGettextInstance }
+
+procedure TGnuGettextInstance.bindtextdomain(const szDomain:DomainString;
+  const szDirectory: FilenameString);
+var
+  dir:FilenameString;
+begin
+  dir:=IncludeTrailingPathDelimiter(szDirectory);
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('Text domain "'+szDomain+'" is now located at "'+dir+'"');
+  {$endif}
+  getdomain(szDomain,DefaultDomainDirectory,CurLang).Directory := dir;
+  WhenNewDomainDirectory (szDomain, szDirectory);
+end;
+
+constructor TGnuGettextInstance.Create;
+begin
+  {$ifdef MSWindows}
+  DesignTimeCodePage:=CP_ACP;
+  {$endif}
+  {$ifdef DXGETTEXTDEBUG}
+  DebugLogCS:=TMultiReadExclusiveWriteSynchronizer.Create;
+  DebugLog:=TMemoryStream.Create;
+  DebugWriteln('Debug log started '+DateTimeToStr(Now));
+  DebugWriteln('GNU gettext module version: '+VCSVersion);
+  DebugWriteln('');
+  {$endif}
+  {$IFDEF FPC}
+  curGetPluralForm:=@GetPluralForm2EN;
+  {$ELSE}
+  curGetPluralForm:=GetPluralForm2EN;
+  {$ENDIF}
+  Enabled:=True;
+  SearchAllDomains:=False;
+  curmsgdomain:=DefaultTextDomain;
+  savefileCS := TMultiReadExclusiveWriteSynchronizer.Create;
+  domainlist := TStringList.Create;
+  TP_IgnoreList:=TStringList.Create;
+  TP_IgnoreList.Sorted:=True;
+  TP_GlobalClassHandling:=TList.Create;
+  TP_ClassHandling:=TList.Create;
+  fWhenNewLanguageListeners := TInterfaceList.Create;
+
+  // Set some settings
+  DefaultDomainDirectory := IncludeTrailingPathDelimiter(extractfilepath(ExecutableFilename))+'locale';
+
+  UseLanguage('');
+
+  bindtextdomain(DefaultTextDomain, DefaultDomainDirectory);
+  txtdomain(DefaultTextDomain);
+
+  // Add default properties to ignore
+  TP_GlobalIgnoreClassProperty(TComponent,'Name');
+  TP_GlobalIgnoreClassProperty(TCollection,'PropName');
+end;
+
+destructor TGnuGettextInstance.Destroy;
+begin
+  if savememory <> nil then begin
+    savefileCS.BeginWrite;
+    try
+      CloseFile(savefile);
+    finally
+      savefileCS.EndWrite;
+    end;
+    FreeAndNil(savememory);
+  end;
+  FreeAndNil (savefileCS);
+  FreeAndNil (TP_IgnoreList);
+  while TP_GlobalClassHandling.Count<>0 do begin
+    TObject(TP_GlobalClassHandling.Items[0]).Free;
+    TP_GlobalClassHandling.Delete(0);
+  end;
+  FreeAndNil (TP_GlobalClassHandling);
+  FreeTP_ClassHandlingItems;
+  FreeAndNil (TP_ClassHandling);
+  while domainlist.Count <> 0 do begin
+    domainlist.Objects[0].Free;
+    domainlist.Delete(0);
+  end;
+  FreeAndNil(domainlist);
+  fWhenNewLanguageListeners.Free;
+  {$ifdef DXGETTEXTDEBUG}
+  FreeAndNil (DebugLog);
+  FreeAndNil (DebugLogCS);
+  {$endif}
+  inherited;
+end;
+
+{$ifndef UNICODE}
+function TGnuGettextInstance.dgettext(const szDomain: DomainString; const szMsgId: ansistring): TranslatedUnicodeString;
+begin
+  Result:=dgettext(szDomain, ansi2wideDTCP(szMsgId));
+end;
+{$endif}
+
+function TGnuGettextInstance.dgettext(const szDomain: DomainString;
+  const szMsgId: MsgIdString): TranslatedUnicodeString;
+begin
+  if not Enabled then begin
+    {$ifdef DXGETTEXTDEBUG}
+    DebugWriteln ('Translation has been disabled. Text is not being translated: '+szMsgid);
+    {$endif}
+    Result:=szMsgId;
+  end else begin
+    Result:=UTF8Decode(EnsureLineBreakInTranslatedString(getdomain(szDomain,DefaultDomainDirectory,CurLang).gettext(StripCRRawMsgId(utf8encode(szMsgId)))));
+
+    {$ifdef DXGETTEXTDEBUG}
+    if (szMsgId<>'') and (Result='') then
+      DebugWriteln (Format('Error: Translation of %s was an empty string. This may never occur.',[szMsgId]));
+    {$endif}
+  end;
+end;
+
+function TGnuGettextInstance.dgettext_NoExtract(const szDomain: DomainString;
+  const szMsgId: MsgIdString): TranslatedUnicodeString;
+begin
+  // This one is very useful for translating text in variables.
+  // This can sometimes be necessary, and by using this function,
+  // the source code scanner will not trigger warnings.
+  Result:=dgettext(szDomain,szMsgId);
+end;
+
+function TGnuGettextInstance.dgettext_NoOp(const szDomain: DomainString; const szMsgId: MsgIdString): TranslatedUnicodeString;
+begin
+  Result := gettext_NoOp( szMsgId);
+end;
+
+function TGnuGettextInstance.GetCurrentLanguage: LanguageString;
+begin
+  Result:=curlang;
+end;
+
+function TGnuGettextInstance.getcurrenttextdomain: DomainString;
+begin
+  Result := curmsgdomain;
+end;
+
+{$ifndef UNICODE}
+function TGnuGettextInstance.gettext(
+  const szMsgId: ansistring): TranslatedUnicodeString;
+var
+  domain: DomainString;
+  domainIndex: Integer;
+begin
+  Result := dgettext(curmsgdomain, szMsgId);
+  if SearchAllDomains then begin
+    domainIndex := 0;
+    while (Result = szMsgId) and (domainIndex < domainlist.count) do begin
+      domain := domainlist[domainIndex];
+      Result := dgettext(domain, szMsgId);
+      Inc(domainIndex);
+  	end;
+  end;
+end;
+{$endif}
+
+function TGnuGettextInstance.gettext(
+  const szMsgId: MsgIdString): TranslatedUnicodeString;
+var
+  domain: DomainString;
+  domainIndex: Integer;
+begin
+  Result := dgettext(curmsgdomain, szMsgId);
+  if SearchAllDomains then begin
+    domainIndex := 0;
+    while (Result = szMsgId) and (domainIndex < domainlist.count) do begin
+      domain := domainlist[domainIndex];
+      Result := dgettext(domain, szMsgId);
+      Inc(domainIndex);
+  	end;
+  end;
+end;
+
+function TGnuGettextInstance.gettext_NoExtract(
+  const szMsgId: MsgIdString): TranslatedUnicodeString;
+begin
+  // This one is very useful for translating text in variables.
+  // This can sometimes be necessary, and by using this function,
+  // the source code scanner will not trigger warnings.
+  Result:=gettext (szMsgId);
+end;
+
+function TGnuGettextInstance.gettext_NoOp(const szMsgId: MsgIdString): TranslatedUnicodeString;
+begin
+  //*** With this function Strings can be added to the po-file without beeing
+  //    ResourceStrings (dxgettext will add the string and this function will
+  //    return it without a change)
+  //    see gettext manual
+  //      4.7 - Special Cases of Translatable Strings
+  //      http://www.gnu.org/software/hello/manual/gettext/Special-cases.html#Special-cases
+  Result := TranslatedUnicodeString(szMsgId);
+end;
+
+procedure TGnuGettextInstance.txtdomain(const szDomain: DomainString);
+begin
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('Changed text domain to "'+szDomain+'"');
+  {$endif}
+  curmsgdomain := szDomain;
+  WhenNewDomain (szDomain);
+end;
+
+function TGnuGettextInstance.TP_CreateRetranslator : TExecutable;
+var
+  ttpr:TTP_Retranslator;
+begin
+  ttpr:=TTP_Retranslator.Create;
+  ttpr.Instance:=self;
+  TP_Retranslator:=ttpr;
+  Result:=ttpr;
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('A retranslator was created.');
+  {$endif}
+end;
+
+procedure TGnuGettextInstance.TP_GlobalHandleClass(HClass: TClass;
+  Handler: TTranslator);
+var
+  cm:TClassMode;
+  i:integer;
+begin
+  for i:=0 to TP_GlobalClassHandling.Count-1 do begin
+    cm:=TObject(TP_GlobalClassHandling.Items[i]) as TClassMode;
+    if cm.HClass=HClass then
+      raise EGGProgrammingError.Create ('You cannot set a handler for a class that has already been assigned otherwise.');
+    if HClass.InheritsFrom(cm.HClass) then begin
+      // This is the place to insert this class
+      cm:=TClassMode.Create;
+      cm.HClass:=HClass;
+      cm.SpecialHandler:=Handler;
+      TP_GlobalClassHandling.Insert(i,cm);
+      {$ifdef DXGETTEXTDEBUG}
+      DebugWriteln ('A handler was set for class '+HClass.ClassName+'.');
+      {$endif}
+      exit;
+    end;
+  end;
+  cm:=TClassMode.Create;
+  cm.HClass:=HClass;
+  cm.SpecialHandler:=Handler;
+  TP_GlobalClassHandling.Add(cm);
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('A handler was set for class '+HClass.ClassName+'.');
+  {$endif}
+end;
+
+function TGnuGettextInstance.TP_TryGlobalIgnoreClass (IgnClass:TClass): boolean;
+var
+  cm:TClassMode;
+  i:integer;
+begin
+  Result := false;
+  for i:=0 to TP_GlobalClassHandling.Count-1 do begin
+    cm:=TObject(TP_GlobalClassHandling.Items[i]) as TClassMode;
+    if cm.HClass=IgnClass then
+      exit; // class already in ignore list
+    if IgnClass.InheritsFrom(cm.HClass) then begin
+      // This is the place to insert this class
+      cm:=TClassMode.Create;
+      cm.HClass:=IgnClass;
+      TP_GlobalClassHandling.Insert(i,cm);
+      Result := true;
+      {$ifdef DXGETTEXTDEBUG}
+      DebugWriteln ('Globally, class '+IgnClass.ClassName+' is being ignored.');
+      {$endif}
+      exit;
+    end;
+  end;
+  cm:=TClassMode.Create;
+  cm.HClass:=IgnClass;
+  TP_GlobalClassHandling.Add(cm);
+  Result := true;
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('Globally, class '+IgnClass.ClassName+' is being ignored.');
+  {$endif}
+end;
+
+procedure TGnuGettextInstance.TP_GlobalIgnoreClass(IgnClass: TClass);
+begin
+  if not TP_TryGlobalIgnoreClass(IgnClass) then
+    raise EGGProgrammingError.Create ('You cannot add a class to the ignore list that is already on that list: '+IgnClass.ClassName+'. You should keep all TP_Global functions in one place in your source code.');
+end;
+
+procedure TGnuGettextInstance.TP_GlobalIgnoreClassProperty(
+  IgnClass: TClass; propertyname: ComponentNameString);
+var
+  cm:TClassMode;
+  i,idx:integer;
+begin
+  propertyname:=uppercase(propertyname);
+  for i:=0 to TP_GlobalClassHandling.Count-1 do begin
+    cm:=TObject(TP_GlobalClassHandling.Items[i]) as TClassMode;
+    if cm.HClass=IgnClass then begin
+      if Assigned(cm.SpecialHandler) then
+        raise EGGProgrammingError.Create ('You cannot ignore a class property for a class that has a handler set.');
+      if not cm.PropertiesToIgnore.Find(propertyname,idx) then
+        cm.PropertiesToIgnore.Add(propertyname);
+      {$ifdef DXGETTEXTDEBUG}
+      DebugWriteln ('Globally, the '+propertyname+' property of class '+IgnClass.ClassName+' is being ignored.');
+      {$endif}
+      exit;
+    end;
+    if IgnClass.InheritsFrom(cm.HClass) then begin
+      // This is the place to insert this class
+      cm:=TClassMode.Create;
+      cm.HClass:=IgnClass;
+      cm.PropertiesToIgnore.Add(propertyname);
+      TP_GlobalClassHandling.Insert(i,cm);
+      {$ifdef DXGETTEXTDEBUG}
+      DebugWriteln ('Globally, the '+propertyname+' property of class '+IgnClass.ClassName+' is being ignored.');
+      {$endif}
+      exit;
+    end;
+  end;
+  cm:=TClassMode.Create;
+  cm.HClass:=IgnClass;
+  cm.PropertiesToIgnore.Add(propertyname);
+  TP_GlobalClassHandling.Add(cm);
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('Globally, the '+propertyname+' property of class '+IgnClass.ClassName+' is being ignored.');
+  {$endif}
+end;
+
+procedure TGnuGettextInstance.TP_Ignore(AnObject: TObject;
+  const name: ComponentNameString);
+begin
+  TP_IgnoreList.Add(uppercase(name));
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('On object with class name '+AnObject.ClassName+', ignore is set on '+name);
+  {$endif}
+end;
+
+procedure TGnuGettextInstance.TranslateComponent(AnObject: TComponent;
+  const TextDomain: DomainString);
+var
+  comp:TGnuGettextComponentMarker;
+begin
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('======================================================================');
+  DebugWriteln ('TranslateComponent() was called for a component with name '+AnObject.Name+'.');
+  {$endif}
+  comp:=AnObject.FindComponent('GNUgettextMarker') as TGnuGettextComponentMarker;
+  if comp=nil then begin
+    comp:=TGnuGettextComponentMarker.Create (nil);
+    comp.Name:='GNUgettextMarker';
+    comp.Retranslator:=TP_CreateRetranslator;
+    TranslateProperties (AnObject, TextDomain);
+    AnObject.InsertComponent(comp);
+    {$ifdef DXGETTEXTDEBUG}
+    DebugWriteln ('This is the first time, that this component has been translated. A retranslator component has been created for this component.');
+    {$endif}
+  end else begin
+    {$ifdef DXGETTEXTDEBUG}
+    DebugWriteln ('This is not the first time, that this component has been translated.');
+    {$endif}
+    if comp.LastLanguage<>curlang then begin
+      {$ifdef DXGETTEXTDEBUG}
+      DebugWriteln ('ERROR: TranslateComponent() was called twice with different languages. This indicates an attempt to switch language at runtime, but by using TranslateComponent every time. This API has changed - please use RetranslateComponent() instead.');
+      {$endif}
+      {$ifdef mswindows}
+      MessageBox (0,'This application tried to switch the language, but in an incorrect way. The programmer needs to replace a call to TranslateComponent with a call to RetranslateComponent(). The programmer should see the changelog of gnugettext.pas for more information.','Error',MB_OK);
+      {$else}
+      writeln (stderr,'This application tried to switch the language, but in an incorrect way. The programmer needs to replace a call to TranslateComponent with a call to RetranslateComponent(). The programmer should see the changelog of gnugettext.pas for more information.');
+      {$endif}
+    end else begin
+      {$ifdef DXGETTEXTDEBUG}
+      DebugWriteln ('ERROR: TranslateComponent has been called twice, but with the same language chosen. This is a mistake, but in order to prevent that the application breaks, no exception is raised.');
+      {$endif}
+    end;
+  end;
+  comp.LastLanguage:=curlang;
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('======================================================================');
+  {$endif}
+end;
+
+procedure TGnuGettextInstance.TranslateProperty (AnObject:TObject; PropInfo:PPropInfo; TodoList:TStrings; const TextDomain:DomainString);
+var
+  ppi:PPropInfo;
+  ws: TranslatedUnicodeString;
+  old: TranslatedUnicodeString;
+  compmarker:TComponent;
+  obj:TObject;
+  Propname:ComponentNameString;
+begin
+  PropName:=string(PropInfo^.Name);
+  try
+    // Translate certain types of properties
+    case PropInfo^.PropType^.Kind of
+      {$IFDEF UNICODE}
+      // All dfm files returning tkUString
+      tkString, tkLString, tkWString, tkUString:
+      {$ELSE}
+      tkString,  {$ifdef FPC}tkAString,{$endif} tkLString, tkWString:
+      {$ENDIF}
+        begin
+          {$ifdef DXGETTEXTDEBUG}
+          DebugWriteln ('Translating '+AnObject.ClassName+'.'+PropName);
+          {$endif}
+          case PropInfo^.PropType^.Kind of
+            tkString, {$ifdef FPC}tkAString,{$endif} tkLString :
+              old := GetStrProp(AnObject, PropName);
+            tkWString :
+              old :=
+                {$IFDEF dx_GetStrProp_reads_unicode}GetStrProp{$ELSE}GetWideStrProp{$ENDIF}
+                  (AnObject, PropName);
+            {$IFDEF UNICODE}
+            tkUString :
+              old :=
+                {$IFDEF dx_GetStrProp_reads_unicode}GetStrProp{$ELSE}GetUnicodeStrProp{$ENDIF}
+                  (AnObject, PropName);
+            {$ENDIF}
+          else
+            raise Exception.Create ('Internal error: Illegal property type. This problem needs to be solved by a programmer, try to find a workaround.');
+          end;
+          {$ifdef DXGETTEXTDEBUG}
+          if old='' then
+            DebugWriteln ('(Empty, not translated)')
+          else
+            DebugWriteln ('Old value: "'+old+'"');
+          {$endif}
+          if (old <> '') and (IsWriteProp(PropInfo)) then begin
+            if TP_Retranslator<>nil then
+              (TP_Retranslator as TTP_Retranslator).Remember(AnObject, PropName, old);
+            if textdomain = '' then
+              ws := ComponentGettext(old, Self)
+            else
+              ws := dgettext(textdomain,old);
+            if ws <> old then begin
+              ppi:=GetPropInfo(AnObject, Propname);
+              if ppi<>nil then begin
+                SetWideStrProp(AnObject, ppi, ws);
+              end else begin
+                {$ifdef DXGETTEXTDEBUG}
+                DebugWriteln ('ERROR: Property disappeared: '+Propname+' for object of type '+AnObject.ClassName);
+                {$endif}
+              end;
+            end;
+          end;
+        end { case item };
+      tkClass:
+        begin
+          obj:=GetObjectProp(AnObject, PropName);
+          if obj<>nil then begin
+            if obj is TComponent then begin
+              compmarker := TComponent(obj).FindComponent('GNUgettextMarker');
+              if Assigned(compmarker) then
+                exit;
+            end;
+            TodoList.AddObject ('',obj);
+          end;
+        end { case item };
+      end { case };
+  except
+    on E:Exception do
+      raise EGGComponentError.Create ('Property cannot be translated.'+sLineBreak+
+        'Add TP_GlobalIgnoreClassProperty('+AnObject.ClassName+','''+PropName+''') to your source code or use'+sLineBreak+
+        'TP_Ignore (self,''.'+PropName+''') to prevent this message.'+sLineBreak+
+        'Reason: '+e.Message);
+  end;
+end;
+
+function ObjectHasAssignedAction(AnObject: TObject; PropList: PPropList; Count: Integer; var ActionProperty: TObject): Boolean;
+var
+  I: Integer;
+  PropInfo: PPropInfo;
+  Obj: TObject;
+begin
+  Result := False;
+  I := 0;
+  while not Result and (I < Count) do
+  begin
+    PropInfo := PropList^[I];
+    if (PropInfo^.PropType^.Kind = tkClass) then
+    begin
+      Obj := GetObjectProp(AnObject, string(PropInfo^.Name));
+      Result := Obj is TBasicAction;
+      if Result then
+        ActionProperty := Obj;
+    end;
+
+    Inc(I);
+  end;
+end;
+
+function TGnuGettextInstance.ClassIsIgnored(AClass:TClass): Boolean;
+var
+  cm:TClassMode;
+  i:integer;
+begin
+  for i:=0 to TP_GlobalClassHandling.Count-1 do begin
+    cm:=TObject(TP_GlobalClassHandling.Items[i]) as TClassMode;
+    if AClass.InheritsFrom(cm.HClass) and (cm.PropertiesToIgnore.Count = 0) then
+    begin
+      Result := True;
+      exit;
+    end;
+  end;
+  for i:=0 to TP_ClassHandling.Count-1 do begin
+    cm:=TObject(TP_ClassHandling.Items[i]) as TClassMode;
+    if AClass.InheritsFrom(cm.HClass) then
+    begin
+      Result := True;
+      exit;
+    end;
+  end;
+  Result := False;
+end;
+
+procedure TGnuGettextInstance.TranslateProperties(AnObject: TObject; textdomain:DomainString='');
+var
+  TodoList:TStringList; // List of Name/TObject's that is to be processed
+  DoneList:TStringList; // List of hex codes representing pointers to objects that have been done
+  i, j, Count: integer;
+  PropList: PPropList;
+  UPropName: ComponentNameString;
+  PropInfo: PPropInfo;
+  compmarker,
+  comp:TComponent;
+  cm,
+  currentcm:TClassMode; // currentcm is nil or contains special information about how to handle the current object
+  ObjectPropertyIgnoreList:TStringList;
+  objid:string;
+  Name:ComponentNameString;
+  ActionProperty:TObject;
+begin
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('----------------------------------------------------------------------');
+  DebugWriteln ('TranslateProperties() was called for an object of class '+AnObject.ClassName+' with domain "'+textdomain+'".');
+  {$endif}
+
+  if TP_Retranslator<>nil then
+    if textdomain = '' then
+      (TP_Retranslator as TTP_Retranslator).TextDomain:=curmsgdomain
+    else
+      (TP_Retranslator as TTP_Retranslator).TextDomain:=textdomain;
+//  {$ifdef FPC}
+//  DoneList:=TCSStringList.Create;
+//  TodoList:=TCSStringList.Create;
+//  ObjectPropertyIgnoreList:=TCSStringList.Create;
+//  {$else}
+  DoneList:=TStringList.Create;
+  TodoList:=TStringList.Create;
+  ObjectPropertyIgnoreList:=TStringList.Create;
+//  {$endif}
+  try
+    TodoList.AddObject('', AnObject);
+    DoneList.Sorted:=True;
+    ObjectPropertyIgnoreList.Sorted:=True;
+    ObjectPropertyIgnoreList.Duplicates:=dupIgnore;
+    ObjectPropertyIgnoreList.CaseSensitive:=False;
+    DoneList.Duplicates:=dupError;
+    DoneList.CaseSensitive:=True;
+
+    while TodoList.Count<>0 do begin
+      AnObject:=TodoList.Objects[0];
+      Name:=TodoList.Strings[0];
+      TodoList.Delete(0);
+      if (AnObject<>nil) and (AnObject is TPersistent) then begin
+        // Make sure each object is only translated once
+        Assert (sizeof({$IFDEF CPUx64}NativeInt{$ELSE}Integer{$ENDIF CPUx64})=sizeof(TObject));
+        objid:=IntToHex({$IFDEF CPUx64}NativeInt{$ELSE}Integer{$ENDIF CPUx64}(AnObject),8);
+        if DoneList.Find(objid,i) then begin
+          continue;
+        end else begin
+          DoneList.Add(objid);
+        end;
+
+        ObjectPropertyIgnoreList.Clear;
+
+        // Find out if there is special handling of this object
+        currentcm:=nil;
+        // First check the local handling instructions
+        for j:=0 to TP_ClassHandling.Count-1 do begin
+          cm:=TObject(TP_ClassHandling.Items[j]) as TClassMode;
+          if AnObject.InheritsFrom(cm.HClass) then begin
+            if cm.PropertiesToIgnore.Count<>0 then begin
+              ObjectPropertyIgnoreList.AddStrings(cm.PropertiesToIgnore);
+            end else begin
+              // Ignore the entire class
+              currentcm:=cm;
+              break;
+            end;
+          end;
+        end;
+        // Then check the global handling instructions
+        if currentcm=nil then
+        for j:=0 to TP_GlobalClassHandling.Count-1 do begin
+          cm:=TObject(TP_GlobalClassHandling.Items[j]) as TClassMode;
+          if AnObject.InheritsFrom(cm.HClass) then begin
+            if cm.PropertiesToIgnore.Count<>0 then begin
+              ObjectPropertyIgnoreList.AddStrings(cm.PropertiesToIgnore);
+            end else begin
+              // Ignore the entire class
+              currentcm:=cm;
+              break;
+            end;
+          end;
+        end;
+        if currentcm<>nil then begin
+          ObjectPropertyIgnoreList.Clear;
+          // Ignore or use special handler
+          if Assigned(currentcm.SpecialHandler) then begin
+            currentcm.SpecialHandler (AnObject);
+            {$ifdef DXGETTEXTDEBUG}
+            DebugWriteln ('Special handler activated for '+AnObject.ClassName);
+            {$endif}
+          end else begin
+            {$ifdef DXGETTEXTDEBUG}
+            DebugWriteln ('Ignoring object '+AnObject.ClassName);
+            {$endif}
+          end;
+          continue;
+        end;
+
+        Count := GetPropList(AnObject, PropList);
+        try
+          if ObjectHasAssignedAction(AnObject, PropList, Count, ActionProperty) and not ClassIsIgnored(ActionProperty.ClassType) then
+            Continue;
+
+          for j := 0 to Count - 1 do begin
+            PropInfo := PropList^[j];
+            {$IFDEF UNICODE}
+            if not (PropInfo^.PropType^.Kind in [tkString, tkLString, tkWString, tkClass, tkUString]) then
+            {$ELSE}
+            if not (PropInfo^.PropType^.Kind in [tkString, {$ifdef FPC}tkAString,{$endif} tkLString, tkWString, tkClass]) then
+            {$ENDIF}
+              continue;
+            UPropName:=uppercase(string(PropInfo^.Name));
+            // Ignore properties that are meant to be ignored
+            if ((currentcm=nil) or (not currentcm.PropertiesToIgnore.Find(UPropName,i))) and
+               (not TP_IgnoreList.Find(Name+'.'+UPropName,i)) and
+               (not ObjectPropertyIgnoreList.Find(UPropName,i)) then begin
+              TranslateProperty (AnObject,PropInfo,TodoList,TextDomain);
+            end;  // if
+          end;  // for
+        finally
+          if Count<>0 then
+            FreeMem (PropList);
+        end;
+        {$IFDEF dx_has_WideStrings}
+        if AnObject is TWideStrings then begin
+          if ((AnObject as TWideStrings).Text<>'') and (TP_Retranslator<>nil) then
+            (TP_Retranslator as TTP_Retranslator).Remember(AnObject, 'Text', (AnObject as TWideStrings).Text);
+          TranslateWideStrings (AnObject as TWideStrings,TextDomain);
+        end;
+        {$ENDIF dx_has_WideStrings}
+        if AnObject is TStrings then begin
+          if ((AnObject as TStrings).Text<>'') and (TP_Retranslator<>nil) then
+            (TP_Retranslator as TTP_Retranslator).Remember(AnObject, 'Text', (AnObject as TStrings).Text);
+          TranslateStrings (AnObject as TStrings,TextDomain);
+        end;
+        // Check for TCollection
+        if AnObject is TCollection then begin
+          for i := 0 to (AnObject as TCollection).Count - 1 do begin
+            // Only add the object if it's not totally ignored already
+            if not Assigned(currentcm) or not AnObject.InheritsFrom(currentcm.HClass) then
+              TodoList.AddObject('',(AnObject as TCollection).Items[i]);
+          end;
+        end;
+        if AnObject is TComponent then begin
+          for i := 0 to TComponent(AnObject).ComponentCount - 1 do begin
+            comp:=TComponent(AnObject).Components[i];
+            if (not TP_IgnoreList.Find(uppercase(comp.Name),j)) then begin
+              // Only add the object if it's not totally ignored or translated already
+              if not Assigned(currentcm) or not AnObject.InheritsFrom(currentcm.HClass) then begin
+                compmarker := comp.FindComponent('GNUgettextMarker');
+                if not Assigned(compmarker) then
+                  TodoList.AddObject(uppercase(comp.Name),comp);
+              end;
+            end;
+          end;
+        end;
+      end { if AnObject<>nil };
+    end { while todolist.count<>0 };
+  finally
+    FreeAndNil (todolist);
+    FreeAndNil (ObjectPropertyIgnoreList);
+    FreeAndNil (DoneList);
+  end;
+  FreeTP_ClassHandlingItems;
+  TP_IgnoreList.Clear;
+  TP_Retranslator:=nil;
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('----------------------------------------------------------------------');
+  {$endif}
+end;
+
+procedure TGnuGettextInstance.UnregisterWhenNewLanguageListener(
+  Listener: IGnuGettextInstanceWhenNewLanguageListener);
+begin
+  fWhenNewLanguageListeners.Remove(Listener);
+end;
+
+procedure TGnuGettextInstance.UseLanguage(LanguageCode: LanguageString);
+var
+  i,p:integer;
+  dom:TDomain;
+  l2:string;
+begin
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln('UseLanguage('''+LanguageCode+'''); called');
+  {$endif}
+
+  if LanguageCode='' then begin
+    LanguageCode:=GGGetEnvironmentVariable('LANG');
+    {$ifdef DXGETTEXTDEBUG}
+    DebugWriteln ('LANG env variable is '''+LanguageCode+'''.');
+    {$endif}
+    {$ifdef MSWINDOWS}
+    if LanguageCode='' then begin
+      LanguageCode:=GetWindowsLanguage;
+      {$ifdef DXGETTEXTDEBUG}
+      DebugWriteln ('Found Windows language code to be '''+LanguageCode+'''.');
+      {$endif}
+    end;
+    {$endif}
+    p:=pos('.',LanguageCode);
+    if p<>0 then
+      LanguageCode:=LeftStr(LanguageCode,p-1);
+    {$ifdef DXGETTEXTDEBUG}
+    DebugWriteln ('Language code that will be set is '''+LanguageCode+'''.');
+    {$endif}
+  end;
+
+  curlang := LanguageCode;
+  for i:=0 to domainlist.Count-1 do begin
+    dom:=domainlist.Objects[i] as TDomain;
+    dom.SetLanguageCode (curlang);
+  end;
+
+  l2:=lowercase(LeftStr(curlang,2));
+  {$IFDEF FPC}
+  if (l2='en') or (l2='de') then curGetPluralForm:=@GetPluralForm2EN else
+  if (l2='hu') or (l2='ko') or (l2='zh') or (l2='ja') or (l2='tr') then curGetPluralForm:=@GetPluralForm1 else
+  if (l2='fr') or (l2='fa') or (lowercase(curlang)='pt_br') then curGetPluralForm:=@GetPluralForm2FR else
+  if (l2='lv') then curGetPluralForm:=@GetPluralForm3LV else
+  if (l2='ga') then curGetPluralForm:=@GetPluralForm3GA else
+  if (l2='lt') then curGetPluralForm:=@GetPluralForm3LT else
+  if (l2='ru') or (l2='uk') or (l2='hr') then curGetPluralForm:=@GetPluralForm3RU else
+  if (l2='cs') or (l2='sk') then curGetPluralForm:=@GetPluralForm3SK else
+  if (l2='pl') then curGetPluralForm:=@GetPluralForm3PL else
+  if (l2='sl') then curGetPluralForm:=@GetPluralForm4SL else begin
+    curGetPluralForm:=@GetPluralForm2EN;
+  {$ELSE}
+  if (l2='en') or (l2='de') then curGetPluralForm:=GetPluralForm2EN else
+  if (l2='hu') or (l2='ko') or (l2='zh') or (l2='ja') or (l2='tr') then curGetPluralForm:=GetPluralForm1 else
+  if (l2='fr') or (l2='fa') or (lowercase(curlang)='pt_br') then curGetPluralForm:=GetPluralForm2FR else
+  if (l2='lv') then curGetPluralForm:=GetPluralForm3LV else
+  if (l2='ga') then curGetPluralForm:=GetPluralForm3GA else
+  if (l2='lt') then curGetPluralForm:=GetPluralForm3LT else
+  if (l2='ru') or (l2='uk') or (l2='hr') then curGetPluralForm:=GetPluralForm3RU else
+  if (l2='cs') or (l2='sk') then curGetPluralForm:=GetPluralForm3SK else
+  if (l2='pl') then curGetPluralForm:=GetPluralForm3PL else
+  if (l2='sl') then curGetPluralForm:=GetPluralForm4SL else begin
+    curGetPluralForm:=GetPluralForm2EN;
+  {$ENDIF}
+    {$ifdef DXGETTEXTDEBUG}
+    DebugWriteln ('Plural form for the language was not found. English plurality system assumed.');
+    {$endif}
+  end;
+
+  WhenNewLanguage (curlang);
+
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln('');
+  {$endif}
+end;
+
+procedure TGnuGettextInstance.TranslateStrings(sl: TStrings;const TextDomain:DomainString);
+var
+  line: string;
+  i: integer;
+  tempSL: TStringList;
+  slAsTStringList:TStringList;
+  {$ifdef dx_StringList_has_OwnsObjects}
+  originalOwnsObjects: Boolean;
+  {$endif dx_StringList_has_OwnsObjects}
+begin
+  if sl.Count > 0 then begin
+    {$ifdef dx_StringList_has_OwnsObjects}
+    // From D2009 onward, the TStringList class has an OwnsObjects property, just like
+    // TObjectList has. This means that if we call Clear on the given
+    // list in the sl parameter, we could destroy the objects it contains.
+    // To avoid this we must disable OwnsObjects while we replace the strings, but
+    // only if sl is a TStringList instance and if using Delphi 2009 or later.
+    originalOwnsObjects := False; // avoid warning
+    {$endif dx_StringList_has_OwnsObjects}
+    if sl is TStringList then
+      slAsTStringList := TStringList(sl)
+    else
+      slAsTStringList := nil;
+
+    sl.BeginUpdate;
+    try
+      tempSL:=TStringList.Create;
+      try
+        // don't use Assign here as it will propagate the Sorted property (among others)
+        // in versions of Delphi from Delphi XE onward
+        tempSL.AddStrings(sl);
+
+        for i:=0 to tempSL.Count-1 do begin
+          line:=tempSL.Strings[i];
+          if line<>'' then
+            if TextDomain = '' then
+              tempSL.Strings[i]:=ComponentGettext(line, Self)
+            else
+              tempSL.Strings[i]:=dgettext(TextDomain,line);
+        end;
+
+        //DH Fix 2013-09-19: Only refill sl if changed
+        if sl.Text<>tempSL.Text then
+        begin
+          {$ifdef dx_StringList_has_OwnsObjects}
+          if Assigned(slAsTStringList) then begin
+            originalOwnsObjects := slAsTStringList.OwnsObjects;
+            slAsTStringList.OwnsObjects := False;
+          end;
+          {$endif dx_StringList_has_OwnsObjects}
+          try
+            if Assigned(slAsTStringList) and slAsTStringList.Sorted then
+            begin
+              // TStringList doesn't release the objects in PutObject, so we use this to get
+              // sl.Clear to not destroy the objects in classes that inherit from TStringList
+              // but do a ClearObject in Clear.
+              //
+              // todo: Check whether this should be
+              //   if sl is TStringList then
+              // instead.
+              if sl.ClassType <> TStringList then
+                for I := 0 to sl.Count - 1 do
+                  sl.Objects[I] := nil;
+
+              // same here, we don't use assign because we don't want to modify the properties of the orignal string list
+              sl.Clear;
+              sl.AddStrings(tempSL);
+            end
+            else
+            begin
+              for i := 0 to sl.Count - 1 do
+                sl[i] := tempSL[i];
+            end;
+          finally
+            {$ifdef dx_StringList_has_OwnsObjects}
+            if Assigned(slAsTStringList) then
+              slAsTStringList.OwnsObjects := originalOwnsObjects;
+            {$endif dx_StringList_has_OwnsObjects}
+          end;
+        end;
+      finally
+        FreeAndNil (tempSL);
+      end;
+    finally
+      sl.EndUpdate;
+    end;
+  end;
+end;
+
+{$IFDEF dx_has_WideStrings}
+procedure TGnuGettextInstance.TranslateWideStrings(sl: TWideStrings;
+  const TextDomain: DomainString);
+var
+  line: string;
+  i: integer;
+  tempSL:TWideStringList;
+  slAsTWideStringList:TWideStringList;
+  {$ifdef dx_StringList_has_OwnsObjects}
+  originalOwnsObjects: Boolean;
+  {$endif dx_StringList_has_OwnsObjects}
+begin
+  if sl.Count > 0 then begin
+    {$ifdef dx_StringList_has_OwnsObjects}
+    // From D2009 onward, the TWideStringList class has an OwnsObjects property, just like
+    // TObjectList has. This means that if we call Clear on the given
+    // list in the sl parameter, we could destroy the objects it contains.
+    // To avoid this we must disable OwnsObjects while we replace the strings, but
+    // only if sl is a TWideStringList instance and if using Delphi 2009 or later.
+    originalOwnsObjects := False; // avoid warning
+    {$endif dx_StringList_has_OwnsObjects}
+    if sl is TWideStringList then
+      slAsTWideStringList := TWideStringList(sl)
+    else
+      slAsTWideStringList := nil;
+
+    sl.BeginUpdate;
+    try
+      tempSL:=TWideStringList.Create;
+      try
+        // don't use Assign here as it will propagate the Sorted property (among others)
+        // in versions of Delphi from Delphi XE ownard
+        tempSL.AddStrings(sl);
+
+        for i:=0 to tempSL.Count-1 do begin
+          line:=tempSL.Strings[i];
+          if line<>'' then
+            if TextDomain = '' then
+              tempSL.Strings[i]:=ComponentGettext(line, Self)
+            else
+              tempSL.Strings[i]:=dgettext(TextDomain,line);
+        end;
+
+        //DH Fix 2013-09-19: Only refill sl if changed
+        if sl.Text<>tempSL.Text then
+        begin
+          {$ifdef dx_StringList_has_OwnsObjects}
+          if Assigned(slAsTWideStringList) then begin
+            originalOwnsObjects := slAsTWideStringList.OwnsObjects;
+            slAsTWideStringList.OwnsObjects := False;
+          end;
+          {$endif dx_StringList_has_OwnsObjects}
+          try
+            if Assigned(slAsTWideStringList) and slAsTWideStringList.Sorted then
+            begin
+              // TWideStringList doesn't release the objects in PutObject, so we use this to get
+              // sl.Clear to not destroy the objects in classes that inherit from TWideStringList
+              // but do a ClearObject in Clear.
+              //
+              // todo: Check whether this should be
+              //   if sl is TWideStringList then
+              // instead.
+              if sl.ClassType <> TWideStringList then
+                for I := 0 to sl.Count - 1 do
+                  sl.Objects[I] := nil;
+
+              // same here, we don't use assign because we don't want to modify the properties of the orignal string list
+              sl.Clear;
+              sl.AddStrings(tempSL);
+            end
+            else
+            begin
+              for i := 0 to sl.Count - 1 do
+                sl[i] := tempSL[i];
+            end;
+          finally
+            {$ifdef dx_StringList_has_OwnsObjects}
+            if Assigned(slAsTWideStringList) then
+              slAsTWideStringList.OwnsObjects := originalOwnsObjects;
+            {$endif dx_StringList_has_OwnsObjects}
+          end;
+        end;
+      finally
+        FreeAndNil (tempSL);
+      end;
+    finally
+      sl.EndUpdate;
+    end;
+  end;
+end;
+{$ENDIF dx_has_WideStrings}
+
+function TGnuGettextInstance.GetTranslatorNameAndEmail: TranslatedUnicodeString;
+begin
+  Result:=GetTranslationProperty('LAST-TRANSLATOR');
+end;
+
+function TGnuGettextInstance.GetTranslationProperty(
+  const Propertyname: ComponentNameString): TranslatedUnicodeString;
+begin
+  Result:=getdomain(curmsgdomain,DefaultDomainDirectory,CurLang).GetTranslationProperty (Propertyname);
+end;
+
+function TGnuGettextInstance.dngettext(const szDomain: DomainString; const singular, plural: MsgIdString;
+  Number: Integer): TranslatedUnicodeString;
+var
+  org:MsgIdString;
+  trans:TranslatedUnicodeString;
+  idx:integer;
+  p:integer;
+begin
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('dngettext translation (domain '+szDomain+', number is '+IntTostr(Number)+') of '+singular+'/'+plural);
+  {$endif}
+  org:=singular+#0+plural;
+  trans:=dgettext(szDomain,org);
+  if org=trans then begin
+    {$ifdef DXGETTEXTDEBUG}
+    DebugWriteln ('Translation was equal to english version. English plural forms assumed.');
+    {$endif}
+    idx:=GetPluralForm2EN(Number)
+  end else
+    idx:=curGetPluralForm(Number);
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('Index '+IntToStr(idx)+' will be used');
+  {$endif}
+  while true do begin
+    p:=pos(#0,trans);
+    if p=0 then begin
+      {$ifdef DXGETTEXTDEBUG}
+      DebugWriteln ('Last translation used: '+utf8encode(trans));
+      {$endif}
+      Result:=trans;
+      exit;
+    end;
+    if idx=0 then begin
+      {$ifdef DXGETTEXTDEBUG}
+      DebugWriteln ('Translation found: '+utf8encode(trans));
+      {$endif}
+      Result:=LeftStr(trans,p-1);
+      exit;
+    end;
+    delete (trans,1,p);
+    dec (idx);
+  end;
+end;
+
+function TGnuGettextInstance.dngettext_NoExtract(const szDomain: DomainString;
+  const singular, plural: MsgIdString;
+  Number: Integer): TranslatedUnicodeString;
+begin
+  // This one is very useful for translating text in variables.
+  // This can sometimes be necessary, and by using this function,
+  // the source code scanner will not trigger warnings.
+  Result:=dngettext(szDomain,singular,plural,Number);
+end;
+
+{$ifndef UNICODE}
+function TGnuGettextInstance.ngettext(const singular, plural: ansistring;
+  Number: Integer): TranslatedUnicodeString;
+var
+  domain: DomainString;
+  domainIndex: Integer;
+begin
+  Result := dngettext(curmsgdomain, singular, plural, Number);
+  if SearchAllDomains then begin
+    domainIndex := 0;
+    while (Result <> singular) and (Result <> plural) and (domainIndex < domainlist.count) do begin
+      domain := domainlist[domainIndex];
+      Result := dngettext(domain, singular, plural, Number);
+      Inc(domainIndex);
+  	end;
+  end;
+end;
+{$endif}
+
+function TGnuGettextInstance.ngettext(const singular, plural: MsgIdString;
+  Number: Integer): TranslatedUnicodeString;
+var
+  domain: DomainString;
+  domainIndex: Integer;
+begin
+  Result := dngettext(curmsgdomain, singular, plural, Number);
+  if SearchAllDomains then begin
+    domainIndex := 0;
+    while (Result <> singular) and (Result <> plural) and (domainIndex < domainlist.count) do begin
+      domain := domainlist[domainIndex];
+      Result := dngettext(domain, singular, plural, Number);
+      Inc(domainIndex);
+  	end;
+  end;
+end;
+
+function TGnuGettextInstance.ngettext_NoExtract(const singular,
+  plural: MsgIdString; Number: Integer): TranslatedUnicodeString;
+begin
+  // This one is very useful for translating text in variables.
+  // This can sometimes be necessary, and by using this function,
+  // the source code scanner will not trigger warnings.
+  Result:=ngettext(singular,plural,Number);
+end;
+
+procedure TGnuGettextInstance.WhenNewDomain(const TextDomain: DomainString);
+begin
+  // This is meant to be empty.
+end;
+
+procedure TGnuGettextInstance.WhenNewLanguage(const LanguageID: LanguageString);
+var
+  I: Integer;
+begin
+  for I := 0 to fWhenNewLanguageListeners.Count - 1 do
+    IGnuGettextInstanceWhenNewLanguageListener(fWhenNewLanguageListeners[I]).WhenNewLanguage(LanguageID);
+end;
+
+procedure TGnuGettextInstance.WhenNewDomainDirectory(const TextDomain:DomainString; const Directory: FilenameString);
+begin
+  // This is meant to be empty.
+end;
+
+procedure TGnuGettextInstance.GetListOfLanguages(const domain: DomainString;
+  list: TStrings);
+begin
+  getdomain(Domain,DefaultDomainDirectory,CurLang).GetListOfLanguages(list);
+end;
+
+procedure TGnuGettextInstance.bindtextdomainToFile(const szDomain:DomainString; const filename: FilenameString);
+begin
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('Text domain "'+szDomain+'" is now bound to file named "'+filename+'"');
+  {$endif}
+  getdomain(szDomain,DefaultDomainDirectory,CurLang).SetFilename (filename);
+end;
+
+procedure TGnuGettextInstance.DebugLogPause(PauseEnabled: boolean);
+begin
+  {$ifdef DXGETTEXTDEBUG}
+  DebugLogOutputPaused:=PauseEnabled;
+  {$endif}
+end;
+
+function TGnuGettextInstance.DebugLogToString(Empty:Boolean=true):String;
+begin
+  {$ifdef DXGETTEXTDEBUG}
+//  SetString(Result, PChar(TMemoryStream(DebugLog).Memory), DebugLog.Size div SizeOf(Char));
+  SetString(Result, PAnsiChar(TMemoryStream(DebugLog).Memory), DebugLog.Size);
+  If Empty then Debuglog.size :=0;
+  {$endif}
+end;
+
+procedure TGnuGettextInstance.DebugLogToFile(const filename: FilenameString; append:boolean=false);
+{$ifdef DXGETTEXTDEBUG}
+var
+  fs:TFileStream;
+  marker:ansistring;
+{$endif}
+begin
+  {$ifdef DXGETTEXTDEBUG}
+  // Create the file if needed
+  if (not fileexists(filename)) or (not append) then
+    fileclose (filecreate (filename));
+
+  // Open file
+  fs:=TFileStream.Create (filename,fmOpenWrite or fmShareDenyWrite);
+  if append then
+    fs.Seek(0,soFromEnd);
+
+  // Write header if appending
+  if fs.Position<>0 then begin
+    marker:=sLineBreak+'==========================================================================='+sLineBreak;
+    fs.WriteBuffer(marker[1],length(marker));
+  end;
+
+  // Copy the memorystream contents to the file
+  if DebugLog <> nil then
+  begin
+    DebugLog.Seek(0,soFromBeginning);
+    fs.CopyFrom(DebugLog,0);
+  end;
+
+  // Make DebugLog point to the filestream
+  FreeAndNil (DebugLog);
+  DebugLog:=fs;
+  {$endif}
+end;
+
+{$ifdef DXGETTEXTDEBUG}
+procedure TGnuGettextInstance.DebugWriteln(line: ansistring);
+Var
+  Discard: Boolean;
+begin
+  Assert (DebugLogCS<>nil);
+  Assert (DebugLog<>nil);
+
+  DebugLogCS.BeginWrite;
+  try
+    if DebugLogOutputPaused then
+      exit;
+
+    if Assigned (fOnDebugLine) then begin
+      Discard := True;
+      fOnDebugLine (Self, Line, Discard);
+      If Discard then Exit;
+    end;
+
+    line:=line+sLineBreak;
+
+    // Ensure that memory usage doesn't get too big.
+    if (DebugLog is TMemoryStream) and (DebugLog.Position>1000000) then begin
+      line:=sLineBreak+sLineBreak+sLineBreak+sLineBreak+sLineBreak+
+            'Debug log halted because memory usage grew too much.'+sLineBreak+
+            'Specify a filename to store the debug log in or disable debug loggin in gnugettext.pas.'+
+            sLineBreak+sLineBreak+sLineBreak+sLineBreak+sLineBreak;
+      DebugLogOutputPaused:=True;
+    end;
+    DebugLog.WriteBuffer(line[1],length(line));
+  finally
+    DebugLogCS.EndWrite;
+  end;
+end;
+{$endif}
+
+function TGnuGettextInstance.Getdomain(const domain:DomainString; const sDefaultDomainDirectory:FilenameString; const sCurLang: LanguageString): TDomain;
+// Retrieves the TDomain object for the specified domain.
+// Creates one, if none there, yet.
+var
+  idx: integer;
+begin
+  idx := domainlist.IndexOf(Domain);
+  if idx = -1 then begin
+    Result := TDomain.Create;
+    {$ifdef DXGETTEXTDEBUG}
+//    Result.DebugLogger:={$ifdef FPC}@{$endif}DebugWriteln;
+    Result.DebugLogger:=DebugWriteln;
+    {$endif}
+    Result.Domain := Domain;
+    Result.Directory := sDefaultDomainDirectory;
+    Result.SetLanguageCode(scurlang);
+    domainlist.AddObject(Domain, Result);
+  end else begin
+    Result := domainlist.Objects[idx] as TDomain;
+  end;
+end;
+
+{$IFNDEF FPC}
+function TGnuGettextInstance.LoadResString(
+  ResStringRec: PResStringRec): UnicodeString;
+{$ifdef MSWINDOWS}
+var
+  Len: Integer;
+  {$IFDEF UNICODE}
+  Buffer: array [0..1023] of widechar;
+  {$else}
+  Buffer: array [0..1023] of ansichar;
+  {$endif}
+{$endif}
+{$ifdef LINUX }
+const
+  ResStringTableLen = 16;
+type
+  ResStringTable = array [0..ResStringTableLen-1] of LongWord;
+var
+  Handle: TResourceHandle;
+  Tab: ^ResStringTable;
+  ResMod: HMODULE;
+{$endif }
+begin
+  if ResStringRec=nil then
+    exit;
+  if ResStringRec.Identifier>=64*1024 then begin
+    {$ifdef DXGETTEXTDEBUG}
+    DebugWriteln ('LoadResString was given an invalid ResStringRec.Identifier');
+    {$endif}
+    Result:='ERROR';
+    exit;
+  end else begin
+    {$ifdef LINUX}
+    // This works with Unicode if the Linux has utf-8 character set
+    // Result:=System.LoadResString(ResStringRec);
+    ResMod:=FindResourceHInstance(ResStringRec^.Module^);
+    Handle:=FindResource(ResMod,
+      PAnsiChar(ResStringRec^.Identifier div ResStringTableLen), PAnsiChar(6));   // RT_STRING
+    Tab:=Pointer(LoadResource(ResMod, Handle));
+    if Tab=nil then
+      Result:=''
+    else
+      Result:=PWideChar(PAnsiChar(Tab)+Tab[ResStringRec^.Identifier mod ResStringTableLen]);
+    {$endif}
+    {$ifdef MSWINDOWS}
+    if not Win32PlatformIsUnicode then begin
+      SetString(Result, Buffer,
+        LoadString(FindResourceHInstance(ResStringRec.Module^),
+          ResStringRec.Identifier, Buffer, SizeOf(Buffer)))
+    end else begin
+      Result := '';
+      Len := 0;
+      While Length(Result)<=Len+1 do begin     
+        if Length(Result) = 0 then
+          SetLength(Result, 1024)
+        else
+          SetLength(Result, Length(Result) * 2);
+        Len := LoadStringW(FindResourceHInstance(ResStringRec.Module^),
+          ResStringRec.Identifier, PWideChar(Result), Length(Result));
+      end;
+      SetLength(Result, Len);
+    end;
+    {$endif}
+  end;
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('Loaded resourcestring: '+utf8encode(Result));
+  {$endif}
+  Result:=ResourceStringGettext(Result);
+end;
+{$ENDIF}
+
+procedure TGnuGettextInstance.RegisterWhenNewLanguageListener(
+  Listener: IGnuGettextInstanceWhenNewLanguageListener);
+begin
+  fWhenNewLanguageListeners.Add(Listener);
+end;
+
+procedure TGnuGettextInstance.RetranslateComponent(AnObject: TComponent;
+  const TextDomain: DomainString);
+var
+  comp:TGnuGettextComponentMarker;
+begin
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('======================================================================');
+  DebugWriteln ('RetranslateComponent() was called for a component with name '+AnObject.Name+'.');
+  {$endif}
+  comp:=AnObject.FindComponent('GNUgettextMarker') as TGnuGettextComponentMarker;
+  if comp=nil then
+  begin
+    {$ifdef DXGETTEXTDEBUG}
+    DebugWriteln ('Retranslate was called on an object that has not been translated before. An Exception is being raised.');
+    {$endif}
+    raise EGGProgrammingError.Create ('Retranslate was called on an object that has not been translated before. Please use TranslateComponent() before RetranslateComponent().');
+  end
+  else
+  begin
+    //*** if param ReReadMoFileOnSameLanguage is set, use the ReTranslate
+    //    function nevertheless if the current language is the same like the
+    //    new (-> reread the current .mo-file from the file system).
+    if ReReadMoFileOnSameLanguage or
+       (comp.LastLanguage <> curlang) then
+    begin
+      {$ifdef DXGETTEXTDEBUG}
+      DebugWriteln ('The retranslator is being executed.');
+      {$endif}
+      comp.Retranslator.Execute;
+    end
+    else
+    begin
+      {$ifdef DXGETTEXTDEBUG}
+      DebugWriteln ('The language has not changed. The retranslator is not executed.');
+      {$endif}
+    end;
+  end;
+  comp.LastLanguage:=curlang;
+
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('======================================================================');
+  {$endif}
+end;
+
+procedure TGnuGettextInstance.TP_IgnoreClass(IgnClass: TClass);
+var
+  cm:TClassMode;
+  i:integer;
+begin
+  for i:=0 to TP_ClassHandling.Count-1 do begin
+    cm:=TObject(TP_ClassHandling.Items[i]) as TClassMode;
+    if cm.HClass=IgnClass then
+      raise EGGProgrammingError.Create ('You cannot add a class to the ignore list that is already on that list: '+IgnClass.ClassName+'.');
+    if IgnClass.InheritsFrom(cm.HClass) then begin
+      // This is the place to insert this class
+      cm:=TClassMode.Create;
+      cm.HClass:=IgnClass;
+      TP_ClassHandling.Insert(i,cm);
+      {$ifdef DXGETTEXTDEBUG}
+      DebugWriteln ('Locally, class '+IgnClass.ClassName+' is being ignored.');
+      {$endif}
+      exit;
+    end;
+  end;
+  cm:=TClassMode.Create;
+  cm.HClass:=IgnClass;
+  TP_ClassHandling.Add(cm);
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('Locally, class '+IgnClass.ClassName+' is being ignored.');
+  {$endif}
+end;
+
+procedure TGnuGettextInstance.TP_IgnoreClassProperty(IgnClass: TClass;
+  propertyname: ComponentNameString);
+var
+  cm:TClassMode;
+  i:integer;
+begin
+  propertyname:=uppercase(propertyname);
+  for i:=0 to TP_ClassHandling.Count-1 do begin
+    cm:=TObject(TP_ClassHandling.Items[i]) as TClassMode;
+    if cm.HClass=IgnClass then begin
+      if Assigned(cm.SpecialHandler) then
+        raise EGGProgrammingError.Create ('You cannot ignore a class property for a class that has a handler set.');
+      cm.PropertiesToIgnore.Add(propertyname);
+      {$ifdef DXGETTEXTDEBUG}
+      DebugWriteln ('Globally, the '+propertyname+' property of class '+IgnClass.ClassName+' is being ignored.');
+      {$endif}
+      exit;
+    end;
+    if IgnClass.InheritsFrom(cm.HClass) then begin
+      // This is the place to insert this class
+      cm:=TClassMode.Create;
+      cm.HClass:=IgnClass;
+      cm.PropertiesToIgnore.Add(propertyname);
+      TP_ClassHandling.Insert(i,cm);
+      {$ifdef DXGETTEXTDEBUG}
+      DebugWriteln ('Locally, the '+propertyname+' property of class '+IgnClass.ClassName+' is being ignored.');
+      {$endif}
+      exit;
+    end;
+  end;
+  cm:=TClassMode.Create;
+  cm.HClass:=IgnClass;
+  cm.PropertiesToIgnore.Add(propertyname);
+  TP_GlobalClassHandling.Add(cm);
+  {$ifdef DXGETTEXTDEBUG}
+  DebugWriteln ('Locally, the '+propertyname+' property of class '+IgnClass.ClassName+' is being ignored.');
+  {$endif}
+end;
+
+procedure TGnuGettextInstance.TP_Remember(AnObject: TObject;
+  PropName: ComponentNameString; OldValue: TranslatedUnicodeString);
+begin
+  if Assigned(TP_Retranslator) then
+    (TP_Retranslator as TTP_Retranslator).Remember(AnObject, PropName, OldValue)
+  else
+    raise EGGProgrammingError.Create ('You can only call TP_Remember when doing the initial translation (TP_Retranslator is not set).');
+end;
+
+procedure TGnuGettextInstance.FreeTP_ClassHandlingItems;
+begin
+  while TP_ClassHandling.Count<>0 do begin
+    TObject(TP_ClassHandling.Items[0]).Free;
+    TP_ClassHandling.Delete(0);
+  end;
+end;
+
+{$ifndef UNICODE}
+function TGnuGettextInstance.ansi2wideDTCP(const s: ansistring): MsgIdString;
+{$ifdef MSWindows}
+var
+  len:integer;
+{$endif}
+begin
+{$ifdef MSWindows}
+  if DesignTimeCodePage=CP_ACP then begin
+    // No design-time codepage specified. Using runtime codepage instead.
+{$endif}
+    Result:=s;
+{$ifdef MSWindows}
+  end else begin
+    len:=length(s);
+    if len=0 then
+      Result:=''
+    else begin
+      SetLength (Result,len);
+      len:=MultiByteToWideChar(DesignTimeCodePage,0,pansichar(s),len,pwidechar(Result),len);
+      if len=0 then
+        raise EGGAnsi2WideConvError.Create ('Cannot convert string to widestring:'+sLineBreak+s);
+      SetLength (Result,len);
+    end;
+  end;
+{$endif}
+end;
+{$endif}
+
+{$ifndef UNICODE}
+function TGnuGettextInstance.dngettext(const szDomain: DomainString; const singular,
+  plural: ansistring; Number: Integer): TranslatedUnicodeString;
+begin
+  Result:=dngettext (szDomain, ansi2wideDTCP(singular), ansi2wideDTCP(plural), Number);
+end;
+{$endif}
+
+{ TClassMode }
+
+constructor TClassMode.Create;
+begin
+  PropertiesToIgnore:=TStringList.Create;
+  PropertiesToIgnore.Sorted:=True;
+  PropertiesToIgnore.Duplicates:=dupError;
+  PropertiesToIgnore.CaseSensitive:=False;
+end;
+
+destructor TClassMode.Destroy;
+begin
+  FreeAndNil (PropertiesToIgnore);
+  inherited;
+end;
+
+{ TFileLocator }
+
+function TFileLocator.FindSignaturePos(const signature: RawByteString;
+  str: TFileStream): Int64;
+// Finds the position of signature in the file.
+const
+  bufsize=100000;
+var
+  a:RawByteString;
+  b:RawByteString;
+  offset:integer;
+  rd,p:Integer;
+begin
+  if signature='' then
+  begin
+    Result := 0;
+    Exit;
+  end;
+
+  offset:=0;
+  str.Seek(0, soFromBeginning);
+
+  SetLength (a, bufsize);
+  SetLength (b, bufsize);
+  str.Read(a[1],bufsize);
+  
+  while true do begin
+    rd:=str.Read(b[1],bufsize);
+    p:=pos(signature,a+b);
+    if (p<>0) then begin // do not check p < bufsize+100 here!
+      Result:=offset+p-1;
+      exit;
+    end;
+    if rd<>bufsize then begin
+      // Prematurely ended without finding anything
+      Result:=0;
+      exit;
+    end;
+    a:=b;
+    offset:=offset+bufsize;
+  end;
+  Result:=0;
+end;
+
+procedure TFileLocator.Analyze;
+var
+  HeaderSize,
+  PrefixSize: Integer;
+  dummysig,
+  headerpre,
+  headerbeg,
+  headerend:RawByteString;
+  i:integer;
+  headerbeginpos,
+  headerendpos:integer;
+  offset,
+  tableoffset:int64;
+  fs:TFileStream;
+  fi:TEmbeddedFileInfo;
+  filename:FilenameString;
+  filename8bit:RawByteString;
+const
+{
+  // DetectionSignature: used solely to detect gnugettext usage by assemble
+  DetectionSignature: array[0..35] of AnsiChar='2E23E563-31FA-4C24-B7B3-90BE720C6B1A';
+  // Embedded Header Begin Signature (without dynamic prefix written by assemble)
+  BeginHeaderSignature: array[0..35] of AnsiChar='BD7F1BE4-9FCF-4E3A-ABA7-3443D11AB362';
+  // Embedded Header End Signature (without dynamic prefix written by assemble)
+  EndHeaderSignature: array[0..35] of AnsiChar='1C58841C-D8A0-4457-BF54-D8315D4CF49D';
+  // Assemble Prefix (do not put before the Header Signatures!)
+  SignaturePrefix: array[0..2] of AnsiChar='DXG'; // written from assemble
+}
+  //fvd found soltion http://neftali.clubdelphi.com/aplicacion-multiidioma-con-gnu-gettext/
+  //DetectionSignature: used solely to detect gnugettext usage by assemble
+  DetectionSignature: array[0..35] of AnsiChar='6637DB2E-62E1-4A60-AC19-C23867046A89';
+  // Embedded Header Begin Signature (without dynamic prefix written by assemble)
+  BeginHeaderSignature: array[0..35] of AnsiChar='';
+  // Embedded Header End Signature (without dynamic prefix written by assemble)
+  EndHeaderSignature: array[0..35] of AnsiChar='';
+  // Assemble Prefix (do not put before the Header Signatures!)
+  SignaturePrefix: array[0..16] of AnsiChar='#0#0#0#0#0#0#0#0';//'DXG'; // written from assemble
+
+
+
+begin
+  // Attn: Ensure all Signatures have the same size!
+  HeaderSize := High(BeginHeaderSignature) - Low(BeginHeaderSignature) + 1;
+  PrefixSize := High(SignaturePrefix) - Low(SignaturePrefix) + 1;
+
+  // dummy usage of DetectionSignature (otherwise not compiled into exe)
+  SetLength(dummysig, HeaderSize);
+  for i := 0 to HeaderSize-1 do
+    dummysig[i+1] := DetectionSignature[i];
+
+  // copy byte by byte (D2009+ compatible)
+  SetLength(headerpre, PrefixSize);
+  for i:= 0 to PrefixSize-1 do
+    headerpre[i+1] := SignaturePrefix[i];
+
+  SetLength(headerbeg, HeaderSize);
+  for i:= 0 to HeaderSize-1 do
+    headerbeg[i+1] := BeginHeaderSignature[i];
+
+  SetLength(headerend, HeaderSize);
+  for i:= 0 to HeaderSize-1 do
+    headerend[i+1] := EndHeaderSignature[i];
+
+  BaseDirectory:=ExtractFilePath(ExecutableFilename);
+  try
+    fs:=TFileStream.Create(ExecutableFilename,fmOpenRead or fmShareDenyNone);
+    try
+      // try to find new header begin and end signatures
+      headerbeginpos := FindSignaturePos(headerpre+headerbeg, fs);
+      headerendpos := FindSignaturePos(headerpre+headerend, fs);
+
+      if (headerbeginpos > 0) and (headerendpos > 0) then
+      begin
+        // adjust positions (to the end of each signature)
+        headerbeginpos := headerbeginpos + HeaderSize + PrefixSize;
+
+        // get file table offset (8 byte, stored directly before the end header)
+        fs.Seek(headerendpos - 8, soFromBeginning);
+        // get relative offset and convert to absolute offset during runtime
+        tableoffset := headerbeginpos + ReadInt64(fs);
+
+        // go to beginning of embedded block
+        fs.Seek(headerbeginpos, soFromBeginning);
+        
+        offset := tableoffset;
+        Assert(sizeof(offset)=8);
+        while (true) and (fs.Position<headerendpos) do begin
+          fs.Position := offset;
+          offset:=ReadInt64(fs);
+          if offset=0 then
+            exit;
+          offset:=headerbeginpos+offset;
+          fi:=TEmbeddedFileInfo.Create;
+          try
+            // get embedded file info (adjusting dynamic to real offsets now)
+            fi.Offset:=headerbeginpos+ReadInt64(fs);
+            fi.Size:=ReadInt64(fs);
+            SetLength (filename8bit, offset-fs.position);
+            fs.ReadBuffer (filename8bit[1], offset-fs.position);
+            filename:=trim(utf8decode(filename8bit));
+            if PreferExternal and sysutils.fileexists(basedirectory+filename) then begin
+              // Disregard the internal version and use the external version instead
+              FreeAndNil (fi);
+            end else
+              filelist.AddObject(filename,fi);
+          except
+            FreeAndNil (fi);
+            raise;
+          end;
+        end;
+      end;
+    finally
+      FreeAndNil (fs);
+    end;
+  except
+    {$ifdef DXGETTEXTDEBUG}
+    raise;
+    {$endif}
+  end;
+end;
+
+constructor TFileLocator.Create;
+begin
+  MoFilesCS:=TMultiReadExclusiveWriteSynchronizer.Create;
+  MoFiles:=TStringList.Create;
+  filelist:=TStringList.Create;
+  {$ifdef LINUX}
+  filelist.Duplicates:=dupError;
+  filelist.CaseSensitive:=True;
+  {$endif}
+  MoFiles.Sorted:=True;
+  MoFiles.Duplicates:=dupError;
+  MoFiles.CaseSensitive:=False;
+  {$ifdef MSWINDOWS}
+  filelist.Duplicates:=dupError;
+  filelist.CaseSensitive:=False;
+  {$endif}
+  filelist.Sorted:=True;
+{$IFDEF dx_SupportsResources}
+  FResourceList := TStringList.Create;
+  FResourceList.Duplicates := dupError;
+  FResourceList.CaseSensitive := False;
+  FResourceList.Sorted := True;
+{$ENDIF dx_SupportsResources}
+end;
+
+destructor TFileLocator.Destroy;
+var
+  Idx: integer;
+begin
+{$IFDEF dx_SupportsResources}
+  if Assigned(FResourceList) then begin
+    while FResourceList.Count > 0 do begin
+      Idx := FResourceList.Count - 1;
+      FResourceList.Objects[Idx].Free;
+      FResourceList.Delete(Idx);
+    end;
+    FreeAndNil(FResourceList);
+  end;
+{$ENDIF dx_SupportsResources}
+
+  while filelist.count > 0 do begin
+    Idx := filelist.Count - 1;
+    filelist.Objects[Idx].Free;
+    filelist.Delete (Idx);
+  end;
+  FreeAndNil (filelist);
+
+  FreeAndNil (MoFiles);
+  FreeAndNil (MoFilesCS);
+  inherited;
+end;
+
+function TFileLocator.FileExists(filename: FilenameString): boolean;
+var
+  idx:integer;
+{$IFDEF dx_SupportsResources}
+  ResName: string;
+  HResInfo: HRSRC;
+{$ENDIF dx_SupportsResources}
+begin
+  if LeftStr(filename,length(basedirectory))=basedirectory then begin
+    // Cut off basedirectory if the file is located beneath that base directory
+    filename:=MidStr(filename,length(basedirectory)+1,maxint);
+  end;
+  Result:=filelist.Find(filename,idx);
+
+{$IFDEF dx_SupportsResources}
+  if not Result then begin
+    Result := FResourceList.Find(filename, Idx);
+    if not Result then begin
+      ResName := UpperCase(filename);
+      ResName := StringReplace(ResName,  '/', '_', [rfReplaceAll]);
+      ResName := StringReplace(ResName,  '\', '_', [rfReplaceAll]);
+      ResName := StringReplace(ResName, '_LC_MESSAGES_', '_', [rfReplaceAll]);
+      ResName := StringReplace(ResName, '.MO', '', [rfReplaceAll]);
+      HResInfo := FindResource(hInstance, PChar(ResName), RT_RCDATA);
+      Result := (HResInfo <> 0);
+      if Result then
+        FResourceList.AddObject(filename, TResourceFileInfo.Create(ResName));
+    end;
+  end;
+{$ENDIF dx_SupportsResources}
+end;
+
+function TFileLocator.GetMoFile(filename: FilenameString; DebugLogger:TDebugLogger): TMoFile;
+var
+  fi:TEmbeddedFileInfo;
+  idx:integer;
+  idxname:FilenameString;
+  Offset, Size: Int64;
+  realfilename:FilenameString;
+  ResName: string;
+begin
+  // Find real filename
+  offset:=0;
+  size:=0;
+  Resname := '';
+  realfilename:=filename;
+  if LeftStr(filename,length(basedirectory))=basedirectory then begin
+    filename:=MidStr(filename,length(basedirectory)+1,maxint);
+    idx:=filelist.IndexOf(filename);
+    if idx<>-1 then begin
+      fi:=filelist.Objects[idx] as TEmbeddedFileInfo;
+      realfilename:=ExecutableFilename;
+      offset:=fi.offset;
+      size:=fi.size;
+      {$ifdef DXGETTEXTDEBUG}
+      DebugLogger ('Instead of '+filename+', using '+realfilename+' from offset '+IntTostr(offset)+', size '+IntToStr(size));
+      {$endif}
+    end
+{$IFDEF dx_SupportsResources}
+    else begin
+      Idx := FResourceList.IndexOf(filename);
+      if Idx <> -1 then begin
+        realfilename := ExecutableFilename;
+        ResName := (FResourceList.Objects[Idx] as TResourceFileInfo).ResourceName;
+  {$ifdef DXGETTEXTDEBUG}
+      DebugLogger ('Instead of '+filename+', using resource '+ResName+' from '+realfilename);
+  {$endif}
+      end;
+    end;
+{$ENDIF dx_SupportsResources}
+  end;
+
+
+  {$ifdef DXGETTEXTDEBUG}
+  DebugLogger ('Reading .mo data from file '''+filename+'''');
+  {$endif}
+
+  // Find TMoFile object
+  MoFilesCS.BeginWrite;
+  try
+{$IFDEF dx_SupportsResources}
+    if ResName <> '' then begin
+      idxname := realfilename + ' //\\ ' + ResName;
+    end else
+{$ENDIF dx_SupportsResources}
+      idxname:=realfilename+' //\\ '+IntToStr(offset);
+    if MoFiles.Find(idxname, idx) then begin
+      Result:=MoFiles.Objects[idx] as TMoFile;
+    end else begin
+      Result:=TMoFile.Create (realfilename, Offset, Size, UseMemoryMappedFiles, ResName);
+      MoFiles.AddObject(idxname, Result);
+    end;
+    Inc (Result.Users);
+  finally
+    MoFilesCS.EndWrite;
+  end;
+end;
+
+function TFileLocator.ReadInt64(str: TStream): int64;
+begin
+  Assert (sizeof(Result)=8);
+  str.ReadBuffer(Result,8);
+end;
+
+procedure TFileLocator.ReleaseMoFile(mofile: TMoFile);
+var
+  i:integer;
+begin
+  Assert (mofile<>nil);
+  
+  MoFilesCS.BeginWrite;
+  try
+    dec (mofile.Users);
+    if mofile.Users<=0 then begin
+      i:=MoFiles.Count-1;
+      while i>=0 do begin
+        if MoFiles.Objects[i]=mofile then begin
+          MoFiles.Delete(i);
+          FreeAndNil (mofile);
+          break;
+        end;
+        dec (i);
+      end;
+    end;
+  finally
+    MoFilesCS.EndWrite;
+  end;
+end;
+
+{ TTP_Retranslator }
+
+constructor TTP_Retranslator.Create;
+begin
+  list:=TList.Create;
+  KnownRetranslators.Add(Self);
+end;
+
+destructor TTP_Retranslator.Destroy;
+var
+  i:integer;
+begin
+  for i:=0 to list.Count-1 do
+    TObject(list.Items[i]).Free;
+  FreeAndNil (list);
+
+  // some times, we are finalized before the main form's unit
+  if Assigned(KnownRetranslators) then
+    KnownRetranslators.Remove(Self);
+
+  inherited;
+end;
+
+procedure RemoveFromKnowRetranslators(obj: TObject); {$ifdef dx_has_Inline}inline;{$endif}
+var
+  retranslatorIndex:Integer;
+  retranslator:TTP_Retranslator;
+  itemIndex:Integer;
+  item:TTP_RetranslatorItem;
+begin
+  for retranslatorIndex:=0 to KnownRetranslators.Count-1 do
+  begin
+    retranslator:=TTP_Retranslator(KnownRetranslators.List{$IFDEF FPC}^{$ENDIF}[retranslatorIndex]);
+    itemIndex:=0;
+    while itemIndex<retranslator.list.Count do
+    begin
+      item:=TTP_RetranslatorItem(retranslator.list.List{$IFDEF FPC}^{$ENDIF}[itemIndex]);
+      if item.obj=obj then
+      begin
+        item.Free;
+        retranslator.list.delete(itemIndex);
+      end
+      else
+      begin
+        inc(itemIndex);
+      end;
+    end;
+  end;
+end;
+
+procedure TTP_Retranslator.Execute;
+var
+  i:integer;
+  sl:TStrings;
+  item:TTP_RetranslatorItem;
+  newvalue:TranslatedUnicodeString;
+  comp:TGnuGettextComponentMarker;
+  ppi:PPropInfo;
+  //
+  oInstance: tobject;
+  PropName: string;
+begin
+  for i:=0 to list.Count-1 do begin
+    item:=TObject(list.items[i]) as TTP_RetranslatorItem;
+    if item.obj is TComponent then begin
+      comp:=TComponent(item.obj).FindComponent('GNUgettextMarker') as TGnuGettextComponentMarker;
+      if Assigned(comp) and (self<>comp.Retranslator) then begin
+        comp.Retranslator.Execute; 
+        Continue;
+      end;
+    end;
+    if item.obj is TStrings then begin
+      // Since we don't know the order of items in sl, and don't have
+      // the original .Objects[] anywhere, we cannot anticipate anything
+      // about the current sl.Strings[] and sl.Objects[] values. We therefore
+      // have to discard both values. We can, however, set the original .Strings[]
+      // value into the list and retranslate that.
+      sl:=TStringList.Create;
+      try
+        sl.Text:=item.OldValue;
+        Instance.TranslateStrings(sl,textdomain);
+        (item.obj as TStrings).BeginUpdate;
+        try
+          (item.obj as TStrings).Text:=sl.Text;
+        finally
+          (item.obj as TStrings).EndUpdate;
+        end;
+      finally
+        FreeAndNil (sl);
+      end;
+    end else begin
+      if (textdomain = '') or (textdomain = DefaultTextDomain) then
+        newValue := ComponentGettext(item.OldValue, instance)
+      else
+        newValue := instance.dgettext(textdomain,item.OldValue);
+//      try
+//         ppi:=GetPropInfo(item.obj as tobject, item.Propname);
+//      except
+//      end;
+      ppi:=GetPropInfo(item.obj, item.Propname);
+      if ppi<>nil then begin
+        SetWideStrProp(item.obj, ppi, newValue);
+      end else begin
+        {$ifdef DXGETTEXTDEBUG}
+        Instance.DebugWriteln ('ERROR: On retranslation, property disappeared: '+item.Propname+' for object of type '+item.obj.ClassName);
+        {$endif}
+      end;
+    end;
+  end;
+end;
+
+procedure TTP_Retranslator.Remember(obj: TObject; PropName: ComponentNameString;
+  OldValue: TranslatedUnicodeString);
+var
+  item:TTP_RetranslatorItem;
+begin
+  item:=TTP_RetranslatorItem.Create;
+  item.obj:=obj;
+  item.Propname:=Propname;
+  item.OldValue:=OldValue;
+  list.Add(item);
+
+  // As we are storing a reference to an object in our list, we must be notified
+  // when that object is deleted.
+  // The only way to do that for any instance of TObject is to hook into
+  // BeforeDestruction via the virtual method table.
+  {$IFNDEF FPC}
+  HookedObjects.Proxify(obj);
+  {$ENDIF}
+end;
+
+{ TGnuGettextComponentMarker }
+
+destructor TGnuGettextComponentMarker.Destroy;
+begin
+  FreeAndNil (Retranslator);
+  inherited;
+end;
+
+{ THook }
+
+constructor THook.Create(OldProcedure, NewProcedure: pointer; FollowJump:boolean=false);
+{ Idea and original code from Igor Siticov }
+{ Modified by Jacques Garcia Vazquez and Lars Dybdahl }
+begin
+  {$ifndef CPU386}
+  {$ifndef CPUx64}
+  raise Exception.Create ('This procedure only works on Intel i386 or x64 compatible processors.');
+  {$endif}
+  {$endif}
+
+  oldproc:=OldProcedure;
+  newproc:=NewProcedure;
+
+  Reset (FollowJump);
+end;
+
+destructor THook.Destroy;
+begin
+  Shutdown;
+  inherited;
+end;
+
+procedure THook.Disable;
+begin
+  Assert (PatchPosition<>nil,'Patch position in THook was nil when Disable was called');
+  PatchPosition[0]:=Original[0];
+  PatchPosition[1]:=Original[1];
+  PatchPosition[2]:=Original[2];
+  PatchPosition[3]:=Original[3];
+  PatchPosition[4]:=Original[4];
+end;
+
+procedure THook.Enable;
+begin
+  Assert (PatchPosition<>nil,'Patch position in THook was nil when Enable was called');
+  PatchPosition[0]:=Patch[0];
+  PatchPosition[1]:=Patch[1];
+  PatchPosition[2]:=Patch[2];
+  PatchPosition[3]:=Patch[3];
+  PatchPosition[4]:=Patch[4];
+end;
+
+procedure THook.Reset(FollowJump: boolean);
+var
+  offset:integer;
+  {$ifdef LINUX}
+  p:pointer;
+  pagesize:integer;
+  {$endif}
+  {$ifdef MSWindows}
+  ov: cardinal;
+  {$endif}
+begin
+  if PatchPosition<>nil then
+    Shutdown;
+
+  patchPosition := OldProc;
+  if FollowJump and (Word(OldProc^) = $25FF) then begin
+    // This finds the correct procedure if a virtual jump has been inserted
+    // at the procedure address
+    Inc(patchPosition, 2); // skip the jump
+    patchPosition := pansiChar(Pointer(pointer(patchPosition)^)^);
+  end;
+  offset:=integer(NewProc)-integer(pointer(patchPosition))-5;
+
+  Patch[0] := ansichar($E9);
+  Patch[1] := ansichar(offset and 255);
+  Patch[2] := ansichar((offset shr 8) and 255);
+  Patch[3] := ansichar((offset shr 16) and 255);
+  Patch[4] := ansichar((offset shr 24) and 255);
+
+  Original[0]:=PatchPosition[0];
+  Original[1]:=PatchPosition[1];
+  Original[2]:=PatchPosition[2];
+  Original[3]:=PatchPosition[3];
+  Original[4]:=PatchPosition[4];
+
+  {$ifdef MSWINDOWS}
+  if not VirtualProtect(Pointer(PatchPosition), 5, PAGE_EXECUTE_READWRITE, @ov) then
+    RaiseLastOSError;
+  {$endif}
+  {$ifdef LINUX}
+  pageSize:=sysconf (_SC_PAGE_SIZE);
+  p:=pointer(PatchPosition);
+  p:=pointer((integer(p) + PAGESIZE-1) and not (PAGESIZE-1) - pageSize);
+  if mprotect (p, pageSize, PROT_READ + PROT_WRITE + PROT_EXEC) <> 0 then
+    RaiseLastOSError;
+  {$endif}
+end;
+
+procedure THook.Shutdown;
+begin
+  Disable;
+  PatchPosition:=nil;
+end;
+
+procedure HookIntoResourceStrings (enabled:boolean=true; SupportPackages:boolean=false);
+begin
+  HookLoadResString.Reset (SupportPackages);
+  HookLoadStr.Reset (SupportPackages);
+  HookFmtLoadStr.Reset (SupportPackages);
+  if enabled then begin
+    HookLoadResString.Enable;
+    HookLoadStr.Enable;
+    HookFmtLoadStr.Enable;
+  end;
+end;
+
+{ TMoFile }
+
+function TMoFile.autoswap32(i: cardinal): cardinal;
+var
+  cnv1, cnv2:
+    record
+      case integer of
+        0: (arr: array[0..3] of byte);
+        1: (int: cardinal);
+    end;
+begin
+  if doswap then begin
+    cnv1.int := i;
+    cnv2.arr[0] := cnv1.arr[3];
+    cnv2.arr[1] := cnv1.arr[2];
+    cnv2.arr[2] := cnv1.arr[1];
+    cnv2.arr[3] := cnv1.arr[0];
+    Result := cnv2.int;
+  end else
+    Result := i;
+end;
+
+function TMoFile.CardinalInMem(baseptr: PansiChar; Offset: Cardinal): Cardinal;
+var pc:^Cardinal;
+begin
+  inc (baseptr,offset);
+  pc:=Pointer(baseptr);
+  Result:=pc^;
+  if doswap then
+    autoswap32(Result);
+end;
+
+constructor TMoFile.Create(const filename: FilenameString;
+                           const Offset: int64; Size: int64;
+                           const xUseMemoryMappedFiles: Boolean;
+                           const ResName: string);
+var
+  i:cardinal;
+  nn:integer;
+  mofile:TStream;
+begin
+  if sizeof(i) <> 4 then
+    raise EGGProgrammingError.Create('TDomain in gnugettext is written for an architecture that has 32 bit integers.');
+
+  {$ifdef mswindows}
+  FUseMemoryMappedFiles := xUseMemoryMappedFiles;
+  {$endif}
+
+  {$ifdef linux}
+  FUseMemoryMappedFiles := False;
+  {$endif}
+
+{$IFDEF dx_SupportsResources}
+  if ResName <> '' then begin
+    // Read the whole file into memory
+    mofile:=TResourceStream.Create(HInstance, ResName, RT_RCDATA);
+    try
+      size := mofile.Size;
+      Getmem (momemoryHandle, size);
+      momemory := momemoryHandle;
+      mofile.ReadBuffer(momemory^, size);
+    finally
+      FreeAndNil(mofile);
+    end;
+  end else
+{$endif dx_SupportsResources}
+  if FUseMemoryMappedFiles then
+  begin
+    // Map the mo file into memory and let the operating system decide how to cache
+    mo:=createfile (PChar(filename),GENERIC_READ,FILE_SHARE_READ,nil,OPEN_EXISTING,0,0);
+    if mo=INVALID_HANDLE_VALUE then
+      raise EGGIOError.Create ('Cannot open file '+filename);
+    momapping:=CreateFileMapping (mo, nil, PAGE_READONLY, 0, 0, nil);
+    if momapping=0 then
+      raise EGGIOError.Create ('Cannot create memory map on file '+filename);
+    momemoryHandle:=MapViewOfFile (momapping,FILE_MAP_READ,0,0,0);
+    if momemoryHandle=nil then begin
+      raise EGGIOError.Create ('Cannot map file '+filename+' into memory. Reason: '+GetLastWinError);
+    end;
+    momemory:=momemoryHandle+offset;
+  end
+  else
+  begin
+    // Read the whole file into memory
+    mofile:=TFileStream.Create (filename, fmOpenRead or fmShareDenyNone);
+    try
+      if (size = 0) then
+        size := mofile.Size;
+      Getmem (momemoryHandle, size);
+      momemory := momemoryHandle;
+      mofile.Position := offset;
+      mofile.ReadBuffer(momemory^, size);
+    finally
+      FreeAndNil(mofile);
+    end;
+  end;
+
+  // Check the magic number
+  doswap:=False;
+  i:=CardinalInMem(momemory,0);
+  if (i <> $950412DE) and (i <> $DE120495) then
+    raise EGGIOError.Create('This file is not a valid GNU gettext mo file: ' + filename);
+  doswap := (i = $DE120495);
+
+
+  // Find the positions in the file according to the file format spec
+  CardinalInMem(momemory,4);       // Read the version number, but don't use it for anything.
+  N:=CardinalInMem(momemory,8);    // Get string count
+  O:=CardinalInMem(momemory,12);   // Get offset of original strings
+  T:=CardinalInMem(momemory,16);   // Get offset of translated strings
+
+  // Calculate start conditions for a binary search
+  nn := N;
+  startindex := 1;
+  while nn <> 0 do begin
+    nn := nn shr 1;
+    startindex := startindex shl 1;
+  end;
+  startindex := startindex shr 1;
+  startstep := startindex shr 1;
+end;
+
+destructor TMoFile.Destroy;
+begin
+  if FUseMemoryMappedFiles then
+  begin
+    UnMapViewOfFile (momemoryHandle);
+    CloseHandle (momapping);
+    CloseHandle (mo);
+  end
+  else
+  begin
+    FreeMem (momemoryHandle);
+  end;
+
+  inherited;
+end;
+
+function TMoFile.gettext(const msgid: RawUtf8String;var found:boolean): RawUtf8String;
+var
+  i, step: cardinal;
+  offset, pos: cardinal;
+  CompareResult:integer;
+  msgidptr,a,b:PAnsiChar;
+  abidx:integer;
+  size, msgidsize:integer;
+begin
+  found:=false;
+  msgidptr:=PAnsiChar(msgid);
+  msgidsize:=length(msgid);
+
+  // Do binary search
+  i:=startindex;
+  step:=startstep;
+  while true do begin
+    // Get string for index i
+    pos:=O+8*(i-1);
+    offset:=CardinalInMem (momemory,pos+4);
+    size:=CardinalInMem (momemory,pos);
+    a:=msgidptr;
+    b:=momemory+offset;
+    abidx:=size;
+    if msgidsize<abidx then
+      abidx:=msgidsize;
+    CompareResult:=0;
+    while abidx<>0 do begin
+      CompareResult:=integer(byte(a^))-integer(byte(b^));
+      if CompareResult<>0 then
+        break;
+      dec (abidx);
+      inc (a);
+      inc (b);
+    end;
+    if CompareResult=0 then 
+      CompareResult:=msgidsize-size;
+    if CompareResult=0 then begin  // msgid=s
+      // Found the msgid
+      pos:=T+8*(i-1);
+      offset:=CardinalInMem (momemory,pos+4);
+      size:=CardinalInMem (momemory,pos);
+      SetString (Result,momemory+offset,size);
+      found:=True;
+      break;
+    end;
+    if step=0 then begin
+      // Not found
+      Result:=msgid;
+      break;
+    end;
+    if CompareResult<0 then begin  // msgid<s
+      if i < 1+step then
+        i := 1
+      else
+        i := i - step;
+      step := step shr 1;
+    end else begin  // msgid>s
+      i := i + step;
+      if i > N then
+        i := N;
+      step := step shr 1;
+    end;
+  end;
+end;
+
+{ THookedObjects }
+
+{$IFDEF VER90}{$DEFINE NO_vmtSelfPtr}{$ENDIF}
+{$IFDEF FPC}{$DEFINE NO_vmtSelfPtr}{$ENDIF}
+
+function getClassData(aClass:TClass):PProxyClassData; overload; {$ifdef dx_has_Inline}inline;{$endif}
+begin
+  Result:=PProxyClassData((PAnsiChar(aClass) + {$IFDEF NO_vmtSelfPtr}-48{$ELSE}vmtSelfPtr{$ENDIF}));
+end;
+
+function getClassData(obj:TObject):PProxyClassData; overload; {$ifdef dx_has_Inline}inline;{$endif}
+begin
+  Result:=getClassData(obj.ClassType);
+end;
+
+function GetBeforeDestructionVmtAddress(AClass: TClass): PPointer; overload;
+{$IFDEF FPC}
+begin
+{$ASMMODE intel}
+{$ENDIF}
+asm
+  {$IFDEF CPU386}
+//  lea eax, eax + VMTOFFSET TObject.BeforeDestruction   TO-DO
+  {$ENDIF CPU386}
+  {$IFDEF CPUx64}
+  lea rax, rcx + VMTOFFSET TObject.BeforeDestruction
+  {$ENDIF CPUx64}
+  {$IFDEF FPC}
+  end
+  {$ENDIF}
+end;
+
+procedure THookedObjects.BeforeDestructionHook;
+type
+  TOriginalBeforeDestruction = procedure of object;
+var
+  method:TMethod;
+begin
+  // NOTE: this method is declared inside inside THookedObjects to have access
+  // to Self, but because it is used as a hook for other classes' BeforeDestruction,
+  // Self will not be an instance of THookedObjects but one of the hooked class.
+
+  // remove ourselves from known retranslators
+  RemoveFromKnowRetranslators(Self);
+
+  // call the inherited BeforeDestruction
+  // we must do it via the parent class type because simply writing
+  // inherited BeforeDestruction will be resolved at compile time to
+  // TObject.BeforeDestruction which is not what we want
+  method.Code:=GetBeforeDestructionVmtAddress(getClassData(ClassType)^.Parent^)^;
+  method.Data:=Self;
+  TOriginalBeforeDestruction(method);
+
+  // Remove from hooked objects (Remember, Self is not a THookedObjects instance)
+  HookedObjects.Remove(Self);
+end;
+
+constructor THookedObjects.Create;
+begin
+  inherited Create;
+
+  interceptorClassDatas:=TList.Create;
+end;
+
+destructor THookedObjects.Destroy;
+var
+  i:Integer;
+begin
+  for i:=0 to Count-1 do
+    Unproxify(TObject(Items[i]));
+
+  for i:=0 to interceptorClassDatas.Count-1 do
+    FreeMem(interceptorClassDatas[i]);
+  interceptorClassDatas.Free;
+
+  inherited Destroy;
+end;
+
+function THookedObjects.GetBeforeDestructionHookAddress: Pointer;
+type
+  TBeforeDestructionHook=procedure of object;
+var
+  m:TBeforeDestructionHook;
+begin
+//  m:={$IFDEF FPC}@{$ENDIF}BeforeDestructionHook;
+  m:=BeforeDestructionHook;
+  Result:=TMethod(m).Code;
+end;
+
+function THookedObjects.findInterceptorClassData(aClass:TClass):Pointer;
+var
+  i:Integer;
+  proxyClassData:Pointer;
+begin
+  i:=0;
+  Result:=nil;
+  while (i<interceptorClassDatas.Count) and (Result=nil) do
+  begin
+    proxyClassData:=interceptorClassDatas[i];
+    if (PProxyClassData(proxyClassData)^.Parent^=aClass) or (PProxyClassData(proxyClassData)^.SelfPtr=aClass) then
+      Result:=proxyClassData;
+
+    Inc(i);
+  end;
+end;
+
+{$ifdef dx_has_VclThemes}
+type
+  TCustomStyleEngineAccess=
+    class(TCustomStyleEngine)
+    public
+      class property RegisteredStyleHooks;
+    end;
+{$endif dx_has_VclThemes}
+
+procedure THookedObjects.Proxify(obj:TObject);
+const
+  growthCapacity=50;
+var
+  proxyClass:TClass;
+  proxyClassData:Pointer;
+  objClassData:PProxyClassData;
+  size,classOfs:Integer;
+  beforeDestructionVmtAddr:PPointer;
+  hookedClassNameLength:Cardinal;
+begin
+  if IndexOf(obj)<0 then
+  begin
+    classOfs:=- {$IFDEF NO_vmtSelfPtr}-48{$ELSE}vmtSelfPtr{$ENDIF};
+    proxyClassData:=findInterceptorClassData(obj.ClassType);
+    if proxyClassData=nil then
+    begin
+      // According to Allen Bauer, we know that the ClassName is stored right after the
+      // virtual method pointers.
+      // So to figure out the size, we take the difference between the start of the VMT
+      // and the location of ClassName.
+      // See the following link for reference:
+      // http://stackoverflow.com/questions/760513/where-can-i-find-information-on-the-structure-of-the-delphi-vmt
+      objClassData:=getClassData(obj.ClassType);
+      hookedClassNameLength:=Length(objClassData^.ClassName^)+3;
+      if hookedClassNameLength>255 then
+        hookedClassNameLength:=255;
+      size:=NativeUInt(objClassData^.ClassName)-NativeUInt(objClassData)+hookedClassNameLength+2;
+
+      proxyClassData:=AllocMem(size);
+      interceptorClassDatas.Add(proxyClassData);
+
+      proxyClass:=TClass(PAnsiChar(proxyClassData) + classOfs);
+
+      // Copy everything from the original class data then do the following adjustments:
+      // - Parent points to the address of the original data SelfPtr.
+      // - SelfPtr points to ourselves
+      // - ClassName points at the end of our structure to respect compiler layout (see above)
+      // - ClassName gets a suffix as it helps when debugging
+      System.Move(objClassData^, proxyClassData^, size);
+      PProxyClassData(proxyClassData)^.Parent:=@(objClassData^.SelfPtr);
+      PProxyClassData(proxyClassData)^.SelfPtr:=proxyClass;
+      PProxyClassData(proxyClassData)^.ClassName:=PShortString(PAnsiChar(proxyClassData)+size-hookedClassNameLength-2);
+      SetLength(PProxyClassData(proxyClassData)^.ClassName^,hookedClassNameLength);
+      System.Move(AnsiString('!dx'#0),(PAnsiChar(PProxyClassData(proxyClassData)^.ClassName)+hookedClassNameLength+1-3)^,4);
+
+      // Place our BeforeDestruction virtual method in the metaclass VMT
+      beforeDestructionVmtAddr:=GetBeforeDestructionVmtAddress(proxyClass);
+      beforeDestructionVmtAddr^:=GetBeforeDestructionHookAddress;
+
+      {$ifdef dx_has_VclThemes}
+      // As we replace the metaclass for the object, the style engine will not
+      // know about our new metaclass, and thus we must tell it it exists.
+      if TCustomStyleEngineAccess.RegisteredStyleHooks.ContainsKey(obj.ClassType) and
+         not TCustomStyleEngineAccess.RegisteredStyleHooks.ContainsKey(proxyClass) then
+        TCustomStyleEngine.RegisterStyleHook(proxyClass, TCustomStyleEngineAccess.RegisteredStyleHooks[obj.ClassType].Last);
+      {$endif dx_has_VclThemes}
+    end
+    else
+    begin
+      proxyClass:=TClass(PAnsiChar(proxyClassData) + classOfs);
+    end;
+
+    PPointer(obj)^:=proxyClass;
+    Add(obj);
+  end;
+end;
+
+procedure THookedObjects.Unproxify(obj:TObject);
+begin
+  PPointer(obj)^:=getClassData(obj)^.Parent^;
+end;
+
+{$ifdef dx_German_Delphi_fix}  
+  // ### LO - Workaround for programs compiled with German Delphi
+  //
+  // If the current OS Language is not German, immediately add a Delphi RTL domain
+  // to the resource domains and bind the text domain to a fixed German->English
+  // translation.
+  // Using a fixed German->English translation because the OS
+  // Language may not be one of the installed translations.
+  // Otherwise the German RTL resourcestrings will not be translated.
+  // This results in German menu shortcuts 'Strg+', 'Umsch+' instead of
+  // 'Ctrl+', 'Shift+' and so on.
+ 
+procedure CheckForGermanDelphi;
+const
+  DefaultRTLDomain = 'delphi'; // German to English translation of Delphi RTL strings
+  DefaultShortcuts = 'shortcuts'; // German to English translation of ressource strings
+
+  procedure AddAndBindDomain(szDomain: DomainString);
+  begin
+    AddDomainForResourceString(szDomain);
+    with DefaultInstance do
+      bindtextdomainToFile(szDomain, DefaultDomainDirectory + '\' + szDomain + '.mo');
+  end;
+
+begin
+  if not AnsiStartsText('de', GetCurrentLanguage) then begin
+    AddAndBindDomain(DefaultShortcuts);
+    AddAndBindDomain(DefaultRTLDomain);
+  end;
+end;
+{$endif dx_German_Delphi_fix}
+
+
+{$IFDEF dx_SupportsResources}
+{ TResourceFileInfo }
+
+constructor TResourceFileInfo.Create(const _ResourceName: string);
+begin
+  inherited Create;
+  ResourceName := _ResourceName;
+end;
+{$ENDIF dx_SupportsResources}
+
+var
+  param0:string;
+
+initialization
+  {$ifdef DXGETTEXTDEBUG}
+  {$ifdef MSWINDOWS}
+  MessageBox (0,'gnugettext.pas debugging is enabled. Turn it off before releasing this piece of software.','Information',MB_OK);
+  {$endif}
+  {$ifdef LINUX}
+  writeln (stderr,'gnugettext.pas debugging is enabled. Turn it off before releasing this piece of software.');
+  {$endif}
+  {$endif}
+  {$ifdef FPC}
+    {$ifdef LINUX}
+      SetLocale(LC_ALL, '');
+      SetCWidestringManager;
+    {$endif LINUX}
+  {$endif FPC}
+  // Get DLL/shared object filename
+  SetLength(ExecutableFilename, 300); // MAX_PATH ?
+  {$ifdef MSWINDOWS}
+  SetLength(ExecutableFilename, GetModuleFileName(HInstance,
+    PChar(ExecutableFilename), Length(ExecutableFilename)));
+  {$endif}
+  {$ifdef LINUX}
+  if ModuleIsLib or ModuleIsPackage then
+  begin
+    // This line has not been tested on Linux, yet, but should work.
+    SetLength(ExecutableFilename, GetModuleFileName(0, PChar(ExecutableFilename),
+      Length(ExecutableFilename)));
+  end else
+    ExecutableFilename:=Paramstr(0);
+  {$endif}
+  FileLocator:=TFileLocator.Create;
+  FileLocator.Analyze;
+  ResourceStringDomainList:=TStringList.Create;
+  ResourceStringDomainList.Add(DefaultTextDomain);
+  ResourceStringDomainListCS:=TMultiReadExclusiveWriteSynchronizer.Create;
+  ComponentDomainList:=TStringList.Create;
+  ComponentDomainList.Add(DefaultTextDomain);
+  ComponentDomainListCS:=TMultiReadExclusiveWriteSynchronizer.Create;
+  DefaultInstance:=TGnuGettextInstance.Create;
+  {$ifdef MSWINDOWS}
+  Win32PlatformIsUnicode := (Win32Platform = VER_PLATFORM_WIN32_NT);
+  {$endif}
+
+  {$IFNDEF FPC}
+  // replace Borlands LoadResString with gettext enabled version:
+  {$ifdef UNICODE}
+  HookLoadResString:=THook.Create (@system.LoadResString, @LoadResStringW);
+  {$else}
+  HookLoadResString:=THook.Create (@system.LoadResString, @LoadResStringA);
+  {$endif}
+  HookLoadStr:=THook.Create (@sysutils.LoadStr, @SysUtilsLoadStr);
+  HookFmtLoadStr:=THook.Create (@sysutils.FmtLoadStr, @SysUtilsFmtLoadStr);
+  param0:=lowercase(extractfilename(paramstr(0)));
+  if (param0<>'delphi32.exe') and (param0<>'kylix') and (param0<>'bds.exe') then
+    HookIntoResourceStrings (AutoCreateHooks,false);
+  HookedObjects:=THookedObjects.Create;
+  {$ELSE}
+  TranslateAllResourceStrings;
+  {$ENDIF}
+  param0:='';
+
+  KnownRetranslators:=TList.Create;
+
+{$ifdef dx_German_Delphi_fix}
+  CheckForGermanDelphi;
+{$endif dx_German_Delphi_fix}
+
+finalization
+  FreeAndNil (DefaultInstance);
+  FreeAndNil (ResourceStringDomainListCS);
+  FreeAndNil (ResourceStringDomainList);
+  FreeAndNil (ComponentDomainListCS);
+  FreeAndNil (ComponentDomainList);
+
+  {$IFNDEF FPC}
+  FreeAndNil (HookFmtLoadStr);
+  FreeAndNil (HookLoadStr);
+  FreeAndNil (HookLoadResString);
+  FreeAndNil (HookedObjects);
+  {$ENDIF}
+
+  FreeAndNil (FileLocator);
+  FreeAndNil (KnownRetranslators);
+
+end.
+
+
+

BIN
src/libssl-1_1.dll


BIN
src/locale/de/LC_MESSAGES/default.mo


+ 4638 - 0
src/locale/de/LC_MESSAGES/default.po

@@ -0,0 +1,4638 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: 2020-03-30 19:19\n"
+"PO-Revision-Date: 2020-03-30 19:38+0200\n"
+"Last-Translator: Somebody <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.3\n"
+"Language-Team: \n"
+"Language: de\n"
+
+#. FRMAbout..Caption
+#: gui-classic/UFRMAbout.dfm:7
+msgid "About..."
+msgstr ""
+
+#. FRMAbout..Font.Name
+#. FRMAbout..Label1..Font.Name
+#. FRMAbout..lblBuild..Font.Name
+#. FRMAbout..lblProtocolVersion..Font.Name
+#. FRMAbout..Label3..Font.Name
+#. FRMAbout..Label4..Font.Name
+#. FRMAbout..Label5..Font.Name
+#. FRMAccountSelect..Font.Name
+#. FRMDiagnosticTool..Font.Name
+#. FRMHashLock..Font.Name
+#. FRMHashLock..lblError..Font.Name
+#. FRMHashLock..GroupBox2..meHashLockData..Font.Name
+#. FRMMemoText..Font.Name
+#. FRMMemoText..Memo..Font.Name
+#. FRMNewPrivateKeyType..Font.Name
+#. FRMNodesIp..Font.Name
+#. FRMOperation..Font.Name
+#. FRMOperation..lblAccountBalance..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblEncryptionErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..memoPayload..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblTransactionErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblChangeKeyErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewOwnerErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblListAccountErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsDelistAccount..lblDelistErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyAccountErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..Label2..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeInfoErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsGlobalError..lblGlobalErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsGlobalError..bbPassword..Font.Name
+#. FRMOperation..memoAccounts..Font.Name
+#. FRMOperation..ebSenderAccount..Font.Name
+#. FRMOperationsExplorer..Font.Name
+#. FRMPascalCoinWalletConfig..Font.Name
+#. FRMPascalCoinWalletConfig..Label4..Font.Name
+#. FRMPascalCoinWalletConfig..Label7..Font.Name
+#. FRMPascalCoinWalletConfig..bbUpdatePassword..Font.Name
+#. FRMPayloadDecoder..Font.Name
+#. FRMPayloadDecoder..lblBlock..Font.Name
+#. FRMPayloadDecoder..lblDateTime..Font.Name
+#. FRMPayloadDecoder..lblOperationTxt..Font.Name
+#. FRMPayloadDecoder..lblAmount..Font.Name
+#. FRMPayloadDecoder..lblFee..Font.Name
+#. FRMPayloadDecoder..lblSender..Font.Name
+#. FRMPayloadDecoder..lblReceiver..Font.Name
+#. FRMPayloadDecoder..lblReceiverInfo..Font.Name
+#. FRMPayloadDecoder..PageControl..tsDecoded..lblDecodedMethod..Font.Name
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoDecoded..Font.Name
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoOriginalPayloadInHexa..Font.Name
+#. FRMPayloadDecoder..ebOphash..Font.Name
+#. FRMDiagnosticTool..Font.Name
+#. FRMRandomOperations..Font.Name
+#. FRMRandomOperations..pnlTop..lblTopCaption..Font.Name
+#. FRMRPCCalls..Font.Name
+#. FRMRPCCalls..pnlTop..lblTopCaption..Font.Name
+#. FRMSaleAccounts..Font.Name
+#. FRMSaleAccounts..lblAccountBalance..Font.Name
+#. FRMSaleAccounts..memoAccounts..Font.Name
+#. FRMSaleAccounts..ebSenderAccount..Font.Name
+#. FRMWallet..Font.Name
+#. FRMWallet..pnlTop..lblTimeAverageAux..Font.Name
+#. FRMWallet..pnlTop..Label16..Font.Name
+#. FRMWallet..pnlTop..lblBlocksFound..Font.Name
+#. FRMWallet..pnlTop..lblReceivedMessages..Font.Name
+#. FRMWallet..pnlTop..lblBuild..Font.Name
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsTop..Font.Name
+#. FRMWallet..PageControl..tsPendingOperations..pnlPendingOperations..Label10..Font.Name
+#. FRMWallet..PageControl..tsMessages..Label14..Font.Name
+#. FRMWallet..PageControl..tsMessages..memoMessages..Font.Name
+#. FRMWalletKeys..Font.Name
+#. FRMWalletKeys..lblKeysEncrypted..Font.Name
+#. FRMWalletKeys..memoPrivateKey..Font.Name
+#. FRMWalletKeys..bbUpdatePassword..Font.Name
+#. FRMDiagnosticTool..Font.Name
+#: gui-classic/UFRMAbout.dfm:14 gui-classic/UFRMAbout.dfm:130
+#: gui-classic/UFRMAbout.dfm:143 gui-classic/UFRMAbout.dfm:156
+#: gui-classic/UFRMAbout.dfm:176 gui-classic/UFRMAbout.dfm:190
+#: gui-classic/UFRMAbout.dfm:205 gui-classic/UFRMAccountSelect.dfm:12
+#: gui-classic/UFRMDiagnosticTool.dfm:11 gui-classic/UFRMHashLock.dfm:12
+#: gui-classic/UFRMHashLock.dfm:34 gui-classic/UFRMHashLock.dfm:117
+#: gui-classic/UFRMMemoText.dfm:12 gui-classic/UFRMMemoText.dfm:50
+#: gui-classic/UFRMNewPrivateKeyType.dfm:13 gui-classic/UFRMNodesIp.dfm:13
+#: gui-classic/UFRMOperation.dfm:13 gui-classic/UFRMOperation.dfm:40
+#: gui-classic/UFRMOperation.dfm:196 gui-classic/UFRMOperation.dfm:259
+#: gui-classic/UFRMOperation.dfm:332 gui-classic/UFRMOperation.dfm:410
+#: gui-classic/UFRMOperation.dfm:427 gui-classic/UFRMOperation.dfm:539
+#: gui-classic/UFRMOperation.dfm:783 gui-classic/UFRMOperation.dfm:825
+#: gui-classic/UFRMOperation.dfm:851 gui-classic/UFRMOperation.dfm:978
+#: gui-classic/UFRMOperation.dfm:1065 gui-classic/UFRMOperation.dfm:1080
+#: gui-classic/UFRMOperation.dfm:1149 gui-classic/UFRMOperation.dfm:1167
+#: gui-classic/UFRMOperationsExplorer.dfm:12
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:13
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:66
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:110
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:200
+#: gui-classic/UFRMPayloadDecoder.dfm:14 gui-classic/UFRMPayloadDecoder.dfm:37
+#: gui-classic/UFRMPayloadDecoder.dfm:50 gui-classic/UFRMPayloadDecoder.dfm:78
+#: gui-classic/UFRMPayloadDecoder.dfm:99
+#: gui-classic/UFRMPayloadDecoder.dfm:119
+#: gui-classic/UFRMPayloadDecoder.dfm:146
+#: gui-classic/UFRMPayloadDecoder.dfm:166
+#: gui-classic/UFRMPayloadDecoder.dfm:179
+#: gui-classic/UFRMPayloadDecoder.dfm:214
+#: gui-classic/UFRMPayloadDecoder.dfm:234
+#: gui-classic/UFRMPayloadDecoder.dfm:253
+#: gui-classic/UFRMPayloadDecoder.dfm:416
+#: gui-classic/UFRMRandomHashUtil.dfm:11
+#: gui-classic/UFRMRandomOperations.dfm:11
+#: gui-classic/UFRMRandomOperations.dfm:44 gui-classic/UFRMRPCCalls.dfm:12
+#: gui-classic/UFRMRPCCalls.dfm:50 gui-classic/UFRMSaleAccounts.dfm:12
+#: gui-classic/UFRMSaleAccounts.dfm:57 gui-classic/UFRMSaleAccounts.dfm:84
+#: gui-classic/UFRMSaleAccounts.dfm:103 gui-classic/UFRMWallet.dfm:13
+#: gui-classic/UFRMWallet.dfm:284 gui-classic/UFRMWallet.dfm:299
+#: gui-classic/UFRMWallet.dfm:315 gui-classic/UFRMWallet.dfm:333
+#: gui-classic/UFRMWallet.dfm:349 gui-classic/UFRMWallet.dfm:658
+#: gui-classic/UFRMWallet.dfm:870 gui-classic/UFRMWallet.dfm:1183
+#: gui-classic/UFRMWallet.dfm:1216 gui-classic/UFRMWalletKeys.dfm:13
+#: gui-classic/UFRMWalletKeys.dfm:66 gui-classic/UFRMWalletKeys.dfm:155
+#: gui-classic/UFRMWalletKeys.dfm:504 lib/i386-win32/UFRMDiagnosticTool.dfm:11
+msgid "Tahoma"
+msgstr ""
+
+#. FRMAbout..Label1..Caption
+#. FRMWallet..Caption
+#: gui-classic/UFRMAbout.dfm:126 gui-classic/UFRMWallet.dfm:4
+msgid "Pascal full node Wallet (Classic GUI)"
+msgstr ""
+
+#. FRMAbout..lblBuild..Caption
+#: gui-classic/UFRMAbout.dfm:139
+msgid "Build:"
+msgstr ""
+
+#. FRMAbout..lblProtocolVersion..Caption
+#: gui-classic/UFRMAbout.dfm:152
+msgid "Protocol:"
+msgstr ""
+
+#. FRMAbout..Label2..Caption
+#: gui-classic/UFRMAbout.dfm:165
+msgid "Source Code:"
+msgstr ""
+
+#. FRMAbout..Label3..Caption
+#: gui-classic/UFRMAbout.dfm:172
+msgid "Check For New Versions:"
+msgstr ""
+
+#. FRMAbout..Label4..Caption
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:186 gui-classic/UFRMAbout.dfm:252
+msgid "https://github.com/PascalCoin/PascalCoin"
+msgstr ""
+
+#. FRMAbout..Label5..Caption
+#: gui-classic/UFRMAbout.dfm:201
+msgid "https://sourceforge.net/projects/pascalcoin"
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:220
+msgid "Copyright (c) 2016 - 2019 PascalCoin developers"
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:221
+msgid "Based on Albert Molina original source code"
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:225
+msgid ""
+"Pascal (aka Pascal Coin) is P2P cryptocurrency without the need for "
+"historical "
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:228
+msgid "operations. This software comprises a node within the Pascal network."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:232
+msgid ""
+"Distributed under the MIT software license, see the accompanying file "
+"LICENSE  or "
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:233
+msgid "visit http://www.opensource.org/licenses/mit-license.php."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:237
+msgid "THIS IS EXPERIMENTAL SOFTWARE. Use it for educational purposes only."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:241
+msgid ""
+"This product includes software developed by the OpenSSL Project and Denis "
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:244
+msgid "Grinyuk (https://github.com/Arvur/OpenSSL-Delphi), some cryptographic "
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:247
+msgid ""
+"functions inspirated in code written by Ladar Levison and Marco Ferrante, "
+"and "
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:248
+msgid "Synapse Socket code copyright of Lukas Gebauer."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:251
+msgid ""
+"Original source code is written in Pascal Language and is available at "
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:254
+msgid "If you like it, consider a donation using BitCoin:"
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:255
+msgid "16K3HCZRhFUtM8GdWRcfKeaa6KsuyxZaYk"
+msgstr ""
+
+#. FRMAbout..bbClose..Caption
+#. FRMPayloadDecoder..bbClose..Caption
+#. FRMWallet..MainMenu..miProject..MiClose..Caption
+#: gui-classic/UFRMAbout.dfm:266 gui-classic/UFRMPayloadDecoder.dfm:353
+#: gui-classic/UFRMWallet.dfm:1273
+msgid "Close"
+msgstr ""
+
+#. FRMAccountSelect..Caption
+#: gui-classic/UFRMAccountSelect.dfm:5
+msgid "Accounts"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbOnlyForSale..Caption
+#: gui-classic/UFRMAccountSelect.dfm:33
+msgid "Only for sale or swap"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..bbSearch..Caption
+#: gui-classic/UFRMAccountSelect.dfm:41
+msgid "Search"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbOnlyForPrivateSaleToMe..Caption
+#: gui-classic/UFRMAccountSelect.dfm:107
+msgid "Only for private sale to me"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbAccountsBalance..Caption
+#: gui-classic/UFRMAccountSelect.dfm:115
+msgid "Accounts Balance"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbMyAccounts..Caption
+#: gui-classic/UFRMAccountSelect.dfm:123
+msgid "My Accounts"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbOnlyForPublicSale..Caption
+#: gui-classic/UFRMAccountSelect.dfm:141
+msgid "Only for public sale"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbAccountsName..Caption
+#: gui-classic/UFRMAccountSelect.dfm:165
+msgid "Accounts name"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..Label17..Caption
+#. FRMWallet..pnlTop..Label5..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..Label17..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..Label20..Caption
+#: gui-classic/UFRMAccountSelect.dfm:192 gui-classic/UFRMWallet.dfm:261
+#: gui-classic/UFRMWallet.dfm:543 gui-classic/UFRMWallet.dfm:685
+msgid "Accounts:"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..lblAccountsCount..Caption
+#. FRMAccountSelect..pnlBottom..lblAccountsBalance..Caption
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblPayloadLength..Caption
+#. FRMPayloadDecoder..lblDateTime..Caption
+#. FRMPayloadDecoder..lblOperationTxt..Caption
+#. FRMPayloadDecoder..lblAmount..Caption
+#. FRMPayloadDecoder..lblFee..Caption
+#. FRMPayloadDecoder..lblReceiver..Caption
+#. FRMWallet..pnlTop..lblCurrentBlock..Caption
+#. FRMWallet..pnlTop..lblOperationsPending..Caption
+#. FRMWallet..pnlTop..lblMinersClients..Caption
+#. FRMWallet..pnlTop..lblCurrentDifficulty..Caption
+#. FRMWallet..pnlTop..lblTimeAverage..Caption
+#. FRMWallet..pnlTop..lblCurrentAccounts..Caption
+#. FRMWallet..pnlTop..lblTimeAverageAux..Caption
+#. FRMWallet..pnlTop..lblBlocksFound..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..lblAccountsCount..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..lblAccountsBalance..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..lblSelectedAccountsCount..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..lblSelectedAccountsBalance..Caption
+#: gui-classic/UFRMAccountSelect.dfm:201 gui-classic/UFRMAccountSelect.dfm:219
+#: gui-classic/UFRMOperation.dfm:207 gui-classic/UFRMPayloadDecoder.dfm:46
+#: gui-classic/UFRMPayloadDecoder.dfm:74 gui-classic/UFRMPayloadDecoder.dfm:95
+#: gui-classic/UFRMPayloadDecoder.dfm:115
+#: gui-classic/UFRMPayloadDecoder.dfm:162 gui-classic/UFRMWallet.dfm:144
+#: gui-classic/UFRMWallet.dfm:180 gui-classic/UFRMWallet.dfm:198
+#: gui-classic/UFRMWallet.dfm:216 gui-classic/UFRMWallet.dfm:225
+#: gui-classic/UFRMWallet.dfm:270 gui-classic/UFRMWallet.dfm:279
+#: gui-classic/UFRMWallet.dfm:310 gui-classic/UFRMWallet.dfm:561
+#: gui-classic/UFRMWallet.dfm:570 gui-classic/UFRMWallet.dfm:694
+#: gui-classic/UFRMWallet.dfm:712
+msgid "000"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..Label19..Caption
+#. FRMOperation..lblBalanceCaption..Caption
+#. FRMSaleAccounts..lblBalanceCaption..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..Label19..Caption
+#: gui-classic/UFRMAccountSelect.dfm:210 gui-classic/UFRMOperation.dfm:50
+#: gui-classic/UFRMSaleAccounts.dfm:73 gui-classic/UFRMWallet.dfm:552
+msgid "Balance:"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..bbSelect..Caption
+#: gui-classic/UFRMAccountSelect.dfm:229
+msgid "Select"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..bbTypeStats..Caption
+#: gui-classic/UFRMAccountSelect.dfm:249
+msgid "Type stats"
+msgstr ""
+
+#. FRMDiagnosticTool..Caption
+#. FRMDiagnosticTool..Caption
+#. FRMDiagnosticTool..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:4 gui-classic/UFRMRandomHashUtil.dfm:4
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:4
+msgid "FRMDiagnosticTool"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH..Caption
+#. FRMDiagnosticTool..btnRH..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:25
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:25
+msgid "Start Random Hash"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2..Caption
+#. FRMDiagnosticTool..btnRH2..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:34
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:34
+msgid "Start Random Hash 2"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2C..Caption
+#. FRMDiagnosticTool..btnRH2C..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:51
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:51
+msgid "Start Random Hash 2 (Cached)"
+msgstr ""
+
+#. FRMDiagnosticTool..btnEntropy..Caption
+#. FRMDiagnosticTool..btnEntropy..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:60
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:60
+msgid "Entropy Tests"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2NonceScan..Caption
+#. FRMDiagnosticTool..btnRH2NonceScan..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:69
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:69
+msgid "Start Random Hash 2 (Nonce Scan)"
+msgstr ""
+
+#. FRMDiagnosticTool..txtScanLevel..TextHint
+#. FRMDiagnosticTool..txtScanLevel..TextHint
+#: gui-classic/UFRMDiagnosticTool.dfm:79
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:79
+msgid "Enter Scan Level (2-4)"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRHC..Caption
+#. FRMDiagnosticTool..btnRHC..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:86
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:86
+msgid "Start Random Hash (Cached)"
+msgstr ""
+
+#. FRMHashLock..Caption
+#: gui-classic/UFRMHashLock.dfm:5
+msgid "Atomic Swap Hash-Lock "
+msgstr ""
+
+#. FRMHashLock..lblError..Caption
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblEncryptionErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblTransactionErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblChangeKeyErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewOwnerErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblListAccountErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsDelistAccount..lblDelistErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyAccountErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeInfoErrors..Caption
+#: gui-classic/UFRMHashLock.dfm:29 gui-classic/UFRMOperation.dfm:191
+#: gui-classic/UFRMOperation.dfm:327 gui-classic/UFRMOperation.dfm:405
+#: gui-classic/UFRMOperation.dfm:422 gui-classic/UFRMOperation.dfm:534
+#: gui-classic/UFRMOperation.dfm:778 gui-classic/UFRMOperation.dfm:820
+#: gui-classic/UFRMOperation.dfm:973
+msgid "Errors detected"
+msgstr ""
+
+#. FRMHashLock..btnSet..Caption
+#: gui-classic/UFRMHashLock.dfm:56
+msgid "Set Hash-Lock"
+msgstr ""
+
+#. FRMHashLock..GroupBox1..Caption
+#: gui-classic/UFRMHashLock.dfm:67
+msgid "Mode"
+msgstr ""
+
+#. FRMHashLock..GroupBox1..rbHashLock....Caption
+#: gui-classic/UFRMHashLock.dfm:76
+msgid "Hash-Lock - the 32 byte hash-lock provided to you by the counterparty"
+msgstr ""
+
+#. FRMHashLock..GroupBox1..rbHashLockKey....Caption
+#: gui-classic/UFRMHashLock.dfm:86
+msgid ""
+"Hash-Lock Key - a secret that will be hashed to create the 32 byte hash-lock"
+msgstr ""
+
+#. FRMHashLock..GroupBox2..Caption
+#: gui-classic/UFRMHashLock.dfm:96
+msgid "Data"
+msgstr ""
+
+#. FRMHashLock..GroupBox2..Label2..Caption
+#: gui-classic/UFRMHashLock.dfm:106
+msgid "Please enter the hash lock data as a hexadecimal string"
+msgstr ""
+
+#. FRMMemoText..Caption
+#: gui-classic/UFRMMemoText.dfm:5
+msgid "Information"
+msgstr ""
+
+#. FRMMemoText..Memo....Lines.Strings
+#: gui-classic/UFRMMemoText.dfm:53
+msgid "Memo"
+msgstr ""
+
+#. FRMNewPrivateKeyType..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:6
+msgid "New Private Key"
+msgstr ""
+
+#. FRMNewPrivateKeyType..Label1..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:26
+msgid "Name"
+msgstr ""
+
+#. FRMNewPrivateKeyType..ebName..Text
+#: gui-classic/UFRMNewPrivateKeyType.dfm:34
+msgid "ebName"
+msgstr ""
+
+#. FRMNewPrivateKeyType..rgKeyType..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:41
+msgid " Key Type: "
+msgstr ""
+
+#. FRMNewPrivateKeyType..rgKeyType....Items.Strings
+#: gui-classic/UFRMNewPrivateKeyType.dfm:43
+msgid "asdf"
+msgstr ""
+
+#. FRMNewPrivateKeyType..bbOk..Caption
+#. FRMNodesIp..bbOk..Caption
+#. FRMChangeLanguage..bbOk..Caption
+#. FRMChangeLanguage..bbOk..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:51 gui-classic/UFRMNodesIp.dfm:42
+#: gui-classic/UFRMSelectLanguage.dfm:18
+#: lib/i386-win32/ufrmselectlanguage.dfm:18
+msgid "OK"
+msgstr ""
+
+#. FRMNodesIp..Caption
+#: gui-classic/UFRMNodesIp.dfm:6
+msgid "Nodes IP"
+msgstr ""
+
+#. FRMNodesIp..Label1..Caption
+#: gui-classic/UFRMNodesIp.dfm:25
+msgid "Available Nodes Ip to connect"
+msgstr ""
+
+#. FRMNodesIp..memoNodesIp....Lines.Strings
+#: gui-classic/UFRMNodesIp.dfm:33
+msgid "memoNodesIp"
+msgstr ""
+
+#. FRMNodesIp..cbTryOnlyWithThisServers..Caption
+#: gui-classic/UFRMNodesIp.dfm:82
+msgid "Try to connect ONLY with this servers"
+msgstr ""
+
+#. FRMOperation..Caption
+#: gui-classic/UFRMOperation.dfm:6
+msgid "New Operation"
+msgstr ""
+
+#. FRMOperation..lblAccountCaption..Caption
+#. FRMSaleAccounts..lblAccountCaption..Caption
+#: gui-classic/UFRMOperation.dfm:26 gui-classic/UFRMSaleAccounts.dfm:25
+msgid "Account:"
+msgstr ""
+
+#. FRMOperation..lblAccountBalance..Caption
+#. FRMSaleAccounts..lblAccountBalance..Caption
+#: gui-classic/UFRMOperation.dfm:35 gui-classic/UFRMSaleAccounts.dfm:53
+msgid "lblAccountBalance"
+msgstr ""
+
+#. FRMOperation..lblAccountsCount..Caption
+#. FRMSaleAccounts..lblAccountsCount..Caption
+#: gui-classic/UFRMOperation.dfm:59 gui-classic/UFRMSaleAccounts.dfm:66
+msgid "XXX"
+msgstr ""
+
+#. FRMOperation..bbExecute..Caption
+#. FRMOperation..ActionList..actExecute..Caption
+#. FRMSaleAccounts..bbExecute..Caption
+#. FRMSaleAccounts..ActionList..actExecute..Caption
+#: gui-classic/UFRMOperation.dfm:68 gui-classic/UFRMOperation.dfm:1179
+#: gui-classic/UFRMSaleAccounts.dfm:178 gui-classic/UFRMSaleAccounts.dfm:215
+msgid "Execute (F12)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..lblFee..Caption
+#: gui-classic/UFRMOperation.dfm:113
+msgid "Operation Fee"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..lblSignerAccount..Caption
+#: gui-classic/UFRMOperation.dfm:122
+msgid "Signer account (Fee payer)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..Caption
+#: gui-classic/UFRMOperation.dfm:165
+msgid " Payload: "
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblEncryptPassword..Caption
+#: gui-classic/UFRMOperation.dfm:172
+msgid "Password:"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..Label4..Caption
+#: gui-classic/UFRMOperation.dfm:181
+msgid "Payload Data"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbEncryptedWithEC..Caption
+#: gui-classic/UFRMOperation.dfm:216
+msgid "Encrypted with dest account public key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbEncrptedWithPassword..Caption
+#: gui-classic/UFRMOperation.dfm:227
+msgid "Encrypted with password"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbNotEncrypted..Caption
+#: gui-classic/UFRMOperation.dfm:237
+msgid "Dont encrypt (Public payload)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbEncryptedWithOldEC..Caption
+#: gui-classic/UFRMOperation.dfm:272
+msgid "Encrypted with old public key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..cbPayloadAsHex..Caption
+#: gui-classic/UFRMOperation.dfm:282
+msgid "As Hex"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..Caption
+#: gui-classic/UFRMOperation.dfm:302
+msgid "Transaction"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblDestAccount..Caption
+#: gui-classic/UFRMOperation.dfm:308
+msgid "Destination account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblAmount..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyAmount..Caption
+#: gui-classic/UFRMOperation.dfm:317 gui-classic/UFRMOperation.dfm:810
+msgid "Amount"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..Caption
+#: gui-classic/UFRMOperation.dfm:387
+msgid "Change Key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewPrivateKey..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyNewKey..Caption
+#: gui-classic/UFRMOperation.dfm:394 gui-classic/UFRMOperation.dfm:837
+msgid "New private key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewOwnerPublicKey..Caption
+#: gui-classic/UFRMOperation.dfm:437
+msgid "New owners public key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..rbChangeKeyWithAnother..Caption
+#: gui-classic/UFRMOperation.dfm:446
+msgid "Change private key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..rbChangeKeyTransferAccountToNewOwner..Caption
+#: gui-classic/UFRMOperation.dfm:514
+msgid "Transfer account to a new owner"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..Caption
+#: gui-classic/UFRMOperation.dfm:526
+msgid "List Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblPrice..Caption
+#: gui-classic/UFRMOperation.dfm:550
+msgid "Sale Price"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblSeller..Caption
+#: gui-classic/UFRMOperation.dfm:560
+msgid "Seller Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblNewKey..Caption
+#: gui-classic/UFRMOperation.dfm:604
+msgid "Buyer Key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblTimeLock..Caption
+#: gui-classic/UFRMOperation.dfm:614
+msgid "Time-Lock"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblHashLock..Caption
+#: gui-classic/UFRMOperation.dfm:623
+msgid "Hash-Lock"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForPublicSale..Caption
+#: gui-classic/UFRMOperation.dfm:699
+msgid "List for Public Sale"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForPrivateSale..Caption
+#: gui-classic/UFRMOperation.dfm:707
+msgid "List for Private Sale"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForAccountSwap..Caption
+#: gui-classic/UFRMOperation.dfm:715
+msgid "List for Atomic Account Swap"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForCoinSwap..Caption
+#: gui-classic/UFRMOperation.dfm:723
+msgid "List for Atomic Coin Swap"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebPrice..TextHint
+#: gui-classic/UFRMOperation.dfm:732
+msgid "PASC Quantity"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebSellerAccount..TextHint
+#: gui-classic/UFRMOperation.dfm:740
+msgid "Account Number"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebNewKey..TextHint
+#: gui-classic/UFRMOperation.dfm:748
+msgid "BASE58 Encoded Public Key Of New Owner"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebTimeLock..Hint
+#: gui-classic/UFRMOperation.dfm:755
+msgid "Block Number "
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebTimeLock..TextHint
+#: gui-classic/UFRMOperation.dfm:759
+msgid "Block number"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsDelistAccount..Caption
+#: gui-classic/UFRMOperation.dfm:770
+msgid "Delist Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..Caption
+#: gui-classic/UFRMOperation.dfm:790
+msgid "Buy Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblAccountToBuy..Caption
+#: gui-classic/UFRMOperation.dfm:799
+msgid "Account to Buy"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..Label2..Caption
+#: gui-classic/UFRMOperation.dfm:846
+msgid "any over-payment will remain on bought account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..Caption
+#: gui-classic/UFRMOperation.dfm:966
+msgid "Change Info"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeName..Caption
+#: gui-classic/UFRMOperation.dfm:990
+msgid "Change name"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeType..Caption
+#: gui-classic/UFRMOperation.dfm:1001
+msgid "Change type"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeAccountData..Caption
+#: gui-classic/UFRMOperation.dfm:1012
+msgid "Change Data"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..ebChangeName..TextHint
+#: gui-classic/UFRMOperation.dfm:1022
+msgid "Account name (null or 3..64 chars)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..ebChangeType..TextHint
+#: gui-classic/UFRMOperation.dfm:1030
+msgid "0..65535"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..ebChangeAccountData..TextHint
+#: gui-classic/UFRMOperation.dfm:1038
+msgid "Hexadecimal value (0..32 bytes)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsGlobalError..lblGlobalErrors..Caption
+#: gui-classic/UFRMOperation.dfm:1060
+msgid "????"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsGlobalError..bbPassword..Caption
+#. FRMWalletKeys..bbUpdatePassword..Caption
+#: gui-classic/UFRMOperation.dfm:1076 gui-classic/UFRMWalletKeys.dfm:500
+msgid "Password"
+msgstr ""
+
+#. FRMOperation..memoAccounts....Lines.Strings
+#. FRMOperation..memoAccounts....Lines.Strings
+#. FRMSaleAccounts..memoAccounts....Lines.Strings
+#. FRMSaleAccounts..memoAccounts....Lines.Strings
+#: gui-classic/UFRMOperation.dfm:1152 gui-classic/UFRMOperation.dfm:1153
+#: gui-classic/UFRMSaleAccounts.dfm:87 gui-classic/UFRMSaleAccounts.dfm:88
+msgid "123456-11 (0.0000); 123456-11 (0.0000); "
+msgstr ""
+
+#. FRMOperation..ebSenderAccount..Text
+#. FRMSaleAccounts..ebSenderAccount..Text
+#: gui-classic/UFRMOperation.dfm:1171 gui-classic/UFRMSaleAccounts.dfm:107
+msgid "ebSenderAccount"
+msgstr ""
+
+#. FRMOperationsExplorer..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:5
+msgid "Operations Explorer Tool"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlTop..lblTopCaption....Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:58
+msgid ""
+"You can use this tool to explore operations, also you can copy/paste "
+"operations as a RAW (Use Ctrl+I to Import). This tool allows to generate a "
+"Multioperation, send to third party the RAW, add more txs... and then sign. "
+"Once Everybody has signed, you will be able to EXECUTE OPERATION to be "
+"added to network nodes. "
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlExport..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:85
+msgid "pnlExport"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlExport..Label1..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:94
+msgid "Operation as RAW:"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlInfo..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:115
+msgid "pnlInfo"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlInfo..pnlInfoOptions..Label2..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:139
+msgid "Multioperation actions:"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlInfo..pnlInfoOptions..bbRandom..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:188
+msgid "RANDOM OPERATIONS"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:199
+msgid "Tools"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..MiImportOperationsFromTxt..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:201
+msgid "Import Operations from RAW"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..MiDivider1..Caption
+#. FRMOperationsExplorer..mMenu..MiActions..MenuItem6..Caption
+#. FRMWallet..MainMenu..miProject..miN1..Caption
+#. FRMWallet..MainMenu..miProject..N1..Caption
+#. FRMWallet..MainMenu..MiOperations..N2..Caption
+#. FRMWallet..MainMenu..MiOperations..N3..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:206
+#: gui-classic/UFRMOperationsExplorer.dfm:224 gui-classic/UFRMWallet.dfm:1254
+#: gui-classic/UFRMWallet.dfm:1270 gui-classic/UFRMWallet.dfm:1310
+#: gui-classic/UFRMWallet.dfm:1327
+msgid "-"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..miLoadFromBlockchain..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:209
+msgid "Load Operations from Blockchain"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..MiLoadOperationsFromBlockchainFile..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:214
+msgid "Load Operations from Blockchain file"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiActions..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:219
+msgid "Actions"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActExecuteOperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:244
+msgid "Execute Operation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActAddTxToMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:249
+msgid "Add Tx to Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..AddOpChangeToMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:254
+msgid "Add OpChange to Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActRemoveAccountFromMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:259
+msgid "Remove Account from Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActSignMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:264
+msgid "Sign Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActAddTx..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:269
+msgid "Add Tx"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActAddOpChange..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:274
+msgid "Add OpChange"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActRemove..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:279
+msgid "Remove"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActSign..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:284
+msgid "Sign"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Caption
+#. FRMWallet..MainMenu..miProject..miOptions..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:6
+#: gui-classic/UFRMWallet.dfm:1257
+msgid "Options"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label1..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:25
+msgid "Default fee for operation"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label2..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:34
+msgid "Internet Server Port"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..lblDefaultInternetServerPort..Caption
+#. FRMPascalCoinWalletConfig..lblDefaultJSONRPCMinerServerPort..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:43
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:87
+msgid "(Default XXXX)"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label3..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:52
+msgid "Miner Name:"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label4..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:61
+msgid "This name will be included in each new block you mine!"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label5..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:78
+msgid "JSON-RPC Port"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label6..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:96
+msgid "Allowed IP's"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label7..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:105
+msgid "Ip's separated by semicolon or empty for all"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbJSONRPCMinerServerActive..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:122
+msgid "JSON-RPC Server Miner (TCP/IP, no HTTP)"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbSaveLogFiles..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:139
+msgid "Save log file"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbShowLogs..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:148
+msgid "Show logs"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..bbUpdatePassword..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:196
+msgid "Wallet Password"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..ebMinerName..Text
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:265
+msgid "ebMinerName"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbShowModalMessages..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:272
+msgid "Show modal messages"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:301
+msgid " Miner Server Private Key: "
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..rbGenerateANewPrivateKeyEachBlock..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:308
+msgid "Generate a new private key for each generated block"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..rbUseARandomKey..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:316
+msgid "Use a random existing key"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..rbMineAllwaysWithThisKey..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:324
+msgid "Always mine with this key:"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbSaveDebugLogs..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:341
+msgid "Save debug logs too"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..bbOpenDataFolder..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:349
+msgid "Open Data Folder"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbJSONRPCPortEnabled..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:393
+msgid "JSON-RPC Server port enabled (HTTP)"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..ebJSONRPCAllowedIPs..Text
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:403
+msgid "ebJSONRPCAllowedIPs"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbDownloadNewCheckpoint..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:410
+msgid "Download new Checkpoint if blockchain older than..."
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..bbChangeLanguage..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:428
+msgid "Change UI language"
+msgstr ""
+
+#. FRMPayloadDecoder..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:7
+msgid "Operation Information/Decoder"
+msgstr ""
+
+#. FRMPayloadDecoder..Label1..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:26
+msgid "Block/Op:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblBlock..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:33
+msgid "000000/0000"
+msgstr ""
+
+#. FRMPayloadDecoder..Label6..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:59
+msgid "Date Time:"
+msgstr ""
+
+#. FRMPayloadDecoder..Label2..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:66
+msgid "Operation:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblAmountCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:88
+msgid "Amount:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblFeeCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:108
+msgid "Fee:"
+msgstr ""
+
+#. FRMPayloadDecoder..Label4..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:128
+msgid "OpHash"
+msgstr ""
+
+#. FRMPayloadDecoder..lblSenderCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:135
+msgid "Sender:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblSender..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:142
+msgid "9999999-99"
+msgstr ""
+
+#. FRMPayloadDecoder..lblReceiverCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:155
+msgid "Receiver:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblReceiverInfo..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:175
+msgid "(Receiver info)"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:192
+msgid "Payload"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..Label7..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:202
+msgid "Decoded Payload:"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..lblDecodedMethod..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:210
+msgid "(Method)"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..Label3..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:223
+msgid "Original Payload in Hexadecimal:"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoDecoded....Lines.Strings
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoOriginalPayloadInHexa....Lines.Strings
+#: gui-classic/UFRMPayloadDecoder.dfm:237
+#: gui-classic/UFRMPayloadDecoder.dfm:256
+msgid "memoDecoded"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..cbShowAsHexadecimal..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:267
+msgid "Show as hexadecimal"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:273
+msgid "Decode methods"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..lblPasswordsInfo..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:280
+msgid "lblPasswordsInfo"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..cbMethodPublicPayload..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:287
+msgid "Not encrypted (Public payload)"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..cbUsingPrivateKeys..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:296
+msgid "Using Private keys of my Wallet"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..cbUsingPasswords..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:305
+msgid "Using Passwords of the list"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..bbSaveMethods..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:323
+msgid "Save"
+msgstr ""
+
+#. FRMPayloadDecoder..bbFind..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:376
+msgid "&Find"
+msgstr ""
+
+#. FRMPayloadDecoder..ebOphash..Text
+#: gui-classic/UFRMPayloadDecoder.dfm:420
+msgid "12345678901234567890123456789012345678901234567890123456789012"
+msgstr ""
+
+#. FRMDiagnosticTool..txtLog..Text
+#: gui-classic/UFRMRandomHashUtil.dfm:26
+msgid "txtLog"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH..Caption
+#: gui-classic/UFRMRandomHashUtil.dfm:33
+msgid "Random Hash"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2..Caption
+#: gui-classic/UFRMRandomHashUtil.dfm:41
+msgid "Random Hash 2"
+msgstr ""
+
+#. FRMRandomOperations..Caption
+#. FRMRandomOperations..pnlClient..pnlTop1..bbRandomOperations..Caption
+#: gui-classic/UFRMRandomOperations.dfm:4
+#: gui-classic/UFRMRandomOperations.dfm:73
+msgid "Random Operations"
+msgstr ""
+
+#. FRMRandomOperations..pnlTop..lblTopCaption....Caption
+#: gui-classic/UFRMRandomOperations.dfm:39
+msgid ""
+"WARNING! This form will generate RANDOM operations using your private "
+"keys!!!"
+msgstr ""
+
+#. FRMRandomOperations..pnlClient..mLogs....Lines.Strings
+#: gui-classic/UFRMRandomOperations.dfm:85
+msgid "mLogs"
+msgstr ""
+
+#. FRMRPCCalls..Caption
+#. FRMWallet..MainMenu..miProject..MiRPCCalls..Caption
+#: gui-classic/UFRMRPCCalls.dfm:5 gui-classic/UFRMWallet.dfm:1266
+msgid "RPC Calls"
+msgstr ""
+
+#. FRMRPCCalls..pnlTop..lblTopCaption....Caption
+#: gui-classic/UFRMRPCCalls.dfm:45
+msgid ""
+"WARNING! Execute only calls you understand. Execute unknown calls provided "
+"by third person can cause that you lost your keys/balance!"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..Label1..Caption
+#: gui-classic/UFRMRPCCalls.dfm:83
+msgid "Method"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..Label2..Caption
+#: gui-classic/UFRMRPCCalls.dfm:92
+msgid "Server"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..ebMethod..Text
+#: gui-classic/UFRMRPCCalls.dfm:102
+msgid "ebMethod"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..pageControl..tsKeyNames..Caption
+#: gui-classic/UFRMRPCCalls.dfm:113
+msgid "Key/Value Params"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..pageControl..tsJSONParams..Caption
+#: gui-classic/UFRMRPCCalls.dfm:130
+msgid "Params as JSON"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..bbSendCommand..Caption
+#: gui-classic/UFRMRPCCalls.dfm:148
+msgid "&Send"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..ebServerURL..Text
+#: gui-classic/UFRMRPCCalls.dfm:195
+msgid "ebServerURL"
+msgstr ""
+
+#. FRMRPCCalls..pnlInfo..pnlInfoBottom..pnlLastCall..Label3..Caption
+#: gui-classic/UFRMRPCCalls.dfm:244
+msgid "Last call result:"
+msgstr ""
+
+#. FRMRPCCalls..pnlInfo..pnlInfoBottom..pnlLastCall..lblLastCallResultState..Caption
+#: gui-classic/UFRMRPCCalls.dfm:253
+msgid "STATE"
+msgstr ""
+
+#. FRMSaleAccounts..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:5
+msgid "Sale accounts"
+msgstr ""
+
+#. FRMSaleAccounts..Label1..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:32
+msgid "Sale price:"
+msgstr ""
+
+#. FRMSaleAccounts..Label2..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:39
+msgid "Locked until block:"
+msgstr ""
+
+#. FRMSaleAccounts..Label3..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:46
+msgid "Seller account (where to pay)"
+msgstr ""
+
+#. FRMSaleAccounts..ebSalePrice..Text
+#. FRMSaleAccounts..ebSellerAccount..Text
+#: gui-classic/UFRMSaleAccounts.dfm:115 gui-classic/UFRMSaleAccounts.dfm:170
+msgid "Edit1"
+msgstr ""
+
+#. FRMSaleAccounts..ebLockedUntilBlock..Text
+#: gui-classic/UFRMSaleAccounts.dfm:123
+msgid "ebLockedUntilBlock"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:130
+msgid " Sell options: "
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..lblNewOwnerPublicKey..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:137
+msgid "New owner's public key"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..rbEveryoneCanBuy..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:144
+msgid "Everyone can buy"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..rbReservedForAPublickKey..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:152
+msgid "Reserved for only one public key (private)"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..ebNewOwnerPublicKey..Text
+#: gui-classic/UFRMSaleAccounts.dfm:161
+msgid "ebDestAccount"
+msgstr ""
+
+#. FRMChangeLanguage..Caption
+#. FRMChangeLanguage..Caption
+#: gui-classic/UFRMSelectLanguage.dfm:8
+#: lib/i386-win32/ufrmselectlanguage.dfm:8
+msgid "Language Selection"
+msgstr ""
+
+#. FRMChangeLanguage..bbCancel..Caption
+#. FRMChangeLanguage..bbCancel..Caption
+#: gui-classic/UFRMSelectLanguage.dfm:28
+#: lib/i386-win32/ufrmselectlanguage.dfm:28
+msgid "Cancel"
+msgstr ""
+
+#. FRMChangeLanguage..Label1..Caption
+#. FRMChangeLanguage..Label1..Caption
+#: gui-classic/UFRMSelectLanguage.dfm:46
+#: lib/i386-win32/ufrmselectlanguage.dfm:46
+msgid "Select your preferred language"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblCurrentBlockCaption..Caption
+#: gui-classic/UFRMWallet.dfm:135
+msgid "Total Blocks:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblCurrentBlockTimeCaption..Caption
+#: gui-classic/UFRMWallet.dfm:153
+msgid "Current Block Age:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblCurrentBlockTime..Caption
+#: gui-classic/UFRMWallet.dfm:162
+msgid "000 seconds ago"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblOperationsPendingCaption..Caption
+#: gui-classic/UFRMWallet.dfm:171
+msgid "Pending Operations:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblMiningStatusCaption..Caption
+#: gui-classic/UFRMWallet.dfm:189
+msgid "Miner Clients:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblCurrentDifficultyCaption..Caption
+#: gui-classic/UFRMWallet.dfm:207
+msgid "Current Target:"
+msgstr ""
+
+#. FRMWallet..pnlTop..Label4..Caption
+#: gui-classic/UFRMWallet.dfm:234
+msgid "Time average:"
+msgstr ""
+
+#. FRMWallet..pnlTop..Label8..Caption
+#: gui-classic/UFRMWallet.dfm:243
+msgid "Node Status:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblNodeStatus..Caption
+#: gui-classic/UFRMWallet.dfm:252
+msgid "???"
+msgstr ""
+
+#. FRMWallet..pnlTop..Label16..Caption
+#: gui-classic/UFRMWallet.dfm:294
+msgid "Blocks Found:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblBlocksFound..Hint
+#: gui-classic/UFRMWallet.dfm:309
+msgid "Blocks found while Miner is running..."
+msgstr ""
+
+#. FRMWallet..pnlTop..lblReceivedMessages..Caption
+#: gui-classic/UFRMWallet.dfm:328
+msgid "Received Messages"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblBuild..Caption
+#: gui-classic/UFRMWallet.dfm:344
+msgid "Build"
+msgstr ""
+
+#. FRMWallet..StatusBar......Text
+#: gui-classic/UFRMWallet.dfm:363
+msgid "Server Active"
+msgstr ""
+
+#. FRMWallet..StatusBar......Text
+#: gui-classic/UFRMWallet.dfm:367
+msgid "Connection status"
+msgstr ""
+
+#. FRMWallet..StatusBar......Text
+#: gui-classic/UFRMWallet.dfm:371
+msgid "Blocks"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:385
+msgid "Account Explorer"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..Label18..Caption
+#. FRMWallet..MainMenu..MiOperations..MiFindaccount..Caption
+#: gui-classic/UFRMWallet.dfm:406 gui-classic/UFRMWallet.dfm:1295
+msgid "Find account"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..cbExploreMyAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:458
+msgid "Explore accounts with one of my Wallet Keys"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..bbChangeKeyName..Caption
+#: gui-classic/UFRMWallet.dfm:476
+msgid "Change Key name"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..cbFilterAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:485
+msgid "Filter accounts by balance"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..ebFilterAccountByBalanceMin..Hint
+#: gui-classic/UFRMWallet.dfm:494
+msgid "Min balance"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..ebFilterAccountByBalanceMax..Hint
+#: gui-classic/UFRMWallet.dfm:504
+msgid "Max balance"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..bbAccountsRefresh..Caption
+#: gui-classic/UFRMWallet.dfm:580
+msgid "Refresh"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsAccountOperations..Caption
+#: gui-classic/UFRMWallet.dfm:622
+msgid "Account Operations"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:634
+msgid "Selected Accounts For Batch Operation"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsTop..Label15..Caption
+#: gui-classic/UFRMWallet.dfm:667
+msgid "Select multiple accounts to execute massive operations"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..Label22..Caption
+#: gui-classic/UFRMWallet.dfm:703
+msgid "Accounts Balance:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsAdd..Caption
+#: gui-classic/UFRMWallet.dfm:730
+msgid ">"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsAddAll..Caption
+#: gui-classic/UFRMWallet.dfm:738
+msgid ">>"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsDel..Caption
+#: gui-classic/UFRMWallet.dfm:746
+msgid "<"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsDelAll..Caption
+#: gui-classic/UFRMWallet.dfm:754
+msgid "<<"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..bbSelectedAccountsOperation..Caption
+#. FRMWallet..MainMenu..MiOperations..Caption
+#: gui-classic/UFRMWallet.dfm:763 gui-classic/UFRMWallet.dfm:1278
+msgid "Operations"
+msgstr ""
+
+#. FRMWallet..PageControl..tsPendingOperations..Caption
+#: gui-classic/UFRMWallet.dfm:829
+msgid "Pending Operations"
+msgstr ""
+
+#. FRMWallet..PageControl..tsPendingOperations..pnlPendingOperations..Label10....Caption
+#: gui-classic/UFRMWallet.dfm:865
+msgid ""
+"Here you can see Operations transmited/received from other nodes that will "
+"be included in next block. There is no guarantee that other nodes will "
+"include them when mining, so it's important that you mine too to help "
+"include Operations to the main BlockChain"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Caption
+#: gui-classic/UFRMWallet.dfm:879
+msgid "Block Explorer"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..Label9..Caption
+#. FRMWallet..PageControl..tsOperations..Panel1..Label2..Caption
+#: gui-classic/UFRMWallet.dfm:898 gui-classic/UFRMWallet.dfm:994
+msgid "Filter by blocks range"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..lblHashRateBackBlocks..Caption
+#: gui-classic/UFRMWallet.dfm:907
+msgid "HashRate back blocks"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..lblHashRateBackBlocks1..Caption
+#: gui-classic/UFRMWallet.dfm:916
+msgid "Units"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits..Text
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:955 gui-classic/UFRMWallet.dfm:960
+msgid "Mh/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:959
+msgid "Kh/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:961
+msgid "Gh/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:962
+msgid "Th/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsOperations..Caption
+#. FRMWallet..MainMenu..MiOperations..MiOperationsExplorer..Caption
+#: gui-classic/UFRMWallet.dfm:975 gui-classic/UFRMWallet.dfm:1305
+msgid "Operations Explorer"
+msgstr ""
+
+#. FRMWallet..PageControl..tsLogs..Caption
+#: gui-classic/UFRMWallet.dfm:1027
+msgid "Logs"
+msgstr ""
+
+#. FRMWallet..PageControl..tsLogs..pnlTopLogs..cbShowDebugLogs..Caption
+#: gui-classic/UFRMWallet.dfm:1046
+msgid "Show Debug Logs"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Caption
+#: gui-classic/UFRMWallet.dfm:1062
+msgid "Node Stats"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Label3..Caption
+#: gui-classic/UFRMWallet.dfm:1076
+msgid "Active Connections:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Label6..Caption
+#: gui-classic/UFRMWallet.dfm:1086
+msgid "Known Node Servers:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Label7..Caption
+#: gui-classic/UFRMWallet.dfm:1096
+msgid "Blacklisted Nodes"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Caption
+#: gui-classic/UFRMWallet.dfm:1135
+msgid "Messages"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Label11..Caption
+#: gui-classic/UFRMWallet.dfm:1149
+msgid "Messages:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Label12..Caption
+#: gui-classic/UFRMWallet.dfm:1158
+msgid "Message to send:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Label13..Caption
+#: gui-classic/UFRMWallet.dfm:1167
+msgid "Available Connections:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Label14....Caption
+#: gui-classic/UFRMWallet.dfm:1178
+msgid ""
+"(Messages will be encrypted, so only dest connection will be able to read "
+"it)"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..bbSendAMessage..Caption
+#: gui-classic/UFRMWallet.dfm:1203
+msgid "Send a Message"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..memoMessageToSend....Lines.Strings
+#: gui-classic/UFRMWallet.dfm:1232
+msgid "memoMessageToSend"
+msgstr ""
+
+#. FRMWallet..MainMenu..miProject..Caption
+#: gui-classic/UFRMWallet.dfm:1247
+msgid "Project"
+msgstr ""
+
+#. FRMWallet..MainMenu..miProject..miPrivatekeys..Caption
+#: gui-classic/UFRMWallet.dfm:1249
+msgid "Private Keys"
+msgstr ""
+
+#. FRMWallet..MainMenu..miProject..IPnodes1..Caption
+#: gui-classic/UFRMWallet.dfm:1262
+msgid "Available Node List"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..miNewOperation..Caption
+#: gui-classic/UFRMWallet.dfm:1280
+msgid "New single Operation"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiFindOperationbyOpHash..Caption
+#: gui-classic/UFRMWallet.dfm:1285
+msgid "Find Operation by OpHash"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiDecodePayload..Caption
+#: gui-classic/UFRMWallet.dfm:1290
+msgid "Decode Payload"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiAccountInformation..Caption
+#: gui-classic/UFRMWallet.dfm:1300
+msgid "Account Information"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiAddaccounttoSelected..Caption
+#: gui-classic/UFRMWallet.dfm:1313
+msgid "Add account to selected"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiRemoveaccountfromselected..Caption
+#: gui-classic/UFRMWallet.dfm:1318
+msgid "Remove account from selected"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiMultiaccountoperation..Caption
+#: gui-classic/UFRMWallet.dfm:1323
+msgid "Multi account operation"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiFindpreviousaccountwithhighbalance..Caption
+#: gui-classic/UFRMWallet.dfm:1330
+msgid "Find previous account with high balance"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiFindnextaccountwithhighbalance..Caption
+#: gui-classic/UFRMWallet.dfm:1335
+msgid "Find next account with high balance"
+msgstr ""
+
+#. FRMWallet..MainMenu..miAbout..Caption
+#: gui-classic/UFRMWallet.dfm:1341
+msgid "About"
+msgstr ""
+
+#. FRMWallet..MainMenu..miAbout..miAboutPascalCoin..Caption
+#: gui-classic/UFRMWallet.dfm:1343
+msgid "About Pascal Coin..."
+msgstr ""
+
+#. FRMWalletKeys..Caption
+#: gui-classic/UFRMWalletKeys.dfm:6
+msgid "Wallet keys"
+msgstr ""
+
+#. FRMWalletKeys..lblEncryptionTypeCaption..Caption
+#: gui-classic/UFRMWalletKeys.dfm:25
+msgid "Encryption type:"
+msgstr ""
+
+#. FRMWalletKeys..lblEncryptionType..Caption
+#. FRMWalletKeys..lblKeyName..Caption
+#: gui-classic/UFRMWalletKeys.dfm:32 gui-classic/UFRMWalletKeys.dfm:47
+msgid "000000000"
+msgstr ""
+
+#. FRMWalletKeys..lblKeyNameCaption..Caption
+#: gui-classic/UFRMWalletKeys.dfm:39
+msgid "Key name:"
+msgstr ""
+
+#. FRMWalletKeys..lblPrivateKeyCaption..Caption
+#: gui-classic/UFRMWalletKeys.dfm:54
+msgid "Public Key:"
+msgstr ""
+
+#. FRMWalletKeys..lblKeysEncrypted..Caption
+#: gui-classic/UFRMWalletKeys.dfm:62
+msgid "lblKeysEncrypted"
+msgstr ""
+
+#. FRMWalletKeys..bbExportPrivateKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:85
+msgid "Export Private key"
+msgstr ""
+
+#. FRMWalletKeys..memoPrivateKey....Lines.Strings
+#: gui-classic/UFRMWalletKeys.dfm:158
+msgid "memoPrivateKey"
+msgstr ""
+
+#. FRMWalletKeys..bbChangeName..Caption
+#: gui-classic/UFRMWalletKeys.dfm:169
+msgid "Change Name"
+msgstr ""
+
+#. FRMWalletKeys..bbImportPrivateKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:178
+msgid "Import Private key"
+msgstr ""
+
+#. FRMWalletKeys..bbExportPublicKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:240
+msgid "Export Public key"
+msgstr ""
+
+#. FRMWalletKeys..bbImportPublicKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:306
+msgid "Import Public key"
+msgstr ""
+
+#. FRMWalletKeys..bbGenerateNewKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:372
+msgid "Generate a new Key"
+msgstr ""
+
+#. FRMWalletKeys..bbDelete..Caption
+#: gui-classic/UFRMWalletKeys.dfm:434
+msgid "Delete"
+msgstr ""
+
+#. FRMWalletKeys..bbExportAllWalletKeys..Caption
+#: gui-classic/UFRMWalletKeys.dfm:568
+msgid "Export all Wallet Keys to a file"
+msgstr ""
+
+#. FRMWalletKeys..bbImportKeysFile..Caption
+#: gui-classic/UFRMWalletKeys.dfm:634
+msgid "Import a Wallet Keys File"
+msgstr ""
+
+#. FRMWalletKeys..bbLock..Caption
+#: gui-classic/UFRMWalletKeys.dfm:700
+msgid "Lock"
+msgstr ""
+
+#. FRMWalletKeys..SaveDialog..DefaultExt
+#. FRMWalletKeys..OpenDialog..DefaultExt
+#: gui-classic/UFRMWalletKeys.dfm:758 gui-classic/UFRMWalletKeys.dfm:765
+msgid "dat"
+msgstr ""
+
+#. FRMWalletKeys..SaveDialog..Filter
+#: gui-classic/UFRMWalletKeys.dfm:759
+msgid "Wallet keys file|*.dat|All files|*.*"
+msgstr ""
+
+#. FRMWalletKeys..OpenDialog..Filter
+#: gui-classic/UFRMWalletKeys.dfm:766
+msgid "Wallet keys file (*.dat)|*.dat|All files (*.*)|*.*"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedHash
+#. Programmer's name for it: SUnSupportedHash
+#: core/URandomHash.pas:267 core/URandomHash2.pas:219
+msgid "Unsupported Hash Selected"
+msgstr ""
+
+#. Programmer's name for it: SInvalidRound
+#. Programmer's name for it: SInvalidRound
+#: core/URandomHash.pas:268 core/URandomHash2.pas:220
+msgid "Round must be between 0 and N inclusive"
+msgstr ""
+
+#. Programmer's name for it: SOverlappingArgs
+#. Programmer's name for it: SOverlappingArgs
+#: core/URandomHash.pas:269 core/URandomHash2.pas:221
+msgid "Overlapping read/write regions"
+msgstr ""
+
+#. Programmer's name for it: SBufferTooSmall
+#. Programmer's name for it: SBufferTooSmall
+#: core/URandomHash.pas:270 core/URandomHash2.pas:222
+msgid "Buffer too small to apply memory transform"
+msgstr ""
+
+#. Programmer's name for it: SBlockHeaderTooSmallForNonce
+#. Programmer's name for it: SBlockHeaderTooSmallForNonce
+#: core/URandomHash.pas:271 core/URandomHash2.pas:223
+msgid "Buffer too small to contain nonce"
+msgstr ""
+
+#. Programmer's name for it: SAESEngineNotInitialised
+#. Programmer's name for it: SAESEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:37
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:37
+msgid "AES Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBufferTooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:38
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:38
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:39
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:39
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:35
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:43
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:36
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:36
+msgid "Input Buffer too Short"
+msgstr ""
+
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBufferTooSmall
+#. Programmer's name for it: SOutputBufferTooSmall
+#. Programmer's name for it: SOutputBufferTooSmall
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:39
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:39
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:40
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:40
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:39
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:32
+#: libraries/cryptolib4pascal/ClpPaddedBufferedBlockCipher.pas:40
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:36
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:44
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:37
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:37
+msgid "Output Buffer too Short"
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterAESInit
+#. Programmer's name for it: SInvalidParameterAESInit
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:40
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:40
+msgid "Invalid Parameter Passed to AES Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:41
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:41
+msgid "Key Length not 128/192/256 bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidOperation
+#. Programmer's name for it: SInvalidOperation
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:42
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:42
+msgid "Should Never Get Here"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpAESPRNGRandom.pas:40
+msgid "AES RNG Seed Length must be either one of these \"128/192/256 bits\"."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpAgreementUtilities.pas:43
+msgid "Raw Agreement Algorithm \"%s\" Not Recognised."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpAgreementUtilities.pas:45
+msgid "Basic Agreement Algorithm \"%s\" Not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SArgon2TypeInvalid
+#: libraries/cryptolib4pascal/ClpArgon2ParametersGenerator.pas:41
+msgid "Selected Argon2Type is Invalid"
+msgstr ""
+
+#. Programmer's name for it: SArgon2VersionInvalid
+#: libraries/cryptolib4pascal/ClpArgon2ParametersGenerator.pas:42
+msgid "Selected Argon2Version is Invalid"
+msgstr ""
+
+#. Programmer's name for it: SArgon2MemoryCostTypeInvalid
+#: libraries/cryptolib4pascal/ClpArgon2ParametersGenerator.pas:43
+msgid "Selected Argon2MemoryCostType is Invalid"
+msgstr ""
+
+#. Programmer's name for it: SInvalidLength
+#: libraries/cryptolib4pascal/ClpArrayUtils.pas:30
+msgid "%d \" > \" %d"
+msgstr ""
+
+#. Programmer's name for it: SDataOverflow
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:43
+msgid "Data Overflow"
+msgstr ""
+
+#. Programmer's name for it: SDataOverflow
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:45
+msgid "Corrupted Stream - Invalid High Tag Number Found"
+msgstr ""
+
+#. Programmer's name for it: SEOFFound
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:46
+msgid "EOF Found Inside Tag Value"
+msgstr ""
+
+#. Programmer's name for it: SInvalidEnd
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:47
+msgid "EOF Found When Length Expected"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDerLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:48
+msgid "DER Length More Than 4 Bytes: %d"
+msgstr ""
+
+#. Programmer's name for it: SEndOfStream
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:49
+msgid "EOF Found Reading Length"
+msgstr ""
+
+#. Programmer's name for it: SNegativeLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:50
+msgid "Corrupted Stream - Negative Length Found"
+msgstr ""
+
+#. Programmer's name for it: SOutOfBoundsLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:51
+msgid "Corrupted stream - Out of Bounds Length Found"
+msgstr ""
+
+#. Programmer's name for it: SUnknownTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:52
+msgid "Unknown Tag \" %d \" Encountered"
+msgstr ""
+
+#. Programmer's name for it: SEndOfContent
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:53
+msgid "Unexpected End-of-Contents Marker"
+msgstr ""
+
+#. Programmer's name for it: SIndefiniteLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:54
+msgid "Indefinite Length Primitive Encoding Encountered"
+msgstr ""
+
+#. Programmer's name for it: SUnknownBerObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:55
+msgid "Unknown BER Object Encountered"
+msgstr ""
+
+#. Programmer's name for it: SCorruptedStream
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:56
+msgid "Corrupted Stream Detected: %s"
+msgstr ""
+
+#. Programmer's name for it: SInvalidLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:57
+msgid "Negative Lengths not Allowed\", \"Length\""
+msgstr ""
+
+#. Programmer's name for it: SEndOfStreamTwo
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:58
+msgid "DEF Length  %d \" TObject truncated by \" %d"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBufferLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:59
+msgid "Buffer Length Not Right For Data"
+msgstr ""
+
+#. Programmer's name for it: SMalformedContent
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:60
+msgid "Malformed End-of-Contents Marker"
+msgstr ""
+
+#. Programmer's name for it: SExtraData
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:62
+msgid "Extra Data Found After Object"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedObjectStream
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:63
+msgid "Cannot Recognise Object in Stream"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedObjectByteArray
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:64
+msgid "Cannot Recognise Object in ByteArray"
+msgstr ""
+
+#. Programmer's name for it: SIllegalObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:65
+msgid "Illegal Object in GetInstance:  %s, \"obj\""
+msgstr ""
+
+#. Programmer's name for it: SStrNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:66
+msgid "\"Str\" Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SProcessingError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:67
+msgid "Error Processing Object : \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:68
+msgid "Object Implicit - Explicit Expected."
+msgstr ""
+
+#. Programmer's name for it: SUnknownObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:69
+msgid "Unknown object in GetInstance:  %s, \"obj\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSequence
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:70
+msgid "\"Failed to Construct Sequence from byte array: \" %s"
+msgstr ""
+
+#. Programmer's name for it: SImplicitObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:71
+msgid "Implicitly Tagged Object"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:72
+msgid "Implicit Tagging for Tag:  %d"
+msgstr ""
+
+#. Programmer's name for it: SUnknownObjectBER
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:73
+msgid "Unknown BER Object Encountered: $%x"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTagging
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:74
+msgid "Implicit Tagging not Implemented"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTagging
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:76
+msgid "Sequences Must Use Constructed Encoding (see X.690 8.9.1/8.10.1)"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTagging
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:78
+msgid "Sets Must Use Constructed Encoding (see X.690 8.11.1/8.12.1)"
+msgstr ""
+
+#. Programmer's name for it: SMalformedObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:79
+msgid "Malformed Object %s"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:80
+msgid "Unsupported Tag Number"
+msgstr ""
+
+#. Programmer's name for it: SConvertError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:81
+msgid "EIOCryptoLibException Converting Stream to Byte Array: %s"
+msgstr ""
+
+#. Programmer's name for it: SEncodingError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:82
+msgid "Encoding Error in GetInstance:  %s  \"obj\""
+msgstr ""
+
+#. Programmer's name for it: SDataNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:83
+msgid "\"data\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidRange
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:84
+msgid "Must be in the Range 0 to 7\", \"padBits\""
+msgstr ""
+
+#. Programmer's name for it: SPadBitError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:85
+msgid "If \"data\" is Empty, \"padBits\" Must be 0"
+msgstr ""
+
+#. Programmer's name for it: SUnalignedData
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:86
+msgid "Attempt to Get non-octet Aligned Data from BIT STRING\""
+msgstr ""
+
+#. Programmer's name for it: STruncatedBitString
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:87
+msgid "Truncated BIT STRING Detected\", \"octets\""
+msgstr ""
+
+#. Programmer's name for it: SNotImplemented
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:88
+msgid "Not Implemented %s"
+msgstr ""
+
+#. Programmer's name for it: SUnConstructedTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:89
+msgid "Explicit Tags Must be Constructed (see X.690 8.14.2)"
+msgstr ""
+
+#. Programmer's name for it: SParsingError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:90
+msgid "%s"
+msgstr ""
+
+#. Programmer's name for it: SEmptyInput
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:91
+msgid "Input Cannot be Empty \"astr\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidValue
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:92
+msgid "Byte Value Should Have 1 Byte in it', \"val\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidBooleanValue
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:93
+msgid "BOOLEAN Value Should Have 1 Byte in it\", \"Value\""
+msgstr ""
+
+#. Programmer's name for it: SMalformedEnumerated
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:94
+msgid "Malformed Enumerated"
+msgstr ""
+
+#. Programmer's name for it: SZeroLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:95
+msgid "Enumerated has Zero Length, \"enc\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidEncoding
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:96
+msgid "Invalid Encoding Value: %d"
+msgstr ""
+
+#. Programmer's name for it: SFewObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:97
+msgid "Too Few Objects in Input Vector, \"v\""
+msgstr ""
+
+#. Programmer's name for it: SVectorTooLarge
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:98
+msgid "Input Vector too Large\", \"vector\""
+msgstr ""
+
+#. Programmer's name for it: SVectorTooLarge
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:100
+msgid ""
+"No Tagged Object Found in Vector. Structure Doesn 't Seem to be of Type "
+"External, \"Vector\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidEncodingValue
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:101
+msgid "Invalid Encoding Value"
+msgstr ""
+
+#. Programmer's name for it: SObjectNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:102
+msgid " \"obj\" Can't be Nil"
+msgstr ""
+
+#. Programmer's name for it: SValueNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:103
+msgid " \"value\" Can't be Nil"
+msgstr ""
+
+#. Programmer's name for it: SMalformedInteger
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:104
+msgid "Malformed Integer"
+msgstr ""
+
+#. Programmer's name for it: SIdentifierNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:105
+msgid "Identifier Cannot be Empty"
+msgstr ""
+
+#. Programmer's name for it: SInvalidOID
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:106
+msgid "\"String \" %s is \" not an OID\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidBranchId
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:107
+msgid "\"String \" %s \" not a valid OID branch\", \"branchID\""
+msgstr ""
+
+#. Programmer's name for it: SIllegalCharacters
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:108
+msgid "String Contains Illegal Characters \"str\""
+msgstr ""
+
+#. Programmer's name for it: SExpectedPublicKey
+#: libraries/cryptolib4pascal/ClpAsymmetricCipherKeyPair.pas:30
+msgid "Expected a Public Key \"publicParameter\""
+msgstr ""
+
+#. Programmer's name for it: SExpectedPrivateKey
+#: libraries/cryptolib4pascal/ClpAsymmetricCipherKeyPair.pas:31
+msgid "Expected a Private Key \"privateParameter\""
+msgstr ""
+
+#. Programmer's name for it: SOutputBufferTooSmall
+#. Programmer's name for it: SOutputBufferTooSmall
+#: libraries/cryptolib4pascal/ClpBaseKdfBytesGenerator.pas:36
+#: libraries/cryptolib4pascal/ClpPascalCoinECIESKdfBytesGenerator.pas:34
+msgid "Output Buffer too Small"
+msgstr ""
+
+#. Programmer's name for it: SOutputLengthTooLarge
+#: libraries/cryptolib4pascal/ClpBaseKdfBytesGenerator.pas:37
+msgid "Output Length too Large"
+msgstr ""
+
+#. Programmer's name for it: SKDFParameterNotFound
+#. Programmer's name for it: SKDFParameterNotFound
+#: libraries/cryptolib4pascal/ClpBaseKdfBytesGenerator.pas:38
+#: libraries/cryptolib4pascal/ClpPascalCoinECIESKdfBytesGenerator.pas:35
+msgid "KDF Parameters Required For KDF Generator"
+msgstr ""
+
+#. Programmer's name for it: SDivisionByZero
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:36
+msgid "Division by Zero Error"
+msgstr ""
+
+#. Programmer's name for it: SModulusPositive
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:37
+msgid "Modulus must be Positive"
+msgstr ""
+
+#. Programmer's name for it: SNotRelativelyPrime
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:38
+msgid "Numbers not Relatively Prime."
+msgstr ""
+
+#. Programmer's name for it: SNegativeValue
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:39
+msgid "Cannot be Called on Value < 0"
+msgstr ""
+
+#. Programmer's name for it: SNegativeExponent
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:40
+msgid "Negative Exponent"
+msgstr ""
+
+#. Programmer's name for it: SResultTooLarge
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:41
+msgid "Result too Large"
+msgstr ""
+
+#. Programmer's name for it: SNegativeBitPosition
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:42
+msgid "Bit Position must not be Negative"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBitAddress
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:43
+msgid "Bit Address less than Zero"
+msgstr ""
+
+#. Programmer's name for it: SZeroLengthBigInteger
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:44
+msgid "Zero length BigInteger"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSign
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:45
+msgid "Invalid Sign Value"
+msgstr ""
+
+#. Programmer's name for it: SNegativeSizeInBits
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:46
+msgid "sizeInBits must be non-negative"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBitLength
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:47
+msgid "bitLength < 2"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBase
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:48
+msgid "Only bases 2, 8, 10, or 16 allowed"
+msgstr ""
+
+#. Programmer's name for it: SBadCharacterRadix8
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:49
+msgid "Bad Character in radix 8 string: %s"
+msgstr ""
+
+#. Programmer's name for it: SBadCharacterRadix2
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:50
+msgid "Bad Character in radix 2 string: %s"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedBase
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:51
+msgid "Only bases 2, 8, 10, 16 are allowed"
+msgstr ""
+
+#. Programmer's name for it: SInvalidLength
+#: libraries/cryptolib4pascal/ClpBigIntegers.pas:31
+msgid "Standard Length Exceeded, \"n\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidMinValue
+#: libraries/cryptolib4pascal/ClpBigIntegers.pas:32
+msgid "\"min\" may not be greater than \"max\"\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:37
+msgid "Initialisation Vector Must be the Same Length as Block Size"
+msgstr ""
+
+#. Programmer's name for it: SInvalidChangeState
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:38
+msgid "Cannot Change Encrypting State Without Providing Key."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterArgument
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:42
+msgid "CTR/SIC Mode Requires ParametersWithIV"
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterArgument
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:44
+msgid "CTR/SIC mode requires IV no greater than: %u bytes"
+msgstr ""
+
+#. Programmer's name for it: SInvalidTooSmallIVLength
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:45
+msgid "CTR/SIC mode requires IV of at least: %u bytes"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedCipher
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:47
+msgid "CtsBlockCipher Can Only Accept ECB or CBC Ciphers"
+msgstr ""
+
+#. Programmer's name for it: SNegativeInputLength
+#. Programmer's name for it: SInvalidLength
+#. Programmer's name for it: SNegativeInputLength
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:48
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:36
+#: libraries/cryptolib4pascal/ClpPaddedBufferedBlockCipher.pas:42
+msgid "Can't Have a Negative Input Length!"
+msgstr ""
+
+#. Programmer's name for it: SCTSDoFinalError
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:49
+msgid "Need at Least One Block of Input For CTS"
+msgstr ""
+
+#. Programmer's name for it: SBlowfishEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:36
+msgid "Blowfish Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SBlowfishEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:38
+msgid "Invalid Parameter Passed to Blowfish Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SOutputBuffertooShort
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:42
+msgid "Key Length must be between 32 - 448 bits and divisible by 8."
+msgstr ""
+
+#. Programmer's name for it: SInputNil
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:37
+msgid "Input Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SCipherNil
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:38
+msgid "Cipher Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SDataNotBlockSizeAligned
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:40
+msgid "Data not Block Size Aligned"
+msgstr ""
+
+#. Programmer's name for it: SOutputBufferTooSmallForDoFinal
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:41
+msgid "Output Buffer too Short for DoFinal()"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBufferSize
+#. Programmer's name for it: SInvalidBufferSize
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:33
+#: libraries/hashlib4pascal/HlpHash.pas:17
+msgid "\"BufferSize\" Must Be Greater Than Zero"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBufferSize
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:35
+msgid "Input and Output Streams Must not Point to the Same Stream Instance"
+msgstr ""
+
+#. Programmer's name for it: SUnAssignedInputStream
+#. Programmer's name for it: SUnAssignedStream
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:36
+#: libraries/hashlib4pascal/HlpHash.pas:18
+msgid "Input Stream Is Unassigned"
+msgstr ""
+
+#. Programmer's name for it: SUnAssignedOutputStream
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:37
+msgid "Output Stream Is Unassigned"
+msgstr ""
+
+#. Programmer's name for it: SPositionOutOfRange
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:38
+msgid "Current Position Is Out Of Range"
+msgstr ""
+
+#. Programmer's name for it: SPositionOutOfRange
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:40
+msgid "Stream Position (or Stream Length to Process) Is Out Of Range"
+msgstr ""
+
+#. Programmer's name for it: SCipherNil
+#: libraries/cryptolib4pascal/ClpBufferedStreamCipher.pas:34
+msgid "Cipher Instance Cannot be Nil"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpCipherKeyGenerator.pas:34
+msgid "Strength must be a Positive Value, \"defaultStrength\""
+msgstr ""
+
+#. Programmer's name for it: SParametersNil
+#: libraries/cryptolib4pascal/ClpCipherKeyGenerator.pas:35
+msgid "Parameters Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SGeneratorNotInitialized
+#: libraries/cryptolib4pascal/ClpCipherKeyGenerator.pas:36
+msgid "Generator has not been Initialised"
+msgstr ""
+
+#. Programmer's name for it: SMechanismNil
+#. Programmer's name for it: SMechanismNil
+#. Programmer's name for it: SMechanismNil
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:56
+#: libraries/cryptolib4pascal/ClpDigestUtilities.pas:42
+#: libraries/cryptolib4pascal/ClpSignerUtilities.pas:69
+msgid "Mechanism Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNil
+#. Programmer's name for it: SAlgorithmNil
+#. Programmer's name for it: SAlgorithmNil
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:57
+#: libraries/cryptolib4pascal/ClpParameterUtilities.pas:37
+#: libraries/cryptolib4pascal/ClpSignerUtilities.pas:70
+msgid "Algorithm Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedCipher
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:58
+msgid "Cipher \"%s\" Not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedCipher
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:60
+msgid ""
+"Warning: SIC-Mode Can Become a TwoTime-Pad if the Blocksize of the Cipher "
+"is Too Small. Use a Cipher With a Block Size of at Least 128 bits (e.g. AES)"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedCipher
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:62
+msgid "Modes and Paddings Not Used for Stream Ciphers"
+msgstr ""
+
+#. Programmer's name for it: SEncodingInstanceNil
+#. Programmer's name for it: SEncodingInstanceNil
+#: libraries/cryptolib4pascal/ClpConverters.pas:33
+#: libraries/hashlib4pascal/HlpConverters.pas:16
+msgid "Encoding Instance Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SNegativeOffset
+#: libraries/cryptolib4pascal/ClpCryptoApiRandomGenerator.pas:32
+msgid "Start Offset Cannot be Negative, \"Start\""
+msgstr ""
+
+#. Programmer's name for it: SArrayTooSmall
+#: libraries/cryptolib4pascal/ClpCryptoApiRandomGenerator.pas:33
+msgid "Byte Array Too Small For Requested Offset and Length"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpCurve25519Custom.pas:40
+msgid "Value Invalid for Curve25519FieldElement \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#: libraries/cryptolib4pascal/ClpCurve25519Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecP256K1Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecP256R1Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecP384R1Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecP521R1Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecT283Custom.pas:42
+msgid "Exactly One of the Field Elements is Nil"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:45
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:38
+msgid "Diffie-Hellman Public Key has Wrong Parameters."
+msgstr ""
+
+#. Programmer's name for it: SNotDHPrivateKeyParameters
+#. Programmer's name for it: SNotDHPrivateKeyParameters
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:46
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:39
+msgid "DHEngine Expects DHPrivateKeyParameters"
+msgstr ""
+
+#. Programmer's name for it: SMessageNotInitialized
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:47
+msgid "Message not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SSharedKeyInvalid
+#. Programmer's name for it: SSharedKeyInvalid
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:48
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:41
+msgid "Shared Key Can't be 1"
+msgstr ""
+
+#. Programmer's name for it: SDHPublicKeyWeak
+#. Programmer's name for it: SDHPublicKeyWeak
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:49
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:42
+msgid "Diffie-Hellman Public Key is Weak"
+msgstr ""
+
+#. Programmer's name for it: SDHPublicKeyNil
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:50
+msgid "DH Public Key Parameter Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNotInitialized
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:40
+msgid "Agreement Algorithm not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SParametersCannotBeNil
+#. Programmer's name for it: SParametersCannotBeNil
+#. Programmer's name for it: SParametersCannotBeNil
+#: libraries/cryptolib4pascal/ClpDHBasicKeyPairGenerator.pas:42
+#: libraries/cryptolib4pascal/ClpDHKeyPairGenerator.pas:42
+#: libraries/cryptolib4pascal/ClpDsaKeyPairGenerator.pas:44
+msgid "\"parameters\" Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SPNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:33
+msgid "P Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SGNil
+#. Programmer's name for it: SGNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:34
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:35
+msgid "G Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SQNil
+#. Programmer's name for it: SQNil
+#. Programmer's name for it: SQNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:35
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:37
+#: libraries/cryptolib4pascal/ClpECPublicKeyParameters.pas:35
+msgid "Q Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SJNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:36
+msgid "J Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SBadSequenceSize
+#. Programmer's name for it: SBadSequenceSize
+#. Programmer's name for it: SBadSequenceSize
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:37
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:34
+#: libraries/cryptolib4pascal/ClpDsaParameter.pas:32
+msgid "Bad Sequence Size \"seq\": %d"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDHDomainParameters
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:38
+msgid "Invalid DHDomainParameters: %s"
+msgstr ""
+
+#. Programmer's name for it: SPUnInitialized
+#. Programmer's name for it: SPUnInitialized
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:33
+#: libraries/cryptolib4pascal/ClpDsaParameters.pas:32
+msgid "\"P\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SGUnInitialized
+#. Programmer's name for it: SGUnInitialized
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:34
+#: libraries/cryptolib4pascal/ClpDsaParameters.pas:34
+msgid "\"G\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SMustBeOddPrime
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:35
+msgid "Field must be an Odd Prime, \"P\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidGeneratorRange
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:36
+msgid "Generator must in the Range [2, p - 2], \"G\""
+msgstr ""
+
+#. Programmer's name for it: SQTooBigToBeAFactor
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:37
+msgid "Q too Big to be a Factor of (P - 1), \"Q\""
+msgstr ""
+
+#. Programmer's name for it: SMTooBig
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:38
+msgid "M value must be < BitLength of P, \"M\""
+msgstr ""
+
+#. Programmer's name for it: SLErrorOne
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:39
+msgid "when L value specified, it must be less than bitlength(P), \"L\""
+msgstr ""
+
+#. Programmer's name for it: SLErrorTwo
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:40
+msgid "when L value specified, it may not be less than m value, \"L\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSubGroupFactor
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:41
+msgid "Subgroup factor must be >= 2, \"j\""
+msgstr ""
+
+#. Programmer's name for it: SXUnInitialized
+#. Programmer's name for it: SXUnInitialized
+#: libraries/cryptolib4pascal/ClpDHPrivateKeyParameters.pas:33
+#: libraries/cryptolib4pascal/ClpDsaPrivateKeyParameters.pas:32
+msgid "\"X\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SYUnInitialized
+#. Programmer's name for it: SYUnInitialized
+#: libraries/cryptolib4pascal/ClpDHPublicKeyParameters.pas:33
+#: libraries/cryptolib4pascal/ClpDsaPublicKeyParameters.pas:32
+msgid "\"Y\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDHPublicKey
+#: libraries/cryptolib4pascal/ClpDHPublicKeyParameters.pas:34
+msgid "Invalid DH public key \"Y\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidYInCorrectGroup
+#. Programmer's name for it: SInvalidYInCorrectGroup
+#: libraries/cryptolib4pascal/ClpDHPublicKeyParameters.pas:35
+#: libraries/cryptolib4pascal/ClpDsaPublicKeyParameters.pas:33
+msgid "\"Y\" Value Does Not Appear To Be In Correct Group"
+msgstr ""
+
+#. Programmer's name for it: SSeedNil
+#. Programmer's name for it: SSeedNil
+#: libraries/cryptolib4pascal/ClpDHValidationParameters.pas:30
+#: libraries/cryptolib4pascal/ClpDsaValidationParameters.pas:30
+msgid "\"Seed\" Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SSeedNil
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:32
+msgid "Seed Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SPGenCounterNil
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:33
+msgid "PGenCounter Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDHValidationParams
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:35
+msgid "Invalid DHValidationParams: %s"
+msgstr ""
+
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#: libraries/cryptolib4pascal/ClpDigest.pas:31
+#: libraries/cryptolib4pascal/ClpHMac.pas:34
+#: libraries/hashlib4pascal/HlpBlake2B.pas:27
+#: libraries/hashlib4pascal/HlpBlake2S.pas:27
+#: libraries/hashlib4pascal/HlpSHA3.pas:29
+msgid "Output Buffer Too Short"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedDigest
+#: libraries/cryptolib4pascal/ClpDigestUtilities.pas:43
+msgid "Digest \"%s\" not recognised."
+msgstr ""
+
+#. Programmer's name for it: SPrivateKey
+#. Programmer's name for it: SPrivateKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:41
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:40
+msgid "Signing Requires Private Key."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:42
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:41
+msgid "Verification Requires Public Key."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:44
+msgid "DSADigestSigner not Initialized for Signature Generation."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:46
+msgid "DSADigestSigner not Initialized for Verification"
+msgstr ""
+
+#. Programmer's name for it: SEncodingError
+#. Programmer's name for it: SEncodingError
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:47
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:46
+msgid "Unable to Encode Signature"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDsaParameter
+#: libraries/cryptolib4pascal/ClpDsaParameter.pas:33
+msgid "Invalid DsaParameter: %s"
+msgstr ""
+
+#. Programmer's name for it: SQUnInitialized
+#: libraries/cryptolib4pascal/ClpDsaParameters.pas:33
+msgid "\"Q\" Cannot Be Uninitialized"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:44
+msgid "L Values Must be Between 1024 and 3072 and a Multiple of 1024"
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:45
+msgid "N Must be \" %d \" for L = \" %d \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:46
+msgid "N Must be \" %d \" or \" %d \" for L = \" %d \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:48
+msgid "Digest Output Size Too Small for Value of N Which is \" %d \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:50
+msgid "Can Only Use SHA-1 For Generating FIPS 186-2 Parameters"
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:52
+msgid "Size Must Be From %d - %d and a multiple of %d, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SDSAPrivateKeyNotFound
+#: libraries/cryptolib4pascal/ClpDsaSigner.pas:44
+msgid "DSA Private Key Required For Signing"
+msgstr ""
+
+#. Programmer's name for it: SDSAPublicKeyNotFound
+#: libraries/cryptolib4pascal/ClpDsaSigner.pas:45
+msgid "DSA Public Key Required For Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:43
+msgid ""
+"Point and Scalar Arrays Should be Non-Null, and of Equal, Non-Zero, Length"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointLocation
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:44
+msgid "Point Must be on the Same Curve"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:45
+msgid "Invalid Point, \"P\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidResult
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:46
+msgid "Invalid Result"
+msgstr ""
+
+#. Programmer's name for it: SInvalidResult
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:48
+#: libraries/cryptolib4pascal/ClpMultipliers.pas:46
+msgid "Fixed-Point Comb Doesn't Support Scalars Larger Than The Curve Order"
+msgstr ""
+
+#. Programmer's name for it: SInvalidValue
+#: libraries/cryptolib4pascal/ClpECC.pas:52
+msgid "Value Invalid in Fp Field Element, \" x \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidValue2
+#: libraries/cryptolib4pascal/ClpECC.pas:53
+msgid "Value Invalid in F2m Field Element, \"x\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value
+#: libraries/cryptolib4pascal/ClpECC.pas:54
+msgid "k2 must be smaller than k3"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:55
+msgid "k2 must be larger than 0"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:57
+msgid "Field elements are not both instances of F2mFieldElement"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:59
+msgid "Field elements are not elements of the same field F2m"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:61
+msgid "One of the F2m field elements has incorrect representation"
+msgstr ""
+
+#. Programmer's name for it: SEvenValue
+#: libraries/cryptolib4pascal/ClpECC.pas:62
+msgid "Even Value of Q"
+msgstr ""
+
+#. Programmer's name for it: STraceInternalErrorCalculation
+#: libraries/cryptolib4pascal/ClpECC.pas:63
+msgid "Internal Error in Trace Calculation"
+msgstr ""
+
+#. Programmer's name for it: SHalfTraceUndefinedForM
+#: libraries/cryptolib4pascal/ClpECC.pas:64
+msgid "Half-Trace Only Defined For Odd M"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCoordinateSystem
+#: libraries/cryptolib4pascal/ClpECC.pas:65
+msgid "UnSupported Coordinate System"
+msgstr ""
+
+#. Programmer's name for it: SCurrentCurve
+#: libraries/cryptolib4pascal/ClpECC.pas:66
+msgid "Implementation returned Current Curve"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointCoordinates
+#: libraries/cryptolib4pascal/ClpECC.pas:67
+msgid "Invalid Point Coordinates"
+msgstr ""
+
+#. Programmer's name for it: SInvalidAffineCoordinates
+#: libraries/cryptolib4pascal/ClpECC.pas:68
+msgid "not valid for affine coordinates, \"iso\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointOnCurve
+#: libraries/cryptolib4pascal/ClpECC.pas:69
+msgid "must be non-null and on this curve, \"point\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointOnCurve2
+#: libraries/cryptolib4pascal/ClpECC.pas:70
+msgid "Entries must be null or on this curve, \"points\""
+msgstr ""
+
+#. Programmer's name for it: SPointsNil
+#: libraries/cryptolib4pascal/ClpECC.pas:71
+msgid "points"
+msgstr ""
+
+#. Programmer's name for it: SInvalidRangeSpecified
+#: libraries/cryptolib4pascal/ClpECC.pas:72
+msgid "Invalid Range Specified\", \"points\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointCompression
+#: libraries/cryptolib4pascal/ClpECC.pas:73
+msgid "Invalid Point Compression"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK1
+#: libraries/cryptolib4pascal/ClpECC.pas:74
+msgid "k1 must be > 0"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK3
+#: libraries/cryptolib4pascal/ClpECC.pas:75
+msgid "k3 must be 0 if k2 == 0"
+msgstr ""
+
+#. Programmer's name for it: SK2K1MisMatch
+#: libraries/cryptolib4pascal/ClpECC.pas:76
+msgid "k2 must be > k1"
+msgstr ""
+
+#. Programmer's name for it: SK3K2Mismatch
+#: libraries/cryptolib4pascal/ClpECC.pas:77
+msgid "k3 must be > k2"
+msgstr ""
+
+#. Programmer's name for it: SInvalidInfinityEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:78
+msgid "Invalid Infinity Encoding, \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:79
+msgid "Invalid Point Encoding %u"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:81
+msgid "Incorrect Length for infinity encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:83
+msgid "Incorrect Length for Compressed Encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:84
+msgid "Invalid Point"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:86
+msgid "Incorrect Length for UnCompressed Encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:88
+msgid "Incorrect Length for Hybrid Encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:90
+msgid "Inconsistent Y Coordinate in Hybrid Encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SUnknownCoordSystem
+#: libraries/cryptolib4pascal/ClpECC.pas:91
+msgid "Unknown Coordinate System"
+msgstr ""
+
+#. Programmer's name for it: SPointNotInNormalForm
+#: libraries/cryptolib4pascal/ClpECC.pas:92
+msgid "Point not in Normal Form"
+msgstr ""
+
+#. Programmer's name for it: SNotProjectiveCoordSystem
+#: libraries/cryptolib4pascal/ClpECC.pas:93
+msgid "Not a Projective Coordinate System"
+msgstr ""
+
+#. Programmer's name for it: SCannotBeNegative
+#: libraries/cryptolib4pascal/ClpECC.pas:94
+msgid "Cannot be Negative, \"e\""
+msgstr ""
+
+#. Programmer's name for it: SNilFieldElement
+#: libraries/cryptolib4pascal/ClpECC.pas:95
+msgid "Exactly one of the Field Elements is Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedOperation
+#: libraries/cryptolib4pascal/ClpECC.pas:96
+msgid "Constant-time Lookup not Supported"
+msgstr ""
+
+#. Programmer's name for it: SInvalidRange
+#: libraries/cryptolib4pascal/ClpECCompUtilities.pas:43
+msgid "Must be in the Range [2, 16], \"width\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidRange2
+#: libraries/cryptolib4pascal/ClpECCompUtilities.pas:44
+msgid "Must be in the Range [2, 8], \"width\""
+msgstr ""
+
+#. Programmer's name for it: SWrongDomainParameter
+#: libraries/cryptolib4pascal/ClpECDHBasicAgreement.pas:39
+msgid "ECDH Public Key has Wrong Domain Parameters"
+msgstr ""
+
+#. Programmer's name for it: SInvalidAgreementValue
+#: libraries/cryptolib4pascal/ClpECDHBasicAgreement.pas:40
+msgid "Infinity is not a Valid Agreement Value for ECDH"
+msgstr ""
+
+#. Programmer's name for it: SInfinityInvalidPublicKey
+#: libraries/cryptolib4pascal/ClpECDHBasicAgreement.pas:41
+msgid "Infinity is not a Valid Public Key for ECDH"
+msgstr ""
+
+#. Programmer's name for it: SWrongDomainParameter
+#: libraries/cryptolib4pascal/ClpECDHCBasicAgreement.pas:39
+msgid "ECDHC Public Key has Wrong Domain Parameters"
+msgstr ""
+
+#. Programmer's name for it: SInvalidAgreementValue
+#: libraries/cryptolib4pascal/ClpECDHCBasicAgreement.pas:40
+msgid "Infinity is not a Valid Agreement Value for ECDHC"
+msgstr ""
+
+#. Programmer's name for it: SInfinityInvalidPublicKey
+#: libraries/cryptolib4pascal/ClpECDHCBasicAgreement.pas:41
+msgid "Infinity is not a Valid Public Key for ECDHC"
+msgstr ""
+
+#. Programmer's name for it: SCurveNil
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:33
+msgid "Curve Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SScalarNil
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:34
+msgid "Scalar Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SBigIntegerNotInitialized
+#. Programmer's name for it: SBigIntegerNotInitialized
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:36
+#: libraries/cryptolib4pascal/ClpECPrivateKeyParameters.pas:32
+msgid "BigInteger Not Initialized \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SQInfinity
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:38
+msgid "Point at Infinity \"Q\""
+msgstr ""
+
+#. Programmer's name for it: SQPointNotOnCurve
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:39
+msgid "Point Not on Curve \"Q\""
+msgstr ""
+
+#. Programmer's name for it: SScalarInvalidRange
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:40
+msgid "Scalar is not in the Interval [1, n - 1]"
+msgstr ""
+
+#. Programmer's name for it: SECPublicKeyNotFound
+#. Programmer's name for it: SECPublicKeyNotFound
+#. Programmer's name for it: SECPublicKeyNotFound
+#: libraries/cryptolib4pascal/ClpECDsaSigner.pas:47
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:47
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:45
+msgid "EC Public Key Required for Verification"
+msgstr ""
+
+#. Programmer's name for it: SECPrivateKeyNotFound
+#. Programmer's name for it: SECPrivateKeyNotFound
+#. Programmer's name for it: SECPrivateKeyNotFound
+#: libraries/cryptolib4pascal/ClpECDsaSigner.pas:48
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:48
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:46
+msgid "EC Private Key Required for Signing"
+msgstr ""
+
+#. Programmer's name for it: SSenderPublicKeyInvalid
+#: libraries/cryptolib4pascal/ClpECIESPublicKeyParser.pas:35
+msgid "Sender's Public Key Invalid."
+msgstr ""
+
+#. Programmer's name for it: SSenderPublicKeyInvalid
+#: libraries/cryptolib4pascal/ClpECIESPublicKeyParser.pas:37
+msgid "Sender's Public Key has Invalid Point Encoding \"%x\""
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNil
+#. Programmer's name for it: SAlgorithmNil
+#: libraries/cryptolib4pascal/ClpECKeyPairGenerator.pas:56
+#: libraries/cryptolib4pascal/ClpECKeyParameters.pas:39
+msgid "Algorithm Cannot be Empty"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeySize
+#: libraries/cryptolib4pascal/ClpECKeyPairGenerator.pas:57
+msgid "Unknown Key Size \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SParameterNil
+#: libraries/cryptolib4pascal/ClpECKeyParameters.pas:40
+msgid "Parameter Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedAlgorithm
+#: libraries/cryptolib4pascal/ClpECKeyParameters.pas:41
+msgid "Unrecognised Algorithm: \" %s, \"Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedForSigning
+#. Programmer's name for it: SNotInitializedForSigning
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:49
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:47
+msgid "Not Initialised For Signing"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedForVerifying
+#. Programmer's name for it: SNotInitializedForVerifying
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:50
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:48
+msgid "Not Initialised For Verifying"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedForVerifying
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:52
+msgid "Not Initialised For Verifying/Recovery"
+msgstr ""
+
+#. Programmer's name for it: SInputTooLargeForECNRKey
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:53
+msgid "Input Too Large For ECNR Key."
+msgstr ""
+
+#. Programmer's name for it: SSignatureGenerationError
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:49
+msgid "An Error Occurred During Signature Generation"
+msgstr ""
+
+#. Programmer's name for it: SSignatureGenerationError
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:51
+msgid ""
+"Only FP (Prime Field) Curves are Allowed for This Schnorr Implementation"
+msgstr ""
+
+#. Programmer's name for it: SInvalidCtx
+#: libraries/cryptolib4pascal/ClpEd25519.pas:40
+msgid "ctx"
+msgstr ""
+
+#. Programmer's name for it: SDigestError
+#: libraries/cryptolib4pascal/ClpEd25519.pas:41
+msgid "Digest Produced Insufficient Data"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPrivateKey
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:38
+msgid "EOF encountered in middle of Ed25519Blake2B private key"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedAlgorithm
+#. Programmer's name for it: SUnsupportedAlgorithm
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:39
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:39
+msgid "Unsupported Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SCtxNotNil
+#. Programmer's name for it: SCtxNotNil
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:40
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:40
+msgid "Ctx must be Nil for Ed25519 Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SMsgLen
+#. Programmer's name for it: SMsgLen
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:41
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:41
+msgid "MsgLen must be Equal to \"PreHashSize\" for Ed25519ph Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPublicKey
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPublicKeyParameters.pas:34
+msgid "EOF encountered in middle of Ed25519Blake2B public key"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BSigner.pas:37
+msgid "Ed25519Blake2BSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BSigner.pas:39
+msgid "Ed25519Blake2BSigner not Initialised for Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxBlake2BSigner.pas:37
+msgid "Ed25519CtxBlake2BSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxBlake2BSigner.pas:39
+msgid "Ed25519CtxBlake2BSigner not Initialised for Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxSigner.pas:37
+msgid "Ed25519CtxSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxSigner.pas:39
+msgid "Ed25519CtxSigner not Initialised for Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhBlake2BSigner.pas:37
+msgid "Ed25519PhBlake2BSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhBlake2BSigner.pas:39
+msgid "Ed25519PhBlake2BSigner not Initialised for Verification"
+msgstr ""
+
+#. Programmer's name for it: SPreHashDigestFailed
+#. Programmer's name for it: SPreHashDigestFailed
+#: libraries/cryptolib4pascal/ClpEd25519PhBlake2BSigner.pas:40
+#: libraries/cryptolib4pascal/ClpEd25519PhSigner.pas:40
+msgid "PreHash Digest Failed"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhSigner.pas:37
+msgid "Ed25519PhSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhSigner.pas:39
+msgid "Ed25519PhSigner not Initialised for Verification"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPrivateKey
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:38
+msgid "EOF encountered in middle of Ed25519 private key"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPublicKey
+#: libraries/cryptolib4pascal/ClpEd25519PublicKeyParameters.pas:34
+msgid "EOF encountered in middle of Ed25519 public key"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Signer.pas:37
+msgid "Ed25519Signer not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Signer.pas:39
+msgid "Ed25519Signer not Initialised for Verification"
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacteristic
+#: libraries/cryptolib4pascal/ClpFiniteFields.pas:35
+msgid "Must be >= 2 , \" characteristic \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacteristic
+#: libraries/cryptolib4pascal/ClpFiniteFields.pas:37
+msgid ""
+"Irreducible polynomials in GF(2) must have constant term, \"exponents\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacteristic
+#: libraries/cryptolib4pascal/ClpFiniteFields.pas:39
+msgid "Polynomial Exponents must be montonically increasing\", \"exponents\""
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:52
+msgid "KeyGenerator \"%s\" not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:54
+msgid "KeyGenerator \"%s\" ( \"%s\" ) not Supported."
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:56
+msgid "KeyPairGenerator \"%s\" not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:58
+msgid "KeyPairGenerator \"%s\" ( \"%s\" ) not Supported."
+msgstr ""
+
+#. Programmer's name for it: SSizeTooBigHKDF
+#: libraries/cryptolib4pascal/ClpHkdfBytesGenerator.pas:39
+msgid "HKDF Cannot Generate More Than 255 Blocks of HashLen Size"
+msgstr ""
+
+#. Programmer's name for it: SSizeTooBigHKDF2
+#: libraries/cryptolib4pascal/ClpHkdfBytesGenerator.pas:40
+msgid "HKDF May Only Be Used For 255 * HashLen Bytes of Output"
+msgstr ""
+
+#. Programmer's name for it: SSizeTooBigHKDF2
+#: libraries/cryptolib4pascal/ClpHkdfBytesGenerator.pas:42
+msgid "HKDF Parameters Required For \"HkdfBytesGenerator\", \"parameters\""
+msgstr ""
+
+#. Programmer's name for it: SIKMNil
+#: libraries/cryptolib4pascal/ClpHkdfParameters.pas:30
+msgid "\"ikm\" is Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedOperation
+#. Programmer's name for it: SUnSupportedOperation
+#: libraries/cryptolib4pascal/ClpHMacDsaKCalculator.pas:42
+#: libraries/cryptolib4pascal/ClpRandomDsaKCalculator.pas:34
+msgid "Operation not Supported"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:54
+msgid "Must be Passed Recipient's Public EC Key for Encryption"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:56
+msgid "Must be Passed Recipient's Private EC Key for Decryption"
+msgstr ""
+
+#. Programmer's name for it: SIAlgorithmParameterSpecNil
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:57
+msgid "Parameter Spec Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnableToProcessBlock
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:58
+msgid "Unable to Process Block. \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SIESParameterSpecError
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:59
+msgid "Must be Passed IES Parameter Spec"
+msgstr ""
+
+#. Programmer's name for it: SNonceInvalidLength
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:60
+msgid "Nonce in IES Parameters Needs to be \"%s\" Bytes Long"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESEngine.pas:53
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:45
+msgid "Unable to Recover Ephemeral Public Key: \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESEngine.pas:55
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:47
+msgid "Length of Input Must be Greater than the MAC and V Combined"
+msgstr ""
+
+#. Programmer's name for it: SInvalidMAC
+#. Programmer's name for it: SInvalidMAC
+#: libraries/cryptolib4pascal/ClpIESEngine.pas:56
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:48
+msgid "Invalid MAC"
+msgstr ""
+
+#. Programmer's name for it: SRandomNil
+#: libraries/cryptolib4pascal/ClpKeyGenerationParameters.pas:30
+msgid "Random Class Instance Can't Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SInvalidStrength
+#: libraries/cryptolib4pascal/ClpKeyGenerationParameters.pas:31
+msgid "Strength Must Be Greater Than Zero But Was Given %d"
+msgstr ""
+
+#. Programmer's name for it: SKeyNil
+#: libraries/cryptolib4pascal/ClpKeyParameter.pas:31
+msgid "Key Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyOffSet
+#: libraries/cryptolib4pascal/ClpKeyParameter.pas:32
+msgid "Invalid Key OffSet"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/cryptolib4pascal/ClpKeyParameter.pas:33
+msgid "Invalid Key Length"
+msgstr ""
+
+#. Programmer's name for it: SInvalidF2MFieldValue
+#: libraries/cryptolib4pascal/ClpLongArray.pas:34
+msgid "Invalid F2M Field value, \"bigInt\""
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedMac
+#: libraries/cryptolib4pascal/ClpMacUtilities.pas:40
+msgid "Mac \"%s\" not recognised."
+msgstr ""
+
+#. Programmer's name for it: SCannotBeZero
+#: libraries/cryptolib4pascal/ClpMod.pas:35
+msgid "cannot be 0, \"x\""
+msgstr ""
+
+#. Programmer's name for it: SCurveUnknownGroupOrder
+#: libraries/cryptolib4pascal/ClpMultipliers.pas:47
+msgid "Need Curve With Known Group Order, \"curve\""
+msgstr ""
+
+#. Programmer's name for it: SInCompatiblePoint
+#: libraries/cryptolib4pascal/ClpMultipliers.pas:48
+msgid "Only AbstractF2mPoint can be used in WTauNafMultiplier"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:72
+msgid ""
+"An Error Occured while generating random data using MS Windows Cryptography "
+"API."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:76
+msgid ""
+"An Error Occured while generating random data using SecRandomCopyBytes API."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:80
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:84
+msgid "An Error Occured while generating random data using getRandom API"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:88
+msgid ""
+"An Error Occured while generating random data using arc4random_buf API."
+msgstr ""
+
+#. Programmer's name for it: SIncompleteLastBlockInDecryption
+#: libraries/cryptolib4pascal/ClpPaddedBufferedBlockCipher.pas:41
+msgid "Last Block Incomplete in Decryption"
+msgstr ""
+
+#. Programmer's name for it: SCorruptedPadBlock
+#: libraries/cryptolib4pascal/ClpPaddingModes.pas:32
+msgid "Pad Block Corrupted"
+msgstr ""
+
+#. Programmer's name for it: SIVNil
+#: libraries/cryptolib4pascal/ClpParametersWithIV.pas:31
+msgid "IV Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SParameters
+#: libraries/cryptolib4pascal/ClpParametersWithRandom.pas:32
+msgid "Parameters"
+msgstr ""
+
+#. Programmer's name for it: SRandom
+#: libraries/cryptolib4pascal/ClpParametersWithRandom.pas:33
+msgid "Random"
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpParameterUtilities.pas:38
+msgid "Algorithm \"%s\" not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SKDFParameterNotFound
+#: libraries/cryptolib4pascal/ClpPascalCoinECIESKdfBytesGenerator.pas:37
+msgid ""
+"Specified Hash Cannot Produce Sufficient Data for the Specified Operation."
+msgstr ""
+
+#. Programmer's name for it: SCipherCannotbeNilInThisMode
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:49
+msgid "Cipher Cannot be Nil in This Mode."
+msgstr ""
+
+#. Programmer's name for it: SBufferNil
+#: libraries/cryptolib4pascal/ClpRandom.pas:30
+msgid "Buffer Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SMaxValueNegative
+#: libraries/cryptolib4pascal/ClpRandom.pas:31
+msgid "maxValue Must be Positive"
+msgstr ""
+
+#. Programmer's name for it: SInvalidMinValue
+#: libraries/cryptolib4pascal/ClpRandom.pas:32
+msgid "minValue Cannot be Greater Than maxValue"
+msgstr ""
+
+#. Programmer's name for it: SUnknownAlgorithm
+#: libraries/cryptolib4pascal/ClpRandomNumberGenerator.pas:31
+msgid "Unknown Random Generation Algorithm Requested"
+msgstr ""
+
+#. Programmer's name for it: SUnknownAlgorithm
+#: libraries/cryptolib4pascal/ClpRandomNumberGenerator.pas:33
+msgid "Random Number Generator Output Buffer Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedBlock
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:37
+msgid "Unknown Blocksize to Rijndael"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:38
+msgid "Key Length not 128/160/192/224/256 bits."
+msgstr ""
+
+#. Programmer's name for it: SRijndaelEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:39
+msgid "Rijndael Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SRijndaelEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:41
+msgid "Invalid Parameter Passed to Rijndael Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidRound
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:38
+msgid "\"rounds\" Must be a Positive, Even Number"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeySize
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:39
+msgid "%s Requires 128 bit or 256 bit key"
+msgstr ""
+
+#. Programmer's name for it: SMaxByteExceeded
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:40
+msgid "2^70 Byte Limit per IV; Change IV"
+msgstr ""
+
+#. Programmer's name for it: SMaxByteExceededTwo
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:41
+msgid "2^70 byte limit per IV would be exceeded; Change IV"
+msgstr ""
+
+#. Programmer's name for it: SEngineNotInitialized
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:42
+msgid "%s not Initialized"
+msgstr ""
+
+#. Programmer's name for it: SRoundsMustbeEven
+#. Programmer's name for it: SRoundsMustBeEven
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:45
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:37
+msgid "Number of Rounds Must be Even"
+msgstr ""
+
+#. Programmer's name for it: SIVRequired
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:47
+msgid "%s Init Requires an IV, \"parameters\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidIV
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:48
+msgid "%s Requires exactly %d bytes of IV"
+msgstr ""
+
+#. Programmer's name for it: SInvalidIV
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:50
+msgid "%s Init Parameters must Contain a KeyParameter (or null for Re-Init)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidIV
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:52
+msgid "KeyParameter can not be null for First Initialisation"
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameters
+#: libraries/cryptolib4pascal/ClpScalarSplitParameters.pas:30
+msgid "\"%s\" must consist of exactly 2 (initialized) values"
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:43
+msgid "SchnorrDigestSigner not Initialized for Signature Generation."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:45
+msgid "SchnorrDigestSigner not Initialized for Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP256K1Custom.pas:40
+msgid "Value Invalid for SecP256K1FieldElement \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP256R1Custom.pas:40
+msgid "Value Invalid for SecP256R1FieldElement \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP384R1Custom.pas:40
+msgid "Value Invalid for SecP384R1FieldElement \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP521R1Custom.pas:40
+msgid "Value Invalid for SecP521R1FieldElement \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecT283Custom.pas:41
+msgid "Value Invalid for SecT283FieldElement \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SUnRecognisedPRNGAlgorithm
+#: libraries/cryptolib4pascal/ClpSecureRandom.pas:43
+msgid "Unrecognised PRNG Algorithm: %s \"algorithm\""
+msgstr ""
+
+#. Programmer's name for it: SCannotBeNegative
+#: libraries/cryptolib4pascal/ClpSecureRandom.pas:44
+msgid "Cannot be Negative  \"maxValue\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidMaxValue
+#: libraries/cryptolib4pascal/ClpSecureRandom.pas:45
+msgid "maxValue Cannot be Less Than minValue"
+msgstr ""
+
+#. Programmer's name for it: SMalformedSignature
+#: libraries/cryptolib4pascal/ClpSignersEncodings.pas:35
+msgid "Malformed signature, \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SValueOutOfRange
+#: libraries/cryptolib4pascal/ClpSignersEncodings.pas:36
+msgid "Value out of range, \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidEncodingLength
+#: libraries/cryptolib4pascal/ClpSignersEncodings.pas:37
+msgid "Encoding has incorrect length, \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedAlgorithm
+#: libraries/cryptolib4pascal/ClpSignerUtilities.pas:71
+msgid "Signer \" %s \" not recognised."
+msgstr ""
+
+#. Programmer's name for it: SInvalidScale
+#. Programmer's name for it: SNegativeScale
+#: libraries/cryptolib4pascal/ClpSimpleBigDecimal.pas:29
+#: libraries/cryptolib4pascal/ClpSimpleBigDecimal.pas:32
+msgid "Scale may not be Negative"
+msgstr ""
+
+#. Programmer's name for it: SInvalidScale
+#: libraries/cryptolib4pascal/ClpSimpleBigDecimal.pas:31
+msgid "Only SimpleBigDecimal of Same Scale Allowed in Arithmetic Operations"
+msgstr ""
+
+#. Programmer's name for it: SSpeckEngineNotInitialised
+#. Programmer's name for it: SSpeckLegacyEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:35
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:35
+msgid "%s Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:38
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:38
+msgid "Invalid Argument Encountered."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:39
+msgid "Invalid Parameter Passed to Speck Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:41
+msgid "Speck32 requires a key of 64 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:43
+msgid "Speck48 requires a key of 72 or 96 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:45
+msgid "Speck64 requires a key of 96 or 128 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:47
+msgid "Speck96 requires a key of 96 or 144 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:49
+msgid ""
+"Speck128 requires a key of 128, 192 or 256 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:40
+msgid "Invalid Parameter Passed to SpeckLegacy Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:42
+msgid "Speck32Legacy requires a key of 64 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:44
+msgid ""
+"Speck48Legacy requires a key of 72 or 96 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:46
+msgid ""
+"Speck64Legacy requires a key of 96 or 128 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:48
+msgid ""
+"Speck96Legacy requires a key of 96 or 144 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:50
+msgid ""
+"Speck128Legacy requires a key of 128, 192 or 256 bits but input was \"%d\" "
+"bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidMU
+#: libraries/cryptolib4pascal/ClpTnaf.pas:34
+msgid "mu must be 1 or -1"
+msgstr ""
+
+#. Programmer's name for it: SDifferentScales
+#: libraries/cryptolib4pascal/ClpTnaf.pas:35
+msgid "lambda0 and lambda1 do not have same scale"
+msgstr ""
+
+#. Programmer's name for it: SNoKoblitzCurve
+#: libraries/cryptolib4pascal/ClpTnaf.pas:36
+msgid "No Koblitz curve (ABC), TNAF multiplication not possible"
+msgstr ""
+
+#. Programmer's name for it: SNotKoblitzCurve
+#: libraries/cryptolib4pascal/ClpTnaf.pas:37
+msgid "si is defined for Koblitz curves only"
+msgstr ""
+
+#. Programmer's name for it: SInvalidCoFactor
+#: libraries/cryptolib4pascal/ClpTnaf.pas:38
+msgid "h (Cofactor) must be 2 or 4"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpX25519Agreement.pas:36
+msgid "The Init Parameter does not Contain the Private Key"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPrivateKey
+#: libraries/cryptolib4pascal/ClpX25519PrivateKeyParameters.pas:37
+msgid "EOF encountered in middle of X25519 private key"
+msgstr ""
+
+#. Programmer's name for it: SAgreementCalculationFailed
+#: libraries/cryptolib4pascal/ClpX25519PrivateKeyParameters.pas:38
+msgid "X25519 Agreement Failed"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPublicKey
+#: libraries/cryptolib4pascal/ClpX25519PublicKeyParameters.pas:34
+msgid "EOF encountered in middle of X25519 public key"
+msgstr ""
+
+#. Programmer's name for it: SInconsistentKValues
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:36
+msgid "Inconsistent K Values"
+msgstr ""
+
+#. Programmer's name for it: SCurveNil
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:37
+msgid "Curve"
+msgstr ""
+
+#. Programmer's name for it: SNotImplementedECCurve
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:38
+msgid "This Type of ECCurve is not Implemented"
+msgstr ""
+
+#. Programmer's name for it: SFieldIDNil
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:39
+msgid "FieldID"
+msgstr ""
+
+#. Programmer's name for it: SSeqNil
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:40
+msgid "Seq"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCurveOne
+#: libraries/cryptolib4pascal/ClpX9ECParameters.pas:38
+msgid "Only trinomial and pentomial curves are supported"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCurveTwo
+#: libraries/cryptolib4pascal/ClpX9ECParameters.pas:39
+msgid "\"curve\" is of an unsupported type"
+msgstr ""
+
+#. Programmer's name for it: SBadVersion
+#: libraries/cryptolib4pascal/ClpX9ECParameters.pas:40
+msgid "Bad Version in X9ECParameters"
+msgstr ""
+
+#. Programmer's name for it: SNullKeyReInit
+#: libraries/cryptolib4pascal/ClpXSalsa20Engine.pas:33
+msgid "%s Doesn't Support Re-Init with Null Key"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeySize
+#: libraries/cryptolib4pascal/ClpXSalsa20Engine.pas:34
+msgid "%s Requires a 256 bit Key"
+msgstr ""
+
+#. Programmer's name for it: SArgumentOutOfRange
+#: libraries/generics.collections/generics.strings.pas:26
+msgid "Argument out of range"
+msgstr ""
+
+#. Programmer's name for it: SArgumentNilNode
+#: libraries/generics.collections/generics.strings.pas:27
+msgid "Node is nil"
+msgstr ""
+
+#. Programmer's name for it: SDuplicatesNotAllowed
+#: libraries/generics.collections/generics.strings.pas:28
+msgid "Duplicates not allowed in dictionary"
+msgstr ""
+
+#. Programmer's name for it: SCollectionInconsistency
+#: libraries/generics.collections/generics.strings.pas:29
+msgid "Collection inconsistency"
+msgstr ""
+
+#. Programmer's name for it: SCollectionDuplicate
+#: libraries/generics.collections/generics.strings.pas:30
+msgid "Collection does not allow duplicates"
+msgstr ""
+
+#. Programmer's name for it: SDictionaryKeyDoesNotExist
+#: libraries/generics.collections/generics.strings.pas:31
+msgid "Dictionary key does not exist"
+msgstr ""
+
+#. Programmer's name for it: SItemNotFound
+#: libraries/generics.collections/generics.strings.pas:32
+msgid "Item not found"
+msgstr ""
+
+#. Programmer's name for it: SInvalidConfigLength
+#. Programmer's name for it: SInvalidConfigLength
+#: libraries/hashlib4pascal/HlpBlake2B.pas:22
+#: libraries/hashlib4pascal/HlpBlake2S.pas:22
+msgid "Config Length Must Be 8 Words"
+msgstr ""
+
+#. Programmer's name for it: SConfigNil
+#. Programmer's name for it: SConfigNil
+#: libraries/hashlib4pascal/HlpBlake2B.pas:23
+#: libraries/hashlib4pascal/HlpBlake2S.pas:23
+msgid "Config Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SConfigNil
+#. Programmer's name for it: SConfigNil
+#: libraries/hashlib4pascal/HlpBlake2B.pas:25
+#: libraries/hashlib4pascal/HlpBlake2S.pas:25
+msgid "XOFSize in Bits must be Multiples of 8 and be Between %u and %u Bytes."
+msgstr ""
+
+#. Programmer's name for it: SOutputLengthInvalid
+#. Programmer's name for it: SOutputLengthInvalid
+#. Programmer's name for it: SOutputLengthInvalid
+#: libraries/hashlib4pascal/HlpBlake2B.pas:26
+#: libraries/hashlib4pascal/HlpBlake2S.pas:26
+#: libraries/hashlib4pascal/HlpSHA3.pas:28
+msgid "Output Length is above the Digest Length"
+msgstr ""
+
+#. Programmer's name for it: SMaximumOutputLengthExceeded
+#: libraries/hashlib4pascal/HlpBlake2B.pas:28
+msgid "\"Maximum Length is 2^32 blocks of 64 bytes"
+msgstr ""
+
+#. Programmer's name for it: SWritetoXofAfterReadError
+#. Programmer's name for it: SWritetoXofAfterReadError
+#. Programmer's name for it: SWritetoXofAfterReadError
+#: libraries/hashlib4pascal/HlpBlake2B.pas:29
+#: libraries/hashlib4pascal/HlpBlake2S.pas:29
+#: libraries/hashlib4pascal/HlpSHA3.pas:30
+msgid "\"%s\" Write to Xof after Read not Allowed"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:16
+msgid ""
+"BLAKE2B HashSize must be restricted to one of the following [1 .. 64], \"%d"
+"\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:17
+msgid "\"Key\" Length Must Not Be Greater Than 64, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:19
+msgid "\"Personalisation\" Length Must Be Equal To 16, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:20
+msgid "\"Salt\" Length Must Be Equal To 16, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:23
+msgid "FanOut Value Should be Between [0 .. 255] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:25
+msgid "MaxDepth Value Should be Between [1 .. 255] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:27
+msgid "NodeDepth Value Should be Between [0 .. 255] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:29
+msgid "InnerHashSize Value Should be Between [0 .. 64] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:31
+msgid "NodeOffset Value Should be Between [0 .. (2^64-1)] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:34
+msgid "Tree Inner Hash Size Must Not Be Greater Than 64, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SMaximumOutputLengthExceeded
+#: libraries/hashlib4pascal/HlpBlake2S.pas:28
+msgid "\"Maximum Length is 2^32 blocks of 32 bytes"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:16
+msgid ""
+"BLAKE2S HashSize must be restricted to one of the following [1 .. 32], \"%d"
+"\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:17
+msgid "\"Key\" Length Must Not Be Greater Than 32, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:19
+msgid "\"Personalisation\" Length Must Be Equal To 8, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:20
+msgid "\"Salt\" Length Must Be Equal To 8, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:23
+msgid "FanOut Value Should be Between [0 .. 255] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:25
+msgid "MaxDepth Value Should be Between [1 .. 255] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:27
+msgid "NodeDepth Value Should be Between [0 .. 255] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:29
+msgid "InnerHashSize Value Should be Between [0 .. 32] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:31
+msgid "NodeOffset Value Should be Between [0 .. (2^48-1)] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:34
+msgid "Tree Inner Hash Size Must Not Be Greater Than 32, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCRCType
+#: libraries/hashlib4pascal/HlpCRC.pas:22
+msgid "UnSupported CRC Type: \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SWidthOutOfRange
+#: libraries/hashlib4pascal/HlpCRC.pas:23
+msgid "Width Must be Between 3 and 64. \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SIndexOutOfRange
+#: libraries/hashlib4pascal/HlpHash.pas:16
+msgid "Current Index Is Out Of Range"
+msgstr ""
+
+#. Programmer's name for it: SFileNotExist
+#: libraries/hashlib4pascal/HlpHash.pas:19
+msgid "Specified File Not Found"
+msgstr ""
+
+#. Programmer's name for it: SCloneNotYetImplemented
+#: libraries/hashlib4pascal/HlpHash.pas:20
+msgid "Clone Not Yet Implemented For \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SHashBufferMessage
+#: libraries/hashlib4pascal/HlpHashBuffer.pas:13
+msgid "HashBuffer, Length: %d, Position: %d, IsEmpty: %s"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:27
+msgid "Current Data Structure cannot be Represented as an \"Int32\" Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:29
+msgid "Current Data Structure cannot be Represented as an \"UInt8\" Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:31
+msgid "Current Data Structure cannot be Represented as an \"UInt16\" Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:33
+msgid "Current Data Structure cannot be Represented as an \"UInt32\" Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:35
+msgid "Current Data Structure cannot be Represented as an \"UInt64\" Type."
+msgstr ""
+
+#. Programmer's name for it: SInvalidHavalRound
+#: libraries/hashlib4pascal/HlpHaval.pas:25
+msgid "Haval Round Must be 3, 4 or 5"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHavalRound
+#: libraries/hashlib4pascal/HlpHaval.pas:27
+msgid ""
+"Haval HashSize Must be Either 128 bit(16 byte), 160 bit(20 byte), 192 "
+"bit(24 byte), 224 bit(28 byte) or 256 bit(32 byte)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpMurmur2.pas:24
+#: libraries/hashlib4pascal/HlpMurmur2_64.pas:21
+#: libraries/hashlib4pascal/HlpMurmurHash3_x64_128.pas:22
+#: libraries/hashlib4pascal/HlpMurmurHash3_x86_128.pas:22
+#: libraries/hashlib4pascal/HlpMurmurHash3_x86_32.pas:22
+#: libraries/hashlib4pascal/HlpSipHash.pas:23
+#: libraries/hashlib4pascal/HlpXXHash32.pas:19
+#: libraries/hashlib4pascal/HlpXXHash64.pas:19
+msgid "KeyLength Must Be Equal to %d"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpNullable.pas:16
+msgid "Cannot assign non-null pointer to nullable type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpNullable.pas:18
+msgid "Unsupported Type: Only supports Integers, Int64, Floats and Strings."
+msgstr ""
+
+#. Programmer's name for it: SGetNullValue
+#: libraries/hashlib4pascal/HlpNullable.pas:19
+msgid "Attempted to get a null value."
+msgstr ""
+
+#. Programmer's name for it: SHashSizeNotImplemented
+#: libraries/hashlib4pascal/HlpNullDigest.pas:18
+msgid "HashSize Not Implemented For \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeNotImplemented
+#: libraries/hashlib4pascal/HlpNullDigest.pas:19
+msgid "BlockSize Not Implemented For \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidOutputByteCount
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:32
+msgid "\"(AByteCount)\" Argument Less Than \"%d\"."
+msgstr ""
+
+#. Programmer's name for it: SBlockInstanceNotInitialized
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:33
+msgid "Block Instance not Initialized"
+msgstr ""
+
+#. Programmer's name for it: SInputLengthInvalid
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:34
+msgid "Input Length \"%d\" is not Equal to BlockSize \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SLanesTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:35
+msgid "Lanes Must be Greater Than \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SLanesTooBig
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:36
+msgid "Lanes Must be Less Than \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SMemoryTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:37
+msgid "Memory is Less Than: \"%d\", Expected \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SIterationsTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:38
+msgid "Iterations is Less Than: \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SIterationsTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:40
+msgid "Argon2 Parameter Builder Not Initialized"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:31
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:18
+msgid "\"(AByteCount)\" Argument must be a value greater than zero."
+msgstr ""
+
+#. Programmer's name for it: SInvalidCost
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:32
+msgid "Cost parameter must be > 1 and a power of 2."
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeAndCostIncompatible
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:33
+msgid "Cost parameter must be > 1 and < 65536."
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:34
+msgid "Block size must be >= 1."
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:36
+msgid ""
+"Parallelism parameter must be >= 1 and <= %d (based on block size of %d)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidIndex
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:19
+msgid "Invalid start or end index in the internal buffer"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedIHashInstance
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:20
+msgid "\"IHash\" instance is uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SIterationtooSmall
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:21
+msgid "Iteration must be greater than zero."
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashMode
+#: libraries/hashlib4pascal/HlpSHA3.pas:25
+msgid "Only \"[%s]\" HashModes are Supported"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashMode
+#: libraries/hashlib4pascal/HlpSHA3.pas:27
+msgid "XOFSize in Bits must be Multiples of 8 and be Greater than Zero Bytes"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpSnefru.pas:24
+msgid "Snefru Security Level Cannot be Less than 1. Standard Level is 8"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpSnefru.pas:26
+msgid "Snefru HashSize Must be Either 128 bit(16 byte) or 256 bit(32 byte)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashSize
+#: libraries/hashlib4pascal/HlpSnefru.pas:27
+msgid "Specified HashSize Is Invalid or UnSupported \"%d\""
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpTiger.pas:22
+msgid ""
+"Tiger HashSize Must be Either 128 bit(16 byte), 160 bit(20 byte) or 192 "
+"bit(24 byte)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashRound
+#. Programmer's name for it: SInvalidHashRound
+#: libraries/hashlib4pascal/HlpTiger.pas:23
+#: libraries/hashlib4pascal/HlpTiger2.pas:23
+msgid "Specified HashRound Is Invalid or UnSupported \"%d\""
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpTiger2.pas:22
+msgid ""
+"Tiger2 HashSize Must be Either 128 bit(16 byte), 160 bit(20 byte) or 192 "
+"bit(24 byte)"
+msgstr ""
+
+#. Programmer's name for it: sInvalidIPAddress
+#: libraries/mormot-min/SynCommons.pas:18356
+msgid "\"%s\" is an invalid IP v4 address"
+msgstr ""
+
+#. Programmer's name for it: sInvalidEmailAddress
+#: libraries/mormot-min/SynCommons.pas:18357
+msgid "\"%s\" is an invalid email address"
+msgstr ""
+
+#. Programmer's name for it: sInvalidPattern
+#: libraries/mormot-min/SynCommons.pas:18358
+msgid "\"%s\" does not match the expected pattern"
+msgstr ""
+
+#. Programmer's name for it: sCharacter01n
+#: libraries/mormot-min/SynCommons.pas:18359
+msgid "character,character,characters"
+msgstr ""
+
+#. Programmer's name for it: sInvalidTextLengthMin
+#: libraries/mormot-min/SynCommons.pas:18360
+msgid "Expect at least %d %s"
+msgstr ""
+
+#. Programmer's name for it: sInvalidTextLengthMax
+#: libraries/mormot-min/SynCommons.pas:18361
+msgid "Expect up to %d %s"
+msgstr ""
+
+#. Programmer's name for it: sInvalidTextChar
+#: libraries/mormot-min/SynCommons.pas:18364
+msgid ""
+"Expect at least %d %s %s,Expect up to %d %s %s,alphabetical,digital,"
+"punctuation,lowercase,uppercase,space,Too much spaces on the left,Too much "
+"spaces on the right"
+msgstr ""
+
+#. Programmer's name for it: sValidationFailed
+#: libraries/mormot-min/SynCommons.pas:18365
+msgid "\"%s\" rule failed"
+msgstr ""
+
+#. Programmer's name for it: sValidationFieldVoid
+#: libraries/mormot-min/SynCommons.pas:18366
+msgid "An unique key field must not be void"
+msgstr ""
+
+#. Programmer's name for it: sValidationFieldDuplicate
+#: libraries/mormot-min/SynCommons.pas:18367
+msgid "Value already used for this unique key field"
+msgstr ""
+
+#. Programmer's name for it: Sneed_dict
+#: libraries/paszlib/paszlib_zbase.pas:409
+msgid "need dictionary"
+msgstr ""
+
+#. Programmer's name for it: Sstream_end
+#: libraries/paszlib/paszlib_zbase.pas:410
+msgid "stream end"
+msgstr ""
+
+#. Programmer's name for it: Sfile_error
+#: libraries/paszlib/paszlib_zbase.pas:411
+msgid "file error"
+msgstr ""
+
+#. Programmer's name for it: Sstream_error
+#: libraries/paszlib/paszlib_zbase.pas:412
+msgid "stream error"
+msgstr ""
+
+#. Programmer's name for it: Sdata_error
+#: libraries/paszlib/paszlib_zbase.pas:413
+msgid "data error"
+msgstr ""
+
+#. Programmer's name for it: Smem_error
+#: libraries/paszlib/paszlib_zbase.pas:414
+msgid "insufficient memory"
+msgstr ""
+
+#. Programmer's name for it: Sbuf_error
+#: libraries/paszlib/paszlib_zbase.pas:415
+msgid "buffer error"
+msgstr ""
+
+#. Programmer's name for it: Sversion_error
+#: libraries/paszlib/paszlib_zbase.pas:416
+msgid "incompatible version"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHexCharacter
+#: libraries/simplebaselib4pascal/SbpBase16.pas:12
+msgid "Invalid hex character: \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidTextLength
+#: libraries/simplebaselib4pascal/SbpBase16.pas:13
+msgid "Text cannot be odd length \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#. Programmer's name for it: SAlphabetNil
+#. Programmer's name for it: SAlphabetNil
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpBase32.pas:16
+#: libraries/simplebaselib4pascal/SbpBase58.pas:16
+#: libraries/simplebaselib4pascal/SbpBase64.pas:16
+#: libraries/simplebaselib4pascal/SbpBase85.pas:16
+msgid "Alphabet Instance cannot be Nil \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpBase85.pas:18
+msgid "Unexpected Shortcut Character In The Middle Of a Regular Block"
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:12
+msgid "\"%s\" Cannot Be Nil."
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:14
+msgid ""
+"Required Alphabet Length is \"%d\" but Provided Alphabet is \"%d\" "
+"Characters Long."
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacter
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:15
+msgid "Alphabet Contains Character \"%s (%d)\" Above \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidInput
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:16
+msgid "Invalid character value in input \"%s\""
+msgstr ""
+
+#. Programmer's name for it: sAColumnsCantBeNil
+#: libraries/sphere10/UCommon.Data.pas:246
+msgid "AColumns can't be nil!"
+msgstr ""
+
+#. Programmer's name for it: sTooManyValues
+#: libraries/sphere10/UCommon.Data.pas:247
+msgid "Too many values"
+msgstr ""
+
+#. Programmer's name for it: sInvalidUTF8String
+#: libraries/sphere10/UCommon.Data.pas:248
+msgid "Invalid UTF8 string"
+msgstr ""
+
+#. Programmer's name for it: sBadNumericExpression
+#: libraries/sphere10/UCommon.Data.pas:249
+msgid "Bad numeric expression"
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedNumberFormat
+#: libraries/sphere10/UCommon.Data.pas:250
+msgid "Unexpected number format"
+msgstr ""
+
+#. Programmer's name for it: sBadSyntaxForEscapeCharacter
+#: libraries/sphere10/UCommon.Data.pas:251
+msgid "Bad syntax for escape character \"\\\""
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedCharInExpression
+#: libraries/sphere10/UCommon.Data.pas:252
+msgid "Unexpected char in expression"
+msgstr ""
+
+#. Programmer's name for it: sInvaildExpression_CharDetectedAfterClosingBracket
+#: libraries/sphere10/UCommon.Data.pas:253
+msgid "Invaild expression (char detected after closing bracket)"
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedTokenFound
+#: libraries/sphere10/UCommon.Data.pas:254
+msgid "Unexpected token found : \"%s\""
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedStringLiteralInExpression
+#: libraries/sphere10/UCommon.Data.pas:255
+msgid "Unexpected string literal in expression"
+msgstr ""
+
+#. Programmer's name for it: sBadlyClosedBetweenExpression
+#: libraries/sphere10/UCommon.Data.pas:256
+msgid "Badly closed \"between\" expression"
+msgstr ""
+
+#. Programmer's name for it: sMissingNumberInExpression
+#: libraries/sphere10/UCommon.Data.pas:257
+msgid "Missing number in expression"
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedOccurrenceOf_Found
+#: libraries/sphere10/UCommon.Data.pas:258
+msgid "Unexpected occurrence of \"%s\" found"
+msgstr ""
+
+#. Programmer's name for it: sBadBetweenExpression_UnexpectedToken
+#: libraries/sphere10/UCommon.Data.pas:259
+msgid "Bad \"between\" expression. Unexpected \"%s\""
+msgstr ""
+
+#. Programmer's name for it: sExpressionError_NoValue
+#: libraries/sphere10/UCommon.Data.pas:260
+msgid "Expression error (no value)"
+msgstr ""
+
+#. Programmer's name for it: sNotImplemented
+#: libraries/sphere10/UCommon.pas:468
+msgid "Not implemented"
+msgstr ""
+
+#. Programmer's name for it: sInvalidParameter_OutOfBounds
+#: libraries/sphere10/UCommon.pas:469
+msgid "Invalid Parameter: %s out of bounds"
+msgstr ""
+
+#. Programmer's name for it: sLogDebug
+#: libraries/sphere10/UCommon.pas:470
+msgid "DEBUG"
+msgstr ""
+
+#. Programmer's name for it: sLogInfo
+#: libraries/sphere10/UCommon.pas:471
+msgid "INFO"
+msgstr ""
+
+#. Programmer's name for it: sLogWarn
+#: libraries/sphere10/UCommon.pas:472
+msgid "WARNING"
+msgstr ""
+
+#. Programmer's name for it: sLogError
+#: libraries/sphere10/UCommon.pas:473
+msgid "ERROR"
+msgstr ""
+
+#. Programmer's name for it: sTotal
+#: libraries/sphere10/UVisualGrid.pas:475
+msgid "Total: %d"
+msgstr ""
+
+#. Programmer's name for it: sStandardSearch
+#: libraries/sphere10/UVisualGrid.pas:476
+msgid "Standard Search"
+msgstr ""
+
+#. Programmer's name for it: sMultiColumnSearch
+#: libraries/sphere10/UVisualGrid.pas:477
+msgid "Multi-Column Search"
+msgstr ""
+
+#. Programmer's name for it: sPageSize
+#: libraries/sphere10/UVisualGrid.pas:478
+msgid "Page size:"
+msgstr ""
+
+#. Programmer's name for it: sSearchExpression
+#: libraries/sphere10/UVisualGrid.pas:479
+msgid "Search expression"
+msgstr ""
+
+#. Programmer's name for it: sDataLoading
+#: libraries/sphere10/UVisualGrid.pas:480
+msgid "DATA LOADING"
+msgstr ""
+
+#. Programmer's name for it: sExpression
+#: libraries/sphere10/UVisualGrid.pas:481
+msgid "Expression"
+msgstr ""
+
+#. Programmer's name for it: sImproperColumnIndex
+#: libraries/sphere10/UVisualGrid.pas:482
+msgid "Improper column index. Max expected is %d but %d found."
+msgstr ""

BIN
src/locale/en/LC_MESSAGES/default.mo


+ 4638 - 0
src/locale/en/LC_MESSAGES/default.po

@@ -0,0 +1,4638 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: 2020-03-30 19:19\n"
+"PO-Revision-Date: 2020-03-30 19:38+0200\n"
+"Last-Translator: Somebody <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.3\n"
+"Language-Team: \n"
+"Language: en\n"
+
+#. FRMAbout..Caption
+#: gui-classic/UFRMAbout.dfm:7
+msgid "About..."
+msgstr ""
+
+#. FRMAbout..Font.Name
+#. FRMAbout..Label1..Font.Name
+#. FRMAbout..lblBuild..Font.Name
+#. FRMAbout..lblProtocolVersion..Font.Name
+#. FRMAbout..Label3..Font.Name
+#. FRMAbout..Label4..Font.Name
+#. FRMAbout..Label5..Font.Name
+#. FRMAccountSelect..Font.Name
+#. FRMDiagnosticTool..Font.Name
+#. FRMHashLock..Font.Name
+#. FRMHashLock..lblError..Font.Name
+#. FRMHashLock..GroupBox2..meHashLockData..Font.Name
+#. FRMMemoText..Font.Name
+#. FRMMemoText..Memo..Font.Name
+#. FRMNewPrivateKeyType..Font.Name
+#. FRMNodesIp..Font.Name
+#. FRMOperation..Font.Name
+#. FRMOperation..lblAccountBalance..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblEncryptionErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..memoPayload..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblTransactionErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblChangeKeyErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewOwnerErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblListAccountErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsDelistAccount..lblDelistErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyAccountErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..Label2..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeInfoErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsGlobalError..lblGlobalErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsGlobalError..bbPassword..Font.Name
+#. FRMOperation..memoAccounts..Font.Name
+#. FRMOperation..ebSenderAccount..Font.Name
+#. FRMOperationsExplorer..Font.Name
+#. FRMPascalCoinWalletConfig..Font.Name
+#. FRMPascalCoinWalletConfig..Label4..Font.Name
+#. FRMPascalCoinWalletConfig..Label7..Font.Name
+#. FRMPascalCoinWalletConfig..bbUpdatePassword..Font.Name
+#. FRMPayloadDecoder..Font.Name
+#. FRMPayloadDecoder..lblBlock..Font.Name
+#. FRMPayloadDecoder..lblDateTime..Font.Name
+#. FRMPayloadDecoder..lblOperationTxt..Font.Name
+#. FRMPayloadDecoder..lblAmount..Font.Name
+#. FRMPayloadDecoder..lblFee..Font.Name
+#. FRMPayloadDecoder..lblSender..Font.Name
+#. FRMPayloadDecoder..lblReceiver..Font.Name
+#. FRMPayloadDecoder..lblReceiverInfo..Font.Name
+#. FRMPayloadDecoder..PageControl..tsDecoded..lblDecodedMethod..Font.Name
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoDecoded..Font.Name
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoOriginalPayloadInHexa..Font.Name
+#. FRMPayloadDecoder..ebOphash..Font.Name
+#. FRMDiagnosticTool..Font.Name
+#. FRMRandomOperations..Font.Name
+#. FRMRandomOperations..pnlTop..lblTopCaption..Font.Name
+#. FRMRPCCalls..Font.Name
+#. FRMRPCCalls..pnlTop..lblTopCaption..Font.Name
+#. FRMSaleAccounts..Font.Name
+#. FRMSaleAccounts..lblAccountBalance..Font.Name
+#. FRMSaleAccounts..memoAccounts..Font.Name
+#. FRMSaleAccounts..ebSenderAccount..Font.Name
+#. FRMWallet..Font.Name
+#. FRMWallet..pnlTop..lblTimeAverageAux..Font.Name
+#. FRMWallet..pnlTop..Label16..Font.Name
+#. FRMWallet..pnlTop..lblBlocksFound..Font.Name
+#. FRMWallet..pnlTop..lblReceivedMessages..Font.Name
+#. FRMWallet..pnlTop..lblBuild..Font.Name
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsTop..Font.Name
+#. FRMWallet..PageControl..tsPendingOperations..pnlPendingOperations..Label10..Font.Name
+#. FRMWallet..PageControl..tsMessages..Label14..Font.Name
+#. FRMWallet..PageControl..tsMessages..memoMessages..Font.Name
+#. FRMWalletKeys..Font.Name
+#. FRMWalletKeys..lblKeysEncrypted..Font.Name
+#. FRMWalletKeys..memoPrivateKey..Font.Name
+#. FRMWalletKeys..bbUpdatePassword..Font.Name
+#. FRMDiagnosticTool..Font.Name
+#: gui-classic/UFRMAbout.dfm:14 gui-classic/UFRMAbout.dfm:130
+#: gui-classic/UFRMAbout.dfm:143 gui-classic/UFRMAbout.dfm:156
+#: gui-classic/UFRMAbout.dfm:176 gui-classic/UFRMAbout.dfm:190
+#: gui-classic/UFRMAbout.dfm:205 gui-classic/UFRMAccountSelect.dfm:12
+#: gui-classic/UFRMDiagnosticTool.dfm:11 gui-classic/UFRMHashLock.dfm:12
+#: gui-classic/UFRMHashLock.dfm:34 gui-classic/UFRMHashLock.dfm:117
+#: gui-classic/UFRMMemoText.dfm:12 gui-classic/UFRMMemoText.dfm:50
+#: gui-classic/UFRMNewPrivateKeyType.dfm:13 gui-classic/UFRMNodesIp.dfm:13
+#: gui-classic/UFRMOperation.dfm:13 gui-classic/UFRMOperation.dfm:40
+#: gui-classic/UFRMOperation.dfm:196 gui-classic/UFRMOperation.dfm:259
+#: gui-classic/UFRMOperation.dfm:332 gui-classic/UFRMOperation.dfm:410
+#: gui-classic/UFRMOperation.dfm:427 gui-classic/UFRMOperation.dfm:539
+#: gui-classic/UFRMOperation.dfm:783 gui-classic/UFRMOperation.dfm:825
+#: gui-classic/UFRMOperation.dfm:851 gui-classic/UFRMOperation.dfm:978
+#: gui-classic/UFRMOperation.dfm:1065 gui-classic/UFRMOperation.dfm:1080
+#: gui-classic/UFRMOperation.dfm:1149 gui-classic/UFRMOperation.dfm:1167
+#: gui-classic/UFRMOperationsExplorer.dfm:12
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:13
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:66
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:110
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:200
+#: gui-classic/UFRMPayloadDecoder.dfm:14 gui-classic/UFRMPayloadDecoder.dfm:37
+#: gui-classic/UFRMPayloadDecoder.dfm:50 gui-classic/UFRMPayloadDecoder.dfm:78
+#: gui-classic/UFRMPayloadDecoder.dfm:99
+#: gui-classic/UFRMPayloadDecoder.dfm:119
+#: gui-classic/UFRMPayloadDecoder.dfm:146
+#: gui-classic/UFRMPayloadDecoder.dfm:166
+#: gui-classic/UFRMPayloadDecoder.dfm:179
+#: gui-classic/UFRMPayloadDecoder.dfm:214
+#: gui-classic/UFRMPayloadDecoder.dfm:234
+#: gui-classic/UFRMPayloadDecoder.dfm:253
+#: gui-classic/UFRMPayloadDecoder.dfm:416
+#: gui-classic/UFRMRandomHashUtil.dfm:11
+#: gui-classic/UFRMRandomOperations.dfm:11
+#: gui-classic/UFRMRandomOperations.dfm:44 gui-classic/UFRMRPCCalls.dfm:12
+#: gui-classic/UFRMRPCCalls.dfm:50 gui-classic/UFRMSaleAccounts.dfm:12
+#: gui-classic/UFRMSaleAccounts.dfm:57 gui-classic/UFRMSaleAccounts.dfm:84
+#: gui-classic/UFRMSaleAccounts.dfm:103 gui-classic/UFRMWallet.dfm:13
+#: gui-classic/UFRMWallet.dfm:284 gui-classic/UFRMWallet.dfm:299
+#: gui-classic/UFRMWallet.dfm:315 gui-classic/UFRMWallet.dfm:333
+#: gui-classic/UFRMWallet.dfm:349 gui-classic/UFRMWallet.dfm:658
+#: gui-classic/UFRMWallet.dfm:870 gui-classic/UFRMWallet.dfm:1183
+#: gui-classic/UFRMWallet.dfm:1216 gui-classic/UFRMWalletKeys.dfm:13
+#: gui-classic/UFRMWalletKeys.dfm:66 gui-classic/UFRMWalletKeys.dfm:155
+#: gui-classic/UFRMWalletKeys.dfm:504 lib/i386-win32/UFRMDiagnosticTool.dfm:11
+msgid "Tahoma"
+msgstr ""
+
+#. FRMAbout..Label1..Caption
+#. FRMWallet..Caption
+#: gui-classic/UFRMAbout.dfm:126 gui-classic/UFRMWallet.dfm:4
+msgid "Pascal full node Wallet (Classic GUI)"
+msgstr ""
+
+#. FRMAbout..lblBuild..Caption
+#: gui-classic/UFRMAbout.dfm:139
+msgid "Build:"
+msgstr ""
+
+#. FRMAbout..lblProtocolVersion..Caption
+#: gui-classic/UFRMAbout.dfm:152
+msgid "Protocol:"
+msgstr ""
+
+#. FRMAbout..Label2..Caption
+#: gui-classic/UFRMAbout.dfm:165
+msgid "Source Code:"
+msgstr ""
+
+#. FRMAbout..Label3..Caption
+#: gui-classic/UFRMAbout.dfm:172
+msgid "Check For New Versions:"
+msgstr ""
+
+#. FRMAbout..Label4..Caption
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:186 gui-classic/UFRMAbout.dfm:252
+msgid "https://github.com/PascalCoin/PascalCoin"
+msgstr ""
+
+#. FRMAbout..Label5..Caption
+#: gui-classic/UFRMAbout.dfm:201
+msgid "https://sourceforge.net/projects/pascalcoin"
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:220
+msgid "Copyright (c) 2016 - 2019 PascalCoin developers"
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:221
+msgid "Based on Albert Molina original source code"
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:225
+msgid ""
+"Pascal (aka Pascal Coin) is P2P cryptocurrency without the need for "
+"historical "
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:228
+msgid "operations. This software comprises a node within the Pascal network."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:232
+msgid ""
+"Distributed under the MIT software license, see the accompanying file "
+"LICENSE  or "
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:233
+msgid "visit http://www.opensource.org/licenses/mit-license.php."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:237
+msgid "THIS IS EXPERIMENTAL SOFTWARE. Use it for educational purposes only."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:241
+msgid ""
+"This product includes software developed by the OpenSSL Project and Denis "
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:244
+msgid "Grinyuk (https://github.com/Arvur/OpenSSL-Delphi), some cryptographic "
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:247
+msgid ""
+"functions inspirated in code written by Ladar Levison and Marco Ferrante, "
+"and "
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:248
+msgid "Synapse Socket code copyright of Lukas Gebauer."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:251
+msgid ""
+"Original source code is written in Pascal Language and is available at "
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:254
+msgid "If you like it, consider a donation using BitCoin:"
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:255
+msgid "16K3HCZRhFUtM8GdWRcfKeaa6KsuyxZaYk"
+msgstr ""
+
+#. FRMAbout..bbClose..Caption
+#. FRMPayloadDecoder..bbClose..Caption
+#. FRMWallet..MainMenu..miProject..MiClose..Caption
+#: gui-classic/UFRMAbout.dfm:266 gui-classic/UFRMPayloadDecoder.dfm:353
+#: gui-classic/UFRMWallet.dfm:1273
+msgid "Close"
+msgstr ""
+
+#. FRMAccountSelect..Caption
+#: gui-classic/UFRMAccountSelect.dfm:5
+msgid "Accounts"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbOnlyForSale..Caption
+#: gui-classic/UFRMAccountSelect.dfm:33
+msgid "Only for sale or swap"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..bbSearch..Caption
+#: gui-classic/UFRMAccountSelect.dfm:41
+msgid "Search"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbOnlyForPrivateSaleToMe..Caption
+#: gui-classic/UFRMAccountSelect.dfm:107
+msgid "Only for private sale to me"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbAccountsBalance..Caption
+#: gui-classic/UFRMAccountSelect.dfm:115
+msgid "Accounts Balance"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbMyAccounts..Caption
+#: gui-classic/UFRMAccountSelect.dfm:123
+msgid "My Accounts"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbOnlyForPublicSale..Caption
+#: gui-classic/UFRMAccountSelect.dfm:141
+msgid "Only for public sale"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbAccountsName..Caption
+#: gui-classic/UFRMAccountSelect.dfm:165
+msgid "Accounts name"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..Label17..Caption
+#. FRMWallet..pnlTop..Label5..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..Label17..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..Label20..Caption
+#: gui-classic/UFRMAccountSelect.dfm:192 gui-classic/UFRMWallet.dfm:261
+#: gui-classic/UFRMWallet.dfm:543 gui-classic/UFRMWallet.dfm:685
+msgid "Accounts:"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..lblAccountsCount..Caption
+#. FRMAccountSelect..pnlBottom..lblAccountsBalance..Caption
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblPayloadLength..Caption
+#. FRMPayloadDecoder..lblDateTime..Caption
+#. FRMPayloadDecoder..lblOperationTxt..Caption
+#. FRMPayloadDecoder..lblAmount..Caption
+#. FRMPayloadDecoder..lblFee..Caption
+#. FRMPayloadDecoder..lblReceiver..Caption
+#. FRMWallet..pnlTop..lblCurrentBlock..Caption
+#. FRMWallet..pnlTop..lblOperationsPending..Caption
+#. FRMWallet..pnlTop..lblMinersClients..Caption
+#. FRMWallet..pnlTop..lblCurrentDifficulty..Caption
+#. FRMWallet..pnlTop..lblTimeAverage..Caption
+#. FRMWallet..pnlTop..lblCurrentAccounts..Caption
+#. FRMWallet..pnlTop..lblTimeAverageAux..Caption
+#. FRMWallet..pnlTop..lblBlocksFound..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..lblAccountsCount..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..lblAccountsBalance..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..lblSelectedAccountsCount..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..lblSelectedAccountsBalance..Caption
+#: gui-classic/UFRMAccountSelect.dfm:201 gui-classic/UFRMAccountSelect.dfm:219
+#: gui-classic/UFRMOperation.dfm:207 gui-classic/UFRMPayloadDecoder.dfm:46
+#: gui-classic/UFRMPayloadDecoder.dfm:74 gui-classic/UFRMPayloadDecoder.dfm:95
+#: gui-classic/UFRMPayloadDecoder.dfm:115
+#: gui-classic/UFRMPayloadDecoder.dfm:162 gui-classic/UFRMWallet.dfm:144
+#: gui-classic/UFRMWallet.dfm:180 gui-classic/UFRMWallet.dfm:198
+#: gui-classic/UFRMWallet.dfm:216 gui-classic/UFRMWallet.dfm:225
+#: gui-classic/UFRMWallet.dfm:270 gui-classic/UFRMWallet.dfm:279
+#: gui-classic/UFRMWallet.dfm:310 gui-classic/UFRMWallet.dfm:561
+#: gui-classic/UFRMWallet.dfm:570 gui-classic/UFRMWallet.dfm:694
+#: gui-classic/UFRMWallet.dfm:712
+msgid "000"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..Label19..Caption
+#. FRMOperation..lblBalanceCaption..Caption
+#. FRMSaleAccounts..lblBalanceCaption..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..Label19..Caption
+#: gui-classic/UFRMAccountSelect.dfm:210 gui-classic/UFRMOperation.dfm:50
+#: gui-classic/UFRMSaleAccounts.dfm:73 gui-classic/UFRMWallet.dfm:552
+msgid "Balance:"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..bbSelect..Caption
+#: gui-classic/UFRMAccountSelect.dfm:229
+msgid "Select"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..bbTypeStats..Caption
+#: gui-classic/UFRMAccountSelect.dfm:249
+msgid "Type stats"
+msgstr ""
+
+#. FRMDiagnosticTool..Caption
+#. FRMDiagnosticTool..Caption
+#. FRMDiagnosticTool..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:4 gui-classic/UFRMRandomHashUtil.dfm:4
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:4
+msgid "FRMDiagnosticTool"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH..Caption
+#. FRMDiagnosticTool..btnRH..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:25
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:25
+msgid "Start Random Hash"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2..Caption
+#. FRMDiagnosticTool..btnRH2..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:34
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:34
+msgid "Start Random Hash 2"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2C..Caption
+#. FRMDiagnosticTool..btnRH2C..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:51
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:51
+msgid "Start Random Hash 2 (Cached)"
+msgstr ""
+
+#. FRMDiagnosticTool..btnEntropy..Caption
+#. FRMDiagnosticTool..btnEntropy..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:60
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:60
+msgid "Entropy Tests"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2NonceScan..Caption
+#. FRMDiagnosticTool..btnRH2NonceScan..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:69
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:69
+msgid "Start Random Hash 2 (Nonce Scan)"
+msgstr ""
+
+#. FRMDiagnosticTool..txtScanLevel..TextHint
+#. FRMDiagnosticTool..txtScanLevel..TextHint
+#: gui-classic/UFRMDiagnosticTool.dfm:79
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:79
+msgid "Enter Scan Level (2-4)"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRHC..Caption
+#. FRMDiagnosticTool..btnRHC..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:86
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:86
+msgid "Start Random Hash (Cached)"
+msgstr ""
+
+#. FRMHashLock..Caption
+#: gui-classic/UFRMHashLock.dfm:5
+msgid "Atomic Swap Hash-Lock "
+msgstr ""
+
+#. FRMHashLock..lblError..Caption
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblEncryptionErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblTransactionErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblChangeKeyErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewOwnerErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblListAccountErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsDelistAccount..lblDelistErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyAccountErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeInfoErrors..Caption
+#: gui-classic/UFRMHashLock.dfm:29 gui-classic/UFRMOperation.dfm:191
+#: gui-classic/UFRMOperation.dfm:327 gui-classic/UFRMOperation.dfm:405
+#: gui-classic/UFRMOperation.dfm:422 gui-classic/UFRMOperation.dfm:534
+#: gui-classic/UFRMOperation.dfm:778 gui-classic/UFRMOperation.dfm:820
+#: gui-classic/UFRMOperation.dfm:973
+msgid "Errors detected"
+msgstr ""
+
+#. FRMHashLock..btnSet..Caption
+#: gui-classic/UFRMHashLock.dfm:56
+msgid "Set Hash-Lock"
+msgstr ""
+
+#. FRMHashLock..GroupBox1..Caption
+#: gui-classic/UFRMHashLock.dfm:67
+msgid "Mode"
+msgstr ""
+
+#. FRMHashLock..GroupBox1..rbHashLock....Caption
+#: gui-classic/UFRMHashLock.dfm:76
+msgid "Hash-Lock - the 32 byte hash-lock provided to you by the counterparty"
+msgstr ""
+
+#. FRMHashLock..GroupBox1..rbHashLockKey....Caption
+#: gui-classic/UFRMHashLock.dfm:86
+msgid ""
+"Hash-Lock Key - a secret that will be hashed to create the 32 byte hash-lock"
+msgstr ""
+
+#. FRMHashLock..GroupBox2..Caption
+#: gui-classic/UFRMHashLock.dfm:96
+msgid "Data"
+msgstr ""
+
+#. FRMHashLock..GroupBox2..Label2..Caption
+#: gui-classic/UFRMHashLock.dfm:106
+msgid "Please enter the hash lock data as a hexadecimal string"
+msgstr ""
+
+#. FRMMemoText..Caption
+#: gui-classic/UFRMMemoText.dfm:5
+msgid "Information"
+msgstr ""
+
+#. FRMMemoText..Memo....Lines.Strings
+#: gui-classic/UFRMMemoText.dfm:53
+msgid "Memo"
+msgstr ""
+
+#. FRMNewPrivateKeyType..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:6
+msgid "New Private Key"
+msgstr ""
+
+#. FRMNewPrivateKeyType..Label1..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:26
+msgid "Name"
+msgstr ""
+
+#. FRMNewPrivateKeyType..ebName..Text
+#: gui-classic/UFRMNewPrivateKeyType.dfm:34
+msgid "ebName"
+msgstr ""
+
+#. FRMNewPrivateKeyType..rgKeyType..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:41
+msgid " Key Type: "
+msgstr ""
+
+#. FRMNewPrivateKeyType..rgKeyType....Items.Strings
+#: gui-classic/UFRMNewPrivateKeyType.dfm:43
+msgid "asdf"
+msgstr ""
+
+#. FRMNewPrivateKeyType..bbOk..Caption
+#. FRMNodesIp..bbOk..Caption
+#. FRMChangeLanguage..bbOk..Caption
+#. FRMChangeLanguage..bbOk..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:51 gui-classic/UFRMNodesIp.dfm:42
+#: gui-classic/UFRMSelectLanguage.dfm:18
+#: lib/i386-win32/ufrmselectlanguage.dfm:18
+msgid "OK"
+msgstr ""
+
+#. FRMNodesIp..Caption
+#: gui-classic/UFRMNodesIp.dfm:6
+msgid "Nodes IP"
+msgstr ""
+
+#. FRMNodesIp..Label1..Caption
+#: gui-classic/UFRMNodesIp.dfm:25
+msgid "Available Nodes Ip to connect"
+msgstr ""
+
+#. FRMNodesIp..memoNodesIp....Lines.Strings
+#: gui-classic/UFRMNodesIp.dfm:33
+msgid "memoNodesIp"
+msgstr ""
+
+#. FRMNodesIp..cbTryOnlyWithThisServers..Caption
+#: gui-classic/UFRMNodesIp.dfm:82
+msgid "Try to connect ONLY with this servers"
+msgstr ""
+
+#. FRMOperation..Caption
+#: gui-classic/UFRMOperation.dfm:6
+msgid "New Operation"
+msgstr ""
+
+#. FRMOperation..lblAccountCaption..Caption
+#. FRMSaleAccounts..lblAccountCaption..Caption
+#: gui-classic/UFRMOperation.dfm:26 gui-classic/UFRMSaleAccounts.dfm:25
+msgid "Account:"
+msgstr ""
+
+#. FRMOperation..lblAccountBalance..Caption
+#. FRMSaleAccounts..lblAccountBalance..Caption
+#: gui-classic/UFRMOperation.dfm:35 gui-classic/UFRMSaleAccounts.dfm:53
+msgid "lblAccountBalance"
+msgstr ""
+
+#. FRMOperation..lblAccountsCount..Caption
+#. FRMSaleAccounts..lblAccountsCount..Caption
+#: gui-classic/UFRMOperation.dfm:59 gui-classic/UFRMSaleAccounts.dfm:66
+msgid "XXX"
+msgstr ""
+
+#. FRMOperation..bbExecute..Caption
+#. FRMOperation..ActionList..actExecute..Caption
+#. FRMSaleAccounts..bbExecute..Caption
+#. FRMSaleAccounts..ActionList..actExecute..Caption
+#: gui-classic/UFRMOperation.dfm:68 gui-classic/UFRMOperation.dfm:1179
+#: gui-classic/UFRMSaleAccounts.dfm:178 gui-classic/UFRMSaleAccounts.dfm:215
+msgid "Execute (F12)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..lblFee..Caption
+#: gui-classic/UFRMOperation.dfm:113
+msgid "Operation Fee"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..lblSignerAccount..Caption
+#: gui-classic/UFRMOperation.dfm:122
+msgid "Signer account (Fee payer)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..Caption
+#: gui-classic/UFRMOperation.dfm:165
+msgid " Payload: "
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblEncryptPassword..Caption
+#: gui-classic/UFRMOperation.dfm:172
+msgid "Password:"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..Label4..Caption
+#: gui-classic/UFRMOperation.dfm:181
+msgid "Payload Data"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbEncryptedWithEC..Caption
+#: gui-classic/UFRMOperation.dfm:216
+msgid "Encrypted with dest account public key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbEncrptedWithPassword..Caption
+#: gui-classic/UFRMOperation.dfm:227
+msgid "Encrypted with password"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbNotEncrypted..Caption
+#: gui-classic/UFRMOperation.dfm:237
+msgid "Dont encrypt (Public payload)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbEncryptedWithOldEC..Caption
+#: gui-classic/UFRMOperation.dfm:272
+msgid "Encrypted with old public key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..cbPayloadAsHex..Caption
+#: gui-classic/UFRMOperation.dfm:282
+msgid "As Hex"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..Caption
+#: gui-classic/UFRMOperation.dfm:302
+msgid "Transaction"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblDestAccount..Caption
+#: gui-classic/UFRMOperation.dfm:308
+msgid "Destination account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblAmount..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyAmount..Caption
+#: gui-classic/UFRMOperation.dfm:317 gui-classic/UFRMOperation.dfm:810
+msgid "Amount"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..Caption
+#: gui-classic/UFRMOperation.dfm:387
+msgid "Change Key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewPrivateKey..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyNewKey..Caption
+#: gui-classic/UFRMOperation.dfm:394 gui-classic/UFRMOperation.dfm:837
+msgid "New private key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewOwnerPublicKey..Caption
+#: gui-classic/UFRMOperation.dfm:437
+msgid "New owners public key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..rbChangeKeyWithAnother..Caption
+#: gui-classic/UFRMOperation.dfm:446
+msgid "Change private key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..rbChangeKeyTransferAccountToNewOwner..Caption
+#: gui-classic/UFRMOperation.dfm:514
+msgid "Transfer account to a new owner"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..Caption
+#: gui-classic/UFRMOperation.dfm:526
+msgid "List Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblPrice..Caption
+#: gui-classic/UFRMOperation.dfm:550
+msgid "Sale Price"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblSeller..Caption
+#: gui-classic/UFRMOperation.dfm:560
+msgid "Seller Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblNewKey..Caption
+#: gui-classic/UFRMOperation.dfm:604
+msgid "Buyer Key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblTimeLock..Caption
+#: gui-classic/UFRMOperation.dfm:614
+msgid "Time-Lock"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblHashLock..Caption
+#: gui-classic/UFRMOperation.dfm:623
+msgid "Hash-Lock"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForPublicSale..Caption
+#: gui-classic/UFRMOperation.dfm:699
+msgid "List for Public Sale"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForPrivateSale..Caption
+#: gui-classic/UFRMOperation.dfm:707
+msgid "List for Private Sale"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForAccountSwap..Caption
+#: gui-classic/UFRMOperation.dfm:715
+msgid "List for Atomic Account Swap"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForCoinSwap..Caption
+#: gui-classic/UFRMOperation.dfm:723
+msgid "List for Atomic Coin Swap"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebPrice..TextHint
+#: gui-classic/UFRMOperation.dfm:732
+msgid "PASC Quantity"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebSellerAccount..TextHint
+#: gui-classic/UFRMOperation.dfm:740
+msgid "Account Number"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebNewKey..TextHint
+#: gui-classic/UFRMOperation.dfm:748
+msgid "BASE58 Encoded Public Key Of New Owner"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebTimeLock..Hint
+#: gui-classic/UFRMOperation.dfm:755
+msgid "Block Number "
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebTimeLock..TextHint
+#: gui-classic/UFRMOperation.dfm:759
+msgid "Block number"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsDelistAccount..Caption
+#: gui-classic/UFRMOperation.dfm:770
+msgid "Delist Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..Caption
+#: gui-classic/UFRMOperation.dfm:790
+msgid "Buy Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblAccountToBuy..Caption
+#: gui-classic/UFRMOperation.dfm:799
+msgid "Account to Buy"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..Label2..Caption
+#: gui-classic/UFRMOperation.dfm:846
+msgid "any over-payment will remain on bought account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..Caption
+#: gui-classic/UFRMOperation.dfm:966
+msgid "Change Info"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeName..Caption
+#: gui-classic/UFRMOperation.dfm:990
+msgid "Change name"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeType..Caption
+#: gui-classic/UFRMOperation.dfm:1001
+msgid "Change type"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeAccountData..Caption
+#: gui-classic/UFRMOperation.dfm:1012
+msgid "Change Data"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..ebChangeName..TextHint
+#: gui-classic/UFRMOperation.dfm:1022
+msgid "Account name (null or 3..64 chars)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..ebChangeType..TextHint
+#: gui-classic/UFRMOperation.dfm:1030
+msgid "0..65535"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..ebChangeAccountData..TextHint
+#: gui-classic/UFRMOperation.dfm:1038
+msgid "Hexadecimal value (0..32 bytes)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsGlobalError..lblGlobalErrors..Caption
+#: gui-classic/UFRMOperation.dfm:1060
+msgid "????"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsGlobalError..bbPassword..Caption
+#. FRMWalletKeys..bbUpdatePassword..Caption
+#: gui-classic/UFRMOperation.dfm:1076 gui-classic/UFRMWalletKeys.dfm:500
+msgid "Password"
+msgstr ""
+
+#. FRMOperation..memoAccounts....Lines.Strings
+#. FRMOperation..memoAccounts....Lines.Strings
+#. FRMSaleAccounts..memoAccounts....Lines.Strings
+#. FRMSaleAccounts..memoAccounts....Lines.Strings
+#: gui-classic/UFRMOperation.dfm:1152 gui-classic/UFRMOperation.dfm:1153
+#: gui-classic/UFRMSaleAccounts.dfm:87 gui-classic/UFRMSaleAccounts.dfm:88
+msgid "123456-11 (0.0000); 123456-11 (0.0000); "
+msgstr ""
+
+#. FRMOperation..ebSenderAccount..Text
+#. FRMSaleAccounts..ebSenderAccount..Text
+#: gui-classic/UFRMOperation.dfm:1171 gui-classic/UFRMSaleAccounts.dfm:107
+msgid "ebSenderAccount"
+msgstr ""
+
+#. FRMOperationsExplorer..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:5
+msgid "Operations Explorer Tool"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlTop..lblTopCaption....Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:58
+msgid ""
+"You can use this tool to explore operations, also you can copy/paste "
+"operations as a RAW (Use Ctrl+I to Import). This tool allows to generate a "
+"Multioperation, send to third party the RAW, add more txs... and then sign. "
+"Once Everybody has signed, you will be able to EXECUTE OPERATION to be "
+"added to network nodes. "
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlExport..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:85
+msgid "pnlExport"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlExport..Label1..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:94
+msgid "Operation as RAW:"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlInfo..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:115
+msgid "pnlInfo"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlInfo..pnlInfoOptions..Label2..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:139
+msgid "Multioperation actions:"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlInfo..pnlInfoOptions..bbRandom..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:188
+msgid "RANDOM OPERATIONS"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:199
+msgid "Tools"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..MiImportOperationsFromTxt..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:201
+msgid "Import Operations from RAW"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..MiDivider1..Caption
+#. FRMOperationsExplorer..mMenu..MiActions..MenuItem6..Caption
+#. FRMWallet..MainMenu..miProject..miN1..Caption
+#. FRMWallet..MainMenu..miProject..N1..Caption
+#. FRMWallet..MainMenu..MiOperations..N2..Caption
+#. FRMWallet..MainMenu..MiOperations..N3..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:206
+#: gui-classic/UFRMOperationsExplorer.dfm:224 gui-classic/UFRMWallet.dfm:1254
+#: gui-classic/UFRMWallet.dfm:1270 gui-classic/UFRMWallet.dfm:1310
+#: gui-classic/UFRMWallet.dfm:1327
+msgid "-"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..miLoadFromBlockchain..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:209
+msgid "Load Operations from Blockchain"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..MiLoadOperationsFromBlockchainFile..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:214
+msgid "Load Operations from Blockchain file"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiActions..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:219
+msgid "Actions"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActExecuteOperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:244
+msgid "Execute Operation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActAddTxToMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:249
+msgid "Add Tx to Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..AddOpChangeToMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:254
+msgid "Add OpChange to Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActRemoveAccountFromMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:259
+msgid "Remove Account from Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActSignMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:264
+msgid "Sign Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActAddTx..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:269
+msgid "Add Tx"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActAddOpChange..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:274
+msgid "Add OpChange"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActRemove..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:279
+msgid "Remove"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActSign..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:284
+msgid "Sign"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Caption
+#. FRMWallet..MainMenu..miProject..miOptions..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:6
+#: gui-classic/UFRMWallet.dfm:1257
+msgid "Options"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label1..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:25
+msgid "Default fee for operation"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label2..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:34
+msgid "Internet Server Port"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..lblDefaultInternetServerPort..Caption
+#. FRMPascalCoinWalletConfig..lblDefaultJSONRPCMinerServerPort..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:43
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:87
+msgid "(Default XXXX)"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label3..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:52
+msgid "Miner Name:"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label4..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:61
+msgid "This name will be included in each new block you mine!"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label5..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:78
+msgid "JSON-RPC Port"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label6..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:96
+msgid "Allowed IP's"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label7..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:105
+msgid "Ip's separated by semicolon or empty for all"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbJSONRPCMinerServerActive..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:122
+msgid "JSON-RPC Server Miner (TCP/IP, no HTTP)"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbSaveLogFiles..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:139
+msgid "Save log file"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbShowLogs..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:148
+msgid "Show logs"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..bbUpdatePassword..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:196
+msgid "Wallet Password"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..ebMinerName..Text
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:265
+msgid "ebMinerName"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbShowModalMessages..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:272
+msgid "Show modal messages"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:301
+msgid " Miner Server Private Key: "
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..rbGenerateANewPrivateKeyEachBlock..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:308
+msgid "Generate a new private key for each generated block"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..rbUseARandomKey..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:316
+msgid "Use a random existing key"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..rbMineAllwaysWithThisKey..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:324
+msgid "Always mine with this key:"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbSaveDebugLogs..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:341
+msgid "Save debug logs too"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..bbOpenDataFolder..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:349
+msgid "Open Data Folder"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbJSONRPCPortEnabled..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:393
+msgid "JSON-RPC Server port enabled (HTTP)"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..ebJSONRPCAllowedIPs..Text
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:403
+msgid "ebJSONRPCAllowedIPs"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbDownloadNewCheckpoint..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:410
+msgid "Download new Checkpoint if blockchain older than..."
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..bbChangeLanguage..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:428
+msgid "Change UI language"
+msgstr ""
+
+#. FRMPayloadDecoder..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:7
+msgid "Operation Information/Decoder"
+msgstr ""
+
+#. FRMPayloadDecoder..Label1..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:26
+msgid "Block/Op:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblBlock..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:33
+msgid "000000/0000"
+msgstr ""
+
+#. FRMPayloadDecoder..Label6..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:59
+msgid "Date Time:"
+msgstr ""
+
+#. FRMPayloadDecoder..Label2..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:66
+msgid "Operation:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblAmountCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:88
+msgid "Amount:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblFeeCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:108
+msgid "Fee:"
+msgstr ""
+
+#. FRMPayloadDecoder..Label4..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:128
+msgid "OpHash"
+msgstr ""
+
+#. FRMPayloadDecoder..lblSenderCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:135
+msgid "Sender:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblSender..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:142
+msgid "9999999-99"
+msgstr ""
+
+#. FRMPayloadDecoder..lblReceiverCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:155
+msgid "Receiver:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblReceiverInfo..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:175
+msgid "(Receiver info)"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:192
+msgid "Payload"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..Label7..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:202
+msgid "Decoded Payload:"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..lblDecodedMethod..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:210
+msgid "(Method)"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..Label3..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:223
+msgid "Original Payload in Hexadecimal:"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoDecoded....Lines.Strings
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoOriginalPayloadInHexa....Lines.Strings
+#: gui-classic/UFRMPayloadDecoder.dfm:237
+#: gui-classic/UFRMPayloadDecoder.dfm:256
+msgid "memoDecoded"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..cbShowAsHexadecimal..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:267
+msgid "Show as hexadecimal"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:273
+msgid "Decode methods"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..lblPasswordsInfo..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:280
+msgid "lblPasswordsInfo"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..cbMethodPublicPayload..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:287
+msgid "Not encrypted (Public payload)"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..cbUsingPrivateKeys..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:296
+msgid "Using Private keys of my Wallet"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..cbUsingPasswords..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:305
+msgid "Using Passwords of the list"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..bbSaveMethods..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:323
+msgid "Save"
+msgstr ""
+
+#. FRMPayloadDecoder..bbFind..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:376
+msgid "&Find"
+msgstr ""
+
+#. FRMPayloadDecoder..ebOphash..Text
+#: gui-classic/UFRMPayloadDecoder.dfm:420
+msgid "12345678901234567890123456789012345678901234567890123456789012"
+msgstr ""
+
+#. FRMDiagnosticTool..txtLog..Text
+#: gui-classic/UFRMRandomHashUtil.dfm:26
+msgid "txtLog"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH..Caption
+#: gui-classic/UFRMRandomHashUtil.dfm:33
+msgid "Random Hash"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2..Caption
+#: gui-classic/UFRMRandomHashUtil.dfm:41
+msgid "Random Hash 2"
+msgstr ""
+
+#. FRMRandomOperations..Caption
+#. FRMRandomOperations..pnlClient..pnlTop1..bbRandomOperations..Caption
+#: gui-classic/UFRMRandomOperations.dfm:4
+#: gui-classic/UFRMRandomOperations.dfm:73
+msgid "Random Operations"
+msgstr ""
+
+#. FRMRandomOperations..pnlTop..lblTopCaption....Caption
+#: gui-classic/UFRMRandomOperations.dfm:39
+msgid ""
+"WARNING! This form will generate RANDOM operations using your private "
+"keys!!!"
+msgstr ""
+
+#. FRMRandomOperations..pnlClient..mLogs....Lines.Strings
+#: gui-classic/UFRMRandomOperations.dfm:85
+msgid "mLogs"
+msgstr ""
+
+#. FRMRPCCalls..Caption
+#. FRMWallet..MainMenu..miProject..MiRPCCalls..Caption
+#: gui-classic/UFRMRPCCalls.dfm:5 gui-classic/UFRMWallet.dfm:1266
+msgid "RPC Calls"
+msgstr ""
+
+#. FRMRPCCalls..pnlTop..lblTopCaption....Caption
+#: gui-classic/UFRMRPCCalls.dfm:45
+msgid ""
+"WARNING! Execute only calls you understand. Execute unknown calls provided "
+"by third person can cause that you lost your keys/balance!"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..Label1..Caption
+#: gui-classic/UFRMRPCCalls.dfm:83
+msgid "Method"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..Label2..Caption
+#: gui-classic/UFRMRPCCalls.dfm:92
+msgid "Server"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..ebMethod..Text
+#: gui-classic/UFRMRPCCalls.dfm:102
+msgid "ebMethod"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..pageControl..tsKeyNames..Caption
+#: gui-classic/UFRMRPCCalls.dfm:113
+msgid "Key/Value Params"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..pageControl..tsJSONParams..Caption
+#: gui-classic/UFRMRPCCalls.dfm:130
+msgid "Params as JSON"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..bbSendCommand..Caption
+#: gui-classic/UFRMRPCCalls.dfm:148
+msgid "&Send"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..ebServerURL..Text
+#: gui-classic/UFRMRPCCalls.dfm:195
+msgid "ebServerURL"
+msgstr ""
+
+#. FRMRPCCalls..pnlInfo..pnlInfoBottom..pnlLastCall..Label3..Caption
+#: gui-classic/UFRMRPCCalls.dfm:244
+msgid "Last call result:"
+msgstr ""
+
+#. FRMRPCCalls..pnlInfo..pnlInfoBottom..pnlLastCall..lblLastCallResultState..Caption
+#: gui-classic/UFRMRPCCalls.dfm:253
+msgid "STATE"
+msgstr ""
+
+#. FRMSaleAccounts..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:5
+msgid "Sale accounts"
+msgstr ""
+
+#. FRMSaleAccounts..Label1..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:32
+msgid "Sale price:"
+msgstr ""
+
+#. FRMSaleAccounts..Label2..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:39
+msgid "Locked until block:"
+msgstr ""
+
+#. FRMSaleAccounts..Label3..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:46
+msgid "Seller account (where to pay)"
+msgstr ""
+
+#. FRMSaleAccounts..ebSalePrice..Text
+#. FRMSaleAccounts..ebSellerAccount..Text
+#: gui-classic/UFRMSaleAccounts.dfm:115 gui-classic/UFRMSaleAccounts.dfm:170
+msgid "Edit1"
+msgstr ""
+
+#. FRMSaleAccounts..ebLockedUntilBlock..Text
+#: gui-classic/UFRMSaleAccounts.dfm:123
+msgid "ebLockedUntilBlock"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:130
+msgid " Sell options: "
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..lblNewOwnerPublicKey..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:137
+msgid "New owner's public key"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..rbEveryoneCanBuy..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:144
+msgid "Everyone can buy"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..rbReservedForAPublickKey..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:152
+msgid "Reserved for only one public key (private)"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..ebNewOwnerPublicKey..Text
+#: gui-classic/UFRMSaleAccounts.dfm:161
+msgid "ebDestAccount"
+msgstr ""
+
+#. FRMChangeLanguage..Caption
+#. FRMChangeLanguage..Caption
+#: gui-classic/UFRMSelectLanguage.dfm:8
+#: lib/i386-win32/ufrmselectlanguage.dfm:8
+msgid "Language Selection"
+msgstr ""
+
+#. FRMChangeLanguage..bbCancel..Caption
+#. FRMChangeLanguage..bbCancel..Caption
+#: gui-classic/UFRMSelectLanguage.dfm:28
+#: lib/i386-win32/ufrmselectlanguage.dfm:28
+msgid "Cancel"
+msgstr ""
+
+#. FRMChangeLanguage..Label1..Caption
+#. FRMChangeLanguage..Label1..Caption
+#: gui-classic/UFRMSelectLanguage.dfm:46
+#: lib/i386-win32/ufrmselectlanguage.dfm:46
+msgid "Select your preferred language"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblCurrentBlockCaption..Caption
+#: gui-classic/UFRMWallet.dfm:135
+msgid "Total Blocks:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblCurrentBlockTimeCaption..Caption
+#: gui-classic/UFRMWallet.dfm:153
+msgid "Current Block Age:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblCurrentBlockTime..Caption
+#: gui-classic/UFRMWallet.dfm:162
+msgid "000 seconds ago"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblOperationsPendingCaption..Caption
+#: gui-classic/UFRMWallet.dfm:171
+msgid "Pending Operations:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblMiningStatusCaption..Caption
+#: gui-classic/UFRMWallet.dfm:189
+msgid "Miner Clients:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblCurrentDifficultyCaption..Caption
+#: gui-classic/UFRMWallet.dfm:207
+msgid "Current Target:"
+msgstr ""
+
+#. FRMWallet..pnlTop..Label4..Caption
+#: gui-classic/UFRMWallet.dfm:234
+msgid "Time average:"
+msgstr ""
+
+#. FRMWallet..pnlTop..Label8..Caption
+#: gui-classic/UFRMWallet.dfm:243
+msgid "Node Status:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblNodeStatus..Caption
+#: gui-classic/UFRMWallet.dfm:252
+msgid "???"
+msgstr ""
+
+#. FRMWallet..pnlTop..Label16..Caption
+#: gui-classic/UFRMWallet.dfm:294
+msgid "Blocks Found:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblBlocksFound..Hint
+#: gui-classic/UFRMWallet.dfm:309
+msgid "Blocks found while Miner is running..."
+msgstr ""
+
+#. FRMWallet..pnlTop..lblReceivedMessages..Caption
+#: gui-classic/UFRMWallet.dfm:328
+msgid "Received Messages"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblBuild..Caption
+#: gui-classic/UFRMWallet.dfm:344
+msgid "Build"
+msgstr ""
+
+#. FRMWallet..StatusBar......Text
+#: gui-classic/UFRMWallet.dfm:363
+msgid "Server Active"
+msgstr ""
+
+#. FRMWallet..StatusBar......Text
+#: gui-classic/UFRMWallet.dfm:367
+msgid "Connection status"
+msgstr ""
+
+#. FRMWallet..StatusBar......Text
+#: gui-classic/UFRMWallet.dfm:371
+msgid "Blocks"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:385
+msgid "Account Explorer"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..Label18..Caption
+#. FRMWallet..MainMenu..MiOperations..MiFindaccount..Caption
+#: gui-classic/UFRMWallet.dfm:406 gui-classic/UFRMWallet.dfm:1295
+msgid "Find account"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..cbExploreMyAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:458
+msgid "Explore accounts with one of my Wallet Keys"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..bbChangeKeyName..Caption
+#: gui-classic/UFRMWallet.dfm:476
+msgid "Change Key name"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..cbFilterAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:485
+msgid "Filter accounts by balance"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..ebFilterAccountByBalanceMin..Hint
+#: gui-classic/UFRMWallet.dfm:494
+msgid "Min balance"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..ebFilterAccountByBalanceMax..Hint
+#: gui-classic/UFRMWallet.dfm:504
+msgid "Max balance"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..bbAccountsRefresh..Caption
+#: gui-classic/UFRMWallet.dfm:580
+msgid "Refresh"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsAccountOperations..Caption
+#: gui-classic/UFRMWallet.dfm:622
+msgid "Account Operations"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:634
+msgid "Selected Accounts For Batch Operation"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsTop..Label15..Caption
+#: gui-classic/UFRMWallet.dfm:667
+msgid "Select multiple accounts to execute massive operations"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..Label22..Caption
+#: gui-classic/UFRMWallet.dfm:703
+msgid "Accounts Balance:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsAdd..Caption
+#: gui-classic/UFRMWallet.dfm:730
+msgid ">"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsAddAll..Caption
+#: gui-classic/UFRMWallet.dfm:738
+msgid ">>"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsDel..Caption
+#: gui-classic/UFRMWallet.dfm:746
+msgid "<"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsDelAll..Caption
+#: gui-classic/UFRMWallet.dfm:754
+msgid "<<"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..bbSelectedAccountsOperation..Caption
+#. FRMWallet..MainMenu..MiOperations..Caption
+#: gui-classic/UFRMWallet.dfm:763 gui-classic/UFRMWallet.dfm:1278
+msgid "Operations"
+msgstr ""
+
+#. FRMWallet..PageControl..tsPendingOperations..Caption
+#: gui-classic/UFRMWallet.dfm:829
+msgid "Pending Operations"
+msgstr ""
+
+#. FRMWallet..PageControl..tsPendingOperations..pnlPendingOperations..Label10....Caption
+#: gui-classic/UFRMWallet.dfm:865
+msgid ""
+"Here you can see Operations transmited/received from other nodes that will "
+"be included in next block. There is no guarantee that other nodes will "
+"include them when mining, so it's important that you mine too to help "
+"include Operations to the main BlockChain"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Caption
+#: gui-classic/UFRMWallet.dfm:879
+msgid "Block Explorer"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..Label9..Caption
+#. FRMWallet..PageControl..tsOperations..Panel1..Label2..Caption
+#: gui-classic/UFRMWallet.dfm:898 gui-classic/UFRMWallet.dfm:994
+msgid "Filter by blocks range"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..lblHashRateBackBlocks..Caption
+#: gui-classic/UFRMWallet.dfm:907
+msgid "HashRate back blocks"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..lblHashRateBackBlocks1..Caption
+#: gui-classic/UFRMWallet.dfm:916
+msgid "Units"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits..Text
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:955 gui-classic/UFRMWallet.dfm:960
+msgid "Mh/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:959
+msgid "Kh/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:961
+msgid "Gh/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:962
+msgid "Th/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsOperations..Caption
+#. FRMWallet..MainMenu..MiOperations..MiOperationsExplorer..Caption
+#: gui-classic/UFRMWallet.dfm:975 gui-classic/UFRMWallet.dfm:1305
+msgid "Operations Explorer"
+msgstr ""
+
+#. FRMWallet..PageControl..tsLogs..Caption
+#: gui-classic/UFRMWallet.dfm:1027
+msgid "Logs"
+msgstr ""
+
+#. FRMWallet..PageControl..tsLogs..pnlTopLogs..cbShowDebugLogs..Caption
+#: gui-classic/UFRMWallet.dfm:1046
+msgid "Show Debug Logs"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Caption
+#: gui-classic/UFRMWallet.dfm:1062
+msgid "Node Stats"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Label3..Caption
+#: gui-classic/UFRMWallet.dfm:1076
+msgid "Active Connections:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Label6..Caption
+#: gui-classic/UFRMWallet.dfm:1086
+msgid "Known Node Servers:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Label7..Caption
+#: gui-classic/UFRMWallet.dfm:1096
+msgid "Blacklisted Nodes"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Caption
+#: gui-classic/UFRMWallet.dfm:1135
+msgid "Messages"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Label11..Caption
+#: gui-classic/UFRMWallet.dfm:1149
+msgid "Messages:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Label12..Caption
+#: gui-classic/UFRMWallet.dfm:1158
+msgid "Message to send:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Label13..Caption
+#: gui-classic/UFRMWallet.dfm:1167
+msgid "Available Connections:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Label14....Caption
+#: gui-classic/UFRMWallet.dfm:1178
+msgid ""
+"(Messages will be encrypted, so only dest connection will be able to read "
+"it)"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..bbSendAMessage..Caption
+#: gui-classic/UFRMWallet.dfm:1203
+msgid "Send a Message"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..memoMessageToSend....Lines.Strings
+#: gui-classic/UFRMWallet.dfm:1232
+msgid "memoMessageToSend"
+msgstr ""
+
+#. FRMWallet..MainMenu..miProject..Caption
+#: gui-classic/UFRMWallet.dfm:1247
+msgid "Project"
+msgstr ""
+
+#. FRMWallet..MainMenu..miProject..miPrivatekeys..Caption
+#: gui-classic/UFRMWallet.dfm:1249
+msgid "Private Keys"
+msgstr ""
+
+#. FRMWallet..MainMenu..miProject..IPnodes1..Caption
+#: gui-classic/UFRMWallet.dfm:1262
+msgid "Available Node List"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..miNewOperation..Caption
+#: gui-classic/UFRMWallet.dfm:1280
+msgid "New single Operation"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiFindOperationbyOpHash..Caption
+#: gui-classic/UFRMWallet.dfm:1285
+msgid "Find Operation by OpHash"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiDecodePayload..Caption
+#: gui-classic/UFRMWallet.dfm:1290
+msgid "Decode Payload"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiAccountInformation..Caption
+#: gui-classic/UFRMWallet.dfm:1300
+msgid "Account Information"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiAddaccounttoSelected..Caption
+#: gui-classic/UFRMWallet.dfm:1313
+msgid "Add account to selected"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiRemoveaccountfromselected..Caption
+#: gui-classic/UFRMWallet.dfm:1318
+msgid "Remove account from selected"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiMultiaccountoperation..Caption
+#: gui-classic/UFRMWallet.dfm:1323
+msgid "Multi account operation"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiFindpreviousaccountwithhighbalance..Caption
+#: gui-classic/UFRMWallet.dfm:1330
+msgid "Find previous account with high balance"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiFindnextaccountwithhighbalance..Caption
+#: gui-classic/UFRMWallet.dfm:1335
+msgid "Find next account with high balance"
+msgstr ""
+
+#. FRMWallet..MainMenu..miAbout..Caption
+#: gui-classic/UFRMWallet.dfm:1341
+msgid "About"
+msgstr ""
+
+#. FRMWallet..MainMenu..miAbout..miAboutPascalCoin..Caption
+#: gui-classic/UFRMWallet.dfm:1343
+msgid "About Pascal Coin..."
+msgstr ""
+
+#. FRMWalletKeys..Caption
+#: gui-classic/UFRMWalletKeys.dfm:6
+msgid "Wallet keys"
+msgstr ""
+
+#. FRMWalletKeys..lblEncryptionTypeCaption..Caption
+#: gui-classic/UFRMWalletKeys.dfm:25
+msgid "Encryption type:"
+msgstr ""
+
+#. FRMWalletKeys..lblEncryptionType..Caption
+#. FRMWalletKeys..lblKeyName..Caption
+#: gui-classic/UFRMWalletKeys.dfm:32 gui-classic/UFRMWalletKeys.dfm:47
+msgid "000000000"
+msgstr ""
+
+#. FRMWalletKeys..lblKeyNameCaption..Caption
+#: gui-classic/UFRMWalletKeys.dfm:39
+msgid "Key name:"
+msgstr ""
+
+#. FRMWalletKeys..lblPrivateKeyCaption..Caption
+#: gui-classic/UFRMWalletKeys.dfm:54
+msgid "Public Key:"
+msgstr ""
+
+#. FRMWalletKeys..lblKeysEncrypted..Caption
+#: gui-classic/UFRMWalletKeys.dfm:62
+msgid "lblKeysEncrypted"
+msgstr ""
+
+#. FRMWalletKeys..bbExportPrivateKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:85
+msgid "Export Private key"
+msgstr ""
+
+#. FRMWalletKeys..memoPrivateKey....Lines.Strings
+#: gui-classic/UFRMWalletKeys.dfm:158
+msgid "memoPrivateKey"
+msgstr ""
+
+#. FRMWalletKeys..bbChangeName..Caption
+#: gui-classic/UFRMWalletKeys.dfm:169
+msgid "Change Name"
+msgstr ""
+
+#. FRMWalletKeys..bbImportPrivateKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:178
+msgid "Import Private key"
+msgstr ""
+
+#. FRMWalletKeys..bbExportPublicKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:240
+msgid "Export Public key"
+msgstr ""
+
+#. FRMWalletKeys..bbImportPublicKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:306
+msgid "Import Public key"
+msgstr ""
+
+#. FRMWalletKeys..bbGenerateNewKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:372
+msgid "Generate a new Key"
+msgstr ""
+
+#. FRMWalletKeys..bbDelete..Caption
+#: gui-classic/UFRMWalletKeys.dfm:434
+msgid "Delete"
+msgstr ""
+
+#. FRMWalletKeys..bbExportAllWalletKeys..Caption
+#: gui-classic/UFRMWalletKeys.dfm:568
+msgid "Export all Wallet Keys to a file"
+msgstr ""
+
+#. FRMWalletKeys..bbImportKeysFile..Caption
+#: gui-classic/UFRMWalletKeys.dfm:634
+msgid "Import a Wallet Keys File"
+msgstr ""
+
+#. FRMWalletKeys..bbLock..Caption
+#: gui-classic/UFRMWalletKeys.dfm:700
+msgid "Lock"
+msgstr ""
+
+#. FRMWalletKeys..SaveDialog..DefaultExt
+#. FRMWalletKeys..OpenDialog..DefaultExt
+#: gui-classic/UFRMWalletKeys.dfm:758 gui-classic/UFRMWalletKeys.dfm:765
+msgid "dat"
+msgstr ""
+
+#. FRMWalletKeys..SaveDialog..Filter
+#: gui-classic/UFRMWalletKeys.dfm:759
+msgid "Wallet keys file|*.dat|All files|*.*"
+msgstr ""
+
+#. FRMWalletKeys..OpenDialog..Filter
+#: gui-classic/UFRMWalletKeys.dfm:766
+msgid "Wallet keys file (*.dat)|*.dat|All files (*.*)|*.*"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedHash
+#. Programmer's name for it: SUnSupportedHash
+#: core/URandomHash.pas:267 core/URandomHash2.pas:219
+msgid "Unsupported Hash Selected"
+msgstr ""
+
+#. Programmer's name for it: SInvalidRound
+#. Programmer's name for it: SInvalidRound
+#: core/URandomHash.pas:268 core/URandomHash2.pas:220
+msgid "Round must be between 0 and N inclusive"
+msgstr ""
+
+#. Programmer's name for it: SOverlappingArgs
+#. Programmer's name for it: SOverlappingArgs
+#: core/URandomHash.pas:269 core/URandomHash2.pas:221
+msgid "Overlapping read/write regions"
+msgstr ""
+
+#. Programmer's name for it: SBufferTooSmall
+#. Programmer's name for it: SBufferTooSmall
+#: core/URandomHash.pas:270 core/URandomHash2.pas:222
+msgid "Buffer too small to apply memory transform"
+msgstr ""
+
+#. Programmer's name for it: SBlockHeaderTooSmallForNonce
+#. Programmer's name for it: SBlockHeaderTooSmallForNonce
+#: core/URandomHash.pas:271 core/URandomHash2.pas:223
+msgid "Buffer too small to contain nonce"
+msgstr ""
+
+#. Programmer's name for it: SAESEngineNotInitialised
+#. Programmer's name for it: SAESEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:37
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:37
+msgid "AES Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBufferTooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:38
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:38
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:39
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:39
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:35
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:43
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:36
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:36
+msgid "Input Buffer too Short"
+msgstr ""
+
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBufferTooSmall
+#. Programmer's name for it: SOutputBufferTooSmall
+#. Programmer's name for it: SOutputBufferTooSmall
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:39
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:39
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:40
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:40
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:39
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:32
+#: libraries/cryptolib4pascal/ClpPaddedBufferedBlockCipher.pas:40
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:36
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:44
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:37
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:37
+msgid "Output Buffer too Short"
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterAESInit
+#. Programmer's name for it: SInvalidParameterAESInit
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:40
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:40
+msgid "Invalid Parameter Passed to AES Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:41
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:41
+msgid "Key Length not 128/192/256 bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidOperation
+#. Programmer's name for it: SInvalidOperation
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:42
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:42
+msgid "Should Never Get Here"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpAESPRNGRandom.pas:40
+msgid "AES RNG Seed Length must be either one of these \"128/192/256 bits\"."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpAgreementUtilities.pas:43
+msgid "Raw Agreement Algorithm \"%s\" Not Recognised."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpAgreementUtilities.pas:45
+msgid "Basic Agreement Algorithm \"%s\" Not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SArgon2TypeInvalid
+#: libraries/cryptolib4pascal/ClpArgon2ParametersGenerator.pas:41
+msgid "Selected Argon2Type is Invalid"
+msgstr ""
+
+#. Programmer's name for it: SArgon2VersionInvalid
+#: libraries/cryptolib4pascal/ClpArgon2ParametersGenerator.pas:42
+msgid "Selected Argon2Version is Invalid"
+msgstr ""
+
+#. Programmer's name for it: SArgon2MemoryCostTypeInvalid
+#: libraries/cryptolib4pascal/ClpArgon2ParametersGenerator.pas:43
+msgid "Selected Argon2MemoryCostType is Invalid"
+msgstr ""
+
+#. Programmer's name for it: SInvalidLength
+#: libraries/cryptolib4pascal/ClpArrayUtils.pas:30
+msgid "%d \" > \" %d"
+msgstr ""
+
+#. Programmer's name for it: SDataOverflow
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:43
+msgid "Data Overflow"
+msgstr ""
+
+#. Programmer's name for it: SDataOverflow
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:45
+msgid "Corrupted Stream - Invalid High Tag Number Found"
+msgstr ""
+
+#. Programmer's name for it: SEOFFound
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:46
+msgid "EOF Found Inside Tag Value"
+msgstr ""
+
+#. Programmer's name for it: SInvalidEnd
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:47
+msgid "EOF Found When Length Expected"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDerLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:48
+msgid "DER Length More Than 4 Bytes: %d"
+msgstr ""
+
+#. Programmer's name for it: SEndOfStream
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:49
+msgid "EOF Found Reading Length"
+msgstr ""
+
+#. Programmer's name for it: SNegativeLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:50
+msgid "Corrupted Stream - Negative Length Found"
+msgstr ""
+
+#. Programmer's name for it: SOutOfBoundsLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:51
+msgid "Corrupted stream - Out of Bounds Length Found"
+msgstr ""
+
+#. Programmer's name for it: SUnknownTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:52
+msgid "Unknown Tag \" %d \" Encountered"
+msgstr ""
+
+#. Programmer's name for it: SEndOfContent
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:53
+msgid "Unexpected End-of-Contents Marker"
+msgstr ""
+
+#. Programmer's name for it: SIndefiniteLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:54
+msgid "Indefinite Length Primitive Encoding Encountered"
+msgstr ""
+
+#. Programmer's name for it: SUnknownBerObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:55
+msgid "Unknown BER Object Encountered"
+msgstr ""
+
+#. Programmer's name for it: SCorruptedStream
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:56
+msgid "Corrupted Stream Detected: %s"
+msgstr ""
+
+#. Programmer's name for it: SInvalidLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:57
+msgid "Negative Lengths not Allowed\", \"Length\""
+msgstr ""
+
+#. Programmer's name for it: SEndOfStreamTwo
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:58
+msgid "DEF Length  %d \" TObject truncated by \" %d"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBufferLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:59
+msgid "Buffer Length Not Right For Data"
+msgstr ""
+
+#. Programmer's name for it: SMalformedContent
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:60
+msgid "Malformed End-of-Contents Marker"
+msgstr ""
+
+#. Programmer's name for it: SExtraData
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:62
+msgid "Extra Data Found After Object"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedObjectStream
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:63
+msgid "Cannot Recognise Object in Stream"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedObjectByteArray
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:64
+msgid "Cannot Recognise Object in ByteArray"
+msgstr ""
+
+#. Programmer's name for it: SIllegalObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:65
+msgid "Illegal Object in GetInstance:  %s, \"obj\""
+msgstr ""
+
+#. Programmer's name for it: SStrNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:66
+msgid "\"Str\" Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SProcessingError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:67
+msgid "Error Processing Object : \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:68
+msgid "Object Implicit - Explicit Expected."
+msgstr ""
+
+#. Programmer's name for it: SUnknownObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:69
+msgid "Unknown object in GetInstance:  %s, \"obj\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSequence
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:70
+msgid "\"Failed to Construct Sequence from byte array: \" %s"
+msgstr ""
+
+#. Programmer's name for it: SImplicitObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:71
+msgid "Implicitly Tagged Object"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:72
+msgid "Implicit Tagging for Tag:  %d"
+msgstr ""
+
+#. Programmer's name for it: SUnknownObjectBER
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:73
+msgid "Unknown BER Object Encountered: $%x"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTagging
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:74
+msgid "Implicit Tagging not Implemented"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTagging
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:76
+msgid "Sequences Must Use Constructed Encoding (see X.690 8.9.1/8.10.1)"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTagging
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:78
+msgid "Sets Must Use Constructed Encoding (see X.690 8.11.1/8.12.1)"
+msgstr ""
+
+#. Programmer's name for it: SMalformedObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:79
+msgid "Malformed Object %s"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:80
+msgid "Unsupported Tag Number"
+msgstr ""
+
+#. Programmer's name for it: SConvertError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:81
+msgid "EIOCryptoLibException Converting Stream to Byte Array: %s"
+msgstr ""
+
+#. Programmer's name for it: SEncodingError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:82
+msgid "Encoding Error in GetInstance:  %s  \"obj\""
+msgstr ""
+
+#. Programmer's name for it: SDataNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:83
+msgid "\"data\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidRange
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:84
+msgid "Must be in the Range 0 to 7\", \"padBits\""
+msgstr ""
+
+#. Programmer's name for it: SPadBitError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:85
+msgid "If \"data\" is Empty, \"padBits\" Must be 0"
+msgstr ""
+
+#. Programmer's name for it: SUnalignedData
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:86
+msgid "Attempt to Get non-octet Aligned Data from BIT STRING\""
+msgstr ""
+
+#. Programmer's name for it: STruncatedBitString
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:87
+msgid "Truncated BIT STRING Detected\", \"octets\""
+msgstr ""
+
+#. Programmer's name for it: SNotImplemented
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:88
+msgid "Not Implemented %s"
+msgstr ""
+
+#. Programmer's name for it: SUnConstructedTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:89
+msgid "Explicit Tags Must be Constructed (see X.690 8.14.2)"
+msgstr ""
+
+#. Programmer's name for it: SParsingError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:90
+msgid "%s"
+msgstr ""
+
+#. Programmer's name for it: SEmptyInput
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:91
+msgid "Input Cannot be Empty \"astr\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidValue
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:92
+msgid "Byte Value Should Have 1 Byte in it', \"val\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidBooleanValue
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:93
+msgid "BOOLEAN Value Should Have 1 Byte in it\", \"Value\""
+msgstr ""
+
+#. Programmer's name for it: SMalformedEnumerated
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:94
+msgid "Malformed Enumerated"
+msgstr ""
+
+#. Programmer's name for it: SZeroLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:95
+msgid "Enumerated has Zero Length, \"enc\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidEncoding
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:96
+msgid "Invalid Encoding Value: %d"
+msgstr ""
+
+#. Programmer's name for it: SFewObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:97
+msgid "Too Few Objects in Input Vector, \"v\""
+msgstr ""
+
+#. Programmer's name for it: SVectorTooLarge
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:98
+msgid "Input Vector too Large\", \"vector\""
+msgstr ""
+
+#. Programmer's name for it: SVectorTooLarge
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:100
+msgid ""
+"No Tagged Object Found in Vector. Structure Doesn 't Seem to be of Type "
+"External, \"Vector\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidEncodingValue
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:101
+msgid "Invalid Encoding Value"
+msgstr ""
+
+#. Programmer's name for it: SObjectNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:102
+msgid " \"obj\" Can't be Nil"
+msgstr ""
+
+#. Programmer's name for it: SValueNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:103
+msgid " \"value\" Can't be Nil"
+msgstr ""
+
+#. Programmer's name for it: SMalformedInteger
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:104
+msgid "Malformed Integer"
+msgstr ""
+
+#. Programmer's name for it: SIdentifierNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:105
+msgid "Identifier Cannot be Empty"
+msgstr ""
+
+#. Programmer's name for it: SInvalidOID
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:106
+msgid "\"String \" %s is \" not an OID\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidBranchId
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:107
+msgid "\"String \" %s \" not a valid OID branch\", \"branchID\""
+msgstr ""
+
+#. Programmer's name for it: SIllegalCharacters
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:108
+msgid "String Contains Illegal Characters \"str\""
+msgstr ""
+
+#. Programmer's name for it: SExpectedPublicKey
+#: libraries/cryptolib4pascal/ClpAsymmetricCipherKeyPair.pas:30
+msgid "Expected a Public Key \"publicParameter\""
+msgstr ""
+
+#. Programmer's name for it: SExpectedPrivateKey
+#: libraries/cryptolib4pascal/ClpAsymmetricCipherKeyPair.pas:31
+msgid "Expected a Private Key \"privateParameter\""
+msgstr ""
+
+#. Programmer's name for it: SOutputBufferTooSmall
+#. Programmer's name for it: SOutputBufferTooSmall
+#: libraries/cryptolib4pascal/ClpBaseKdfBytesGenerator.pas:36
+#: libraries/cryptolib4pascal/ClpPascalCoinECIESKdfBytesGenerator.pas:34
+msgid "Output Buffer too Small"
+msgstr ""
+
+#. Programmer's name for it: SOutputLengthTooLarge
+#: libraries/cryptolib4pascal/ClpBaseKdfBytesGenerator.pas:37
+msgid "Output Length too Large"
+msgstr ""
+
+#. Programmer's name for it: SKDFParameterNotFound
+#. Programmer's name for it: SKDFParameterNotFound
+#: libraries/cryptolib4pascal/ClpBaseKdfBytesGenerator.pas:38
+#: libraries/cryptolib4pascal/ClpPascalCoinECIESKdfBytesGenerator.pas:35
+msgid "KDF Parameters Required For KDF Generator"
+msgstr ""
+
+#. Programmer's name for it: SDivisionByZero
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:36
+msgid "Division by Zero Error"
+msgstr ""
+
+#. Programmer's name for it: SModulusPositive
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:37
+msgid "Modulus must be Positive"
+msgstr ""
+
+#. Programmer's name for it: SNotRelativelyPrime
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:38
+msgid "Numbers not Relatively Prime."
+msgstr ""
+
+#. Programmer's name for it: SNegativeValue
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:39
+msgid "Cannot be Called on Value < 0"
+msgstr ""
+
+#. Programmer's name for it: SNegativeExponent
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:40
+msgid "Negative Exponent"
+msgstr ""
+
+#. Programmer's name for it: SResultTooLarge
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:41
+msgid "Result too Large"
+msgstr ""
+
+#. Programmer's name for it: SNegativeBitPosition
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:42
+msgid "Bit Position must not be Negative"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBitAddress
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:43
+msgid "Bit Address less than Zero"
+msgstr ""
+
+#. Programmer's name for it: SZeroLengthBigInteger
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:44
+msgid "Zero length BigInteger"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSign
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:45
+msgid "Invalid Sign Value"
+msgstr ""
+
+#. Programmer's name for it: SNegativeSizeInBits
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:46
+msgid "sizeInBits must be non-negative"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBitLength
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:47
+msgid "bitLength < 2"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBase
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:48
+msgid "Only bases 2, 8, 10, or 16 allowed"
+msgstr ""
+
+#. Programmer's name for it: SBadCharacterRadix8
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:49
+msgid "Bad Character in radix 8 string: %s"
+msgstr ""
+
+#. Programmer's name for it: SBadCharacterRadix2
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:50
+msgid "Bad Character in radix 2 string: %s"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedBase
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:51
+msgid "Only bases 2, 8, 10, 16 are allowed"
+msgstr ""
+
+#. Programmer's name for it: SInvalidLength
+#: libraries/cryptolib4pascal/ClpBigIntegers.pas:31
+msgid "Standard Length Exceeded, \"n\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidMinValue
+#: libraries/cryptolib4pascal/ClpBigIntegers.pas:32
+msgid "\"min\" may not be greater than \"max\"\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:37
+msgid "Initialisation Vector Must be the Same Length as Block Size"
+msgstr ""
+
+#. Programmer's name for it: SInvalidChangeState
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:38
+msgid "Cannot Change Encrypting State Without Providing Key."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterArgument
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:42
+msgid "CTR/SIC Mode Requires ParametersWithIV"
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterArgument
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:44
+msgid "CTR/SIC mode requires IV no greater than: %u bytes"
+msgstr ""
+
+#. Programmer's name for it: SInvalidTooSmallIVLength
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:45
+msgid "CTR/SIC mode requires IV of at least: %u bytes"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedCipher
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:47
+msgid "CtsBlockCipher Can Only Accept ECB or CBC Ciphers"
+msgstr ""
+
+#. Programmer's name for it: SNegativeInputLength
+#. Programmer's name for it: SInvalidLength
+#. Programmer's name for it: SNegativeInputLength
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:48
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:36
+#: libraries/cryptolib4pascal/ClpPaddedBufferedBlockCipher.pas:42
+msgid "Can't Have a Negative Input Length!"
+msgstr ""
+
+#. Programmer's name for it: SCTSDoFinalError
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:49
+msgid "Need at Least One Block of Input For CTS"
+msgstr ""
+
+#. Programmer's name for it: SBlowfishEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:36
+msgid "Blowfish Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SBlowfishEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:38
+msgid "Invalid Parameter Passed to Blowfish Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SOutputBuffertooShort
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:42
+msgid "Key Length must be between 32 - 448 bits and divisible by 8."
+msgstr ""
+
+#. Programmer's name for it: SInputNil
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:37
+msgid "Input Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SCipherNil
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:38
+msgid "Cipher Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SDataNotBlockSizeAligned
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:40
+msgid "Data not Block Size Aligned"
+msgstr ""
+
+#. Programmer's name for it: SOutputBufferTooSmallForDoFinal
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:41
+msgid "Output Buffer too Short for DoFinal()"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBufferSize
+#. Programmer's name for it: SInvalidBufferSize
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:33
+#: libraries/hashlib4pascal/HlpHash.pas:17
+msgid "\"BufferSize\" Must Be Greater Than Zero"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBufferSize
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:35
+msgid "Input and Output Streams Must not Point to the Same Stream Instance"
+msgstr ""
+
+#. Programmer's name for it: SUnAssignedInputStream
+#. Programmer's name for it: SUnAssignedStream
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:36
+#: libraries/hashlib4pascal/HlpHash.pas:18
+msgid "Input Stream Is Unassigned"
+msgstr ""
+
+#. Programmer's name for it: SUnAssignedOutputStream
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:37
+msgid "Output Stream Is Unassigned"
+msgstr ""
+
+#. Programmer's name for it: SPositionOutOfRange
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:38
+msgid "Current Position Is Out Of Range"
+msgstr ""
+
+#. Programmer's name for it: SPositionOutOfRange
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:40
+msgid "Stream Position (or Stream Length to Process) Is Out Of Range"
+msgstr ""
+
+#. Programmer's name for it: SCipherNil
+#: libraries/cryptolib4pascal/ClpBufferedStreamCipher.pas:34
+msgid "Cipher Instance Cannot be Nil"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpCipherKeyGenerator.pas:34
+msgid "Strength must be a Positive Value, \"defaultStrength\""
+msgstr ""
+
+#. Programmer's name for it: SParametersNil
+#: libraries/cryptolib4pascal/ClpCipherKeyGenerator.pas:35
+msgid "Parameters Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SGeneratorNotInitialized
+#: libraries/cryptolib4pascal/ClpCipherKeyGenerator.pas:36
+msgid "Generator has not been Initialised"
+msgstr ""
+
+#. Programmer's name for it: SMechanismNil
+#. Programmer's name for it: SMechanismNil
+#. Programmer's name for it: SMechanismNil
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:56
+#: libraries/cryptolib4pascal/ClpDigestUtilities.pas:42
+#: libraries/cryptolib4pascal/ClpSignerUtilities.pas:69
+msgid "Mechanism Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNil
+#. Programmer's name for it: SAlgorithmNil
+#. Programmer's name for it: SAlgorithmNil
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:57
+#: libraries/cryptolib4pascal/ClpParameterUtilities.pas:37
+#: libraries/cryptolib4pascal/ClpSignerUtilities.pas:70
+msgid "Algorithm Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedCipher
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:58
+msgid "Cipher \"%s\" Not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedCipher
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:60
+msgid ""
+"Warning: SIC-Mode Can Become a TwoTime-Pad if the Blocksize of the Cipher "
+"is Too Small. Use a Cipher With a Block Size of at Least 128 bits (e.g. AES)"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedCipher
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:62
+msgid "Modes and Paddings Not Used for Stream Ciphers"
+msgstr ""
+
+#. Programmer's name for it: SEncodingInstanceNil
+#. Programmer's name for it: SEncodingInstanceNil
+#: libraries/cryptolib4pascal/ClpConverters.pas:33
+#: libraries/hashlib4pascal/HlpConverters.pas:16
+msgid "Encoding Instance Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SNegativeOffset
+#: libraries/cryptolib4pascal/ClpCryptoApiRandomGenerator.pas:32
+msgid "Start Offset Cannot be Negative, \"Start\""
+msgstr ""
+
+#. Programmer's name for it: SArrayTooSmall
+#: libraries/cryptolib4pascal/ClpCryptoApiRandomGenerator.pas:33
+msgid "Byte Array Too Small For Requested Offset and Length"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpCurve25519Custom.pas:40
+msgid "Value Invalid for Curve25519FieldElement \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#: libraries/cryptolib4pascal/ClpCurve25519Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecP256K1Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecP256R1Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecP384R1Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecP521R1Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecT283Custom.pas:42
+msgid "Exactly One of the Field Elements is Nil"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:45
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:38
+msgid "Diffie-Hellman Public Key has Wrong Parameters."
+msgstr ""
+
+#. Programmer's name for it: SNotDHPrivateKeyParameters
+#. Programmer's name for it: SNotDHPrivateKeyParameters
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:46
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:39
+msgid "DHEngine Expects DHPrivateKeyParameters"
+msgstr ""
+
+#. Programmer's name for it: SMessageNotInitialized
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:47
+msgid "Message not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SSharedKeyInvalid
+#. Programmer's name for it: SSharedKeyInvalid
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:48
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:41
+msgid "Shared Key Can't be 1"
+msgstr ""
+
+#. Programmer's name for it: SDHPublicKeyWeak
+#. Programmer's name for it: SDHPublicKeyWeak
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:49
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:42
+msgid "Diffie-Hellman Public Key is Weak"
+msgstr ""
+
+#. Programmer's name for it: SDHPublicKeyNil
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:50
+msgid "DH Public Key Parameter Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNotInitialized
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:40
+msgid "Agreement Algorithm not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SParametersCannotBeNil
+#. Programmer's name for it: SParametersCannotBeNil
+#. Programmer's name for it: SParametersCannotBeNil
+#: libraries/cryptolib4pascal/ClpDHBasicKeyPairGenerator.pas:42
+#: libraries/cryptolib4pascal/ClpDHKeyPairGenerator.pas:42
+#: libraries/cryptolib4pascal/ClpDsaKeyPairGenerator.pas:44
+msgid "\"parameters\" Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SPNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:33
+msgid "P Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SGNil
+#. Programmer's name for it: SGNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:34
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:35
+msgid "G Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SQNil
+#. Programmer's name for it: SQNil
+#. Programmer's name for it: SQNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:35
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:37
+#: libraries/cryptolib4pascal/ClpECPublicKeyParameters.pas:35
+msgid "Q Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SJNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:36
+msgid "J Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SBadSequenceSize
+#. Programmer's name for it: SBadSequenceSize
+#. Programmer's name for it: SBadSequenceSize
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:37
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:34
+#: libraries/cryptolib4pascal/ClpDsaParameter.pas:32
+msgid "Bad Sequence Size \"seq\": %d"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDHDomainParameters
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:38
+msgid "Invalid DHDomainParameters: %s"
+msgstr ""
+
+#. Programmer's name for it: SPUnInitialized
+#. Programmer's name for it: SPUnInitialized
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:33
+#: libraries/cryptolib4pascal/ClpDsaParameters.pas:32
+msgid "\"P\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SGUnInitialized
+#. Programmer's name for it: SGUnInitialized
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:34
+#: libraries/cryptolib4pascal/ClpDsaParameters.pas:34
+msgid "\"G\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SMustBeOddPrime
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:35
+msgid "Field must be an Odd Prime, \"P\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidGeneratorRange
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:36
+msgid "Generator must in the Range [2, p - 2], \"G\""
+msgstr ""
+
+#. Programmer's name for it: SQTooBigToBeAFactor
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:37
+msgid "Q too Big to be a Factor of (P - 1), \"Q\""
+msgstr ""
+
+#. Programmer's name for it: SMTooBig
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:38
+msgid "M value must be < BitLength of P, \"M\""
+msgstr ""
+
+#. Programmer's name for it: SLErrorOne
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:39
+msgid "when L value specified, it must be less than bitlength(P), \"L\""
+msgstr ""
+
+#. Programmer's name for it: SLErrorTwo
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:40
+msgid "when L value specified, it may not be less than m value, \"L\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSubGroupFactor
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:41
+msgid "Subgroup factor must be >= 2, \"j\""
+msgstr ""
+
+#. Programmer's name for it: SXUnInitialized
+#. Programmer's name for it: SXUnInitialized
+#: libraries/cryptolib4pascal/ClpDHPrivateKeyParameters.pas:33
+#: libraries/cryptolib4pascal/ClpDsaPrivateKeyParameters.pas:32
+msgid "\"X\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SYUnInitialized
+#. Programmer's name for it: SYUnInitialized
+#: libraries/cryptolib4pascal/ClpDHPublicKeyParameters.pas:33
+#: libraries/cryptolib4pascal/ClpDsaPublicKeyParameters.pas:32
+msgid "\"Y\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDHPublicKey
+#: libraries/cryptolib4pascal/ClpDHPublicKeyParameters.pas:34
+msgid "Invalid DH public key \"Y\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidYInCorrectGroup
+#. Programmer's name for it: SInvalidYInCorrectGroup
+#: libraries/cryptolib4pascal/ClpDHPublicKeyParameters.pas:35
+#: libraries/cryptolib4pascal/ClpDsaPublicKeyParameters.pas:33
+msgid "\"Y\" Value Does Not Appear To Be In Correct Group"
+msgstr ""
+
+#. Programmer's name for it: SSeedNil
+#. Programmer's name for it: SSeedNil
+#: libraries/cryptolib4pascal/ClpDHValidationParameters.pas:30
+#: libraries/cryptolib4pascal/ClpDsaValidationParameters.pas:30
+msgid "\"Seed\" Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SSeedNil
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:32
+msgid "Seed Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SPGenCounterNil
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:33
+msgid "PGenCounter Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDHValidationParams
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:35
+msgid "Invalid DHValidationParams: %s"
+msgstr ""
+
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#: libraries/cryptolib4pascal/ClpDigest.pas:31
+#: libraries/cryptolib4pascal/ClpHMac.pas:34
+#: libraries/hashlib4pascal/HlpBlake2B.pas:27
+#: libraries/hashlib4pascal/HlpBlake2S.pas:27
+#: libraries/hashlib4pascal/HlpSHA3.pas:29
+msgid "Output Buffer Too Short"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedDigest
+#: libraries/cryptolib4pascal/ClpDigestUtilities.pas:43
+msgid "Digest \"%s\" not recognised."
+msgstr ""
+
+#. Programmer's name for it: SPrivateKey
+#. Programmer's name for it: SPrivateKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:41
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:40
+msgid "Signing Requires Private Key."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:42
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:41
+msgid "Verification Requires Public Key."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:44
+msgid "DSADigestSigner not Initialized for Signature Generation."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:46
+msgid "DSADigestSigner not Initialized for Verification"
+msgstr ""
+
+#. Programmer's name for it: SEncodingError
+#. Programmer's name for it: SEncodingError
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:47
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:46
+msgid "Unable to Encode Signature"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDsaParameter
+#: libraries/cryptolib4pascal/ClpDsaParameter.pas:33
+msgid "Invalid DsaParameter: %s"
+msgstr ""
+
+#. Programmer's name for it: SQUnInitialized
+#: libraries/cryptolib4pascal/ClpDsaParameters.pas:33
+msgid "\"Q\" Cannot Be Uninitialized"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:44
+msgid "L Values Must be Between 1024 and 3072 and a Multiple of 1024"
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:45
+msgid "N Must be \" %d \" for L = \" %d \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:46
+msgid "N Must be \" %d \" or \" %d \" for L = \" %d \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:48
+msgid "Digest Output Size Too Small for Value of N Which is \" %d \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:50
+msgid "Can Only Use SHA-1 For Generating FIPS 186-2 Parameters"
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:52
+msgid "Size Must Be From %d - %d and a multiple of %d, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SDSAPrivateKeyNotFound
+#: libraries/cryptolib4pascal/ClpDsaSigner.pas:44
+msgid "DSA Private Key Required For Signing"
+msgstr ""
+
+#. Programmer's name for it: SDSAPublicKeyNotFound
+#: libraries/cryptolib4pascal/ClpDsaSigner.pas:45
+msgid "DSA Public Key Required For Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:43
+msgid ""
+"Point and Scalar Arrays Should be Non-Null, and of Equal, Non-Zero, Length"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointLocation
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:44
+msgid "Point Must be on the Same Curve"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:45
+msgid "Invalid Point, \"P\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidResult
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:46
+msgid "Invalid Result"
+msgstr ""
+
+#. Programmer's name for it: SInvalidResult
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:48
+#: libraries/cryptolib4pascal/ClpMultipliers.pas:46
+msgid "Fixed-Point Comb Doesn't Support Scalars Larger Than The Curve Order"
+msgstr ""
+
+#. Programmer's name for it: SInvalidValue
+#: libraries/cryptolib4pascal/ClpECC.pas:52
+msgid "Value Invalid in Fp Field Element, \" x \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidValue2
+#: libraries/cryptolib4pascal/ClpECC.pas:53
+msgid "Value Invalid in F2m Field Element, \"x\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value
+#: libraries/cryptolib4pascal/ClpECC.pas:54
+msgid "k2 must be smaller than k3"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:55
+msgid "k2 must be larger than 0"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:57
+msgid "Field elements are not both instances of F2mFieldElement"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:59
+msgid "Field elements are not elements of the same field F2m"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:61
+msgid "One of the F2m field elements has incorrect representation"
+msgstr ""
+
+#. Programmer's name for it: SEvenValue
+#: libraries/cryptolib4pascal/ClpECC.pas:62
+msgid "Even Value of Q"
+msgstr ""
+
+#. Programmer's name for it: STraceInternalErrorCalculation
+#: libraries/cryptolib4pascal/ClpECC.pas:63
+msgid "Internal Error in Trace Calculation"
+msgstr ""
+
+#. Programmer's name for it: SHalfTraceUndefinedForM
+#: libraries/cryptolib4pascal/ClpECC.pas:64
+msgid "Half-Trace Only Defined For Odd M"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCoordinateSystem
+#: libraries/cryptolib4pascal/ClpECC.pas:65
+msgid "UnSupported Coordinate System"
+msgstr ""
+
+#. Programmer's name for it: SCurrentCurve
+#: libraries/cryptolib4pascal/ClpECC.pas:66
+msgid "Implementation returned Current Curve"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointCoordinates
+#: libraries/cryptolib4pascal/ClpECC.pas:67
+msgid "Invalid Point Coordinates"
+msgstr ""
+
+#. Programmer's name for it: SInvalidAffineCoordinates
+#: libraries/cryptolib4pascal/ClpECC.pas:68
+msgid "not valid for affine coordinates, \"iso\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointOnCurve
+#: libraries/cryptolib4pascal/ClpECC.pas:69
+msgid "must be non-null and on this curve, \"point\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointOnCurve2
+#: libraries/cryptolib4pascal/ClpECC.pas:70
+msgid "Entries must be null or on this curve, \"points\""
+msgstr ""
+
+#. Programmer's name for it: SPointsNil
+#: libraries/cryptolib4pascal/ClpECC.pas:71
+msgid "points"
+msgstr ""
+
+#. Programmer's name for it: SInvalidRangeSpecified
+#: libraries/cryptolib4pascal/ClpECC.pas:72
+msgid "Invalid Range Specified\", \"points\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointCompression
+#: libraries/cryptolib4pascal/ClpECC.pas:73
+msgid "Invalid Point Compression"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK1
+#: libraries/cryptolib4pascal/ClpECC.pas:74
+msgid "k1 must be > 0"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK3
+#: libraries/cryptolib4pascal/ClpECC.pas:75
+msgid "k3 must be 0 if k2 == 0"
+msgstr ""
+
+#. Programmer's name for it: SK2K1MisMatch
+#: libraries/cryptolib4pascal/ClpECC.pas:76
+msgid "k2 must be > k1"
+msgstr ""
+
+#. Programmer's name for it: SK3K2Mismatch
+#: libraries/cryptolib4pascal/ClpECC.pas:77
+msgid "k3 must be > k2"
+msgstr ""
+
+#. Programmer's name for it: SInvalidInfinityEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:78
+msgid "Invalid Infinity Encoding, \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:79
+msgid "Invalid Point Encoding %u"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:81
+msgid "Incorrect Length for infinity encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:83
+msgid "Incorrect Length for Compressed Encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:84
+msgid "Invalid Point"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:86
+msgid "Incorrect Length for UnCompressed Encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:88
+msgid "Incorrect Length for Hybrid Encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:90
+msgid "Inconsistent Y Coordinate in Hybrid Encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SUnknownCoordSystem
+#: libraries/cryptolib4pascal/ClpECC.pas:91
+msgid "Unknown Coordinate System"
+msgstr ""
+
+#. Programmer's name for it: SPointNotInNormalForm
+#: libraries/cryptolib4pascal/ClpECC.pas:92
+msgid "Point not in Normal Form"
+msgstr ""
+
+#. Programmer's name for it: SNotProjectiveCoordSystem
+#: libraries/cryptolib4pascal/ClpECC.pas:93
+msgid "Not a Projective Coordinate System"
+msgstr ""
+
+#. Programmer's name for it: SCannotBeNegative
+#: libraries/cryptolib4pascal/ClpECC.pas:94
+msgid "Cannot be Negative, \"e\""
+msgstr ""
+
+#. Programmer's name for it: SNilFieldElement
+#: libraries/cryptolib4pascal/ClpECC.pas:95
+msgid "Exactly one of the Field Elements is Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedOperation
+#: libraries/cryptolib4pascal/ClpECC.pas:96
+msgid "Constant-time Lookup not Supported"
+msgstr ""
+
+#. Programmer's name for it: SInvalidRange
+#: libraries/cryptolib4pascal/ClpECCompUtilities.pas:43
+msgid "Must be in the Range [2, 16], \"width\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidRange2
+#: libraries/cryptolib4pascal/ClpECCompUtilities.pas:44
+msgid "Must be in the Range [2, 8], \"width\""
+msgstr ""
+
+#. Programmer's name for it: SWrongDomainParameter
+#: libraries/cryptolib4pascal/ClpECDHBasicAgreement.pas:39
+msgid "ECDH Public Key has Wrong Domain Parameters"
+msgstr ""
+
+#. Programmer's name for it: SInvalidAgreementValue
+#: libraries/cryptolib4pascal/ClpECDHBasicAgreement.pas:40
+msgid "Infinity is not a Valid Agreement Value for ECDH"
+msgstr ""
+
+#. Programmer's name for it: SInfinityInvalidPublicKey
+#: libraries/cryptolib4pascal/ClpECDHBasicAgreement.pas:41
+msgid "Infinity is not a Valid Public Key for ECDH"
+msgstr ""
+
+#. Programmer's name for it: SWrongDomainParameter
+#: libraries/cryptolib4pascal/ClpECDHCBasicAgreement.pas:39
+msgid "ECDHC Public Key has Wrong Domain Parameters"
+msgstr ""
+
+#. Programmer's name for it: SInvalidAgreementValue
+#: libraries/cryptolib4pascal/ClpECDHCBasicAgreement.pas:40
+msgid "Infinity is not a Valid Agreement Value for ECDHC"
+msgstr ""
+
+#. Programmer's name for it: SInfinityInvalidPublicKey
+#: libraries/cryptolib4pascal/ClpECDHCBasicAgreement.pas:41
+msgid "Infinity is not a Valid Public Key for ECDHC"
+msgstr ""
+
+#. Programmer's name for it: SCurveNil
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:33
+msgid "Curve Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SScalarNil
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:34
+msgid "Scalar Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SBigIntegerNotInitialized
+#. Programmer's name for it: SBigIntegerNotInitialized
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:36
+#: libraries/cryptolib4pascal/ClpECPrivateKeyParameters.pas:32
+msgid "BigInteger Not Initialized \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SQInfinity
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:38
+msgid "Point at Infinity \"Q\""
+msgstr ""
+
+#. Programmer's name for it: SQPointNotOnCurve
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:39
+msgid "Point Not on Curve \"Q\""
+msgstr ""
+
+#. Programmer's name for it: SScalarInvalidRange
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:40
+msgid "Scalar is not in the Interval [1, n - 1]"
+msgstr ""
+
+#. Programmer's name for it: SECPublicKeyNotFound
+#. Programmer's name for it: SECPublicKeyNotFound
+#. Programmer's name for it: SECPublicKeyNotFound
+#: libraries/cryptolib4pascal/ClpECDsaSigner.pas:47
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:47
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:45
+msgid "EC Public Key Required for Verification"
+msgstr ""
+
+#. Programmer's name for it: SECPrivateKeyNotFound
+#. Programmer's name for it: SECPrivateKeyNotFound
+#. Programmer's name for it: SECPrivateKeyNotFound
+#: libraries/cryptolib4pascal/ClpECDsaSigner.pas:48
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:48
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:46
+msgid "EC Private Key Required for Signing"
+msgstr ""
+
+#. Programmer's name for it: SSenderPublicKeyInvalid
+#: libraries/cryptolib4pascal/ClpECIESPublicKeyParser.pas:35
+msgid "Sender's Public Key Invalid."
+msgstr ""
+
+#. Programmer's name for it: SSenderPublicKeyInvalid
+#: libraries/cryptolib4pascal/ClpECIESPublicKeyParser.pas:37
+msgid "Sender's Public Key has Invalid Point Encoding \"%x\""
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNil
+#. Programmer's name for it: SAlgorithmNil
+#: libraries/cryptolib4pascal/ClpECKeyPairGenerator.pas:56
+#: libraries/cryptolib4pascal/ClpECKeyParameters.pas:39
+msgid "Algorithm Cannot be Empty"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeySize
+#: libraries/cryptolib4pascal/ClpECKeyPairGenerator.pas:57
+msgid "Unknown Key Size \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SParameterNil
+#: libraries/cryptolib4pascal/ClpECKeyParameters.pas:40
+msgid "Parameter Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedAlgorithm
+#: libraries/cryptolib4pascal/ClpECKeyParameters.pas:41
+msgid "Unrecognised Algorithm: \" %s, \"Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedForSigning
+#. Programmer's name for it: SNotInitializedForSigning
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:49
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:47
+msgid "Not Initialised For Signing"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedForVerifying
+#. Programmer's name for it: SNotInitializedForVerifying
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:50
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:48
+msgid "Not Initialised For Verifying"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedForVerifying
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:52
+msgid "Not Initialised For Verifying/Recovery"
+msgstr ""
+
+#. Programmer's name for it: SInputTooLargeForECNRKey
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:53
+msgid "Input Too Large For ECNR Key."
+msgstr ""
+
+#. Programmer's name for it: SSignatureGenerationError
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:49
+msgid "An Error Occurred During Signature Generation"
+msgstr ""
+
+#. Programmer's name for it: SSignatureGenerationError
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:51
+msgid ""
+"Only FP (Prime Field) Curves are Allowed for This Schnorr Implementation"
+msgstr ""
+
+#. Programmer's name for it: SInvalidCtx
+#: libraries/cryptolib4pascal/ClpEd25519.pas:40
+msgid "ctx"
+msgstr ""
+
+#. Programmer's name for it: SDigestError
+#: libraries/cryptolib4pascal/ClpEd25519.pas:41
+msgid "Digest Produced Insufficient Data"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPrivateKey
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:38
+msgid "EOF encountered in middle of Ed25519Blake2B private key"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedAlgorithm
+#. Programmer's name for it: SUnsupportedAlgorithm
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:39
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:39
+msgid "Unsupported Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SCtxNotNil
+#. Programmer's name for it: SCtxNotNil
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:40
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:40
+msgid "Ctx must be Nil for Ed25519 Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SMsgLen
+#. Programmer's name for it: SMsgLen
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:41
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:41
+msgid "MsgLen must be Equal to \"PreHashSize\" for Ed25519ph Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPublicKey
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPublicKeyParameters.pas:34
+msgid "EOF encountered in middle of Ed25519Blake2B public key"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BSigner.pas:37
+msgid "Ed25519Blake2BSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BSigner.pas:39
+msgid "Ed25519Blake2BSigner not Initialised for Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxBlake2BSigner.pas:37
+msgid "Ed25519CtxBlake2BSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxBlake2BSigner.pas:39
+msgid "Ed25519CtxBlake2BSigner not Initialised for Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxSigner.pas:37
+msgid "Ed25519CtxSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxSigner.pas:39
+msgid "Ed25519CtxSigner not Initialised for Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhBlake2BSigner.pas:37
+msgid "Ed25519PhBlake2BSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhBlake2BSigner.pas:39
+msgid "Ed25519PhBlake2BSigner not Initialised for Verification"
+msgstr ""
+
+#. Programmer's name for it: SPreHashDigestFailed
+#. Programmer's name for it: SPreHashDigestFailed
+#: libraries/cryptolib4pascal/ClpEd25519PhBlake2BSigner.pas:40
+#: libraries/cryptolib4pascal/ClpEd25519PhSigner.pas:40
+msgid "PreHash Digest Failed"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhSigner.pas:37
+msgid "Ed25519PhSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhSigner.pas:39
+msgid "Ed25519PhSigner not Initialised for Verification"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPrivateKey
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:38
+msgid "EOF encountered in middle of Ed25519 private key"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPublicKey
+#: libraries/cryptolib4pascal/ClpEd25519PublicKeyParameters.pas:34
+msgid "EOF encountered in middle of Ed25519 public key"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Signer.pas:37
+msgid "Ed25519Signer not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Signer.pas:39
+msgid "Ed25519Signer not Initialised for Verification"
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacteristic
+#: libraries/cryptolib4pascal/ClpFiniteFields.pas:35
+msgid "Must be >= 2 , \" characteristic \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacteristic
+#: libraries/cryptolib4pascal/ClpFiniteFields.pas:37
+msgid ""
+"Irreducible polynomials in GF(2) must have constant term, \"exponents\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacteristic
+#: libraries/cryptolib4pascal/ClpFiniteFields.pas:39
+msgid "Polynomial Exponents must be montonically increasing\", \"exponents\""
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:52
+msgid "KeyGenerator \"%s\" not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:54
+msgid "KeyGenerator \"%s\" ( \"%s\" ) not Supported."
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:56
+msgid "KeyPairGenerator \"%s\" not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:58
+msgid "KeyPairGenerator \"%s\" ( \"%s\" ) not Supported."
+msgstr ""
+
+#. Programmer's name for it: SSizeTooBigHKDF
+#: libraries/cryptolib4pascal/ClpHkdfBytesGenerator.pas:39
+msgid "HKDF Cannot Generate More Than 255 Blocks of HashLen Size"
+msgstr ""
+
+#. Programmer's name for it: SSizeTooBigHKDF2
+#: libraries/cryptolib4pascal/ClpHkdfBytesGenerator.pas:40
+msgid "HKDF May Only Be Used For 255 * HashLen Bytes of Output"
+msgstr ""
+
+#. Programmer's name for it: SSizeTooBigHKDF2
+#: libraries/cryptolib4pascal/ClpHkdfBytesGenerator.pas:42
+msgid "HKDF Parameters Required For \"HkdfBytesGenerator\", \"parameters\""
+msgstr ""
+
+#. Programmer's name for it: SIKMNil
+#: libraries/cryptolib4pascal/ClpHkdfParameters.pas:30
+msgid "\"ikm\" is Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedOperation
+#. Programmer's name for it: SUnSupportedOperation
+#: libraries/cryptolib4pascal/ClpHMacDsaKCalculator.pas:42
+#: libraries/cryptolib4pascal/ClpRandomDsaKCalculator.pas:34
+msgid "Operation not Supported"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:54
+msgid "Must be Passed Recipient's Public EC Key for Encryption"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:56
+msgid "Must be Passed Recipient's Private EC Key for Decryption"
+msgstr ""
+
+#. Programmer's name for it: SIAlgorithmParameterSpecNil
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:57
+msgid "Parameter Spec Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnableToProcessBlock
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:58
+msgid "Unable to Process Block. \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SIESParameterSpecError
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:59
+msgid "Must be Passed IES Parameter Spec"
+msgstr ""
+
+#. Programmer's name for it: SNonceInvalidLength
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:60
+msgid "Nonce in IES Parameters Needs to be \"%s\" Bytes Long"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESEngine.pas:53
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:45
+msgid "Unable to Recover Ephemeral Public Key: \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESEngine.pas:55
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:47
+msgid "Length of Input Must be Greater than the MAC and V Combined"
+msgstr ""
+
+#. Programmer's name for it: SInvalidMAC
+#. Programmer's name for it: SInvalidMAC
+#: libraries/cryptolib4pascal/ClpIESEngine.pas:56
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:48
+msgid "Invalid MAC"
+msgstr ""
+
+#. Programmer's name for it: SRandomNil
+#: libraries/cryptolib4pascal/ClpKeyGenerationParameters.pas:30
+msgid "Random Class Instance Can't Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SInvalidStrength
+#: libraries/cryptolib4pascal/ClpKeyGenerationParameters.pas:31
+msgid "Strength Must Be Greater Than Zero But Was Given %d"
+msgstr ""
+
+#. Programmer's name for it: SKeyNil
+#: libraries/cryptolib4pascal/ClpKeyParameter.pas:31
+msgid "Key Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyOffSet
+#: libraries/cryptolib4pascal/ClpKeyParameter.pas:32
+msgid "Invalid Key OffSet"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/cryptolib4pascal/ClpKeyParameter.pas:33
+msgid "Invalid Key Length"
+msgstr ""
+
+#. Programmer's name for it: SInvalidF2MFieldValue
+#: libraries/cryptolib4pascal/ClpLongArray.pas:34
+msgid "Invalid F2M Field value, \"bigInt\""
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedMac
+#: libraries/cryptolib4pascal/ClpMacUtilities.pas:40
+msgid "Mac \"%s\" not recognised."
+msgstr ""
+
+#. Programmer's name for it: SCannotBeZero
+#: libraries/cryptolib4pascal/ClpMod.pas:35
+msgid "cannot be 0, \"x\""
+msgstr ""
+
+#. Programmer's name for it: SCurveUnknownGroupOrder
+#: libraries/cryptolib4pascal/ClpMultipliers.pas:47
+msgid "Need Curve With Known Group Order, \"curve\""
+msgstr ""
+
+#. Programmer's name for it: SInCompatiblePoint
+#: libraries/cryptolib4pascal/ClpMultipliers.pas:48
+msgid "Only AbstractF2mPoint can be used in WTauNafMultiplier"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:72
+msgid ""
+"An Error Occured while generating random data using MS Windows Cryptography "
+"API."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:76
+msgid ""
+"An Error Occured while generating random data using SecRandomCopyBytes API."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:80
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:84
+msgid "An Error Occured while generating random data using getRandom API"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:88
+msgid ""
+"An Error Occured while generating random data using arc4random_buf API."
+msgstr ""
+
+#. Programmer's name for it: SIncompleteLastBlockInDecryption
+#: libraries/cryptolib4pascal/ClpPaddedBufferedBlockCipher.pas:41
+msgid "Last Block Incomplete in Decryption"
+msgstr ""
+
+#. Programmer's name for it: SCorruptedPadBlock
+#: libraries/cryptolib4pascal/ClpPaddingModes.pas:32
+msgid "Pad Block Corrupted"
+msgstr ""
+
+#. Programmer's name for it: SIVNil
+#: libraries/cryptolib4pascal/ClpParametersWithIV.pas:31
+msgid "IV Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SParameters
+#: libraries/cryptolib4pascal/ClpParametersWithRandom.pas:32
+msgid "Parameters"
+msgstr ""
+
+#. Programmer's name for it: SRandom
+#: libraries/cryptolib4pascal/ClpParametersWithRandom.pas:33
+msgid "Random"
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpParameterUtilities.pas:38
+msgid "Algorithm \"%s\" not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SKDFParameterNotFound
+#: libraries/cryptolib4pascal/ClpPascalCoinECIESKdfBytesGenerator.pas:37
+msgid ""
+"Specified Hash Cannot Produce Sufficient Data for the Specified Operation."
+msgstr ""
+
+#. Programmer's name for it: SCipherCannotbeNilInThisMode
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:49
+msgid "Cipher Cannot be Nil in This Mode."
+msgstr ""
+
+#. Programmer's name for it: SBufferNil
+#: libraries/cryptolib4pascal/ClpRandom.pas:30
+msgid "Buffer Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SMaxValueNegative
+#: libraries/cryptolib4pascal/ClpRandom.pas:31
+msgid "maxValue Must be Positive"
+msgstr ""
+
+#. Programmer's name for it: SInvalidMinValue
+#: libraries/cryptolib4pascal/ClpRandom.pas:32
+msgid "minValue Cannot be Greater Than maxValue"
+msgstr ""
+
+#. Programmer's name for it: SUnknownAlgorithm
+#: libraries/cryptolib4pascal/ClpRandomNumberGenerator.pas:31
+msgid "Unknown Random Generation Algorithm Requested"
+msgstr ""
+
+#. Programmer's name for it: SUnknownAlgorithm
+#: libraries/cryptolib4pascal/ClpRandomNumberGenerator.pas:33
+msgid "Random Number Generator Output Buffer Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedBlock
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:37
+msgid "Unknown Blocksize to Rijndael"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:38
+msgid "Key Length not 128/160/192/224/256 bits."
+msgstr ""
+
+#. Programmer's name for it: SRijndaelEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:39
+msgid "Rijndael Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SRijndaelEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:41
+msgid "Invalid Parameter Passed to Rijndael Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidRound
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:38
+msgid "\"rounds\" Must be a Positive, Even Number"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeySize
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:39
+msgid "%s Requires 128 bit or 256 bit key"
+msgstr ""
+
+#. Programmer's name for it: SMaxByteExceeded
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:40
+msgid "2^70 Byte Limit per IV; Change IV"
+msgstr ""
+
+#. Programmer's name for it: SMaxByteExceededTwo
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:41
+msgid "2^70 byte limit per IV would be exceeded; Change IV"
+msgstr ""
+
+#. Programmer's name for it: SEngineNotInitialized
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:42
+msgid "%s not Initialized"
+msgstr ""
+
+#. Programmer's name for it: SRoundsMustbeEven
+#. Programmer's name for it: SRoundsMustBeEven
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:45
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:37
+msgid "Number of Rounds Must be Even"
+msgstr ""
+
+#. Programmer's name for it: SIVRequired
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:47
+msgid "%s Init Requires an IV, \"parameters\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidIV
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:48
+msgid "%s Requires exactly %d bytes of IV"
+msgstr ""
+
+#. Programmer's name for it: SInvalidIV
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:50
+msgid "%s Init Parameters must Contain a KeyParameter (or null for Re-Init)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidIV
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:52
+msgid "KeyParameter can not be null for First Initialisation"
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameters
+#: libraries/cryptolib4pascal/ClpScalarSplitParameters.pas:30
+msgid "\"%s\" must consist of exactly 2 (initialized) values"
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:43
+msgid "SchnorrDigestSigner not Initialized for Signature Generation."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:45
+msgid "SchnorrDigestSigner not Initialized for Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP256K1Custom.pas:40
+msgid "Value Invalid for SecP256K1FieldElement \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP256R1Custom.pas:40
+msgid "Value Invalid for SecP256R1FieldElement \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP384R1Custom.pas:40
+msgid "Value Invalid for SecP384R1FieldElement \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP521R1Custom.pas:40
+msgid "Value Invalid for SecP521R1FieldElement \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecT283Custom.pas:41
+msgid "Value Invalid for SecT283FieldElement \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SUnRecognisedPRNGAlgorithm
+#: libraries/cryptolib4pascal/ClpSecureRandom.pas:43
+msgid "Unrecognised PRNG Algorithm: %s \"algorithm\""
+msgstr ""
+
+#. Programmer's name for it: SCannotBeNegative
+#: libraries/cryptolib4pascal/ClpSecureRandom.pas:44
+msgid "Cannot be Negative  \"maxValue\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidMaxValue
+#: libraries/cryptolib4pascal/ClpSecureRandom.pas:45
+msgid "maxValue Cannot be Less Than minValue"
+msgstr ""
+
+#. Programmer's name for it: SMalformedSignature
+#: libraries/cryptolib4pascal/ClpSignersEncodings.pas:35
+msgid "Malformed signature, \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SValueOutOfRange
+#: libraries/cryptolib4pascal/ClpSignersEncodings.pas:36
+msgid "Value out of range, \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidEncodingLength
+#: libraries/cryptolib4pascal/ClpSignersEncodings.pas:37
+msgid "Encoding has incorrect length, \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedAlgorithm
+#: libraries/cryptolib4pascal/ClpSignerUtilities.pas:71
+msgid "Signer \" %s \" not recognised."
+msgstr ""
+
+#. Programmer's name for it: SInvalidScale
+#. Programmer's name for it: SNegativeScale
+#: libraries/cryptolib4pascal/ClpSimpleBigDecimal.pas:29
+#: libraries/cryptolib4pascal/ClpSimpleBigDecimal.pas:32
+msgid "Scale may not be Negative"
+msgstr ""
+
+#. Programmer's name for it: SInvalidScale
+#: libraries/cryptolib4pascal/ClpSimpleBigDecimal.pas:31
+msgid "Only SimpleBigDecimal of Same Scale Allowed in Arithmetic Operations"
+msgstr ""
+
+#. Programmer's name for it: SSpeckEngineNotInitialised
+#. Programmer's name for it: SSpeckLegacyEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:35
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:35
+msgid "%s Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:38
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:38
+msgid "Invalid Argument Encountered."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:39
+msgid "Invalid Parameter Passed to Speck Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:41
+msgid "Speck32 requires a key of 64 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:43
+msgid "Speck48 requires a key of 72 or 96 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:45
+msgid "Speck64 requires a key of 96 or 128 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:47
+msgid "Speck96 requires a key of 96 or 144 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:49
+msgid ""
+"Speck128 requires a key of 128, 192 or 256 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:40
+msgid "Invalid Parameter Passed to SpeckLegacy Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:42
+msgid "Speck32Legacy requires a key of 64 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:44
+msgid ""
+"Speck48Legacy requires a key of 72 or 96 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:46
+msgid ""
+"Speck64Legacy requires a key of 96 or 128 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:48
+msgid ""
+"Speck96Legacy requires a key of 96 or 144 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:50
+msgid ""
+"Speck128Legacy requires a key of 128, 192 or 256 bits but input was \"%d\" "
+"bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidMU
+#: libraries/cryptolib4pascal/ClpTnaf.pas:34
+msgid "mu must be 1 or -1"
+msgstr ""
+
+#. Programmer's name for it: SDifferentScales
+#: libraries/cryptolib4pascal/ClpTnaf.pas:35
+msgid "lambda0 and lambda1 do not have same scale"
+msgstr ""
+
+#. Programmer's name for it: SNoKoblitzCurve
+#: libraries/cryptolib4pascal/ClpTnaf.pas:36
+msgid "No Koblitz curve (ABC), TNAF multiplication not possible"
+msgstr ""
+
+#. Programmer's name for it: SNotKoblitzCurve
+#: libraries/cryptolib4pascal/ClpTnaf.pas:37
+msgid "si is defined for Koblitz curves only"
+msgstr ""
+
+#. Programmer's name for it: SInvalidCoFactor
+#: libraries/cryptolib4pascal/ClpTnaf.pas:38
+msgid "h (Cofactor) must be 2 or 4"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpX25519Agreement.pas:36
+msgid "The Init Parameter does not Contain the Private Key"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPrivateKey
+#: libraries/cryptolib4pascal/ClpX25519PrivateKeyParameters.pas:37
+msgid "EOF encountered in middle of X25519 private key"
+msgstr ""
+
+#. Programmer's name for it: SAgreementCalculationFailed
+#: libraries/cryptolib4pascal/ClpX25519PrivateKeyParameters.pas:38
+msgid "X25519 Agreement Failed"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPublicKey
+#: libraries/cryptolib4pascal/ClpX25519PublicKeyParameters.pas:34
+msgid "EOF encountered in middle of X25519 public key"
+msgstr ""
+
+#. Programmer's name for it: SInconsistentKValues
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:36
+msgid "Inconsistent K Values"
+msgstr ""
+
+#. Programmer's name for it: SCurveNil
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:37
+msgid "Curve"
+msgstr ""
+
+#. Programmer's name for it: SNotImplementedECCurve
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:38
+msgid "This Type of ECCurve is not Implemented"
+msgstr ""
+
+#. Programmer's name for it: SFieldIDNil
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:39
+msgid "FieldID"
+msgstr ""
+
+#. Programmer's name for it: SSeqNil
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:40
+msgid "Seq"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCurveOne
+#: libraries/cryptolib4pascal/ClpX9ECParameters.pas:38
+msgid "Only trinomial and pentomial curves are supported"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCurveTwo
+#: libraries/cryptolib4pascal/ClpX9ECParameters.pas:39
+msgid "\"curve\" is of an unsupported type"
+msgstr ""
+
+#. Programmer's name for it: SBadVersion
+#: libraries/cryptolib4pascal/ClpX9ECParameters.pas:40
+msgid "Bad Version in X9ECParameters"
+msgstr ""
+
+#. Programmer's name for it: SNullKeyReInit
+#: libraries/cryptolib4pascal/ClpXSalsa20Engine.pas:33
+msgid "%s Doesn't Support Re-Init with Null Key"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeySize
+#: libraries/cryptolib4pascal/ClpXSalsa20Engine.pas:34
+msgid "%s Requires a 256 bit Key"
+msgstr ""
+
+#. Programmer's name for it: SArgumentOutOfRange
+#: libraries/generics.collections/generics.strings.pas:26
+msgid "Argument out of range"
+msgstr ""
+
+#. Programmer's name for it: SArgumentNilNode
+#: libraries/generics.collections/generics.strings.pas:27
+msgid "Node is nil"
+msgstr ""
+
+#. Programmer's name for it: SDuplicatesNotAllowed
+#: libraries/generics.collections/generics.strings.pas:28
+msgid "Duplicates not allowed in dictionary"
+msgstr ""
+
+#. Programmer's name for it: SCollectionInconsistency
+#: libraries/generics.collections/generics.strings.pas:29
+msgid "Collection inconsistency"
+msgstr ""
+
+#. Programmer's name for it: SCollectionDuplicate
+#: libraries/generics.collections/generics.strings.pas:30
+msgid "Collection does not allow duplicates"
+msgstr ""
+
+#. Programmer's name for it: SDictionaryKeyDoesNotExist
+#: libraries/generics.collections/generics.strings.pas:31
+msgid "Dictionary key does not exist"
+msgstr ""
+
+#. Programmer's name for it: SItemNotFound
+#: libraries/generics.collections/generics.strings.pas:32
+msgid "Item not found"
+msgstr ""
+
+#. Programmer's name for it: SInvalidConfigLength
+#. Programmer's name for it: SInvalidConfigLength
+#: libraries/hashlib4pascal/HlpBlake2B.pas:22
+#: libraries/hashlib4pascal/HlpBlake2S.pas:22
+msgid "Config Length Must Be 8 Words"
+msgstr ""
+
+#. Programmer's name for it: SConfigNil
+#. Programmer's name for it: SConfigNil
+#: libraries/hashlib4pascal/HlpBlake2B.pas:23
+#: libraries/hashlib4pascal/HlpBlake2S.pas:23
+msgid "Config Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SConfigNil
+#. Programmer's name for it: SConfigNil
+#: libraries/hashlib4pascal/HlpBlake2B.pas:25
+#: libraries/hashlib4pascal/HlpBlake2S.pas:25
+msgid "XOFSize in Bits must be Multiples of 8 and be Between %u and %u Bytes."
+msgstr ""
+
+#. Programmer's name for it: SOutputLengthInvalid
+#. Programmer's name for it: SOutputLengthInvalid
+#. Programmer's name for it: SOutputLengthInvalid
+#: libraries/hashlib4pascal/HlpBlake2B.pas:26
+#: libraries/hashlib4pascal/HlpBlake2S.pas:26
+#: libraries/hashlib4pascal/HlpSHA3.pas:28
+msgid "Output Length is above the Digest Length"
+msgstr ""
+
+#. Programmer's name for it: SMaximumOutputLengthExceeded
+#: libraries/hashlib4pascal/HlpBlake2B.pas:28
+msgid "\"Maximum Length is 2^32 blocks of 64 bytes"
+msgstr ""
+
+#. Programmer's name for it: SWritetoXofAfterReadError
+#. Programmer's name for it: SWritetoXofAfterReadError
+#. Programmer's name for it: SWritetoXofAfterReadError
+#: libraries/hashlib4pascal/HlpBlake2B.pas:29
+#: libraries/hashlib4pascal/HlpBlake2S.pas:29
+#: libraries/hashlib4pascal/HlpSHA3.pas:30
+msgid "\"%s\" Write to Xof after Read not Allowed"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:16
+msgid ""
+"BLAKE2B HashSize must be restricted to one of the following [1 .. 64], \"%d"
+"\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:17
+msgid "\"Key\" Length Must Not Be Greater Than 64, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:19
+msgid "\"Personalisation\" Length Must Be Equal To 16, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:20
+msgid "\"Salt\" Length Must Be Equal To 16, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:23
+msgid "FanOut Value Should be Between [0 .. 255] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:25
+msgid "MaxDepth Value Should be Between [1 .. 255] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:27
+msgid "NodeDepth Value Should be Between [0 .. 255] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:29
+msgid "InnerHashSize Value Should be Between [0 .. 64] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:31
+msgid "NodeOffset Value Should be Between [0 .. (2^64-1)] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:34
+msgid "Tree Inner Hash Size Must Not Be Greater Than 64, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SMaximumOutputLengthExceeded
+#: libraries/hashlib4pascal/HlpBlake2S.pas:28
+msgid "\"Maximum Length is 2^32 blocks of 32 bytes"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:16
+msgid ""
+"BLAKE2S HashSize must be restricted to one of the following [1 .. 32], \"%d"
+"\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:17
+msgid "\"Key\" Length Must Not Be Greater Than 32, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:19
+msgid "\"Personalisation\" Length Must Be Equal To 8, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:20
+msgid "\"Salt\" Length Must Be Equal To 8, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:23
+msgid "FanOut Value Should be Between [0 .. 255] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:25
+msgid "MaxDepth Value Should be Between [1 .. 255] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:27
+msgid "NodeDepth Value Should be Between [0 .. 255] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:29
+msgid "InnerHashSize Value Should be Between [0 .. 32] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:31
+msgid "NodeOffset Value Should be Between [0 .. (2^48-1)] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:34
+msgid "Tree Inner Hash Size Must Not Be Greater Than 32, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCRCType
+#: libraries/hashlib4pascal/HlpCRC.pas:22
+msgid "UnSupported CRC Type: \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SWidthOutOfRange
+#: libraries/hashlib4pascal/HlpCRC.pas:23
+msgid "Width Must be Between 3 and 64. \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SIndexOutOfRange
+#: libraries/hashlib4pascal/HlpHash.pas:16
+msgid "Current Index Is Out Of Range"
+msgstr ""
+
+#. Programmer's name for it: SFileNotExist
+#: libraries/hashlib4pascal/HlpHash.pas:19
+msgid "Specified File Not Found"
+msgstr ""
+
+#. Programmer's name for it: SCloneNotYetImplemented
+#: libraries/hashlib4pascal/HlpHash.pas:20
+msgid "Clone Not Yet Implemented For \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SHashBufferMessage
+#: libraries/hashlib4pascal/HlpHashBuffer.pas:13
+msgid "HashBuffer, Length: %d, Position: %d, IsEmpty: %s"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:27
+msgid "Current Data Structure cannot be Represented as an \"Int32\" Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:29
+msgid "Current Data Structure cannot be Represented as an \"UInt8\" Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:31
+msgid "Current Data Structure cannot be Represented as an \"UInt16\" Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:33
+msgid "Current Data Structure cannot be Represented as an \"UInt32\" Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:35
+msgid "Current Data Structure cannot be Represented as an \"UInt64\" Type."
+msgstr ""
+
+#. Programmer's name for it: SInvalidHavalRound
+#: libraries/hashlib4pascal/HlpHaval.pas:25
+msgid "Haval Round Must be 3, 4 or 5"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHavalRound
+#: libraries/hashlib4pascal/HlpHaval.pas:27
+msgid ""
+"Haval HashSize Must be Either 128 bit(16 byte), 160 bit(20 byte), 192 "
+"bit(24 byte), 224 bit(28 byte) or 256 bit(32 byte)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpMurmur2.pas:24
+#: libraries/hashlib4pascal/HlpMurmur2_64.pas:21
+#: libraries/hashlib4pascal/HlpMurmurHash3_x64_128.pas:22
+#: libraries/hashlib4pascal/HlpMurmurHash3_x86_128.pas:22
+#: libraries/hashlib4pascal/HlpMurmurHash3_x86_32.pas:22
+#: libraries/hashlib4pascal/HlpSipHash.pas:23
+#: libraries/hashlib4pascal/HlpXXHash32.pas:19
+#: libraries/hashlib4pascal/HlpXXHash64.pas:19
+msgid "KeyLength Must Be Equal to %d"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpNullable.pas:16
+msgid "Cannot assign non-null pointer to nullable type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpNullable.pas:18
+msgid "Unsupported Type: Only supports Integers, Int64, Floats and Strings."
+msgstr ""
+
+#. Programmer's name for it: SGetNullValue
+#: libraries/hashlib4pascal/HlpNullable.pas:19
+msgid "Attempted to get a null value."
+msgstr ""
+
+#. Programmer's name for it: SHashSizeNotImplemented
+#: libraries/hashlib4pascal/HlpNullDigest.pas:18
+msgid "HashSize Not Implemented For \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeNotImplemented
+#: libraries/hashlib4pascal/HlpNullDigest.pas:19
+msgid "BlockSize Not Implemented For \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidOutputByteCount
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:32
+msgid "\"(AByteCount)\" Argument Less Than \"%d\"."
+msgstr ""
+
+#. Programmer's name for it: SBlockInstanceNotInitialized
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:33
+msgid "Block Instance not Initialized"
+msgstr ""
+
+#. Programmer's name for it: SInputLengthInvalid
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:34
+msgid "Input Length \"%d\" is not Equal to BlockSize \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SLanesTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:35
+msgid "Lanes Must be Greater Than \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SLanesTooBig
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:36
+msgid "Lanes Must be Less Than \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SMemoryTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:37
+msgid "Memory is Less Than: \"%d\", Expected \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SIterationsTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:38
+msgid "Iterations is Less Than: \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SIterationsTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:40
+msgid "Argon2 Parameter Builder Not Initialized"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:31
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:18
+msgid "\"(AByteCount)\" Argument must be a value greater than zero."
+msgstr ""
+
+#. Programmer's name for it: SInvalidCost
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:32
+msgid "Cost parameter must be > 1 and a power of 2."
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeAndCostIncompatible
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:33
+msgid "Cost parameter must be > 1 and < 65536."
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:34
+msgid "Block size must be >= 1."
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:36
+msgid ""
+"Parallelism parameter must be >= 1 and <= %d (based on block size of %d)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidIndex
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:19
+msgid "Invalid start or end index in the internal buffer"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedIHashInstance
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:20
+msgid "\"IHash\" instance is uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SIterationtooSmall
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:21
+msgid "Iteration must be greater than zero."
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashMode
+#: libraries/hashlib4pascal/HlpSHA3.pas:25
+msgid "Only \"[%s]\" HashModes are Supported"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashMode
+#: libraries/hashlib4pascal/HlpSHA3.pas:27
+msgid "XOFSize in Bits must be Multiples of 8 and be Greater than Zero Bytes"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpSnefru.pas:24
+msgid "Snefru Security Level Cannot be Less than 1. Standard Level is 8"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpSnefru.pas:26
+msgid "Snefru HashSize Must be Either 128 bit(16 byte) or 256 bit(32 byte)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashSize
+#: libraries/hashlib4pascal/HlpSnefru.pas:27
+msgid "Specified HashSize Is Invalid or UnSupported \"%d\""
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpTiger.pas:22
+msgid ""
+"Tiger HashSize Must be Either 128 bit(16 byte), 160 bit(20 byte) or 192 "
+"bit(24 byte)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashRound
+#. Programmer's name for it: SInvalidHashRound
+#: libraries/hashlib4pascal/HlpTiger.pas:23
+#: libraries/hashlib4pascal/HlpTiger2.pas:23
+msgid "Specified HashRound Is Invalid or UnSupported \"%d\""
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpTiger2.pas:22
+msgid ""
+"Tiger2 HashSize Must be Either 128 bit(16 byte), 160 bit(20 byte) or 192 "
+"bit(24 byte)"
+msgstr ""
+
+#. Programmer's name for it: sInvalidIPAddress
+#: libraries/mormot-min/SynCommons.pas:18356
+msgid "\"%s\" is an invalid IP v4 address"
+msgstr ""
+
+#. Programmer's name for it: sInvalidEmailAddress
+#: libraries/mormot-min/SynCommons.pas:18357
+msgid "\"%s\" is an invalid email address"
+msgstr ""
+
+#. Programmer's name for it: sInvalidPattern
+#: libraries/mormot-min/SynCommons.pas:18358
+msgid "\"%s\" does not match the expected pattern"
+msgstr ""
+
+#. Programmer's name for it: sCharacter01n
+#: libraries/mormot-min/SynCommons.pas:18359
+msgid "character,character,characters"
+msgstr ""
+
+#. Programmer's name for it: sInvalidTextLengthMin
+#: libraries/mormot-min/SynCommons.pas:18360
+msgid "Expect at least %d %s"
+msgstr ""
+
+#. Programmer's name for it: sInvalidTextLengthMax
+#: libraries/mormot-min/SynCommons.pas:18361
+msgid "Expect up to %d %s"
+msgstr ""
+
+#. Programmer's name for it: sInvalidTextChar
+#: libraries/mormot-min/SynCommons.pas:18364
+msgid ""
+"Expect at least %d %s %s,Expect up to %d %s %s,alphabetical,digital,"
+"punctuation,lowercase,uppercase,space,Too much spaces on the left,Too much "
+"spaces on the right"
+msgstr ""
+
+#. Programmer's name for it: sValidationFailed
+#: libraries/mormot-min/SynCommons.pas:18365
+msgid "\"%s\" rule failed"
+msgstr ""
+
+#. Programmer's name for it: sValidationFieldVoid
+#: libraries/mormot-min/SynCommons.pas:18366
+msgid "An unique key field must not be void"
+msgstr ""
+
+#. Programmer's name for it: sValidationFieldDuplicate
+#: libraries/mormot-min/SynCommons.pas:18367
+msgid "Value already used for this unique key field"
+msgstr ""
+
+#. Programmer's name for it: Sneed_dict
+#: libraries/paszlib/paszlib_zbase.pas:409
+msgid "need dictionary"
+msgstr ""
+
+#. Programmer's name for it: Sstream_end
+#: libraries/paszlib/paszlib_zbase.pas:410
+msgid "stream end"
+msgstr ""
+
+#. Programmer's name for it: Sfile_error
+#: libraries/paszlib/paszlib_zbase.pas:411
+msgid "file error"
+msgstr ""
+
+#. Programmer's name for it: Sstream_error
+#: libraries/paszlib/paszlib_zbase.pas:412
+msgid "stream error"
+msgstr ""
+
+#. Programmer's name for it: Sdata_error
+#: libraries/paszlib/paszlib_zbase.pas:413
+msgid "data error"
+msgstr ""
+
+#. Programmer's name for it: Smem_error
+#: libraries/paszlib/paszlib_zbase.pas:414
+msgid "insufficient memory"
+msgstr ""
+
+#. Programmer's name for it: Sbuf_error
+#: libraries/paszlib/paszlib_zbase.pas:415
+msgid "buffer error"
+msgstr ""
+
+#. Programmer's name for it: Sversion_error
+#: libraries/paszlib/paszlib_zbase.pas:416
+msgid "incompatible version"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHexCharacter
+#: libraries/simplebaselib4pascal/SbpBase16.pas:12
+msgid "Invalid hex character: \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidTextLength
+#: libraries/simplebaselib4pascal/SbpBase16.pas:13
+msgid "Text cannot be odd length \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#. Programmer's name for it: SAlphabetNil
+#. Programmer's name for it: SAlphabetNil
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpBase32.pas:16
+#: libraries/simplebaselib4pascal/SbpBase58.pas:16
+#: libraries/simplebaselib4pascal/SbpBase64.pas:16
+#: libraries/simplebaselib4pascal/SbpBase85.pas:16
+msgid "Alphabet Instance cannot be Nil \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpBase85.pas:18
+msgid "Unexpected Shortcut Character In The Middle Of a Regular Block"
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:12
+msgid "\"%s\" Cannot Be Nil."
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:14
+msgid ""
+"Required Alphabet Length is \"%d\" but Provided Alphabet is \"%d\" "
+"Characters Long."
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacter
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:15
+msgid "Alphabet Contains Character \"%s (%d)\" Above \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidInput
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:16
+msgid "Invalid character value in input \"%s\""
+msgstr ""
+
+#. Programmer's name for it: sAColumnsCantBeNil
+#: libraries/sphere10/UCommon.Data.pas:246
+msgid "AColumns can't be nil!"
+msgstr ""
+
+#. Programmer's name for it: sTooManyValues
+#: libraries/sphere10/UCommon.Data.pas:247
+msgid "Too many values"
+msgstr ""
+
+#. Programmer's name for it: sInvalidUTF8String
+#: libraries/sphere10/UCommon.Data.pas:248
+msgid "Invalid UTF8 string"
+msgstr ""
+
+#. Programmer's name for it: sBadNumericExpression
+#: libraries/sphere10/UCommon.Data.pas:249
+msgid "Bad numeric expression"
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedNumberFormat
+#: libraries/sphere10/UCommon.Data.pas:250
+msgid "Unexpected number format"
+msgstr ""
+
+#. Programmer's name for it: sBadSyntaxForEscapeCharacter
+#: libraries/sphere10/UCommon.Data.pas:251
+msgid "Bad syntax for escape character \"\\\""
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedCharInExpression
+#: libraries/sphere10/UCommon.Data.pas:252
+msgid "Unexpected char in expression"
+msgstr ""
+
+#. Programmer's name for it: sInvaildExpression_CharDetectedAfterClosingBracket
+#: libraries/sphere10/UCommon.Data.pas:253
+msgid "Invaild expression (char detected after closing bracket)"
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedTokenFound
+#: libraries/sphere10/UCommon.Data.pas:254
+msgid "Unexpected token found : \"%s\""
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedStringLiteralInExpression
+#: libraries/sphere10/UCommon.Data.pas:255
+msgid "Unexpected string literal in expression"
+msgstr ""
+
+#. Programmer's name for it: sBadlyClosedBetweenExpression
+#: libraries/sphere10/UCommon.Data.pas:256
+msgid "Badly closed \"between\" expression"
+msgstr ""
+
+#. Programmer's name for it: sMissingNumberInExpression
+#: libraries/sphere10/UCommon.Data.pas:257
+msgid "Missing number in expression"
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedOccurrenceOf_Found
+#: libraries/sphere10/UCommon.Data.pas:258
+msgid "Unexpected occurrence of \"%s\" found"
+msgstr ""
+
+#. Programmer's name for it: sBadBetweenExpression_UnexpectedToken
+#: libraries/sphere10/UCommon.Data.pas:259
+msgid "Bad \"between\" expression. Unexpected \"%s\""
+msgstr ""
+
+#. Programmer's name for it: sExpressionError_NoValue
+#: libraries/sphere10/UCommon.Data.pas:260
+msgid "Expression error (no value)"
+msgstr ""
+
+#. Programmer's name for it: sNotImplemented
+#: libraries/sphere10/UCommon.pas:468
+msgid "Not implemented"
+msgstr ""
+
+#. Programmer's name for it: sInvalidParameter_OutOfBounds
+#: libraries/sphere10/UCommon.pas:469
+msgid "Invalid Parameter: %s out of bounds"
+msgstr ""
+
+#. Programmer's name for it: sLogDebug
+#: libraries/sphere10/UCommon.pas:470
+msgid "DEBUG"
+msgstr ""
+
+#. Programmer's name for it: sLogInfo
+#: libraries/sphere10/UCommon.pas:471
+msgid "INFO"
+msgstr ""
+
+#. Programmer's name for it: sLogWarn
+#: libraries/sphere10/UCommon.pas:472
+msgid "WARNING"
+msgstr ""
+
+#. Programmer's name for it: sLogError
+#: libraries/sphere10/UCommon.pas:473
+msgid "ERROR"
+msgstr ""
+
+#. Programmer's name for it: sTotal
+#: libraries/sphere10/UVisualGrid.pas:475
+msgid "Total: %d"
+msgstr ""
+
+#. Programmer's name for it: sStandardSearch
+#: libraries/sphere10/UVisualGrid.pas:476
+msgid "Standard Search"
+msgstr ""
+
+#. Programmer's name for it: sMultiColumnSearch
+#: libraries/sphere10/UVisualGrid.pas:477
+msgid "Multi-Column Search"
+msgstr ""
+
+#. Programmer's name for it: sPageSize
+#: libraries/sphere10/UVisualGrid.pas:478
+msgid "Page size:"
+msgstr ""
+
+#. Programmer's name for it: sSearchExpression
+#: libraries/sphere10/UVisualGrid.pas:479
+msgid "Search expression"
+msgstr ""
+
+#. Programmer's name for it: sDataLoading
+#: libraries/sphere10/UVisualGrid.pas:480
+msgid "DATA LOADING"
+msgstr ""
+
+#. Programmer's name for it: sExpression
+#: libraries/sphere10/UVisualGrid.pas:481
+msgid "Expression"
+msgstr ""
+
+#. Programmer's name for it: sImproperColumnIndex
+#: libraries/sphere10/UVisualGrid.pas:482
+msgid "Improper column index. Max expected is %d but %d found."
+msgstr ""

BIN
src/locale/fr/LC_MESSAGES/default.mo


+ 4638 - 0
src/locale/fr/LC_MESSAGES/default.po

@@ -0,0 +1,4638 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: 2020-03-30 19:19\n"
+"PO-Revision-Date: 2020-03-30 19:38+0200\n"
+"Last-Translator: Somebody <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.3\n"
+"Language-Team: \n"
+"Language: fr\n"
+
+#. FRMAbout..Caption
+#: gui-classic/UFRMAbout.dfm:7
+msgid "About..."
+msgstr ""
+
+#. FRMAbout..Font.Name
+#. FRMAbout..Label1..Font.Name
+#. FRMAbout..lblBuild..Font.Name
+#. FRMAbout..lblProtocolVersion..Font.Name
+#. FRMAbout..Label3..Font.Name
+#. FRMAbout..Label4..Font.Name
+#. FRMAbout..Label5..Font.Name
+#. FRMAccountSelect..Font.Name
+#. FRMDiagnosticTool..Font.Name
+#. FRMHashLock..Font.Name
+#. FRMHashLock..lblError..Font.Name
+#. FRMHashLock..GroupBox2..meHashLockData..Font.Name
+#. FRMMemoText..Font.Name
+#. FRMMemoText..Memo..Font.Name
+#. FRMNewPrivateKeyType..Font.Name
+#. FRMNodesIp..Font.Name
+#. FRMOperation..Font.Name
+#. FRMOperation..lblAccountBalance..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblEncryptionErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..memoPayload..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblTransactionErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblChangeKeyErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewOwnerErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblListAccountErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsDelistAccount..lblDelistErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyAccountErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..Label2..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeInfoErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsGlobalError..lblGlobalErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsGlobalError..bbPassword..Font.Name
+#. FRMOperation..memoAccounts..Font.Name
+#. FRMOperation..ebSenderAccount..Font.Name
+#. FRMOperationsExplorer..Font.Name
+#. FRMPascalCoinWalletConfig..Font.Name
+#. FRMPascalCoinWalletConfig..Label4..Font.Name
+#. FRMPascalCoinWalletConfig..Label7..Font.Name
+#. FRMPascalCoinWalletConfig..bbUpdatePassword..Font.Name
+#. FRMPayloadDecoder..Font.Name
+#. FRMPayloadDecoder..lblBlock..Font.Name
+#. FRMPayloadDecoder..lblDateTime..Font.Name
+#. FRMPayloadDecoder..lblOperationTxt..Font.Name
+#. FRMPayloadDecoder..lblAmount..Font.Name
+#. FRMPayloadDecoder..lblFee..Font.Name
+#. FRMPayloadDecoder..lblSender..Font.Name
+#. FRMPayloadDecoder..lblReceiver..Font.Name
+#. FRMPayloadDecoder..lblReceiverInfo..Font.Name
+#. FRMPayloadDecoder..PageControl..tsDecoded..lblDecodedMethod..Font.Name
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoDecoded..Font.Name
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoOriginalPayloadInHexa..Font.Name
+#. FRMPayloadDecoder..ebOphash..Font.Name
+#. FRMDiagnosticTool..Font.Name
+#. FRMRandomOperations..Font.Name
+#. FRMRandomOperations..pnlTop..lblTopCaption..Font.Name
+#. FRMRPCCalls..Font.Name
+#. FRMRPCCalls..pnlTop..lblTopCaption..Font.Name
+#. FRMSaleAccounts..Font.Name
+#. FRMSaleAccounts..lblAccountBalance..Font.Name
+#. FRMSaleAccounts..memoAccounts..Font.Name
+#. FRMSaleAccounts..ebSenderAccount..Font.Name
+#. FRMWallet..Font.Name
+#. FRMWallet..pnlTop..lblTimeAverageAux..Font.Name
+#. FRMWallet..pnlTop..Label16..Font.Name
+#. FRMWallet..pnlTop..lblBlocksFound..Font.Name
+#. FRMWallet..pnlTop..lblReceivedMessages..Font.Name
+#. FRMWallet..pnlTop..lblBuild..Font.Name
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsTop..Font.Name
+#. FRMWallet..PageControl..tsPendingOperations..pnlPendingOperations..Label10..Font.Name
+#. FRMWallet..PageControl..tsMessages..Label14..Font.Name
+#. FRMWallet..PageControl..tsMessages..memoMessages..Font.Name
+#. FRMWalletKeys..Font.Name
+#. FRMWalletKeys..lblKeysEncrypted..Font.Name
+#. FRMWalletKeys..memoPrivateKey..Font.Name
+#. FRMWalletKeys..bbUpdatePassword..Font.Name
+#. FRMDiagnosticTool..Font.Name
+#: gui-classic/UFRMAbout.dfm:14 gui-classic/UFRMAbout.dfm:130
+#: gui-classic/UFRMAbout.dfm:143 gui-classic/UFRMAbout.dfm:156
+#: gui-classic/UFRMAbout.dfm:176 gui-classic/UFRMAbout.dfm:190
+#: gui-classic/UFRMAbout.dfm:205 gui-classic/UFRMAccountSelect.dfm:12
+#: gui-classic/UFRMDiagnosticTool.dfm:11 gui-classic/UFRMHashLock.dfm:12
+#: gui-classic/UFRMHashLock.dfm:34 gui-classic/UFRMHashLock.dfm:117
+#: gui-classic/UFRMMemoText.dfm:12 gui-classic/UFRMMemoText.dfm:50
+#: gui-classic/UFRMNewPrivateKeyType.dfm:13 gui-classic/UFRMNodesIp.dfm:13
+#: gui-classic/UFRMOperation.dfm:13 gui-classic/UFRMOperation.dfm:40
+#: gui-classic/UFRMOperation.dfm:196 gui-classic/UFRMOperation.dfm:259
+#: gui-classic/UFRMOperation.dfm:332 gui-classic/UFRMOperation.dfm:410
+#: gui-classic/UFRMOperation.dfm:427 gui-classic/UFRMOperation.dfm:539
+#: gui-classic/UFRMOperation.dfm:783 gui-classic/UFRMOperation.dfm:825
+#: gui-classic/UFRMOperation.dfm:851 gui-classic/UFRMOperation.dfm:978
+#: gui-classic/UFRMOperation.dfm:1065 gui-classic/UFRMOperation.dfm:1080
+#: gui-classic/UFRMOperation.dfm:1149 gui-classic/UFRMOperation.dfm:1167
+#: gui-classic/UFRMOperationsExplorer.dfm:12
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:13
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:66
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:110
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:200
+#: gui-classic/UFRMPayloadDecoder.dfm:14 gui-classic/UFRMPayloadDecoder.dfm:37
+#: gui-classic/UFRMPayloadDecoder.dfm:50 gui-classic/UFRMPayloadDecoder.dfm:78
+#: gui-classic/UFRMPayloadDecoder.dfm:99
+#: gui-classic/UFRMPayloadDecoder.dfm:119
+#: gui-classic/UFRMPayloadDecoder.dfm:146
+#: gui-classic/UFRMPayloadDecoder.dfm:166
+#: gui-classic/UFRMPayloadDecoder.dfm:179
+#: gui-classic/UFRMPayloadDecoder.dfm:214
+#: gui-classic/UFRMPayloadDecoder.dfm:234
+#: gui-classic/UFRMPayloadDecoder.dfm:253
+#: gui-classic/UFRMPayloadDecoder.dfm:416
+#: gui-classic/UFRMRandomHashUtil.dfm:11
+#: gui-classic/UFRMRandomOperations.dfm:11
+#: gui-classic/UFRMRandomOperations.dfm:44 gui-classic/UFRMRPCCalls.dfm:12
+#: gui-classic/UFRMRPCCalls.dfm:50 gui-classic/UFRMSaleAccounts.dfm:12
+#: gui-classic/UFRMSaleAccounts.dfm:57 gui-classic/UFRMSaleAccounts.dfm:84
+#: gui-classic/UFRMSaleAccounts.dfm:103 gui-classic/UFRMWallet.dfm:13
+#: gui-classic/UFRMWallet.dfm:284 gui-classic/UFRMWallet.dfm:299
+#: gui-classic/UFRMWallet.dfm:315 gui-classic/UFRMWallet.dfm:333
+#: gui-classic/UFRMWallet.dfm:349 gui-classic/UFRMWallet.dfm:658
+#: gui-classic/UFRMWallet.dfm:870 gui-classic/UFRMWallet.dfm:1183
+#: gui-classic/UFRMWallet.dfm:1216 gui-classic/UFRMWalletKeys.dfm:13
+#: gui-classic/UFRMWalletKeys.dfm:66 gui-classic/UFRMWalletKeys.dfm:155
+#: gui-classic/UFRMWalletKeys.dfm:504 lib/i386-win32/UFRMDiagnosticTool.dfm:11
+msgid "Tahoma"
+msgstr ""
+
+#. FRMAbout..Label1..Caption
+#. FRMWallet..Caption
+#: gui-classic/UFRMAbout.dfm:126 gui-classic/UFRMWallet.dfm:4
+msgid "Pascal full node Wallet (Classic GUI)"
+msgstr ""
+
+#. FRMAbout..lblBuild..Caption
+#: gui-classic/UFRMAbout.dfm:139
+msgid "Build:"
+msgstr ""
+
+#. FRMAbout..lblProtocolVersion..Caption
+#: gui-classic/UFRMAbout.dfm:152
+msgid "Protocol:"
+msgstr ""
+
+#. FRMAbout..Label2..Caption
+#: gui-classic/UFRMAbout.dfm:165
+msgid "Source Code:"
+msgstr ""
+
+#. FRMAbout..Label3..Caption
+#: gui-classic/UFRMAbout.dfm:172
+msgid "Check For New Versions:"
+msgstr ""
+
+#. FRMAbout..Label4..Caption
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:186 gui-classic/UFRMAbout.dfm:252
+msgid "https://github.com/PascalCoin/PascalCoin"
+msgstr ""
+
+#. FRMAbout..Label5..Caption
+#: gui-classic/UFRMAbout.dfm:201
+msgid "https://sourceforge.net/projects/pascalcoin"
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:220
+msgid "Copyright (c) 2016 - 2019 PascalCoin developers"
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:221
+msgid "Based on Albert Molina original source code"
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:225
+msgid ""
+"Pascal (aka Pascal Coin) is P2P cryptocurrency without the need for "
+"historical "
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:228
+msgid "operations. This software comprises a node within the Pascal network."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:232
+msgid ""
+"Distributed under the MIT software license, see the accompanying file "
+"LICENSE  or "
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:233
+msgid "visit http://www.opensource.org/licenses/mit-license.php."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:237
+msgid "THIS IS EXPERIMENTAL SOFTWARE. Use it for educational purposes only."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:241
+msgid ""
+"This product includes software developed by the OpenSSL Project and Denis "
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:244
+msgid "Grinyuk (https://github.com/Arvur/OpenSSL-Delphi), some cryptographic "
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:247
+msgid ""
+"functions inspirated in code written by Ladar Levison and Marco Ferrante, "
+"and "
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:248
+msgid "Synapse Socket code copyright of Lukas Gebauer."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:251
+msgid ""
+"Original source code is written in Pascal Language and is available at "
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:254
+msgid "If you like it, consider a donation using BitCoin:"
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:255
+msgid "16K3HCZRhFUtM8GdWRcfKeaa6KsuyxZaYk"
+msgstr ""
+
+#. FRMAbout..bbClose..Caption
+#. FRMPayloadDecoder..bbClose..Caption
+#. FRMWallet..MainMenu..miProject..MiClose..Caption
+#: gui-classic/UFRMAbout.dfm:266 gui-classic/UFRMPayloadDecoder.dfm:353
+#: gui-classic/UFRMWallet.dfm:1273
+msgid "Close"
+msgstr ""
+
+#. FRMAccountSelect..Caption
+#: gui-classic/UFRMAccountSelect.dfm:5
+msgid "Accounts"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbOnlyForSale..Caption
+#: gui-classic/UFRMAccountSelect.dfm:33
+msgid "Only for sale or swap"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..bbSearch..Caption
+#: gui-classic/UFRMAccountSelect.dfm:41
+msgid "Search"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbOnlyForPrivateSaleToMe..Caption
+#: gui-classic/UFRMAccountSelect.dfm:107
+msgid "Only for private sale to me"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbAccountsBalance..Caption
+#: gui-classic/UFRMAccountSelect.dfm:115
+msgid "Accounts Balance"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbMyAccounts..Caption
+#: gui-classic/UFRMAccountSelect.dfm:123
+msgid "My Accounts"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbOnlyForPublicSale..Caption
+#: gui-classic/UFRMAccountSelect.dfm:141
+msgid "Only for public sale"
+msgstr ""
+
+#. FRMAccountSelect..pnlAccountsTop..cbAccountsName..Caption
+#: gui-classic/UFRMAccountSelect.dfm:165
+msgid "Accounts name"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..Label17..Caption
+#. FRMWallet..pnlTop..Label5..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..Label17..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..Label20..Caption
+#: gui-classic/UFRMAccountSelect.dfm:192 gui-classic/UFRMWallet.dfm:261
+#: gui-classic/UFRMWallet.dfm:543 gui-classic/UFRMWallet.dfm:685
+msgid "Accounts:"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..lblAccountsCount..Caption
+#. FRMAccountSelect..pnlBottom..lblAccountsBalance..Caption
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblPayloadLength..Caption
+#. FRMPayloadDecoder..lblDateTime..Caption
+#. FRMPayloadDecoder..lblOperationTxt..Caption
+#. FRMPayloadDecoder..lblAmount..Caption
+#. FRMPayloadDecoder..lblFee..Caption
+#. FRMPayloadDecoder..lblReceiver..Caption
+#. FRMWallet..pnlTop..lblCurrentBlock..Caption
+#. FRMWallet..pnlTop..lblOperationsPending..Caption
+#. FRMWallet..pnlTop..lblMinersClients..Caption
+#. FRMWallet..pnlTop..lblCurrentDifficulty..Caption
+#. FRMWallet..pnlTop..lblTimeAverage..Caption
+#. FRMWallet..pnlTop..lblCurrentAccounts..Caption
+#. FRMWallet..pnlTop..lblTimeAverageAux..Caption
+#. FRMWallet..pnlTop..lblBlocksFound..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..lblAccountsCount..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..lblAccountsBalance..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..lblSelectedAccountsCount..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..lblSelectedAccountsBalance..Caption
+#: gui-classic/UFRMAccountSelect.dfm:201 gui-classic/UFRMAccountSelect.dfm:219
+#: gui-classic/UFRMOperation.dfm:207 gui-classic/UFRMPayloadDecoder.dfm:46
+#: gui-classic/UFRMPayloadDecoder.dfm:74 gui-classic/UFRMPayloadDecoder.dfm:95
+#: gui-classic/UFRMPayloadDecoder.dfm:115
+#: gui-classic/UFRMPayloadDecoder.dfm:162 gui-classic/UFRMWallet.dfm:144
+#: gui-classic/UFRMWallet.dfm:180 gui-classic/UFRMWallet.dfm:198
+#: gui-classic/UFRMWallet.dfm:216 gui-classic/UFRMWallet.dfm:225
+#: gui-classic/UFRMWallet.dfm:270 gui-classic/UFRMWallet.dfm:279
+#: gui-classic/UFRMWallet.dfm:310 gui-classic/UFRMWallet.dfm:561
+#: gui-classic/UFRMWallet.dfm:570 gui-classic/UFRMWallet.dfm:694
+#: gui-classic/UFRMWallet.dfm:712
+msgid "000"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..Label19..Caption
+#. FRMOperation..lblBalanceCaption..Caption
+#. FRMSaleAccounts..lblBalanceCaption..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..Label19..Caption
+#: gui-classic/UFRMAccountSelect.dfm:210 gui-classic/UFRMOperation.dfm:50
+#: gui-classic/UFRMSaleAccounts.dfm:73 gui-classic/UFRMWallet.dfm:552
+msgid "Balance:"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..bbSelect..Caption
+#: gui-classic/UFRMAccountSelect.dfm:229
+msgid "Select"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..bbTypeStats..Caption
+#: gui-classic/UFRMAccountSelect.dfm:249
+msgid "Type stats"
+msgstr ""
+
+#. FRMDiagnosticTool..Caption
+#. FRMDiagnosticTool..Caption
+#. FRMDiagnosticTool..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:4 gui-classic/UFRMRandomHashUtil.dfm:4
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:4
+msgid "FRMDiagnosticTool"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH..Caption
+#. FRMDiagnosticTool..btnRH..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:25
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:25
+msgid "Start Random Hash"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2..Caption
+#. FRMDiagnosticTool..btnRH2..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:34
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:34
+msgid "Start Random Hash 2"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2C..Caption
+#. FRMDiagnosticTool..btnRH2C..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:51
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:51
+msgid "Start Random Hash 2 (Cached)"
+msgstr ""
+
+#. FRMDiagnosticTool..btnEntropy..Caption
+#. FRMDiagnosticTool..btnEntropy..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:60
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:60
+msgid "Entropy Tests"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2NonceScan..Caption
+#. FRMDiagnosticTool..btnRH2NonceScan..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:69
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:69
+msgid "Start Random Hash 2 (Nonce Scan)"
+msgstr ""
+
+#. FRMDiagnosticTool..txtScanLevel..TextHint
+#. FRMDiagnosticTool..txtScanLevel..TextHint
+#: gui-classic/UFRMDiagnosticTool.dfm:79
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:79
+msgid "Enter Scan Level (2-4)"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRHC..Caption
+#. FRMDiagnosticTool..btnRHC..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:86
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:86
+msgid "Start Random Hash (Cached)"
+msgstr ""
+
+#. FRMHashLock..Caption
+#: gui-classic/UFRMHashLock.dfm:5
+msgid "Atomic Swap Hash-Lock "
+msgstr ""
+
+#. FRMHashLock..lblError..Caption
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblEncryptionErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblTransactionErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblChangeKeyErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewOwnerErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblListAccountErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsDelistAccount..lblDelistErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyAccountErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeInfoErrors..Caption
+#: gui-classic/UFRMHashLock.dfm:29 gui-classic/UFRMOperation.dfm:191
+#: gui-classic/UFRMOperation.dfm:327 gui-classic/UFRMOperation.dfm:405
+#: gui-classic/UFRMOperation.dfm:422 gui-classic/UFRMOperation.dfm:534
+#: gui-classic/UFRMOperation.dfm:778 gui-classic/UFRMOperation.dfm:820
+#: gui-classic/UFRMOperation.dfm:973
+msgid "Errors detected"
+msgstr ""
+
+#. FRMHashLock..btnSet..Caption
+#: gui-classic/UFRMHashLock.dfm:56
+msgid "Set Hash-Lock"
+msgstr ""
+
+#. FRMHashLock..GroupBox1..Caption
+#: gui-classic/UFRMHashLock.dfm:67
+msgid "Mode"
+msgstr ""
+
+#. FRMHashLock..GroupBox1..rbHashLock....Caption
+#: gui-classic/UFRMHashLock.dfm:76
+msgid "Hash-Lock - the 32 byte hash-lock provided to you by the counterparty"
+msgstr ""
+
+#. FRMHashLock..GroupBox1..rbHashLockKey....Caption
+#: gui-classic/UFRMHashLock.dfm:86
+msgid ""
+"Hash-Lock Key - a secret that will be hashed to create the 32 byte hash-lock"
+msgstr ""
+
+#. FRMHashLock..GroupBox2..Caption
+#: gui-classic/UFRMHashLock.dfm:96
+msgid "Data"
+msgstr ""
+
+#. FRMHashLock..GroupBox2..Label2..Caption
+#: gui-classic/UFRMHashLock.dfm:106
+msgid "Please enter the hash lock data as a hexadecimal string"
+msgstr ""
+
+#. FRMMemoText..Caption
+#: gui-classic/UFRMMemoText.dfm:5
+msgid "Information"
+msgstr ""
+
+#. FRMMemoText..Memo....Lines.Strings
+#: gui-classic/UFRMMemoText.dfm:53
+msgid "Memo"
+msgstr ""
+
+#. FRMNewPrivateKeyType..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:6
+msgid "New Private Key"
+msgstr ""
+
+#. FRMNewPrivateKeyType..Label1..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:26
+msgid "Name"
+msgstr ""
+
+#. FRMNewPrivateKeyType..ebName..Text
+#: gui-classic/UFRMNewPrivateKeyType.dfm:34
+msgid "ebName"
+msgstr ""
+
+#. FRMNewPrivateKeyType..rgKeyType..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:41
+msgid " Key Type: "
+msgstr ""
+
+#. FRMNewPrivateKeyType..rgKeyType....Items.Strings
+#: gui-classic/UFRMNewPrivateKeyType.dfm:43
+msgid "asdf"
+msgstr ""
+
+#. FRMNewPrivateKeyType..bbOk..Caption
+#. FRMNodesIp..bbOk..Caption
+#. FRMChangeLanguage..bbOk..Caption
+#. FRMChangeLanguage..bbOk..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:51 gui-classic/UFRMNodesIp.dfm:42
+#: gui-classic/UFRMSelectLanguage.dfm:18
+#: lib/i386-win32/ufrmselectlanguage.dfm:18
+msgid "OK"
+msgstr ""
+
+#. FRMNodesIp..Caption
+#: gui-classic/UFRMNodesIp.dfm:6
+msgid "Nodes IP"
+msgstr ""
+
+#. FRMNodesIp..Label1..Caption
+#: gui-classic/UFRMNodesIp.dfm:25
+msgid "Available Nodes Ip to connect"
+msgstr ""
+
+#. FRMNodesIp..memoNodesIp....Lines.Strings
+#: gui-classic/UFRMNodesIp.dfm:33
+msgid "memoNodesIp"
+msgstr ""
+
+#. FRMNodesIp..cbTryOnlyWithThisServers..Caption
+#: gui-classic/UFRMNodesIp.dfm:82
+msgid "Try to connect ONLY with this servers"
+msgstr ""
+
+#. FRMOperation..Caption
+#: gui-classic/UFRMOperation.dfm:6
+msgid "New Operation"
+msgstr ""
+
+#. FRMOperation..lblAccountCaption..Caption
+#. FRMSaleAccounts..lblAccountCaption..Caption
+#: gui-classic/UFRMOperation.dfm:26 gui-classic/UFRMSaleAccounts.dfm:25
+msgid "Account:"
+msgstr ""
+
+#. FRMOperation..lblAccountBalance..Caption
+#. FRMSaleAccounts..lblAccountBalance..Caption
+#: gui-classic/UFRMOperation.dfm:35 gui-classic/UFRMSaleAccounts.dfm:53
+msgid "lblAccountBalance"
+msgstr ""
+
+#. FRMOperation..lblAccountsCount..Caption
+#. FRMSaleAccounts..lblAccountsCount..Caption
+#: gui-classic/UFRMOperation.dfm:59 gui-classic/UFRMSaleAccounts.dfm:66
+msgid "XXX"
+msgstr ""
+
+#. FRMOperation..bbExecute..Caption
+#. FRMOperation..ActionList..actExecute..Caption
+#. FRMSaleAccounts..bbExecute..Caption
+#. FRMSaleAccounts..ActionList..actExecute..Caption
+#: gui-classic/UFRMOperation.dfm:68 gui-classic/UFRMOperation.dfm:1179
+#: gui-classic/UFRMSaleAccounts.dfm:178 gui-classic/UFRMSaleAccounts.dfm:215
+msgid "Execute (F12)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..lblFee..Caption
+#: gui-classic/UFRMOperation.dfm:113
+msgid "Operation Fee"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..lblSignerAccount..Caption
+#: gui-classic/UFRMOperation.dfm:122
+msgid "Signer account (Fee payer)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..Caption
+#: gui-classic/UFRMOperation.dfm:165
+msgid " Payload: "
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblEncryptPassword..Caption
+#: gui-classic/UFRMOperation.dfm:172
+msgid "Password:"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..Label4..Caption
+#: gui-classic/UFRMOperation.dfm:181
+msgid "Payload Data"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbEncryptedWithEC..Caption
+#: gui-classic/UFRMOperation.dfm:216
+msgid "Encrypted with dest account public key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbEncrptedWithPassword..Caption
+#: gui-classic/UFRMOperation.dfm:227
+msgid "Encrypted with password"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbNotEncrypted..Caption
+#: gui-classic/UFRMOperation.dfm:237
+msgid "Dont encrypt (Public payload)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbEncryptedWithOldEC..Caption
+#: gui-classic/UFRMOperation.dfm:272
+msgid "Encrypted with old public key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..cbPayloadAsHex..Caption
+#: gui-classic/UFRMOperation.dfm:282
+msgid "As Hex"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..Caption
+#: gui-classic/UFRMOperation.dfm:302
+msgid "Transaction"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblDestAccount..Caption
+#: gui-classic/UFRMOperation.dfm:308
+msgid "Destination account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblAmount..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyAmount..Caption
+#: gui-classic/UFRMOperation.dfm:317 gui-classic/UFRMOperation.dfm:810
+msgid "Amount"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..Caption
+#: gui-classic/UFRMOperation.dfm:387
+msgid "Change Key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewPrivateKey..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyNewKey..Caption
+#: gui-classic/UFRMOperation.dfm:394 gui-classic/UFRMOperation.dfm:837
+msgid "New private key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewOwnerPublicKey..Caption
+#: gui-classic/UFRMOperation.dfm:437
+msgid "New owners public key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..rbChangeKeyWithAnother..Caption
+#: gui-classic/UFRMOperation.dfm:446
+msgid "Change private key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..rbChangeKeyTransferAccountToNewOwner..Caption
+#: gui-classic/UFRMOperation.dfm:514
+msgid "Transfer account to a new owner"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..Caption
+#: gui-classic/UFRMOperation.dfm:526
+msgid "List Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblPrice..Caption
+#: gui-classic/UFRMOperation.dfm:550
+msgid "Sale Price"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblSeller..Caption
+#: gui-classic/UFRMOperation.dfm:560
+msgid "Seller Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblNewKey..Caption
+#: gui-classic/UFRMOperation.dfm:604
+msgid "Buyer Key"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblTimeLock..Caption
+#: gui-classic/UFRMOperation.dfm:614
+msgid "Time-Lock"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblHashLock..Caption
+#: gui-classic/UFRMOperation.dfm:623
+msgid "Hash-Lock"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForPublicSale..Caption
+#: gui-classic/UFRMOperation.dfm:699
+msgid "List for Public Sale"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForPrivateSale..Caption
+#: gui-classic/UFRMOperation.dfm:707
+msgid "List for Private Sale"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForAccountSwap..Caption
+#: gui-classic/UFRMOperation.dfm:715
+msgid "List for Atomic Account Swap"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForCoinSwap..Caption
+#: gui-classic/UFRMOperation.dfm:723
+msgid "List for Atomic Coin Swap"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebPrice..TextHint
+#: gui-classic/UFRMOperation.dfm:732
+msgid "PASC Quantity"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebSellerAccount..TextHint
+#: gui-classic/UFRMOperation.dfm:740
+msgid "Account Number"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebNewKey..TextHint
+#: gui-classic/UFRMOperation.dfm:748
+msgid "BASE58 Encoded Public Key Of New Owner"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebTimeLock..Hint
+#: gui-classic/UFRMOperation.dfm:755
+msgid "Block Number "
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebTimeLock..TextHint
+#: gui-classic/UFRMOperation.dfm:759
+msgid "Block number"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsDelistAccount..Caption
+#: gui-classic/UFRMOperation.dfm:770
+msgid "Delist Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..Caption
+#: gui-classic/UFRMOperation.dfm:790
+msgid "Buy Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblAccountToBuy..Caption
+#: gui-classic/UFRMOperation.dfm:799
+msgid "Account to Buy"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..Label2..Caption
+#: gui-classic/UFRMOperation.dfm:846
+msgid "any over-payment will remain on bought account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..Caption
+#: gui-classic/UFRMOperation.dfm:966
+msgid "Change Info"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeName..Caption
+#: gui-classic/UFRMOperation.dfm:990
+msgid "Change name"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeType..Caption
+#: gui-classic/UFRMOperation.dfm:1001
+msgid "Change type"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeAccountData..Caption
+#: gui-classic/UFRMOperation.dfm:1012
+msgid "Change Data"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..ebChangeName..TextHint
+#: gui-classic/UFRMOperation.dfm:1022
+msgid "Account name (null or 3..64 chars)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..ebChangeType..TextHint
+#: gui-classic/UFRMOperation.dfm:1030
+msgid "0..65535"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..ebChangeAccountData..TextHint
+#: gui-classic/UFRMOperation.dfm:1038
+msgid "Hexadecimal value (0..32 bytes)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsGlobalError..lblGlobalErrors..Caption
+#: gui-classic/UFRMOperation.dfm:1060
+msgid "????"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsGlobalError..bbPassword..Caption
+#. FRMWalletKeys..bbUpdatePassword..Caption
+#: gui-classic/UFRMOperation.dfm:1076 gui-classic/UFRMWalletKeys.dfm:500
+msgid "Password"
+msgstr ""
+
+#. FRMOperation..memoAccounts....Lines.Strings
+#. FRMOperation..memoAccounts....Lines.Strings
+#. FRMSaleAccounts..memoAccounts....Lines.Strings
+#. FRMSaleAccounts..memoAccounts....Lines.Strings
+#: gui-classic/UFRMOperation.dfm:1152 gui-classic/UFRMOperation.dfm:1153
+#: gui-classic/UFRMSaleAccounts.dfm:87 gui-classic/UFRMSaleAccounts.dfm:88
+msgid "123456-11 (0.0000); 123456-11 (0.0000); "
+msgstr ""
+
+#. FRMOperation..ebSenderAccount..Text
+#. FRMSaleAccounts..ebSenderAccount..Text
+#: gui-classic/UFRMOperation.dfm:1171 gui-classic/UFRMSaleAccounts.dfm:107
+msgid "ebSenderAccount"
+msgstr ""
+
+#. FRMOperationsExplorer..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:5
+msgid "Operations Explorer Tool"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlTop..lblTopCaption....Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:58
+msgid ""
+"You can use this tool to explore operations, also you can copy/paste "
+"operations as a RAW (Use Ctrl+I to Import). This tool allows to generate a "
+"Multioperation, send to third party the RAW, add more txs... and then sign. "
+"Once Everybody has signed, you will be able to EXECUTE OPERATION to be "
+"added to network nodes. "
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlExport..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:85
+msgid "pnlExport"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlExport..Label1..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:94
+msgid "Operation as RAW:"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlInfo..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:115
+msgid "pnlInfo"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlInfo..pnlInfoOptions..Label2..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:139
+msgid "Multioperation actions:"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlInfo..pnlInfoOptions..bbRandom..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:188
+msgid "RANDOM OPERATIONS"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:199
+msgid "Tools"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..MiImportOperationsFromTxt..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:201
+msgid "Import Operations from RAW"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..MiDivider1..Caption
+#. FRMOperationsExplorer..mMenu..MiActions..MenuItem6..Caption
+#. FRMWallet..MainMenu..miProject..miN1..Caption
+#. FRMWallet..MainMenu..miProject..N1..Caption
+#. FRMWallet..MainMenu..MiOperations..N2..Caption
+#. FRMWallet..MainMenu..MiOperations..N3..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:206
+#: gui-classic/UFRMOperationsExplorer.dfm:224 gui-classic/UFRMWallet.dfm:1254
+#: gui-classic/UFRMWallet.dfm:1270 gui-classic/UFRMWallet.dfm:1310
+#: gui-classic/UFRMWallet.dfm:1327
+msgid "-"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..miLoadFromBlockchain..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:209
+msgid "Load Operations from Blockchain"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..MiLoadOperationsFromBlockchainFile..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:214
+msgid "Load Operations from Blockchain file"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiActions..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:219
+msgid "Actions"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActExecuteOperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:244
+msgid "Execute Operation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActAddTxToMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:249
+msgid "Add Tx to Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..AddOpChangeToMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:254
+msgid "Add OpChange to Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActRemoveAccountFromMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:259
+msgid "Remove Account from Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActSignMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:264
+msgid "Sign Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActAddTx..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:269
+msgid "Add Tx"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActAddOpChange..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:274
+msgid "Add OpChange"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActRemove..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:279
+msgid "Remove"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActSign..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:284
+msgid "Sign"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Caption
+#. FRMWallet..MainMenu..miProject..miOptions..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:6
+#: gui-classic/UFRMWallet.dfm:1257
+msgid "Options"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label1..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:25
+msgid "Default fee for operation"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label2..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:34
+msgid "Internet Server Port"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..lblDefaultInternetServerPort..Caption
+#. FRMPascalCoinWalletConfig..lblDefaultJSONRPCMinerServerPort..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:43
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:87
+msgid "(Default XXXX)"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label3..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:52
+msgid "Miner Name:"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label4..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:61
+msgid "This name will be included in each new block you mine!"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label5..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:78
+msgid "JSON-RPC Port"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label6..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:96
+msgid "Allowed IP's"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..Label7..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:105
+msgid "Ip's separated by semicolon or empty for all"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbJSONRPCMinerServerActive..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:122
+msgid "JSON-RPC Server Miner (TCP/IP, no HTTP)"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbSaveLogFiles..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:139
+msgid "Save log file"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbShowLogs..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:148
+msgid "Show logs"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..bbUpdatePassword..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:196
+msgid "Wallet Password"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..ebMinerName..Text
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:265
+msgid "ebMinerName"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbShowModalMessages..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:272
+msgid "Show modal messages"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:301
+msgid " Miner Server Private Key: "
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..rbGenerateANewPrivateKeyEachBlock..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:308
+msgid "Generate a new private key for each generated block"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..rbUseARandomKey..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:316
+msgid "Use a random existing key"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..rbMineAllwaysWithThisKey..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:324
+msgid "Always mine with this key:"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbSaveDebugLogs..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:341
+msgid "Save debug logs too"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..bbOpenDataFolder..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:349
+msgid "Open Data Folder"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbJSONRPCPortEnabled..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:393
+msgid "JSON-RPC Server port enabled (HTTP)"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..ebJSONRPCAllowedIPs..Text
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:403
+msgid "ebJSONRPCAllowedIPs"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbDownloadNewCheckpoint..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:410
+msgid "Download new Checkpoint if blockchain older than..."
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..bbChangeLanguage..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:428
+msgid "Change UI language"
+msgstr ""
+
+#. FRMPayloadDecoder..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:7
+msgid "Operation Information/Decoder"
+msgstr ""
+
+#. FRMPayloadDecoder..Label1..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:26
+msgid "Block/Op:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblBlock..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:33
+msgid "000000/0000"
+msgstr ""
+
+#. FRMPayloadDecoder..Label6..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:59
+msgid "Date Time:"
+msgstr ""
+
+#. FRMPayloadDecoder..Label2..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:66
+msgid "Operation:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblAmountCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:88
+msgid "Amount:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblFeeCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:108
+msgid "Fee:"
+msgstr ""
+
+#. FRMPayloadDecoder..Label4..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:128
+msgid "OpHash"
+msgstr ""
+
+#. FRMPayloadDecoder..lblSenderCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:135
+msgid "Sender:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblSender..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:142
+msgid "9999999-99"
+msgstr ""
+
+#. FRMPayloadDecoder..lblReceiverCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:155
+msgid "Receiver:"
+msgstr ""
+
+#. FRMPayloadDecoder..lblReceiverInfo..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:175
+msgid "(Receiver info)"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:192
+msgid "Payload"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..Label7..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:202
+msgid "Decoded Payload:"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..lblDecodedMethod..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:210
+msgid "(Method)"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..Label3..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:223
+msgid "Original Payload in Hexadecimal:"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoDecoded....Lines.Strings
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoOriginalPayloadInHexa....Lines.Strings
+#: gui-classic/UFRMPayloadDecoder.dfm:237
+#: gui-classic/UFRMPayloadDecoder.dfm:256
+msgid "memoDecoded"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..cbShowAsHexadecimal..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:267
+msgid "Show as hexadecimal"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:273
+msgid "Decode methods"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..lblPasswordsInfo..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:280
+msgid "lblPasswordsInfo"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..cbMethodPublicPayload..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:287
+msgid "Not encrypted (Public payload)"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..cbUsingPrivateKeys..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:296
+msgid "Using Private keys of my Wallet"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..cbUsingPasswords..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:305
+msgid "Using Passwords of the list"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..bbSaveMethods..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:323
+msgid "Save"
+msgstr ""
+
+#. FRMPayloadDecoder..bbFind..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:376
+msgid "&Find"
+msgstr ""
+
+#. FRMPayloadDecoder..ebOphash..Text
+#: gui-classic/UFRMPayloadDecoder.dfm:420
+msgid "12345678901234567890123456789012345678901234567890123456789012"
+msgstr ""
+
+#. FRMDiagnosticTool..txtLog..Text
+#: gui-classic/UFRMRandomHashUtil.dfm:26
+msgid "txtLog"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH..Caption
+#: gui-classic/UFRMRandomHashUtil.dfm:33
+msgid "Random Hash"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2..Caption
+#: gui-classic/UFRMRandomHashUtil.dfm:41
+msgid "Random Hash 2"
+msgstr ""
+
+#. FRMRandomOperations..Caption
+#. FRMRandomOperations..pnlClient..pnlTop1..bbRandomOperations..Caption
+#: gui-classic/UFRMRandomOperations.dfm:4
+#: gui-classic/UFRMRandomOperations.dfm:73
+msgid "Random Operations"
+msgstr ""
+
+#. FRMRandomOperations..pnlTop..lblTopCaption....Caption
+#: gui-classic/UFRMRandomOperations.dfm:39
+msgid ""
+"WARNING! This form will generate RANDOM operations using your private "
+"keys!!!"
+msgstr ""
+
+#. FRMRandomOperations..pnlClient..mLogs....Lines.Strings
+#: gui-classic/UFRMRandomOperations.dfm:85
+msgid "mLogs"
+msgstr ""
+
+#. FRMRPCCalls..Caption
+#. FRMWallet..MainMenu..miProject..MiRPCCalls..Caption
+#: gui-classic/UFRMRPCCalls.dfm:5 gui-classic/UFRMWallet.dfm:1266
+msgid "RPC Calls"
+msgstr ""
+
+#. FRMRPCCalls..pnlTop..lblTopCaption....Caption
+#: gui-classic/UFRMRPCCalls.dfm:45
+msgid ""
+"WARNING! Execute only calls you understand. Execute unknown calls provided "
+"by third person can cause that you lost your keys/balance!"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..Label1..Caption
+#: gui-classic/UFRMRPCCalls.dfm:83
+msgid "Method"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..Label2..Caption
+#: gui-classic/UFRMRPCCalls.dfm:92
+msgid "Server"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..ebMethod..Text
+#: gui-classic/UFRMRPCCalls.dfm:102
+msgid "ebMethod"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..pageControl..tsKeyNames..Caption
+#: gui-classic/UFRMRPCCalls.dfm:113
+msgid "Key/Value Params"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..pageControl..tsJSONParams..Caption
+#: gui-classic/UFRMRPCCalls.dfm:130
+msgid "Params as JSON"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..bbSendCommand..Caption
+#: gui-classic/UFRMRPCCalls.dfm:148
+msgid "&Send"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..ebServerURL..Text
+#: gui-classic/UFRMRPCCalls.dfm:195
+msgid "ebServerURL"
+msgstr ""
+
+#. FRMRPCCalls..pnlInfo..pnlInfoBottom..pnlLastCall..Label3..Caption
+#: gui-classic/UFRMRPCCalls.dfm:244
+msgid "Last call result:"
+msgstr ""
+
+#. FRMRPCCalls..pnlInfo..pnlInfoBottom..pnlLastCall..lblLastCallResultState..Caption
+#: gui-classic/UFRMRPCCalls.dfm:253
+msgid "STATE"
+msgstr ""
+
+#. FRMSaleAccounts..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:5
+msgid "Sale accounts"
+msgstr ""
+
+#. FRMSaleAccounts..Label1..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:32
+msgid "Sale price:"
+msgstr ""
+
+#. FRMSaleAccounts..Label2..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:39
+msgid "Locked until block:"
+msgstr ""
+
+#. FRMSaleAccounts..Label3..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:46
+msgid "Seller account (where to pay)"
+msgstr ""
+
+#. FRMSaleAccounts..ebSalePrice..Text
+#. FRMSaleAccounts..ebSellerAccount..Text
+#: gui-classic/UFRMSaleAccounts.dfm:115 gui-classic/UFRMSaleAccounts.dfm:170
+msgid "Edit1"
+msgstr ""
+
+#. FRMSaleAccounts..ebLockedUntilBlock..Text
+#: gui-classic/UFRMSaleAccounts.dfm:123
+msgid "ebLockedUntilBlock"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:130
+msgid " Sell options: "
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..lblNewOwnerPublicKey..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:137
+msgid "New owner's public key"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..rbEveryoneCanBuy..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:144
+msgid "Everyone can buy"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..rbReservedForAPublickKey..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:152
+msgid "Reserved for only one public key (private)"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..ebNewOwnerPublicKey..Text
+#: gui-classic/UFRMSaleAccounts.dfm:161
+msgid "ebDestAccount"
+msgstr ""
+
+#. FRMChangeLanguage..Caption
+#. FRMChangeLanguage..Caption
+#: gui-classic/UFRMSelectLanguage.dfm:8
+#: lib/i386-win32/ufrmselectlanguage.dfm:8
+msgid "Language Selection"
+msgstr ""
+
+#. FRMChangeLanguage..bbCancel..Caption
+#. FRMChangeLanguage..bbCancel..Caption
+#: gui-classic/UFRMSelectLanguage.dfm:28
+#: lib/i386-win32/ufrmselectlanguage.dfm:28
+msgid "Cancel"
+msgstr ""
+
+#. FRMChangeLanguage..Label1..Caption
+#. FRMChangeLanguage..Label1..Caption
+#: gui-classic/UFRMSelectLanguage.dfm:46
+#: lib/i386-win32/ufrmselectlanguage.dfm:46
+msgid "Select your preferred language"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblCurrentBlockCaption..Caption
+#: gui-classic/UFRMWallet.dfm:135
+msgid "Total Blocks:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblCurrentBlockTimeCaption..Caption
+#: gui-classic/UFRMWallet.dfm:153
+msgid "Current Block Age:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblCurrentBlockTime..Caption
+#: gui-classic/UFRMWallet.dfm:162
+msgid "000 seconds ago"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblOperationsPendingCaption..Caption
+#: gui-classic/UFRMWallet.dfm:171
+msgid "Pending Operations:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblMiningStatusCaption..Caption
+#: gui-classic/UFRMWallet.dfm:189
+msgid "Miner Clients:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblCurrentDifficultyCaption..Caption
+#: gui-classic/UFRMWallet.dfm:207
+msgid "Current Target:"
+msgstr ""
+
+#. FRMWallet..pnlTop..Label4..Caption
+#: gui-classic/UFRMWallet.dfm:234
+msgid "Time average:"
+msgstr ""
+
+#. FRMWallet..pnlTop..Label8..Caption
+#: gui-classic/UFRMWallet.dfm:243
+msgid "Node Status:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblNodeStatus..Caption
+#: gui-classic/UFRMWallet.dfm:252
+msgid "???"
+msgstr ""
+
+#. FRMWallet..pnlTop..Label16..Caption
+#: gui-classic/UFRMWallet.dfm:294
+msgid "Blocks Found:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblBlocksFound..Hint
+#: gui-classic/UFRMWallet.dfm:309
+msgid "Blocks found while Miner is running..."
+msgstr ""
+
+#. FRMWallet..pnlTop..lblReceivedMessages..Caption
+#: gui-classic/UFRMWallet.dfm:328
+msgid "Received Messages"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblBuild..Caption
+#: gui-classic/UFRMWallet.dfm:344
+msgid "Build"
+msgstr ""
+
+#. FRMWallet..StatusBar......Text
+#: gui-classic/UFRMWallet.dfm:363
+msgid "Server Active"
+msgstr ""
+
+#. FRMWallet..StatusBar......Text
+#: gui-classic/UFRMWallet.dfm:367
+msgid "Connection status"
+msgstr ""
+
+#. FRMWallet..StatusBar......Text
+#: gui-classic/UFRMWallet.dfm:371
+msgid "Blocks"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:385
+msgid "Account Explorer"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..Label18..Caption
+#. FRMWallet..MainMenu..MiOperations..MiFindaccount..Caption
+#: gui-classic/UFRMWallet.dfm:406 gui-classic/UFRMWallet.dfm:1295
+msgid "Find account"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..cbExploreMyAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:458
+msgid "Explore accounts with one of my Wallet Keys"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..bbChangeKeyName..Caption
+#: gui-classic/UFRMWallet.dfm:476
+msgid "Change Key name"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..cbFilterAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:485
+msgid "Filter accounts by balance"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..ebFilterAccountByBalanceMin..Hint
+#: gui-classic/UFRMWallet.dfm:494
+msgid "Min balance"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..ebFilterAccountByBalanceMax..Hint
+#: gui-classic/UFRMWallet.dfm:504
+msgid "Max balance"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..bbAccountsRefresh..Caption
+#: gui-classic/UFRMWallet.dfm:580
+msgid "Refresh"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsAccountOperations..Caption
+#: gui-classic/UFRMWallet.dfm:622
+msgid "Account Operations"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:634
+msgid "Selected Accounts For Batch Operation"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsTop..Label15..Caption
+#: gui-classic/UFRMWallet.dfm:667
+msgid "Select multiple accounts to execute massive operations"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..Label22..Caption
+#: gui-classic/UFRMWallet.dfm:703
+msgid "Accounts Balance:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsAdd..Caption
+#: gui-classic/UFRMWallet.dfm:730
+msgid ">"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsAddAll..Caption
+#: gui-classic/UFRMWallet.dfm:738
+msgid ">>"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsDel..Caption
+#: gui-classic/UFRMWallet.dfm:746
+msgid "<"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsDelAll..Caption
+#: gui-classic/UFRMWallet.dfm:754
+msgid "<<"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..bbSelectedAccountsOperation..Caption
+#. FRMWallet..MainMenu..MiOperations..Caption
+#: gui-classic/UFRMWallet.dfm:763 gui-classic/UFRMWallet.dfm:1278
+msgid "Operations"
+msgstr ""
+
+#. FRMWallet..PageControl..tsPendingOperations..Caption
+#: gui-classic/UFRMWallet.dfm:829
+msgid "Pending Operations"
+msgstr ""
+
+#. FRMWallet..PageControl..tsPendingOperations..pnlPendingOperations..Label10....Caption
+#: gui-classic/UFRMWallet.dfm:865
+msgid ""
+"Here you can see Operations transmited/received from other nodes that will "
+"be included in next block. There is no guarantee that other nodes will "
+"include them when mining, so it's important that you mine too to help "
+"include Operations to the main BlockChain"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Caption
+#: gui-classic/UFRMWallet.dfm:879
+msgid "Block Explorer"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..Label9..Caption
+#. FRMWallet..PageControl..tsOperations..Panel1..Label2..Caption
+#: gui-classic/UFRMWallet.dfm:898 gui-classic/UFRMWallet.dfm:994
+msgid "Filter by blocks range"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..lblHashRateBackBlocks..Caption
+#: gui-classic/UFRMWallet.dfm:907
+msgid "HashRate back blocks"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..lblHashRateBackBlocks1..Caption
+#: gui-classic/UFRMWallet.dfm:916
+msgid "Units"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits..Text
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:955 gui-classic/UFRMWallet.dfm:960
+msgid "Mh/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:959
+msgid "Kh/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:961
+msgid "Gh/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:962
+msgid "Th/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsOperations..Caption
+#. FRMWallet..MainMenu..MiOperations..MiOperationsExplorer..Caption
+#: gui-classic/UFRMWallet.dfm:975 gui-classic/UFRMWallet.dfm:1305
+msgid "Operations Explorer"
+msgstr ""
+
+#. FRMWallet..PageControl..tsLogs..Caption
+#: gui-classic/UFRMWallet.dfm:1027
+msgid "Logs"
+msgstr ""
+
+#. FRMWallet..PageControl..tsLogs..pnlTopLogs..cbShowDebugLogs..Caption
+#: gui-classic/UFRMWallet.dfm:1046
+msgid "Show Debug Logs"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Caption
+#: gui-classic/UFRMWallet.dfm:1062
+msgid "Node Stats"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Label3..Caption
+#: gui-classic/UFRMWallet.dfm:1076
+msgid "Active Connections:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Label6..Caption
+#: gui-classic/UFRMWallet.dfm:1086
+msgid "Known Node Servers:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Label7..Caption
+#: gui-classic/UFRMWallet.dfm:1096
+msgid "Blacklisted Nodes"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Caption
+#: gui-classic/UFRMWallet.dfm:1135
+msgid "Messages"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Label11..Caption
+#: gui-classic/UFRMWallet.dfm:1149
+msgid "Messages:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Label12..Caption
+#: gui-classic/UFRMWallet.dfm:1158
+msgid "Message to send:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Label13..Caption
+#: gui-classic/UFRMWallet.dfm:1167
+msgid "Available Connections:"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Label14....Caption
+#: gui-classic/UFRMWallet.dfm:1178
+msgid ""
+"(Messages will be encrypted, so only dest connection will be able to read "
+"it)"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..bbSendAMessage..Caption
+#: gui-classic/UFRMWallet.dfm:1203
+msgid "Send a Message"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..memoMessageToSend....Lines.Strings
+#: gui-classic/UFRMWallet.dfm:1232
+msgid "memoMessageToSend"
+msgstr ""
+
+#. FRMWallet..MainMenu..miProject..Caption
+#: gui-classic/UFRMWallet.dfm:1247
+msgid "Project"
+msgstr ""
+
+#. FRMWallet..MainMenu..miProject..miPrivatekeys..Caption
+#: gui-classic/UFRMWallet.dfm:1249
+msgid "Private Keys"
+msgstr ""
+
+#. FRMWallet..MainMenu..miProject..IPnodes1..Caption
+#: gui-classic/UFRMWallet.dfm:1262
+msgid "Available Node List"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..miNewOperation..Caption
+#: gui-classic/UFRMWallet.dfm:1280
+msgid "New single Operation"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiFindOperationbyOpHash..Caption
+#: gui-classic/UFRMWallet.dfm:1285
+msgid "Find Operation by OpHash"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiDecodePayload..Caption
+#: gui-classic/UFRMWallet.dfm:1290
+msgid "Decode Payload"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiAccountInformation..Caption
+#: gui-classic/UFRMWallet.dfm:1300
+msgid "Account Information"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiAddaccounttoSelected..Caption
+#: gui-classic/UFRMWallet.dfm:1313
+msgid "Add account to selected"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiRemoveaccountfromselected..Caption
+#: gui-classic/UFRMWallet.dfm:1318
+msgid "Remove account from selected"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiMultiaccountoperation..Caption
+#: gui-classic/UFRMWallet.dfm:1323
+msgid "Multi account operation"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiFindpreviousaccountwithhighbalance..Caption
+#: gui-classic/UFRMWallet.dfm:1330
+msgid "Find previous account with high balance"
+msgstr ""
+
+#. FRMWallet..MainMenu..MiOperations..MiFindnextaccountwithhighbalance..Caption
+#: gui-classic/UFRMWallet.dfm:1335
+msgid "Find next account with high balance"
+msgstr ""
+
+#. FRMWallet..MainMenu..miAbout..Caption
+#: gui-classic/UFRMWallet.dfm:1341
+msgid "About"
+msgstr ""
+
+#. FRMWallet..MainMenu..miAbout..miAboutPascalCoin..Caption
+#: gui-classic/UFRMWallet.dfm:1343
+msgid "About Pascal Coin..."
+msgstr ""
+
+#. FRMWalletKeys..Caption
+#: gui-classic/UFRMWalletKeys.dfm:6
+msgid "Wallet keys"
+msgstr ""
+
+#. FRMWalletKeys..lblEncryptionTypeCaption..Caption
+#: gui-classic/UFRMWalletKeys.dfm:25
+msgid "Encryption type:"
+msgstr ""
+
+#. FRMWalletKeys..lblEncryptionType..Caption
+#. FRMWalletKeys..lblKeyName..Caption
+#: gui-classic/UFRMWalletKeys.dfm:32 gui-classic/UFRMWalletKeys.dfm:47
+msgid "000000000"
+msgstr ""
+
+#. FRMWalletKeys..lblKeyNameCaption..Caption
+#: gui-classic/UFRMWalletKeys.dfm:39
+msgid "Key name:"
+msgstr ""
+
+#. FRMWalletKeys..lblPrivateKeyCaption..Caption
+#: gui-classic/UFRMWalletKeys.dfm:54
+msgid "Public Key:"
+msgstr ""
+
+#. FRMWalletKeys..lblKeysEncrypted..Caption
+#: gui-classic/UFRMWalletKeys.dfm:62
+msgid "lblKeysEncrypted"
+msgstr ""
+
+#. FRMWalletKeys..bbExportPrivateKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:85
+msgid "Export Private key"
+msgstr ""
+
+#. FRMWalletKeys..memoPrivateKey....Lines.Strings
+#: gui-classic/UFRMWalletKeys.dfm:158
+msgid "memoPrivateKey"
+msgstr ""
+
+#. FRMWalletKeys..bbChangeName..Caption
+#: gui-classic/UFRMWalletKeys.dfm:169
+msgid "Change Name"
+msgstr ""
+
+#. FRMWalletKeys..bbImportPrivateKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:178
+msgid "Import Private key"
+msgstr ""
+
+#. FRMWalletKeys..bbExportPublicKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:240
+msgid "Export Public key"
+msgstr ""
+
+#. FRMWalletKeys..bbImportPublicKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:306
+msgid "Import Public key"
+msgstr ""
+
+#. FRMWalletKeys..bbGenerateNewKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:372
+msgid "Generate a new Key"
+msgstr ""
+
+#. FRMWalletKeys..bbDelete..Caption
+#: gui-classic/UFRMWalletKeys.dfm:434
+msgid "Delete"
+msgstr ""
+
+#. FRMWalletKeys..bbExportAllWalletKeys..Caption
+#: gui-classic/UFRMWalletKeys.dfm:568
+msgid "Export all Wallet Keys to a file"
+msgstr ""
+
+#. FRMWalletKeys..bbImportKeysFile..Caption
+#: gui-classic/UFRMWalletKeys.dfm:634
+msgid "Import a Wallet Keys File"
+msgstr ""
+
+#. FRMWalletKeys..bbLock..Caption
+#: gui-classic/UFRMWalletKeys.dfm:700
+msgid "Lock"
+msgstr ""
+
+#. FRMWalletKeys..SaveDialog..DefaultExt
+#. FRMWalletKeys..OpenDialog..DefaultExt
+#: gui-classic/UFRMWalletKeys.dfm:758 gui-classic/UFRMWalletKeys.dfm:765
+msgid "dat"
+msgstr ""
+
+#. FRMWalletKeys..SaveDialog..Filter
+#: gui-classic/UFRMWalletKeys.dfm:759
+msgid "Wallet keys file|*.dat|All files|*.*"
+msgstr ""
+
+#. FRMWalletKeys..OpenDialog..Filter
+#: gui-classic/UFRMWalletKeys.dfm:766
+msgid "Wallet keys file (*.dat)|*.dat|All files (*.*)|*.*"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedHash
+#. Programmer's name for it: SUnSupportedHash
+#: core/URandomHash.pas:267 core/URandomHash2.pas:219
+msgid "Unsupported Hash Selected"
+msgstr ""
+
+#. Programmer's name for it: SInvalidRound
+#. Programmer's name for it: SInvalidRound
+#: core/URandomHash.pas:268 core/URandomHash2.pas:220
+msgid "Round must be between 0 and N inclusive"
+msgstr ""
+
+#. Programmer's name for it: SOverlappingArgs
+#. Programmer's name for it: SOverlappingArgs
+#: core/URandomHash.pas:269 core/URandomHash2.pas:221
+msgid "Overlapping read/write regions"
+msgstr ""
+
+#. Programmer's name for it: SBufferTooSmall
+#. Programmer's name for it: SBufferTooSmall
+#: core/URandomHash.pas:270 core/URandomHash2.pas:222
+msgid "Buffer too small to apply memory transform"
+msgstr ""
+
+#. Programmer's name for it: SBlockHeaderTooSmallForNonce
+#. Programmer's name for it: SBlockHeaderTooSmallForNonce
+#: core/URandomHash.pas:271 core/URandomHash2.pas:223
+msgid "Buffer too small to contain nonce"
+msgstr ""
+
+#. Programmer's name for it: SAESEngineNotInitialised
+#. Programmer's name for it: SAESEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:37
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:37
+msgid "AES Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBufferTooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:38
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:38
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:39
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:39
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:35
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:43
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:36
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:36
+msgid "Input Buffer too Short"
+msgstr ""
+
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBufferTooSmall
+#. Programmer's name for it: SOutputBufferTooSmall
+#. Programmer's name for it: SOutputBufferTooSmall
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:39
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:39
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:40
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:40
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:39
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:32
+#: libraries/cryptolib4pascal/ClpPaddedBufferedBlockCipher.pas:40
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:36
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:44
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:37
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:37
+msgid "Output Buffer too Short"
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterAESInit
+#. Programmer's name for it: SInvalidParameterAESInit
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:40
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:40
+msgid "Invalid Parameter Passed to AES Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:41
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:41
+msgid "Key Length not 128/192/256 bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidOperation
+#. Programmer's name for it: SInvalidOperation
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:42
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:42
+msgid "Should Never Get Here"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpAESPRNGRandom.pas:40
+msgid "AES RNG Seed Length must be either one of these \"128/192/256 bits\"."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpAgreementUtilities.pas:43
+msgid "Raw Agreement Algorithm \"%s\" Not Recognised."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpAgreementUtilities.pas:45
+msgid "Basic Agreement Algorithm \"%s\" Not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SArgon2TypeInvalid
+#: libraries/cryptolib4pascal/ClpArgon2ParametersGenerator.pas:41
+msgid "Selected Argon2Type is Invalid"
+msgstr ""
+
+#. Programmer's name for it: SArgon2VersionInvalid
+#: libraries/cryptolib4pascal/ClpArgon2ParametersGenerator.pas:42
+msgid "Selected Argon2Version is Invalid"
+msgstr ""
+
+#. Programmer's name for it: SArgon2MemoryCostTypeInvalid
+#: libraries/cryptolib4pascal/ClpArgon2ParametersGenerator.pas:43
+msgid "Selected Argon2MemoryCostType is Invalid"
+msgstr ""
+
+#. Programmer's name for it: SInvalidLength
+#: libraries/cryptolib4pascal/ClpArrayUtils.pas:30
+msgid "%d \" > \" %d"
+msgstr ""
+
+#. Programmer's name for it: SDataOverflow
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:43
+msgid "Data Overflow"
+msgstr ""
+
+#. Programmer's name for it: SDataOverflow
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:45
+msgid "Corrupted Stream - Invalid High Tag Number Found"
+msgstr ""
+
+#. Programmer's name for it: SEOFFound
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:46
+msgid "EOF Found Inside Tag Value"
+msgstr ""
+
+#. Programmer's name for it: SInvalidEnd
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:47
+msgid "EOF Found When Length Expected"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDerLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:48
+msgid "DER Length More Than 4 Bytes: %d"
+msgstr ""
+
+#. Programmer's name for it: SEndOfStream
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:49
+msgid "EOF Found Reading Length"
+msgstr ""
+
+#. Programmer's name for it: SNegativeLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:50
+msgid "Corrupted Stream - Negative Length Found"
+msgstr ""
+
+#. Programmer's name for it: SOutOfBoundsLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:51
+msgid "Corrupted stream - Out of Bounds Length Found"
+msgstr ""
+
+#. Programmer's name for it: SUnknownTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:52
+msgid "Unknown Tag \" %d \" Encountered"
+msgstr ""
+
+#. Programmer's name for it: SEndOfContent
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:53
+msgid "Unexpected End-of-Contents Marker"
+msgstr ""
+
+#. Programmer's name for it: SIndefiniteLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:54
+msgid "Indefinite Length Primitive Encoding Encountered"
+msgstr ""
+
+#. Programmer's name for it: SUnknownBerObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:55
+msgid "Unknown BER Object Encountered"
+msgstr ""
+
+#. Programmer's name for it: SCorruptedStream
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:56
+msgid "Corrupted Stream Detected: %s"
+msgstr ""
+
+#. Programmer's name for it: SInvalidLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:57
+msgid "Negative Lengths not Allowed\", \"Length\""
+msgstr ""
+
+#. Programmer's name for it: SEndOfStreamTwo
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:58
+msgid "DEF Length  %d \" TObject truncated by \" %d"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBufferLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:59
+msgid "Buffer Length Not Right For Data"
+msgstr ""
+
+#. Programmer's name for it: SMalformedContent
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:60
+msgid "Malformed End-of-Contents Marker"
+msgstr ""
+
+#. Programmer's name for it: SExtraData
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:62
+msgid "Extra Data Found After Object"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedObjectStream
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:63
+msgid "Cannot Recognise Object in Stream"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedObjectByteArray
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:64
+msgid "Cannot Recognise Object in ByteArray"
+msgstr ""
+
+#. Programmer's name for it: SIllegalObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:65
+msgid "Illegal Object in GetInstance:  %s, \"obj\""
+msgstr ""
+
+#. Programmer's name for it: SStrNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:66
+msgid "\"Str\" Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SProcessingError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:67
+msgid "Error Processing Object : \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:68
+msgid "Object Implicit - Explicit Expected."
+msgstr ""
+
+#. Programmer's name for it: SUnknownObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:69
+msgid "Unknown object in GetInstance:  %s, \"obj\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSequence
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:70
+msgid "\"Failed to Construct Sequence from byte array: \" %s"
+msgstr ""
+
+#. Programmer's name for it: SImplicitObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:71
+msgid "Implicitly Tagged Object"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:72
+msgid "Implicit Tagging for Tag:  %d"
+msgstr ""
+
+#. Programmer's name for it: SUnknownObjectBER
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:73
+msgid "Unknown BER Object Encountered: $%x"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTagging
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:74
+msgid "Implicit Tagging not Implemented"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTagging
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:76
+msgid "Sequences Must Use Constructed Encoding (see X.690 8.9.1/8.10.1)"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTagging
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:78
+msgid "Sets Must Use Constructed Encoding (see X.690 8.11.1/8.12.1)"
+msgstr ""
+
+#. Programmer's name for it: SMalformedObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:79
+msgid "Malformed Object %s"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:80
+msgid "Unsupported Tag Number"
+msgstr ""
+
+#. Programmer's name for it: SConvertError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:81
+msgid "EIOCryptoLibException Converting Stream to Byte Array: %s"
+msgstr ""
+
+#. Programmer's name for it: SEncodingError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:82
+msgid "Encoding Error in GetInstance:  %s  \"obj\""
+msgstr ""
+
+#. Programmer's name for it: SDataNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:83
+msgid "\"data\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidRange
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:84
+msgid "Must be in the Range 0 to 7\", \"padBits\""
+msgstr ""
+
+#. Programmer's name for it: SPadBitError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:85
+msgid "If \"data\" is Empty, \"padBits\" Must be 0"
+msgstr ""
+
+#. Programmer's name for it: SUnalignedData
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:86
+msgid "Attempt to Get non-octet Aligned Data from BIT STRING\""
+msgstr ""
+
+#. Programmer's name for it: STruncatedBitString
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:87
+msgid "Truncated BIT STRING Detected\", \"octets\""
+msgstr ""
+
+#. Programmer's name for it: SNotImplemented
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:88
+msgid "Not Implemented %s"
+msgstr ""
+
+#. Programmer's name for it: SUnConstructedTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:89
+msgid "Explicit Tags Must be Constructed (see X.690 8.14.2)"
+msgstr ""
+
+#. Programmer's name for it: SParsingError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:90
+msgid "%s"
+msgstr ""
+
+#. Programmer's name for it: SEmptyInput
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:91
+msgid "Input Cannot be Empty \"astr\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidValue
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:92
+msgid "Byte Value Should Have 1 Byte in it', \"val\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidBooleanValue
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:93
+msgid "BOOLEAN Value Should Have 1 Byte in it\", \"Value\""
+msgstr ""
+
+#. Programmer's name for it: SMalformedEnumerated
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:94
+msgid "Malformed Enumerated"
+msgstr ""
+
+#. Programmer's name for it: SZeroLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:95
+msgid "Enumerated has Zero Length, \"enc\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidEncoding
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:96
+msgid "Invalid Encoding Value: %d"
+msgstr ""
+
+#. Programmer's name for it: SFewObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:97
+msgid "Too Few Objects in Input Vector, \"v\""
+msgstr ""
+
+#. Programmer's name for it: SVectorTooLarge
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:98
+msgid "Input Vector too Large\", \"vector\""
+msgstr ""
+
+#. Programmer's name for it: SVectorTooLarge
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:100
+msgid ""
+"No Tagged Object Found in Vector. Structure Doesn 't Seem to be of Type "
+"External, \"Vector\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidEncodingValue
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:101
+msgid "Invalid Encoding Value"
+msgstr ""
+
+#. Programmer's name for it: SObjectNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:102
+msgid " \"obj\" Can't be Nil"
+msgstr ""
+
+#. Programmer's name for it: SValueNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:103
+msgid " \"value\" Can't be Nil"
+msgstr ""
+
+#. Programmer's name for it: SMalformedInteger
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:104
+msgid "Malformed Integer"
+msgstr ""
+
+#. Programmer's name for it: SIdentifierNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:105
+msgid "Identifier Cannot be Empty"
+msgstr ""
+
+#. Programmer's name for it: SInvalidOID
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:106
+msgid "\"String \" %s is \" not an OID\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidBranchId
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:107
+msgid "\"String \" %s \" not a valid OID branch\", \"branchID\""
+msgstr ""
+
+#. Programmer's name for it: SIllegalCharacters
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:108
+msgid "String Contains Illegal Characters \"str\""
+msgstr ""
+
+#. Programmer's name for it: SExpectedPublicKey
+#: libraries/cryptolib4pascal/ClpAsymmetricCipherKeyPair.pas:30
+msgid "Expected a Public Key \"publicParameter\""
+msgstr ""
+
+#. Programmer's name for it: SExpectedPrivateKey
+#: libraries/cryptolib4pascal/ClpAsymmetricCipherKeyPair.pas:31
+msgid "Expected a Private Key \"privateParameter\""
+msgstr ""
+
+#. Programmer's name for it: SOutputBufferTooSmall
+#. Programmer's name for it: SOutputBufferTooSmall
+#: libraries/cryptolib4pascal/ClpBaseKdfBytesGenerator.pas:36
+#: libraries/cryptolib4pascal/ClpPascalCoinECIESKdfBytesGenerator.pas:34
+msgid "Output Buffer too Small"
+msgstr ""
+
+#. Programmer's name for it: SOutputLengthTooLarge
+#: libraries/cryptolib4pascal/ClpBaseKdfBytesGenerator.pas:37
+msgid "Output Length too Large"
+msgstr ""
+
+#. Programmer's name for it: SKDFParameterNotFound
+#. Programmer's name for it: SKDFParameterNotFound
+#: libraries/cryptolib4pascal/ClpBaseKdfBytesGenerator.pas:38
+#: libraries/cryptolib4pascal/ClpPascalCoinECIESKdfBytesGenerator.pas:35
+msgid "KDF Parameters Required For KDF Generator"
+msgstr ""
+
+#. Programmer's name for it: SDivisionByZero
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:36
+msgid "Division by Zero Error"
+msgstr ""
+
+#. Programmer's name for it: SModulusPositive
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:37
+msgid "Modulus must be Positive"
+msgstr ""
+
+#. Programmer's name for it: SNotRelativelyPrime
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:38
+msgid "Numbers not Relatively Prime."
+msgstr ""
+
+#. Programmer's name for it: SNegativeValue
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:39
+msgid "Cannot be Called on Value < 0"
+msgstr ""
+
+#. Programmer's name for it: SNegativeExponent
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:40
+msgid "Negative Exponent"
+msgstr ""
+
+#. Programmer's name for it: SResultTooLarge
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:41
+msgid "Result too Large"
+msgstr ""
+
+#. Programmer's name for it: SNegativeBitPosition
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:42
+msgid "Bit Position must not be Negative"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBitAddress
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:43
+msgid "Bit Address less than Zero"
+msgstr ""
+
+#. Programmer's name for it: SZeroLengthBigInteger
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:44
+msgid "Zero length BigInteger"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSign
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:45
+msgid "Invalid Sign Value"
+msgstr ""
+
+#. Programmer's name for it: SNegativeSizeInBits
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:46
+msgid "sizeInBits must be non-negative"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBitLength
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:47
+msgid "bitLength < 2"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBase
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:48
+msgid "Only bases 2, 8, 10, or 16 allowed"
+msgstr ""
+
+#. Programmer's name for it: SBadCharacterRadix8
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:49
+msgid "Bad Character in radix 8 string: %s"
+msgstr ""
+
+#. Programmer's name for it: SBadCharacterRadix2
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:50
+msgid "Bad Character in radix 2 string: %s"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedBase
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:51
+msgid "Only bases 2, 8, 10, 16 are allowed"
+msgstr ""
+
+#. Programmer's name for it: SInvalidLength
+#: libraries/cryptolib4pascal/ClpBigIntegers.pas:31
+msgid "Standard Length Exceeded, \"n\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidMinValue
+#: libraries/cryptolib4pascal/ClpBigIntegers.pas:32
+msgid "\"min\" may not be greater than \"max\"\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:37
+msgid "Initialisation Vector Must be the Same Length as Block Size"
+msgstr ""
+
+#. Programmer's name for it: SInvalidChangeState
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:38
+msgid "Cannot Change Encrypting State Without Providing Key."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterArgument
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:42
+msgid "CTR/SIC Mode Requires ParametersWithIV"
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterArgument
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:44
+msgid "CTR/SIC mode requires IV no greater than: %u bytes"
+msgstr ""
+
+#. Programmer's name for it: SInvalidTooSmallIVLength
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:45
+msgid "CTR/SIC mode requires IV of at least: %u bytes"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedCipher
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:47
+msgid "CtsBlockCipher Can Only Accept ECB or CBC Ciphers"
+msgstr ""
+
+#. Programmer's name for it: SNegativeInputLength
+#. Programmer's name for it: SInvalidLength
+#. Programmer's name for it: SNegativeInputLength
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:48
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:36
+#: libraries/cryptolib4pascal/ClpPaddedBufferedBlockCipher.pas:42
+msgid "Can't Have a Negative Input Length!"
+msgstr ""
+
+#. Programmer's name for it: SCTSDoFinalError
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:49
+msgid "Need at Least One Block of Input For CTS"
+msgstr ""
+
+#. Programmer's name for it: SBlowfishEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:36
+msgid "Blowfish Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SBlowfishEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:38
+msgid "Invalid Parameter Passed to Blowfish Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SOutputBuffertooShort
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:42
+msgid "Key Length must be between 32 - 448 bits and divisible by 8."
+msgstr ""
+
+#. Programmer's name for it: SInputNil
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:37
+msgid "Input Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SCipherNil
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:38
+msgid "Cipher Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SDataNotBlockSizeAligned
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:40
+msgid "Data not Block Size Aligned"
+msgstr ""
+
+#. Programmer's name for it: SOutputBufferTooSmallForDoFinal
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:41
+msgid "Output Buffer too Short for DoFinal()"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBufferSize
+#. Programmer's name for it: SInvalidBufferSize
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:33
+#: libraries/hashlib4pascal/HlpHash.pas:17
+msgid "\"BufferSize\" Must Be Greater Than Zero"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBufferSize
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:35
+msgid "Input and Output Streams Must not Point to the Same Stream Instance"
+msgstr ""
+
+#. Programmer's name for it: SUnAssignedInputStream
+#. Programmer's name for it: SUnAssignedStream
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:36
+#: libraries/hashlib4pascal/HlpHash.pas:18
+msgid "Input Stream Is Unassigned"
+msgstr ""
+
+#. Programmer's name for it: SUnAssignedOutputStream
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:37
+msgid "Output Stream Is Unassigned"
+msgstr ""
+
+#. Programmer's name for it: SPositionOutOfRange
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:38
+msgid "Current Position Is Out Of Range"
+msgstr ""
+
+#. Programmer's name for it: SPositionOutOfRange
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:40
+msgid "Stream Position (or Stream Length to Process) Is Out Of Range"
+msgstr ""
+
+#. Programmer's name for it: SCipherNil
+#: libraries/cryptolib4pascal/ClpBufferedStreamCipher.pas:34
+msgid "Cipher Instance Cannot be Nil"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpCipherKeyGenerator.pas:34
+msgid "Strength must be a Positive Value, \"defaultStrength\""
+msgstr ""
+
+#. Programmer's name for it: SParametersNil
+#: libraries/cryptolib4pascal/ClpCipherKeyGenerator.pas:35
+msgid "Parameters Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SGeneratorNotInitialized
+#: libraries/cryptolib4pascal/ClpCipherKeyGenerator.pas:36
+msgid "Generator has not been Initialised"
+msgstr ""
+
+#. Programmer's name for it: SMechanismNil
+#. Programmer's name for it: SMechanismNil
+#. Programmer's name for it: SMechanismNil
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:56
+#: libraries/cryptolib4pascal/ClpDigestUtilities.pas:42
+#: libraries/cryptolib4pascal/ClpSignerUtilities.pas:69
+msgid "Mechanism Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNil
+#. Programmer's name for it: SAlgorithmNil
+#. Programmer's name for it: SAlgorithmNil
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:57
+#: libraries/cryptolib4pascal/ClpParameterUtilities.pas:37
+#: libraries/cryptolib4pascal/ClpSignerUtilities.pas:70
+msgid "Algorithm Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedCipher
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:58
+msgid "Cipher \"%s\" Not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedCipher
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:60
+msgid ""
+"Warning: SIC-Mode Can Become a TwoTime-Pad if the Blocksize of the Cipher "
+"is Too Small. Use a Cipher With a Block Size of at Least 128 bits (e.g. AES)"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedCipher
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:62
+msgid "Modes and Paddings Not Used for Stream Ciphers"
+msgstr ""
+
+#. Programmer's name for it: SEncodingInstanceNil
+#. Programmer's name for it: SEncodingInstanceNil
+#: libraries/cryptolib4pascal/ClpConverters.pas:33
+#: libraries/hashlib4pascal/HlpConverters.pas:16
+msgid "Encoding Instance Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SNegativeOffset
+#: libraries/cryptolib4pascal/ClpCryptoApiRandomGenerator.pas:32
+msgid "Start Offset Cannot be Negative, \"Start\""
+msgstr ""
+
+#. Programmer's name for it: SArrayTooSmall
+#: libraries/cryptolib4pascal/ClpCryptoApiRandomGenerator.pas:33
+msgid "Byte Array Too Small For Requested Offset and Length"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpCurve25519Custom.pas:40
+msgid "Value Invalid for Curve25519FieldElement \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#: libraries/cryptolib4pascal/ClpCurve25519Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecP256K1Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecP256R1Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecP384R1Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecP521R1Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecT283Custom.pas:42
+msgid "Exactly One of the Field Elements is Nil"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:45
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:38
+msgid "Diffie-Hellman Public Key has Wrong Parameters."
+msgstr ""
+
+#. Programmer's name for it: SNotDHPrivateKeyParameters
+#. Programmer's name for it: SNotDHPrivateKeyParameters
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:46
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:39
+msgid "DHEngine Expects DHPrivateKeyParameters"
+msgstr ""
+
+#. Programmer's name for it: SMessageNotInitialized
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:47
+msgid "Message not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SSharedKeyInvalid
+#. Programmer's name for it: SSharedKeyInvalid
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:48
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:41
+msgid "Shared Key Can't be 1"
+msgstr ""
+
+#. Programmer's name for it: SDHPublicKeyWeak
+#. Programmer's name for it: SDHPublicKeyWeak
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:49
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:42
+msgid "Diffie-Hellman Public Key is Weak"
+msgstr ""
+
+#. Programmer's name for it: SDHPublicKeyNil
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:50
+msgid "DH Public Key Parameter Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNotInitialized
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:40
+msgid "Agreement Algorithm not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SParametersCannotBeNil
+#. Programmer's name for it: SParametersCannotBeNil
+#. Programmer's name for it: SParametersCannotBeNil
+#: libraries/cryptolib4pascal/ClpDHBasicKeyPairGenerator.pas:42
+#: libraries/cryptolib4pascal/ClpDHKeyPairGenerator.pas:42
+#: libraries/cryptolib4pascal/ClpDsaKeyPairGenerator.pas:44
+msgid "\"parameters\" Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SPNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:33
+msgid "P Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SGNil
+#. Programmer's name for it: SGNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:34
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:35
+msgid "G Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SQNil
+#. Programmer's name for it: SQNil
+#. Programmer's name for it: SQNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:35
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:37
+#: libraries/cryptolib4pascal/ClpECPublicKeyParameters.pas:35
+msgid "Q Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SJNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:36
+msgid "J Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SBadSequenceSize
+#. Programmer's name for it: SBadSequenceSize
+#. Programmer's name for it: SBadSequenceSize
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:37
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:34
+#: libraries/cryptolib4pascal/ClpDsaParameter.pas:32
+msgid "Bad Sequence Size \"seq\": %d"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDHDomainParameters
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:38
+msgid "Invalid DHDomainParameters: %s"
+msgstr ""
+
+#. Programmer's name for it: SPUnInitialized
+#. Programmer's name for it: SPUnInitialized
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:33
+#: libraries/cryptolib4pascal/ClpDsaParameters.pas:32
+msgid "\"P\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SGUnInitialized
+#. Programmer's name for it: SGUnInitialized
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:34
+#: libraries/cryptolib4pascal/ClpDsaParameters.pas:34
+msgid "\"G\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SMustBeOddPrime
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:35
+msgid "Field must be an Odd Prime, \"P\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidGeneratorRange
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:36
+msgid "Generator must in the Range [2, p - 2], \"G\""
+msgstr ""
+
+#. Programmer's name for it: SQTooBigToBeAFactor
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:37
+msgid "Q too Big to be a Factor of (P - 1), \"Q\""
+msgstr ""
+
+#. Programmer's name for it: SMTooBig
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:38
+msgid "M value must be < BitLength of P, \"M\""
+msgstr ""
+
+#. Programmer's name for it: SLErrorOne
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:39
+msgid "when L value specified, it must be less than bitlength(P), \"L\""
+msgstr ""
+
+#. Programmer's name for it: SLErrorTwo
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:40
+msgid "when L value specified, it may not be less than m value, \"L\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSubGroupFactor
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:41
+msgid "Subgroup factor must be >= 2, \"j\""
+msgstr ""
+
+#. Programmer's name for it: SXUnInitialized
+#. Programmer's name for it: SXUnInitialized
+#: libraries/cryptolib4pascal/ClpDHPrivateKeyParameters.pas:33
+#: libraries/cryptolib4pascal/ClpDsaPrivateKeyParameters.pas:32
+msgid "\"X\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SYUnInitialized
+#. Programmer's name for it: SYUnInitialized
+#: libraries/cryptolib4pascal/ClpDHPublicKeyParameters.pas:33
+#: libraries/cryptolib4pascal/ClpDsaPublicKeyParameters.pas:32
+msgid "\"Y\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDHPublicKey
+#: libraries/cryptolib4pascal/ClpDHPublicKeyParameters.pas:34
+msgid "Invalid DH public key \"Y\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidYInCorrectGroup
+#. Programmer's name for it: SInvalidYInCorrectGroup
+#: libraries/cryptolib4pascal/ClpDHPublicKeyParameters.pas:35
+#: libraries/cryptolib4pascal/ClpDsaPublicKeyParameters.pas:33
+msgid "\"Y\" Value Does Not Appear To Be In Correct Group"
+msgstr ""
+
+#. Programmer's name for it: SSeedNil
+#. Programmer's name for it: SSeedNil
+#: libraries/cryptolib4pascal/ClpDHValidationParameters.pas:30
+#: libraries/cryptolib4pascal/ClpDsaValidationParameters.pas:30
+msgid "\"Seed\" Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SSeedNil
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:32
+msgid "Seed Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SPGenCounterNil
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:33
+msgid "PGenCounter Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDHValidationParams
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:35
+msgid "Invalid DHValidationParams: %s"
+msgstr ""
+
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#: libraries/cryptolib4pascal/ClpDigest.pas:31
+#: libraries/cryptolib4pascal/ClpHMac.pas:34
+#: libraries/hashlib4pascal/HlpBlake2B.pas:27
+#: libraries/hashlib4pascal/HlpBlake2S.pas:27
+#: libraries/hashlib4pascal/HlpSHA3.pas:29
+msgid "Output Buffer Too Short"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedDigest
+#: libraries/cryptolib4pascal/ClpDigestUtilities.pas:43
+msgid "Digest \"%s\" not recognised."
+msgstr ""
+
+#. Programmer's name for it: SPrivateKey
+#. Programmer's name for it: SPrivateKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:41
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:40
+msgid "Signing Requires Private Key."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:42
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:41
+msgid "Verification Requires Public Key."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:44
+msgid "DSADigestSigner not Initialized for Signature Generation."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:46
+msgid "DSADigestSigner not Initialized for Verification"
+msgstr ""
+
+#. Programmer's name for it: SEncodingError
+#. Programmer's name for it: SEncodingError
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:47
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:46
+msgid "Unable to Encode Signature"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDsaParameter
+#: libraries/cryptolib4pascal/ClpDsaParameter.pas:33
+msgid "Invalid DsaParameter: %s"
+msgstr ""
+
+#. Programmer's name for it: SQUnInitialized
+#: libraries/cryptolib4pascal/ClpDsaParameters.pas:33
+msgid "\"Q\" Cannot Be Uninitialized"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:44
+msgid "L Values Must be Between 1024 and 3072 and a Multiple of 1024"
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:45
+msgid "N Must be \" %d \" for L = \" %d \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:46
+msgid "N Must be \" %d \" or \" %d \" for L = \" %d \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:48
+msgid "Digest Output Size Too Small for Value of N Which is \" %d \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:50
+msgid "Can Only Use SHA-1 For Generating FIPS 186-2 Parameters"
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:52
+msgid "Size Must Be From %d - %d and a multiple of %d, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SDSAPrivateKeyNotFound
+#: libraries/cryptolib4pascal/ClpDsaSigner.pas:44
+msgid "DSA Private Key Required For Signing"
+msgstr ""
+
+#. Programmer's name for it: SDSAPublicKeyNotFound
+#: libraries/cryptolib4pascal/ClpDsaSigner.pas:45
+msgid "DSA Public Key Required For Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:43
+msgid ""
+"Point and Scalar Arrays Should be Non-Null, and of Equal, Non-Zero, Length"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointLocation
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:44
+msgid "Point Must be on the Same Curve"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:45
+msgid "Invalid Point, \"P\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidResult
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:46
+msgid "Invalid Result"
+msgstr ""
+
+#. Programmer's name for it: SInvalidResult
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:48
+#: libraries/cryptolib4pascal/ClpMultipliers.pas:46
+msgid "Fixed-Point Comb Doesn't Support Scalars Larger Than The Curve Order"
+msgstr ""
+
+#. Programmer's name for it: SInvalidValue
+#: libraries/cryptolib4pascal/ClpECC.pas:52
+msgid "Value Invalid in Fp Field Element, \" x \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidValue2
+#: libraries/cryptolib4pascal/ClpECC.pas:53
+msgid "Value Invalid in F2m Field Element, \"x\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value
+#: libraries/cryptolib4pascal/ClpECC.pas:54
+msgid "k2 must be smaller than k3"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:55
+msgid "k2 must be larger than 0"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:57
+msgid "Field elements are not both instances of F2mFieldElement"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:59
+msgid "Field elements are not elements of the same field F2m"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:61
+msgid "One of the F2m field elements has incorrect representation"
+msgstr ""
+
+#. Programmer's name for it: SEvenValue
+#: libraries/cryptolib4pascal/ClpECC.pas:62
+msgid "Even Value of Q"
+msgstr ""
+
+#. Programmer's name for it: STraceInternalErrorCalculation
+#: libraries/cryptolib4pascal/ClpECC.pas:63
+msgid "Internal Error in Trace Calculation"
+msgstr ""
+
+#. Programmer's name for it: SHalfTraceUndefinedForM
+#: libraries/cryptolib4pascal/ClpECC.pas:64
+msgid "Half-Trace Only Defined For Odd M"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCoordinateSystem
+#: libraries/cryptolib4pascal/ClpECC.pas:65
+msgid "UnSupported Coordinate System"
+msgstr ""
+
+#. Programmer's name for it: SCurrentCurve
+#: libraries/cryptolib4pascal/ClpECC.pas:66
+msgid "Implementation returned Current Curve"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointCoordinates
+#: libraries/cryptolib4pascal/ClpECC.pas:67
+msgid "Invalid Point Coordinates"
+msgstr ""
+
+#. Programmer's name for it: SInvalidAffineCoordinates
+#: libraries/cryptolib4pascal/ClpECC.pas:68
+msgid "not valid for affine coordinates, \"iso\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointOnCurve
+#: libraries/cryptolib4pascal/ClpECC.pas:69
+msgid "must be non-null and on this curve, \"point\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointOnCurve2
+#: libraries/cryptolib4pascal/ClpECC.pas:70
+msgid "Entries must be null or on this curve, \"points\""
+msgstr ""
+
+#. Programmer's name for it: SPointsNil
+#: libraries/cryptolib4pascal/ClpECC.pas:71
+msgid "points"
+msgstr ""
+
+#. Programmer's name for it: SInvalidRangeSpecified
+#: libraries/cryptolib4pascal/ClpECC.pas:72
+msgid "Invalid Range Specified\", \"points\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointCompression
+#: libraries/cryptolib4pascal/ClpECC.pas:73
+msgid "Invalid Point Compression"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK1
+#: libraries/cryptolib4pascal/ClpECC.pas:74
+msgid "k1 must be > 0"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK3
+#: libraries/cryptolib4pascal/ClpECC.pas:75
+msgid "k3 must be 0 if k2 == 0"
+msgstr ""
+
+#. Programmer's name for it: SK2K1MisMatch
+#: libraries/cryptolib4pascal/ClpECC.pas:76
+msgid "k2 must be > k1"
+msgstr ""
+
+#. Programmer's name for it: SK3K2Mismatch
+#: libraries/cryptolib4pascal/ClpECC.pas:77
+msgid "k3 must be > k2"
+msgstr ""
+
+#. Programmer's name for it: SInvalidInfinityEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:78
+msgid "Invalid Infinity Encoding, \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:79
+msgid "Invalid Point Encoding %u"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:81
+msgid "Incorrect Length for infinity encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:83
+msgid "Incorrect Length for Compressed Encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:84
+msgid "Invalid Point"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:86
+msgid "Incorrect Length for UnCompressed Encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:88
+msgid "Incorrect Length for Hybrid Encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:90
+msgid "Inconsistent Y Coordinate in Hybrid Encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SUnknownCoordSystem
+#: libraries/cryptolib4pascal/ClpECC.pas:91
+msgid "Unknown Coordinate System"
+msgstr ""
+
+#. Programmer's name for it: SPointNotInNormalForm
+#: libraries/cryptolib4pascal/ClpECC.pas:92
+msgid "Point not in Normal Form"
+msgstr ""
+
+#. Programmer's name for it: SNotProjectiveCoordSystem
+#: libraries/cryptolib4pascal/ClpECC.pas:93
+msgid "Not a Projective Coordinate System"
+msgstr ""
+
+#. Programmer's name for it: SCannotBeNegative
+#: libraries/cryptolib4pascal/ClpECC.pas:94
+msgid "Cannot be Negative, \"e\""
+msgstr ""
+
+#. Programmer's name for it: SNilFieldElement
+#: libraries/cryptolib4pascal/ClpECC.pas:95
+msgid "Exactly one of the Field Elements is Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedOperation
+#: libraries/cryptolib4pascal/ClpECC.pas:96
+msgid "Constant-time Lookup not Supported"
+msgstr ""
+
+#. Programmer's name for it: SInvalidRange
+#: libraries/cryptolib4pascal/ClpECCompUtilities.pas:43
+msgid "Must be in the Range [2, 16], \"width\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidRange2
+#: libraries/cryptolib4pascal/ClpECCompUtilities.pas:44
+msgid "Must be in the Range [2, 8], \"width\""
+msgstr ""
+
+#. Programmer's name for it: SWrongDomainParameter
+#: libraries/cryptolib4pascal/ClpECDHBasicAgreement.pas:39
+msgid "ECDH Public Key has Wrong Domain Parameters"
+msgstr ""
+
+#. Programmer's name for it: SInvalidAgreementValue
+#: libraries/cryptolib4pascal/ClpECDHBasicAgreement.pas:40
+msgid "Infinity is not a Valid Agreement Value for ECDH"
+msgstr ""
+
+#. Programmer's name for it: SInfinityInvalidPublicKey
+#: libraries/cryptolib4pascal/ClpECDHBasicAgreement.pas:41
+msgid "Infinity is not a Valid Public Key for ECDH"
+msgstr ""
+
+#. Programmer's name for it: SWrongDomainParameter
+#: libraries/cryptolib4pascal/ClpECDHCBasicAgreement.pas:39
+msgid "ECDHC Public Key has Wrong Domain Parameters"
+msgstr ""
+
+#. Programmer's name for it: SInvalidAgreementValue
+#: libraries/cryptolib4pascal/ClpECDHCBasicAgreement.pas:40
+msgid "Infinity is not a Valid Agreement Value for ECDHC"
+msgstr ""
+
+#. Programmer's name for it: SInfinityInvalidPublicKey
+#: libraries/cryptolib4pascal/ClpECDHCBasicAgreement.pas:41
+msgid "Infinity is not a Valid Public Key for ECDHC"
+msgstr ""
+
+#. Programmer's name for it: SCurveNil
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:33
+msgid "Curve Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SScalarNil
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:34
+msgid "Scalar Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SBigIntegerNotInitialized
+#. Programmer's name for it: SBigIntegerNotInitialized
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:36
+#: libraries/cryptolib4pascal/ClpECPrivateKeyParameters.pas:32
+msgid "BigInteger Not Initialized \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SQInfinity
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:38
+msgid "Point at Infinity \"Q\""
+msgstr ""
+
+#. Programmer's name for it: SQPointNotOnCurve
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:39
+msgid "Point Not on Curve \"Q\""
+msgstr ""
+
+#. Programmer's name for it: SScalarInvalidRange
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:40
+msgid "Scalar is not in the Interval [1, n - 1]"
+msgstr ""
+
+#. Programmer's name for it: SECPublicKeyNotFound
+#. Programmer's name for it: SECPublicKeyNotFound
+#. Programmer's name for it: SECPublicKeyNotFound
+#: libraries/cryptolib4pascal/ClpECDsaSigner.pas:47
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:47
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:45
+msgid "EC Public Key Required for Verification"
+msgstr ""
+
+#. Programmer's name for it: SECPrivateKeyNotFound
+#. Programmer's name for it: SECPrivateKeyNotFound
+#. Programmer's name for it: SECPrivateKeyNotFound
+#: libraries/cryptolib4pascal/ClpECDsaSigner.pas:48
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:48
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:46
+msgid "EC Private Key Required for Signing"
+msgstr ""
+
+#. Programmer's name for it: SSenderPublicKeyInvalid
+#: libraries/cryptolib4pascal/ClpECIESPublicKeyParser.pas:35
+msgid "Sender's Public Key Invalid."
+msgstr ""
+
+#. Programmer's name for it: SSenderPublicKeyInvalid
+#: libraries/cryptolib4pascal/ClpECIESPublicKeyParser.pas:37
+msgid "Sender's Public Key has Invalid Point Encoding \"%x\""
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNil
+#. Programmer's name for it: SAlgorithmNil
+#: libraries/cryptolib4pascal/ClpECKeyPairGenerator.pas:56
+#: libraries/cryptolib4pascal/ClpECKeyParameters.pas:39
+msgid "Algorithm Cannot be Empty"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeySize
+#: libraries/cryptolib4pascal/ClpECKeyPairGenerator.pas:57
+msgid "Unknown Key Size \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SParameterNil
+#: libraries/cryptolib4pascal/ClpECKeyParameters.pas:40
+msgid "Parameter Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedAlgorithm
+#: libraries/cryptolib4pascal/ClpECKeyParameters.pas:41
+msgid "Unrecognised Algorithm: \" %s, \"Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedForSigning
+#. Programmer's name for it: SNotInitializedForSigning
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:49
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:47
+msgid "Not Initialised For Signing"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedForVerifying
+#. Programmer's name for it: SNotInitializedForVerifying
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:50
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:48
+msgid "Not Initialised For Verifying"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedForVerifying
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:52
+msgid "Not Initialised For Verifying/Recovery"
+msgstr ""
+
+#. Programmer's name for it: SInputTooLargeForECNRKey
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:53
+msgid "Input Too Large For ECNR Key."
+msgstr ""
+
+#. Programmer's name for it: SSignatureGenerationError
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:49
+msgid "An Error Occurred During Signature Generation"
+msgstr ""
+
+#. Programmer's name for it: SSignatureGenerationError
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:51
+msgid ""
+"Only FP (Prime Field) Curves are Allowed for This Schnorr Implementation"
+msgstr ""
+
+#. Programmer's name for it: SInvalidCtx
+#: libraries/cryptolib4pascal/ClpEd25519.pas:40
+msgid "ctx"
+msgstr ""
+
+#. Programmer's name for it: SDigestError
+#: libraries/cryptolib4pascal/ClpEd25519.pas:41
+msgid "Digest Produced Insufficient Data"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPrivateKey
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:38
+msgid "EOF encountered in middle of Ed25519Blake2B private key"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedAlgorithm
+#. Programmer's name for it: SUnsupportedAlgorithm
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:39
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:39
+msgid "Unsupported Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SCtxNotNil
+#. Programmer's name for it: SCtxNotNil
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:40
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:40
+msgid "Ctx must be Nil for Ed25519 Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SMsgLen
+#. Programmer's name for it: SMsgLen
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:41
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:41
+msgid "MsgLen must be Equal to \"PreHashSize\" for Ed25519ph Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPublicKey
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPublicKeyParameters.pas:34
+msgid "EOF encountered in middle of Ed25519Blake2B public key"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BSigner.pas:37
+msgid "Ed25519Blake2BSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BSigner.pas:39
+msgid "Ed25519Blake2BSigner not Initialised for Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxBlake2BSigner.pas:37
+msgid "Ed25519CtxBlake2BSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxBlake2BSigner.pas:39
+msgid "Ed25519CtxBlake2BSigner not Initialised for Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxSigner.pas:37
+msgid "Ed25519CtxSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxSigner.pas:39
+msgid "Ed25519CtxSigner not Initialised for Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhBlake2BSigner.pas:37
+msgid "Ed25519PhBlake2BSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhBlake2BSigner.pas:39
+msgid "Ed25519PhBlake2BSigner not Initialised for Verification"
+msgstr ""
+
+#. Programmer's name for it: SPreHashDigestFailed
+#. Programmer's name for it: SPreHashDigestFailed
+#: libraries/cryptolib4pascal/ClpEd25519PhBlake2BSigner.pas:40
+#: libraries/cryptolib4pascal/ClpEd25519PhSigner.pas:40
+msgid "PreHash Digest Failed"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhSigner.pas:37
+msgid "Ed25519PhSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhSigner.pas:39
+msgid "Ed25519PhSigner not Initialised for Verification"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPrivateKey
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:38
+msgid "EOF encountered in middle of Ed25519 private key"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPublicKey
+#: libraries/cryptolib4pascal/ClpEd25519PublicKeyParameters.pas:34
+msgid "EOF encountered in middle of Ed25519 public key"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Signer.pas:37
+msgid "Ed25519Signer not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Signer.pas:39
+msgid "Ed25519Signer not Initialised for Verification"
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacteristic
+#: libraries/cryptolib4pascal/ClpFiniteFields.pas:35
+msgid "Must be >= 2 , \" characteristic \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacteristic
+#: libraries/cryptolib4pascal/ClpFiniteFields.pas:37
+msgid ""
+"Irreducible polynomials in GF(2) must have constant term, \"exponents\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacteristic
+#: libraries/cryptolib4pascal/ClpFiniteFields.pas:39
+msgid "Polynomial Exponents must be montonically increasing\", \"exponents\""
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:52
+msgid "KeyGenerator \"%s\" not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:54
+msgid "KeyGenerator \"%s\" ( \"%s\" ) not Supported."
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:56
+msgid "KeyPairGenerator \"%s\" not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:58
+msgid "KeyPairGenerator \"%s\" ( \"%s\" ) not Supported."
+msgstr ""
+
+#. Programmer's name for it: SSizeTooBigHKDF
+#: libraries/cryptolib4pascal/ClpHkdfBytesGenerator.pas:39
+msgid "HKDF Cannot Generate More Than 255 Blocks of HashLen Size"
+msgstr ""
+
+#. Programmer's name for it: SSizeTooBigHKDF2
+#: libraries/cryptolib4pascal/ClpHkdfBytesGenerator.pas:40
+msgid "HKDF May Only Be Used For 255 * HashLen Bytes of Output"
+msgstr ""
+
+#. Programmer's name for it: SSizeTooBigHKDF2
+#: libraries/cryptolib4pascal/ClpHkdfBytesGenerator.pas:42
+msgid "HKDF Parameters Required For \"HkdfBytesGenerator\", \"parameters\""
+msgstr ""
+
+#. Programmer's name for it: SIKMNil
+#: libraries/cryptolib4pascal/ClpHkdfParameters.pas:30
+msgid "\"ikm\" is Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedOperation
+#. Programmer's name for it: SUnSupportedOperation
+#: libraries/cryptolib4pascal/ClpHMacDsaKCalculator.pas:42
+#: libraries/cryptolib4pascal/ClpRandomDsaKCalculator.pas:34
+msgid "Operation not Supported"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:54
+msgid "Must be Passed Recipient's Public EC Key for Encryption"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:56
+msgid "Must be Passed Recipient's Private EC Key for Decryption"
+msgstr ""
+
+#. Programmer's name for it: SIAlgorithmParameterSpecNil
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:57
+msgid "Parameter Spec Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnableToProcessBlock
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:58
+msgid "Unable to Process Block. \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SIESParameterSpecError
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:59
+msgid "Must be Passed IES Parameter Spec"
+msgstr ""
+
+#. Programmer's name for it: SNonceInvalidLength
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:60
+msgid "Nonce in IES Parameters Needs to be \"%s\" Bytes Long"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESEngine.pas:53
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:45
+msgid "Unable to Recover Ephemeral Public Key: \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESEngine.pas:55
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:47
+msgid "Length of Input Must be Greater than the MAC and V Combined"
+msgstr ""
+
+#. Programmer's name for it: SInvalidMAC
+#. Programmer's name for it: SInvalidMAC
+#: libraries/cryptolib4pascal/ClpIESEngine.pas:56
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:48
+msgid "Invalid MAC"
+msgstr ""
+
+#. Programmer's name for it: SRandomNil
+#: libraries/cryptolib4pascal/ClpKeyGenerationParameters.pas:30
+msgid "Random Class Instance Can't Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SInvalidStrength
+#: libraries/cryptolib4pascal/ClpKeyGenerationParameters.pas:31
+msgid "Strength Must Be Greater Than Zero But Was Given %d"
+msgstr ""
+
+#. Programmer's name for it: SKeyNil
+#: libraries/cryptolib4pascal/ClpKeyParameter.pas:31
+msgid "Key Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyOffSet
+#: libraries/cryptolib4pascal/ClpKeyParameter.pas:32
+msgid "Invalid Key OffSet"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/cryptolib4pascal/ClpKeyParameter.pas:33
+msgid "Invalid Key Length"
+msgstr ""
+
+#. Programmer's name for it: SInvalidF2MFieldValue
+#: libraries/cryptolib4pascal/ClpLongArray.pas:34
+msgid "Invalid F2M Field value, \"bigInt\""
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedMac
+#: libraries/cryptolib4pascal/ClpMacUtilities.pas:40
+msgid "Mac \"%s\" not recognised."
+msgstr ""
+
+#. Programmer's name for it: SCannotBeZero
+#: libraries/cryptolib4pascal/ClpMod.pas:35
+msgid "cannot be 0, \"x\""
+msgstr ""
+
+#. Programmer's name for it: SCurveUnknownGroupOrder
+#: libraries/cryptolib4pascal/ClpMultipliers.pas:47
+msgid "Need Curve With Known Group Order, \"curve\""
+msgstr ""
+
+#. Programmer's name for it: SInCompatiblePoint
+#: libraries/cryptolib4pascal/ClpMultipliers.pas:48
+msgid "Only AbstractF2mPoint can be used in WTauNafMultiplier"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:72
+msgid ""
+"An Error Occured while generating random data using MS Windows Cryptography "
+"API."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:76
+msgid ""
+"An Error Occured while generating random data using SecRandomCopyBytes API."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:80
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:84
+msgid "An Error Occured while generating random data using getRandom API"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:88
+msgid ""
+"An Error Occured while generating random data using arc4random_buf API."
+msgstr ""
+
+#. Programmer's name for it: SIncompleteLastBlockInDecryption
+#: libraries/cryptolib4pascal/ClpPaddedBufferedBlockCipher.pas:41
+msgid "Last Block Incomplete in Decryption"
+msgstr ""
+
+#. Programmer's name for it: SCorruptedPadBlock
+#: libraries/cryptolib4pascal/ClpPaddingModes.pas:32
+msgid "Pad Block Corrupted"
+msgstr ""
+
+#. Programmer's name for it: SIVNil
+#: libraries/cryptolib4pascal/ClpParametersWithIV.pas:31
+msgid "IV Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SParameters
+#: libraries/cryptolib4pascal/ClpParametersWithRandom.pas:32
+msgid "Parameters"
+msgstr ""
+
+#. Programmer's name for it: SRandom
+#: libraries/cryptolib4pascal/ClpParametersWithRandom.pas:33
+msgid "Random"
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpParameterUtilities.pas:38
+msgid "Algorithm \"%s\" not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SKDFParameterNotFound
+#: libraries/cryptolib4pascal/ClpPascalCoinECIESKdfBytesGenerator.pas:37
+msgid ""
+"Specified Hash Cannot Produce Sufficient Data for the Specified Operation."
+msgstr ""
+
+#. Programmer's name for it: SCipherCannotbeNilInThisMode
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:49
+msgid "Cipher Cannot be Nil in This Mode."
+msgstr ""
+
+#. Programmer's name for it: SBufferNil
+#: libraries/cryptolib4pascal/ClpRandom.pas:30
+msgid "Buffer Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SMaxValueNegative
+#: libraries/cryptolib4pascal/ClpRandom.pas:31
+msgid "maxValue Must be Positive"
+msgstr ""
+
+#. Programmer's name for it: SInvalidMinValue
+#: libraries/cryptolib4pascal/ClpRandom.pas:32
+msgid "minValue Cannot be Greater Than maxValue"
+msgstr ""
+
+#. Programmer's name for it: SUnknownAlgorithm
+#: libraries/cryptolib4pascal/ClpRandomNumberGenerator.pas:31
+msgid "Unknown Random Generation Algorithm Requested"
+msgstr ""
+
+#. Programmer's name for it: SUnknownAlgorithm
+#: libraries/cryptolib4pascal/ClpRandomNumberGenerator.pas:33
+msgid "Random Number Generator Output Buffer Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedBlock
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:37
+msgid "Unknown Blocksize to Rijndael"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:38
+msgid "Key Length not 128/160/192/224/256 bits."
+msgstr ""
+
+#. Programmer's name for it: SRijndaelEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:39
+msgid "Rijndael Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SRijndaelEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:41
+msgid "Invalid Parameter Passed to Rijndael Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidRound
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:38
+msgid "\"rounds\" Must be a Positive, Even Number"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeySize
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:39
+msgid "%s Requires 128 bit or 256 bit key"
+msgstr ""
+
+#. Programmer's name for it: SMaxByteExceeded
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:40
+msgid "2^70 Byte Limit per IV; Change IV"
+msgstr ""
+
+#. Programmer's name for it: SMaxByteExceededTwo
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:41
+msgid "2^70 byte limit per IV would be exceeded; Change IV"
+msgstr ""
+
+#. Programmer's name for it: SEngineNotInitialized
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:42
+msgid "%s not Initialized"
+msgstr ""
+
+#. Programmer's name for it: SRoundsMustbeEven
+#. Programmer's name for it: SRoundsMustBeEven
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:45
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:37
+msgid "Number of Rounds Must be Even"
+msgstr ""
+
+#. Programmer's name for it: SIVRequired
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:47
+msgid "%s Init Requires an IV, \"parameters\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidIV
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:48
+msgid "%s Requires exactly %d bytes of IV"
+msgstr ""
+
+#. Programmer's name for it: SInvalidIV
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:50
+msgid "%s Init Parameters must Contain a KeyParameter (or null for Re-Init)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidIV
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:52
+msgid "KeyParameter can not be null for First Initialisation"
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameters
+#: libraries/cryptolib4pascal/ClpScalarSplitParameters.pas:30
+msgid "\"%s\" must consist of exactly 2 (initialized) values"
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:43
+msgid "SchnorrDigestSigner not Initialized for Signature Generation."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:45
+msgid "SchnorrDigestSigner not Initialized for Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP256K1Custom.pas:40
+msgid "Value Invalid for SecP256K1FieldElement \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP256R1Custom.pas:40
+msgid "Value Invalid for SecP256R1FieldElement \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP384R1Custom.pas:40
+msgid "Value Invalid for SecP384R1FieldElement \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP521R1Custom.pas:40
+msgid "Value Invalid for SecP521R1FieldElement \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecT283Custom.pas:41
+msgid "Value Invalid for SecT283FieldElement \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SUnRecognisedPRNGAlgorithm
+#: libraries/cryptolib4pascal/ClpSecureRandom.pas:43
+msgid "Unrecognised PRNG Algorithm: %s \"algorithm\""
+msgstr ""
+
+#. Programmer's name for it: SCannotBeNegative
+#: libraries/cryptolib4pascal/ClpSecureRandom.pas:44
+msgid "Cannot be Negative  \"maxValue\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidMaxValue
+#: libraries/cryptolib4pascal/ClpSecureRandom.pas:45
+msgid "maxValue Cannot be Less Than minValue"
+msgstr ""
+
+#. Programmer's name for it: SMalformedSignature
+#: libraries/cryptolib4pascal/ClpSignersEncodings.pas:35
+msgid "Malformed signature, \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SValueOutOfRange
+#: libraries/cryptolib4pascal/ClpSignersEncodings.pas:36
+msgid "Value out of range, \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidEncodingLength
+#: libraries/cryptolib4pascal/ClpSignersEncodings.pas:37
+msgid "Encoding has incorrect length, \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedAlgorithm
+#: libraries/cryptolib4pascal/ClpSignerUtilities.pas:71
+msgid "Signer \" %s \" not recognised."
+msgstr ""
+
+#. Programmer's name for it: SInvalidScale
+#. Programmer's name for it: SNegativeScale
+#: libraries/cryptolib4pascal/ClpSimpleBigDecimal.pas:29
+#: libraries/cryptolib4pascal/ClpSimpleBigDecimal.pas:32
+msgid "Scale may not be Negative"
+msgstr ""
+
+#. Programmer's name for it: SInvalidScale
+#: libraries/cryptolib4pascal/ClpSimpleBigDecimal.pas:31
+msgid "Only SimpleBigDecimal of Same Scale Allowed in Arithmetic Operations"
+msgstr ""
+
+#. Programmer's name for it: SSpeckEngineNotInitialised
+#. Programmer's name for it: SSpeckLegacyEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:35
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:35
+msgid "%s Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:38
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:38
+msgid "Invalid Argument Encountered."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:39
+msgid "Invalid Parameter Passed to Speck Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:41
+msgid "Speck32 requires a key of 64 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:43
+msgid "Speck48 requires a key of 72 or 96 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:45
+msgid "Speck64 requires a key of 96 or 128 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:47
+msgid "Speck96 requires a key of 96 or 144 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:49
+msgid ""
+"Speck128 requires a key of 128, 192 or 256 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:40
+msgid "Invalid Parameter Passed to SpeckLegacy Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:42
+msgid "Speck32Legacy requires a key of 64 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:44
+msgid ""
+"Speck48Legacy requires a key of 72 or 96 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:46
+msgid ""
+"Speck64Legacy requires a key of 96 or 128 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:48
+msgid ""
+"Speck96Legacy requires a key of 96 or 144 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:50
+msgid ""
+"Speck128Legacy requires a key of 128, 192 or 256 bits but input was \"%d\" "
+"bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidMU
+#: libraries/cryptolib4pascal/ClpTnaf.pas:34
+msgid "mu must be 1 or -1"
+msgstr ""
+
+#. Programmer's name for it: SDifferentScales
+#: libraries/cryptolib4pascal/ClpTnaf.pas:35
+msgid "lambda0 and lambda1 do not have same scale"
+msgstr ""
+
+#. Programmer's name for it: SNoKoblitzCurve
+#: libraries/cryptolib4pascal/ClpTnaf.pas:36
+msgid "No Koblitz curve (ABC), TNAF multiplication not possible"
+msgstr ""
+
+#. Programmer's name for it: SNotKoblitzCurve
+#: libraries/cryptolib4pascal/ClpTnaf.pas:37
+msgid "si is defined for Koblitz curves only"
+msgstr ""
+
+#. Programmer's name for it: SInvalidCoFactor
+#: libraries/cryptolib4pascal/ClpTnaf.pas:38
+msgid "h (Cofactor) must be 2 or 4"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpX25519Agreement.pas:36
+msgid "The Init Parameter does not Contain the Private Key"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPrivateKey
+#: libraries/cryptolib4pascal/ClpX25519PrivateKeyParameters.pas:37
+msgid "EOF encountered in middle of X25519 private key"
+msgstr ""
+
+#. Programmer's name for it: SAgreementCalculationFailed
+#: libraries/cryptolib4pascal/ClpX25519PrivateKeyParameters.pas:38
+msgid "X25519 Agreement Failed"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPublicKey
+#: libraries/cryptolib4pascal/ClpX25519PublicKeyParameters.pas:34
+msgid "EOF encountered in middle of X25519 public key"
+msgstr ""
+
+#. Programmer's name for it: SInconsistentKValues
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:36
+msgid "Inconsistent K Values"
+msgstr ""
+
+#. Programmer's name for it: SCurveNil
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:37
+msgid "Curve"
+msgstr ""
+
+#. Programmer's name for it: SNotImplementedECCurve
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:38
+msgid "This Type of ECCurve is not Implemented"
+msgstr ""
+
+#. Programmer's name for it: SFieldIDNil
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:39
+msgid "FieldID"
+msgstr ""
+
+#. Programmer's name for it: SSeqNil
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:40
+msgid "Seq"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCurveOne
+#: libraries/cryptolib4pascal/ClpX9ECParameters.pas:38
+msgid "Only trinomial and pentomial curves are supported"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCurveTwo
+#: libraries/cryptolib4pascal/ClpX9ECParameters.pas:39
+msgid "\"curve\" is of an unsupported type"
+msgstr ""
+
+#. Programmer's name for it: SBadVersion
+#: libraries/cryptolib4pascal/ClpX9ECParameters.pas:40
+msgid "Bad Version in X9ECParameters"
+msgstr ""
+
+#. Programmer's name for it: SNullKeyReInit
+#: libraries/cryptolib4pascal/ClpXSalsa20Engine.pas:33
+msgid "%s Doesn't Support Re-Init with Null Key"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeySize
+#: libraries/cryptolib4pascal/ClpXSalsa20Engine.pas:34
+msgid "%s Requires a 256 bit Key"
+msgstr ""
+
+#. Programmer's name for it: SArgumentOutOfRange
+#: libraries/generics.collections/generics.strings.pas:26
+msgid "Argument out of range"
+msgstr ""
+
+#. Programmer's name for it: SArgumentNilNode
+#: libraries/generics.collections/generics.strings.pas:27
+msgid "Node is nil"
+msgstr ""
+
+#. Programmer's name for it: SDuplicatesNotAllowed
+#: libraries/generics.collections/generics.strings.pas:28
+msgid "Duplicates not allowed in dictionary"
+msgstr ""
+
+#. Programmer's name for it: SCollectionInconsistency
+#: libraries/generics.collections/generics.strings.pas:29
+msgid "Collection inconsistency"
+msgstr ""
+
+#. Programmer's name for it: SCollectionDuplicate
+#: libraries/generics.collections/generics.strings.pas:30
+msgid "Collection does not allow duplicates"
+msgstr ""
+
+#. Programmer's name for it: SDictionaryKeyDoesNotExist
+#: libraries/generics.collections/generics.strings.pas:31
+msgid "Dictionary key does not exist"
+msgstr ""
+
+#. Programmer's name for it: SItemNotFound
+#: libraries/generics.collections/generics.strings.pas:32
+msgid "Item not found"
+msgstr ""
+
+#. Programmer's name for it: SInvalidConfigLength
+#. Programmer's name for it: SInvalidConfigLength
+#: libraries/hashlib4pascal/HlpBlake2B.pas:22
+#: libraries/hashlib4pascal/HlpBlake2S.pas:22
+msgid "Config Length Must Be 8 Words"
+msgstr ""
+
+#. Programmer's name for it: SConfigNil
+#. Programmer's name for it: SConfigNil
+#: libraries/hashlib4pascal/HlpBlake2B.pas:23
+#: libraries/hashlib4pascal/HlpBlake2S.pas:23
+msgid "Config Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SConfigNil
+#. Programmer's name for it: SConfigNil
+#: libraries/hashlib4pascal/HlpBlake2B.pas:25
+#: libraries/hashlib4pascal/HlpBlake2S.pas:25
+msgid "XOFSize in Bits must be Multiples of 8 and be Between %u and %u Bytes."
+msgstr ""
+
+#. Programmer's name for it: SOutputLengthInvalid
+#. Programmer's name for it: SOutputLengthInvalid
+#. Programmer's name for it: SOutputLengthInvalid
+#: libraries/hashlib4pascal/HlpBlake2B.pas:26
+#: libraries/hashlib4pascal/HlpBlake2S.pas:26
+#: libraries/hashlib4pascal/HlpSHA3.pas:28
+msgid "Output Length is above the Digest Length"
+msgstr ""
+
+#. Programmer's name for it: SMaximumOutputLengthExceeded
+#: libraries/hashlib4pascal/HlpBlake2B.pas:28
+msgid "\"Maximum Length is 2^32 blocks of 64 bytes"
+msgstr ""
+
+#. Programmer's name for it: SWritetoXofAfterReadError
+#. Programmer's name for it: SWritetoXofAfterReadError
+#. Programmer's name for it: SWritetoXofAfterReadError
+#: libraries/hashlib4pascal/HlpBlake2B.pas:29
+#: libraries/hashlib4pascal/HlpBlake2S.pas:29
+#: libraries/hashlib4pascal/HlpSHA3.pas:30
+msgid "\"%s\" Write to Xof after Read not Allowed"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:16
+msgid ""
+"BLAKE2B HashSize must be restricted to one of the following [1 .. 64], \"%d"
+"\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:17
+msgid "\"Key\" Length Must Not Be Greater Than 64, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:19
+msgid "\"Personalisation\" Length Must Be Equal To 16, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:20
+msgid "\"Salt\" Length Must Be Equal To 16, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:23
+msgid "FanOut Value Should be Between [0 .. 255] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:25
+msgid "MaxDepth Value Should be Between [1 .. 255] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:27
+msgid "NodeDepth Value Should be Between [0 .. 255] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:29
+msgid "InnerHashSize Value Should be Between [0 .. 64] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:31
+msgid "NodeOffset Value Should be Between [0 .. (2^64-1)] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:34
+msgid "Tree Inner Hash Size Must Not Be Greater Than 64, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SMaximumOutputLengthExceeded
+#: libraries/hashlib4pascal/HlpBlake2S.pas:28
+msgid "\"Maximum Length is 2^32 blocks of 32 bytes"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:16
+msgid ""
+"BLAKE2S HashSize must be restricted to one of the following [1 .. 32], \"%d"
+"\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:17
+msgid "\"Key\" Length Must Not Be Greater Than 32, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:19
+msgid "\"Personalisation\" Length Must Be Equal To 8, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:20
+msgid "\"Salt\" Length Must Be Equal To 8, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:23
+msgid "FanOut Value Should be Between [0 .. 255] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:25
+msgid "MaxDepth Value Should be Between [1 .. 255] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:27
+msgid "NodeDepth Value Should be Between [0 .. 255] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:29
+msgid "InnerHashSize Value Should be Between [0 .. 32] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:31
+msgid "NodeOffset Value Should be Between [0 .. (2^48-1)] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:34
+msgid "Tree Inner Hash Size Must Not Be Greater Than 32, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCRCType
+#: libraries/hashlib4pascal/HlpCRC.pas:22
+msgid "UnSupported CRC Type: \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SWidthOutOfRange
+#: libraries/hashlib4pascal/HlpCRC.pas:23
+msgid "Width Must be Between 3 and 64. \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SIndexOutOfRange
+#: libraries/hashlib4pascal/HlpHash.pas:16
+msgid "Current Index Is Out Of Range"
+msgstr ""
+
+#. Programmer's name for it: SFileNotExist
+#: libraries/hashlib4pascal/HlpHash.pas:19
+msgid "Specified File Not Found"
+msgstr ""
+
+#. Programmer's name for it: SCloneNotYetImplemented
+#: libraries/hashlib4pascal/HlpHash.pas:20
+msgid "Clone Not Yet Implemented For \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SHashBufferMessage
+#: libraries/hashlib4pascal/HlpHashBuffer.pas:13
+msgid "HashBuffer, Length: %d, Position: %d, IsEmpty: %s"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:27
+msgid "Current Data Structure cannot be Represented as an \"Int32\" Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:29
+msgid "Current Data Structure cannot be Represented as an \"UInt8\" Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:31
+msgid "Current Data Structure cannot be Represented as an \"UInt16\" Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:33
+msgid "Current Data Structure cannot be Represented as an \"UInt32\" Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:35
+msgid "Current Data Structure cannot be Represented as an \"UInt64\" Type."
+msgstr ""
+
+#. Programmer's name for it: SInvalidHavalRound
+#: libraries/hashlib4pascal/HlpHaval.pas:25
+msgid "Haval Round Must be 3, 4 or 5"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHavalRound
+#: libraries/hashlib4pascal/HlpHaval.pas:27
+msgid ""
+"Haval HashSize Must be Either 128 bit(16 byte), 160 bit(20 byte), 192 "
+"bit(24 byte), 224 bit(28 byte) or 256 bit(32 byte)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpMurmur2.pas:24
+#: libraries/hashlib4pascal/HlpMurmur2_64.pas:21
+#: libraries/hashlib4pascal/HlpMurmurHash3_x64_128.pas:22
+#: libraries/hashlib4pascal/HlpMurmurHash3_x86_128.pas:22
+#: libraries/hashlib4pascal/HlpMurmurHash3_x86_32.pas:22
+#: libraries/hashlib4pascal/HlpSipHash.pas:23
+#: libraries/hashlib4pascal/HlpXXHash32.pas:19
+#: libraries/hashlib4pascal/HlpXXHash64.pas:19
+msgid "KeyLength Must Be Equal to %d"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpNullable.pas:16
+msgid "Cannot assign non-null pointer to nullable type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpNullable.pas:18
+msgid "Unsupported Type: Only supports Integers, Int64, Floats and Strings."
+msgstr ""
+
+#. Programmer's name for it: SGetNullValue
+#: libraries/hashlib4pascal/HlpNullable.pas:19
+msgid "Attempted to get a null value."
+msgstr ""
+
+#. Programmer's name for it: SHashSizeNotImplemented
+#: libraries/hashlib4pascal/HlpNullDigest.pas:18
+msgid "HashSize Not Implemented For \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeNotImplemented
+#: libraries/hashlib4pascal/HlpNullDigest.pas:19
+msgid "BlockSize Not Implemented For \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidOutputByteCount
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:32
+msgid "\"(AByteCount)\" Argument Less Than \"%d\"."
+msgstr ""
+
+#. Programmer's name for it: SBlockInstanceNotInitialized
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:33
+msgid "Block Instance not Initialized"
+msgstr ""
+
+#. Programmer's name for it: SInputLengthInvalid
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:34
+msgid "Input Length \"%d\" is not Equal to BlockSize \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SLanesTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:35
+msgid "Lanes Must be Greater Than \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SLanesTooBig
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:36
+msgid "Lanes Must be Less Than \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SMemoryTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:37
+msgid "Memory is Less Than: \"%d\", Expected \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SIterationsTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:38
+msgid "Iterations is Less Than: \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SIterationsTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:40
+msgid "Argon2 Parameter Builder Not Initialized"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:31
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:18
+msgid "\"(AByteCount)\" Argument must be a value greater than zero."
+msgstr ""
+
+#. Programmer's name for it: SInvalidCost
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:32
+msgid "Cost parameter must be > 1 and a power of 2."
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeAndCostIncompatible
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:33
+msgid "Cost parameter must be > 1 and < 65536."
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:34
+msgid "Block size must be >= 1."
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:36
+msgid ""
+"Parallelism parameter must be >= 1 and <= %d (based on block size of %d)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidIndex
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:19
+msgid "Invalid start or end index in the internal buffer"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedIHashInstance
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:20
+msgid "\"IHash\" instance is uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SIterationtooSmall
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:21
+msgid "Iteration must be greater than zero."
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashMode
+#: libraries/hashlib4pascal/HlpSHA3.pas:25
+msgid "Only \"[%s]\" HashModes are Supported"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashMode
+#: libraries/hashlib4pascal/HlpSHA3.pas:27
+msgid "XOFSize in Bits must be Multiples of 8 and be Greater than Zero Bytes"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpSnefru.pas:24
+msgid "Snefru Security Level Cannot be Less than 1. Standard Level is 8"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpSnefru.pas:26
+msgid "Snefru HashSize Must be Either 128 bit(16 byte) or 256 bit(32 byte)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashSize
+#: libraries/hashlib4pascal/HlpSnefru.pas:27
+msgid "Specified HashSize Is Invalid or UnSupported \"%d\""
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpTiger.pas:22
+msgid ""
+"Tiger HashSize Must be Either 128 bit(16 byte), 160 bit(20 byte) or 192 "
+"bit(24 byte)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashRound
+#. Programmer's name for it: SInvalidHashRound
+#: libraries/hashlib4pascal/HlpTiger.pas:23
+#: libraries/hashlib4pascal/HlpTiger2.pas:23
+msgid "Specified HashRound Is Invalid or UnSupported \"%d\""
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpTiger2.pas:22
+msgid ""
+"Tiger2 HashSize Must be Either 128 bit(16 byte), 160 bit(20 byte) or 192 "
+"bit(24 byte)"
+msgstr ""
+
+#. Programmer's name for it: sInvalidIPAddress
+#: libraries/mormot-min/SynCommons.pas:18356
+msgid "\"%s\" is an invalid IP v4 address"
+msgstr ""
+
+#. Programmer's name for it: sInvalidEmailAddress
+#: libraries/mormot-min/SynCommons.pas:18357
+msgid "\"%s\" is an invalid email address"
+msgstr ""
+
+#. Programmer's name for it: sInvalidPattern
+#: libraries/mormot-min/SynCommons.pas:18358
+msgid "\"%s\" does not match the expected pattern"
+msgstr ""
+
+#. Programmer's name for it: sCharacter01n
+#: libraries/mormot-min/SynCommons.pas:18359
+msgid "character,character,characters"
+msgstr ""
+
+#. Programmer's name for it: sInvalidTextLengthMin
+#: libraries/mormot-min/SynCommons.pas:18360
+msgid "Expect at least %d %s"
+msgstr ""
+
+#. Programmer's name for it: sInvalidTextLengthMax
+#: libraries/mormot-min/SynCommons.pas:18361
+msgid "Expect up to %d %s"
+msgstr ""
+
+#. Programmer's name for it: sInvalidTextChar
+#: libraries/mormot-min/SynCommons.pas:18364
+msgid ""
+"Expect at least %d %s %s,Expect up to %d %s %s,alphabetical,digital,"
+"punctuation,lowercase,uppercase,space,Too much spaces on the left,Too much "
+"spaces on the right"
+msgstr ""
+
+#. Programmer's name for it: sValidationFailed
+#: libraries/mormot-min/SynCommons.pas:18365
+msgid "\"%s\" rule failed"
+msgstr ""
+
+#. Programmer's name for it: sValidationFieldVoid
+#: libraries/mormot-min/SynCommons.pas:18366
+msgid "An unique key field must not be void"
+msgstr ""
+
+#. Programmer's name for it: sValidationFieldDuplicate
+#: libraries/mormot-min/SynCommons.pas:18367
+msgid "Value already used for this unique key field"
+msgstr ""
+
+#. Programmer's name for it: Sneed_dict
+#: libraries/paszlib/paszlib_zbase.pas:409
+msgid "need dictionary"
+msgstr ""
+
+#. Programmer's name for it: Sstream_end
+#: libraries/paszlib/paszlib_zbase.pas:410
+msgid "stream end"
+msgstr ""
+
+#. Programmer's name for it: Sfile_error
+#: libraries/paszlib/paszlib_zbase.pas:411
+msgid "file error"
+msgstr ""
+
+#. Programmer's name for it: Sstream_error
+#: libraries/paszlib/paszlib_zbase.pas:412
+msgid "stream error"
+msgstr ""
+
+#. Programmer's name for it: Sdata_error
+#: libraries/paszlib/paszlib_zbase.pas:413
+msgid "data error"
+msgstr ""
+
+#. Programmer's name for it: Smem_error
+#: libraries/paszlib/paszlib_zbase.pas:414
+msgid "insufficient memory"
+msgstr ""
+
+#. Programmer's name for it: Sbuf_error
+#: libraries/paszlib/paszlib_zbase.pas:415
+msgid "buffer error"
+msgstr ""
+
+#. Programmer's name for it: Sversion_error
+#: libraries/paszlib/paszlib_zbase.pas:416
+msgid "incompatible version"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHexCharacter
+#: libraries/simplebaselib4pascal/SbpBase16.pas:12
+msgid "Invalid hex character: \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidTextLength
+#: libraries/simplebaselib4pascal/SbpBase16.pas:13
+msgid "Text cannot be odd length \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#. Programmer's name for it: SAlphabetNil
+#. Programmer's name for it: SAlphabetNil
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpBase32.pas:16
+#: libraries/simplebaselib4pascal/SbpBase58.pas:16
+#: libraries/simplebaselib4pascal/SbpBase64.pas:16
+#: libraries/simplebaselib4pascal/SbpBase85.pas:16
+msgid "Alphabet Instance cannot be Nil \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpBase85.pas:18
+msgid "Unexpected Shortcut Character In The Middle Of a Regular Block"
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:12
+msgid "\"%s\" Cannot Be Nil."
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:14
+msgid ""
+"Required Alphabet Length is \"%d\" but Provided Alphabet is \"%d\" "
+"Characters Long."
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacter
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:15
+msgid "Alphabet Contains Character \"%s (%d)\" Above \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidInput
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:16
+msgid "Invalid character value in input \"%s\""
+msgstr ""
+
+#. Programmer's name for it: sAColumnsCantBeNil
+#: libraries/sphere10/UCommon.Data.pas:246
+msgid "AColumns can't be nil!"
+msgstr ""
+
+#. Programmer's name for it: sTooManyValues
+#: libraries/sphere10/UCommon.Data.pas:247
+msgid "Too many values"
+msgstr ""
+
+#. Programmer's name for it: sInvalidUTF8String
+#: libraries/sphere10/UCommon.Data.pas:248
+msgid "Invalid UTF8 string"
+msgstr ""
+
+#. Programmer's name for it: sBadNumericExpression
+#: libraries/sphere10/UCommon.Data.pas:249
+msgid "Bad numeric expression"
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedNumberFormat
+#: libraries/sphere10/UCommon.Data.pas:250
+msgid "Unexpected number format"
+msgstr ""
+
+#. Programmer's name for it: sBadSyntaxForEscapeCharacter
+#: libraries/sphere10/UCommon.Data.pas:251
+msgid "Bad syntax for escape character \"\\\""
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedCharInExpression
+#: libraries/sphere10/UCommon.Data.pas:252
+msgid "Unexpected char in expression"
+msgstr ""
+
+#. Programmer's name for it: sInvaildExpression_CharDetectedAfterClosingBracket
+#: libraries/sphere10/UCommon.Data.pas:253
+msgid "Invaild expression (char detected after closing bracket)"
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedTokenFound
+#: libraries/sphere10/UCommon.Data.pas:254
+msgid "Unexpected token found : \"%s\""
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedStringLiteralInExpression
+#: libraries/sphere10/UCommon.Data.pas:255
+msgid "Unexpected string literal in expression"
+msgstr ""
+
+#. Programmer's name for it: sBadlyClosedBetweenExpression
+#: libraries/sphere10/UCommon.Data.pas:256
+msgid "Badly closed \"between\" expression"
+msgstr ""
+
+#. Programmer's name for it: sMissingNumberInExpression
+#: libraries/sphere10/UCommon.Data.pas:257
+msgid "Missing number in expression"
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedOccurrenceOf_Found
+#: libraries/sphere10/UCommon.Data.pas:258
+msgid "Unexpected occurrence of \"%s\" found"
+msgstr ""
+
+#. Programmer's name for it: sBadBetweenExpression_UnexpectedToken
+#: libraries/sphere10/UCommon.Data.pas:259
+msgid "Bad \"between\" expression. Unexpected \"%s\""
+msgstr ""
+
+#. Programmer's name for it: sExpressionError_NoValue
+#: libraries/sphere10/UCommon.Data.pas:260
+msgid "Expression error (no value)"
+msgstr ""
+
+#. Programmer's name for it: sNotImplemented
+#: libraries/sphere10/UCommon.pas:468
+msgid "Not implemented"
+msgstr ""
+
+#. Programmer's name for it: sInvalidParameter_OutOfBounds
+#: libraries/sphere10/UCommon.pas:469
+msgid "Invalid Parameter: %s out of bounds"
+msgstr ""
+
+#. Programmer's name for it: sLogDebug
+#: libraries/sphere10/UCommon.pas:470
+msgid "DEBUG"
+msgstr ""
+
+#. Programmer's name for it: sLogInfo
+#: libraries/sphere10/UCommon.pas:471
+msgid "INFO"
+msgstr ""
+
+#. Programmer's name for it: sLogWarn
+#: libraries/sphere10/UCommon.pas:472
+msgid "WARNING"
+msgstr ""
+
+#. Programmer's name for it: sLogError
+#: libraries/sphere10/UCommon.pas:473
+msgid "ERROR"
+msgstr ""
+
+#. Programmer's name for it: sTotal
+#: libraries/sphere10/UVisualGrid.pas:475
+msgid "Total: %d"
+msgstr ""
+
+#. Programmer's name for it: sStandardSearch
+#: libraries/sphere10/UVisualGrid.pas:476
+msgid "Standard Search"
+msgstr ""
+
+#. Programmer's name for it: sMultiColumnSearch
+#: libraries/sphere10/UVisualGrid.pas:477
+msgid "Multi-Column Search"
+msgstr ""
+
+#. Programmer's name for it: sPageSize
+#: libraries/sphere10/UVisualGrid.pas:478
+msgid "Page size:"
+msgstr ""
+
+#. Programmer's name for it: sSearchExpression
+#: libraries/sphere10/UVisualGrid.pas:479
+msgid "Search expression"
+msgstr ""
+
+#. Programmer's name for it: sDataLoading
+#: libraries/sphere10/UVisualGrid.pas:480
+msgid "DATA LOADING"
+msgstr ""
+
+#. Programmer's name for it: sExpression
+#: libraries/sphere10/UVisualGrid.pas:481
+msgid "Expression"
+msgstr ""
+
+#. Programmer's name for it: sImproperColumnIndex
+#: libraries/sphere10/UVisualGrid.pas:482
+msgid "Improper column index. Max expected is %d but %d found."
+msgstr ""

BIN
src/locale/nl/LC_MESSAGES/default.mo


+ 4642 - 0
src/locale/nl/LC_MESSAGES/default.po

@@ -0,0 +1,4642 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: 2020-03-28 20:30\n"
+"PO-Revision-Date: 2020-03-30 21:22+0200\n"
+"Last-Translator: Somebody <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.3\n"
+"Language-Team: <>\n"
+"Language: nl\n"
+
+#. FRMAbout..Caption
+#: gui-classic/UFRMAbout.dfm:7
+msgid "About..."
+msgstr "Over..."
+
+#. FRMAbout..Font.Name
+#. FRMAbout..Label1..Font.Name
+#. FRMAbout..lblBuild..Font.Name
+#. FRMAbout..lblProtocolVersion..Font.Name
+#. FRMAbout..Label3..Font.Name
+#. FRMAbout..Label4..Font.Name
+#. FRMAbout..Label5..Font.Name
+#. FRMAccountSelect..Font.Name
+#. FRMDiagnosticTool..Font.Name
+#. FRMHashLock..Font.Name
+#. FRMHashLock..lblError..Font.Name
+#. FRMHashLock..GroupBox2..meHashLockData..Font.Name
+#. FRMMemoText..Font.Name
+#. FRMMemoText..Memo..Font.Name
+#. FRMNewPrivateKeyType..Font.Name
+#. FRMNodesIp..Font.Name
+#. FRMOperation..Font.Name
+#. FRMOperation..lblAccountBalance..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblEncryptionErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..memoPayload..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblTransactionErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblChangeKeyErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewOwnerErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblListAccountErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsDelistAccount..lblDelistErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyAccountErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..Label2..Font.Name
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeInfoErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsGlobalError..lblGlobalErrors..Font.Name
+#. FRMOperation..PageControlLocked..tsGlobalError..bbPassword..Font.Name
+#. FRMOperation..memoAccounts..Font.Name
+#. FRMOperation..ebSenderAccount..Font.Name
+#. FRMOperationsExplorer..Font.Name
+#. FRMPascalCoinWalletConfig..Font.Name
+#. FRMPascalCoinWalletConfig..Label4..Font.Name
+#. FRMPascalCoinWalletConfig..Label7..Font.Name
+#. FRMPascalCoinWalletConfig..bbUpdatePassword..Font.Name
+#. FRMPayloadDecoder..Font.Name
+#. FRMPayloadDecoder..lblBlock..Font.Name
+#. FRMPayloadDecoder..lblDateTime..Font.Name
+#. FRMPayloadDecoder..lblOperationTxt..Font.Name
+#. FRMPayloadDecoder..lblAmount..Font.Name
+#. FRMPayloadDecoder..lblFee..Font.Name
+#. FRMPayloadDecoder..lblSender..Font.Name
+#. FRMPayloadDecoder..lblReceiver..Font.Name
+#. FRMPayloadDecoder..lblReceiverInfo..Font.Name
+#. FRMPayloadDecoder..PageControl..tsDecoded..lblDecodedMethod..Font.Name
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoDecoded..Font.Name
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoOriginalPayloadInHexa..Font.Name
+#. FRMPayloadDecoder..ebOphash..Font.Name
+#. FRMDiagnosticTool..Font.Name
+#. FRMRandomOperations..Font.Name
+#. FRMRandomOperations..pnlTop..lblTopCaption..Font.Name
+#. FRMRPCCalls..Font.Name
+#. FRMRPCCalls..pnlTop..lblTopCaption..Font.Name
+#. FRMSaleAccounts..Font.Name
+#. FRMSaleAccounts..lblAccountBalance..Font.Name
+#. FRMSaleAccounts..memoAccounts..Font.Name
+#. FRMSaleAccounts..ebSenderAccount..Font.Name
+#. FRMWallet..Font.Name
+#. FRMWallet..pnlTop..lblTimeAverageAux..Font.Name
+#. FRMWallet..pnlTop..Label16..Font.Name
+#. FRMWallet..pnlTop..lblBlocksFound..Font.Name
+#. FRMWallet..pnlTop..lblReceivedMessages..Font.Name
+#. FRMWallet..pnlTop..lblBuild..Font.Name
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsTop..Font.Name
+#. FRMWallet..PageControl..tsPendingOperations..pnlPendingOperations..Label10..Font.Name
+#. FRMWallet..PageControl..tsMessages..Label14..Font.Name
+#. FRMWallet..PageControl..tsMessages..memoMessages..Font.Name
+#. FRMWalletKeys..Font.Name
+#. FRMWalletKeys..lblKeysEncrypted..Font.Name
+#. FRMWalletKeys..memoPrivateKey..Font.Name
+#. FRMWalletKeys..bbUpdatePassword..Font.Name
+#. FRMDiagnosticTool..Font.Name
+#: gui-classic/UFRMAbout.dfm:14 gui-classic/UFRMAbout.dfm:130
+#: gui-classic/UFRMAbout.dfm:143 gui-classic/UFRMAbout.dfm:156
+#: gui-classic/UFRMAbout.dfm:176 gui-classic/UFRMAbout.dfm:190
+#: gui-classic/UFRMAbout.dfm:205 gui-classic/UFRMAccountSelect.dfm:12
+#: gui-classic/UFRMDiagnosticTool.dfm:11 gui-classic/UFRMHashLock.dfm:12
+#: gui-classic/UFRMHashLock.dfm:34 gui-classic/UFRMHashLock.dfm:117
+#: gui-classic/UFRMMemoText.dfm:12 gui-classic/UFRMMemoText.dfm:50
+#: gui-classic/UFRMNewPrivateKeyType.dfm:13 gui-classic/UFRMNodesIp.dfm:13
+#: gui-classic/UFRMOperation.dfm:13 gui-classic/UFRMOperation.dfm:40
+#: gui-classic/UFRMOperation.dfm:196 gui-classic/UFRMOperation.dfm:259
+#: gui-classic/UFRMOperation.dfm:332 gui-classic/UFRMOperation.dfm:410
+#: gui-classic/UFRMOperation.dfm:427 gui-classic/UFRMOperation.dfm:539
+#: gui-classic/UFRMOperation.dfm:783 gui-classic/UFRMOperation.dfm:825
+#: gui-classic/UFRMOperation.dfm:851 gui-classic/UFRMOperation.dfm:978
+#: gui-classic/UFRMOperation.dfm:1065 gui-classic/UFRMOperation.dfm:1080
+#: gui-classic/UFRMOperation.dfm:1149 gui-classic/UFRMOperation.dfm:1167
+#: gui-classic/UFRMOperationsExplorer.dfm:12
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:13
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:57
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:91
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:178
+#: gui-classic/UFRMPayloadDecoder.dfm:14 gui-classic/UFRMPayloadDecoder.dfm:37
+#: gui-classic/UFRMPayloadDecoder.dfm:50 gui-classic/UFRMPayloadDecoder.dfm:78
+#: gui-classic/UFRMPayloadDecoder.dfm:99
+#: gui-classic/UFRMPayloadDecoder.dfm:119
+#: gui-classic/UFRMPayloadDecoder.dfm:146
+#: gui-classic/UFRMPayloadDecoder.dfm:166
+#: gui-classic/UFRMPayloadDecoder.dfm:179
+#: gui-classic/UFRMPayloadDecoder.dfm:214
+#: gui-classic/UFRMPayloadDecoder.dfm:234
+#: gui-classic/UFRMPayloadDecoder.dfm:253
+#: gui-classic/UFRMPayloadDecoder.dfm:416
+#: gui-classic/UFRMRandomHashUtil.dfm:11
+#: gui-classic/UFRMRandomOperations.dfm:11
+#: gui-classic/UFRMRandomOperations.dfm:44 gui-classic/UFRMRPCCalls.dfm:12
+#: gui-classic/UFRMRPCCalls.dfm:50 gui-classic/UFRMSaleAccounts.dfm:12
+#: gui-classic/UFRMSaleAccounts.dfm:57 gui-classic/UFRMSaleAccounts.dfm:84
+#: gui-classic/UFRMSaleAccounts.dfm:103 gui-classic/UFRMWallet.dfm:13
+#: gui-classic/UFRMWallet.dfm:284 gui-classic/UFRMWallet.dfm:299
+#: gui-classic/UFRMWallet.dfm:315 gui-classic/UFRMWallet.dfm:333
+#: gui-classic/UFRMWallet.dfm:349 gui-classic/UFRMWallet.dfm:658
+#: gui-classic/UFRMWallet.dfm:870 gui-classic/UFRMWallet.dfm:1183
+#: gui-classic/UFRMWallet.dfm:1216 gui-classic/UFRMWalletKeys.dfm:13
+#: gui-classic/UFRMWalletKeys.dfm:66 gui-classic/UFRMWalletKeys.dfm:155
+#: gui-classic/UFRMWalletKeys.dfm:504 lib/i386-win32/UFRMDiagnosticTool.dfm:11
+msgid "Tahoma"
+msgstr ""
+
+#. FRMAbout..Label1..Caption
+#. FRMWallet..Caption
+#: gui-classic/UFRMAbout.dfm:126 gui-classic/UFRMWallet.dfm:4
+msgid "Pascal full node Wallet (Classic GUI)"
+msgstr "Pascal volledige Node Portemonnee (Klassieke Gebruikersomgeving)"
+
+#. FRMAbout..lblBuild..Caption
+#: gui-classic/UFRMAbout.dfm:139
+msgid "Build:"
+msgstr "Bouw:"
+
+#. FRMAbout..lblProtocolVersion..Caption
+#: gui-classic/UFRMAbout.dfm:152
+msgid "Protocol:"
+msgstr ""
+
+#. FRMAbout..Label2..Caption
+#: gui-classic/UFRMAbout.dfm:165
+msgid "Source Code:"
+msgstr ""
+
+#. FRMAbout..Label3..Caption
+#: gui-classic/UFRMAbout.dfm:172
+msgid "Check For New Versions:"
+msgstr "Controleer op nieuwe versies:"
+
+#. FRMAbout..Label4..Caption
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:186 gui-classic/UFRMAbout.dfm:252
+msgid "https://github.com/PascalCoin/PascalCoin"
+msgstr ""
+
+#. FRMAbout..Label5..Caption
+#: gui-classic/UFRMAbout.dfm:201
+msgid "https://sourceforge.net/projects/pascalcoin"
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:220
+msgid "Copyright (c) 2016 - 2019 PascalCoin developers"
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:221
+msgid "Based on Albert Molina original source code"
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:225
+msgid ""
+"Pascal (aka Pascal Coin) is P2P cryptocurrency without the need for "
+"historical "
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:228
+msgid "operations. This software comprises a node within the Pascal network."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:232
+msgid ""
+"Distributed under the MIT software license, see the accompanying file "
+"LICENSE  or "
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:233
+msgid "visit http://www.opensource.org/licenses/mit-license.php."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:237
+msgid "THIS IS EXPERIMENTAL SOFTWARE. Use it for educational purposes only."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:241
+msgid ""
+"This product includes software developed by the OpenSSL Project and Denis "
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:244
+msgid "Grinyuk (https://github.com/Arvur/OpenSSL-Delphi), some cryptographic "
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:247
+msgid ""
+"functions inspirated in code written by Ladar Levison and Marco Ferrante, "
+"and "
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:248
+msgid "Synapse Socket code copyright of Lukas Gebauer."
+msgstr ""
+
+#. FRMAbout..Memo1......Lines.Strings
+#: gui-classic/UFRMAbout.dfm:251
+msgid ""
+"Original source code is written in Pascal Language and is available at "
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:254
+msgid "If you like it, consider a donation using BitCoin:"
+msgstr ""
+
+#. FRMAbout..Memo1....Lines.Strings
+#: gui-classic/UFRMAbout.dfm:255
+msgid "16K3HCZRhFUtM8GdWRcfKeaa6KsuyxZaYk"
+msgstr ""
+
+#. FRMAbout..bbClose..Caption
+#. FRMPayloadDecoder..bbClose..Caption
+#. FRMWallet..MainMenu..miProject..MiClose..Caption
+#: gui-classic/UFRMAbout.dfm:266 gui-classic/UFRMPayloadDecoder.dfm:353
+#: gui-classic/UFRMWallet.dfm:1273
+msgid "Close"
+msgstr "Sluiten"
+
+#. FRMAccountSelect..Caption
+#: gui-classic/UFRMAccountSelect.dfm:5
+msgid "Accounts"
+msgstr "Rekeningen"
+
+#. FRMAccountSelect..pnlAccountsTop..cbOnlyForSale..Caption
+#: gui-classic/UFRMAccountSelect.dfm:33
+msgid "Only for sale or swap"
+msgstr "Alleen voor verkoop of ruilen"
+
+#. FRMAccountSelect..pnlAccountsTop..bbSearch..Caption
+#: gui-classic/UFRMAccountSelect.dfm:41
+msgid "Search"
+msgstr "Zoek"
+
+#. FRMAccountSelect..pnlAccountsTop..cbOnlyForPrivateSaleToMe..Caption
+#: gui-classic/UFRMAccountSelect.dfm:107
+msgid "Only for private sale to me"
+msgstr "Alleen voor prive verkoop aan mij"
+
+#. FRMAccountSelect..pnlAccountsTop..cbAccountsBalance..Caption
+#: gui-classic/UFRMAccountSelect.dfm:115
+msgid "Accounts Balance"
+msgstr "Rekeningsaldo"
+
+#. FRMAccountSelect..pnlAccountsTop..cbMyAccounts..Caption
+#: gui-classic/UFRMAccountSelect.dfm:123
+msgid "My Accounts"
+msgstr "Mijn Rekeningen"
+
+#. FRMAccountSelect..pnlAccountsTop..cbOnlyForPublicSale..Caption
+#: gui-classic/UFRMAccountSelect.dfm:141
+msgid "Only for public sale"
+msgstr "Alleen voor publieke verkoop"
+
+#. FRMAccountSelect..pnlAccountsTop..cbAccountsName..Caption
+#: gui-classic/UFRMAccountSelect.dfm:165
+msgid "Accounts name"
+msgstr "Rekening naam"
+
+#. FRMAccountSelect..pnlBottom..Label17..Caption
+#. FRMWallet..pnlTop..Label5..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..Label17..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..Label20..Caption
+#: gui-classic/UFRMAccountSelect.dfm:192 gui-classic/UFRMWallet.dfm:261
+#: gui-classic/UFRMWallet.dfm:543 gui-classic/UFRMWallet.dfm:685
+msgid "Accounts:"
+msgstr "Rekeningen:"
+
+#. FRMAccountSelect..pnlBottom..lblAccountsCount..Caption
+#. FRMAccountSelect..pnlBottom..lblAccountsBalance..Caption
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblPayloadLength..Caption
+#. FRMPayloadDecoder..lblDateTime..Caption
+#. FRMPayloadDecoder..lblOperationTxt..Caption
+#. FRMPayloadDecoder..lblAmount..Caption
+#. FRMPayloadDecoder..lblFee..Caption
+#. FRMPayloadDecoder..lblReceiver..Caption
+#. FRMWallet..pnlTop..lblCurrentBlock..Caption
+#. FRMWallet..pnlTop..lblOperationsPending..Caption
+#. FRMWallet..pnlTop..lblMinersClients..Caption
+#. FRMWallet..pnlTop..lblCurrentDifficulty..Caption
+#. FRMWallet..pnlTop..lblTimeAverage..Caption
+#. FRMWallet..pnlTop..lblCurrentAccounts..Caption
+#. FRMWallet..pnlTop..lblTimeAverageAux..Caption
+#. FRMWallet..pnlTop..lblBlocksFound..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..lblAccountsCount..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..lblAccountsBalance..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..lblSelectedAccountsCount..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..lblSelectedAccountsBalance..Caption
+#: gui-classic/UFRMAccountSelect.dfm:201 gui-classic/UFRMAccountSelect.dfm:219
+#: gui-classic/UFRMOperation.dfm:207 gui-classic/UFRMPayloadDecoder.dfm:46
+#: gui-classic/UFRMPayloadDecoder.dfm:74 gui-classic/UFRMPayloadDecoder.dfm:95
+#: gui-classic/UFRMPayloadDecoder.dfm:115
+#: gui-classic/UFRMPayloadDecoder.dfm:162 gui-classic/UFRMWallet.dfm:144
+#: gui-classic/UFRMWallet.dfm:180 gui-classic/UFRMWallet.dfm:198
+#: gui-classic/UFRMWallet.dfm:216 gui-classic/UFRMWallet.dfm:225
+#: gui-classic/UFRMWallet.dfm:270 gui-classic/UFRMWallet.dfm:279
+#: gui-classic/UFRMWallet.dfm:310 gui-classic/UFRMWallet.dfm:561
+#: gui-classic/UFRMWallet.dfm:570 gui-classic/UFRMWallet.dfm:694
+#: gui-classic/UFRMWallet.dfm:712
+msgid "000"
+msgstr ""
+
+#. FRMAccountSelect..pnlBottom..Label19..Caption
+#. FRMOperation..lblBalanceCaption..Caption
+#. FRMSaleAccounts..lblBalanceCaption..Caption
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..Label19..Caption
+#: gui-classic/UFRMAccountSelect.dfm:210 gui-classic/UFRMOperation.dfm:50
+#: gui-classic/UFRMSaleAccounts.dfm:73 gui-classic/UFRMWallet.dfm:552
+msgid "Balance:"
+msgstr "Saldo:"
+
+#. FRMAccountSelect..pnlBottom..bbSelect..Caption
+#: gui-classic/UFRMAccountSelect.dfm:229
+msgid "Select"
+msgstr "Selecteer"
+
+#. FRMAccountSelect..pnlBottom..bbTypeStats..Caption
+#: gui-classic/UFRMAccountSelect.dfm:249
+msgid "Type stats"
+msgstr ""
+
+#. FRMDiagnosticTool..Caption
+#. FRMDiagnosticTool..Caption
+#. FRMDiagnosticTool..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:4 gui-classic/UFRMRandomHashUtil.dfm:4
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:4
+msgid "FRMDiagnosticTool"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH..Caption
+#. FRMDiagnosticTool..btnRH..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:25
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:25
+msgid "Start Random Hash"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2..Caption
+#. FRMDiagnosticTool..btnRH2..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:34
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:34
+msgid "Start Random Hash 2"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2C..Caption
+#. FRMDiagnosticTool..btnRH2C..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:51
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:51
+msgid "Start Random Hash 2 (Cached)"
+msgstr ""
+
+#. FRMDiagnosticTool..btnEntropy..Caption
+#. FRMDiagnosticTool..btnEntropy..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:60
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:60
+msgid "Entropy Tests"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2NonceScan..Caption
+#. FRMDiagnosticTool..btnRH2NonceScan..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:69
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:69
+msgid "Start Random Hash 2 (Nonce Scan)"
+msgstr ""
+
+#. FRMDiagnosticTool..txtScanLevel..TextHint
+#. FRMDiagnosticTool..txtScanLevel..TextHint
+#: gui-classic/UFRMDiagnosticTool.dfm:79
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:79
+msgid "Enter Scan Level (2-4)"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRHC..Caption
+#. FRMDiagnosticTool..btnRHC..Caption
+#: gui-classic/UFRMDiagnosticTool.dfm:86
+#: lib/i386-win32/UFRMDiagnosticTool.dfm:86
+msgid "Start Random Hash (Cached)"
+msgstr ""
+
+#. FRMHashLock..Caption
+#: gui-classic/UFRMHashLock.dfm:5
+msgid "Atomic Swap Hash-Lock "
+msgstr ""
+
+#. FRMHashLock..lblError..Caption
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblEncryptionErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblTransactionErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblChangeKeyErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewOwnerErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblListAccountErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsDelistAccount..lblDelistErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyAccountErrors..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeInfoErrors..Caption
+#: gui-classic/UFRMHashLock.dfm:29 gui-classic/UFRMOperation.dfm:191
+#: gui-classic/UFRMOperation.dfm:327 gui-classic/UFRMOperation.dfm:405
+#: gui-classic/UFRMOperation.dfm:422 gui-classic/UFRMOperation.dfm:534
+#: gui-classic/UFRMOperation.dfm:778 gui-classic/UFRMOperation.dfm:820
+#: gui-classic/UFRMOperation.dfm:973
+msgid "Errors detected"
+msgstr ""
+
+#. FRMHashLock..btnSet..Caption
+#: gui-classic/UFRMHashLock.dfm:56
+msgid "Set Hash-Lock"
+msgstr ""
+
+#. FRMHashLock..GroupBox1..Caption
+#: gui-classic/UFRMHashLock.dfm:67
+msgid "Mode"
+msgstr ""
+
+#. FRMHashLock..GroupBox1..rbHashLock....Caption
+#: gui-classic/UFRMHashLock.dfm:76
+msgid "Hash-Lock - the 32 byte hash-lock provided to you by the counterparty"
+msgstr ""
+
+#. FRMHashLock..GroupBox1..rbHashLockKey....Caption
+#: gui-classic/UFRMHashLock.dfm:86
+msgid ""
+"Hash-Lock Key - a secret that will be hashed to create the 32 byte hash-lock"
+msgstr ""
+
+#. FRMHashLock..GroupBox2..Caption
+#: gui-classic/UFRMHashLock.dfm:96
+msgid "Data"
+msgstr ""
+
+#. FRMHashLock..GroupBox2..Label2..Caption
+#: gui-classic/UFRMHashLock.dfm:106
+msgid "Please enter the hash lock data as a hexadecimal string"
+msgstr ""
+
+#. FRMMemoText..Caption
+#: gui-classic/UFRMMemoText.dfm:5
+msgid "Information"
+msgstr "Informatie"
+
+#. FRMMemoText..Memo....Lines.Strings
+#: gui-classic/UFRMMemoText.dfm:53
+msgid "Memo"
+msgstr ""
+
+#. FRMNewPrivateKeyType..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:6
+msgid "New Private Key"
+msgstr "Nieuwe Prive Sleutel"
+
+#. FRMNewPrivateKeyType..Label1..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:26
+msgid "Name"
+msgstr "Naam"
+
+#. FRMNewPrivateKeyType..ebName..Text
+#: gui-classic/UFRMNewPrivateKeyType.dfm:34
+msgid "ebName"
+msgstr "ebName"
+
+#. FRMNewPrivateKeyType..rgKeyType..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:41
+msgid " Key Type: "
+msgstr " Sleutel Type: "
+
+#. FRMNewPrivateKeyType..rgKeyType....Items.Strings
+#: gui-classic/UFRMNewPrivateKeyType.dfm:43
+msgid "asdf"
+msgstr ""
+
+#. FRMNewPrivateKeyType..bbOk..Caption
+#. FRMNodesIp..bbOk..Caption
+#. FRMChangeLanguage..bbOk..Caption
+#. FRMChangeLanguage..bbOk..Caption
+#: gui-classic/UFRMNewPrivateKeyType.dfm:51 gui-classic/UFRMNodesIp.dfm:42
+#: gui-classic/UFRMSelectLanguage.dfm:18
+#: lib/i386-win32/ufrmselectlanguage.dfm:18
+msgid "OK"
+msgstr "Akkoord"
+
+#. FRMNodesIp..Caption
+#: gui-classic/UFRMNodesIp.dfm:6
+msgid "Nodes IP"
+msgstr "Nodes IP adres"
+
+#. FRMNodesIp..Label1..Caption
+#: gui-classic/UFRMNodesIp.dfm:25
+msgid "Available Nodes Ip to connect"
+msgstr "Beschikbare Nodes IP adressen om mee te verbinden"
+
+#. FRMNodesIp..memoNodesIp....Lines.Strings
+#: gui-classic/UFRMNodesIp.dfm:33
+msgid "memoNodesIp"
+msgstr ""
+
+#. FRMNodesIp..cbTryOnlyWithThisServers..Caption
+#: gui-classic/UFRMNodesIp.dfm:82
+msgid "Try to connect ONLY with this servers"
+msgstr "Probeer ALLEEN met deze servers te verbinden"
+
+#. FRMOperation..Caption
+#: gui-classic/UFRMOperation.dfm:6
+msgid "New Operation"
+msgstr "Nieuwe Handeling"
+
+#. FRMOperation..lblAccountCaption..Caption
+#. FRMSaleAccounts..lblAccountCaption..Caption
+#: gui-classic/UFRMOperation.dfm:26 gui-classic/UFRMSaleAccounts.dfm:25
+msgid "Account:"
+msgstr "Rekening:"
+
+#. FRMOperation..lblAccountBalance..Caption
+#. FRMSaleAccounts..lblAccountBalance..Caption
+#: gui-classic/UFRMOperation.dfm:35 gui-classic/UFRMSaleAccounts.dfm:53
+msgid "lblAccountBalance"
+msgstr ""
+
+#. FRMOperation..lblAccountsCount..Caption
+#. FRMSaleAccounts..lblAccountsCount..Caption
+#: gui-classic/UFRMOperation.dfm:59 gui-classic/UFRMSaleAccounts.dfm:66
+msgid "XXX"
+msgstr ""
+
+#. FRMOperation..bbExecute..Caption
+#. FRMOperation..ActionList..actExecute..Caption
+#. FRMSaleAccounts..bbExecute..Caption
+#. FRMSaleAccounts..ActionList..actExecute..Caption
+#: gui-classic/UFRMOperation.dfm:68 gui-classic/UFRMOperation.dfm:1179
+#: gui-classic/UFRMSaleAccounts.dfm:178 gui-classic/UFRMSaleAccounts.dfm:215
+msgid "Execute (F12)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..lblFee..Caption
+#: gui-classic/UFRMOperation.dfm:113
+msgid "Operation Fee"
+msgstr "Handeling Vergoeding"
+
+#. FRMOperation..PageControlLocked..tsOperation..lblSignerAccount..Caption
+#: gui-classic/UFRMOperation.dfm:122
+msgid "Signer account (Fee payer)"
+msgstr "Ondertekenaar rekening (Vergoeding betaler)"
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..Caption
+#: gui-classic/UFRMOperation.dfm:165
+msgid " Payload: "
+msgstr " Lading: "
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..lblEncryptPassword..Caption
+#: gui-classic/UFRMOperation.dfm:172
+msgid "Password:"
+msgstr "Wachtwoord:"
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..Label4..Caption
+#: gui-classic/UFRMOperation.dfm:181
+msgid "Payload Data"
+msgstr "Lading inhoud"
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbEncryptedWithEC..Caption
+#: gui-classic/UFRMOperation.dfm:216
+msgid "Encrypted with dest account public key"
+msgstr "Versleutel met ontv rekening publieke sleutel"
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbEncrptedWithPassword..Caption
+#: gui-classic/UFRMOperation.dfm:227
+msgid "Encrypted with password"
+msgstr "Versleutel met wachtwoord"
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbNotEncrypted..Caption
+#: gui-classic/UFRMOperation.dfm:237
+msgid "Dont encrypt (Public payload)"
+msgstr "Versleutel niet (Publieke lading)"
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..rbEncryptedWithOldEC..Caption
+#: gui-classic/UFRMOperation.dfm:272
+msgid "Encrypted with old public key"
+msgstr "Versleutel met oude publieke sleutel"
+
+#. FRMOperation..PageControlLocked..tsOperation..gbPayload..cbPayloadAsHex..Caption
+#: gui-classic/UFRMOperation.dfm:282
+msgid "As Hex"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..Caption
+#: gui-classic/UFRMOperation.dfm:302
+msgid "Transaction"
+msgstr "Transactie"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblDestAccount..Caption
+#: gui-classic/UFRMOperation.dfm:308
+msgid "Destination account"
+msgstr "Bestemming rekening"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsTransaction..lblAmount..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyAmount..Caption
+#: gui-classic/UFRMOperation.dfm:317 gui-classic/UFRMOperation.dfm:810
+msgid "Amount"
+msgstr "Bedrag"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..Caption
+#: gui-classic/UFRMOperation.dfm:387
+msgid "Change Key"
+msgstr "Wijzig Sleutel"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewPrivateKey..Caption
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblBuyNewKey..Caption
+#: gui-classic/UFRMOperation.dfm:394 gui-classic/UFRMOperation.dfm:837
+msgid "New private key"
+msgstr "Nieuwe Prive Sleutel"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..lblNewOwnerPublicKey..Caption
+#: gui-classic/UFRMOperation.dfm:437
+msgid "New owners public key"
+msgstr "Nieuwe eigenaars publieke sleutel"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..rbChangeKeyWithAnother..Caption
+#: gui-classic/UFRMOperation.dfm:446
+msgid "Change private key"
+msgstr "Wijzig prive sleutel"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangePrivateKey..rbChangeKeyTransferAccountToNewOwner..Caption
+#: gui-classic/UFRMOperation.dfm:514
+msgid "Transfer account to a new owner"
+msgstr "Draag rekening over aan nieuwe eigenaar"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..Caption
+#: gui-classic/UFRMOperation.dfm:526
+msgid "List Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblPrice..Caption
+#: gui-classic/UFRMOperation.dfm:550
+msgid "Sale Price"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblSeller..Caption
+#: gui-classic/UFRMOperation.dfm:560
+msgid "Seller Account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblNewKey..Caption
+#: gui-classic/UFRMOperation.dfm:604
+msgid "Buyer Key"
+msgstr "Koper sleutel"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblTimeLock..Caption
+#: gui-classic/UFRMOperation.dfm:614
+msgid "Time-Lock"
+msgstr "Tijd-slot"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..lblHashLock..Caption
+#: gui-classic/UFRMOperation.dfm:623
+msgid "Hash-Lock"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForPublicSale..Caption
+#: gui-classic/UFRMOperation.dfm:699
+msgid "List for Public Sale"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForPrivateSale..Caption
+#: gui-classic/UFRMOperation.dfm:707
+msgid "List for Private Sale"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForAccountSwap..Caption
+#: gui-classic/UFRMOperation.dfm:715
+msgid "List for Atomic Account Swap"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..rbListAccountForCoinSwap..Caption
+#: gui-classic/UFRMOperation.dfm:723
+msgid "List for Atomic Coin Swap"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebPrice..TextHint
+#: gui-classic/UFRMOperation.dfm:732
+msgid "PASC Quantity"
+msgstr "PASC Hoeveelheid"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebSellerAccount..TextHint
+#: gui-classic/UFRMOperation.dfm:740
+msgid "Account Number"
+msgstr "Rekeningnummer"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebNewKey..TextHint
+#: gui-classic/UFRMOperation.dfm:748
+msgid "BASE58 Encoded Public Key Of New Owner"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebTimeLock..Hint
+#: gui-classic/UFRMOperation.dfm:755
+msgid "Block Number "
+msgstr "Blok Nummer "
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsListAccount..ebTimeLock..TextHint
+#: gui-classic/UFRMOperation.dfm:759
+msgid "Block number"
+msgstr "Blok numer"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsDelistAccount..Caption
+#: gui-classic/UFRMOperation.dfm:770
+msgid "Delist Account"
+msgstr "Verwijder Rekening"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..Caption
+#: gui-classic/UFRMOperation.dfm:790
+msgid "Buy Account"
+msgstr "Koop Rekening"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..lblAccountToBuy..Caption
+#: gui-classic/UFRMOperation.dfm:799
+msgid "Account to Buy"
+msgstr "Rekening voor Kopen"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsBuyAccount..Label2..Caption
+#: gui-classic/UFRMOperation.dfm:846
+msgid "any over-payment will remain on bought account"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..Caption
+#: gui-classic/UFRMOperation.dfm:966
+msgid "Change Info"
+msgstr "Wijzig Info"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeName..Caption
+#: gui-classic/UFRMOperation.dfm:990
+msgid "Change name"
+msgstr "Wijzig naam"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeType..Caption
+#: gui-classic/UFRMOperation.dfm:1001
+msgid "Change type"
+msgstr "Wijzig type"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..lblChangeAccountData..Caption
+#: gui-classic/UFRMOperation.dfm:1012
+msgid "Change Data"
+msgstr "Wijzig Data"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..ebChangeName..TextHint
+#: gui-classic/UFRMOperation.dfm:1022
+msgid "Account name (null or 3..64 chars)"
+msgstr "Rekening naam (leeg of 3..64 letters)"
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..ebChangeType..TextHint
+#: gui-classic/UFRMOperation.dfm:1030
+msgid "0..65535"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsOperation..PageControlOpType..tsChangeInfo..ebChangeAccountData..TextHint
+#: gui-classic/UFRMOperation.dfm:1038
+msgid "Hexadecimal value (0..32 bytes)"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsGlobalError..lblGlobalErrors..Caption
+#: gui-classic/UFRMOperation.dfm:1060
+msgid "????"
+msgstr ""
+
+#. FRMOperation..PageControlLocked..tsGlobalError..bbPassword..Caption
+#. FRMWalletKeys..bbUpdatePassword..Caption
+#: gui-classic/UFRMOperation.dfm:1076 gui-classic/UFRMWalletKeys.dfm:500
+msgid "Password"
+msgstr "Wachtwoord"
+
+#. FRMOperation..memoAccounts....Lines.Strings
+#. FRMOperation..memoAccounts....Lines.Strings
+#. FRMSaleAccounts..memoAccounts....Lines.Strings
+#. FRMSaleAccounts..memoAccounts....Lines.Strings
+#: gui-classic/UFRMOperation.dfm:1152 gui-classic/UFRMOperation.dfm:1153
+#: gui-classic/UFRMSaleAccounts.dfm:87 gui-classic/UFRMSaleAccounts.dfm:88
+msgid "123456-11 (0.0000); 123456-11 (0.0000); "
+msgstr ""
+
+#. FRMOperation..ebSenderAccount..Text
+#. FRMSaleAccounts..ebSenderAccount..Text
+#: gui-classic/UFRMOperation.dfm:1171 gui-classic/UFRMSaleAccounts.dfm:107
+msgid "ebSenderAccount"
+msgstr "ebAfzenderRekening"
+
+#. FRMOperationsExplorer..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:5
+msgid "Operations Explorer Tool"
+msgstr "Handelingen Verkenner gereedschap"
+
+#. FRMOperationsExplorer..pnlTop..lblTopCaption....Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:58
+msgid ""
+"You can use this tool to explore operations, also you can copy/paste "
+"operations as a RAW (Use Ctrl+I to Import). This tool allows to generate a "
+"Multioperation, send to third party the RAW, add more txs... and then sign. "
+"Once Everybody has signed, you will be able to EXECUTE OPERATION to be "
+"added to network nodes. "
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlExport..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:85
+msgid "pnlExport"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlExport..Label1..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:94
+msgid "Operation as RAW:"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlInfo..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:115
+msgid "pnlInfo"
+msgstr ""
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlInfo..pnlInfoOptions..Label2..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:139
+msgid "Multioperation actions:"
+msgstr "Meerdere handelingen aktie:"
+
+#. FRMOperationsExplorer..pnlOpInfo..pnlInfo..pnlInfoOptions..bbRandom..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:188
+msgid "RANDOM OPERATIONS"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:199
+msgid "Tools"
+msgstr "Gereedschappen"
+
+#. FRMOperationsExplorer..mMenu..MiTools..MiImportOperationsFromTxt..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:201
+msgid "Import Operations from RAW"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..MiDivider1..Caption
+#. FRMOperationsExplorer..mMenu..MiActions..MenuItem6..Caption
+#. FRMWallet..MainMenu..miProject..miN1..Caption
+#. FRMWallet..MainMenu..miProject..N1..Caption
+#. FRMWallet..MainMenu..MiOperations..N2..Caption
+#. FRMWallet..MainMenu..MiOperations..N3..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:206
+#: gui-classic/UFRMOperationsExplorer.dfm:224 gui-classic/UFRMWallet.dfm:1254
+#: gui-classic/UFRMWallet.dfm:1270 gui-classic/UFRMWallet.dfm:1310
+#: gui-classic/UFRMWallet.dfm:1327
+msgid "-"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..miLoadFromBlockchain..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:209
+msgid "Load Operations from Blockchain"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiTools..MiLoadOperationsFromBlockchainFile..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:214
+msgid "Load Operations from Blockchain file"
+msgstr ""
+
+#. FRMOperationsExplorer..mMenu..MiActions..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:219
+msgid "Actions"
+msgstr "Akties"
+
+#. FRMOperationsExplorer..ActionList..ActExecuteOperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:244
+msgid "Execute Operation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActAddTxToMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:249
+msgid "Add Tx to Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..AddOpChangeToMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:254
+msgid "Add OpChange to Multioperation"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActRemoveAccountFromMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:259
+msgid "Remove Account from Multioperation"
+msgstr "Verwijder Rekening van MultiHandeling"
+
+#. FRMOperationsExplorer..ActionList..ActSignMultioperation..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:264
+msgid "Sign Multioperation"
+msgstr "Teken Multi-handeling"
+
+#. FRMOperationsExplorer..ActionList..ActAddTx..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:269
+msgid "Add Tx"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActAddOpChange..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:274
+msgid "Add OpChange"
+msgstr ""
+
+#. FRMOperationsExplorer..ActionList..ActRemove..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:279
+msgid "Remove"
+msgstr "Verwijder"
+
+#. FRMOperationsExplorer..ActionList..ActSign..Caption
+#: gui-classic/UFRMOperationsExplorer.dfm:284
+msgid "Sign"
+msgstr "Teken"
+
+#. FRMPascalCoinWalletConfig..Caption
+#. FRMWallet..MainMenu..miProject..miOptions..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:6
+#: gui-classic/UFRMWallet.dfm:1257
+msgid "Options"
+msgstr "Opties"
+
+#. FRMPascalCoinWalletConfig..Label1..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:25
+msgid "Default fee for operation"
+msgstr "Standaard vergoeding voor handeling"
+
+#. FRMPascalCoinWalletConfig..Label2..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:32
+msgid "Internet Server Port"
+msgstr "Internet Server Poort"
+
+#. FRMPascalCoinWalletConfig..lblDefaultInternetServerPort..Caption
+#. FRMPascalCoinWalletConfig..lblDefaultJSONRPCMinerServerPort..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:39
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:73
+msgid "(Default XXXX)"
+msgstr "(Standaard XXXX)"
+
+#. FRMPascalCoinWalletConfig..Label3..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:46
+msgid "Miner Name:"
+msgstr "Miner Naam:"
+
+#. FRMPascalCoinWalletConfig..Label4..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:53
+msgid "This name will be included in each new block you mine!"
+msgstr "Deze naam wordt opgenomen in elk nieuw blok dat je vindt!"
+
+#. FRMPascalCoinWalletConfig..Label5..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:66
+msgid "JSON-RPC Port"
+msgstr "JSON-RPC Poort"
+
+#. FRMPascalCoinWalletConfig..Label6..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:80
+msgid "Allowed IP's"
+msgstr "Toegestane IP adressen"
+
+#. FRMPascalCoinWalletConfig..Label7..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:87
+msgid "Ip's separated by semicolon or empty for all"
+msgstr "IP adressen gescheiden door een puntkomma of leeg voor alle adressen"
+
+#. FRMPascalCoinWalletConfig..cbJSONRPCMinerServerActive..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:100
+msgid "JSON-RPC Server Miner (TCP/IP, no HTTP)"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbSaveLogFiles..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:117
+msgid "Save log file"
+msgstr "Bewaar logboek"
+
+#. FRMPascalCoinWalletConfig..cbShowLogs..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:126
+msgid "Show logs"
+msgstr "Toon logboek"
+
+#. FRMPascalCoinWalletConfig..bbUpdatePassword..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:174
+msgid "Wallet Password"
+msgstr "Portemonnee Wachtwoord"
+
+#. FRMPascalCoinWalletConfig..ebMinerName..Text
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:243
+msgid "ebMinerName"
+msgstr "ebMinderNaam"
+
+#. FRMPascalCoinWalletConfig..cbShowModalMessages..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:250
+msgid "Show modal messages"
+msgstr "Toon modale berichten"
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:279
+msgid " Miner Server Private Key: "
+msgstr " Miner Server Prive Sleutel: "
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..rbGenerateANewPrivateKeyEachBlock..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:286
+msgid "Generate a new private key for each generated block"
+msgstr "Genereer een nieuwe prive sleutel voor elk gegenereerde blok"
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..rbUseARandomKey..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:294
+msgid "Use a random existing key"
+msgstr "Gebruik een willekeurig bestaande sleutel"
+
+#. FRMPascalCoinWalletConfig..gbMinerPrivateKey..rbMineAllwaysWithThisKey..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:302
+msgid "Always mine with this key:"
+msgstr "Altijd minen met deze sleutel:"
+
+#. FRMPascalCoinWalletConfig..cbSaveDebugLogs..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:319
+msgid "Save debug logs too"
+msgstr "Bewaar debug logboek ook"
+
+#. FRMPascalCoinWalletConfig..bbOpenDataFolder..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:349
+msgid "Open Data Folder"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbJSONRPCPortEnabled..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:363
+msgid "JSON-RPC Server port enabled (HTTP)"
+msgstr "JSON-RPC Server poort geactiveerd (HTTP)"
+
+#. FRMPascalCoinWalletConfig..ebJSONRPCAllowedIPs..Text
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:373
+msgid "ebJSONRPCAllowedIPs"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..cbDownloadNewCheckpoint..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:389
+msgid "Download new Checkpoint if blockchain older than..."
+msgstr "Download een nieuw Checkpoint als blockchain ouder is dan ..."
+
+#. FRMPayloadDecoder..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:7
+msgid "Operation Information/Decoder"
+msgstr ""
+
+#. FRMPascalCoinWalletConfig..bbChangeLanguage..Caption
+#: gui-classic/UFRMPascalCoinWalletConfig.dfm:428
+msgid "Change UI language"
+msgstr "Verander UI taal"
+
+#. FRMPayloadDecoder..Label1..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:26
+msgid "Block/Op:"
+msgstr "Blok/Op:"
+
+#. FRMPayloadDecoder..lblBlock..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:33
+msgid "000000/0000"
+msgstr ""
+
+#. FRMPayloadDecoder..Label6..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:59
+msgid "Date Time:"
+msgstr "Datum Tijd:"
+
+#. FRMPayloadDecoder..Label2..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:66
+msgid "Operation:"
+msgstr "Handeling:"
+
+#. FRMPayloadDecoder..lblAmountCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:88
+msgid "Amount:"
+msgstr "Bedrag:"
+
+#. FRMPayloadDecoder..lblFeeCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:108
+msgid "Fee:"
+msgstr "Vergoeding:"
+
+#. FRMPayloadDecoder..Label4..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:128
+msgid "OpHash"
+msgstr ""
+
+#. FRMPayloadDecoder..lblSenderCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:135
+msgid "Sender:"
+msgstr "Afzender:"
+
+#. FRMPayloadDecoder..lblSender..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:142
+msgid "9999999-99"
+msgstr ""
+
+#. FRMPayloadDecoder..lblReceiverCaption..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:155
+msgid "Receiver:"
+msgstr "Ontvanger:"
+
+#. FRMPayloadDecoder..lblReceiverInfo..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:175
+msgid "(Receiver info)"
+msgstr "(Ontvanger info)"
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:192
+msgid "Payload"
+msgstr "Lading"
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..Label7..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:202
+msgid "Decoded Payload:"
+msgstr "Gedecodeerde Lading:"
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..lblDecodedMethod..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:210
+msgid "(Method)"
+msgstr "(Methode)"
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..Label3..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:223
+msgid "Original Payload in Hexadecimal:"
+msgstr "Originele Lading in Hexadecimaal:"
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoDecoded....Lines.Strings
+#. FRMPayloadDecoder..PageControl..tsDecoded..memoOriginalPayloadInHexa....Lines.Strings
+#: gui-classic/UFRMPayloadDecoder.dfm:237
+#: gui-classic/UFRMPayloadDecoder.dfm:256
+msgid "memoDecoded"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecoded..cbShowAsHexadecimal..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:267
+msgid "Show as hexadecimal"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:273
+msgid "Decode methods"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..lblPasswordsInfo..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:280
+msgid "lblPasswordsInfo"
+msgstr ""
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..cbMethodPublicPayload..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:287
+msgid "Not encrypted (Public payload)"
+msgstr "Niet versleuteld (Publieke lading)"
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..cbUsingPrivateKeys..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:296
+msgid "Using Private keys of my Wallet"
+msgstr "Gebruikt Prive sleutels uit mijn Portemonnee"
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..cbUsingPasswords..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:305
+msgid "Using Passwords of the list"
+msgstr "Gebruikt Wachtwoorden uit de lijst"
+
+#. FRMPayloadDecoder..PageControl..tsDecodeMethods..bbSaveMethods..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:323
+msgid "Save"
+msgstr "Bewaar"
+
+#. FRMPayloadDecoder..bbFind..Caption
+#: gui-classic/UFRMPayloadDecoder.dfm:376
+msgid "&Find"
+msgstr "&Zoek"
+
+#. FRMPayloadDecoder..ebOphash..Text
+#: gui-classic/UFRMPayloadDecoder.dfm:420
+msgid "12345678901234567890123456789012345678901234567890123456789012"
+msgstr ""
+
+#. FRMDiagnosticTool..txtLog..Text
+#: gui-classic/UFRMRandomHashUtil.dfm:26
+msgid "txtLog"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH..Caption
+#: gui-classic/UFRMRandomHashUtil.dfm:33
+msgid "Random Hash"
+msgstr ""
+
+#. FRMDiagnosticTool..btnRH2..Caption
+#: gui-classic/UFRMRandomHashUtil.dfm:41
+msgid "Random Hash 2"
+msgstr ""
+
+#. FRMRandomOperations..Caption
+#. FRMRandomOperations..pnlClient..pnlTop1..bbRandomOperations..Caption
+#: gui-classic/UFRMRandomOperations.dfm:4
+#: gui-classic/UFRMRandomOperations.dfm:73
+msgid "Random Operations"
+msgstr "Willekeurige Handelingen"
+
+#. FRMRandomOperations..pnlTop..lblTopCaption....Caption
+#: gui-classic/UFRMRandomOperations.dfm:39
+msgid ""
+"WARNING! This form will generate RANDOM operations using your private "
+"keys!!!"
+msgstr ""
+
+#. FRMRandomOperations..pnlClient..mLogs....Lines.Strings
+#: gui-classic/UFRMRandomOperations.dfm:85
+msgid "mLogs"
+msgstr ""
+
+#. FRMRPCCalls..Caption
+#. FRMWallet..MainMenu..miProject..MiRPCCalls..Caption
+#: gui-classic/UFRMRPCCalls.dfm:5 gui-classic/UFRMWallet.dfm:1266
+msgid "RPC Calls"
+msgstr "RPC Oproepen"
+
+#. FRMRPCCalls..pnlTop..lblTopCaption....Caption
+#: gui-classic/UFRMRPCCalls.dfm:45
+msgid ""
+"WARNING! Execute only calls you understand. Execute unknown calls provided "
+"by third person can cause that you lost your keys/balance!"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..Label1..Caption
+#: gui-classic/UFRMRPCCalls.dfm:83
+msgid "Method"
+msgstr "Methode"
+
+#. FRMRPCCalls..pnlRight..Label2..Caption
+#: gui-classic/UFRMRPCCalls.dfm:92
+msgid "Server"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..ebMethod..Text
+#: gui-classic/UFRMRPCCalls.dfm:102
+msgid "ebMethod"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..pageControl..tsKeyNames..Caption
+#: gui-classic/UFRMRPCCalls.dfm:113
+msgid "Key/Value Params"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..pageControl..tsJSONParams..Caption
+#: gui-classic/UFRMRPCCalls.dfm:130
+msgid "Params as JSON"
+msgstr ""
+
+#. FRMRPCCalls..pnlRight..bbSendCommand..Caption
+#: gui-classic/UFRMRPCCalls.dfm:148
+msgid "&Send"
+msgstr "&Verstuur"
+
+#. FRMRPCCalls..pnlRight..ebServerURL..Text
+#: gui-classic/UFRMRPCCalls.dfm:195
+msgid "ebServerURL"
+msgstr ""
+
+#. FRMRPCCalls..pnlInfo..pnlInfoBottom..pnlLastCall..Label3..Caption
+#: gui-classic/UFRMRPCCalls.dfm:244
+msgid "Last call result:"
+msgstr ""
+
+#. FRMRPCCalls..pnlInfo..pnlInfoBottom..pnlLastCall..lblLastCallResultState..Caption
+#: gui-classic/UFRMRPCCalls.dfm:253
+msgid "STATE"
+msgstr "TOESTAND"
+
+#. FRMSaleAccounts..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:5
+msgid "Sale accounts"
+msgstr ""
+
+#. FRMSaleAccounts..Label1..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:32
+msgid "Sale price:"
+msgstr ""
+
+#. FRMSaleAccounts..Label2..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:39
+msgid "Locked until block:"
+msgstr "Sluit tot blok:"
+
+#. FRMSaleAccounts..Label3..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:46
+msgid "Seller account (where to pay)"
+msgstr ""
+
+#. FRMSaleAccounts..ebSalePrice..Text
+#. FRMSaleAccounts..ebSellerAccount..Text
+#: gui-classic/UFRMSaleAccounts.dfm:115 gui-classic/UFRMSaleAccounts.dfm:170
+msgid "Edit1"
+msgstr ""
+
+#. FRMSaleAccounts..ebLockedUntilBlock..Text
+#: gui-classic/UFRMSaleAccounts.dfm:123
+msgid "ebLockedUntilBlock"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:130
+msgid " Sell options: "
+msgstr " Verkoop opties: "
+
+#. FRMSaleAccounts..gbSellOptions..lblNewOwnerPublicKey..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:137
+msgid "New owner's public key"
+msgstr "Nieuwe eigenaar zijn publieke sleutel"
+
+#. FRMSaleAccounts..gbSellOptions..rbEveryoneCanBuy..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:144
+msgid "Everyone can buy"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..rbReservedForAPublickKey..Caption
+#: gui-classic/UFRMSaleAccounts.dfm:152
+msgid "Reserved for only one public key (private)"
+msgstr ""
+
+#. FRMSaleAccounts..gbSellOptions..ebNewOwnerPublicKey..Text
+#: gui-classic/UFRMSaleAccounts.dfm:161
+msgid "ebDestAccount"
+msgstr "ebBestRekening"
+
+#. FRMChangeLanguage..Caption
+#. FRMChangeLanguage..Caption
+#: gui-classic/UFRMSelectLanguage.dfm:8
+#: lib/i386-win32/ufrmselectlanguage.dfm:8
+msgid "Language Selection"
+msgstr "Taal Selectie"
+
+#. FRMChangeLanguage..bbCancel..Caption
+#. FRMChangeLanguage..bbCancel..Caption
+#: gui-classic/UFRMSelectLanguage.dfm:28
+#: lib/i386-win32/ufrmselectlanguage.dfm:28
+msgid "Cancel"
+msgstr "Annuleren"
+
+#. FRMChangeLanguage..Label1..Caption
+#. FRMChangeLanguage..Label1..Caption
+#: gui-classic/UFRMSelectLanguage.dfm:46
+#: lib/i386-win32/ufrmselectlanguage.dfm:46
+msgid "Select your preferred language"
+msgstr "Selecteer uw voorkeurstaal"
+
+#. FRMWallet..pnlTop..lblCurrentBlockCaption..Caption
+#: gui-classic/UFRMWallet.dfm:135
+msgid "Total Blocks:"
+msgstr "Totaal Blokken:"
+
+#. FRMWallet..pnlTop..lblCurrentBlockTimeCaption..Caption
+#: gui-classic/UFRMWallet.dfm:153
+msgid "Current Block Age:"
+msgstr "Huidige Blok leeftijd:"
+
+#. FRMWallet..pnlTop..lblCurrentBlockTime..Caption
+#: gui-classic/UFRMWallet.dfm:162
+msgid "000 seconds ago"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblOperationsPendingCaption..Caption
+#: gui-classic/UFRMWallet.dfm:171
+msgid "Pending Operations:"
+msgstr "Lopende Handelingen:"
+
+#. FRMWallet..pnlTop..lblMiningStatusCaption..Caption
+#: gui-classic/UFRMWallet.dfm:189
+msgid "Miner Clients:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblCurrentDifficultyCaption..Caption
+#: gui-classic/UFRMWallet.dfm:207
+msgid "Current Target:"
+msgstr "Huidige Doel:"
+
+#. FRMWallet..pnlTop..Label4..Caption
+#: gui-classic/UFRMWallet.dfm:234
+msgid "Time average:"
+msgstr "Tijd gemiddeld:"
+
+#. FRMWallet..pnlTop..Label8..Caption
+#: gui-classic/UFRMWallet.dfm:243
+msgid "Node Status:"
+msgstr ""
+
+#. FRMWallet..pnlTop..lblNodeStatus..Caption
+#: gui-classic/UFRMWallet.dfm:252
+msgid "???"
+msgstr ""
+
+#. FRMWallet..pnlTop..Label16..Caption
+#: gui-classic/UFRMWallet.dfm:294
+msgid "Blocks Found:"
+msgstr "Blokken Gevonden:"
+
+#. FRMWallet..pnlTop..lblBlocksFound..Hint
+#: gui-classic/UFRMWallet.dfm:309
+msgid "Blocks found while Miner is running..."
+msgstr "Blokken gevonden terwijl de Miner actief is..."
+
+#. FRMWallet..pnlTop..lblReceivedMessages..Caption
+#: gui-classic/UFRMWallet.dfm:328
+msgid "Received Messages"
+msgstr "Ontvangen Berichten"
+
+#. FRMWallet..pnlTop..lblBuild..Caption
+#: gui-classic/UFRMWallet.dfm:344
+msgid "Build"
+msgstr "Bouw"
+
+#. FRMWallet..StatusBar......Text
+#: gui-classic/UFRMWallet.dfm:363
+msgid "Server Active"
+msgstr "Server actief"
+
+#. FRMWallet..StatusBar......Text
+#: gui-classic/UFRMWallet.dfm:367
+msgid "Connection status"
+msgstr "Verbinding status"
+
+#. FRMWallet..StatusBar......Text
+#: gui-classic/UFRMWallet.dfm:371
+msgid "Blocks"
+msgstr "Blokken"
+
+#. FRMWallet..PageControl..tsMyAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:385
+msgid "Account Explorer"
+msgstr "Rekening Verkenner"
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..Label18..Caption
+#. FRMWallet..MainMenu..MiOperations..MiFindaccount..Caption
+#: gui-classic/UFRMWallet.dfm:406 gui-classic/UFRMWallet.dfm:1295
+msgid "Find account"
+msgstr "Zoek rekening"
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..cbExploreMyAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:458
+msgid "Explore accounts with one of my Wallet Keys"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..bbChangeKeyName..Caption
+#: gui-classic/UFRMWallet.dfm:476
+msgid "Change Key name"
+msgstr "Wijzig Sleutel naam"
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..cbFilterAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:485
+msgid "Filter accounts by balance"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..ebFilterAccountByBalanceMin..Hint
+#: gui-classic/UFRMWallet.dfm:494
+msgid "Min balance"
+msgstr "Min Saldo"
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlMyAccountsTop..ebFilterAccountByBalanceMax..Hint
+#: gui-classic/UFRMWallet.dfm:504
+msgid "Max balance"
+msgstr "Max saldo"
+
+#. FRMWallet..PageControl..tsMyAccounts..pnlAccounts..pnlAccountsInfo..bbAccountsRefresh..Caption
+#: gui-classic/UFRMWallet.dfm:580
+msgid "Refresh"
+msgstr "Vernieuwen"
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsAccountOperations..Caption
+#: gui-classic/UFRMWallet.dfm:622
+msgid "Account Operations"
+msgstr "Rekening Handelingen"
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..Caption
+#: gui-classic/UFRMWallet.dfm:634
+msgid "Selected Accounts For Batch Operation"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsTop..Label15..Caption
+#: gui-classic/UFRMWallet.dfm:667
+msgid "Select multiple accounts to execute massive operations"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsBottom..Label22..Caption
+#: gui-classic/UFRMWallet.dfm:703
+msgid "Accounts Balance:"
+msgstr "Rekeningsaldo:"
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsAdd..Caption
+#: gui-classic/UFRMWallet.dfm:730
+msgid ">"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsAddAll..Caption
+#: gui-classic/UFRMWallet.dfm:738
+msgid ">>"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsDel..Caption
+#: gui-classic/UFRMWallet.dfm:746
+msgid "<"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..pnlSelectedAccountsLeft..sbSelectedAccountsDelAll..Caption
+#: gui-classic/UFRMWallet.dfm:754
+msgid "<<"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMyAccounts..pcAccountsOptions..tsMultiSelectAccounts..bbSelectedAccountsOperation..Caption
+#. FRMWallet..MainMenu..MiOperations..Caption
+#: gui-classic/UFRMWallet.dfm:763 gui-classic/UFRMWallet.dfm:1278
+msgid "Operations"
+msgstr "Handelingen"
+
+#. FRMWallet..PageControl..tsPendingOperations..Caption
+#: gui-classic/UFRMWallet.dfm:829
+msgid "Pending Operations"
+msgstr "Lopende Handelingen"
+
+#. FRMWallet..PageControl..tsPendingOperations..pnlPendingOperations..Label10....Caption
+#: gui-classic/UFRMWallet.dfm:865
+msgid ""
+"Here you can see Operations transmited/received from other nodes that will "
+"be included in next block. There is no guarantee that other nodes will "
+"include them when mining, so it's important that you mine too to help "
+"include Operations to the main BlockChain"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Caption
+#: gui-classic/UFRMWallet.dfm:879
+msgid "Block Explorer"
+msgstr "Blok verkenner"
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..Label9..Caption
+#. FRMWallet..PageControl..tsOperations..Panel1..Label2..Caption
+#: gui-classic/UFRMWallet.dfm:898 gui-classic/UFRMWallet.dfm:994
+msgid "Filter by blocks range"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..lblHashRateBackBlocks..Caption
+#: gui-classic/UFRMWallet.dfm:907
+msgid "HashRate back blocks"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..lblHashRateBackBlocks1..Caption
+#: gui-classic/UFRMWallet.dfm:916
+msgid "Units"
+msgstr "Eenheden"
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits..Text
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:955 gui-classic/UFRMWallet.dfm:960
+msgid "Mh/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:959
+msgid "Kh/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:961
+msgid "Gh/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsBlockChain..Panel2..cbHashRateUnits....Items.Strings
+#: gui-classic/UFRMWallet.dfm:962
+msgid "Th/s"
+msgstr ""
+
+#. FRMWallet..PageControl..tsOperations..Caption
+#. FRMWallet..MainMenu..MiOperations..MiOperationsExplorer..Caption
+#: gui-classic/UFRMWallet.dfm:975 gui-classic/UFRMWallet.dfm:1305
+msgid "Operations Explorer"
+msgstr "Handelingen Verkenner"
+
+#. FRMWallet..PageControl..tsLogs..Caption
+#: gui-classic/UFRMWallet.dfm:1027
+msgid "Logs"
+msgstr "Logboeken"
+
+#. FRMWallet..PageControl..tsLogs..pnlTopLogs..cbShowDebugLogs..Caption
+#: gui-classic/UFRMWallet.dfm:1046
+msgid "Show Debug Logs"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Caption
+#: gui-classic/UFRMWallet.dfm:1062
+msgid "Node Stats"
+msgstr ""
+
+#. FRMWallet..PageControl..tsNodeStats..Label3..Caption
+#: gui-classic/UFRMWallet.dfm:1076
+msgid "Active Connections:"
+msgstr "Active verbindingen:"
+
+#. FRMWallet..PageControl..tsNodeStats..Label6..Caption
+#: gui-classic/UFRMWallet.dfm:1086
+msgid "Known Node Servers:"
+msgstr "Bekende Node Servers:"
+
+#. FRMWallet..PageControl..tsNodeStats..Label7..Caption
+#: gui-classic/UFRMWallet.dfm:1096
+msgid "Blacklisted Nodes"
+msgstr ""
+
+#. FRMWallet..PageControl..tsMessages..Caption
+#: gui-classic/UFRMWallet.dfm:1135
+msgid "Messages"
+msgstr "Berichten"
+
+#. FRMWallet..PageControl..tsMessages..Label11..Caption
+#: gui-classic/UFRMWallet.dfm:1149
+msgid "Messages:"
+msgstr "Berichten:"
+
+#. FRMWallet..PageControl..tsMessages..Label12..Caption
+#: gui-classic/UFRMWallet.dfm:1158
+msgid "Message to send:"
+msgstr "Bericht om te versturen:"
+
+#. FRMWallet..PageControl..tsMessages..Label13..Caption
+#: gui-classic/UFRMWallet.dfm:1167
+msgid "Available Connections:"
+msgstr "Beschikbare verbindening:"
+
+#. FRMWallet..PageControl..tsMessages..Label14....Caption
+#: gui-classic/UFRMWallet.dfm:1178
+msgid ""
+"(Messages will be encrypted, so only dest connection will be able to read "
+"it)"
+msgstr ""
+"(Berichten zullen versleuteld zijn, alleen ontv connectie zal het kunnen "
+"lezen)"
+
+#. FRMWallet..PageControl..tsMessages..bbSendAMessage..Caption
+#: gui-classic/UFRMWallet.dfm:1203
+msgid "Send a Message"
+msgstr "Stuur een Bericht"
+
+#. FRMWallet..PageControl..tsMessages..memoMessageToSend....Lines.Strings
+#: gui-classic/UFRMWallet.dfm:1232
+msgid "memoMessageToSend"
+msgstr ""
+
+#. FRMWallet..MainMenu..miProject..Caption
+#: gui-classic/UFRMWallet.dfm:1247
+msgid "Project"
+msgstr ""
+
+#. FRMWallet..MainMenu..miProject..miPrivatekeys..Caption
+#: gui-classic/UFRMWallet.dfm:1249
+msgid "Private Keys"
+msgstr "Prive Sleutels"
+
+#. FRMWallet..MainMenu..miProject..IPnodes1..Caption
+#: gui-classic/UFRMWallet.dfm:1262
+msgid "Available Node List"
+msgstr "Beschikbare Node lijst"
+
+#. FRMWallet..MainMenu..MiOperations..miNewOperation..Caption
+#: gui-classic/UFRMWallet.dfm:1280
+msgid "New single Operation"
+msgstr "Nieuwe enkele handeling"
+
+#. FRMWallet..MainMenu..MiOperations..MiFindOperationbyOpHash..Caption
+#: gui-classic/UFRMWallet.dfm:1285
+msgid "Find Operation by OpHash"
+msgstr "Zoek Handelingen op OpHash"
+
+#. FRMWallet..MainMenu..MiOperations..MiDecodePayload..Caption
+#: gui-classic/UFRMWallet.dfm:1290
+msgid "Decode Payload"
+msgstr "Decodeer Lading"
+
+#. FRMWallet..MainMenu..MiOperations..MiAccountInformation..Caption
+#: gui-classic/UFRMWallet.dfm:1300
+msgid "Account Information"
+msgstr "Rekening Informatie"
+
+#. FRMWallet..MainMenu..MiOperations..MiAddaccounttoSelected..Caption
+#: gui-classic/UFRMWallet.dfm:1313
+msgid "Add account to selected"
+msgstr "Voeg rekening toe aan selectie"
+
+#. FRMWallet..MainMenu..MiOperations..MiRemoveaccountfromselected..Caption
+#: gui-classic/UFRMWallet.dfm:1318
+msgid "Remove account from selected"
+msgstr "Verwijder rekening van selectie"
+
+#. FRMWallet..MainMenu..MiOperations..MiMultiaccountoperation..Caption
+#: gui-classic/UFRMWallet.dfm:1323
+msgid "Multi account operation"
+msgstr "Meerdere rekening handeling"
+
+#. FRMWallet..MainMenu..MiOperations..MiFindpreviousaccountwithhighbalance..Caption
+#: gui-classic/UFRMWallet.dfm:1330
+msgid "Find previous account with high balance"
+msgstr "Zoek vorige rekening met hoog saldo"
+
+#. FRMWallet..MainMenu..MiOperations..MiFindnextaccountwithhighbalance..Caption
+#: gui-classic/UFRMWallet.dfm:1335
+msgid "Find next account with high balance"
+msgstr "Zoek volgende rekening met hoog saldo"
+
+#. FRMWallet..MainMenu..miAbout..Caption
+#: gui-classic/UFRMWallet.dfm:1341
+msgid "About"
+msgstr "Over"
+
+#. FRMWallet..MainMenu..miAbout..miAboutPascalCoin..Caption
+#: gui-classic/UFRMWallet.dfm:1343
+msgid "About Pascal Coin..."
+msgstr "Over Pascal Munt..."
+
+#. FRMWalletKeys..Caption
+#: gui-classic/UFRMWalletKeys.dfm:6
+msgid "Wallet keys"
+msgstr "Portemonne sleutels"
+
+#. FRMWalletKeys..lblEncryptionTypeCaption..Caption
+#: gui-classic/UFRMWalletKeys.dfm:25
+msgid "Encryption type:"
+msgstr "Versleutel type:"
+
+#. FRMWalletKeys..lblEncryptionType..Caption
+#. FRMWalletKeys..lblKeyName..Caption
+#: gui-classic/UFRMWalletKeys.dfm:32 gui-classic/UFRMWalletKeys.dfm:47
+msgid "000000000"
+msgstr ""
+
+#. FRMWalletKeys..lblKeyNameCaption..Caption
+#: gui-classic/UFRMWalletKeys.dfm:39
+msgid "Key name:"
+msgstr "Sleutel naam:"
+
+#. FRMWalletKeys..lblPrivateKeyCaption..Caption
+#: gui-classic/UFRMWalletKeys.dfm:54
+msgid "Public Key:"
+msgstr "Publieke Sleutel:"
+
+#. FRMWalletKeys..lblKeysEncrypted..Caption
+#: gui-classic/UFRMWalletKeys.dfm:62
+msgid "lblKeysEncrypted"
+msgstr ""
+
+#. FRMWalletKeys..bbExportPrivateKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:85
+msgid "Export Private key"
+msgstr "Export Prive sleutel"
+
+#. FRMWalletKeys..memoPrivateKey....Lines.Strings
+#: gui-classic/UFRMWalletKeys.dfm:158
+msgid "memoPrivateKey"
+msgstr ""
+
+#. FRMWalletKeys..bbChangeName..Caption
+#: gui-classic/UFRMWalletKeys.dfm:169
+msgid "Change Name"
+msgstr "Wijzig Naam"
+
+#. FRMWalletKeys..bbImportPrivateKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:178
+msgid "Import Private key"
+msgstr "Importeer Prive sleutel"
+
+#. FRMWalletKeys..bbExportPublicKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:240
+msgid "Export Public key"
+msgstr "Export Publieke sluetel"
+
+#. FRMWalletKeys..bbImportPublicKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:306
+msgid "Import Public key"
+msgstr "Importeer Publieke sleutel"
+
+#. FRMWalletKeys..bbGenerateNewKey..Caption
+#: gui-classic/UFRMWalletKeys.dfm:372
+msgid "Generate a new Key"
+msgstr "Genereer een nieuwe Sleutel"
+
+#. FRMWalletKeys..bbDelete..Caption
+#: gui-classic/UFRMWalletKeys.dfm:434
+msgid "Delete"
+msgstr "Verwijder"
+
+#. FRMWalletKeys..bbExportAllWalletKeys..Caption
+#: gui-classic/UFRMWalletKeys.dfm:568
+msgid "Export all Wallet Keys to a file"
+msgstr ""
+
+#. FRMWalletKeys..bbImportKeysFile..Caption
+#: gui-classic/UFRMWalletKeys.dfm:634
+msgid "Import a Wallet Keys File"
+msgstr "Importeer een Portemonnee Sleutel Bestand"
+
+#. FRMWalletKeys..bbLock..Caption
+#: gui-classic/UFRMWalletKeys.dfm:700
+msgid "Lock"
+msgstr "Sluit"
+
+#. FRMWalletKeys..SaveDialog..DefaultExt
+#. FRMWalletKeys..OpenDialog..DefaultExt
+#: gui-classic/UFRMWalletKeys.dfm:758 gui-classic/UFRMWalletKeys.dfm:765
+msgid "dat"
+msgstr ""
+
+#. FRMWalletKeys..SaveDialog..Filter
+#: gui-classic/UFRMWalletKeys.dfm:759
+msgid "Wallet keys file|*.dat|All files|*.*"
+msgstr ""
+
+#. FRMWalletKeys..OpenDialog..Filter
+#: gui-classic/UFRMWalletKeys.dfm:766
+msgid "Wallet keys file (*.dat)|*.dat|All files (*.*)|*.*"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedHash
+#. Programmer's name for it: SUnSupportedHash
+#: core/URandomHash.pas:267 core/URandomHash2.pas:219
+msgid "Unsupported Hash Selected"
+msgstr ""
+
+#. Programmer's name for it: SInvalidRound
+#. Programmer's name for it: SInvalidRound
+#: core/URandomHash.pas:268 core/URandomHash2.pas:220
+msgid "Round must be between 0 and N inclusive"
+msgstr ""
+
+#. Programmer's name for it: SOverlappingArgs
+#. Programmer's name for it: SOverlappingArgs
+#: core/URandomHash.pas:269 core/URandomHash2.pas:221
+msgid "Overlapping read/write regions"
+msgstr ""
+
+#. Programmer's name for it: SBufferTooSmall
+#. Programmer's name for it: SBufferTooSmall
+#: core/URandomHash.pas:270 core/URandomHash2.pas:222
+msgid "Buffer too small to apply memory transform"
+msgstr ""
+
+#. Programmer's name for it: SBlockHeaderTooSmallForNonce
+#. Programmer's name for it: SBlockHeaderTooSmallForNonce
+#: core/URandomHash.pas:271 core/URandomHash2.pas:223
+msgid "Buffer too small to contain nonce"
+msgstr ""
+
+#. Programmer's name for it: SAESEngineNotInitialised
+#. Programmer's name for it: SAESEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:37
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:37
+msgid "AES Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBufferTooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#. Programmer's name for it: SInputBuffertooShort
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:38
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:38
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:39
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:39
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:35
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:43
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:36
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:36
+msgid "Input Buffer too Short"
+msgstr ""
+
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBufferTooSmall
+#. Programmer's name for it: SOutputBufferTooSmall
+#. Programmer's name for it: SOutputBufferTooSmall
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#. Programmer's name for it: SOutputBuffertooShort
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:39
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:39
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:40
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:40
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:39
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:32
+#: libraries/cryptolib4pascal/ClpPaddedBufferedBlockCipher.pas:40
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:36
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:44
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:37
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:37
+msgid "Output Buffer too Short"
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterAESInit
+#. Programmer's name for it: SInvalidParameterAESInit
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:40
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:40
+msgid "Invalid Parameter Passed to AES Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:41
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:41
+msgid "Key Length not 128/192/256 bits."
+msgstr "Sleutel Lengte niet 128/192/256 bits."
+
+#. Programmer's name for it: SInvalidOperation
+#. Programmer's name for it: SInvalidOperation
+#: libraries/cryptolib4pascal/ClpAesEngine.pas:42
+#: libraries/cryptolib4pascal/ClpAesLightEngine.pas:42
+msgid "Should Never Get Here"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpAESPRNGRandom.pas:40
+msgid "AES RNG Seed Length must be either one of these \"128/192/256 bits\"."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpAgreementUtilities.pas:43
+msgid "Raw Agreement Algorithm \"%s\" Not Recognised."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpAgreementUtilities.pas:45
+msgid "Basic Agreement Algorithm \"%s\" Not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SArgon2TypeInvalid
+#: libraries/cryptolib4pascal/ClpArgon2ParametersGenerator.pas:41
+msgid "Selected Argon2Type is Invalid"
+msgstr ""
+
+#. Programmer's name for it: SArgon2VersionInvalid
+#: libraries/cryptolib4pascal/ClpArgon2ParametersGenerator.pas:42
+msgid "Selected Argon2Version is Invalid"
+msgstr ""
+
+#. Programmer's name for it: SArgon2MemoryCostTypeInvalid
+#: libraries/cryptolib4pascal/ClpArgon2ParametersGenerator.pas:43
+msgid "Selected Argon2MemoryCostType is Invalid"
+msgstr ""
+
+#. Programmer's name for it: SInvalidLength
+#: libraries/cryptolib4pascal/ClpArrayUtils.pas:30
+msgid "%d \" > \" %d"
+msgstr ""
+
+#. Programmer's name for it: SDataOverflow
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:43
+msgid "Data Overflow"
+msgstr ""
+
+#. Programmer's name for it: SDataOverflow
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:45
+msgid "Corrupted Stream - Invalid High Tag Number Found"
+msgstr ""
+
+#. Programmer's name for it: SEOFFound
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:46
+msgid "EOF Found Inside Tag Value"
+msgstr ""
+
+#. Programmer's name for it: SInvalidEnd
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:47
+msgid "EOF Found When Length Expected"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDerLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:48
+msgid "DER Length More Than 4 Bytes: %d"
+msgstr ""
+
+#. Programmer's name for it: SEndOfStream
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:49
+msgid "EOF Found Reading Length"
+msgstr ""
+
+#. Programmer's name for it: SNegativeLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:50
+msgid "Corrupted Stream - Negative Length Found"
+msgstr ""
+
+#. Programmer's name for it: SOutOfBoundsLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:51
+msgid "Corrupted stream - Out of Bounds Length Found"
+msgstr ""
+
+#. Programmer's name for it: SUnknownTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:52
+msgid "Unknown Tag \" %d \" Encountered"
+msgstr ""
+
+#. Programmer's name for it: SEndOfContent
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:53
+msgid "Unexpected End-of-Contents Marker"
+msgstr ""
+
+#. Programmer's name for it: SIndefiniteLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:54
+msgid "Indefinite Length Primitive Encoding Encountered"
+msgstr ""
+
+#. Programmer's name for it: SUnknownBerObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:55
+msgid "Unknown BER Object Encountered"
+msgstr ""
+
+#. Programmer's name for it: SCorruptedStream
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:56
+msgid "Corrupted Stream Detected: %s"
+msgstr ""
+
+#. Programmer's name for it: SInvalidLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:57
+msgid "Negative Lengths not Allowed\", \"Length\""
+msgstr ""
+
+#. Programmer's name for it: SEndOfStreamTwo
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:58
+msgid "DEF Length  %d \" TObject truncated by \" %d"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBufferLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:59
+msgid "Buffer Length Not Right For Data"
+msgstr ""
+
+#. Programmer's name for it: SMalformedContent
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:60
+msgid "Malformed End-of-Contents Marker"
+msgstr ""
+
+#. Programmer's name for it: SExtraData
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:62
+msgid "Extra Data Found After Object"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedObjectStream
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:63
+msgid "Cannot Recognise Object in Stream"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedObjectByteArray
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:64
+msgid "Cannot Recognise Object in ByteArray"
+msgstr ""
+
+#. Programmer's name for it: SIllegalObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:65
+msgid "Illegal Object in GetInstance:  %s, \"obj\""
+msgstr ""
+
+#. Programmer's name for it: SStrNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:66
+msgid "\"Str\" Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SProcessingError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:67
+msgid "Error Processing Object : \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:68
+msgid "Object Implicit - Explicit Expected."
+msgstr ""
+
+#. Programmer's name for it: SUnknownObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:69
+msgid "Unknown object in GetInstance:  %s, \"obj\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSequence
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:70
+msgid "\"Failed to Construct Sequence from byte array: \" %s"
+msgstr ""
+
+#. Programmer's name for it: SImplicitObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:71
+msgid "Implicitly Tagged Object"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:72
+msgid "Implicit Tagging for Tag:  %d"
+msgstr ""
+
+#. Programmer's name for it: SUnknownObjectBER
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:73
+msgid "Unknown BER Object Encountered: $%x"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTagging
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:74
+msgid "Implicit Tagging not Implemented"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTagging
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:76
+msgid "Sequences Must Use Constructed Encoding (see X.690 8.9.1/8.10.1)"
+msgstr ""
+
+#. Programmer's name for it: SImplicitTagging
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:78
+msgid "Sets Must Use Constructed Encoding (see X.690 8.11.1/8.12.1)"
+msgstr ""
+
+#. Programmer's name for it: SMalformedObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:79
+msgid "Malformed Object %s"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:80
+msgid "Unsupported Tag Number"
+msgstr ""
+
+#. Programmer's name for it: SConvertError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:81
+msgid "EIOCryptoLibException Converting Stream to Byte Array: %s"
+msgstr ""
+
+#. Programmer's name for it: SEncodingError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:82
+msgid "Encoding Error in GetInstance:  %s  \"obj\""
+msgstr ""
+
+#. Programmer's name for it: SDataNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:83
+msgid "\"data\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidRange
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:84
+msgid "Must be in the Range 0 to 7\", \"padBits\""
+msgstr ""
+
+#. Programmer's name for it: SPadBitError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:85
+msgid "If \"data\" is Empty, \"padBits\" Must be 0"
+msgstr ""
+
+#. Programmer's name for it: SUnalignedData
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:86
+msgid "Attempt to Get non-octet Aligned Data from BIT STRING\""
+msgstr ""
+
+#. Programmer's name for it: STruncatedBitString
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:87
+msgid "Truncated BIT STRING Detected\", \"octets\""
+msgstr ""
+
+#. Programmer's name for it: SNotImplemented
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:88
+msgid "Not Implemented %s"
+msgstr ""
+
+#. Programmer's name for it: SUnConstructedTag
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:89
+msgid "Explicit Tags Must be Constructed (see X.690 8.14.2)"
+msgstr ""
+
+#. Programmer's name for it: SParsingError
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:90
+msgid "%s"
+msgstr ""
+
+#. Programmer's name for it: SEmptyInput
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:91
+msgid "Input Cannot be Empty \"astr\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidValue
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:92
+msgid "Byte Value Should Have 1 Byte in it', \"val\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidBooleanValue
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:93
+msgid "BOOLEAN Value Should Have 1 Byte in it\", \"Value\""
+msgstr ""
+
+#. Programmer's name for it: SMalformedEnumerated
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:94
+msgid "Malformed Enumerated"
+msgstr ""
+
+#. Programmer's name for it: SZeroLength
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:95
+msgid "Enumerated has Zero Length, \"enc\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidEncoding
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:96
+msgid "Invalid Encoding Value: %d"
+msgstr ""
+
+#. Programmer's name for it: SFewObject
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:97
+msgid "Too Few Objects in Input Vector, \"v\""
+msgstr ""
+
+#. Programmer's name for it: SVectorTooLarge
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:98
+msgid "Input Vector too Large\", \"vector\""
+msgstr ""
+
+#. Programmer's name for it: SVectorTooLarge
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:100
+msgid ""
+"No Tagged Object Found in Vector. Structure Doesn 't Seem to be of Type "
+"External, \"Vector\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidEncodingValue
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:101
+msgid "Invalid Encoding Value"
+msgstr ""
+
+#. Programmer's name for it: SObjectNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:102
+msgid " \"obj\" Can't be Nil"
+msgstr ""
+
+#. Programmer's name for it: SValueNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:103
+msgid " \"value\" Can't be Nil"
+msgstr ""
+
+#. Programmer's name for it: SMalformedInteger
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:104
+msgid "Malformed Integer"
+msgstr ""
+
+#. Programmer's name for it: SIdentifierNil
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:105
+msgid "Identifier Cannot be Empty"
+msgstr ""
+
+#. Programmer's name for it: SInvalidOID
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:106
+msgid "\"String \" %s is \" not an OID\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidBranchId
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:107
+msgid "\"String \" %s \" not a valid OID branch\", \"branchID\""
+msgstr ""
+
+#. Programmer's name for it: SIllegalCharacters
+#: libraries/cryptolib4pascal/ClpAsn1Objects.pas:108
+msgid "String Contains Illegal Characters \"str\""
+msgstr ""
+
+#. Programmer's name for it: SExpectedPublicKey
+#: libraries/cryptolib4pascal/ClpAsymmetricCipherKeyPair.pas:30
+msgid "Expected a Public Key \"publicParameter\""
+msgstr ""
+
+#. Programmer's name for it: SExpectedPrivateKey
+#: libraries/cryptolib4pascal/ClpAsymmetricCipherKeyPair.pas:31
+msgid "Expected a Private Key \"privateParameter\""
+msgstr ""
+
+#. Programmer's name for it: SOutputBufferTooSmall
+#. Programmer's name for it: SOutputBufferTooSmall
+#: libraries/cryptolib4pascal/ClpBaseKdfBytesGenerator.pas:36
+#: libraries/cryptolib4pascal/ClpPascalCoinECIESKdfBytesGenerator.pas:34
+msgid "Output Buffer too Small"
+msgstr ""
+
+#. Programmer's name for it: SOutputLengthTooLarge
+#: libraries/cryptolib4pascal/ClpBaseKdfBytesGenerator.pas:37
+msgid "Output Length too Large"
+msgstr ""
+
+#. Programmer's name for it: SKDFParameterNotFound
+#. Programmer's name for it: SKDFParameterNotFound
+#: libraries/cryptolib4pascal/ClpBaseKdfBytesGenerator.pas:38
+#: libraries/cryptolib4pascal/ClpPascalCoinECIESKdfBytesGenerator.pas:35
+msgid "KDF Parameters Required For KDF Generator"
+msgstr ""
+
+#. Programmer's name for it: SDivisionByZero
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:36
+msgid "Division by Zero Error"
+msgstr ""
+
+#. Programmer's name for it: SModulusPositive
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:37
+msgid "Modulus must be Positive"
+msgstr ""
+
+#. Programmer's name for it: SNotRelativelyPrime
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:38
+msgid "Numbers not Relatively Prime."
+msgstr ""
+
+#. Programmer's name for it: SNegativeValue
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:39
+msgid "Cannot be Called on Value < 0"
+msgstr ""
+
+#. Programmer's name for it: SNegativeExponent
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:40
+msgid "Negative Exponent"
+msgstr ""
+
+#. Programmer's name for it: SResultTooLarge
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:41
+msgid "Result too Large"
+msgstr ""
+
+#. Programmer's name for it: SNegativeBitPosition
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:42
+msgid "Bit Position must not be Negative"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBitAddress
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:43
+msgid "Bit Address less than Zero"
+msgstr ""
+
+#. Programmer's name for it: SZeroLengthBigInteger
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:44
+msgid "Zero length BigInteger"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSign
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:45
+msgid "Invalid Sign Value"
+msgstr ""
+
+#. Programmer's name for it: SNegativeSizeInBits
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:46
+msgid "sizeInBits must be non-negative"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBitLength
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:47
+msgid "bitLength < 2"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBase
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:48
+msgid "Only bases 2, 8, 10, or 16 allowed"
+msgstr ""
+
+#. Programmer's name for it: SBadCharacterRadix8
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:49
+msgid "Bad Character in radix 8 string: %s"
+msgstr ""
+
+#. Programmer's name for it: SBadCharacterRadix2
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:50
+msgid "Bad Character in radix 2 string: %s"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedBase
+#: libraries/cryptolib4pascal/ClpBigInteger.pas:51
+msgid "Only bases 2, 8, 10, 16 are allowed"
+msgstr ""
+
+#. Programmer's name for it: SInvalidLength
+#: libraries/cryptolib4pascal/ClpBigIntegers.pas:31
+msgid "Standard Length Exceeded, \"n\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidMinValue
+#: libraries/cryptolib4pascal/ClpBigIntegers.pas:32
+msgid "\"min\" may not be greater than \"max\"\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:37
+msgid "Initialisation Vector Must be the Same Length as Block Size"
+msgstr ""
+
+#. Programmer's name for it: SInvalidChangeState
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:38
+msgid "Cannot Change Encrypting State Without Providing Key."
+msgstr ""
+"Kan Versleutelde Status niet Veranderen Zonder Voorgeschreven Sleutel."
+
+#. Programmer's name for it: SInvalidParameterArgument
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:42
+msgid "CTR/SIC Mode Requires ParametersWithIV"
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterArgument
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:44
+msgid "CTR/SIC mode requires IV no greater than: %u bytes"
+msgstr ""
+
+#. Programmer's name for it: SInvalidTooSmallIVLength
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:45
+msgid "CTR/SIC mode requires IV of at least: %u bytes"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedCipher
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:47
+msgid "CtsBlockCipher Can Only Accept ECB or CBC Ciphers"
+msgstr ""
+
+#. Programmer's name for it: SNegativeInputLength
+#. Programmer's name for it: SInvalidLength
+#. Programmer's name for it: SNegativeInputLength
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:48
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:36
+#: libraries/cryptolib4pascal/ClpPaddedBufferedBlockCipher.pas:42
+msgid "Can't Have a Negative Input Length!"
+msgstr ""
+
+#. Programmer's name for it: SCTSDoFinalError
+#: libraries/cryptolib4pascal/ClpBlockCipherModes.pas:49
+msgid "Need at Least One Block of Input For CTS"
+msgstr ""
+
+#. Programmer's name for it: SBlowfishEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:36
+msgid "Blowfish Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SBlowfishEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:38
+msgid "Invalid Parameter Passed to Blowfish Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SOutputBuffertooShort
+#: libraries/cryptolib4pascal/ClpBlowfishEngine.pas:42
+msgid "Key Length must be between 32 - 448 bits and divisible by 8."
+msgstr "Sleutel lengte moet tussen de 32 - 448 bits zijn en deelbaar door 8."
+
+#. Programmer's name for it: SInputNil
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:37
+msgid "Input Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SCipherNil
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:38
+msgid "Cipher Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SDataNotBlockSizeAligned
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:40
+msgid "Data not Block Size Aligned"
+msgstr ""
+
+#. Programmer's name for it: SOutputBufferTooSmallForDoFinal
+#: libraries/cryptolib4pascal/ClpBufferedBlockCipher.pas:41
+msgid "Output Buffer too Short for DoFinal()"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBufferSize
+#. Programmer's name for it: SInvalidBufferSize
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:33
+#: libraries/hashlib4pascal/HlpHash.pas:17
+msgid "\"BufferSize\" Must Be Greater Than Zero"
+msgstr ""
+
+#. Programmer's name for it: SInvalidBufferSize
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:35
+msgid "Input and Output Streams Must not Point to the Same Stream Instance"
+msgstr ""
+
+#. Programmer's name for it: SUnAssignedInputStream
+#. Programmer's name for it: SUnAssignedStream
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:36
+#: libraries/hashlib4pascal/HlpHash.pas:18
+msgid "Input Stream Is Unassigned"
+msgstr ""
+
+#. Programmer's name for it: SUnAssignedOutputStream
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:37
+msgid "Output Stream Is Unassigned"
+msgstr ""
+
+#. Programmer's name for it: SPositionOutOfRange
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:38
+msgid "Current Position Is Out Of Range"
+msgstr ""
+
+#. Programmer's name for it: SPositionOutOfRange
+#: libraries/cryptolib4pascal/ClpBufferedCipherBase.pas:40
+msgid "Stream Position (or Stream Length to Process) Is Out Of Range"
+msgstr ""
+
+#. Programmer's name for it: SCipherNil
+#: libraries/cryptolib4pascal/ClpBufferedStreamCipher.pas:34
+msgid "Cipher Instance Cannot be Nil"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpCipherKeyGenerator.pas:34
+msgid "Strength must be a Positive Value, \"defaultStrength\""
+msgstr ""
+
+#. Programmer's name for it: SParametersNil
+#: libraries/cryptolib4pascal/ClpCipherKeyGenerator.pas:35
+msgid "Parameters Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SGeneratorNotInitialized
+#: libraries/cryptolib4pascal/ClpCipherKeyGenerator.pas:36
+msgid "Generator has not been Initialised"
+msgstr ""
+
+#. Programmer's name for it: SMechanismNil
+#. Programmer's name for it: SMechanismNil
+#. Programmer's name for it: SMechanismNil
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:56
+#: libraries/cryptolib4pascal/ClpDigestUtilities.pas:42
+#: libraries/cryptolib4pascal/ClpSignerUtilities.pas:69
+msgid "Mechanism Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNil
+#. Programmer's name for it: SAlgorithmNil
+#. Programmer's name for it: SAlgorithmNil
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:57
+#: libraries/cryptolib4pascal/ClpParameterUtilities.pas:37
+#: libraries/cryptolib4pascal/ClpSignerUtilities.pas:70
+msgid "Algorithm Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedCipher
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:58
+msgid "Cipher \"%s\" Not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedCipher
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:60
+msgid ""
+"Warning: SIC-Mode Can Become a TwoTime-Pad if the Blocksize of the Cipher "
+"is Too Small. Use a Cipher With a Block Size of at Least 128 bits (e.g. AES)"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedCipher
+#: libraries/cryptolib4pascal/ClpCipherUtilities.pas:62
+msgid "Modes and Paddings Not Used for Stream Ciphers"
+msgstr ""
+
+#. Programmer's name for it: SEncodingInstanceNil
+#. Programmer's name for it: SEncodingInstanceNil
+#: libraries/cryptolib4pascal/ClpConverters.pas:33
+#: libraries/hashlib4pascal/HlpConverters.pas:16
+msgid "Encoding Instance Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SNegativeOffset
+#: libraries/cryptolib4pascal/ClpCryptoApiRandomGenerator.pas:32
+msgid "Start Offset Cannot be Negative, \"Start\""
+msgstr ""
+
+#. Programmer's name for it: SArrayTooSmall
+#: libraries/cryptolib4pascal/ClpCryptoApiRandomGenerator.pas:33
+msgid "Byte Array Too Small For Requested Offset and Length"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpCurve25519Custom.pas:40
+msgid "Value Invalid for Curve25519FieldElement \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#. Programmer's name for it: SOneOfECFieldElementIsNil
+#: libraries/cryptolib4pascal/ClpCurve25519Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecP256K1Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecP256R1Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecP384R1Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecP521R1Custom.pas:41
+#: libraries/cryptolib4pascal/ClpSecT283Custom.pas:42
+msgid "Exactly One of the Field Elements is Nil"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:45
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:38
+msgid "Diffie-Hellman Public Key has Wrong Parameters."
+msgstr ""
+
+#. Programmer's name for it: SNotDHPrivateKeyParameters
+#. Programmer's name for it: SNotDHPrivateKeyParameters
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:46
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:39
+msgid "DHEngine Expects DHPrivateKeyParameters"
+msgstr ""
+
+#. Programmer's name for it: SMessageNotInitialized
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:47
+msgid "Message not Initialised"
+msgstr "Bericht niet geinitialiseerd"
+
+#. Programmer's name for it: SSharedKeyInvalid
+#. Programmer's name for it: SSharedKeyInvalid
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:48
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:41
+msgid "Shared Key Can't be 1"
+msgstr ""
+
+#. Programmer's name for it: SDHPublicKeyWeak
+#. Programmer's name for it: SDHPublicKeyWeak
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:49
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:42
+msgid "Diffie-Hellman Public Key is Weak"
+msgstr ""
+
+#. Programmer's name for it: SDHPublicKeyNil
+#: libraries/cryptolib4pascal/ClpDHAgreement.pas:50
+msgid "DH Public Key Parameter Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNotInitialized
+#: libraries/cryptolib4pascal/ClpDHBasicAgreement.pas:40
+msgid "Agreement Algorithm not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SParametersCannotBeNil
+#. Programmer's name for it: SParametersCannotBeNil
+#. Programmer's name for it: SParametersCannotBeNil
+#: libraries/cryptolib4pascal/ClpDHBasicKeyPairGenerator.pas:42
+#: libraries/cryptolib4pascal/ClpDHKeyPairGenerator.pas:42
+#: libraries/cryptolib4pascal/ClpDsaKeyPairGenerator.pas:44
+msgid "\"parameters\" Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SPNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:33
+msgid "P Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SGNil
+#. Programmer's name for it: SGNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:34
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:35
+msgid "G Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SQNil
+#. Programmer's name for it: SQNil
+#. Programmer's name for it: SQNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:35
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:37
+#: libraries/cryptolib4pascal/ClpECPublicKeyParameters.pas:35
+msgid "Q Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SJNil
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:36
+msgid "J Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SBadSequenceSize
+#. Programmer's name for it: SBadSequenceSize
+#. Programmer's name for it: SBadSequenceSize
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:37
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:34
+#: libraries/cryptolib4pascal/ClpDsaParameter.pas:32
+msgid "Bad Sequence Size \"seq\": %d"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDHDomainParameters
+#: libraries/cryptolib4pascal/ClpDHDomainParameters.pas:38
+msgid "Invalid DHDomainParameters: %s"
+msgstr ""
+
+#. Programmer's name for it: SPUnInitialized
+#. Programmer's name for it: SPUnInitialized
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:33
+#: libraries/cryptolib4pascal/ClpDsaParameters.pas:32
+msgid "\"P\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SGUnInitialized
+#. Programmer's name for it: SGUnInitialized
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:34
+#: libraries/cryptolib4pascal/ClpDsaParameters.pas:34
+msgid "\"G\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SMustBeOddPrime
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:35
+msgid "Field must be an Odd Prime, \"P\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidGeneratorRange
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:36
+msgid "Generator must in the Range [2, p - 2], \"G\""
+msgstr ""
+
+#. Programmer's name for it: SQTooBigToBeAFactor
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:37
+msgid "Q too Big to be a Factor of (P - 1), \"Q\""
+msgstr ""
+
+#. Programmer's name for it: SMTooBig
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:38
+msgid "M value must be < BitLength of P, \"M\""
+msgstr ""
+
+#. Programmer's name for it: SLErrorOne
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:39
+msgid "when L value specified, it must be less than bitlength(P), \"L\""
+msgstr ""
+
+#. Programmer's name for it: SLErrorTwo
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:40
+msgid "when L value specified, it may not be less than m value, \"L\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSubGroupFactor
+#: libraries/cryptolib4pascal/ClpDHParameters.pas:41
+msgid "Subgroup factor must be >= 2, \"j\""
+msgstr ""
+
+#. Programmer's name for it: SXUnInitialized
+#. Programmer's name for it: SXUnInitialized
+#: libraries/cryptolib4pascal/ClpDHPrivateKeyParameters.pas:33
+#: libraries/cryptolib4pascal/ClpDsaPrivateKeyParameters.pas:32
+msgid "\"X\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SYUnInitialized
+#. Programmer's name for it: SYUnInitialized
+#: libraries/cryptolib4pascal/ClpDHPublicKeyParameters.pas:33
+#: libraries/cryptolib4pascal/ClpDsaPublicKeyParameters.pas:32
+msgid "\"Y\" Cannot Be Uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDHPublicKey
+#: libraries/cryptolib4pascal/ClpDHPublicKeyParameters.pas:34
+msgid "Invalid DH public key \"Y\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidYInCorrectGroup
+#. Programmer's name for it: SInvalidYInCorrectGroup
+#: libraries/cryptolib4pascal/ClpDHPublicKeyParameters.pas:35
+#: libraries/cryptolib4pascal/ClpDsaPublicKeyParameters.pas:33
+msgid "\"Y\" Value Does Not Appear To Be In Correct Group"
+msgstr ""
+
+#. Programmer's name for it: SSeedNil
+#. Programmer's name for it: SSeedNil
+#: libraries/cryptolib4pascal/ClpDHValidationParameters.pas:30
+#: libraries/cryptolib4pascal/ClpDsaValidationParameters.pas:30
+msgid "\"Seed\" Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SSeedNil
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:32
+msgid "Seed Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SPGenCounterNil
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:33
+msgid "PGenCounter Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDHValidationParams
+#: libraries/cryptolib4pascal/ClpDHValidationParams.pas:35
+msgid "Invalid DHValidationParams: %s"
+msgstr ""
+
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#. Programmer's name for it: SOutputBufferTooShort
+#: libraries/cryptolib4pascal/ClpDigest.pas:31
+#: libraries/cryptolib4pascal/ClpHMac.pas:34
+#: libraries/hashlib4pascal/HlpBlake2B.pas:27
+#: libraries/hashlib4pascal/HlpBlake2S.pas:27
+#: libraries/hashlib4pascal/HlpSHA3.pas:29
+msgid "Output Buffer Too Short"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedDigest
+#: libraries/cryptolib4pascal/ClpDigestUtilities.pas:43
+msgid "Digest \"%s\" not recognised."
+msgstr ""
+
+#. Programmer's name for it: SPrivateKey
+#. Programmer's name for it: SPrivateKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:41
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:40
+msgid "Signing Requires Private Key."
+msgstr "Tekenen vereist Prive Sleutel."
+
+#. Programmer's name for it: SPublicKey
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:42
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:41
+msgid "Verification Requires Public Key."
+msgstr "Verificatie Vereist Publieke Sleutel."
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:44
+msgid "DSADigestSigner not Initialized for Signature Generation."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:46
+msgid "DSADigestSigner not Initialized for Verification"
+msgstr ""
+
+#. Programmer's name for it: SEncodingError
+#. Programmer's name for it: SEncodingError
+#: libraries/cryptolib4pascal/ClpDsaDigestSigner.pas:47
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:46
+msgid "Unable to Encode Signature"
+msgstr ""
+
+#. Programmer's name for it: SInvalidDsaParameter
+#: libraries/cryptolib4pascal/ClpDsaParameter.pas:33
+msgid "Invalid DsaParameter: %s"
+msgstr ""
+
+#. Programmer's name for it: SQUnInitialized
+#: libraries/cryptolib4pascal/ClpDsaParameters.pas:33
+msgid "\"Q\" Cannot Be Uninitialized"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:44
+msgid "L Values Must be Between 1024 and 3072 and a Multiple of 1024"
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:45
+msgid "N Must be \" %d \" for L = \" %d \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:46
+msgid "N Must be \" %d \" or \" %d \" for L = \" %d \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:48
+msgid "Digest Output Size Too Small for Value of N Which is \" %d \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:50
+msgid "Can Only Use SHA-1 For Generating FIPS 186-2 Parameters"
+msgstr ""
+
+#. Programmer's name for it: SInvalidNValueForSpecifiedL_Two
+#: libraries/cryptolib4pascal/ClpDsaParametersGenerator.pas:52
+msgid "Size Must Be From %d - %d and a multiple of %d, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SDSAPrivateKeyNotFound
+#: libraries/cryptolib4pascal/ClpDsaSigner.pas:44
+msgid "DSA Private Key Required For Signing"
+msgstr ""
+
+#. Programmer's name for it: SDSAPublicKeyNotFound
+#: libraries/cryptolib4pascal/ClpDsaSigner.pas:45
+msgid "DSA Public Key Required For Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:43
+msgid ""
+"Point and Scalar Arrays Should be Non-Null, and of Equal, Non-Zero, Length"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointLocation
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:44
+msgid "Point Must be on the Same Curve"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:45
+msgid "Invalid Point, \"P\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidResult
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:46
+msgid "Invalid Result"
+msgstr ""
+
+#. Programmer's name for it: SInvalidResult
+#: libraries/cryptolib4pascal/ClpECAlgorithms.pas:48
+#: libraries/cryptolib4pascal/ClpMultipliers.pas:46
+msgid "Fixed-Point Comb Doesn't Support Scalars Larger Than The Curve Order"
+msgstr ""
+
+#. Programmer's name for it: SInvalidValue
+#: libraries/cryptolib4pascal/ClpECC.pas:52
+msgid "Value Invalid in Fp Field Element, \" x \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidValue2
+#: libraries/cryptolib4pascal/ClpECC.pas:53
+msgid "Value Invalid in F2m Field Element, \"x\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value
+#: libraries/cryptolib4pascal/ClpECC.pas:54
+msgid "k2 must be smaller than k3"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:55
+msgid "k2 must be larger than 0"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:57
+msgid "Field elements are not both instances of F2mFieldElement"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:59
+msgid "Field elements are not elements of the same field F2m"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK2Value2
+#: libraries/cryptolib4pascal/ClpECC.pas:61
+msgid "One of the F2m field elements has incorrect representation"
+msgstr ""
+
+#. Programmer's name for it: SEvenValue
+#: libraries/cryptolib4pascal/ClpECC.pas:62
+msgid "Even Value of Q"
+msgstr ""
+
+#. Programmer's name for it: STraceInternalErrorCalculation
+#: libraries/cryptolib4pascal/ClpECC.pas:63
+msgid "Internal Error in Trace Calculation"
+msgstr ""
+
+#. Programmer's name for it: SHalfTraceUndefinedForM
+#: libraries/cryptolib4pascal/ClpECC.pas:64
+msgid "Half-Trace Only Defined For Odd M"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCoordinateSystem
+#: libraries/cryptolib4pascal/ClpECC.pas:65
+msgid "UnSupported Coordinate System"
+msgstr ""
+
+#. Programmer's name for it: SCurrentCurve
+#: libraries/cryptolib4pascal/ClpECC.pas:66
+msgid "Implementation returned Current Curve"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointCoordinates
+#: libraries/cryptolib4pascal/ClpECC.pas:67
+msgid "Invalid Point Coordinates"
+msgstr ""
+
+#. Programmer's name for it: SInvalidAffineCoordinates
+#: libraries/cryptolib4pascal/ClpECC.pas:68
+msgid "not valid for affine coordinates, \"iso\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointOnCurve
+#: libraries/cryptolib4pascal/ClpECC.pas:69
+msgid "must be non-null and on this curve, \"point\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointOnCurve2
+#: libraries/cryptolib4pascal/ClpECC.pas:70
+msgid "Entries must be null or on this curve, \"points\""
+msgstr ""
+
+#. Programmer's name for it: SPointsNil
+#: libraries/cryptolib4pascal/ClpECC.pas:71
+msgid "points"
+msgstr ""
+
+#. Programmer's name for it: SInvalidRangeSpecified
+#: libraries/cryptolib4pascal/ClpECC.pas:72
+msgid "Invalid Range Specified\", \"points\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointCompression
+#: libraries/cryptolib4pascal/ClpECC.pas:73
+msgid "Invalid Point Compression"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK1
+#: libraries/cryptolib4pascal/ClpECC.pas:74
+msgid "k1 must be > 0"
+msgstr ""
+
+#. Programmer's name for it: SInvalidK3
+#: libraries/cryptolib4pascal/ClpECC.pas:75
+msgid "k3 must be 0 if k2 == 0"
+msgstr ""
+
+#. Programmer's name for it: SK2K1MisMatch
+#: libraries/cryptolib4pascal/ClpECC.pas:76
+msgid "k2 must be > k1"
+msgstr ""
+
+#. Programmer's name for it: SK3K2Mismatch
+#: libraries/cryptolib4pascal/ClpECC.pas:77
+msgid "k3 must be > k2"
+msgstr ""
+
+#. Programmer's name for it: SInvalidInfinityEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:78
+msgid "Invalid Infinity Encoding, \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:79
+msgid "Invalid Point Encoding %u"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:81
+msgid "Incorrect Length for infinity encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPointEncoding
+#: libraries/cryptolib4pascal/ClpECC.pas:83
+msgid "Incorrect Length for Compressed Encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:84
+msgid "Invalid Point"
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:86
+msgid "Incorrect Length for UnCompressed Encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:88
+msgid "Incorrect Length for Hybrid Encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidPoint
+#: libraries/cryptolib4pascal/ClpECC.pas:90
+msgid "Inconsistent Y Coordinate in Hybrid Encoding\", \"encoded\""
+msgstr ""
+
+#. Programmer's name for it: SUnknownCoordSystem
+#: libraries/cryptolib4pascal/ClpECC.pas:91
+msgid "Unknown Coordinate System"
+msgstr ""
+
+#. Programmer's name for it: SPointNotInNormalForm
+#: libraries/cryptolib4pascal/ClpECC.pas:92
+msgid "Point not in Normal Form"
+msgstr ""
+
+#. Programmer's name for it: SNotProjectiveCoordSystem
+#: libraries/cryptolib4pascal/ClpECC.pas:93
+msgid "Not a Projective Coordinate System"
+msgstr ""
+
+#. Programmer's name for it: SCannotBeNegative
+#: libraries/cryptolib4pascal/ClpECC.pas:94
+msgid "Cannot be Negative, \"e\""
+msgstr ""
+
+#. Programmer's name for it: SNilFieldElement
+#: libraries/cryptolib4pascal/ClpECC.pas:95
+msgid "Exactly one of the Field Elements is Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedOperation
+#: libraries/cryptolib4pascal/ClpECC.pas:96
+msgid "Constant-time Lookup not Supported"
+msgstr ""
+
+#. Programmer's name for it: SInvalidRange
+#: libraries/cryptolib4pascal/ClpECCompUtilities.pas:43
+msgid "Must be in the Range [2, 16], \"width\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidRange2
+#: libraries/cryptolib4pascal/ClpECCompUtilities.pas:44
+msgid "Must be in the Range [2, 8], \"width\""
+msgstr ""
+
+#. Programmer's name for it: SWrongDomainParameter
+#: libraries/cryptolib4pascal/ClpECDHBasicAgreement.pas:39
+msgid "ECDH Public Key has Wrong Domain Parameters"
+msgstr ""
+
+#. Programmer's name for it: SInvalidAgreementValue
+#: libraries/cryptolib4pascal/ClpECDHBasicAgreement.pas:40
+msgid "Infinity is not a Valid Agreement Value for ECDH"
+msgstr ""
+
+#. Programmer's name for it: SInfinityInvalidPublicKey
+#: libraries/cryptolib4pascal/ClpECDHBasicAgreement.pas:41
+msgid "Infinity is not a Valid Public Key for ECDH"
+msgstr ""
+
+#. Programmer's name for it: SWrongDomainParameter
+#: libraries/cryptolib4pascal/ClpECDHCBasicAgreement.pas:39
+msgid "ECDHC Public Key has Wrong Domain Parameters"
+msgstr ""
+
+#. Programmer's name for it: SInvalidAgreementValue
+#: libraries/cryptolib4pascal/ClpECDHCBasicAgreement.pas:40
+msgid "Infinity is not a Valid Agreement Value for ECDHC"
+msgstr ""
+
+#. Programmer's name for it: SInfinityInvalidPublicKey
+#: libraries/cryptolib4pascal/ClpECDHCBasicAgreement.pas:41
+msgid "Infinity is not a Valid Public Key for ECDHC"
+msgstr ""
+
+#. Programmer's name for it: SCurveNil
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:33
+msgid "Curve Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SScalarNil
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:34
+msgid "Scalar Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SBigIntegerNotInitialized
+#. Programmer's name for it: SBigIntegerNotInitialized
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:36
+#: libraries/cryptolib4pascal/ClpECPrivateKeyParameters.pas:32
+msgid "BigInteger Not Initialized \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SQInfinity
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:38
+msgid "Point at Infinity \"Q\""
+msgstr ""
+
+#. Programmer's name for it: SQPointNotOnCurve
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:39
+msgid "Point Not on Curve \"Q\""
+msgstr ""
+
+#. Programmer's name for it: SScalarInvalidRange
+#: libraries/cryptolib4pascal/ClpECDomainParameters.pas:40
+msgid "Scalar is not in the Interval [1, n - 1]"
+msgstr ""
+
+#. Programmer's name for it: SECPublicKeyNotFound
+#. Programmer's name for it: SECPublicKeyNotFound
+#. Programmer's name for it: SECPublicKeyNotFound
+#: libraries/cryptolib4pascal/ClpECDsaSigner.pas:47
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:47
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:45
+msgid "EC Public Key Required for Verification"
+msgstr ""
+
+#. Programmer's name for it: SECPrivateKeyNotFound
+#. Programmer's name for it: SECPrivateKeyNotFound
+#. Programmer's name for it: SECPrivateKeyNotFound
+#: libraries/cryptolib4pascal/ClpECDsaSigner.pas:48
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:48
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:46
+msgid "EC Private Key Required for Signing"
+msgstr ""
+
+#. Programmer's name for it: SSenderPublicKeyInvalid
+#: libraries/cryptolib4pascal/ClpECIESPublicKeyParser.pas:35
+msgid "Sender's Public Key Invalid."
+msgstr "Afzender zijn Publieke Sleutel ongeldig."
+
+#. Programmer's name for it: SSenderPublicKeyInvalid
+#: libraries/cryptolib4pascal/ClpECIESPublicKeyParser.pas:37
+msgid "Sender's Public Key has Invalid Point Encoding \"%x\""
+msgstr ""
+"Afzender zijn Publieke Sleutel heeft een ongeldige Punt Decodering \"%x\""
+
+#. Programmer's name for it: SAlgorithmNil
+#. Programmer's name for it: SAlgorithmNil
+#: libraries/cryptolib4pascal/ClpECKeyPairGenerator.pas:56
+#: libraries/cryptolib4pascal/ClpECKeyParameters.pas:39
+msgid "Algorithm Cannot be Empty"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeySize
+#: libraries/cryptolib4pascal/ClpECKeyPairGenerator.pas:57
+msgid "Unknown Key Size \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SParameterNil
+#: libraries/cryptolib4pascal/ClpECKeyParameters.pas:40
+msgid "Parameter Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedAlgorithm
+#: libraries/cryptolib4pascal/ClpECKeyParameters.pas:41
+msgid "Unrecognised Algorithm: \" %s, \"Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedForSigning
+#. Programmer's name for it: SNotInitializedForSigning
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:49
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:47
+msgid "Not Initialised For Signing"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedForVerifying
+#. Programmer's name for it: SNotInitializedForVerifying
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:50
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:48
+msgid "Not Initialised For Verifying"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedForVerifying
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:52
+msgid "Not Initialised For Verifying/Recovery"
+msgstr ""
+
+#. Programmer's name for it: SInputTooLargeForECNRKey
+#: libraries/cryptolib4pascal/ClpECNRSigner.pas:53
+msgid "Input Too Large For ECNR Key."
+msgstr ""
+
+#. Programmer's name for it: SSignatureGenerationError
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:49
+msgid "An Error Occurred During Signature Generation"
+msgstr ""
+
+#. Programmer's name for it: SSignatureGenerationError
+#: libraries/cryptolib4pascal/ClpECSchnorrSipaSigner.pas:51
+msgid ""
+"Only FP (Prime Field) Curves are Allowed for This Schnorr Implementation"
+msgstr ""
+
+#. Programmer's name for it: SInvalidCtx
+#: libraries/cryptolib4pascal/ClpEd25519.pas:40
+msgid "ctx"
+msgstr ""
+
+#. Programmer's name for it: SDigestError
+#: libraries/cryptolib4pascal/ClpEd25519.pas:41
+msgid "Digest Produced Insufficient Data"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPrivateKey
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:38
+msgid "EOF encountered in middle of Ed25519Blake2B private key"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedAlgorithm
+#. Programmer's name for it: SUnsupportedAlgorithm
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:39
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:39
+msgid "Unsupported Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SCtxNotNil
+#. Programmer's name for it: SCtxNotNil
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:40
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:40
+msgid "Ctx must be Nil for Ed25519 Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SMsgLen
+#. Programmer's name for it: SMsgLen
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPrivateKeyParameters.pas:41
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:41
+msgid "MsgLen must be Equal to \"PreHashSize\" for Ed25519ph Algorithm"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPublicKey
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BPublicKeyParameters.pas:34
+msgid "EOF encountered in middle of Ed25519Blake2B public key"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BSigner.pas:37
+msgid "Ed25519Blake2BSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Blake2BSigner.pas:39
+msgid "Ed25519Blake2BSigner not Initialised for Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxBlake2BSigner.pas:37
+msgid "Ed25519CtxBlake2BSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxBlake2BSigner.pas:39
+msgid "Ed25519CtxBlake2BSigner not Initialised for Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxSigner.pas:37
+msgid "Ed25519CtxSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519CtxSigner.pas:39
+msgid "Ed25519CtxSigner not Initialised for Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhBlake2BSigner.pas:37
+msgid "Ed25519PhBlake2BSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhBlake2BSigner.pas:39
+msgid "Ed25519PhBlake2BSigner not Initialised for Verification"
+msgstr ""
+
+#. Programmer's name for it: SPreHashDigestFailed
+#. Programmer's name for it: SPreHashDigestFailed
+#: libraries/cryptolib4pascal/ClpEd25519PhBlake2BSigner.pas:40
+#: libraries/cryptolib4pascal/ClpEd25519PhSigner.pas:40
+msgid "PreHash Digest Failed"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhSigner.pas:37
+msgid "Ed25519PhSigner not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519PhSigner.pas:39
+msgid "Ed25519PhSigner not Initialised for Verification"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPrivateKey
+#: libraries/cryptolib4pascal/ClpEd25519PrivateKeyParameters.pas:38
+msgid "EOF encountered in middle of Ed25519 private key"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPublicKey
+#: libraries/cryptolib4pascal/ClpEd25519PublicKeyParameters.pas:34
+msgid "EOF encountered in middle of Ed25519 public key"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Signer.pas:37
+msgid "Ed25519Signer not Initialised for Signature Generation."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpEd25519Signer.pas:39
+msgid "Ed25519Signer not Initialised for Verification"
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacteristic
+#: libraries/cryptolib4pascal/ClpFiniteFields.pas:35
+msgid "Must be >= 2 , \" characteristic \""
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacteristic
+#: libraries/cryptolib4pascal/ClpFiniteFields.pas:37
+msgid ""
+"Irreducible polynomials in GF(2) must have constant term, \"exponents\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacteristic
+#: libraries/cryptolib4pascal/ClpFiniteFields.pas:39
+msgid "Polynomial Exponents must be montonically increasing\", \"exponents\""
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:52
+msgid "KeyGenerator \"%s\" not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:54
+msgid "KeyGenerator \"%s\" ( \"%s\" ) not Supported."
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:56
+msgid "KeyPairGenerator \"%s\" not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SKeyGeneratorAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpGeneratorUtilities.pas:58
+msgid "KeyPairGenerator \"%s\" ( \"%s\" ) not Supported."
+msgstr ""
+
+#. Programmer's name for it: SSizeTooBigHKDF
+#: libraries/cryptolib4pascal/ClpHkdfBytesGenerator.pas:39
+msgid "HKDF Cannot Generate More Than 255 Blocks of HashLen Size"
+msgstr ""
+
+#. Programmer's name for it: SSizeTooBigHKDF2
+#: libraries/cryptolib4pascal/ClpHkdfBytesGenerator.pas:40
+msgid "HKDF May Only Be Used For 255 * HashLen Bytes of Output"
+msgstr ""
+
+#. Programmer's name for it: SSizeTooBigHKDF2
+#: libraries/cryptolib4pascal/ClpHkdfBytesGenerator.pas:42
+msgid "HKDF Parameters Required For \"HkdfBytesGenerator\", \"parameters\""
+msgstr ""
+
+#. Programmer's name for it: SIKMNil
+#: libraries/cryptolib4pascal/ClpHkdfParameters.pas:30
+msgid "\"ikm\" is Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedOperation
+#. Programmer's name for it: SUnSupportedOperation
+#: libraries/cryptolib4pascal/ClpHMacDsaKCalculator.pas:42
+#: libraries/cryptolib4pascal/ClpRandomDsaKCalculator.pas:34
+msgid "Operation not Supported"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:54
+msgid "Must be Passed Recipient's Public EC Key for Encryption"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:56
+msgid "Must be Passed Recipient's Private EC Key for Decryption"
+msgstr ""
+
+#. Programmer's name for it: SIAlgorithmParameterSpecNil
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:57
+msgid "Parameter Spec Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnableToProcessBlock
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:58
+msgid "Unable to Process Block. \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SIESParameterSpecError
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:59
+msgid "Must be Passed IES Parameter Spec"
+msgstr ""
+
+#. Programmer's name for it: SNonceInvalidLength
+#: libraries/cryptolib4pascal/ClpIESCipher.pas:60
+msgid "Nonce in IES Parameters Needs to be \"%s\" Bytes Long"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESEngine.pas:53
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:45
+msgid "Unable to Recover Ephemeral Public Key: \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpIESEngine.pas:55
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:47
+msgid "Length of Input Must be Greater than the MAC and V Combined"
+msgstr ""
+
+#. Programmer's name for it: SInvalidMAC
+#. Programmer's name for it: SInvalidMAC
+#: libraries/cryptolib4pascal/ClpIESEngine.pas:56
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:48
+msgid "Invalid MAC"
+msgstr ""
+
+#. Programmer's name for it: SRandomNil
+#: libraries/cryptolib4pascal/ClpKeyGenerationParameters.pas:30
+msgid "Random Class Instance Can't Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SInvalidStrength
+#: libraries/cryptolib4pascal/ClpKeyGenerationParameters.pas:31
+msgid "Strength Must Be Greater Than Zero But Was Given %d"
+msgstr ""
+
+#. Programmer's name for it: SKeyNil
+#: libraries/cryptolib4pascal/ClpKeyParameter.pas:31
+msgid "Key Cannot be Nil"
+msgstr "Sleutel mag niet leeg zijn"
+
+#. Programmer's name for it: SInvalidKeyOffSet
+#: libraries/cryptolib4pascal/ClpKeyParameter.pas:32
+msgid "Invalid Key OffSet"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/cryptolib4pascal/ClpKeyParameter.pas:33
+msgid "Invalid Key Length"
+msgstr ""
+
+#. Programmer's name for it: SInvalidF2MFieldValue
+#: libraries/cryptolib4pascal/ClpLongArray.pas:34
+msgid "Invalid F2M Field value, \"bigInt\""
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedMac
+#: libraries/cryptolib4pascal/ClpMacUtilities.pas:40
+msgid "Mac \"%s\" not recognised."
+msgstr ""
+
+#. Programmer's name for it: SCannotBeZero
+#: libraries/cryptolib4pascal/ClpMod.pas:35
+msgid "cannot be 0, \"x\""
+msgstr ""
+
+#. Programmer's name for it: SCurveUnknownGroupOrder
+#: libraries/cryptolib4pascal/ClpMultipliers.pas:47
+msgid "Need Curve With Known Group Order, \"curve\""
+msgstr ""
+
+#. Programmer's name for it: SInCompatiblePoint
+#: libraries/cryptolib4pascal/ClpMultipliers.pas:48
+msgid "Only AbstractF2mPoint can be used in WTauNafMultiplier"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:72
+msgid ""
+"An Error Occured while generating random data using MS Windows Cryptography "
+"API."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:76
+msgid ""
+"An Error Occured while generating random data using SecRandomCopyBytes API."
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:80
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:84
+msgid "An Error Occured while generating random data using getRandom API"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpOSRandom.pas:88
+msgid ""
+"An Error Occured while generating random data using arc4random_buf API."
+msgstr ""
+
+#. Programmer's name for it: SIncompleteLastBlockInDecryption
+#: libraries/cryptolib4pascal/ClpPaddedBufferedBlockCipher.pas:41
+msgid "Last Block Incomplete in Decryption"
+msgstr ""
+
+#. Programmer's name for it: SCorruptedPadBlock
+#: libraries/cryptolib4pascal/ClpPaddingModes.pas:32
+msgid "Pad Block Corrupted"
+msgstr ""
+
+#. Programmer's name for it: SIVNil
+#: libraries/cryptolib4pascal/ClpParametersWithIV.pas:31
+msgid "IV Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SParameters
+#: libraries/cryptolib4pascal/ClpParametersWithRandom.pas:32
+msgid "Parameters"
+msgstr ""
+
+#. Programmer's name for it: SRandom
+#: libraries/cryptolib4pascal/ClpParametersWithRandom.pas:33
+msgid "Random"
+msgstr ""
+
+#. Programmer's name for it: SAlgorithmNotRecognised
+#: libraries/cryptolib4pascal/ClpParameterUtilities.pas:38
+msgid "Algorithm \"%s\" not Recognised."
+msgstr ""
+
+#. Programmer's name for it: SKDFParameterNotFound
+#: libraries/cryptolib4pascal/ClpPascalCoinECIESKdfBytesGenerator.pas:37
+msgid ""
+"Specified Hash Cannot Produce Sufficient Data for the Specified Operation."
+msgstr ""
+
+#. Programmer's name for it: SCipherCannotbeNilInThisMode
+#: libraries/cryptolib4pascal/ClpPascalCoinIESEngine.pas:49
+msgid "Cipher Cannot be Nil in This Mode."
+msgstr ""
+
+#. Programmer's name for it: SBufferNil
+#: libraries/cryptolib4pascal/ClpRandom.pas:30
+msgid "Buffer Cannot be Nil"
+msgstr ""
+
+#. Programmer's name for it: SMaxValueNegative
+#: libraries/cryptolib4pascal/ClpRandom.pas:31
+msgid "maxValue Must be Positive"
+msgstr "max Waarde Moet positief zijn"
+
+#. Programmer's name for it: SInvalidMinValue
+#: libraries/cryptolib4pascal/ClpRandom.pas:32
+msgid "minValue Cannot be Greater Than maxValue"
+msgstr ""
+
+#. Programmer's name for it: SUnknownAlgorithm
+#: libraries/cryptolib4pascal/ClpRandomNumberGenerator.pas:31
+msgid "Unknown Random Generation Algorithm Requested"
+msgstr ""
+
+#. Programmer's name for it: SUnknownAlgorithm
+#: libraries/cryptolib4pascal/ClpRandomNumberGenerator.pas:33
+msgid "Random Number Generator Output Buffer Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SUnsupportedBlock
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:37
+msgid "Unknown Blocksize to Rijndael"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:38
+msgid "Key Length not 128/160/192/224/256 bits."
+msgstr "Sleutel Lengte niet 128/192/224/256 bits."
+
+#. Programmer's name for it: SRijndaelEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:39
+msgid "Rijndael Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SRijndaelEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpRijndaelEngine.pas:41
+msgid "Invalid Parameter Passed to Rijndael Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidRound
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:38
+msgid "\"rounds\" Must be a Positive, Even Number"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeySize
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:39
+msgid "%s Requires 128 bit or 256 bit key"
+msgstr ""
+
+#. Programmer's name for it: SMaxByteExceeded
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:40
+msgid "2^70 Byte Limit per IV; Change IV"
+msgstr ""
+
+#. Programmer's name for it: SMaxByteExceededTwo
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:41
+msgid "2^70 byte limit per IV would be exceeded; Change IV"
+msgstr ""
+
+#. Programmer's name for it: SEngineNotInitialized
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:42
+msgid "%s not Initialized"
+msgstr ""
+
+#. Programmer's name for it: SRoundsMustbeEven
+#. Programmer's name for it: SRoundsMustBeEven
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:45
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:37
+msgid "Number of Rounds Must be Even"
+msgstr ""
+
+#. Programmer's name for it: SIVRequired
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:47
+msgid "%s Init Requires an IV, \"parameters\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidIV
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:48
+msgid "%s Requires exactly %d bytes of IV"
+msgstr ""
+
+#. Programmer's name for it: SInvalidIV
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:50
+msgid "%s Init Parameters must Contain a KeyParameter (or null for Re-Init)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidIV
+#: libraries/cryptolib4pascal/ClpSalsa20Engine.pas:52
+msgid "KeyParameter can not be null for First Initialisation"
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameters
+#: libraries/cryptolib4pascal/ClpScalarSplitParameters.pas:30
+msgid "\"%s\" must consist of exactly 2 (initialized) values"
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:43
+msgid "SchnorrDigestSigner not Initialized for Signature Generation."
+msgstr ""
+
+#. Programmer's name for it: SPublicKey
+#: libraries/cryptolib4pascal/ClpSchnorrDigestSigner.pas:45
+msgid "SchnorrDigestSigner not Initialized for Verification"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP256K1Custom.pas:40
+msgid "Value Invalid for SecP256K1FieldElement \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP256R1Custom.pas:40
+msgid "Value Invalid for SecP256R1FieldElement \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP384R1Custom.pas:40
+msgid "Value Invalid for SecP384R1FieldElement \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecP521R1Custom.pas:40
+msgid "Value Invalid for SecP521R1FieldElement \"%s\""
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpSecT283Custom.pas:41
+msgid "Value Invalid for SecT283FieldElement \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SUnRecognisedPRNGAlgorithm
+#: libraries/cryptolib4pascal/ClpSecureRandom.pas:43
+msgid "Unrecognised PRNG Algorithm: %s \"algorithm\""
+msgstr ""
+
+#. Programmer's name for it: SCannotBeNegative
+#: libraries/cryptolib4pascal/ClpSecureRandom.pas:44
+msgid "Cannot be Negative  \"maxValue\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidMaxValue
+#: libraries/cryptolib4pascal/ClpSecureRandom.pas:45
+msgid "maxValue Cannot be Less Than minValue"
+msgstr ""
+
+#. Programmer's name for it: SMalformedSignature
+#: libraries/cryptolib4pascal/ClpSignersEncodings.pas:35
+msgid "Malformed signature, \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SValueOutOfRange
+#: libraries/cryptolib4pascal/ClpSignersEncodings.pas:36
+msgid "Value out of range, \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidEncodingLength
+#: libraries/cryptolib4pascal/ClpSignersEncodings.pas:37
+msgid "Encoding has incorrect length, \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SUnRecognizedAlgorithm
+#: libraries/cryptolib4pascal/ClpSignerUtilities.pas:71
+msgid "Signer \" %s \" not recognised."
+msgstr "Ondertekenaar \" %s \" niet bekend."
+
+#. Programmer's name for it: SInvalidScale
+#. Programmer's name for it: SNegativeScale
+#: libraries/cryptolib4pascal/ClpSimpleBigDecimal.pas:29
+#: libraries/cryptolib4pascal/ClpSimpleBigDecimal.pas:32
+msgid "Scale may not be Negative"
+msgstr ""
+
+#. Programmer's name for it: SInvalidScale
+#: libraries/cryptolib4pascal/ClpSimpleBigDecimal.pas:31
+msgid "Only SimpleBigDecimal of Same Scale Allowed in Arithmetic Operations"
+msgstr ""
+
+#. Programmer's name for it: SSpeckEngineNotInitialised
+#. Programmer's name for it: SSpeckLegacyEngineNotInitialised
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:35
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:35
+msgid "%s Engine not Initialised"
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:38
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:38
+msgid "Invalid Argument Encountered."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:39
+msgid "Invalid Parameter Passed to Speck Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:41
+msgid "Speck32 requires a key of 64 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:43
+msgid "Speck48 requires a key of 72 or 96 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:45
+msgid "Speck64 requires a key of 96 or 128 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:47
+msgid "Speck96 requires a key of 96 or 144 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidParameterSpeckInit
+#: libraries/cryptolib4pascal/ClpSpeckEngine.pas:49
+msgid ""
+"Speck128 requires a key of 128, 192 or 256 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:40
+msgid "Invalid Parameter Passed to SpeckLegacy Init - \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:42
+msgid "Speck32Legacy requires a key of 64 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:44
+msgid ""
+"Speck48Legacy requires a key of 72 or 96 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:46
+msgid ""
+"Speck64Legacy requires a key of 96 or 128 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:48
+msgid ""
+"Speck96Legacy requires a key of 96 or 144 bits but input was \"%d\" bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidArgumentEncountered
+#: libraries/cryptolib4pascal/ClpSpeckLegacyEngine.pas:50
+msgid ""
+"Speck128Legacy requires a key of 128, 192 or 256 bits but input was \"%d\" "
+"bits."
+msgstr ""
+
+#. Programmer's name for it: SInvalidMU
+#: libraries/cryptolib4pascal/ClpTnaf.pas:34
+msgid "mu must be 1 or -1"
+msgstr ""
+
+#. Programmer's name for it: SDifferentScales
+#: libraries/cryptolib4pascal/ClpTnaf.pas:35
+msgid "lambda0 and lambda1 do not have same scale"
+msgstr ""
+
+#. Programmer's name for it: SNoKoblitzCurve
+#: libraries/cryptolib4pascal/ClpTnaf.pas:36
+msgid "No Koblitz curve (ABC), TNAF multiplication not possible"
+msgstr ""
+
+#. Programmer's name for it: SNotKoblitzCurve
+#: libraries/cryptolib4pascal/ClpTnaf.pas:37
+msgid "si is defined for Koblitz curves only"
+msgstr ""
+
+#. Programmer's name for it: SInvalidCoFactor
+#: libraries/cryptolib4pascal/ClpTnaf.pas:38
+msgid "h (Cofactor) must be 2 or 4"
+msgstr ""
+
+#: libraries/cryptolib4pascal/ClpX25519Agreement.pas:36
+msgid "The Init Parameter does not Contain the Private Key"
+msgstr "De Begin Parameter Bevat niet de Prive Sleutel"
+
+#. Programmer's name for it: SEOFInPrivateKey
+#: libraries/cryptolib4pascal/ClpX25519PrivateKeyParameters.pas:37
+msgid "EOF encountered in middle of X25519 private key"
+msgstr ""
+
+#. Programmer's name for it: SAgreementCalculationFailed
+#: libraries/cryptolib4pascal/ClpX25519PrivateKeyParameters.pas:38
+msgid "X25519 Agreement Failed"
+msgstr ""
+
+#. Programmer's name for it: SEOFInPublicKey
+#: libraries/cryptolib4pascal/ClpX25519PublicKeyParameters.pas:34
+msgid "EOF encountered in middle of X25519 public key"
+msgstr ""
+
+#. Programmer's name for it: SInconsistentKValues
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:36
+msgid "Inconsistent K Values"
+msgstr ""
+
+#. Programmer's name for it: SCurveNil
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:37
+msgid "Curve"
+msgstr ""
+
+#. Programmer's name for it: SNotImplementedECCurve
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:38
+msgid "This Type of ECCurve is not Implemented"
+msgstr ""
+
+#. Programmer's name for it: SFieldIDNil
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:39
+msgid "FieldID"
+msgstr ""
+
+#. Programmer's name for it: SSeqNil
+#: libraries/cryptolib4pascal/ClpX9ECC.pas:40
+msgid "Seq"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCurveOne
+#: libraries/cryptolib4pascal/ClpX9ECParameters.pas:38
+msgid "Only trinomial and pentomial curves are supported"
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCurveTwo
+#: libraries/cryptolib4pascal/ClpX9ECParameters.pas:39
+msgid "\"curve\" is of an unsupported type"
+msgstr ""
+
+#. Programmer's name for it: SBadVersion
+#: libraries/cryptolib4pascal/ClpX9ECParameters.pas:40
+msgid "Bad Version in X9ECParameters"
+msgstr ""
+
+#. Programmer's name for it: SNullKeyReInit
+#: libraries/cryptolib4pascal/ClpXSalsa20Engine.pas:33
+msgid "%s Doesn't Support Re-Init with Null Key"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeySize
+#: libraries/cryptolib4pascal/ClpXSalsa20Engine.pas:34
+msgid "%s Requires a 256 bit Key"
+msgstr ""
+
+#. Programmer's name for it: SArgumentOutOfRange
+#: libraries/generics.collections/generics.strings.pas:26
+msgid "Argument out of range"
+msgstr ""
+
+#. Programmer's name for it: SArgumentNilNode
+#: libraries/generics.collections/generics.strings.pas:27
+msgid "Node is nil"
+msgstr ""
+
+#. Programmer's name for it: SDuplicatesNotAllowed
+#: libraries/generics.collections/generics.strings.pas:28
+msgid "Duplicates not allowed in dictionary"
+msgstr ""
+
+#. Programmer's name for it: SCollectionInconsistency
+#: libraries/generics.collections/generics.strings.pas:29
+msgid "Collection inconsistency"
+msgstr ""
+
+#. Programmer's name for it: SCollectionDuplicate
+#: libraries/generics.collections/generics.strings.pas:30
+msgid "Collection does not allow duplicates"
+msgstr ""
+
+#. Programmer's name for it: SDictionaryKeyDoesNotExist
+#: libraries/generics.collections/generics.strings.pas:31
+msgid "Dictionary key does not exist"
+msgstr ""
+
+#. Programmer's name for it: SItemNotFound
+#: libraries/generics.collections/generics.strings.pas:32
+msgid "Item not found"
+msgstr ""
+
+#. Programmer's name for it: SInvalidConfigLength
+#. Programmer's name for it: SInvalidConfigLength
+#: libraries/hashlib4pascal/HlpBlake2B.pas:22
+#: libraries/hashlib4pascal/HlpBlake2S.pas:22
+msgid "Config Length Must Be 8 Words"
+msgstr ""
+
+#. Programmer's name for it: SConfigNil
+#. Programmer's name for it: SConfigNil
+#: libraries/hashlib4pascal/HlpBlake2B.pas:23
+#: libraries/hashlib4pascal/HlpBlake2S.pas:23
+msgid "Config Cannot Be Nil"
+msgstr ""
+
+#. Programmer's name for it: SConfigNil
+#. Programmer's name for it: SConfigNil
+#: libraries/hashlib4pascal/HlpBlake2B.pas:25
+#: libraries/hashlib4pascal/HlpBlake2S.pas:25
+msgid "XOFSize in Bits must be Multiples of 8 and be Between %u and %u Bytes."
+msgstr ""
+
+#. Programmer's name for it: SOutputLengthInvalid
+#. Programmer's name for it: SOutputLengthInvalid
+#. Programmer's name for it: SOutputLengthInvalid
+#: libraries/hashlib4pascal/HlpBlake2B.pas:26
+#: libraries/hashlib4pascal/HlpBlake2S.pas:26
+#: libraries/hashlib4pascal/HlpSHA3.pas:28
+msgid "Output Length is above the Digest Length"
+msgstr ""
+
+#. Programmer's name for it: SMaximumOutputLengthExceeded
+#: libraries/hashlib4pascal/HlpBlake2B.pas:28
+msgid "\"Maximum Length is 2^32 blocks of 64 bytes"
+msgstr ""
+
+#. Programmer's name for it: SWritetoXofAfterReadError
+#. Programmer's name for it: SWritetoXofAfterReadError
+#. Programmer's name for it: SWritetoXofAfterReadError
+#: libraries/hashlib4pascal/HlpBlake2B.pas:29
+#: libraries/hashlib4pascal/HlpBlake2S.pas:29
+#: libraries/hashlib4pascal/HlpSHA3.pas:30
+msgid "\"%s\" Write to Xof after Read not Allowed"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:16
+msgid ""
+"BLAKE2B HashSize must be restricted to one of the following [1 .. 64], \"%d"
+"\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:17
+msgid "\"Key\" Length Must Not Be Greater Than 64, \"%d\""
+msgstr "\"Key\" Lengte Mag Niet Groter Zijn Dan 64, \"%d\""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:19
+msgid "\"Personalisation\" Length Must Be Equal To 16, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:20
+msgid "\"Salt\" Length Must Be Equal To 16, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:23
+msgid "FanOut Value Should be Between [0 .. 255] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:25
+msgid "MaxDepth Value Should be Between [1 .. 255] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:27
+msgid "NodeDepth Value Should be Between [0 .. 255] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:29
+msgid "InnerHashSize Value Should be Between [0 .. 64] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:31
+msgid "NodeOffset Value Should be Between [0 .. (2^64-1)] for Blake2B"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2BParams.pas:34
+msgid "Tree Inner Hash Size Must Not Be Greater Than 64, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SMaximumOutputLengthExceeded
+#: libraries/hashlib4pascal/HlpBlake2S.pas:28
+msgid "\"Maximum Length is 2^32 blocks of 32 bytes"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:16
+msgid ""
+"BLAKE2S HashSize must be restricted to one of the following [1 .. 32], \"%d"
+"\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:17
+msgid "\"Key\" Length Must Not Be Greater Than 32, \"%d\""
+msgstr "\"Key\" Lengte Mag Niet Groter Zijn Dan 32, \"%d\""
+
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:19
+msgid "\"Personalisation\" Length Must Be Equal To 8, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:20
+msgid "\"Salt\" Length Must Be Equal To 8, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:23
+msgid "FanOut Value Should be Between [0 .. 255] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:25
+msgid "MaxDepth Value Should be Between [1 .. 255] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:27
+msgid "NodeDepth Value Should be Between [0 .. 255] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:29
+msgid "InnerHashSize Value Should be Between [0 .. 32] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:31
+msgid "NodeOffset Value Should be Between [0 .. (2^48-1)] for Blake2S"
+msgstr ""
+
+#. Programmer's name for it: SInvalidSaltLength
+#: libraries/hashlib4pascal/HlpBlake2SParams.pas:34
+msgid "Tree Inner Hash Size Must Not Be Greater Than 32, \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SUnSupportedCRCType
+#: libraries/hashlib4pascal/HlpCRC.pas:22
+msgid "UnSupported CRC Type: \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SWidthOutOfRange
+#: libraries/hashlib4pascal/HlpCRC.pas:23
+msgid "Width Must be Between 3 and 64. \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SIndexOutOfRange
+#: libraries/hashlib4pascal/HlpHash.pas:16
+msgid "Current Index Is Out Of Range"
+msgstr ""
+
+#. Programmer's name for it: SFileNotExist
+#: libraries/hashlib4pascal/HlpHash.pas:19
+msgid "Specified File Not Found"
+msgstr "Opgegeven Bestand Niet Gevonden"
+
+#. Programmer's name for it: SCloneNotYetImplemented
+#: libraries/hashlib4pascal/HlpHash.pas:20
+msgid "Clone Not Yet Implemented For \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SHashBufferMessage
+#: libraries/hashlib4pascal/HlpHashBuffer.pas:13
+msgid "HashBuffer, Length: %d, Position: %d, IsEmpty: %s"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:27
+msgid "Current Data Structure cannot be Represented as an \"Int32\" Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:29
+msgid "Current Data Structure cannot be Represented as an \"UInt8\" Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:31
+msgid "Current Data Structure cannot be Represented as an \"UInt16\" Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:33
+msgid "Current Data Structure cannot be Represented as an \"UInt32\" Type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpHashResult.pas:35
+msgid "Current Data Structure cannot be Represented as an \"UInt64\" Type."
+msgstr ""
+
+#. Programmer's name for it: SInvalidHavalRound
+#: libraries/hashlib4pascal/HlpHaval.pas:25
+msgid "Haval Round Must be 3, 4 or 5"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHavalRound
+#: libraries/hashlib4pascal/HlpHaval.pas:27
+msgid ""
+"Haval HashSize Must be Either 128 bit(16 byte), 160 bit(20 byte), 192 "
+"bit(24 byte), 224 bit(28 byte) or 256 bit(32 byte)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#. Programmer's name for it: SInvalidKeyLength
+#: libraries/hashlib4pascal/HlpMurmur2.pas:24
+#: libraries/hashlib4pascal/HlpMurmur2_64.pas:21
+#: libraries/hashlib4pascal/HlpMurmurHash3_x64_128.pas:22
+#: libraries/hashlib4pascal/HlpMurmurHash3_x86_128.pas:22
+#: libraries/hashlib4pascal/HlpMurmurHash3_x86_32.pas:22
+#: libraries/hashlib4pascal/HlpSipHash.pas:23
+#: libraries/hashlib4pascal/HlpXXHash32.pas:19
+#: libraries/hashlib4pascal/HlpXXHash64.pas:19
+msgid "KeyLength Must Be Equal to %d"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpNullable.pas:16
+msgid "Cannot assign non-null pointer to nullable type."
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpNullable.pas:18
+msgid "Unsupported Type: Only supports Integers, Int64, Floats and Strings."
+msgstr ""
+
+#. Programmer's name for it: SGetNullValue
+#: libraries/hashlib4pascal/HlpNullable.pas:19
+msgid "Attempted to get a null value."
+msgstr ""
+
+#. Programmer's name for it: SHashSizeNotImplemented
+#: libraries/hashlib4pascal/HlpNullDigest.pas:18
+msgid "HashSize Not Implemented For \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeNotImplemented
+#: libraries/hashlib4pascal/HlpNullDigest.pas:19
+msgid "BlockSize Not Implemented For \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidOutputByteCount
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:32
+msgid "\"(AByteCount)\" Argument Less Than \"%d\"."
+msgstr ""
+
+#. Programmer's name for it: SBlockInstanceNotInitialized
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:33
+msgid "Block Instance not Initialized"
+msgstr ""
+
+#. Programmer's name for it: SInputLengthInvalid
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:34
+msgid "Input Length \"%d\" is not Equal to BlockSize \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SLanesTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:35
+msgid "Lanes Must be Greater Than \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SLanesTooBig
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:36
+msgid "Lanes Must be Less Than \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SMemoryTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:37
+msgid "Memory is Less Than: \"%d\", Expected \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SIterationsTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:38
+msgid "Iterations is Less Than: \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SIterationsTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_Argon2NotBuildInAdapter.pas:40
+msgid "Argon2 Parameter Builder Not Initialized"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:31
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:18
+msgid "\"(AByteCount)\" Argument must be a value greater than zero."
+msgstr ""
+
+#. Programmer's name for it: SInvalidCost
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:32
+msgid "Cost parameter must be > 1 and a power of 2."
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeAndCostIncompatible
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:33
+msgid "Cost parameter must be > 1 and < 65536."
+msgstr ""
+
+#. Programmer's name for it: SBlockSizeTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:34
+msgid "Block size must be >= 1."
+msgstr "Blok grote moet >= 1 zijn."
+
+#. Programmer's name for it: SBlockSizeTooSmall
+#: libraries/hashlib4pascal/HlpPBKDF_ScryptNotBuildInAdapter.pas:36
+msgid ""
+"Parallelism parameter must be >= 1 and <= %d (based on block size of %d)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidIndex
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:19
+msgid "Invalid start or end index in the internal buffer"
+msgstr ""
+
+#. Programmer's name for it: SNotInitializedIHashInstance
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:20
+msgid "\"IHash\" instance is uninitialized"
+msgstr ""
+
+#. Programmer's name for it: SIterationtooSmall
+#: libraries/hashlib4pascal/HlpPBKDF2_HMACNotBuildInAdapter.pas:21
+msgid "Iteration must be greater than zero."
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashMode
+#: libraries/hashlib4pascal/HlpSHA3.pas:25
+msgid "Only \"[%s]\" HashModes are Supported"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashMode
+#: libraries/hashlib4pascal/HlpSHA3.pas:27
+msgid "XOFSize in Bits must be Multiples of 8 and be Greater than Zero Bytes"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpSnefru.pas:24
+msgid "Snefru Security Level Cannot be Less than 1. Standard Level is 8"
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpSnefru.pas:26
+msgid "Snefru HashSize Must be Either 128 bit(16 byte) or 256 bit(32 byte)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashSize
+#: libraries/hashlib4pascal/HlpSnefru.pas:27
+msgid "Specified HashSize Is Invalid or UnSupported \"%d\""
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpTiger.pas:22
+msgid ""
+"Tiger HashSize Must be Either 128 bit(16 byte), 160 bit(20 byte) or 192 "
+"bit(24 byte)"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHashRound
+#. Programmer's name for it: SInvalidHashRound
+#: libraries/hashlib4pascal/HlpTiger.pas:23
+#: libraries/hashlib4pascal/HlpTiger2.pas:23
+msgid "Specified HashRound Is Invalid or UnSupported \"%d\""
+msgstr ""
+
+#: libraries/hashlib4pascal/HlpTiger2.pas:22
+msgid ""
+"Tiger2 HashSize Must be Either 128 bit(16 byte), 160 bit(20 byte) or 192 "
+"bit(24 byte)"
+msgstr ""
+
+#. Programmer's name for it: sInvalidIPAddress
+#: libraries/mormot-min/SynCommons.pas:18356
+msgid "\"%s\" is an invalid IP v4 address"
+msgstr ""
+
+#. Programmer's name for it: sInvalidEmailAddress
+#: libraries/mormot-min/SynCommons.pas:18357
+msgid "\"%s\" is an invalid email address"
+msgstr ""
+
+#. Programmer's name for it: sInvalidPattern
+#: libraries/mormot-min/SynCommons.pas:18358
+msgid "\"%s\" does not match the expected pattern"
+msgstr ""
+
+#. Programmer's name for it: sCharacter01n
+#: libraries/mormot-min/SynCommons.pas:18359
+msgid "character,character,characters"
+msgstr ""
+
+#. Programmer's name for it: sInvalidTextLengthMin
+#: libraries/mormot-min/SynCommons.pas:18360
+msgid "Expect at least %d %s"
+msgstr ""
+
+#. Programmer's name for it: sInvalidTextLengthMax
+#: libraries/mormot-min/SynCommons.pas:18361
+msgid "Expect up to %d %s"
+msgstr ""
+
+#. Programmer's name for it: sInvalidTextChar
+#: libraries/mormot-min/SynCommons.pas:18364
+msgid ""
+"Expect at least %d %s %s,Expect up to %d %s %s,alphabetical,digital,"
+"punctuation,lowercase,uppercase,space,Too much spaces on the left,Too much "
+"spaces on the right"
+msgstr ""
+
+#. Programmer's name for it: sValidationFailed
+#: libraries/mormot-min/SynCommons.pas:18365
+msgid "\"%s\" rule failed"
+msgstr ""
+
+#. Programmer's name for it: sValidationFieldVoid
+#: libraries/mormot-min/SynCommons.pas:18366
+msgid "An unique key field must not be void"
+msgstr ""
+
+#. Programmer's name for it: sValidationFieldDuplicate
+#: libraries/mormot-min/SynCommons.pas:18367
+msgid "Value already used for this unique key field"
+msgstr ""
+
+#. Programmer's name for it: Sneed_dict
+#: libraries/paszlib/paszlib_zbase.pas:409
+msgid "need dictionary"
+msgstr ""
+
+#. Programmer's name for it: Sstream_end
+#: libraries/paszlib/paszlib_zbase.pas:410
+msgid "stream end"
+msgstr ""
+
+#. Programmer's name for it: Sfile_error
+#: libraries/paszlib/paszlib_zbase.pas:411
+msgid "file error"
+msgstr ""
+
+#. Programmer's name for it: Sstream_error
+#: libraries/paszlib/paszlib_zbase.pas:412
+msgid "stream error"
+msgstr ""
+
+#. Programmer's name for it: Sdata_error
+#: libraries/paszlib/paszlib_zbase.pas:413
+msgid "data error"
+msgstr "data fout"
+
+#. Programmer's name for it: Smem_error
+#: libraries/paszlib/paszlib_zbase.pas:414
+msgid "insufficient memory"
+msgstr "niet genoeg geheugen"
+
+#. Programmer's name for it: Sbuf_error
+#: libraries/paszlib/paszlib_zbase.pas:415
+msgid "buffer error"
+msgstr ""
+
+#. Programmer's name for it: Sversion_error
+#: libraries/paszlib/paszlib_zbase.pas:416
+msgid "incompatible version"
+msgstr ""
+
+#. Programmer's name for it: SInvalidHexCharacter
+#: libraries/simplebaselib4pascal/SbpBase16.pas:12
+msgid "Invalid hex character: \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidTextLength
+#: libraries/simplebaselib4pascal/SbpBase16.pas:13
+msgid "Text cannot be odd length \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#. Programmer's name for it: SAlphabetNil
+#. Programmer's name for it: SAlphabetNil
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpBase32.pas:16
+#: libraries/simplebaselib4pascal/SbpBase58.pas:16
+#: libraries/simplebaselib4pascal/SbpBase64.pas:16
+#: libraries/simplebaselib4pascal/SbpBase85.pas:16
+msgid "Alphabet Instance cannot be Nil \"%s\""
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpBase85.pas:18
+msgid "Unexpected Shortcut Character In The Middle Of a Regular Block"
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:12
+msgid "\"%s\" Cannot Be Nil."
+msgstr ""
+
+#. Programmer's name for it: SAlphabetNil
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:14
+msgid ""
+"Required Alphabet Length is \"%d\" but Provided Alphabet is \"%d\" "
+"Characters Long."
+msgstr ""
+
+#. Programmer's name for it: SInvalidCharacter
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:15
+msgid "Alphabet Contains Character \"%s (%d)\" Above \"%d\""
+msgstr ""
+
+#. Programmer's name for it: SInvalidInput
+#: libraries/simplebaselib4pascal/SbpEncodingAlphabet.pas:16
+msgid "Invalid character value in input \"%s\""
+msgstr ""
+
+#. Programmer's name for it: sAColumnsCantBeNil
+#: libraries/sphere10/UCommon.Data.pas:246
+msgid "AColumns can't be nil!"
+msgstr ""
+
+#. Programmer's name for it: sTooManyValues
+#: libraries/sphere10/UCommon.Data.pas:247
+msgid "Too many values"
+msgstr "Te veel waardes"
+
+#. Programmer's name for it: sInvalidUTF8String
+#: libraries/sphere10/UCommon.Data.pas:248
+msgid "Invalid UTF8 string"
+msgstr ""
+
+#. Programmer's name for it: sBadNumericExpression
+#: libraries/sphere10/UCommon.Data.pas:249
+msgid "Bad numeric expression"
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedNumberFormat
+#: libraries/sphere10/UCommon.Data.pas:250
+msgid "Unexpected number format"
+msgstr ""
+
+#. Programmer's name for it: sBadSyntaxForEscapeCharacter
+#: libraries/sphere10/UCommon.Data.pas:251
+msgid "Bad syntax for escape character \"\\\""
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedCharInExpression
+#: libraries/sphere10/UCommon.Data.pas:252
+msgid "Unexpected char in expression"
+msgstr ""
+
+#. Programmer's name for it: sInvaildExpression_CharDetectedAfterClosingBracket
+#: libraries/sphere10/UCommon.Data.pas:253
+msgid "Invaild expression (char detected after closing bracket)"
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedTokenFound
+#: libraries/sphere10/UCommon.Data.pas:254
+msgid "Unexpected token found : \"%s\""
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedStringLiteralInExpression
+#: libraries/sphere10/UCommon.Data.pas:255
+msgid "Unexpected string literal in expression"
+msgstr ""
+
+#. Programmer's name for it: sBadlyClosedBetweenExpression
+#: libraries/sphere10/UCommon.Data.pas:256
+msgid "Badly closed \"between\" expression"
+msgstr ""
+
+#. Programmer's name for it: sMissingNumberInExpression
+#: libraries/sphere10/UCommon.Data.pas:257
+msgid "Missing number in expression"
+msgstr ""
+
+#. Programmer's name for it: sUnexpectedOccurrenceOf_Found
+#: libraries/sphere10/UCommon.Data.pas:258
+msgid "Unexpected occurrence of \"%s\" found"
+msgstr ""
+
+#. Programmer's name for it: sBadBetweenExpression_UnexpectedToken
+#: libraries/sphere10/UCommon.Data.pas:259
+msgid "Bad \"between\" expression. Unexpected \"%s\""
+msgstr ""
+
+#. Programmer's name for it: sExpressionError_NoValue
+#: libraries/sphere10/UCommon.Data.pas:260
+msgid "Expression error (no value)"
+msgstr ""
+
+#. Programmer's name for it: sNotImplemented
+#: libraries/sphere10/UCommon.pas:468
+msgid "Not implemented"
+msgstr ""
+
+#. Programmer's name for it: sInvalidParameter_OutOfBounds
+#: libraries/sphere10/UCommon.pas:469
+msgid "Invalid Parameter: %s out of bounds"
+msgstr ""
+
+#. Programmer's name for it: sLogDebug
+#: libraries/sphere10/UCommon.pas:470
+msgid "DEBUG"
+msgstr ""
+
+#. Programmer's name for it: sLogInfo
+#: libraries/sphere10/UCommon.pas:471
+msgid "INFO"
+msgstr ""
+
+#. Programmer's name for it: sLogWarn
+#: libraries/sphere10/UCommon.pas:472
+msgid "WARNING"
+msgstr "WAARSCHUWING"
+
+#. Programmer's name for it: sLogError
+#: libraries/sphere10/UCommon.pas:473
+msgid "ERROR"
+msgstr ""
+
+#. Programmer's name for it: sTotal
+#: libraries/sphere10/UVisualGrid.pas:475
+msgid "Total: %d"
+msgstr "Totaal: %d"
+
+#. Programmer's name for it: sStandardSearch
+#: libraries/sphere10/UVisualGrid.pas:476
+msgid "Standard Search"
+msgstr "Standaard Zoekopdracht"
+
+#. Programmer's name for it: sMultiColumnSearch
+#: libraries/sphere10/UVisualGrid.pas:477
+msgid "Multi-Column Search"
+msgstr ""
+
+#. Programmer's name for it: sPageSize
+#: libraries/sphere10/UVisualGrid.pas:478
+msgid "Page size:"
+msgstr ""
+
+#. Programmer's name for it: sSearchExpression
+#: libraries/sphere10/UVisualGrid.pas:479
+msgid "Search expression"
+msgstr ""
+
+#. Programmer's name for it: sDataLoading
+#: libraries/sphere10/UVisualGrid.pas:480
+msgid "DATA LOADING"
+msgstr "DATA LADEN"
+
+#. Programmer's name for it: sExpression
+#: libraries/sphere10/UVisualGrid.pas:481
+msgid "Expression"
+msgstr ""
+
+#. Programmer's name for it: sImproperColumnIndex
+#: libraries/sphere10/UVisualGrid.pas:482
+msgid "Improper column index. Max expected is %d but %d found."
+msgstr ""

+ 206 - 247
src/pascalcoin_wallet_classic.dproj

@@ -4,7 +4,7 @@
         <MainSource>pascalcoin_wallet_classic.dpr</MainSource>
         <Base>True</Base>
         <Config Condition="'$(Config)'==''">Debug</Config>
-        <TargetedPlatforms>1027</TargetedPlatforms>
+        <TargetedPlatforms>3</TargetedPlatforms>
         <AppType>Application</AppType>
         <FrameworkType>VCL</FrameworkType>
         <ProjectVersion>18.6</ProjectVersion>
@@ -45,12 +45,6 @@
         <CfgParent>Base</CfgParent>
         <Base>true</Base>
     </PropertyGroup>
-    <PropertyGroup Condition="('$(Platform)'=='iOSDevice64' and '$(Cfg_2)'=='true') or '$(Cfg_2_iOSDevice64)'!=''">
-        <Cfg_2_iOSDevice64>true</Cfg_2_iOSDevice64>
-        <CfgParent>Cfg_2</CfgParent>
-        <Cfg_2>true</Cfg_2>
-        <Base>true</Base>
-    </PropertyGroup>
     <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''">
         <Cfg_2_Win32>true</Cfg_2_Win32>
         <CfgParent>Cfg_2</CfgParent>
@@ -116,9 +110,6 @@
         <DCC_Optimize>false</DCC_Optimize>
         <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
     </PropertyGroup>
-    <PropertyGroup Condition="'$(Cfg_2_iOSDevice64)'!=''">
-        <BT_BuildType>Debug</BT_BuildType>
-    </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
@@ -254,50 +245,86 @@
                 </Excluded_Packages>
             </Delphi.Personality>
             <Platforms>
-                <Platform value="iOSDevice64">True</Platform>
                 <Platform value="Win32">True</Platform>
                 <Platform value="Win64">True</Platform>
             </Platforms>
-            <Deployment Version="3">
+            <Deployment Version="1">
                 <DeployFile LocalName="pascalcoin_wallet_classic.exe" Configuration="Debug" Class="ProjectOutput">
                     <Platform Name="Win32">
                         <RemoteName>pascalcoin_wallet_classic.exe</RemoteName>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployClass Name="AdditionalDebugSymbols">
-                    <Platform Name="iOSSimulator">
+                <DeployClass Name="Android_SplashImage470">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-normal</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="DependencyModule">
+                    <Platform Name="iOSDevice64">
                         <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                        <Extensions>.dll;.bpl</Extensions>
                     </Platform>
                     <Platform Name="OSX32">
                         <RemoteDir>Contents\MacOS</RemoteDir>
                         <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Required="true" Name="DependencyPackage">
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
                     </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
+                        <Extensions>.bpl</Extensions>
                     </Platform>
-                </DeployClass>
-                <DeployClass Name="AndroidClassesDexFile">
-                    <Platform Name="Android">
-                        <RemoteDir>classes</RemoteDir>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
                         <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
                     </Platform>
-                </DeployClass>
-                <DeployClass Name="AndroidFileProvider">
-                    <Platform Name="Android">
-                        <RemoteDir>res\xml</RemoteDir>
+                    <Platform Name="iOSSimulator">
                         <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="AndroidGDBServer">
-                    <Platform Name="Android">
-                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                <DeployClass Name="iPad_Launch2048">
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="AndroidLibnativeArmeabiFile">
-                    <Platform Name="Android">
-                        <RemoteDir>library\lib\armeabi</RemoteDir>
+                <DeployClass Name="ProjectiOSDeviceDebug">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice32">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
@@ -307,57 +334,49 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="AndroidServiceOutput">
-                    <Platform Name="Android">
-                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                <DeployClass Name="ProjectOSXInfoPList">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="AndroidSplashImageDef">
+                <DeployClass Name="AndroidGDBServer">
                     <Platform Name="Android">
-                        <RemoteDir>res\drawable</RemoteDir>
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="AndroidSplashStyles">
-                    <Platform Name="Android">
-                        <RemoteDir>res\values</RemoteDir>
+                <DeployClass Name="ProjectiOSResource">
+                    <Platform Name="iOSDevice64">
                         <Operation>1</Operation>
                     </Platform>
-                </DeployClass>
-                <DeployClass Name="AndroidSplashStylesV21">
-                    <Platform Name="Android">
-                        <RemoteDir>res\values-v21</RemoteDir>
+                    <Platform Name="iOSSimulator">
                         <Operation>1</Operation>
                     </Platform>
-                </DeployClass>
-                <DeployClass Name="Android_DefaultAppIcon">
-                    <Platform Name="Android">
-                        <RemoteDir>res\drawable</RemoteDir>
+                    <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="Android_LauncherIcon144">
-                    <Platform Name="Android">
-                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
+                <DeployClass Name="ProjectOSXEntitlements">
+                    <Platform Name="OSX32">
+                        <RemoteDir>../</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="Android_LauncherIcon36">
-                    <Platform Name="Android">
-                        <RemoteDir>res\drawable-ldpi</RemoteDir>
+                <DeployClass Name="iPhone_Launch640">
+                    <Platform Name="iOSDevice64">
                         <Operation>1</Operation>
                     </Platform>
-                </DeployClass>
-                <DeployClass Name="Android_LauncherIcon48">
-                    <Platform Name="Android">
-                        <RemoteDir>res\drawable-mdpi</RemoteDir>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="Android_LauncherIcon72">
+                <DeployClass Name="Android_SplashImage960">
                     <Platform Name="Android">
-                        <RemoteDir>res\drawable-hdpi</RemoteDir>
+                        <RemoteDir>res\drawable-xlarge</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
@@ -367,372 +386,312 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="Android_SplashImage426">
+                <DeployClass Name="Android_LauncherIcon144">
                     <Platform Name="Android">
-                        <RemoteDir>res\drawable-small</RemoteDir>
+                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="Android_SplashImage470">
-                    <Platform Name="Android">
-                        <RemoteDir>res\drawable-normal</RemoteDir>
+                <DeployClass Name="iPhone_Launch320">
+                    <Platform Name="iOSDevice64">
                         <Operation>1</Operation>
                     </Platform>
-                </DeployClass>
-                <DeployClass Name="Android_SplashImage640">
-                    <Platform Name="Android">
-                        <RemoteDir>res\drawable-large</RemoteDir>
+                    <Platform Name="iOSSimulator">
                         <Operation>1</Operation>
                     </Platform>
-                </DeployClass>
-                <DeployClass Name="Android_SplashImage960">
-                    <Platform Name="Android">
-                        <RemoteDir>res\drawable-xlarge</RemoteDir>
+                    <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="DebugSymbols">
-                    <Platform Name="iOSSimulator">
-                        <Operation>1</Operation>
-                    </Platform>
-                    <Platform Name="OSX32">
-                        <RemoteDir>Contents\MacOS</RemoteDir>
+                <DeployClass Name="UWP_DelphiLogo150">
+                    <Platform Name="Win64">
+                        <RemoteDir>Assets</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
                     <Platform Name="Win32">
-                        <Operation>0</Operation>
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="DependencyFramework">
-                    <Platform Name="OSX32">
-                        <RemoteDir>Contents\MacOS</RemoteDir>
+                <DeployClass Name="AndroidSplashImageDef">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable</RemoteDir>
                         <Operation>1</Operation>
-                        <Extensions>.framework</Extensions>
                     </Platform>
-                    <Platform Name="OSX64">
-                        <RemoteDir>Contents\MacOS</RemoteDir>
+                </DeployClass>
+                <DeployClass Name="UWP_DelphiLogo44">
+                    <Platform Name="Win64">
+                        <RemoteDir>Assets</RemoteDir>
                         <Operation>1</Operation>
-                        <Extensions>.framework</Extensions>
                     </Platform>
                     <Platform Name="Win32">
-                        <Operation>0</Operation>
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="DependencyModule">
-                    <Platform Name="iOSDevice32">
+                <DeployClass Name="AndroidLibnativeX86File">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\x86</RemoteDir>
                         <Operation>1</Operation>
-                        <Extensions>.dylib</Extensions>
                     </Platform>
-                    <Platform Name="iOSDevice64">
+                </DeployClass>
+                <DeployClass Name="DebugSymbols">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
                         <Operation>1</Operation>
-                        <Extensions>.dylib</Extensions>
                     </Platform>
                     <Platform Name="iOSSimulator">
                         <Operation>1</Operation>
-                        <Extensions>.dylib</Extensions>
                     </Platform>
-                    <Platform Name="OSX32">
-                        <RemoteDir>Contents\MacOS</RemoteDir>
-                        <Operation>1</Operation>
-                        <Extensions>.dylib</Extensions>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
                     </Platform>
-                    <Platform Name="OSX64">
+                </DeployClass>
+                <DeployClass Name="DependencyFramework">
+                    <Platform Name="OSX32">
                         <RemoteDir>Contents\MacOS</RemoteDir>
                         <Operation>1</Operation>
-                        <Extensions>.dylib</Extensions>
+                        <Extensions>.framework</Extensions>
                     </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
-                        <Extensions>.dll;.bpl</Extensions>
                     </Platform>
                 </DeployClass>
-                <DeployClass Required="true" Name="DependencyPackage">
-                    <Platform Name="iOSDevice32">
+                <DeployClass Name="Android_SplashImage426">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-small</RemoteDir>
                         <Operation>1</Operation>
-                        <Extensions>.dylib</Extensions>
                     </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSEntitlements">
                     <Platform Name="iOSDevice64">
+                        <RemoteDir>../</RemoteDir>
                         <Operation>1</Operation>
-                        <Extensions>.dylib</Extensions>
                     </Platform>
-                    <Platform Name="iOSSimulator">
+                    <Platform Name="iOSDevice32">
+                        <RemoteDir>../</RemoteDir>
                         <Operation>1</Operation>
-                        <Extensions>.dylib</Extensions>
                     </Platform>
+                </DeployClass>
+                <DeployClass Name="AdditionalDebugSymbols">
                     <Platform Name="OSX32">
                         <RemoteDir>Contents\MacOS</RemoteDir>
                         <Operation>1</Operation>
-                        <Extensions>.dylib</Extensions>
                     </Platform>
-                    <Platform Name="OSX64">
-                        <RemoteDir>Contents\MacOS</RemoteDir>
+                    <Platform Name="iOSSimulator">
                         <Operation>1</Operation>
-                        <Extensions>.dylib</Extensions>
                     </Platform>
                     <Platform Name="Win32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
                         <Operation>0</Operation>
-                        <Extensions>.bpl</Extensions>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="File">
+                <DeployClass Name="AndroidSplashStylesV21">
                     <Platform Name="Android">
-                        <Operation>0</Operation>
-                    </Platform>
-                    <Platform Name="iOSDevice32">
-                        <Operation>0</Operation>
-                    </Platform>
-                    <Platform Name="iOSDevice64">
-                        <Operation>0</Operation>
-                    </Platform>
-                    <Platform Name="iOSSimulator">
-                        <Operation>0</Operation>
-                    </Platform>
-                    <Platform Name="OSX32">
-                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
-                        <Operation>0</Operation>
-                    </Platform>
-                    <Platform Name="OSX64">
-                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
-                        <Operation>0</Operation>
-                    </Platform>
-                    <Platform Name="Win32">
-                        <Operation>0</Operation>
+                        <RemoteDir>res\values-v21</RemoteDir>
+                        <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="iPad_Launch1024">
-                    <Platform Name="iOSDevice32">
+                <DeployClass Name="AndroidClassesDexFile">
+                    <Platform Name="Android">
+                        <RemoteDir>classes</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSInfoPList">
                     <Platform Name="iOSDevice64">
                         <Operation>1</Operation>
                     </Platform>
                     <Platform Name="iOSSimulator">
                         <Operation>1</Operation>
                     </Platform>
-                </DeployClass>
-                <DeployClass Name="iPad_Launch1536">
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
                     </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch1024">
                     <Platform Name="iOSDevice64">
                         <Operation>1</Operation>
                     </Platform>
                     <Platform Name="iOSSimulator">
                         <Operation>1</Operation>
                     </Platform>
-                </DeployClass>
-                <DeployClass Name="iPad_Launch2048">
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="iOSDevice64">
-                        <Operation>1</Operation>
-                    </Platform>
-                    <Platform Name="iOSSimulator">
+                </DeployClass>
+                <DeployClass Name="AndroidServiceOutput">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="iPad_Launch768">
-                    <Platform Name="iOSDevice32">
+                <DeployClass Name="Android_DefaultAppIcon">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSDeviceResourceRules">
                     <Platform Name="iOSDevice64">
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="iOSSimulator">
+                    <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="iPhone_Launch320">
-                    <Platform Name="iOSDevice32">
+                <DeployClass Name="ProjectOSXResource">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\Resources</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch768">
                     <Platform Name="iOSDevice64">
                         <Operation>1</Operation>
                     </Platform>
                     <Platform Name="iOSSimulator">
                         <Operation>1</Operation>
                     </Platform>
-                </DeployClass>
-                <DeployClass Name="iPhone_Launch640">
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="iOSDevice64">
-                        <Operation>1</Operation>
-                    </Platform>
-                    <Platform Name="iOSSimulator">
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeArmeabiFile">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="iPhone_Launch640x1136">
-                    <Platform Name="iOSDevice32">
+                <DeployClass Required="true" Name="ProjectOutput">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
                     <Platform Name="iOSDevice64">
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="iOSSimulator">
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                </DeployClass>
-                <DeployClass Name="ProjectAndroidManifest">
-                    <Platform Name="Android">
+                    <Platform Name="iOSSimulator">
                         <Operation>1</Operation>
                     </Platform>
-                </DeployClass>
-                <DeployClass Name="ProjectiOSDeviceDebug">
                     <Platform Name="iOSDevice32">
-                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="iOSDevice64">
+                </DeployClass>
+                <DeployClass Name="ProjectOSXDebug">
+                    <Platform Name="OSX64">
                         <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="ProjectiOSDeviceResourceRules">
-                    <Platform Name="iOSDevice32">
-                        <Operation>1</Operation>
-                    </Platform>
-                    <Platform Name="iOSDevice64">
+                <DeployClass Name="Android_SplashImage640">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-large</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="ProjectiOSEntitlements">
-                    <Platform Name="iOSDevice32">
-                        <RemoteDir>..\</RemoteDir>
-                        <Operation>1</Operation>
+                <DeployClass Name="File">
+                    <Platform Name="Android">
+                        <Operation>0</Operation>
                     </Platform>
                     <Platform Name="iOSDevice64">
-                        <RemoteDir>..\</RemoteDir>
-                        <Operation>1</Operation>
+                        <Operation>0</Operation>
                     </Platform>
-                </DeployClass>
-                <DeployClass Name="ProjectiOSInfoPList">
-                    <Platform Name="iOSDevice32">
-                        <Operation>1</Operation>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
                     </Platform>
-                    <Platform Name="iOSDevice64">
-                        <Operation>1</Operation>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>0</Operation>
                     </Platform>
                     <Platform Name="iOSSimulator">
-                        <Operation>1</Operation>
+                        <Operation>0</Operation>
                     </Platform>
-                </DeployClass>
-                <DeployClass Name="ProjectiOSResource">
                     <Platform Name="iOSDevice32">
-                        <Operation>1</Operation>
+                        <Operation>0</Operation>
                     </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch640x1136">
                     <Platform Name="iOSDevice64">
                         <Operation>1</Operation>
                     </Platform>
                     <Platform Name="iOSSimulator">
                         <Operation>1</Operation>
                     </Platform>
-                </DeployClass>
-                <DeployClass Name="ProjectOSXDebug">
-                    <Platform Name="OSX64">
-                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
-                </DeployClass>
-                <DeployClass Name="ProjectOSXEntitlements">
-                    <Platform Name="OSX32">
-                        <RemoteDir>..\</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
-                    <Platform Name="OSX64">
-                        <RemoteDir>..\</RemoteDir>
+                    <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="ProjectOSXInfoPList">
-                    <Platform Name="OSX32">
-                        <RemoteDir>Contents</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
-                    <Platform Name="OSX64">
-                        <RemoteDir>Contents</RemoteDir>
+                <DeployClass Name="AndroidSplashStyles">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="ProjectOSXResource">
-                    <Platform Name="OSX32">
-                        <RemoteDir>Contents\Resources</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
-                    <Platform Name="OSX64">
-                        <RemoteDir>Contents\Resources</RemoteDir>
+                <DeployClass Name="AndroidFileProvider">
+                    <Platform Name="Android">
+                        <RemoteDir>res\xml</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Required="true" Name="ProjectOutput">
+                <DeployClass Name="Android_LauncherIcon36">
                     <Platform Name="Android">
-                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
-                    <Platform Name="iOSDevice32">
+                        <RemoteDir>res\drawable-ldpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch1536">
                     <Platform Name="iOSDevice64">
                         <Operation>1</Operation>
                     </Platform>
                     <Platform Name="iOSSimulator">
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Linux64">
-                        <Operation>1</Operation>
-                    </Platform>
-                    <Platform Name="OSX32">
-                        <RemoteDir>Contents\MacOS</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
-                    <Platform Name="OSX64">
-                        <RemoteDir>Contents\MacOS</RemoteDir>
+                    <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Win32">
-                        <Operation>0</Operation>
-                    </Platform>
                 </DeployClass>
-                <DeployClass Name="ProjectUWPManifest">
-                    <Platform Name="Win32">
+                <DeployClass Name="Android_LauncherIcon48">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-mdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Win64">
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon72">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-hdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <DeployClass Name="UWP_DelphiLogo150">
-                    <Platform Name="Win32">
-                        <RemoteDir>Assets</RemoteDir>
+                <DeployClass Name="ProjectAndroidManifest">
+                    <Platform Name="Android">
                         <Operation>1</Operation>
                     </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectUWPManifest">
                     <Platform Name="Win64">
-                        <RemoteDir>Assets</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                </DeployClass>
-                <DeployClass Name="UWP_DelphiLogo44">
                     <Platform Name="Win32">
-                        <RemoteDir>Assets</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
-                    <Platform Name="Win64">
-                        <RemoteDir>Assets</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
             </Deployment>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>

+ 769 - 0
src/pascalcoin_wallet_classic.dsk

@@ -0,0 +1,769 @@
+[Closed Files]
+File_0=TSourceModule,'C:\Hedaal\Lazarus\pascalcoin\src\gui-classic\UFRMOperationsExplorer.pas',0,1,1,1,1,0,0,,
+File_1=TSourceModule,'C:\Users\Frans\Downloads\uDownloader.pas',0,1,1026,1,1055,0,0,,
+File_2=TSourceModule,'C:\Users\Frans\Downloads\uUtils.pas',0,1,19,1,1,0,0,,
+File_3=TSourceModule,'C:\Users\Frans\Downloads\uDownloaderFrame.pas',0,1,232,29,169,0,0,,
+File_4=TSourceModule,'C:\Users\Frans\Downloads\uBaseFrame.pas',0,1,1,1,1,0,0,,
+File_5=TSourceModule,'C:\Users\Frans\Downloads\UFrmmain.pas',0,1,1,20,27,0,0,,
+File_6=TSourceModule,'C:\Users\Public\Documents\Embarcadero\Studio\16.0\Comps\Virtual Treeview\source\Source\VirtualTrees.pas',0,1,17884,1,17913,0,0,,
+File_7=TSourceModule,'c:\program files (x86)\embarcadero\studio\16.0\SOURCE\VCL\Vcl.Forms.pas',0,1,10323,1,10352,0,0,{{1716,4}
+File_8=TSourceModule,'c:\program files (x86)\embarcadero\studio\16.0\source\rtl\common\System.Generics.Collections.pas',0,1,4029,1,4058,0,0,,
+File_9=TSourceModule,'C:\Hedaal\Software II\upwork\winstarV2\Gold\CasinoGlobal.pas',0,1,1,30,7,0,0,,
+File_10=TSourceModule,'C:\Hedaal\Software II\upwork\winstarV2\Gold\CasinoSettings.pas',0,1,604,27,615,0,0,,
+File_11=TSourceModule,'C:\Hedaal\Software II\upwork\winstarV2\Gold\MainGold.pas',0,1,272,8,282,0,0,,
+File_12=TSourceModule,'C:\Hedaal\Software II\upwork\winstarV2\Bauto2_1\settingsfrm.pas',0,1,130,18,72,0,0,,
+File_13=TSourceModule,'C:\Hedaal\Software II\upwork\winstarV2\DLL Tester\uMain.pas',0,1,166,68,198,0,0,,
+
+[Modules]
+Module0=C:\Hedaal\Lazarus\pascalcoin\src\gui-classic\UFRMPascalCoinWalletConfig.pas
+Module1=C:\Hedaal\Lazarus\pascalcoin\src\core\UMurMur3Fast.pas
+Module2=C:\Hedaal\Lazarus\pascalcoin\src\gui-classic\UFRMWallet.pas
+Count=3
+EditWindowCount=1
+
+[C:\Hedaal\Lazarus\pascalcoin\src\gui-classic\UFRMPascalCoinWalletConfig.pas]
+ModuleType=TSourceModule
+FormState=1
+FormOnTop=1
+
+[C:\Hedaal\Lazarus\pascalcoin\src\core\UMurMur3Fast.pas]
+ModuleType=TSourceModule
+FormState=0
+FormOnTop=0
+
+[C:\Hedaal\Lazarus\pascalcoin\src\gui-classic\UFRMWallet.pas]
+ModuleType=TSourceModule
+FormState=1
+FormOnTop=0
+
+[EditWindow0]
+ViewCount=3
+CurrentEditView=C:\Hedaal\Lazarus\pascalcoin\src\gui-classic\UFRMPascalCoinWalletConfig.pas
+View0=0
+View1=1
+View2=2
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=13333
+Height=12602
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=13333
+ClientHeight=12602
+DockedToMainForm=1
+BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0
+TopPanelSize=0
+LeftPanelSize=3990
+LeftPanelClients=PropertyInspector,DockSite3,DockSite2
+LeftPanelData=00000800010200000000B51B00000000000002E52A00000000000001000000005208000009000000446F636B536974653201000000004710000009000000446F636B53697465330100000000B51B00001100000050726F7065727479496E73706563746F72FFFFFFFF
+RightPanelSize=2000
+RightPanelClients=DockSite4
+RightPanelData=00000800010100000000211800000000000001D0070000000000000100000000E52A000009000000446F636B5369746534FFFFFFFF
+BottomPanelSize=1565
+BottomPanelClients=DockSite1,MessageView
+BottomPanelData=0000080001020100000009000000446F636B5369746531985C000000000000021D060000000000000100000000985C00000F0000004D65737361676556696577466F726DFFFFFFFF
+BottomMiddlePanelSize=0
+BottomMiddlePanelClients=DockSite0,GraphDrawingModel
+BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779F1D00000000000002F206000000000000FFFFFFFF
+
+[View0]
+CustomEditViewType=TEditView
+Module=C:\Hedaal\Lazarus\pascalcoin\src\gui-classic\UFRMWallet.pas
+CursorX=1
+CursorY=1
+TopLine=1
+LeftCol=1
+Elisions=
+Bookmarks=
+EditViewName=Borland.FormDesignerView
+
+[View1]
+CustomEditViewType=TEditView
+Module=C:\Hedaal\Lazarus\pascalcoin\src\core\UMurMur3Fast.pas
+CursorX=55
+CursorY=71
+TopLine=2
+LeftCol=1
+Elisions={{144,0},{273,11},{'asm'}}{{314,0},{371,11},{'asm'}}
+Bookmarks=
+EditViewName=C:\Hedaal\Lazarus\pascalcoin\src\core\UMurMur3Fast.pas
+
+[View2]
+CustomEditViewType=TEditView
+Module=C:\Hedaal\Lazarus\pascalcoin\src\gui-classic\UFRMPascalCoinWalletConfig.pas
+CursorX=1
+CursorY=1
+TopLine=1
+LeftCol=1
+Elisions=
+Bookmarks=
+EditViewName=Borland.FormDesignerView
+
+[Watches]
+Count=0
+
+[WatchWindow]
+WatchColumnWidth=120
+WatchShowColumnHeaders=1
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=213
+LRDockWidth=13604
+Dockable=1
+StayOnTop=0
+
+[Breakpoints]
+Count=0
+
+[EmbarcaderoWin32Debugger_AddressBreakpoints]
+Count=0
+
+[EmbarcaderoWin64Debugger_AddressBreakpoints]
+Count=0
+
+[EmbarcaderoOSXDebugger_AddressBreakpoints]
+Count=0
+
+[Main Window]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=0
+State=2
+Left=9688
+Top=944
+Width=8932
+Height=8519
+MaxLeft=-5
+MaxTop=-9
+MaxWidth=8932
+MaxHeight=8519
+ClientWidth=13333
+ClientHeight=13120
+BottomPanelSize=12602
+BottomPanelClients=EditWindow0
+BottomPanelData=0000080000000000000000000000000000000000000000000000000100000000000000000C0000004564697457696E646F775F30FFFFFFFF
+
+[ProjectManager]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=1177
+Height=10519
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1177
+ClientHeight=10519
+TBDockHeight=5898
+LRDockWidth=2349
+Dockable=1
+StayOnTop=0
+
+[MessageView]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=23
+Width=13333
+Height=1352
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=13333
+ClientHeight=1352
+TBDockHeight=1352
+LRDockWidth=2771
+Dockable=1
+StayOnTop=0
+
+[ToolForm]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2000
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2000
+ClientHeight=10769
+TBDockHeight=7157
+LRDockWidth=2000
+Dockable=1
+StayOnTop=0
+
+[ModelViewTool]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=1333
+Height=12102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1333
+ClientHeight=12102
+TBDockHeight=4880
+LRDockWidth=5307
+Dockable=1
+StayOnTop=0
+
+[ClassBrowserTool]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=-2303
+Top=-106
+Width=1849
+Height=3139
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1849
+ClientHeight=3139
+TBDockHeight=3139
+LRDockWidth=1849
+Dockable=1
+StayOnTop=0
+
+[MetricsView]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1231
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1231
+TBDockHeight=4833
+LRDockWidth=3562
+Dockable=1
+StayOnTop=0
+
+[QAView]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1231
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1231
+TBDockHeight=4833
+LRDockWidth=3562
+Dockable=1
+StayOnTop=0
+
+[PropertyInspector]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=450
+Top=23
+Width=1646
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1646
+ClientHeight=10769
+TBDockHeight=10769
+LRDockWidth=3990
+Dockable=1
+StayOnTop=0
+SplitPos=145
+
+[PropInspDesignerSelection]
+ArrangeBy=Name
+SelectedItem=Action,
+ExpandedItems=Anchors=0,BorderIcons=0,Constraints=0,Font=0,GlassFrame=0,HorzScrollBar=0,LiveBindings=0,"LiveBindings Designer=0",Margins=0,Menu=0,Padding=0
+
+[frmDesignPreview]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=1333
+Height=12102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1333
+ClientHeight=12102
+TBDockHeight=5963
+LRDockWidth=2510
+Dockable=1
+StayOnTop=0
+
+[TFileExplorerForm]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=-2430
+Top=-106
+Width=2844
+Height=6204
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2844
+ClientHeight=6204
+TBDockHeight=6204
+LRDockWidth=2844
+Dockable=1
+StayOnTop=0
+
+[TemplateView]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=-4096
+Top=-106
+Width=276
+Height=361
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=276
+ClientHeight=361
+TBDockHeight=361
+LRDockWidth=276
+Dockable=1
+StayOnTop=0
+Name=120
+Description=334
+filter=1
+
+[DebugLogView]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=407
+LRDockWidth=4953
+Dockable=1
+StayOnTop=0
+
+[ThreadStatusWindow]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=213
+LRDockWidth=7406
+Dockable=1
+StayOnTop=0
+Column0Width=145
+Column1Width=100
+Column2Width=115
+Column3Width=250
+
+[LocalVarsWindow]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=1537
+LRDockWidth=3484
+Dockable=1
+StayOnTop=0
+
+[CallStackWindow]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=2065
+LRDockWidth=3484
+Dockable=1
+StayOnTop=0
+
+[FindReferencsForm]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1231
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1231
+TBDockHeight=2315
+LRDockWidth=2823
+Dockable=1
+StayOnTop=0
+
+[RefactoringForm]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1231
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1231
+TBDockHeight=3213
+LRDockWidth=2823
+Dockable=1
+StayOnTop=0
+
+[ToDo List]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1231
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1231
+TBDockHeight=1157
+LRDockWidth=3677
+Dockable=1
+StayOnTop=0
+Column0Width=314
+Column1Width=30
+Column2Width=150
+Column3Width=172
+Column4Width=129
+SortOrder=4
+ShowHints=1
+ShowChecked=1
+
+[DataExplorerContainer]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=1333
+Height=12102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1333
+ClientHeight=12102
+TBDockHeight=4880
+LRDockWidth=7151
+Dockable=1
+StayOnTop=0
+
+[GraphDrawingModel]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2854
+Height=3213
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2854
+ClientHeight=3213
+TBDockHeight=3213
+LRDockWidth=2854
+Dockable=1
+StayOnTop=0
+
+[BreakpointWindow]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=1546
+LRDockWidth=8740
+Dockable=1
+StayOnTop=0
+Column0Width=200
+Column1Width=75
+Column2Width=200
+Column3Width=200
+Column4Width=200
+Column5Width=75
+Column6Width=75
+
+[StructureView]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=1125
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1125
+ClientHeight=10769
+TBDockHeight=3676
+LRDockWidth=1896
+Dockable=1
+StayOnTop=0
+
+[Castalia Statistics]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=0
+State=0
+Left=0
+Top=0
+Width=1375
+Height=4750
+MaxLeft=-5
+MaxTop=-9
+ClientWidth=1292
+ClientHeight=4389
+TBDockHeight=4750
+LRDockWidth=1375
+Dockable=1
+StayOnTop=0
+
+[BorlandEditorCodeExplorer@EditWindow0]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=0
+State=0
+Left=0
+Top=0
+Width=1823
+Height=6176
+MaxLeft=-5
+MaxTop=-9
+ClientWidth=1740
+ClientHeight=5815
+TBDockHeight=6176
+LRDockWidth=1823
+Dockable=1
+StayOnTop=0
+
+[DockHosts]
+DockHostCount=5
+
+[DockSite0]
+HostDockSite=DockBottomCenterPanel
+DockSiteType=1
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1481
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1481
+TBDockHeight=1481
+LRDockWidth=2339
+Dockable=1
+StayOnTop=0
+TabPosition=1
+ActiveTabID=RefactoringForm
+TabDockClients=RefactoringForm,FindReferencsForm,ToDo List,MetricsView,QAView
+
+[DockSite1]
+HostDockSite=DockBottomPanel
+DockSiteType=1
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1352
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1352
+TBDockHeight=1352
+LRDockWidth=3823
+Dockable=1
+StayOnTop=0
+TabPosition=1
+ActiveTabID=DebugLogView
+TabDockClients=DebugLogView,BreakpointWindow,ThreadStatusWindow,CallStackWindow,WatchWindow,LocalVarsWindow
+
+[DockSite2]
+HostDockSite=DockLeftPanel
+DockSiteType=1
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=23
+Width=1177
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1177
+ClientHeight=10769
+TBDockHeight=10769
+LRDockWidth=2000
+Dockable=1
+StayOnTop=0
+TabPosition=1
+ActiveTabID=ProjectManager
+TabDockClients=ProjectManager,ModelViewTool,DataExplorerContainer,frmDesignPreview,TFileExplorerForm
+
+[DockSite3]
+HostDockSite=DockLeftPanel
+DockSiteType=1
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=230
+Top=23
+Width=1125
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1125
+ClientHeight=10769
+TBDockHeight=10769
+LRDockWidth=1349
+Dockable=1
+StayOnTop=0
+TabPosition=1
+ActiveTabID=StructureView
+TabDockClients=StructureView,ClassBrowserTool
+
+[DockSite4]
+HostDockSite=DockRightPanel
+DockSiteType=1
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=23
+Width=2000
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2000
+ClientHeight=10769
+TBDockHeight=12352
+LRDockWidth=2000
+Dockable=1
+StayOnTop=0
+TabPosition=1
+ActiveTabID=ToolForm
+TabDockClients=ToolForm,TemplateView
+

+ 11 - 4
src/pascalcoin_wallet_classic.lpi

@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <CONFIG>
   <ProjectOptions>
-    <Version Value="12"/>
+    <Version Value="11"/>
     <PathDelim Value="\"/>
     <General>
       <Flags>
         <MainUnitHasUsesSectionForAllUnits Value="False"/>
         <MainUnitHasCreateFormStatements Value="False"/>
         <MainUnitHasTitleStatement Value="False"/>
-        <CompatibilityMode Value="True"/>
       </Flags>
       <SessionStorage Value="InProjectDir"/>
+      <MainUnit Value="0"/>
       <Title Value="PascalCoin Wallet"/>
       <ResourceType Value="res"/>
       <Icon Value="0"/>
@@ -42,7 +42,7 @@
         <PackageName Value="LCL"/>
       </Item1>
     </RequiredPackages>
-    <Units Count="37">
+    <Units Count="38">
       <Unit0>
         <Filename Value="pascalcoin_wallet_classic.dpr"/>
         <IsPartOfProject Value="True"/>
@@ -222,6 +222,13 @@
         <HasResources Value="True"/>
         <ResourceBaseClass Value="Form"/>
       </Unit36>
+      <Unit37>
+        <Filename Value="gui-classic\UFRMSelectLanguage.pas"/>
+        <IsPartOfProject Value="True"/>
+        <ComponentName Value="FRMChangeLanguage"/>
+        <HasResources Value="True"/>
+        <ResourceBaseClass Value="Form"/>
+      </Unit37>
     </Units>
   </ProjectOptions>
   <CompilerOptions>
@@ -232,7 +239,7 @@
     </Target>
     <SearchPaths>
       <IncludeFiles Value="$(ProjOutDir)"/>
-      <OtherUnitFiles Value="core;gui-classic;libraries\synapse;libraries\sphere10;libraries\cryptolib4pascal;libraries\simplebaselib4pascal;libraries\hashlib4pascal;libraries\generics.collections;libraries\pascalcoin;libraries\paszlib"/>
+      <OtherUnitFiles Value="core;gui-classic;libraries\synapse;libraries\sphere10;libraries\cryptolib4pascal;libraries\simplebaselib4pascal;libraries\hashlib4pascal;libraries\generics.collections;libraries\pascalcoin;libraries\paszlib;libraries\gnugettext"/>
       <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
     </SearchPaths>
     <Parsing>

+ 747 - 0
src/pascalcoin_wallet_classic.~dsk

@@ -0,0 +1,747 @@
+[Closed Files]
+File_0=TSourceModule,'C:\Users\Frans\Downloads\uDownloader.pas',0,1,1026,1,1055,0,0,,
+File_1=TSourceModule,'C:\Users\Frans\Downloads\uUtils.pas',0,1,19,1,1,0,0,,
+File_2=TSourceModule,'C:\Users\Frans\Downloads\uDownloaderFrame.pas',0,1,232,29,169,0,0,,
+File_3=TSourceModule,'C:\Users\Frans\Downloads\uBaseFrame.pas',0,1,1,1,1,0,0,,
+File_4=TSourceModule,'C:\Users\Frans\Downloads\UFrmmain.pas',0,1,1,20,27,0,0,,
+File_5=TSourceModule,'C:\Users\Public\Documents\Embarcadero\Studio\16.0\Comps\Virtual Treeview\source\Source\VirtualTrees.pas',0,1,17884,1,17913,0,0,,
+File_6=TSourceModule,'c:\program files (x86)\embarcadero\studio\16.0\SOURCE\VCL\Vcl.Forms.pas',0,1,10323,1,10352,0,0,{{1716,4}
+File_7=TSourceModule,'c:\program files (x86)\embarcadero\studio\16.0\source\rtl\common\System.Generics.Collections.pas',0,1,4029,1,4058,0,0,,
+File_8=TSourceModule,'C:\Hedaal\Software II\upwork\winstarV2\Gold\CasinoGlobal.pas',0,1,1,30,7,0,0,,
+File_9=TSourceModule,'C:\Hedaal\Software II\upwork\winstarV2\Gold\CasinoSettings.pas',0,1,604,27,615,0,0,,
+File_10=TSourceModule,'C:\Hedaal\Software II\upwork\winstarV2\Gold\MainGold.pas',0,1,272,8,282,0,0,,
+File_11=TSourceModule,'C:\Hedaal\Software II\upwork\winstarV2\Bauto2_1\settingsfrm.pas',0,1,130,18,72,0,0,,
+File_12=TSourceModule,'C:\Hedaal\Software II\upwork\winstarV2\DLL Tester\uMain.pas',0,1,166,68,198,0,0,,
+File_13=TSourceModule,'C:\Hedaal\Software II\upwork\winstarV2\ReadLog\UMain.pas',0,1,33,84,39,0,0,,
+File_14=TSourceModule,'c:\program files (x86)\embarcadero\studio\16.0\source\rtl\common\System.Classes.pas',0,1,8375,1,8404,0,0,,
+
+[Modules]
+Module0=C:\Hedaal\Lazarus\pascalcoin\src\core\UMurMur3Fast.pas
+Module1=C:\Hedaal\Lazarus\pascalcoin\src\gui-classic\UFRMWallet.pas
+Count=2
+EditWindowCount=1
+
+[C:\Hedaal\Lazarus\pascalcoin\src\core\UMurMur3Fast.pas]
+ModuleType=TSourceModule
+FormState=0
+FormOnTop=0
+
+[C:\Hedaal\Lazarus\pascalcoin\src\gui-classic\UFRMWallet.pas]
+ModuleType=TSourceModule
+FormState=1
+FormOnTop=0
+
+[EditWindow0]
+ViewCount=2
+CurrentEditView=C:\Hedaal\Lazarus\pascalcoin\src\core\UMurMur3Fast.pas
+View0=0
+View1=1
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=13333
+Height=12602
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=13333
+ClientHeight=12602
+DockedToMainForm=1
+BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0
+TopPanelSize=0
+LeftPanelSize=3990
+LeftPanelClients=PropertyInspector,DockSite3,DockSite2
+LeftPanelData=00000800010200000000B51B00000000000002E52A00000000000001000000008C06000009000000446F636B536974653201000000004710000009000000446F636B53697465330100000000B51B00001100000050726F7065727479496E73706563746F72FFFFFFFF
+RightPanelSize=2000
+RightPanelClients=DockSite4
+RightPanelData=00000800010100000000211800000000000001D0070000000000000100000000E52A000009000000446F636B5369746534FFFFFFFF
+BottomPanelSize=1565
+BottomPanelClients=DockSite1,MessageView
+BottomPanelData=0000080001020100000009000000446F636B5369746531985C000000000000021D060000000000000100000000985C00000F0000004D65737361676556696577466F726DFFFFFFFF
+BottomMiddlePanelSize=0
+BottomMiddlePanelClients=DockSite0,GraphDrawingModel
+BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779F1D00000000000002F206000000000000FFFFFFFF
+
+[View0]
+CustomEditViewType=TEditView
+Module=C:\Hedaal\Lazarus\pascalcoin\src\gui-classic\UFRMWallet.pas
+CursorX=1
+CursorY=1
+TopLine=1
+LeftCol=1
+Elisions=
+Bookmarks=
+EditViewName=Borland.FormDesignerView
+
+[View1]
+CustomEditViewType=TEditView
+Module=C:\Hedaal\Lazarus\pascalcoin\src\core\UMurMur3Fast.pas
+CursorX=55
+CursorY=71
+TopLine=2
+LeftCol=1
+Elisions={{144,0},{273,11},{'asm'}}{{314,0},{371,11},{'asm'}}
+Bookmarks=
+EditViewName=C:\Hedaal\Lazarus\pascalcoin\src\core\UMurMur3Fast.pas
+
+[Watches]
+Count=0
+
+[WatchWindow]
+WatchColumnWidth=120
+WatchShowColumnHeaders=1
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=213
+LRDockWidth=13604
+Dockable=1
+StayOnTop=0
+
+[Breakpoints]
+Count=0
+
+[EmbarcaderoWin32Debugger_AddressBreakpoints]
+Count=0
+
+[EmbarcaderoWin64Debugger_AddressBreakpoints]
+Count=0
+
+[EmbarcaderoOSXDebugger_AddressBreakpoints]
+Count=0
+
+[Main Window]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=0
+State=2
+Left=9688
+Top=944
+Width=8932
+Height=8519
+MaxLeft=-5
+MaxTop=-9
+MaxWidth=8932
+MaxHeight=8519
+ClientWidth=13333
+ClientHeight=13120
+BottomPanelSize=12602
+BottomPanelClients=EditWindow0
+BottomPanelData=0000080000000000000000000000000000000000000000000000000100000000000000000C0000004564697457696E646F775F30FFFFFFFF
+
+[ProjectManager]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=922
+Height=10519
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=922
+ClientHeight=10519
+TBDockHeight=5898
+LRDockWidth=2349
+Dockable=1
+StayOnTop=0
+
+[MessageView]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=23
+Width=13333
+Height=1352
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=13333
+ClientHeight=1352
+TBDockHeight=1352
+LRDockWidth=2771
+Dockable=1
+StayOnTop=0
+
+[ToolForm]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2000
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2000
+ClientHeight=10769
+TBDockHeight=7157
+LRDockWidth=2000
+Dockable=1
+StayOnTop=0
+
+[ModelViewTool]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=1333
+Height=12102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1333
+ClientHeight=12102
+TBDockHeight=4880
+LRDockWidth=5307
+Dockable=1
+StayOnTop=0
+
+[ClassBrowserTool]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=-2303
+Top=-106
+Width=1849
+Height=3139
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1849
+ClientHeight=3139
+TBDockHeight=3139
+LRDockWidth=1849
+Dockable=1
+StayOnTop=0
+
+[MetricsView]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1231
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1231
+TBDockHeight=4833
+LRDockWidth=3562
+Dockable=1
+StayOnTop=0
+
+[QAView]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1231
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1231
+TBDockHeight=4833
+LRDockWidth=3562
+Dockable=1
+StayOnTop=0
+
+[PropertyInspector]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=450
+Top=23
+Width=1646
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1646
+ClientHeight=10769
+TBDockHeight=10769
+LRDockWidth=3990
+Dockable=1
+StayOnTop=0
+SplitPos=145
+
+[frmDesignPreview]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=1333
+Height=12102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1333
+ClientHeight=12102
+TBDockHeight=5963
+LRDockWidth=2510
+Dockable=1
+StayOnTop=0
+
+[TFileExplorerForm]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=-2430
+Top=-106
+Width=2844
+Height=6204
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2844
+ClientHeight=6204
+TBDockHeight=6204
+LRDockWidth=2844
+Dockable=1
+StayOnTop=0
+
+[TemplateView]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=-4096
+Top=-106
+Width=276
+Height=361
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=276
+ClientHeight=361
+TBDockHeight=361
+LRDockWidth=276
+Dockable=1
+StayOnTop=0
+Name=120
+Description=334
+filter=1
+
+[DebugLogView]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=407
+LRDockWidth=4953
+Dockable=1
+StayOnTop=0
+
+[ThreadStatusWindow]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=213
+LRDockWidth=7406
+Dockable=1
+StayOnTop=0
+Column0Width=145
+Column1Width=100
+Column2Width=115
+Column3Width=250
+
+[LocalVarsWindow]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=1537
+LRDockWidth=3484
+Dockable=1
+StayOnTop=0
+
+[CallStackWindow]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=2065
+LRDockWidth=3484
+Dockable=1
+StayOnTop=0
+
+[FindReferencsForm]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1231
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1231
+TBDockHeight=2315
+LRDockWidth=2823
+Dockable=1
+StayOnTop=0
+
+[RefactoringForm]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1231
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1231
+TBDockHeight=3213
+LRDockWidth=2823
+Dockable=1
+StayOnTop=0
+
+[ToDo List]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1231
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1231
+TBDockHeight=1157
+LRDockWidth=3677
+Dockable=1
+StayOnTop=0
+Column0Width=314
+Column1Width=30
+Column2Width=150
+Column3Width=172
+Column4Width=129
+SortOrder=4
+ShowHints=1
+ShowChecked=1
+
+[DataExplorerContainer]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=1333
+Height=12102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1333
+ClientHeight=12102
+TBDockHeight=4880
+LRDockWidth=7151
+Dockable=1
+StayOnTop=0
+
+[GraphDrawingModel]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2854
+Height=3213
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2854
+ClientHeight=3213
+TBDockHeight=3213
+LRDockWidth=2854
+Dockable=1
+StayOnTop=0
+
+[BreakpointWindow]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=1546
+LRDockWidth=8740
+Dockable=1
+StayOnTop=0
+Column0Width=200
+Column1Width=75
+Column2Width=200
+Column3Width=200
+Column4Width=200
+Column5Width=75
+Column6Width=75
+
+[StructureView]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=1380
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1380
+ClientHeight=10769
+TBDockHeight=3676
+LRDockWidth=1896
+Dockable=1
+StayOnTop=0
+
+[Castalia Statistics]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=0
+State=0
+Left=0
+Top=0
+Width=1375
+Height=4750
+MaxLeft=-5
+MaxTop=-9
+ClientWidth=1292
+ClientHeight=4389
+TBDockHeight=4750
+LRDockWidth=1375
+Dockable=1
+StayOnTop=0
+
+[BorlandEditorCodeExplorer@EditWindow0]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=0
+State=0
+Left=0
+Top=0
+Width=1823
+Height=6176
+MaxLeft=-5
+MaxTop=-9
+ClientWidth=1740
+ClientHeight=5815
+TBDockHeight=6176
+LRDockWidth=1823
+Dockable=1
+StayOnTop=0
+
+[DockHosts]
+DockHostCount=5
+
+[DockSite0]
+HostDockSite=DockBottomCenterPanel
+DockSiteType=1
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1481
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1481
+TBDockHeight=1481
+LRDockWidth=2339
+Dockable=1
+StayOnTop=0
+TabPosition=1
+ActiveTabID=RefactoringForm
+TabDockClients=RefactoringForm,FindReferencsForm,ToDo List,MetricsView,QAView
+
+[DockSite1]
+HostDockSite=DockBottomPanel
+DockSiteType=1
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1352
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1352
+TBDockHeight=1352
+LRDockWidth=3823
+Dockable=1
+StayOnTop=0
+TabPosition=1
+ActiveTabID=DebugLogView
+TabDockClients=DebugLogView,BreakpointWindow,ThreadStatusWindow,CallStackWindow,WatchWindow,LocalVarsWindow
+
+[DockSite2]
+HostDockSite=DockLeftPanel
+DockSiteType=1
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=23
+Width=922
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=922
+ClientHeight=10769
+TBDockHeight=10769
+LRDockWidth=2000
+Dockable=1
+StayOnTop=0
+TabPosition=1
+ActiveTabID=ProjectManager
+TabDockClients=ProjectManager,ModelViewTool,DataExplorerContainer,frmDesignPreview,TFileExplorerForm
+
+[DockSite3]
+HostDockSite=DockLeftPanel
+DockSiteType=1
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=181
+Top=23
+Width=1380
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1380
+ClientHeight=10769
+TBDockHeight=10769
+LRDockWidth=1349
+Dockable=1
+StayOnTop=0
+TabPosition=1
+ActiveTabID=StructureView
+TabDockClients=StructureView,ClassBrowserTool
+
+[DockSite4]
+HostDockSite=DockRightPanel
+DockSiteType=1
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=23
+Width=2000
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2000
+ClientHeight=10769
+TBDockHeight=12352
+LRDockWidth=2000
+Dockable=1
+StayOnTop=0
+TabPosition=1
+ActiveTabID=ToolForm
+TabDockClients=ToolForm,TemplateView
+

+ 727 - 0
src/pascalcoin_wallet_experimental.dsk

@@ -0,0 +1,727 @@
+[Closed Files]
+File_0=TSourceModule,'C:\Users\Frans\Downloads\uDownloader.pas',0,1,1026,1,1055,0,0,,
+File_1=TSourceModule,'C:\Users\Frans\Downloads\uUtils.pas',0,1,19,1,1,0,0,,
+File_2=TSourceModule,'C:\Users\Frans\Downloads\uDownloaderFrame.pas',0,1,232,29,169,0,0,,
+File_3=TSourceModule,'C:\Users\Frans\Downloads\uBaseFrame.pas',0,1,1,1,1,0,0,,
+File_4=TSourceModule,'C:\Users\Frans\Downloads\UFrmmain.pas',0,1,1,20,27,0,0,,
+File_5=TSourceModule,'C:\Users\Public\Documents\Embarcadero\Studio\16.0\Comps\Virtual Treeview\source\Source\VirtualTrees.pas',0,1,17884,1,17913,0,0,,
+File_6=TSourceModule,'c:\program files (x86)\embarcadero\studio\16.0\SOURCE\VCL\Vcl.Forms.pas',0,1,10323,1,10352,0,0,{{1716,4}
+File_7=TSourceModule,'c:\program files (x86)\embarcadero\studio\16.0\source\rtl\common\System.Generics.Collections.pas',0,1,4029,1,4058,0,0,,
+File_8=TSourceModule,'C:\Hedaal\Software II\upwork\winstarV2\Gold\CasinoGlobal.pas',0,1,1,30,7,0,0,,
+File_9=TSourceModule,'C:\Hedaal\Software II\upwork\winstarV2\Gold\CasinoSettings.pas',0,1,604,27,615,0,0,,
+File_10=TSourceModule,'C:\Hedaal\Software II\upwork\winstarV2\Gold\MainGold.pas',0,1,272,8,282,0,0,,
+File_11=TSourceModule,'C:\Hedaal\Software II\upwork\winstarV2\Bauto2_1\settingsfrm.pas',0,1,130,18,72,0,0,,
+File_12=TSourceModule,'C:\Hedaal\Software II\upwork\winstarV2\DLL Tester\uMain.pas',0,1,166,68,198,0,0,,
+File_13=TSourceModule,'C:\Hedaal\Software II\upwork\winstarV2\ReadLog\UMain.pas',0,1,33,84,39,0,0,,
+File_14=TSourceModule,'c:\program files (x86)\embarcadero\studio\16.0\source\rtl\common\System.Classes.pas',0,1,8375,1,8404,0,0,,
+
+[Modules]
+Module0=C:\Hedaal\Lazarus\pascalcoin\src\pascalcoin_wallet_experimental.dproj
+Count=1
+EditWindowCount=1
+
+[C:\Hedaal\Lazarus\pascalcoin\src\pascalcoin_wallet_experimental.dproj]
+ModuleType=TBaseProject
+
+[EditWindow0]
+ViewCount=1
+CurrentEditView=C:\Hedaal\Lazarus\pascalcoin\src\pascalcoin_wallet_experimental.dpr
+View0=0
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=13333
+Height=12602
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=13333
+ClientHeight=12602
+DockedToMainForm=1
+BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0
+TopPanelSize=0
+LeftPanelSize=3990
+LeftPanelClients=PropertyInspector,DockSite3,DockSite2
+LeftPanelData=00000800010200000000B51B00000000000002E52A00000000000001000000008C06000009000000446F636B536974653201000000004710000009000000446F636B53697465330100000000B51B00001100000050726F7065727479496E73706563746F72FFFFFFFF
+RightPanelSize=2000
+RightPanelClients=DockSite4
+RightPanelData=00000800010100000000211800000000000001D0070000000000000100000000E52A000009000000446F636B5369746534FFFFFFFF
+BottomPanelSize=1565
+BottomPanelClients=DockSite1,MessageView
+BottomPanelData=0000080001020100000009000000446F636B5369746531985C000000000000021D060000000000000100000000985C00000F0000004D65737361676556696577466F726DFFFFFFFF
+BottomMiddlePanelSize=0
+BottomMiddlePanelClients=DockSite0,GraphDrawingModel
+BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779F1D00000000000002F206000000000000FFFFFFFF
+
+[View0]
+CustomEditViewType=TEditView
+Module=C:\Hedaal\Lazarus\pascalcoin\src\pascalcoin_wallet_experimental.dpr
+CursorX=1
+CursorY=1
+TopLine=1
+LeftCol=1
+Elisions=
+Bookmarks=
+EditViewName=C:\Hedaal\Lazarus\pascalcoin\src\pascalcoin_wallet_experimental.dpr
+
+[Watches]
+Count=0
+
+[WatchWindow]
+WatchColumnWidth=120
+WatchShowColumnHeaders=1
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=213
+LRDockWidth=13604
+Dockable=1
+StayOnTop=0
+
+[Breakpoints]
+Count=0
+
+[EmbarcaderoWin32Debugger_AddressBreakpoints]
+Count=0
+
+[EmbarcaderoWin64Debugger_AddressBreakpoints]
+Count=0
+
+[EmbarcaderoOSXDebugger_AddressBreakpoints]
+Count=0
+
+[Main Window]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=0
+State=2
+Left=9688
+Top=944
+Width=8932
+Height=8519
+MaxLeft=-5
+MaxTop=-9
+MaxWidth=8932
+MaxHeight=8519
+ClientWidth=13333
+ClientHeight=13120
+BottomPanelSize=12602
+BottomPanelClients=EditWindow0
+BottomPanelData=0000080000000000000000000000000000000000000000000000000100000000000000000C0000004564697457696E646F775F30FFFFFFFF
+
+[ProjectManager]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=922
+Height=10519
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=922
+ClientHeight=10519
+TBDockHeight=5898
+LRDockWidth=2349
+Dockable=1
+StayOnTop=0
+
+[MessageView]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=23
+Width=13333
+Height=1352
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=13333
+ClientHeight=1352
+TBDockHeight=1352
+LRDockWidth=2771
+Dockable=1
+StayOnTop=0
+
+[ToolForm]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2000
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2000
+ClientHeight=10769
+TBDockHeight=7157
+LRDockWidth=2000
+Dockable=1
+StayOnTop=0
+
+[ModelViewTool]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=1333
+Height=12102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1333
+ClientHeight=12102
+TBDockHeight=4880
+LRDockWidth=5307
+Dockable=1
+StayOnTop=0
+
+[ClassBrowserTool]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=-2303
+Top=-106
+Width=1849
+Height=3139
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1849
+ClientHeight=3139
+TBDockHeight=3139
+LRDockWidth=1849
+Dockable=1
+StayOnTop=0
+
+[MetricsView]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1231
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1231
+TBDockHeight=4833
+LRDockWidth=3562
+Dockable=1
+StayOnTop=0
+
+[QAView]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1231
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1231
+TBDockHeight=4833
+LRDockWidth=3562
+Dockable=1
+StayOnTop=0
+
+[PropertyInspector]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=450
+Top=23
+Width=1646
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1646
+ClientHeight=10769
+TBDockHeight=10769
+LRDockWidth=3990
+Dockable=1
+StayOnTop=0
+SplitPos=145
+
+[frmDesignPreview]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=1333
+Height=12102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1333
+ClientHeight=12102
+TBDockHeight=5963
+LRDockWidth=2510
+Dockable=1
+StayOnTop=0
+
+[TFileExplorerForm]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=-2430
+Top=-106
+Width=2844
+Height=6204
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2844
+ClientHeight=6204
+TBDockHeight=6204
+LRDockWidth=2844
+Dockable=1
+StayOnTop=0
+
+[TemplateView]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=-4096
+Top=-106
+Width=276
+Height=361
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=276
+ClientHeight=361
+TBDockHeight=361
+LRDockWidth=276
+Dockable=1
+StayOnTop=0
+Name=120
+Description=334
+filter=1
+
+[DebugLogView]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=407
+LRDockWidth=4953
+Dockable=1
+StayOnTop=0
+
+[ThreadStatusWindow]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=213
+LRDockWidth=7406
+Dockable=1
+StayOnTop=0
+Column0Width=145
+Column1Width=100
+Column2Width=115
+Column3Width=250
+
+[LocalVarsWindow]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=1537
+LRDockWidth=3484
+Dockable=1
+StayOnTop=0
+
+[CallStackWindow]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=2065
+LRDockWidth=3484
+Dockable=1
+StayOnTop=0
+
+[FindReferencsForm]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1231
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1231
+TBDockHeight=2315
+LRDockWidth=2823
+Dockable=1
+StayOnTop=0
+
+[RefactoringForm]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1231
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1231
+TBDockHeight=3213
+LRDockWidth=2823
+Dockable=1
+StayOnTop=0
+
+[ToDo List]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1231
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1231
+TBDockHeight=1157
+LRDockWidth=3677
+Dockable=1
+StayOnTop=0
+Column0Width=314
+Column1Width=30
+Column2Width=150
+Column3Width=172
+Column4Width=129
+SortOrder=4
+ShowHints=1
+ShowChecked=1
+
+[DataExplorerContainer]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=1333
+Height=12102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1333
+ClientHeight=12102
+TBDockHeight=4880
+LRDockWidth=7151
+Dockable=1
+StayOnTop=0
+
+[GraphDrawingModel]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2854
+Height=3213
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2854
+ClientHeight=3213
+TBDockHeight=3213
+LRDockWidth=2854
+Dockable=1
+StayOnTop=0
+
+[BreakpointWindow]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1102
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1102
+TBDockHeight=1546
+LRDockWidth=8740
+Dockable=1
+StayOnTop=0
+Column0Width=200
+Column1Width=75
+Column2Width=200
+Column3Width=200
+Column4Width=200
+Column5Width=75
+Column6Width=75
+
+[StructureView]
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=0
+Width=1380
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1380
+ClientHeight=10769
+TBDockHeight=3676
+LRDockWidth=1896
+Dockable=1
+StayOnTop=0
+
+[Castalia Statistics]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=0
+State=0
+Left=0
+Top=0
+Width=1375
+Height=4750
+MaxLeft=-5
+MaxTop=-9
+ClientWidth=1292
+ClientHeight=4389
+TBDockHeight=4750
+LRDockWidth=1375
+Dockable=1
+StayOnTop=0
+
+[BorlandEditorCodeExplorer@EditWindow0]
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=0
+State=0
+Left=0
+Top=0
+Width=1823
+Height=6176
+MaxLeft=-5
+MaxTop=-9
+ClientWidth=1740
+ClientHeight=5815
+TBDockHeight=6176
+LRDockWidth=1823
+Dockable=1
+StayOnTop=0
+
+[DockHosts]
+DockHostCount=5
+
+[DockSite0]
+HostDockSite=DockBottomCenterPanel
+DockSiteType=1
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=0
+Top=0
+Width=2339
+Height=1481
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2339
+ClientHeight=1481
+TBDockHeight=1481
+LRDockWidth=2339
+Dockable=1
+StayOnTop=0
+TabPosition=1
+ActiveTabID=RefactoringForm
+TabDockClients=RefactoringForm,FindReferencsForm,ToDo List,MetricsView,QAView
+
+[DockSite1]
+HostDockSite=DockBottomPanel
+DockSiteType=1
+PercentageSizes=1
+Create=1
+Visible=0
+Docked=1
+State=0
+Left=0
+Top=0
+Width=3823
+Height=1352
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=3823
+ClientHeight=1352
+TBDockHeight=1352
+LRDockWidth=3823
+Dockable=1
+StayOnTop=0
+TabPosition=1
+ActiveTabID=DebugLogView
+TabDockClients=DebugLogView,BreakpointWindow,ThreadStatusWindow,CallStackWindow,WatchWindow,LocalVarsWindow
+
+[DockSite2]
+HostDockSite=DockLeftPanel
+DockSiteType=1
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=23
+Width=922
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=922
+ClientHeight=10769
+TBDockHeight=10769
+LRDockWidth=2000
+Dockable=1
+StayOnTop=0
+TabPosition=1
+ActiveTabID=ProjectManager
+TabDockClients=ProjectManager,ModelViewTool,DataExplorerContainer,frmDesignPreview,TFileExplorerForm
+
+[DockSite3]
+HostDockSite=DockLeftPanel
+DockSiteType=1
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=181
+Top=23
+Width=1380
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=1380
+ClientHeight=10769
+TBDockHeight=10769
+LRDockWidth=1349
+Dockable=1
+StayOnTop=0
+TabPosition=1
+ActiveTabID=StructureView
+TabDockClients=StructureView,ClassBrowserTool
+
+[DockSite4]
+HostDockSite=DockRightPanel
+DockSiteType=1
+PercentageSizes=1
+Create=1
+Visible=1
+Docked=1
+State=0
+Left=0
+Top=23
+Width=2000
+Height=10769
+MaxLeft=-1
+MaxTop=-1
+ClientWidth=2000
+ClientHeight=10769
+TBDockHeight=12352
+LRDockWidth=2000
+Dockable=1
+StayOnTop=0
+TabPosition=1
+ActiveTabID=ToolForm
+TabDockClients=ToolForm,TemplateView
+